@clr/angular 18.0.0 → 18.1.0

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,5 +1,5 @@
1
1
  import * as i0 from '@angular/core';
2
- import { Injectable, Directive, ViewChild, Component, PLATFORM_ID, Inject, DOCUMENT, EventEmitter, ElementRef, booleanAttribute, Input, Output, Optional, ContentChild, ChangeDetectionStrategy, ContentChildren, forwardRef, HostListener, ViewContainerRef, runInInjectionContext, Injector, ChangeDetectorRef, NgZone, Renderer2, inject, EnvironmentInjector, TemplateRef, IterableDiffers, ViewChildren, InjectionToken, NgModule } from '@angular/core';
2
+ import { Injectable, Directive, ViewChild, Component, PLATFORM_ID, Inject, DOCUMENT, EventEmitter, ElementRef, booleanAttribute, Input, Output, Optional, ContentChild, ChangeDetectionStrategy, ContentChildren, forwardRef, HostListener, ViewContainerRef, runInInjectionContext, Injector, ChangeDetectorRef, NgZone, Renderer2, inject, EnvironmentInjector, TemplateRef, IterableDiffers, afterNextRender, ViewChildren, InjectionToken, NgModule } from '@angular/core';
3
3
  import * as i2 from '@clr/angular/utils';
4
4
  import { uniqueIdFactory, Keys, HostWrapper, IfExpandService, ClrLoadingState, ClrExpandableAnimationDirective, LoadingListener, WillyWonka, OompaLoompa, ClrKeyFocus, DomAdapter, ClrIfExpanded, CdkDragModule, CdkTrapFocusModule, ClrLoadingModule, ClrConditionalModule, ClrOutsideClickModule, ClrExpandableAnimationModule, ClrKeyFocusModule } from '@clr/angular/utils';
5
5
  import * as i2$2 from 'rxjs';
@@ -4269,81 +4269,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.3", ngImpor
4269
4269
  type: Input
4270
4270
  }] } });
4271
4271
 
4272
- /*
4273
- * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.
4274
- * The term "Broadcom" refers to Broadcom Inc. and/or its subsidiaries.
4275
- * This software is released under MIT license.
4276
- * The full license information can be found in LICENSE in the root directory of this project.
4277
- */
4278
- var DatagridColumnChanges;
4279
- (function (DatagridColumnChanges) {
4280
- DatagridColumnChanges[DatagridColumnChanges["WIDTH"] = 0] = "WIDTH";
4281
- DatagridColumnChanges[DatagridColumnChanges["HIDDEN"] = 1] = "HIDDEN";
4282
- DatagridColumnChanges[DatagridColumnChanges["INITIALIZE"] = 2] = "INITIALIZE";
4283
- })(DatagridColumnChanges || (DatagridColumnChanges = {}));
4284
- const ALL_COLUMN_CHANGES = Object.keys(DatagridColumnChanges)
4285
- .map(key => DatagridColumnChanges[key])
4286
- .filter(key => key === parseInt(key, 10) && key !== DatagridColumnChanges.INITIALIZE); // extracts only integer keys
4287
-
4288
- /*
4289
- * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.
4290
- * The term "Broadcom" refers to Broadcom Inc. and/or its subsidiaries.
4291
- * This software is released under MIT license.
4292
- * The full license information can be found in LICENSE in the root directory of this project.
4293
- */
4294
- class ColumnsService {
4295
- constructor() {
4296
- this.columns = [];
4297
- this.columnsStateChange = new BehaviorSubject(null);
4298
- this._cache = [];
4299
- }
4300
- get columnStates() {
4301
- return this.columns.map(column => column.value);
4302
- }
4303
- get hasHideableColumns() {
4304
- return this.columnStates.filter(state => state.hideable).length > 0;
4305
- }
4306
- get visibleColumns() {
4307
- return this.columnStates.filter(state => !state.hidden);
4308
- }
4309
- cache() {
4310
- this._cache = this.columns.map(subject => {
4311
- const value = { ...subject.value };
4312
- delete value.changes;
4313
- return value;
4314
- });
4315
- }
4316
- hasCache() {
4317
- return !!this._cache.length;
4318
- }
4319
- resetToLastCache() {
4320
- this._cache.forEach((state, index) => {
4321
- // Just emit the exact value from the cache
4322
- const cachedState = { ...state, changes: ALL_COLUMN_CHANGES };
4323
- this.columns[index].next(cachedState);
4324
- this.columnsStateChange.next(cachedState);
4325
- });
4326
- this._cache = [];
4327
- }
4328
- // Helper method to emit a change to a column only when there is an actual diff to process for that column
4329
- emitStateChangeAt(columnIndex, diff) {
4330
- if (!this.columns[columnIndex]) {
4331
- return;
4332
- }
4333
- this.emitStateChange(this.columns[columnIndex], diff);
4334
- }
4335
- emitStateChange(column, diff) {
4336
- const changedState = { ...column.value, ...diff };
4337
- column.next(changedState);
4338
- this.columnsStateChange.next(changedState);
4339
- }
4340
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: ColumnsService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
4341
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: ColumnsService }); }
4342
- }
4343
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: ColumnsService, decorators: [{
4344
- type: Injectable
4345
- }] });
4346
-
4347
4272
  /*
4348
4273
  * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.
4349
4274
  * The term "Broadcom" refers to Broadcom Inc. and/or its subsidiaries.
@@ -4351,7 +4276,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.3", ngImpor
4351
4276
  * The full license information can be found in LICENSE in the root directory of this project.
4352
4277
  */
