@clr/angular 16.5.3 → 16.5.4

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.
@@ -13467,6 +13467,19 @@ var ClrDatagridSortOrder;
13467
13467
  ClrDatagridSortOrder[ClrDatagridSortOrder["DESC"] = -1] = "DESC";
13468
13468
  })(ClrDatagridSortOrder || (ClrDatagridSortOrder = {}));
13469
13469
 
13470
+ /*
13471
+ * Copyright (c) 2016-2024 Broadcom. All Rights Reserved.
13472
+ * The term "Broadcom" refers to Broadcom Inc. and/or its subsidiaries.
13473
+ * This software is released under MIT license.
13474
+ * The full license information can be found in LICENSE in the root directory of this project.
13475
+ */
13476
+ // @TODO The top two are not used now, which is probably a performance drag that was broken along the way.
13477
+ // There was a previous pattern to hide everything to do computation then display, for Firefox, needs revisiting.
13478
+ const NO_LAYOUT_CLASS = 'datagrid-no-layout';
13479
+ const COMPUTE_WIDTH_CLASS = 'datagrid-computing-columns-width';
13480
+ const STRICT_WIDTH_CLASS = 'datagrid-fixed-width';
13481
+ const HIDDEN_COLUMN_CLASS = 'datagrid-hidden-column';
13482
+
13470
13483
  /*
13471
13484
  * Copyright (c) 2016-2024 Broadcom. All Rights Reserved.
13472
13485
  * The term "Broadcom" refers to Broadcom Inc. and/or its subsidiaries.
@@ -13905,15 +13918,15 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImpor
13905
13918
  * The full license information can be found in LICENSE in the root directory of this project.
13906
13919
  */
