barsa-sap-ui 3.0.1 → 3.0.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.
@@ -1,11 +1,11 @@
1
1
  import * as i0 from '@angular/core';
2
2
  import { EventEmitter, ViewChild, Output, Input, ChangeDetectionStrategy, Component, Pipe, inject, NgZone, Renderer2, ElementRef, HostBinding, ViewEncapsulation, ChangeDetectorRef, ViewChildren, signal, DOCUMENT, TemplateRef, HostListener, Injectable, Directive, input, effect, ViewContainerRef, EnvironmentInjector, Injector, computed, SecurityContext, NgModule, DestroyRef, NO_ERRORS_SCHEMA, CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';
3
- import { Subject, merge, fromEvent, EMPTY, combineLatest, of, BehaviorSubject, takeUntil as takeUntil$1, debounceTime as debounceTime$1, from, concatMap, delay, tap as tap$1, Observable, first as first$1, skip, map as map$1 } from 'rxjs';
3
+ import { Subject, merge, fromEvent, EMPTY, combineLatest, of, BehaviorSubject, takeUntil as takeUntil$1, debounceTime as debounceTime$1, from, concatMap, delay, tap as tap$1, Observable, timer, first as first$1, skip, map as map$1 } from 'rxjs';
4
4
  import { takeUntil, tap, filter, map, distinctUntilChanged, debounceTime, take, throttleTime, withLatestFrom, exhaustMap, finalize, first, switchMap, delay as delay$1, concatMap as concatMap$1, catchError } from 'rxjs/operators';
5
5
  import * as i4 from '@fundamental-ngx/platform';
6
6
  import { ComboboxComponent, IconTabBarComponent, PlatformComboboxModule, PlatformIconTabBarModule } from '@fundamental-ngx/platform';
7
7
  import * as i2 from 'barsa-novin-ray-core';
8
- import { getUniqueId, BaseComponent, ReportViewBaseComponent, BarsaApi, LayoutItemBaseComponent, getDeviceIsMobile, BbbTranslatePipe, LayoutService, measureText, getLabelWidth, searchEx, multilevelSort, SortDirection, sortEx, BaseUlvSettingComponent, getResetGridSettings, FormComponent, createFormPanelMetaConditions, ReportBaseComponent, SelectionMode, DEFAULT_REPORT_LAYOUT_POLICY, ScrollLayoutContextHolder, EntitySettingsStore, FormPanelService, LayoutMainContentService, GetAllColumnsSorted, getParentHeight, getControlSizeMode, getDeviceIsDesktop, getDeviceIsTablet, getGridSettings, FieldBaseComponent, PortalService, getDateService as getDateService$1, DateService, DateMiladiService, DateHijriService, DateShamsiService, BaseDirective, DynamicDarkColorPipe, EllipsifyDirective, createGridEditorFormPanel, executeUlvCommandHandler, TabpageService, LocalStorageService, CalendarSettingsStore, getAllItemsPerChildren, setOneDepthLevel, BaseViewItemPropsComponent, MoReportValuePipe, ExecuteDynamicCommand, PictureFieldSourcePipe, RotateImage, isImage, getIcon, GetViewableExtensions, UploadService, ColumnRendererBase, LayoutPanelBaseComponent, UlvMainService, scrollLayoutModeToContextEnvironment, getReportTypeDefaultPolicy, extractLayoutPolicyFromView, resolveReportLayoutPolicy, BaseColumnPropsComponent, ColumnService, BaseViewContentPropsComponent, CardViewService, enumValueToStringSize, PreventDefaulEvent, setTableThWidth, TableHeaderWidthMode, DEFAULT_OBJECT_ICON, calcContextMenuWidth, setColumnWidthByMaxMoContentWidth, shouldUseFreeColumnSize, calculateColumnWidth, calculateColumnContent, calculateColumnWidthFitToContainer, calculateFreeColumnSize, UlvHeightSizeType, NotificationService, DateRanges, EnumCaptionPipe, LogService, BreadcrumbService, RoutingService, isFirefox, IsDarkMode, isFunction, FilesValidationHelper, getValidExtension, getImagePath, LinearListHelper, FormToolbarBaseComponent, FormBaseComponent, BaseController, TEMPLATE_ENGINE, getFieldValue, FindColumnsPipe, FieldViewBase, ContainerComponent, DialogParams, ContainerService, FindToolbarItem, FindLayoutSettingFromLayout94, FormPropsBaseComponent, UiService, measureText2, NumberBaseComponent, getColumnValueOfMoDataList, ImageMimeType, BaseFormToolbaritemPropsComponent, NetworkStatusService, isInLocalMode, FillAllLayoutControls, ApplicationCtrlrService, ReportNavigatorComponent, DeviceWidth, FORM_DIALOG_COMPONENT, NOTIFICATAION_POPUP_SERVER, TOAST_SERVICE, BaseModule, DynamicComponentService, BarsaNovinRayCoreModule, ResizableModule, DIALOG_SERVICE } from 'barsa-novin-ray-core';
8
+ import { getUniqueId, BaseComponent, ReportViewBaseComponent, BarsaApi, LayoutItemBaseComponent, getDeviceIsMobile, BbbTranslatePipe, LayoutService, measureText, getLabelWidth, searchEx, multilevelSort, SortDirection, sortEx, BaseUlvSettingComponent, getResetGridSettings, FormComponent, createFormPanelMetaConditions, ReportBaseComponent, SelectionMode, DEFAULT_REPORT_LAYOUT_POLICY, ScrollLayoutContextHolder, EntitySettingsStore, FormPanelService, LayoutMainContentService, GetAllColumnsSorted, getParentHeight, getControlSizeMode, getDeviceIsDesktop, getDeviceIsTablet, getGridSettings, FieldBaseComponent, PortalService, getDateService as getDateService$1, DateService, DateMiladiService, DateHijriService, DateShamsiService, BaseDirective, DynamicDarkColorPipe, EllipsifyDirective, createGridEditorFormPanel, executeUlvCommandHandler, TabpageService, LocalStorageService, CalendarSettingsStore, getAllItemsPerChildren, setOneDepthLevel, BaseViewItemPropsComponent, MoReportValuePipe, ExecuteDynamicCommand, PictureFieldSourcePipe, RotateImage, isImage, getIcon, GetViewableExtensions, UploadService, ColumnRendererBase, LayoutPanelBaseComponent, UlvMainService, scrollLayoutModeToContextEnvironment, getReportTypeDefaultPolicy, extractLayoutPolicyFromView, resolveReportLayoutPolicy, BaseColumnPropsComponent, ColumnService, BaseViewContentPropsComponent, CardViewService, enumValueToStringSize, PreventDefaulEvent, setTableThWidth, TableHeaderWidthMode, DEFAULT_OBJECT_ICON, calcContextMenuWidth, setColumnWidthByMaxMoContentWidth, shouldUseFreeColumnSize, calculateColumnWidth, calculateColumnContent, calculateColumnWidthFitToContainer, calculateFreeColumnSize, UlvHeightSizeType, NotificationService, DateRanges, EnumCaptionPipe, LogService, BreadcrumbService, RoutingService, isFirefox, IsDarkMode, isFunction, FilesValidationHelper, getValidExtension, getImagePath, LinearListHelper, FormToolbarBaseComponent, FormBaseComponent, BaseController, TEMPLATE_ENGINE, getFieldValue, FindColumnsPipe, FieldViewBase, ContainerComponent, DialogParams, ContainerService, FindToolbarItem, FindLayoutSettingFromLayout94, hhmmToMs, FormPropsBaseComponent, UiService, measureText2, NumberBaseComponent, getColumnValueOfMoDataList, ImageMimeType, BaseFormToolbaritemPropsComponent, NetworkStatusService, isInLocalMode, FillAllLayoutControls, ApplicationCtrlrService, ReportNavigatorComponent, DeviceWidth, FORM_DIALOG_COMPONENT, NOTIFICATAION_POPUP_SERVER, TOAST_SERVICE, BaseModule, DynamicComponentService, BarsaNovinRayCoreModule, ResizableModule, DIALOG_SERVICE } from 'barsa-novin-ray-core';
9
9
  import * as i1 from '@angular/common';
10
10
  import { CommonModule } from '@angular/common';
11
11
  import * as i1$1 from '@angular/forms';
@@ -1336,11 +1336,11 @@ class LayoutControlComponent extends LayoutItemBaseComponent {
1336
1336
  }
1337
1337
  }
1338
1338
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: LayoutControlComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1339
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.8", type: LayoutControlComponent, isStandalone: false, selector: "bsu-layout-control", inputs: { inlineEdit: "inlineEdit", cellEdit: "cellEdit", caption: "caption", focusControl: "focusControl", showLabel: "showLabel", maxLabelWidth: "maxLabelWidth", hasHorizontalText: "hasHorizontalText", contentDensity: "contentDensity", flex: "flex", RefreshLabel: "RefreshLabel", SetVisible: "SetVisible" }, outputs: { events: "events" }, host: { properties: { "class.layout-control": "this.layoutControlClass", "class.row-direction": "this.isRowDirection", "class.row-reverse-direction": "this.isRowReverseDirection", "class.column-direction": "this.isColumnDirection", "class.column-reverse-direction": "this.isColumnReverseDirection", "class.container-field": "this.isContainer", "class.readonlyiswraped": "this.readonlyiswraped", "class.labelnotinrow": "this._labelNotInRow", "style.max-width": "this.maxWidth", "style.min-width": "this.minWidth", "style.min-height": "this.minHeight", "style.height": "this.height", "attr.isCheckbox": "this.isCheckbox", "attr.isButton": "this.isButton", "attr.issinglepicture": "this.isSinglePicture", "attr.minWidth": "this.attrMinWidth", "attr.ismobile": "this.isMobile", "attr.controlId": "this.attrControlId", "attr.caption": "this.attrCaption", "attr.hidelabel": "this.attrHideLabel" } }, providers: [LayoutService], viewQueries: [{ propertyName: "tempLabelRef", first: true, predicate: ["tempLabelRef"], descendants: true, read: ElementRef }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "@if (!hide) { @if (labelVisible) {\r\n<bsu-ly-label\r\n [attr.labelWidth]=\"labelWidth\"\r\n [attr.location]=\"config.TextLocation\"\r\n [attrRtl]\r\n #tempLabelRef\r\n [class.no-padding]=\"config.Padding[0] === 0\"\r\n [config]=\"config\"\r\n [caption]=\"labelCaption\"\r\n [title]=\"labelTitle\"\r\n [translateCaption]=\"translateCaption\"\r\n [originalWidth]=\"labelWidth\"\r\n [style.min-width]=\"\r\n isCheckbox\r\n ? checkboxWidth\r\n : (config.CaptionSetting?.AlignMode === 'AutoSize' && !isMobile) || (isMobile && controlIsReadonly)\r\n ? 'fit-content'\r\n : isColumnDirection || isColumnReverseDirection\r\n ? '100%'\r\n : maxLabelWidth + 'px'\r\n \"\r\n [style.width]=\"\r\n (config.CaptionSetting?.AlignMode === 'AutoSize' && !isMobile) || (isMobile && (isCheckbox || controlIsReadonly))\r\n ? 'auto'\r\n : isColumnDirection || isColumnReverseDirection\r\n ? '100%'\r\n : maxLabelWidth + 'px'\r\n \"\r\n [isMandatory]=\"isMandatory\"\r\n [fieldIcon]=\"fieldIcon\"\r\n [attr.autosize]=\"config.CaptionSetting?.AlignMode ? true:null\"\r\n [helpDescription]=\"helpDescription\"\r\n [originalXtype]=\"originalXtype\"\r\n [textVisible]=\"textVisible\"\r\n [isColumn]=\"isColumnDirection || isColumnReverseDirection\"\r\n></bsu-ly-label>\r\n}\r\n<label [attr.visible]=\"labelVisible\" class=\"horizontal-label\" [innerHtml]=\"emptyText\"></label>\r\n<bnrc-field-ui\r\n [attr.xtype]=\"config.FieldUi.originalXtype\"\r\n [attr.fieldWidth]=\"layoutControlWidth\"\r\n [attr.isCheckbox]=\"isCheckbox\"\r\n [attr.isbutton]=\"isButton\"\r\n [style.flex-grow]=\"isCheckbox ? 1 : 0\"\r\n [class.no-padding]=\"config.Padding[0] === 0\"\r\n [customField]=\"config.FieldUi\"\r\n [layoutInfo]=\"config\"\r\n [inlineEdit]=\"inlineEdit\"\r\n [cellEdit]=\"cellEdit\"\r\n [formHeight]=\"(formHeight$ | async)!!\"\r\n [focusControl]=\"focusControl\"\r\n [isSearchPanel]=\"isSearchPanel\"\r\n [style.height]=\"isUlv ? '100%' : 'auto'\"\r\n [attr.isulv]=\"isUlv\"\r\n></bnrc-field-ui>\r\n}\r\n", styles: [":host{width:100%;display:flex}:host[ismobile=true].isUlv{width:100%!important}:host bnrc-field-ui ::ng-deep>:first-child{min-height:var(--layout-control-height)}.form-item-label-container{display:flex;position:relative}.lbl-temp{position:absolute;visibility:hidden}bsu-ly-label{padding:0 5px;margin:auto}bsu-ly-label[location=Left]{direction:ltr}bsu-ly-label[location=Right]{direction:rtl}bsu-ly-label[autosize=true]{margin:inherit;margin-top:auto;margin-bottom:auto}bnrc-field-ui[xtype=\"Ui.CheckBox\"]{padding:0}@media screen and (max-width:599px){:host{height:auto}:host:not([isbutton=true]){min-width:7rem}bnrc-field-ui:not([isbutton=true],[isulv=true]){height:auto!important}}\n"], dependencies: [{ kind: "component", type: i2.FieldUiComponent, selector: "bnrc-field-ui", inputs: ["isSearchPanel", "customField", "componentUi", "layoutInfo", "inlineEdit", "focusControl", "cellEdit", "formHeight"] }, { kind: "directive", type: i2.AttrRtlDirective, selector: "[attrRtl]", inputs: ["attrRtl"] }, { kind: "component", type: LyLabelComponent, selector: "bsu-ly-label", inputs: ["originalWidth", "minWidth", "translateCaption", "caption", "captionIcon", "helpDescription", "isColumn", "isMandatory", "fieldIcon", "originalXtype", "title", "textVisible"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1339
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.8", type: LayoutControlComponent, isStandalone: false, selector: "bsu-layout-control", inputs: { inlineEdit: "inlineEdit", cellEdit: "cellEdit", caption: "caption", focusControl: "focusControl", showLabel: "showLabel", maxLabelWidth: "maxLabelWidth", hasHorizontalText: "hasHorizontalText", contentDensity: "contentDensity", flex: "flex", RefreshLabel: "RefreshLabel", SetVisible: "SetVisible" }, outputs: { events: "events" }, host: { properties: { "class.layout-control": "this.layoutControlClass", "class.row-direction": "this.isRowDirection", "class.row-reverse-direction": "this.isRowReverseDirection", "class.column-direction": "this.isColumnDirection", "class.column-reverse-direction": "this.isColumnReverseDirection", "class.container-field": "this.isContainer", "class.readonlyiswraped": "this.readonlyiswraped", "class.labelnotinrow": "this._labelNotInRow", "style.max-width": "this.maxWidth", "style.min-width": "this.minWidth", "style.min-height": "this.minHeight", "style.height": "this.height", "attr.isCheckbox": "this.isCheckbox", "attr.isButton": "this.isButton", "attr.issinglepicture": "this.isSinglePicture", "attr.minWidth": "this.attrMinWidth", "attr.ismobile": "this.isMobile", "attr.controlId": "this.attrControlId", "attr.caption": "this.attrCaption", "attr.hidelabel": "this.attrHideLabel" } }, providers: [LayoutService], viewQueries: [{ propertyName: "tempLabelRef", first: true, predicate: ["tempLabelRef"], descendants: true, read: ElementRef }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "@if (!hide) { @if (labelVisible) {\r\n<bsu-ly-label\r\n [attr.labelWidth]=\"labelWidth\"\r\n [attr.location]=\"config.TextLocation\"\r\n [attrRtl]\r\n #tempLabelRef\r\n [class.no-padding]=\"config.Padding[0] === 0\"\r\n [config]=\"config\"\r\n [caption]=\"labelCaption\"\r\n [title]=\"labelTitle\"\r\n [translateCaption]=\"translateCaption\"\r\n [originalWidth]=\"labelWidth\"\r\n [style.min-width]=\"\r\n isCheckbox\r\n ? checkboxWidth\r\n : (config.CaptionSetting?.AlignMode === 'AutoSize' && !isMobile) || (isMobile && controlIsReadonly)\r\n ? 'fit-content'\r\n : isColumnDirection || isColumnReverseDirection\r\n ? '100%'\r\n : maxLabelWidth + 'px'\r\n \"\r\n [style.width]=\"\r\n (config.CaptionSetting?.AlignMode === 'AutoSize' && !isMobile) || (isMobile && (isCheckbox || controlIsReadonly))\r\n ? 'auto'\r\n : isColumnDirection || isColumnReverseDirection\r\n ? '100%'\r\n : maxLabelWidth + 'px'\r\n \"\r\n [isMandatory]=\"isMandatory\"\r\n [fieldIcon]=\"fieldIcon\"\r\n [attr.autosize]=\"config.CaptionSetting?.AlignMode ? true:null\"\r\n [helpDescription]=\"helpDescription\"\r\n [originalXtype]=\"originalXtype\"\r\n [textVisible]=\"textVisible\"\r\n [isColumn]=\"isColumnDirection || isColumnReverseDirection\"\r\n></bsu-ly-label>\r\n}\r\n<label [attr.visible]=\"labelVisible\" class=\"horizontal-label\" [innerHtml]=\"emptyText\"></label>\r\n<bnrc-field-ui\r\n [attr.xtype]=\"config.FieldUi.originalXtype\"\r\n [attr.fieldWidth]=\"layoutControlWidth\"\r\n [attr.isCheckbox]=\"isCheckbox\"\r\n [attr.isbutton]=\"isButton\"\r\n [style.flex-grow]=\"isCheckbox ? 1 : 0\"\r\n [class.no-padding]=\"config.Padding[0] === 0\"\r\n [customField]=\"config.FieldUi\"\r\n [layoutInfo]=\"config\"\r\n [inlineEdit]=\"inlineEdit\"\r\n [cellEdit]=\"cellEdit\"\r\n [formHeight]=\"(formHeight$ | async)!!\"\r\n [focusControl]=\"focusControl\"\r\n [isSearchPanel]=\"isSearchPanel\"\r\n [style.height]=\"isUlv ? '100%' : 'auto'\"\r\n [attr.isulv]=\"isUlv\"\r\n></bnrc-field-ui>\r\n}\r\n", styles: [":host{width:100%;display:flex}:host[ismobile=true].isUlv{width:100%!important}:host bnrc-field-ui ::ng-deep>:first-child{min-height:var(--layout-control-height)}.form-item-label-container{display:flex;position:relative}.lbl-temp{position:absolute;visibility:hidden}bsu-ly-label{margin:auto}bsu-ly-label[location=Left]{direction:ltr}bsu-ly-label[location=Right]{direction:rtl}bsu-ly-label[autosize=true]{margin:inherit;margin-top:auto;margin-bottom:auto}bnrc-field-ui[xtype=\"Ui.CheckBox\"]{padding:0}@media screen and (max-width:599px){:host{height:auto}:host:not([isbutton=true]){min-width:7rem}bnrc-field-ui:not([isbutton=true],[isulv=true]){height:auto!important}}\n"], dependencies: [{ kind: "component", type: i2.FieldUiComponent, selector: "bnrc-field-ui", inputs: ["isSearchPanel", "customField", "componentUi", "layoutInfo", "inlineEdit", "focusControl", "cellEdit", "formHeight"] }, { kind: "directive", type: i2.AttrRtlDirective, selector: "[attrRtl]", inputs: ["attrRtl"] }, { kind: "component", type: LyLabelComponent, selector: "bsu-ly-label", inputs: ["originalWidth", "minWidth", "translateCaption", "caption", "captionIcon", "helpDescription", "isColumn", "isMandatory", "fieldIcon", "originalXtype", "title", "textVisible"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1340
1340
  }
1341
1341
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: LayoutControlComponent, decorators: [{
1342
1342
  type: Component,
1343
- args: [{ selector: 'bsu-layout-control', providers: [LayoutService], changeDetection: ChangeDetectionStrategy.OnPush, standalone: false, template: "@if (!hide) { @if (labelVisible) {\r\n<bsu-ly-label\r\n [attr.labelWidth]=\"labelWidth\"\r\n [attr.location]=\"config.TextLocation\"\r\n [attrRtl]\r\n #tempLabelRef\r\n [class.no-padding]=\"config.Padding[0] === 0\"\r\n [config]=\"config\"\r\n [caption]=\"labelCaption\"\r\n [title]=\"labelTitle\"\r\n [translateCaption]=\"translateCaption\"\r\n [originalWidth]=\"labelWidth\"\r\n [style.min-width]=\"\r\n isCheckbox\r\n ? checkboxWidth\r\n : (config.CaptionSetting?.AlignMode === 'AutoSize' && !isMobile) || (isMobile && controlIsReadonly)\r\n ? 'fit-content'\r\n : isColumnDirection || isColumnReverseDirection\r\n ? '100%'\r\n : maxLabelWidth + 'px'\r\n \"\r\n [style.width]=\"\r\n (config.CaptionSetting?.AlignMode === 'AutoSize' && !isMobile) || (isMobile && (isCheckbox || controlIsReadonly))\r\n ? 'auto'\r\n : isColumnDirection || isColumnReverseDirection\r\n ? '100%'\r\n : maxLabelWidth + 'px'\r\n \"\r\n [isMandatory]=\"isMandatory\"\r\n [fieldIcon]=\"fieldIcon\"\r\n [attr.autosize]=\"config.CaptionSetting?.AlignMode ? true:null\"\r\n [helpDescription]=\"helpDescription\"\r\n [originalXtype]=\"originalXtype\"\r\n [textVisible]=\"textVisible\"\r\n [isColumn]=\"isColumnDirection || isColumnReverseDirection\"\r\n></bsu-ly-label>\r\n}\r\n<label [attr.visible]=\"labelVisible\" class=\"horizontal-label\" [innerHtml]=\"emptyText\"></label>\r\n<bnrc-field-ui\r\n [attr.xtype]=\"config.FieldUi.originalXtype\"\r\n [attr.fieldWidth]=\"layoutControlWidth\"\r\n [attr.isCheckbox]=\"isCheckbox\"\r\n [attr.isbutton]=\"isButton\"\r\n [style.flex-grow]=\"isCheckbox ? 1 : 0\"\r\n [class.no-padding]=\"config.Padding[0] === 0\"\r\n [customField]=\"config.FieldUi\"\r\n [layoutInfo]=\"config\"\r\n [inlineEdit]=\"inlineEdit\"\r\n [cellEdit]=\"cellEdit\"\r\n [formHeight]=\"(formHeight$ | async)!!\"\r\n [focusControl]=\"focusControl\"\r\n [isSearchPanel]=\"isSearchPanel\"\r\n [style.height]=\"isUlv ? '100%' : 'auto'\"\r\n [attr.isulv]=\"isUlv\"\r\n></bnrc-field-ui>\r\n}\r\n", styles: [":host{width:100%;display:flex}:host[ismobile=true].isUlv{width:100%!important}:host bnrc-field-ui ::ng-deep>:first-child{min-height:var(--layout-control-height)}.form-item-label-container{display:flex;position:relative}.lbl-temp{position:absolute;visibility:hidden}bsu-ly-label{padding:0 5px;margin:auto}bsu-ly-label[location=Left]{direction:ltr}bsu-ly-label[location=Right]{direction:rtl}bsu-ly-label[autosize=true]{margin:inherit;margin-top:auto;margin-bottom:auto}bnrc-field-ui[xtype=\"Ui.CheckBox\"]{padding:0}@media screen and (max-width:599px){:host{height:auto}:host:not([isbutton=true]){min-width:7rem}bnrc-field-ui:not([isbutton=true],[isulv=true]){height:auto!important}}\n"] }]
1343
+ args: [{ selector: 'bsu-layout-control', providers: [LayoutService], changeDetection: ChangeDetectionStrategy.OnPush, standalone: false, template: "@if (!hide) { @if (labelVisible) {\r\n<bsu-ly-label\r\n [attr.labelWidth]=\"labelWidth\"\r\n [attr.location]=\"config.TextLocation\"\r\n [attrRtl]\r\n #tempLabelRef\r\n [class.no-padding]=\"config.Padding[0] === 0\"\r\n [config]=\"config\"\r\n [caption]=\"labelCaption\"\r\n [title]=\"labelTitle\"\r\n [translateCaption]=\"translateCaption\"\r\n [originalWidth]=\"labelWidth\"\r\n [style.min-width]=\"\r\n isCheckbox\r\n ? checkboxWidth\r\n : (config.CaptionSetting?.AlignMode === 'AutoSize' && !isMobile) || (isMobile && controlIsReadonly)\r\n ? 'fit-content'\r\n : isColumnDirection || isColumnReverseDirection\r\n ? '100%'\r\n : maxLabelWidth + 'px'\r\n \"\r\n [style.width]=\"\r\n (config.CaptionSetting?.AlignMode === 'AutoSize' && !isMobile) || (isMobile && (isCheckbox || controlIsReadonly))\r\n ? 'auto'\r\n : isColumnDirection || isColumnReverseDirection\r\n ? '100%'\r\n : maxLabelWidth + 'px'\r\n \"\r\n [isMandatory]=\"isMandatory\"\r\n [fieldIcon]=\"fieldIcon\"\r\n [attr.autosize]=\"config.CaptionSetting?.AlignMode ? true:null\"\r\n [helpDescription]=\"helpDescription\"\r\n [originalXtype]=\"originalXtype\"\r\n [textVisible]=\"textVisible\"\r\n [isColumn]=\"isColumnDirection || isColumnReverseDirection\"\r\n></bsu-ly-label>\r\n}\r\n<label [attr.visible]=\"labelVisible\" class=\"horizontal-label\" [innerHtml]=\"emptyText\"></label>\r\n<bnrc-field-ui\r\n [attr.xtype]=\"config.FieldUi.originalXtype\"\r\n [attr.fieldWidth]=\"layoutControlWidth\"\r\n [attr.isCheckbox]=\"isCheckbox\"\r\n [attr.isbutton]=\"isButton\"\r\n [style.flex-grow]=\"isCheckbox ? 1 : 0\"\r\n [class.no-padding]=\"config.Padding[0] === 0\"\r\n [customField]=\"config.FieldUi\"\r\n [layoutInfo]=\"config\"\r\n [inlineEdit]=\"inlineEdit\"\r\n [cellEdit]=\"cellEdit\"\r\n [formHeight]=\"(formHeight$ | async)!!\"\r\n [focusControl]=\"focusControl\"\r\n [isSearchPanel]=\"isSearchPanel\"\r\n [style.height]=\"isUlv ? '100%' : 'auto'\"\r\n [attr.isulv]=\"isUlv\"\r\n></bnrc-field-ui>\r\n}\r\n", styles: [":host{width:100%;display:flex}:host[ismobile=true].isUlv{width:100%!important}:host bnrc-field-ui ::ng-deep>:first-child{min-height:var(--layout-control-height)}.form-item-label-container{display:flex;position:relative}.lbl-temp{position:absolute;visibility:hidden}bsu-ly-label{margin:auto}bsu-ly-label[location=Left]{direction:ltr}bsu-ly-label[location=Right]{direction:rtl}bsu-ly-label[autosize=true]{margin:inherit;margin-top:auto;margin-bottom:auto}bnrc-field-ui[xtype=\"Ui.CheckBox\"]{padding:0}@media screen and (max-width:599px){:host{height:auto}:host:not([isbutton=true]){min-width:7rem}bnrc-field-ui:not([isbutton=true],[isulv=true]){height:auto!important}}\n"] }]
1344
1344
  }], ctorParameters: () => [], propDecorators: { tempLabelRef: [{
1345
1345
  type: ViewChild,
1346
1346
  args: ['tempLabelRef', { read: ElementRef }]
@@ -2453,12 +2453,26 @@ class SapUiReportBaseComponent extends ReportBaseComponent {
2453
2453
  }
2454
2454
  _selectNextInlineRecord(mo) {
2455
2455
  const newMoDataList = this.moDataList;
2456
+ const navigation = mo.$InlineEditNavigation || { columnIndex: 0, direction: 'next' };
2457
+ delete mo.$InlineEditNavigation;
2458
+ const matchedIndex = newMoDataList.findIndex((c) => c.Id === mo.Id);
2459
+ const existsIndex = Number.isInteger(navigation.rowIndex) ? navigation.rowIndex : matchedIndex;
2460
+ if (navigation.direction === 'previous' && existsIndex > 0) {
2461
+ const previousMo = newMoDataList[existsIndex - 1];
2462
+ previousMo.$IsChecked = false;
2463
+ previousMo.$InlineEditNavigation = navigation;
2464
+ this._rowCheck(previousMo, existsIndex - 1);
2465
+ return;
2466
+ }
2456
2467
  if (!mo.$NewInlineMo) {
2457
- // select next record
2458
- const existsIndex = newMoDataList.findIndex((c) => c.Id === mo.Id);
2459
- if (existsIndex > -1 && existsIndex + 1 < newMoDataList.length) {
2460
- newMoDataList[existsIndex + 1].$IsChecked = false;
2461
- this._rowCheck(newMoDataList[existsIndex + 1], existsIndex + 1);
2468
+ const targetIndex = existsIndex + (navigation.direction === 'previous' ? -1 : 1);
2469
+ if (existsIndex > -1 && targetIndex >= 0 && targetIndex < newMoDataList.length) {
2470
+ newMoDataList[targetIndex].$IsChecked = false;
2471
+ newMoDataList[targetIndex].$InlineEditNavigation = navigation;
2472
+ this._rowCheck(newMoDataList[targetIndex], targetIndex);
2473
+ }
2474
+ else if (navigation.direction === 'previous') {
2475
+ this._rowCheck(mo, existsIndex);
2462
2476
  }
2463
2477
  else {
2464
2478
  newMoDataList.map((c) => {
@@ -2469,11 +2483,13 @@ class SapUiReportBaseComponent extends ReportBaseComponent {
2469
2483
  this._resetMoDataList(newMoDataList);
2470
2484
  return;
2471
2485
  }
2472
- this._addInlineMoToModataList(this._inlineReportCreateNewMo(true), true);
2486
+ const newInlineMo = this._inlineReportCreateNewMo(true);
2487
+ newInlineMo.$InlineEditNavigation = navigation;
2488
+ this._addInlineMoToModataList(newInlineMo, true);
2473
2489
  }
2474
2490
  return;
2475
2491
  }
2476
- else {
2492
+ else if (navigation.direction === 'next') {
2477
2493
  this._ulvMainService.newInlineMo(false);
2478
2494
  }
2479
2495
  }
@@ -5386,11 +5402,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
5386
5402
 
5387
5403
  class BarsaColumnRendererComponent extends ColumnRendererBase {
5388
5404
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: BarsaColumnRendererComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
5389
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.8", type: BarsaColumnRendererComponent, isStandalone: false, selector: "bsu-column-renderer,[colRenderer]", usesInheritance: true, ngImport: i0, template: "@if (column) {\r\n<ng-container *ngTemplateOutlet=\"editMode ? formControlTemplate : renderCellTemplate\"> </ng-container>\r\n}\r\n<ng-template #renderCellTemplate>\r\n @switch (column.FieldTypeId) { @case (42) {\r\n <ng-container *ngTemplateOutlet=\"renderCellImage\"></ng-container>\r\n } @case (33) {\r\n <ng-container *ngTemplateOutlet=\"renderCellFileInfo\"></ng-container>\r\n } @case (31) {\r\n <ng-container *ngTemplateOutlet=\"renderCellFileListKhati\"></ng-container>\r\n } @case (11) {\r\n <ng-container *ngTemplateOutlet=\"renderCellListTasavir\"></ng-container>\r\n } @case (5) {\r\n <ng-container\r\n *ngTemplateOutlet=\"column.Extra?.ShowCheckInGrid ? renderCellChecbox : renderChecboxImage\"\r\n ></ng-container>\r\n } @default {\r\n <ng-container *ngTemplateOutlet=\"renderGeneral\"></ng-container>\r\n } }\r\n</ng-template>\r\n<ng-template #renderGeneral>\r\n <div\r\n class=\"renderGeneral\"\r\n [class.onlyIcon]=\"column.Extra?.IconDisplayTypeEnum === 'Image'\"\r\n [style.width]=\"\"\r\n [attr.title]=\"value\"\r\n >\r\n @if (icon) {\r\n <img loading=\"lazy\" [attr.rtl]=\"rtl\" [src]=\"icon\" />\r\n }\r\n <!-- <fd-text\r\n #fdText\r\n *ngIf=\"column.Extra?.IconDisplayTypeEnum !== 'Image'\"\r\n [maxLines]=\"1\"\r\n [text]=\"value\"\r\n [fd-inline-help]=\"value\"\r\n [disabled]=\"!fdText._hasMore\"\r\n ></fd-text> -->\r\n\r\n <!-- <bsu-barsa-text-ellipsis\r\n [style.width]=\"column.$Width\"\r\n *ngIf=\"column.Extra?.IconDisplayTypeEnum !== 'Image'\"\r\n [text]=\"value\"\r\n></bsu-barsa-text-ellipsis> -->\r\n <!-- <div *ngIf=\"column.Extra?.IconDisplayTypeEnum !== 'Image'\" style=\"word-break:break-word\">\r\n{{ value }}\r\n</div> -->\r\n @if (column.Extra?.IconDisplayTypeEnum !== 'Image') { @if(!isMobile && !fdTextMode){\r\n <div\r\n [ellapsisText]=\"value\"\r\n [disableEllapsis]=\"editMode\"\r\n [class.ellapsis]=\"!disableEllapsis\"\r\n [columnValue]=\"value\"\r\n (ellapsised)=\"onElapsised($event)\"\r\n ></div>\r\n } @else{\r\n <fd-text [attr.title]=\"value\" class=\"col-value\" [text]=\"value\" [maxLines]=\"2\"></fd-text>\r\n } }\r\n </div>\r\n</ng-template>\r\n<ng-template #formControlTemplate>\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n !controlUi || controlUi.FieldUi.originalXtype === 'Ui.ReadOnlyField'\r\n ? renderCellTemplate\r\n : layoutControlTemplate\r\n \"\r\n ></ng-container>\r\n</ng-template>\r\n<ng-template #layoutControlTemplate>\r\n @if (controlUi) {\r\n <bsu-layout-control\r\n [inlineEdit]=\"true\"\r\n [caption]=\"column.Caption\"\r\n [cellEdit]=\"cellEdit\"\r\n [config]=\"controlUi\"\r\n [focusControl]=\"index === 0 && (isChecked || isNewInlineMo)\"\r\n [showLabel]=\"formLayoutShowLabel\"\r\n ></bsu-layout-control>\r\n }\r\n</ng-template>\r\n<ng-template #renderCellListTasavir>\r\n @if (mo[column.Name] && mo[column.Name].Images) {\r\n <div style=\"display: flex; flex-wrap: wrap; gap: 0.15rem\">\r\n @for (pic of mo[column.Name].Images; track pic) {\r\n <img\r\n fullscreen\r\n fullscreenFiles\r\n [files]=\"mo[column.Name].Images\"\r\n [isImageGallery]=\"true\"\r\n [deviceSize]=\"deviceSize\"\r\n [src]=\"pic.FileId | picFieldSrc: 'BarsaPicture.Thumbnail':null:'':32:32\"\r\n style=\"width: 3rem; height: 3rem\"\r\n loading=\"lazy\"\r\n />\r\n }\r\n </div>\r\n }\r\n</ng-template>\r\n<ng-template #renderCellFileListKhati>\r\n @if (mo[column.Name]) {\r\n <div class=\"file-viewer-attachments\">\r\n @for (file of mo[column.Name].Files; track file;let index=$index) { @if (!file.IsDeleted) {\r\n <bsu-file-viewer-popover\r\n #fileviewerPopover\r\n intersectionObserver\r\n [intersectionThreshold]=\"0.1\"\r\n (visibilityChange)=\"$event === 'Visible' && onSetMaxWidth()\"\r\n [file]=\"file\"\r\n [index]=\"index\"\r\n [attachmentViewType]=\"+attachmentViewType\"\r\n [files]=\"mo[column.Name].Files\"\r\n [deviceSize]=\"deviceSize\"\r\n [canDownload]=\"true\"\r\n [disableRemove]=\"true\"\r\n [fdType]=\"'transparent'\"\r\n preventDefault\r\n stopPropagation\r\n ></bsu-file-viewer-popover>\r\n }\r\n <!-- <fd-token *ngIf=\"!file.IsDeleted\" [readOnly]=\"true\">{{ file.FileName }}</fd-token> -->\r\n }\r\n </div>\r\n }\r\n</ng-template>\r\n<ng-template #renderCellFileInfo>\r\n @if (mo[column.Name]) {\r\n <fd-avatar\r\n [transparent]=\"true\"\r\n [size]=\"column.FieldTypeId === '42' || column.FieldTypeId === 42 ? 'xs' : deviceSize === 's' ? 's' : 'm'\"\r\n [image]=\"mo[column.Name] | picFieldSrc: 'PictureFileInfo':null:column.FieldDefId\"\r\n ></fd-avatar>\r\n }\r\n</ng-template>\r\n<ng-template #renderCellChecbox>\r\n <fd-icon [glyph]=\"mo[column.Name] === true ? 'accept' : 'less'\"></fd-icon>\r\n</ng-template>\r\n<ng-template #renderChecboxImage>\r\n @if (column.Extra?.TrueImage === '') { @if(value ===true || value==='true'){\r\n {{ column.Extra.TrueDisplayString | bbbTranslate }}\r\n }@else if(value===false || value==='false'){\r\n {{ column.Extra.FalseDisplayString | bbbTranslate }}\r\n }@else {\r\n {{ value | bbbTranslate }}\r\n } } @if (column.Extra?.TrueImage !== '') {\r\n <img\r\n loading=\"lazy\"\r\n [src]=\"\r\n mo[column.Name]\r\n ? column.Extra?.TrueImage\r\n : column.Extra?.FalseImage\r\n \"\r\n class=\"tw-h-fit tw-m-auto\"\r\n />\r\n }\r\n</ng-template>\r\n<ng-template #renderCellImage>\r\n @if (mo[column.Name] && mo[column.Name]['Url']) {\r\n <fd-avatar\r\n [size]=\"column.FieldTypeId === '42' || column.FieldTypeId === 42 ? 'xs' : deviceSize === 's' ? 's' : 'm'\"\r\n [transparent]=\"true\"\r\n [image]=\"mo[column.Name]['Url']\"\r\n ></fd-avatar>\r\n }\r\n</ng-template>\r\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}.renderGeneral{display:flex;width:100%;height:100%;align-items:center;justify-content:start;gap:.2rem}.renderGeneral.onlyIcon{justify-content:center}fd-text.col-value ::ng-deep p{color:inherit;font-size:inherit;font-family:inherit;font-weight:inherit}\n"], dependencies: [{ kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2.IntersectionObserverDirective, selector: "[intersectionObserver]", inputs: ["intersectionDebounce", "intersectionRootMargin", "intersectionRoot", "intersectionThreshold"], outputs: ["visibilityChange"] }, { kind: "directive", type: i2.EllapsisTextDirective, selector: "[ellapsisText]", inputs: ["ellapsisText", "fontSize", "disableEllapsis"], outputs: ["ellapsised"] }, { kind: "directive", type: i2.StopPropagationDirective, selector: "[stopPropagation]" }, { kind: "directive", type: i2.PreventDefaultDirective, selector: "[preventDefault]" }, { kind: "directive", type: i2.ColumnValueDirective, selector: "[columnValue]", inputs: ["columnValue"] }, { kind: "component", type: i4$4.AvatarComponent, selector: "fd-avatar", inputs: ["id", "ariaLabel", "ariaLabelledby", "label", "size", "font", "glyph", "zoomGlyph", "circle", "interactive", "transparent", "contain", "placeholder", "tile", "border", "colorAccent", "colorIndication", "random", "clickable", "valueState", "image", "alterIcon", "backupImage"], outputs: ["avatarClicked", "zoomGlyphClicked"] }, { kind: "component", type: i3.IconComponent, selector: "fd-icon", inputs: ["glyph", "font", "color", "background", "size", "class", "ariaLabel", "ariaHidden"], outputs: ["ariaHiddenChange"] }, { kind: "component", type: i5$3.TextComponent, selector: "fd-text", inputs: ["text", "maxLines", "whitespaces", "hyphenation", "expandable", "isCollapsed", "subline"], outputs: ["isCollapsedChange"] }, { kind: "component", type: LayoutControlComponent, selector: "bsu-layout-control", inputs: ["inlineEdit", "cellEdit", "caption", "focusControl", "showLabel", "maxLabelWidth", "hasHorizontalText", "contentDensity", "flex", "RefreshLabel", "SetVisible"], outputs: ["events"] }, { kind: "component", type: FileViewerPopoverComponent, selector: "bsu-file-viewer-popover", inputs: ["files", "file", "index", "deviceSize", "canDownload", "disableRemove", "fdType", "attachmentViewType"], outputs: ["remove"] }, { kind: "directive", type: FullscreenFilesDirective, selector: "[fullscreenFiles]", inputs: ["files", "selectedId", "title", "deviceSize", "isImageGallery", "component"] }, { kind: "pipe", type: i2.PictureFieldSourcePipe, name: "picFieldSrc" }, { kind: "pipe", type: i2.BbbTranslatePipe, name: "bbbTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
5405
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.8", type: BarsaColumnRendererComponent, isStandalone: false, selector: "bsu-column-renderer,[colRenderer]", usesInheritance: true, ngImport: i0, template: "@if (column) {\r\n<ng-container *ngTemplateOutlet=\"editMode ? formControlTemplate : renderCellTemplate\"> </ng-container>\r\n}\r\n<ng-template #renderCellTemplate>\r\n @switch (column.FieldTypeId) { @case (42) {\r\n <ng-container *ngTemplateOutlet=\"renderCellImage\"></ng-container>\r\n } @case (33) {\r\n <ng-container *ngTemplateOutlet=\"renderCellFileInfo\"></ng-container>\r\n } @case (31) {\r\n <ng-container *ngTemplateOutlet=\"renderCellFileListKhati\"></ng-container>\r\n } @case (11) {\r\n <ng-container *ngTemplateOutlet=\"renderCellListTasavir\"></ng-container>\r\n } @case (5) {\r\n <ng-container\r\n *ngTemplateOutlet=\"column.Extra?.ShowCheckInGrid ? renderCellChecbox : renderChecboxImage\"\r\n ></ng-container>\r\n } @default {\r\n <ng-container *ngTemplateOutlet=\"renderGeneral\"></ng-container>\r\n } }\r\n</ng-template>\r\n<ng-template #renderGeneral>\r\n <div\r\n class=\"renderGeneral\"\r\n [class.onlyIcon]=\"column.Extra?.IconDisplayTypeEnum === 'Image'\"\r\n [style.width]=\"\"\r\n [attr.title]=\"value\"\r\n >\r\n @if (icon) {\r\n <img loading=\"lazy\" [attr.rtl]=\"rtl\" [src]=\"icon\" />\r\n }\r\n <!-- <fd-text\r\n #fdText\r\n *ngIf=\"column.Extra?.IconDisplayTypeEnum !== 'Image'\"\r\n [maxLines]=\"1\"\r\n [text]=\"value\"\r\n [fd-inline-help]=\"value\"\r\n [disabled]=\"!fdText._hasMore\"\r\n ></fd-text> -->\r\n\r\n <!-- <bsu-barsa-text-ellipsis\r\n [style.width]=\"column.$Width\"\r\n *ngIf=\"column.Extra?.IconDisplayTypeEnum !== 'Image'\"\r\n [text]=\"value\"\r\n></bsu-barsa-text-ellipsis> -->\r\n <!-- <div *ngIf=\"column.Extra?.IconDisplayTypeEnum !== 'Image'\" style=\"word-break:break-word\">\r\n{{ value }}\r\n</div> -->\r\n @if (column.Extra?.IconDisplayTypeEnum !== 'Image') { @if(!isMobile && !fdTextMode){\r\n <div\r\n [ellapsisText]=\"value\"\r\n [disableEllapsis]=\"editMode\"\r\n [class.ellapsis]=\"!disableEllapsis\"\r\n [columnValue]=\"value\"\r\n (ellapsised)=\"onElapsised($event)\"\r\n ></div>\r\n } @else{\r\n <fd-text [attr.title]=\"value\" class=\"col-value\" [text]=\"value\" [maxLines]=\"2\"></fd-text>\r\n } }\r\n </div>\r\n</ng-template>\r\n<ng-template #formControlTemplate>\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n !controlUi || controlUi.FieldUi.originalXtype === 'Ui.ReadOnlyField'\r\n ? renderCellTemplate\r\n : layoutControlTemplate\r\n \"\r\n ></ng-container>\r\n</ng-template>\r\n<ng-template #layoutControlTemplate>\r\n @if (controlUi) {\r\n <bsu-layout-control\r\n [inlineEdit]=\"true\"\r\n [caption]=\"column.Caption\"\r\n [cellEdit]=\"cellEdit\"\r\n [config]=\"controlUi\"\r\n [showLabel]=\"formLayoutShowLabel\"\n ></bsu-layout-control>\r\n }\r\n</ng-template>\r\n<ng-template #renderCellListTasavir>\r\n @if (mo[column.Name] && mo[column.Name].Images) {\r\n <div style=\"display: flex; flex-wrap: wrap; gap: 0.15rem\">\r\n @for (pic of mo[column.Name].Images; track pic) {\r\n <img\r\n fullscreen\r\n fullscreenFiles\r\n [files]=\"mo[column.Name].Images\"\r\n [isImageGallery]=\"true\"\r\n [deviceSize]=\"deviceSize\"\r\n [src]=\"pic.FileId | picFieldSrc: 'BarsaPicture.Thumbnail':null:'':32:32\"\r\n style=\"width: 3rem; height: 3rem\"\r\n loading=\"lazy\"\r\n />\r\n }\r\n </div>\r\n }\r\n</ng-template>\r\n<ng-template #renderCellFileListKhati>\r\n @if (mo[column.Name]) {\r\n <div class=\"file-viewer-attachments\">\r\n @for (file of mo[column.Name].Files; track file;let index=$index) { @if (!file.IsDeleted) {\r\n <bsu-file-viewer-popover\r\n #fileviewerPopover\r\n intersectionObserver\r\n [intersectionThreshold]=\"0.1\"\r\n (visibilityChange)=\"$event === 'Visible' && onSetMaxWidth()\"\r\n [file]=\"file\"\r\n [index]=\"index\"\r\n [attachmentViewType]=\"+attachmentViewType\"\r\n [files]=\"mo[column.Name].Files\"\r\n [deviceSize]=\"deviceSize\"\r\n [canDownload]=\"true\"\r\n [disableRemove]=\"true\"\r\n [fdType]=\"'transparent'\"\r\n preventDefault\r\n stopPropagation\r\n ></bsu-file-viewer-popover>\r\n }\r\n <!-- <fd-token *ngIf=\"!file.IsDeleted\" [readOnly]=\"true\">{{ file.FileName }}</fd-token> -->\r\n }\r\n </div>\r\n }\r\n</ng-template>\r\n<ng-template #renderCellFileInfo>\r\n @if (mo[column.Name]) {\r\n <fd-avatar\r\n [transparent]=\"true\"\r\n [size]=\"column.FieldTypeId === '42' || column.FieldTypeId === 42 ? 'xs' : deviceSize === 's' ? 's' : 'm'\"\r\n [image]=\"mo[column.Name] | picFieldSrc: 'PictureFileInfo':null:column.FieldDefId\"\r\n ></fd-avatar>\r\n }\r\n</ng-template>\r\n<ng-template #renderCellChecbox>\r\n <fd-icon [glyph]=\"mo[column.Name] === true ? 'accept' : 'less'\"></fd-icon>\r\n</ng-template>\r\n<ng-template #renderChecboxImage>\r\n @if (column.Extra?.TrueImage === '') { @if(value ===true || value==='true'){\r\n {{ column.Extra.TrueDisplayString | bbbTranslate }}\r\n }@else if(value===false || value==='false'){\r\n {{ column.Extra.FalseDisplayString | bbbTranslate }}\r\n }@else {\r\n {{ value | bbbTranslate }}\r\n } } @if (column.Extra?.TrueImage !== '') {\r\n <img\r\n loading=\"lazy\"\r\n [src]=\"\r\n mo[column.Name]\r\n ? column.Extra?.TrueImage\r\n : column.Extra?.FalseImage\r\n \"\r\n class=\"tw-h-fit tw-m-auto\"\r\n />\r\n }\r\n</ng-template>\r\n<ng-template #renderCellImage>\r\n @if (mo[column.Name] && mo[column.Name]['Url']) {\r\n <fd-avatar\r\n [size]=\"column.FieldTypeId === '42' || column.FieldTypeId === 42 ? 'xs' : deviceSize === 's' ? 's' : 'm'\"\r\n [transparent]=\"true\"\r\n [image]=\"mo[column.Name]['Url']\"\r\n ></fd-avatar>\r\n }\r\n</ng-template>\r\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}.renderGeneral{display:flex;width:100%;height:100%;align-items:center;justify-content:start;gap:.2rem}.renderGeneral.onlyIcon{justify-content:center}fd-text.col-value ::ng-deep p{color:inherit;font-size:inherit;font-family:inherit;font-weight:inherit}\n"], dependencies: [{ kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2.IntersectionObserverDirective, selector: "[intersectionObserver]", inputs: ["intersectionDebounce", "intersectionRootMargin", "intersectionRoot", "intersectionThreshold"], outputs: ["visibilityChange"] }, { kind: "directive", type: i2.EllapsisTextDirective, selector: "[ellapsisText]", inputs: ["ellapsisText", "fontSize", "disableEllapsis"], outputs: ["ellapsised"] }, { kind: "directive", type: i2.StopPropagationDirective, selector: "[stopPropagation]" }, { kind: "directive", type: i2.PreventDefaultDirective, selector: "[preventDefault]" }, { kind: "directive", type: i2.ColumnValueDirective, selector: "[columnValue]", inputs: ["columnValue"] }, { kind: "component", type: i4$4.AvatarComponent, selector: "fd-avatar", inputs: ["id", "ariaLabel", "ariaLabelledby", "label", "size", "font", "glyph", "zoomGlyph", "circle", "interactive", "transparent", "contain", "placeholder", "tile", "border", "colorAccent", "colorIndication", "random", "clickable", "valueState", "image", "alterIcon", "backupImage"], outputs: ["avatarClicked", "zoomGlyphClicked"] }, { kind: "component", type: i3.IconComponent, selector: "fd-icon", inputs: ["glyph", "font", "color", "background", "size", "class", "ariaLabel", "ariaHidden"], outputs: ["ariaHiddenChange"] }, { kind: "component", type: i5$3.TextComponent, selector: "fd-text", inputs: ["text", "maxLines", "whitespaces", "hyphenation", "expandable", "isCollapsed", "subline"], outputs: ["isCollapsedChange"] }, { kind: "component", type: LayoutControlComponent, selector: "bsu-layout-control", inputs: ["inlineEdit", "cellEdit", "caption", "focusControl", "showLabel", "maxLabelWidth", "hasHorizontalText", "contentDensity", "flex", "RefreshLabel", "SetVisible"], outputs: ["events"] }, { kind: "component", type: FileViewerPopoverComponent, selector: "bsu-file-viewer-popover", inputs: ["files", "file", "index", "deviceSize", "canDownload", "disableRemove", "fdType", "attachmentViewType"], outputs: ["remove"] }, { kind: "directive", type: FullscreenFilesDirective, selector: "[fullscreenFiles]", inputs: ["files", "selectedId", "title", "deviceSize", "isImageGallery", "component"] }, { kind: "pipe", type: i2.PictureFieldSourcePipe, name: "picFieldSrc" }, { kind: "pipe", type: i2.BbbTranslatePipe, name: "bbbTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
5390
5406
  }
5391
5407
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: BarsaColumnRendererComponent, decorators: [{
5392
5408
  type: Component,
5393
- args: [{ selector: 'bsu-column-renderer,[colRenderer]', changeDetection: ChangeDetectionStrategy.OnPush, standalone: false, template: "@if (column) {\r\n<ng-container *ngTemplateOutlet=\"editMode ? formControlTemplate : renderCellTemplate\"> </ng-container>\r\n}\r\n<ng-template #renderCellTemplate>\r\n @switch (column.FieldTypeId) { @case (42) {\r\n <ng-container *ngTemplateOutlet=\"renderCellImage\"></ng-container>\r\n } @case (33) {\r\n <ng-container *ngTemplateOutlet=\"renderCellFileInfo\"></ng-container>\r\n } @case (31) {\r\n <ng-container *ngTemplateOutlet=\"renderCellFileListKhati\"></ng-container>\r\n } @case (11) {\r\n <ng-container *ngTemplateOutlet=\"renderCellListTasavir\"></ng-container>\r\n } @case (5) {\r\n <ng-container\r\n *ngTemplateOutlet=\"column.Extra?.ShowCheckInGrid ? renderCellChecbox : renderChecboxImage\"\r\n ></ng-container>\r\n } @default {\r\n <ng-container *ngTemplateOutlet=\"renderGeneral\"></ng-container>\r\n } }\r\n</ng-template>\r\n<ng-template #renderGeneral>\r\n <div\r\n class=\"renderGeneral\"\r\n [class.onlyIcon]=\"column.Extra?.IconDisplayTypeEnum === 'Image'\"\r\n [style.width]=\"\"\r\n [attr.title]=\"value\"\r\n >\r\n @if (icon) {\r\n <img loading=\"lazy\" [attr.rtl]=\"rtl\" [src]=\"icon\" />\r\n }\r\n <!-- <fd-text\r\n #fdText\r\n *ngIf=\"column.Extra?.IconDisplayTypeEnum !== 'Image'\"\r\n [maxLines]=\"1\"\r\n [text]=\"value\"\r\n [fd-inline-help]=\"value\"\r\n [disabled]=\"!fdText._hasMore\"\r\n ></fd-text> -->\r\n\r\n <!-- <bsu-barsa-text-ellipsis\r\n [style.width]=\"column.$Width\"\r\n *ngIf=\"column.Extra?.IconDisplayTypeEnum !== 'Image'\"\r\n [text]=\"value\"\r\n></bsu-barsa-text-ellipsis> -->\r\n <!-- <div *ngIf=\"column.Extra?.IconDisplayTypeEnum !== 'Image'\" style=\"word-break:break-word\">\r\n{{ value }}\r\n</div> -->\r\n @if (column.Extra?.IconDisplayTypeEnum !== 'Image') { @if(!isMobile && !fdTextMode){\r\n <div\r\n [ellapsisText]=\"value\"\r\n [disableEllapsis]=\"editMode\"\r\n [class.ellapsis]=\"!disableEllapsis\"\r\n [columnValue]=\"value\"\r\n (ellapsised)=\"onElapsised($event)\"\r\n ></div>\r\n } @else{\r\n <fd-text [attr.title]=\"value\" class=\"col-value\" [text]=\"value\" [maxLines]=\"2\"></fd-text>\r\n } }\r\n </div>\r\n</ng-template>\r\n<ng-template #formControlTemplate>\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n !controlUi || controlUi.FieldUi.originalXtype === 'Ui.ReadOnlyField'\r\n ? renderCellTemplate\r\n : layoutControlTemplate\r\n \"\r\n ></ng-container>\r\n</ng-template>\r\n<ng-template #layoutControlTemplate>\r\n @if (controlUi) {\r\n <bsu-layout-control\r\n [inlineEdit]=\"true\"\r\n [caption]=\"column.Caption\"\r\n [cellEdit]=\"cellEdit\"\r\n [config]=\"controlUi\"\r\n [focusControl]=\"index === 0 && (isChecked || isNewInlineMo)\"\r\n [showLabel]=\"formLayoutShowLabel\"\r\n ></bsu-layout-control>\r\n }\r\n</ng-template>\r\n<ng-template #renderCellListTasavir>\r\n @if (mo[column.Name] && mo[column.Name].Images) {\r\n <div style=\"display: flex; flex-wrap: wrap; gap: 0.15rem\">\r\n @for (pic of mo[column.Name].Images; track pic) {\r\n <img\r\n fullscreen\r\n fullscreenFiles\r\n [files]=\"mo[column.Name].Images\"\r\n [isImageGallery]=\"true\"\r\n [deviceSize]=\"deviceSize\"\r\n [src]=\"pic.FileId | picFieldSrc: 'BarsaPicture.Thumbnail':null:'':32:32\"\r\n style=\"width: 3rem; height: 3rem\"\r\n loading=\"lazy\"\r\n />\r\n }\r\n </div>\r\n }\r\n</ng-template>\r\n<ng-template #renderCellFileListKhati>\r\n @if (mo[column.Name]) {\r\n <div class=\"file-viewer-attachments\">\r\n @for (file of mo[column.Name].Files; track file;let index=$index) { @if (!file.IsDeleted) {\r\n <bsu-file-viewer-popover\r\n #fileviewerPopover\r\n intersectionObserver\r\n [intersectionThreshold]=\"0.1\"\r\n (visibilityChange)=\"$event === 'Visible' && onSetMaxWidth()\"\r\n [file]=\"file\"\r\n [index]=\"index\"\r\n [attachmentViewType]=\"+attachmentViewType\"\r\n [files]=\"mo[column.Name].Files\"\r\n [deviceSize]=\"deviceSize\"\r\n [canDownload]=\"true\"\r\n [disableRemove]=\"true\"\r\n [fdType]=\"'transparent'\"\r\n preventDefault\r\n stopPropagation\r\n ></bsu-file-viewer-popover>\r\n }\r\n <!-- <fd-token *ngIf=\"!file.IsDeleted\" [readOnly]=\"true\">{{ file.FileName }}</fd-token> -->\r\n }\r\n </div>\r\n }\r\n</ng-template>\r\n<ng-template #renderCellFileInfo>\r\n @if (mo[column.Name]) {\r\n <fd-avatar\r\n [transparent]=\"true\"\r\n [size]=\"column.FieldTypeId === '42' || column.FieldTypeId === 42 ? 'xs' : deviceSize === 's' ? 's' : 'm'\"\r\n [image]=\"mo[column.Name] | picFieldSrc: 'PictureFileInfo':null:column.FieldDefId\"\r\n ></fd-avatar>\r\n }\r\n</ng-template>\r\n<ng-template #renderCellChecbox>\r\n <fd-icon [glyph]=\"mo[column.Name] === true ? 'accept' : 'less'\"></fd-icon>\r\n</ng-template>\r\n<ng-template #renderChecboxImage>\r\n @if (column.Extra?.TrueImage === '') { @if(value ===true || value==='true'){\r\n {{ column.Extra.TrueDisplayString | bbbTranslate }}\r\n }@else if(value===false || value==='false'){\r\n {{ column.Extra.FalseDisplayString | bbbTranslate }}\r\n }@else {\r\n {{ value | bbbTranslate }}\r\n } } @if (column.Extra?.TrueImage !== '') {\r\n <img\r\n loading=\"lazy\"\r\n [src]=\"\r\n mo[column.Name]\r\n ? column.Extra?.TrueImage\r\n : column.Extra?.FalseImage\r\n \"\r\n class=\"tw-h-fit tw-m-auto\"\r\n />\r\n }\r\n</ng-template>\r\n<ng-template #renderCellImage>\r\n @if (mo[column.Name] && mo[column.Name]['Url']) {\r\n <fd-avatar\r\n [size]=\"column.FieldTypeId === '42' || column.FieldTypeId === 42 ? 'xs' : deviceSize === 's' ? 's' : 'm'\"\r\n [transparent]=\"true\"\r\n [image]=\"mo[column.Name]['Url']\"\r\n ></fd-avatar>\r\n }\r\n</ng-template>\r\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}.renderGeneral{display:flex;width:100%;height:100%;align-items:center;justify-content:start;gap:.2rem}.renderGeneral.onlyIcon{justify-content:center}fd-text.col-value ::ng-deep p{color:inherit;font-size:inherit;font-family:inherit;font-weight:inherit}\n"] }]
5409
+ args: [{ selector: 'bsu-column-renderer,[colRenderer]', changeDetection: ChangeDetectionStrategy.OnPush, standalone: false, template: "@if (column) {\r\n<ng-container *ngTemplateOutlet=\"editMode ? formControlTemplate : renderCellTemplate\"> </ng-container>\r\n}\r\n<ng-template #renderCellTemplate>\r\n @switch (column.FieldTypeId) { @case (42) {\r\n <ng-container *ngTemplateOutlet=\"renderCellImage\"></ng-container>\r\n } @case (33) {\r\n <ng-container *ngTemplateOutlet=\"renderCellFileInfo\"></ng-container>\r\n } @case (31) {\r\n <ng-container *ngTemplateOutlet=\"renderCellFileListKhati\"></ng-container>\r\n } @case (11) {\r\n <ng-container *ngTemplateOutlet=\"renderCellListTasavir\"></ng-container>\r\n } @case (5) {\r\n <ng-container\r\n *ngTemplateOutlet=\"column.Extra?.ShowCheckInGrid ? renderCellChecbox : renderChecboxImage\"\r\n ></ng-container>\r\n } @default {\r\n <ng-container *ngTemplateOutlet=\"renderGeneral\"></ng-container>\r\n } }\r\n</ng-template>\r\n<ng-template #renderGeneral>\r\n <div\r\n class=\"renderGeneral\"\r\n [class.onlyIcon]=\"column.Extra?.IconDisplayTypeEnum === 'Image'\"\r\n [style.width]=\"\"\r\n [attr.title]=\"value\"\r\n >\r\n @if (icon) {\r\n <img loading=\"lazy\" [attr.rtl]=\"rtl\" [src]=\"icon\" />\r\n }\r\n <!-- <fd-text\r\n #fdText\r\n *ngIf=\"column.Extra?.IconDisplayTypeEnum !== 'Image'\"\r\n [maxLines]=\"1\"\r\n [text]=\"value\"\r\n [fd-inline-help]=\"value\"\r\n [disabled]=\"!fdText._hasMore\"\r\n ></fd-text> -->\r\n\r\n <!-- <bsu-barsa-text-ellipsis\r\n [style.width]=\"column.$Width\"\r\n *ngIf=\"column.Extra?.IconDisplayTypeEnum !== 'Image'\"\r\n [text]=\"value\"\r\n></bsu-barsa-text-ellipsis> -->\r\n <!-- <div *ngIf=\"column.Extra?.IconDisplayTypeEnum !== 'Image'\" style=\"word-break:break-word\">\r\n{{ value }}\r\n</div> -->\r\n @if (column.Extra?.IconDisplayTypeEnum !== 'Image') { @if(!isMobile && !fdTextMode){\r\n <div\r\n [ellapsisText]=\"value\"\r\n [disableEllapsis]=\"editMode\"\r\n [class.ellapsis]=\"!disableEllapsis\"\r\n [columnValue]=\"value\"\r\n (ellapsised)=\"onElapsised($event)\"\r\n ></div>\r\n } @else{\r\n <fd-text [attr.title]=\"value\" class=\"col-value\" [text]=\"value\" [maxLines]=\"2\"></fd-text>\r\n } }\r\n </div>\r\n</ng-template>\r\n<ng-template #formControlTemplate>\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n !controlUi || controlUi.FieldUi.originalXtype === 'Ui.ReadOnlyField'\r\n ? renderCellTemplate\r\n : layoutControlTemplate\r\n \"\r\n ></ng-container>\r\n</ng-template>\r\n<ng-template #layoutControlTemplate>\r\n @if (controlUi) {\r\n <bsu-layout-control\r\n [inlineEdit]=\"true\"\r\n [caption]=\"column.Caption\"\r\n [cellEdit]=\"cellEdit\"\r\n [config]=\"controlUi\"\r\n [showLabel]=\"formLayoutShowLabel\"\n ></bsu-layout-control>\r\n }\r\n</ng-template>\r\n<ng-template #renderCellListTasavir>\r\n @if (mo[column.Name] && mo[column.Name].Images) {\r\n <div style=\"display: flex; flex-wrap: wrap; gap: 0.15rem\">\r\n @for (pic of mo[column.Name].Images; track pic) {\r\n <img\r\n fullscreen\r\n fullscreenFiles\r\n [files]=\"mo[column.Name].Images\"\r\n [isImageGallery]=\"true\"\r\n [deviceSize]=\"deviceSize\"\r\n [src]=\"pic.FileId | picFieldSrc: 'BarsaPicture.Thumbnail':null:'':32:32\"\r\n style=\"width: 3rem; height: 3rem\"\r\n loading=\"lazy\"\r\n />\r\n }\r\n </div>\r\n }\r\n</ng-template>\r\n<ng-template #renderCellFileListKhati>\r\n @if (mo[column.Name]) {\r\n <div class=\"file-viewer-attachments\">\r\n @for (file of mo[column.Name].Files; track file;let index=$index) { @if (!file.IsDeleted) {\r\n <bsu-file-viewer-popover\r\n #fileviewerPopover\r\n intersectionObserver\r\n [intersectionThreshold]=\"0.1\"\r\n (visibilityChange)=\"$event === 'Visible' && onSetMaxWidth()\"\r\n [file]=\"file\"\r\n [index]=\"index\"\r\n [attachmentViewType]=\"+attachmentViewType\"\r\n [files]=\"mo[column.Name].Files\"\r\n [deviceSize]=\"deviceSize\"\r\n [canDownload]=\"true\"\r\n [disableRemove]=\"true\"\r\n [fdType]=\"'transparent'\"\r\n preventDefault\r\n stopPropagation\r\n ></bsu-file-viewer-popover>\r\n }\r\n <!-- <fd-token *ngIf=\"!file.IsDeleted\" [readOnly]=\"true\">{{ file.FileName }}</fd-token> -->\r\n }\r\n </div>\r\n }\r\n</ng-template>\r\n<ng-template #renderCellFileInfo>\r\n @if (mo[column.Name]) {\r\n <fd-avatar\r\n [transparent]=\"true\"\r\n [size]=\"column.FieldTypeId === '42' || column.FieldTypeId === 42 ? 'xs' : deviceSize === 's' ? 's' : 'm'\"\r\n [image]=\"mo[column.Name] | picFieldSrc: 'PictureFileInfo':null:column.FieldDefId\"\r\n ></fd-avatar>\r\n }\r\n</ng-template>\r\n<ng-template #renderCellChecbox>\r\n <fd-icon [glyph]=\"mo[column.Name] === true ? 'accept' : 'less'\"></fd-icon>\r\n</ng-template>\r\n<ng-template #renderChecboxImage>\r\n @if (column.Extra?.TrueImage === '') { @if(value ===true || value==='true'){\r\n {{ column.Extra.TrueDisplayString | bbbTranslate }}\r\n }@else if(value===false || value==='false'){\r\n {{ column.Extra.FalseDisplayString | bbbTranslate }}\r\n }@else {\r\n {{ value | bbbTranslate }}\r\n } } @if (column.Extra?.TrueImage !== '') {\r\n <img\r\n loading=\"lazy\"\r\n [src]=\"\r\n mo[column.Name]\r\n ? column.Extra?.TrueImage\r\n : column.Extra?.FalseImage\r\n \"\r\n class=\"tw-h-fit tw-m-auto\"\r\n />\r\n }\r\n</ng-template>\r\n<ng-template #renderCellImage>\r\n @if (mo[column.Name] && mo[column.Name]['Url']) {\r\n <fd-avatar\r\n [size]=\"column.FieldTypeId === '42' || column.FieldTypeId === 42 ? 'xs' : deviceSize === 's' ? 's' : 'm'\"\r\n [transparent]=\"true\"\r\n [image]=\"mo[column.Name]['Url']\"\r\n ></fd-avatar>\r\n }\r\n</ng-template>\r\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}.renderGeneral{display:flex;width:100%;height:100%;align-items:center;justify-content:start;gap:.2rem}.renderGeneral.onlyIcon{justify-content:center}fd-text.col-value ::ng-deep p{color:inherit;font-size:inherit;font-family:inherit;font-weight:inherit}\n"] }]
5394
5410
  }] });
5395
5411
 
5396
5412
  class LyLayoutContainerOfRootComponent extends LayoutPanelBaseComponent {
@@ -5986,11 +6002,11 @@ class BarsaTableColumnComponent extends BaseColumnPropsComponent {
5986
6002
  }
5987
6003
  }
5988
6004
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: BarsaTableColumnComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
5989
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.8", type: BarsaTableColumnComponent, isStandalone: false, selector: "bsu-barsa-table-column", inputs: { disableEllapsis: "disableEllapsis", fdTextMode: "fdTextMode" }, providers: [FormPanelService, ColumnService], usesInheritance: true, ngImport: i0, template: "<div\r\n [class.editMode]=\"editMode\"\r\n [class.isdirty]=\"isdirty\"\r\n #divDom\r\n style=\"display: flex; width: 100%\"\r\n [style.column-gap]=\"column.$MergedFieldsToColumn?.length ? '0.2rem' : null\"\r\n>\r\n @if (customComponent && customComponent.Selector) {\r\n <bnrc-dynamic-item-component\r\n [component]=\"customComponent\"\r\n [mo]=\"mo\"\r\n [isChecked]=\"isChecked\"\r\n [setting]=\"detailsComponentSetting\"\r\n [parameters]=\"customComponent.Settings\"\r\n [column]=\"column\"\r\n [value]=\"value\"\r\n [disableEllapsis]=\"disableEllapsis\"\r\n [fdTextMode]=\"fdTextMode\"\r\n [cellEdit]=\"cellEdit\"\r\n [icon]=\"icon\"\r\n [editMode]=\"editMode\"\r\n [attachmentViewType]=\"attachmentViewType\"\r\n [rtl]=\"rtl\"\r\n [isMobile]=\"isMobile\"\r\n [deviceName]=\"deviceName\"\r\n [deviceSize]=\"deviceSize\"\r\n [index]=\"index\"\r\n [allColumns]=\"allColumns\"\r\n [containerDom]=\"divDom\"\r\n ></bnrc-dynamic-item-component>\r\n } @else {\r\n <bsu-column-renderer\r\n [mo]=\"mo\"\r\n [containerDom]=\"divDom\"\r\n [allColumns]=\"allColumns\"\r\n [column]=\"column\"\r\n [disableEllapsis]=\"disableEllapsis\"\r\n [fdTextMode]=\"fdTextMode\"\r\n [value]=\"value | bbbTranslate\"\r\n [icon]=\"icon\"\r\n [cellEdit]=\"cellEdit\"\r\n [attachmentViewType]=\"attachmentViewType\"\r\n [editMode]=\"editMode\"\r\n [isChecked]=\"isChecked\"\r\n [index]=\"index\"\r\n [isMobile]=\"isMobile\"\r\n [rtl]=\"rtl\"\r\n [deviceName]=\"deviceName\"\r\n [formLayoutShowLabel]=\"false\"\r\n [deviceSize]=\"deviceSize\"\r\n [controlUi]=\"column.Caption | controlUi: layout94:column.Name\"\r\n (keyup.control.enter)=\"save.emit($event)\"\r\n (keyup.esc)=\"cancel.emit($event)\"\r\n (keydown.Tab)=\"tab.emit($event)\"\r\n ></bsu-column-renderer>\r\n } @if (editMode) { @for (fieldCaption of column.$MergedFieldsToColumn; track fieldCaption) { @if (fieldCaption |\r\n controlUi: layout94; as layoutConfig) {\r\n <bsu-layout-control\r\n [caption]=\"fieldCaption\"\r\n [config]=\"layoutConfig\"\r\n [showLabel]=\"false\"\r\n [inlineEdit]=\"true\"\r\n (keyup.control.enter)=\"save.emit($event)\"\r\n (keyup.esc)=\"cancel.emit($event)\"\r\n (keydown.Tab)=\"tab.emit($event)\"\r\n ></bsu-layout-control>\r\n } } }\r\n</div>\r\n", styles: [":host{display:contents;width:100%}:host>div.isdirty{background:url(/Lib/ui/resources/images/default/grid/dirty.gif);background-repeat:no-repeat}:host ::ng-deep .row-group.mobile-mode{border-bottom:var(--sapList_BorderWidth, .0625rem) solid var(--sapList_BorderColor, #e4e4e4)!important}:host ::ng-deep .editMode bnrc-field-ui{padding:0;margin:0}:host ::ng-deep .editMode bsu-ui-simple-combo{margin:0!important}bsu-layout-control:not(.hide-form-item){align-items:center;height:100%;min-width:auto;width:auto}td{vertical-align:middle}tr.brule-message td{border:0}.row-group{background-color:var(--sapBackgroundColor, \"#f7f7ff\")}.cell-expand{cursor:pointer;display:inline-flex;justify-content:center;align-items:center;font-size:.75rem;color:#0854a0;color:var(--sapContent_IconColor, #0854a0);min-width:2rem;max-width:2rem}.save-error{color:var(--sapField_InvalidColor)}.save-success{color:var(--sapField_SuccessColor)}.showdetails-on td{border-bottom:none!important}.flow{max-width:100%}.flow-item{display:flex}.flow-item fd-micro-process-flow-icon{width:1.375rem;height:1.375rem}.flow-item h5{padding-right:.3rem}.cartable-template{padding:.5rem 0}\n"], dependencies: [{ kind: "component", type: i2.DynamicItemComponent, selector: "bnrc-dynamic-item-component", inputs: ["mo", "allColumns", "moDataList", "columns", "column", "index", "last", "hideOpenIcon", "deviceName", "deviceSize", "rtl", "editMode", "setting", "parameters", "contextMenuItems", "canView", "showRowNumber", "rowNumber", "formSetting", "conditionalFormats", "disableOverflowContextMenu", "navigationArrow", "isCheckList", "maxHeightHeader", "fields", "isChecked", "layout94$", "inlineEditMode", "isNewInlineMo", "allowInlineEdit", "typeDefId", "rowIndicator", "rowIndicatorColor", "UlvMainCtrlr"] }, { kind: "component", type: LayoutControlComponent, selector: "bsu-layout-control", inputs: ["inlineEdit", "cellEdit", "caption", "focusControl", "showLabel", "maxLabelWidth", "hasHorizontalText", "contentDensity", "flex", "RefreshLabel", "SetVisible"], outputs: ["events"] }, { kind: "component", type: BarsaColumnRendererComponent, selector: "bsu-column-renderer,[colRenderer]" }, { kind: "pipe", type: i2.BbbTranslatePipe, name: "bbbTranslate" }, { kind: "pipe", type: i2.ControlUiPipe, name: "controlUi" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
6005
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.8", type: BarsaTableColumnComponent, isStandalone: false, selector: "bsu-barsa-table-column", inputs: { disableEllapsis: "disableEllapsis", fdTextMode: "fdTextMode" }, providers: [FormPanelService, ColumnService], usesInheritance: true, ngImport: i0, template: "<div\r\n [class.editMode]=\"editMode\"\r\n [class.isdirty]=\"isdirty\"\r\n #divDom\r\n style=\"display: flex; width: 100%\"\r\n [style.column-gap]=\"column.$MergedFieldsToColumn?.length ? '0.2rem' : null\"\r\n>\r\n @if (customComponent && customComponent.Selector) {\r\n <bnrc-dynamic-item-component\r\n [component]=\"customComponent\"\r\n [mo]=\"mo\"\r\n [isChecked]=\"isChecked\"\r\n [setting]=\"detailsComponentSetting\"\r\n [parameters]=\"customComponent.Settings\"\r\n [column]=\"column\"\r\n [value]=\"value\"\r\n [disableEllapsis]=\"disableEllapsis\"\r\n [fdTextMode]=\"fdTextMode\"\r\n [cellEdit]=\"cellEdit\"\r\n [icon]=\"icon\"\r\n [editMode]=\"editMode\"\r\n [attachmentViewType]=\"attachmentViewType\"\r\n [rtl]=\"rtl\"\r\n [isMobile]=\"isMobile\"\r\n [deviceName]=\"deviceName\"\r\n [deviceSize]=\"deviceSize\"\r\n [index]=\"index\"\r\n [allColumns]=\"allColumns\"\r\n [containerDom]=\"divDom\"\r\n ></bnrc-dynamic-item-component>\r\n } @else {\r\n <bsu-column-renderer\r\n [mo]=\"mo\"\r\n [containerDom]=\"divDom\"\r\n [allColumns]=\"allColumns\"\r\n [column]=\"column\"\r\n [disableEllapsis]=\"disableEllapsis\"\r\n [fdTextMode]=\"fdTextMode\"\r\n [value]=\"value | bbbTranslate\"\r\n [icon]=\"icon\"\r\n [cellEdit]=\"cellEdit\"\r\n [attachmentViewType]=\"attachmentViewType\"\r\n [editMode]=\"editMode\"\r\n [isChecked]=\"isChecked\"\r\n [index]=\"index\"\r\n [isMobile]=\"isMobile\"\r\n [rtl]=\"rtl\"\r\n [deviceName]=\"deviceName\"\r\n [formLayoutShowLabel]=\"false\"\r\n [deviceSize]=\"deviceSize\"\r\n [controlUi]=\"column.Caption | controlUi: layout94:column.Name\"\r\n (keyup.control.enter)=\"save.emit($event)\"\r\n (keyup.esc)=\"cancel.emit($event)\"\n (keydown.Tab)=\"tab.emit($event)\"\n (keydown.shift.tab)=\"tab.emit($event)\"\n (keydown.enter)=\"enter.emit($event)\"\n (keydown.arrowup)=\"arrowUp.emit($event)\"\n (keydown.arrowdown)=\"arrowDown.emit($event)\"\n ></bsu-column-renderer>\r\n } @if (editMode) { @for (fieldCaption of column.$MergedFieldsToColumn; track fieldCaption) { @if (fieldCaption |\r\n controlUi: layout94; as layoutConfig) {\r\n <bsu-layout-control\r\n [caption]=\"fieldCaption\"\r\n [config]=\"layoutConfig\"\r\n [showLabel]=\"false\"\r\n [inlineEdit]=\"true\"\r\n (keyup.control.enter)=\"save.emit($event)\"\r\n (keyup.esc)=\"cancel.emit($event)\"\n (keydown.Tab)=\"tab.emit($event)\"\n (keydown.shift.tab)=\"tab.emit($event)\"\n (keydown.enter)=\"enter.emit($event)\"\n (keydown.arrowup)=\"arrowUp.emit($event)\"\n (keydown.arrowdown)=\"arrowDown.emit($event)\"\n ></bsu-layout-control>\r\n } } }\r\n</div>\r\n", styles: [":host{display:contents;width:100%}:host>div.isdirty{background:url(/Lib/ui/resources/images/default/grid/dirty.gif);background-repeat:no-repeat}:host ::ng-deep .row-group.mobile-mode{border-bottom:var(--sapList_BorderWidth, .0625rem) solid var(--sapList_BorderColor, #e4e4e4)!important}:host ::ng-deep .editMode bnrc-field-ui{padding:0;margin:0}:host ::ng-deep .editMode bsu-ui-simple-combo{margin:0!important}bsu-layout-control:not(.hide-form-item){align-items:center;height:100%;min-width:auto;width:auto}td{vertical-align:middle}tr.brule-message td{border:0}.row-group{background-color:var(--sapBackgroundColor, \"#f7f7ff\")}.cell-expand{cursor:pointer;display:inline-flex;justify-content:center;align-items:center;font-size:.75rem;color:#0854a0;color:var(--sapContent_IconColor, #0854a0);min-width:2rem;max-width:2rem}.save-error{color:var(--sapField_InvalidColor)}.save-success{color:var(--sapField_SuccessColor)}.showdetails-on td{border-bottom:none!important}.flow{max-width:100%}.flow-item{display:flex}.flow-item fd-micro-process-flow-icon{width:1.375rem;height:1.375rem}.flow-item h5{padding-right:.3rem}.cartable-template{padding:.5rem 0}\n"], dependencies: [{ kind: "component", type: i2.DynamicItemComponent, selector: "bnrc-dynamic-item-component", inputs: ["mo", "allColumns", "moDataList", "columns", "column", "index", "last", "hideOpenIcon", "deviceName", "deviceSize", "rtl", "editMode", "setting", "parameters", "contextMenuItems", "canView", "showRowNumber", "rowNumber", "formSetting", "conditionalFormats", "disableOverflowContextMenu", "navigationArrow", "isCheckList", "maxHeightHeader", "fields", "isChecked", "layout94$", "inlineEditMode", "isNewInlineMo", "allowInlineEdit", "typeDefId", "rowIndicator", "rowIndicatorColor", "UlvMainCtrlr"] }, { kind: "component", type: LayoutControlComponent, selector: "bsu-layout-control", inputs: ["inlineEdit", "cellEdit", "caption", "focusControl", "showLabel", "maxLabelWidth", "hasHorizontalText", "contentDensity", "flex", "RefreshLabel", "SetVisible"], outputs: ["events"] }, { kind: "component", type: BarsaColumnRendererComponent, selector: "bsu-column-renderer,[colRenderer]" }, { kind: "pipe", type: i2.BbbTranslatePipe, name: "bbbTranslate" }, { kind: "pipe", type: i2.ControlUiPipe, name: "controlUi" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
5990
6006
  }
5991
6007
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: BarsaTableColumnComponent, decorators: [{
5992
6008
  type: Component,
5993
- args: [{ selector: 'bsu-barsa-table-column', providers: [FormPanelService, ColumnService], changeDetection: ChangeDetectionStrategy.OnPush, standalone: false, template: "<div\r\n [class.editMode]=\"editMode\"\r\n [class.isdirty]=\"isdirty\"\r\n #divDom\r\n style=\"display: flex; width: 100%\"\r\n [style.column-gap]=\"column.$MergedFieldsToColumn?.length ? '0.2rem' : null\"\r\n>\r\n @if (customComponent && customComponent.Selector) {\r\n <bnrc-dynamic-item-component\r\n [component]=\"customComponent\"\r\n [mo]=\"mo\"\r\n [isChecked]=\"isChecked\"\r\n [setting]=\"detailsComponentSetting\"\r\n [parameters]=\"customComponent.Settings\"\r\n [column]=\"column\"\r\n [value]=\"value\"\r\n [disableEllapsis]=\"disableEllapsis\"\r\n [fdTextMode]=\"fdTextMode\"\r\n [cellEdit]=\"cellEdit\"\r\n [icon]=\"icon\"\r\n [editMode]=\"editMode\"\r\n [attachmentViewType]=\"attachmentViewType\"\r\n [rtl]=\"rtl\"\r\n [isMobile]=\"isMobile\"\r\n [deviceName]=\"deviceName\"\r\n [deviceSize]=\"deviceSize\"\r\n [index]=\"index\"\r\n [allColumns]=\"allColumns\"\r\n [containerDom]=\"divDom\"\r\n ></bnrc-dynamic-item-component>\r\n } @else {\r\n <bsu-column-renderer\r\n [mo]=\"mo\"\r\n [containerDom]=\"divDom\"\r\n [allColumns]=\"allColumns\"\r\n [column]=\"column\"\r\n [disableEllapsis]=\"disableEllapsis\"\r\n [fdTextMode]=\"fdTextMode\"\r\n [value]=\"value | bbbTranslate\"\r\n [icon]=\"icon\"\r\n [cellEdit]=\"cellEdit\"\r\n [attachmentViewType]=\"attachmentViewType\"\r\n [editMode]=\"editMode\"\r\n [isChecked]=\"isChecked\"\r\n [index]=\"index\"\r\n [isMobile]=\"isMobile\"\r\n [rtl]=\"rtl\"\r\n [deviceName]=\"deviceName\"\r\n [formLayoutShowLabel]=\"false\"\r\n [deviceSize]=\"deviceSize\"\r\n [controlUi]=\"column.Caption | controlUi: layout94:column.Name\"\r\n (keyup.control.enter)=\"save.emit($event)\"\r\n (keyup.esc)=\"cancel.emit($event)\"\r\n (keydown.Tab)=\"tab.emit($event)\"\r\n ></bsu-column-renderer>\r\n } @if (editMode) { @for (fieldCaption of column.$MergedFieldsToColumn; track fieldCaption) { @if (fieldCaption |\r\n controlUi: layout94; as layoutConfig) {\r\n <bsu-layout-control\r\n [caption]=\"fieldCaption\"\r\n [config]=\"layoutConfig\"\r\n [showLabel]=\"false\"\r\n [inlineEdit]=\"true\"\r\n (keyup.control.enter)=\"save.emit($event)\"\r\n (keyup.esc)=\"cancel.emit($event)\"\r\n (keydown.Tab)=\"tab.emit($event)\"\r\n ></bsu-layout-control>\r\n } } }\r\n</div>\r\n", styles: [":host{display:contents;width:100%}:host>div.isdirty{background:url(/Lib/ui/resources/images/default/grid/dirty.gif);background-repeat:no-repeat}:host ::ng-deep .row-group.mobile-mode{border-bottom:var(--sapList_BorderWidth, .0625rem) solid var(--sapList_BorderColor, #e4e4e4)!important}:host ::ng-deep .editMode bnrc-field-ui{padding:0;margin:0}:host ::ng-deep .editMode bsu-ui-simple-combo{margin:0!important}bsu-layout-control:not(.hide-form-item){align-items:center;height:100%;min-width:auto;width:auto}td{vertical-align:middle}tr.brule-message td{border:0}.row-group{background-color:var(--sapBackgroundColor, \"#f7f7ff\")}.cell-expand{cursor:pointer;display:inline-flex;justify-content:center;align-items:center;font-size:.75rem;color:#0854a0;color:var(--sapContent_IconColor, #0854a0);min-width:2rem;max-width:2rem}.save-error{color:var(--sapField_InvalidColor)}.save-success{color:var(--sapField_SuccessColor)}.showdetails-on td{border-bottom:none!important}.flow{max-width:100%}.flow-item{display:flex}.flow-item fd-micro-process-flow-icon{width:1.375rem;height:1.375rem}.flow-item h5{padding-right:.3rem}.cartable-template{padding:.5rem 0}\n"] }]
6009
+ args: [{ selector: 'bsu-barsa-table-column', providers: [FormPanelService, ColumnService], changeDetection: ChangeDetectionStrategy.OnPush, standalone: false, template: "<div\r\n [class.editMode]=\"editMode\"\r\n [class.isdirty]=\"isdirty\"\r\n #divDom\r\n style=\"display: flex; width: 100%\"\r\n [style.column-gap]=\"column.$MergedFieldsToColumn?.length ? '0.2rem' : null\"\r\n>\r\n @if (customComponent && customComponent.Selector) {\r\n <bnrc-dynamic-item-component\r\n [component]=\"customComponent\"\r\n [mo]=\"mo\"\r\n [isChecked]=\"isChecked\"\r\n [setting]=\"detailsComponentSetting\"\r\n [parameters]=\"customComponent.Settings\"\r\n [column]=\"column\"\r\n [value]=\"value\"\r\n [disableEllapsis]=\"disableEllapsis\"\r\n [fdTextMode]=\"fdTextMode\"\r\n [cellEdit]=\"cellEdit\"\r\n [icon]=\"icon\"\r\n [editMode]=\"editMode\"\r\n [attachmentViewType]=\"attachmentViewType\"\r\n [rtl]=\"rtl\"\r\n [isMobile]=\"isMobile\"\r\n [deviceName]=\"deviceName\"\r\n [deviceSize]=\"deviceSize\"\r\n [index]=\"index\"\r\n [allColumns]=\"allColumns\"\r\n [containerDom]=\"divDom\"\r\n ></bnrc-dynamic-item-component>\r\n } @else {\r\n <bsu-column-renderer\r\n [mo]=\"mo\"\r\n [containerDom]=\"divDom\"\r\n [allColumns]=\"allColumns\"\r\n [column]=\"column\"\r\n [disableEllapsis]=\"disableEllapsis\"\r\n [fdTextMode]=\"fdTextMode\"\r\n [value]=\"value | bbbTranslate\"\r\n [icon]=\"icon\"\r\n [cellEdit]=\"cellEdit\"\r\n [attachmentViewType]=\"attachmentViewType\"\r\n [editMode]=\"editMode\"\r\n [isChecked]=\"isChecked\"\r\n [index]=\"index\"\r\n [isMobile]=\"isMobile\"\r\n [rtl]=\"rtl\"\r\n [deviceName]=\"deviceName\"\r\n [formLayoutShowLabel]=\"false\"\r\n [deviceSize]=\"deviceSize\"\r\n [controlUi]=\"column.Caption | controlUi: layout94:column.Name\"\r\n (keyup.control.enter)=\"save.emit($event)\"\r\n (keyup.esc)=\"cancel.emit($event)\"\n (keydown.Tab)=\"tab.emit($event)\"\n (keydown.shift.tab)=\"tab.emit($event)\"\n (keydown.enter)=\"enter.emit($event)\"\n (keydown.arrowup)=\"arrowUp.emit($event)\"\n (keydown.arrowdown)=\"arrowDown.emit($event)\"\n ></bsu-column-renderer>\r\n } @if (editMode) { @for (fieldCaption of column.$MergedFieldsToColumn; track fieldCaption) { @if (fieldCaption |\r\n controlUi: layout94; as layoutConfig) {\r\n <bsu-layout-control\r\n [caption]=\"fieldCaption\"\r\n [config]=\"layoutConfig\"\r\n [showLabel]=\"false\"\r\n [inlineEdit]=\"true\"\r\n (keyup.control.enter)=\"save.emit($event)\"\r\n (keyup.esc)=\"cancel.emit($event)\"\n (keydown.Tab)=\"tab.emit($event)\"\n (keydown.shift.tab)=\"tab.emit($event)\"\n (keydown.enter)=\"enter.emit($event)\"\n (keydown.arrowup)=\"arrowUp.emit($event)\"\n (keydown.arrowdown)=\"arrowDown.emit($event)\"\n ></bsu-layout-control>\r\n } } }\r\n</div>\r\n", styles: [":host{display:contents;width:100%}:host>div.isdirty{background:url(/Lib/ui/resources/images/default/grid/dirty.gif);background-repeat:no-repeat}:host ::ng-deep .row-group.mobile-mode{border-bottom:var(--sapList_BorderWidth, .0625rem) solid var(--sapList_BorderColor, #e4e4e4)!important}:host ::ng-deep .editMode bnrc-field-ui{padding:0;margin:0}:host ::ng-deep .editMode bsu-ui-simple-combo{margin:0!important}bsu-layout-control:not(.hide-form-item){align-items:center;height:100%;min-width:auto;width:auto}td{vertical-align:middle}tr.brule-message td{border:0}.row-group{background-color:var(--sapBackgroundColor, \"#f7f7ff\")}.cell-expand{cursor:pointer;display:inline-flex;justify-content:center;align-items:center;font-size:.75rem;color:#0854a0;color:var(--sapContent_IconColor, #0854a0);min-width:2rem;max-width:2rem}.save-error{color:var(--sapField_InvalidColor)}.save-success{color:var(--sapField_SuccessColor)}.showdetails-on td{border-bottom:none!important}.flow{max-width:100%}.flow-item{display:flex}.flow-item fd-micro-process-flow-icon{width:1.375rem;height:1.375rem}.flow-item h5{padding-right:.3rem}.cartable-template{padding:.5rem 0}\n"] }]
5994
6010
  }], propDecorators: { disableEllapsis: [{
5995
6011
  type: Input
5996
6012
  }], fdTextMode: [{
@@ -6710,6 +6726,13 @@ class BarsaTableRowComponent extends BaseViewItemPropsComponent {
6710
6726
  this.detailsText ||= 'Details';
6711
6727
  }
6712
6728
  ngOnChanges(changes) {
6729
+ const navigation = this.mo?.$InlineEditNavigation;
6730
+ if (changes.isChecked?.currentValue && navigation) {
6731
+ const targetColumn = this.columns?.[navigation.columnIndex];
6732
+ targetColumn && this.activeColumn.set(targetColumn);
6733
+ delete this.mo.$InlineEditNavigation;
6734
+ this._focusNavigationTarget(navigation.columnIndex);
6735
+ }
6713
6736
  super.ngOnChanges(changes);
6714
6737
  const { alternateRowMode, isChecked, rowNumber } = changes;
6715
6738
  if (alternateRowMode || isChecked || rowNumber) {
@@ -6758,6 +6781,14 @@ class BarsaTableRowComponent extends BaseViewItemPropsComponent {
6758
6781
  const rowN = Number(rowNumber);
6759
6782
  this.enableAlternateRowMode = !isChecked && !isNaN(rowN) && alternateRowMode && rowN % 2 === 0;
6760
6783
  }
6784
+ _focusNavigationTarget(columnIndex) {
6785
+ setTimeout(() => {
6786
+ const columns = this._el.nativeElement.querySelectorAll('bsu-barsa-table-column');
6787
+ const column = columns[columnIndex];
6788
+ const control = column?.querySelector('input:not([disabled]), select:not([disabled]), textarea:not([disabled]), button:not([disabled]), [tabindex]:not([tabindex="-1"])');
6789
+ control?.focus();
6790
+ });
6791
+ }
6761
6792
  _columnChangeToEditMode(column) {
6762
6793
  if (this.isCheckList && this.isChecked) {
6763
6794
  return;
@@ -6766,11 +6797,11 @@ class BarsaTableRowComponent extends BaseViewItemPropsComponent {
6766
6797
  this.activeColumn.set(column);
6767
6798
  }
6768
6799
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: BarsaTableRowComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
6769
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.8", type: BarsaTableRowComponent, isStandalone: false, selector: "bsu-barsa-table-row", inputs: { showDetailsInRow: "showDetailsInRow", allowRecordReorder: "allowRecordReorder", previewColumn: "previewColumn", columnComponents: "columnComponents", detailsCollapsed: "detailsCollapsed", freezeColumn: "freezeColumn" }, outputs: { columnSummary: "columnSummary", reorderMoved: "reorderMoved", reorderEnded: "reorderEnded" }, providers: [FormPanelService], viewQueries: [{ propertyName: "detailsFormItems", first: true, predicate: ["detailsFormItems"], descendants: true, static: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "@if ((!mo.$Parent || parentExpanded) && visibility !== false) {\r\n<tr\r\n [class.row-error]=\"hasError\"\r\n [class.showdetails-on]=\"!detailsCollapsed && (detailsComponent?.Selector || detailsColumns?.length)\"\r\n [class.has-secondary-row]=\"secondaryColumns?.length && !mo.$Group && (!mo.$Parent || parentExpanded)\"\r\n [class.hasForm]=\"formSetting\"\r\n [class.hasCartable]=\"!!cartableParams\"\r\n #trEl\r\n fd-table-row\r\n cdkDrag\r\n [cdkDragDisabled]=\"!allowRecordReorder || mo.$Group || mo.$Group === ''\"\r\n [cdkDragData]=\"mo\"\r\n [attr.data-reorder-index]=\"index\"\r\n (cdkDragMoved)=\"onReorderMoved($event)\"\r\n (cdkDragEnded)=\"onReorderEnded($event)\"\r\n [activable]=\"false\"\r\n [hoverable]=\"true\"\r\n [main]=\"true\"\r\n [focusable]=\"!(inlineEditMode && allowInlineEdit)\"\r\n [applyConditionalFormats]=\"conditionalFormats\"\r\n [styleIndex]=\"styleIndex\"\r\n [hostEl]=\"trEl\"\r\n [attr.aria-selected]=\"isChecked\"\r\n [class.has-preview-column]=\"!!previewColumn\"\r\n [class.brule-message]=\"bruleActionMessage() || workflowState()?.error\"\r\n [class.workflow-pending]=\"workflowState()?.state === 'Pending'\"\r\n [class.alternateRowMode]=\"enableAlternateRowMode\"\r\n (keydown.enter)=\"onRowCheck(true)\"\r\n>\r\n @if (allowRecordReorder) {\r\n <td fd-table-cell class=\"col-drag-handle\" (click)=\"$event.stopPropagation()\" (dblclick)=\"$event.stopPropagation()\">\r\n @if (!(mo.$Group || mo.$Group === '')) {\r\n <span class=\"reorder-handle\" cdkDragHandle>\r\n <fd-icon glyph=\"grip\" font=\"BusinessSuiteInAppSymbols\"></fd-icon>\r\n </span>\r\n }\r\n </td>\r\n } @if (mo.$Group || mo.$Group === '') {\r\n <td\r\n [style.padding-right]=\"rtl ? 'calc( 1rem + ' + level * 12 + 'px' + ' )' : 'inherit'\"\r\n [style.padding-left]=\"!rtl ? 'calc( 1rem + ' + level * 12 + 'px' + ' )' : 'inherit'\"\r\n fd-table-cell\r\n style=\"font-weight: bold; font-size: 1rem\"\r\n [attr.colspan]=\"\r\n columns.length +\r\n 1 +\r\n (rowIndicator ? -1 : 0) +\r\n (contextMenuItems && contextMenuItems.length > 0 ? 1 : 0) +\r\n (showViewButton ? 1 : 0) +\r\n (showDetailsInRow && !inlineEditMode ? 1 : 0)\r\n \"\r\n class=\"row-group\"\r\n [class.mobile-mode]=\"secondaryColumns?.length\"\r\n [attr.level]=\"level\"\r\n [class.root-group]=\"level === 0\"\r\n >\r\n <button\r\n fd-button\r\n [fdType]=\"'transparent'\"\r\n [glyph]=\"expanded !== false ? 'navigation-down-arrow' : 'navigation-left-arrow'\"\r\n class=\"cell-expand\"\r\n (click)=\"onExpandClick()\"\r\n ></button>\r\n {{ mo.$Group === 'undefined' ? '' : mo.$Group }}\r\n </td>\r\n } @else {\r\n\r\n <ng-container *ngTemplateOutlet=\"statusIndicator\"></ng-container>\r\n @if (isCheckList) {\r\n <td fd-table-cell [style.width]=\"checkboxComponent ? '60px' : null\">\r\n <div class=\"tw-flex tw-items-center tw-justify-center\">\r\n @if (workflowState()?.state === 'Pending') {\r\n <div style=\"position: absolute; left: 0; right: 0; bottom: 0; top: 0\">\r\n <bsu-mask [top]=\"'20px'\" [size]=\"'s'\"></bsu-mask>\r\n </div>\r\n } @if (checkboxComponent?.Selector) {\r\n <bnrc-dynamic-item-component\r\n [component]=\"checkboxComponent\"\r\n [mo]=\"mo\"\r\n [isChecked]=\"isChecked\"\r\n [UlvMainCtrlr]=\"UlvMainCtrlr\"\r\n [setting]=\"setting\"\r\n [parameters]=\"checkboxComponent.Parameters\"\r\n [editMode]=\"inlineEditMode\"\r\n [rtl]=\"rtl\"\r\n [deviceName]=\"deviceName\"\r\n [value]=\"isChecked\"\r\n [deviceSize]=\"deviceSize\"\r\n [index]=\"index\"\r\n [allColumns]=\"allColumns\"\r\n [typeDefId]=\"typeDefId\"\r\n (events)=\"onRowCheck()\"\r\n ></bnrc-dynamic-item-component>\r\n } @else {\r\n <fd-checkbox [name]=\"mo.$Caption\" [ngModel]=\"isChecked\" (ngModelChange)=\"onRowCheck()\"></fd-checkbox>\r\n }\r\n </div>\r\n </td>\r\n } @if (!isCheckList && !showRowNumber) {\r\n <td\r\n fd-table-cell\r\n class=\"single-select\"\r\n (click)=\"!isCheckList && onRowCheck()\"\r\n style=\"padding: 0; text-align: center\"\r\n >\r\n <div class=\"tw-flex tw-items-center tw-justify-center\">\r\n @if (allowInlineEdit && (hasError || saving || saved)) { @if (hasError) {\r\n <fd-icon class=\"save-error\" glyph=\"error\"></fd-icon>\r\n }@else if (saving) {\r\n <fd-busy-indicator [loading]=\"true\" [size]=\"'s'\" title=\"record saving\"></fd-busy-indicator>\r\n } @else if (saved) {\r\n <fd-icon class=\"save-success\" glyph=\"accept\"></fd-icon>\r\n } } @else { @if (mo.$State === 'New') {\r\n <fd-icon glyph=\"favorite\"></fd-icon>\r\n }@else if (inlineEditMode && allowInlineEdit && isChecked) {\r\n <fd-icon glyph=\"edit\"></fd-icon>\r\n }@else{\r\n <img\r\n [src]=\"mo | moIcon: UlvMainCtrlr?.Setting\"\r\n (error)=\"onIconError($event)\"\r\n loading=\"lazy\"\r\n width=\"16\"\r\n height=\"16\"\r\n alt=\"object icon\"\r\n />\r\n } }\r\n </div>\r\n </td>\r\n }\r\n <ng-container *ngTemplateOutlet=\"rowNumberTemplate\"></ng-container>\r\n @for (column of columns; track column.Name; let columnIndex = $index) {\r\n <td\r\n class=\"rep-column\"\r\n [attr.dbName]=\"column.Name\"\r\n #tdEl\r\n fd-table-cell\r\n [applyConditionalFormats]=\"conditionalFormats\"\r\n [hostEl]=\"tdEl\"\r\n [styleIndex]=\"styleIndex\"\r\n [dbName]=\"column.Name\"\r\n [focusable]=\"false\"\r\n (click)=\"onColumnClick(column)\"\r\n (keydown.enter)=\"onColumnKeyEnter(column)\"\r\n (dblclick)=\"onRowClick()\"\r\n [hoverable]=\"inlineEditMode && allowInlineEdit\"\r\n [class.frozen-column]=\"column.Name === freezeColumn\"\r\n [class.control-readonly]=\"column.IsReadonly\"\r\n >\r\n @if(disableHyperLink!==true || (columnsHyperLink | existsColumns:column )?.length) {\r\n <a\r\n [moLinker]=\"mo\"\r\n [alternateEditObjectColumn]=\"alternateEditObjectColumn\"\r\n [disableHyperLink]=\"inlineEditMode || !canView\"\r\n >\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n columnTemplate;\r\n context: {\r\n $implicit: column,\r\n mo: mo,\r\n index: columnIndex,\r\n inlineEditMode: inlineEditMode,\r\n layout94: layout$ | async\r\n }\r\n \"\r\n ></ng-container>\r\n </a>\r\n } @else{\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n columnTemplate;\r\n context: {\r\n $implicit: column,\r\n mo: mo,\r\n index: columnIndex,\r\n inlineEditMode: inlineEditMode,\r\n layout94: layout$ | async\r\n }\r\n \"\r\n ></ng-container>\r\n\r\n }\r\n </td>\r\n } @if (contextMenuItems.length ) {\r\n <td class=\"col-context-menu\" fd-table-cell>\r\n <bsu-ulv-context-menu\r\n [disableOverflowContextMenu]=\"disableOverflowContextMenu\"\r\n [conditionalFormats]=\"conditionalFormats\"\r\n [styleIndex]=\"styleIndex\"\r\n [mo]=\"mo\"\r\n [index]=\"index\"\r\n (commandClick)=\"onUlvCommand()\"\r\n (overflowClick)=\"onRowCheck(true)\"\r\n [deviceName]=\"deviceName\"\r\n [menuItems]=\"contextMenuItems\"\r\n [allColumns]=\"allColumns\"\r\n ></bsu-ulv-context-menu>\r\n </td>\r\n } @if (showDetailsInRow && (!inlineEditMode || !allowInlineEdit)) {\r\n <td class=\"col-details\" fd-table-cell [fitContent]=\"true\">\r\n @if ((detailsComponent?.Selector || detailsColumns?.length || cartableParams?.moId ) && !hideDetailsText) {\r\n <div class=\"tw-flex tw-justify-end tw-w-full\">\r\n <button\r\n fd-button\r\n [label]=\"(detailsCollapsed ? detailsText : 'Hide') | bbbTranslate\"\r\n [fdType]=\"'transparent'\"\r\n (click)=\"onRowDetails()\"\r\n ></button>\r\n </div>\r\n }\r\n </td>\r\n } @if (actionList?.length && !inlineEditMode) {\r\n <td class=\"col-view\" [class.rtl]=\"rtl\" fd-table-cell [fitContent]=\"true\">\r\n <bsu-barsa-row-inline-actionlist\r\n [actionList]=\"actionList\"\r\n (btnClick)=\"actionListClick.emit($event)\"\r\n ></bsu-barsa-row-inline-actionlist>\r\n </td>\r\n } }\r\n <td fd-table-cell></td>\r\n</tr>\r\n} @if (secondaryColumns?.length && !mo.$Group && (!mo.$Parent || parentExpanded) ) {\r\n<tr\r\n #trEl\r\n fd-table-row\r\n [secondary]=\"true\"\r\n class=\"secondary-row\"\r\n [class.no-edit-mode]=\"!inlineEditMode\"\r\n [applyConditionalFormats]=\"conditionalFormats\"\r\n [styleIndex]=\"styleIndex\"\r\n [hostEl]=\"trEl\"\r\n [attr.aria-selected]=\"isChecked && !inlineEditMode ? true : false\"\r\n [class.alternateRowMode]=\"enableAlternateRowMode\"\r\n>\r\n @if (allowRecordReorder) {\r\n <td fd-table-cell class=\"col-drag-handle\"></td>\r\n }\r\n <ng-container *ngTemplateOutlet=\"statusIndicator\"></ng-container>\r\n @if (!isCheckList) {\r\n <td fd-table-cell class=\"single-select\" (click)=\"onRowCheck()\"></td>\r\n }\r\n <td fd-table-cell colspan=\"100%\" (click)=\"onRowCheck()\" class=\"secondary p-wrapper\">\r\n <div style=\"display: flex; flex-direction: column\">\r\n @for (column of secondaryColumns; track _trackByColumn(columnIndex, column); let columnIndex = $index) {\r\n <p\r\n #pEl\r\n fd-table-text\r\n [applyConditionalFormats]=\"conditionalFormats\"\r\n [hostEl]=\"pEl\"\r\n [styleIndex]=\"styleIndex\"\r\n [dbName]=\"column.Name\"\r\n style=\"font-family: 'B-Font Medium'\"\r\n >\r\n <label fd-form-label>{{ column.Caption }} :</label>\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n columnTemplate;\r\n context: {\r\n $implicit: column,\r\n mo: mo,\r\n index: columnIndex,\r\n inlineEditMode: inlineEditMode,\r\n layout94: layout$ | async\r\n }\r\n \"\r\n ></ng-container>\r\n </p>\r\n }\r\n </div>\r\n </td>\r\n</tr>\r\n} @if (cartableParams?.moId) {\r\n<tr\r\n [class.detailCollapsed]=\"detailsCollapsed\"\r\n fd-table-row\r\n class=\"showdetails cartable\"\r\n [attr.aria-selected]=\"isChecked\"\r\n [class.has-preview-column]=\"!!previewColumn\"\r\n [class.alternateRowMode]=\"enableAlternateRowMode\"\r\n>\r\n @if (allowRecordReorder) {\r\n <td fd-table-cell class=\"col-drag-handle\"></td>\r\n }\r\n <ng-container *ngTemplateOutlet=\"statusIndicator\"></ng-container>\r\n <td\r\n (click)=\"onRowCheck()\"\r\n fd-table-cell\r\n [attr.colspan]=\"\r\n columns.length +\r\n 2 +\r\n (rowIndicator ? 1 : 0) +\r\n (contextMenuItems && contextMenuItems.length > 0 ? 1 : 0) +\r\n (showViewButton ? 1 : 0) +\r\n (showDetailsInRow && !inlineEditMode ? 1 : 0)\r\n \"\r\n >\r\n <ng-container>\r\n <bnrc-form\r\n #cartableFormRef\r\n class=\"cartable-template\"\r\n [inlineEditInReport]=\"true\"\r\n [params]=\"cartableParams\"\r\n (beforeTransition)=\"onCartableBeforeTansition()\"\r\n (afterTransition)=\"onCartableAfterTansition($event)\"\r\n (bruleAction)=\"onCartableBruleAction($event)\"\r\n (click)=\"OnCartableFormClick($event)\"\r\n (formClose)=\"onCartableFormClosed()\"\r\n ></bnrc-form>\r\n </ng-container>\r\n </td>\r\n</tr>\r\n} @if (!detailsCollapsed && (detailsComponent?.Selector|| detailsColumns?.length)) {\r\n<tr fd-table-row class=\"showdetails\" [attr.aria-selected]=\"isChecked\" [class.has-preview-column]=\"!!previewColumn\">\r\n @if (allowRecordReorder) {\r\n <td fd-table-cell class=\"col-drag-handle\"></td>\r\n }\r\n <ng-container *ngTemplateOutlet=\"statusIndicator\"></ng-container>\r\n <td\r\n (click)=\"onRowCheck()\"\r\n fd-table-cell\r\n [attr.colspan]=\"\r\n columns.length +\r\n 2 +\r\n (rowIndicator ? -1 : 0) +\r\n (contextMenuItems && contextMenuItems.length > 0 ? 1 : 0) +\r\n (showViewButton ? 1 : 0) +\r\n (showDetailsInRow && !inlineEditMode ? 1 : 0)\r\n \"\r\n >\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n detailsColumnsTemplate;\r\n context: { mo: mo, inlineEditMode: inlineEditMode, layout94: layout$ | async }\r\n \"\r\n ></ng-container>\r\n @if (detailsComponent && detailsComponent.Selector) {\r\n <bnrc-dynamic-item-component\r\n [component]=\"detailsComponent\"\r\n [mo]=\"mo\"\r\n [isChecked]=\"isChecked\"\r\n [UlvMainCtrlr]=\"UlvMainCtrlr\"\r\n [setting]=\"detailsComponentSetting\"\r\n [parameters]=\"detailsComponent.Settings\"\r\n [editMode]=\"inlineEditMode\"\r\n [formSetting]=\"formSetting\"\r\n [rtl]=\"rtl\"\r\n [deviceName]=\"deviceName\"\r\n [deviceSize]=\"deviceSize\"\r\n [index]=\"index\"\r\n [allColumns]=\"allColumns\"\r\n [typeDefId]=\"typeDefId\"\r\n ></bnrc-dynamic-item-component>\r\n }\r\n </td>\r\n</tr>\r\n} @if(previewColumn){\r\n<tr\r\n #trEl\r\n fd-table-row\r\n [secondary]=\"true\"\r\n class=\"preview-column\"\r\n [class.no-edit-mode]=\"!inlineEditMode\"\r\n [applyConditionalFormats]=\"conditionalFormats\"\r\n [styleIndex]=\"styleIndex\"\r\n [hostEl]=\"trEl\"\r\n [attr.aria-selected]=\"isChecked && !inlineEditMode ? true : false\"\r\n [class.alternateRowMode]=\"enableAlternateRowMode\"\r\n>\r\n @if (allowRecordReorder) {\r\n <td fd-table-cell class=\"col-drag-handle\"></td>\r\n }\r\n <ng-container *ngTemplateOutlet=\"statusIndicator\"></ng-container>\r\n\r\n <td\r\n fd-table-cell\r\n [attr.colspan]=\"\r\n columns.length +\r\n 2 +\r\n (rowIndicator ? -1 : 0) +\r\n (contextMenuItems && contextMenuItems.length > 0 ? 1 : 0) +\r\n (showViewButton ? 1 : 0) +\r\n (showDetailsInRow && !inlineEditMode ? 1 : 0)\r\n \"\r\n (click)=\"onRowCheck()\"\r\n >\r\n <div style=\"display: flex; flex-direction: column\">\r\n <p\r\n #pEl\r\n fd-table-text\r\n [applyConditionalFormats]=\"conditionalFormats\"\r\n [hostEl]=\"pEl\"\r\n [styleIndex]=\"styleIndex\"\r\n [dbName]=\"previewColumn.Name\"\r\n style=\"color: var(--sapAccentColor6); max-width: 420px\"\r\n >\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n columnTemplate;\r\n context: {\r\n $implicit: previewColumn,\r\n mo: mo,\r\n index: columns.length,\r\n inlineEditMode: inlineEditMode,\r\n layout94: layout$ | async\r\n }\r\n \"\r\n ></ng-container>\r\n </p>\r\n </div>\r\n </td>\r\n</tr>\r\n} @if(isLastChildGroup && groupSummary){\r\n<tr #trEl fd-table-row class=\"group-summary-row\" [class.no-edit-mode]=\"true\" [attr.aria-selected]=\"false\">\r\n @if (allowRecordReorder) {\r\n <td fd-table-cell class=\"col-drag-handle\"></td>\r\n }\r\n <ng-container *ngTemplateOutlet=\"statusIndicator\"></ng-container>\r\n @if (!isCheckList) {\r\n <td fd-table-cell class=\"single-select\"></td>\r\n } @for (column of columns; track _trackByColumn(columnIndex, column); let columnIndex = $index) {\r\n <td fd-table-cell [class.frozen-column]=\"column.Name === freezeColumn\">\r\n <label #summaryRef>{{ reCalculateColumnSummary(summaryRef, column) }}</label>\r\n </td>\r\n } @if (contextMenuItems.length) {\r\n <td class=\"col-context-menu\" fd-table-cell></td>\r\n } @if (showDetailsInRow && (!inlineEditMode || !allowInlineEdit)) {\r\n <td class=\"col-details\" fd-table-cell [fitContent]=\"true\"></td>\r\n } @if (actionList?.length && !inlineEditMode) {\r\n <td class=\"col-view\" fd-table-cell [fitContent]=\"true\"></td>\r\n }\r\n <td fd-table-cell></td>\r\n</tr>\r\n} @if (bruleActionMessage() && hasError && allowInlineEdit) {\r\n<tr fd-table-row>\r\n @if (allowRecordReorder) {\r\n <td fd-table-cell class=\"col-drag-handle\"></td>\r\n }\r\n <ng-container *ngTemplateOutlet=\"statusIndicator\"></ng-container>\r\n <td\r\n fd-table-cell\r\n [attr.colspan]=\"\r\n columns.length +\r\n 2 +\r\n (rowIndicator ? -1 : 0) +\r\n (contextMenuItems && contextMenuItems.length > 0 ? 1 : 0) +\r\n (showViewButton ? 1 : 0) +\r\n (showDetailsInRow && !inlineEditMode ? 1 : 0)\r\n \"\r\n >\r\n @if (bruleActionMessage()?.MessageType === 2) {\r\n <fd-message-strip\r\n [type]=\"bruleActionMessage()?.MessageType === 2 ? 'error' : 'information'\"\r\n [dismissible]=\"false\"\r\n noIcon\r\n >\r\n @if(bruleActionMessage()?.MessageExpressionHtml){\r\n <span [innerHtml]=\"bruleActionMessage()?.MessageExpressionHtml\"></span>\r\n }@else{\r\n {{ bruleActionMessage()?.MessageExpression }}\r\n }\r\n </fd-message-strip>\r\n }\r\n </td>\r\n</tr>\r\n} @if (workflowState()?.state === 'Finish' && workflowState()?.error) {\r\n<tr fd-table-row>\r\n @if (allowRecordReorder) {\r\n <td fd-table-cell class=\"col-drag-handle\"></td>\r\n }\r\n <ng-container *ngTemplateOutlet=\"statusIndicator\"></ng-container>\r\n <td\r\n fd-table-cell\r\n [attr.colspan]=\"\r\n columns.length +\r\n 2 +\r\n (rowIndicator ? -1 : 0) +\r\n (contextMenuItems && contextMenuItems.length > 0 ? 1 : 0) +\r\n (showViewButton ? 1 : 0) +\r\n (showDetailsInRow && !inlineEditMode ? 1 : 0)\r\n \"\r\n >\r\n <fd-message-strip type=\"error\" [dismissible]=\"true\" (onDismiss)=\"onResetWorkflowState()\">\r\n {{ workflowState()?.error?.Text || workflowState()?.error?.MessageExpression }}\r\n </fd-message-strip>\r\n </td>\r\n</tr>\r\n}\r\n<ng-template #detailsColumnsTemplate let-mo=\"mo\" let-inlineEditMode=\"inlineEditMode\" let-layout94=\"layout94\">\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n detailsFormItems;\r\n context: {\r\n $implicit: detailsColumns,\r\n mo: this.mo,\r\n inlineEditMode: this.inlineEditMode,\r\n layout94: layout94\r\n }\r\n \"\r\n ></ng-container>\r\n</ng-template>\r\n<ng-template\r\n #detailsFormItems\r\n let-detailsColumns\r\n let-mo=\"mo\"\r\n let-inlineEditMode=\"inlineEditMode\"\r\n let-layout94=\"layout94\"\r\n>\r\n @if(detailsColumns?.length){\r\n <div class=\"form-items\">\r\n @for (column of detailsColumns; track column; let columnIndex = $index) {\r\n <div fd-form-item>\r\n <label fd-form-label for=\"input-2\">{{ column.Caption }}</label>\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n columnTemplate;\r\n context: {\r\n $implicit: column,\r\n mo: mo,\r\n index: columnIndex,\r\n inlineEditMode: inlineEditMode,\r\n layout94: layout94\r\n }\r\n \"\r\n ></ng-container>\r\n </div>\r\n }\r\n </div>\r\n }\r\n</ng-template>\r\n<ng-template\r\n #columnTemplate\r\n let-column\r\n let-mo=\"mo\"\r\n let-index=\"index\"\r\n let-inlineEditMode=\"inlineEditMode\"\r\n let-layout94=\"layout94\"\r\n>\r\n <bsu-barsa-table-column\r\n [mo]=\"mo\"\r\n [allColumns]=\"allColumns\"\r\n [column]=\"column\"\r\n [attachmentViewType]=\"attachmentViewType\"\r\n [isdirty]=\"dirtyColumns && dirtyColumns[column.Name]\"\r\n [value]=\"column | columnValue: mo\"\r\n [icon]=\"column | columnIcon: mo\"\r\n [customComponent]=\"column.$CustomComponent\"\r\n [column]=\"column\"\r\n [disableEllapsis]=\"secondaryColumns?.length || disableEllapsis\"\r\n [editMode]=\"(isChecked || inlineEditWithoutSelection) && inlineEditMode && allowInlineEdit\"\r\n [inlineEditMode]=\"inlineEditMode\"\r\n [isChecked]=\"isChecked === true\"\r\n [index]=\"index\"\r\n [formSetting]=\"formSetting\"\r\n [rtl]=\"rtl\"\r\n [isMobile]=\"isMobile\"\r\n [deviceName]=\"deviceName\"\r\n [deviceSize]=\"deviceSize\"\r\n [layout94]=\"layout94\"\r\n [cellEdit]=\"activeColumn() === column && isChecked\"\r\n (save)=\"onEditFormPanelSave(null)\"\r\n (cancel)=\"onEditFormPanelCancel(null)\"\r\n (tab)=\"onTabKeyDown($event, index)\"\r\n (changeToEditMode)=\"onColumnChangeToEditMode($event, index)\"\r\n >\r\n </bsu-barsa-table-column>\r\n</ng-template>\r\n<ng-template #statusIndicator>\r\n @if (rowIndicator) {\r\n <bsu-barsa-column-indicator [hideBorderBottom]=\"!detailsCollapsed\" [backColor]=\"rowIndicatorColor\">\r\n </bsu-barsa-column-indicator>\r\n }\r\n</ng-template>\r\n<ng-template #rowNumberTemplate>\r\n @if (showRowNumber) {\r\n <td fd-table-cell bsu-barsa-column-rownumber [rowNumber]=\"rowNumber\" (click)=\"!isCheckList && onRowCheck()\"></td>\r\n }\r\n</ng-template>\r\n<tr fd-table-row style=\"pointer-events: none\"></tr>\r\n", styles: [":host{display:contents;width:100%}:host tr.cdk-drag-dragging{pointer-events:none}:host td.col-drag-handle{width:32px;max-width:32px;text-align:center;padding:0!important}:host td.col-drag-handle .reorder-handle{display:inline-flex;align-items:center;justify-content:center;width:100%;height:100%;min-width:32px;min-height:2rem;cursor:grab;color:var(--sapContent_IconColor, #6a6d70);opacity:.6}:host td.col-drag-handle .reorder-handle:hover{opacity:1}:host td.col-drag-handle .reorder-handle:active{cursor:grabbing}:host tr.alternateRowMode{--sapList_Background: var(--sapList_AlternatingBackground)}:host tr.preview-column td{border-left-style:solid;border-right-style:solid}:host bnrc-form.cartable-template ::ng-deep bsu-ly-layout-container-of-root{padding-bottom:1rem}:host.has-preview-column .secondary-row td{border-bottom:none}:host tr.has-secondary-row td{border-bottom:none}:host ::ng-deep .row-group.mobile-mode{border-bottom:var(--sapList_BorderWidth, .0625rem) solid var(--sapList_BorderColor, #e4e4e4)!important}:host ::ng-deep .inlineEditMode bnrc-field-ui{padding:0;margin:0}:host ::ng-deep .inlineEditMode bsu-ui-simple-combo{margin:0!important}:host ::ng-deep .secondary.p-wrapper p{display:flex;align-items:center}bsu-layout-control:not(.hide-form-item){align-items:center;height:100%;min-width:auto;width:auto}tr.group-summary-row td{border:none;background-color:#dde5f0;border-right:none!important;font-weight:700}tr.group-summary-row td label{font-weight:700}tr.group-summary-row td label.NaN{display:none}td{vertical-align:middle}td.frozen-column{position:sticky;inset-inline-start:0;z-index:1;background-color:var(--sapList_Background)}td.control-readonly{background-color:var(--sapList_HeaderBackground)}tr.brule-message td{border:0}.row-group{background-color:var(--sapBackgroundColor, \"#f7f7ff\")}.cell-expand{cursor:pointer;display:inline-flex;justify-content:center;align-items:center;font-size:.75rem;color:#0854a0;color:var(--sapContent_IconColor, #0854a0);min-width:2rem;max-width:2rem}.save-error{color:var(--sapField_InvalidColor)}.save-success{color:var(--sapField_SuccessColor)}.flow{max-width:100%}.flow-item{display:flex}.flow-item fd-micro-process-flow-icon{width:1.375rem;height:1.375rem}.flow-item h5{padding-right:.3rem}.cartable-template{padding:.5rem 0}.workflow-pending{opacity:.5;pointer-events:none;position:relative}.detailCollapsed{height:0;display:none}tr:not([aria-selected=true]).preview-column td{border-bottom:var(--sapList_BorderWidth) var(--fdTable_Cell_Horizontal_Border_Style, solid) var(--sapList_BorderColor)}tr[aria-selected=true].has-preview-column td,tr.showdetails-on.hasCartable td,tr.showdetails-on.hasForm td,tr.showdetails-on td{border-bottom:none}\n"], dependencies: [{ kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i2.FormComponent, selector: "bnrc-form", inputs: ["params", "customFormPanelUi", "formPanelCtrl", "UlvMainCtrlr", "formPanelCtrlId", "saveOnChange", "inlineEditInReport"], outputs: ["titleChanged", "moChanged", "formClose", "uiComponent", "formRendered", "bruleAction", "beforeTransition", "afterTransition"] }, { kind: "component", type: i2.DynamicItemComponent, selector: "bnrc-dynamic-item-component", inputs: ["mo", "allColumns", "moDataList", "columns", "column", "index", "last", "hideOpenIcon", "deviceName", "deviceSize", "rtl", "editMode", "setting", "parameters", "contextMenuItems", "canView", "showRowNumber", "rowNumber", "formSetting", "conditionalFormats", "disableOverflowContextMenu", "navigationArrow", "isCheckList", "maxHeightHeader", "fields", "isChecked", "layout94$", "inlineEditMode", "isNewInlineMo", "allowInlineEdit", "typeDefId", "rowIndicator", "rowIndicatorColor", "UlvMainCtrlr"] }, { kind: "directive", type: i2.FormCloseDirective, selector: "[formClose]", inputs: ["isMobile"] }, { kind: "directive", type: i2.MoLinkerDirective, selector: "[moLinker]", inputs: ["moLinker", "alternateEditObjectColumn", "disableHyperLink"] }, { kind: "directive", type: i1$2.CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer", "cdkDragScale"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { kind: "directive", type: i1$2.CdkDragHandle, selector: "[cdkDragHandle]", inputs: ["cdkDragHandleDisabled"] }, { kind: "component", type: i5$1.BusyIndicatorComponent, selector: "fd-busy-indicator", inputs: ["loading", "size", "block", "ariaLabel", "ariaValueText", "title", "label", "ariaLive", "preventWheelEvents"] }, { kind: "component", type: i1$4.ButtonComponent, selector: "button[fd-button], a[fd-button], span[fd-button]", inputs: ["id"], exportAs: ["fd-button"] }, { kind: "component", type: i2$2.CheckboxComponent, selector: "fd-checkbox", inputs: ["wrapLabel", "valignLabel", "ariaLabel", "role", "value", "ariaLabelledBy", "ariaDescribedBy", "title", "inputId", "state", "name", "label", "disabled", "readonly", "tristate", "tristateSelectable", "labelClass", "required", "displayOnly", "values", "standalone"], outputs: ["focusChange"] }, { kind: "component", type: i2$1.FormItemComponent, selector: "[fd-form-item]", inputs: ["isInline", "horizontal"] }, { kind: "component", type: i2$1.FormLabelComponent, selector: "[fd-form-label]", inputs: ["required", "colon", "alignLabelEnd", "inlineHelpContent", "inlineHelpGlyph", "inlineHelpTriggers", "inlineHelpBodyPlacement", "inlineHelpPlacement", "allowWrap", "inlineHelpLabel", "id", "disabled", "unitDescription", "independent"] }, { kind: "component", type: i3.IconComponent, selector: "fd-icon", inputs: ["glyph", "font", "color", "background", "size", "class", "ariaLabel", "ariaHidden"], outputs: ["ariaHiddenChange"] }, { kind: "component", type: i2$8.MessageStripComponent, selector: "fd-message-strip", inputs: ["dismissible", "ariaLabelledBy", "dismissBtnTitle", "noIcon", "type", "id", "ariaLabel", "width", "minWidth", "marginBottom", "indicationColor"], outputs: ["onDismiss"] }, { kind: "directive", type: i3$2.TableRowDirective, selector: "[fdTableRow], [fd-table-row]", inputs: ["activable", "highlightActive", "hoverable", "focusable", "main", "secondary", "active"] }, { kind: "directive", type: i3$2.TableCellDirective, selector: "[fdTableCell], [fd-table-cell]", inputs: ["noBorderX", "noBorderY", "activable", "focusable", "hoverable", "fitContent", "noPadding", "noData", "nonInteractive", "key"] }, { kind: "directive", type: i3$2.TableTextDirective, selector: "[fdTableText], [fd-table-text]", inputs: ["fdTableTextClass", "noWrap", "title", "maxWidth"] }, { kind: "component", type: MaskComponent, selector: "bsu-mask", inputs: ["size", "top"] }, { kind: "component", type: UlvContextMenuComponent, selector: "bsu-ulv-context-menu,[ulvContextMenu]", inputs: ["onlyOverflow", "rightClickEnable", "closeOnOutsideClick", "deviceName", "menuItems", "allColumns", "index", "mo", "styleIndex", "conditionalFormats", "disableOverflowContextMenu", "footerMode", "contextMenuOverflowText", "appendTo"], outputs: ["commandClick", "overflowClick"] }, { kind: "component", type: BarsaTableColumnComponent, selector: "bsu-barsa-table-column", inputs: ["disableEllapsis", "fdTextMode"] }, { kind: "component", type: BarsaColumnIndicatorComponent, selector: "bsu-barsa-column-indicator", inputs: ["backColor", "hideBorderBottom"] }, { kind: "component", type: BarsaColumnRowNumberComponent, selector: "td[bsu-barsa-column-rownumber],bsu-barsa-column-rownumber", inputs: ["rowNumber"] }, { kind: "component", type: BarsaRowInlineActionlistComponent, selector: "bsu-barsa-row-inline-actionlist", inputs: ["actionList", "mo", "index"], outputs: ["btnClick"] }, { kind: "directive", type: ApplyConditionalFormatsDirective, selector: "[applyConditionalFormats]", inputs: ["applyConditionalFormats", "styleIndex", "hostEl", "dbName"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "pipe", type: i2.BbbTranslatePipe, name: "bbbTranslate" }, { kind: "pipe", type: i2.ColumnIconPipe, name: "columnIcon" }, { kind: "pipe", type: i2.MoIconPipe, name: "moIcon" }, { kind: "pipe", type: i2.ColumnValuePipe, name: "columnValue" }, { kind: "pipe", type: i2.ExistsColumnsPipe, name: "existsColumns" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
6800
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.8", type: BarsaTableRowComponent, isStandalone: false, selector: "bsu-barsa-table-row", inputs: { showDetailsInRow: "showDetailsInRow", allowRecordReorder: "allowRecordReorder", previewColumn: "previewColumn", columnComponents: "columnComponents", detailsCollapsed: "detailsCollapsed", freezeColumn: "freezeColumn" }, outputs: { columnSummary: "columnSummary", reorderMoved: "reorderMoved", reorderEnded: "reorderEnded" }, providers: [FormPanelService], viewQueries: [{ propertyName: "detailsFormItems", first: true, predicate: ["detailsFormItems"], descendants: true, static: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "@if ((!mo.$Parent || parentExpanded) && visibility !== false) {\r\n<tr\r\n [class.row-error]=\"hasError\"\r\n [class.showdetails-on]=\"!detailsCollapsed && (detailsComponent?.Selector || detailsColumns?.length)\"\r\n [class.has-secondary-row]=\"secondaryColumns?.length && !mo.$Group && (!mo.$Parent || parentExpanded)\"\r\n [class.hasForm]=\"formSetting\"\r\n [class.hasCartable]=\"!!cartableParams\"\r\n #trEl\r\n fd-table-row\r\n cdkDrag\r\n [cdkDragDisabled]=\"!allowRecordReorder || mo.$Group || mo.$Group === ''\"\r\n [cdkDragData]=\"mo\"\r\n [attr.data-reorder-index]=\"index\"\r\n (cdkDragMoved)=\"onReorderMoved($event)\"\r\n (cdkDragEnded)=\"onReorderEnded($event)\"\r\n [activable]=\"false\"\r\n [hoverable]=\"true\"\r\n [main]=\"true\"\r\n [focusable]=\"!(inlineEditMode && allowInlineEdit)\"\r\n [applyConditionalFormats]=\"conditionalFormats\"\r\n [styleIndex]=\"styleIndex\"\r\n [hostEl]=\"trEl\"\r\n [attr.aria-selected]=\"isChecked\"\r\n [class.has-preview-column]=\"!!previewColumn\"\r\n [class.brule-message]=\"bruleActionMessage() || workflowState()?.error\"\r\n [class.workflow-pending]=\"workflowState()?.state === 'Pending'\"\r\n [class.alternateRowMode]=\"enableAlternateRowMode\"\r\n (keydown.enter)=\"onRowCheck(true)\"\r\n>\r\n @if (allowRecordReorder) {\r\n <td fd-table-cell class=\"col-drag-handle\" (click)=\"$event.stopPropagation()\" (dblclick)=\"$event.stopPropagation()\">\r\n @if (!(mo.$Group || mo.$Group === '')) {\r\n <span class=\"reorder-handle\" cdkDragHandle>\r\n <fd-icon glyph=\"grip\" font=\"BusinessSuiteInAppSymbols\"></fd-icon>\r\n </span>\r\n }\r\n </td>\r\n } @if (mo.$Group || mo.$Group === '') {\r\n <td\r\n [style.padding-right]=\"rtl ? 'calc( 1rem + ' + level * 12 + 'px' + ' )' : 'inherit'\"\r\n [style.padding-left]=\"!rtl ? 'calc( 1rem + ' + level * 12 + 'px' + ' )' : 'inherit'\"\r\n fd-table-cell\r\n style=\"font-weight: bold; font-size: 1rem\"\r\n [attr.colspan]=\"\r\n columns.length +\r\n 1 +\r\n (rowIndicator ? -1 : 0) +\r\n (contextMenuItems && contextMenuItems.length > 0 ? 1 : 0) +\r\n (showViewButton ? 1 : 0) +\r\n (showDetailsInRow && !inlineEditMode ? 1 : 0)\r\n \"\r\n class=\"row-group\"\r\n [class.mobile-mode]=\"secondaryColumns?.length\"\r\n [attr.level]=\"level\"\r\n [class.root-group]=\"level === 0\"\r\n >\r\n <button\r\n fd-button\r\n [fdType]=\"'transparent'\"\r\n [glyph]=\"expanded !== false ? 'navigation-down-arrow' : 'navigation-left-arrow'\"\r\n class=\"cell-expand\"\r\n (click)=\"onExpandClick()\"\r\n ></button>\r\n {{ mo.$Group === 'undefined' ? '' : mo.$Group }}\r\n </td>\r\n } @else {\r\n\r\n <ng-container *ngTemplateOutlet=\"statusIndicator\"></ng-container>\r\n @if (isCheckList) {\r\n <td fd-table-cell [style.width]=\"checkboxComponent ? '60px' : null\">\r\n <div class=\"tw-flex tw-items-center tw-justify-center\">\r\n @if (workflowState()?.state === 'Pending') {\r\n <div style=\"position: absolute; left: 0; right: 0; bottom: 0; top: 0\">\r\n <bsu-mask [top]=\"'20px'\" [size]=\"'s'\"></bsu-mask>\r\n </div>\r\n } @if (checkboxComponent?.Selector) {\r\n <bnrc-dynamic-item-component\r\n [component]=\"checkboxComponent\"\r\n [mo]=\"mo\"\r\n [isChecked]=\"isChecked\"\r\n [UlvMainCtrlr]=\"UlvMainCtrlr\"\r\n [setting]=\"setting\"\r\n [parameters]=\"checkboxComponent.Parameters\"\r\n [editMode]=\"inlineEditMode\"\r\n [rtl]=\"rtl\"\r\n [deviceName]=\"deviceName\"\r\n [value]=\"isChecked\"\r\n [deviceSize]=\"deviceSize\"\r\n [index]=\"index\"\r\n [allColumns]=\"allColumns\"\r\n [typeDefId]=\"typeDefId\"\r\n (events)=\"onRowCheck()\"\r\n ></bnrc-dynamic-item-component>\r\n } @else {\r\n <fd-checkbox [name]=\"mo.$Caption\" [ngModel]=\"isChecked\" (ngModelChange)=\"onRowCheck()\"></fd-checkbox>\r\n }\r\n </div>\r\n </td>\r\n } @if (!isCheckList && !showRowNumber) {\r\n <td\r\n fd-table-cell\r\n class=\"single-select\"\r\n (click)=\"!isCheckList && onRowCheck()\"\r\n style=\"padding: 0; text-align: center\"\r\n >\r\n <div class=\"tw-flex tw-items-center tw-justify-center\">\r\n @if (allowInlineEdit && (hasError || saving || saved)) { @if (hasError) {\r\n <fd-icon class=\"save-error\" glyph=\"error\"></fd-icon>\r\n }@else if (saving) {\r\n <fd-busy-indicator [loading]=\"true\" [size]=\"'s'\" title=\"record saving\"></fd-busy-indicator>\r\n } @else if (saved) {\r\n <fd-icon class=\"save-success\" glyph=\"accept\"></fd-icon>\r\n } } @else { @if (mo.$State === 'New') {\r\n <fd-icon glyph=\"favorite\"></fd-icon>\r\n }@else if (inlineEditMode && allowInlineEdit && isChecked) {\r\n <fd-icon glyph=\"edit\"></fd-icon>\r\n }@else{\r\n <img\r\n [src]=\"mo | moIcon: UlvMainCtrlr?.Setting\"\r\n (error)=\"onIconError($event)\"\r\n loading=\"lazy\"\r\n width=\"16\"\r\n height=\"16\"\r\n alt=\"object icon\"\r\n />\r\n } }\r\n </div>\r\n </td>\r\n }\r\n <ng-container *ngTemplateOutlet=\"rowNumberTemplate\"></ng-container>\r\n @for (column of columns; track column.Name; let columnIndex = $index) {\r\n <td\r\n class=\"rep-column\"\r\n [attr.dbName]=\"column.Name\"\r\n #tdEl\r\n fd-table-cell\r\n [applyConditionalFormats]=\"conditionalFormats\"\r\n [hostEl]=\"tdEl\"\r\n [styleIndex]=\"styleIndex\"\r\n [dbName]=\"column.Name\"\r\n [focusable]=\"false\"\r\n (click)=\"onColumnClick(column)\"\r\n (keydown.enter)=\"onColumnKeyEnter(column)\"\r\n (dblclick)=\"onRowClick()\"\r\n [hoverable]=\"inlineEditMode && allowInlineEdit\"\r\n [class.frozen-column]=\"column.Name === freezeColumn\"\r\n [class.control-readonly]=\"column.IsReadonly\"\r\n >\r\n @if(disableHyperLink!==true || (columnsHyperLink | existsColumns:column )?.length) {\r\n <a\r\n [moLinker]=\"mo\"\r\n [alternateEditObjectColumn]=\"alternateEditObjectColumn\"\r\n [disableHyperLink]=\"inlineEditMode || !canView\"\r\n >\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n columnTemplate;\r\n context: {\r\n $implicit: column,\r\n mo: mo,\r\n rowIndex: index,\r\n columnIndex: columnIndex,\r\n inlineEditMode: inlineEditMode,\r\n layout94: layout$ | async\r\n }\r\n \"\r\n ></ng-container>\r\n </a>\r\n } @else{\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n columnTemplate;\r\n context: {\r\n $implicit: column,\r\n mo: mo,\r\n rowIndex: index,\r\n columnIndex: columnIndex,\r\n inlineEditMode: inlineEditMode,\r\n layout94: layout$ | async\r\n }\r\n \"\r\n ></ng-container>\r\n\r\n }\r\n </td>\r\n } @if (contextMenuItems.length ) {\r\n <td class=\"col-context-menu\" fd-table-cell>\r\n <bsu-ulv-context-menu\r\n [disableOverflowContextMenu]=\"disableOverflowContextMenu\"\r\n [conditionalFormats]=\"conditionalFormats\"\r\n [styleIndex]=\"styleIndex\"\r\n [mo]=\"mo\"\r\n [index]=\"index\"\r\n (commandClick)=\"onUlvCommand()\"\r\n (overflowClick)=\"onRowCheck(true)\"\r\n [deviceName]=\"deviceName\"\r\n [menuItems]=\"contextMenuItems\"\r\n [allColumns]=\"allColumns\"\r\n ></bsu-ulv-context-menu>\r\n </td>\r\n } @if (showDetailsInRow && (!inlineEditMode || !allowInlineEdit)) {\r\n <td class=\"col-details\" fd-table-cell [fitContent]=\"true\">\r\n @if ((detailsComponent?.Selector || detailsColumns?.length || cartableParams?.moId ) && !hideDetailsText) {\r\n <div class=\"tw-flex tw-justify-end tw-w-full\">\r\n <button\r\n fd-button\r\n [label]=\"(detailsCollapsed ? detailsText : 'Hide') | bbbTranslate\"\r\n [fdType]=\"'transparent'\"\r\n (click)=\"onRowDetails()\"\r\n ></button>\r\n </div>\r\n }\r\n </td>\r\n } @if (actionList?.length && !inlineEditMode) {\r\n <td class=\"col-view\" [class.rtl]=\"rtl\" fd-table-cell [fitContent]=\"true\">\r\n <bsu-barsa-row-inline-actionlist\r\n [actionList]=\"actionList\"\r\n (btnClick)=\"actionListClick.emit($event)\"\r\n ></bsu-barsa-row-inline-actionlist>\r\n </td>\r\n } }\r\n <td fd-table-cell></td>\r\n</tr>\r\n} @if (secondaryColumns?.length && !mo.$Group && (!mo.$Parent || parentExpanded) ) {\r\n<tr\r\n #trEl\r\n fd-table-row\r\n [secondary]=\"true\"\r\n class=\"secondary-row\"\r\n [class.no-edit-mode]=\"!inlineEditMode\"\r\n [applyConditionalFormats]=\"conditionalFormats\"\r\n [styleIndex]=\"styleIndex\"\r\n [hostEl]=\"trEl\"\r\n [attr.aria-selected]=\"isChecked && !inlineEditMode ? true : false\"\r\n [class.alternateRowMode]=\"enableAlternateRowMode\"\r\n>\r\n @if (allowRecordReorder) {\r\n <td fd-table-cell class=\"col-drag-handle\"></td>\r\n }\r\n <ng-container *ngTemplateOutlet=\"statusIndicator\"></ng-container>\r\n @if (!isCheckList) {\r\n <td fd-table-cell class=\"single-select\" (click)=\"onRowCheck()\"></td>\r\n }\r\n <td fd-table-cell colspan=\"100%\" (click)=\"onRowCheck()\" class=\"secondary p-wrapper\">\r\n <div style=\"display: flex; flex-direction: column\">\r\n @for (column of secondaryColumns; track _trackByColumn(columnIndex, column); let columnIndex = $index) {\r\n <p\r\n #pEl\r\n fd-table-text\r\n [applyConditionalFormats]=\"conditionalFormats\"\r\n [hostEl]=\"pEl\"\r\n [styleIndex]=\"styleIndex\"\r\n [dbName]=\"column.Name\"\r\n style=\"font-family: 'B-Font Medium'\"\r\n >\r\n <label fd-form-label>{{ column.Caption }} :</label>\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n columnTemplate;\r\n context: {\r\n $implicit: column,\r\n mo: mo,\r\n index: columnIndex,\r\n inlineEditMode: inlineEditMode,\r\n layout94: layout$ | async\r\n }\r\n \"\r\n ></ng-container>\r\n </p>\r\n }\r\n </div>\r\n </td>\r\n</tr>\r\n} @if (cartableParams?.moId) {\r\n<tr\r\n [class.detailCollapsed]=\"detailsCollapsed\"\r\n fd-table-row\r\n class=\"showdetails cartable\"\r\n [attr.aria-selected]=\"isChecked\"\r\n [class.has-preview-column]=\"!!previewColumn\"\r\n [class.alternateRowMode]=\"enableAlternateRowMode\"\r\n>\r\n @if (allowRecordReorder) {\r\n <td fd-table-cell class=\"col-drag-handle\"></td>\r\n }\r\n <ng-container *ngTemplateOutlet=\"statusIndicator\"></ng-container>\r\n <td\r\n (click)=\"onRowCheck()\"\r\n fd-table-cell\r\n [attr.colspan]=\"\r\n columns.length +\r\n 2 +\r\n (rowIndicator ? 1 : 0) +\r\n (contextMenuItems && contextMenuItems.length > 0 ? 1 : 0) +\r\n (showViewButton ? 1 : 0) +\r\n (showDetailsInRow && !inlineEditMode ? 1 : 0)\r\n \"\r\n >\r\n <ng-container>\r\n <bnrc-form\r\n #cartableFormRef\r\n class=\"cartable-template\"\r\n [inlineEditInReport]=\"true\"\r\n [params]=\"cartableParams\"\r\n (beforeTransition)=\"onCartableBeforeTansition()\"\r\n (afterTransition)=\"onCartableAfterTansition($event)\"\r\n (bruleAction)=\"onCartableBruleAction($event)\"\r\n (click)=\"OnCartableFormClick($event)\"\r\n (formClose)=\"onCartableFormClosed()\"\r\n ></bnrc-form>\r\n </ng-container>\r\n </td>\r\n</tr>\r\n} @if (!detailsCollapsed && (detailsComponent?.Selector|| detailsColumns?.length)) {\r\n<tr fd-table-row class=\"showdetails\" [attr.aria-selected]=\"isChecked\" [class.has-preview-column]=\"!!previewColumn\">\r\n @if (allowRecordReorder) {\r\n <td fd-table-cell class=\"col-drag-handle\"></td>\r\n }\r\n <ng-container *ngTemplateOutlet=\"statusIndicator\"></ng-container>\r\n <td\r\n (click)=\"onRowCheck()\"\r\n fd-table-cell\r\n [attr.colspan]=\"\r\n columns.length +\r\n 2 +\r\n (rowIndicator ? -1 : 0) +\r\n (contextMenuItems && contextMenuItems.length > 0 ? 1 : 0) +\r\n (showViewButton ? 1 : 0) +\r\n (showDetailsInRow && !inlineEditMode ? 1 : 0)\r\n \"\r\n >\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n detailsColumnsTemplate;\r\n context: { mo: mo, inlineEditMode: inlineEditMode, layout94: layout$ | async }\r\n \"\r\n ></ng-container>\r\n @if (detailsComponent && detailsComponent.Selector) {\r\n <bnrc-dynamic-item-component\r\n [component]=\"detailsComponent\"\r\n [mo]=\"mo\"\r\n [isChecked]=\"isChecked\"\r\n [UlvMainCtrlr]=\"UlvMainCtrlr\"\r\n [setting]=\"detailsComponentSetting\"\r\n [parameters]=\"detailsComponent.Settings\"\r\n [editMode]=\"inlineEditMode\"\r\n [formSetting]=\"formSetting\"\r\n [rtl]=\"rtl\"\r\n [deviceName]=\"deviceName\"\r\n [deviceSize]=\"deviceSize\"\r\n [index]=\"index\"\r\n [allColumns]=\"allColumns\"\r\n [typeDefId]=\"typeDefId\"\r\n ></bnrc-dynamic-item-component>\r\n }\r\n </td>\r\n</tr>\r\n} @if(previewColumn){\r\n<tr\r\n #trEl\r\n fd-table-row\r\n [secondary]=\"true\"\r\n class=\"preview-column\"\r\n [class.no-edit-mode]=\"!inlineEditMode\"\r\n [applyConditionalFormats]=\"conditionalFormats\"\r\n [styleIndex]=\"styleIndex\"\r\n [hostEl]=\"trEl\"\r\n [attr.aria-selected]=\"isChecked && !inlineEditMode ? true : false\"\r\n [class.alternateRowMode]=\"enableAlternateRowMode\"\r\n>\r\n @if (allowRecordReorder) {\r\n <td fd-table-cell class=\"col-drag-handle\"></td>\r\n }\r\n <ng-container *ngTemplateOutlet=\"statusIndicator\"></ng-container>\r\n\r\n <td\r\n fd-table-cell\r\n [attr.colspan]=\"\r\n columns.length +\r\n 2 +\r\n (rowIndicator ? -1 : 0) +\r\n (contextMenuItems && contextMenuItems.length > 0 ? 1 : 0) +\r\n (showViewButton ? 1 : 0) +\r\n (showDetailsInRow && !inlineEditMode ? 1 : 0)\r\n \"\r\n (click)=\"onRowCheck()\"\r\n >\r\n <div style=\"display: flex; flex-direction: column\">\r\n <p\r\n #pEl\r\n fd-table-text\r\n [applyConditionalFormats]=\"conditionalFormats\"\r\n [hostEl]=\"pEl\"\r\n [styleIndex]=\"styleIndex\"\r\n [dbName]=\"previewColumn.Name\"\r\n style=\"color: var(--sapAccentColor6); max-width: 420px\"\r\n >\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n columnTemplate;\r\n context: {\r\n $implicit: previewColumn,\r\n mo: mo,\r\n index: columns.length,\r\n inlineEditMode: inlineEditMode,\r\n layout94: layout$ | async\r\n }\r\n \"\r\n ></ng-container>\r\n </p>\r\n </div>\r\n </td>\r\n</tr>\r\n} @if(isLastChildGroup && groupSummary){\r\n<tr #trEl fd-table-row class=\"group-summary-row\" [class.no-edit-mode]=\"true\" [attr.aria-selected]=\"false\">\r\n @if (allowRecordReorder) {\r\n <td fd-table-cell class=\"col-drag-handle\"></td>\r\n }\r\n <ng-container *ngTemplateOutlet=\"statusIndicator\"></ng-container>\r\n @if (!isCheckList) {\r\n <td fd-table-cell class=\"single-select\"></td>\r\n } @for (column of columns; track _trackByColumn(columnIndex, column); let columnIndex = $index) {\r\n <td fd-table-cell [class.frozen-column]=\"column.Name === freezeColumn\">\r\n <label #summaryRef>{{ reCalculateColumnSummary(summaryRef, column) }}</label>\r\n </td>\r\n } @if (contextMenuItems.length) {\r\n <td class=\"col-context-menu\" fd-table-cell></td>\r\n } @if (showDetailsInRow && (!inlineEditMode || !allowInlineEdit)) {\r\n <td class=\"col-details\" fd-table-cell [fitContent]=\"true\"></td>\r\n } @if (actionList?.length && !inlineEditMode) {\r\n <td class=\"col-view\" fd-table-cell [fitContent]=\"true\"></td>\r\n }\r\n <td fd-table-cell></td>\r\n</tr>\r\n} @if (bruleActionMessage() && hasError && allowInlineEdit) {\r\n<tr fd-table-row>\r\n @if (allowRecordReorder) {\r\n <td fd-table-cell class=\"col-drag-handle\"></td>\r\n }\r\n <ng-container *ngTemplateOutlet=\"statusIndicator\"></ng-container>\r\n <td\r\n fd-table-cell\r\n [attr.colspan]=\"\r\n columns.length +\r\n 2 +\r\n (rowIndicator ? -1 : 0) +\r\n (contextMenuItems && contextMenuItems.length > 0 ? 1 : 0) +\r\n (showViewButton ? 1 : 0) +\r\n (showDetailsInRow && !inlineEditMode ? 1 : 0)\r\n \"\r\n >\r\n @if (bruleActionMessage()?.MessageType === 2) {\r\n <fd-message-strip\r\n [type]=\"bruleActionMessage()?.MessageType === 2 ? 'error' : 'information'\"\r\n [dismissible]=\"false\"\r\n noIcon\r\n >\r\n @if(bruleActionMessage()?.MessageExpressionHtml){\r\n <span [innerHtml]=\"bruleActionMessage()?.MessageExpressionHtml\"></span>\r\n }@else{\r\n {{ bruleActionMessage()?.MessageExpression }}\r\n }\r\n </fd-message-strip>\r\n }\r\n </td>\r\n</tr>\r\n} @if (workflowState()?.state === 'Finish' && workflowState()?.error) {\r\n<tr fd-table-row>\r\n @if (allowRecordReorder) {\r\n <td fd-table-cell class=\"col-drag-handle\"></td>\r\n }\r\n <ng-container *ngTemplateOutlet=\"statusIndicator\"></ng-container>\r\n <td\r\n fd-table-cell\r\n [attr.colspan]=\"\r\n columns.length +\r\n 2 +\r\n (rowIndicator ? -1 : 0) +\r\n (contextMenuItems && contextMenuItems.length > 0 ? 1 : 0) +\r\n (showViewButton ? 1 : 0) +\r\n (showDetailsInRow && !inlineEditMode ? 1 : 0)\r\n \"\r\n >\r\n <fd-message-strip type=\"error\" [dismissible]=\"true\" (onDismiss)=\"onResetWorkflowState()\">\r\n {{ workflowState()?.error?.Text || workflowState()?.error?.MessageExpression }}\r\n </fd-message-strip>\r\n </td>\r\n</tr>\r\n}\r\n<ng-template #detailsColumnsTemplate let-mo=\"mo\" let-inlineEditMode=\"inlineEditMode\" let-layout94=\"layout94\">\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n detailsFormItems;\r\n context: {\r\n $implicit: detailsColumns,\r\n mo: this.mo,\r\n inlineEditMode: this.inlineEditMode,\r\n layout94: layout94\r\n }\r\n \"\r\n ></ng-container>\r\n</ng-template>\r\n<ng-template\r\n #detailsFormItems\r\n let-detailsColumns\r\n let-mo=\"mo\"\r\n let-inlineEditMode=\"inlineEditMode\"\r\n let-layout94=\"layout94\"\r\n>\r\n @if(detailsColumns?.length){\r\n <div class=\"form-items\">\r\n @for (column of detailsColumns; track column; let columnIndex = $index) {\r\n <div fd-form-item>\r\n <label fd-form-label for=\"input-2\">{{ column.Caption }}</label>\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n columnTemplate;\r\n context: {\r\n $implicit: column,\r\n mo: mo,\r\n index: columnIndex,\r\n inlineEditMode: inlineEditMode,\r\n layout94: layout94\r\n }\r\n \"\r\n ></ng-container>\r\n </div>\r\n }\r\n </div>\r\n }\r\n</ng-template>\r\n<ng-template\r\n #columnTemplate\r\n let-column\r\n let-mo=\"mo\"\r\n let-columnIndex=\"columnIndex\"\r\n let-rowIndex=\"rowIndex\"\r\n let-inlineEditMode=\"inlineEditMode\"\r\n let-layout94=\"layout94\"\r\n>\r\n <bsu-barsa-table-column\r\n [mo]=\"mo\"\r\n [allColumns]=\"allColumns\"\r\n [column]=\"column\"\r\n [attachmentViewType]=\"attachmentViewType\"\r\n [isdirty]=\"dirtyColumns && dirtyColumns[column.Name]\"\r\n [value]=\"column | columnValue: mo\"\r\n [icon]=\"column | columnIcon: mo\"\r\n [customComponent]=\"column.$CustomComponent\"\r\n [column]=\"column\"\r\n [disableEllapsis]=\"secondaryColumns?.length || disableEllapsis\"\r\n [editMode]=\"(isChecked || inlineEditWithoutSelection) && inlineEditMode && allowInlineEdit\"\r\n [inlineEditMode]=\"inlineEditMode\"\r\n [isChecked]=\"isChecked === true\"\r\n [index]=\"columnIndex\"\r\n [formSetting]=\"formSetting\"\r\n [rtl]=\"rtl\"\r\n [isMobile]=\"isMobile\"\r\n [deviceName]=\"deviceName\"\r\n [deviceSize]=\"deviceSize\"\r\n [layout94]=\"layout94\"\r\n [cellEdit]=\"activeColumn() === column && isChecked\"\r\n (save)=\"onEditFormPanelSave(null)\"\r\n (cancel)=\"onEditFormPanelCancel(null)\"\r\n (tab)=\"onTabKeyDown($event, columnIndex)\"\n (enter)=\"onEnterKeyDown($event, columnIndex)\"\n (arrowUp)=\"onVerticalNavigationKeyDown($event, columnIndex, 'previous')\"\n (arrowDown)=\"onVerticalNavigationKeyDown($event, columnIndex, 'next')\"\n (changeToEditMode)=\"onColumnChangeToEditMode($event, columnIndex)\"\n >\r\n </bsu-barsa-table-column>\r\n</ng-template>\r\n<ng-template #statusIndicator>\r\n @if (rowIndicator) {\r\n <bsu-barsa-column-indicator [hideBorderBottom]=\"!detailsCollapsed\" [backColor]=\"rowIndicatorColor\">\r\n </bsu-barsa-column-indicator>\r\n }\r\n</ng-template>\r\n<ng-template #rowNumberTemplate>\r\n @if (showRowNumber) {\r\n <td fd-table-cell bsu-barsa-column-rownumber [rowNumber]=\"rowNumber\" (click)=\"!isCheckList && onRowCheck()\"></td>\r\n }\r\n</ng-template>\r\n<tr fd-table-row style=\"pointer-events: none\"></tr>\r\n", styles: [":host{display:contents;width:100%}:host tr.cdk-drag-dragging{pointer-events:none}:host td.col-drag-handle{width:32px;max-width:32px;text-align:center;padding:0!important}:host td.col-drag-handle .reorder-handle{display:inline-flex;align-items:center;justify-content:center;width:100%;height:100%;min-width:32px;min-height:2rem;cursor:grab;color:var(--sapContent_IconColor, #6a6d70);opacity:.6}:host td.col-drag-handle .reorder-handle:hover{opacity:1}:host td.col-drag-handle .reorder-handle:active{cursor:grabbing}:host tr.alternateRowMode{--sapList_Background: var(--sapList_AlternatingBackground)}:host tr.preview-column td{border-left-style:solid;border-right-style:solid}:host bnrc-form.cartable-template ::ng-deep bsu-ly-layout-container-of-root{padding-bottom:1rem}:host.has-preview-column .secondary-row td{border-bottom:none}:host tr.has-secondary-row td{border-bottom:none}:host ::ng-deep .row-group.mobile-mode{border-bottom:var(--sapList_BorderWidth, .0625rem) solid var(--sapList_BorderColor, #e4e4e4)!important}:host ::ng-deep .inlineEditMode bnrc-field-ui{padding:0;margin:0}:host ::ng-deep .inlineEditMode bsu-ui-simple-combo{margin:0!important}:host ::ng-deep .secondary.p-wrapper p{display:flex;align-items:center}bsu-layout-control:not(.hide-form-item){align-items:center;height:100%;min-width:auto;width:auto}tr.group-summary-row td{border:none;background-color:#dde5f0;border-right:none!important;font-weight:700}tr.group-summary-row td label{font-weight:700}tr.group-summary-row td label.NaN{display:none}td{vertical-align:middle}td.frozen-column{position:sticky;inset-inline-start:0;z-index:1;background-color:var(--sapList_Background)}td.control-readonly{background-color:var(--sapList_HeaderBackground)}tr.brule-message td{border:0}.row-group{background-color:var(--sapBackgroundColor, \"#f7f7ff\")}.cell-expand{cursor:pointer;display:inline-flex;justify-content:center;align-items:center;font-size:.75rem;color:#0854a0;color:var(--sapContent_IconColor, #0854a0);min-width:2rem;max-width:2rem}.save-error{color:var(--sapField_InvalidColor)}.save-success{color:var(--sapField_SuccessColor)}.flow{max-width:100%}.flow-item{display:flex}.flow-item fd-micro-process-flow-icon{width:1.375rem;height:1.375rem}.flow-item h5{padding-right:.3rem}.cartable-template{padding:.5rem 0}.workflow-pending{opacity:.5;pointer-events:none;position:relative}.detailCollapsed{height:0;display:none}tr:not([aria-selected=true]).preview-column td{border-bottom:var(--sapList_BorderWidth) var(--fdTable_Cell_Horizontal_Border_Style, solid) var(--sapList_BorderColor)}tr[aria-selected=true].has-preview-column td,tr.showdetails-on.hasCartable td,tr.showdetails-on.hasForm td,tr.showdetails-on td{border-bottom:none}\n"], dependencies: [{ kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i2.FormComponent, selector: "bnrc-form", inputs: ["params", "customFormPanelUi", "formPanelCtrl", "UlvMainCtrlr", "formPanelCtrlId", "saveOnChange", "inlineEditInReport"], outputs: ["titleChanged", "moChanged", "formClose", "uiComponent", "formRendered", "bruleAction", "beforeTransition", "afterTransition"] }, { kind: "component", type: i2.DynamicItemComponent, selector: "bnrc-dynamic-item-component", inputs: ["mo", "allColumns", "moDataList", "columns", "column", "index", "last", "hideOpenIcon", "deviceName", "deviceSize", "rtl", "editMode", "setting", "parameters", "contextMenuItems", "canView", "showRowNumber", "rowNumber", "formSetting", "conditionalFormats", "disableOverflowContextMenu", "navigationArrow", "isCheckList", "maxHeightHeader", "fields", "isChecked", "layout94$", "inlineEditMode", "isNewInlineMo", "allowInlineEdit", "typeDefId", "rowIndicator", "rowIndicatorColor", "UlvMainCtrlr"] }, { kind: "directive", type: i2.FormCloseDirective, selector: "[formClose]", inputs: ["isMobile"] }, { kind: "directive", type: i2.MoLinkerDirective, selector: "[moLinker]", inputs: ["moLinker", "alternateEditObjectColumn", "disableHyperLink"] }, { kind: "directive", type: i1$2.CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer", "cdkDragScale"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { kind: "directive", type: i1$2.CdkDragHandle, selector: "[cdkDragHandle]", inputs: ["cdkDragHandleDisabled"] }, { kind: "component", type: i5$1.BusyIndicatorComponent, selector: "fd-busy-indicator", inputs: ["loading", "size", "block", "ariaLabel", "ariaValueText", "title", "label", "ariaLive", "preventWheelEvents"] }, { kind: "component", type: i1$4.ButtonComponent, selector: "button[fd-button], a[fd-button], span[fd-button]", inputs: ["id"], exportAs: ["fd-button"] }, { kind: "component", type: i2$2.CheckboxComponent, selector: "fd-checkbox", inputs: ["wrapLabel", "valignLabel", "ariaLabel", "role", "value", "ariaLabelledBy", "ariaDescribedBy", "title", "inputId", "state", "name", "label", "disabled", "readonly", "tristate", "tristateSelectable", "labelClass", "required", "displayOnly", "values", "standalone"], outputs: ["focusChange"] }, { kind: "component", type: i2$1.FormItemComponent, selector: "[fd-form-item]", inputs: ["isInline", "horizontal"] }, { kind: "component", type: i2$1.FormLabelComponent, selector: "[fd-form-label]", inputs: ["required", "colon", "alignLabelEnd", "inlineHelpContent", "inlineHelpGlyph", "inlineHelpTriggers", "inlineHelpBodyPlacement", "inlineHelpPlacement", "allowWrap", "inlineHelpLabel", "id", "disabled", "unitDescription", "independent"] }, { kind: "component", type: i3.IconComponent, selector: "fd-icon", inputs: ["glyph", "font", "color", "background", "size", "class", "ariaLabel", "ariaHidden"], outputs: ["ariaHiddenChange"] }, { kind: "component", type: i2$8.MessageStripComponent, selector: "fd-message-strip", inputs: ["dismissible", "ariaLabelledBy", "dismissBtnTitle", "noIcon", "type", "id", "ariaLabel", "width", "minWidth", "marginBottom", "indicationColor"], outputs: ["onDismiss"] }, { kind: "directive", type: i3$2.TableRowDirective, selector: "[fdTableRow], [fd-table-row]", inputs: ["activable", "highlightActive", "hoverable", "focusable", "main", "secondary", "active"] }, { kind: "directive", type: i3$2.TableCellDirective, selector: "[fdTableCell], [fd-table-cell]", inputs: ["noBorderX", "noBorderY", "activable", "focusable", "hoverable", "fitContent", "noPadding", "noData", "nonInteractive", "key"] }, { kind: "directive", type: i3$2.TableTextDirective, selector: "[fdTableText], [fd-table-text]", inputs: ["fdTableTextClass", "noWrap", "title", "maxWidth"] }, { kind: "component", type: MaskComponent, selector: "bsu-mask", inputs: ["size", "top"] }, { kind: "component", type: UlvContextMenuComponent, selector: "bsu-ulv-context-menu,[ulvContextMenu]", inputs: ["onlyOverflow", "rightClickEnable", "closeOnOutsideClick", "deviceName", "menuItems", "allColumns", "index", "mo", "styleIndex", "conditionalFormats", "disableOverflowContextMenu", "footerMode", "contextMenuOverflowText", "appendTo"], outputs: ["commandClick", "overflowClick"] }, { kind: "component", type: BarsaTableColumnComponent, selector: "bsu-barsa-table-column", inputs: ["disableEllapsis", "fdTextMode"] }, { kind: "component", type: BarsaColumnIndicatorComponent, selector: "bsu-barsa-column-indicator", inputs: ["backColor", "hideBorderBottom"] }, { kind: "component", type: BarsaColumnRowNumberComponent, selector: "td[bsu-barsa-column-rownumber],bsu-barsa-column-rownumber", inputs: ["rowNumber"] }, { kind: "component", type: BarsaRowInlineActionlistComponent, selector: "bsu-barsa-row-inline-actionlist", inputs: ["actionList", "mo", "index"], outputs: ["btnClick"] }, { kind: "directive", type: ApplyConditionalFormatsDirective, selector: "[applyConditionalFormats]", inputs: ["applyConditionalFormats", "styleIndex", "hostEl", "dbName"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "pipe", type: i2.BbbTranslatePipe, name: "bbbTranslate" }, { kind: "pipe", type: i2.ColumnIconPipe, name: "columnIcon" }, { kind: "pipe", type: i2.MoIconPipe, name: "moIcon" }, { kind: "pipe", type: i2.ColumnValuePipe, name: "columnValue" }, { kind: "pipe", type: i2.ExistsColumnsPipe, name: "existsColumns" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
6770
6801
  }
6771
6802
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: BarsaTableRowComponent, decorators: [{
6772
6803
  type: Component,
6773
- args: [{ selector: 'bsu-barsa-table-row', providers: [FormPanelService], changeDetection: ChangeDetectionStrategy.OnPush, standalone: false, template: "@if ((!mo.$Parent || parentExpanded) && visibility !== false) {\r\n<tr\r\n [class.row-error]=\"hasError\"\r\n [class.showdetails-on]=\"!detailsCollapsed && (detailsComponent?.Selector || detailsColumns?.length)\"\r\n [class.has-secondary-row]=\"secondaryColumns?.length && !mo.$Group && (!mo.$Parent || parentExpanded)\"\r\n [class.hasForm]=\"formSetting\"\r\n [class.hasCartable]=\"!!cartableParams\"\r\n #trEl\r\n fd-table-row\r\n cdkDrag\r\n [cdkDragDisabled]=\"!allowRecordReorder || mo.$Group || mo.$Group === ''\"\r\n [cdkDragData]=\"mo\"\r\n [attr.data-reorder-index]=\"index\"\r\n (cdkDragMoved)=\"onReorderMoved($event)\"\r\n (cdkDragEnded)=\"onReorderEnded($event)\"\r\n [activable]=\"false\"\r\n [hoverable]=\"true\"\r\n [main]=\"true\"\r\n [focusable]=\"!(inlineEditMode && allowInlineEdit)\"\r\n [applyConditionalFormats]=\"conditionalFormats\"\r\n [styleIndex]=\"styleIndex\"\r\n [hostEl]=\"trEl\"\r\n [attr.aria-selected]=\"isChecked\"\r\n [class.has-preview-column]=\"!!previewColumn\"\r\n [class.brule-message]=\"bruleActionMessage() || workflowState()?.error\"\r\n [class.workflow-pending]=\"workflowState()?.state === 'Pending'\"\r\n [class.alternateRowMode]=\"enableAlternateRowMode\"\r\n (keydown.enter)=\"onRowCheck(true)\"\r\n>\r\n @if (allowRecordReorder) {\r\n <td fd-table-cell class=\"col-drag-handle\" (click)=\"$event.stopPropagation()\" (dblclick)=\"$event.stopPropagation()\">\r\n @if (!(mo.$Group || mo.$Group === '')) {\r\n <span class=\"reorder-handle\" cdkDragHandle>\r\n <fd-icon glyph=\"grip\" font=\"BusinessSuiteInAppSymbols\"></fd-icon>\r\n </span>\r\n }\r\n </td>\r\n } @if (mo.$Group || mo.$Group === '') {\r\n <td\r\n [style.padding-right]=\"rtl ? 'calc( 1rem + ' + level * 12 + 'px' + ' )' : 'inherit'\"\r\n [style.padding-left]=\"!rtl ? 'calc( 1rem + ' + level * 12 + 'px' + ' )' : 'inherit'\"\r\n fd-table-cell\r\n style=\"font-weight: bold; font-size: 1rem\"\r\n [attr.colspan]=\"\r\n columns.length +\r\n 1 +\r\n (rowIndicator ? -1 : 0) +\r\n (contextMenuItems && contextMenuItems.length > 0 ? 1 : 0) +\r\n (showViewButton ? 1 : 0) +\r\n (showDetailsInRow && !inlineEditMode ? 1 : 0)\r\n \"\r\n class=\"row-group\"\r\n [class.mobile-mode]=\"secondaryColumns?.length\"\r\n [attr.level]=\"level\"\r\n [class.root-group]=\"level === 0\"\r\n >\r\n <button\r\n fd-button\r\n [fdType]=\"'transparent'\"\r\n [glyph]=\"expanded !== false ? 'navigation-down-arrow' : 'navigation-left-arrow'\"\r\n class=\"cell-expand\"\r\n (click)=\"onExpandClick()\"\r\n ></button>\r\n {{ mo.$Group === 'undefined' ? '' : mo.$Group }}\r\n </td>\r\n } @else {\r\n\r\n <ng-container *ngTemplateOutlet=\"statusIndicator\"></ng-container>\r\n @if (isCheckList) {\r\n <td fd-table-cell [style.width]=\"checkboxComponent ? '60px' : null\">\r\n <div class=\"tw-flex tw-items-center tw-justify-center\">\r\n @if (workflowState()?.state === 'Pending') {\r\n <div style=\"position: absolute; left: 0; right: 0; bottom: 0; top: 0\">\r\n <bsu-mask [top]=\"'20px'\" [size]=\"'s'\"></bsu-mask>\r\n </div>\r\n } @if (checkboxComponent?.Selector) {\r\n <bnrc-dynamic-item-component\r\n [component]=\"checkboxComponent\"\r\n [mo]=\"mo\"\r\n [isChecked]=\"isChecked\"\r\n [UlvMainCtrlr]=\"UlvMainCtrlr\"\r\n [setting]=\"setting\"\r\n [parameters]=\"checkboxComponent.Parameters\"\r\n [editMode]=\"inlineEditMode\"\r\n [rtl]=\"rtl\"\r\n [deviceName]=\"deviceName\"\r\n [value]=\"isChecked\"\r\n [deviceSize]=\"deviceSize\"\r\n [index]=\"index\"\r\n [allColumns]=\"allColumns\"\r\n [typeDefId]=\"typeDefId\"\r\n (events)=\"onRowCheck()\"\r\n ></bnrc-dynamic-item-component>\r\n } @else {\r\n <fd-checkbox [name]=\"mo.$Caption\" [ngModel]=\"isChecked\" (ngModelChange)=\"onRowCheck()\"></fd-checkbox>\r\n }\r\n </div>\r\n </td>\r\n } @if (!isCheckList && !showRowNumber) {\r\n <td\r\n fd-table-cell\r\n class=\"single-select\"\r\n (click)=\"!isCheckList && onRowCheck()\"\r\n style=\"padding: 0; text-align: center\"\r\n >\r\n <div class=\"tw-flex tw-items-center tw-justify-center\">\r\n @if (allowInlineEdit && (hasError || saving || saved)) { @if (hasError) {\r\n <fd-icon class=\"save-error\" glyph=\"error\"></fd-icon>\r\n }@else if (saving) {\r\n <fd-busy-indicator [loading]=\"true\" [size]=\"'s'\" title=\"record saving\"></fd-busy-indicator>\r\n } @else if (saved) {\r\n <fd-icon class=\"save-success\" glyph=\"accept\"></fd-icon>\r\n } } @else { @if (mo.$State === 'New') {\r\n <fd-icon glyph=\"favorite\"></fd-icon>\r\n }@else if (inlineEditMode && allowInlineEdit && isChecked) {\r\n <fd-icon glyph=\"edit\"></fd-icon>\r\n }@else{\r\n <img\r\n [src]=\"mo | moIcon: UlvMainCtrlr?.Setting\"\r\n (error)=\"onIconError($event)\"\r\n loading=\"lazy\"\r\n width=\"16\"\r\n height=\"16\"\r\n alt=\"object icon\"\r\n />\r\n } }\r\n </div>\r\n </td>\r\n }\r\n <ng-container *ngTemplateOutlet=\"rowNumberTemplate\"></ng-container>\r\n @for (column of columns; track column.Name; let columnIndex = $index) {\r\n <td\r\n class=\"rep-column\"\r\n [attr.dbName]=\"column.Name\"\r\n #tdEl\r\n fd-table-cell\r\n [applyConditionalFormats]=\"conditionalFormats\"\r\n [hostEl]=\"tdEl\"\r\n [styleIndex]=\"styleIndex\"\r\n [dbName]=\"column.Name\"\r\n [focusable]=\"false\"\r\n (click)=\"onColumnClick(column)\"\r\n (keydown.enter)=\"onColumnKeyEnter(column)\"\r\n (dblclick)=\"onRowClick()\"\r\n [hoverable]=\"inlineEditMode && allowInlineEdit\"\r\n [class.frozen-column]=\"column.Name === freezeColumn\"\r\n [class.control-readonly]=\"column.IsReadonly\"\r\n >\r\n @if(disableHyperLink!==true || (columnsHyperLink | existsColumns:column )?.length) {\r\n <a\r\n [moLinker]=\"mo\"\r\n [alternateEditObjectColumn]=\"alternateEditObjectColumn\"\r\n [disableHyperLink]=\"inlineEditMode || !canView\"\r\n >\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n columnTemplate;\r\n context: {\r\n $implicit: column,\r\n mo: mo,\r\n index: columnIndex,\r\n inlineEditMode: inlineEditMode,\r\n layout94: layout$ | async\r\n }\r\n \"\r\n ></ng-container>\r\n </a>\r\n } @else{\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n columnTemplate;\r\n context: {\r\n $implicit: column,\r\n mo: mo,\r\n index: columnIndex,\r\n inlineEditMode: inlineEditMode,\r\n layout94: layout$ | async\r\n }\r\n \"\r\n ></ng-container>\r\n\r\n }\r\n </td>\r\n } @if (contextMenuItems.length ) {\r\n <td class=\"col-context-menu\" fd-table-cell>\r\n <bsu-ulv-context-menu\r\n [disableOverflowContextMenu]=\"disableOverflowContextMenu\"\r\n [conditionalFormats]=\"conditionalFormats\"\r\n [styleIndex]=\"styleIndex\"\r\n [mo]=\"mo\"\r\n [index]=\"index\"\r\n (commandClick)=\"onUlvCommand()\"\r\n (overflowClick)=\"onRowCheck(true)\"\r\n [deviceName]=\"deviceName\"\r\n [menuItems]=\"contextMenuItems\"\r\n [allColumns]=\"allColumns\"\r\n ></bsu-ulv-context-menu>\r\n </td>\r\n } @if (showDetailsInRow && (!inlineEditMode || !allowInlineEdit)) {\r\n <td class=\"col-details\" fd-table-cell [fitContent]=\"true\">\r\n @if ((detailsComponent?.Selector || detailsColumns?.length || cartableParams?.moId ) && !hideDetailsText) {\r\n <div class=\"tw-flex tw-justify-end tw-w-full\">\r\n <button\r\n fd-button\r\n [label]=\"(detailsCollapsed ? detailsText : 'Hide') | bbbTranslate\"\r\n [fdType]=\"'transparent'\"\r\n (click)=\"onRowDetails()\"\r\n ></button>\r\n </div>\r\n }\r\n </td>\r\n } @if (actionList?.length && !inlineEditMode) {\r\n <td class=\"col-view\" [class.rtl]=\"rtl\" fd-table-cell [fitContent]=\"true\">\r\n <bsu-barsa-row-inline-actionlist\r\n [actionList]=\"actionList\"\r\n (btnClick)=\"actionListClick.emit($event)\"\r\n ></bsu-barsa-row-inline-actionlist>\r\n </td>\r\n } }\r\n <td fd-table-cell></td>\r\n</tr>\r\n} @if (secondaryColumns?.length && !mo.$Group && (!mo.$Parent || parentExpanded) ) {\r\n<tr\r\n #trEl\r\n fd-table-row\r\n [secondary]=\"true\"\r\n class=\"secondary-row\"\r\n [class.no-edit-mode]=\"!inlineEditMode\"\r\n [applyConditionalFormats]=\"conditionalFormats\"\r\n [styleIndex]=\"styleIndex\"\r\n [hostEl]=\"trEl\"\r\n [attr.aria-selected]=\"isChecked && !inlineEditMode ? true : false\"\r\n [class.alternateRowMode]=\"enableAlternateRowMode\"\r\n>\r\n @if (allowRecordReorder) {\r\n <td fd-table-cell class=\"col-drag-handle\"></td>\r\n }\r\n <ng-container *ngTemplateOutlet=\"statusIndicator\"></ng-container>\r\n @if (!isCheckList) {\r\n <td fd-table-cell class=\"single-select\" (click)=\"onRowCheck()\"></td>\r\n }\r\n <td fd-table-cell colspan=\"100%\" (click)=\"onRowCheck()\" class=\"secondary p-wrapper\">\r\n <div style=\"display: flex; flex-direction: column\">\r\n @for (column of secondaryColumns; track _trackByColumn(columnIndex, column); let columnIndex = $index) {\r\n <p\r\n #pEl\r\n fd-table-text\r\n [applyConditionalFormats]=\"conditionalFormats\"\r\n [hostEl]=\"pEl\"\r\n [styleIndex]=\"styleIndex\"\r\n [dbName]=\"column.Name\"\r\n style=\"font-family: 'B-Font Medium'\"\r\n >\r\n <label fd-form-label>{{ column.Caption }} :</label>\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n columnTemplate;\r\n context: {\r\n $implicit: column,\r\n mo: mo,\r\n index: columnIndex,\r\n inlineEditMode: inlineEditMode,\r\n layout94: layout$ | async\r\n }\r\n \"\r\n ></ng-container>\r\n </p>\r\n }\r\n </div>\r\n </td>\r\n</tr>\r\n} @if (cartableParams?.moId) {\r\n<tr\r\n [class.detailCollapsed]=\"detailsCollapsed\"\r\n fd-table-row\r\n class=\"showdetails cartable\"\r\n [attr.aria-selected]=\"isChecked\"\r\n [class.has-preview-column]=\"!!previewColumn\"\r\n [class.alternateRowMode]=\"enableAlternateRowMode\"\r\n>\r\n @if (allowRecordReorder) {\r\n <td fd-table-cell class=\"col-drag-handle\"></td>\r\n }\r\n <ng-container *ngTemplateOutlet=\"statusIndicator\"></ng-container>\r\n <td\r\n (click)=\"onRowCheck()\"\r\n fd-table-cell\r\n [attr.colspan]=\"\r\n columns.length +\r\n 2 +\r\n (rowIndicator ? 1 : 0) +\r\n (contextMenuItems && contextMenuItems.length > 0 ? 1 : 0) +\r\n (showViewButton ? 1 : 0) +\r\n (showDetailsInRow && !inlineEditMode ? 1 : 0)\r\n \"\r\n >\r\n <ng-container>\r\n <bnrc-form\r\n #cartableFormRef\r\n class=\"cartable-template\"\r\n [inlineEditInReport]=\"true\"\r\n [params]=\"cartableParams\"\r\n (beforeTransition)=\"onCartableBeforeTansition()\"\r\n (afterTransition)=\"onCartableAfterTansition($event)\"\r\n (bruleAction)=\"onCartableBruleAction($event)\"\r\n (click)=\"OnCartableFormClick($event)\"\r\n (formClose)=\"onCartableFormClosed()\"\r\n ></bnrc-form>\r\n </ng-container>\r\n </td>\r\n</tr>\r\n} @if (!detailsCollapsed && (detailsComponent?.Selector|| detailsColumns?.length)) {\r\n<tr fd-table-row class=\"showdetails\" [attr.aria-selected]=\"isChecked\" [class.has-preview-column]=\"!!previewColumn\">\r\n @if (allowRecordReorder) {\r\n <td fd-table-cell class=\"col-drag-handle\"></td>\r\n }\r\n <ng-container *ngTemplateOutlet=\"statusIndicator\"></ng-container>\r\n <td\r\n (click)=\"onRowCheck()\"\r\n fd-table-cell\r\n [attr.colspan]=\"\r\n columns.length +\r\n 2 +\r\n (rowIndicator ? -1 : 0) +\r\n (contextMenuItems && contextMenuItems.length > 0 ? 1 : 0) +\r\n (showViewButton ? 1 : 0) +\r\n (showDetailsInRow && !inlineEditMode ? 1 : 0)\r\n \"\r\n >\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n detailsColumnsTemplate;\r\n context: { mo: mo, inlineEditMode: inlineEditMode, layout94: layout$ | async }\r\n \"\r\n ></ng-container>\r\n @if (detailsComponent && detailsComponent.Selector) {\r\n <bnrc-dynamic-item-component\r\n [component]=\"detailsComponent\"\r\n [mo]=\"mo\"\r\n [isChecked]=\"isChecked\"\r\n [UlvMainCtrlr]=\"UlvMainCtrlr\"\r\n [setting]=\"detailsComponentSetting\"\r\n [parameters]=\"detailsComponent.Settings\"\r\n [editMode]=\"inlineEditMode\"\r\n [formSetting]=\"formSetting\"\r\n [rtl]=\"rtl\"\r\n [deviceName]=\"deviceName\"\r\n [deviceSize]=\"deviceSize\"\r\n [index]=\"index\"\r\n [allColumns]=\"allColumns\"\r\n [typeDefId]=\"typeDefId\"\r\n ></bnrc-dynamic-item-component>\r\n }\r\n </td>\r\n</tr>\r\n} @if(previewColumn){\r\n<tr\r\n #trEl\r\n fd-table-row\r\n [secondary]=\"true\"\r\n class=\"preview-column\"\r\n [class.no-edit-mode]=\"!inlineEditMode\"\r\n [applyConditionalFormats]=\"conditionalFormats\"\r\n [styleIndex]=\"styleIndex\"\r\n [hostEl]=\"trEl\"\r\n [attr.aria-selected]=\"isChecked && !inlineEditMode ? true : false\"\r\n [class.alternateRowMode]=\"enableAlternateRowMode\"\r\n>\r\n @if (allowRecordReorder) {\r\n <td fd-table-cell class=\"col-drag-handle\"></td>\r\n }\r\n <ng-container *ngTemplateOutlet=\"statusIndicator\"></ng-container>\r\n\r\n <td\r\n fd-table-cell\r\n [attr.colspan]=\"\r\n columns.length +\r\n 2 +\r\n (rowIndicator ? -1 : 0) +\r\n (contextMenuItems && contextMenuItems.length > 0 ? 1 : 0) +\r\n (showViewButton ? 1 : 0) +\r\n (showDetailsInRow && !inlineEditMode ? 1 : 0)\r\n \"\r\n (click)=\"onRowCheck()\"\r\n >\r\n <div style=\"display: flex; flex-direction: column\">\r\n <p\r\n #pEl\r\n fd-table-text\r\n [applyConditionalFormats]=\"conditionalFormats\"\r\n [hostEl]=\"pEl\"\r\n [styleIndex]=\"styleIndex\"\r\n [dbName]=\"previewColumn.Name\"\r\n style=\"color: var(--sapAccentColor6); max-width: 420px\"\r\n >\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n columnTemplate;\r\n context: {\r\n $implicit: previewColumn,\r\n mo: mo,\r\n index: columns.length,\r\n inlineEditMode: inlineEditMode,\r\n layout94: layout$ | async\r\n }\r\n \"\r\n ></ng-container>\r\n </p>\r\n </div>\r\n </td>\r\n</tr>\r\n} @if(isLastChildGroup && groupSummary){\r\n<tr #trEl fd-table-row class=\"group-summary-row\" [class.no-edit-mode]=\"true\" [attr.aria-selected]=\"false\">\r\n @if (allowRecordReorder) {\r\n <td fd-table-cell class=\"col-drag-handle\"></td>\r\n }\r\n <ng-container *ngTemplateOutlet=\"statusIndicator\"></ng-container>\r\n @if (!isCheckList) {\r\n <td fd-table-cell class=\"single-select\"></td>\r\n } @for (column of columns; track _trackByColumn(columnIndex, column); let columnIndex = $index) {\r\n <td fd-table-cell [class.frozen-column]=\"column.Name === freezeColumn\">\r\n <label #summaryRef>{{ reCalculateColumnSummary(summaryRef, column) }}</label>\r\n </td>\r\n } @if (contextMenuItems.length) {\r\n <td class=\"col-context-menu\" fd-table-cell></td>\r\n } @if (showDetailsInRow && (!inlineEditMode || !allowInlineEdit)) {\r\n <td class=\"col-details\" fd-table-cell [fitContent]=\"true\"></td>\r\n } @if (actionList?.length && !inlineEditMode) {\r\n <td class=\"col-view\" fd-table-cell [fitContent]=\"true\"></td>\r\n }\r\n <td fd-table-cell></td>\r\n</tr>\r\n} @if (bruleActionMessage() && hasError && allowInlineEdit) {\r\n<tr fd-table-row>\r\n @if (allowRecordReorder) {\r\n <td fd-table-cell class=\"col-drag-handle\"></td>\r\n }\r\n <ng-container *ngTemplateOutlet=\"statusIndicator\"></ng-container>\r\n <td\r\n fd-table-cell\r\n [attr.colspan]=\"\r\n columns.length +\r\n 2 +\r\n (rowIndicator ? -1 : 0) +\r\n (contextMenuItems && contextMenuItems.length > 0 ? 1 : 0) +\r\n (showViewButton ? 1 : 0) +\r\n (showDetailsInRow && !inlineEditMode ? 1 : 0)\r\n \"\r\n >\r\n @if (bruleActionMessage()?.MessageType === 2) {\r\n <fd-message-strip\r\n [type]=\"bruleActionMessage()?.MessageType === 2 ? 'error' : 'information'\"\r\n [dismissible]=\"false\"\r\n noIcon\r\n >\r\n @if(bruleActionMessage()?.MessageExpressionHtml){\r\n <span [innerHtml]=\"bruleActionMessage()?.MessageExpressionHtml\"></span>\r\n }@else{\r\n {{ bruleActionMessage()?.MessageExpression }}\r\n }\r\n </fd-message-strip>\r\n }\r\n </td>\r\n</tr>\r\n} @if (workflowState()?.state === 'Finish' && workflowState()?.error) {\r\n<tr fd-table-row>\r\n @if (allowRecordReorder) {\r\n <td fd-table-cell class=\"col-drag-handle\"></td>\r\n }\r\n <ng-container *ngTemplateOutlet=\"statusIndicator\"></ng-container>\r\n <td\r\n fd-table-cell\r\n [attr.colspan]=\"\r\n columns.length +\r\n 2 +\r\n (rowIndicator ? -1 : 0) +\r\n (contextMenuItems && contextMenuItems.length > 0 ? 1 : 0) +\r\n (showViewButton ? 1 : 0) +\r\n (showDetailsInRow && !inlineEditMode ? 1 : 0)\r\n \"\r\n >\r\n <fd-message-strip type=\"error\" [dismissible]=\"true\" (onDismiss)=\"onResetWorkflowState()\">\r\n {{ workflowState()?.error?.Text || workflowState()?.error?.MessageExpression }}\r\n </fd-message-strip>\r\n </td>\r\n</tr>\r\n}\r\n<ng-template #detailsColumnsTemplate let-mo=\"mo\" let-inlineEditMode=\"inlineEditMode\" let-layout94=\"layout94\">\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n detailsFormItems;\r\n context: {\r\n $implicit: detailsColumns,\r\n mo: this.mo,\r\n inlineEditMode: this.inlineEditMode,\r\n layout94: layout94\r\n }\r\n \"\r\n ></ng-container>\r\n</ng-template>\r\n<ng-template\r\n #detailsFormItems\r\n let-detailsColumns\r\n let-mo=\"mo\"\r\n let-inlineEditMode=\"inlineEditMode\"\r\n let-layout94=\"layout94\"\r\n>\r\n @if(detailsColumns?.length){\r\n <div class=\"form-items\">\r\n @for (column of detailsColumns; track column; let columnIndex = $index) {\r\n <div fd-form-item>\r\n <label fd-form-label for=\"input-2\">{{ column.Caption }}</label>\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n columnTemplate;\r\n context: {\r\n $implicit: column,\r\n mo: mo,\r\n index: columnIndex,\r\n inlineEditMode: inlineEditMode,\r\n layout94: layout94\r\n }\r\n \"\r\n ></ng-container>\r\n </div>\r\n }\r\n </div>\r\n }\r\n</ng-template>\r\n<ng-template\r\n #columnTemplate\r\n let-column\r\n let-mo=\"mo\"\r\n let-index=\"index\"\r\n let-inlineEditMode=\"inlineEditMode\"\r\n let-layout94=\"layout94\"\r\n>\r\n <bsu-barsa-table-column\r\n [mo]=\"mo\"\r\n [allColumns]=\"allColumns\"\r\n [column]=\"column\"\r\n [attachmentViewType]=\"attachmentViewType\"\r\n [isdirty]=\"dirtyColumns && dirtyColumns[column.Name]\"\r\n [value]=\"column | columnValue: mo\"\r\n [icon]=\"column | columnIcon: mo\"\r\n [customComponent]=\"column.$CustomComponent\"\r\n [column]=\"column\"\r\n [disableEllapsis]=\"secondaryColumns?.length || disableEllapsis\"\r\n [editMode]=\"(isChecked || inlineEditWithoutSelection) && inlineEditMode && allowInlineEdit\"\r\n [inlineEditMode]=\"inlineEditMode\"\r\n [isChecked]=\"isChecked === true\"\r\n [index]=\"index\"\r\n [formSetting]=\"formSetting\"\r\n [rtl]=\"rtl\"\r\n [isMobile]=\"isMobile\"\r\n [deviceName]=\"deviceName\"\r\n [deviceSize]=\"deviceSize\"\r\n [layout94]=\"layout94\"\r\n [cellEdit]=\"activeColumn() === column && isChecked\"\r\n (save)=\"onEditFormPanelSave(null)\"\r\n (cancel)=\"onEditFormPanelCancel(null)\"\r\n (tab)=\"onTabKeyDown($event, index)\"\r\n (changeToEditMode)=\"onColumnChangeToEditMode($event, index)\"\r\n >\r\n </bsu-barsa-table-column>\r\n</ng-template>\r\n<ng-template #statusIndicator>\r\n @if (rowIndicator) {\r\n <bsu-barsa-column-indicator [hideBorderBottom]=\"!detailsCollapsed\" [backColor]=\"rowIndicatorColor\">\r\n </bsu-barsa-column-indicator>\r\n }\r\n</ng-template>\r\n<ng-template #rowNumberTemplate>\r\n @if (showRowNumber) {\r\n <td fd-table-cell bsu-barsa-column-rownumber [rowNumber]=\"rowNumber\" (click)=\"!isCheckList && onRowCheck()\"></td>\r\n }\r\n</ng-template>\r\n<tr fd-table-row style=\"pointer-events: none\"></tr>\r\n", styles: [":host{display:contents;width:100%}:host tr.cdk-drag-dragging{pointer-events:none}:host td.col-drag-handle{width:32px;max-width:32px;text-align:center;padding:0!important}:host td.col-drag-handle .reorder-handle{display:inline-flex;align-items:center;justify-content:center;width:100%;height:100%;min-width:32px;min-height:2rem;cursor:grab;color:var(--sapContent_IconColor, #6a6d70);opacity:.6}:host td.col-drag-handle .reorder-handle:hover{opacity:1}:host td.col-drag-handle .reorder-handle:active{cursor:grabbing}:host tr.alternateRowMode{--sapList_Background: var(--sapList_AlternatingBackground)}:host tr.preview-column td{border-left-style:solid;border-right-style:solid}:host bnrc-form.cartable-template ::ng-deep bsu-ly-layout-container-of-root{padding-bottom:1rem}:host.has-preview-column .secondary-row td{border-bottom:none}:host tr.has-secondary-row td{border-bottom:none}:host ::ng-deep .row-group.mobile-mode{border-bottom:var(--sapList_BorderWidth, .0625rem) solid var(--sapList_BorderColor, #e4e4e4)!important}:host ::ng-deep .inlineEditMode bnrc-field-ui{padding:0;margin:0}:host ::ng-deep .inlineEditMode bsu-ui-simple-combo{margin:0!important}:host ::ng-deep .secondary.p-wrapper p{display:flex;align-items:center}bsu-layout-control:not(.hide-form-item){align-items:center;height:100%;min-width:auto;width:auto}tr.group-summary-row td{border:none;background-color:#dde5f0;border-right:none!important;font-weight:700}tr.group-summary-row td label{font-weight:700}tr.group-summary-row td label.NaN{display:none}td{vertical-align:middle}td.frozen-column{position:sticky;inset-inline-start:0;z-index:1;background-color:var(--sapList_Background)}td.control-readonly{background-color:var(--sapList_HeaderBackground)}tr.brule-message td{border:0}.row-group{background-color:var(--sapBackgroundColor, \"#f7f7ff\")}.cell-expand{cursor:pointer;display:inline-flex;justify-content:center;align-items:center;font-size:.75rem;color:#0854a0;color:var(--sapContent_IconColor, #0854a0);min-width:2rem;max-width:2rem}.save-error{color:var(--sapField_InvalidColor)}.save-success{color:var(--sapField_SuccessColor)}.flow{max-width:100%}.flow-item{display:flex}.flow-item fd-micro-process-flow-icon{width:1.375rem;height:1.375rem}.flow-item h5{padding-right:.3rem}.cartable-template{padding:.5rem 0}.workflow-pending{opacity:.5;pointer-events:none;position:relative}.detailCollapsed{height:0;display:none}tr:not([aria-selected=true]).preview-column td{border-bottom:var(--sapList_BorderWidth) var(--fdTable_Cell_Horizontal_Border_Style, solid) var(--sapList_BorderColor)}tr[aria-selected=true].has-preview-column td,tr.showdetails-on.hasCartable td,tr.showdetails-on.hasForm td,tr.showdetails-on td{border-bottom:none}\n"] }]
6804
+ args: [{ selector: 'bsu-barsa-table-row', providers: [FormPanelService], changeDetection: ChangeDetectionStrategy.OnPush, standalone: false, template: "@if ((!mo.$Parent || parentExpanded) && visibility !== false) {\r\n<tr\r\n [class.row-error]=\"hasError\"\r\n [class.showdetails-on]=\"!detailsCollapsed && (detailsComponent?.Selector || detailsColumns?.length)\"\r\n [class.has-secondary-row]=\"secondaryColumns?.length && !mo.$Group && (!mo.$Parent || parentExpanded)\"\r\n [class.hasForm]=\"formSetting\"\r\n [class.hasCartable]=\"!!cartableParams\"\r\n #trEl\r\n fd-table-row\r\n cdkDrag\r\n [cdkDragDisabled]=\"!allowRecordReorder || mo.$Group || mo.$Group === ''\"\r\n [cdkDragData]=\"mo\"\r\n [attr.data-reorder-index]=\"index\"\r\n (cdkDragMoved)=\"onReorderMoved($event)\"\r\n (cdkDragEnded)=\"onReorderEnded($event)\"\r\n [activable]=\"false\"\r\n [hoverable]=\"true\"\r\n [main]=\"true\"\r\n [focusable]=\"!(inlineEditMode && allowInlineEdit)\"\r\n [applyConditionalFormats]=\"conditionalFormats\"\r\n [styleIndex]=\"styleIndex\"\r\n [hostEl]=\"trEl\"\r\n [attr.aria-selected]=\"isChecked\"\r\n [class.has-preview-column]=\"!!previewColumn\"\r\n [class.brule-message]=\"bruleActionMessage() || workflowState()?.error\"\r\n [class.workflow-pending]=\"workflowState()?.state === 'Pending'\"\r\n [class.alternateRowMode]=\"enableAlternateRowMode\"\r\n (keydown.enter)=\"onRowCheck(true)\"\r\n>\r\n @if (allowRecordReorder) {\r\n <td fd-table-cell class=\"col-drag-handle\" (click)=\"$event.stopPropagation()\" (dblclick)=\"$event.stopPropagation()\">\r\n @if (!(mo.$Group || mo.$Group === '')) {\r\n <span class=\"reorder-handle\" cdkDragHandle>\r\n <fd-icon glyph=\"grip\" font=\"BusinessSuiteInAppSymbols\"></fd-icon>\r\n </span>\r\n }\r\n </td>\r\n } @if (mo.$Group || mo.$Group === '') {\r\n <td\r\n [style.padding-right]=\"rtl ? 'calc( 1rem + ' + level * 12 + 'px' + ' )' : 'inherit'\"\r\n [style.padding-left]=\"!rtl ? 'calc( 1rem + ' + level * 12 + 'px' + ' )' : 'inherit'\"\r\n fd-table-cell\r\n style=\"font-weight: bold; font-size: 1rem\"\r\n [attr.colspan]=\"\r\n columns.length +\r\n 1 +\r\n (rowIndicator ? -1 : 0) +\r\n (contextMenuItems && contextMenuItems.length > 0 ? 1 : 0) +\r\n (showViewButton ? 1 : 0) +\r\n (showDetailsInRow && !inlineEditMode ? 1 : 0)\r\n \"\r\n class=\"row-group\"\r\n [class.mobile-mode]=\"secondaryColumns?.length\"\r\n [attr.level]=\"level\"\r\n [class.root-group]=\"level === 0\"\r\n >\r\n <button\r\n fd-button\r\n [fdType]=\"'transparent'\"\r\n [glyph]=\"expanded !== false ? 'navigation-down-arrow' : 'navigation-left-arrow'\"\r\n class=\"cell-expand\"\r\n (click)=\"onExpandClick()\"\r\n ></button>\r\n {{ mo.$Group === 'undefined' ? '' : mo.$Group }}\r\n </td>\r\n } @else {\r\n\r\n <ng-container *ngTemplateOutlet=\"statusIndicator\"></ng-container>\r\n @if (isCheckList) {\r\n <td fd-table-cell [style.width]=\"checkboxComponent ? '60px' : null\">\r\n <div class=\"tw-flex tw-items-center tw-justify-center\">\r\n @if (workflowState()?.state === 'Pending') {\r\n <div style=\"position: absolute; left: 0; right: 0; bottom: 0; top: 0\">\r\n <bsu-mask [top]=\"'20px'\" [size]=\"'s'\"></bsu-mask>\r\n </div>\r\n } @if (checkboxComponent?.Selector) {\r\n <bnrc-dynamic-item-component\r\n [component]=\"checkboxComponent\"\r\n [mo]=\"mo\"\r\n [isChecked]=\"isChecked\"\r\n [UlvMainCtrlr]=\"UlvMainCtrlr\"\r\n [setting]=\"setting\"\r\n [parameters]=\"checkboxComponent.Parameters\"\r\n [editMode]=\"inlineEditMode\"\r\n [rtl]=\"rtl\"\r\n [deviceName]=\"deviceName\"\r\n [value]=\"isChecked\"\r\n [deviceSize]=\"deviceSize\"\r\n [index]=\"index\"\r\n [allColumns]=\"allColumns\"\r\n [typeDefId]=\"typeDefId\"\r\n (events)=\"onRowCheck()\"\r\n ></bnrc-dynamic-item-component>\r\n } @else {\r\n <fd-checkbox [name]=\"mo.$Caption\" [ngModel]=\"isChecked\" (ngModelChange)=\"onRowCheck()\"></fd-checkbox>\r\n }\r\n </div>\r\n </td>\r\n } @if (!isCheckList && !showRowNumber) {\r\n <td\r\n fd-table-cell\r\n class=\"single-select\"\r\n (click)=\"!isCheckList && onRowCheck()\"\r\n style=\"padding: 0; text-align: center\"\r\n >\r\n <div class=\"tw-flex tw-items-center tw-justify-center\">\r\n @if (allowInlineEdit && (hasError || saving || saved)) { @if (hasError) {\r\n <fd-icon class=\"save-error\" glyph=\"error\"></fd-icon>\r\n }@else if (saving) {\r\n <fd-busy-indicator [loading]=\"true\" [size]=\"'s'\" title=\"record saving\"></fd-busy-indicator>\r\n } @else if (saved) {\r\n <fd-icon class=\"save-success\" glyph=\"accept\"></fd-icon>\r\n } } @else { @if (mo.$State === 'New') {\r\n <fd-icon glyph=\"favorite\"></fd-icon>\r\n }@else if (inlineEditMode && allowInlineEdit && isChecked) {\r\n <fd-icon glyph=\"edit\"></fd-icon>\r\n }@else{\r\n <img\r\n [src]=\"mo | moIcon: UlvMainCtrlr?.Setting\"\r\n (error)=\"onIconError($event)\"\r\n loading=\"lazy\"\r\n width=\"16\"\r\n height=\"16\"\r\n alt=\"object icon\"\r\n />\r\n } }\r\n </div>\r\n </td>\r\n }\r\n <ng-container *ngTemplateOutlet=\"rowNumberTemplate\"></ng-container>\r\n @for (column of columns; track column.Name; let columnIndex = $index) {\r\n <td\r\n class=\"rep-column\"\r\n [attr.dbName]=\"column.Name\"\r\n #tdEl\r\n fd-table-cell\r\n [applyConditionalFormats]=\"conditionalFormats\"\r\n [hostEl]=\"tdEl\"\r\n [styleIndex]=\"styleIndex\"\r\n [dbName]=\"column.Name\"\r\n [focusable]=\"false\"\r\n (click)=\"onColumnClick(column)\"\r\n (keydown.enter)=\"onColumnKeyEnter(column)\"\r\n (dblclick)=\"onRowClick()\"\r\n [hoverable]=\"inlineEditMode && allowInlineEdit\"\r\n [class.frozen-column]=\"column.Name === freezeColumn\"\r\n [class.control-readonly]=\"column.IsReadonly\"\r\n >\r\n @if(disableHyperLink!==true || (columnsHyperLink | existsColumns:column )?.length) {\r\n <a\r\n [moLinker]=\"mo\"\r\n [alternateEditObjectColumn]=\"alternateEditObjectColumn\"\r\n [disableHyperLink]=\"inlineEditMode || !canView\"\r\n >\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n columnTemplate;\r\n context: {\r\n $implicit: column,\r\n mo: mo,\r\n rowIndex: index,\r\n columnIndex: columnIndex,\r\n inlineEditMode: inlineEditMode,\r\n layout94: layout$ | async\r\n }\r\n \"\r\n ></ng-container>\r\n </a>\r\n } @else{\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n columnTemplate;\r\n context: {\r\n $implicit: column,\r\n mo: mo,\r\n rowIndex: index,\r\n columnIndex: columnIndex,\r\n inlineEditMode: inlineEditMode,\r\n layout94: layout$ | async\r\n }\r\n \"\r\n ></ng-container>\r\n\r\n }\r\n </td>\r\n } @if (contextMenuItems.length ) {\r\n <td class=\"col-context-menu\" fd-table-cell>\r\n <bsu-ulv-context-menu\r\n [disableOverflowContextMenu]=\"disableOverflowContextMenu\"\r\n [conditionalFormats]=\"conditionalFormats\"\r\n [styleIndex]=\"styleIndex\"\r\n [mo]=\"mo\"\r\n [index]=\"index\"\r\n (commandClick)=\"onUlvCommand()\"\r\n (overflowClick)=\"onRowCheck(true)\"\r\n [deviceName]=\"deviceName\"\r\n [menuItems]=\"contextMenuItems\"\r\n [allColumns]=\"allColumns\"\r\n ></bsu-ulv-context-menu>\r\n </td>\r\n } @if (showDetailsInRow && (!inlineEditMode || !allowInlineEdit)) {\r\n <td class=\"col-details\" fd-table-cell [fitContent]=\"true\">\r\n @if ((detailsComponent?.Selector || detailsColumns?.length || cartableParams?.moId ) && !hideDetailsText) {\r\n <div class=\"tw-flex tw-justify-end tw-w-full\">\r\n <button\r\n fd-button\r\n [label]=\"(detailsCollapsed ? detailsText : 'Hide') | bbbTranslate\"\r\n [fdType]=\"'transparent'\"\r\n (click)=\"onRowDetails()\"\r\n ></button>\r\n </div>\r\n }\r\n </td>\r\n } @if (actionList?.length && !inlineEditMode) {\r\n <td class=\"col-view\" [class.rtl]=\"rtl\" fd-table-cell [fitContent]=\"true\">\r\n <bsu-barsa-row-inline-actionlist\r\n [actionList]=\"actionList\"\r\n (btnClick)=\"actionListClick.emit($event)\"\r\n ></bsu-barsa-row-inline-actionlist>\r\n </td>\r\n } }\r\n <td fd-table-cell></td>\r\n</tr>\r\n} @if (secondaryColumns?.length && !mo.$Group && (!mo.$Parent || parentExpanded) ) {\r\n<tr\r\n #trEl\r\n fd-table-row\r\n [secondary]=\"true\"\r\n class=\"secondary-row\"\r\n [class.no-edit-mode]=\"!inlineEditMode\"\r\n [applyConditionalFormats]=\"conditionalFormats\"\r\n [styleIndex]=\"styleIndex\"\r\n [hostEl]=\"trEl\"\r\n [attr.aria-selected]=\"isChecked && !inlineEditMode ? true : false\"\r\n [class.alternateRowMode]=\"enableAlternateRowMode\"\r\n>\r\n @if (allowRecordReorder) {\r\n <td fd-table-cell class=\"col-drag-handle\"></td>\r\n }\r\n <ng-container *ngTemplateOutlet=\"statusIndicator\"></ng-container>\r\n @if (!isCheckList) {\r\n <td fd-table-cell class=\"single-select\" (click)=\"onRowCheck()\"></td>\r\n }\r\n <td fd-table-cell colspan=\"100%\" (click)=\"onRowCheck()\" class=\"secondary p-wrapper\">\r\n <div style=\"display: flex; flex-direction: column\">\r\n @for (column of secondaryColumns; track _trackByColumn(columnIndex, column); let columnIndex = $index) {\r\n <p\r\n #pEl\r\n fd-table-text\r\n [applyConditionalFormats]=\"conditionalFormats\"\r\n [hostEl]=\"pEl\"\r\n [styleIndex]=\"styleIndex\"\r\n [dbName]=\"column.Name\"\r\n style=\"font-family: 'B-Font Medium'\"\r\n >\r\n <label fd-form-label>{{ column.Caption }} :</label>\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n columnTemplate;\r\n context: {\r\n $implicit: column,\r\n mo: mo,\r\n index: columnIndex,\r\n inlineEditMode: inlineEditMode,\r\n layout94: layout$ | async\r\n }\r\n \"\r\n ></ng-container>\r\n </p>\r\n }\r\n </div>\r\n </td>\r\n</tr>\r\n} @if (cartableParams?.moId) {\r\n<tr\r\n [class.detailCollapsed]=\"detailsCollapsed\"\r\n fd-table-row\r\n class=\"showdetails cartable\"\r\n [attr.aria-selected]=\"isChecked\"\r\n [class.has-preview-column]=\"!!previewColumn\"\r\n [class.alternateRowMode]=\"enableAlternateRowMode\"\r\n>\r\n @if (allowRecordReorder) {\r\n <td fd-table-cell class=\"col-drag-handle\"></td>\r\n }\r\n <ng-container *ngTemplateOutlet=\"statusIndicator\"></ng-container>\r\n <td\r\n (click)=\"onRowCheck()\"\r\n fd-table-cell\r\n [attr.colspan]=\"\r\n columns.length +\r\n 2 +\r\n (rowIndicator ? 1 : 0) +\r\n (contextMenuItems && contextMenuItems.length > 0 ? 1 : 0) +\r\n (showViewButton ? 1 : 0) +\r\n (showDetailsInRow && !inlineEditMode ? 1 : 0)\r\n \"\r\n >\r\n <ng-container>\r\n <bnrc-form\r\n #cartableFormRef\r\n class=\"cartable-template\"\r\n [inlineEditInReport]=\"true\"\r\n [params]=\"cartableParams\"\r\n (beforeTransition)=\"onCartableBeforeTansition()\"\r\n (afterTransition)=\"onCartableAfterTansition($event)\"\r\n (bruleAction)=\"onCartableBruleAction($event)\"\r\n (click)=\"OnCartableFormClick($event)\"\r\n (formClose)=\"onCartableFormClosed()\"\r\n ></bnrc-form>\r\n </ng-container>\r\n </td>\r\n</tr>\r\n} @if (!detailsCollapsed && (detailsComponent?.Selector|| detailsColumns?.length)) {\r\n<tr fd-table-row class=\"showdetails\" [attr.aria-selected]=\"isChecked\" [class.has-preview-column]=\"!!previewColumn\">\r\n @if (allowRecordReorder) {\r\n <td fd-table-cell class=\"col-drag-handle\"></td>\r\n }\r\n <ng-container *ngTemplateOutlet=\"statusIndicator\"></ng-container>\r\n <td\r\n (click)=\"onRowCheck()\"\r\n fd-table-cell\r\n [attr.colspan]=\"\r\n columns.length +\r\n 2 +\r\n (rowIndicator ? -1 : 0) +\r\n (contextMenuItems && contextMenuItems.length > 0 ? 1 : 0) +\r\n (showViewButton ? 1 : 0) +\r\n (showDetailsInRow && !inlineEditMode ? 1 : 0)\r\n \"\r\n >\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n detailsColumnsTemplate;\r\n context: { mo: mo, inlineEditMode: inlineEditMode, layout94: layout$ | async }\r\n \"\r\n ></ng-container>\r\n @if (detailsComponent && detailsComponent.Selector) {\r\n <bnrc-dynamic-item-component\r\n [component]=\"detailsComponent\"\r\n [mo]=\"mo\"\r\n [isChecked]=\"isChecked\"\r\n [UlvMainCtrlr]=\"UlvMainCtrlr\"\r\n [setting]=\"detailsComponentSetting\"\r\n [parameters]=\"detailsComponent.Settings\"\r\n [editMode]=\"inlineEditMode\"\r\n [formSetting]=\"formSetting\"\r\n [rtl]=\"rtl\"\r\n [deviceName]=\"deviceName\"\r\n [deviceSize]=\"deviceSize\"\r\n [index]=\"index\"\r\n [allColumns]=\"allColumns\"\r\n [typeDefId]=\"typeDefId\"\r\n ></bnrc-dynamic-item-component>\r\n }\r\n </td>\r\n</tr>\r\n} @if(previewColumn){\r\n<tr\r\n #trEl\r\n fd-table-row\r\n [secondary]=\"true\"\r\n class=\"preview-column\"\r\n [class.no-edit-mode]=\"!inlineEditMode\"\r\n [applyConditionalFormats]=\"conditionalFormats\"\r\n [styleIndex]=\"styleIndex\"\r\n [hostEl]=\"trEl\"\r\n [attr.aria-selected]=\"isChecked && !inlineEditMode ? true : false\"\r\n [class.alternateRowMode]=\"enableAlternateRowMode\"\r\n>\r\n @if (allowRecordReorder) {\r\n <td fd-table-cell class=\"col-drag-handle\"></td>\r\n }\r\n <ng-container *ngTemplateOutlet=\"statusIndicator\"></ng-container>\r\n\r\n <td\r\n fd-table-cell\r\n [attr.colspan]=\"\r\n columns.length +\r\n 2 +\r\n (rowIndicator ? -1 : 0) +\r\n (contextMenuItems && contextMenuItems.length > 0 ? 1 : 0) +\r\n (showViewButton ? 1 : 0) +\r\n (showDetailsInRow && !inlineEditMode ? 1 : 0)\r\n \"\r\n (click)=\"onRowCheck()\"\r\n >\r\n <div style=\"display: flex; flex-direction: column\">\r\n <p\r\n #pEl\r\n fd-table-text\r\n [applyConditionalFormats]=\"conditionalFormats\"\r\n [hostEl]=\"pEl\"\r\n [styleIndex]=\"styleIndex\"\r\n [dbName]=\"previewColumn.Name\"\r\n style=\"color: var(--sapAccentColor6); max-width: 420px\"\r\n >\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n columnTemplate;\r\n context: {\r\n $implicit: previewColumn,\r\n mo: mo,\r\n index: columns.length,\r\n inlineEditMode: inlineEditMode,\r\n layout94: layout$ | async\r\n }\r\n \"\r\n ></ng-container>\r\n </p>\r\n </div>\r\n </td>\r\n</tr>\r\n} @if(isLastChildGroup && groupSummary){\r\n<tr #trEl fd-table-row class=\"group-summary-row\" [class.no-edit-mode]=\"true\" [attr.aria-selected]=\"false\">\r\n @if (allowRecordReorder) {\r\n <td fd-table-cell class=\"col-drag-handle\"></td>\r\n }\r\n <ng-container *ngTemplateOutlet=\"statusIndicator\"></ng-container>\r\n @if (!isCheckList) {\r\n <td fd-table-cell class=\"single-select\"></td>\r\n } @for (column of columns; track _trackByColumn(columnIndex, column); let columnIndex = $index) {\r\n <td fd-table-cell [class.frozen-column]=\"column.Name === freezeColumn\">\r\n <label #summaryRef>{{ reCalculateColumnSummary(summaryRef, column) }}</label>\r\n </td>\r\n } @if (contextMenuItems.length) {\r\n <td class=\"col-context-menu\" fd-table-cell></td>\r\n } @if (showDetailsInRow && (!inlineEditMode || !allowInlineEdit)) {\r\n <td class=\"col-details\" fd-table-cell [fitContent]=\"true\"></td>\r\n } @if (actionList?.length && !inlineEditMode) {\r\n <td class=\"col-view\" fd-table-cell [fitContent]=\"true\"></td>\r\n }\r\n <td fd-table-cell></td>\r\n</tr>\r\n} @if (bruleActionMessage() && hasError && allowInlineEdit) {\r\n<tr fd-table-row>\r\n @if (allowRecordReorder) {\r\n <td fd-table-cell class=\"col-drag-handle\"></td>\r\n }\r\n <ng-container *ngTemplateOutlet=\"statusIndicator\"></ng-container>\r\n <td\r\n fd-table-cell\r\n [attr.colspan]=\"\r\n columns.length +\r\n 2 +\r\n (rowIndicator ? -1 : 0) +\r\n (contextMenuItems && contextMenuItems.length > 0 ? 1 : 0) +\r\n (showViewButton ? 1 : 0) +\r\n (showDetailsInRow && !inlineEditMode ? 1 : 0)\r\n \"\r\n >\r\n @if (bruleActionMessage()?.MessageType === 2) {\r\n <fd-message-strip\r\n [type]=\"bruleActionMessage()?.MessageType === 2 ? 'error' : 'information'\"\r\n [dismissible]=\"false\"\r\n noIcon\r\n >\r\n @if(bruleActionMessage()?.MessageExpressionHtml){\r\n <span [innerHtml]=\"bruleActionMessage()?.MessageExpressionHtml\"></span>\r\n }@else{\r\n {{ bruleActionMessage()?.MessageExpression }}\r\n }\r\n </fd-message-strip>\r\n }\r\n </td>\r\n</tr>\r\n} @if (workflowState()?.state === 'Finish' && workflowState()?.error) {\r\n<tr fd-table-row>\r\n @if (allowRecordReorder) {\r\n <td fd-table-cell class=\"col-drag-handle\"></td>\r\n }\r\n <ng-container *ngTemplateOutlet=\"statusIndicator\"></ng-container>\r\n <td\r\n fd-table-cell\r\n [attr.colspan]=\"\r\n columns.length +\r\n 2 +\r\n (rowIndicator ? -1 : 0) +\r\n (contextMenuItems && contextMenuItems.length > 0 ? 1 : 0) +\r\n (showViewButton ? 1 : 0) +\r\n (showDetailsInRow && !inlineEditMode ? 1 : 0)\r\n \"\r\n >\r\n <fd-message-strip type=\"error\" [dismissible]=\"true\" (onDismiss)=\"onResetWorkflowState()\">\r\n {{ workflowState()?.error?.Text || workflowState()?.error?.MessageExpression }}\r\n </fd-message-strip>\r\n </td>\r\n</tr>\r\n}\r\n<ng-template #detailsColumnsTemplate let-mo=\"mo\" let-inlineEditMode=\"inlineEditMode\" let-layout94=\"layout94\">\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n detailsFormItems;\r\n context: {\r\n $implicit: detailsColumns,\r\n mo: this.mo,\r\n inlineEditMode: this.inlineEditMode,\r\n layout94: layout94\r\n }\r\n \"\r\n ></ng-container>\r\n</ng-template>\r\n<ng-template\r\n #detailsFormItems\r\n let-detailsColumns\r\n let-mo=\"mo\"\r\n let-inlineEditMode=\"inlineEditMode\"\r\n let-layout94=\"layout94\"\r\n>\r\n @if(detailsColumns?.length){\r\n <div class=\"form-items\">\r\n @for (column of detailsColumns; track column; let columnIndex = $index) {\r\n <div fd-form-item>\r\n <label fd-form-label for=\"input-2\">{{ column.Caption }}</label>\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n columnTemplate;\r\n context: {\r\n $implicit: column,\r\n mo: mo,\r\n index: columnIndex,\r\n inlineEditMode: inlineEditMode,\r\n layout94: layout94\r\n }\r\n \"\r\n ></ng-container>\r\n </div>\r\n }\r\n </div>\r\n }\r\n</ng-template>\r\n<ng-template\r\n #columnTemplate\r\n let-column\r\n let-mo=\"mo\"\r\n let-columnIndex=\"columnIndex\"\r\n let-rowIndex=\"rowIndex\"\r\n let-inlineEditMode=\"inlineEditMode\"\r\n let-layout94=\"layout94\"\r\n>\r\n <bsu-barsa-table-column\r\n [mo]=\"mo\"\r\n [allColumns]=\"allColumns\"\r\n [column]=\"column\"\r\n [attachmentViewType]=\"attachmentViewType\"\r\n [isdirty]=\"dirtyColumns && dirtyColumns[column.Name]\"\r\n [value]=\"column | columnValue: mo\"\r\n [icon]=\"column | columnIcon: mo\"\r\n [customComponent]=\"column.$CustomComponent\"\r\n [column]=\"column\"\r\n [disableEllapsis]=\"secondaryColumns?.length || disableEllapsis\"\r\n [editMode]=\"(isChecked || inlineEditWithoutSelection) && inlineEditMode && allowInlineEdit\"\r\n [inlineEditMode]=\"inlineEditMode\"\r\n [isChecked]=\"isChecked === true\"\r\n [index]=\"columnIndex\"\r\n [formSetting]=\"formSetting\"\r\n [rtl]=\"rtl\"\r\n [isMobile]=\"isMobile\"\r\n [deviceName]=\"deviceName\"\r\n [deviceSize]=\"deviceSize\"\r\n [layout94]=\"layout94\"\r\n [cellEdit]=\"activeColumn() === column && isChecked\"\r\n (save)=\"onEditFormPanelSave(null)\"\r\n (cancel)=\"onEditFormPanelCancel(null)\"\r\n (tab)=\"onTabKeyDown($event, columnIndex)\"\n (enter)=\"onEnterKeyDown($event, columnIndex)\"\n (arrowUp)=\"onVerticalNavigationKeyDown($event, columnIndex, 'previous')\"\n (arrowDown)=\"onVerticalNavigationKeyDown($event, columnIndex, 'next')\"\n (changeToEditMode)=\"onColumnChangeToEditMode($event, columnIndex)\"\n >\r\n </bsu-barsa-table-column>\r\n</ng-template>\r\n<ng-template #statusIndicator>\r\n @if (rowIndicator) {\r\n <bsu-barsa-column-indicator [hideBorderBottom]=\"!detailsCollapsed\" [backColor]=\"rowIndicatorColor\">\r\n </bsu-barsa-column-indicator>\r\n }\r\n</ng-template>\r\n<ng-template #rowNumberTemplate>\r\n @if (showRowNumber) {\r\n <td fd-table-cell bsu-barsa-column-rownumber [rowNumber]=\"rowNumber\" (click)=\"!isCheckList && onRowCheck()\"></td>\r\n }\r\n</ng-template>\r\n<tr fd-table-row style=\"pointer-events: none\"></tr>\r\n", styles: [":host{display:contents;width:100%}:host tr.cdk-drag-dragging{pointer-events:none}:host td.col-drag-handle{width:32px;max-width:32px;text-align:center;padding:0!important}:host td.col-drag-handle .reorder-handle{display:inline-flex;align-items:center;justify-content:center;width:100%;height:100%;min-width:32px;min-height:2rem;cursor:grab;color:var(--sapContent_IconColor, #6a6d70);opacity:.6}:host td.col-drag-handle .reorder-handle:hover{opacity:1}:host td.col-drag-handle .reorder-handle:active{cursor:grabbing}:host tr.alternateRowMode{--sapList_Background: var(--sapList_AlternatingBackground)}:host tr.preview-column td{border-left-style:solid;border-right-style:solid}:host bnrc-form.cartable-template ::ng-deep bsu-ly-layout-container-of-root{padding-bottom:1rem}:host.has-preview-column .secondary-row td{border-bottom:none}:host tr.has-secondary-row td{border-bottom:none}:host ::ng-deep .row-group.mobile-mode{border-bottom:var(--sapList_BorderWidth, .0625rem) solid var(--sapList_BorderColor, #e4e4e4)!important}:host ::ng-deep .inlineEditMode bnrc-field-ui{padding:0;margin:0}:host ::ng-deep .inlineEditMode bsu-ui-simple-combo{margin:0!important}:host ::ng-deep .secondary.p-wrapper p{display:flex;align-items:center}bsu-layout-control:not(.hide-form-item){align-items:center;height:100%;min-width:auto;width:auto}tr.group-summary-row td{border:none;background-color:#dde5f0;border-right:none!important;font-weight:700}tr.group-summary-row td label{font-weight:700}tr.group-summary-row td label.NaN{display:none}td{vertical-align:middle}td.frozen-column{position:sticky;inset-inline-start:0;z-index:1;background-color:var(--sapList_Background)}td.control-readonly{background-color:var(--sapList_HeaderBackground)}tr.brule-message td{border:0}.row-group{background-color:var(--sapBackgroundColor, \"#f7f7ff\")}.cell-expand{cursor:pointer;display:inline-flex;justify-content:center;align-items:center;font-size:.75rem;color:#0854a0;color:var(--sapContent_IconColor, #0854a0);min-width:2rem;max-width:2rem}.save-error{color:var(--sapField_InvalidColor)}.save-success{color:var(--sapField_SuccessColor)}.flow{max-width:100%}.flow-item{display:flex}.flow-item fd-micro-process-flow-icon{width:1.375rem;height:1.375rem}.flow-item h5{padding-right:.3rem}.cartable-template{padding:.5rem 0}.workflow-pending{opacity:.5;pointer-events:none;position:relative}.detailCollapsed{height:0;display:none}tr:not([aria-selected=true]).preview-column td{border-bottom:var(--sapList_BorderWidth) var(--fdTable_Cell_Horizontal_Border_Style, solid) var(--sapList_BorderColor)}tr[aria-selected=true].has-preview-column td,tr.showdetails-on.hasCartable td,tr.showdetails-on.hasForm td,tr.showdetails-on td{border-bottom:none}\n"] }]
6774
6805
  }], propDecorators: { showDetailsInRow: [{
6775
6806
  type: Input
6776
6807
  }], allowRecordReorder: [{
@@ -7208,13 +7239,13 @@ class UiTableViewComponent extends ReportViewBaseComponent {
7208
7239
  this._renderer2.setStyle(this._el.nativeElement, 'visibility', 'visible');
7209
7240
  }
7210
7241
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: UiTableViewComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
7211
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.8", type: UiTableViewComponent, isStandalone: false, selector: "bsu-ui-table-view", inputs: { columnWidth: "columnWidth", minWidth: "minWidth", minHeight: "minHeight", disableResize: "disableResize", disableHeaderContextMenu: "disableHeaderContextMenu", rowResizer: "rowResizer", enableResizing: "enableResizing", disableFixedTableLayout: "disableFixedTableLayout" }, host: { properties: { "style.padding-bottom": "_fillerHeight", "style.max-height": "this.maxHeight", "style.overflow-y": "this.overflowY" } }, viewQueries: [{ propertyName: "_tableRef", first: true, predicate: ["tableTpl"], descendants: true, read: ElementRef, static: true }, { propertyName: "_tableHeaderComponent", first: true, predicate: BarsaTableHeaderComponent, descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<table\r\n fd-table\r\n #tableTpl\r\n #headerBottomObserver\r\n [popIn]=\"popin\"\r\n [class.table-fixed]=\"\r\n !isMobile &&\r\n !contextView?.Grid_HideHeader &&\r\n (!popin || secondaryColumns.length === 0) &&\r\n !disableFixedTableLayout\r\n \"\r\n [noBorderX]=\"viewSetting?.NoHoriztonalBorders === true\"\r\n [noBorderY]=\"viewSetting?.NoVerticalBorders === true || (popin && secondaryColumns.length > 0)\"\r\n>\r\n @if (columns | mergeFieldsToColumns: viewSetting?.MergeFieldsToColumns?.MoDataList; as\r\n mergeFieldsToColumns) {\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n headerTemplate;\r\n context: { $implicit: mergeFieldsToColumns, moDataListCount: moDataList?.length }\r\n \"\r\n ></ng-container>\r\n @if (moDataList?.length) {\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n bodyTemplate;\r\n context: { $implicit: mergeFieldsToColumns, previewColumn: allColumns | findPreviewColumn }\r\n \"\r\n ></ng-container>\r\n <ng-container *ngTemplateOutlet=\"footerTemplate; context: { $implicit: mergeFieldsToColumns }\"></ng-container>\r\n } }\r\n</table>\r\n<!--renderColumn-->\r\n\r\n@if (_showFiller) {\r\n<!-- spacer: \u0641\u0636\u0627 \u062F\u0631 \u062C\u0631\u06CC\u0627\u0646 \u0639\u0627\u062F\u06CC \u062A\u0627 host \u0628\u0632\u0631\u06AF \u0628\u0634\u0647 -->\r\n<div class=\"table-filler-spacer\" [style.height]=\"_fillerHeight\"></div>\r\n<!-- \u0641\u06CC\u0644\u0631 \u0627\u0628\u0633\u0648\u0644\u0648\u062A: \u0632\u06CC\u0631 \u062A\u06CC\u0628\u0644 \u0628\u0627 margin-top \u0628\u0631\u0627\u0628\u0631 \u0627\u0631\u062A\u0641\u0627\u0639 \u0647\u062F\u0631 -->\r\n@if (!moDataList?.length) {\r\n<bsu-no-data\r\n [class.no-topborder]=\"!hideToolbar\"\r\n [class.noborder]=\"contextView.Grid_HideHeader && hideToolbar\"\r\n [simple]=\"true\"\r\n>\r\n</bsu-no-data>\r\n} }\r\n\r\n<ng-template #headerTemplate let-columns let-moDataListCount>\r\n <bsu-barsa-table-header\r\n [allowRecordReorder]=\"allowRecordReorder\"\r\n [sticky]=\"stickyEnable() || isReportPage\"\r\n [hasSecondaryColumns]=\"secondaryColumns.length > 0\"\r\n [class.has-toolbar]=\"!hideToolbar\"\r\n [style.pointer-events]=\"moDataListCount ? 'auto' : 'none'\"\r\n [tableWidth]=\"elWidth\"\r\n [showDetailsInRow]=\"showDetailsInRow\"\r\n [hideOpenIcon]=\"hideOpenIcon\"\r\n [resizedByUser]=\"resizedByUser\"\r\n [tableHeaderMode]=\"tableHeaderMode\"\r\n [isMobile]=\"isMobile\"\r\n [attachmentViewType]=\"viewSetting?.AttachmentViewType\"\r\n [showRowNumber]=\"contextView?.Grid_ShowRowNumber\"\r\n [allChecked]=\"allChecked\"\r\n [rtl]=\"rtl\"\r\n [actionList]=\"\r\n inlineEditMode\r\n | reportActionList: canView:hideOpenIcon:hasInlineEditButton:hasInlineDeleteButton:navigationArrow\r\n \"\r\n [disableResponsive]=\"disableResponsive\"\r\n [isCheckList]=\"isCheckList\"\r\n [columns]=\"\r\n columns\r\n | filterColumnsByDetails: detailsColumns:rowIndicator\r\n | filter: { IsPreview: false }\r\n | hideColumnsInmobile: viewSetting?.HideColumnsInMobile\r\n \"\r\n [fitWidth]=\"fitWidth\"\r\n [disableOverflowContextMenu]=\"disableOverflowContextMenu\"\r\n [inlineEditMode]=\"inlineEditMode\"\r\n [contextMenuItems]=\"contextMenuItems\"\r\n [contextMenuWidth]=\"contextMenuWidth\"\r\n [showViewButton]=\"showViewButton\"\r\n [deviceSize]=\"deviceSize\"\r\n [viewSetting]=\"viewSetting\"\r\n [hideHeader]=\"contextView.Grid_HideHeader\"\r\n [rowIndicator]=\"rowIndicator\"\r\n [disableResize]=\"disableResize\"\r\n [disableHeaderContextMenu]=\"disableHeaderContextMenu\"\r\n [freezeColumn]=\"frozenColumnName\"\r\n (headerRender)=\"onSetTableHeaderDom($event)\"\r\n (columnResize)=\"onColumnResized($event)\"\r\n (columnResizing)=\"onColumnResizing($event)\"\r\n (fitToContent)=\"onFitToContent($event)\"\r\n (fitToContainer)=\"onFitToContainer()\"\r\n (freeColumnSize)=\"onFreeColumnSizing()\"\r\n (allCheckbox)=\"onAllCheckbox($event)\"\r\n (sortAscending)=\"onSortAscending($event)\"\r\n (sortDescending)=\"onSortDescending($event)\"\r\n (filter)=\"onFilter($event)\"\r\n (resetGridSettings)=\"resetGridSettings.emit()\"\r\n ></bsu-barsa-table-header>\r\n <!-- <div\r\n #headerBottomObserver\r\n intersectionObserver\r\n [intersectionThreshold]=\"0.1\"\r\n (visibilityChange)=\"onHeaderVisibilityChange($event, headerBottomObserver)\"\r\n ></div> -->\r\n</ng-template>\r\n<ng-template #bodyTemplate let-columns let-previewColumn=\"previewColumn\">\r\n <tbody\r\n #body\r\n fd-table-body\r\n [class.noborder]=\"viewSetting?.NoBodyBorders === true\"\r\n [noBorderX]=\"viewSetting?.NoHoriztonalBorders === true || previewColumn\"\r\n [noBorderY]=\"(popin && secondaryColumns.length > 0) || previewColumn\"\r\n >\r\n <ng-container>\r\n @for (mo of moDataList | multipleGroupBy: groupby; track _trackByRow(index, mo); let index = $index) {\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n hasRowOlgo ? rowOlgoTemplate : rowTemplate;\r\n context: {\r\n $implicit: mo,\r\n index: index,\r\n rowNumber: mo.Id | rowNumber: pagingSetting:moDataList,\r\n rowIndicatorColor: !columns.length ? '' : (columns[0].Caption | rval: mo:columns),\r\n columns:\r\n columns\r\n | columnCustomComponent\r\n : viewSetting?.ColumnComponents?.MoDataList,\r\n secondaryColumns:\r\n secondaryColumns\r\n | columnCustomComponent\r\n : viewSetting?.ColumnComponents?.MoDataList,\r\n moDataList: moDataList,\r\n moDataListCount: moDataList.length,\r\n cartableTemplate: cartableTemplates[mo.RelatedMo?.$TypeDefId + '@' + mo.CartableSettings?.Id],\r\n previewColumn: previewColumn,\r\n detailsCollapsed: viewSetting?.DetailsSetting?.DetailsCollapsed === true,\r\n hideDetailsText: viewSetting?.DetailsSetting?.HideDetailsText === true\r\n }\r\n \"\r\n ></ng-container>\r\n }\r\n </ng-container>\r\n </tbody>\r\n</ng-template>\r\n<ng-template #footerTemplate let-columns>\r\n @if (hasSummary) {\r\n <tfoot fd-table-footer>\r\n <tr fd-table-row class=\"row-summary\">\r\n @if (isCheckList) {\r\n <td fd-table-cell columnResizer class=\"!tw-border-none\">\r\n <strong class=\"tw-absolute !tw-text-xs tw-top-0 tw-left-2 tw-right-2 tw-bottom-0\">{{\r\n 'Total' | bbbTranslate\r\n }}</strong>\r\n </td>\r\n } @if (!isCheckList) {\r\n <td fd-table-cell class=\"single-select\" class=\"!tw-border-none\">\r\n <strong class=\"tw-absolute !tw-text-xs tw-top-0 tw-left-2 tw-right-2 tw-bottom-0\">{{\r\n 'Total' | bbbTranslate\r\n }}</strong>\r\n </td>\r\n } @for (column of columns; track column; let i = $index) {\r\n <td [class.frozen-column]=\"column.Name === frozenColumnName\">\r\n @if (column.HasSummary) {\r\n <strong style=\"direction: ltr; display: block\" [style.text-align]=\"rtl ? 'right' : 'left'\">\r\n {{ moDataList | totalSummary: column.Name | number }}</strong\r\n >\r\n }\r\n </td>\r\n } @if (contextMenuItems && contextMenuItems.length > 0) {\r\n <td fd-table-cell style=\"width: 100px\"></td>\r\n } @if (!hideOpenIcon && canView && (!inlineEditMode || !allowInlineEdit)) {\r\n <td fd-table-cell></td>\r\n }\r\n </tr>\r\n </tfoot>\r\n }\r\n</ng-template>\r\n<ng-template\r\n #rowOlgoTemplate\r\n let-mo\r\n let-index=\"index\"\r\n let-columns=\"columns\"\r\n let-moDataListCount=\"moDataListCount\"\r\n let-moDataList=\"moDataList\"\r\n let-cartableTemplate=\"cartableTemplate\"\r\n let-secondaryColumns=\"secondaryColumns\"\r\n let-rowIndicatorColor=\"rowIndicatorColor\"\r\n let-rowNumber=\"rowNumber\"\r\n let-previewColumn=\"previewColumn\"\r\n let-detailsCollapsed=\"detailsCollapsed\"\r\n let-hideDetailsText=\"hideDetailsText\"\r\n>\r\n <bnrc-dynamic-item-component\r\n [component]=\"viewSetting.RowOlgo\"\r\n [mo]=\"mo\"\r\n [alternateRowMode]=\"alternateRowMode\"\r\n [columnsHyperLink]=\"columnsHyperLink\"\r\n [disableHyperLink]=\"disableHyperLink\"\r\n [alternateEditObjectColumn]=\"alternateEditObjectColumn\"\r\n [detailsCollapsed]=\"detailsCollapsed\"\r\n [hideDetailsText]=\"hideDetailsText\"\r\n [isLastChildGroup]=\"mo.$IsLastChildGroup\"\r\n [groupSummary]=\"groupSummary\"\r\n [showViewButton]=\"showViewButton\"\r\n [inlineEditWithoutSelection]=\"inlineEditWithoutSelection\"\r\n [UlvMainCtrlr]=\"UlvMainCtrlr\"\r\n [moDataList]=\"moDataList\"\r\n [showDetailsInRow]=\"showDetailsInRow\"\r\n [hideOpenIcon]=\"hideOpenIcon\"\r\n [detailsColumns]=\"detailsColumns\"\r\n [showRowNumber]=\"contextView?.Grid_ShowRowNumber\"\r\n [rowNumber]=\"rowNumber\"\r\n [columnComponents]=\"viewSetting?.ColumnComponents || null\"\r\n [cartableTemplate]=\"cartableTemplate\"\r\n [cartableMo]=\"mo.RelatedMo\"\r\n [dirtyColumns]=\"mo.$DirtyColumns\"\r\n [cartableWorkflowData]=\"mo.SerializedWorkflowData\"\r\n [serializedRelatedMo]=\"mo.SerializedRelatedMo\"\r\n [detailsText]=\"viewSetting?.DetailsSetting?.ButtonText\"\r\n [attachmentViewType]=\"viewSetting?.AttachmentViewType\"\r\n [detailsTextFunction]=\"viewSetting?.DetailsSetting?.ButtonTextFunction\"\r\n [detailsComponent]=\"detailsComponent\"\r\n [isChecked]=\"mo.$IsChecked\"\r\n [ility]=\"mo.$Visibility\"\r\n [expanded]=\"mo.$Expanded\"\r\n [styleIndex]=\"mo.$StyleIndex\"\r\n [level]=\"mo.$Level\"\r\n [parentExpanded]=\"mo.$Parent?.$Expanded\"\r\n [moDataListCount]=\"moDataListCount\"\r\n [columnsCount]=\"columnsCount - detailsColumns.length\"\r\n [typeDefId]=\"typeDefId\"\r\n [extraRelation]=\"extraRelation\"\r\n [formSetting]=\"formSetting\"\r\n [index]=\"index\"\r\n [setting]=\"viewSetting\"\r\n [secondaryColumns]=\"secondaryColumns | filterColumnsByDetails: detailsColumns:rowIndicator\"\r\n [columns]=\"columns | filterColumnsByDetails: detailsColumns:rowIndicator\"\r\n [isNewInlineMo]=\"mo.$NewInlineMo\"\r\n [access]=\"access\"\r\n [inlineEditMode]=\"inlineEditMode\"\r\n [allowInlineEdit]=\"allowInlineEdit\"\r\n [rtl]=\"rtl\"\r\n [deviceName]=\"deviceName\"\r\n [deviceSize]=\"deviceSize\"\r\n [allColumns]=\"allColumns\"\r\n [contextMenuItems]=\"contextMenuItems\"\r\n [canView]=\"canView\"\r\n [conditionalFormats]=\"conditionalFormats\"\r\n [disableOverflowContextMenu]=\"disableOverflowContextMenu\"\r\n [navigationArrow]=\"navigationArrow\"\r\n [isCheckList]=\"isCheckList\"\r\n [rowIndicator]=\"rowIndicator\"\r\n [rowIndicatorColor]=\"rowIndicatorColor\"\r\n (events)=\"onOlgoEvents($event)\"\r\n >\r\n </bnrc-dynamic-item-component>\r\n</ng-template>\r\n<ng-template\r\n #rowTemplate\r\n let-mo\r\n let-index=\"index\"\r\n let-rowNumber=\"rowNumber\"\r\n let-columns=\"columns\"\r\n let-moDataListCount=\"moDataListCount\"\r\n let-moDataList=\"moDataList\"\r\n let-cartableTemplate=\"cartableTemplate\"\r\n let-secondaryColumns=\"secondaryColumns\"\r\n let-rowIndicatorColor=\"rowIndicatorColor\"\r\n let-previewColumn=\"previewColumn\"\r\n let-detailsCollapsed=\"detailsCollapsed\"\r\n let-hideDetailsText=\"hideDetailsText\"\r\n>\r\n <bsu-barsa-table-row\r\n [allowRecordReorder]=\"allowRecordReorder\"\r\n (reorderMoved)=\"onRowReorderMoved($event)\"\r\n (reorderEnded)=\"onRowReorderEnded($event)\"\r\n [mo]=\"mo\"\r\n [alternateRowMode]=\"alternateRowMode\"\r\n [columnsHyperLink]=\"columnsHyperLink\"\r\n [disableHyperLink]=\"disableHyperLink\"\r\n [alternateEditObjectColumn]=\"alternateEditObjectColumn\"\r\n [dirtyColumns]=\"mo.$DirtyColumns\"\r\n [inlineEditWithoutSelection]=\"inlineEditWithoutSelection\"\r\n [isLastChildGroup]=\"mo.$IsLastChildGroup\"\r\n [moDataList]=\"moDataList\"\r\n [hideDetailsText]=\"hideDetailsText\"\r\n [detailsCollapsed]=\"detailsCollapsed\"\r\n [groupSummary]=\"groupSummary\"\r\n [UlvMainCtrlr]=\"UlvMainCtrlr\"\r\n [isMobile]=\"isMobile\"\r\n [showDetailsInRow]=\"showDetailsInRow\"\r\n [hideOpenIcon]=\"hideOpenIcon\"\r\n [showRowNumber]=\"contextView?.Grid_ShowRowNumber\"\r\n [attachmentViewType]=\"viewSetting?.AttachmentViewType\"\r\n [rowNumber]=\"rowNumber\"\r\n [disableEllapsis]=\"viewSetting?.DisableEllapsis\"\r\n [showViewButton]=\"showViewButton\"\r\n [detailsColumns]=\"detailsColumns\"\r\n [columnComponents]=\"viewSetting?.ColumnComponents || null\"\r\n [cartableTemplate]=\"cartableTemplate\"\r\n [cartableMo]=\"mo.RelatedMo\"\r\n [cartableWorkflowData]=\"mo.SerializedWorkflowData\"\r\n [serializedRelatedMo]=\"mo.SerializedRelatedMo\"\r\n [detailsText]=\"viewSetting?.DetailsSetting?.ButtonText\"\r\n [detailsComponent]=\"detailsComponent\"\r\n [isChecked]=\"mo.$IsChecked\"\r\n [visibility]=\"mo.$Visibility\"\r\n [expanded]=\"mo.$Expanded\"\r\n [styleIndex]=\"mo.$StyleIndex\"\r\n [level]=\"mo.$Level\"\r\n [parentExpanded]=\"mo.$Parent?.$Expanded\"\r\n [moDataListCount]=\"moDataListCount\"\r\n [columnsCount]=\"columnsCount - detailsColumns.length\"\r\n [typeDefId]=\"typeDefId\"\r\n [extraRelation]=\"extraRelation\"\r\n [formSetting]=\"formSetting\"\r\n [index]=\"index\"\r\n [setting]=\"viewSetting\"\r\n [checkboxComponent]=\"viewSetting?.CheckboxComponent\"\r\n [secondaryColumns]=\"\r\n secondaryColumns\r\n | filterColumnsByDetails: detailsColumns:false\r\n | filter: { IsPreview: false }\r\n | hideColumnsInmobile: viewSetting?.HideColumnsInMobile\r\n \"\r\n [columns]=\"\r\n columns\r\n | filterColumnsByDetails: detailsColumns:rowIndicator\r\n | filter: { IsPreview: false }\r\n | hideColumnsInmobile: viewSetting?.HideColumnsInMobile\r\n \"\r\n [isNewInlineMo]=\"mo.$NewInlineMo\"\r\n [access]=\"access\"\r\n [simpleInlineEdit]=\"simpleInlineEdit\"\r\n [noSaveInlineEditInServer]=\"simpleInlineEdit\"\r\n [actionList]=\"\r\n inlineEditMode\r\n | reportActionList: canView:hideOpenIcon:hasInlineEditButton:hasInlineDeleteButton:navigationArrow\r\n \"\r\n [inlineEditMode]=\"inlineEditMode\"\r\n [allowInlineEdit]=\"allowInlineEdit\"\r\n [rtl]=\"rtl\"\r\n [deviceName]=\"deviceName\"\r\n [deviceSize]=\"deviceSize\"\r\n [allColumns]=\"allColumns\"\r\n [contextMenuItems]=\"contextMenuItems\"\r\n [canView]=\"canView\"\r\n [conditionalFormats]=\"conditionalFormats\"\r\n [disableOverflowContextMenu]=\"disableOverflowContextMenu\"\r\n [navigationArrow]=\"navigationArrow\"\r\n [isCheckList]=\"isCheckList\"\r\n [rowIndicator]=\"rowIndicator\"\r\n [rowIndicatorColor]=\"rowIndicatorColor\"\r\n [freezeColumn]=\"frozenColumnName\"\r\n [previewColumn]=\"previewColumn\"\r\n (columnSummary)=\"columnSummary.emit($event)\"\r\n (resetWorkflowState)=\"resetWorkflowState.emit(mo)\"\r\n (escapeKey)=\"onEscapeKey($event)\"\r\n (expandClick)=\"onExpandClick($event)\"\r\n (rowCheck)=\"onRowCheck($event)\"\r\n (workflowShareButtons)=\"onWorkflowShareButtons($event)\"\r\n (deselectAll)=\"onDeselectAll()\"\r\n (rowClick)=\"onRowClick($event)\"\r\n (ulvCommand)=\"onUlvCommand($event)\"\r\n (actionListClick)=\"onActionListClick(mo, index, $event)\"\r\n (selectNextInlineRecord)=\"onSelectNextInlineRecord($event)\"\r\n (editFormPanelSave)=\"onEditFormPanelSave($event)\"\r\n (editFormPanelCancel)=\"onEditFormPanelCancel($event)\"\r\n (editFormPanelValueChange)=\"onEditFormPanelValueChange($event)\"\r\n (cartableFormClosed)=\"onCartableFormClosed($event)\"\r\n >\r\n </bsu-barsa-table-row>\r\n <!-- <div\r\n #rowBottom\r\n intersectionObserver\r\n [intersectionThreshold]=\"0.1\"\r\n (visibilityChange)=\"onRowVisibilityChange($event, index, rowBottom)\"\r\n ></div> -->\r\n</ng-template>\r\n<div #tableBottomObserve></div>\r\n", styles: [":host{display:block;width:100%;position:relative;padding-bottom:.2rem;overflow-x:auto;max-width:100vw}.table-fixed{table-layout:fixed}.table-fixed td{overflow:hidden}tr td{font-weight:inherit}::ng-deep span.fd-toolbar__spacer{display:none}.row-summary{position:relative}.row-summary td.frozen-column{position:sticky;inset-inline-start:0;z-index:1;background-color:var(--sapList_HeaderBackground)}.table-filler-spacer{visibility:hidden;pointer-events:none;position:absolute}.table-empty-filler{position:absolute;left:0;right:0;border:var(--sapList_BorderWidth) solid var(--sapList_BorderColor);border-top:none;background-color:var(--sapList_Background);pointer-events:none}\n"], dependencies: [{ kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i2.DynamicItemComponent, selector: "bnrc-dynamic-item-component", inputs: ["mo", "allColumns", "moDataList", "columns", "column", "index", "last", "hideOpenIcon", "deviceName", "deviceSize", "rtl", "editMode", "setting", "parameters", "contextMenuItems", "canView", "showRowNumber", "rowNumber", "formSetting", "conditionalFormats", "disableOverflowContextMenu", "navigationArrow", "isCheckList", "maxHeightHeader", "fields", "isChecked", "layout94$", "inlineEditMode", "isNewInlineMo", "allowInlineEdit", "typeDefId", "rowIndicator", "rowIndicatorColor", "UlvMainCtrlr"] }, { kind: "directive", type: i2.ColumnResizerDirective, selector: "[columnResizer]", inputs: ["disableResizer"] }, { kind: "component", type: i3$2.TableComponent, selector: "table[fd-table]", inputs: ["noBorderX", "noBorderY", "noOuterBorder", "topBorder", "popIn", "responsive", "keys", "allCellsFocusable"], exportAs: ["fd-table"] }, { kind: "directive", type: i3$2.TableFooterDirective, selector: "[fdTableFooter], [fd-table-footer]" }, { kind: "directive", type: i3$2.TableBodyDirective, selector: "[fdTableBody], [fd-table-body]", inputs: ["noBorderX", "noBorderY"] }, { kind: "directive", type: i3$2.TableRowDirective, selector: "[fdTableRow], [fd-table-row]", inputs: ["activable", "highlightActive", "hoverable", "focusable", "main", "secondary", "active"] }, { kind: "directive", type: i3$2.TableCellDirective, selector: "[fdTableCell], [fd-table-cell]", inputs: ["noBorderX", "noBorderY", "activable", "focusable", "hoverable", "fitContent", "noPadding", "noData", "nonInteractive", "key"] }, { kind: "component", type: NoDataComponent, selector: "bsu-no-data", inputs: ["simple"] }, { kind: "component", type: BarsaTableHeaderComponent, selector: "bsu-barsa-table-header", inputs: ["allChecked", "allowRecordReorder", "isCheckList", "attachmentViewType", "columns", "fitWidth", "contextMenuItems", "contextMenuWidth", "showViewButton", "hasSelected", "isMobile", "hideOpenIcon", "disableOverflowContextMenu", "inlineEditMode", "hideHeader", "showDetailsInRow", "viewSetting", "tableWidth", "resizedByUser", "disableResponsive", "actionList", "rowIndicator", "rtl", "sticky", "showRowNumber", "hasSecondaryColumns", "disableResize", "disableHeaderContextMenu", "freezeColumn", "deviceSize", "tableHeaderMode"], outputs: ["allCheckbox", "columnResize", "columnResizing", "fitToContent", "fitToContainer", "freeColumnSize", "sortAscending", "sortDescending", "filter", "resetGridSettings", "headerRender"] }, { kind: "component", type: BarsaTableRowComponent, selector: "bsu-barsa-table-row", inputs: ["showDetailsInRow", "allowRecordReorder", "previewColumn", "columnComponents", "detailsCollapsed", "freezeColumn"], outputs: ["columnSummary", "reorderMoved", "reorderEnded"] }, { kind: "pipe", type: i1.DecimalPipe, name: "number" }, { kind: "pipe", type: i2.FilterPipe, name: "filter" }, { kind: "pipe", type: i2.MultipleGroupByPipe, name: "multipleGroupBy" }, { kind: "pipe", type: i2.MoReportValuePipe, name: "rval" }, { kind: "pipe", type: i2.BbbTranslatePipe, name: "bbbTranslate" }, { kind: "pipe", type: i2.TotalSummaryPipe, name: "totalSummary" }, { kind: "pipe", type: i2.MergeFieldsToColumnsPipe, name: "mergeFieldsToColumns" }, { kind: "pipe", type: i2.FilterColumnsByDetailsPipe, name: "filterColumnsByDetails" }, { kind: "pipe", type: i2.ColumnCustomComponentPipe, name: "columnCustomComponent" }, { kind: "pipe", type: i2.RowNumberPipe, name: "rowNumber" }, { kind: "pipe", type: i2.FindPreviewColumnPipe, name: "findPreviewColumn" }, { kind: "pipe", type: i2.HideColumnsInmobilePipe, name: "hideColumnsInmobile" }, { kind: "pipe", type: i2.ReportActionListPipe, name: "reportActionList" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
7242
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.8", type: UiTableViewComponent, isStandalone: false, selector: "bsu-ui-table-view", inputs: { columnWidth: "columnWidth", minWidth: "minWidth", minHeight: "minHeight", disableResize: "disableResize", disableHeaderContextMenu: "disableHeaderContextMenu", rowResizer: "rowResizer", enableResizing: "enableResizing", disableFixedTableLayout: "disableFixedTableLayout" }, host: { properties: { "style.padding-bottom": "_fillerHeight", "style.max-height": "this.maxHeight", "style.overflow-y": "this.overflowY" } }, viewQueries: [{ propertyName: "_tableRef", first: true, predicate: ["tableTpl"], descendants: true, read: ElementRef, static: true }, { propertyName: "_tableHeaderComponent", first: true, predicate: BarsaTableHeaderComponent, descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<table\r\n fd-table\r\n #tableTpl\r\n #headerBottomObserver\r\n [popIn]=\"popin\"\r\n [class.table-fixed]=\"\r\n !isMobile &&\r\n !contextView?.Grid_HideHeader &&\r\n (!popin || secondaryColumns.length === 0) &&\r\n !disableFixedTableLayout\r\n \"\r\n [noBorderX]=\"viewSetting?.NoHoriztonalBorders === true\"\r\n [noBorderY]=\"viewSetting?.NoVerticalBorders === true || (popin && secondaryColumns.length > 0)\"\r\n>\r\n @if (columns | mergeFieldsToColumns: viewSetting?.MergeFieldsToColumns?.MoDataList; as\r\n mergeFieldsToColumns) {\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n headerTemplate;\r\n context: { $implicit: mergeFieldsToColumns, moDataListCount: moDataList?.length }\r\n \"\r\n ></ng-container>\r\n @if (moDataList?.length) {\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n bodyTemplate;\r\n context: { $implicit: mergeFieldsToColumns, previewColumn: allColumns | findPreviewColumn }\r\n \"\r\n ></ng-container>\r\n <ng-container *ngTemplateOutlet=\"footerTemplate; context: { $implicit: mergeFieldsToColumns }\"></ng-container>\r\n } }\r\n</table>\r\n<!--renderColumn-->\r\n\r\n@if (_showFiller) {\r\n<!-- spacer: \u0641\u0636\u0627 \u062F\u0631 \u062C\u0631\u06CC\u0627\u0646 \u0639\u0627\u062F\u06CC \u062A\u0627 host \u0628\u0632\u0631\u06AF \u0628\u0634\u0647 -->\r\n<div class=\"table-filler-spacer\" [style.height]=\"_fillerHeight\"></div>\r\n<!-- \u0641\u06CC\u0644\u0631 \u0627\u0628\u0633\u0648\u0644\u0648\u062A: \u0632\u06CC\u0631 \u062A\u06CC\u0628\u0644 \u0628\u0627 margin-top \u0628\u0631\u0627\u0628\u0631 \u0627\u0631\u062A\u0641\u0627\u0639 \u0647\u062F\u0631 -->\r\n@if (!moDataList?.length) {\r\n<bsu-no-data\r\n [class.no-topborder]=\"!hideToolbar\"\r\n [class.noborder]=\"contextView.Grid_HideHeader && hideToolbar\"\r\n [simple]=\"true\"\r\n>\r\n</bsu-no-data>\r\n} }\r\n\r\n<ng-template #headerTemplate let-columns let-moDataListCount>\r\n <bsu-barsa-table-header\r\n [allowRecordReorder]=\"allowRecordReorder\"\r\n [sticky]=\"stickyEnable() || isReportPage\"\r\n [hasSecondaryColumns]=\"secondaryColumns.length > 0\"\r\n [class.has-toolbar]=\"!hideToolbar\"\r\n [style.pointer-events]=\"moDataListCount ? 'auto' : 'none'\"\r\n [tableWidth]=\"elWidth\"\r\n [showDetailsInRow]=\"showDetailsInRow\"\r\n [hideOpenIcon]=\"hideOpenIcon\"\r\n [resizedByUser]=\"resizedByUser\"\r\n [tableHeaderMode]=\"tableHeaderMode\"\r\n [isMobile]=\"isMobile\"\r\n [attachmentViewType]=\"viewSetting?.AttachmentViewType\"\r\n [showRowNumber]=\"contextView?.Grid_ShowRowNumber\"\r\n [allChecked]=\"allChecked\"\r\n [rtl]=\"rtl\"\r\n [actionList]=\"\r\n inlineEditMode\r\n | reportActionList: canView:hideOpenIcon:hasInlineEditButton:hasInlineDeleteButton:navigationArrow\r\n \"\r\n [disableResponsive]=\"disableResponsive\"\r\n [isCheckList]=\"isCheckList\"\r\n [columns]=\"\r\n columns\r\n | filterColumnsByDetails: detailsColumns:rowIndicator\r\n | filter: { IsPreview: false }\r\n | hideColumnsInmobile: viewSetting?.HideColumnsInMobile\r\n \"\r\n [fitWidth]=\"fitWidth\"\r\n [disableOverflowContextMenu]=\"disableOverflowContextMenu\"\r\n [inlineEditMode]=\"inlineEditMode\"\r\n [contextMenuItems]=\"contextMenuItems\"\r\n [contextMenuWidth]=\"contextMenuWidth\"\r\n [showViewButton]=\"showViewButton\"\r\n [deviceSize]=\"deviceSize\"\r\n [viewSetting]=\"viewSetting\"\r\n [hideHeader]=\"contextView.Grid_HideHeader\"\r\n [rowIndicator]=\"rowIndicator\"\r\n [disableResize]=\"disableResize\"\r\n [disableHeaderContextMenu]=\"disableHeaderContextMenu\"\r\n [freezeColumn]=\"frozenColumnName\"\r\n (headerRender)=\"onSetTableHeaderDom($event)\"\r\n (columnResize)=\"onColumnResized($event)\"\r\n (columnResizing)=\"onColumnResizing($event)\"\r\n (fitToContent)=\"onFitToContent($event)\"\r\n (fitToContainer)=\"onFitToContainer()\"\r\n (freeColumnSize)=\"onFreeColumnSizing()\"\r\n (allCheckbox)=\"onAllCheckbox($event)\"\r\n (sortAscending)=\"onSortAscending($event)\"\r\n (sortDescending)=\"onSortDescending($event)\"\r\n (filter)=\"onFilter($event)\"\r\n (resetGridSettings)=\"resetGridSettings.emit()\"\r\n ></bsu-barsa-table-header>\r\n <!-- <div\r\n #headerBottomObserver\r\n intersectionObserver\r\n [intersectionThreshold]=\"0.1\"\r\n (visibilityChange)=\"onHeaderVisibilityChange($event, headerBottomObserver)\"\r\n ></div> -->\r\n</ng-template>\r\n<ng-template #bodyTemplate let-columns let-previewColumn=\"previewColumn\">\r\n <tbody\r\n #body\r\n fd-table-body\r\n [class.noborder]=\"viewSetting?.NoBodyBorders === true\"\r\n [noBorderX]=\"viewSetting?.NoHoriztonalBorders === true || previewColumn\"\r\n [noBorderY]=\"(popin && secondaryColumns.length > 0) || previewColumn\"\r\n >\r\n <ng-container>\r\n @for (mo of moDataList | multipleGroupBy: groupby; track _trackByRow(index, mo); let index = $index; let last = $last) {\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n hasRowOlgo ? rowOlgoTemplate : rowTemplate;\r\n context: {\r\n $implicit: mo,\r\n index: index,\r\n rowNumber: mo.Id | rowNumber: pagingSetting:moDataList,\r\n rowIndicatorColor: !columns.length ? '' : (columns[0].Caption | rval: mo:columns),\r\n columns:\r\n columns\r\n | columnCustomComponent\r\n : viewSetting?.ColumnComponents?.MoDataList,\r\n secondaryColumns:\r\n secondaryColumns\r\n | columnCustomComponent\r\n : viewSetting?.ColumnComponents?.MoDataList,\r\n moDataList: moDataList,\r\n moDataListCount: moDataList.length,\r\n cartableTemplate: cartableTemplates[mo.RelatedMo?.$TypeDefId + '@' + mo.CartableSettings?.Id],\r\n previewColumn: previewColumn,\r\n detailsCollapsed: viewSetting?.DetailsSetting?.DetailsCollapsed === true,\r\n hideDetailsText: viewSetting?.DetailsSetting?.HideDetailsText === true,\r\n last:last\r\n }\r\n \"\r\n ></ng-container>\r\n }\r\n </ng-container>\r\n </tbody>\r\n</ng-template>\r\n<ng-template #footerTemplate let-columns>\r\n @if (hasSummary) {\r\n <tfoot fd-table-footer>\r\n <tr fd-table-row class=\"row-summary\">\r\n @if (isCheckList) {\r\n <td fd-table-cell columnResizer class=\"!tw-border-none\">\r\n <strong class=\"tw-absolute !tw-text-xs tw-top-0 tw-left-2 tw-right-2 tw-bottom-0\">{{\r\n 'Total' | bbbTranslate\r\n }}</strong>\r\n </td>\r\n } @if (!isCheckList) {\r\n <td fd-table-cell class=\"single-select\" class=\"!tw-border-none\">\r\n <strong class=\"tw-absolute !tw-text-xs tw-top-0 tw-left-2 tw-right-2 tw-bottom-0\">{{\r\n 'Total' | bbbTranslate\r\n }}</strong>\r\n </td>\r\n } @for (column of columns; track column; let i = $index) {\r\n <td [class.frozen-column]=\"column.Name === frozenColumnName\">\r\n @if (column.HasSummary) {\r\n <strong style=\"direction: ltr; display: block\" [style.text-align]=\"rtl ? 'right' : 'left'\">\r\n {{ moDataList | totalSummary: column.Name | number }}</strong\r\n >\r\n }\r\n </td>\r\n } @if (contextMenuItems && contextMenuItems.length > 0) {\r\n <td fd-table-cell style=\"width: 100px\"></td>\r\n } @if (!hideOpenIcon && canView && (!inlineEditMode || !allowInlineEdit)) {\r\n <td fd-table-cell></td>\r\n }\r\n </tr>\r\n </tfoot>\r\n }\r\n</ng-template>\r\n<ng-template\r\n #rowOlgoTemplate\r\n let-mo\r\n let-index=\"index\"\r\n let-columns=\"columns\"\r\n let-moDataListCount=\"moDataListCount\"\r\n let-moDataList=\"moDataList\"\r\n let-cartableTemplate=\"cartableTemplate\"\r\n let-secondaryColumns=\"secondaryColumns\"\r\n let-rowIndicatorColor=\"rowIndicatorColor\"\r\n let-rowNumber=\"rowNumber\"\r\n let-previewColumn=\"previewColumn\"\r\n let-detailsCollapsed=\"detailsCollapsed\"\r\n let-hideDetailsText=\"hideDetailsText\"\r\n let-last=\"last\"\r\n>\r\n <bnrc-dynamic-item-component\r\n [component]=\"viewSetting.RowOlgo\"\r\n [mo]=\"mo\"\r\n [last]=\"last\"\r\n [alternateRowMode]=\"alternateRowMode\"\r\n [columnsHyperLink]=\"columnsHyperLink\"\r\n [disableHyperLink]=\"disableHyperLink\"\r\n [alternateEditObjectColumn]=\"alternateEditObjectColumn\"\r\n [detailsCollapsed]=\"detailsCollapsed\"\r\n [hideDetailsText]=\"hideDetailsText\"\r\n [isLastChildGroup]=\"mo.$IsLastChildGroup\"\r\n [groupSummary]=\"groupSummary\"\r\n [showViewButton]=\"showViewButton\"\r\n [inlineEditWithoutSelection]=\"inlineEditWithoutSelection\"\r\n [UlvMainCtrlr]=\"UlvMainCtrlr\"\r\n [moDataList]=\"moDataList\"\r\n [showDetailsInRow]=\"showDetailsInRow\"\r\n [hideOpenIcon]=\"hideOpenIcon\"\r\n [detailsColumns]=\"detailsColumns\"\r\n [showRowNumber]=\"contextView?.Grid_ShowRowNumber\"\r\n [rowNumber]=\"rowNumber\"\r\n [columnComponents]=\"viewSetting?.ColumnComponents || null\"\r\n [cartableTemplate]=\"cartableTemplate\"\r\n [cartableMo]=\"mo.RelatedMo\"\r\n [dirtyColumns]=\"mo.$DirtyColumns\"\r\n [cartableWorkflowData]=\"mo.SerializedWorkflowData\"\r\n [serializedRelatedMo]=\"mo.SerializedRelatedMo\"\r\n [detailsText]=\"viewSetting?.DetailsSetting?.ButtonText\"\r\n [attachmentViewType]=\"viewSetting?.AttachmentViewType\"\r\n [detailsTextFunction]=\"viewSetting?.DetailsSetting?.ButtonTextFunction\"\r\n [detailsComponent]=\"detailsComponent\"\r\n [isChecked]=\"mo.$IsChecked\"\r\n [ility]=\"mo.$Visibility\"\r\n [expanded]=\"mo.$Expanded\"\r\n [styleIndex]=\"mo.$StyleIndex\"\r\n [level]=\"mo.$Level\"\r\n [parentExpanded]=\"mo.$Parent?.$Expanded\"\r\n [moDataListCount]=\"moDataListCount\"\r\n [columnsCount]=\"columnsCount - detailsColumns.length\"\r\n [typeDefId]=\"typeDefId\"\r\n [extraRelation]=\"extraRelation\"\r\n [formSetting]=\"formSetting\"\r\n [index]=\"index\"\r\n [setting]=\"viewSetting\"\r\n [secondaryColumns]=\"secondaryColumns | filterColumnsByDetails: detailsColumns:rowIndicator\"\r\n [columns]=\"columns | filterColumnsByDetails: detailsColumns:rowIndicator\"\r\n [isNewInlineMo]=\"mo.$NewInlineMo\"\r\n [access]=\"access\"\r\n [inlineEditMode]=\"inlineEditMode\"\r\n [allowInlineEdit]=\"allowInlineEdit\"\r\n [rtl]=\"rtl\"\r\n [deviceName]=\"deviceName\"\r\n [deviceSize]=\"deviceSize\"\r\n [allColumns]=\"allColumns\"\r\n [contextMenuItems]=\"contextMenuItems\"\r\n [canView]=\"canView\"\r\n [conditionalFormats]=\"conditionalFormats\"\r\n [disableOverflowContextMenu]=\"disableOverflowContextMenu\"\r\n [navigationArrow]=\"navigationArrow\"\r\n [isCheckList]=\"isCheckList\"\r\n [rowIndicator]=\"rowIndicator\"\r\n [rowIndicatorColor]=\"rowIndicatorColor\"\r\n (events)=\"onOlgoEvents($event)\"\r\n >\r\n </bnrc-dynamic-item-component>\r\n</ng-template>\r\n<ng-template\r\n #rowTemplate\r\n let-mo\r\n let-index=\"index\"\r\n let-rowNumber=\"rowNumber\"\r\n let-columns=\"columns\"\r\n let-moDataListCount=\"moDataListCount\"\r\n let-moDataList=\"moDataList\"\r\n let-cartableTemplate=\"cartableTemplate\"\r\n let-secondaryColumns=\"secondaryColumns\"\r\n let-rowIndicatorColor=\"rowIndicatorColor\"\r\n let-previewColumn=\"previewColumn\"\r\n let-detailsCollapsed=\"detailsCollapsed\"\r\n let-hideDetailsText=\"hideDetailsText\"\r\n let-last=\"last\"\r\n>\r\n <bsu-barsa-table-row\r\n [allowRecordReorder]=\"allowRecordReorder\"\r\n (reorderMoved)=\"onRowReorderMoved($event)\"\r\n (reorderEnded)=\"onRowReorderEnded($event)\"\r\n [mo]=\"mo\"\r\n [last]=\"last\"\r\n [alternateRowMode]=\"alternateRowMode\"\r\n [columnsHyperLink]=\"columnsHyperLink\"\r\n [disableHyperLink]=\"disableHyperLink\"\r\n [alternateEditObjectColumn]=\"alternateEditObjectColumn\"\r\n [dirtyColumns]=\"mo.$DirtyColumns\"\r\n [inlineEditWithoutSelection]=\"inlineEditWithoutSelection\"\r\n [isLastChildGroup]=\"mo.$IsLastChildGroup\"\r\n [moDataList]=\"moDataList\"\r\n [hideDetailsText]=\"hideDetailsText\"\r\n [detailsCollapsed]=\"detailsCollapsed\"\r\n [groupSummary]=\"groupSummary\"\r\n [UlvMainCtrlr]=\"UlvMainCtrlr\"\r\n [isMobile]=\"isMobile\"\r\n [showDetailsInRow]=\"showDetailsInRow\"\r\n [hideOpenIcon]=\"hideOpenIcon\"\r\n [showRowNumber]=\"contextView?.Grid_ShowRowNumber\"\r\n [attachmentViewType]=\"viewSetting?.AttachmentViewType\"\r\n [rowNumber]=\"rowNumber\"\r\n [disableEllapsis]=\"viewSetting?.DisableEllapsis\"\r\n [showViewButton]=\"showViewButton\"\r\n [detailsColumns]=\"detailsColumns\"\r\n [columnComponents]=\"viewSetting?.ColumnComponents || null\"\r\n [cartableTemplate]=\"cartableTemplate\"\r\n [cartableMo]=\"mo.RelatedMo\"\r\n [cartableWorkflowData]=\"mo.SerializedWorkflowData\"\r\n [serializedRelatedMo]=\"mo.SerializedRelatedMo\"\r\n [detailsText]=\"viewSetting?.DetailsSetting?.ButtonText\"\r\n [detailsComponent]=\"detailsComponent\"\r\n [isChecked]=\"mo.$IsChecked\"\r\n [visibility]=\"mo.$Visibility\"\r\n [expanded]=\"mo.$Expanded\"\r\n [styleIndex]=\"mo.$StyleIndex\"\r\n [level]=\"mo.$Level\"\r\n [parentExpanded]=\"mo.$Parent?.$Expanded\"\r\n [moDataListCount]=\"moDataListCount\"\r\n [columnsCount]=\"columnsCount - detailsColumns.length\"\r\n [typeDefId]=\"typeDefId\"\r\n [extraRelation]=\"extraRelation\"\r\n [formSetting]=\"formSetting\"\r\n [index]=\"index\"\r\n [setting]=\"viewSetting\"\r\n [checkboxComponent]=\"viewSetting?.CheckboxComponent\"\r\n [secondaryColumns]=\"\r\n secondaryColumns\r\n | filterColumnsByDetails: detailsColumns:false\r\n | filter: { IsPreview: false }\r\n | hideColumnsInmobile: viewSetting?.HideColumnsInMobile\r\n \"\r\n [columns]=\"\r\n columns\r\n | filterColumnsByDetails: detailsColumns:rowIndicator\r\n | filter: { IsPreview: false }\r\n | hideColumnsInmobile: viewSetting?.HideColumnsInMobile\r\n \"\r\n [isNewInlineMo]=\"mo.$NewInlineMo\"\r\n [access]=\"access\"\r\n [simpleInlineEdit]=\"simpleInlineEdit\"\r\n [noSaveInlineEditInServer]=\"simpleInlineEdit\"\r\n [actionList]=\"\r\n inlineEditMode\r\n | reportActionList: canView:hideOpenIcon:hasInlineEditButton:hasInlineDeleteButton:navigationArrow\r\n \"\r\n [inlineEditMode]=\"inlineEditMode\"\r\n [allowInlineEdit]=\"allowInlineEdit\"\r\n [rtl]=\"rtl\"\r\n [deviceName]=\"deviceName\"\r\n [deviceSize]=\"deviceSize\"\r\n [allColumns]=\"allColumns\"\r\n [contextMenuItems]=\"contextMenuItems\"\r\n [canView]=\"canView\"\r\n [conditionalFormats]=\"conditionalFormats\"\r\n [disableOverflowContextMenu]=\"disableOverflowContextMenu\"\r\n [navigationArrow]=\"navigationArrow\"\r\n [isCheckList]=\"isCheckList\"\r\n [rowIndicator]=\"rowIndicator\"\r\n [rowIndicatorColor]=\"rowIndicatorColor\"\r\n [freezeColumn]=\"frozenColumnName\"\r\n [previewColumn]=\"previewColumn\"\r\n (columnSummary)=\"columnSummary.emit($event)\"\r\n (resetWorkflowState)=\"resetWorkflowState.emit(mo)\"\r\n (escapeKey)=\"onEscapeKey($event)\"\r\n (expandClick)=\"onExpandClick($event)\"\r\n (rowCheck)=\"onRowCheck($event)\"\r\n (workflowShareButtons)=\"onWorkflowShareButtons($event)\"\r\n (deselectAll)=\"onDeselectAll()\"\r\n (rowClick)=\"onRowClick($event)\"\r\n (ulvCommand)=\"onUlvCommand($event)\"\r\n (actionListClick)=\"onActionListClick(mo, index, $event)\"\r\n (selectNextInlineRecord)=\"onSelectNextInlineRecord($event)\"\r\n (editFormPanelSave)=\"onEditFormPanelSave($event)\"\r\n (editFormPanelCancel)=\"onEditFormPanelCancel($event)\"\r\n (editFormPanelValueChange)=\"onEditFormPanelValueChange($event)\"\r\n (cartableFormClosed)=\"onCartableFormClosed($event)\"\r\n >\r\n </bsu-barsa-table-row>\r\n <!-- <div\r\n #rowBottom\r\n intersectionObserver\r\n [intersectionThreshold]=\"0.1\"\r\n (visibilityChange)=\"onRowVisibilityChange($event, index, rowBottom)\"\r\n ></div> -->\r\n</ng-template>\r\n<div #tableBottomObserve></div>\r\n", styles: [":host{display:block;width:100%;position:relative;padding-bottom:.2rem;overflow-x:auto;max-width:100vw}.table-fixed{table-layout:fixed}.table-fixed td{overflow:hidden}tr td{font-weight:inherit}::ng-deep span.fd-toolbar__spacer{display:none}.row-summary{position:relative}.row-summary td.frozen-column{position:sticky;inset-inline-start:0;z-index:1;background-color:var(--sapList_HeaderBackground)}.table-filler-spacer{visibility:hidden;pointer-events:none;position:absolute}.table-empty-filler{position:absolute;left:0;right:0;border:var(--sapList_BorderWidth) solid var(--sapList_BorderColor);border-top:none;background-color:var(--sapList_Background);pointer-events:none}\n"], dependencies: [{ kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i2.DynamicItemComponent, selector: "bnrc-dynamic-item-component", inputs: ["mo", "allColumns", "moDataList", "columns", "column", "index", "last", "hideOpenIcon", "deviceName", "deviceSize", "rtl", "editMode", "setting", "parameters", "contextMenuItems", "canView", "showRowNumber", "rowNumber", "formSetting", "conditionalFormats", "disableOverflowContextMenu", "navigationArrow", "isCheckList", "maxHeightHeader", "fields", "isChecked", "layout94$", "inlineEditMode", "isNewInlineMo", "allowInlineEdit", "typeDefId", "rowIndicator", "rowIndicatorColor", "UlvMainCtrlr"] }, { kind: "directive", type: i2.ColumnResizerDirective, selector: "[columnResizer]", inputs: ["disableResizer"] }, { kind: "component", type: i3$2.TableComponent, selector: "table[fd-table]", inputs: ["noBorderX", "noBorderY", "noOuterBorder", "topBorder", "popIn", "responsive", "keys", "allCellsFocusable"], exportAs: ["fd-table"] }, { kind: "directive", type: i3$2.TableFooterDirective, selector: "[fdTableFooter], [fd-table-footer]" }, { kind: "directive", type: i3$2.TableBodyDirective, selector: "[fdTableBody], [fd-table-body]", inputs: ["noBorderX", "noBorderY"] }, { kind: "directive", type: i3$2.TableRowDirective, selector: "[fdTableRow], [fd-table-row]", inputs: ["activable", "highlightActive", "hoverable", "focusable", "main", "secondary", "active"] }, { kind: "directive", type: i3$2.TableCellDirective, selector: "[fdTableCell], [fd-table-cell]", inputs: ["noBorderX", "noBorderY", "activable", "focusable", "hoverable", "fitContent", "noPadding", "noData", "nonInteractive", "key"] }, { kind: "component", type: NoDataComponent, selector: "bsu-no-data", inputs: ["simple"] }, { kind: "component", type: BarsaTableHeaderComponent, selector: "bsu-barsa-table-header", inputs: ["allChecked", "allowRecordReorder", "isCheckList", "attachmentViewType", "columns", "fitWidth", "contextMenuItems", "contextMenuWidth", "showViewButton", "hasSelected", "isMobile", "hideOpenIcon", "disableOverflowContextMenu", "inlineEditMode", "hideHeader", "showDetailsInRow", "viewSetting", "tableWidth", "resizedByUser", "disableResponsive", "actionList", "rowIndicator", "rtl", "sticky", "showRowNumber", "hasSecondaryColumns", "disableResize", "disableHeaderContextMenu", "freezeColumn", "deviceSize", "tableHeaderMode"], outputs: ["allCheckbox", "columnResize", "columnResizing", "fitToContent", "fitToContainer", "freeColumnSize", "sortAscending", "sortDescending", "filter", "resetGridSettings", "headerRender"] }, { kind: "component", type: BarsaTableRowComponent, selector: "bsu-barsa-table-row", inputs: ["showDetailsInRow", "allowRecordReorder", "previewColumn", "columnComponents", "detailsCollapsed", "freezeColumn"], outputs: ["columnSummary", "reorderMoved", "reorderEnded"] }, { kind: "pipe", type: i1.DecimalPipe, name: "number" }, { kind: "pipe", type: i2.FilterPipe, name: "filter" }, { kind: "pipe", type: i2.MultipleGroupByPipe, name: "multipleGroupBy" }, { kind: "pipe", type: i2.MoReportValuePipe, name: "rval" }, { kind: "pipe", type: i2.BbbTranslatePipe, name: "bbbTranslate" }, { kind: "pipe", type: i2.TotalSummaryPipe, name: "totalSummary" }, { kind: "pipe", type: i2.MergeFieldsToColumnsPipe, name: "mergeFieldsToColumns" }, { kind: "pipe", type: i2.FilterColumnsByDetailsPipe, name: "filterColumnsByDetails" }, { kind: "pipe", type: i2.ColumnCustomComponentPipe, name: "columnCustomComponent" }, { kind: "pipe", type: i2.RowNumberPipe, name: "rowNumber" }, { kind: "pipe", type: i2.FindPreviewColumnPipe, name: "findPreviewColumn" }, { kind: "pipe", type: i2.HideColumnsInmobilePipe, name: "hideColumnsInmobile" }, { kind: "pipe", type: i2.ReportActionListPipe, name: "reportActionList" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
7212
7243
  }
7213
7244
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: UiTableViewComponent, decorators: [{
7214
7245
  type: Component,
7215
7246
  args: [{ selector: 'bsu-ui-table-view', changeDetection: ChangeDetectionStrategy.OnPush, standalone: false, host: {
7216
7247
  '[style.padding-bottom]': '_fillerHeight'
7217
- }, template: "<table\r\n fd-table\r\n #tableTpl\r\n #headerBottomObserver\r\n [popIn]=\"popin\"\r\n [class.table-fixed]=\"\r\n !isMobile &&\r\n !contextView?.Grid_HideHeader &&\r\n (!popin || secondaryColumns.length === 0) &&\r\n !disableFixedTableLayout\r\n \"\r\n [noBorderX]=\"viewSetting?.NoHoriztonalBorders === true\"\r\n [noBorderY]=\"viewSetting?.NoVerticalBorders === true || (popin && secondaryColumns.length > 0)\"\r\n>\r\n @if (columns | mergeFieldsToColumns: viewSetting?.MergeFieldsToColumns?.MoDataList; as\r\n mergeFieldsToColumns) {\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n headerTemplate;\r\n context: { $implicit: mergeFieldsToColumns, moDataListCount: moDataList?.length }\r\n \"\r\n ></ng-container>\r\n @if (moDataList?.length) {\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n bodyTemplate;\r\n context: { $implicit: mergeFieldsToColumns, previewColumn: allColumns | findPreviewColumn }\r\n \"\r\n ></ng-container>\r\n <ng-container *ngTemplateOutlet=\"footerTemplate; context: { $implicit: mergeFieldsToColumns }\"></ng-container>\r\n } }\r\n</table>\r\n<!--renderColumn-->\r\n\r\n@if (_showFiller) {\r\n<!-- spacer: \u0641\u0636\u0627 \u062F\u0631 \u062C\u0631\u06CC\u0627\u0646 \u0639\u0627\u062F\u06CC \u062A\u0627 host \u0628\u0632\u0631\u06AF \u0628\u0634\u0647 -->\r\n<div class=\"table-filler-spacer\" [style.height]=\"_fillerHeight\"></div>\r\n<!-- \u0641\u06CC\u0644\u0631 \u0627\u0628\u0633\u0648\u0644\u0648\u062A: \u0632\u06CC\u0631 \u062A\u06CC\u0628\u0644 \u0628\u0627 margin-top \u0628\u0631\u0627\u0628\u0631 \u0627\u0631\u062A\u0641\u0627\u0639 \u0647\u062F\u0631 -->\r\n@if (!moDataList?.length) {\r\n<bsu-no-data\r\n [class.no-topborder]=\"!hideToolbar\"\r\n [class.noborder]=\"contextView.Grid_HideHeader && hideToolbar\"\r\n [simple]=\"true\"\r\n>\r\n</bsu-no-data>\r\n} }\r\n\r\n<ng-template #headerTemplate let-columns let-moDataListCount>\r\n <bsu-barsa-table-header\r\n [allowRecordReorder]=\"allowRecordReorder\"\r\n [sticky]=\"stickyEnable() || isReportPage\"\r\n [hasSecondaryColumns]=\"secondaryColumns.length > 0\"\r\n [class.has-toolbar]=\"!hideToolbar\"\r\n [style.pointer-events]=\"moDataListCount ? 'auto' : 'none'\"\r\n [tableWidth]=\"elWidth\"\r\n [showDetailsInRow]=\"showDetailsInRow\"\r\n [hideOpenIcon]=\"hideOpenIcon\"\r\n [resizedByUser]=\"resizedByUser\"\r\n [tableHeaderMode]=\"tableHeaderMode\"\r\n [isMobile]=\"isMobile\"\r\n [attachmentViewType]=\"viewSetting?.AttachmentViewType\"\r\n [showRowNumber]=\"contextView?.Grid_ShowRowNumber\"\r\n [allChecked]=\"allChecked\"\r\n [rtl]=\"rtl\"\r\n [actionList]=\"\r\n inlineEditMode\r\n | reportActionList: canView:hideOpenIcon:hasInlineEditButton:hasInlineDeleteButton:navigationArrow\r\n \"\r\n [disableResponsive]=\"disableResponsive\"\r\n [isCheckList]=\"isCheckList\"\r\n [columns]=\"\r\n columns\r\n | filterColumnsByDetails: detailsColumns:rowIndicator\r\n | filter: { IsPreview: false }\r\n | hideColumnsInmobile: viewSetting?.HideColumnsInMobile\r\n \"\r\n [fitWidth]=\"fitWidth\"\r\n [disableOverflowContextMenu]=\"disableOverflowContextMenu\"\r\n [inlineEditMode]=\"inlineEditMode\"\r\n [contextMenuItems]=\"contextMenuItems\"\r\n [contextMenuWidth]=\"contextMenuWidth\"\r\n [showViewButton]=\"showViewButton\"\r\n [deviceSize]=\"deviceSize\"\r\n [viewSetting]=\"viewSetting\"\r\n [hideHeader]=\"contextView.Grid_HideHeader\"\r\n [rowIndicator]=\"rowIndicator\"\r\n [disableResize]=\"disableResize\"\r\n [disableHeaderContextMenu]=\"disableHeaderContextMenu\"\r\n [freezeColumn]=\"frozenColumnName\"\r\n (headerRender)=\"onSetTableHeaderDom($event)\"\r\n (columnResize)=\"onColumnResized($event)\"\r\n (columnResizing)=\"onColumnResizing($event)\"\r\n (fitToContent)=\"onFitToContent($event)\"\r\n (fitToContainer)=\"onFitToContainer()\"\r\n (freeColumnSize)=\"onFreeColumnSizing()\"\r\n (allCheckbox)=\"onAllCheckbox($event)\"\r\n (sortAscending)=\"onSortAscending($event)\"\r\n (sortDescending)=\"onSortDescending($event)\"\r\n (filter)=\"onFilter($event)\"\r\n (resetGridSettings)=\"resetGridSettings.emit()\"\r\n ></bsu-barsa-table-header>\r\n <!-- <div\r\n #headerBottomObserver\r\n intersectionObserver\r\n [intersectionThreshold]=\"0.1\"\r\n (visibilityChange)=\"onHeaderVisibilityChange($event, headerBottomObserver)\"\r\n ></div> -->\r\n</ng-template>\r\n<ng-template #bodyTemplate let-columns let-previewColumn=\"previewColumn\">\r\n <tbody\r\n #body\r\n fd-table-body\r\n [class.noborder]=\"viewSetting?.NoBodyBorders === true\"\r\n [noBorderX]=\"viewSetting?.NoHoriztonalBorders === true || previewColumn\"\r\n [noBorderY]=\"(popin && secondaryColumns.length > 0) || previewColumn\"\r\n >\r\n <ng-container>\r\n @for (mo of moDataList | multipleGroupBy: groupby; track _trackByRow(index, mo); let index = $index) {\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n hasRowOlgo ? rowOlgoTemplate : rowTemplate;\r\n context: {\r\n $implicit: mo,\r\n index: index,\r\n rowNumber: mo.Id | rowNumber: pagingSetting:moDataList,\r\n rowIndicatorColor: !columns.length ? '' : (columns[0].Caption | rval: mo:columns),\r\n columns:\r\n columns\r\n | columnCustomComponent\r\n : viewSetting?.ColumnComponents?.MoDataList,\r\n secondaryColumns:\r\n secondaryColumns\r\n | columnCustomComponent\r\n : viewSetting?.ColumnComponents?.MoDataList,\r\n moDataList: moDataList,\r\n moDataListCount: moDataList.length,\r\n cartableTemplate: cartableTemplates[mo.RelatedMo?.$TypeDefId + '@' + mo.CartableSettings?.Id],\r\n previewColumn: previewColumn,\r\n detailsCollapsed: viewSetting?.DetailsSetting?.DetailsCollapsed === true,\r\n hideDetailsText: viewSetting?.DetailsSetting?.HideDetailsText === true\r\n }\r\n \"\r\n ></ng-container>\r\n }\r\n </ng-container>\r\n </tbody>\r\n</ng-template>\r\n<ng-template #footerTemplate let-columns>\r\n @if (hasSummary) {\r\n <tfoot fd-table-footer>\r\n <tr fd-table-row class=\"row-summary\">\r\n @if (isCheckList) {\r\n <td fd-table-cell columnResizer class=\"!tw-border-none\">\r\n <strong class=\"tw-absolute !tw-text-xs tw-top-0 tw-left-2 tw-right-2 tw-bottom-0\">{{\r\n 'Total' | bbbTranslate\r\n }}</strong>\r\n </td>\r\n } @if (!isCheckList) {\r\n <td fd-table-cell class=\"single-select\" class=\"!tw-border-none\">\r\n <strong class=\"tw-absolute !tw-text-xs tw-top-0 tw-left-2 tw-right-2 tw-bottom-0\">{{\r\n 'Total' | bbbTranslate\r\n }}</strong>\r\n </td>\r\n } @for (column of columns; track column; let i = $index) {\r\n <td [class.frozen-column]=\"column.Name === frozenColumnName\">\r\n @if (column.HasSummary) {\r\n <strong style=\"direction: ltr; display: block\" [style.text-align]=\"rtl ? 'right' : 'left'\">\r\n {{ moDataList | totalSummary: column.Name | number }}</strong\r\n >\r\n }\r\n </td>\r\n } @if (contextMenuItems && contextMenuItems.length > 0) {\r\n <td fd-table-cell style=\"width: 100px\"></td>\r\n } @if (!hideOpenIcon && canView && (!inlineEditMode || !allowInlineEdit)) {\r\n <td fd-table-cell></td>\r\n }\r\n </tr>\r\n </tfoot>\r\n }\r\n</ng-template>\r\n<ng-template\r\n #rowOlgoTemplate\r\n let-mo\r\n let-index=\"index\"\r\n let-columns=\"columns\"\r\n let-moDataListCount=\"moDataListCount\"\r\n let-moDataList=\"moDataList\"\r\n let-cartableTemplate=\"cartableTemplate\"\r\n let-secondaryColumns=\"secondaryColumns\"\r\n let-rowIndicatorColor=\"rowIndicatorColor\"\r\n let-rowNumber=\"rowNumber\"\r\n let-previewColumn=\"previewColumn\"\r\n let-detailsCollapsed=\"detailsCollapsed\"\r\n let-hideDetailsText=\"hideDetailsText\"\r\n>\r\n <bnrc-dynamic-item-component\r\n [component]=\"viewSetting.RowOlgo\"\r\n [mo]=\"mo\"\r\n [alternateRowMode]=\"alternateRowMode\"\r\n [columnsHyperLink]=\"columnsHyperLink\"\r\n [disableHyperLink]=\"disableHyperLink\"\r\n [alternateEditObjectColumn]=\"alternateEditObjectColumn\"\r\n [detailsCollapsed]=\"detailsCollapsed\"\r\n [hideDetailsText]=\"hideDetailsText\"\r\n [isLastChildGroup]=\"mo.$IsLastChildGroup\"\r\n [groupSummary]=\"groupSummary\"\r\n [showViewButton]=\"showViewButton\"\r\n [inlineEditWithoutSelection]=\"inlineEditWithoutSelection\"\r\n [UlvMainCtrlr]=\"UlvMainCtrlr\"\r\n [moDataList]=\"moDataList\"\r\n [showDetailsInRow]=\"showDetailsInRow\"\r\n [hideOpenIcon]=\"hideOpenIcon\"\r\n [detailsColumns]=\"detailsColumns\"\r\n [showRowNumber]=\"contextView?.Grid_ShowRowNumber\"\r\n [rowNumber]=\"rowNumber\"\r\n [columnComponents]=\"viewSetting?.ColumnComponents || null\"\r\n [cartableTemplate]=\"cartableTemplate\"\r\n [cartableMo]=\"mo.RelatedMo\"\r\n [dirtyColumns]=\"mo.$DirtyColumns\"\r\n [cartableWorkflowData]=\"mo.SerializedWorkflowData\"\r\n [serializedRelatedMo]=\"mo.SerializedRelatedMo\"\r\n [detailsText]=\"viewSetting?.DetailsSetting?.ButtonText\"\r\n [attachmentViewType]=\"viewSetting?.AttachmentViewType\"\r\n [detailsTextFunction]=\"viewSetting?.DetailsSetting?.ButtonTextFunction\"\r\n [detailsComponent]=\"detailsComponent\"\r\n [isChecked]=\"mo.$IsChecked\"\r\n [ility]=\"mo.$Visibility\"\r\n [expanded]=\"mo.$Expanded\"\r\n [styleIndex]=\"mo.$StyleIndex\"\r\n [level]=\"mo.$Level\"\r\n [parentExpanded]=\"mo.$Parent?.$Expanded\"\r\n [moDataListCount]=\"moDataListCount\"\r\n [columnsCount]=\"columnsCount - detailsColumns.length\"\r\n [typeDefId]=\"typeDefId\"\r\n [extraRelation]=\"extraRelation\"\r\n [formSetting]=\"formSetting\"\r\n [index]=\"index\"\r\n [setting]=\"viewSetting\"\r\n [secondaryColumns]=\"secondaryColumns | filterColumnsByDetails: detailsColumns:rowIndicator\"\r\n [columns]=\"columns | filterColumnsByDetails: detailsColumns:rowIndicator\"\r\n [isNewInlineMo]=\"mo.$NewInlineMo\"\r\n [access]=\"access\"\r\n [inlineEditMode]=\"inlineEditMode\"\r\n [allowInlineEdit]=\"allowInlineEdit\"\r\n [rtl]=\"rtl\"\r\n [deviceName]=\"deviceName\"\r\n [deviceSize]=\"deviceSize\"\r\n [allColumns]=\"allColumns\"\r\n [contextMenuItems]=\"contextMenuItems\"\r\n [canView]=\"canView\"\r\n [conditionalFormats]=\"conditionalFormats\"\r\n [disableOverflowContextMenu]=\"disableOverflowContextMenu\"\r\n [navigationArrow]=\"navigationArrow\"\r\n [isCheckList]=\"isCheckList\"\r\n [rowIndicator]=\"rowIndicator\"\r\n [rowIndicatorColor]=\"rowIndicatorColor\"\r\n (events)=\"onOlgoEvents($event)\"\r\n >\r\n </bnrc-dynamic-item-component>\r\n</ng-template>\r\n<ng-template\r\n #rowTemplate\r\n let-mo\r\n let-index=\"index\"\r\n let-rowNumber=\"rowNumber\"\r\n let-columns=\"columns\"\r\n let-moDataListCount=\"moDataListCount\"\r\n let-moDataList=\"moDataList\"\r\n let-cartableTemplate=\"cartableTemplate\"\r\n let-secondaryColumns=\"secondaryColumns\"\r\n let-rowIndicatorColor=\"rowIndicatorColor\"\r\n let-previewColumn=\"previewColumn\"\r\n let-detailsCollapsed=\"detailsCollapsed\"\r\n let-hideDetailsText=\"hideDetailsText\"\r\n>\r\n <bsu-barsa-table-row\r\n [allowRecordReorder]=\"allowRecordReorder\"\r\n (reorderMoved)=\"onRowReorderMoved($event)\"\r\n (reorderEnded)=\"onRowReorderEnded($event)\"\r\n [mo]=\"mo\"\r\n [alternateRowMode]=\"alternateRowMode\"\r\n [columnsHyperLink]=\"columnsHyperLink\"\r\n [disableHyperLink]=\"disableHyperLink\"\r\n [alternateEditObjectColumn]=\"alternateEditObjectColumn\"\r\n [dirtyColumns]=\"mo.$DirtyColumns\"\r\n [inlineEditWithoutSelection]=\"inlineEditWithoutSelection\"\r\n [isLastChildGroup]=\"mo.$IsLastChildGroup\"\r\n [moDataList]=\"moDataList\"\r\n [hideDetailsText]=\"hideDetailsText\"\r\n [detailsCollapsed]=\"detailsCollapsed\"\r\n [groupSummary]=\"groupSummary\"\r\n [UlvMainCtrlr]=\"UlvMainCtrlr\"\r\n [isMobile]=\"isMobile\"\r\n [showDetailsInRow]=\"showDetailsInRow\"\r\n [hideOpenIcon]=\"hideOpenIcon\"\r\n [showRowNumber]=\"contextView?.Grid_ShowRowNumber\"\r\n [attachmentViewType]=\"viewSetting?.AttachmentViewType\"\r\n [rowNumber]=\"rowNumber\"\r\n [disableEllapsis]=\"viewSetting?.DisableEllapsis\"\r\n [showViewButton]=\"showViewButton\"\r\n [detailsColumns]=\"detailsColumns\"\r\n [columnComponents]=\"viewSetting?.ColumnComponents || null\"\r\n [cartableTemplate]=\"cartableTemplate\"\r\n [cartableMo]=\"mo.RelatedMo\"\r\n [cartableWorkflowData]=\"mo.SerializedWorkflowData\"\r\n [serializedRelatedMo]=\"mo.SerializedRelatedMo\"\r\n [detailsText]=\"viewSetting?.DetailsSetting?.ButtonText\"\r\n [detailsComponent]=\"detailsComponent\"\r\n [isChecked]=\"mo.$IsChecked\"\r\n [visibility]=\"mo.$Visibility\"\r\n [expanded]=\"mo.$Expanded\"\r\n [styleIndex]=\"mo.$StyleIndex\"\r\n [level]=\"mo.$Level\"\r\n [parentExpanded]=\"mo.$Parent?.$Expanded\"\r\n [moDataListCount]=\"moDataListCount\"\r\n [columnsCount]=\"columnsCount - detailsColumns.length\"\r\n [typeDefId]=\"typeDefId\"\r\n [extraRelation]=\"extraRelation\"\r\n [formSetting]=\"formSetting\"\r\n [index]=\"index\"\r\n [setting]=\"viewSetting\"\r\n [checkboxComponent]=\"viewSetting?.CheckboxComponent\"\r\n [secondaryColumns]=\"\r\n secondaryColumns\r\n | filterColumnsByDetails: detailsColumns:false\r\n | filter: { IsPreview: false }\r\n | hideColumnsInmobile: viewSetting?.HideColumnsInMobile\r\n \"\r\n [columns]=\"\r\n columns\r\n | filterColumnsByDetails: detailsColumns:rowIndicator\r\n | filter: { IsPreview: false }\r\n | hideColumnsInmobile: viewSetting?.HideColumnsInMobile\r\n \"\r\n [isNewInlineMo]=\"mo.$NewInlineMo\"\r\n [access]=\"access\"\r\n [simpleInlineEdit]=\"simpleInlineEdit\"\r\n [noSaveInlineEditInServer]=\"simpleInlineEdit\"\r\n [actionList]=\"\r\n inlineEditMode\r\n | reportActionList: canView:hideOpenIcon:hasInlineEditButton:hasInlineDeleteButton:navigationArrow\r\n \"\r\n [inlineEditMode]=\"inlineEditMode\"\r\n [allowInlineEdit]=\"allowInlineEdit\"\r\n [rtl]=\"rtl\"\r\n [deviceName]=\"deviceName\"\r\n [deviceSize]=\"deviceSize\"\r\n [allColumns]=\"allColumns\"\r\n [contextMenuItems]=\"contextMenuItems\"\r\n [canView]=\"canView\"\r\n [conditionalFormats]=\"conditionalFormats\"\r\n [disableOverflowContextMenu]=\"disableOverflowContextMenu\"\r\n [navigationArrow]=\"navigationArrow\"\r\n [isCheckList]=\"isCheckList\"\r\n [rowIndicator]=\"rowIndicator\"\r\n [rowIndicatorColor]=\"rowIndicatorColor\"\r\n [freezeColumn]=\"frozenColumnName\"\r\n [previewColumn]=\"previewColumn\"\r\n (columnSummary)=\"columnSummary.emit($event)\"\r\n (resetWorkflowState)=\"resetWorkflowState.emit(mo)\"\r\n (escapeKey)=\"onEscapeKey($event)\"\r\n (expandClick)=\"onExpandClick($event)\"\r\n (rowCheck)=\"onRowCheck($event)\"\r\n (workflowShareButtons)=\"onWorkflowShareButtons($event)\"\r\n (deselectAll)=\"onDeselectAll()\"\r\n (rowClick)=\"onRowClick($event)\"\r\n (ulvCommand)=\"onUlvCommand($event)\"\r\n (actionListClick)=\"onActionListClick(mo, index, $event)\"\r\n (selectNextInlineRecord)=\"onSelectNextInlineRecord($event)\"\r\n (editFormPanelSave)=\"onEditFormPanelSave($event)\"\r\n (editFormPanelCancel)=\"onEditFormPanelCancel($event)\"\r\n (editFormPanelValueChange)=\"onEditFormPanelValueChange($event)\"\r\n (cartableFormClosed)=\"onCartableFormClosed($event)\"\r\n >\r\n </bsu-barsa-table-row>\r\n <!-- <div\r\n #rowBottom\r\n intersectionObserver\r\n [intersectionThreshold]=\"0.1\"\r\n (visibilityChange)=\"onRowVisibilityChange($event, index, rowBottom)\"\r\n ></div> -->\r\n</ng-template>\r\n<div #tableBottomObserve></div>\r\n", styles: [":host{display:block;width:100%;position:relative;padding-bottom:.2rem;overflow-x:auto;max-width:100vw}.table-fixed{table-layout:fixed}.table-fixed td{overflow:hidden}tr td{font-weight:inherit}::ng-deep span.fd-toolbar__spacer{display:none}.row-summary{position:relative}.row-summary td.frozen-column{position:sticky;inset-inline-start:0;z-index:1;background-color:var(--sapList_HeaderBackground)}.table-filler-spacer{visibility:hidden;pointer-events:none;position:absolute}.table-empty-filler{position:absolute;left:0;right:0;border:var(--sapList_BorderWidth) solid var(--sapList_BorderColor);border-top:none;background-color:var(--sapList_Background);pointer-events:none}\n"] }]
7248
+ }, template: "<table\r\n fd-table\r\n #tableTpl\r\n #headerBottomObserver\r\n [popIn]=\"popin\"\r\n [class.table-fixed]=\"\r\n !isMobile &&\r\n !contextView?.Grid_HideHeader &&\r\n (!popin || secondaryColumns.length === 0) &&\r\n !disableFixedTableLayout\r\n \"\r\n [noBorderX]=\"viewSetting?.NoHoriztonalBorders === true\"\r\n [noBorderY]=\"viewSetting?.NoVerticalBorders === true || (popin && secondaryColumns.length > 0)\"\r\n>\r\n @if (columns | mergeFieldsToColumns: viewSetting?.MergeFieldsToColumns?.MoDataList; as\r\n mergeFieldsToColumns) {\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n headerTemplate;\r\n context: { $implicit: mergeFieldsToColumns, moDataListCount: moDataList?.length }\r\n \"\r\n ></ng-container>\r\n @if (moDataList?.length) {\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n bodyTemplate;\r\n context: { $implicit: mergeFieldsToColumns, previewColumn: allColumns | findPreviewColumn }\r\n \"\r\n ></ng-container>\r\n <ng-container *ngTemplateOutlet=\"footerTemplate; context: { $implicit: mergeFieldsToColumns }\"></ng-container>\r\n } }\r\n</table>\r\n<!--renderColumn-->\r\n\r\n@if (_showFiller) {\r\n<!-- spacer: \u0641\u0636\u0627 \u062F\u0631 \u062C\u0631\u06CC\u0627\u0646 \u0639\u0627\u062F\u06CC \u062A\u0627 host \u0628\u0632\u0631\u06AF \u0628\u0634\u0647 -->\r\n<div class=\"table-filler-spacer\" [style.height]=\"_fillerHeight\"></div>\r\n<!-- \u0641\u06CC\u0644\u0631 \u0627\u0628\u0633\u0648\u0644\u0648\u062A: \u0632\u06CC\u0631 \u062A\u06CC\u0628\u0644 \u0628\u0627 margin-top \u0628\u0631\u0627\u0628\u0631 \u0627\u0631\u062A\u0641\u0627\u0639 \u0647\u062F\u0631 -->\r\n@if (!moDataList?.length) {\r\n<bsu-no-data\r\n [class.no-topborder]=\"!hideToolbar\"\r\n [class.noborder]=\"contextView.Grid_HideHeader && hideToolbar\"\r\n [simple]=\"true\"\r\n>\r\n</bsu-no-data>\r\n} }\r\n\r\n<ng-template #headerTemplate let-columns let-moDataListCount>\r\n <bsu-barsa-table-header\r\n [allowRecordReorder]=\"allowRecordReorder\"\r\n [sticky]=\"stickyEnable() || isReportPage\"\r\n [hasSecondaryColumns]=\"secondaryColumns.length > 0\"\r\n [class.has-toolbar]=\"!hideToolbar\"\r\n [style.pointer-events]=\"moDataListCount ? 'auto' : 'none'\"\r\n [tableWidth]=\"elWidth\"\r\n [showDetailsInRow]=\"showDetailsInRow\"\r\n [hideOpenIcon]=\"hideOpenIcon\"\r\n [resizedByUser]=\"resizedByUser\"\r\n [tableHeaderMode]=\"tableHeaderMode\"\r\n [isMobile]=\"isMobile\"\r\n [attachmentViewType]=\"viewSetting?.AttachmentViewType\"\r\n [showRowNumber]=\"contextView?.Grid_ShowRowNumber\"\r\n [allChecked]=\"allChecked\"\r\n [rtl]=\"rtl\"\r\n [actionList]=\"\r\n inlineEditMode\r\n | reportActionList: canView:hideOpenIcon:hasInlineEditButton:hasInlineDeleteButton:navigationArrow\r\n \"\r\n [disableResponsive]=\"disableResponsive\"\r\n [isCheckList]=\"isCheckList\"\r\n [columns]=\"\r\n columns\r\n | filterColumnsByDetails: detailsColumns:rowIndicator\r\n | filter: { IsPreview: false }\r\n | hideColumnsInmobile: viewSetting?.HideColumnsInMobile\r\n \"\r\n [fitWidth]=\"fitWidth\"\r\n [disableOverflowContextMenu]=\"disableOverflowContextMenu\"\r\n [inlineEditMode]=\"inlineEditMode\"\r\n [contextMenuItems]=\"contextMenuItems\"\r\n [contextMenuWidth]=\"contextMenuWidth\"\r\n [showViewButton]=\"showViewButton\"\r\n [deviceSize]=\"deviceSize\"\r\n [viewSetting]=\"viewSetting\"\r\n [hideHeader]=\"contextView.Grid_HideHeader\"\r\n [rowIndicator]=\"rowIndicator\"\r\n [disableResize]=\"disableResize\"\r\n [disableHeaderContextMenu]=\"disableHeaderContextMenu\"\r\n [freezeColumn]=\"frozenColumnName\"\r\n (headerRender)=\"onSetTableHeaderDom($event)\"\r\n (columnResize)=\"onColumnResized($event)\"\r\n (columnResizing)=\"onColumnResizing($event)\"\r\n (fitToContent)=\"onFitToContent($event)\"\r\n (fitToContainer)=\"onFitToContainer()\"\r\n (freeColumnSize)=\"onFreeColumnSizing()\"\r\n (allCheckbox)=\"onAllCheckbox($event)\"\r\n (sortAscending)=\"onSortAscending($event)\"\r\n (sortDescending)=\"onSortDescending($event)\"\r\n (filter)=\"onFilter($event)\"\r\n (resetGridSettings)=\"resetGridSettings.emit()\"\r\n ></bsu-barsa-table-header>\r\n <!-- <div\r\n #headerBottomObserver\r\n intersectionObserver\r\n [intersectionThreshold]=\"0.1\"\r\n (visibilityChange)=\"onHeaderVisibilityChange($event, headerBottomObserver)\"\r\n ></div> -->\r\n</ng-template>\r\n<ng-template #bodyTemplate let-columns let-previewColumn=\"previewColumn\">\r\n <tbody\r\n #body\r\n fd-table-body\r\n [class.noborder]=\"viewSetting?.NoBodyBorders === true\"\r\n [noBorderX]=\"viewSetting?.NoHoriztonalBorders === true || previewColumn\"\r\n [noBorderY]=\"(popin && secondaryColumns.length > 0) || previewColumn\"\r\n >\r\n <ng-container>\r\n @for (mo of moDataList | multipleGroupBy: groupby; track _trackByRow(index, mo); let index = $index; let last = $last) {\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n hasRowOlgo ? rowOlgoTemplate : rowTemplate;\r\n context: {\r\n $implicit: mo,\r\n index: index,\r\n rowNumber: mo.Id | rowNumber: pagingSetting:moDataList,\r\n rowIndicatorColor: !columns.length ? '' : (columns[0].Caption | rval: mo:columns),\r\n columns:\r\n columns\r\n | columnCustomComponent\r\n : viewSetting?.ColumnComponents?.MoDataList,\r\n secondaryColumns:\r\n secondaryColumns\r\n | columnCustomComponent\r\n : viewSetting?.ColumnComponents?.MoDataList,\r\n moDataList: moDataList,\r\n moDataListCount: moDataList.length,\r\n cartableTemplate: cartableTemplates[mo.RelatedMo?.$TypeDefId + '@' + mo.CartableSettings?.Id],\r\n previewColumn: previewColumn,\r\n detailsCollapsed: viewSetting?.DetailsSetting?.DetailsCollapsed === true,\r\n hideDetailsText: viewSetting?.DetailsSetting?.HideDetailsText === true,\r\n last:last\r\n }\r\n \"\r\n ></ng-container>\r\n }\r\n </ng-container>\r\n </tbody>\r\n</ng-template>\r\n<ng-template #footerTemplate let-columns>\r\n @if (hasSummary) {\r\n <tfoot fd-table-footer>\r\n <tr fd-table-row class=\"row-summary\">\r\n @if (isCheckList) {\r\n <td fd-table-cell columnResizer class=\"!tw-border-none\">\r\n <strong class=\"tw-absolute !tw-text-xs tw-top-0 tw-left-2 tw-right-2 tw-bottom-0\">{{\r\n 'Total' | bbbTranslate\r\n }}</strong>\r\n </td>\r\n } @if (!isCheckList) {\r\n <td fd-table-cell class=\"single-select\" class=\"!tw-border-none\">\r\n <strong class=\"tw-absolute !tw-text-xs tw-top-0 tw-left-2 tw-right-2 tw-bottom-0\">{{\r\n 'Total' | bbbTranslate\r\n }}</strong>\r\n </td>\r\n } @for (column of columns; track column; let i = $index) {\r\n <td [class.frozen-column]=\"column.Name === frozenColumnName\">\r\n @if (column.HasSummary) {\r\n <strong style=\"direction: ltr; display: block\" [style.text-align]=\"rtl ? 'right' : 'left'\">\r\n {{ moDataList | totalSummary: column.Name | number }}</strong\r\n >\r\n }\r\n </td>\r\n } @if (contextMenuItems && contextMenuItems.length > 0) {\r\n <td fd-table-cell style=\"width: 100px\"></td>\r\n } @if (!hideOpenIcon && canView && (!inlineEditMode || !allowInlineEdit)) {\r\n <td fd-table-cell></td>\r\n }\r\n </tr>\r\n </tfoot>\r\n }\r\n</ng-template>\r\n<ng-template\r\n #rowOlgoTemplate\r\n let-mo\r\n let-index=\"index\"\r\n let-columns=\"columns\"\r\n let-moDataListCount=\"moDataListCount\"\r\n let-moDataList=\"moDataList\"\r\n let-cartableTemplate=\"cartableTemplate\"\r\n let-secondaryColumns=\"secondaryColumns\"\r\n let-rowIndicatorColor=\"rowIndicatorColor\"\r\n let-rowNumber=\"rowNumber\"\r\n let-previewColumn=\"previewColumn\"\r\n let-detailsCollapsed=\"detailsCollapsed\"\r\n let-hideDetailsText=\"hideDetailsText\"\r\n let-last=\"last\"\r\n>\r\n <bnrc-dynamic-item-component\r\n [component]=\"viewSetting.RowOlgo\"\r\n [mo]=\"mo\"\r\n [last]=\"last\"\r\n [alternateRowMode]=\"alternateRowMode\"\r\n [columnsHyperLink]=\"columnsHyperLink\"\r\n [disableHyperLink]=\"disableHyperLink\"\r\n [alternateEditObjectColumn]=\"alternateEditObjectColumn\"\r\n [detailsCollapsed]=\"detailsCollapsed\"\r\n [hideDetailsText]=\"hideDetailsText\"\r\n [isLastChildGroup]=\"mo.$IsLastChildGroup\"\r\n [groupSummary]=\"groupSummary\"\r\n [showViewButton]=\"showViewButton\"\r\n [inlineEditWithoutSelection]=\"inlineEditWithoutSelection\"\r\n [UlvMainCtrlr]=\"UlvMainCtrlr\"\r\n [moDataList]=\"moDataList\"\r\n [showDetailsInRow]=\"showDetailsInRow\"\r\n [hideOpenIcon]=\"hideOpenIcon\"\r\n [detailsColumns]=\"detailsColumns\"\r\n [showRowNumber]=\"contextView?.Grid_ShowRowNumber\"\r\n [rowNumber]=\"rowNumber\"\r\n [columnComponents]=\"viewSetting?.ColumnComponents || null\"\r\n [cartableTemplate]=\"cartableTemplate\"\r\n [cartableMo]=\"mo.RelatedMo\"\r\n [dirtyColumns]=\"mo.$DirtyColumns\"\r\n [cartableWorkflowData]=\"mo.SerializedWorkflowData\"\r\n [serializedRelatedMo]=\"mo.SerializedRelatedMo\"\r\n [detailsText]=\"viewSetting?.DetailsSetting?.ButtonText\"\r\n [attachmentViewType]=\"viewSetting?.AttachmentViewType\"\r\n [detailsTextFunction]=\"viewSetting?.DetailsSetting?.ButtonTextFunction\"\r\n [detailsComponent]=\"detailsComponent\"\r\n [isChecked]=\"mo.$IsChecked\"\r\n [ility]=\"mo.$Visibility\"\r\n [expanded]=\"mo.$Expanded\"\r\n [styleIndex]=\"mo.$StyleIndex\"\r\n [level]=\"mo.$Level\"\r\n [parentExpanded]=\"mo.$Parent?.$Expanded\"\r\n [moDataListCount]=\"moDataListCount\"\r\n [columnsCount]=\"columnsCount - detailsColumns.length\"\r\n [typeDefId]=\"typeDefId\"\r\n [extraRelation]=\"extraRelation\"\r\n [formSetting]=\"formSetting\"\r\n [index]=\"index\"\r\n [setting]=\"viewSetting\"\r\n [secondaryColumns]=\"secondaryColumns | filterColumnsByDetails: detailsColumns:rowIndicator\"\r\n [columns]=\"columns | filterColumnsByDetails: detailsColumns:rowIndicator\"\r\n [isNewInlineMo]=\"mo.$NewInlineMo\"\r\n [access]=\"access\"\r\n [inlineEditMode]=\"inlineEditMode\"\r\n [allowInlineEdit]=\"allowInlineEdit\"\r\n [rtl]=\"rtl\"\r\n [deviceName]=\"deviceName\"\r\n [deviceSize]=\"deviceSize\"\r\n [allColumns]=\"allColumns\"\r\n [contextMenuItems]=\"contextMenuItems\"\r\n [canView]=\"canView\"\r\n [conditionalFormats]=\"conditionalFormats\"\r\n [disableOverflowContextMenu]=\"disableOverflowContextMenu\"\r\n [navigationArrow]=\"navigationArrow\"\r\n [isCheckList]=\"isCheckList\"\r\n [rowIndicator]=\"rowIndicator\"\r\n [rowIndicatorColor]=\"rowIndicatorColor\"\r\n (events)=\"onOlgoEvents($event)\"\r\n >\r\n </bnrc-dynamic-item-component>\r\n</ng-template>\r\n<ng-template\r\n #rowTemplate\r\n let-mo\r\n let-index=\"index\"\r\n let-rowNumber=\"rowNumber\"\r\n let-columns=\"columns\"\r\n let-moDataListCount=\"moDataListCount\"\r\n let-moDataList=\"moDataList\"\r\n let-cartableTemplate=\"cartableTemplate\"\r\n let-secondaryColumns=\"secondaryColumns\"\r\n let-rowIndicatorColor=\"rowIndicatorColor\"\r\n let-previewColumn=\"previewColumn\"\r\n let-detailsCollapsed=\"detailsCollapsed\"\r\n let-hideDetailsText=\"hideDetailsText\"\r\n let-last=\"last\"\r\n>\r\n <bsu-barsa-table-row\r\n [allowRecordReorder]=\"allowRecordReorder\"\r\n (reorderMoved)=\"onRowReorderMoved($event)\"\r\n (reorderEnded)=\"onRowReorderEnded($event)\"\r\n [mo]=\"mo\"\r\n [last]=\"last\"\r\n [alternateRowMode]=\"alternateRowMode\"\r\n [columnsHyperLink]=\"columnsHyperLink\"\r\n [disableHyperLink]=\"disableHyperLink\"\r\n [alternateEditObjectColumn]=\"alternateEditObjectColumn\"\r\n [dirtyColumns]=\"mo.$DirtyColumns\"\r\n [inlineEditWithoutSelection]=\"inlineEditWithoutSelection\"\r\n [isLastChildGroup]=\"mo.$IsLastChildGroup\"\r\n [moDataList]=\"moDataList\"\r\n [hideDetailsText]=\"hideDetailsText\"\r\n [detailsCollapsed]=\"detailsCollapsed\"\r\n [groupSummary]=\"groupSummary\"\r\n [UlvMainCtrlr]=\"UlvMainCtrlr\"\r\n [isMobile]=\"isMobile\"\r\n [showDetailsInRow]=\"showDetailsInRow\"\r\n [hideOpenIcon]=\"hideOpenIcon\"\r\n [showRowNumber]=\"contextView?.Grid_ShowRowNumber\"\r\n [attachmentViewType]=\"viewSetting?.AttachmentViewType\"\r\n [rowNumber]=\"rowNumber\"\r\n [disableEllapsis]=\"viewSetting?.DisableEllapsis\"\r\n [showViewButton]=\"showViewButton\"\r\n [detailsColumns]=\"detailsColumns\"\r\n [columnComponents]=\"viewSetting?.ColumnComponents || null\"\r\n [cartableTemplate]=\"cartableTemplate\"\r\n [cartableMo]=\"mo.RelatedMo\"\r\n [cartableWorkflowData]=\"mo.SerializedWorkflowData\"\r\n [serializedRelatedMo]=\"mo.SerializedRelatedMo\"\r\n [detailsText]=\"viewSetting?.DetailsSetting?.ButtonText\"\r\n [detailsComponent]=\"detailsComponent\"\r\n [isChecked]=\"mo.$IsChecked\"\r\n [visibility]=\"mo.$Visibility\"\r\n [expanded]=\"mo.$Expanded\"\r\n [styleIndex]=\"mo.$StyleIndex\"\r\n [level]=\"mo.$Level\"\r\n [parentExpanded]=\"mo.$Parent?.$Expanded\"\r\n [moDataListCount]=\"moDataListCount\"\r\n [columnsCount]=\"columnsCount - detailsColumns.length\"\r\n [typeDefId]=\"typeDefId\"\r\n [extraRelation]=\"extraRelation\"\r\n [formSetting]=\"formSetting\"\r\n [index]=\"index\"\r\n [setting]=\"viewSetting\"\r\n [checkboxComponent]=\"viewSetting?.CheckboxComponent\"\r\n [secondaryColumns]=\"\r\n secondaryColumns\r\n | filterColumnsByDetails: detailsColumns:false\r\n | filter: { IsPreview: false }\r\n | hideColumnsInmobile: viewSetting?.HideColumnsInMobile\r\n \"\r\n [columns]=\"\r\n columns\r\n | filterColumnsByDetails: detailsColumns:rowIndicator\r\n | filter: { IsPreview: false }\r\n | hideColumnsInmobile: viewSetting?.HideColumnsInMobile\r\n \"\r\n [isNewInlineMo]=\"mo.$NewInlineMo\"\r\n [access]=\"access\"\r\n [simpleInlineEdit]=\"simpleInlineEdit\"\r\n [noSaveInlineEditInServer]=\"simpleInlineEdit\"\r\n [actionList]=\"\r\n inlineEditMode\r\n | reportActionList: canView:hideOpenIcon:hasInlineEditButton:hasInlineDeleteButton:navigationArrow\r\n \"\r\n [inlineEditMode]=\"inlineEditMode\"\r\n [allowInlineEdit]=\"allowInlineEdit\"\r\n [rtl]=\"rtl\"\r\n [deviceName]=\"deviceName\"\r\n [deviceSize]=\"deviceSize\"\r\n [allColumns]=\"allColumns\"\r\n [contextMenuItems]=\"contextMenuItems\"\r\n [canView]=\"canView\"\r\n [conditionalFormats]=\"conditionalFormats\"\r\n [disableOverflowContextMenu]=\"disableOverflowContextMenu\"\r\n [navigationArrow]=\"navigationArrow\"\r\n [isCheckList]=\"isCheckList\"\r\n [rowIndicator]=\"rowIndicator\"\r\n [rowIndicatorColor]=\"rowIndicatorColor\"\r\n [freezeColumn]=\"frozenColumnName\"\r\n [previewColumn]=\"previewColumn\"\r\n (columnSummary)=\"columnSummary.emit($event)\"\r\n (resetWorkflowState)=\"resetWorkflowState.emit(mo)\"\r\n (escapeKey)=\"onEscapeKey($event)\"\r\n (expandClick)=\"onExpandClick($event)\"\r\n (rowCheck)=\"onRowCheck($event)\"\r\n (workflowShareButtons)=\"onWorkflowShareButtons($event)\"\r\n (deselectAll)=\"onDeselectAll()\"\r\n (rowClick)=\"onRowClick($event)\"\r\n (ulvCommand)=\"onUlvCommand($event)\"\r\n (actionListClick)=\"onActionListClick(mo, index, $event)\"\r\n (selectNextInlineRecord)=\"onSelectNextInlineRecord($event)\"\r\n (editFormPanelSave)=\"onEditFormPanelSave($event)\"\r\n (editFormPanelCancel)=\"onEditFormPanelCancel($event)\"\r\n (editFormPanelValueChange)=\"onEditFormPanelValueChange($event)\"\r\n (cartableFormClosed)=\"onCartableFormClosed($event)\"\r\n >\r\n </bsu-barsa-table-row>\r\n <!-- <div\r\n #rowBottom\r\n intersectionObserver\r\n [intersectionThreshold]=\"0.1\"\r\n (visibilityChange)=\"onRowVisibilityChange($event, index, rowBottom)\"\r\n ></div> -->\r\n</ng-template>\r\n<div #tableBottomObserve></div>\r\n", styles: [":host{display:block;width:100%;position:relative;padding-bottom:.2rem;overflow-x:auto;max-width:100vw}.table-fixed{table-layout:fixed}.table-fixed td{overflow:hidden}tr td{font-weight:inherit}::ng-deep span.fd-toolbar__spacer{display:none}.row-summary{position:relative}.row-summary td.frozen-column{position:sticky;inset-inline-start:0;z-index:1;background-color:var(--sapList_HeaderBackground)}.table-filler-spacer{visibility:hidden;pointer-events:none;position:absolute}.table-empty-filler{position:absolute;left:0;right:0;border:var(--sapList_BorderWidth) solid var(--sapList_BorderColor);border-top:none;background-color:var(--sapList_Background);pointer-events:none}\n"] }]
7218
7249
  }], propDecorators: { _tableRef: [{
7219
7250
  type: ViewChild,
7220
7251
  args: ['tableTpl', { static: true, read: ElementRef }]
@@ -10702,7 +10733,7 @@ class FundamentalDynamicFormComponent extends BaseComponent {
10702
10733
  }
10703
10734
  }
10704
10735
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: FundamentalDynamicFormComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
10705
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.8", type: FundamentalDynamicFormComponent, isStandalone: false, selector: "bsu-fundamental-dynamic-form", inputs: { breadCrumbs: "breadCrumbs", toolbarVisible: "toolbarVisible", toolbarItems: "toolbarItems", layoutActions: "layoutActions", layout94: "layout94", parameters: "parameters", workflowPanelUi: "workflowPanelUi", context: "context", title: "title", subtitle: "subtitle", description: "description", facetList: "facetList", infobars: "infobars", fieldDict: "fieldDict", removeHeaderBorder: "removeHeaderBorder", removeContentPadding: "removeContentPadding", isMobile: "isMobile", mo: "mo", avatar: "avatar", circleAvatar: "circleAvatar", hideBreadCrumb: "hideBreadCrumb", rtl: "rtl", hideFooter: "hideFooter", hideTitle: "hideTitle", hideClose: "hideClose", hidePin: "hidePin", fullscreen: "fullscreen", mask: "mask", canSend: "canSend", contentIsPage: "contentIsPage", contentDensity: "contentDensity", deviceSize: "deviceSize", dirValue: "dirValue", landscape: "landscape", standalone: "standalone", modernTabs: "modernTabs", selectedTabPageName: "selectedTabPageName", modernTabContainerComponent: "modernTabContainerComponent", layoutGridCol: "layoutGridCol", colLg: "colLg", colXl: "colXl", colMd: "colMd", footerDesign: "footerDesign", formContentMaxWidth: "formContentMaxWidth", formContentJustify: "formContentJustify", workflowButtons: "workflowButtons" }, outputs: { toolbarClick: "toolbarClick", workflowChoiceClick: "workflowChoiceClick", close: "close", fullscreenRequest: "fullscreenRequest", dismissInfobar: "dismissInfobar" }, viewQueries: [{ propertyName: "_dynamicPageComponent", first: true, predicate: DynamicPageComponent, descendants: true, static: true }, { propertyName: "_toolbarComponent", first: true, predicate: ["formToolbar"], descendants: true }, { propertyName: "titleRef", first: true, predicate: ["titleRef"], descendants: true, read: ViewContainerRef }, { propertyName: "headerAvatarRef", first: true, predicate: ["headerAvatar"], descendants: true }, { propertyName: "closeFormTemplate", first: true, predicate: ["closeForm"], descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: "@if (mask) {\r\n<div style=\"position: absolute; top: 0; left: 0; width: 100%; height: 100%\">\r\n <bsu-mask size=\"m\"></bsu-mask>\r\n</div>\r\n}\r\n\r\n<fd-dynamic-page\r\n [size]=\"isMobile ? 'small' : 'large'\"\r\n [ngClass]=\"{ 'floating-footer': footerDesign === 'floating-footer' }\"\r\n [class.header-border]=\"!removeHeaderBorder\"\r\n [attr.isMobile]=\"isMobile\"\r\n [attr.contentIsPage]=\"contentIsPage\"\r\n mobile\r\n formClose\r\n [isMobile]=\"isMobile\"\r\n>\r\n <fd-dynamic-page-header\r\n [class.simple-title]=\"!description\"\r\n [title]=\"(hideTitle === true ? '' : title) | bbbTranslate\"\r\n [class.notitle]=\"title.length < 2 || hideTitle\"\r\n [class.p-b0]=\"removeContentPadding\"\r\n [class.hide-title]=\"hideTitle === true && hideClose === true\"\r\n [class.hide-breadcrumb]=\"hideBreadCrumb\"\r\n [class.no-toolbar-items]=\"!(toolbarItems | filterWorkflowInMobile: worfklowButtonsOnFooter)?.length\"\r\n [mWidthTitle]=\"title\"\r\n #titleRef\r\n >\r\n <fd-dynamic-page-breadcrumb\r\n [class.hide]=\"isMobile || hideBreadCrumb\"\r\n *ngIf=\"breadCrumbs?.length; else noBreadcrumbs\"\r\n >\r\n <fd-breadcrumb>\r\n @if (breadCrumbs && !isMobile) { @for (breadCrumb of breadCrumbs | slice: 0:breadCrumbs.length; track\r\n trackBreadCrumb($index, breadCrumb); let i = $index; let last = $last) { @if(i>0) {\r\n <fd-breadcrumb-item>\r\n <bsu-breadcrumb\r\n [index]=\"i\"\r\n [isLast]=\"last\"\r\n [breadCrumb]=\"breadCrumb\"\r\n [allBreadCrumb]=\"breadCrumbs\"\r\n ></bsu-breadcrumb>\r\n </fd-breadcrumb-item>\r\n } }}\r\n </fd-breadcrumb>\r\n </fd-dynamic-page-breadcrumb>\r\n <ng-template #noBreadcrumbs></ng-template>\r\n <fd-dynamic-page-global-actions>\r\n <!-- global actions -->\r\n\r\n <fd-toolbar [shouldOverflow]=\"true\" Style=\"display:none\"> </fd-toolbar>\r\n <!-- added this because in mobile landscape toolbar disapper -->\r\n @if (toolbarVisible) {\r\n <bsu-form-toolbar\r\n [deviceSize]=\"deviceSize\"\r\n [buttons]=\"toolbarItems | filterWorkflowInMobile: worfklowButtonsOnFooter\"\r\n [dirValue]=\"dirValue\"\r\n [isFirefox]=\"isFirefox\"\r\n (toolbarClick)=\"toolbarClick.emit($event)\"\r\n #formToolbar\r\n ></bsu-form-toolbar>\r\n }\r\n </fd-dynamic-page-global-actions>\r\n <fd-dynamic-page-layout-actions>\r\n <!-- layout actions -->\r\n <!-- <div [formActions]=\"this.toolbar\"></div> -->\r\n @if (!hideClose) {\r\n <fd-toolbar fdType=\"transparent\" [clearBorder]=\"true\">\r\n @if (deviceSize !== 's') {\r\n <fd-toolbar-separator></fd-toolbar-separator>\r\n }\r\n <ng-container *ngTemplateOutlet=\"fullscreenForm\"></ng-container>\r\n <ng-container *ngTemplateOutlet=\"closeForm\"></ng-container>\r\n </fd-toolbar>\r\n }\r\n </fd-dynamic-page-layout-actions>\r\n </fd-dynamic-page-header>\r\n @if (description || facetList.length > 0 || workflowInfoText || avatar || infobars?.length) {}\r\n <fd-dynamic-page-subheader\r\n [class.header-no-description]=\"!(description || workflowInfoText || infobars?.length)\"\r\n [class.no-pin]=\"hidePin || (!facetList?.length && !workflowInfoText && !infobars?.length)\"\r\n [collapsible]=\"!hidePin\"\r\n [pinnable]=\"false\"\r\n [collapsed]=\"!facetList?.length && !workflowInfoText && !infobars?.length\"\r\n >\r\n @if (workflowInfoText) {\r\n <fd-message-strip\r\n [type]=\"'warning'\"\r\n [dismissible]=\"false\"\r\n [innerHtml]=\"workflowInfoText | bbbTranslate | sanitizeText\"\r\n >\r\n </fd-message-strip>\r\n }\r\n <bsu-barsa-infobars [infobars]=\"infobars\" (dismiss)=\"dismissInfobar.emit($event)\"></bsu-barsa-infobars>\r\n <fd-facet-group ariaLabel=\"Facet Group\">\r\n @if (avatar) {\r\n <fd-facet type=\"image\">\r\n <fd-avatar\r\n title=\"avatar\"\r\n [glyph]=\"avatar\"\r\n [image]=\"\r\n !avatar?.FileId ? null : (avatar?.FileId | picFieldSrc: 'ID':null)\r\n \"\r\n [size]=\"deviceSize === 'xl' ? 'l' : deviceSize\"\r\n [transparent]=\"true\"\r\n [circle]=\"circleAvatar\"\r\n ></fd-avatar>\r\n <!-- <div\r\n class=\"fd-avatar fd-avatar--circle\"\r\n [class]=\"'fd-avatar--' + (deviceSize === 'xl' ? 'l' : deviceSize)\"\r\n >\r\n <i *ngIf=\"avatar\" class=\"fd-avatar__icon\" [class]=\"avatar | sapFontClass\" role=\"presentation\"> </i>\r\n </div> -->\r\n </fd-facet>\r\n } @for (facet of facetList; track facet) {\r\n <fd-facet\r\n [type]=\"facet.type\"\r\n [facetTitle]=\"facet.mo.Title | bbbTranslate\"\r\n [subtitle]=\"facet.mo.SubTitle | facetValue | bbbTranslate\"\r\n >\r\n @for (item of facet.mo.ItemList?.MoDataList; track item) {\r\n <fd-facet-content>\r\n <label fd-form-label [colon]=\"true\" for=\"form-value-10\">{{ item.Title | bbbTranslate }}</label>\r\n <fd-text [text]=\"item.Value | facetValue | bbbTranslate\" id=\"form-value-10\"></fd-text>\r\n </fd-facet-content>\r\n } @if ( !facet.mo.IsNumber && facet.type === 'key-value' && !facet.mo.Component?.Selector) {\r\n <span\r\n fd-object-status\r\n [status]=\"facet.mo.Status | facetValue\"\r\n [label]=\"facet.mo.Component?.Selector ? '' : (facet.mo.Text | facetValue | bbbTranslate)\"\r\n [large]=\"facet.mo.IsLarge\"\r\n [title]=\"facet.mo.Text | facetValue | bbbTranslate\"\r\n [aria-label]=\"facet.mo.Text | facetValue | bbbTranslate\"\r\n [glyph]=\"facet.mo.Icon\"\r\n >\r\n </span>\r\n } @else {\r\n <bnrc-dynamic-component\r\n [class]=\"'fd-object-status fd-object-status--' + facet.mo.Status | facetValue\"\r\n [class.fd-object-status--large]=\"facet.mo.IsLarge\"\r\n [component]=\"facet.mo.Component\"\r\n [value]=\"facet.mo.Text | bbbTranslate\"\r\n ></bnrc-dynamic-component>\r\n } @if (facet.mo.IsNumber && facet.type === 'key-value') {\r\n <fd-object-number\r\n [number]=\"facet.mo.Text | facetValue\"\r\n [large]=\"facet.mo.IsLarge\"\r\n [unit]=\"facet.mo.Unit | facetValue | bbbTranslate\"\r\n [status]=\"facet.mo.Status | facetValue\"\r\n [decimal]=\"facet.mo.DecimalValue | facetValue\"\r\n ></fd-object-number>\r\n } @if (facet.type === 'plain-text') {\r\n <div [style.width.px]=\"facet.mo.Width\" style=\"white-space: normal\">\r\n <fd-text [text]=\"facet.mo.Text | facetValue | bbbTranslate\" hyphenation=\"auto\"></fd-text>\r\n </div>\r\n } @if (facet.type === 'rating-indicator') {\r\n <fd-facet-content>\r\n <fd-rating-indicator\r\n style=\"pointer-events: none\"\r\n size=\"md\"\r\n [dynamicTextIndicator]=\"facet.mo.Footer | bbbTranslate\"\r\n [displayMode]=\"true\"\r\n [value]=\"facet.mo | facetValue: facet.type\"\r\n ></fd-rating-indicator>\r\n </fd-facet-content>\r\n } @if (facet.type === 'progress') {\r\n <div [style.width]=\"'10rem'\">\r\n <!-- <span fd-form-label>{{ facet.mo.Subtitle | facetValue }}</span> -->\r\n <fd-progress-indicator\r\n class=\"facet-progress\"\r\n style=\"width: 10r em\"\r\n [state]=\"facet.mo.State\"\r\n [valueText]=\"(facet.mo | facetValue: facet.type) + ' \u0627\u0632 10 \u0645\u0631\u062D\u0644\u0647' | bbbTranslate\"\r\n [valueNow]=\"facet.mo | facetValue: facet.type\"\r\n [valueMax]=\"10\"\r\n [unit]=\"'\u0645\u0631\u062D\u0644\u0647'\"\r\n ></fd-progress-indicator>\r\n <!-- <ui5-progress-indicator\r\n style=\"width: 10rem\"\r\n [valueState]=\"facet.mo.State\"\r\n [value]=\"getNumber(facet.mo.Value)\"\r\n ></ui5-progress-indicator> -->\r\n </div>\r\n } @if (facet.type === 'microcharts') {\r\n <div>\r\n <label wrap>in progress ...</label>\r\n </div>\r\n }\r\n </fd-facet>\r\n }\r\n </fd-facet-group>\r\n @if (description) {\r\n <span>{{ description | bbbTranslate }}</span>\r\n }\r\n </fd-dynamic-page-subheader>\r\n @if((!modernTabs.length && !contentIsPage) || (modernTabs.length && !contentIsPage && parameters?.LayoutComponent))\r\n {\r\n <fd-dynamic-page-content\r\n [style.justify-content]=\"formContentJustify\"\r\n [class.limit-content-width]=\"formContentMaxWidth > 0\"\r\n cdkScrollable\r\n >\r\n <fd-layout-grid class=\"!tw-p-0\" style=\"min-height: 100%\" [style.max-width.px]=\"formContentMaxWidth\">\r\n <div fdLayoutGridRow class=\"!tw-p-0\">\r\n <div\r\n class=\"!tw-p-0\"\r\n [class.hide]=\"layout2.colXl === 0\"\r\n [class.hide]=\"disableGrid\"\r\n [fdLayoutGridCol]=\"0\"\r\n [colMd]=\"layout1.colMd\"\r\n [colLg]=\"layout1.colLg\"\r\n [colXl]=\"layout1.colXl\"\r\n ></div>\r\n <div class=\"!tw-p-0\" [fdLayoutGridCol]=\"12\" [colMd]=\"colMd\" [colLg]=\"colLg\" [colXl]=\"colXl\">\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n parameters?.LayoutComponent ? renderLayoutComponent : renderDefaultLayout;\r\n context: {\r\n $implicit: parameters?.LayoutComponent,\r\n layout94: layout94\r\n }\r\n \"\r\n ></ng-container>\r\n </div>\r\n <div\r\n class=\"!tw-p-0\"\r\n [class.hide]=\"disableGrid\"\r\n [class.hide]=\"layout2.colXl === 0\"\r\n [fdLayoutGridCol]=\"0\"\r\n [colMd]=\"layout2.colMd\"\r\n [colLg]=\"layout2.colLg\"\r\n [colXl]=\"layout2.colXl\"\r\n ></div>\r\n </div>\r\n </fd-layout-grid>\r\n </fd-dynamic-page-content>\r\n } @else if(modernTabs.length && !contentIsPage && !parameters?.LayoutComponent){\r\n <fdp-icon-tab-bar\r\n #tabListComponent\r\n [stackContent]=\"false\"\r\n [collapseOverflow]=\"true\"\r\n [expandOverflowText]=\"'More' | bbbTranslate\"\r\n [iconTabType]=\"modernTabContainerComponent?.Settings?.TabType.$Caption || 'text'\"\r\n [layoutMode]=\"modernTabContainerComponent?.Settings?.LayoutMode$Caption\"\r\n fixMore\r\n >\r\n @for (tab of modernTabs; track tab.Title; let i = $index) {\r\n <fdp-icon-tab-bar-tab\r\n [id]=\"tab.ControlId\"\r\n [active]=\"selectedTabPageName === tab.ControlId\"\r\n [label]=\"tab.Title!! | bbbTranslate\"\r\n [title]=\"tab.Title!! | bbbTranslate\"\r\n [color]=\"tab.SemanticColor?.$Caption\"\r\n [icon]=\"tab.FontIcon\"\r\n [iconFont]=\"tab.IconFontName?.$Caption\"\r\n [counter]=\"tab.CustomUi?.Settings?.CounterValue\"\r\n [class.is-expanded]=\"selectedTab === tab.Title\"\r\n #tablist\r\n >\r\n <fd-dynamic-page-content\r\n [id]=\"tab.id\"\r\n [style.justify-content]=\"formContentJustify\"\r\n [class.limit-content-width]=\"formContentMaxWidth > 0\"\r\n >\r\n <fd-layout-grid [style.max-width.px]=\"formContentMaxWidth\" class=\"!tw-p-0\">\r\n <div fdLayoutGridRow>\r\n <div\r\n class=\"!tw-p-0\"\r\n [fdLayoutGridCol]=\"0\"\r\n [colMd]=\"layout1.colMd\"\r\n [colLg]=\"layout1.colLg\"\r\n [colXl]=\"layout1.colXl\"\r\n [class.hide]=\"disableGrid\"\r\n ></div>\r\n <div [fdLayoutGridCol]=\"12\" [colMd]=\"colMd\" [colLg]=\"colLg\" [colXl]=\"colXl\" class=\"!tw-p-0\">\r\n <bsu-ly-tab-page [config]=\"tab\"></bsu-ly-tab-page>\r\n </div>\r\n <div\r\n class=\"!tw-p-0\"\r\n [fdLayoutGridCol]=\"0\"\r\n [colMd]=\"layout2.colMd\"\r\n [colLg]=\"layout2.colLg\"\r\n [colXl]=\"layout2.colXl\"\r\n [class.hide]=\"disableGrid\"\r\n ></div>\r\n </div>\r\n </fd-layout-grid>\r\n </fd-dynamic-page-content>\r\n </fdp-icon-tab-bar-tab>\r\n }\r\n </fdp-icon-tab-bar>\r\n } @if (contentIsPage) {\r\n <fd-dynamic-page-content class=\"page-layout-content\">\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n renderLayoutComponent;\r\n context: {\r\n $implicit: parameters?.LayoutComponent,\r\n layout94: layout94\r\n }\r\n \"\r\n ></ng-container>\r\n </fd-dynamic-page-content>\r\n } @if(!hideFooter && hasLayoutButtons || (workflowButtons.length && isMobile)){\r\n <fd-dynamic-page-footer>\r\n <ng-container *ngTemplateOutlet=\"layoutActionsTemplateRef\"></ng-container>\r\n </fd-dynamic-page-footer>\r\n }\r\n</fd-dynamic-page>\r\n<ng-template #renderDefaultLayout let-layout94=\"layout94\">\r\n <bsu-ly-layout-container-of-root\r\n [config]=\"layout94\"\r\n [isPanel]=\"false\"\r\n [isRoot]=\"true\"\r\n ></bsu-ly-layout-container-of-root>\r\n</ng-template>\r\n<ng-template #renderLayoutComponent let-component let-layout94=\"layout94\">\r\n <bnrc-dynamic-form-component\r\n [component]=\"component\"\r\n [layoutActionsTemplateRef]=\"layoutActionsTemplateRef\"\r\n [removeContentPadding]=\"removeContentPadding\"\r\n [breadCrumbs]=\"breadCrumbs\"\r\n [description]=\"description\"\r\n [title]=\"title\"\r\n [subtitle]=\"subtitle\"\r\n [toolbarItems]=\"toolbarItems\"\r\n [layoutActions]=\"layoutActions\"\r\n [footerDesign]=\"footerDesign\"\r\n [facetList]=\"facetList\"\r\n [settings]=\"component.Settings\"\r\n [workflowButtons]=\"workflowButtons\"\r\n [workflowPanelUi]=\"workflowPanelUi\"\r\n [isMobile]=\"isMobile\"\r\n [mo]=\"mo\"\r\n [layout94]=\"layout94\"\r\n [context]=\"context\"\r\n [rtl]=\"rtl\"\r\n [fieldDict]=\"fieldDict\"\r\n [mask]=\"mask\"\r\n [dirValue]=\"dirValue\"\r\n [deviceSize]=\"deviceSize\"\r\n [contentDensity]=\"contentDensity\"\r\n [modernTabs]=\"modernTabs\"\r\n [avatar]=\"avatar\"\r\n (events)=\"onDynamicComponentEvents($event)\"\r\n ></bnrc-dynamic-form-component>\r\n</ng-template>\r\n<ng-template #closeForm>\r\n <button fd-button fdType=\"transparent\" aria-label=\"Close\" (click)=\"close.emit()\" title=\"Close\">\r\n <i [class]=\"'sap-icon--' + (isMobile ? (rtl ? 'arrow-right' : 'arrow-left') : 'decline')\"></i>\r\n </button>\r\n</ng-template>\r\n<ng-template #fullscreenForm>\r\n @if (canFullscreen) {\r\n <button\r\n fd-button\r\n fdType=\"transparent\"\r\n [attr.aria-label]=\"fullscreen ? 'exit fullscreen' : 'fullscreen'\"\r\n (click)=\"fullscreenRequest.emit()\"\r\n [title]=\"fullscreen ? 'exit fullscreen' : 'fullscreen'\"\r\n [glyph]=\"fullscreen ? 'exitfullscreen' : 'resize'\"\r\n ></button>\r\n }\r\n</ng-template>\r\n<ng-template #layoutActionsTemplateRef>\r\n <bsu-layout-actions\r\n [canSend]=\"canSend\"\r\n [buttons]=\"layoutActions\"\r\n [isMobile]=\"isMobile\"\r\n [landscape]=\"landscape\"\r\n [standalone]=\"standalone\"\r\n [footerDesign]=\"footerDesign\"\r\n [workflowButtons]=\"workflowButtons\"\r\n [workflowButtonsComboMode]=\"workflowButtonsComboMode || worfklowButtonsOnFooter\"\r\n [deviceSize]=\"deviceSize\"\r\n [rtl]=\"rtl\"\r\n (toolClick)=\"toolbarClick.emit($event)\"\r\n (workflowChoiceSelect)=\"onWfChoiceSelect($event)\"\r\n >\r\n </bsu-layout-actions>\r\n</ng-template>\r\n", styles: [":host{display:block;height:auto;width:100%}:host>fd-dynamic-page[contentispage=false]:not([ismobile=true]) ::ng-deep fd-dynamic-page-header .fd-dynamic-page__title{max-width:50svw}:host ::ng-deep fd-dynamic-page-global-actions{flex:1;display:flex}:host ::ng-deep .fd-dynamic-page__title-container{flex:1}:host ::ng-deep .fd-dynamic-page__toolbar-container{display:flex;flex:1}:host ::ng-deep .fd-facet .fd-title{font-family:B-Font Medium}:host ::ng-deep .facet-progress .fd-progress-indicator__container,:host ::ng-deep .facet-progress .fd-progress-indicator__progress-bar{height:1.5rem}:host ::ng-deep fd-facet .fd-object-status--large{font-size:1.1rem}.no-toolbar-items ::ng-deep .fd-dynamic-page__toolbar-container{width:auto}fd-dynamic-page[ismobile=true] fd-dynamic-page-header.notitle ::ng-deep .fd-dynamic-page__title{width:auto}fd-dynamic-page[ismobile=true] fd-dynamic-page-header.notitle ::ng-deep>article{height:calc(100svh - var(--shellbar-height) - env(safe-area-inset-bottom) - constant(safe-area-inset-bottom))!important}fd-dynamic-page ::ng-deep>article{min-height:calc(100svh - var(--shellbar-height))}fd-dynamic-page ::ng-deep>article>fd-tab-list>.fd-tabs__content fd-tab.is-expanded{min-height:100%;display:flex}fd-dynamic-page ::ng-deep>article>fd-tab-list>.fd-tabs__content fd-tab.is-expanded>fd-dynamic-page-content{min-height:100%;overflow:hidden}fd-dynamic-page ::ng-deep>article>fd-tab-list>.fd-tabs__content fd-tab.is-expanded bsu-ly-layout-container-of-root{min-height:100%}fd-dynamic-page ::ng-deep>article>.fd-scrollbar{height:inherit}fd-dynamic-page fd-dynamic-page-content.limit-content-width{display:flex;justify-content:center}fd-dynamic-page[contentispage=true]{box-sizing:border-box;height:calc(100svh - var(--shellbar-height));min-height:0;overflow:hidden}fd-dynamic-page[contentispage=true] ::ng-deep>article.fd-dynamic-page{display:flex;flex-direction:column;height:100%;min-height:0;overflow:hidden}fd-dynamic-page[contentispage=true] ::ng-deep>article.fd-dynamic-page>.fd-scrollbar{display:flex;flex:1 1 0;flex-direction:column;height:auto;min-height:0;overflow:hidden!important}fd-dynamic-page[contentispage=true] ::ng-deep fd-dynamic-page-content.page-layout-content{display:flex;flex:1 1 0;flex-direction:column;min-height:0;overflow:hidden;padding:0!important}fd-dynamic-page[contentispage=true] ::ng-deep fd-dynamic-page-content.page-layout-content>bnrc-dynamic-form-component,fd-dynamic-page[contentispage=true] ::ng-deep fd-dynamic-page-content.page-layout-content>bnrc-dynamic-form-component>*{display:flex;flex:1 1 0;flex-direction:column;min-height:0}fd-facet{display:flex;flex-direction:column}.hide-title ::ng-deep .fd-dynamic-page__title-container{display:none!important}.hide-title.hide-breadcrumb{display:none}.no-pin ::ng-deep .fd-dynamic-page__collapsible-header-visibility-container{display:none!important}fd-toolbar.firefox ::ng-deep .fd-toolbar{flex-direction:row-reverse}fd-toolbar.firefox ::ng-deep .fd-toolbar>:first-child{margin-right:5px}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i2.DynamicFormComponent, selector: "bnrc-dynamic-form-component", inputs: ["breadCrumbs", "toolbarVisible", "toolbarItems", "layoutActions", "layoutActionsTemplateRef", "workflowButtons", "layout94", "footerDesign", "settings", "workflowPanelUi", "title", "subtitle", "description", "facetList", "removeHeaderBorder", "removeContentPadding", "isMobile", "isModal", "avatar", "rtl", "mask", "mo", "contentDensity", "deviceSize", "dirValue", "fieldDict", "modernTabs"] }, { kind: "component", type: i2.BaseDynamicComponent, selector: "bnrc-dynamic-component", inputs: ["component", "FnHandleEvents", "value"], outputs: ["events"] }, { kind: "directive", type: i2.FormCloseDirective, selector: "[formClose]", inputs: ["isMobile"] }, { kind: "directive", type: i2.MobileDirective, selector: "[mobile]" }, { kind: "directive", type: i2.MeasureFormTitleWidthDirective, selector: "[mWidthTitle]", inputs: ["mWidthTitle", "enableMobile"] }, { kind: "directive", type: i1$2.ɵɵCdkScrollable, selector: "[cdk-scrollable], [cdkScrollable]" }, { kind: "component", type: i4$4.AvatarComponent, selector: "fd-avatar", inputs: ["id", "ariaLabel", "ariaLabelledby", "label", "size", "font", "glyph", "zoomGlyph", "circle", "interactive", "transparent", "contain", "placeholder", "tile", "border", "colorAccent", "colorIndication", "random", "clickable", "valueState", "image", "alterIcon", "backupImage"], outputs: ["avatarClicked", "zoomGlyphClicked"] }, { kind: "component", type: i4$6.BreadcrumbComponent, selector: "fd-breadcrumb", inputs: ["reverse", "tabIndex", "separatorStyle"], outputs: ["visibleItemsCount", "hiddenItemsCount"] }, { kind: "component", type: i4$6.BreadcrumbItemComponent, selector: "fd-breadcrumb-item" }, { kind: "component", type: i1$4.ButtonComponent, selector: "button[fd-button], a[fd-button], span[fd-button]", inputs: ["id"], exportAs: ["fd-button"] }, { kind: "component", type: i8$2.DynamicPageComponent, selector: "fd-dynamic-page", inputs: ["disableSnapOnScroll", "ariaLabel", "ariaRoledescription", "background", "autoResponsive", "size", "offset", "expandContent", "positionRelative"] }, { kind: "component", type: i8$2.DynamicPageHeaderComponent, selector: "fd-dynamic-page-header", inputs: ["title", "titleWrap", "subtitle", "subtitleWrap", "headingLevel", "subtitleHeadingLevel", "titleId"] }, { kind: "component", type: i8$2.DynamicPageGlobalActionsComponent, selector: "fd-dynamic-page-global-actions" }, { kind: "component", type: i8$2.DynamicPageLayoutActionsComponent, selector: "fd-dynamic-page-layout-actions" }, { kind: "component", type: i8$2.DynamicPageSubheaderComponent, selector: "fd-dynamic-page-subheader", inputs: ["collapsible", "pinnable", "collapsed", "expandLabel", "collapseLabel", "id", "headerAriaLabel", "pinAriaLabel", "unpinAriaLabel"], outputs: ["collapsedChange"] }, { kind: "component", type: i8$2.DynamicPageContentComponent, selector: "fd-dynamic-page-content", inputs: ["tabLabel", "id"] }, { kind: "component", type: i8$2.DynamicPageFooterComponent, selector: "fd-dynamic-page-footer" }, { kind: "component", type: i8$2.DynamicPageBreadcrumbComponent, selector: "fd-dynamic-page-breadcrumb" }, { kind: "component", type: i8$3.FacetComponent, selector: "fd-facet", inputs: ["type", "facetTitle", "subtitle", "headingLevel", "id", "alignEnd"] }, { kind: "component", type: i8$3.FacetGroupComponent, selector: "fd-facet-group", inputs: ["ariaLabel"] }, { kind: "component", type: i8$3.FacetContentComponent, selector: "fd-facet-content" }, { kind: "component", type: i2$1.FormLabelComponent, selector: "[fd-form-label]", inputs: ["required", "colon", "alignLabelEnd", "inlineHelpContent", "inlineHelpGlyph", "inlineHelpTriggers", "inlineHelpBodyPlacement", "inlineHelpPlacement", "allowWrap", "inlineHelpLabel", "id", "disabled", "unitDescription", "independent"] }, { kind: "component", type: i10.LayoutGridComponent, selector: "fd-layout-grid, [fdLayoutGrid]", inputs: ["noGap", "noHorizontalGap", "noVerticalGap"] }, { kind: "directive", type: i10.LayoutGridColDirective, selector: "[fd-layout-grid-col], [fdLayoutGridCol]", inputs: ["fdLayoutGridCol", "colGrow", "colMd", "colLg", "colXl", "colOffset", "colOffsetMd", "colOffsetLg", "colOffsetXl"] }, { kind: "directive", type: i10.LayoutGridRowDirective, selector: "[fd-layout-grid-row], [fdLayoutGridRow]" }, { kind: "component", type: i2$8.MessageStripComponent, selector: "fd-message-strip", inputs: ["dismissible", "ariaLabelledBy", "dismissBtnTitle", "noIcon", "type", "id", "ariaLabel", "width", "minWidth", "marginBottom", "indicationColor"], outputs: ["onDismiss"] }, { kind: "component", type: i7$3.ObjectNumberComponent, selector: "fd-object-number", inputs: ["number", "decimal", "unit", "emphasized", "large", "status", "statusMessage", "ariaLabelledBy", "ariaLabel", "interactive", "inverted"] }, { kind: "component", type: i8$1.ObjectStatusComponent, selector: "[fd-object-status]", inputs: ["status", "statusMessage", "glyph", "glyphFont", "label", "ariaLabel", "glyphAriaLabel", "indicationColor", "clickable", "inverted", "large", "secondaryIndication", "textTemplate", "ariaRoleDescription"] }, { kind: "component", type: i14.RatingIndicatorComponent, selector: "fd-rating-indicator", inputs: ["name", "ariaLabel", "ariaLabelledBy", "ariaRoledescription", "disabled", "displayMode", "nonInteractive", "indicatorCapacity", "allowHalves", "value", "totalRatings", "ratingAverage", "ratings", "displayAllRatings", "ratedIcon", "unratedIcon", "size", "dynamicTextIndicator", "showDynamicText"], outputs: ["ratingChanged"] }, { kind: "component", type: i5$3.TextComponent, selector: "fd-text", inputs: ["text", "maxLines", "whitespaces", "hyphenation", "expandable", "isCollapsed", "subline"], outputs: ["isCollapsedChange"] }, { kind: "component", type: i7$1.ToolbarComponent, selector: "fd-toolbar", inputs: ["titleId", "class", "shouldOverflow", "fdType", "title", "active", "clearBorder", "forceOverflow", "tabindex", "headingLevel", "ariaLabel", "ariaLabelledBy", "ariaDescribedBy", "ariaOrientation", "id"] }, { kind: "component", type: i7$1.ToolbarSeparatorComponent, selector: "fd-toolbar-separator" }, { kind: "component", type: i12$1.ProgressIndicatorComponent, selector: "fd-progress-indicator", inputs: ["valueText", "unit", "valueMin", "valueMax", "valueNow", "state", "animate"] }, { kind: "component", type: i4.IconTabBarComponent, selector: "fdp-icon-tab-bar", inputs: ["stackContent", "tabHeadingLevel", "iconTabType", "tabsConfig", "densityMode", "iconTabFont", "enableTabReordering", "showTotalTab", "multiClick", "layoutMode", "iconTabBackground", "iconTabSize", "colorAssociations", "settings", "maxContentHeight"], outputs: ["tabsConfigChange", "densityModeChange", "iconTabSelected", "iconTabReordered", "closeTab"] }, { kind: "component", type: i4.IconTabBarTabComponent, selector: "fdp-icon-tab-bar-tab", inputs: ["label", "color", "icon", "iconFont", "counter", "active", "badge", "closable", "id"] }, { kind: "component", type: LyLayoutContainerOfRootComponent, selector: "bsu-ly-layout-container-of-root" }, { kind: "component", type: MaskComponent, selector: "bsu-mask", inputs: ["size", "top"] }, { kind: "component", type: LyTabPageComponent, selector: "bsu-ly-tab-page", inputs: ["renderItems"] }, { kind: "component", type: LayoutActionsComponent, selector: "bsu-layout-actions", inputs: ["workflowButtons", "workflowButtonsComboMode", "canSend", "simple", "footerDesign"], outputs: ["workflowChoiceSelect"] }, { kind: "component", type: BreadcrumbComponent, selector: "bsu-breadcrumb", inputs: ["breadCrumb", "allBreadCrumb", "isLast", "index"] }, { kind: "component", type: FormToolbarComponent, selector: "bsu-form-toolbar", outputs: ["toolbarClick"] }, { kind: "component", type: BarsaInfobarsComponent, selector: "bsu-barsa-infobars", inputs: ["infobars"], outputs: ["dismiss"] }, { kind: "directive", type: ContentDensityDirective, selector: "[contentDensity]" }, { kind: "directive", type: FixMoreDirective, selector: "[fixMore]" }, { kind: "pipe", type: i1.SlicePipe, name: "slice" }, { kind: "pipe", type: i2.HeaderFacetValuePipe, name: "facetValue" }, { kind: "pipe", type: i2.PictureFieldSourcePipe, name: "picFieldSrc" }, { kind: "pipe", type: i2.BbbTranslatePipe, name: "bbbTranslate" }, { kind: "pipe", type: i2.SanitizeTextPipe, name: "sanitizeText" }, { kind: "pipe", type: i2.FilterWorkflowInMobilePipe, name: "filterWorkflowInMobile" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
10736
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.8", type: FundamentalDynamicFormComponent, isStandalone: false, selector: "bsu-fundamental-dynamic-form", inputs: { breadCrumbs: "breadCrumbs", toolbarVisible: "toolbarVisible", toolbarItems: "toolbarItems", layoutActions: "layoutActions", layout94: "layout94", parameters: "parameters", workflowPanelUi: "workflowPanelUi", context: "context", title: "title", subtitle: "subtitle", description: "description", facetList: "facetList", infobars: "infobars", fieldDict: "fieldDict", removeHeaderBorder: "removeHeaderBorder", removeContentPadding: "removeContentPadding", isMobile: "isMobile", mo: "mo", avatar: "avatar", circleAvatar: "circleAvatar", hideBreadCrumb: "hideBreadCrumb", rtl: "rtl", hideFooter: "hideFooter", hideTitle: "hideTitle", hideClose: "hideClose", hidePin: "hidePin", fullscreen: "fullscreen", mask: "mask", canSend: "canSend", contentIsPage: "contentIsPage", contentDensity: "contentDensity", deviceSize: "deviceSize", dirValue: "dirValue", landscape: "landscape", standalone: "standalone", modernTabs: "modernTabs", selectedTabPageName: "selectedTabPageName", modernTabContainerComponent: "modernTabContainerComponent", layoutGridCol: "layoutGridCol", colLg: "colLg", colXl: "colXl", colMd: "colMd", footerDesign: "footerDesign", formContentMaxWidth: "formContentMaxWidth", formContentJustify: "formContentJustify", workflowButtons: "workflowButtons", lastUpdateTime: "lastUpdateTime" }, outputs: { toolbarClick: "toolbarClick", workflowChoiceClick: "workflowChoiceClick", close: "close", fullscreenRequest: "fullscreenRequest", dismissInfobar: "dismissInfobar" }, viewQueries: [{ propertyName: "_dynamicPageComponent", first: true, predicate: DynamicPageComponent, descendants: true, static: true }, { propertyName: "_toolbarComponent", first: true, predicate: ["formToolbar"], descendants: true }, { propertyName: "titleRef", first: true, predicate: ["titleRef"], descendants: true, read: ViewContainerRef }, { propertyName: "headerAvatarRef", first: true, predicate: ["headerAvatar"], descendants: true }, { propertyName: "closeFormTemplate", first: true, predicate: ["closeForm"], descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: "@if (mask) {\r\n<div style=\"position: absolute; top: 0; left: 0; width: 100%; height: 100%\">\r\n <bsu-mask size=\"m\"></bsu-mask>\r\n</div>\r\n}\r\n\r\n<fd-dynamic-page\r\n [size]=\"isMobile ? 'small' : 'large'\"\r\n [ngClass]=\"{ 'floating-footer': footerDesign === 'floating-footer' }\"\r\n [class.header-border]=\"!removeHeaderBorder\"\r\n [attr.isMobile]=\"isMobile\"\r\n [attr.contentIsPage]=\"contentIsPage\"\r\n mobile\r\n formClose\r\n [isMobile]=\"isMobile\"\r\n>\r\n <fd-dynamic-page-header\r\n [class.simple-title]=\"!description\"\r\n [title]=\"(hideTitle === true ? '' : title) | bbbTranslate\"\r\n [class.notitle]=\"title.length < 2 || hideTitle\"\r\n [class.p-b0]=\"removeContentPadding\"\r\n [class.hide-title]=\"hideTitle === true && hideClose === true\"\r\n [class.hide-breadcrumb]=\"hideBreadCrumb\"\r\n [class.no-toolbar-items]=\"!(toolbarItems | filterWorkflowInMobile: worfklowButtonsOnFooter)?.length\"\r\n [mWidthTitle]=\"title\"\r\n #titleRef\r\n >\r\n <fd-dynamic-page-breadcrumb\r\n [class.hide]=\"isMobile || hideBreadCrumb\"\r\n *ngIf=\"breadCrumbs?.length; else noBreadcrumbs\"\r\n >\r\n <fd-breadcrumb>\r\n @if (breadCrumbs && !isMobile) { @for (breadCrumb of breadCrumbs | slice: 0:breadCrumbs.length; track\r\n trackBreadCrumb($index, breadCrumb); let i = $index; let last = $last) { @if(i>0) {\r\n <fd-breadcrumb-item>\r\n <bsu-breadcrumb\r\n [index]=\"i\"\r\n [isLast]=\"last\"\r\n [breadCrumb]=\"breadCrumb\"\r\n [allBreadCrumb]=\"breadCrumbs\"\r\n ></bsu-breadcrumb>\r\n </fd-breadcrumb-item>\r\n } }}\r\n </fd-breadcrumb>\r\n </fd-dynamic-page-breadcrumb>\r\n <ng-template #noBreadcrumbs></ng-template>\r\n <fd-dynamic-page-global-actions>\r\n <!-- global actions -->\r\n\r\n <fd-toolbar [shouldOverflow]=\"true\" Style=\"display:none\"> </fd-toolbar>\r\n <!-- added this because in mobile landscape toolbar disapper -->\r\n @if (toolbarVisible) {\r\n <bsu-form-toolbar\r\n [deviceSize]=\"deviceSize\"\r\n [buttons]=\"toolbarItems | filterWorkflowInMobile: worfklowButtonsOnFooter\"\r\n [dirValue]=\"dirValue\"\r\n [isFirefox]=\"isFirefox\"\r\n (toolbarClick)=\"toolbarClick.emit($event)\"\r\n #formToolbar\r\n ></bsu-form-toolbar>\r\n }\r\n </fd-dynamic-page-global-actions>\r\n <fd-dynamic-page-layout-actions>\r\n <!-- layout actions -->\r\n <!-- <div [formActions]=\"this.toolbar\"></div> -->\r\n @if (!hideClose) {\r\n <fd-toolbar fdType=\"transparent\" [clearBorder]=\"true\">\r\n @if (deviceSize !== 's') {\r\n <fd-toolbar-separator></fd-toolbar-separator>\r\n }\r\n <ng-container *ngTemplateOutlet=\"fullscreenForm\"></ng-container>\r\n <ng-container *ngTemplateOutlet=\"closeForm\"></ng-container>\r\n </fd-toolbar>\r\n }\r\n </fd-dynamic-page-layout-actions>\r\n </fd-dynamic-page-header>\r\n @if (description || facetList.length > 0 || workflowInfoText || avatar || infobars?.length) {}\r\n <fd-dynamic-page-subheader\r\n [class.header-no-description]=\"!(description || workflowInfoText || infobars?.length)\"\r\n [class.no-pin]=\"hidePin || (!facetList?.length && !workflowInfoText && !infobars?.length)\"\r\n [collapsible]=\"!hidePin\"\r\n [pinnable]=\"false\"\r\n [collapsed]=\"!facetList?.length && !workflowInfoText && !infobars?.length\"\r\n >\r\n @if (workflowInfoText) {\r\n <fd-message-strip\r\n [type]=\"'warning'\"\r\n [dismissible]=\"false\"\r\n [innerHtml]=\"workflowInfoText | bbbTranslate | sanitizeText\"\r\n >\r\n </fd-message-strip>\r\n }\r\n <bsu-barsa-infobars [infobars]=\"infobars\" (dismiss)=\"dismissInfobar.emit($event)\"></bsu-barsa-infobars>\r\n <fd-facet-group ariaLabel=\"Facet Group\">\r\n @if (avatar) {\r\n <fd-facet type=\"image\">\r\n <fd-avatar\r\n title=\"avatar\"\r\n [glyph]=\"avatar\"\r\n [image]=\"\r\n !avatar?.FileId ? null : (avatar?.FileId | picFieldSrc: 'ID':null)\r\n \"\r\n [size]=\"deviceSize === 'xl' ? 'l' : deviceSize\"\r\n [transparent]=\"true\"\r\n [circle]=\"circleAvatar\"\r\n ></fd-avatar>\r\n <!-- <div\r\n class=\"fd-avatar fd-avatar--circle\"\r\n [class]=\"'fd-avatar--' + (deviceSize === 'xl' ? 'l' : deviceSize)\"\r\n >\r\n <i *ngIf=\"avatar\" class=\"fd-avatar__icon\" [class]=\"avatar | sapFontClass\" role=\"presentation\"> </i>\r\n </div> -->\r\n </fd-facet>\r\n } @for (facet of facetList; track facet) {\r\n <fd-facet\r\n [type]=\"facet.type\"\r\n [facetTitle]=\"facet.mo.Title | bbbTranslate\"\r\n [subtitle]=\"facet.mo.SubTitle | facetValue | bbbTranslate\"\r\n >\r\n @for (item of facet.mo.ItemList?.MoDataList; track item) {\r\n <fd-facet-content>\r\n <label fd-form-label [colon]=\"true\" for=\"form-value-10\">{{ item.Title | bbbTranslate }}</label>\r\n <fd-text [text]=\"item.Value | facetValue | bbbTranslate\" id=\"form-value-10\"></fd-text>\r\n </fd-facet-content>\r\n } @if ( !facet.mo.IsNumber && facet.type === 'key-value' && !facet.mo.Component?.Selector) {\r\n <span\r\n fd-object-status\r\n [status]=\"facet.mo.Status | facetValue\"\r\n [label]=\"facet.mo.Component?.Selector ? '' : (facet.mo.Text | facetValue | bbbTranslate)\"\r\n [large]=\"facet.mo.IsLarge\"\r\n [title]=\"facet.mo.Text | facetValue | bbbTranslate\"\r\n [aria-label]=\"facet.mo.Text | facetValue | bbbTranslate\"\r\n [glyph]=\"facet.mo.Icon\"\r\n >\r\n </span>\r\n } @else {\r\n <bnrc-dynamic-component\r\n [class]=\"'fd-object-status fd-object-status--' + facet.mo.Status | facetValue\"\r\n [class.fd-object-status--large]=\"facet.mo.IsLarge\"\r\n [component]=\"facet.mo.Component\"\r\n [value]=\"facet.mo.Text | bbbTranslate\"\r\n ></bnrc-dynamic-component>\r\n } @if (facet.mo.IsNumber && facet.type === 'key-value') {\r\n <fd-object-number\r\n [number]=\"facet.mo.Text | facetValue\"\r\n [large]=\"facet.mo.IsLarge\"\r\n [unit]=\"facet.mo.Unit | facetValue | bbbTranslate\"\r\n [status]=\"facet.mo.Status | facetValue\"\r\n [decimal]=\"facet.mo.DecimalValue | facetValue\"\r\n ></fd-object-number>\r\n } @if (facet.type === 'plain-text') {\r\n <div [style.width.px]=\"facet.mo.Width\" style=\"white-space: normal\">\r\n <fd-text [text]=\"facet.mo.Text | facetValue | bbbTranslate\" hyphenation=\"auto\"></fd-text>\r\n </div>\r\n } @if (facet.type === 'rating-indicator') {\r\n <fd-facet-content>\r\n <fd-rating-indicator\r\n style=\"pointer-events: none\"\r\n size=\"md\"\r\n [dynamicTextIndicator]=\"facet.mo.Footer | bbbTranslate\"\r\n [displayMode]=\"true\"\r\n [value]=\"facet.mo | facetValue: facet.type\"\r\n ></fd-rating-indicator>\r\n </fd-facet-content>\r\n } @if (facet.type === 'progress') {\r\n <div [style.width]=\"'10rem'\">\r\n <!-- <span fd-form-label>{{ facet.mo.Subtitle | facetValue }}</span> -->\r\n <fd-progress-indicator\r\n class=\"facet-progress\"\r\n style=\"width: 10r em\"\r\n [state]=\"facet.mo.State\"\r\n [valueText]=\"(facet.mo | facetValue: facet.type) + ' \u0627\u0632 10 \u0645\u0631\u062D\u0644\u0647' | bbbTranslate\"\r\n [valueNow]=\"facet.mo | facetValue: facet.type\"\r\n [valueMax]=\"10\"\r\n [unit]=\"'\u0645\u0631\u062D\u0644\u0647'\"\r\n ></fd-progress-indicator>\r\n <!-- <ui5-progress-indicator\r\n style=\"width: 10rem\"\r\n [valueState]=\"facet.mo.State\"\r\n [value]=\"getNumber(facet.mo.Value)\"\r\n ></ui5-progress-indicator> -->\r\n </div>\r\n } @if (facet.type === 'microcharts') {\r\n <div>\r\n <label wrap>in progress ...</label>\r\n </div>\r\n }\r\n </fd-facet>\r\n }\r\n </fd-facet-group>\r\n @if (description) {\r\n <span>{{ description | bbbTranslate }}</span>\r\n }\r\n </fd-dynamic-page-subheader>\r\n @if((!modernTabs.length && !contentIsPage) || (modernTabs.length && !contentIsPage && parameters?.LayoutComponent))\r\n {\r\n <fd-dynamic-page-content\r\n [style.justify-content]=\"formContentJustify\"\r\n [class.limit-content-width]=\"formContentMaxWidth > 0\"\r\n cdkScrollable\r\n >\r\n <fd-layout-grid class=\"!tw-p-0\" style=\"min-height: 100%\" [style.max-width.px]=\"formContentMaxWidth\">\r\n <div fdLayoutGridRow class=\"!tw-p-0\">\r\n <div\r\n class=\"!tw-p-0\"\r\n [class.hide]=\"layout2.colXl === 0\"\r\n [class.hide]=\"disableGrid\"\r\n [fdLayoutGridCol]=\"0\"\r\n [colMd]=\"layout1.colMd\"\r\n [colLg]=\"layout1.colLg\"\r\n [colXl]=\"layout1.colXl\"\r\n ></div>\r\n <div class=\"!tw-p-0\" [fdLayoutGridCol]=\"12\" [colMd]=\"colMd\" [colLg]=\"colLg\" [colXl]=\"colXl\">\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n parameters?.LayoutComponent ? renderLayoutComponent : renderDefaultLayout;\r\n context: {\r\n $implicit: parameters?.LayoutComponent,\r\n layout94: layout94\r\n }\r\n \"\r\n ></ng-container>\r\n </div>\r\n <div\r\n class=\"!tw-p-0\"\r\n [class.hide]=\"disableGrid\"\r\n [class.hide]=\"layout2.colXl === 0\"\r\n [fdLayoutGridCol]=\"0\"\r\n [colMd]=\"layout2.colMd\"\r\n [colLg]=\"layout2.colLg\"\r\n [colXl]=\"layout2.colXl\"\r\n ></div>\r\n </div>\r\n </fd-layout-grid>\r\n </fd-dynamic-page-content>\r\n } @else if(modernTabs.length && !contentIsPage && !parameters?.LayoutComponent){\r\n <fdp-icon-tab-bar\r\n #tabListComponent\r\n [stackContent]=\"false\"\r\n [collapseOverflow]=\"true\"\r\n [expandOverflowText]=\"'More' | bbbTranslate\"\r\n [iconTabType]=\"modernTabContainerComponent?.Settings?.TabType.$Caption || 'text'\"\r\n [layoutMode]=\"modernTabContainerComponent?.Settings?.LayoutMode$Caption\"\r\n fixMore\r\n >\r\n @for (tab of modernTabs; track tab.Title; let i = $index) {\r\n <fdp-icon-tab-bar-tab\r\n [id]=\"tab.ControlId\"\r\n [active]=\"selectedTabPageName === tab.ControlId\"\r\n [label]=\"tab.Title!! | bbbTranslate\"\r\n [title]=\"tab.Title!! | bbbTranslate\"\r\n [color]=\"tab.SemanticColor?.$Caption\"\r\n [icon]=\"tab.FontIcon\"\r\n [iconFont]=\"tab.IconFontName?.$Caption\"\r\n [counter]=\"tab.CustomUi?.Settings?.CounterValue\"\r\n [class.is-expanded]=\"selectedTab === tab.Title\"\r\n #tablist\r\n >\r\n <fd-dynamic-page-content\r\n [id]=\"tab.id\"\r\n [style.justify-content]=\"formContentJustify\"\r\n [class.limit-content-width]=\"formContentMaxWidth > 0\"\r\n >\r\n <fd-layout-grid [style.max-width.px]=\"formContentMaxWidth\" class=\"!tw-p-0\">\r\n <div fdLayoutGridRow>\r\n <div\r\n class=\"!tw-p-0\"\r\n [fdLayoutGridCol]=\"0\"\r\n [colMd]=\"layout1.colMd\"\r\n [colLg]=\"layout1.colLg\"\r\n [colXl]=\"layout1.colXl\"\r\n [class.hide]=\"disableGrid\"\r\n ></div>\r\n <div [fdLayoutGridCol]=\"12\" [colMd]=\"colMd\" [colLg]=\"colLg\" [colXl]=\"colXl\" class=\"!tw-p-0\">\r\n <bsu-ly-tab-page [config]=\"tab\"></bsu-ly-tab-page>\r\n </div>\r\n <div\r\n class=\"!tw-p-0\"\r\n [fdLayoutGridCol]=\"0\"\r\n [colMd]=\"layout2.colMd\"\r\n [colLg]=\"layout2.colLg\"\r\n [colXl]=\"layout2.colXl\"\r\n [class.hide]=\"disableGrid\"\r\n ></div>\r\n </div>\r\n </fd-layout-grid>\r\n </fd-dynamic-page-content>\r\n </fdp-icon-tab-bar-tab>\r\n }\r\n </fdp-icon-tab-bar>\r\n } @if (contentIsPage) {\r\n <fd-dynamic-page-content class=\"page-layout-content\">\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n renderLayoutComponent;\r\n context: {\r\n $implicit: parameters?.LayoutComponent,\r\n layout94: layout94\r\n }\r\n \"\r\n ></ng-container>\r\n </fd-dynamic-page-content>\r\n } @if(!hideFooter && hasLayoutButtons || (workflowButtons.length && isMobile)){\r\n <fd-dynamic-page-footer>\r\n <ng-container *ngTemplateOutlet=\"layoutActionsTemplateRef\"></ng-container>\r\n </fd-dynamic-page-footer>\r\n }\r\n</fd-dynamic-page>\r\n<ng-template #renderDefaultLayout let-layout94=\"layout94\">\r\n <bsu-ly-layout-container-of-root\r\n [config]=\"layout94\"\r\n [isPanel]=\"false\"\r\n [isRoot]=\"true\"\r\n ></bsu-ly-layout-container-of-root>\r\n</ng-template>\r\n<ng-template #renderLayoutComponent let-component let-layout94=\"layout94\">\r\n <bnrc-dynamic-form-component\r\n [component]=\"component\"\r\n [layoutActionsTemplateRef]=\"layoutActionsTemplateRef\"\r\n [removeContentPadding]=\"removeContentPadding\"\r\n [breadCrumbs]=\"breadCrumbs\"\r\n [description]=\"description\"\r\n [title]=\"title\"\r\n [subtitle]=\"subtitle\"\r\n [toolbarItems]=\"toolbarItems\"\r\n [layoutActions]=\"layoutActions\"\r\n [footerDesign]=\"footerDesign\"\r\n [facetList]=\"facetList\"\r\n [settings]=\"component.Settings\"\r\n [workflowButtons]=\"workflowButtons\"\r\n [workflowPanelUi]=\"workflowPanelUi\"\r\n [isMobile]=\"isMobile\"\r\n [mo]=\"mo\"\r\n [layout94]=\"layout94\"\r\n [context]=\"context\"\r\n [rtl]=\"rtl\"\r\n [fieldDict]=\"fieldDict\"\r\n [mask]=\"mask\"\r\n [dirValue]=\"dirValue\"\r\n [deviceSize]=\"deviceSize\"\r\n [contentDensity]=\"contentDensity\"\r\n [modernTabs]=\"modernTabs\"\r\n [avatar]=\"avatar\"\r\n (events)=\"onDynamicComponentEvents($event)\"\r\n ></bnrc-dynamic-form-component>\r\n</ng-template>\r\n<ng-template #closeForm>\r\n <button fd-button fdType=\"transparent\" aria-label=\"Close\" (click)=\"close.emit()\" title=\"Close\">\r\n <i [class]=\"'sap-icon--' + (isMobile ? (rtl ? 'arrow-right' : 'arrow-left') : 'decline')\"></i>\r\n </button>\r\n</ng-template>\r\n<ng-template #fullscreenForm>\r\n @if (canFullscreen) {\r\n <button\r\n fd-button\r\n fdType=\"transparent\"\r\n [attr.aria-label]=\"fullscreen ? 'exit fullscreen' : 'fullscreen'\"\r\n (click)=\"fullscreenRequest.emit()\"\r\n [title]=\"fullscreen ? 'exit fullscreen' : 'fullscreen'\"\r\n [glyph]=\"fullscreen ? 'exitfullscreen' : 'resize'\"\r\n ></button>\r\n }\r\n</ng-template>\r\n<ng-template #layoutActionsTemplateRef>\r\n <bsu-layout-actions\r\n [canSend]=\"canSend\"\r\n [buttons]=\"layoutActions\"\r\n [isMobile]=\"isMobile\"\r\n [landscape]=\"landscape\"\r\n [standalone]=\"standalone\"\r\n [footerDesign]=\"footerDesign\"\r\n [workflowButtons]=\"workflowButtons\"\r\n [workflowButtonsComboMode]=\"workflowButtonsComboMode || worfklowButtonsOnFooter\"\r\n [deviceSize]=\"deviceSize\"\r\n [rtl]=\"rtl\"\r\n (toolClick)=\"toolbarClick.emit($event)\"\r\n (workflowChoiceSelect)=\"onWfChoiceSelect($event)\"\r\n >\r\n </bsu-layout-actions>\r\n</ng-template>\r\n", styles: [":host{display:block;height:auto;width:100%}:host>fd-dynamic-page[contentispage=false]:not([ismobile=true]) ::ng-deep fd-dynamic-page-header .fd-dynamic-page__title{max-width:50svw}:host ::ng-deep fd-dynamic-page-global-actions{flex:1;display:flex}:host ::ng-deep .fd-dynamic-page__title-container{flex:1}:host ::ng-deep .fd-dynamic-page__toolbar-container{display:flex;flex:1}:host ::ng-deep .fd-facet .fd-title{font-family:B-Font Medium}:host ::ng-deep .facet-progress .fd-progress-indicator__container,:host ::ng-deep .facet-progress .fd-progress-indicator__progress-bar{height:1.5rem}:host ::ng-deep fd-facet .fd-object-status--large{font-size:1.1rem}.no-toolbar-items ::ng-deep .fd-dynamic-page__toolbar-container{width:auto}fd-dynamic-page[ismobile=true] fd-dynamic-page-header.notitle ::ng-deep .fd-dynamic-page__title{width:auto}fd-dynamic-page[ismobile=true] fd-dynamic-page-header.notitle ::ng-deep>article{height:calc(100svh - var(--shellbar-height) - env(safe-area-inset-bottom) - constant(safe-area-inset-bottom))!important}fd-dynamic-page ::ng-deep>article{min-height:calc(100svh - var(--shellbar-height))}fd-dynamic-page ::ng-deep>article>fd-tab-list>.fd-tabs__content fd-tab.is-expanded{min-height:100%;display:flex}fd-dynamic-page ::ng-deep>article>fd-tab-list>.fd-tabs__content fd-tab.is-expanded>fd-dynamic-page-content{min-height:100%;overflow:hidden}fd-dynamic-page ::ng-deep>article>fd-tab-list>.fd-tabs__content fd-tab.is-expanded bsu-ly-layout-container-of-root{min-height:100%}fd-dynamic-page ::ng-deep>article>.fd-scrollbar{height:inherit}fd-dynamic-page fd-dynamic-page-content.limit-content-width{display:flex;justify-content:center}fd-dynamic-page[contentispage=true]{box-sizing:border-box;height:calc(100svh - var(--shellbar-height));min-height:0;overflow:hidden}fd-dynamic-page[contentispage=true] ::ng-deep>article.fd-dynamic-page{display:flex;flex-direction:column;height:100%;min-height:0;overflow:hidden}fd-dynamic-page[contentispage=true] ::ng-deep>article.fd-dynamic-page>.fd-scrollbar{display:flex;flex:1 1 0;flex-direction:column;height:auto;min-height:0;overflow:hidden!important}fd-dynamic-page[contentispage=true] ::ng-deep fd-dynamic-page-content.page-layout-content{display:flex;flex:1 1 0;flex-direction:column;min-height:0;overflow:hidden;padding:0!important}fd-dynamic-page[contentispage=true] ::ng-deep fd-dynamic-page-content.page-layout-content>bnrc-dynamic-form-component,fd-dynamic-page[contentispage=true] ::ng-deep fd-dynamic-page-content.page-layout-content>bnrc-dynamic-form-component>*{display:flex;flex:1 1 0;flex-direction:column;min-height:0}fd-facet{display:flex;flex-direction:column}.hide-title ::ng-deep .fd-dynamic-page__title-container{display:none!important}.hide-title.hide-breadcrumb{display:none}.no-pin ::ng-deep .fd-dynamic-page__collapsible-header-visibility-container{display:none!important}fd-toolbar.firefox ::ng-deep .fd-toolbar{flex-direction:row-reverse}fd-toolbar.firefox ::ng-deep .fd-toolbar>:first-child{margin-right:5px}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i2.DynamicFormComponent, selector: "bnrc-dynamic-form-component", inputs: ["breadCrumbs", "toolbarVisible", "toolbarItems", "layoutActions", "layoutActionsTemplateRef", "workflowButtons", "layout94", "footerDesign", "settings", "lastUpdateTime", "workflowPanelUi", "title", "subtitle", "description", "facetList", "removeHeaderBorder", "removeContentPadding", "isMobile", "isModal", "avatar", "rtl", "mask", "mo", "contentDensity", "deviceSize", "dirValue", "fieldDict", "modernTabs"] }, { kind: "component", type: i2.BaseDynamicComponent, selector: "bnrc-dynamic-component", inputs: ["component", "FnHandleEvents", "value"], outputs: ["events"] }, { kind: "directive", type: i2.FormCloseDirective, selector: "[formClose]", inputs: ["isMobile"] }, { kind: "directive", type: i2.MobileDirective, selector: "[mobile]" }, { kind: "directive", type: i2.MeasureFormTitleWidthDirective, selector: "[mWidthTitle]", inputs: ["mWidthTitle", "enableMobile"] }, { kind: "directive", type: i1$2.ɵɵCdkScrollable, selector: "[cdk-scrollable], [cdkScrollable]" }, { kind: "component", type: i4$4.AvatarComponent, selector: "fd-avatar", inputs: ["id", "ariaLabel", "ariaLabelledby", "label", "size", "font", "glyph", "zoomGlyph", "circle", "interactive", "transparent", "contain", "placeholder", "tile", "border", "colorAccent", "colorIndication", "random", "clickable", "valueState", "image", "alterIcon", "backupImage"], outputs: ["avatarClicked", "zoomGlyphClicked"] }, { kind: "component", type: i4$6.BreadcrumbComponent, selector: "fd-breadcrumb", inputs: ["reverse", "tabIndex", "separatorStyle"], outputs: ["visibleItemsCount", "hiddenItemsCount"] }, { kind: "component", type: i4$6.BreadcrumbItemComponent, selector: "fd-breadcrumb-item" }, { kind: "component", type: i1$4.ButtonComponent, selector: "button[fd-button], a[fd-button], span[fd-button]", inputs: ["id"], exportAs: ["fd-button"] }, { kind: "component", type: i8$2.DynamicPageComponent, selector: "fd-dynamic-page", inputs: ["disableSnapOnScroll", "ariaLabel", "ariaRoledescription", "background", "autoResponsive", "size", "offset", "expandContent", "positionRelative"] }, { kind: "component", type: i8$2.DynamicPageHeaderComponent, selector: "fd-dynamic-page-header", inputs: ["title", "titleWrap", "subtitle", "subtitleWrap", "headingLevel", "subtitleHeadingLevel", "titleId"] }, { kind: "component", type: i8$2.DynamicPageGlobalActionsComponent, selector: "fd-dynamic-page-global-actions" }, { kind: "component", type: i8$2.DynamicPageLayoutActionsComponent, selector: "fd-dynamic-page-layout-actions" }, { kind: "component", type: i8$2.DynamicPageSubheaderComponent, selector: "fd-dynamic-page-subheader", inputs: ["collapsible", "pinnable", "collapsed", "expandLabel", "collapseLabel", "id", "headerAriaLabel", "pinAriaLabel", "unpinAriaLabel"], outputs: ["collapsedChange"] }, { kind: "component", type: i8$2.DynamicPageContentComponent, selector: "fd-dynamic-page-content", inputs: ["tabLabel", "id"] }, { kind: "component", type: i8$2.DynamicPageFooterComponent, selector: "fd-dynamic-page-footer" }, { kind: "component", type: i8$2.DynamicPageBreadcrumbComponent, selector: "fd-dynamic-page-breadcrumb" }, { kind: "component", type: i8$3.FacetComponent, selector: "fd-facet", inputs: ["type", "facetTitle", "subtitle", "headingLevel", "id", "alignEnd"] }, { kind: "component", type: i8$3.FacetGroupComponent, selector: "fd-facet-group", inputs: ["ariaLabel"] }, { kind: "component", type: i8$3.FacetContentComponent, selector: "fd-facet-content" }, { kind: "component", type: i2$1.FormLabelComponent, selector: "[fd-form-label]", inputs: ["required", "colon", "alignLabelEnd", "inlineHelpContent", "inlineHelpGlyph", "inlineHelpTriggers", "inlineHelpBodyPlacement", "inlineHelpPlacement", "allowWrap", "inlineHelpLabel", "id", "disabled", "unitDescription", "independent"] }, { kind: "component", type: i10.LayoutGridComponent, selector: "fd-layout-grid, [fdLayoutGrid]", inputs: ["noGap", "noHorizontalGap", "noVerticalGap"] }, { kind: "directive", type: i10.LayoutGridColDirective, selector: "[fd-layout-grid-col], [fdLayoutGridCol]", inputs: ["fdLayoutGridCol", "colGrow", "colMd", "colLg", "colXl", "colOffset", "colOffsetMd", "colOffsetLg", "colOffsetXl"] }, { kind: "directive", type: i10.LayoutGridRowDirective, selector: "[fd-layout-grid-row], [fdLayoutGridRow]" }, { kind: "component", type: i2$8.MessageStripComponent, selector: "fd-message-strip", inputs: ["dismissible", "ariaLabelledBy", "dismissBtnTitle", "noIcon", "type", "id", "ariaLabel", "width", "minWidth", "marginBottom", "indicationColor"], outputs: ["onDismiss"] }, { kind: "component", type: i7$3.ObjectNumberComponent, selector: "fd-object-number", inputs: ["number", "decimal", "unit", "emphasized", "large", "status", "statusMessage", "ariaLabelledBy", "ariaLabel", "interactive", "inverted"] }, { kind: "component", type: i8$1.ObjectStatusComponent, selector: "[fd-object-status]", inputs: ["status", "statusMessage", "glyph", "glyphFont", "label", "ariaLabel", "glyphAriaLabel", "indicationColor", "clickable", "inverted", "large", "secondaryIndication", "textTemplate", "ariaRoleDescription"] }, { kind: "component", type: i14.RatingIndicatorComponent, selector: "fd-rating-indicator", inputs: ["name", "ariaLabel", "ariaLabelledBy", "ariaRoledescription", "disabled", "displayMode", "nonInteractive", "indicatorCapacity", "allowHalves", "value", "totalRatings", "ratingAverage", "ratings", "displayAllRatings", "ratedIcon", "unratedIcon", "size", "dynamicTextIndicator", "showDynamicText"], outputs: ["ratingChanged"] }, { kind: "component", type: i5$3.TextComponent, selector: "fd-text", inputs: ["text", "maxLines", "whitespaces", "hyphenation", "expandable", "isCollapsed", "subline"], outputs: ["isCollapsedChange"] }, { kind: "component", type: i7$1.ToolbarComponent, selector: "fd-toolbar", inputs: ["titleId", "class", "shouldOverflow", "fdType", "title", "active", "clearBorder", "forceOverflow", "tabindex", "headingLevel", "ariaLabel", "ariaLabelledBy", "ariaDescribedBy", "ariaOrientation", "id"] }, { kind: "component", type: i7$1.ToolbarSeparatorComponent, selector: "fd-toolbar-separator" }, { kind: "component", type: i12$1.ProgressIndicatorComponent, selector: "fd-progress-indicator", inputs: ["valueText", "unit", "valueMin", "valueMax", "valueNow", "state", "animate"] }, { kind: "component", type: i4.IconTabBarComponent, selector: "fdp-icon-tab-bar", inputs: ["stackContent", "tabHeadingLevel", "iconTabType", "tabsConfig", "densityMode", "iconTabFont", "enableTabReordering", "showTotalTab", "multiClick", "layoutMode", "iconTabBackground", "iconTabSize", "colorAssociations", "settings", "maxContentHeight"], outputs: ["tabsConfigChange", "densityModeChange", "iconTabSelected", "iconTabReordered", "closeTab"] }, { kind: "component", type: i4.IconTabBarTabComponent, selector: "fdp-icon-tab-bar-tab", inputs: ["label", "color", "icon", "iconFont", "counter", "active", "badge", "closable", "id"] }, { kind: "component", type: LyLayoutContainerOfRootComponent, selector: "bsu-ly-layout-container-of-root" }, { kind: "component", type: MaskComponent, selector: "bsu-mask", inputs: ["size", "top"] }, { kind: "component", type: LyTabPageComponent, selector: "bsu-ly-tab-page", inputs: ["renderItems"] }, { kind: "component", type: LayoutActionsComponent, selector: "bsu-layout-actions", inputs: ["workflowButtons", "workflowButtonsComboMode", "canSend", "simple", "footerDesign"], outputs: ["workflowChoiceSelect"] }, { kind: "component", type: BreadcrumbComponent, selector: "bsu-breadcrumb", inputs: ["breadCrumb", "allBreadCrumb", "isLast", "index"] }, { kind: "component", type: FormToolbarComponent, selector: "bsu-form-toolbar", outputs: ["toolbarClick"] }, { kind: "component", type: BarsaInfobarsComponent, selector: "bsu-barsa-infobars", inputs: ["infobars"], outputs: ["dismiss"] }, { kind: "directive", type: ContentDensityDirective, selector: "[contentDensity]" }, { kind: "directive", type: FixMoreDirective, selector: "[fixMore]" }, { kind: "pipe", type: i1.SlicePipe, name: "slice" }, { kind: "pipe", type: i2.HeaderFacetValuePipe, name: "facetValue" }, { kind: "pipe", type: i2.PictureFieldSourcePipe, name: "picFieldSrc" }, { kind: "pipe", type: i2.BbbTranslatePipe, name: "bbbTranslate" }, { kind: "pipe", type: i2.SanitizeTextPipe, name: "sanitizeText" }, { kind: "pipe", type: i2.FilterWorkflowInMobilePipe, name: "filterWorkflowInMobile" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
10706
10737
  }
10707
10738
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: FundamentalDynamicFormComponent, decorators: [{
10708
10739
  type: Component,
@@ -10824,6 +10855,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
10824
10855
  type: Input
10825
10856
  }], workflowButtons: [{
10826
10857
  type: Input
10858
+ }], lastUpdateTime: [{
10859
+ type: Input
10827
10860
  }] } });
10828
10861
 
10829
10862
  class UiLinearListContainerWithButtonComponent extends DeviceInfoFieldBaseComponent {
@@ -12474,11 +12507,11 @@ class BarsaSimpleFormComponent extends BaseComponent {
12474
12507
  this._toolbarComponent?.updateCollapsibleItems();
12475
12508
  }
12476
12509
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: BarsaSimpleFormComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
12477
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.8", type: BarsaSimpleFormComponent, isStandalone: false, selector: "bsu-barsa-simple-form", inputs: { breadCrumbs: "breadCrumbs", toolbarVisible: "toolbarVisible", toolbarItems: "toolbarItems", layoutActions: "layoutActions", layout94: "layout94", parameters: "parameters", workflowPanelUi: "workflowPanelUi", context: "context", title: "title", subtitle: "subtitle", description: "description", facetList: "facetList", fieldDict: "fieldDict", removeHeaderBorder: "removeHeaderBorder", removeContentPadding: "removeContentPadding", isMobile: "isMobile", mo: "mo", avatar: "avatar", rtl: "rtl", isModal: "isModal", hideTitle: "hideTitle", hideClose: "hideClose", hidePin: "hidePin", mask: "mask", canSend: "canSend", contentIsPage: "contentIsPage", contentDensity: "contentDensity", deviceSize: "deviceSize", dirValue: "dirValue", landscape: "landscape", standalone: "standalone", modernTabs: "modernTabs", workflowButtons: "workflowButtons", layoutGridCol: "layoutGridCol", colLg: "colLg", colXl: "colXl", colMd: "colMd", formContentMaxWidth: "formContentMaxWidth", formContentJustify: "formContentJustify" }, outputs: { toolbarClick: "toolbarClick", workflowChoiceClick: "workflowChoiceClick", close: "close" }, viewQueries: [{ propertyName: "_toolbarComponent", first: true, predicate: ["formToolbar"], descendants: true }, { propertyName: "titleRef", first: true, predicate: ["titleRef"], descendants: true, read: ViewContainerRef }, { propertyName: "headerAvatarRef", first: true, predicate: ["headerAvatar"], descendants: true }, { propertyName: "closeFormTemplate", first: true, predicate: ["closeForm"], descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: "@if (mask) {\r\n<bsu-mask> </bsu-mask>\r\n}\r\n<fd-layout-grid class=\"!tw-p-0\" resizeHandler [fnResize]=\"RefreshSize\">\r\n <div fdLayoutGridRow>\r\n <div\r\n class=\"grid-col\"\r\n class=\"!tw-p-0\"\r\n [fdLayoutGridCol]=\"0\"\r\n [colMd]=\"layout1.colMd\"\r\n [colLg]=\"layout1.colLg\"\r\n [colXl]=\"layout1.colXl\"\r\n ></div>\r\n <div class=\"grid-col\" [fdLayoutGridCol]=\"12\" [colMd]=\"colMd\" [colLg]=\"colLg\" [colXl]=\"colXl\" class=\"!tw-p-0\">\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n parameters?.LayoutComponent ? renderLayoutComponent : renderDefaultLayout;\r\n context: {\r\n $implicit: parameters?.LayoutComponent,\r\n layout94: layout94\r\n }\r\n \"\r\n ></ng-container>\r\n </div>\r\n <div\r\n class=\"grid-col\"\r\n class=\"!tw-p-0\"\r\n [fdLayoutGridCol]=\"0\"\r\n [colMd]=\"layout2.colMd\"\r\n [colLg]=\"layout2.colLg\"\r\n [colXl]=\"layout2.colXl\"\r\n ></div>\r\n </div>\r\n</fd-layout-grid>\r\n\r\n<ng-template #renderDefaultLayout let-layout94=\"layout94\">\r\n <bsu-ly-layout-container-of-root\r\n class=\"show-boundary\"\r\n [config]=\"layout94\"\r\n [isPanel]=\"false\"\r\n [isRoot]=\"true\"\r\n ></bsu-ly-layout-container-of-root>\r\n @if (workflowButtons && !isModal) { @if (workflowButtons.length) {\r\n <div class=\"workflow-buttons\">\r\n <div style=\"flex-grow: 1\"></div>\r\n <bsu-layout-actions\r\n style=\"display: flex; column-gap: 1rem\"\r\n [simple]=\"true\"\r\n [buttons]=\"[]\"\r\n [workflowButtons]=\"workflowButtons\"\r\n (toolClick)=\"onToolbarClick($event)\"\r\n >\r\n </bsu-layout-actions>\r\n </div>\r\n } }\r\n</ng-template>\r\n<ng-template #renderLayoutComponent let-component let-layout94=\"layout94\">\r\n <bnrc-dynamic-form-component\r\n [component]=\"component\"\r\n [removeContentPadding]=\"removeContentPadding\"\r\n [breadCrumbs]=\"breadCrumbs\"\r\n [description]=\"description\"\r\n [title]=\"title\"\r\n [subtitle]=\"subtitle\"\r\n [toolbarItems]=\"toolbarItems\"\r\n [layoutActions]=\"layoutActions\"\r\n [facetList]=\"facetList\"\r\n [settings]=\"component.Settings\"\r\n [workflowPanelUi]=\"workflowPanelUi\"\r\n [isMobile]=\"isMobile\"\r\n [mo]=\"mo\"\r\n [layout94]=\"layout94\"\r\n [isModal]=\"isModal\"\r\n [context]=\"context\"\r\n [rtl]=\"rtl\"\r\n [fieldDict]=\"fieldDict\"\r\n [mask]=\"mask\"\r\n [dirValue]=\"dirValue\"\r\n [deviceSize]=\"deviceSize\"\r\n [contentDensity]=\"contentDensity\"\r\n [modernTabs]=\"modernTabs\"\r\n [avatar]=\"avatar\"\r\n (events)=\"onDynamicComponentEvents($event)\"\r\n ></bnrc-dynamic-form-component>\r\n</ng-template>\r\n", styles: [":host{display:block;height:auto;min-height:100%;width:100%}:host ::ng-deep fd-dynamic-page[contentIsPage=true] .fd-dynamic-page{height:auto!important;min-height:auto!important}:host ::ng-deep fd-facet .fd-object-status--large{font-size:1.1rem}.hide-title ::ng-deep .fd-dynamic-page__title-container{display:none!important}.no-pin ::ng-deep .fd-dynamic-page__collapsible-header-visibility-container{display:none!important}fd-toolbar.firefox ::ng-deep .fd-toolbar{flex-direction:row-reverse}fd-toolbar.firefox ::ng-deep .fd-toolbar>:first-child{margin-right:5px}\n"], dependencies: [{ kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i2.DynamicFormComponent, selector: "bnrc-dynamic-form-component", inputs: ["breadCrumbs", "toolbarVisible", "toolbarItems", "layoutActions", "layoutActionsTemplateRef", "workflowButtons", "layout94", "footerDesign", "settings", "workflowPanelUi", "title", "subtitle", "description", "facetList", "removeHeaderBorder", "removeContentPadding", "isMobile", "isModal", "avatar", "rtl", "mask", "mo", "contentDensity", "deviceSize", "dirValue", "fieldDict", "modernTabs"] }, { kind: "directive", type: i2.ResizeHandlerDirective, selector: "[resizeHandler]", inputs: ["fnResize"] }, { kind: "component", type: i10.LayoutGridComponent, selector: "fd-layout-grid, [fdLayoutGrid]", inputs: ["noGap", "noHorizontalGap", "noVerticalGap"] }, { kind: "directive", type: i10.LayoutGridColDirective, selector: "[fd-layout-grid-col], [fdLayoutGridCol]", inputs: ["fdLayoutGridCol", "colGrow", "colMd", "colLg", "colXl", "colOffset", "colOffsetMd", "colOffsetLg", "colOffsetXl"] }, { kind: "directive", type: i10.LayoutGridRowDirective, selector: "[fd-layout-grid-row], [fdLayoutGridRow]" }, { kind: "component", type: LyLayoutContainerOfRootComponent, selector: "bsu-ly-layout-container-of-root" }, { kind: "component", type: MaskComponent, selector: "bsu-mask", inputs: ["size", "top"] }, { kind: "component", type: LayoutActionsComponent, selector: "bsu-layout-actions", inputs: ["workflowButtons", "workflowButtonsComboMode", "canSend", "simple", "footerDesign"], outputs: ["workflowChoiceSelect"] }, { kind: "directive", type: ContentDensityDirective, selector: "[contentDensity]" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
12510
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.8", type: BarsaSimpleFormComponent, isStandalone: false, selector: "bsu-barsa-simple-form", inputs: { breadCrumbs: "breadCrumbs", toolbarVisible: "toolbarVisible", toolbarItems: "toolbarItems", layoutActions: "layoutActions", layout94: "layout94", parameters: "parameters", workflowPanelUi: "workflowPanelUi", context: "context", title: "title", subtitle: "subtitle", description: "description", facetList: "facetList", fieldDict: "fieldDict", removeHeaderBorder: "removeHeaderBorder", removeContentPadding: "removeContentPadding", isMobile: "isMobile", mo: "mo", avatar: "avatar", rtl: "rtl", isModal: "isModal", hideTitle: "hideTitle", hideClose: "hideClose", hidePin: "hidePin", mask: "mask", canSend: "canSend", contentIsPage: "contentIsPage", contentDensity: "contentDensity", deviceSize: "deviceSize", dirValue: "dirValue", landscape: "landscape", standalone: "standalone", modernTabs: "modernTabs", workflowButtons: "workflowButtons", layoutGridCol: "layoutGridCol", colLg: "colLg", colXl: "colXl", colMd: "colMd", formContentMaxWidth: "formContentMaxWidth", formContentJustify: "formContentJustify", lastUpdateTime: "lastUpdateTime" }, outputs: { toolbarClick: "toolbarClick", workflowChoiceClick: "workflowChoiceClick", close: "close" }, viewQueries: [{ propertyName: "_toolbarComponent", first: true, predicate: ["formToolbar"], descendants: true }, { propertyName: "titleRef", first: true, predicate: ["titleRef"], descendants: true, read: ViewContainerRef }, { propertyName: "headerAvatarRef", first: true, predicate: ["headerAvatar"], descendants: true }, { propertyName: "closeFormTemplate", first: true, predicate: ["closeForm"], descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: "@if (mask) {\r\n<bsu-mask> </bsu-mask>\r\n}\r\n<fd-layout-grid class=\"!tw-p-0\" resizeHandler [fnResize]=\"RefreshSize\">\r\n <div fdLayoutGridRow>\r\n <div\r\n class=\"grid-col\"\r\n class=\"!tw-p-0\"\r\n [fdLayoutGridCol]=\"0\"\r\n [colMd]=\"layout1.colMd\"\r\n [colLg]=\"layout1.colLg\"\r\n [colXl]=\"layout1.colXl\"\r\n ></div>\r\n <div class=\"grid-col\" [fdLayoutGridCol]=\"12\" [colMd]=\"colMd\" [colLg]=\"colLg\" [colXl]=\"colXl\" class=\"!tw-p-0\">\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n parameters?.LayoutComponent ? renderLayoutComponent : renderDefaultLayout;\r\n context: {\r\n $implicit: parameters?.LayoutComponent,\r\n layout94: layout94\r\n }\r\n \"\r\n ></ng-container>\r\n </div>\r\n <div\r\n class=\"grid-col\"\r\n class=\"!tw-p-0\"\r\n [fdLayoutGridCol]=\"0\"\r\n [colMd]=\"layout2.colMd\"\r\n [colLg]=\"layout2.colLg\"\r\n [colXl]=\"layout2.colXl\"\r\n ></div>\r\n </div>\r\n</fd-layout-grid>\r\n\r\n<ng-template #renderDefaultLayout let-layout94=\"layout94\">\r\n <bsu-ly-layout-container-of-root\r\n class=\"show-boundary\"\r\n [config]=\"layout94\"\r\n [isPanel]=\"false\"\r\n [isRoot]=\"true\"\r\n ></bsu-ly-layout-container-of-root>\r\n @if (workflowButtons && !isModal) { @if (workflowButtons.length) {\r\n <div class=\"workflow-buttons\">\r\n <div style=\"flex-grow: 1\"></div>\r\n <bsu-layout-actions\r\n style=\"display: flex; column-gap: 1rem\"\r\n [simple]=\"true\"\r\n [buttons]=\"[]\"\r\n [workflowButtons]=\"workflowButtons\"\r\n (toolClick)=\"onToolbarClick($event)\"\r\n >\r\n </bsu-layout-actions>\r\n </div>\r\n } }\r\n</ng-template>\r\n<ng-template #renderLayoutComponent let-component let-layout94=\"layout94\">\r\n <bnrc-dynamic-form-component\r\n [component]=\"component\"\r\n [removeContentPadding]=\"removeContentPadding\"\r\n [breadCrumbs]=\"breadCrumbs\"\r\n [description]=\"description\"\r\n [title]=\"title\"\r\n [subtitle]=\"subtitle\"\r\n [lastUpdateTime]=\"lastUpdateTime\"\r\n [toolbarItems]=\"toolbarItems\"\r\n [layoutActions]=\"layoutActions\"\r\n [facetList]=\"facetList\"\r\n [settings]=\"component.Settings\"\r\n [workflowPanelUi]=\"workflowPanelUi\"\r\n [isMobile]=\"isMobile\"\r\n [mo]=\"mo\"\r\n [layout94]=\"layout94\"\r\n [isModal]=\"isModal\"\r\n [context]=\"context\"\r\n [rtl]=\"rtl\"\r\n [fieldDict]=\"fieldDict\"\r\n [mask]=\"mask\"\r\n [dirValue]=\"dirValue\"\r\n [deviceSize]=\"deviceSize\"\r\n [contentDensity]=\"contentDensity\"\r\n [modernTabs]=\"modernTabs\"\r\n [avatar]=\"avatar\"\r\n (events)=\"onDynamicComponentEvents($event)\"\r\n ></bnrc-dynamic-form-component>\r\n</ng-template>\r\n", styles: [":host{display:block;height:auto;min-height:100%;width:100%}:host ::ng-deep fd-dynamic-page[contentIsPage=true] .fd-dynamic-page{height:auto!important;min-height:auto!important}:host ::ng-deep fd-facet .fd-object-status--large{font-size:1.1rem}.hide-title ::ng-deep .fd-dynamic-page__title-container{display:none!important}.no-pin ::ng-deep .fd-dynamic-page__collapsible-header-visibility-container{display:none!important}fd-toolbar.firefox ::ng-deep .fd-toolbar{flex-direction:row-reverse}fd-toolbar.firefox ::ng-deep .fd-toolbar>:first-child{margin-right:5px}\n"], dependencies: [{ kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i2.DynamicFormComponent, selector: "bnrc-dynamic-form-component", inputs: ["breadCrumbs", "toolbarVisible", "toolbarItems", "layoutActions", "layoutActionsTemplateRef", "workflowButtons", "layout94", "footerDesign", "settings", "lastUpdateTime", "workflowPanelUi", "title", "subtitle", "description", "facetList", "removeHeaderBorder", "removeContentPadding", "isMobile", "isModal", "avatar", "rtl", "mask", "mo", "contentDensity", "deviceSize", "dirValue", "fieldDict", "modernTabs"] }, { kind: "directive", type: i2.ResizeHandlerDirective, selector: "[resizeHandler]", inputs: ["fnResize"] }, { kind: "component", type: i10.LayoutGridComponent, selector: "fd-layout-grid, [fdLayoutGrid]", inputs: ["noGap", "noHorizontalGap", "noVerticalGap"] }, { kind: "directive", type: i10.LayoutGridColDirective, selector: "[fd-layout-grid-col], [fdLayoutGridCol]", inputs: ["fdLayoutGridCol", "colGrow", "colMd", "colLg", "colXl", "colOffset", "colOffsetMd", "colOffsetLg", "colOffsetXl"] }, { kind: "directive", type: i10.LayoutGridRowDirective, selector: "[fd-layout-grid-row], [fdLayoutGridRow]" }, { kind: "component", type: LyLayoutContainerOfRootComponent, selector: "bsu-ly-layout-container-of-root" }, { kind: "component", type: MaskComponent, selector: "bsu-mask", inputs: ["size", "top"] }, { kind: "component", type: LayoutActionsComponent, selector: "bsu-layout-actions", inputs: ["workflowButtons", "workflowButtonsComboMode", "canSend", "simple", "footerDesign"], outputs: ["workflowChoiceSelect"] }, { kind: "directive", type: ContentDensityDirective, selector: "[contentDensity]" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
12478
12511
  }
12479
12512
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: BarsaSimpleFormComponent, decorators: [{
12480
12513
  type: Component,
12481
- args: [{ selector: 'bsu-barsa-simple-form', changeDetection: ChangeDetectionStrategy.OnPush, standalone: false, template: "@if (mask) {\r\n<bsu-mask> </bsu-mask>\r\n}\r\n<fd-layout-grid class=\"!tw-p-0\" resizeHandler [fnResize]=\"RefreshSize\">\r\n <div fdLayoutGridRow>\r\n <div\r\n class=\"grid-col\"\r\n class=\"!tw-p-0\"\r\n [fdLayoutGridCol]=\"0\"\r\n [colMd]=\"layout1.colMd\"\r\n [colLg]=\"layout1.colLg\"\r\n [colXl]=\"layout1.colXl\"\r\n ></div>\r\n <div class=\"grid-col\" [fdLayoutGridCol]=\"12\" [colMd]=\"colMd\" [colLg]=\"colLg\" [colXl]=\"colXl\" class=\"!tw-p-0\">\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n parameters?.LayoutComponent ? renderLayoutComponent : renderDefaultLayout;\r\n context: {\r\n $implicit: parameters?.LayoutComponent,\r\n layout94: layout94\r\n }\r\n \"\r\n ></ng-container>\r\n </div>\r\n <div\r\n class=\"grid-col\"\r\n class=\"!tw-p-0\"\r\n [fdLayoutGridCol]=\"0\"\r\n [colMd]=\"layout2.colMd\"\r\n [colLg]=\"layout2.colLg\"\r\n [colXl]=\"layout2.colXl\"\r\n ></div>\r\n </div>\r\n</fd-layout-grid>\r\n\r\n<ng-template #renderDefaultLayout let-layout94=\"layout94\">\r\n <bsu-ly-layout-container-of-root\r\n class=\"show-boundary\"\r\n [config]=\"layout94\"\r\n [isPanel]=\"false\"\r\n [isRoot]=\"true\"\r\n ></bsu-ly-layout-container-of-root>\r\n @if (workflowButtons && !isModal) { @if (workflowButtons.length) {\r\n <div class=\"workflow-buttons\">\r\n <div style=\"flex-grow: 1\"></div>\r\n <bsu-layout-actions\r\n style=\"display: flex; column-gap: 1rem\"\r\n [simple]=\"true\"\r\n [buttons]=\"[]\"\r\n [workflowButtons]=\"workflowButtons\"\r\n (toolClick)=\"onToolbarClick($event)\"\r\n >\r\n </bsu-layout-actions>\r\n </div>\r\n } }\r\n</ng-template>\r\n<ng-template #renderLayoutComponent let-component let-layout94=\"layout94\">\r\n <bnrc-dynamic-form-component\r\n [component]=\"component\"\r\n [removeContentPadding]=\"removeContentPadding\"\r\n [breadCrumbs]=\"breadCrumbs\"\r\n [description]=\"description\"\r\n [title]=\"title\"\r\n [subtitle]=\"subtitle\"\r\n [toolbarItems]=\"toolbarItems\"\r\n [layoutActions]=\"layoutActions\"\r\n [facetList]=\"facetList\"\r\n [settings]=\"component.Settings\"\r\n [workflowPanelUi]=\"workflowPanelUi\"\r\n [isMobile]=\"isMobile\"\r\n [mo]=\"mo\"\r\n [layout94]=\"layout94\"\r\n [isModal]=\"isModal\"\r\n [context]=\"context\"\r\n [rtl]=\"rtl\"\r\n [fieldDict]=\"fieldDict\"\r\n [mask]=\"mask\"\r\n [dirValue]=\"dirValue\"\r\n [deviceSize]=\"deviceSize\"\r\n [contentDensity]=\"contentDensity\"\r\n [modernTabs]=\"modernTabs\"\r\n [avatar]=\"avatar\"\r\n (events)=\"onDynamicComponentEvents($event)\"\r\n ></bnrc-dynamic-form-component>\r\n</ng-template>\r\n", styles: [":host{display:block;height:auto;min-height:100%;width:100%}:host ::ng-deep fd-dynamic-page[contentIsPage=true] .fd-dynamic-page{height:auto!important;min-height:auto!important}:host ::ng-deep fd-facet .fd-object-status--large{font-size:1.1rem}.hide-title ::ng-deep .fd-dynamic-page__title-container{display:none!important}.no-pin ::ng-deep .fd-dynamic-page__collapsible-header-visibility-container{display:none!important}fd-toolbar.firefox ::ng-deep .fd-toolbar{flex-direction:row-reverse}fd-toolbar.firefox ::ng-deep .fd-toolbar>:first-child{margin-right:5px}\n"] }]
12514
+ args: [{ selector: 'bsu-barsa-simple-form', changeDetection: ChangeDetectionStrategy.OnPush, standalone: false, template: "@if (mask) {\r\n<bsu-mask> </bsu-mask>\r\n}\r\n<fd-layout-grid class=\"!tw-p-0\" resizeHandler [fnResize]=\"RefreshSize\">\r\n <div fdLayoutGridRow>\r\n <div\r\n class=\"grid-col\"\r\n class=\"!tw-p-0\"\r\n [fdLayoutGridCol]=\"0\"\r\n [colMd]=\"layout1.colMd\"\r\n [colLg]=\"layout1.colLg\"\r\n [colXl]=\"layout1.colXl\"\r\n ></div>\r\n <div class=\"grid-col\" [fdLayoutGridCol]=\"12\" [colMd]=\"colMd\" [colLg]=\"colLg\" [colXl]=\"colXl\" class=\"!tw-p-0\">\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n parameters?.LayoutComponent ? renderLayoutComponent : renderDefaultLayout;\r\n context: {\r\n $implicit: parameters?.LayoutComponent,\r\n layout94: layout94\r\n }\r\n \"\r\n ></ng-container>\r\n </div>\r\n <div\r\n class=\"grid-col\"\r\n class=\"!tw-p-0\"\r\n [fdLayoutGridCol]=\"0\"\r\n [colMd]=\"layout2.colMd\"\r\n [colLg]=\"layout2.colLg\"\r\n [colXl]=\"layout2.colXl\"\r\n ></div>\r\n </div>\r\n</fd-layout-grid>\r\n\r\n<ng-template #renderDefaultLayout let-layout94=\"layout94\">\r\n <bsu-ly-layout-container-of-root\r\n class=\"show-boundary\"\r\n [config]=\"layout94\"\r\n [isPanel]=\"false\"\r\n [isRoot]=\"true\"\r\n ></bsu-ly-layout-container-of-root>\r\n @if (workflowButtons && !isModal) { @if (workflowButtons.length) {\r\n <div class=\"workflow-buttons\">\r\n <div style=\"flex-grow: 1\"></div>\r\n <bsu-layout-actions\r\n style=\"display: flex; column-gap: 1rem\"\r\n [simple]=\"true\"\r\n [buttons]=\"[]\"\r\n [workflowButtons]=\"workflowButtons\"\r\n (toolClick)=\"onToolbarClick($event)\"\r\n >\r\n </bsu-layout-actions>\r\n </div>\r\n } }\r\n</ng-template>\r\n<ng-template #renderLayoutComponent let-component let-layout94=\"layout94\">\r\n <bnrc-dynamic-form-component\r\n [component]=\"component\"\r\n [removeContentPadding]=\"removeContentPadding\"\r\n [breadCrumbs]=\"breadCrumbs\"\r\n [description]=\"description\"\r\n [title]=\"title\"\r\n [subtitle]=\"subtitle\"\r\n [lastUpdateTime]=\"lastUpdateTime\"\r\n [toolbarItems]=\"toolbarItems\"\r\n [layoutActions]=\"layoutActions\"\r\n [facetList]=\"facetList\"\r\n [settings]=\"component.Settings\"\r\n [workflowPanelUi]=\"workflowPanelUi\"\r\n [isMobile]=\"isMobile\"\r\n [mo]=\"mo\"\r\n [layout94]=\"layout94\"\r\n [isModal]=\"isModal\"\r\n [context]=\"context\"\r\n [rtl]=\"rtl\"\r\n [fieldDict]=\"fieldDict\"\r\n [mask]=\"mask\"\r\n [dirValue]=\"dirValue\"\r\n [deviceSize]=\"deviceSize\"\r\n [contentDensity]=\"contentDensity\"\r\n [modernTabs]=\"modernTabs\"\r\n [avatar]=\"avatar\"\r\n (events)=\"onDynamicComponentEvents($event)\"\r\n ></bnrc-dynamic-form-component>\r\n</ng-template>\r\n", styles: [":host{display:block;height:auto;min-height:100%;width:100%}:host ::ng-deep fd-dynamic-page[contentIsPage=true] .fd-dynamic-page{height:auto!important;min-height:auto!important}:host ::ng-deep fd-facet .fd-object-status--large{font-size:1.1rem}.hide-title ::ng-deep .fd-dynamic-page__title-container{display:none!important}.no-pin ::ng-deep .fd-dynamic-page__collapsible-header-visibility-container{display:none!important}fd-toolbar.firefox ::ng-deep .fd-toolbar{flex-direction:row-reverse}fd-toolbar.firefox ::ng-deep .fd-toolbar>:first-child{margin-right:5px}\n"] }]
12482
12515
  }], propDecorators: { _toolbarComponent: [{
12483
12516
  type: ViewChild,
12484
12517
  args: ['formToolbar']
@@ -12566,6 +12599,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
12566
12599
  type: Input
12567
12600
  }], formContentJustify: [{
12568
12601
  type: Input
12602
+ }], lastUpdateTime: [{
12603
+ type: Input
12569
12604
  }], titleRef: [{
12570
12605
  type: ViewChild,
12571
12606
  args: ['titleRef', { read: ViewContainerRef }]
@@ -12580,6 +12615,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
12580
12615
  class UiFormPanelComponent extends FormBaseComponent {
12581
12616
  constructor() {
12582
12617
  super(...arguments);
12618
+ /** زمان آخرین بارگذاری/بروزرسانی فرم؛ به کامپوننت‌های پایین‌تر پاس داده می‌شود. */
12619
+ this.lastUpdateTime = signal(new Date(), /* @ts-ignore */
12620
+ ...(ngDevMode ? [{ debugName: "lastUpdateTime" }] : /* istanbul ignore next */ []));
12583
12621
  /** Inserted by Angular inject() migration for backwards compatibility */
12584
12622
  this._ecap = inject(EnumCaptionPipe);
12585
12623
  this._contentDensityService = inject(ContentDensityService);
@@ -12642,13 +12680,30 @@ class UiFormPanelComponent extends FormBaseComponent {
12642
12680
  }));
12643
12681
  this.fullscreen = parameters?.FullscreenDefault === true && !this.isModal;
12644
12682
  this._formPanelService.setIsModal(this.isModal);
12683
+ this._startPolling();
12684
+ }
12685
+ /**
12686
+ * بارگذاری مجدد خودکار فرم بر اساس PollingInterval تنظیمات (ساختار hh:mm؛ مثلاً "0.01" = یک دقیقه).
12687
+ * از متد Reload روی FormPanelCtrlr استفاده می‌کند. صفر/خالی یعنی خاموش.
12688
+ */
12689
+ _startPolling() {
12690
+ const pollingInterval = hhmmToMs(this.parameters?.PollingInterval);
12691
+ if (!pollingInterval) {
12692
+ return;
12693
+ }
12694
+ timer(pollingInterval, pollingInterval)
12695
+ .pipe(takeUntil$1(this._onDestroy$))
12696
+ .subscribe(() => {
12697
+ this.FormPanelCtrlr?.Reload();
12698
+ this.lastUpdateTime.set(new Date());
12699
+ });
12645
12700
  }
12646
12701
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: UiFormPanelComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
12647
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.8", type: UiFormPanelComponent, isStandalone: false, selector: "bsu-ui-form-panel", providers: [FormPanelService, ScrollLayoutContextHolder], usesInheritance: true, ngImport: i0, template: "@if (isSearchPanel || (isSimple$ | async) || isSubForm || isModal || isFormReport || parameters?.IsSimple) {\r\n<bsu-barsa-simple-form\r\n darkClass\r\n [hrResponsive]=\"parameters?.HResponsiveSettings\"\r\n [config]=\"layout94\"\r\n [cssStyle]=\"parameters?.CssStyles\"\r\n [canSend]=\"(canSend$ | async) === true\"\r\n [removeContentPadding]=\"(headerRemoveContentPadding$ | async)!!\"\r\n [breadCrumbs]=\"breadCrumbs$ | async\"\r\n [description]=\"(headerDescription$ | async)!!\"\r\n [hideClose]=\"(hideClose$ | async)!!\"\r\n [hideBreadCrumb]=\"(hideBreadCrumb$ | async) === true\"\r\n [hideTitle]=\"(hideTitle$ | async)!!\"\r\n [hidePin]=\"(hidePin$ | async)!!\"\r\n [infobars]=\"(infobars$ | async)!!\"\r\n [title]=\"(title$ | async)!!\"\r\n [isModal]=\"isModal\"\r\n [formContentMaxWidth]=\"formContentMaxWidth\"\r\n [formContentJustify]=\"formContentJustify\"\r\n [subtitle]=\"(headerSubtitle$ | async)!!\"\r\n [toolbarItems]=\"extendToolbarItems$ | async | tlbButtons: 'inFooter':false\"\r\n [layoutActions]=\"extendToolbarItems$ | async | tlbButtons: 'inFooter':true | hideAcceptCancel: hideAcceptAndCancel\"\r\n [toolbarVisible]=\"(toolbarVisible$ | async)!!\"\r\n [facetList]=\"(headerLayout$ | async)?.FacetList2\"\r\n [parameters]=\"parameters\"\r\n [workflowPanelUi]=\"workflowPanelUi$ | async\"\r\n [workflowButtons]=\"(workflowButtons$ | async)!!\"\r\n [isMobile]=\"isMobile\"\r\n [layout94]=\"extendLayout94$ | async\"\r\n [layoutGridCol]=\"+(parameters?.LayoutGridCol || 12)\"\r\n [colLg]=\"+(parameters?.ColLg || 0)\"\r\n [colXl]=\"+(parameters?.ColXl || 0)\"\r\n [colMd]=\"+(parameters?.ColMd || 0)\"\r\n [hideFooter]=\"(hideFooter$ | async) === true\"\r\n [rtl]=\"(rtl$ | async)!!\"\r\n [mask]=\"(mask$ | async)!!\"\r\n [mo]=\"(mo$ | async)!!\"\r\n [dirValue]=\"(dirValue$ | async)!!\"\r\n [deviceSize]=\"(deviceSize$ | async)!!\"\r\n [contentDensity]=\"(contentDensity$ | async)!!\"\r\n [modernTabs]=\"(modernTabs$ | async)!!\"\r\n [selectedTabPageName]=\"(selectedTabPageName$ | async)!!\"\r\n [avatar]=\"(avatar$ | async)!!\"\r\n [circleAvatar]=\"(circleAvatar$ | async)!!\"\r\n [fieldDict]=\"(fieldDict$ | async)!!\"\r\n [landscape]=\"(landscape$ | async) === true\"\r\n [standalone]=\"(standalone$ | async) === true\"\r\n (close)=\"onClose()\"\r\n (toolbarClick)=\"onToolbarClick($event)\"\r\n [contentIsPage]=\"parameters?.ContentIsPage === true\"\r\n (workflowChoiceClick)=\"onWorkflowChoiceClick($event)\"\r\n></bsu-barsa-simple-form>\r\n} @else {\r\n<bsu-fundamental-dynamic-form\r\n darkClass\r\n [hideBreadCrumb]=\"(hideBreadCrumb$ | async) === true\"\r\n [modernTabContainerComponent]=\"modernTabContainerComponent\"\r\n [hrResponsive]=\"parameters?.HResponsiveSettings\"\r\n [config]=\"layout94\"\r\n [infobars]=\"(infobars$ | async)!!\"\r\n (dismissInfobar)=\"onDismissInfobar($event)\"\r\n [cssStyle]=\"parameters?.CssStyles\"\r\n [style.position]=\"(mask$ | async) ? 'relative' : null\"\r\n [workflowButtons]=\"(workflowButtons$ | async)!!\"\r\n [canSend]=\"(canSend$ | async) === true\"\r\n [removeContentPadding]=\"(headerRemoveContentPadding$ | async)!!\"\r\n [breadCrumbs]=\"breadCrumbs$ | async\"\r\n [description]=\"(headerDescription$ | async)!!\"\r\n [hideClose]=\"(hideClose$ | async)!!\"\r\n [hideTitle]=\"(hideTitle$ | async)!!\"\r\n [hidePin]=\"(hidePin$ | async)!!\"\r\n [title]=\"(title$ | async)!!\"\r\n [subtitle]=\"(headerSubtitle$ | async)!!\"\r\n [toolbarItems]=\"extendToolbarItems$ | async | tlbButtons: 'inFooter':false\"\r\n [layoutActions]=\"extendToolbarItems$ | async | tlbButtons: 'inFooter':true | hideAcceptCancel: hideAcceptAndCancel\"\r\n [toolbarVisible]=\"(toolbarVisible$ | async)!!\"\r\n [facetList]=\"(headerLayout$ | async)?.FacetList2\"\r\n [formContentMaxWidth]=\"formContentMaxWidth\"\r\n [formContentJustify]=\"formContentJustify\"\r\n [parameters]=\"parameters\"\r\n [fullscreen]=\"fullscreen\"\r\n [hideFooter]=\"(hideFooter$ | async) === true\"\r\n [workflowPanelUi]=\"workflowPanelUi$ | async\"\r\n [isMobile]=\"isMobile\"\r\n [layout94]=\"extendLayout94$ | async\"\r\n [rtl]=\"(rtl$ | async)!!\"\r\n [layoutGridCol]=\"+(parameters?.LayoutGridCol || 12)\"\r\n [colLg]=\"+(parameters?.ColLg || 0)\"\r\n [colXl]=\"+(parameters?.ColXl || 0)\"\r\n [colMd]=\"+(parameters?.ColMd || 0)\"\r\n [footerDesign]=\"footerDesign\"\r\n [mask]=\"(mask$ | async)!!\"\r\n [mo]=\"(mo$ | async)!!\"\r\n [dirValue]=\"(dirValue$ | async)!!\"\r\n [deviceSize]=\"(deviceSize$ | async)!!\"\r\n [contentDensity]=\"(contentDensity$ | async)!!\"\r\n [modernTabs]=\"(modernTabs$ | async)!!\"\r\n [selectedTabPageName]=\"(selectedTabPageName$ | async)!!\"\r\n [avatar]=\"(avatar$ | async)!!\"\r\n [circleAvatar]=\"(circleAvatar$ | async)!!\"\r\n [fieldDict]=\"(fieldDict$ | async)!!\"\r\n [landscape]=\"(landscape$ | async) === true\"\r\n [standalone]=\"(standalone$ | async) === true\"\r\n (fullscreenRequest)=\"onFullscreen()\"\r\n (close)=\"onClose()\"\r\n (toolbarClick)=\"onToolbarClick($event)\"\r\n [contentIsPage]=\"parameters?.ContentIsPage === true\"\r\n (workflowChoiceClick)=\"onWorkflowChoiceClick($event)\"\r\n></bsu-fundamental-dynamic-form>\r\n}\r\n", styles: [":host{display:block;width:100%;min-height:100%}:host.fullscreen{position:fixed;top:0}.workflow-buttons{display:flex;margin-top:5px;padding:5px}\n"], dependencies: [{ kind: "directive", type: i2.DynamicStyleDirective, selector: "[cssStyle]", inputs: ["cssStyle"] }, { kind: "directive", type: i2.HorizontalResponsiveDirective, selector: "[hrResponsive]", inputs: ["disable", "config", "hrResponsive"] }, { kind: "component", type: FundamentalDynamicFormComponent, selector: "bsu-fundamental-dynamic-form", inputs: ["breadCrumbs", "toolbarVisible", "toolbarItems", "layoutActions", "layout94", "parameters", "workflowPanelUi", "context", "title", "subtitle", "description", "facetList", "infobars", "fieldDict", "removeHeaderBorder", "removeContentPadding", "isMobile", "mo", "avatar", "circleAvatar", "hideBreadCrumb", "rtl", "hideFooter", "hideTitle", "hideClose", "hidePin", "fullscreen", "mask", "canSend", "contentIsPage", "contentDensity", "deviceSize", "dirValue", "landscape", "standalone", "modernTabs", "selectedTabPageName", "modernTabContainerComponent", "layoutGridCol", "colLg", "colXl", "colMd", "footerDesign", "formContentMaxWidth", "formContentJustify", "workflowButtons"], outputs: ["toolbarClick", "workflowChoiceClick", "close", "fullscreenRequest", "dismissInfobar"] }, { kind: "component", type: BarsaSimpleFormComponent, selector: "bsu-barsa-simple-form", inputs: ["breadCrumbs", "toolbarVisible", "toolbarItems", "layoutActions", "layout94", "parameters", "workflowPanelUi", "context", "title", "subtitle", "description", "facetList", "fieldDict", "removeHeaderBorder", "removeContentPadding", "isMobile", "mo", "avatar", "rtl", "isModal", "hideTitle", "hideClose", "hidePin", "mask", "canSend", "contentIsPage", "contentDensity", "deviceSize", "dirValue", "landscape", "standalone", "modernTabs", "workflowButtons", "layoutGridCol", "colLg", "colXl", "colMd", "formContentMaxWidth", "formContentJustify"], outputs: ["toolbarClick", "workflowChoiceClick", "close"] }, { kind: "directive", type: ContentDensityDirective, selector: "[contentDensity]" }, { kind: "directive", type: DarkClassDirective, selector: "[darkClass]" }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "pipe", type: i2.TlbButtonsPipe, name: "tlbButtons" }, { kind: "pipe", type: i2.HideAcceptCancelButtonsPipe, name: "hideAcceptCancel" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
12702
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.8", type: UiFormPanelComponent, isStandalone: false, selector: "bsu-ui-form-panel", providers: [FormPanelService, ScrollLayoutContextHolder], usesInheritance: true, ngImport: i0, template: "@if (isSearchPanel || (isSimple$ | async) || isSubForm || isModal || isFormReport || parameters?.IsSimple) {\r\n<bsu-barsa-simple-form\r\n darkClass\r\n [hrResponsive]=\"parameters?.HResponsiveSettings\"\r\n [config]=\"layout94\"\r\n [cssStyle]=\"parameters?.CssStyles\"\r\n [canSend]=\"(canSend$ | async) === true\"\r\n [removeContentPadding]=\"(headerRemoveContentPadding$ | async)!!\"\r\n [breadCrumbs]=\"breadCrumbs$ | async\"\r\n [description]=\"(headerDescription$ | async)!!\"\r\n [hideClose]=\"(hideClose$ | async)!!\"\r\n [hideBreadCrumb]=\"(hideBreadCrumb$ | async) === true\"\r\n [hideTitle]=\"(hideTitle$ | async)!!\"\r\n [hidePin]=\"(hidePin$ | async)!!\"\r\n [infobars]=\"(infobars$ | async)!!\"\r\n [title]=\"(title$ | async)!!\"\r\n [isModal]=\"isModal\"\r\n [formContentMaxWidth]=\"formContentMaxWidth\"\r\n [formContentJustify]=\"formContentJustify\"\r\n [subtitle]=\"(headerSubtitle$ | async)!!\"\r\n [toolbarItems]=\"extendToolbarItems$ | async | tlbButtons: 'inFooter':false\"\r\n [layoutActions]=\"extendToolbarItems$ | async | tlbButtons: 'inFooter':true | hideAcceptCancel: hideAcceptAndCancel\"\r\n [toolbarVisible]=\"(toolbarVisible$ | async)!!\"\r\n [facetList]=\"(headerLayout$ | async)?.FacetList2\"\r\n [parameters]=\"parameters\"\r\n [workflowPanelUi]=\"workflowPanelUi$ | async\"\r\n [workflowButtons]=\"(workflowButtons$ | async)!!\"\r\n [isMobile]=\"isMobile\"\r\n [layout94]=\"extendLayout94$ | async\"\r\n [layoutGridCol]=\"+(parameters?.LayoutGridCol || 12)\"\r\n [colLg]=\"+(parameters?.ColLg || 0)\"\r\n [colXl]=\"+(parameters?.ColXl || 0)\"\r\n [colMd]=\"+(parameters?.ColMd || 0)\"\r\n [hideFooter]=\"(hideFooter$ | async) === true\"\r\n [rtl]=\"(rtl$ | async)!!\"\r\n [mask]=\"(mask$ | async)!!\"\r\n [mo]=\"(mo$ | async)!!\"\r\n [dirValue]=\"(dirValue$ | async)!!\"\r\n [deviceSize]=\"(deviceSize$ | async)!!\"\r\n [contentDensity]=\"(contentDensity$ | async)!!\"\r\n [modernTabs]=\"(modernTabs$ | async)!!\"\r\n [selectedTabPageName]=\"(selectedTabPageName$ | async)!!\"\r\n [avatar]=\"(avatar$ | async)!!\"\r\n [circleAvatar]=\"(circleAvatar$ | async)!!\"\r\n [fieldDict]=\"(fieldDict$ | async)!!\"\r\n [landscape]=\"(landscape$ | async) === true\"\r\n [standalone]=\"(standalone$ | async) === true\"\r\n [lastUpdateTime]=\"lastUpdateTime() | relativeDate\"\r\n (close)=\"onClose()\"\r\n (toolbarClick)=\"onToolbarClick($event)\"\r\n [contentIsPage]=\"parameters?.ContentIsPage === true\"\r\n (workflowChoiceClick)=\"onWorkflowChoiceClick($event)\"\r\n></bsu-barsa-simple-form>\r\n} @else {\r\n<bsu-fundamental-dynamic-form\r\n darkClass\r\n [hideBreadCrumb]=\"(hideBreadCrumb$ | async) === true\"\r\n [modernTabContainerComponent]=\"modernTabContainerComponent\"\r\n [hrResponsive]=\"parameters?.HResponsiveSettings\"\r\n [config]=\"layout94\"\r\n [infobars]=\"(infobars$ | async)!!\"\r\n (dismissInfobar)=\"onDismissInfobar($event)\"\r\n [cssStyle]=\"parameters?.CssStyles\"\r\n [style.position]=\"(mask$ | async) ? 'relative' : null\"\r\n [workflowButtons]=\"(workflowButtons$ | async)!!\"\r\n [canSend]=\"(canSend$ | async) === true\"\r\n [removeContentPadding]=\"(headerRemoveContentPadding$ | async)!!\"\r\n [breadCrumbs]=\"breadCrumbs$ | async\"\r\n [description]=\"(headerDescription$ | async)!!\"\r\n [hideClose]=\"(hideClose$ | async)!!\"\r\n [hideTitle]=\"(hideTitle$ | async)!!\"\r\n [hidePin]=\"(hidePin$ | async)!!\"\r\n [title]=\"(title$ | async)!!\"\r\n [subtitle]=\"(headerSubtitle$ | async)!!\"\r\n [toolbarItems]=\"extendToolbarItems$ | async | tlbButtons: 'inFooter':false\"\r\n [layoutActions]=\"extendToolbarItems$ | async | tlbButtons: 'inFooter':true | hideAcceptCancel: hideAcceptAndCancel\"\r\n [toolbarVisible]=\"(toolbarVisible$ | async)!!\"\r\n [facetList]=\"(headerLayout$ | async)?.FacetList2\"\r\n [formContentMaxWidth]=\"formContentMaxWidth\"\r\n [formContentJustify]=\"formContentJustify\"\r\n [parameters]=\"parameters\"\r\n [fullscreen]=\"fullscreen\"\r\n [hideFooter]=\"(hideFooter$ | async) === true\"\r\n [workflowPanelUi]=\"workflowPanelUi$ | async\"\r\n [isMobile]=\"isMobile\"\r\n [layout94]=\"extendLayout94$ | async\"\r\n [rtl]=\"(rtl$ | async)!!\"\r\n [layoutGridCol]=\"+(parameters?.LayoutGridCol || 12)\"\r\n [colLg]=\"+(parameters?.ColLg || 0)\"\r\n [colXl]=\"+(parameters?.ColXl || 0)\"\r\n [colMd]=\"+(parameters?.ColMd || 0)\"\r\n [footerDesign]=\"footerDesign\"\r\n [mask]=\"(mask$ | async)!!\"\r\n [mo]=\"(mo$ | async)!!\"\r\n [dirValue]=\"(dirValue$ | async)!!\"\r\n [deviceSize]=\"(deviceSize$ | async)!!\"\r\n [contentDensity]=\"(contentDensity$ | async)!!\"\r\n [modernTabs]=\"(modernTabs$ | async)!!\"\r\n [selectedTabPageName]=\"(selectedTabPageName$ | async)!!\"\r\n [avatar]=\"(avatar$ | async)!!\"\r\n [circleAvatar]=\"(circleAvatar$ | async)!!\"\r\n [fieldDict]=\"(fieldDict$ | async)!!\"\r\n [landscape]=\"(landscape$ | async) === true\"\r\n [standalone]=\"(standalone$ | async) === true\"\r\n [lastUpdateTime]=\"lastUpdateTime() | relativeDate\"\r\n (fullscreenRequest)=\"onFullscreen()\"\r\n (close)=\"onClose()\"\r\n (toolbarClick)=\"onToolbarClick($event)\"\r\n [contentIsPage]=\"parameters?.ContentIsPage === true\"\r\n (workflowChoiceClick)=\"onWorkflowChoiceClick($event)\"\r\n></bsu-fundamental-dynamic-form>\r\n}\r\n", styles: [":host{display:block;width:100%;min-height:100%}:host.fullscreen{position:fixed;top:0}.workflow-buttons{display:flex;margin-top:5px;padding:5px}\n"], dependencies: [{ kind: "directive", type: i2.DynamicStyleDirective, selector: "[cssStyle]", inputs: ["cssStyle"] }, { kind: "directive", type: i2.HorizontalResponsiveDirective, selector: "[hrResponsive]", inputs: ["disable", "config", "hrResponsive"] }, { kind: "component", type: FundamentalDynamicFormComponent, selector: "bsu-fundamental-dynamic-form", inputs: ["breadCrumbs", "toolbarVisible", "toolbarItems", "layoutActions", "layout94", "parameters", "workflowPanelUi", "context", "title", "subtitle", "description", "facetList", "infobars", "fieldDict", "removeHeaderBorder", "removeContentPadding", "isMobile", "mo", "avatar", "circleAvatar", "hideBreadCrumb", "rtl", "hideFooter", "hideTitle", "hideClose", "hidePin", "fullscreen", "mask", "canSend", "contentIsPage", "contentDensity", "deviceSize", "dirValue", "landscape", "standalone", "modernTabs", "selectedTabPageName", "modernTabContainerComponent", "layoutGridCol", "colLg", "colXl", "colMd", "footerDesign", "formContentMaxWidth", "formContentJustify", "workflowButtons", "lastUpdateTime"], outputs: ["toolbarClick", "workflowChoiceClick", "close", "fullscreenRequest", "dismissInfobar"] }, { kind: "component", type: BarsaSimpleFormComponent, selector: "bsu-barsa-simple-form", inputs: ["breadCrumbs", "toolbarVisible", "toolbarItems", "layoutActions", "layout94", "parameters", "workflowPanelUi", "context", "title", "subtitle", "description", "facetList", "fieldDict", "removeHeaderBorder", "removeContentPadding", "isMobile", "mo", "avatar", "rtl", "isModal", "hideTitle", "hideClose", "hidePin", "mask", "canSend", "contentIsPage", "contentDensity", "deviceSize", "dirValue", "landscape", "standalone", "modernTabs", "workflowButtons", "layoutGridCol", "colLg", "colXl", "colMd", "formContentMaxWidth", "formContentJustify", "lastUpdateTime"], outputs: ["toolbarClick", "workflowChoiceClick", "close"] }, { kind: "directive", type: ContentDensityDirective, selector: "[contentDensity]" }, { kind: "directive", type: DarkClassDirective, selector: "[darkClass]" }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "pipe", type: i2.RelativeDatePipe, name: "relativeDate" }, { kind: "pipe", type: i2.TlbButtonsPipe, name: "tlbButtons" }, { kind: "pipe", type: i2.HideAcceptCancelButtonsPipe, name: "hideAcceptCancel" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
12648
12703
  }
12649
12704
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: UiFormPanelComponent, decorators: [{
12650
12705
  type: Component,
12651
- args: [{ selector: 'bsu-ui-form-panel', changeDetection: ChangeDetectionStrategy.OnPush, providers: [FormPanelService, ScrollLayoutContextHolder], standalone: false, template: "@if (isSearchPanel || (isSimple$ | async) || isSubForm || isModal || isFormReport || parameters?.IsSimple) {\r\n<bsu-barsa-simple-form\r\n darkClass\r\n [hrResponsive]=\"parameters?.HResponsiveSettings\"\r\n [config]=\"layout94\"\r\n [cssStyle]=\"parameters?.CssStyles\"\r\n [canSend]=\"(canSend$ | async) === true\"\r\n [removeContentPadding]=\"(headerRemoveContentPadding$ | async)!!\"\r\n [breadCrumbs]=\"breadCrumbs$ | async\"\r\n [description]=\"(headerDescription$ | async)!!\"\r\n [hideClose]=\"(hideClose$ | async)!!\"\r\n [hideBreadCrumb]=\"(hideBreadCrumb$ | async) === true\"\r\n [hideTitle]=\"(hideTitle$ | async)!!\"\r\n [hidePin]=\"(hidePin$ | async)!!\"\r\n [infobars]=\"(infobars$ | async)!!\"\r\n [title]=\"(title$ | async)!!\"\r\n [isModal]=\"isModal\"\r\n [formContentMaxWidth]=\"formContentMaxWidth\"\r\n [formContentJustify]=\"formContentJustify\"\r\n [subtitle]=\"(headerSubtitle$ | async)!!\"\r\n [toolbarItems]=\"extendToolbarItems$ | async | tlbButtons: 'inFooter':false\"\r\n [layoutActions]=\"extendToolbarItems$ | async | tlbButtons: 'inFooter':true | hideAcceptCancel: hideAcceptAndCancel\"\r\n [toolbarVisible]=\"(toolbarVisible$ | async)!!\"\r\n [facetList]=\"(headerLayout$ | async)?.FacetList2\"\r\n [parameters]=\"parameters\"\r\n [workflowPanelUi]=\"workflowPanelUi$ | async\"\r\n [workflowButtons]=\"(workflowButtons$ | async)!!\"\r\n [isMobile]=\"isMobile\"\r\n [layout94]=\"extendLayout94$ | async\"\r\n [layoutGridCol]=\"+(parameters?.LayoutGridCol || 12)\"\r\n [colLg]=\"+(parameters?.ColLg || 0)\"\r\n [colXl]=\"+(parameters?.ColXl || 0)\"\r\n [colMd]=\"+(parameters?.ColMd || 0)\"\r\n [hideFooter]=\"(hideFooter$ | async) === true\"\r\n [rtl]=\"(rtl$ | async)!!\"\r\n [mask]=\"(mask$ | async)!!\"\r\n [mo]=\"(mo$ | async)!!\"\r\n [dirValue]=\"(dirValue$ | async)!!\"\r\n [deviceSize]=\"(deviceSize$ | async)!!\"\r\n [contentDensity]=\"(contentDensity$ | async)!!\"\r\n [modernTabs]=\"(modernTabs$ | async)!!\"\r\n [selectedTabPageName]=\"(selectedTabPageName$ | async)!!\"\r\n [avatar]=\"(avatar$ | async)!!\"\r\n [circleAvatar]=\"(circleAvatar$ | async)!!\"\r\n [fieldDict]=\"(fieldDict$ | async)!!\"\r\n [landscape]=\"(landscape$ | async) === true\"\r\n [standalone]=\"(standalone$ | async) === true\"\r\n (close)=\"onClose()\"\r\n (toolbarClick)=\"onToolbarClick($event)\"\r\n [contentIsPage]=\"parameters?.ContentIsPage === true\"\r\n (workflowChoiceClick)=\"onWorkflowChoiceClick($event)\"\r\n></bsu-barsa-simple-form>\r\n} @else {\r\n<bsu-fundamental-dynamic-form\r\n darkClass\r\n [hideBreadCrumb]=\"(hideBreadCrumb$ | async) === true\"\r\n [modernTabContainerComponent]=\"modernTabContainerComponent\"\r\n [hrResponsive]=\"parameters?.HResponsiveSettings\"\r\n [config]=\"layout94\"\r\n [infobars]=\"(infobars$ | async)!!\"\r\n (dismissInfobar)=\"onDismissInfobar($event)\"\r\n [cssStyle]=\"parameters?.CssStyles\"\r\n [style.position]=\"(mask$ | async) ? 'relative' : null\"\r\n [workflowButtons]=\"(workflowButtons$ | async)!!\"\r\n [canSend]=\"(canSend$ | async) === true\"\r\n [removeContentPadding]=\"(headerRemoveContentPadding$ | async)!!\"\r\n [breadCrumbs]=\"breadCrumbs$ | async\"\r\n [description]=\"(headerDescription$ | async)!!\"\r\n [hideClose]=\"(hideClose$ | async)!!\"\r\n [hideTitle]=\"(hideTitle$ | async)!!\"\r\n [hidePin]=\"(hidePin$ | async)!!\"\r\n [title]=\"(title$ | async)!!\"\r\n [subtitle]=\"(headerSubtitle$ | async)!!\"\r\n [toolbarItems]=\"extendToolbarItems$ | async | tlbButtons: 'inFooter':false\"\r\n [layoutActions]=\"extendToolbarItems$ | async | tlbButtons: 'inFooter':true | hideAcceptCancel: hideAcceptAndCancel\"\r\n [toolbarVisible]=\"(toolbarVisible$ | async)!!\"\r\n [facetList]=\"(headerLayout$ | async)?.FacetList2\"\r\n [formContentMaxWidth]=\"formContentMaxWidth\"\r\n [formContentJustify]=\"formContentJustify\"\r\n [parameters]=\"parameters\"\r\n [fullscreen]=\"fullscreen\"\r\n [hideFooter]=\"(hideFooter$ | async) === true\"\r\n [workflowPanelUi]=\"workflowPanelUi$ | async\"\r\n [isMobile]=\"isMobile\"\r\n [layout94]=\"extendLayout94$ | async\"\r\n [rtl]=\"(rtl$ | async)!!\"\r\n [layoutGridCol]=\"+(parameters?.LayoutGridCol || 12)\"\r\n [colLg]=\"+(parameters?.ColLg || 0)\"\r\n [colXl]=\"+(parameters?.ColXl || 0)\"\r\n [colMd]=\"+(parameters?.ColMd || 0)\"\r\n [footerDesign]=\"footerDesign\"\r\n [mask]=\"(mask$ | async)!!\"\r\n [mo]=\"(mo$ | async)!!\"\r\n [dirValue]=\"(dirValue$ | async)!!\"\r\n [deviceSize]=\"(deviceSize$ | async)!!\"\r\n [contentDensity]=\"(contentDensity$ | async)!!\"\r\n [modernTabs]=\"(modernTabs$ | async)!!\"\r\n [selectedTabPageName]=\"(selectedTabPageName$ | async)!!\"\r\n [avatar]=\"(avatar$ | async)!!\"\r\n [circleAvatar]=\"(circleAvatar$ | async)!!\"\r\n [fieldDict]=\"(fieldDict$ | async)!!\"\r\n [landscape]=\"(landscape$ | async) === true\"\r\n [standalone]=\"(standalone$ | async) === true\"\r\n (fullscreenRequest)=\"onFullscreen()\"\r\n (close)=\"onClose()\"\r\n (toolbarClick)=\"onToolbarClick($event)\"\r\n [contentIsPage]=\"parameters?.ContentIsPage === true\"\r\n (workflowChoiceClick)=\"onWorkflowChoiceClick($event)\"\r\n></bsu-fundamental-dynamic-form>\r\n}\r\n", styles: [":host{display:block;width:100%;min-height:100%}:host.fullscreen{position:fixed;top:0}.workflow-buttons{display:flex;margin-top:5px;padding:5px}\n"] }]
12706
+ args: [{ selector: 'bsu-ui-form-panel', changeDetection: ChangeDetectionStrategy.OnPush, providers: [FormPanelService, ScrollLayoutContextHolder], standalone: false, template: "@if (isSearchPanel || (isSimple$ | async) || isSubForm || isModal || isFormReport || parameters?.IsSimple) {\r\n<bsu-barsa-simple-form\r\n darkClass\r\n [hrResponsive]=\"parameters?.HResponsiveSettings\"\r\n [config]=\"layout94\"\r\n [cssStyle]=\"parameters?.CssStyles\"\r\n [canSend]=\"(canSend$ | async) === true\"\r\n [removeContentPadding]=\"(headerRemoveContentPadding$ | async)!!\"\r\n [breadCrumbs]=\"breadCrumbs$ | async\"\r\n [description]=\"(headerDescription$ | async)!!\"\r\n [hideClose]=\"(hideClose$ | async)!!\"\r\n [hideBreadCrumb]=\"(hideBreadCrumb$ | async) === true\"\r\n [hideTitle]=\"(hideTitle$ | async)!!\"\r\n [hidePin]=\"(hidePin$ | async)!!\"\r\n [infobars]=\"(infobars$ | async)!!\"\r\n [title]=\"(title$ | async)!!\"\r\n [isModal]=\"isModal\"\r\n [formContentMaxWidth]=\"formContentMaxWidth\"\r\n [formContentJustify]=\"formContentJustify\"\r\n [subtitle]=\"(headerSubtitle$ | async)!!\"\r\n [toolbarItems]=\"extendToolbarItems$ | async | tlbButtons: 'inFooter':false\"\r\n [layoutActions]=\"extendToolbarItems$ | async | tlbButtons: 'inFooter':true | hideAcceptCancel: hideAcceptAndCancel\"\r\n [toolbarVisible]=\"(toolbarVisible$ | async)!!\"\r\n [facetList]=\"(headerLayout$ | async)?.FacetList2\"\r\n [parameters]=\"parameters\"\r\n [workflowPanelUi]=\"workflowPanelUi$ | async\"\r\n [workflowButtons]=\"(workflowButtons$ | async)!!\"\r\n [isMobile]=\"isMobile\"\r\n [layout94]=\"extendLayout94$ | async\"\r\n [layoutGridCol]=\"+(parameters?.LayoutGridCol || 12)\"\r\n [colLg]=\"+(parameters?.ColLg || 0)\"\r\n [colXl]=\"+(parameters?.ColXl || 0)\"\r\n [colMd]=\"+(parameters?.ColMd || 0)\"\r\n [hideFooter]=\"(hideFooter$ | async) === true\"\r\n [rtl]=\"(rtl$ | async)!!\"\r\n [mask]=\"(mask$ | async)!!\"\r\n [mo]=\"(mo$ | async)!!\"\r\n [dirValue]=\"(dirValue$ | async)!!\"\r\n [deviceSize]=\"(deviceSize$ | async)!!\"\r\n [contentDensity]=\"(contentDensity$ | async)!!\"\r\n [modernTabs]=\"(modernTabs$ | async)!!\"\r\n [selectedTabPageName]=\"(selectedTabPageName$ | async)!!\"\r\n [avatar]=\"(avatar$ | async)!!\"\r\n [circleAvatar]=\"(circleAvatar$ | async)!!\"\r\n [fieldDict]=\"(fieldDict$ | async)!!\"\r\n [landscape]=\"(landscape$ | async) === true\"\r\n [standalone]=\"(standalone$ | async) === true\"\r\n [lastUpdateTime]=\"lastUpdateTime() | relativeDate\"\r\n (close)=\"onClose()\"\r\n (toolbarClick)=\"onToolbarClick($event)\"\r\n [contentIsPage]=\"parameters?.ContentIsPage === true\"\r\n (workflowChoiceClick)=\"onWorkflowChoiceClick($event)\"\r\n></bsu-barsa-simple-form>\r\n} @else {\r\n<bsu-fundamental-dynamic-form\r\n darkClass\r\n [hideBreadCrumb]=\"(hideBreadCrumb$ | async) === true\"\r\n [modernTabContainerComponent]=\"modernTabContainerComponent\"\r\n [hrResponsive]=\"parameters?.HResponsiveSettings\"\r\n [config]=\"layout94\"\r\n [infobars]=\"(infobars$ | async)!!\"\r\n (dismissInfobar)=\"onDismissInfobar($event)\"\r\n [cssStyle]=\"parameters?.CssStyles\"\r\n [style.position]=\"(mask$ | async) ? 'relative' : null\"\r\n [workflowButtons]=\"(workflowButtons$ | async)!!\"\r\n [canSend]=\"(canSend$ | async) === true\"\r\n [removeContentPadding]=\"(headerRemoveContentPadding$ | async)!!\"\r\n [breadCrumbs]=\"breadCrumbs$ | async\"\r\n [description]=\"(headerDescription$ | async)!!\"\r\n [hideClose]=\"(hideClose$ | async)!!\"\r\n [hideTitle]=\"(hideTitle$ | async)!!\"\r\n [hidePin]=\"(hidePin$ | async)!!\"\r\n [title]=\"(title$ | async)!!\"\r\n [subtitle]=\"(headerSubtitle$ | async)!!\"\r\n [toolbarItems]=\"extendToolbarItems$ | async | tlbButtons: 'inFooter':false\"\r\n [layoutActions]=\"extendToolbarItems$ | async | tlbButtons: 'inFooter':true | hideAcceptCancel: hideAcceptAndCancel\"\r\n [toolbarVisible]=\"(toolbarVisible$ | async)!!\"\r\n [facetList]=\"(headerLayout$ | async)?.FacetList2\"\r\n [formContentMaxWidth]=\"formContentMaxWidth\"\r\n [formContentJustify]=\"formContentJustify\"\r\n [parameters]=\"parameters\"\r\n [fullscreen]=\"fullscreen\"\r\n [hideFooter]=\"(hideFooter$ | async) === true\"\r\n [workflowPanelUi]=\"workflowPanelUi$ | async\"\r\n [isMobile]=\"isMobile\"\r\n [layout94]=\"extendLayout94$ | async\"\r\n [rtl]=\"(rtl$ | async)!!\"\r\n [layoutGridCol]=\"+(parameters?.LayoutGridCol || 12)\"\r\n [colLg]=\"+(parameters?.ColLg || 0)\"\r\n [colXl]=\"+(parameters?.ColXl || 0)\"\r\n [colMd]=\"+(parameters?.ColMd || 0)\"\r\n [footerDesign]=\"footerDesign\"\r\n [mask]=\"(mask$ | async)!!\"\r\n [mo]=\"(mo$ | async)!!\"\r\n [dirValue]=\"(dirValue$ | async)!!\"\r\n [deviceSize]=\"(deviceSize$ | async)!!\"\r\n [contentDensity]=\"(contentDensity$ | async)!!\"\r\n [modernTabs]=\"(modernTabs$ | async)!!\"\r\n [selectedTabPageName]=\"(selectedTabPageName$ | async)!!\"\r\n [avatar]=\"(avatar$ | async)!!\"\r\n [circleAvatar]=\"(circleAvatar$ | async)!!\"\r\n [fieldDict]=\"(fieldDict$ | async)!!\"\r\n [landscape]=\"(landscape$ | async) === true\"\r\n [standalone]=\"(standalone$ | async) === true\"\r\n [lastUpdateTime]=\"lastUpdateTime() | relativeDate\"\r\n (fullscreenRequest)=\"onFullscreen()\"\r\n (close)=\"onClose()\"\r\n (toolbarClick)=\"onToolbarClick($event)\"\r\n [contentIsPage]=\"parameters?.ContentIsPage === true\"\r\n (workflowChoiceClick)=\"onWorkflowChoiceClick($event)\"\r\n></bsu-fundamental-dynamic-form>\r\n}\r\n", styles: [":host{display:block;width:100%;min-height:100%}:host.fullscreen{position:fixed;top:0}.workflow-buttons{display:flex;margin-top:5px;padding:5px}\n"] }]
12652
12707
  }] });
12653
12708
 
12654
12709
  class LayoutWizardComponent extends FormPropsBaseComponent {
@@ -14505,6 +14560,11 @@ class UiMoInfoUlvComboComponent extends FieldBaseComponent {
14505
14560
  this.ulvAdapter && (this.ulvAdapter.$Expand = false);
14506
14561
  this._setValueText(value);
14507
14562
  this._checkHasValue(value);
14563
+ // با پاک‌شدنِ مقدار (onClear یا خالی‌کردنِ کمبو)، آیکن هم باید برداشته شود؛
14564
+ // رویدادِ iconurlchanged همیشه با مقدارِ خالی شلیک نمی‌شود.
14565
+ if (!this.hasValue) {
14566
+ this.iconMo.set('');
14567
+ }
14508
14568
  super._setValue(value);
14509
14569
  this._checkShowExtraButtons();
14510
14570
  // this._setComboText(value);
@@ -14665,13 +14725,13 @@ class UiMoInfoUlvComboComponent extends FieldBaseComponent {
14665
14725
  // this._trigger$.next('ItemSelect', this.value);
14666
14726
  }
14667
14727
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: UiMoInfoUlvComboComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
14668
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.8", type: UiMoInfoUlvComboComponent, isStandalone: false, selector: "bsu-ui-mo-info-ulv-combo", inputs: { ulvAdapter: "ulvAdapter", Control: "Control", UlvMainCtrlr: "UlvMainCtrlr", UlvUi: "UlvUi", IsExpanded: "IsExpanded", Collapse: "Collapse", Expand: "Expand", on: "on", Focus: "Focus", SetUlvAdapter: "SetUlvAdapter", IsUiCreated: "IsUiCreated", Mask: "Mask", hide: "hide", show: "show", Unmask: "Unmask", getRawValue: "getRawValue" }, host: { listeners: { "keydown": "onKeyDown($event)", "keydown.alt": "onAlt($event)" }, properties: { "attr.dir": "Setting?.IsLtr ? 'ltr' : null" } }, viewQueries: [{ propertyName: "comboRef", first: true, predicate: FundamentalComboComponent, descendants: true }], usesInheritance: true, ngImport: i0, template: "<ng-container\r\n *ngTemplateOutlet=\"\r\n comboTemplate;\r\n context: {\r\n disableOrReadonly: disableOrReadonly$ | async,\r\n disable: disable$ | async,\r\n readonly: readonly$ | async\r\n }\r\n \"\r\n>\r\n</ng-container>\r\n\r\n<ng-template #btnsTpl let-disableOrReadonly=\"disableOrReadonly\">\r\n @if( showExtraButtons() && !disableOrReadonly ){\r\n <div class=\"combo-actions fd-input-group\">\r\n @if (showClearAction) {\r\n <button\r\n class=\"combo-action-button fd-input-group__button\"\r\n type=\"button\"\r\n tabindex=\"-1\"\r\n fd-button\r\n fdType=\"transparent\"\r\n glyph=\"decline\"\r\n [ariaLabel]=\"'Delete' | bbbTranslate\"\r\n [title]=\"'Delete' | bbbTranslate\"\r\n (click)=\"onClear()\"\r\n ></button>\r\n } @if (showNewAction) {\r\n <button\r\n class=\"combo-action-button fd-input-group__button\"\r\n type=\"button\"\r\n fd-button\r\n fdType=\"transparent\"\r\n glyph=\"add\"\r\n [ariaLabel]=\"'New' | bbbTranslate\"\r\n [title]=\"'New' | bbbTranslate\"\r\n (click)=\"onNew()\"\r\n ></button>\r\n } @if (showEditAction) {\r\n <button\r\n class=\"combo-action-button fd-input-group__button\"\r\n type=\"button\"\r\n fd-button\r\n fdType=\"transparent\"\r\n glyph=\"edit\"\r\n [ariaLabel]=\"'Edit' | bbbTranslate\"\r\n [title]=\"'Edit' | bbbTranslate\"\r\n (click)=\"onEdit()\"\r\n ></button>\r\n } @if (showSearchAction) {\r\n <button\r\n class=\"combo-action-button fd-input-group__button\"\r\n type=\"button\"\r\n fd-button\r\n fdType=\"transparent\"\r\n glyph=\"search\"\r\n [ariaLabel]=\"'Search' | bbbTranslate\"\r\n [title]=\"'Search' | bbbTranslate\"\r\n (click)=\"onSearch()\"\r\n ></button>\r\n }\r\n </div>\r\n }\r\n</ng-template>\r\n<ng-template #comboTemplate let-disableOrReadonly=\"disableOrReadonly\" let-disable=\"disable\" let-readonly=\"readonly\">\r\n <div\r\n class=\"simple-combo-wrapper\"\r\n contentDensity\r\n [class.one-extra-button]=\"disableOrReadonly !== true && actionButtonCount === 1\"\r\n [class.two-extra-buttons]=\"disableOrReadonly !== true && actionButtonCount === 2\"\r\n [class.dropdown-hidden]=\"context._showDropDown === false || disableOrReadonly === true\"\r\n >\r\n @if ((loading$ | async) === true && !isDataLoadedFirstTime) {\r\n <div class=\"combo-loading-mask\">\r\n <bsu-mask [size]=\"'s'\" [top]=\"'10px'\"></bsu-mask>\r\n </div>\r\n }\r\n @if (iconMo()) {\r\n <span class=\"combo-value-icon\" aria-hidden=\"true\">\r\n <img [src]=\"iconMo()\" loading=\"lazy\" width=\"16\" height=\"16\" alt=\"\" />\r\n </span>\r\n }\r\n <bsu-fundamental-combo\r\n #fdCombobox\r\n [comboClass]=\"{\r\n 'combo-mo-ulv': true,\r\n 'has-value-icon': !!iconMo(),\r\n canAdd: !hasValue && disableOrReadonly !== true && Setting.ShowNewButton,\r\n canEdit: hasValue && disableOrReadonly !== true,\r\n disableorreadonly: disableOrReadonly === true,\r\n 'hide-dropdown-button': context._showDropDown === false || disableOrReadonly === true,\r\n showExtraButtons: disableOrReadonly !== true && showExtraButtons(),\r\n 'has-Value': hasValue\r\n }\"\r\n [placeholder]=\"'Select' | bbbTranslate\"\r\n [mobile]=\"false\"\r\n [mobileConfig]=\"mobileConfig\"\r\n [tabOutStrategy]=\"'close'\"\r\n [readonly]=\"readonly === true\"\r\n [disabled]=\"disable === true\"\r\n [dataSource]=\"comboDataSource\"\r\n [lookupKey]=\"'Id'\"\r\n [displayKey]=\"'$__displayCaption'\"\r\n [value]=\"value\"\r\n [byline]=\"allColumns.length > 0\"\r\n [fillControlMode]=\"'equal'\"\r\n [closeOnOutsideClick]=\"true\"\r\n (selectionChange)=\"onComboSelectionChange($event)\"\r\n (cleared)=\"onComboCleared()\"\r\n (openChange)=\"onComboOpenChange($event)\"\r\n (dataRequested)=\"onComboDataRequested()\"\r\n (dataReceived)=\"onComboDataReceived()\"\r\n [itemTemplate]=\"comboItemTpl\"\r\n >\r\n <!-- \u0641\u0648\u062A\u0631\u0650 \u0635\u0641\u062D\u0647\u200C\u0628\u0646\u062F\u06CC \u0627\u0632 \u0637\u0631\u06CC\u0642 <ng-content>\u0650 wrapper \u0628\u0647 \u0644\u06CC\u0633\u062A\u0650 fdp \u062A\u0632\u0631\u06CC\u0642 \u0645\u06CC\u200C\u0634\u0648\u062F. -->\r\n @if (ulvPagingSetting; as pagingSetting) { @if (pagingSetting.HasPaging && pagingSetting.TotalPages > 1) {\r\n <li class=\"combo-paging-footer\" role=\"presentation\">\r\n <bsu-ulv-paging [pagingSetting]=\"pagingSetting\" (pageChange)=\"onPageChange($event)\"></bsu-ulv-paging>\r\n </li>\r\n } }\r\n </bsu-fundamental-combo>\r\n <!--\r\n \u062A\u0645\u067E\u0644\u06CC\u062A\u0650 \u0622\u06CC\u062A\u0645 \u0631\u0627 \u0628\u0647\u200C\u0635\u0648\u0631\u062A \u0646\u0627\u0645\u200C\u062F\u0627\u0631 \u0628\u0647 [itemTemplate] \u0645\u06CC\u200C\u062F\u0647\u06CC\u0645\u061B wrapper \u062E\u0648\u062F\u0634 directive\u0650\r\n fdpComboboxItem \u0631\u0627 \u0627\u0639\u0644\u0627\u0645 \u0648 \u0627\u06CC\u0646 \u062A\u0645\u067E\u0644\u06CC\u062A \u0631\u0627 \u0631\u0646\u062F\u0631 \u0645\u06CC\u200C\u06A9\u0646\u062F (projection \u0645\u0633\u062A\u0642\u06CC\u0645\u0650 fdpComboboxItem\r\n \u0627\u0632 \u062F\u0627\u062E\u0644\u0650 <ng-content> \u062A\u0648\u0633\u0637\u0650 ContentChildren\u0650 fdp \u062F\u06CC\u062F\u0647 \u0646\u0645\u06CC\u200C\u0634\u0648\u062F).\r\n -->\r\n <ng-template #comboItemTpl let-item>\r\n <span fd-list-thumbnail class=\"!tw-w-auto tw-me-[0.2rem]\">\r\n <img [src]=\"item | moIcon: UlvMainCtrlr?.Ac?.Setting\" loading=\"lazy\" width=\"16px\" height=\"16px\" alt=\"object icon\"\r\n /></span>\r\n @if (allColumns?.length) { @if (getReportOptionView(item); as reportOption) {\r\n <div fd-list-content data-report-option>\r\n <h6\r\n fd-title\r\n [headerSize]=\"6\"\r\n [wrap]=\"true\"\r\n [attr.dir]=\"reportOption.primary.column?.IsLtr ? 'ltr' : null\"\r\n [title]=\"reportOption.primary.value\"\r\n >\r\n {{ reportOption.primary.value }}\r\n </h6>\r\n @if (reportOption.secondary; as secondary) {\r\n <div\r\n fd-list-title\r\n [wrap]=\"true\"\r\n [attr.dir]=\"secondary.column?.IsLtr ? 'ltr' : null\"\r\n [title]=\"secondary.value\"\r\n >\r\n {{ secondary.value }}\r\n </div>\r\n } @if (reportOption.details.length) {\r\n <fd-layout-grid [noHorizontalGap]=\"true\">\r\n <div fdLayoutGridRow [style.min-width.%]=\"100\">\r\n @for (field of reportOption.details; track field.column?.Name) {\r\n <div [fdLayoutGridCol]=\"12\" [colMd]=\"6\">\r\n <div fd-form-item [horizontal]=\"true\">\r\n <label\r\n fd-form-label\r\n [colon]=\"true\"\r\n [title]=\"field.column?.Caption || field.column?.Alias\"\r\n >\r\n {{ field.column?.Caption || field.column?.Alias | bbbTranslate }}\r\n </label>\r\n <div\r\n fd-list-title\r\n [wrap]=\"true\"\r\n [attr.dir]=\"field.column?.IsLtr ? 'ltr' : null\"\r\n [title]=\"field.value\"\r\n >\r\n {{ field.value }}\r\n </div>\r\n </div>\r\n </div>\r\n }\r\n </div>\r\n </fd-layout-grid>\r\n }\r\n </div>\r\n } } @else {\r\n <span fd-list-title>\r\n {{ item.$MoCaption || item.$Caption | bbbTranslate }}\r\n </span>\r\n }\r\n </ng-template>\r\n <ng-container *ngTemplateOutlet=\"btnsTpl; context: { disableOrReadonly: disableOrReadonly }\"></ng-container>\r\n </div>\r\n</ng-template>\r\n", styles: [":host{display:block}.combo-mo-ulv{display:block;width:100%}.combo-mo-ulv ::ng-deep .fd-popover-custom{width:100%}.simple-combo-wrapper{--combo-control-height: var(--sapElement_Height, 2.75rem);--combo-dropdown-width: 2.25rem;--combo-value-icon-width: 1.75rem;display:block;width:100%;position:relative}.simple-combo-wrapper.is-compact,.simple-combo-wrapper.is-condensed{--combo-control-height: var(--sapElement_Compact_Height, 2rem);--combo-dropdown-width: 2rem}.simple-combo-wrapper.one-extra-button ::ng-deep .combo-mo-ulv.showExtraButtons:not(.disableorreadonly) .fd-input-group__input{padding-inline-end:calc(var(--fdInput_Group_Addon_Width, 2.25rem) + .25rem)}.simple-combo-wrapper.two-extra-buttons ::ng-deep .combo-mo-ulv.showExtraButtons:not(.disableorreadonly) .fd-input-group__input{padding-inline-end:calc(var(--fdInput_Group_Addon_Width, 2.25rem) + var(--fdInput_Group_Addon_Width, 2.25rem) + .25rem)}.simple-combo-wrapper.dropdown-hidden{--combo-dropdown-width: 0rem}.simple-combo-wrapper ::ng-deep .combo-mo-ulv.hide-dropdown-button .fd-input-group__addon--button{display:none}.simple-combo-wrapper ::ng-deep .combo-mo-ulv.has-value-icon .fd-input-group__input{padding-inline-start:var(--combo-value-icon-width, 1.75rem)}.combo-value-icon{position:absolute;inset-block-start:2px;inset-inline-start:0;z-index:6;display:flex;align-items:center;justify-content:center;width:var(--combo-value-icon-width, 1.75rem);height:var(--combo-control-height);pointer-events:none}.combo-value-icon img{width:1rem;height:1rem;object-fit:contain}.combo-wrapper{display:flex;align-items:center;border:var(--sapField_BorderWidth, .0625rem) solid var(--sapField_BorderColor, #89919a);border-radius:var(--sapField_BorderCornerRadius, .125rem)}::ng-deep .fdp-combobox__count-list-results{display:none}::ng-deep .fdp-combobox__list:has(>.combo-paging-footer){display:flex!important;flex-direction:column}::ng-deep .fdp-combobox__list:has(>.combo-paging-footer)>.combo-paging-footer{order:1}::ng-deep .fdp-combobox__list:has([data-report-option])>.fd-list__item:has([data-report-option]){border-block-end:var(--sapList_BorderWidth) solid var(--sapList_BorderColor)}.combo-loading-mask{position:absolute;inset:0;z-index:8}.combo-paging-footer{position:sticky;inset-block-end:0;z-index:1;order:1;flex:0 0 auto;box-sizing:border-box;width:100%;padding-block:.25rem;overflow-x:auto;list-style:none;border-block-start:var(--sapList_BorderWidth, .0625rem) solid var(--sapList_BorderColor, #d9d9d9);background:var(--sapList_Background, var(--sapGroup_ContentBackground, #fff))}.combo-actions{position:absolute;inset-block-start:0;inset-inline-end:var(--combo-dropdown-width);z-index:7;display:flex;align-items:stretch;width:auto;min-width:0;height:var(--combo-control-height);overflow:hidden;border:0;border-radius:0;background:transparent;box-shadow:none}.combo-actions .combo-action-button{width:auto;height:100%;border-radius:0}@media(hover:hover)and (pointer:fine){.combo-actions{opacity:0;pointer-events:none;transform:translateY(.125rem);transition:opacity .18s ease-out,transform .18s ease-out}.simple-combo-wrapper:hover .combo-actions,.simple-combo-wrapper:focus-within .combo-actions{opacity:1;pointer-events:auto;transform:translateY(0)}}@media(prefers-reduced-motion:reduce){.combo-actions{transform:none;transition:none}}\n"], dependencies: [{ kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2.MobileDirective, selector: "[mobile]" }, { kind: "component", type: i1$4.ButtonComponent, selector: "button[fd-button], a[fd-button], span[fd-button]", inputs: ["id"], exportAs: ["fd-button"] }, { kind: "component", type: i2$1.FormItemComponent, selector: "[fd-form-item]", inputs: ["isInline", "horizontal"] }, { kind: "component", type: i2$1.FormLabelComponent, selector: "[fd-form-label]", inputs: ["required", "colon", "alignLabelEnd", "inlineHelpContent", "inlineHelpGlyph", "inlineHelpTriggers", "inlineHelpBodyPlacement", "inlineHelpPlacement", "allowWrap", "inlineHelpLabel", "id", "disabled", "unitDescription", "independent"] }, { kind: "component", type: i10.LayoutGridComponent, selector: "fd-layout-grid, [fdLayoutGrid]", inputs: ["noGap", "noHorizontalGap", "noVerticalGap"] }, { kind: "directive", type: i10.LayoutGridColDirective, selector: "[fd-layout-grid-col], [fdLayoutGridCol]", inputs: ["fdLayoutGridCol", "colGrow", "colMd", "colLg", "colXl", "colOffset", "colOffsetMd", "colOffsetLg", "colOffsetXl"] }, { kind: "directive", type: i10.LayoutGridRowDirective, selector: "[fd-layout-grid-row], [fdLayoutGridRow]" }, { kind: "directive", type: i7.ListTitleDirective, selector: "[fd-list-title], [fdListTitle]", inputs: ["wrap", "truncate", "scope"] }, { kind: "directive", type: i7.ListContentDirective, selector: "[fdListContent], [fd-list-content]", inputs: ["twoCol"] }, { kind: "directive", type: i7.ListThumbnailDirective, selector: "[fdListThumbnail], [fd-list-thumbnail]" }, { kind: "component", type: i5.TitleComponent, selector: "[fd-title], [fdTitle]", inputs: ["twoLineClamp", "headerSize", "wrap"], exportAs: ["fd-title"] }, { kind: "component", type: FundamentalComboComponent, selector: "bsu-fundamental-combo", inputs: ["dataSource", "value", "displayKey", "lookupKey", "byline", "placeholder", "disabled", "readonly", "mobile", "mobileConfig", "isLtr", "showDropdownButton", "itemTemplate", "allowFreeText", "width", "comboClass", "fillControlMode", "tabOutStrategy", "closeOnOutsideClick"], outputs: ["selectionChange", "cleared", "openChange", "dataRequested", "dataReceived"] }, { kind: "component", type: UlvPagingComponent, selector: "bsu-ulv-paging", inputs: ["pagingSetting"], outputs: ["pageChange", "pageSizeChange"] }, { kind: "component", type: MaskComponent, selector: "bsu-mask", inputs: ["size", "top"] }, { kind: "directive", type: ContentDensityDirective, selector: "[contentDensity]" }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "pipe", type: i2.BbbTranslatePipe, name: "bbbTranslate" }, { kind: "pipe", type: i2.MoIconPipe, name: "moIcon" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
14728
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.8", type: UiMoInfoUlvComboComponent, isStandalone: false, selector: "bsu-ui-mo-info-ulv-combo", inputs: { ulvAdapter: "ulvAdapter", Control: "Control", UlvMainCtrlr: "UlvMainCtrlr", UlvUi: "UlvUi", IsExpanded: "IsExpanded", Collapse: "Collapse", Expand: "Expand", on: "on", Focus: "Focus", SetUlvAdapter: "SetUlvAdapter", IsUiCreated: "IsUiCreated", Mask: "Mask", hide: "hide", show: "show", Unmask: "Unmask", getRawValue: "getRawValue" }, host: { listeners: { "keydown": "onKeyDown($event)", "keydown.alt": "onAlt($event)" }, properties: { "attr.dir": "Setting?.IsLtr ? 'ltr' : null" } }, viewQueries: [{ propertyName: "comboRef", first: true, predicate: FundamentalComboComponent, descendants: true }], usesInheritance: true, ngImport: i0, template: "<ng-container\r\n *ngTemplateOutlet=\"\r\n comboTemplate;\r\n context: {\r\n disableOrReadonly: disableOrReadonly$ | async,\r\n disable: disable$ | async,\r\n readonly: readonly$ | async\r\n }\r\n \"\r\n>\r\n</ng-container>\r\n\r\n<ng-template #btnsTpl let-disableOrReadonly=\"disableOrReadonly\">\r\n @if( showExtraButtons() && !disableOrReadonly ){\r\n <div class=\"combo-actions fd-input-group\">\r\n @if (showClearAction) {\r\n <button\r\n class=\"combo-action-button fd-input-group__button\"\r\n type=\"button\"\r\n tabindex=\"-1\"\r\n fd-button\r\n fdType=\"transparent\"\r\n glyph=\"decline\"\r\n [ariaLabel]=\"'Delete' | bbbTranslate\"\r\n [title]=\"'Delete' | bbbTranslate\"\r\n (click)=\"onClear()\"\r\n ></button>\r\n } @if (showNewAction) {\r\n <button\r\n class=\"combo-action-button fd-input-group__button\"\r\n type=\"button\"\r\n fd-button\r\n fdType=\"transparent\"\r\n glyph=\"add\"\r\n [ariaLabel]=\"'New' | bbbTranslate\"\r\n [title]=\"'New' | bbbTranslate\"\r\n (click)=\"onNew()\"\r\n ></button>\r\n } @if (showEditAction) {\r\n <button\r\n class=\"combo-action-button fd-input-group__button\"\r\n type=\"button\"\r\n fd-button\r\n fdType=\"transparent\"\r\n glyph=\"edit\"\r\n [ariaLabel]=\"'Edit' | bbbTranslate\"\r\n [title]=\"'Edit' | bbbTranslate\"\r\n (click)=\"onEdit()\"\r\n ></button>\r\n } @if (showSearchAction) {\r\n <button\r\n class=\"combo-action-button fd-input-group__button\"\r\n type=\"button\"\r\n fd-button\r\n fdType=\"transparent\"\r\n glyph=\"search\"\r\n [ariaLabel]=\"'Search' | bbbTranslate\"\r\n [title]=\"'Search' | bbbTranslate\"\r\n (click)=\"onSearch()\"\r\n ></button>\r\n }\r\n </div>\r\n }\r\n</ng-template>\r\n<ng-template #comboTemplate let-disableOrReadonly=\"disableOrReadonly\" let-disable=\"disable\" let-readonly=\"readonly\">\r\n <div\r\n class=\"simple-combo-wrapper\"\r\n contentDensity\r\n [class.one-extra-button]=\"disableOrReadonly !== true && actionButtonCount === 1\"\r\n [class.two-extra-buttons]=\"disableOrReadonly !== true && actionButtonCount === 2\"\r\n [class.dropdown-hidden]=\"context._showDropDown === false || disableOrReadonly === true\"\r\n >\r\n @if ((loading$ | async) === true && !isDataLoadedFirstTime) {\r\n <div class=\"combo-loading-mask\">\r\n <bsu-mask [size]=\"'s'\" [top]=\"'10px'\"></bsu-mask>\r\n </div>\r\n }\r\n @if (iconMo()) {\r\n <span class=\"combo-value-icon\" aria-hidden=\"true\">\r\n <img [src]=\"iconMo()\" loading=\"lazy\" width=\"16\" height=\"16\" alt=\"\" />\r\n </span>\r\n }\r\n <bsu-fundamental-combo\r\n #fdCombobox\r\n [comboClass]=\"{\r\n 'combo-mo-ulv': true,\r\n 'has-value-icon': !!iconMo(),\r\n canAdd: !hasValue && disableOrReadonly !== true && Setting.ShowNewButton,\r\n canEdit: hasValue && disableOrReadonly !== true,\r\n disableorreadonly: disableOrReadonly === true,\r\n 'hide-dropdown-button': context._showDropDown === false || disableOrReadonly === true,\r\n showExtraButtons: disableOrReadonly !== true && showExtraButtons(),\r\n 'has-Value': hasValue\r\n }\"\r\n [placeholder]=\"'Select' | bbbTranslate\"\r\n [mobile]=\"false\"\r\n [mobileConfig]=\"mobileConfig\"\r\n [tabOutStrategy]=\"'close'\"\r\n [readonly]=\"readonly === true\"\r\n [disabled]=\"disable === true\"\r\n [dataSource]=\"comboDataSource\"\r\n [lookupKey]=\"'Id'\"\r\n [displayKey]=\"'$__displayCaption'\"\r\n [value]=\"value\"\r\n [byline]=\"allColumns.length > 0\"\r\n [fillControlMode]=\"'equal'\"\r\n [closeOnOutsideClick]=\"true\"\r\n (selectionChange)=\"onComboSelectionChange($event)\"\r\n (cleared)=\"onComboCleared()\"\r\n (openChange)=\"onComboOpenChange($event)\"\r\n (dataRequested)=\"onComboDataRequested()\"\r\n (dataReceived)=\"onComboDataReceived()\"\r\n [itemTemplate]=\"comboItemTpl\"\r\n >\r\n <!-- \u0641\u0648\u062A\u0631\u0650 \u0635\u0641\u062D\u0647\u200C\u0628\u0646\u062F\u06CC \u0627\u0632 \u0637\u0631\u06CC\u0642 <ng-content>\u0650 wrapper \u0628\u0647 \u0644\u06CC\u0633\u062A\u0650 fdp \u062A\u0632\u0631\u06CC\u0642 \u0645\u06CC\u200C\u0634\u0648\u062F. -->\r\n @if (ulvPagingSetting; as pagingSetting) { @if (pagingSetting.HasPaging && pagingSetting.TotalPages > 1) {\r\n <li class=\"combo-paging-footer\" role=\"presentation\">\r\n <bsu-ulv-paging [pagingSetting]=\"pagingSetting\" (pageChange)=\"onPageChange($event)\"></bsu-ulv-paging>\r\n </li>\r\n } }\r\n </bsu-fundamental-combo>\r\n <!--\r\n \u062A\u0645\u067E\u0644\u06CC\u062A\u0650 \u0622\u06CC\u062A\u0645 \u0631\u0627 \u0628\u0647\u200C\u0635\u0648\u0631\u062A \u0646\u0627\u0645\u200C\u062F\u0627\u0631 \u0628\u0647 [itemTemplate] \u0645\u06CC\u200C\u062F\u0647\u06CC\u0645\u061B wrapper \u062E\u0648\u062F\u0634 directive\u0650\r\n fdpComboboxItem \u0631\u0627 \u0627\u0639\u0644\u0627\u0645 \u0648 \u0627\u06CC\u0646 \u062A\u0645\u067E\u0644\u06CC\u062A \u0631\u0627 \u0631\u0646\u062F\u0631 \u0645\u06CC\u200C\u06A9\u0646\u062F (projection \u0645\u0633\u062A\u0642\u06CC\u0645\u0650 fdpComboboxItem\r\n \u0627\u0632 \u062F\u0627\u062E\u0644\u0650 <ng-content> \u062A\u0648\u0633\u0637\u0650 ContentChildren\u0650 fdp \u062F\u06CC\u062F\u0647 \u0646\u0645\u06CC\u200C\u0634\u0648\u062F).\r\n -->\r\n <ng-template #comboItemTpl let-item>\r\n <span fd-list-thumbnail class=\"!tw-w-auto tw-me-[0.2rem]\">\r\n <img [src]=\"item | moIcon: UlvMainCtrlr?.Ac?.Setting\" loading=\"lazy\" width=\"16px\" height=\"16px\" alt=\"object icon\"\r\n /></span>\r\n @if (allColumns?.length) { @if (getReportOptionView(item); as reportOption) {\r\n <div fd-list-content data-report-option>\r\n <h6\r\n fd-title\r\n [headerSize]=\"6\"\r\n [wrap]=\"true\"\r\n [attr.dir]=\"reportOption.primary.column?.IsLtr ? 'ltr' : null\"\r\n [title]=\"reportOption.primary.value\"\r\n >\r\n {{ reportOption.primary.value }}\r\n </h6>\r\n @if (reportOption.secondary; as secondary) {\r\n <div\r\n fd-list-title\r\n [wrap]=\"true\"\r\n [attr.dir]=\"secondary.column?.IsLtr ? 'ltr' : null\"\r\n [title]=\"secondary.value\"\r\n >\r\n {{ secondary.value }}\r\n </div>\r\n } @if (reportOption.details.length) {\r\n <fd-layout-grid [noHorizontalGap]=\"true\">\r\n <div fdLayoutGridRow [style.min-width.%]=\"100\">\r\n @for (field of reportOption.details; track field.column?.Name) {\r\n <div [fdLayoutGridCol]=\"12\" [colMd]=\"6\">\r\n <div fd-form-item [horizontal]=\"true\">\r\n <label\r\n fd-form-label\r\n [colon]=\"true\"\r\n [title]=\"field.column?.Caption || field.column?.Alias\"\r\n >\r\n {{ field.column?.Caption || field.column?.Alias | bbbTranslate }}\r\n </label>\r\n <div\r\n fd-list-title\r\n [wrap]=\"true\"\r\n [attr.dir]=\"field.column?.IsLtr ? 'ltr' : null\"\r\n [title]=\"field.value\"\r\n >\r\n {{ field.value }}\r\n </div>\r\n </div>\r\n </div>\r\n }\r\n </div>\r\n </fd-layout-grid>\r\n }\r\n </div>\r\n } } @else {\r\n <span fd-list-title>\r\n {{ item.$MoCaption || item.$Caption | bbbTranslate }}\r\n </span>\r\n }\r\n </ng-template>\r\n <ng-container *ngTemplateOutlet=\"btnsTpl; context: { disableOrReadonly: disableOrReadonly }\"></ng-container>\r\n </div>\r\n</ng-template>\r\n", styles: [":host{display:block}.combo-mo-ulv{display:block;width:100%}.combo-mo-ulv ::ng-deep .fd-popover-custom{width:100%}.simple-combo-wrapper{--combo-control-height: var(--sapElement_Height, 2.75rem);--combo-dropdown-width: 2.25rem;--combo-value-icon-width: 1.75rem;display:block;width:100%;position:relative}.simple-combo-wrapper.is-compact,.simple-combo-wrapper.is-condensed{--combo-control-height: var(--sapElement_Compact_Height, 2rem);--combo-dropdown-width: 2rem}.simple-combo-wrapper.one-extra-button ::ng-deep .combo-mo-ulv.showExtraButtons:not(.disableorreadonly) .fd-input-group__input{padding-inline-end:calc(var(--fdInput_Group_Addon_Width, 2.25rem) + .25rem)}.simple-combo-wrapper.two-extra-buttons ::ng-deep .combo-mo-ulv.showExtraButtons:not(.disableorreadonly) .fd-input-group__input{padding-inline-end:calc(var(--fdInput_Group_Addon_Width, 2.25rem) + var(--fdInput_Group_Addon_Width, 2.25rem) + .25rem)}.simple-combo-wrapper.dropdown-hidden{--combo-dropdown-width: 0rem}.simple-combo-wrapper ::ng-deep .combo-mo-ulv.hide-dropdown-button .fd-input-group__addon--button{display:none}.simple-combo-wrapper ::ng-deep .combo-mo-ulv.has-value-icon .fd-input-group__input{padding-inline-start:var(--combo-value-icon-width, 1.75rem)}.combo-value-icon{position:absolute;inset-block-start:2px;inset-inline-start:0;z-index:6;display:flex;align-items:center;justify-content:center;width:var(--combo-value-icon-width, 1.75rem);height:var(--combo-control-height);pointer-events:none}.combo-value-icon img{width:1rem;height:1rem;object-fit:contain}.combo-wrapper{display:flex;align-items:center;border:var(--sapField_BorderWidth, .0625rem) solid var(--sapField_BorderColor, #89919a);border-radius:var(--sapField_BorderCornerRadius, .125rem)}::ng-deep .fdp-combobox__count-list-results{display:none}::ng-deep .fdp-combobox__list:has(>.combo-paging-footer){display:flex!important;flex-direction:column}::ng-deep .fdp-combobox__list:has(>.combo-paging-footer)>.fd-list__item{flex:0 0 auto}::ng-deep .fdp-combobox__list:has(>.combo-paging-footer)>.combo-paging-footer{order:1}::ng-deep .fdp-combobox__list:has([data-report-option])>.fd-list__item:has([data-report-option]){border-block-end:var(--sapList_BorderWidth) solid var(--sapList_BorderColor)}.combo-loading-mask{position:absolute;inset:0;z-index:8}.combo-paging-footer{position:sticky;inset-block-end:0;z-index:1;order:1;flex:0 0 auto;box-sizing:border-box;width:100%;padding-block:.25rem;overflow-x:auto;list-style:none;border-block-start:var(--sapList_BorderWidth, .0625rem) solid var(--sapList_BorderColor, #d9d9d9);background:var(--sapList_Background, var(--sapGroup_ContentBackground, #fff))}.combo-actions{position:absolute;inset-block-start:0;inset-inline-end:var(--combo-dropdown-width);z-index:7;display:flex;align-items:stretch;width:auto;min-width:0;height:var(--combo-control-height);overflow:hidden;border:0;border-radius:0;background:transparent;box-shadow:none}.combo-actions .combo-action-button{width:auto;height:100%;border-radius:0}@media(hover:hover)and (pointer:fine){.combo-actions{opacity:0;pointer-events:none;transform:translateY(.125rem);transition:opacity .18s ease-out,transform .18s ease-out}.simple-combo-wrapper:hover .combo-actions,.simple-combo-wrapper:focus-within .combo-actions{opacity:1;pointer-events:auto;transform:translateY(0)}}@media(prefers-reduced-motion:reduce){.combo-actions{transform:none;transition:none}}\n"], dependencies: [{ kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2.MobileDirective, selector: "[mobile]" }, { kind: "component", type: i1$4.ButtonComponent, selector: "button[fd-button], a[fd-button], span[fd-button]", inputs: ["id"], exportAs: ["fd-button"] }, { kind: "component", type: i2$1.FormItemComponent, selector: "[fd-form-item]", inputs: ["isInline", "horizontal"] }, { kind: "component", type: i2$1.FormLabelComponent, selector: "[fd-form-label]", inputs: ["required", "colon", "alignLabelEnd", "inlineHelpContent", "inlineHelpGlyph", "inlineHelpTriggers", "inlineHelpBodyPlacement", "inlineHelpPlacement", "allowWrap", "inlineHelpLabel", "id", "disabled", "unitDescription", "independent"] }, { kind: "component", type: i10.LayoutGridComponent, selector: "fd-layout-grid, [fdLayoutGrid]", inputs: ["noGap", "noHorizontalGap", "noVerticalGap"] }, { kind: "directive", type: i10.LayoutGridColDirective, selector: "[fd-layout-grid-col], [fdLayoutGridCol]", inputs: ["fdLayoutGridCol", "colGrow", "colMd", "colLg", "colXl", "colOffset", "colOffsetMd", "colOffsetLg", "colOffsetXl"] }, { kind: "directive", type: i10.LayoutGridRowDirective, selector: "[fd-layout-grid-row], [fdLayoutGridRow]" }, { kind: "directive", type: i7.ListTitleDirective, selector: "[fd-list-title], [fdListTitle]", inputs: ["wrap", "truncate", "scope"] }, { kind: "directive", type: i7.ListContentDirective, selector: "[fdListContent], [fd-list-content]", inputs: ["twoCol"] }, { kind: "directive", type: i7.ListThumbnailDirective, selector: "[fdListThumbnail], [fd-list-thumbnail]" }, { kind: "component", type: i5.TitleComponent, selector: "[fd-title], [fdTitle]", inputs: ["twoLineClamp", "headerSize", "wrap"], exportAs: ["fd-title"] }, { kind: "component", type: FundamentalComboComponent, selector: "bsu-fundamental-combo", inputs: ["dataSource", "value", "displayKey", "lookupKey", "byline", "placeholder", "disabled", "readonly", "mobile", "mobileConfig", "isLtr", "showDropdownButton", "itemTemplate", "allowFreeText", "width", "comboClass", "fillControlMode", "tabOutStrategy", "closeOnOutsideClick"], outputs: ["selectionChange", "cleared", "openChange", "dataRequested", "dataReceived"] }, { kind: "component", type: UlvPagingComponent, selector: "bsu-ulv-paging", inputs: ["pagingSetting"], outputs: ["pageChange", "pageSizeChange"] }, { kind: "component", type: MaskComponent, selector: "bsu-mask", inputs: ["size", "top"] }, { kind: "directive", type: ContentDensityDirective, selector: "[contentDensity]" }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "pipe", type: i2.BbbTranslatePipe, name: "bbbTranslate" }, { kind: "pipe", type: i2.MoIconPipe, name: "moIcon" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
14669
14729
  }
14670
14730
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: UiMoInfoUlvComboComponent, decorators: [{
14671
14731
  type: Component,
14672
14732
  args: [{ selector: 'bsu-ui-mo-info-ulv-combo', changeDetection: ChangeDetectionStrategy.OnPush, host: {
14673
14733
  '[attr.dir]': "Setting?.IsLtr ? 'ltr' : null"
14674
- }, standalone: false, template: "<ng-container\r\n *ngTemplateOutlet=\"\r\n comboTemplate;\r\n context: {\r\n disableOrReadonly: disableOrReadonly$ | async,\r\n disable: disable$ | async,\r\n readonly: readonly$ | async\r\n }\r\n \"\r\n>\r\n</ng-container>\r\n\r\n<ng-template #btnsTpl let-disableOrReadonly=\"disableOrReadonly\">\r\n @if( showExtraButtons() && !disableOrReadonly ){\r\n <div class=\"combo-actions fd-input-group\">\r\n @if (showClearAction) {\r\n <button\r\n class=\"combo-action-button fd-input-group__button\"\r\n type=\"button\"\r\n tabindex=\"-1\"\r\n fd-button\r\n fdType=\"transparent\"\r\n glyph=\"decline\"\r\n [ariaLabel]=\"'Delete' | bbbTranslate\"\r\n [title]=\"'Delete' | bbbTranslate\"\r\n (click)=\"onClear()\"\r\n ></button>\r\n } @if (showNewAction) {\r\n <button\r\n class=\"combo-action-button fd-input-group__button\"\r\n type=\"button\"\r\n fd-button\r\n fdType=\"transparent\"\r\n glyph=\"add\"\r\n [ariaLabel]=\"'New' | bbbTranslate\"\r\n [title]=\"'New' | bbbTranslate\"\r\n (click)=\"onNew()\"\r\n ></button>\r\n } @if (showEditAction) {\r\n <button\r\n class=\"combo-action-button fd-input-group__button\"\r\n type=\"button\"\r\n fd-button\r\n fdType=\"transparent\"\r\n glyph=\"edit\"\r\n [ariaLabel]=\"'Edit' | bbbTranslate\"\r\n [title]=\"'Edit' | bbbTranslate\"\r\n (click)=\"onEdit()\"\r\n ></button>\r\n } @if (showSearchAction) {\r\n <button\r\n class=\"combo-action-button fd-input-group__button\"\r\n type=\"button\"\r\n fd-button\r\n fdType=\"transparent\"\r\n glyph=\"search\"\r\n [ariaLabel]=\"'Search' | bbbTranslate\"\r\n [title]=\"'Search' | bbbTranslate\"\r\n (click)=\"onSearch()\"\r\n ></button>\r\n }\r\n </div>\r\n }\r\n</ng-template>\r\n<ng-template #comboTemplate let-disableOrReadonly=\"disableOrReadonly\" let-disable=\"disable\" let-readonly=\"readonly\">\r\n <div\r\n class=\"simple-combo-wrapper\"\r\n contentDensity\r\n [class.one-extra-button]=\"disableOrReadonly !== true && actionButtonCount === 1\"\r\n [class.two-extra-buttons]=\"disableOrReadonly !== true && actionButtonCount === 2\"\r\n [class.dropdown-hidden]=\"context._showDropDown === false || disableOrReadonly === true\"\r\n >\r\n @if ((loading$ | async) === true && !isDataLoadedFirstTime) {\r\n <div class=\"combo-loading-mask\">\r\n <bsu-mask [size]=\"'s'\" [top]=\"'10px'\"></bsu-mask>\r\n </div>\r\n }\r\n @if (iconMo()) {\r\n <span class=\"combo-value-icon\" aria-hidden=\"true\">\r\n <img [src]=\"iconMo()\" loading=\"lazy\" width=\"16\" height=\"16\" alt=\"\" />\r\n </span>\r\n }\r\n <bsu-fundamental-combo\r\n #fdCombobox\r\n [comboClass]=\"{\r\n 'combo-mo-ulv': true,\r\n 'has-value-icon': !!iconMo(),\r\n canAdd: !hasValue && disableOrReadonly !== true && Setting.ShowNewButton,\r\n canEdit: hasValue && disableOrReadonly !== true,\r\n disableorreadonly: disableOrReadonly === true,\r\n 'hide-dropdown-button': context._showDropDown === false || disableOrReadonly === true,\r\n showExtraButtons: disableOrReadonly !== true && showExtraButtons(),\r\n 'has-Value': hasValue\r\n }\"\r\n [placeholder]=\"'Select' | bbbTranslate\"\r\n [mobile]=\"false\"\r\n [mobileConfig]=\"mobileConfig\"\r\n [tabOutStrategy]=\"'close'\"\r\n [readonly]=\"readonly === true\"\r\n [disabled]=\"disable === true\"\r\n [dataSource]=\"comboDataSource\"\r\n [lookupKey]=\"'Id'\"\r\n [displayKey]=\"'$__displayCaption'\"\r\n [value]=\"value\"\r\n [byline]=\"allColumns.length > 0\"\r\n [fillControlMode]=\"'equal'\"\r\n [closeOnOutsideClick]=\"true\"\r\n (selectionChange)=\"onComboSelectionChange($event)\"\r\n (cleared)=\"onComboCleared()\"\r\n (openChange)=\"onComboOpenChange($event)\"\r\n (dataRequested)=\"onComboDataRequested()\"\r\n (dataReceived)=\"onComboDataReceived()\"\r\n [itemTemplate]=\"comboItemTpl\"\r\n >\r\n <!-- \u0641\u0648\u062A\u0631\u0650 \u0635\u0641\u062D\u0647\u200C\u0628\u0646\u062F\u06CC \u0627\u0632 \u0637\u0631\u06CC\u0642 <ng-content>\u0650 wrapper \u0628\u0647 \u0644\u06CC\u0633\u062A\u0650 fdp \u062A\u0632\u0631\u06CC\u0642 \u0645\u06CC\u200C\u0634\u0648\u062F. -->\r\n @if (ulvPagingSetting; as pagingSetting) { @if (pagingSetting.HasPaging && pagingSetting.TotalPages > 1) {\r\n <li class=\"combo-paging-footer\" role=\"presentation\">\r\n <bsu-ulv-paging [pagingSetting]=\"pagingSetting\" (pageChange)=\"onPageChange($event)\"></bsu-ulv-paging>\r\n </li>\r\n } }\r\n </bsu-fundamental-combo>\r\n <!--\r\n \u062A\u0645\u067E\u0644\u06CC\u062A\u0650 \u0622\u06CC\u062A\u0645 \u0631\u0627 \u0628\u0647\u200C\u0635\u0648\u0631\u062A \u0646\u0627\u0645\u200C\u062F\u0627\u0631 \u0628\u0647 [itemTemplate] \u0645\u06CC\u200C\u062F\u0647\u06CC\u0645\u061B wrapper \u062E\u0648\u062F\u0634 directive\u0650\r\n fdpComboboxItem \u0631\u0627 \u0627\u0639\u0644\u0627\u0645 \u0648 \u0627\u06CC\u0646 \u062A\u0645\u067E\u0644\u06CC\u062A \u0631\u0627 \u0631\u0646\u062F\u0631 \u0645\u06CC\u200C\u06A9\u0646\u062F (projection \u0645\u0633\u062A\u0642\u06CC\u0645\u0650 fdpComboboxItem\r\n \u0627\u0632 \u062F\u0627\u062E\u0644\u0650 <ng-content> \u062A\u0648\u0633\u0637\u0650 ContentChildren\u0650 fdp \u062F\u06CC\u062F\u0647 \u0646\u0645\u06CC\u200C\u0634\u0648\u062F).\r\n -->\r\n <ng-template #comboItemTpl let-item>\r\n <span fd-list-thumbnail class=\"!tw-w-auto tw-me-[0.2rem]\">\r\n <img [src]=\"item | moIcon: UlvMainCtrlr?.Ac?.Setting\" loading=\"lazy\" width=\"16px\" height=\"16px\" alt=\"object icon\"\r\n /></span>\r\n @if (allColumns?.length) { @if (getReportOptionView(item); as reportOption) {\r\n <div fd-list-content data-report-option>\r\n <h6\r\n fd-title\r\n [headerSize]=\"6\"\r\n [wrap]=\"true\"\r\n [attr.dir]=\"reportOption.primary.column?.IsLtr ? 'ltr' : null\"\r\n [title]=\"reportOption.primary.value\"\r\n >\r\n {{ reportOption.primary.value }}\r\n </h6>\r\n @if (reportOption.secondary; as secondary) {\r\n <div\r\n fd-list-title\r\n [wrap]=\"true\"\r\n [attr.dir]=\"secondary.column?.IsLtr ? 'ltr' : null\"\r\n [title]=\"secondary.value\"\r\n >\r\n {{ secondary.value }}\r\n </div>\r\n } @if (reportOption.details.length) {\r\n <fd-layout-grid [noHorizontalGap]=\"true\">\r\n <div fdLayoutGridRow [style.min-width.%]=\"100\">\r\n @for (field of reportOption.details; track field.column?.Name) {\r\n <div [fdLayoutGridCol]=\"12\" [colMd]=\"6\">\r\n <div fd-form-item [horizontal]=\"true\">\r\n <label\r\n fd-form-label\r\n [colon]=\"true\"\r\n [title]=\"field.column?.Caption || field.column?.Alias\"\r\n >\r\n {{ field.column?.Caption || field.column?.Alias | bbbTranslate }}\r\n </label>\r\n <div\r\n fd-list-title\r\n [wrap]=\"true\"\r\n [attr.dir]=\"field.column?.IsLtr ? 'ltr' : null\"\r\n [title]=\"field.value\"\r\n >\r\n {{ field.value }}\r\n </div>\r\n </div>\r\n </div>\r\n }\r\n </div>\r\n </fd-layout-grid>\r\n }\r\n </div>\r\n } } @else {\r\n <span fd-list-title>\r\n {{ item.$MoCaption || item.$Caption | bbbTranslate }}\r\n </span>\r\n }\r\n </ng-template>\r\n <ng-container *ngTemplateOutlet=\"btnsTpl; context: { disableOrReadonly: disableOrReadonly }\"></ng-container>\r\n </div>\r\n</ng-template>\r\n", styles: [":host{display:block}.combo-mo-ulv{display:block;width:100%}.combo-mo-ulv ::ng-deep .fd-popover-custom{width:100%}.simple-combo-wrapper{--combo-control-height: var(--sapElement_Height, 2.75rem);--combo-dropdown-width: 2.25rem;--combo-value-icon-width: 1.75rem;display:block;width:100%;position:relative}.simple-combo-wrapper.is-compact,.simple-combo-wrapper.is-condensed{--combo-control-height: var(--sapElement_Compact_Height, 2rem);--combo-dropdown-width: 2rem}.simple-combo-wrapper.one-extra-button ::ng-deep .combo-mo-ulv.showExtraButtons:not(.disableorreadonly) .fd-input-group__input{padding-inline-end:calc(var(--fdInput_Group_Addon_Width, 2.25rem) + .25rem)}.simple-combo-wrapper.two-extra-buttons ::ng-deep .combo-mo-ulv.showExtraButtons:not(.disableorreadonly) .fd-input-group__input{padding-inline-end:calc(var(--fdInput_Group_Addon_Width, 2.25rem) + var(--fdInput_Group_Addon_Width, 2.25rem) + .25rem)}.simple-combo-wrapper.dropdown-hidden{--combo-dropdown-width: 0rem}.simple-combo-wrapper ::ng-deep .combo-mo-ulv.hide-dropdown-button .fd-input-group__addon--button{display:none}.simple-combo-wrapper ::ng-deep .combo-mo-ulv.has-value-icon .fd-input-group__input{padding-inline-start:var(--combo-value-icon-width, 1.75rem)}.combo-value-icon{position:absolute;inset-block-start:2px;inset-inline-start:0;z-index:6;display:flex;align-items:center;justify-content:center;width:var(--combo-value-icon-width, 1.75rem);height:var(--combo-control-height);pointer-events:none}.combo-value-icon img{width:1rem;height:1rem;object-fit:contain}.combo-wrapper{display:flex;align-items:center;border:var(--sapField_BorderWidth, .0625rem) solid var(--sapField_BorderColor, #89919a);border-radius:var(--sapField_BorderCornerRadius, .125rem)}::ng-deep .fdp-combobox__count-list-results{display:none}::ng-deep .fdp-combobox__list:has(>.combo-paging-footer){display:flex!important;flex-direction:column}::ng-deep .fdp-combobox__list:has(>.combo-paging-footer)>.combo-paging-footer{order:1}::ng-deep .fdp-combobox__list:has([data-report-option])>.fd-list__item:has([data-report-option]){border-block-end:var(--sapList_BorderWidth) solid var(--sapList_BorderColor)}.combo-loading-mask{position:absolute;inset:0;z-index:8}.combo-paging-footer{position:sticky;inset-block-end:0;z-index:1;order:1;flex:0 0 auto;box-sizing:border-box;width:100%;padding-block:.25rem;overflow-x:auto;list-style:none;border-block-start:var(--sapList_BorderWidth, .0625rem) solid var(--sapList_BorderColor, #d9d9d9);background:var(--sapList_Background, var(--sapGroup_ContentBackground, #fff))}.combo-actions{position:absolute;inset-block-start:0;inset-inline-end:var(--combo-dropdown-width);z-index:7;display:flex;align-items:stretch;width:auto;min-width:0;height:var(--combo-control-height);overflow:hidden;border:0;border-radius:0;background:transparent;box-shadow:none}.combo-actions .combo-action-button{width:auto;height:100%;border-radius:0}@media(hover:hover)and (pointer:fine){.combo-actions{opacity:0;pointer-events:none;transform:translateY(.125rem);transition:opacity .18s ease-out,transform .18s ease-out}.simple-combo-wrapper:hover .combo-actions,.simple-combo-wrapper:focus-within .combo-actions{opacity:1;pointer-events:auto;transform:translateY(0)}}@media(prefers-reduced-motion:reduce){.combo-actions{transform:none;transition:none}}\n"] }]
14734
+ }, standalone: false, template: "<ng-container\r\n *ngTemplateOutlet=\"\r\n comboTemplate;\r\n context: {\r\n disableOrReadonly: disableOrReadonly$ | async,\r\n disable: disable$ | async,\r\n readonly: readonly$ | async\r\n }\r\n \"\r\n>\r\n</ng-container>\r\n\r\n<ng-template #btnsTpl let-disableOrReadonly=\"disableOrReadonly\">\r\n @if( showExtraButtons() && !disableOrReadonly ){\r\n <div class=\"combo-actions fd-input-group\">\r\n @if (showClearAction) {\r\n <button\r\n class=\"combo-action-button fd-input-group__button\"\r\n type=\"button\"\r\n tabindex=\"-1\"\r\n fd-button\r\n fdType=\"transparent\"\r\n glyph=\"decline\"\r\n [ariaLabel]=\"'Delete' | bbbTranslate\"\r\n [title]=\"'Delete' | bbbTranslate\"\r\n (click)=\"onClear()\"\r\n ></button>\r\n } @if (showNewAction) {\r\n <button\r\n class=\"combo-action-button fd-input-group__button\"\r\n type=\"button\"\r\n fd-button\r\n fdType=\"transparent\"\r\n glyph=\"add\"\r\n [ariaLabel]=\"'New' | bbbTranslate\"\r\n [title]=\"'New' | bbbTranslate\"\r\n (click)=\"onNew()\"\r\n ></button>\r\n } @if (showEditAction) {\r\n <button\r\n class=\"combo-action-button fd-input-group__button\"\r\n type=\"button\"\r\n fd-button\r\n fdType=\"transparent\"\r\n glyph=\"edit\"\r\n [ariaLabel]=\"'Edit' | bbbTranslate\"\r\n [title]=\"'Edit' | bbbTranslate\"\r\n (click)=\"onEdit()\"\r\n ></button>\r\n } @if (showSearchAction) {\r\n <button\r\n class=\"combo-action-button fd-input-group__button\"\r\n type=\"button\"\r\n fd-button\r\n fdType=\"transparent\"\r\n glyph=\"search\"\r\n [ariaLabel]=\"'Search' | bbbTranslate\"\r\n [title]=\"'Search' | bbbTranslate\"\r\n (click)=\"onSearch()\"\r\n ></button>\r\n }\r\n </div>\r\n }\r\n</ng-template>\r\n<ng-template #comboTemplate let-disableOrReadonly=\"disableOrReadonly\" let-disable=\"disable\" let-readonly=\"readonly\">\r\n <div\r\n class=\"simple-combo-wrapper\"\r\n contentDensity\r\n [class.one-extra-button]=\"disableOrReadonly !== true && actionButtonCount === 1\"\r\n [class.two-extra-buttons]=\"disableOrReadonly !== true && actionButtonCount === 2\"\r\n [class.dropdown-hidden]=\"context._showDropDown === false || disableOrReadonly === true\"\r\n >\r\n @if ((loading$ | async) === true && !isDataLoadedFirstTime) {\r\n <div class=\"combo-loading-mask\">\r\n <bsu-mask [size]=\"'s'\" [top]=\"'10px'\"></bsu-mask>\r\n </div>\r\n }\r\n @if (iconMo()) {\r\n <span class=\"combo-value-icon\" aria-hidden=\"true\">\r\n <img [src]=\"iconMo()\" loading=\"lazy\" width=\"16\" height=\"16\" alt=\"\" />\r\n </span>\r\n }\r\n <bsu-fundamental-combo\r\n #fdCombobox\r\n [comboClass]=\"{\r\n 'combo-mo-ulv': true,\r\n 'has-value-icon': !!iconMo(),\r\n canAdd: !hasValue && disableOrReadonly !== true && Setting.ShowNewButton,\r\n canEdit: hasValue && disableOrReadonly !== true,\r\n disableorreadonly: disableOrReadonly === true,\r\n 'hide-dropdown-button': context._showDropDown === false || disableOrReadonly === true,\r\n showExtraButtons: disableOrReadonly !== true && showExtraButtons(),\r\n 'has-Value': hasValue\r\n }\"\r\n [placeholder]=\"'Select' | bbbTranslate\"\r\n [mobile]=\"false\"\r\n [mobileConfig]=\"mobileConfig\"\r\n [tabOutStrategy]=\"'close'\"\r\n [readonly]=\"readonly === true\"\r\n [disabled]=\"disable === true\"\r\n [dataSource]=\"comboDataSource\"\r\n [lookupKey]=\"'Id'\"\r\n [displayKey]=\"'$__displayCaption'\"\r\n [value]=\"value\"\r\n [byline]=\"allColumns.length > 0\"\r\n [fillControlMode]=\"'equal'\"\r\n [closeOnOutsideClick]=\"true\"\r\n (selectionChange)=\"onComboSelectionChange($event)\"\r\n (cleared)=\"onComboCleared()\"\r\n (openChange)=\"onComboOpenChange($event)\"\r\n (dataRequested)=\"onComboDataRequested()\"\r\n (dataReceived)=\"onComboDataReceived()\"\r\n [itemTemplate]=\"comboItemTpl\"\r\n >\r\n <!-- \u0641\u0648\u062A\u0631\u0650 \u0635\u0641\u062D\u0647\u200C\u0628\u0646\u062F\u06CC \u0627\u0632 \u0637\u0631\u06CC\u0642 <ng-content>\u0650 wrapper \u0628\u0647 \u0644\u06CC\u0633\u062A\u0650 fdp \u062A\u0632\u0631\u06CC\u0642 \u0645\u06CC\u200C\u0634\u0648\u062F. -->\r\n @if (ulvPagingSetting; as pagingSetting) { @if (pagingSetting.HasPaging && pagingSetting.TotalPages > 1) {\r\n <li class=\"combo-paging-footer\" role=\"presentation\">\r\n <bsu-ulv-paging [pagingSetting]=\"pagingSetting\" (pageChange)=\"onPageChange($event)\"></bsu-ulv-paging>\r\n </li>\r\n } }\r\n </bsu-fundamental-combo>\r\n <!--\r\n \u062A\u0645\u067E\u0644\u06CC\u062A\u0650 \u0622\u06CC\u062A\u0645 \u0631\u0627 \u0628\u0647\u200C\u0635\u0648\u0631\u062A \u0646\u0627\u0645\u200C\u062F\u0627\u0631 \u0628\u0647 [itemTemplate] \u0645\u06CC\u200C\u062F\u0647\u06CC\u0645\u061B wrapper \u062E\u0648\u062F\u0634 directive\u0650\r\n fdpComboboxItem \u0631\u0627 \u0627\u0639\u0644\u0627\u0645 \u0648 \u0627\u06CC\u0646 \u062A\u0645\u067E\u0644\u06CC\u062A \u0631\u0627 \u0631\u0646\u062F\u0631 \u0645\u06CC\u200C\u06A9\u0646\u062F (projection \u0645\u0633\u062A\u0642\u06CC\u0645\u0650 fdpComboboxItem\r\n \u0627\u0632 \u062F\u0627\u062E\u0644\u0650 <ng-content> \u062A\u0648\u0633\u0637\u0650 ContentChildren\u0650 fdp \u062F\u06CC\u062F\u0647 \u0646\u0645\u06CC\u200C\u0634\u0648\u062F).\r\n -->\r\n <ng-template #comboItemTpl let-item>\r\n <span fd-list-thumbnail class=\"!tw-w-auto tw-me-[0.2rem]\">\r\n <img [src]=\"item | moIcon: UlvMainCtrlr?.Ac?.Setting\" loading=\"lazy\" width=\"16px\" height=\"16px\" alt=\"object icon\"\r\n /></span>\r\n @if (allColumns?.length) { @if (getReportOptionView(item); as reportOption) {\r\n <div fd-list-content data-report-option>\r\n <h6\r\n fd-title\r\n [headerSize]=\"6\"\r\n [wrap]=\"true\"\r\n [attr.dir]=\"reportOption.primary.column?.IsLtr ? 'ltr' : null\"\r\n [title]=\"reportOption.primary.value\"\r\n >\r\n {{ reportOption.primary.value }}\r\n </h6>\r\n @if (reportOption.secondary; as secondary) {\r\n <div\r\n fd-list-title\r\n [wrap]=\"true\"\r\n [attr.dir]=\"secondary.column?.IsLtr ? 'ltr' : null\"\r\n [title]=\"secondary.value\"\r\n >\r\n {{ secondary.value }}\r\n </div>\r\n } @if (reportOption.details.length) {\r\n <fd-layout-grid [noHorizontalGap]=\"true\">\r\n <div fdLayoutGridRow [style.min-width.%]=\"100\">\r\n @for (field of reportOption.details; track field.column?.Name) {\r\n <div [fdLayoutGridCol]=\"12\" [colMd]=\"6\">\r\n <div fd-form-item [horizontal]=\"true\">\r\n <label\r\n fd-form-label\r\n [colon]=\"true\"\r\n [title]=\"field.column?.Caption || field.column?.Alias\"\r\n >\r\n {{ field.column?.Caption || field.column?.Alias | bbbTranslate }}\r\n </label>\r\n <div\r\n fd-list-title\r\n [wrap]=\"true\"\r\n [attr.dir]=\"field.column?.IsLtr ? 'ltr' : null\"\r\n [title]=\"field.value\"\r\n >\r\n {{ field.value }}\r\n </div>\r\n </div>\r\n </div>\r\n }\r\n </div>\r\n </fd-layout-grid>\r\n }\r\n </div>\r\n } } @else {\r\n <span fd-list-title>\r\n {{ item.$MoCaption || item.$Caption | bbbTranslate }}\r\n </span>\r\n }\r\n </ng-template>\r\n <ng-container *ngTemplateOutlet=\"btnsTpl; context: { disableOrReadonly: disableOrReadonly }\"></ng-container>\r\n </div>\r\n</ng-template>\r\n", styles: [":host{display:block}.combo-mo-ulv{display:block;width:100%}.combo-mo-ulv ::ng-deep .fd-popover-custom{width:100%}.simple-combo-wrapper{--combo-control-height: var(--sapElement_Height, 2.75rem);--combo-dropdown-width: 2.25rem;--combo-value-icon-width: 1.75rem;display:block;width:100%;position:relative}.simple-combo-wrapper.is-compact,.simple-combo-wrapper.is-condensed{--combo-control-height: var(--sapElement_Compact_Height, 2rem);--combo-dropdown-width: 2rem}.simple-combo-wrapper.one-extra-button ::ng-deep .combo-mo-ulv.showExtraButtons:not(.disableorreadonly) .fd-input-group__input{padding-inline-end:calc(var(--fdInput_Group_Addon_Width, 2.25rem) + .25rem)}.simple-combo-wrapper.two-extra-buttons ::ng-deep .combo-mo-ulv.showExtraButtons:not(.disableorreadonly) .fd-input-group__input{padding-inline-end:calc(var(--fdInput_Group_Addon_Width, 2.25rem) + var(--fdInput_Group_Addon_Width, 2.25rem) + .25rem)}.simple-combo-wrapper.dropdown-hidden{--combo-dropdown-width: 0rem}.simple-combo-wrapper ::ng-deep .combo-mo-ulv.hide-dropdown-button .fd-input-group__addon--button{display:none}.simple-combo-wrapper ::ng-deep .combo-mo-ulv.has-value-icon .fd-input-group__input{padding-inline-start:var(--combo-value-icon-width, 1.75rem)}.combo-value-icon{position:absolute;inset-block-start:2px;inset-inline-start:0;z-index:6;display:flex;align-items:center;justify-content:center;width:var(--combo-value-icon-width, 1.75rem);height:var(--combo-control-height);pointer-events:none}.combo-value-icon img{width:1rem;height:1rem;object-fit:contain}.combo-wrapper{display:flex;align-items:center;border:var(--sapField_BorderWidth, .0625rem) solid var(--sapField_BorderColor, #89919a);border-radius:var(--sapField_BorderCornerRadius, .125rem)}::ng-deep .fdp-combobox__count-list-results{display:none}::ng-deep .fdp-combobox__list:has(>.combo-paging-footer){display:flex!important;flex-direction:column}::ng-deep .fdp-combobox__list:has(>.combo-paging-footer)>.fd-list__item{flex:0 0 auto}::ng-deep .fdp-combobox__list:has(>.combo-paging-footer)>.combo-paging-footer{order:1}::ng-deep .fdp-combobox__list:has([data-report-option])>.fd-list__item:has([data-report-option]){border-block-end:var(--sapList_BorderWidth) solid var(--sapList_BorderColor)}.combo-loading-mask{position:absolute;inset:0;z-index:8}.combo-paging-footer{position:sticky;inset-block-end:0;z-index:1;order:1;flex:0 0 auto;box-sizing:border-box;width:100%;padding-block:.25rem;overflow-x:auto;list-style:none;border-block-start:var(--sapList_BorderWidth, .0625rem) solid var(--sapList_BorderColor, #d9d9d9);background:var(--sapList_Background, var(--sapGroup_ContentBackground, #fff))}.combo-actions{position:absolute;inset-block-start:0;inset-inline-end:var(--combo-dropdown-width);z-index:7;display:flex;align-items:stretch;width:auto;min-width:0;height:var(--combo-control-height);overflow:hidden;border:0;border-radius:0;background:transparent;box-shadow:none}.combo-actions .combo-action-button{width:auto;height:100%;border-radius:0}@media(hover:hover)and (pointer:fine){.combo-actions{opacity:0;pointer-events:none;transform:translateY(.125rem);transition:opacity .18s ease-out,transform .18s ease-out}.simple-combo-wrapper:hover .combo-actions,.simple-combo-wrapper:focus-within .combo-actions{opacity:1;pointer-events:auto;transform:translateY(0)}}@media(prefers-reduced-motion:reduce){.combo-actions{transform:none;transition:none}}\n"] }]
14675
14735
  }], propDecorators: { ulvAdapter: [{
14676
14736
  type: Input
14677
14737
  }], Control: [{
@@ -15372,7 +15432,7 @@ class BarsaSearchFormComponent extends UiFormPanelComponent {
15372
15432
  this._router.navigate(['..']);
15373
15433
  }
15374
15434
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: BarsaSearchFormComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
15375
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "22.0.8", type: BarsaSearchFormComponent, isStandalone: false, selector: "bsu-barsa-search-form", providers: [FormPanelService], usesInheritance: true, ngImport: i0, template: "<bsu-fundamental-dynamic-form\r\n [removeContentPadding]=\"(headerRemoveContentPadding$ | async)!!\"\r\n [breadCrumbs]=\"breadCrumbs$ | async\"\r\n [description]=\"(headerDescription$ | async)!!\"\r\n [title]=\"(title$ | async)!!\"\r\n [subtitle]=\"(headerSubtitle$ | async)!!\"\r\n [toolbarItems]=\"toolbarItems$ | async | tlbButtons: 'inFooter':false\"\r\n [layoutActions]=\"toolbarItems$ | async | tlbButtons: 'inFooter':true\"\r\n [toolbarVisible]=\"(toolbarVisible$ | async)!!\"\r\n [facetList]=\"(headerLayout$ | async)?.FacetList2\"\r\n [parameters]=\"parameters\"\r\n [workflowPanelUi]=\"workflowPanelUi$ | async\"\r\n [isMobile]=\"isMobile\"\r\n [layout94]=\"layout94$ | async\"\r\n [rtl]=\"(rtl$ | async)!!\"\r\n [mask]=\"(mask$ | async)!!\"\r\n [dirValue]=\"(dirValue$ | async)!!\"\r\n [deviceSize]=\"(deviceSize$ | async)!!\"\r\n [contentDensity]=\"(contentDensity$ | async)!!\"\r\n [modernTabs]=\"(modernTabs$ | async)!!\"\r\n [selectedTabPageName]=\"(selectedTabPageName$ | async)!!\"\r\n [avatar]=\"(avatar$ | async)!!\"\r\n [fieldDict]=\"(fieldDict$ | async)!!\"\r\n (close)=\"onClose2()\"\r\n (toolbarClick)=\"onToolbarClick($event)\"\r\n [contentIsPage]=\"parameters?.ContentIsPage === true\"\r\n (workflowChoiceClick)=\"onWorkflowChoiceClick($event)\"\r\n></bsu-fundamental-dynamic-form>\r\n", styles: [""], dependencies: [{ kind: "component", type: FundamentalDynamicFormComponent, selector: "bsu-fundamental-dynamic-form", inputs: ["breadCrumbs", "toolbarVisible", "toolbarItems", "layoutActions", "layout94", "parameters", "workflowPanelUi", "context", "title", "subtitle", "description", "facetList", "infobars", "fieldDict", "removeHeaderBorder", "removeContentPadding", "isMobile", "mo", "avatar", "circleAvatar", "hideBreadCrumb", "rtl", "hideFooter", "hideTitle", "hideClose", "hidePin", "fullscreen", "mask", "canSend", "contentIsPage", "contentDensity", "deviceSize", "dirValue", "landscape", "standalone", "modernTabs", "selectedTabPageName", "modernTabContainerComponent", "layoutGridCol", "colLg", "colXl", "colMd", "footerDesign", "formContentMaxWidth", "formContentJustify", "workflowButtons"], outputs: ["toolbarClick", "workflowChoiceClick", "close", "fullscreenRequest", "dismissInfobar"] }, { kind: "directive", type: ContentDensityDirective, selector: "[contentDensity]" }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "pipe", type: i2.TlbButtonsPipe, name: "tlbButtons" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
15435
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "22.0.8", type: BarsaSearchFormComponent, isStandalone: false, selector: "bsu-barsa-search-form", providers: [FormPanelService], usesInheritance: true, ngImport: i0, template: "<bsu-fundamental-dynamic-form\r\n [removeContentPadding]=\"(headerRemoveContentPadding$ | async)!!\"\r\n [breadCrumbs]=\"breadCrumbs$ | async\"\r\n [description]=\"(headerDescription$ | async)!!\"\r\n [title]=\"(title$ | async)!!\"\r\n [subtitle]=\"(headerSubtitle$ | async)!!\"\r\n [toolbarItems]=\"toolbarItems$ | async | tlbButtons: 'inFooter':false\"\r\n [layoutActions]=\"toolbarItems$ | async | tlbButtons: 'inFooter':true\"\r\n [toolbarVisible]=\"(toolbarVisible$ | async)!!\"\r\n [facetList]=\"(headerLayout$ | async)?.FacetList2\"\r\n [parameters]=\"parameters\"\r\n [workflowPanelUi]=\"workflowPanelUi$ | async\"\r\n [isMobile]=\"isMobile\"\r\n [layout94]=\"layout94$ | async\"\r\n [rtl]=\"(rtl$ | async)!!\"\r\n [mask]=\"(mask$ | async)!!\"\r\n [dirValue]=\"(dirValue$ | async)!!\"\r\n [deviceSize]=\"(deviceSize$ | async)!!\"\r\n [contentDensity]=\"(contentDensity$ | async)!!\"\r\n [modernTabs]=\"(modernTabs$ | async)!!\"\r\n [selectedTabPageName]=\"(selectedTabPageName$ | async)!!\"\r\n [avatar]=\"(avatar$ | async)!!\"\r\n [fieldDict]=\"(fieldDict$ | async)!!\"\r\n (close)=\"onClose2()\"\r\n (toolbarClick)=\"onToolbarClick($event)\"\r\n [contentIsPage]=\"parameters?.ContentIsPage === true\"\r\n (workflowChoiceClick)=\"onWorkflowChoiceClick($event)\"\r\n></bsu-fundamental-dynamic-form>\r\n", styles: [""], dependencies: [{ kind: "component", type: FundamentalDynamicFormComponent, selector: "bsu-fundamental-dynamic-form", inputs: ["breadCrumbs", "toolbarVisible", "toolbarItems", "layoutActions", "layout94", "parameters", "workflowPanelUi", "context", "title", "subtitle", "description", "facetList", "infobars", "fieldDict", "removeHeaderBorder", "removeContentPadding", "isMobile", "mo", "avatar", "circleAvatar", "hideBreadCrumb", "rtl", "hideFooter", "hideTitle", "hideClose", "hidePin", "fullscreen", "mask", "canSend", "contentIsPage", "contentDensity", "deviceSize", "dirValue", "landscape", "standalone", "modernTabs", "selectedTabPageName", "modernTabContainerComponent", "layoutGridCol", "colLg", "colXl", "colMd", "footerDesign", "formContentMaxWidth", "formContentJustify", "workflowButtons", "lastUpdateTime"], outputs: ["toolbarClick", "workflowChoiceClick", "close", "fullscreenRequest", "dismissInfobar"] }, { kind: "directive", type: ContentDensityDirective, selector: "[contentDensity]" }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "pipe", type: i2.TlbButtonsPipe, name: "tlbButtons" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
15376
15436
  }
15377
15437
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: BarsaSearchFormComponent, decorators: [{
15378
15438
  type: Component,