4353
4278
  class ClrDatagridVirtualScrollDirective {
4354
- constructor(changeDetectorRef, iterableDiffers, items, ngZone, renderer2, templateRef, viewContainerRef, directionality, scrollDispatcher, viewportRuler, datagrid, columnsService, injector) {
4279
+ constructor(changeDetectorRef, iterableDiffers, items, ngZone, renderer2, templateRef, viewContainerRef, directionality, scrollDispatcher, viewportRuler, datagrid, injector) {
4355
4280
  this.changeDetectorRef = changeDetectorRef;
4356
4281
  this.iterableDiffers = iterableDiffers;
4357
4282
  this.items = items;
@@ -4363,7 +4288,6 @@ class ClrDatagridVirtualScrollDirective {
4363
4288
  this.scrollDispatcher = scrollDispatcher;
4364
4289
  this.viewportRuler = viewportRuler;
4365
4290
  this.datagrid = datagrid;
4366
- this.columnsService = columnsService;
4367
4291
  this.injector = injector;
4368
4292
  this.renderedRangeChange = new EventEmitter();
4369
4293
  this.persistItems = true;
@@ -4576,7 +4500,7 @@ class ClrDatagridVirtualScrollDirective {
4576
4500
  const virtualScrollViewport = createCdkVirtualScrollViewport(new ElementRef(datagridContentElement), new ElementRef(datagridRowsElement), changeDetectorRef, ngZone, renderer2, virtualScrollStrategy, directionality, scrollDispatcher, viewportRuler, null);
4577
4501
  return virtualScrollViewport;
4578
4502
  }
4579
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: ClrDatagridVirtualScrollDirective, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.IterableDiffers }, { token: Items }, { token: i0.NgZone }, { token: i0.Renderer2 }, { token: i0.TemplateRef }, { token: i0.ViewContainerRef }, { token: i2$1.Directionality }, { token: i3$1.ScrollDispatcher }, { token: i3$1.ViewportRuler }, { token: forwardRef(() => ClrDatagrid) }, { token: ColumnsService }, { token: i0.EnvironmentInjector }], target: i0.ɵɵFactoryTarget.Directive }); }
4503
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: ClrDatagridVirtualScrollDirective, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.IterableDiffers }, { token: Items }, { token: i0.NgZone }, { token: i0.Renderer2 }, { token: i0.TemplateRef }, { token: i0.ViewContainerRef }, { token: i2$1.Directionality }, { token: i3$1.ScrollDispatcher }, { token: i3$1.ViewportRuler }, { token: forwardRef(() => ClrDatagrid) }, { token: i0.EnvironmentInjector }], target: i0.ɵɵFactoryTarget.Directive }); }
4580
4504
  static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.1.3", type: ClrDatagridVirtualScrollDirective, isStandalone: false, selector: "[clrVirtualScroll],[ClrVirtualScroll]", inputs: { persistItems: ["clrVirtualPersistItems", "persistItems"], cdkVirtualForOf: ["clrVirtualRowsOf", "cdkVirtualForOf"], cdkVirtualForTrackBy: ["clrVirtualRowsTrackBy", "cdkVirtualForTrackBy"], cdkVirtualForTemplate: ["clrVirtualRowsTemplate", "cdkVirtualForTemplate"], cdkVirtualForTemplateCacheSize: ["clrVirtualRowsTemplateCacheSize", "cdkVirtualForTemplateCacheSize"], itemSize: ["clrVirtualRowsItemSize", "itemSize"], minBufferPx: ["clrVirtualRowsMinBufferPx", "minBufferPx"], maxBufferPx: ["clrVirtualRowsMaxBufferPx", "maxBufferPx"], dataRange: ["clrVirtualDataRange", "dataRange"] }, outputs: { renderedRangeChange: "renderedRangeChange" }, providers: [Items], ngImport: i0 }); }
