barsa-sap-ui 2.1.6 → 2.1.8

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.
@@ -352,10 +352,10 @@ function GetFormLayoutGrid(ceil, colXl, colLg, colMd) {
352
352
  }
353
353
  const sort$1 = (a, b, key, isNumber) => {
354
354
  if (key) {
355
- if (typeof a === 'object') {
355
+ if (typeof a === 'object' && !(a instanceof Date)) {
356
356
  a = getNestedValue(key, a);
357
357
  }
358
- if (typeof b === 'object') {
358
+ if (typeof b === 'object' && !(b instanceof Date)) {
359
359
  b = getNestedValue(key, b);
360
360
  }
361
361
  }
@@ -365,6 +365,31 @@ const sort$1 = (a, b, key, isNumber) => {
365
365
  else if (typeof a === 'string' && typeof b === 'string') {
366
366
  return a.localeCompare(b);
367
367
  }
368
+ else if (a instanceof Date || b instanceof Date) {
369
+ if (!a && b) {
370
+ return -1;
371
+ }
372
+ if (!b && a) {
373
+ return 1;
374
+ }
375
+ if (a instanceof Date && b instanceof Date) {
376
+ const msDateA = Date.UTC(a.getFullYear(), a.getMonth() + 1, a.getDate());
377
+ const msDateB = Date.UTC(b.getFullYear(), b.getMonth() + 1, b.getDate());
378
+ if (msDateA < msDateB) {
379
+ return -1;
380
+ }
381
+ else if (msDateA === msDateB) {
382
+ return 0;
383
+ }
384
+ else if (msDateA > msDateB) {
385
+ return 1;
386
+ }
387
+ return a.getTime() > b?.getTime() ? 1 : a.getTime() === b.getTime() ? 0 : -1;
388
+ }
389
+ else {
390
+ return 0;
391
+ }
392
+ }
368
393
  return a > b ? 1 : a === b ? 0 : -1;
369
394
  };
370
395
  function _trimEnd(value) {
@@ -2509,7 +2534,7 @@ class UlvToolbarComponent extends BaseComponent {
2509
2534
  ngAfterViewInit() {
2510
2535
  super.ngAfterViewInit();
2511
2536
  this._portalService.windowResize$.pipe(takeUntil$1(this._onDestroy$)).subscribe(() => {
2512
- this._setWidth();
2537
+ this.refreshResize();
2513
2538
  });
2514
2539
  }
2515
2540
  ngOnChanges(changes) {
@@ -2542,7 +2567,10 @@ class UlvToolbarComponent extends BaseComponent {
2542
2567
  if (!this.visibled || this.hideToolbar) {
2543
2568
  return;
2544
2569
  }
2545
- const x = Math.floor(this.el.nativeElement.getBoundingClientRect().width);
2570
+ this.refreshResize();
2571
+ }
2572
+ refreshResize() {
2573
+ const x = Math.floor(this.el.nativeElement.parentNode.getBoundingClientRect().width);
2546
2574
  this._renderer2.setStyle(this.el.nativeElement, 'width', x + 'px');
2547
2575
  setTimeout(() => {
2548
2576
  this._refreshToolbar();
@@ -4755,12 +4783,19 @@ class ColumnRendererComponent extends BaseComponent {
4755
4783
  this._isSmall = false;
4756
4784
  }
4757
4785
  ngOnInit() {
4786
+ this.signalValue.set(this.value);
4758
4787
  super.ngOnInit();
4759
4788
  this.fieldTypeId = Number(this.column.FieldTypeId);
4760
4789
  if (this.deviceSize === 's') {
4761
4790
  this._isSmall = true;
4762
4791
  }
4763
4792
  }
4793
+ ngOnChanges(changes) {
4794
+ const { value } = changes;
4795
+ if (value && !value.firstChange) {
4796
+ this.signalValue.set(value.currentValue);
4797
+ }
4798
+ }
4764
4799
  ngAfterViewInit() {
4765
4800
  if (this.column.FieldTypeId.toString() === '31') {
4766
4801
  setTimeout(() => {
@@ -4776,7 +4811,7 @@ class ColumnRendererComponent extends BaseComponent {
4776
4811
  this._cdr.detectChanges();
4777
4812
  }
4778
4813
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ColumnRendererComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
4779
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: ColumnRendererComponent, selector: "bsu-column-renderer,[colRenderer]", inputs: { column: "column", allColumns: "allColumns", mo: "mo", index: "index", editMode: "editMode", customRowHeight: "customRowHeight", controlUi: "controlUi", formLayoutShowLabel: "formLayoutShowLabel", isChecked: "isChecked", isNewInlineMo: "isNewInlineMo", containerDom: "containerDom", disableEllapsis: "disableEllapsis", rtl: "rtl", isMobile: "isMobile", fdTextMode: "fdTextMode", deviceName: "deviceName", deviceSize: "deviceSize", value: "value", icon: "icon" }, host: { properties: { "class.isMobile": "this._isSmall" } }, usesInheritance: true, ngImport: i0, template: "@if (column) {\n<ng-container *ngTemplateOutlet=\"editMode ? formControlTemplate : renderCellTemplate\"> </ng-container>\n}\n<ng-template #renderCellTemplate>\n @switch (column.FieldTypeId) { @case (42) {\n <ng-container *ngTemplateOutlet=\"renderCellImage\"></ng-container>\n } @case (33) {\n <ng-container *ngTemplateOutlet=\"renderCellFileInfo\"></ng-container>\n } @case (31) {\n <ng-container *ngTemplateOutlet=\"renderCellFileListKhati\"></ng-container>\n } @case (11) {\n <ng-container *ngTemplateOutlet=\"renderCellListTasavir\"></ng-container>\n } @case (5) {\n <ng-container\n *ngTemplateOutlet=\"column.Extra?.ShowCheckInGrid ? renderCellChecbox : renderChecboxImage\"\n ></ng-container>\n } @default {\n <ng-container *ngTemplateOutlet=\"renderGeneral\"></ng-container>\n } }\n</ng-template>\n<ng-template #renderGeneral>\n <div class=\"renderGeneral\" [class.onlyIcon]=\"column.Extra?.IconDisplayTypeEnum === 'Image'\" [style.width]=\"\">\n @if (icon) {\n <img [attr.rtl]=\"rtl\" [src]=\"icon\" />\n }\n <!-- <fd-text\n #fdText\n *ngIf=\"column.Extra?.IconDisplayTypeEnum !== 'Image'\"\n [maxLines]=\"1\"\n [text]=\"value\"\n [fd-inline-help]=\"value\"\n [disabled]=\"!fdText._hasMore\"\n ></fd-text> -->\n\n <!-- <bsu-barsa-text-ellipsis\n [style.width]=\"column.$Width\"\n *ngIf=\"column.Extra?.IconDisplayTypeEnum !== 'Image'\"\n [text]=\"value\"\n></bsu-barsa-text-ellipsis> -->\n <!-- <div *ngIf=\"column.Extra?.IconDisplayTypeEnum !== 'Image'\" style=\"word-break:break-word\">\n{{ value }}\n</div> -->\n @if (column.Extra?.IconDisplayTypeEnum !== 'Image') { @if(!isMobile && !fdTextMode){\n <div\n [ellapsisText]=\"value\"\n [disableEllapsis]=\"editMode\"\n [class.ellapsis]=\"!disableEllapsis\"\n [attr.title]=\"value\"\n (ellapsised)=\"onElapsised($event)\"\n >\n {{ value }}\n </div>\n } @else{\n <fd-text [attr.title]=\"value\" class=\"col-value\" [text]=\"value\" [maxLines]=\"2\"></fd-text>\n } }\n </div>\n</ng-template>\n<ng-template #formControlTemplate>\n <ng-container\n *ngTemplateOutlet=\"\n !controlUi || controlUi.FieldUi.originalXtype === 'Ui.ReadOnlyField'\n ? renderCellTemplate\n : layoutControlTemplate\n \"\n ></ng-container>\n</ng-template>\n<ng-template #layoutControlTemplate>\n @if (controlUi) {\n <bsu-layout-control\n [inlineEdit]=\"true\"\n [caption]=\"column.Caption\"\n [config]=\"controlUi\"\n [focusControl]=\"index === 0 && (isChecked || isNewInlineMo)\"\n [showLabel]=\"formLayoutShowLabel\"\n ></bsu-layout-control>\n }\n</ng-template>\n<ng-template #renderCellListTasavir>\n @if (mo[column.Name] && mo[column.Name].Images) {\n <div style=\"display: flex; flex-wrap: wrap; gap: 0.15rem\">\n @for (pic of mo[column.Name].Images; track pic) {\n <img\n fullscreen\n fullscreenFiles\n [files]=\"mo[column.Name].Images\"\n [isImageGallery]=\"true\"\n [deviceSize]=\"deviceSize\"\n [src]=\"pic.FileId | picFieldSrc: 'BarsaPicture.Thumbnail':null:'':32:32\"\n style=\"width: 3rem; height: 3rem\"\n />\n }\n </div>\n }\n</ng-template>\n<ng-template #renderCellFileListKhati>\n @if (mo[column.Name]) {\n <div class=\"file-viewer-attachments\">\n @for (file of mo[column.Name].Files; track file) { @if (!file.IsDeleted) {\n <bsu-file-viewer-popover\n [style.max-width.px]=\"containerDom && containerDom.offsetWidth ? containerDom.offsetWidth : null\"\n [file]=\"file\"\n [files]=\"mo[column.Name].Files\"\n [deviceSize]=\"deviceSize\"\n [canDownload]=\"true\"\n [disableRemove]=\"true\"\n [fdType]=\"'transparent'\"\n ></bsu-file-viewer-popover>\n }\n <!-- <fd-token *ngIf=\"!file.IsDeleted\" [readOnly]=\"true\">{{ file.FileName }}</fd-token> -->\n }\n </div>\n }\n</ng-template>\n<ng-template #renderCellFileInfo>\n @if (mo[column.Name]) {\n <fd-avatar\n [transparent]=\"true\"\n [size]=\"column.FieldTypeId === '42' || column.FieldTypeId === 42 ? 'xs' : deviceSize === 's' ? 's' : 'm'\"\n [image]=\"mo[column.Name] | picFieldSrc: 'PictureFileInfo':null:column.FieldDefId\"\n ></fd-avatar>\n }\n</ng-template>\n<ng-template #renderCellChecbox>\n <fd-icon [glyph]=\"mo[column.Name] === true ? 'accept' : 'less'\"></fd-icon>\n</ng-template>\n<ng-template #renderChecboxImage>\n @if (column.Extra?.TrueImage === '') {\n {{ value }}\n } @if (column.Extra?.TrueImage !== '') {\n <img [src]=\"mo[column.Name] ? column.Extra?.TrueImage : column.Extra?.FalseImage\" aling=\"middle\" />\n }\n</ng-template>\n<ng-template #renderCellImage>\n @if (mo[column.Name] && mo[column.Name]['Url']) {\n <fd-avatar\n [size]=\"column.FieldTypeId === '42' || column.FieldTypeId === 42 ? 'xs' : deviceSize === 's' ? 's' : 'm'\"\n [transparent]=\"true\"\n [image]=\"mo[column.Name]['Url']\"\n ></fd-avatar>\n }\n</ng-template>\n", styles: [":host{display:contents;overflow:hidden;padding:0}:host.isMobile span{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;white-space:pre-wrap}fd-avatar{min-width:100%;width:100%;max-width:64px}.renderGeneral{display:flex;width:100%;height:100%;align-items:center;justify-content:start}.renderGeneral.onlyIcon{justify-content:center}fd-text.col-value ::ng-deep p{color:inherit;font-size:inherit;font-family:inherit}\n"], dependencies: [{ kind: "directive", type: i1$2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2.EllapsisTextDirective, selector: "[ellapsisText]", inputs: ["ellapsisText", "fontSize", "disableEllapsis"], outputs: ["ellapsised"] }, { kind: "component", type: i3$6.AvatarComponent, selector: "fd-avatar", inputs: ["class", "id", "ariaLabel", "ariaLabelledby", "label", "size", "font", "glyph", "zoomGlyph", "circle", "transparent", "contain", "placeholder", "tile", "border", "colorAccent", "colorIndication", "random", "clickable", "valueState", "image", "alterIcon", "backupImage"], outputs: ["avatarClicked", "zoomGlyphClicked"] }, { kind: "component", type: i6.IconComponent, selector: "fd-icon", inputs: ["glyph", "font", "color", "background", "class", "ariaLabel", "ariaHidden"] }, { kind: "component", type: i5$4.TextComponent, selector: "fd-text", inputs: ["text", "maxLines", "whitespaces", "hyphenation", "expandable", "isCollapsed"], outputs: ["isCollapsedChange"] }, { kind: "component", type: LayoutControlComponent, selector: "bsu-layout-control", inputs: ["inlineEdit", "caption", "focusControl", "showLabel", "maxLabelWidth", "hasHorizontalText", "contentDensity", "flex", "RefreshLabel", "SetVisible"], outputs: ["events"] }, { kind: "component", type: FileViewerPopoverComponent, selector: "bsu-file-viewer-popover", inputs: ["files", "file", "deviceSize", "canDownload", "disableRemove", "fdType"], outputs: ["remove"] }, { kind: "directive", type: FullscreenFilesDirective, selector: "[fullscreenFiles]", inputs: ["files", "title", "deviceSize", "isImageGallery", "component"] }, { kind: "pipe", type: i2.PictureFieldSourcePipe, name: "picFieldSrc" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
4814
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: ColumnRendererComponent, selector: "bsu-column-renderer,[colRenderer]", inputs: { column: "column", allColumns: "allColumns", mo: "mo", index: "index", editMode: "editMode", customRowHeight: "customRowHeight", controlUi: "controlUi", formLayoutShowLabel: "formLayoutShowLabel", isChecked: "isChecked", isNewInlineMo: "isNewInlineMo", containerDom: "containerDom", disableEllapsis: "disableEllapsis", rtl: "rtl", isMobile: "isMobile", fdTextMode: "fdTextMode", deviceName: "deviceName", deviceSize: "deviceSize", value: "value", icon: "icon" }, host: { properties: { "class.isMobile": "this._isSmall" } }, usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "@if (column) {\n<ng-container *ngTemplateOutlet=\"editMode ? formControlTemplate : renderCellTemplate\"> </ng-container>\n}\n<ng-template #renderCellTemplate>\n @switch (column.FieldTypeId) { @case (42) {\n <ng-container *ngTemplateOutlet=\"renderCellImage\"></ng-container>\n } @case (33) {\n <ng-container *ngTemplateOutlet=\"renderCellFileInfo\"></ng-container>\n } @case (31) {\n <ng-container *ngTemplateOutlet=\"renderCellFileListKhati\"></ng-container>\n } @case (11) {\n <ng-container *ngTemplateOutlet=\"renderCellListTasavir\"></ng-container>\n } @case (5) {\n <ng-container\n *ngTemplateOutlet=\"column.Extra?.ShowCheckInGrid ? renderCellChecbox : renderChecboxImage\"\n ></ng-container>\n } @default {\n <ng-container *ngTemplateOutlet=\"renderGeneral\"></ng-container>\n } }\n</ng-template>\n<ng-template #renderGeneral>\n <div class=\"renderGeneral\" [class.onlyIcon]=\"column.Extra?.IconDisplayTypeEnum === 'Image'\" [style.width]=\"\">\n @if (icon) {\n <img [attr.rtl]=\"rtl\" [src]=\"icon\" />\n }\n <!-- <fd-text\n #fdText\n *ngIf=\"column.Extra?.IconDisplayTypeEnum !== 'Image'\"\n [maxLines]=\"1\"\n [text]=\"value\"\n [fd-inline-help]=\"value\"\n [disabled]=\"!fdText._hasMore\"\n ></fd-text> -->\n\n <!-- <bsu-barsa-text-ellipsis\n [style.width]=\"column.$Width\"\n *ngIf=\"column.Extra?.IconDisplayTypeEnum !== 'Image'\"\n [text]=\"value\"\n></bsu-barsa-text-ellipsis> -->\n <!-- <div *ngIf=\"column.Extra?.IconDisplayTypeEnum !== 'Image'\" style=\"word-break:break-word\">\n{{ value }}\n</div> -->\n @if (column.Extra?.IconDisplayTypeEnum !== 'Image') { @if(!isMobile && !fdTextMode){\n <div\n [ellapsisText]=\"value\"\n [disableEllapsis]=\"editMode\"\n [class.ellapsis]=\"!disableEllapsis\"\n [attr.title]=\"value\"\n (ellapsised)=\"onElapsised($event)\"\n >\n {{ value }}\n </div>\n } @else{\n <fd-text [attr.title]=\"value\" class=\"col-value\" [text]=\"value\" [maxLines]=\"2\"></fd-text>\n } }\n </div>\n</ng-template>\n<ng-template #formControlTemplate>\n <ng-container\n *ngTemplateOutlet=\"\n !controlUi || controlUi.FieldUi.originalXtype === 'Ui.ReadOnlyField'\n ? renderCellTemplate\n : layoutControlTemplate\n \"\n ></ng-container>\n</ng-template>\n<ng-template #layoutControlTemplate>\n @if (controlUi) {\n <bsu-layout-control\n [inlineEdit]=\"true\"\n [caption]=\"column.Caption\"\n [config]=\"controlUi\"\n [focusControl]=\"index === 0 && (isChecked || isNewInlineMo)\"\n [showLabel]=\"formLayoutShowLabel\"\n ></bsu-layout-control>\n }\n</ng-template>\n<ng-template #renderCellListTasavir>\n @if (mo[column.Name] && mo[column.Name].Images) {\n <div style=\"display: flex; flex-wrap: wrap; gap: 0.15rem\">\n @for (pic of mo[column.Name].Images; track pic) {\n <img\n fullscreen\n fullscreenFiles\n [files]=\"mo[column.Name].Images\"\n [isImageGallery]=\"true\"\n [deviceSize]=\"deviceSize\"\n [src]=\"pic.FileId | picFieldSrc: 'BarsaPicture.Thumbnail':null:'':32:32\"\n style=\"width: 3rem; height: 3rem\"\n />\n }\n </div>\n }\n</ng-template>\n<ng-template #renderCellFileListKhati>\n @if (mo[column.Name]) {\n <div class=\"file-viewer-attachments\">\n @for (file of mo[column.Name].Files; track file) { @if (!file.IsDeleted) {\n <bsu-file-viewer-popover\n [style.max-width.px]=\"containerDom && containerDom.offsetWidth ? containerDom.offsetWidth : null\"\n [file]=\"file\"\n [files]=\"mo[column.Name].Files\"\n [deviceSize]=\"deviceSize\"\n [canDownload]=\"true\"\n [disableRemove]=\"true\"\n [fdType]=\"'transparent'\"\n ></bsu-file-viewer-popover>\n }\n <!-- <fd-token *ngIf=\"!file.IsDeleted\" [readOnly]=\"true\">{{ file.FileName }}</fd-token> -->\n }\n </div>\n }\n</ng-template>\n<ng-template #renderCellFileInfo>\n @if (mo[column.Name]) {\n <fd-avatar\n [transparent]=\"true\"\n [size]=\"column.FieldTypeId === '42' || column.FieldTypeId === 42 ? 'xs' : deviceSize === 's' ? 's' : 'm'\"\n [image]=\"mo[column.Name] | picFieldSrc: 'PictureFileInfo':null:column.FieldDefId\"\n ></fd-avatar>\n }\n</ng-template>\n<ng-template #renderCellChecbox>\n <fd-icon [glyph]=\"mo[column.Name] === true ? 'accept' : 'less'\"></fd-icon>\n</ng-template>\n<ng-template #renderChecboxImage>\n @if (column.Extra?.TrueImage === '') {\n {{ value }}\n } @if (column.Extra?.TrueImage !== '') {\n <img [src]=\"mo[column.Name] ? column.Extra?.TrueImage : column.Extra?.FalseImage\" aling=\"middle\" />\n }\n</ng-template>\n<ng-template #renderCellImage>\n @if (mo[column.Name] && mo[column.Name]['Url']) {\n <fd-avatar\n [size]=\"column.FieldTypeId === '42' || column.FieldTypeId === 42 ? 'xs' : deviceSize === 's' ? 's' : 'm'\"\n [transparent]=\"true\"\n [image]=\"mo[column.Name]['Url']\"\n ></fd-avatar>\n }\n</ng-template>\n", styles: [":host{display:contents;overflow:hidden;padding:0}:host.isMobile span{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;white-space:pre-wrap}fd-avatar{min-width:100%;width:100%;max-width:64px}.renderGeneral{display:flex;width:100%;height:100%;align-items:center;justify-content:start}.renderGeneral.onlyIcon{justify-content:center}fd-text.col-value ::ng-deep p{color:inherit;font-size:inherit;font-family:inherit}\n"], dependencies: [{ kind: "directive", type: i1$2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2.EllapsisTextDirective, selector: "[ellapsisText]", inputs: ["ellapsisText", "fontSize", "disableEllapsis"], outputs: ["ellapsised"] }, { kind: "component", type: i3$6.AvatarComponent, selector: "fd-avatar", inputs: ["class", "id", "ariaLabel", "ariaLabelledby", "label", "size", "font", "glyph", "zoomGlyph", "circle", "transparent", "contain", "placeholder", "tile", "border", "colorAccent", "colorIndication", "random", "clickable", "valueState", "image", "alterIcon", "backupImage"], outputs: ["avatarClicked", "zoomGlyphClicked"] }, { kind: "component", type: i6.IconComponent, selector: "fd-icon", inputs: ["glyph", "font", "color", "background", "class", "ariaLabel", "ariaHidden"] }, { kind: "component", type: i5$4.TextComponent, selector: "fd-text", inputs: ["text", "maxLines", "whitespaces", "hyphenation", "expandable", "isCollapsed"], outputs: ["isCollapsedChange"] }, { kind: "component", type: LayoutControlComponent, selector: "bsu-layout-control", inputs: ["inlineEdit", "caption", "focusControl", "showLabel", "maxLabelWidth", "hasHorizontalText", "contentDensity", "flex", "RefreshLabel", "SetVisible"], outputs: ["events"] }, { kind: "component", type: FileViewerPopoverComponent, selector: "bsu-file-viewer-popover", inputs: ["files", "file", "deviceSize", "canDownload", "disableRemove", "fdType"], outputs: ["remove"] }, { kind: "directive", type: FullscreenFilesDirective, selector: "[fullscreenFiles]", inputs: ["files", "title", "deviceSize", "isImageGallery", "component"] }, { kind: "pipe", type: i2.PictureFieldSourcePipe, name: "picFieldSrc" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
4780
4815
  }
4781
4816
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ColumnRendererComponent, decorators: [{
4782
4817
  type: Component,
@@ -5964,10 +5999,6 @@ class UiTableViewComponent extends ReportViewBaseComponent {
5964
5999
  }
5965
6000
  ngOnInit() {
5966
6001
  super.ngOnInit();
5967
- const x = Math.floor(this._el.nativeElement.parentNode.getBoundingClientRect().width);
5968
- if (x) {
5969
- this._renderer2.setStyle(this._el.nativeElement, 'width', `${x - 10}px`);
5970
- }
5971
6002
  this._portalService.windowResize$.pipe(takeUntil$1(this._onDestroy$)).subscribe(() => {
5972
6003
  const x = Math.floor(this._el.nativeElement.parentNode.getBoundingClientRect().width);
5973
6004
  this._renderer2.setStyle(this._tableRef.nativeElement, 'width', x + 'px');
@@ -5985,12 +6016,11 @@ class UiTableViewComponent extends ReportViewBaseComponent {
5985
6016
  : TableHeaderWidthMode.FitToContainer;
5986
6017
  this._calcContextMenuWidth(this.contextMenuItems);
5987
6018
  }
5988
- _calcContextMenuWidth(contextMenuItems) {
5989
- this.contextMenuWidth = calcContextMenuWidth(contextMenuItems, this.disableOverflowContextMenu);
5990
- }
5991
- onTableVisibilityChange(e, dom) {
5992
- if (e === 'Visible') {
5993
- this._setWidth(true);
6019
+ ngAfterViewInit() {
6020
+ super.ngAfterViewInit();
6021
+ const x = Math.floor(this._el.nativeElement.parentNode.getBoundingClientRect().width);
6022
+ if (x) {
6023
+ this._renderer2.setStyle(this._el.nativeElement, 'width', `${x}px`);
5994
6024
  }
5995
6025
  }
5996
6026
  ngOnChanges(changes) {
@@ -6010,6 +6040,14 @@ class UiTableViewComponent extends ReportViewBaseComponent {
6010
6040
  }
6011
6041
  super.ngOnChanges(changes);
6012
6042
  }
6043
+ _calcContextMenuWidth(contextMenuItems) {
6044
+ this.contextMenuWidth = calcContextMenuWidth(contextMenuItems, this.disableOverflowContextMenu);
6045
+ }
6046
+ onTableVisibilityChange(e, dom) {
6047
+ if (e === 'Visible') {
6048
+ setTimeout(() => this._setWidth(true), 100);
6049
+ }
6050
+ }
6013
6051
  onColumnResizing(e) {
6014
6052
  this._tableHeaderComponent.SetColumnWidthToThWidth();
6015
6053
  this._setParentWidth();
@@ -6113,9 +6151,13 @@ class UiTableViewComponent extends ReportViewBaseComponent {
6113
6151
  this._refreshThWidth();
6114
6152
  }
6115
6153
  this.oldWidth = widthOfDom;
6116
- const widthOfDom2 = Math.floor(this._el.nativeElement.parentNode.getBoundingClientRect().width);
6117
- this._renderer2.setStyle(this._tableRef.nativeElement, 'max-width', widthOfDom2 - 10 + 'px');
6118
- this._renderer2.setStyle(this._tableRef.nativeElement, 'width', widthOfDom2 - 10 + 'px');
6154
+ const parentWidth = Math.floor(this._el.nativeElement.parentNode.getBoundingClientRect().width);
6155
+ const elWidth = Math.floor(this._el.nativeElement.getBoundingClientRect().width);
6156
+ if (parentWidth !== elWidth) {
6157
+ this._renderer2.setStyle(this._el.nativeElement, 'width', parentWidth + 'px');
6158
+ }
6159
+ this._renderer2.setStyle(this._tableRef.nativeElement, 'max-width', parentWidth + 'px');
6160
+ this._renderer2.setStyle(this._tableRef.nativeElement, 'width', parentWidth + 'px');
6119
6161
  }
6120
6162
  _calculateHeaderStickyTop(dom) {
6121
6163
  if (this.stickyEnable() && this.tableHeaderDom) {
@@ -9954,11 +9996,11 @@ class LyTabContainerComponent extends LayoutItemBaseComponent {
9954
9996
  this._tabsSource.next(visibleTabs);
9955
9997
  }
9956
9998
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: LyTabContainerComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
9957
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: LyTabContainerComponent, selector: "bsu-ly-tab-container", host: { properties: { "style.flex": "this.flex" } }, viewQueries: [{ propertyName: "tabpages", predicate: TabPanelComponent, descendants: true }], usesInheritance: true, ngImport: i0, template: "<fdp-icon-tab-bar [collapseOverflow]=\"true\" [expandOverflowText]=\"'More' | bbbTranslate\">\n @for (tabPage of tabs$ | async; track tabPage; let tabindex = $index) {\n <fdp-icon-tab-bar-tab\n [label]=\"tabPage.Title || '' | bbbTranslate\"\n [title]=\"tabPage.Title || '' | bbbTranslate\"\n [disabled]=\"tabPage.disabled\"\n [class.control-disabled]=\"tabPage.Enable === false\"\n [class.readonly]=\"tabPage.Readonly\"\n >\n <bsu-ly-tab-page [config]=\"tabPage\"></bsu-ly-tab-page>\n </fdp-icon-tab-bar-tab>\n }\n</fdp-icon-tab-bar>\n", styles: [":host{width:100%;display:block}\n"], dependencies: [{ kind: "component", type: i18.IconTabBarComponent, selector: "fdp-icon-tab-bar", inputs: ["stackContent", "iconTabType", "tabsConfig", "densityMode", "iconTabFont", "enableTabReordering", "showTotalTab", "multiClick", "layoutMode", "iconTabBackground", "iconTabSize", "colorAssociations", "maxContentHeight"], outputs: ["tabsConfigChange", "densityModeChange", "iconTabSelected", "iconTabReordered", "closeTab"] }, { kind: "component", type: i18.IconTabBarTabComponent, selector: "fdp-icon-tab-bar-tab", inputs: ["label", "color", "icon", "iconFont", "counter", "active", "badge", "closable", "id"] }, { kind: "component", type: LyTabPageComponent, selector: "bsu-ly-tab-page", inputs: ["renderItems", "tablist"] }, { kind: "pipe", type: i1$2.AsyncPipe, name: "async" }, { kind: "pipe", type: i2.BbbTranslatePipe, name: "bbbTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
9999
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: LyTabContainerComponent, selector: "bsu-ly-tab-container", host: { properties: { "style.flex": "this.flex" } }, viewQueries: [{ propertyName: "tabpages", predicate: TabPanelComponent, descendants: true }], usesInheritance: true, ngImport: i0, template: "<fdp-icon-tab-bar [collapseOverflow]=\"true\" [expandOverflowText]=\"'More' | bbbTranslate\">\n @for (tabPage of tabs$ | async; track tabPage; let tabindex = $index) {\n <fdp-icon-tab-bar-tab\n [label]=\"tabPage.Title || '' | bbbTranslate\"\n [title]=\"tabPage.Title || '' | bbbTranslate\"\n [disabled]=\"tabPage.disabled\"\n [class.control-disabled]=\"tabPage.Enable === false\"\n [class.readonly]=\"tabPage.Readonly\"\n >\n <bsu-ly-tab-page [config]=\"tabPage\"></bsu-ly-tab-page>\n </fdp-icon-tab-bar-tab>\n }\n</fdp-icon-tab-bar>\n", styles: [":host{width:100%;display:block}fdp-icon-tab-bar ::ng-deep>div{border:.0625rem solid var(--sapGroup_TitleBorderColor)}\n"], dependencies: [{ kind: "component", type: i18.IconTabBarComponent, selector: "fdp-icon-tab-bar", inputs: ["stackContent", "iconTabType", "tabsConfig", "densityMode", "iconTabFont", "enableTabReordering", "showTotalTab", "multiClick", "layoutMode", "iconTabBackground", "iconTabSize", "colorAssociations", "maxContentHeight"], outputs: ["tabsConfigChange", "densityModeChange", "iconTabSelected", "iconTabReordered", "closeTab"] }, { kind: "component", type: i18.IconTabBarTabComponent, selector: "fdp-icon-tab-bar-tab", inputs: ["label", "color", "icon", "iconFont", "counter", "active", "badge", "closable", "id"] }, { kind: "component", type: LyTabPageComponent, selector: "bsu-ly-tab-page", inputs: ["renderItems", "tablist"] }, { kind: "pipe", type: i1$2.AsyncPipe, name: "async" }, { kind: "pipe", type: i2.BbbTranslatePipe, name: "bbbTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
9958
10000
  }
9959
10001
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: LyTabContainerComponent, decorators: [{
9960
10002
  type: Component,
9961
- args: [{ selector: 'bsu-ly-tab-container', changeDetection: ChangeDetectionStrategy.OnPush, standalone: false, template: "<fdp-icon-tab-bar [collapseOverflow]=\"true\" [expandOverflowText]=\"'More' | bbbTranslate\">\n @for (tabPage of tabs$ | async; track tabPage; let tabindex = $index) {\n <fdp-icon-tab-bar-tab\n [label]=\"tabPage.Title || '' | bbbTranslate\"\n [title]=\"tabPage.Title || '' | bbbTranslate\"\n [disabled]=\"tabPage.disabled\"\n [class.control-disabled]=\"tabPage.Enable === false\"\n [class.readonly]=\"tabPage.Readonly\"\n >\n <bsu-ly-tab-page [config]=\"tabPage\"></bsu-ly-tab-page>\n </fdp-icon-tab-bar-tab>\n }\n</fdp-icon-tab-bar>\n", styles: [":host{width:100%;display:block}\n"] }]
10003
+ args: [{ selector: 'bsu-ly-tab-container', changeDetection: ChangeDetectionStrategy.OnPush, standalone: false, template: "<fdp-icon-tab-bar [collapseOverflow]=\"true\" [expandOverflowText]=\"'More' | bbbTranslate\">\n @for (tabPage of tabs$ | async; track tabPage; let tabindex = $index) {\n <fdp-icon-tab-bar-tab\n [label]=\"tabPage.Title || '' | bbbTranslate\"\n [title]=\"tabPage.Title || '' | bbbTranslate\"\n [disabled]=\"tabPage.disabled\"\n [class.control-disabled]=\"tabPage.Enable === false\"\n [class.readonly]=\"tabPage.Readonly\"\n >\n <bsu-ly-tab-page [config]=\"tabPage\"></bsu-ly-tab-page>\n </fdp-icon-tab-bar-tab>\n }\n</fdp-icon-tab-bar>\n", styles: [":host{width:100%;display:block}fdp-icon-tab-bar ::ng-deep>div{border:.0625rem solid var(--sapGroup_TitleBorderColor)}\n"] }]
9962
10004
  }], propDecorators: { tabpages: [{
9963
10005
  type: ViewChildren,
9964
10006
  args: [TabPanelComponent]