@angular-bootstrap/ngbootstrap 2.1.1 → 2.1.2

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/CHANGELOG.md CHANGED
@@ -1,5 +1,19 @@
1
1
  # Changelog
2
2
 
3
+ ## 2.1.2 - 2026-07-27
4
+
5
+ ### Fixed
6
+
7
+ - Removed an unused standalone directive import that created a circular DataGrid dependency and caused the published FESM bundle to throw `Cannot access 'Datagrid' before initialization` in Jest and other direct bundle-loading environments.
8
+
9
+ ### Changed
10
+
11
+ - Extended release package verification to import the built FESM bundle and confirm that `Datagrid` and `NgbGridHighlightDirective` initialize and remain publicly exported.
12
+
13
+ ### Compatibility
14
+
15
+ - No public component APIs, selectors, inputs, outputs, or Angular peer ranges changed.
16
+
3
17
  ## 2.1.1 - 2026-07-27
4
18
 
5
19
  ### Security
package/README.md CHANGED
@@ -102,8 +102,11 @@ export class UsersGridComponent {
102
102
 
103
103
  ```bash
104
104
  pnpm install
105
+ pnpm lint
105
106
  pnpm test
106
107
  pnpm build
108
+ pnpm release:verify
109
+ pnpm security:audit
107
110
  ```
108
111
 
109
112
  Build output is written to `dist/`.
package/RELEASE_NOTES.md CHANGED
@@ -1,24 +1,22 @@
1
- # @angular-bootstrap/ngbootstrap 2.1.1
1
+ # @angular-bootstrap/ngbootstrap 2.1.2
2
2
 
3
- This patch release updates the library development and release dependency graph to patched compatible versions. It does not change the public component API or introduce breaking behavior.
3
+ This patch release fixes a circular DataGrid bundle dependency without changing the public component API.
4
4
 
5
- ## Security
5
+ ## Fixed
6
6
 
7
- - Updated Angular 22, ng-packagr, Jest, ESLint, TypeScript tooling, and affected transitive dependencies.
8
- - Added narrowly scoped Jest dependency overrides for patched glob and brace-expansion paths.
9
- - Refreshed the pnpm lockfile so the complete library dependency graph reports no known vulnerabilities.
7
+ - Removed an unused `NgbGridHighlightDirective` entry from the `Datagrid` component's internal standalone imports.
8
+ - Fixed `Cannot access 'Datagrid' before initialization` when Jest, Node, or another direct bundle-loading environment evaluates the published FESM package.
10
9
 
11
10
  ## Changed
12
11
 
13
- - The security audit now includes build and test tooling in addition to published runtime dependencies.
14
- - The audit command explicitly isolates this public library from a parent pnpm workspace when the repository is developed inside the private docs workspace.
12
+ - Release validation now imports the built FESM bundle and verifies that `Datagrid` and `NgbGridHighlightDirective` initialize and remain publicly exported.
15
13
 
16
14
  ## Verification
17
15
 
18
16
  - Security audit: no known vulnerabilities.
19
17
  - Lint: passed.
20
18
  - Jest: 27 suites and 319 tests passed.
21
- - Angular package build and release package validation: passed.
19
+ - Angular package build, direct FESM import, and release package validation: passed.
22
20
 
23
21
  ## Compatibility
24
22
 
@@ -1,5 +1,5 @@
1
1
  import * as i0 from '@angular/core';
2
- import { EventEmitter, Output, Input, ChangeDetectionStrategy, Component, ViewChild, Directive, inject, Injectable, signal, TemplateRef, HostBinding, input, computed, ElementRef, Renderer2, ChangeDetectorRef, Optional, InjectionToken, Inject, HostListener, QueryList, forwardRef, ContentChildren, ContentChild, ViewEncapsulation, SkipSelf, ViewChildren } from '@angular/core';
2
+ import { EventEmitter, Output, Input, ChangeDetectionStrategy, Component, ViewChild, Directive, inject, Injectable, signal, TemplateRef, HostBinding, input, computed, ElementRef, Renderer2, ChangeDetectorRef, InjectionToken, Optional, Inject, HostListener, QueryList, forwardRef, ContentChildren, ContentChild, ViewEncapsulation, SkipSelf, ViewChildren } from '@angular/core';
3
3
  import * as i1$1 from '@angular/common';
4
4
  import { CommonModule, DOCUMENT } from '@angular/common';
5
5
  import * as i1 from '@angular/forms';
@@ -4956,48 +4956,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
4956
4956
  args: [{ required: true }]
4957
4957
  }] } });
4958
4958
 