4581
4505
  }
4582
4506
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: ClrDatagridVirtualScrollDirective, decorators: [{
@@ -4589,7 +4513,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.3", ngImpor
4589
4513
  }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.IterableDiffers }, { type: Items }, { type: i0.NgZone }, { type: i0.Renderer2 }, { type: i0.TemplateRef }, { type: i0.ViewContainerRef }, { type: i2$1.Directionality }, { type: i3$1.ScrollDispatcher }, { type: i3$1.ViewportRuler }, { type: ClrDatagrid, decorators: [{
4590
4514
  type: Inject,
4591
4515
  args: [forwardRef(() => ClrDatagrid)]
4592
- }] }, { type: ColumnsService }, { type: i0.EnvironmentInjector }], propDecorators: { renderedRangeChange: [{
4516
+ }] }, { type: i0.EnvironmentInjector }], propDecorators: { renderedRangeChange: [{
4593
4517
  type: Output
4594
4518
  }], persistItems: [{
4595
4519
  type: Input,
@@ -4657,6 +4581,81 @@ function createCdkVirtualForOfDirective(viewContainerRef, templateRef, iterableD
4657
4581
  return cdkVirtualForInjector.get(CdkVirtualForOf);
4658
4582
  }
4659
4583
 
4584
+ /*
4585
+ * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.
4586
+ * The term "Broadcom" refers to Broadcom Inc. and/or its subsidiaries.
4587
+ * This software is released under MIT license.
4588
+ * The full license information can be found in LICENSE in the root directory of this project.
4589
+ */
4590
+ var DatagridColumnChanges;
4591
+ (function (DatagridColumnChanges) {
4592
+ DatagridColumnChanges[DatagridColumnChanges["WIDTH"] = 0] = "WIDTH";
4593
+ DatagridColumnChanges[DatagridColumnChanges["HIDDEN"] = 1] = "HIDDEN";
4594
+ DatagridColumnChanges[DatagridColumnChanges["INITIALIZE"] = 2] = "INITIALIZE";
4595
+ })(DatagridColumnChanges || (DatagridColumnChanges = {}));
4596
+ const ALL_COLUMN_CHANGES = Object.keys(DatagridColumnChanges)
4597
+ .map(key => DatagridColumnChanges[key])
4598
+ .filter(key => key === parseInt(key, 10) && key !== DatagridColumnChanges.INITIALIZE); // extracts only integer keys
4599
+
4600
+ /*
4601
+ * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.
4602
+ * The term "Broadcom" refers to Broadcom Inc. and/or its subsidiaries.
4603
+ * This software is released under MIT license.
4604
+ * The full license information can be found in LICENSE in the root directory of this project.
4605
+ */
4606
+ class ColumnsService {
4607
+ constructor() {
4608
+ this.columns = [];
4609
+ this.columnsStateChange = new BehaviorSubject(null);
4610
+ this._cache = [];
4611
+ }
4612
+ get columnStates() {
4613
+ return this.columns.map(column => column.value);
4614
+ }
4615
+ get hasHideableColumns() {
4616
+ return this.columnStates.filter(state => state.hideable).length > 0;
4617
+ }
4618
+ get visibleColumns() {
4619
+ return this.columnStates.filter(state => !state.hidden);
4620
+ }
4621
+ cache() {
4622
+ this._cache = this.columns.map(subject => {
4623
+ const value = { ...subject.value };
4624
+ delete value.changes;
4625
+ return value;
4626
+ });
4627
+ }
4628
+ hasCache() {
4629
+ return !!this._cache.length;
4630
+ }
4631
+ resetToLastCache() {
4632
+ this._cache.forEach((state, index) => {
4633
+ // Just emit the exact value from the cache
4634
+ const cachedState = { ...state, changes: ALL_COLUMN_CHANGES };
4635
+ this.columns[index].next(cachedState);
4636
+ this.columnsStateChange.next(cachedState);
4637
+ });
4638
+ this._cache = [];
4639
+ }
4640
+ // Helper method to emit a change to a column only when there is an actual diff to process for that column
4641
+ emitStateChangeAt(columnIndex, diff) {
4642
+ if (!this.columns[columnIndex]) {
4643
+ return;
4644
+ }
4645
+ this.emitStateChange(this.columns[columnIndex], diff);
4646
+ }
4647
+ emitStateChange(column, diff) {
4648
+ const changedState = { ...column.value, ...diff };
4649
+ column.next(changedState);
4650
+ this.columnsStateChange.next(changedState);
4651
+ }
4652
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: ColumnsService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
4653
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: ColumnsService }); }
4654
+ }
4655
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: ColumnsService, decorators: [{
4656
+ type: Injectable
4657
+ }] });
4658
+
4660
4659
  /*
4661
4660
  * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.
4662
4661
  * The term "Broadcom" refers to Broadcom Inc. and/or its subsidiaries.
@@ -4786,10 +4785,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.3", ngImpor
4786
4785
  * The full license information can be found in LICENSE in the root directory of this project.
4787
4786
  */