13907
13920
  class ClrDatagridColumn extends DatagridFilterRegistrar {
13908
- constructor(_sort, filters, vcr, detailService, changeDetectorRef) {
13921
+ constructor(el, _sort, filters, vcr, detailService, changeDetectorRef) {
13909
13922
  super(filters);
13923
+ this.el = el;
13910
13924
  this._sort = _sort;
13911
13925
  this.vcr = vcr;
13912
13926
  this.detailService = detailService;
13913
13927
  this.changeDetectorRef = changeDetectorRef;
13914
13928
  this.sortOrderChange = new EventEmitter();
13915
13929
  this.filterValueChange = new EventEmitter();
13916
- this.showSeparator = true;
13917
13930
  /**
13918
13931
  * A custom filter for this column that can be provided in the projected content
13919
13932
  */
@@ -13932,9 +13945,20 @@ class ClrDatagridColumn extends DatagridFilterRegistrar {
13932
13945
  * Subscription to the sort service changes
13933
13946
  */
13934
13947
  this.subscriptions = [];
13948
+ this._showSeparator = true;
13935
13949
  this.subscriptions.push(this.listenForSortingChanges());
13936
13950
  this.subscriptions.push(this.listenForDetailPaneChanges());
13937
13951
  }
13952
+ get isHidden() {
13953
+ return this.el.nativeElement.classList.contains(HIDDEN_COLUMN_CLASS);
13954
+ }
13955
+ get showSeparator() {
13956
+ return this._showSeparator;
13957
+ }
13958
+ set showSeparator(value) {
13959
+ this._showSeparator = value;
13960
+ this.changeDetectorRef.markForCheck();
13961
+ }
13938
13962
  // TODO: We might want to make this an enum in the future
13939
13963
  get colType() {
13940
13964
  return this._colType;
@@ -14110,8 +14134,6 @@ class ClrDatagridColumn extends DatagridFilterRegistrar {
14110
14134
  return this.detailService.stateChange.subscribe(state => {
14111
14135
  if (this.showSeparator !== !state) {
14112
14136
  this.showSeparator = !state;
14113
- // Have to manually change because of OnPush
14114
- this.changeDetectorRef.markForCheck();
14115
14137
  }
14116
14138
  });
14117
14139
  }
@@ -14144,7 +14166,7 @@ class ClrDatagridColumn extends DatagridFilterRegistrar {
14144
14166
  }
14145
14167
  }
14146
14168
  }
14147
- ClrDatagridColumn.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: ClrDatagridColumn, deps: [{ token: Sort }, { token: FiltersProvider }, { token: i0.ViewContainerRef }, { token: DetailService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
14169
+ ClrDatagridColumn.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: ClrDatagridColumn, deps: [{ token: i0.ElementRef }, { token: Sort }, { token: FiltersProvider }, { token: i0.ViewContainerRef }, { token: DetailService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
14148
14170
  ClrDatagridColumn.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.2", type: ClrDatagridColumn, selector: "clr-dg-column", inputs: { filterStringPlaceholder: ["clrFilterStringPlaceholder", "filterStringPlaceholder"], filterNumberMaxPlaceholder: ["clrFilterNumberMaxPlaceholder", "filterNumberMaxPlaceholder"], filterNumberMinPlaceholder: ["clrFilterNumberMinPlaceholder", "filterNumberMinPlaceholder"], colType: ["clrDgColType", "colType"], field: ["clrDgField", "field"], sortBy: ["clrDgSortBy", "sortBy"], sortOrder: ["clrDgSortOrder", "sortOrder"], updateFilterValue: ["clrFilterValue", "updateFilterValue"] }, outputs: { sortOrderChange: "clrDgSortOrderChange", filterValueChange: "clrFilterValueChange" }, host: { attributes: { "role": "columnheader" }, properties: { "class.datagrid-column": "true", "attr.aria-sort": "ariaSort" } }, queries: [{ propertyName: "projectedFilter", first: true, predicate: CustomFilter, descendants: true }], usesInheritance: true, usesOnChanges: true, hostDirectives: [{ directive: ClrPopoverHostDirective }], ngImport: i0, template: `
14149
14171
  <div class="datagrid-column-flex">
14150
14172
  <button class="datagrid-column-title" *ngIf="sortable" (click)="sort()" type="button">
@@ -14239,7 +14261,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImpor
14239
14261
  },
14240
14262
  changeDetection: ChangeDetectionStrategy.OnPush,
14241
14263
  }]
14242
- }], ctorParameters: function () { return [{ type: Sort }, { type: FiltersProvider }, { type: i0.ViewContainerRef }, { type: DetailService }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { filterStringPlaceholder: [{
14264
+ }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: Sort }, { type: FiltersProvider }, { type: i0.ViewContainerRef }, { type: DetailService }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { filterStringPlaceholder: [{
14243
14265
  type: Input,
14244
14266
  args: ['clrFilterStringPlaceholder']
14245
14267
  }], filterNumberMaxPlaceholder: [{
@@ -15845,19 +15867,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImpor
15845
15867
  type: Injectable
15846
15868
  }], ctorParameters: function () { return [{ type: FiltersProvider }, { type: Sort }, { type: Page }, { type: StateDebouncer }]; } });
15847
15869
 
15848
- /*
15849
- * Copyright (c) 2016-2024 Broadcom. All Rights Reserved.
15850
- * The term "Broadcom" refers to Broadcom Inc. and/or its subsidiaries.
15851
- * This software is released under MIT license.
15852
- * The full license information can be found in LICENSE in the root directory of this project.
15853
- */
15854
- // @TODO The top two are not used now, which is probably a performance drag that was broken along the way.
15855
- // There was a previous pattern to hide everything to do computation then display, for Firefox, needs revisiting.
15856
- const NO_LAYOUT_CLASS = 'datagrid-no-layout';
15857
- const COMPUTE_WIDTH_CLASS = 'datagrid-computing-columns-width';
15858
- const STRICT_WIDTH_CLASS = 'datagrid-fixed-width';
15859
- const HIDDEN_COLUMN_CLASS = 'datagrid-hidden-column';
15860
-
15861
15870
  /*
15862
15871
  * Copyright (c) 2016-2024 Broadcom. All Rights Reserved.
15863
15872
  * The term "Broadcom" refers to Broadcom Inc. and/or its subsidiaries.
@@ -15958,7 +15967,7 @@ class DatagridRowRenderer {
15958
15967
  }
15959
15968
  }
15960
15969
  DatagridRowRenderer.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: DatagridRowRenderer, deps: [{ token: ColumnsService }], target: i0.ɵɵFactoryTarget.Directive });
15961
- DatagridRowRenderer.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.2", type: DatagridRowRenderer, selector: "clr-dg-row, clr-dg-row-detail", queries: [{ propertyName: "cells", predicate: DatagridCellRenderer }], ngImport: i0 });
15970
+ DatagridRowRenderer.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.2", type: DatagridRowRenderer, selector: "clr-dg-row, clr-dg-row-detail", queries: [{ propertyName: "expandableRow", first: true, predicate: i0.forwardRef(function () { return DatagridRowRenderer; }), descendants: true }, { propertyName: "cells", predicate: DatagridCellRenderer }], ngImport: i0 });
15962
15971
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: DatagridRowRenderer, decorators: [{
15963
15972
  type: Directive,
15964
15973
  args: [{
@@ -15967,6 +15976,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImpor
15967
15976
  }], ctorParameters: function () { return [{ type: ColumnsService }]; }, propDecorators: { cells: [{
15968
15977
  type: ContentChildren,
15969
15978
  args: [DatagridCellRenderer]
15979
+ }], expandableRow: [{
15980
+ type: ContentChild,
15981
+ args: [forwardRef(() => DatagridRowRenderer)]
15970
15982
  }] } });
15971
15983
 
15972
15984
  /*
@@ -18325,25 +18337,32 @@ class DatagridMainRenderer {
18325
18337
  case DatagridColumnChanges.WIDTH:
18326
18338
  this.headers.get(columnIndex).setWidth(state);
18327
18339
  this.rows.forEach(row => {
18340
+ var _a, _b;
18328
18341
  if ((row === null || row === void 0 ? void 0 : row.cells.length) === this.columnsService.columns.length) {
18329
18342
  row.cells.get(columnIndex).setWidth(state);
18343
+ (_b = (_a = row.expandableRow) === null || _a === void 0 ? void 0 : _a.cells.get(columnIndex)) === null || _b === void 0 ? void 0 : _b.setWidth(state);
18330
18344
  }
18331
18345
  });
18332
18346
  break;
18333
18347
  case DatagridColumnChanges.HIDDEN:
18334
18348
  this.headers.get(columnIndex).setHidden(state);
18335
18349
  this.rows.forEach(row => {
18350
+ var _a, _b;
18336
18351
  if (row.cells && row.cells.length) {
18337
18352
  row.cells.get(columnIndex).setHidden(state);
18353
+ (_b = (_a = row.expandableRow) === null || _a === void 0 ? void 0 : _a.cells.get(columnIndex)) === null || _b === void 0 ? void 0 : _b.setHidden(state);
18338
18354
  }
18339
18355
  });
18356
+ this.updateColumnSeparatorsVisibility();
18340
18357
  this.keyNavigation.resetKeyGrid();
18341
18358
  break;
18342
18359
  case DatagridColumnChanges.INITIALIZE:
18343
18360
  if (state.hideable && state.hidden) {
18344
18361
  this.headers.get(columnIndex).setHidden(state);
18345
18362
  this.rows.forEach(row => {
18363
+ var _a;
18346
18364
  row.setCellsState();
18365
+ (_a = row.expandableRow) === null || _a === void 0 ? void 0 : _a.setCellsState();
18347
18366
  });
18348
18367
  }
18349
18368
  break;
@@ -18378,9 +18397,20 @@ class DatagridMainRenderer {
18378
18397
  return false;
18379
18398
  }
18380
18399
  }
18400
+ updateColumnSeparatorsVisibility() {
18401
+ const visibleColumns = this.datagrid.columns.filter(column => !column.isHidden);
18402
+ visibleColumns.forEach((column, index) => {
18403
+ if (index === visibleColumns.length - 1) {
18404
+ column.showSeparator = false;
18405
+ }
18406
+ else if (!column.showSeparator) {
18407
+ column.showSeparator = true;
18408
+ }
18409
+ });
18410
+ }
18381
18411
  }
18382
18412
  DatagridMainRenderer.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: DatagridMainRenderer, deps: [{ token: ClrDatagrid }, { token: DatagridRenderOrganizer }, { token: Items }, { token: Page }, { token: DomAdapter }, { token: i0.ElementRef }, { token: i0.Renderer2 }, { token: DetailService }, { token: TableSizeService }, { token: ColumnsService }, { token: i0.NgZone }, { token: KeyNavigationGridController }], target: i0.ɵɵFactoryTarget.Directive });
18383
- DatagridMainRenderer.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.2", type: DatagridMainRenderer, selector: "clr-datagrid", providers: [{ provide: DomAdapter, useFactory: domAdapterFactory, deps: [PLATFORM_ID] }], queries: [{ propertyName: "headers", predicate: DatagridHeaderRenderer }, { propertyName: "rows", predicate: DatagridRowRenderer, descendants: true }], ngImport: i0 });
18413
+ DatagridMainRenderer.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.2", type: DatagridMainRenderer, selector: "clr-datagrid", providers: [{ provide: DomAdapter, useFactory: domAdapterFactory, deps: [PLATFORM_ID] }], queries: [{ propertyName: "headers", predicate: DatagridHeaderRenderer }, { propertyName: "rows", predicate: DatagridRowRenderer }], ngImport: i0 });
18384
18414
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: DatagridMainRenderer, decorators: [{
18385
18415
  type: Directive,
18386
18416
  args: [{
@@ -18392,7 +18422,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImpor
18392
18422
  args: [DatagridHeaderRenderer]
18393
18423
  }], rows: [{
18394
18424
  type: ContentChildren,
18395
- args: [DatagridRowRenderer, { descendants: true }]
18425
+ args: [DatagridRowRenderer]
18396
18426
  }] } });
18397
18427
 
18398
18428
  /*