@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/README.md CHANGED
@@ -4,7 +4,7 @@ Angular UI library providing Datagrid, Drag‑and‑drop, Pagination, Stepper, S
4
4
 
5
5
  ## Features
6
6
 
7
- - Datagrid – sortable, filterable, paginated, editable table with export (PDF/Excel) support and accessible templates.
7
+ - Datagrid – sortable, filterable, paginated, Sticky Header/Footer, Sticky Rows, Grid Styling, editable table with export (PDF/Excel) support and accessible templates.
8
8
  - Drag & drop – lightweight list and item directives with keyboard‑friendly a11y helpers.
9
9
  - Pagination – standalone Bootstrap‑styled pagination component.
10
10
  - Stepper – horizontal/vertical stepper with custom labels, error states, theming hooks, and keyboard support.
@@ -34,57 +34,6 @@ Make sure your app:
34
34
 
35
35
  All components are standalone, so you import them directly into your feature components.
36
36
 
37
- ### Datagrid
38
-
39
- ```ts
40
- import { Component } from '@angular/core';
41
- import { Datagrid } from '@angular-bootstrap/ngbootstrap/datagrid';
42
- import { NgbDatagridDefaultEditService } from '@angular-bootstrap/ngbootstrap/datagrid';
43
-
44
- interface User {
45
- id: number;
46
- name: string;
47
- email: string;
48
- }
49
-
50
- @Component({
51
- standalone: true,
52
- selector: 'app-users',
53
- imports: [Datagrid],
54
- template: `
55
- <ngb-datagrid
56
- [columns]="columns"
57
- [data]="rows"
58
- [trackBy]="trackById"
59
- [editService]="editService"
60
- [enableSorting]="true"
61
- [enableFiltering]="true"
62
- [enablePagination]="true"
63
- [pageSize]="10"
64
- (rowSave)="onRowSave($event)"
65
- ></ngb-datagrid>
66
- `,
67
- })
68
- export class UsersComponent {
69
- trackById = (_: number, row: User) => row.id;
70
- editService = new NgbDatagridDefaultEditService<User>();
71
- columns = [
72
- { field: 'id', header: 'ID', sortable: true },
73
- { field: 'name', header: 'Name', sortable: true, filterable: true },
74
- { field: 'email', header: 'Email', sortable: true, filterable: true, type: 'email' },
75
- ];
76
-
77
- rows: User[] = [
78
- { id: 1, name: 'Alice', email: 'alice@example.com' },
79
- { id: 2, name: 'Bob', email: 'bob@example.com' },
80
- ];
81
-
82
- onRowSave(evt: { original: User; updated: User }) {
83
- // persist the update
84
- }
85
- }
86
- ```
87
-
88
37
  Key datagrid capabilities:
89
38
 
90
39
  - Sorting (`enableSorting`, `sortChange`).
@@ -101,82 +50,6 @@ Export requires optional peer dependencies. Install only if you use export:
101
50
  npm install jspdf jspdf-autotable xlsx