4788
4787
  class DatagridRowRenderer {
4789
- constructor(columnsService) {
4788
+ constructor(columnsService, el) {
4790
4789
  this.columnsService = columnsService;
4790
+ this.el = el;
4791
4791
  this.expandableRows = [];
4792
4792
  this.subscriptions = [];
4793
+ afterNextRender(() => this.addDetachedRowsColumnStateChangesListener());
4793
4794
  }
4794
4795
  ngAfterContentInit() {
4795
4796
  this.setCellsState(); // case #3 and #4
@@ -4824,7 +4825,19 @@ class DatagridRowRenderer {
4824
4825
  });
4825
4826
  }
4826
4827
  }
4827
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: DatagridRowRenderer, deps: [{ token: ColumnsService }], target: i0.ɵɵFactoryTarget.Directive }); }
4828
+ addDetachedRowsColumnStateChangesListener() {
4829
+ this.subscriptions.push(
4830
+ // Active rows are already handled by DatagridMainRenderer.columnStateChanged via @ContentChildren.
4831
+ // Rows sitting in CDK virtual scroll's template cache for example are detached from the document
4832
+ // (element.isConnected = false) and invisible to @ContentChildren, so they miss column state
4833
+ // changes. This subscription self-updates the row only when it is detached state.
4834
+ this.columnsService.columnsStateChange.subscribe(() => {
4835
+ if (!this.el.nativeElement.isConnected) {
4836
+ this.setCellsState();
4837
+ }
4838
+ }));
4839
+ }
4840
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: DatagridRowRenderer, deps: [{ token: ColumnsService }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive }); }
4828
4841
  static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.1.3", type: DatagridRowRenderer, isStandalone: false, selector: "clr-dg-row", queries: [{ propertyName: "cells", predicate: DatagridCellRenderer }], ngImport: i0 }); }
4829
4842
  }
4830
4843
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: DatagridRowRenderer, decorators: [{
@@ -4833,7 +4846,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.3", ngImpor
4833
4846
  selector: 'clr-dg-row',
4834
4847
  standalone: false,
4835
4848
  }]
4836
- }], ctorParameters: () => [{ type: ColumnsService }], propDecorators: { cells: [{
4849
+ }], ctorParameters: () => [{ type: ColumnsService }, { type: i0.ElementRef }], propDecorators: { cells: [{
4837
4850
  type: ContentChildren,
4838
4851
  args: [DatagridCellRenderer]
4839
4852
  }] } });
@@ -7379,8 +7392,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.3", ngImpor
7379
7392
  * The full license information can be found in LICENSE in the root directory of this project.
7380
7393
  */
7381
7394
  class DatagridRowDetailRenderer extends DatagridRowRenderer {
7382
- constructor(parentRow, columnsService) {
7383
- super(columnsService);
7395
+ constructor(parentRow, columnsService, el) {
7396
+ super(columnsService, el);
7384
7397
  this.parentRow = parentRow;
7385
7398
  parentRow.expandableRows.push(this);
7386
7399
  }
@@ -7388,7 +7401,7 @@ class DatagridRowDetailRenderer extends DatagridRowRenderer {
7388
7401
  this.parentRow.expandableRows = [];
7389
7402
  super.ngOnDestroy();
7390
7403
  }
7391
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: DatagridRowDetailRenderer, deps: [{ token: DatagridRowRenderer }, { token: ColumnsService }], target: i0.ɵɵFactoryTarget.Directive }); }
7404
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: DatagridRowDetailRenderer, deps: [{ token: DatagridRowRenderer }, { token: ColumnsService }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive }); }
7392
7405
  static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.1.3", type: DatagridRowDetailRenderer, isStandalone: false, selector: "clr-dg-row-detail", usesInheritance: true, ngImport: i0 }); }
7393
7406
  }
7394
7407
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: DatagridRowDetailRenderer, decorators: [{
@@ -7397,7 +7410,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.3", ngImpor
7397
7410
  selector: 'clr-dg-row-detail',
7398
7411
  standalone: false,
7399
7412
  }]
7400
- }], ctorParameters: () => [{ type: DatagridRowRenderer }, { type: ColumnsService }] });
7413
+ }], ctorParameters: () => [{ type: DatagridRowRenderer }, { type: ColumnsService }, { type: i0.ElementRef }] });
7401
7414
 
7402
7415
  /*
7403
7416
  * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.