4959
- class NgbGridHighlightDirective {
4960
- grid;
4961
- rowKey;
4962
- highlightColumnIndex;
4963
- highlightedIndex = [];
4964
- constructor(grid) {
4965
- this.grid = grid;
4966
- }
4967
- ngOnInit() {
4968
- this.apply();
4969
- }
4970
- ngOnChanges(_ch) {
4971
- this.apply();
4972
- }
4973
- apply() {
4974
- if (!this.grid)
4975
- return;
4976
- this.grid.highlightRowKey = this.rowKey ?? null;
4977
- this.grid.highlightColKey = this.highlightColumnIndex ?? null;
4978
- this.grid.highlightedIndex = this.highlightedIndex ?? [];
4979
- this.grid.updateHighlightCache();
4980
- }
4981
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: NgbGridHighlightDirective, deps: [{ token: Datagrid, optional: true }], target: i0.ɵɵFactoryTarget.Directive });
4982
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.0.8", type: NgbGridHighlightDirective, isStandalone: true, selector: "[ngbGridHighlight]", inputs: { rowKey: ["ngbGridHighlight", "rowKey"], highlightColumnIndex: "highlightColumnIndex", highlightedIndex: "highlightedIndex" }, usesOnChanges: true, ngImport: i0 });
4983
- }
4984
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: NgbGridHighlightDirective, decorators: [{
4985
- type: Directive,
4986
- args: [{
4987
- selector: '[ngbGridHighlight]',
4988
- standalone: true
4989
- }]
4990
- }], ctorParameters: () => [{ type: Datagrid, decorators: [{
4991
- type: Optional
4992
- }] }], propDecorators: { rowKey: [{
4993
- type: Input,
4994
- args: ['ngbGridHighlight']
4995
- }], highlightColumnIndex: [{
4996
- type: Input
4997
- }], highlightedIndex: [{
4998
- type: Input
4999
- }] } });
5000
-
5001
4959
  class NgbLiveAnnouncer {
5002
4960
  node = null;
5003
4961
  announce(message) {
@@ -10558,7 +10516,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
10558
10516
  FormsModule,
10559
10517
  ReactiveFormsModule,
10560
10518
  NgbSyncColgroupDirective,
10561
- NgbGridHighlightDirective,
10562
10519
  NgbDatagridToolbarComponent,
10563
10520
  NgbDatagridEditingToolbarComponent,
10564
10521
  NgbDatagridExternalEditorComponent,
@@ -13360,6 +13317,48 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
13360
13317
  args: ['keydown.escape']
13361
13318
  }] } });
13362
13319
 
13320
+ class NgbGridHighlightDirective {
13321
+ grid;
13322
+ rowKey;
13323
+ highlightColumnIndex;
13324
+ highlightedIndex = [];
13325
+ constructor(grid) {
13326
+ this.grid = grid;
13327
+ }
13328
+ ngOnInit() {
13329
+ this.apply();
13330
+ }
13331
+ ngOnChanges(_ch) {
13332
+ this.apply();
13333
+ }
13334
+ apply() {
13335
+ if (!this.grid)
13336
+ return;
13337
+ this.grid.highlightRowKey = this.rowKey ?? null;
13338
+ this.grid.highlightColKey = this.highlightColumnIndex ?? null;
13339
+ this.grid.highlightedIndex = this.highlightedIndex ?? [];
13340
+ this.grid.updateHighlightCache();
13341
+ }
13342
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: NgbGridHighlightDirective, deps: [{ token: Datagrid, optional: true }], target: i0.ɵɵFactoryTarget.Directive });
13343
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.0.8", type: NgbGridHighlightDirective, isStandalone: true, selector: "[ngbGridHighlight]", inputs: { rowKey: ["ngbGridHighlight", "rowKey"], highlightColumnIndex: "highlightColumnIndex", highlightedIndex: "highlightedIndex" }, usesOnChanges: true, ngImport: i0 });
13344
+ }
13345
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: NgbGridHighlightDirective, decorators: [{
13346
+ type: Directive,
13347
+ args: [{
13348
+ selector: '[ngbGridHighlight]',
13349
+ standalone: true
13350
+ }]
13351
+ }], ctorParameters: () => [{ type: Datagrid, decorators: [{
13352
+ type: Optional
13353
+ }] }], propDecorators: { rowKey: [{
13354
+ type: Input,
13355
+ args: ['ngbGridHighlight']
13356
+ }], highlightColumnIndex: [{
13357
+ type: Input
13358
+ }], highlightedIndex: [{
13359
+ type: Input
13360
+ }] } });
13361
+
13363
13362
  class NgbDndHandleDirective {
13364
13363
  item;
13365
13364
  constructor(item) {