102
51
  ```
103
52
 
104
- ### Pagination
105
-
106
- ```ts
107
- import { Component } from '@angular/core';
108
- import { NgbPaginationComponent } from '@angular-bootstrap/ngbootstrap/pagination';
109
-
110
- @Component({
111
- standalone: true,
112
- selector: 'app-pager',
113
- imports: [NgbPaginationComponent],
114
- template: `
115
- <ngb-pagination
116
- [(page)]="page"
117
- [pageSize]="pageSize"
118
- [collectionSize]="total"
119
- (pageChange)="loadPage($event)"
120
- ></ngb-pagination>
121
- `,
122
- })
123
- export class PagerComponent {
124
- page = 1;
125
- pageSize = 10;
126
- total = 250;
127
-
128
- loadPage(p: number) {
129
- this.page = p;
130
- // fetch data for the page
131
- }
132
- }
133
- ```
134
-
135
- ### Stepper
136
-
137
- ```ts
138
- import { Component } from '@angular/core';
139
- import { NgbStepperComponent } from '@angular-bootstrap/ngbootstrap/stepper';
140
- import { NgbStepperStep } from '@angular-bootstrap/ngbootstrap/stepper';
141
-
142
- @Component({
143
- standalone: true,
144
- selector: 'app-wizard',
145
- imports: [NgbStepperComponent],
146
- template: `
147
- <ngb-stepper
148
- [steps]="steps"
149
- [(selectedIndex)]="index"
150
- orientation="horizontal"
151
- [allowRevisit]="false"
152
- theme="bootstrap"
153
- (selectionChange)="onSelectionChange($event)"
154
- >
155
- <ng-template #stepContent let-index="index">
156
- <ng-container [ngSwitch]="index">
157
- <div *ngSwitchCase="0">Account step</div>
158
- <div *ngSwitchCase="1">Profile step</div>
159
- <div *ngSwitchCase="2">Confirm step</div>
160
- </ng-container>
161
- </ng-template>
162
- </ngb-stepper>
163
- `,
164
- })
165
- export class WizardComponent {
166
- index = 0;
167
-
168
- steps: NgbStepperStep[] = [
169
- { id: 'account', label: 'Account' },
170
- { id: 'profile', label: 'Profile' },
171
- { id: 'confirm', label: 'Confirm', optional: true },
172
- ];
173
-
174
- onSelectionChange(e: { previousIndex: number; currentIndex: number }) {
175
- // analytics, autosave, etc.
176
- }
177
- }
178
- ```
179
-
180
53
  Stepper highlights:
181
54
 
182
55
  - Horizontal/vertical variants via `orientation`.
@@ -186,125 +59,6 @@ Stepper highlights:
186
59
  - Controlled navigation (`allowRevisit`, `next()`, `prev()`, `reset()` and events).
187
60
  - Theming hooks via `theme` and CSS classes (`bootstrap`, `material`, `tailwind`).
188
61
 
189
- ### Splitter
190
-
191
- ```ts
192
- import { Component } from '@angular/core';
193
- import { NgbSplitterComponent, NgbSplitterPaneComponent } from '@angular-bootstrap/ngbootstrap/splitter';
194
-
195
- @Component({
196
- standalone: true,
197
- selector: 'app-splitter',
198
- imports: [NgbSplitterComponent, NgbSplitterPaneComponent],
199
- template: `
200
- <ngb-splitter orientation="horizontal" [handleThickness]="10">
201
- <ngb-splitter-pane size="25%" collapsible>
202
- <div class="p-3">Navigation</div>
203
- </ngb-splitter-pane>
204
- <ngb-splitter-pane>
205
- <div class="p-3">Main content</div>
206
- </ngb-splitter-pane>
207
- </ngb-splitter>
208
- `,
209
- })
210
- export class SplitterExampleComponent {}
211
- ```
212
-
213
- ### Tree
214
-
215
- ```ts
216
- import { Component } from '@angular/core';
217
- import { NgbTreeComponent, NgbTreeNode } from '@angular-bootstrap/ngbootstrap/tree';
218
-
219
- @Component({
220
- standalone: true,
221
- selector: 'app-tree',
222
- imports: [NgbTreeComponent],
223
- template: `
224
- <ngb-tree [nodes]="nodes" type="default"></ngb-tree>
225
- `,
226
- })
227
- export class TreeExampleComponent {
228
- nodes: NgbTreeNode[] = [
229
- { id: 'a', label: 'Parent', expanded: true, children: [{ id: 'a-1', label: 'Child 1' }] },
230
- ];
231
- }
232
- ```
233
-
234
- ### Typeahead
235
-
236
- ```ts
237
- import { Component } from '@angular/core';
238
- import { FormControl, ReactiveFormsModule } from '@angular/forms';
239
- import { NgbTypeaheadComponent, NgbTypeaheadItem } from '@angular-bootstrap/ngbootstrap/typeahead';
240
-
241
- @Component({
242
- standalone: true,
243
- selector: 'app-typeahead',
244
- imports: [ReactiveFormsModule, NgbTypeaheadComponent],
245
- template: `
246
- <ngb-typeahead [data]="countries" [showDropdownButton]="true" [multiSelect]="true" [chips]="true"></ngb-typeahead>
247
- <ngb-typeahead [data]="countries" [showDropdownButton]="true" [formControl]="country"></ngb-typeahead>
248
- `,
249
- })
250
- export class TypeaheadExampleComponent {
251
- country = new FormControl<string | null>('IN');
252
- countries: NgbTypeaheadItem[] = [
253
- { id: 'IN', label: 'India', value: 'IN' },
254
- { id: 'US', label: 'United States', value: 'US' },
255
- ];
256
- }
257
- ```
258
-
259
- ### Chips
260
-
261
- ```ts
262
- import { Component } from '@angular/core';
263
- import { NgbChipsComponent } from '@angular-bootstrap/ngbootstrap/chips';
264
-
265
- @Component({
266
- standalone: true,
267
- selector: 'app-chips',
268
- imports: [NgbChipsComponent],
269
- template: `
270
- <ngb-chips [items]="items" (remove)="onRemove($event)"></ngb-chips>
271
- `,
272
- })
273
- export class ChipsExampleComponent {
274
- items = [
275
- { id: 1, label: 'One' },
276
- { id: 2, label: 'Two' },
277
- ];
278
-
279
- onRemove(item: { id: number; label: string }) {
280
- this.items = this.items.filter((x) => x.id !== item.id);
281
- }
282
- }
283
- ```
284
-
285
- ### Drag & drop
286
-
287
- ```ts
288
- import { Component } from '@angular/core';
289
- import { DndListDirective, DndItemDirective } from '@angular-bootstrap/ngbootstrap/drag-drop';
290
-
291
- @Component({
292
- standalone: true,
293
- selector: 'app-drag-list',
294
- imports: [DndListDirective, DndItemDirective],
295
- template: `
296
- <ul dndList [dndListData]="items">
297
- <li *ngFor="let item of items" dndItem [dndItemData]="item">
298
- {{ item }}
299
- </li>
300
- </ul>
301
- `,
302
- })
303
- export class DragListComponent {
304
- items = ['One', 'Two', 'Three'];
305
- }
306
- ```
307
-
308
62
  Refer to the source under `src/drag-drop` and `src/datagrid`/`src/stepper` for full API details until a dedicated docs site is added.
309
63
 
310
64
  ## Development