barsa-sap-ui 3.0.1 → 3.0.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/fesm2022/barsa-sap-ui.mjs +244 -119
- package/fesm2022/barsa-sap-ui.mjs.map +1 -1
- package/package.json +1 -1
- package/types/barsa-sap-ui.d.ts +41 -18
|
@@ -1,15 +1,15 @@
|
|
|
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
|
-
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';
|
|
9
7
|
import * as i1 from '@angular/common';
|
|
10
8
|
import { CommonModule } from '@angular/common';
|
|
11
9
|
import * as i1$1 from '@angular/forms';
|
|
12
10
|
import { UntypedFormBuilder, UntypedFormControl, Validators, FormsModule, ReactiveFormsModule } from '@angular/forms';
|
|
11
|
+
import * as i2 from 'barsa-novin-ray-core';
|
|
12
|
+
import { BaseComponent, ReportViewBaseComponent, getUniqueId, 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';
|
|
13
13
|
import { DataProvider, ComboBoxDataSource } from '@fundamental-ngx/platform/shared';
|
|
14
14
|
import moment from 'moment';
|
|
15
15
|
import jmoment from 'moment-jalaali';
|
|
@@ -46,16 +46,16 @@ import * as i3$3 from '@fundamental-ngx/core/content-density';
|
|
|
46
46
|
import * as i1$5 from '@fundamental-ngx/core/illustrated-message';
|
|
47
47
|
import * as i4$4 from '@fundamental-ngx/core/avatar';
|
|
48
48
|
import * as i5$3 from '@fundamental-ngx/core/text';
|
|
49
|
-
import * as i2$6 from '@angular/cdk/scrolling';
|
|
50
|
-
import { CdkVirtualScrollViewport, ScrollingModule } from '@angular/cdk/scrolling';
|
|
51
49
|
import * as i7$2 from '@fundamental-ngx/core/card';
|
|
52
50
|
import * as i3$4 from 'ng2-pdfjs-viewer';
|
|
53
51
|
import { PdfJsViewerModule } from 'ng2-pdfjs-viewer';
|
|
54
52
|
import * as i10 from '@fundamental-ngx/core/layout-grid';
|
|
55
|
-
import * as i2$
|
|
53
|
+
import * as i2$6 from '@fundamental-ngx/core/link';
|
|
56
54
|
import * as i12 from '@fundamental-ngx/core/quick-view';
|
|
57
55
|
import * as i8$1 from '@fundamental-ngx/core/object-status';
|
|
58
56
|
import * as i10$1 from '@fundamental-ngx/core/token';
|
|
57
|
+
import * as i2$7 from '@angular/cdk/scrolling';
|
|
58
|
+
import { ScrollingModule } from '@angular/cdk/scrolling';
|
|
59
59
|
import * as i2$8 from '@fundamental-ngx/core/message-strip';
|
|
60
60
|
import * as i4$5 from '@fundamental-ngx/core/notification';
|
|
61
61
|
import { NotificationRef } from '@fundamental-ngx/core/notification';
|
|
@@ -139,7 +139,6 @@ class FundamentalComboComponent {
|
|
|
139
139
|
this.openChange = new EventEmitter();
|
|
140
140
|
this.dataRequested = new EventEmitter();
|
|
141
141
|
this.dataReceived = new EventEmitter();
|
|
142
|
-
this.comboboxId = getUniqueId(3);
|
|
143
142
|
this._onDestroy$ = new Subject();
|
|
144
143
|
this._pendingNativeSelectionKeyUps = new Set();
|
|
145
144
|
this._pendingNavigationSelection = null;
|
|
@@ -298,21 +297,21 @@ class FundamentalComboComponent {
|
|
|
298
297
|
return !!option && this._isComboListTarget(option);
|
|
299
298
|
}
|
|
300
299
|
_isComboListTarget(target) {
|
|
301
|
-
return target?.closest?.('[role="listbox"]')?.id === `${this.
|
|
300
|
+
return target?.closest?.('[role="listbox"]')?.id === `${this.id}-result`;
|
|
302
301
|
}
|
|
303
302
|
_isComboListVisible(input) {
|
|
304
|
-
const list = input?.ownerDocument.getElementById(`${this.
|
|
303
|
+
const list = input?.ownerDocument.getElementById(`${this.id}-result`);
|
|
305
304
|
return !!list && (list.getClientRects().length > 0 || list.offsetParent !== null);
|
|
306
305
|
}
|
|
307
306
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: FundamentalComboComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
308
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.8", type: FundamentalComboComponent, isStandalone: false, selector: "bsu-fundamental-combo", inputs: { dataSource: "dataSource", value: "value", displayKey: "displayKey", lookupKey: "lookupKey", byline: "byline", placeholder: "placeholder", disabled: "disabled", readonly: "readonly", mobile: "mobile", mobileConfig: "mobileConfig", isLtr: "isLtr", showDropdownButton: "showDropdownButton", itemTemplate: "itemTemplate", allowFreeText: "allowFreeText", width: "width", comboClass: "comboClass", fillControlMode: "fillControlMode", tabOutStrategy: "tabOutStrategy", closeOnOutsideClick: "closeOnOutsideClick" }, outputs: { selectionChange: "selectionChange", cleared: "cleared", openChange: "openChange", dataRequested: "dataRequested", dataReceived: "dataReceived" }, host: { properties: { "attr.dir": "isLtr ? 'ltr' : null", "class.hide-dropdown-button": "!showDropdownButton" } }, viewQueries: [{ propertyName: "fdComboRef", first: true, predicate: ComboboxComponent, descendants: true }], ngImport: i0, template: "<fdp-combobox\n #fdCombobox\n [ngClass]=\"comboClass\"\n [id]=\"
|
|
307
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.8", type: FundamentalComboComponent, isStandalone: false, selector: "bsu-fundamental-combo", inputs: { dataSource: "dataSource", value: "value", displayKey: "displayKey", lookupKey: "lookupKey", byline: "byline", placeholder: "placeholder", disabled: "disabled", readonly: "readonly", mobile: "mobile", mobileConfig: "mobileConfig", isLtr: "isLtr", id: "id", showDropdownButton: "showDropdownButton", itemTemplate: "itemTemplate", allowFreeText: "allowFreeText", width: "width", comboClass: "comboClass", fillControlMode: "fillControlMode", tabOutStrategy: "tabOutStrategy", closeOnOutsideClick: "closeOnOutsideClick" }, outputs: { selectionChange: "selectionChange", cleared: "cleared", openChange: "openChange", dataRequested: "dataRequested", dataReceived: "dataReceived" }, host: { properties: { "attr.dir": "isLtr ? 'ltr' : null", "class.hide-dropdown-button": "!showDropdownButton" } }, viewQueries: [{ propertyName: "fdComboRef", first: true, predicate: ComboboxComponent, descendants: true }], ngImport: i0, template: "<fdp-combobox\n #fdCombobox\n [ngClass]=\"comboClass\"\n [id]=\"id\"\n [name]=\"id\"\n [width]=\"width\"\n [placeholder]=\"placeholder\"\n [mobile]=\"mobile\"\n [mobileConfig]=\"mobileConfig\"\n [tabOutStrategy]=\"tabOutStrategy\"\n [readonly]=\"readonly\"\n [disabled]=\"disabled\"\n [dataSource]=\"dataSource\"\n [lookupKey]=\"lookupKey\"\n [displayKey]=\"displayKey\"\n [ngModel]=\"value\"\n [ngModelOptions]=\"{ standalone: true }\"\n [byline]=\"byline\"\n [fillControlMode]=\"fillControlMode\"\n [closeOnOutsideClick]=\"closeOnOutsideClick\"\n (selectionChange)=\"onSelectionChange($event)\"\n (onDataRequested)=\"onComboDataRequested()\"\n (onDataReceived)=\"onComboDataReceived()\"\n>\n <!--\n \u062A\u0645\u067E\u0644\u06CC\u062A\u0650 \u0622\u06CC\u062A\u0645 \u0628\u0627\u06CC\u062F \u0645\u0633\u062A\u0642\u06CC\u0645\u0627\u064B \u0641\u0631\u0632\u0646\u062F\u0650 \u0645\u062D\u062A\u0648\u0627\u06CC\u0650 fdp-combobox \u0628\u0627\u0634\u062F \u0686\u0648\u0646 fdp \u0628\u0627\n @ContentChildren(FDP_COMBOBOX_ITEM_DEF) \u0622\u0646 \u0631\u0627 \u0645\u06CC\u200C\u062E\u0648\u0627\u0646\u062F \u0648 \u0627\u0632 \u062F\u0627\u062E\u0644\u0650 <ng-content>\u0650 wrapper\n \u0639\u0628\u0648\u0631 \u0646\u0645\u06CC\u200C\u06A9\u0646\u062F. \u067E\u0633 directive \u0631\u0627 \u0647\u0645\u06CC\u0646\u200C\u062C\u0627 \u062F\u0631 \u062A\u0645\u067E\u0644\u06CC\u062A\u0650 wrapper \u0627\u0639\u0644\u0627\u0645 \u0645\u06CC\u200C\u06A9\u0646\u06CC\u0645 \u0648 \u0628\u0647 itemTemplate\u0650\n \u0645\u0635\u0631\u0641\u200C\u06A9\u0646\u0646\u062F\u0647 forward \u0645\u06CC\u200C\u06A9\u0646\u06CC\u0645.\n -->\n @if (itemTemplate) {\n <ng-template fdpComboboxItem let-item let-index=\"index\">\n <ng-container\n *ngTemplateOutlet=\"itemTemplate; context: { $implicit: item, index: index }\"\n ></ng-container>\n </ng-template>\n }\n <!-- \u0641\u0648\u062A\u0631\u0650 \u0635\u0641\u062D\u0647\u200C\u0628\u0646\u062F\u06CC \u0648 \u0633\u0627\u06CC\u0631 \u0645\u062D\u062A\u0648\u0627\u06CC\u0650 \u0644\u06CC\u0633\u062A \u0627\u0632 \u0637\u0631\u06CC\u0642 <ng-content> \u062A\u0632\u0631\u06CC\u0642 \u0645\u06CC\u200C\u0634\u0648\u0646\u062F. -->\n <ng-content></ng-content>\n</fdp-combobox>\n", styles: [":host{display:block;width:100%}:host fdp-combobox{display:block;width:100%}:host fdp-combobox ::ng-deep>fd-popover{width:100%}:host.hide-dropdown-button fdp-combobox ::ng-deep .fd-input-group__addon.fd-input-group__addon--button{display:none!important}::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)}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { 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: "directive", type: i2.MobileDirective, selector: "[mobile]" }, { kind: "component", type: i4.ComboboxComponent, selector: "fdp-combobox", outputs: ["selectionChange"] }, { kind: "directive", type: i4.ComboboxItemDirective, selector: "[fdpComboboxItem]", inputs: ["fdpComboboxItemUse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
309
308
|
}
|
|
310
309
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: FundamentalComboComponent, decorators: [{
|
|
311
310
|
type: Component,
|
|
312
311
|
args: [{ selector: 'bsu-fundamental-combo', changeDetection: ChangeDetectionStrategy.OnPush, host: {
|
|
313
312
|
'[attr.dir]': "isLtr ? 'ltr' : null",
|
|
314
313
|
'[class.hide-dropdown-button]': '!showDropdownButton'
|
|
315
|
-
}, standalone: false, template: "<fdp-combobox\n #fdCombobox\n [ngClass]=\"comboClass\"\n [id]=\"
|
|
314
|
+
}, standalone: false, template: "<fdp-combobox\n #fdCombobox\n [ngClass]=\"comboClass\"\n [id]=\"id\"\n [name]=\"id\"\n [width]=\"width\"\n [placeholder]=\"placeholder\"\n [mobile]=\"mobile\"\n [mobileConfig]=\"mobileConfig\"\n [tabOutStrategy]=\"tabOutStrategy\"\n [readonly]=\"readonly\"\n [disabled]=\"disabled\"\n [dataSource]=\"dataSource\"\n [lookupKey]=\"lookupKey\"\n [displayKey]=\"displayKey\"\n [ngModel]=\"value\"\n [ngModelOptions]=\"{ standalone: true }\"\n [byline]=\"byline\"\n [fillControlMode]=\"fillControlMode\"\n [closeOnOutsideClick]=\"closeOnOutsideClick\"\n (selectionChange)=\"onSelectionChange($event)\"\n (onDataRequested)=\"onComboDataRequested()\"\n (onDataReceived)=\"onComboDataReceived()\"\n>\n <!--\n \u062A\u0645\u067E\u0644\u06CC\u062A\u0650 \u0622\u06CC\u062A\u0645 \u0628\u0627\u06CC\u062F \u0645\u0633\u062A\u0642\u06CC\u0645\u0627\u064B \u0641\u0631\u0632\u0646\u062F\u0650 \u0645\u062D\u062A\u0648\u0627\u06CC\u0650 fdp-combobox \u0628\u0627\u0634\u062F \u0686\u0648\u0646 fdp \u0628\u0627\n @ContentChildren(FDP_COMBOBOX_ITEM_DEF) \u0622\u0646 \u0631\u0627 \u0645\u06CC\u200C\u062E\u0648\u0627\u0646\u062F \u0648 \u0627\u0632 \u062F\u0627\u062E\u0644\u0650 <ng-content>\u0650 wrapper\n \u0639\u0628\u0648\u0631 \u0646\u0645\u06CC\u200C\u06A9\u0646\u062F. \u067E\u0633 directive \u0631\u0627 \u0647\u0645\u06CC\u0646\u200C\u062C\u0627 \u062F\u0631 \u062A\u0645\u067E\u0644\u06CC\u062A\u0650 wrapper \u0627\u0639\u0644\u0627\u0645 \u0645\u06CC\u200C\u06A9\u0646\u06CC\u0645 \u0648 \u0628\u0647 itemTemplate\u0650\n \u0645\u0635\u0631\u0641\u200C\u06A9\u0646\u0646\u062F\u0647 forward \u0645\u06CC\u200C\u06A9\u0646\u06CC\u0645.\n -->\n @if (itemTemplate) {\n <ng-template fdpComboboxItem let-item let-index=\"index\">\n <ng-container\n *ngTemplateOutlet=\"itemTemplate; context: { $implicit: item, index: index }\"\n ></ng-container>\n </ng-template>\n }\n <!-- \u0641\u0648\u062A\u0631\u0650 \u0635\u0641\u062D\u0647\u200C\u0628\u0646\u062F\u06CC \u0648 \u0633\u0627\u06CC\u0631 \u0645\u062D\u062A\u0648\u0627\u06CC\u0650 \u0644\u06CC\u0633\u062A \u0627\u0632 \u0637\u0631\u06CC\u0642 <ng-content> \u062A\u0632\u0631\u06CC\u0642 \u0645\u06CC\u200C\u0634\u0648\u0646\u062F. -->\n <ng-content></ng-content>\n</fdp-combobox>\n", styles: [":host{display:block;width:100%}:host fdp-combobox{display:block;width:100%}:host fdp-combobox ::ng-deep>fd-popover{width:100%}:host.hide-dropdown-button fdp-combobox ::ng-deep .fd-input-group__addon.fd-input-group__addon--button{display:none!important}::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)}\n"] }]
|
|
316
315
|
}], propDecorators: { dataSource: [{
|
|
317
316
|
type: Input
|
|
318
317
|
}], value: [{
|
|
@@ -335,6 +334,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
|
|
|
335
334
|
type: Input
|
|
336
335
|
}], isLtr: [{
|
|
337
336
|
type: Input
|
|
337
|
+
}], id: [{
|
|
338
|
+
type: Input
|
|
338
339
|
}], showDropdownButton: [{
|
|
339
340
|
type: Input
|
|
340
341
|
}], itemTemplate: [{
|
|
@@ -1230,7 +1231,11 @@ class LayoutControlComponent extends LayoutItemBaseComponent {
|
|
|
1230
1231
|
if (MaxSize?.width > 0 && !this.isCheckbox) {
|
|
1231
1232
|
this.maxWidth = MaxSize.width + extraVal + 'px';
|
|
1232
1233
|
}
|
|
1233
|
-
if (
|
|
1234
|
+
if (this.isCheckbox) {
|
|
1235
|
+
// مینِ سرور برای چکباکس فقط اندازهی مربع است و اجازه میدهد کپشن جدا بیفتد
|
|
1236
|
+
this.minWidth = 'max-content';
|
|
1237
|
+
}
|
|
1238
|
+
else if (MinSize?.width > 0) {
|
|
1234
1239
|
this.minWidth = MinSize.width + extraVal + 'px';
|
|
1235
1240
|
}
|
|
1236
1241
|
}
|
|
@@ -1331,16 +1336,23 @@ class LayoutControlComponent extends LayoutItemBaseComponent {
|
|
|
1331
1336
|
}
|
|
1332
1337
|
_setFlex(flex) {
|
|
1333
1338
|
if (typeof flex !== 'undefined') {
|
|
1339
|
+
if (this.config?.FieldUi?.originalXtype === 'Ui.CheckBox' && !this.isMobile) {
|
|
1340
|
+
// چکباکس اتمیک: از مدل «وزنِ grow» خارج میشود تا هیچوقت زیرِ عرضِ محتوایش له نشود
|
|
1341
|
+
this._renderer2.setStyle(this._el.nativeElement, 'flex', '0 0 auto');
|
|
1342
|
+
this._renderer2.setStyle(this._el.nativeElement, 'width', 'auto');
|
|
1343
|
+
this._renderer2.setStyle(this._el.nativeElement, 'min-width', 'max-content');
|
|
1344
|
+
return;
|
|
1345
|
+
}
|
|
1334
1346
|
if (!this.isMobile || this.config.FieldUi.originalXtype !== 'Ui.TextArea')
|
|
1335
1347
|
this._renderer2.setStyle(this._el.nativeElement, 'flex', flex);
|
|
1336
1348
|
}
|
|
1337
1349
|
}
|
|
1338
1350
|
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{
|
|
1351
|
+
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
1352
|
}
|
|
1341
1353
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: LayoutControlComponent, decorators: [{
|
|
1342
1354
|
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{
|
|
1355
|
+
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
1356
|
}], ctorParameters: () => [], propDecorators: { tempLabelRef: [{
|
|
1345
1357
|
type: ViewChild,
|
|
1346
1358
|
args: ['tempLabelRef', { read: ElementRef }]
|
|
@@ -2453,12 +2465,26 @@ class SapUiReportBaseComponent extends ReportBaseComponent {
|
|
|
2453
2465
|
}
|
|
2454
2466
|
_selectNextInlineRecord(mo) {
|
|
2455
2467
|
const newMoDataList = this.moDataList;
|
|
2468
|
+
const navigation = mo.$InlineEditNavigation || { columnIndex: 0, direction: 'next' };
|
|
2469
|
+
delete mo.$InlineEditNavigation;
|
|
2470
|
+
const matchedIndex = newMoDataList.findIndex((c) => c.Id === mo.Id);
|
|
2471
|
+
const existsIndex = Number.isInteger(navigation.rowIndex) ? navigation.rowIndex : matchedIndex;
|
|
2472
|
+
if (navigation.direction === 'previous' && existsIndex > 0) {
|
|
2473
|
+
const previousMo = newMoDataList[existsIndex - 1];
|
|
2474
|
+
previousMo.$IsChecked = false;
|
|
2475
|
+
previousMo.$InlineEditNavigation = navigation;
|
|
2476
|
+
this._rowCheck(previousMo, existsIndex - 1);
|
|
2477
|
+
return;
|
|
2478
|
+
}
|
|
2456
2479
|
if (!mo.$NewInlineMo) {
|
|
2457
|
-
|
|
2458
|
-
|
|
2459
|
-
|
|
2460
|
-
newMoDataList[
|
|
2461
|
-
this._rowCheck(newMoDataList[
|
|
2480
|
+
const targetIndex = existsIndex + (navigation.direction === 'previous' ? -1 : 1);
|
|
2481
|
+
if (existsIndex > -1 && targetIndex >= 0 && targetIndex < newMoDataList.length) {
|
|
2482
|
+
newMoDataList[targetIndex].$IsChecked = false;
|
|
2483
|
+
newMoDataList[targetIndex].$InlineEditNavigation = navigation;
|
|
2484
|
+
this._rowCheck(newMoDataList[targetIndex], targetIndex);
|
|
2485
|
+
}
|
|
2486
|
+
else if (navigation.direction === 'previous') {
|
|
2487
|
+
this._rowCheck(mo, existsIndex);
|
|
2462
2488
|
}
|
|
2463
2489
|
else {
|
|
2464
2490
|
newMoDataList.map((c) => {
|
|
@@ -2469,11 +2495,13 @@ class SapUiReportBaseComponent extends ReportBaseComponent {
|
|
|
2469
2495
|
this._resetMoDataList(newMoDataList);
|
|
2470
2496
|
return;
|
|
2471
2497
|
}
|
|
2472
|
-
this.
|
|
2498
|
+
const newInlineMo = this._inlineReportCreateNewMo(true);
|
|
2499
|
+
newInlineMo.$InlineEditNavigation = navigation;
|
|
2500
|
+
this._addInlineMoToModataList(newInlineMo, true);
|
|
2473
2501
|
}
|
|
2474
2502
|
return;
|
|
2475
2503
|
}
|
|
2476
|
-
else {
|
|
2504
|
+
else if (navigation.direction === 'next') {
|
|
2477
2505
|
this._ulvMainService.newInlineMo(false);
|
|
2478
2506
|
}
|
|
2479
2507
|
}
|
|
@@ -4976,14 +5004,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
|
|
|
4976
5004
|
args: ['style.height']
|
|
4977
5005
|
}] } });
|
|
4978
5006
|
|
|
5007
|
+
/** Sentinel id for the section holding files that do not belong to any group. */
|
|
5008
|
+
const UNGROUPED_ID = '__ungrouped__';
|
|
4979
5009
|
class FileGalleryViewerComponent extends BaseComponent {
|
|
4980
|
-
set thumbnailViewport(viewport) {
|
|
4981
|
-
this._thumbnailViewport = viewport;
|
|
4982
|
-
this._scheduleThumbnailViewportRefresh();
|
|
4983
|
-
}
|
|
4984
|
-
get thumbnailViewport() {
|
|
4985
|
-
return this._thumbnailViewport;
|
|
4986
|
-
}
|
|
4987
5010
|
/**
|
|
4988
5011
|
*
|
|
4989
5012
|
*/
|
|
@@ -4997,13 +5020,15 @@ class FileGalleryViewerComponent extends BaseComponent {
|
|
|
4997
5020
|
...(ngDevMode ? [{ debugName: "selectedId" }] : /* istanbul ignore next */ []));
|
|
4998
5021
|
this.selectedIdChange = new EventEmitter();
|
|
4999
5022
|
this.changeOrder = new EventEmitter();
|
|
5000
|
-
|
|
5001
|
-
this.thumbnailMinBufferPx = 224;
|
|
5002
|
-
this.thumbnailMaxBufferPx = 448;
|
|
5023
|
+
/** Flat, group-ordered list used by the large preview gallery. */
|
|
5003
5024
|
this.thumbnailFiles = [];
|
|
5025
|
+
/** Grouped, collapsible sections used by the thumbnail strip. */
|
|
5026
|
+
this.thumbnailGroups = [];
|
|
5004
5027
|
this._renderer2 = inject(Renderer2);
|
|
5005
5028
|
this._selectedIdChange$ = new Subject();
|
|
5006
|
-
this.
|
|
5029
|
+
this._collapsedGroupIds = new Set();
|
|
5030
|
+
this._knownGroupIds = new Set();
|
|
5031
|
+
this._groupCollapseInitialized = false;
|
|
5007
5032
|
effect(() => {
|
|
5008
5033
|
const id = this.selectedId();
|
|
5009
5034
|
if (!id) {
|
|
@@ -5043,19 +5068,28 @@ class FileGalleryViewerComponent extends BaseComponent {
|
|
|
5043
5068
|
return;
|
|
5044
5069
|
}
|
|
5045
5070
|
this._selectedIndexChanged(media.Id);
|
|
5046
|
-
|
|
5047
|
-
|
|
5048
|
-
|
|
5071
|
+
}
|
|
5072
|
+
/** Whether the strip renders collapsible group headers (only meaningful for the vertical strip). */
|
|
5073
|
+
get thumbnailGrouped() {
|
|
5074
|
+
return !this.isHorizontal && (this.groupList?.length ?? 0) > 0;
|
|
5075
|
+
}
|
|
5076
|
+
toggleGroup(id) {
|
|
5077
|
+
if (this._collapsedGroupIds.has(id)) {
|
|
5078
|
+
this._collapsedGroupIds.delete(id);
|
|
5079
|
+
}
|
|
5080
|
+
else {
|
|
5081
|
+
this._collapsedGroupIds.add(id);
|
|
5082
|
+
}
|
|
5083
|
+
}
|
|
5084
|
+
isGroupCollapsed(id) {
|
|
5085
|
+
return this._collapsedGroupIds.has(id);
|
|
5049
5086
|
}
|
|
5050
5087
|
dropItem(event) {
|
|
5088
|
+
// Each section is its own drop list, so the indices are relative to that section's files.
|
|
5089
|
+
const sectionFiles = event.container.data ?? [];
|
|
5051
5090
|
const draggedFile = event.item.data;
|
|
5052
|
-
const
|
|
5053
|
-
const renderedStart = renderedRange?.start ?? 0;
|
|
5054
|
-
const renderedLength = renderedRange ? renderedRange.end - renderedRange.start : this.thumbnailFiles.length;
|
|
5055
|
-
const targetOffset = Math.min(event.currentIndex, Math.max(0, renderedLength - 1));
|
|
5056
|
-
const targetFile = this.thumbnailFiles[renderedStart + targetOffset];
|
|
5091
|
+
const targetFile = sectionFiles[event.currentIndex];
|
|
5057
5092
|
if (!draggedFile || !targetFile || this.isGroupedFile(draggedFile) || this.isGroupedFile(targetFile)) {
|
|
5058
|
-
this.thumbnailViewport?.checkViewportSize();
|
|
5059
5093
|
return;
|
|
5060
5094
|
}
|
|
5061
5095
|
const oldIndex = this.files.indexOf(draggedFile);
|
|
@@ -5081,15 +5115,6 @@ class FileGalleryViewerComponent extends BaseComponent {
|
|
|
5081
5115
|
isGroupedFile(file) {
|
|
5082
5116
|
return !!file?.['groupId'] && file['groupId'] !== '0';
|
|
5083
5117
|
}
|
|
5084
|
-
isFirstFileOfGroup(file, index) {
|
|
5085
|
-
return this.isGroupedFile(file) && this.thumbnailFiles[index - 1]?.['groupId'] !== file['groupId'];
|
|
5086
|
-
}
|
|
5087
|
-
getGroupName(file) {
|
|
5088
|
-
return this.groupList?.find((group) => group.Id === file?.['groupId'])?.Name ?? '';
|
|
5089
|
-
}
|
|
5090
|
-
trackByFile(_index, file) {
|
|
5091
|
-
return file.Id;
|
|
5092
|
-
}
|
|
5093
5118
|
get showThumbnailStrip() {
|
|
5094
5119
|
return (this.thumbnailFiles.length > 0 && ((this.deviceSize !== 's' && this.isImageGallery) || this.isHorizontal));
|
|
5095
5120
|
}
|
|
@@ -5097,11 +5122,25 @@ class FileGalleryViewerComponent extends BaseComponent {
|
|
|
5097
5122
|
this._selectedIdChange$.next(id);
|
|
5098
5123
|
}
|
|
5099
5124
|
_scrollThumbnailInto(id) {
|
|
5100
|
-
|
|
5101
|
-
|
|
5102
|
-
|
|
5103
|
-
|
|
5104
|
-
|
|
5125
|
+
queueMicrotask(() => {
|
|
5126
|
+
const container = this.thumbnailScroll?.nativeElement;
|
|
5127
|
+
if (!container) {
|
|
5128
|
+
return;
|
|
5129
|
+
}
|
|
5130
|
+
// Only rendered (expanded-group) thumbnails can be scrolled to; collapsed groups are skipped.
|
|
5131
|
+
const el = container.querySelector(`[data-thumb-id="${id}"]`);
|
|
5132
|
+
if (!el) {
|
|
5133
|
+
return;
|
|
5134
|
+
}
|
|
5135
|
+
const cRect = container.getBoundingClientRect();
|
|
5136
|
+
const eRect = el.getBoundingClientRect();
|
|
5137
|
+
if (this.isHorizontal) {
|
|
5138
|
+
container.scrollTo({ left: container.scrollLeft + (eRect.left - cRect.left), behavior: 'smooth' });
|
|
5139
|
+
}
|
|
5140
|
+
else {
|
|
5141
|
+
container.scrollTo({ top: container.scrollTop + (eRect.top - cRect.top), behavior: 'smooth' });
|
|
5142
|
+
}
|
|
5143
|
+
});
|
|
5105
5144
|
}
|
|
5106
5145
|
_applyIndexChanged(id) {
|
|
5107
5146
|
this.scrollToId.set(id);
|
|
@@ -5114,49 +5153,83 @@ class FileGalleryViewerComponent extends BaseComponent {
|
|
|
5114
5153
|
if (!viewer || !this.galleryContainer) {
|
|
5115
5154
|
return;
|
|
5116
5155
|
}
|
|
5117
|
-
this.galleryContainer.nativeElement
|
|
5118
|
-
|
|
5156
|
+
const container = this.galleryContainer.nativeElement;
|
|
5157
|
+
const target = viewer.el.nativeElement;
|
|
5158
|
+
// `offsetTop` is measured against the element's offsetParent (here the positioned
|
|
5159
|
+
// `bsu-ui-pictures-info`, not the scroll container), so it points at the wrong place
|
|
5160
|
+
// and the selected image never scrolls into view. Compute the offset against the
|
|
5161
|
+
// container itself via bounding rects, then center the image in the visible area
|
|
5162
|
+
// (top-align it when it is taller than the viewport).
|
|
5163
|
+
const targetTopWithinContent = target.getBoundingClientRect().top - container.getBoundingClientRect().top + container.scrollTop;
|
|
5164
|
+
const centerOffset = Math.max(0, (container.clientHeight - target.offsetHeight) / 2);
|
|
5165
|
+
container.scrollTo({
|
|
5166
|
+
top: Math.max(0, targetTopWithinContent - centerOffset),
|
|
5119
5167
|
behavior: 'smooth'
|
|
5120
5168
|
});
|
|
5121
5169
|
}
|
|
5122
5170
|
_refreshThumbnailFiles() {
|
|
5123
5171
|
const files = this.files ?? [];
|
|
5124
5172
|
const groups = this.groupList ?? [];
|
|
5125
|
-
if (!groups.length) {
|
|
5126
|
-
this.thumbnailFiles = [...files];
|
|
5127
|
-
this._scheduleThumbnailViewportRefresh();
|
|
5128
|
-
return;
|
|
5129
|
-
}
|
|
5130
5173
|
const groupedFiles = groups.flatMap((group) => files.filter((file) => file['groupId'] === group.Id));
|
|
5131
5174
|
const ungroupedFiles = files.filter((file) => !file['groupId'] || file['groupId'] === '0');
|
|
5132
|
-
|
|
5133
|
-
this.
|
|
5134
|
-
|
|
5135
|
-
|
|
5136
|
-
|
|
5175
|
+
// Flat list drives the large preview gallery.
|
|
5176
|
+
this.thumbnailFiles = groups.length ? [...groupedFiles, ...ungroupedFiles] : [...files];
|
|
5177
|
+
// Grouped sections drive the collapsible thumbnail strip.
|
|
5178
|
+
const sections = [];
|
|
5179
|
+
for (const group of groups) {
|
|
5180
|
+
const gFiles = files.filter((file) => file['groupId'] === group.Id);
|
|
5181
|
+
if (gFiles.length) {
|
|
5182
|
+
sections.push({ id: group.Id, name: group.Name, isUngrouped: false, files: gFiles });
|
|
5183
|
+
}
|
|
5184
|
+
}
|
|
5185
|
+
if (ungroupedFiles.length) {
|
|
5186
|
+
sections.push({ id: UNGROUPED_ID, name: '', isUngrouped: true, files: ungroupedFiles });
|
|
5187
|
+
}
|
|
5188
|
+
this.thumbnailGroups = sections;
|
|
5189
|
+
this._syncGroupCollapseState();
|
|
5190
|
+
}
|
|
5191
|
+
/** Groups start collapsed; the user's later choices are preserved and new groups appear collapsed. */
|
|
5192
|
+
_syncGroupCollapseState() {
|
|
5193
|
+
const ids = this.thumbnailGroups.map((group) => group.id);
|
|
5194
|
+
const idSet = new Set(ids);
|
|
5195
|
+
if (!this._groupCollapseInitialized) {
|
|
5196
|
+
this._groupCollapseInitialized = true;
|
|
5197
|
+
this._collapsedGroupIds = new Set(ids);
|
|
5198
|
+
this._knownGroupIds = new Set(ids);
|
|
5137
5199
|
return;
|
|
5138
5200
|
}
|
|
5139
|
-
|
|
5140
|
-
|
|
5141
|
-
|
|
5142
|
-
|
|
5143
|
-
|
|
5201
|
+
for (const id of ids) {
|
|
5202
|
+
if (!this._knownGroupIds.has(id)) {
|
|
5203
|
+
this._collapsedGroupIds.add(id);
|
|
5204
|
+
this._knownGroupIds.add(id);
|
|
5205
|
+
}
|
|
5206
|
+
}
|
|
5207
|
+
for (const id of [...this._collapsedGroupIds]) {
|
|
5208
|
+
if (!idSet.has(id)) {
|
|
5209
|
+
this._collapsedGroupIds.delete(id);
|
|
5210
|
+
}
|
|
5211
|
+
}
|
|
5212
|
+
for (const id of [...this._knownGroupIds]) {
|
|
5213
|
+
if (!idSet.has(id)) {
|
|
5214
|
+
this._knownGroupIds.delete(id);
|
|
5215
|
+
}
|
|
5216
|
+
}
|
|
5144
5217
|
}
|
|
5145
5218
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: FileGalleryViewerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
5146
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.8", type: FileGalleryViewerComponent, isStandalone: false, selector: "bsu-file-gallery-viewer", inputs: { fillWidth: { classPropertyName: "fillWidth", publicName: "fillWidth", isSignal: false, isRequired: false, transformFunction: null }, zoom: { classPropertyName: "zoom", publicName: "zoom", isSignal: false, isRequired: false, transformFunction: null }, deviceSize: { classPropertyName: "deviceSize", publicName: "deviceSize", isSignal: false, isRequired: false, transformFunction: null }, title: { classPropertyName: "title", publicName: "title", isSignal: false, isRequired: false, transformFunction: null }, files: { classPropertyName: "files", publicName: "files", isSignal: false, isRequired: false, transformFunction: null }, contentDensity: { classPropertyName: "contentDensity", publicName: "contentDensity", isSignal: false, isRequired: false, transformFunction: null }, isImageGallery: { classPropertyName: "isImageGallery", publicName: "isImageGallery", isSignal: false, isRequired: false, transformFunction: null }, isHorizontal: { classPropertyName: "isHorizontal", publicName: "isHorizontal", isSignal: false, isRequired: false, transformFunction: null }, selectedFile: { classPropertyName: "selectedFile", publicName: "selectedFile", isSignal: false, isRequired: false, transformFunction: null }, groupList: { classPropertyName: "groupList", publicName: "groupList", isSignal: false, isRequired: false, transformFunction: null }, scrollToId: { classPropertyName: "scrollToId", publicName: "scrollToId", isSignal: false, isRequired: false, transformFunction: null }, selectedId: { classPropertyName: "selectedId", publicName: "selectedId", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { selectedIdChange: "selectedIdChange", changeOrder: "changeOrder" }, viewQueries: [{ propertyName: "galleryContainer", first: true, predicate: ["galleryContainer"], descendants: true, read: ElementRef }, { propertyName: "thumbnailViewport", first: true, predicate: CdkVirtualScrollViewport, descendants: true }, { propertyName: "listOfFileViewerContent", predicate: ["fileViewerContent"], descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "@if (isImageGallery) {\r\n<div #galleryContainer class=\"gallery inDialog\">\r\n @for (file of thumbnailFiles; track file.Id) {\r\n <bsu-file-viewer-content\r\n #fileViewerContent\r\n [attr.id]=\"'fv_gl_' + file.Id\"\r\n [deviceSize]=\"deviceSize\"\r\n [file]=\"file\"\r\n [imageOnly]=\"true\"\r\n [fillWidth]=\"fillWidth\"\r\n [zoom]=\"zoom\"\r\n [isImageGallery]=\"isImageGallery\"\r\n ></bsu-file-viewer-content>\r\n }\r\n</div>\r\n} @if (!isImageGallery) {\r\n<div class=\"gallery\">\r\n @if (selectedFile) {\r\n <bsu-file-viewer-content\r\n [deviceSize]=\"deviceSize\"\r\n [fillWidth]=\"fillWidth\"\r\n [file]=\"selectedFile\"\r\n [isImageGallery]=\"isImageGallery\"\r\n ></bsu-file-viewer-content>\r\n }\r\n</div>\r\n} @if (showThumbnailStrip) {\r\n<div class=\"thumbnail\" #thumnailContainer>\r\n <cdk-virtual-scroll-viewport\r\n [style.height]=\"thumnailContainer.offsetHeight + 'px'\"\r\n [class.horizontal-viewport]=\"isHorizontal\"\r\n [class.vertical-viewport]=\"!isHorizontal\"\r\n [itemSize]=\"thumbnailItemSize\"\r\n [minBufferPx]=\"thumbnailMinBufferPx\"\r\n [maxBufferPx]=\"thumnailContainer.offsetHeight\"\r\n [orientation]=\"isHorizontal ? 'horizontal' : 'vertical'\"\r\n cdkDropList\r\n [cdkDropListData]=\"thumbnailFiles\"\r\n [cdkDropListOrientation]=\"isHorizontal ? 'horizontal' : 'vertical'\"\r\n (cdkDropListDropped)=\"dropItem($event)\"\r\n >\r\n <div\r\n *cdkVirtualFor=\"let file of thumbnailFiles; trackBy: trackByFile; let index = index; templateCacheSize: 8\"\r\n class=\"thumbnail-item\"\r\n [attr.aria-label]=\"file.FileName || file['label']\"\r\n (click)=\"onMedaiClick(file)\"\r\n cdkDrag\r\n [cdkDragData]=\"file\"\r\n [cdkDragDisabled]=\"isGroupedFile(file)\"\r\n cdkDragHandle\r\n >\r\n @if (isFirstFileOfGroup(file, index)) {\r\n <span class=\"thumbnail-group-label\">{{ getGroupName(file) }}</span>\r\n }\r\n <bsu-file-viewer-content\r\n [selected]=\"scrollToId() === file.Id\"\r\n [cardMode]=\"true\"\r\n [deviceSize]=\"deviceSize\"\r\n [file]=\"file\"\r\n [isThumbnail]=\"true\"\r\n [isImageGallery]=\"isImageGallery\"\r\n ></bsu-file-viewer-content>\r\n <ng-template cdkDragPreview>\r\n <div class=\"thumbnail-drag-preview\">\r\n <img [src]=\"file.thumbnailUrl\" alt=\"\" />\r\n </div>\r\n </ng-template>\r\n </div>\r\n </cdk-virtual-scroll-viewport>\r\n</div>\r\n}\r\n", styles: [":host{display:flex;min-width:0;min-height:0;flex-direction:row-reverse}:host .gallery{flex:1;min-width:0;min-height:0;overflow:auto}:host .gallery .pics{position:relative}:host .thumbnail{flex:none;overflow:hidden}:host cdk-virtual-scroll-viewport{display:block;width:100%;height:100%;contain:strict}:host .thumbnail-item{position:relative;box-sizing:border-box;width:7rem;height:7rem;padding:.25rem;cursor:pointer}:host .thumbnail-group-label{position:absolute;z-index:2;inset-block-start:.25rem;inset-inline:.25rem;overflow:hidden;padding:.125rem .25rem;border-radius:var(--sapElement_BorderCornerRadius, .25rem);background:var(--sapGroup_ContentBackground, #fff);color:var(--sapTextColor, #1d2d3e);font-size:.75rem;text-overflow:ellipsis;white-space:nowrap}:host ::ng-deep .horizontal-viewport .cdk-virtual-scroll-content-wrapper{display:flex;flex-direction:row}:host ::ng-deep .thumbnail-item fd-card,:host ::ng-deep .thumbnail-item img{height:6rem}:host.horizontal{flex-direction:column}:host.horizontal .thumbnail{width:100%;min-height:7rem;height:7rem;border-top:var(--sapList_BorderWidth, .0625rem) solid var(--sapList_BorderColor, #d9d9d9)}:host.vertical .gallery{border-inline-end:var(--sapList_BorderWidth, .0625rem) solid var(--sapList_BorderColor, #d9d9d9)}:host.vertical .thumbnail{width:8rem;height:auto;border-block-end:var(--sapList_BorderWidth, .0625rem) solid var(--sapList_BorderColor, #d9d9d9)}:host.vertical .vertical-viewport{overflow-x:hidden;overflow-y:auto}:host.vertical .thumbnail-item{width:100%}.thumbnail-drag-preview{width:4rem;height:4rem;transform:translate(-50%,-50%)}.thumbnail-drag-preview img{width:100%;height:100%;border-radius:var(--sapElement_BorderCornerRadius, .25rem);object-fit:cover}\n"], dependencies: [{ kind: "directive", type: i1$2.CdkDropList, selector: "[cdkDropList], cdk-drop-list", inputs: ["cdkDropListConnectedTo", "cdkDropListData", "cdkDropListOrientation", "id", "cdkDropListLockAxis", "cdkDropListDisabled", "cdkDropListSortingDisabled", "cdkDropListEnterPredicate", "cdkDropListSortPredicate", "cdkDropListAutoScrollDisabled", "cdkDropListAutoScrollStep", "cdkDropListElementContainer", "cdkDropListHasAnchor"], outputs: ["cdkDropListDropped", "cdkDropListEntered", "cdkDropListExited", "cdkDropListSorted"], exportAs: ["cdkDropList"] }, { 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: "directive", type: i1$2.CdkDragPreview, selector: "ng-template[cdkDragPreview]", inputs: ["data", "matchSize"] }, { kind: "directive", type: i2$6.CdkFixedSizeVirtualScroll, selector: "cdk-virtual-scroll-viewport[itemSize]", inputs: ["itemSize", "minBufferPx", "maxBufferPx"] }, { kind: "directive", type: i2$6.CdkVirtualForOf, selector: "[cdkVirtualFor][cdkVirtualForOf]", inputs: ["cdkVirtualForOf", "cdkVirtualForTrackBy", "cdkVirtualForTemplate", "cdkVirtualForTemplateCacheSize"] }, { kind: "component", type: i2$6.CdkVirtualScrollViewport, selector: "cdk-virtual-scroll-viewport", inputs: ["orientation", "appendOnly"], outputs: ["scrolledIndexChange"] }, { kind: "component", type: FileViewerContentComponent, selector: "bsu-file-viewer-content", inputs: ["fillWidth", "zoom", "imageOnly", "isImageGallery", "cardMode", "showFooter", "showContent", "selected", "width", "deviceSize", "cardContentHeight", "file", "isThumbnail"], outputs: ["cantView", "imageLoaded"] }], changeDetection: i0.ChangeDetectionStrategy.Eager }); }
|
|
5219
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.8", type: FileGalleryViewerComponent, isStandalone: false, selector: "bsu-file-gallery-viewer", inputs: { fillWidth: { classPropertyName: "fillWidth", publicName: "fillWidth", isSignal: false, isRequired: false, transformFunction: null }, zoom: { classPropertyName: "zoom", publicName: "zoom", isSignal: false, isRequired: false, transformFunction: null }, deviceSize: { classPropertyName: "deviceSize", publicName: "deviceSize", isSignal: false, isRequired: false, transformFunction: null }, title: { classPropertyName: "title", publicName: "title", isSignal: false, isRequired: false, transformFunction: null }, files: { classPropertyName: "files", publicName: "files", isSignal: false, isRequired: false, transformFunction: null }, contentDensity: { classPropertyName: "contentDensity", publicName: "contentDensity", isSignal: false, isRequired: false, transformFunction: null }, isImageGallery: { classPropertyName: "isImageGallery", publicName: "isImageGallery", isSignal: false, isRequired: false, transformFunction: null }, isHorizontal: { classPropertyName: "isHorizontal", publicName: "isHorizontal", isSignal: false, isRequired: false, transformFunction: null }, selectedFile: { classPropertyName: "selectedFile", publicName: "selectedFile", isSignal: false, isRequired: false, transformFunction: null }, groupList: { classPropertyName: "groupList", publicName: "groupList", isSignal: false, isRequired: false, transformFunction: null }, scrollToId: { classPropertyName: "scrollToId", publicName: "scrollToId", isSignal: false, isRequired: false, transformFunction: null }, selectedId: { classPropertyName: "selectedId", publicName: "selectedId", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { selectedIdChange: "selectedIdChange", changeOrder: "changeOrder" }, viewQueries: [{ propertyName: "galleryContainer", first: true, predicate: ["galleryContainer"], descendants: true, read: ElementRef }, { propertyName: "thumbnailScroll", first: true, predicate: ["thumbnailScroll"], descendants: true, read: ElementRef }, { propertyName: "listOfFileViewerContent", predicate: ["fileViewerContent"], descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "@if (isImageGallery) {\r\n<div #galleryContainer class=\"gallery inDialog\">\r\n @for (file of thumbnailFiles; track file.Id) {\r\n <bsu-file-viewer-content\r\n #fileViewerContent\r\n [attr.id]=\"'fv_gl_' + file.Id\"\r\n [deviceSize]=\"deviceSize\"\r\n [file]=\"file\"\r\n [imageOnly]=\"true\"\r\n [fillWidth]=\"fillWidth\"\r\n [zoom]=\"zoom\"\r\n [isImageGallery]=\"isImageGallery\"\r\n ></bsu-file-viewer-content>\r\n }\r\n</div>\r\n} @if (!isImageGallery) {\r\n<div class=\"gallery\">\r\n @if (selectedFile) {\r\n <bsu-file-viewer-content\r\n [deviceSize]=\"deviceSize\"\r\n [fillWidth]=\"fillWidth\"\r\n [file]=\"selectedFile\"\r\n [isImageGallery]=\"isImageGallery\"\r\n ></bsu-file-viewer-content>\r\n }\r\n</div>\r\n} @if (showThumbnailStrip) {\r\n<div class=\"thumbnail\">\r\n <div class=\"thumbnail-scroll\" #thumbnailScroll>\r\n @if (thumbnailGrouped) {\r\n @for (group of thumbnailGroups; track group.id) {\r\n <section class=\"thumbnail-group\" [class.collapsed]=\"isGroupCollapsed(group.id)\">\r\n <button\r\n type=\"button\"\r\n class=\"thumbnail-group-header\"\r\n [attr.aria-expanded]=\"!isGroupCollapsed(group.id)\"\r\n (click)=\"toggleGroup(group.id)\"\r\n >\r\n <fd-icon\r\n class=\"thumbnail-group-caret\"\r\n [glyph]=\"isGroupCollapsed(group.id) ? 'slim-arrow-left' : 'slim-arrow-down'\"\r\n ></fd-icon>\r\n <span class=\"thumbnail-group-title\">{{\r\n group.isUngrouped ? ('Without Group' | bbbTranslate) : group.name\r\n }}</span>\r\n <span class=\"thumbnail-group-badge\">{{ group.files.length }}</span>\r\n </button>\r\n @if (!isGroupCollapsed(group.id)) {\r\n <div\r\n class=\"thumbnail-group-body\"\r\n cdkDropList\r\n [cdkDropListData]=\"group.files\"\r\n [cdkDropListOrientation]=\"'vertical'\"\r\n (cdkDropListDropped)=\"dropItem($event)\"\r\n >\r\n @for (file of group.files; track file.Id) {\r\n <div\r\n class=\"thumbnail-item\"\r\n [attr.data-thumb-id]=\"file.Id\"\r\n [attr.aria-label]=\"file.FileName || file['label']\"\r\n (click)=\"onMedaiClick(file)\"\r\n cdkDrag\r\n [cdkDragData]=\"file\"\r\n [cdkDragDisabled]=\"isGroupedFile(file)\"\r\n cdkDragHandle\r\n >\r\n <bsu-file-viewer-content\r\n [selected]=\"scrollToId() === file.Id\"\r\n [cardMode]=\"true\"\r\n [deviceSize]=\"deviceSize\"\r\n [file]=\"file\"\r\n [isThumbnail]=\"true\"\r\n [isImageGallery]=\"isImageGallery\"\r\n ></bsu-file-viewer-content>\r\n <ng-template cdkDragPreview>\r\n <div class=\"thumbnail-drag-preview\">\r\n <img [src]=\"file.thumbnailUrl\" alt=\"\" />\r\n </div>\r\n </ng-template>\r\n </div>\r\n }\r\n </div>\r\n }\r\n </section>\r\n }\r\n } @else {\r\n <div\r\n class=\"thumbnail-group-body flat\"\r\n cdkDropList\r\n [cdkDropListData]=\"thumbnailFiles\"\r\n [cdkDropListOrientation]=\"isHorizontal ? 'horizontal' : 'vertical'\"\r\n (cdkDropListDropped)=\"dropItem($event)\"\r\n >\r\n @for (file of thumbnailFiles; track file.Id) {\r\n <div\r\n class=\"thumbnail-item\"\r\n [attr.data-thumb-id]=\"file.Id\"\r\n [attr.aria-label]=\"file.FileName || file['label']\"\r\n (click)=\"onMedaiClick(file)\"\r\n cdkDrag\r\n [cdkDragData]=\"file\"\r\n [cdkDragDisabled]=\"isGroupedFile(file)\"\r\n cdkDragHandle\r\n >\r\n <bsu-file-viewer-content\r\n [selected]=\"scrollToId() === file.Id\"\r\n [cardMode]=\"true\"\r\n [deviceSize]=\"deviceSize\"\r\n [file]=\"file\"\r\n [isThumbnail]=\"true\"\r\n [isImageGallery]=\"isImageGallery\"\r\n ></bsu-file-viewer-content>\r\n <ng-template cdkDragPreview>\r\n <div class=\"thumbnail-drag-preview\">\r\n <img [src]=\"file.thumbnailUrl\" alt=\"\" />\r\n </div>\r\n </ng-template>\r\n </div>\r\n }\r\n </div>\r\n }\r\n </div>\r\n</div>\r\n}\r\n", styles: [":host{display:flex;min-width:0;min-height:0;flex-direction:row-reverse}:host .gallery{flex:1;min-width:0;min-height:0;overflow:auto}:host .gallery .pics{position:relative}:host .thumbnail{display:flex;flex:none;flex-direction:column;overflow:hidden}:host .thumbnail-scroll{flex:1 1 auto;min-height:0;min-width:0;overflow:auto}:host .thumbnail-group{display:flex;flex-direction:column}:host .thumbnail-group+.thumbnail-group{border-block-start:var(--sapList_BorderWidth, .0625rem) solid var(--sapList_BorderColor, #d9d9d9)}:host .thumbnail-group-header{position:sticky;z-index:3;inset-block-start:0;display:flex;box-sizing:border-box;width:100%;align-items:flex-start;margin:0;padding:.375rem .5rem;border:none;border-block-end:var(--sapList_BorderWidth, .0625rem) solid var(--sapList_BorderColor, #d9d9d9);background:var(--sapList_HeaderBackground, #f7f7f7);color:var(--sapList_TextColor, #32363a);cursor:pointer;font:inherit;font-size:.75rem;font-weight:600;gap:.375rem;text-align:start}:host .thumbnail-group-header:hover{background:var(--sapList_Hover_Background, #ededed)}:host .thumbnail-group-caret{flex:none;color:var(--sapContent_IconColor, #0854a0);font-size:.75rem}:host .thumbnail-group-title{display:-webkit-box;overflow:hidden;min-width:0;flex:1 1 auto;-webkit-box-orient:vertical;-webkit-line-clamp:2;line-clamp:2;line-height:1.25;overflow-wrap:anywhere;white-space:normal;word-break:break-word}:host .thumbnail-group-badge{box-sizing:border-box;min-width:1.25rem;flex:none;padding:0 .375rem;border:var(--sapButton_BorderWidth, .0625rem) solid var(--sapButton_BorderColor, #d9d9d9);border-radius:.625rem;background:var(--sapButton_Background, #fff);color:var(--sapContent_LabelColor, #6a6d70);font-size:.6875rem;font-weight:600;line-height:1rem;text-align:center}:host .thumbnail-group-body{display:flex;flex-wrap:wrap;padding:.5rem;gap:.25rem}:host .thumbnail-item{position:relative;box-sizing:border-box;width:7rem;height:7rem;padding:.25rem;border-radius:var(--sapElement_BorderCornerRadius, .25rem);cursor:pointer}:host ::ng-deep .thumbnail-item fd-card,:host ::ng-deep .thumbnail-item img{height:6rem}:host.horizontal{flex-direction:column}:host.horizontal .thumbnail{width:100%;min-height:7rem;height:7rem;border-top:var(--sapList_BorderWidth, .0625rem) solid var(--sapList_BorderColor, #d9d9d9)}:host.horizontal .thumbnail-scroll{overflow-x:auto;overflow-y:hidden}:host.horizontal .thumbnail-group-body.flat{height:100%;flex-wrap:nowrap;align-items:center}:host.vertical .gallery{border-inline-end:var(--sapList_BorderWidth, .0625rem) solid var(--sapList_BorderColor, #d9d9d9)}:host.vertical .thumbnail{width:8rem;height:auto;border-block-end:var(--sapList_BorderWidth, .0625rem) solid var(--sapList_BorderColor, #d9d9d9)}:host.vertical .thumbnail-scroll{overflow-x:hidden;overflow-y:auto}:host.vertical .thumbnail-item{width:100%}.thumbnail-drag-preview{width:4rem;height:4rem;transform:translate(-50%,-50%)}.thumbnail-drag-preview img{width:100%;height:100%;border-radius:var(--sapElement_BorderCornerRadius, .25rem);object-fit:cover}\n"], dependencies: [{ kind: "directive", type: i1$2.CdkDropList, selector: "[cdkDropList], cdk-drop-list", inputs: ["cdkDropListConnectedTo", "cdkDropListData", "cdkDropListOrientation", "id", "cdkDropListLockAxis", "cdkDropListDisabled", "cdkDropListSortingDisabled", "cdkDropListEnterPredicate", "cdkDropListSortPredicate", "cdkDropListAutoScrollDisabled", "cdkDropListAutoScrollStep", "cdkDropListElementContainer", "cdkDropListHasAnchor"], outputs: ["cdkDropListDropped", "cdkDropListEntered", "cdkDropListExited", "cdkDropListSorted"], exportAs: ["cdkDropList"] }, { 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: "directive", type: i1$2.CdkDragPreview, selector: "ng-template[cdkDragPreview]", inputs: ["data", "matchSize"] }, { kind: "component", type: i3.IconComponent, selector: "fd-icon", inputs: ["glyph", "font", "color", "background", "size", "class", "ariaLabel", "ariaHidden"], outputs: ["ariaHiddenChange"] }, { kind: "component", type: FileViewerContentComponent, selector: "bsu-file-viewer-content", inputs: ["fillWidth", "zoom", "imageOnly", "isImageGallery", "cardMode", "showFooter", "showContent", "selected", "width", "deviceSize", "cardContentHeight", "file", "isThumbnail"], outputs: ["cantView", "imageLoaded"] }, { kind: "pipe", type: i2.BbbTranslatePipe, name: "bbbTranslate" }], changeDetection: i0.ChangeDetectionStrategy.Eager }); }
|
|
5147
5220
|
}
|
|
5148
5221
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: FileGalleryViewerComponent, decorators: [{
|
|
5149
5222
|
type: Component,
|
|
5150
|
-
args: [{ selector: 'bsu-file-gallery-viewer', standalone: false, changeDetection: ChangeDetectionStrategy.Eager, template: "@if (isImageGallery) {\r\n<div #galleryContainer class=\"gallery inDialog\">\r\n @for (file of thumbnailFiles; track file.Id) {\r\n <bsu-file-viewer-content\r\n #fileViewerContent\r\n [attr.id]=\"'fv_gl_' + file.Id\"\r\n [deviceSize]=\"deviceSize\"\r\n [file]=\"file\"\r\n [imageOnly]=\"true\"\r\n [fillWidth]=\"fillWidth\"\r\n [zoom]=\"zoom\"\r\n [isImageGallery]=\"isImageGallery\"\r\n ></bsu-file-viewer-content>\r\n }\r\n</div>\r\n} @if (!isImageGallery) {\r\n<div class=\"gallery\">\r\n @if (selectedFile) {\r\n <bsu-file-viewer-content\r\n [deviceSize]=\"deviceSize\"\r\n [fillWidth]=\"fillWidth\"\r\n [file]=\"selectedFile\"\r\n [isImageGallery]=\"isImageGallery\"\r\n ></bsu-file-viewer-content>\r\n }\r\n</div>\r\n} @if (showThumbnailStrip) {\r\n<div class=\"thumbnail\"
|
|
5223
|
+
args: [{ selector: 'bsu-file-gallery-viewer', standalone: false, changeDetection: ChangeDetectionStrategy.Eager, template: "@if (isImageGallery) {\r\n<div #galleryContainer class=\"gallery inDialog\">\r\n @for (file of thumbnailFiles; track file.Id) {\r\n <bsu-file-viewer-content\r\n #fileViewerContent\r\n [attr.id]=\"'fv_gl_' + file.Id\"\r\n [deviceSize]=\"deviceSize\"\r\n [file]=\"file\"\r\n [imageOnly]=\"true\"\r\n [fillWidth]=\"fillWidth\"\r\n [zoom]=\"zoom\"\r\n [isImageGallery]=\"isImageGallery\"\r\n ></bsu-file-viewer-content>\r\n }\r\n</div>\r\n} @if (!isImageGallery) {\r\n<div class=\"gallery\">\r\n @if (selectedFile) {\r\n <bsu-file-viewer-content\r\n [deviceSize]=\"deviceSize\"\r\n [fillWidth]=\"fillWidth\"\r\n [file]=\"selectedFile\"\r\n [isImageGallery]=\"isImageGallery\"\r\n ></bsu-file-viewer-content>\r\n }\r\n</div>\r\n} @if (showThumbnailStrip) {\r\n<div class=\"thumbnail\">\r\n <div class=\"thumbnail-scroll\" #thumbnailScroll>\r\n @if (thumbnailGrouped) {\r\n @for (group of thumbnailGroups; track group.id) {\r\n <section class=\"thumbnail-group\" [class.collapsed]=\"isGroupCollapsed(group.id)\">\r\n <button\r\n type=\"button\"\r\n class=\"thumbnail-group-header\"\r\n [attr.aria-expanded]=\"!isGroupCollapsed(group.id)\"\r\n (click)=\"toggleGroup(group.id)\"\r\n >\r\n <fd-icon\r\n class=\"thumbnail-group-caret\"\r\n [glyph]=\"isGroupCollapsed(group.id) ? 'slim-arrow-left' : 'slim-arrow-down'\"\r\n ></fd-icon>\r\n <span class=\"thumbnail-group-title\">{{\r\n group.isUngrouped ? ('Without Group' | bbbTranslate) : group.name\r\n }}</span>\r\n <span class=\"thumbnail-group-badge\">{{ group.files.length }}</span>\r\n </button>\r\n @if (!isGroupCollapsed(group.id)) {\r\n <div\r\n class=\"thumbnail-group-body\"\r\n cdkDropList\r\n [cdkDropListData]=\"group.files\"\r\n [cdkDropListOrientation]=\"'vertical'\"\r\n (cdkDropListDropped)=\"dropItem($event)\"\r\n >\r\n @for (file of group.files; track file.Id) {\r\n <div\r\n class=\"thumbnail-item\"\r\n [attr.data-thumb-id]=\"file.Id\"\r\n [attr.aria-label]=\"file.FileName || file['label']\"\r\n (click)=\"onMedaiClick(file)\"\r\n cdkDrag\r\n [cdkDragData]=\"file\"\r\n [cdkDragDisabled]=\"isGroupedFile(file)\"\r\n cdkDragHandle\r\n >\r\n <bsu-file-viewer-content\r\n [selected]=\"scrollToId() === file.Id\"\r\n [cardMode]=\"true\"\r\n [deviceSize]=\"deviceSize\"\r\n [file]=\"file\"\r\n [isThumbnail]=\"true\"\r\n [isImageGallery]=\"isImageGallery\"\r\n ></bsu-file-viewer-content>\r\n <ng-template cdkDragPreview>\r\n <div class=\"thumbnail-drag-preview\">\r\n <img [src]=\"file.thumbnailUrl\" alt=\"\" />\r\n </div>\r\n </ng-template>\r\n </div>\r\n }\r\n </div>\r\n }\r\n </section>\r\n }\r\n } @else {\r\n <div\r\n class=\"thumbnail-group-body flat\"\r\n cdkDropList\r\n [cdkDropListData]=\"thumbnailFiles\"\r\n [cdkDropListOrientation]=\"isHorizontal ? 'horizontal' : 'vertical'\"\r\n (cdkDropListDropped)=\"dropItem($event)\"\r\n >\r\n @for (file of thumbnailFiles; track file.Id) {\r\n <div\r\n class=\"thumbnail-item\"\r\n [attr.data-thumb-id]=\"file.Id\"\r\n [attr.aria-label]=\"file.FileName || file['label']\"\r\n (click)=\"onMedaiClick(file)\"\r\n cdkDrag\r\n [cdkDragData]=\"file\"\r\n [cdkDragDisabled]=\"isGroupedFile(file)\"\r\n cdkDragHandle\r\n >\r\n <bsu-file-viewer-content\r\n [selected]=\"scrollToId() === file.Id\"\r\n [cardMode]=\"true\"\r\n [deviceSize]=\"deviceSize\"\r\n [file]=\"file\"\r\n [isThumbnail]=\"true\"\r\n [isImageGallery]=\"isImageGallery\"\r\n ></bsu-file-viewer-content>\r\n <ng-template cdkDragPreview>\r\n <div class=\"thumbnail-drag-preview\">\r\n <img [src]=\"file.thumbnailUrl\" alt=\"\" />\r\n </div>\r\n </ng-template>\r\n </div>\r\n }\r\n </div>\r\n }\r\n </div>\r\n</div>\r\n}\r\n", styles: [":host{display:flex;min-width:0;min-height:0;flex-direction:row-reverse}:host .gallery{flex:1;min-width:0;min-height:0;overflow:auto}:host .gallery .pics{position:relative}:host .thumbnail{display:flex;flex:none;flex-direction:column;overflow:hidden}:host .thumbnail-scroll{flex:1 1 auto;min-height:0;min-width:0;overflow:auto}:host .thumbnail-group{display:flex;flex-direction:column}:host .thumbnail-group+.thumbnail-group{border-block-start:var(--sapList_BorderWidth, .0625rem) solid var(--sapList_BorderColor, #d9d9d9)}:host .thumbnail-group-header{position:sticky;z-index:3;inset-block-start:0;display:flex;box-sizing:border-box;width:100%;align-items:flex-start;margin:0;padding:.375rem .5rem;border:none;border-block-end:var(--sapList_BorderWidth, .0625rem) solid var(--sapList_BorderColor, #d9d9d9);background:var(--sapList_HeaderBackground, #f7f7f7);color:var(--sapList_TextColor, #32363a);cursor:pointer;font:inherit;font-size:.75rem;font-weight:600;gap:.375rem;text-align:start}:host .thumbnail-group-header:hover{background:var(--sapList_Hover_Background, #ededed)}:host .thumbnail-group-caret{flex:none;color:var(--sapContent_IconColor, #0854a0);font-size:.75rem}:host .thumbnail-group-title{display:-webkit-box;overflow:hidden;min-width:0;flex:1 1 auto;-webkit-box-orient:vertical;-webkit-line-clamp:2;line-clamp:2;line-height:1.25;overflow-wrap:anywhere;white-space:normal;word-break:break-word}:host .thumbnail-group-badge{box-sizing:border-box;min-width:1.25rem;flex:none;padding:0 .375rem;border:var(--sapButton_BorderWidth, .0625rem) solid var(--sapButton_BorderColor, #d9d9d9);border-radius:.625rem;background:var(--sapButton_Background, #fff);color:var(--sapContent_LabelColor, #6a6d70);font-size:.6875rem;font-weight:600;line-height:1rem;text-align:center}:host .thumbnail-group-body{display:flex;flex-wrap:wrap;padding:.5rem;gap:.25rem}:host .thumbnail-item{position:relative;box-sizing:border-box;width:7rem;height:7rem;padding:.25rem;border-radius:var(--sapElement_BorderCornerRadius, .25rem);cursor:pointer}:host ::ng-deep .thumbnail-item fd-card,:host ::ng-deep .thumbnail-item img{height:6rem}:host.horizontal{flex-direction:column}:host.horizontal .thumbnail{width:100%;min-height:7rem;height:7rem;border-top:var(--sapList_BorderWidth, .0625rem) solid var(--sapList_BorderColor, #d9d9d9)}:host.horizontal .thumbnail-scroll{overflow-x:auto;overflow-y:hidden}:host.horizontal .thumbnail-group-body.flat{height:100%;flex-wrap:nowrap;align-items:center}:host.vertical .gallery{border-inline-end:var(--sapList_BorderWidth, .0625rem) solid var(--sapList_BorderColor, #d9d9d9)}:host.vertical .thumbnail{width:8rem;height:auto;border-block-end:var(--sapList_BorderWidth, .0625rem) solid var(--sapList_BorderColor, #d9d9d9)}:host.vertical .thumbnail-scroll{overflow-x:hidden;overflow-y:auto}:host.vertical .thumbnail-item{width:100%}.thumbnail-drag-preview{width:4rem;height:4rem;transform:translate(-50%,-50%)}.thumbnail-drag-preview img{width:100%;height:100%;border-radius:var(--sapElement_BorderCornerRadius, .25rem);object-fit:cover}\n"] }]
|
|
5151
5224
|
}], ctorParameters: () => [], propDecorators: { listOfFileViewerContent: [{
|
|
5152
5225
|
type: ViewChildren,
|
|
5153
5226
|
args: ['fileViewerContent']
|
|
5154
5227
|
}], galleryContainer: [{
|
|
5155
5228
|
type: ViewChild,
|
|
5156
5229
|
args: ['galleryContainer', { read: ElementRef }]
|
|
5157
|
-
}],
|
|
5230
|
+
}], thumbnailScroll: [{
|
|
5158
5231
|
type: ViewChild,
|
|
5159
|
-
args: [
|
|
5232
|
+
args: ['thumbnailScroll', { read: ElementRef }]
|
|
5160
5233
|
}], fillWidth: [{
|
|
5161
5234
|
type: Input
|
|
5162
5235
|
}], zoom: [{
|
|
@@ -5386,11 +5459,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
|
|
|
5386
5459
|
|
|
5387
5460
|
class BarsaColumnRendererComponent extends ColumnRendererBase {
|
|
5388
5461
|
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 [
|
|
5462
|
+
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
5463
|
}
|
|
5391
5464
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: BarsaColumnRendererComponent, decorators: [{
|
|
5392
5465
|
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 [
|
|
5466
|
+
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
5467
|
}] });
|
|
5395
5468
|
|
|
5396
5469
|
class LyLayoutContainerOfRootComponent extends LayoutPanelBaseComponent {
|
|
@@ -5986,11 +6059,11 @@ class BarsaTableColumnComponent extends BaseColumnPropsComponent {
|
|
|
5986
6059
|
}
|
|
5987
6060
|
}
|
|
5988
6061
|
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)\"\
|
|
6062
|
+
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
6063
|
}
|
|
5991
6064
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: BarsaTableColumnComponent, decorators: [{
|
|
5992
6065
|
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)\"\
|
|
6066
|
+
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
6067
|
}], propDecorators: { disableEllapsis: [{
|
|
5995
6068
|
type: Input
|
|
5996
6069
|
}], fdTextMode: [{
|
|
@@ -6041,7 +6114,7 @@ class CardItemComponent extends BaseViewItemPropsComponent {
|
|
|
6041
6114
|
}
|
|
6042
6115
|
}
|
|
6043
6116
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: CardItemComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
6044
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.8", type: CardItemComponent, isStandalone: false, selector: "bsu-card-item", inputs: { setting: "setting", extraFooterComponent: "extraFooterComponent" }, providers: [FormPanelService], viewQueries: [{ propertyName: "_quickViewTemplate", first: true, predicate: ["quickViewTemplate"], descendants: true, static: true }, { propertyName: "_contentTemplate", first: true, predicate: ["contentTemplate"], descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: "<fd-card\r\n [cardType]=\"setting.CardType$Caption\"\r\n [interactive]=\"setting.IsInteractive === false ? false : true\" \r\n [class.openOnClick]=\"setting.openOnClick\"\r\n [class.hide-header-border]=\"setting.HideHeaderBorder\"\r\n [style.width]=\"cardWidth\"\r\n [style.min-width]=\"minWidth\"\r\n [style.max-width]=\"maxWidth\"\r\n [class.card-media]=\"cardMedia\"\r\n (click)=\"onRowCheck()\"\r\n (dblclick)=\"onRowClick()\"\r\n>\r\n @if(cardMedia){\r\n <fd-card-media>\r\n @if(isCardTypeBanner){\r\n <div\r\n fd-card-media-content-container\r\n [legendColor]=\"setting.CustomColor ? null : 13\"\r\n [style.background]=\"setting.CustomColor ? setting.CustomColor : null\"\r\n >\r\n <div fd-card-media-heading [level]=\"2\">\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n columnTemplate;\r\n context: {\r\n $implicit: setting.TitleField,\r\n layout94: layout$ | async,\r\n mo: mo,\r\n index: index\r\n }\r\n \"\r\n ></ng-container>\r\n </div>\r\n <p fd-card-media-text>\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n columnTemplate;\r\n context: {\r\n $implicit: setting.SubtitleField,\r\n layout94: layout$ | async,\r\n mo: mo,\r\n index: index\r\n }\r\n \"\r\n ></ng-container>\r\n </p>\r\n @if (contextMenuItems.length ) {\r\n\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 }\r\n </div>\r\n }\r\n <div fd-card-media-image-container #container>\r\n <img\r\n fd-card-media-image\r\n [src]=\"\r\n setting.MediaField\r\n ? (mo[setting.MediaField.Name]?.FileId\r\n | picFieldSrc: 'ID':setting.MediaField.FieldDefId)\r\n : ''\r\n \"\r\n alt=\"pic not loaded\"\r\n [style.max-height.px]=\"isCardTypeBanner ? setting?.SliderHeight || 300 : null\"\r\n loading=\"lazy\"\r\n />\r\n </div>\r\n </fd-card-media>\r\n } @if(!isCardTypeBanner && !setting.HideHeader){\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n setting.HeaderComponent ? renderHeaderComponent : renderHeader;\r\n context: {\r\n $implicit: mo,\r\n index: this.index\r\n }\r\n \"\r\n ></ng-container>\r\n } @if (!noContent || contextMenuItems) {\r\n <fd-card-content ellipsify class=\"tw-flex tw-flex-col tw-justify-stretch tw-items-stretch\">\r\n <div\r\n #divEl\r\n [applyConditionalFormats]=\"conditionalFormats\"\r\n [styleIndex]=\"styleIndex\"\r\n [hostEl]=\"divEl\"\r\n class=\"tw-h-full tw-w-full tw-flex-1\"\r\n >\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n setting.ContentComponent ? contentTemplateComponent : contentTemplateRef;\r\n context: {\r\n $implicit: mo,\r\n index: this.index,\r\n component: setting.ContentComponent,\r\n componentSettings: setting.ContentComponent?.Settings\r\n }\r\n \"\r\n ></ng-container>\r\n @for(item of setting.ContentComponents?.MoDataList;track item.Id){\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n contentTemplateComponent;\r\n context: {\r\n $implicit: mo,\r\n index: this.index,\r\n component: item.Component,\r\n componentSettings: item.Component?.Settings\r\n }\r\n \"\r\n ></ng-container>\r\n }\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]=\"setting\"\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 </div>\r\n </fd-card-content>\r\n } @if(detailsText || contextMenuEnabled && !isCardTypeBanner){\r\n <fd-card-footer\r\n [class.extra-footer]=\"extraFooterComponent?.Selector\"\r\n [class.hasDetailsAndContextMenu]=\"detailsText && contextMenuEnabled && contextMenuInFooter\"\r\n >\r\n @if(extraFooterComponent?.Selector){\r\n <bnrc-dynamic-item-component\r\n style=\"display: block; flex: 1\"\r\n [component]=\"extraFooterComponent\"\r\n [mo]=\"mo\"\r\n [styleIndex]=\"mo.$StyleIndex\"\r\n [isChecked]=\"isChecked\"\r\n [setting]=\"setting\"\r\n [parameters]=\"extraFooterComponent.Settings\"\r\n [editMode]=\"inlineEditMode\"\r\n [rtl]=\"rtl\"\r\n [deviceName]=\"deviceName\"\r\n [deviceSize]=\"deviceSize\"\r\n [index]=\"index\"\r\n [allColumns]=\"allColumns\"\r\n ></bnrc-dynamic-item-component>\r\n } @if(detailsText){<button *fdCardFooterActionItem fd-button fdType=\"transparent\" [fdPopoverTrigger]=\"popover\">\r\n {{ detailsText }}\r\n </button>\r\n } @if(contextMenuInFooter){\r\n <div\r\n *fdCardFooterActionItem\r\n ulvContextMenu\r\n [allColumns]=\"allColumns\"\r\n [footerMode]=\"false\"\r\n [menuItems]=\"contextMenuItems\"\r\n [contextMenuOverflowText]=\"contextMenuOverflowText\"\r\n [styleIndex]=\"styleIndex\"\r\n [conditionalFormats]=\"conditionalFormats\"\r\n [disableOverflowContextMenu]=\"disableOverflowContextMenu\"\r\n [mo]=\"mo\"\r\n (commandClick)=\"onUlvCommand()\"\r\n (overflowClick)=\"onRowCheck(true)\"\r\n ></div>\r\n }\r\n <fd-popover #popover>\r\n @if (detailsColumns?.length) {\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 }\r\n </fd-popover>\r\n </fd-card-footer>\r\n }\r\n</fd-card>\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 <div class=\"form-items\" class=\"tw-p-2\">\r\n @for (column of detailsColumns; track column; let columnIndex = $index) {\r\n <div\r\n fd-form-item\r\n class=\"!tw-flex-row\"\r\n [dynCommand]=\"column.$CustomComponent?.DynamicCommand\"\r\n [mo]=\"mo\"\r\n [enableCommand]=\"!!column.$CustomComponent?.DynamicCommand\"\r\n bodyClick\r\n [class.tw-cursor-pointer]=\"!!column.$CustomComponent?.DynamicCommand\"\r\n >\r\n @if(!column.$CustomComponent?.HideColumnCaption) {<label fd-form-label for=\"input-2\"\r\n >{{ column.Caption }}<span>:</span></label\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: layout94\r\n }\r\n \"\r\n ></ng-container>\r\n </div>\r\n }\r\n </div>\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-layout94=\"layout94\"\r\n let-disableEllapsis=\"disableEllapsis\"\r\n let-fdTextMode=\"fdTextMode\"\r\n>\r\n @if (column) {\r\n <bsu-barsa-table-column\r\n [mo]=\"mo\"\r\n [allColumns]=\"allColumns\"\r\n [column]=\"column\"\r\n [isdirty]=\"false\"\r\n [value]=\"column | columnValue: mo\"\r\n [icon]=\"column | columnIcon: mo\"\r\n [customComponent]=\"column.$CustomComponent\"\r\n [column]=\"column\"\r\n [disableEllapsis]=\"disableEllapsis === false ? false : true\"\r\n [fdTextMode]=\"fdTextMode\"\r\n [editMode]=\"isChecked && inlineEditMode && allowInlineEdit\"\r\n [inlineEditMode]=\"inlineEditMode\"\r\n [isChecked]=\"isChecked\"\r\n [index]=\"index\"\r\n [formSetting]=\"formSetting\"\r\n [rtl]=\"rtl\"\r\n [deviceName]=\"deviceName\"\r\n [deviceSize]=\"deviceSize\"\r\n [layout94]=\"layout94\"\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\r\n }\r\n</ng-template>\r\n<ng-template #quickViewTemplate let-mo let-index=\"index\">\r\n @if (!noContent) {\r\n <fd-quick-view [id]=\"'id'\">\r\n <fd-quick-view-group>\r\n @for (column of setting.FieldListMapped; track column) {\r\n <fd-quick-view-group-item [class.rowDirection]=\"column?.$CustomComponent?.IsRowDirection\">\r\n @if (column) { @if(!column.$CustomComponent?.HideColumnCaption) {<fd-quick-view-group-item-label>\r\n {{ column.Caption | bbbTranslate }} </fd-quick-view-group-item-label\r\n >}\r\n <fd-quick-view-group-item-content>\r\n <div fd-quick-view-group-item-content-element class=\"group-item-content\">\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n columnTemplate;\r\n context: {\r\n $implicit: column,\r\n layout94: layout$ | async,\r\n mo: mo,\r\n index: index\r\n }\r\n \"\r\n ></ng-container>\r\n </div>\r\n </fd-quick-view-group-item-content>\r\n }\r\n </fd-quick-view-group-item>\r\n } @if (setting.DescriptionField) {\r\n <fd-quick-view-group-item>\r\n <fd-quick-view-group-item-content>\r\n @if (inlineEditMode && allowInlineEdit) {\r\n <fd-quick-view-group-item-label>\r\n {{ setting.DescriptionField?.Alias | bbbTranslate }}\r\n </fd-quick-view-group-item-label>\r\n }\r\n <div fd-quick-view-group-item-content-element class=\"group-item-content\">\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n columnTemplate;\r\n context: {\r\n $implicit: setting.DescriptionField,\r\n layout94: layout$ | async,\r\n mo: mo,\r\n index: index\r\n }\r\n \"\r\n ></ng-container>\r\n </div>\r\n </fd-quick-view-group-item-content>\r\n @if (setting.ActionFieldNameField) {\r\n <fd-quick-view-group-item-content\r\n class=\"action\"\r\n (click)=\"onAction(setting.ActionFieldCommandField || '')\"\r\n >\r\n <a fd-link>\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n columnTemplate;\r\n context: {\r\n $implicit: setting.ActionFieldNameField,\r\n layout94: layout$ | async,\r\n mo: mo,\r\n index: index\r\n }\r\n \"\r\n ></ng-container>\r\n </a>\r\n </fd-quick-view-group-item-content>\r\n }\r\n </fd-quick-view-group-item>\r\n }\r\n </fd-quick-view-group>\r\n </fd-quick-view>\r\n }\r\n</ng-template>\r\n<ng-template #contentTemplate let-mo let-index=\"index\">\r\n <fd-layout-grid>\r\n <div fdLayoutGridRow style=\"align-items: center\">\r\n <div [fdLayoutGridCol]=\"12\">\r\n @for (column of setting.FieldListMapped; track column) {\r\n <div style=\"display: flex\">\r\n <label fd-form-label [colon]=\"true\">{{ column.Caption | bbbTranslate }}</label>\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n columnTemplate;\r\n context: {\r\n $implicit: column,\r\n layout94: layout$ | async,\r\n mo: mo,\r\n index: index\r\n }\r\n \"\r\n ></ng-container>\r\n </div>\r\n }\r\n </div>\r\n @if (setting.DescriptionField) {\r\n <div [fdLayoutGridCol]=\"12\">\r\n @if (inlineEditMode && allowInlineEdit) {\r\n <label>\r\n {{ setting.DescriptionField?.Alias | bbbTranslate }}\r\n </label>\r\n }\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n columnTemplate;\r\n context: {\r\n $implicit: setting.DescriptionField,\r\n layout94: layout$ | async,\r\n mo: mo,\r\n index: index\r\n }\r\n \"\r\n ></ng-container>\r\n </div>\r\n }\r\n </div>\r\n </fd-layout-grid>\r\n</ng-template>\r\n<ng-template #avatar let-avatar let-visible=\"visible\" let-circle=\"circle\" let-avatarField=\"avatarField\">\r\n @if (visible) {\r\n <fd-avatar\r\n alterIcon=\"alt|content|backup|default-icon\"\r\n [circle]=\"circle\"\r\n [image]=\"\r\n avatarField\r\n ? (mo[avatarField.Name]?.FileId | picFieldSrc: 'ID':avatarField.FieldDefId)\r\n : ''\r\n \"\r\n [size]=\"\r\n deviceSize === 'xl' || deviceSize === 'l' ? setting.AvatarSizeDesktop$Caption : setting.AvatarSize$Caption\r\n \"\r\n [glyph]=\"avatar || (mo.$State === 'New' && !isChecked ? 'favorite' : inlineEditMode && isChecked ? 'edit' : '')\"\r\n >\r\n </fd-avatar>\r\n }\r\n</ng-template>\r\n\r\n<ng-template\r\n #contentTemplateComponent\r\n let-mo\r\n let-index=\"index\"\r\n let-componentSettings=\"componentSettings\"\r\n let-component=\"component\"\r\n>\r\n <bnrc-dynamic-item-component\r\n [component]=\"component\"\r\n [mo]=\"mo\"\r\n [styleIndex]=\"mo.$StyleIndex\"\r\n [isChecked]=\"isChecked\"\r\n [setting]=\"setting\"\r\n [parameters]=\"componentSettings\"\r\n [editMode]=\"inlineEditMode\"\r\n [rtl]=\"rtl\"\r\n [deviceName]=\"deviceName\"\r\n [deviceSize]=\"deviceSize\"\r\n [index]=\"index\"\r\n [allColumns]=\"allColumns\"\r\n ></bnrc-dynamic-item-component>\r\n</ng-template>\r\n\r\n<ng-template #renderHeader let-mo let-index=\"index\">\r\n @if(!hideOpenIcon && (openOnClick || (canView && deviceName !== 'desktop'))){\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n renderHeaderMobileCanView;\r\n context: {\r\n $implicit: mo,\r\n index: index\r\n }\r\n \"\r\n ></ng-container>\r\n }@else{\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n renderHeaderDesktop;\r\n context: {\r\n $implicit: mo,\r\n index: index\r\n }\r\n \"\r\n ></ng-container>\r\n }\r\n</ng-template>\r\n<ng-template #renderHeaderDesktop let-mo let-index=\"index\">\r\n <fd-card-header class=\"HeaderDesktop\">\r\n <div>\r\n @if(isCheckList){\r\n <fd-checkbox\r\n [name]=\"mo.$Caption\"\r\n [ngModel]=\"isChecked\"\r\n (ngModelChange)=\"onRowCheck()\"\r\n stopPropagation\r\n ></fd-checkbox>\r\n }\r\n </div>\r\n <fd-card-main-header>\r\n @if (setting.AvatarField || setting.Avatar) {\r\n <fd-avatar\r\n alterIcon=\"alt|content|backup|default-icon\"\r\n [circle]=\"setting.CircleAvatar\"\r\n [image]=\"\r\n setting.AvatarField\r\n ? (mo[setting.AvatarField.Name]?.FileId\r\n | picFieldSrc: 'ID':setting.AvatarField.FieldDefId)\r\n : ''\r\n \"\r\n [size]=\"\r\n deviceSize === 'xl' || deviceSize === 'l'\r\n ? setting.AvatarSizeDesktop$Caption\r\n : setting.AvatarSize$Caption\r\n \"\r\n [glyph]=\"\r\n setting.Avatar ||\r\n (mo.$State === 'New' && !isChecked ? 'favorite' : inlineEditMode && isChecked ? 'edit' : '')\r\n \"\r\n ></fd-avatar>\r\n }\r\n <h2 fd-card-title>\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n columnTemplate;\r\n context: {\r\n $implicit: setting.TitleField,\r\n layout94: layout$ | async,\r\n mo: mo,\r\n index: index,\r\n disableEllapsis: false,\r\n fdTextMode: true\r\n }\r\n \"\r\n ></ng-container>\r\n </h2>\r\n <h3 fd-card-subtitle>\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n columnTemplate;\r\n context: {\r\n $implicit: setting.SubtitleField,\r\n layout94: layout$ | async,\r\n mo: mo,\r\n index: index,\r\n disableEllapsis: false\r\n }\r\n \"\r\n ></ng-container>\r\n </h3>\r\n <span fd-card-counter status=\"positive\" [class.!tw-hidden]=\"!setting.CounterField\">\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n columnTemplate;\r\n context: {\r\n $implicit: setting.CounterField,\r\n layout94: layout$ | async,\r\n mo: mo,\r\n index: index,\r\n disableEllapsis: false\r\n }\r\n \"\r\n ></ng-container>\r\n </span>\r\n @if (!contextMenuInFooter && (contextMenuItems && contextMenuItems.length > 0)) {\r\n <div\r\n ulvContextMenu\r\n fd-card-header-action\r\n [allColumns]=\"allColumns\"\r\n [footerMode]=\"false\"\r\n [menuItems]=\"contextMenuItems\"\r\n [contextMenuOverflowText]=\"contextMenuOverflowText\"\r\n [styleIndex]=\"styleIndex\"\r\n [conditionalFormats]=\"conditionalFormats\"\r\n [disableOverflowContextMenu]=\"disableOverflowContextMenu\"\r\n [mo]=\"mo\"\r\n (commandClick)=\"onUlvCommand()\"\r\n (overflowClick)=\"onRowCheck(true)\"\r\n ></div>\r\n }\r\n </fd-card-main-header>\r\n <ng-container *ngTemplateOutlet=\"extendedHeader\"></ng-container>\r\n </fd-card-header>\r\n</ng-template>\r\n<ng-template #extendedHeader>\r\n @if(setting.hasExtHeader){\r\n <fd-card-extended-header>\r\n <div fd-card-header-column>\r\n <div fd-card-header-row>\r\n @if (setting.ExtHeaderFColRowFirst) { @let ctx = { $implicit: setting.ExtHeaderFColRowFirst, layout94:\r\n layout$ | async, mo: mo, index: index, disableEllapsis: false };\r\n <ng-container *ngTemplateOutlet=\"extHeaderCell; context: ctx\"></ng-container>\r\n } @if (setting.ExtHeaderFColRowSec) { @let ctx = { $implicit: setting.ExtHeaderFColRowSec, layout94:\r\n layout$ | async, mo: mo, index: index, disableEllapsis: false };\r\n <ng-container *ngTemplateOutlet=\"extHeaderCell; context: ctx\"></ng-container>\r\n }\r\n </div>\r\n </div>\r\n <div fd-card-header-column [align]=\"'right'\">\r\n <div fd-card-header-row>\r\n @if (setting.ExtHeaderSColRowFirst) { @let ctx = { $implicit: setting.ExtHeaderSColRowFirst, layout94:\r\n layout$ | async, mo: mo, index: index, disableEllapsis: false };\r\n <ng-container *ngTemplateOutlet=\"extHeaderCell; context: ctx\"></ng-container>\r\n } @if (setting.ExtHeaderSColRowSec) { @let ctx = { $implicit: setting.ExtHeaderSColRowSec, layout94:\r\n layout$ | async, mo: mo, index: index, disableEllapsis: false };\r\n <ng-container *ngTemplateOutlet=\"extHeaderCell; context: ctx\"></ng-container>\r\n }\r\n </div>\r\n </div>\r\n </fd-card-extended-header>\r\n }\r\n</ng-template>\r\n<!--\r\n \u0633\u0644\u0648\u0644\u0650 \u0627\u06A9\u0633\u062A\u0646\u062F\u062F\u200C\u0647\u062F\u0631: \u0627\u06AF\u0631 \u0645\u0642\u062F\u0627\u0631 \u06CC\u06A9 \u0633\u062A\u0648\u0646\u0650 \u06CC\u0627\u0641\u062A\u0647\u200C\u0634\u062F\u0647 \u0628\u0627\u0634\u062F (\u062F\u0627\u0631\u0627\u06CC Name) \u0628\u0627 columnTemplate \u0631\u0646\u062F\u0631 \u0645\u06CC\u200C\u0634\u0648\u062F\u061B\r\n \u062F\u0631 \u063A\u06CC\u0631\u0650 \u0627\u06CC\u0646 \u0635\u0648\u0631\u062A \u0647\u0645\u0627\u0646 \u0645\u0642\u062F\u0627\u0631\u0650 \u062E\u0627\u0645\u0650 \u062A\u0646\u0638\u06CC\u0645 \u0628\u0647\u200C\u0635\u0648\u0631\u062A\u0650 \u0645\u062A\u0646\u0650 \u062B\u0627\u0628\u062A \u0646\u0645\u0627\u06CC\u0634 \u062F\u0627\u062F\u0647 \u0645\u06CC\u200C\u0634\u0648\u062F.\r\n-->\r\n<ng-template\r\n #extHeaderCell\r\n let-val\r\n let-mo=\"mo\"\r\n let-index=\"index\"\r\n let-layout94=\"layout94\"\r\n let-disableEllapsis=\"disableEllapsis\"\r\n>\r\n @if (val?.Name) {\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n columnTemplate;\r\n context: { $implicit: val, mo: mo, index: index, layout94: layout94, disableEllapsis: disableEllapsis }\r\n \"\r\n ></ng-container>\r\n } @else if (val) {\r\n <span class=\"ext-header-literal\">{{ val | bbbTranslate }}</span>\r\n }\r\n</ng-template>\r\n<ng-template #renderHeaderMobileCanView let-mo let-index=\"index\">\r\n <fd-card-header class=\"HeaderMobileCanView\">\r\n <div>\r\n @if(isCheckList){\r\n <fd-checkbox\r\n [name]=\"mo.$Caption\"\r\n [ngModel]=\"isChecked\"\r\n (ngModelChange)=\"onRowCheck()\"\r\n stopPropagation\r\n ></fd-checkbox>\r\n }\r\n </div>\r\n <fd-card-main-header>\r\n @if ( setting.AvatarField || setting.Avatar) {\r\n <fd-avatar\r\n alterIcon=\"alt|content|backup|default-icon\"\r\n [circle]=\"setting.CircleAvatar\"\r\n [image]=\"\r\n setting.AvatarField\r\n ? (mo[setting.AvatarField.Name]?.FileId\r\n | picFieldSrc: 'ID':setting.AvatarField.FieldDefId)\r\n : ''\r\n \"\r\n [size]=\"\r\n deviceSize === 'xl' || deviceSize === 'l'\r\n ? setting.AvatarSizeDesktop$Caption\r\n : setting.AvatarSize$Caption\r\n \"\r\n [glyph]=\"\r\n setting.Avatar ||\r\n (mo.$State === 'New' && !isChecked ? 'favorite' : inlineEditMode && isChecked ? 'edit' : '')\r\n \"\r\n ></fd-avatar>\r\n }\r\n <h2 fd-card-title>\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n columnTemplate;\r\n context: {\r\n $implicit: setting.TitleField,\r\n layout94: layout$ | async,\r\n mo: mo,\r\n index: index,\r\n fdTextMode: true\r\n }\r\n \"\r\n ></ng-container>\r\n </h2>\r\n <h3 fd-card-subtitle>\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n columnTemplate;\r\n context: {\r\n $implicit: setting.SubtitleField,\r\n layout94: layout$ | async,\r\n mo: mo,\r\n index: index\r\n }\r\n \"\r\n ></ng-container>\r\n </h3>\r\n\r\n @if (!contextMenuInFooter && (contextMenuItems && contextMenuItems.length > 0)) {\r\n <div\r\n ulvContextMenu\r\n fd-card-header-action\r\n [allColumns]=\"allColumns\"\r\n [footerMode]=\"false\"\r\n [menuItems]=\"contextMenuItems\"\r\n [contextMenuOverflowText]=\"contextMenuOverflowText\"\r\n [styleIndex]=\"styleIndex\"\r\n [conditionalFormats]=\"conditionalFormats\"\r\n [disableOverflowContextMenu]=\"disableOverflowContextMenu\"\r\n [mo]=\"mo\"\r\n (commandClick)=\"onUlvCommand()\"\r\n (overflowClick)=\"onRowCheck(true)\"\r\n ></div>\r\n }@else {\r\n <button\r\n fd-button\r\n fd-card-header-action\r\n class=\"view-btn\"\r\n stopPropagation\r\n (click)=\"onRowClick()\"\r\n [glyph]=\"navigationArrow\"\r\n fdType=\"transparent\"\r\n ></button>\r\n }\r\n </fd-card-main-header>\r\n @if(setting.hasExtHeader){\r\n <fd-card-extended-header>\r\n <div fd-card-header-column>\r\n <div fd-card-header-row>\r\n @if (setting.ExtHeaderFColRowFirst) { @let ctx = { $implicit: setting.ExtHeaderFColRowFirst,\r\n layout94: layout$ | async, mo: mo, index: index, disableEllapsis: false };\r\n <ng-container *ngTemplateOutlet=\"extHeaderCell; context: ctx\"></ng-container>\r\n } @if (setting.ExtHeaderFColRowSec) { @let ctx = { $implicit: setting.ExtHeaderFColRowSec, layout94:\r\n layout$ | async, mo: mo, index: index, disableEllapsis: false };\r\n <ng-container *ngTemplateOutlet=\"extHeaderCell; context: ctx\"></ng-container>\r\n }\r\n </div>\r\n </div>\r\n <div fd-card-header-column [align]=\"'right'\">\r\n <div fd-card-header-row>\r\n @if (setting.ExtHeaderSColRowFirst) { @let ctx = { $implicit: setting.ExtHeaderSColRowFirst,\r\n layout94: layout$ | async, mo: mo, index: index, disableEllapsis: false };\r\n <ng-container *ngTemplateOutlet=\"extHeaderCell; context: ctx\"></ng-container>\r\n } @if (setting.ExtHeaderSColRowSec) { @let ctx = { $implicit: setting.ExtHeaderSColRowSec, layout94:\r\n layout$ | async, mo: mo, index: index, disableEllapsis: false };\r\n <ng-container *ngTemplateOutlet=\"extHeaderCell; context: ctx\"></ng-container>\r\n }\r\n </div>\r\n </div>\r\n </fd-card-extended-header>\r\n }\r\n </fd-card-header>\r\n</ng-template>\r\n<ng-template #renderHeaderComponent let-mo let-index=\"index\">\r\n <bnrc-card-dynamic-item-component\r\n [component]=\"setting.HeaderComponent\"\r\n [maxHeightHeader]=\"maxHeightHeader\"\r\n [mo]=\"mo\"\r\n [columnTemplate]=\"columnTemplate\"\r\n [extendedHeaderTemplate]=\"extendedHeader\"\r\n [layout94$]=\"layout$\"\r\n [styleIndex]=\"mo.$StyleIndex\"\r\n [isChecked]=\"isChecked\"\r\n [setting]=\"setting\"\r\n [parameters]=\"setting.HeaderComponent.Settings\"\r\n [editMode]=\"inlineEditMode\"\r\n [rtl]=\"rtl\"\r\n [deviceName]=\"deviceName\"\r\n [deviceSize]=\"deviceSize\"\r\n [index]=\"index\"\r\n [allColumns]=\"allColumns\"\r\n [contextMenuItems]=\"contextMenuItems\"\r\n [canView]=\"canView\"\r\n [hideOpenIcon]=\"hideOpenIcon\"\r\n [conditionalFormats]=\"conditionalFormats\"\r\n [disableOverflowContextMenu]=\"disableOverflowContextMenu\"\r\n [navigationArrow]=\"navigationArrow\"\r\n [isCheckList]=\"isCheckList\"\r\n (events)=\"onDynamicComponentEvents($event)\"\r\n ></bnrc-card-dynamic-item-component>\r\n</ng-template>\r\n", styles: ["fd-card.fd-card--banner>fd-card-media{border-radius:inherit}fd-card.fd-card--banner>fd-card-media .fd-card__media-image-container{z-index:4}fd-card div[ulvcontextmenu] ::ng-deep .fd-bar{background-color:transparent}fd-card fd-card-content ::ng-deep bsu-column-renderer div.renderGeneral{font-family:IranYekanDigits}fd-card fd-card-footer.extra-footer{flex-wrap:wrap}fd-card fd-card-footer.hasDetailsAndContextMenu ::ng-deep .fd-card__footer-actions{justify-content:space-between!important}fd-card fd-card-content{padding:0!important}fd-card fd-card-content>div>fd-quick-view ::ng-deep .fd-quick-view__content{padding-top:0}fd-card fd-card-content>div>fd-quick-view fd-quick-view-group-item.rowDirection ::ng-deep .fd-form-item{flex-direction:row}fd-card.hide-header-border ::ng-deep fd-card-header fd-card-main-header>.fd-card__header-main{border:none}fd-card fd-card-header{padding:.5rem}fd-card fd-card-header .fd-card__title{display:flex;justify-content:space-between;align-items:center;width:100%}fd-card fd-card-header button,fd-card fd-card-header div[ulvcontextmenu]{z-index:6}fd-quick-view-subheader ::ng-deep div{background:inherit}.action{cursor:pointer;margin-top:6px;flex:1;display:flex;justify-content:end;flex-direction:column}.openOnClick{cursor:pointer}\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.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: i2.CardDynamicItemComponent, selector: "bnrc-card-dynamic-item-component", inputs: ["columnTemplate", "extendedHeaderTemplate"] }, { kind: "directive", type: i2.DynamicCommandDirective, selector: "[dynCommand]", inputs: ["dynCommand", "mo", "enableCommand"], outputs: ["commandClick"] }, { kind: "directive", type: i2.EllipsifyDirective, selector: "[ellipsify]", inputs: ["limitLine"] }, { kind: "directive", type: i2.BodyClickDirective, selector: "[bodyClick]", inputs: ["disableBodyClick"] }, { kind: "directive", type: i2.StopPropagationDirective, selector: "[stopPropagation]" }, { 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: i2$7.LinkComponent, selector: "[fdLink], [fd-link]", inputs: ["emphasized", "disabled", "inverted", "subtle", "undecorated", "touchTarget"] }, { kind: "component", type: i1$4.ButtonComponent, selector: "button[fd-button], a[fd-button], span[fd-button]", inputs: ["id"], exportAs: ["fd-button"] }, { kind: "component", type: i7$2.CardComponent, selector: "fd-card", inputs: ["badge", "badgeIcon", "badgeColor", "badgeColorSecondary", "badgeStatus", "badgeAriaLabel", "secondBadge", "secondBadgeIcon", "secondBadgeColor", "secondBadgeColorSecondary", "secondBadgeStatus", "secondBadgeAriaLabel", "isLoading", "cardType", "id", "ariaRoledescription", "ariaDescription", "ariaLabel", "role", "interactive", "selected", "ariaPosinset", "ariaSetsize", "ariaDescribedby"], outputs: ["ariaPosinsetChange", "ariaSetsizeChange", "keyDown"] }, { kind: "component", type: i7$2.CardHeaderComponent, selector: "fd-card-header", inputs: ["ariaRoleDescription"] }, { kind: "component", type: i7$2.CardMainHeaderComponent, selector: "fd-card-main-header", inputs: ["interactive", "title"] }, { kind: "directive", type: i7$2.CardHeaderActionDirective, selector: "[fd-card-header-action]" }, { kind: "component", type: i7$2.CardExtendedHeaderComponent, selector: "fd-card-extended-header", inputs: ["ariaRoleDescription", "align"] }, { kind: "directive", type: i7$2.CardHeaderRowDirective, selector: "[fd-card-header-row]" }, { kind: "directive", type: i7$2.CardHeaderColumnDirective, selector: "[fd-card-header-column]", inputs: ["align"] }, { kind: "component", type: i7$2.CardContentComponent, selector: "fd-card-content" }, { kind: "directive", type: i7$2.CardTitleDirective, selector: "[fd-card-title]", inputs: ["id"] }, { kind: "directive", type: i7$2.CardSubtitleDirective, selector: "[fd-card-subtitle]", inputs: ["id"] }, { kind: "directive", type: i7$2.CardCounterDirective, selector: "[fd-card-counter]", inputs: ["id", "statusInput"] }, { kind: "component", type: i7$2.CardFooterComponent, selector: "fd-card-footer" }, { kind: "directive", type: i7$2.CardFooterActionItemDirective, selector: "[fdCardFooterActionItem]" }, { kind: "component", type: i7$2.CardMediaComponent, selector: "fd-card-media", inputs: ["ariaRoleDescription", "hasPadding", "shellColor", "legendColor"] }, { kind: "directive", type: i7$2.CardMediaImageDirective, selector: "[fd-card-media-image]" }, { kind: "directive", type: i7$2.CardMediaImageContainerDirective, selector: "[fd-card-media-image-container]" }, { kind: "directive", type: i7$2.CardMediaContentContainerDirective, selector: "[fd-card-media-content-container]", inputs: ["isOverlay", "shellColor", "legendColor"] }, { kind: "directive", type: i7$2.CardMediaHeadingDirective, selector: "[fd-card-media-heading]", inputs: ["id", "level"] }, { kind: "directive", type: i7$2.CardMediaTextDirective, selector: "[fd-card-media-text]" }, { 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: 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: i6.PopoverComponent, selector: "fd-popover", inputs: ["config", "title", "trigger", "id", "mobile", "mobileConfig", "preventSpaceKeyScroll", "placement", "maxWidth", "fillControlMode", "closeOnOutsideClick", "closeOnEscapeKey", "disabled", "triggers", "focusTrapped", "focusAutoCapture", "restoreFocusOnClose", "noArrow", "disableScrollbar", "appendTo", "placementContainer", "scrollStrategy", "cdkPositions", "applyOverlay", "additionalBodyClass", "additionalTriggerClass", "closeOnNavigation", "fixedPosition", "resizable", "bodyAriaLabel", "bodyRole", "bodyAriaLabelledBy", "isOpen"], outputs: ["triggerChange", "isOpenChange", "beforeOpen"] }, { kind: "directive", type: i6.PopoverTriggerDirective, selector: "[fdPopoverTrigger], [fd-popover-trigger]", inputs: ["fdPopoverTrigger"] }, { kind: "component", type: i12.QuickViewComponent, selector: "fd-quick-view", inputs: ["id"] }, { kind: "component", type: i12.QuickViewGroupComponent, selector: "fd-quick-view-group" }, { kind: "component", type: i12.QuickViewGroupItemComponent, selector: "fd-quick-view-group-item", inputs: ["id"] }, { kind: "component", type: i12.QuickViewGroupItemLabelComponent, selector: "fd-quick-view-group-item-label", inputs: ["allowWrap"] }, { kind: "component", type: i12.QuickViewGroupItemContentComponent, selector: "fd-quick-view-group-item-content" }, { kind: "directive", type: i12.QuickViewGroupItemContentElementDirective, selector: "[fd-quick-view-group-item-content-element]" }, { 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: "directive", type: ApplyConditionalFormatsDirective, selector: "[applyConditionalFormats]", inputs: ["applyConditionalFormats", "styleIndex", "hostEl", "dbName"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "pipe", type: i2.PictureFieldSourcePipe, name: "picFieldSrc" }, { kind: "pipe", type: i2.BbbTranslatePipe, name: "bbbTranslate" }, { kind: "pipe", type: i2.ColumnIconPipe, name: "columnIcon" }, { kind: "pipe", type: i2.ColumnValuePipe, name: "columnValue" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
6117
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.8", type: CardItemComponent, isStandalone: false, selector: "bsu-card-item", inputs: { setting: "setting", extraFooterComponent: "extraFooterComponent" }, providers: [FormPanelService], viewQueries: [{ propertyName: "_quickViewTemplate", first: true, predicate: ["quickViewTemplate"], descendants: true, static: true }, { propertyName: "_contentTemplate", first: true, predicate: ["contentTemplate"], descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: "<fd-card\r\n [cardType]=\"setting.CardType$Caption\"\r\n [interactive]=\"setting.IsInteractive === false ? false : true\" \r\n [class.openOnClick]=\"setting.openOnClick\"\r\n [class.hide-header-border]=\"setting.HideHeaderBorder\"\r\n [style.width]=\"cardWidth\"\r\n [style.min-width]=\"minWidth\"\r\n [style.max-width]=\"maxWidth\"\r\n [class.card-media]=\"cardMedia\"\r\n (click)=\"onRowCheck()\"\r\n (dblclick)=\"onRowClick()\"\r\n>\r\n @if(cardMedia){\r\n <fd-card-media>\r\n @if(isCardTypeBanner){\r\n <div\r\n fd-card-media-content-container\r\n [legendColor]=\"setting.CustomColor ? null : 13\"\r\n [style.background]=\"setting.CustomColor ? setting.CustomColor : null\"\r\n >\r\n <div fd-card-media-heading [level]=\"2\">\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n columnTemplate;\r\n context: {\r\n $implicit: setting.TitleField,\r\n layout94: layout$ | async,\r\n mo: mo,\r\n index: index\r\n }\r\n \"\r\n ></ng-container>\r\n </div>\r\n <p fd-card-media-text>\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n columnTemplate;\r\n context: {\r\n $implicit: setting.SubtitleField,\r\n layout94: layout$ | async,\r\n mo: mo,\r\n index: index\r\n }\r\n \"\r\n ></ng-container>\r\n </p>\r\n @if (contextMenuItems.length ) {\r\n\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 }\r\n </div>\r\n }\r\n <div fd-card-media-image-container #container>\r\n <img\r\n fd-card-media-image\r\n [src]=\"\r\n setting.MediaField\r\n ? (mo[setting.MediaField.Name]?.FileId\r\n | picFieldSrc: 'ID':setting.MediaField.FieldDefId)\r\n : ''\r\n \"\r\n alt=\"pic not loaded\"\r\n [style.max-height.px]=\"isCardTypeBanner ? setting?.SliderHeight || 300 : null\"\r\n loading=\"lazy\"\r\n />\r\n </div>\r\n </fd-card-media>\r\n } @if(!isCardTypeBanner && !setting.HideHeader){\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n setting.HeaderComponent ? renderHeaderComponent : renderHeader;\r\n context: {\r\n $implicit: mo,\r\n index: this.index\r\n }\r\n \"\r\n ></ng-container>\r\n } @if (!noContent || contextMenuItems) {\r\n <fd-card-content ellipsify class=\"tw-flex tw-flex-col tw-justify-stretch tw-items-stretch\">\r\n <div\r\n #divEl\r\n [applyConditionalFormats]=\"conditionalFormats\"\r\n [styleIndex]=\"styleIndex\"\r\n [hostEl]=\"divEl\"\r\n class=\"tw-h-full tw-w-full tw-flex-1\"\r\n >\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n setting.ContentComponent ? contentTemplateComponent : contentTemplateRef;\r\n context: {\r\n $implicit: mo,\r\n index: this.index,\r\n component: setting.ContentComponent,\r\n componentSettings: setting.ContentComponent?.Settings\r\n }\r\n \"\r\n ></ng-container>\r\n @for(item of setting.ContentComponents?.MoDataList;track item.Id){\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n contentTemplateComponent;\r\n context: {\r\n $implicit: mo,\r\n index: this.index,\r\n component: item.Component,\r\n componentSettings: item.Component?.Settings\r\n }\r\n \"\r\n ></ng-container>\r\n }\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]=\"setting\"\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 </div>\r\n </fd-card-content>\r\n } @if(detailsText || contextMenuEnabled && !isCardTypeBanner){\r\n <fd-card-footer\r\n [class.extra-footer]=\"extraFooterComponent?.Selector\"\r\n [class.hasDetailsAndContextMenu]=\"detailsText && contextMenuEnabled && contextMenuInFooter\"\r\n >\r\n @if(extraFooterComponent?.Selector){\r\n <bnrc-dynamic-item-component\r\n style=\"display: block; flex: 1\"\r\n [component]=\"extraFooterComponent\"\r\n [mo]=\"mo\"\r\n [styleIndex]=\"mo.$StyleIndex\"\r\n [isChecked]=\"isChecked\"\r\n [setting]=\"setting\"\r\n [parameters]=\"extraFooterComponent.Settings\"\r\n [editMode]=\"inlineEditMode\"\r\n [rtl]=\"rtl\"\r\n [deviceName]=\"deviceName\"\r\n [deviceSize]=\"deviceSize\"\r\n [index]=\"index\"\r\n [allColumns]=\"allColumns\"\r\n ></bnrc-dynamic-item-component>\r\n } @if(detailsText){<button *fdCardFooterActionItem fd-button fdType=\"transparent\" [fdPopoverTrigger]=\"popover\">\r\n {{ detailsText }}\r\n </button>\r\n } @if(contextMenuInFooter){\r\n <div\r\n *fdCardFooterActionItem\r\n ulvContextMenu\r\n [allColumns]=\"allColumns\"\r\n [footerMode]=\"false\"\r\n [menuItems]=\"contextMenuItems\"\r\n [contextMenuOverflowText]=\"contextMenuOverflowText\"\r\n [styleIndex]=\"styleIndex\"\r\n [conditionalFormats]=\"conditionalFormats\"\r\n [disableOverflowContextMenu]=\"disableOverflowContextMenu\"\r\n [mo]=\"mo\"\r\n (commandClick)=\"onUlvCommand()\"\r\n (overflowClick)=\"onRowCheck(true)\"\r\n ></div>\r\n }\r\n <fd-popover #popover>\r\n @if (detailsColumns?.length) {\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 }\r\n </fd-popover>\r\n </fd-card-footer>\r\n }\r\n</fd-card>\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 <div class=\"form-items\" class=\"tw-p-2\">\r\n @for (column of detailsColumns; track column; let columnIndex = $index) {\r\n <div\r\n fd-form-item\r\n class=\"!tw-flex-row\"\r\n [dynCommand]=\"column.$CustomComponent?.DynamicCommand\"\r\n [mo]=\"mo\"\r\n [enableCommand]=\"!!column.$CustomComponent?.DynamicCommand\"\r\n bodyClick\r\n [class.tw-cursor-pointer]=\"!!column.$CustomComponent?.DynamicCommand\"\r\n >\r\n @if(!column.$CustomComponent?.HideColumnCaption) {<label fd-form-label for=\"input-2\"\r\n >{{ column.Caption }}<span>:</span></label\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: layout94\r\n }\r\n \"\r\n ></ng-container>\r\n </div>\r\n }\r\n </div>\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-layout94=\"layout94\"\r\n let-disableEllapsis=\"disableEllapsis\"\r\n let-fdTextMode=\"fdTextMode\"\r\n>\r\n @if (column) {\r\n <bsu-barsa-table-column\r\n [mo]=\"mo\"\r\n [allColumns]=\"allColumns\"\r\n [column]=\"column\"\r\n [isdirty]=\"false\"\r\n [value]=\"column | columnValue: mo\"\r\n [icon]=\"column | columnIcon: mo\"\r\n [customComponent]=\"column.$CustomComponent\"\r\n [column]=\"column\"\r\n [disableEllapsis]=\"disableEllapsis === false ? false : true\"\r\n [fdTextMode]=\"fdTextMode\"\r\n [editMode]=\"isChecked && inlineEditMode && allowInlineEdit\"\r\n [inlineEditMode]=\"inlineEditMode\"\r\n [isChecked]=\"isChecked\"\r\n [index]=\"index\"\r\n [formSetting]=\"formSetting\"\r\n [rtl]=\"rtl\"\r\n [deviceName]=\"deviceName\"\r\n [deviceSize]=\"deviceSize\"\r\n [layout94]=\"layout94\"\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\r\n }\r\n</ng-template>\r\n<ng-template #quickViewTemplate let-mo let-index=\"index\">\r\n @if (!noContent) {\r\n <fd-quick-view [id]=\"'id'\">\r\n <fd-quick-view-group>\r\n @for (column of setting.FieldListMapped; track column) {\r\n <fd-quick-view-group-item [class.rowDirection]=\"column?.$CustomComponent?.IsRowDirection\">\r\n @if (column) { @if(!column.$CustomComponent?.HideColumnCaption) {<fd-quick-view-group-item-label>\r\n {{ column.Caption | bbbTranslate }} </fd-quick-view-group-item-label\r\n >}\r\n <fd-quick-view-group-item-content>\r\n <div fd-quick-view-group-item-content-element class=\"group-item-content\">\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n columnTemplate;\r\n context: {\r\n $implicit: column,\r\n layout94: layout$ | async,\r\n mo: mo,\r\n index: index\r\n }\r\n \"\r\n ></ng-container>\r\n </div>\r\n </fd-quick-view-group-item-content>\r\n }\r\n </fd-quick-view-group-item>\r\n } @if (setting.DescriptionField) {\r\n <fd-quick-view-group-item>\r\n <fd-quick-view-group-item-content>\r\n @if (inlineEditMode && allowInlineEdit) {\r\n <fd-quick-view-group-item-label>\r\n {{ setting.DescriptionField?.Alias | bbbTranslate }}\r\n </fd-quick-view-group-item-label>\r\n }\r\n <div fd-quick-view-group-item-content-element class=\"group-item-content\">\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n columnTemplate;\r\n context: {\r\n $implicit: setting.DescriptionField,\r\n layout94: layout$ | async,\r\n mo: mo,\r\n index: index\r\n }\r\n \"\r\n ></ng-container>\r\n </div>\r\n </fd-quick-view-group-item-content>\r\n @if (setting.ActionFieldNameField) {\r\n <fd-quick-view-group-item-content\r\n class=\"action\"\r\n (click)=\"onAction(setting.ActionFieldCommandField || '')\"\r\n >\r\n <a fd-link>\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n columnTemplate;\r\n context: {\r\n $implicit: setting.ActionFieldNameField,\r\n layout94: layout$ | async,\r\n mo: mo,\r\n index: index\r\n }\r\n \"\r\n ></ng-container>\r\n </a>\r\n </fd-quick-view-group-item-content>\r\n }\r\n </fd-quick-view-group-item>\r\n }\r\n </fd-quick-view-group>\r\n </fd-quick-view>\r\n }\r\n</ng-template>\r\n<ng-template #contentTemplate let-mo let-index=\"index\">\r\n <fd-layout-grid>\r\n <div fdLayoutGridRow style=\"align-items: center\">\r\n <div [fdLayoutGridCol]=\"12\">\r\n @for (column of setting.FieldListMapped; track column) {\r\n <div style=\"display: flex\">\r\n <label fd-form-label [colon]=\"true\">{{ column.Caption | bbbTranslate }}</label>\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n columnTemplate;\r\n context: {\r\n $implicit: column,\r\n layout94: layout$ | async,\r\n mo: mo,\r\n index: index\r\n }\r\n \"\r\n ></ng-container>\r\n </div>\r\n }\r\n </div>\r\n @if (setting.DescriptionField) {\r\n <div [fdLayoutGridCol]=\"12\">\r\n @if (inlineEditMode && allowInlineEdit) {\r\n <label>\r\n {{ setting.DescriptionField?.Alias | bbbTranslate }}\r\n </label>\r\n }\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n columnTemplate;\r\n context: {\r\n $implicit: setting.DescriptionField,\r\n layout94: layout$ | async,\r\n mo: mo,\r\n index: index\r\n }\r\n \"\r\n ></ng-container>\r\n </div>\r\n }\r\n </div>\r\n </fd-layout-grid>\r\n</ng-template>\r\n<ng-template #avatar let-avatar let-visible=\"visible\" let-circle=\"circle\" let-avatarField=\"avatarField\">\r\n @if (visible) {\r\n <fd-avatar\r\n alterIcon=\"alt|content|backup|default-icon\"\r\n [circle]=\"circle\"\r\n [image]=\"\r\n avatarField\r\n ? (mo[avatarField.Name]?.FileId | picFieldSrc: 'ID':avatarField.FieldDefId)\r\n : ''\r\n \"\r\n [size]=\"\r\n deviceSize === 'xl' || deviceSize === 'l' ? setting.AvatarSizeDesktop$Caption : setting.AvatarSize$Caption\r\n \"\r\n [glyph]=\"avatar || (mo.$State === 'New' && !isChecked ? 'favorite' : inlineEditMode && isChecked ? 'edit' : '')\"\r\n >\r\n </fd-avatar>\r\n }\r\n</ng-template>\r\n\r\n<ng-template\r\n #contentTemplateComponent\r\n let-mo\r\n let-index=\"index\"\r\n let-componentSettings=\"componentSettings\"\r\n let-component=\"component\"\r\n>\r\n <bnrc-dynamic-item-component\r\n [component]=\"component\"\r\n [mo]=\"mo\"\r\n [styleIndex]=\"mo.$StyleIndex\"\r\n [isChecked]=\"isChecked\"\r\n [setting]=\"setting\"\r\n [parameters]=\"componentSettings\"\r\n [editMode]=\"inlineEditMode\"\r\n [rtl]=\"rtl\"\r\n [deviceName]=\"deviceName\"\r\n [deviceSize]=\"deviceSize\"\r\n [index]=\"index\"\r\n [allColumns]=\"allColumns\"\r\n ></bnrc-dynamic-item-component>\r\n</ng-template>\r\n\r\n<ng-template #renderHeader let-mo let-index=\"index\">\r\n @if(!hideOpenIcon && (openOnClick || (canView && deviceName !== 'desktop'))){\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n renderHeaderMobileCanView;\r\n context: {\r\n $implicit: mo,\r\n index: index\r\n }\r\n \"\r\n ></ng-container>\r\n }@else{\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n renderHeaderDesktop;\r\n context: {\r\n $implicit: mo,\r\n index: index\r\n }\r\n \"\r\n ></ng-container>\r\n }\r\n</ng-template>\r\n<ng-template #renderHeaderDesktop let-mo let-index=\"index\">\r\n <fd-card-header class=\"HeaderDesktop\">\r\n <div>\r\n @if(isCheckList){\r\n <fd-checkbox\r\n [name]=\"mo.$Caption\"\r\n [ngModel]=\"isChecked\"\r\n (ngModelChange)=\"onRowCheck()\"\r\n stopPropagation\r\n ></fd-checkbox>\r\n }\r\n </div>\r\n <fd-card-main-header>\r\n @if (setting.AvatarField || setting.Avatar) {\r\n <fd-avatar\r\n alterIcon=\"alt|content|backup|default-icon\"\r\n [circle]=\"setting.CircleAvatar\"\r\n [image]=\"\r\n setting.AvatarField\r\n ? (mo[setting.AvatarField.Name]?.FileId\r\n | picFieldSrc: 'ID':setting.AvatarField.FieldDefId)\r\n : ''\r\n \"\r\n [size]=\"\r\n deviceSize === 'xl' || deviceSize === 'l'\r\n ? setting.AvatarSizeDesktop$Caption\r\n : setting.AvatarSize$Caption\r\n \"\r\n [glyph]=\"\r\n setting.Avatar ||\r\n (mo.$State === 'New' && !isChecked ? 'favorite' : inlineEditMode && isChecked ? 'edit' : '')\r\n \"\r\n ></fd-avatar>\r\n }\r\n <h2 fd-card-title>\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n columnTemplate;\r\n context: {\r\n $implicit: setting.TitleField,\r\n layout94: layout$ | async,\r\n mo: mo,\r\n index: index,\r\n disableEllapsis: false,\r\n fdTextMode: true\r\n }\r\n \"\r\n ></ng-container>\r\n </h2>\r\n <h3 fd-card-subtitle>\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n columnTemplate;\r\n context: {\r\n $implicit: setting.SubtitleField,\r\n layout94: layout$ | async,\r\n mo: mo,\r\n index: index,\r\n disableEllapsis: false\r\n }\r\n \"\r\n ></ng-container>\r\n </h3>\r\n <span fd-card-counter status=\"positive\" [class.!tw-hidden]=\"!setting.CounterField\">\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n columnTemplate;\r\n context: {\r\n $implicit: setting.CounterField,\r\n layout94: layout$ | async,\r\n mo: mo,\r\n index: index,\r\n disableEllapsis: false\r\n }\r\n \"\r\n ></ng-container>\r\n </span>\r\n @if (!contextMenuInFooter && (contextMenuItems && contextMenuItems.length > 0)) {\r\n <div\r\n ulvContextMenu\r\n fd-card-header-action\r\n [allColumns]=\"allColumns\"\r\n [footerMode]=\"false\"\r\n [menuItems]=\"contextMenuItems\"\r\n [contextMenuOverflowText]=\"contextMenuOverflowText\"\r\n [styleIndex]=\"styleIndex\"\r\n [conditionalFormats]=\"conditionalFormats\"\r\n [disableOverflowContextMenu]=\"disableOverflowContextMenu\"\r\n [mo]=\"mo\"\r\n (commandClick)=\"onUlvCommand()\"\r\n (overflowClick)=\"onRowCheck(true)\"\r\n ></div>\r\n }\r\n </fd-card-main-header>\r\n <ng-container *ngTemplateOutlet=\"extendedHeader\"></ng-container>\r\n </fd-card-header>\r\n</ng-template>\r\n<ng-template #extendedHeader>\r\n @if(setting.hasExtHeader){\r\n <fd-card-extended-header>\r\n <div fd-card-header-column>\r\n <div fd-card-header-row>\r\n @if (setting.ExtHeaderFColRowFirst) { @let ctx = { $implicit: setting.ExtHeaderFColRowFirst, layout94:\r\n layout$ | async, mo: mo, index: index, disableEllapsis: false };\r\n <ng-container *ngTemplateOutlet=\"extHeaderCell; context: ctx\"></ng-container>\r\n } @if (setting.ExtHeaderFColRowSec) { @let ctx = { $implicit: setting.ExtHeaderFColRowSec, layout94:\r\n layout$ | async, mo: mo, index: index, disableEllapsis: false };\r\n <ng-container *ngTemplateOutlet=\"extHeaderCell; context: ctx\"></ng-container>\r\n }\r\n </div>\r\n </div>\r\n <div fd-card-header-column [align]=\"'right'\">\r\n <div fd-card-header-row>\r\n @if (setting.ExtHeaderSColRowFirst) { @let ctx = { $implicit: setting.ExtHeaderSColRowFirst, layout94:\r\n layout$ | async, mo: mo, index: index, disableEllapsis: false };\r\n <ng-container *ngTemplateOutlet=\"extHeaderCell; context: ctx\"></ng-container>\r\n } @if (setting.ExtHeaderSColRowSec) { @let ctx = { $implicit: setting.ExtHeaderSColRowSec, layout94:\r\n layout$ | async, mo: mo, index: index, disableEllapsis: false };\r\n <ng-container *ngTemplateOutlet=\"extHeaderCell; context: ctx\"></ng-container>\r\n }\r\n </div>\r\n </div>\r\n </fd-card-extended-header>\r\n }\r\n</ng-template>\r\n<!--\r\n \u0633\u0644\u0648\u0644\u0650 \u0627\u06A9\u0633\u062A\u0646\u062F\u062F\u200C\u0647\u062F\u0631: \u0627\u06AF\u0631 \u0645\u0642\u062F\u0627\u0631 \u06CC\u06A9 \u0633\u062A\u0648\u0646\u0650 \u06CC\u0627\u0641\u062A\u0647\u200C\u0634\u062F\u0647 \u0628\u0627\u0634\u062F (\u062F\u0627\u0631\u0627\u06CC Name) \u0628\u0627 columnTemplate \u0631\u0646\u062F\u0631 \u0645\u06CC\u200C\u0634\u0648\u062F\u061B\r\n \u062F\u0631 \u063A\u06CC\u0631\u0650 \u0627\u06CC\u0646 \u0635\u0648\u0631\u062A \u0647\u0645\u0627\u0646 \u0645\u0642\u062F\u0627\u0631\u0650 \u062E\u0627\u0645\u0650 \u062A\u0646\u0638\u06CC\u0645 \u0628\u0647\u200C\u0635\u0648\u0631\u062A\u0650 \u0645\u062A\u0646\u0650 \u062B\u0627\u0628\u062A \u0646\u0645\u0627\u06CC\u0634 \u062F\u0627\u062F\u0647 \u0645\u06CC\u200C\u0634\u0648\u062F.\r\n-->\r\n<ng-template\r\n #extHeaderCell\r\n let-val\r\n let-mo=\"mo\"\r\n let-index=\"index\"\r\n let-layout94=\"layout94\"\r\n let-disableEllapsis=\"disableEllapsis\"\r\n>\r\n @if (val?.Name) {\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n columnTemplate;\r\n context: { $implicit: val, mo: mo, index: index, layout94: layout94, disableEllapsis: disableEllapsis }\r\n \"\r\n ></ng-container>\r\n } @else if (val) {\r\n <span class=\"ext-header-literal\">{{ val | bbbTranslate }}</span>\r\n }\r\n</ng-template>\r\n<ng-template #renderHeaderMobileCanView let-mo let-index=\"index\">\r\n <fd-card-header class=\"HeaderMobileCanView\">\r\n <div>\r\n @if(isCheckList){\r\n <fd-checkbox\r\n [name]=\"mo.$Caption\"\r\n [ngModel]=\"isChecked\"\r\n (ngModelChange)=\"onRowCheck()\"\r\n stopPropagation\r\n ></fd-checkbox>\r\n }\r\n </div>\r\n <fd-card-main-header>\r\n @if ( setting.AvatarField || setting.Avatar) {\r\n <fd-avatar\r\n alterIcon=\"alt|content|backup|default-icon\"\r\n [circle]=\"setting.CircleAvatar\"\r\n [image]=\"\r\n setting.AvatarField\r\n ? (mo[setting.AvatarField.Name]?.FileId\r\n | picFieldSrc: 'ID':setting.AvatarField.FieldDefId)\r\n : ''\r\n \"\r\n [size]=\"\r\n deviceSize === 'xl' || deviceSize === 'l'\r\n ? setting.AvatarSizeDesktop$Caption\r\n : setting.AvatarSize$Caption\r\n \"\r\n [glyph]=\"\r\n setting.Avatar ||\r\n (mo.$State === 'New' && !isChecked ? 'favorite' : inlineEditMode && isChecked ? 'edit' : '')\r\n \"\r\n ></fd-avatar>\r\n }\r\n <h2 fd-card-title>\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n columnTemplate;\r\n context: {\r\n $implicit: setting.TitleField,\r\n layout94: layout$ | async,\r\n mo: mo,\r\n index: index,\r\n fdTextMode: true\r\n }\r\n \"\r\n ></ng-container>\r\n </h2>\r\n <h3 fd-card-subtitle>\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n columnTemplate;\r\n context: {\r\n $implicit: setting.SubtitleField,\r\n layout94: layout$ | async,\r\n mo: mo,\r\n index: index\r\n }\r\n \"\r\n ></ng-container>\r\n </h3>\r\n\r\n @if (!contextMenuInFooter && (contextMenuItems && contextMenuItems.length > 0)) {\r\n <div\r\n ulvContextMenu\r\n fd-card-header-action\r\n [allColumns]=\"allColumns\"\r\n [footerMode]=\"false\"\r\n [menuItems]=\"contextMenuItems\"\r\n [contextMenuOverflowText]=\"contextMenuOverflowText\"\r\n [styleIndex]=\"styleIndex\"\r\n [conditionalFormats]=\"conditionalFormats\"\r\n [disableOverflowContextMenu]=\"disableOverflowContextMenu\"\r\n [mo]=\"mo\"\r\n (commandClick)=\"onUlvCommand()\"\r\n (overflowClick)=\"onRowCheck(true)\"\r\n ></div>\r\n }@else {\r\n <button\r\n fd-button\r\n fd-card-header-action\r\n class=\"view-btn\"\r\n stopPropagation\r\n (click)=\"onRowClick()\"\r\n [glyph]=\"navigationArrow\"\r\n fdType=\"transparent\"\r\n ></button>\r\n }\r\n </fd-card-main-header>\r\n @if(setting.hasExtHeader){\r\n <fd-card-extended-header>\r\n <div fd-card-header-column>\r\n <div fd-card-header-row>\r\n @if (setting.ExtHeaderFColRowFirst) { @let ctx = { $implicit: setting.ExtHeaderFColRowFirst,\r\n layout94: layout$ | async, mo: mo, index: index, disableEllapsis: false };\r\n <ng-container *ngTemplateOutlet=\"extHeaderCell; context: ctx\"></ng-container>\r\n } @if (setting.ExtHeaderFColRowSec) { @let ctx = { $implicit: setting.ExtHeaderFColRowSec, layout94:\r\n layout$ | async, mo: mo, index: index, disableEllapsis: false };\r\n <ng-container *ngTemplateOutlet=\"extHeaderCell; context: ctx\"></ng-container>\r\n }\r\n </div>\r\n </div>\r\n <div fd-card-header-column [align]=\"'right'\">\r\n <div fd-card-header-row>\r\n @if (setting.ExtHeaderSColRowFirst) { @let ctx = { $implicit: setting.ExtHeaderSColRowFirst,\r\n layout94: layout$ | async, mo: mo, index: index, disableEllapsis: false };\r\n <ng-container *ngTemplateOutlet=\"extHeaderCell; context: ctx\"></ng-container>\r\n } @if (setting.ExtHeaderSColRowSec) { @let ctx = { $implicit: setting.ExtHeaderSColRowSec, layout94:\r\n layout$ | async, mo: mo, index: index, disableEllapsis: false };\r\n <ng-container *ngTemplateOutlet=\"extHeaderCell; context: ctx\"></ng-container>\r\n }\r\n </div>\r\n </div>\r\n </fd-card-extended-header>\r\n }\r\n </fd-card-header>\r\n</ng-template>\r\n<ng-template #renderHeaderComponent let-mo let-index=\"index\">\r\n <bnrc-card-dynamic-item-component\r\n [component]=\"setting.HeaderComponent\"\r\n [maxHeightHeader]=\"maxHeightHeader\"\r\n [mo]=\"mo\"\r\n [columnTemplate]=\"columnTemplate\"\r\n [extendedHeaderTemplate]=\"extendedHeader\"\r\n [layout94$]=\"layout$\"\r\n [styleIndex]=\"mo.$StyleIndex\"\r\n [isChecked]=\"isChecked\"\r\n [setting]=\"setting\"\r\n [parameters]=\"setting.HeaderComponent.Settings\"\r\n [editMode]=\"inlineEditMode\"\r\n [rtl]=\"rtl\"\r\n [deviceName]=\"deviceName\"\r\n [deviceSize]=\"deviceSize\"\r\n [index]=\"index\"\r\n [allColumns]=\"allColumns\"\r\n [contextMenuItems]=\"contextMenuItems\"\r\n [canView]=\"canView\"\r\n [hideOpenIcon]=\"hideOpenIcon\"\r\n [conditionalFormats]=\"conditionalFormats\"\r\n [disableOverflowContextMenu]=\"disableOverflowContextMenu\"\r\n [navigationArrow]=\"navigationArrow\"\r\n [isCheckList]=\"isCheckList\"\r\n (events)=\"onDynamicComponentEvents($event)\"\r\n ></bnrc-card-dynamic-item-component>\r\n</ng-template>\r\n", styles: ["fd-card.fd-card--banner>fd-card-media{border-radius:inherit}fd-card.fd-card--banner>fd-card-media .fd-card__media-image-container{z-index:4}fd-card div[ulvcontextmenu] ::ng-deep .fd-bar{background-color:transparent}fd-card fd-card-content ::ng-deep bsu-column-renderer div.renderGeneral{font-family:IranYekanDigits}fd-card fd-card-footer.extra-footer{flex-wrap:wrap}fd-card fd-card-footer.hasDetailsAndContextMenu ::ng-deep .fd-card__footer-actions{justify-content:space-between!important}fd-card fd-card-content{padding:0!important}fd-card fd-card-content>div>fd-quick-view ::ng-deep .fd-quick-view__content{padding-top:0}fd-card fd-card-content>div>fd-quick-view fd-quick-view-group-item.rowDirection ::ng-deep .fd-form-item{flex-direction:row}fd-card.hide-header-border ::ng-deep fd-card-header fd-card-main-header>.fd-card__header-main{border:none}fd-card fd-card-header{padding:.5rem}fd-card fd-card-header .fd-card__title{display:flex;justify-content:space-between;align-items:center;width:100%}fd-card fd-card-header button,fd-card fd-card-header div[ulvcontextmenu]{z-index:6}fd-quick-view-subheader ::ng-deep div{background:inherit}.action{cursor:pointer;margin-top:6px;flex:1;display:flex;justify-content:end;flex-direction:column}.openOnClick{cursor:pointer}\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.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: i2.CardDynamicItemComponent, selector: "bnrc-card-dynamic-item-component", inputs: ["columnTemplate", "extendedHeaderTemplate"] }, { kind: "directive", type: i2.DynamicCommandDirective, selector: "[dynCommand]", inputs: ["dynCommand", "mo", "enableCommand"], outputs: ["commandClick"] }, { kind: "directive", type: i2.EllipsifyDirective, selector: "[ellipsify]", inputs: ["limitLine"] }, { kind: "directive", type: i2.BodyClickDirective, selector: "[bodyClick]", inputs: ["disableBodyClick"] }, { kind: "directive", type: i2.StopPropagationDirective, selector: "[stopPropagation]" }, { 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: i2$6.LinkComponent, selector: "[fdLink], [fd-link]", inputs: ["emphasized", "disabled", "inverted", "subtle", "undecorated", "touchTarget"] }, { kind: "component", type: i1$4.ButtonComponent, selector: "button[fd-button], a[fd-button], span[fd-button]", inputs: ["id"], exportAs: ["fd-button"] }, { kind: "component", type: i7$2.CardComponent, selector: "fd-card", inputs: ["badge", "badgeIcon", "badgeColor", "badgeColorSecondary", "badgeStatus", "badgeAriaLabel", "secondBadge", "secondBadgeIcon", "secondBadgeColor", "secondBadgeColorSecondary", "secondBadgeStatus", "secondBadgeAriaLabel", "isLoading", "cardType", "id", "ariaRoledescription", "ariaDescription", "ariaLabel", "role", "interactive", "selected", "ariaPosinset", "ariaSetsize", "ariaDescribedby"], outputs: ["ariaPosinsetChange", "ariaSetsizeChange", "keyDown"] }, { kind: "component", type: i7$2.CardHeaderComponent, selector: "fd-card-header", inputs: ["ariaRoleDescription"] }, { kind: "component", type: i7$2.CardMainHeaderComponent, selector: "fd-card-main-header", inputs: ["interactive", "title"] }, { kind: "directive", type: i7$2.CardHeaderActionDirective, selector: "[fd-card-header-action]" }, { kind: "component", type: i7$2.CardExtendedHeaderComponent, selector: "fd-card-extended-header", inputs: ["ariaRoleDescription", "align"] }, { kind: "directive", type: i7$2.CardHeaderRowDirective, selector: "[fd-card-header-row]" }, { kind: "directive", type: i7$2.CardHeaderColumnDirective, selector: "[fd-card-header-column]", inputs: ["align"] }, { kind: "component", type: i7$2.CardContentComponent, selector: "fd-card-content" }, { kind: "directive", type: i7$2.CardTitleDirective, selector: "[fd-card-title]", inputs: ["id"] }, { kind: "directive", type: i7$2.CardSubtitleDirective, selector: "[fd-card-subtitle]", inputs: ["id"] }, { kind: "directive", type: i7$2.CardCounterDirective, selector: "[fd-card-counter]", inputs: ["id", "statusInput"] }, { kind: "component", type: i7$2.CardFooterComponent, selector: "fd-card-footer" }, { kind: "directive", type: i7$2.CardFooterActionItemDirective, selector: "[fdCardFooterActionItem]" }, { kind: "component", type: i7$2.CardMediaComponent, selector: "fd-card-media", inputs: ["ariaRoleDescription", "hasPadding", "shellColor", "legendColor"] }, { kind: "directive", type: i7$2.CardMediaImageDirective, selector: "[fd-card-media-image]" }, { kind: "directive", type: i7$2.CardMediaImageContainerDirective, selector: "[fd-card-media-image-container]" }, { kind: "directive", type: i7$2.CardMediaContentContainerDirective, selector: "[fd-card-media-content-container]", inputs: ["isOverlay", "shellColor", "legendColor"] }, { kind: "directive", type: i7$2.CardMediaHeadingDirective, selector: "[fd-card-media-heading]", inputs: ["id", "level"] }, { kind: "directive", type: i7$2.CardMediaTextDirective, selector: "[fd-card-media-text]" }, { 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: 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: i6.PopoverComponent, selector: "fd-popover", inputs: ["config", "title", "trigger", "id", "mobile", "mobileConfig", "preventSpaceKeyScroll", "placement", "maxWidth", "fillControlMode", "closeOnOutsideClick", "closeOnEscapeKey", "disabled", "triggers", "focusTrapped", "focusAutoCapture", "restoreFocusOnClose", "noArrow", "disableScrollbar", "appendTo", "placementContainer", "scrollStrategy", "cdkPositions", "applyOverlay", "additionalBodyClass", "additionalTriggerClass", "closeOnNavigation", "fixedPosition", "resizable", "bodyAriaLabel", "bodyRole", "bodyAriaLabelledBy", "isOpen"], outputs: ["triggerChange", "isOpenChange", "beforeOpen"] }, { kind: "directive", type: i6.PopoverTriggerDirective, selector: "[fdPopoverTrigger], [fd-popover-trigger]", inputs: ["fdPopoverTrigger"] }, { kind: "component", type: i12.QuickViewComponent, selector: "fd-quick-view", inputs: ["id"] }, { kind: "component", type: i12.QuickViewGroupComponent, selector: "fd-quick-view-group" }, { kind: "component", type: i12.QuickViewGroupItemComponent, selector: "fd-quick-view-group-item", inputs: ["id"] }, { kind: "component", type: i12.QuickViewGroupItemLabelComponent, selector: "fd-quick-view-group-item-label", inputs: ["allowWrap"] }, { kind: "component", type: i12.QuickViewGroupItemContentComponent, selector: "fd-quick-view-group-item-content" }, { kind: "directive", type: i12.QuickViewGroupItemContentElementDirective, selector: "[fd-quick-view-group-item-content-element]" }, { 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: "directive", type: ApplyConditionalFormatsDirective, selector: "[applyConditionalFormats]", inputs: ["applyConditionalFormats", "styleIndex", "hostEl", "dbName"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "pipe", type: i2.PictureFieldSourcePipe, name: "picFieldSrc" }, { kind: "pipe", type: i2.BbbTranslatePipe, name: "bbbTranslate" }, { kind: "pipe", type: i2.ColumnIconPipe, name: "columnIcon" }, { kind: "pipe", type: i2.ColumnValuePipe, name: "columnValue" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
6045
6118
|
}
|
|
6046
6119
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: CardItemComponent, decorators: [{
|
|
6047
6120
|
type: Component,
|
|
@@ -6175,7 +6248,7 @@ class ListItemComponent extends BaseViewItemPropsComponent {
|
|
|
6175
6248
|
PreventDefaulEvent(e);
|
|
6176
6249
|
}
|
|
6177
6250
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: ListItemComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
6178
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.8", type: ListItemComponent, isStandalone: false, selector: "bsu-list-item", inputs: { setting: "setting", isDisplayType: "isDisplayType" }, usesInheritance: true, ngImport: i0, template: "<ng-container\r\n *ngTemplateOutlet=\"isDisplayType ? displayTemplate : standardTemplate; context: { $implicit: mo }\"\r\n></ng-container>\r\n<ng-template #standardTemplate let-mo>\r\n <li\r\n fd-list-item\r\n class=\"standard-list-row\"\r\n [ngClass]=\"deviceSize\"\r\n [style.padding-right]=\"'calc( 1rem + ' + mo.level * 12 + 'px' + ' )'\"\r\n [class.selected]=\"isChecked === true\"\r\n [selected]=\"isChecked === true\"\r\n (dblclick)=\"onRowClick()\"\r\n (click)=\"onRowCheck()\"\r\n [subline]=\"true\"\r\n >\r\n <fd-checkbox\r\n [class.tw-hidden]=\"!isCheckList\"\r\n [name]=\"mo.$Caption\"\r\n [ngModel]=\"isChecked\"\r\n (change)=\"onRowCheck2($event)\"\r\n ></fd-checkbox>\r\n\r\n <a\r\n fd-list-link\r\n [attr.rtl]=\"rtl\"\r\n class=\"li-link\"\r\n [class.checklist]=\"isCheckList\"\r\n #aEl\r\n [applyConditionalFormats]=\"conditionalFormats\"\r\n [styleIndex]=\"styleIndex\"\r\n [hostEl]=\"aEl\"\r\n [moLinker]=\"mo\"\r\n [disableHyperLink]=\"disableHyperLink || inlineEditMode || !canView\"\r\n [alternateEditObjectColumn]=\"alternateEditObjectColumn\"\r\n >\r\n @if (setting.IconFont || setting.AvatarField) {\r\n <span fd-list-thumbnail>\r\n <fd-avatar\r\n alterIcon=\"alt|content|backup|default-icon\"\r\n [style.color]=\"setting.IconColor ? setting.IconColor : null\"\r\n [circle]=\"true\"\r\n [image]=\"\r\n setting.AvatarField\r\n ? (mo[setting.AvatarField.Name]?.FileId\r\n | picFieldSrc: 'ID':setting.AvatarField.FieldDefId)\r\n : ''\r\n \"\r\n [size]=\"avatarSize\"\r\n [transparent]=\"true\"\r\n [glyph]=\"\r\n setting.IconFont ??\r\n (mo.$State === 'New' && !isChecked ? 'favorite' : inlineEditMode && isChecked ? 'edit' : '')\r\n \"\r\n >\r\n </fd-avatar>\r\n </span>\r\n }\r\n <div fd-list-content>\r\n <div fd-list-byline [twoCol]=\"true\">\r\n <div fd-list-title>\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n renderColumn;\r\n context: {\r\n $implicit: setting.TitleField,\r\n layout94: layout$ | async,\r\n mo: mo,\r\n conditionalFormats: conditionalFormats,\r\n index: 0\r\n }\r\n \"\r\n ></ng-container>\r\n </div>\r\n <div fd-list-byline [style.padding-left]=\"canView && deviceName === 'desktop' ? '.9rem' : '0'\">\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n renderColumn;\r\n context: {\r\n $implicit: setting.StatusField,\r\n layout94: layout$ | async,\r\n mo: mo,\r\n conditionalFormats: conditionalFormats\r\n }\r\n \"\r\n ></ng-container>\r\n </div>\r\n </div>\r\n <div fd-list-byline [class.tw-hidden]=\"!setting.SubtitleField\">\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n renderColumn;\r\n context: {\r\n $implicit: setting.SubtitleField,\r\n layout94: layout$ | async,\r\n mo: mo,\r\n conditionalFormats: conditionalFormats\r\n }\r\n \"\r\n ></ng-container>\r\n </div>\r\n\r\n <div fd-list-byline class=\"tw-flex-wrap tw-flex tw-gap-4\">\r\n @for (column of setting.FieldListMapped; track column) { @if (column) {\r\n @if(column.$CustomComponent?.HideColumnCaption===false) {\r\n <span class=\"\"> {{ column.Caption | bbbTranslate }} </span>}\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n renderColumn;\r\n context: {\r\n $implicit: column,\r\n conditionalFormats: conditionalFormats,\r\n layout94: layout$ | async,\r\n mo: mo,\r\n index: index\r\n }\r\n \"\r\n ></ng-container>\r\n } }\r\n </div>\r\n </div>\r\n </a>\r\n @if (contextMenuItems.length) {\r\n <bsu-ulv-context-menu\r\n class=\"tw-self-center\"\r\n [menuItems]=\"contextMenuItems\"\r\n [conditionalFormats]=\"conditionalFormats\"\r\n [styleIndex]=\"styleIndex\"\r\n [disableOverflowContextMenu]=\"disableOverflowContextMenu\"\r\n [mo]=\"mo\"\r\n (commandClick)=\"onUlvCommand()\"\r\n (overflowClick)=\"onRowCheck()\"\r\n ></bsu-ulv-context-menu>\r\n } @if (canView && !hideOpenIcon) {\r\n <button (click)=\"onRowClick()\" fdType=\"transparent\" [glyph]=\"navigationArrow\" fd-button></button>\r\n }\r\n </li>\r\n</ng-template>\r\n<ng-template #displayTemplate let-mo>\r\n @if (!mo.parent || mo.parent?.expanded) {\r\n <li\r\n class=\"display\"\r\n [ngClass]=\"deviceSize\"\r\n fd-list-item\r\n [interactive]=\"false\"\r\n (dblclick)=\"onRowClick()\"\r\n (click)=\"onRowCheck()\"\r\n [style.padding-right]=\"'calc( 1rem + ' + mo.level * 12 + 'px' + ' )'\"\r\n >\r\n <a\r\n fd-list-link\r\n [attr.rtl]=\"rtl\"\r\n class=\"li-link\"\r\n style=\"cursor: default\"\r\n [class.checklist]=\"isCheckList\"\r\n #aEl\r\n [applyConditionalFormats]=\"conditionalFormats\"\r\n [styleIndex]=\"styleIndex\"\r\n [hostEl]=\"aEl\"\r\n style=\"column-gap: 3px\"\r\n [moLinker]=\"mo\"\r\n [disableHyperLink]=\"disableHyperLink || inlineEditMode || !canView\"\r\n [alternateEditObjectColumn]=\"alternateEditObjectColumn\"\r\n >\r\n @if (setting.AvatarField) {\r\n <img\r\n [src]=\"\r\n mo[setting.AvatarField.Name]?.FileId\r\n | picFieldSrc: 'ID':setting.AvatarField.FieldDefId\r\n \"\r\n style=\"width: 24px; height: 24px\"\r\n loading=\"lazy\"\r\n />\r\n } @if (setting.IconFont) {\r\n <i fd-list-icon [glyph]=\"setting.IconFont\" [style.color]=\"setting.IconColor ? setting.IconColor : null\">\r\n </i>\r\n } @if (!setting.IconFont && mo.$State === 'New' && !isChecked) {\r\n <i fd-list-icon glyph=\"favorite\"></i>\r\n } @if (!setting.IconFont && inlineEditMode && isChecked) {\r\n <i fd-list-icon glyph=\"edit\"></i>\r\n } @if (isCheckList) {\r\n <fd-checkbox [name]=\"mo.$Caption\" [ngModel]=\"isChecked\" (change)=\"onRowCheck2($event)\"></fd-checkbox>\r\n }\r\n <span fd-list-title>\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n renderColumn;\r\n context: {\r\n $implicit: setting.TitleField,\r\n conditionalFormats: conditionalFormats,\r\n layout94: layout$ | async,\r\n mo: mo,\r\n index: 0\r\n }\r\n \"\r\n ></ng-container>\r\n </span>\r\n <span fd-list-secondary [dir]=\"rtl ? 'ltr' : 'rtl'\" [class.flex1]=\"contextMenuItems.length === 0\">\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n renderColumn;\r\n context: {\r\n $implicit: setting.CounterField,\r\n conditionalFormats: conditionalFormats,\r\n layout94: layout$ | async,\r\n mo: mo,\r\n index: index\r\n }\r\n \"\r\n ></ng-container>\r\n @if (canView && !hideOpenIcon) {\r\n <button fd-button (click)=\"onRowClick()\" [glyph]=\"navigationArrow\" fdType=\"transparent\"></button>\r\n } @if (contextMenuItems.length) {\r\n <bsu-ulv-context-menu\r\n [menuItems]=\"contextMenuItems\"\r\n [conditionalFormats]=\"conditionalFormats\"\r\n [styleIndex]=\"styleIndex\"\r\n [disableOverflowContextMenu]=\"disableOverflowContextMenu\"\r\n [mo]=\"mo\"\r\n (commandClick)=\"onUlvCommand()\"\r\n (overflowClick)=\"onRowCheck()\"\r\n ></bsu-ulv-context-menu>\r\n }\r\n </span>\r\n </a>\r\n </li>\r\n }\r\n</ng-template>\r\n<ng-template\r\n #renderColumn\r\n let-column\r\n let-mo=\"mo\"\r\n let-conditionalFormats=\"conditionalFormats\"\r\n let-index=\"index\"\r\n let-layout94=\"layout94\"\r\n>\r\n @if (column) {\r\n <div\r\n #divEl\r\n [applyConditionalFormats]=\"conditionalFormats\"\r\n [styleIndex]=\"styleIndex\"\r\n [hostEl]=\"divEl\"\r\n [dbName]=\"column.Name\"\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 </div>\r\n }\r\n</ng-template>\r\n", styles: [":host ::ng-deep .conditional-format *{font-weight:inherit!important;background-color:inherit!important;color:inherit!important}:host li.s{height:auto}:host .flex1{flex:1;display:flex;justify-content:start;flex-direction:row-reverse}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { 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: "directive", type: i2.MoLinkerDirective, selector: "[moLinker]", inputs: ["moLinker", "alternateEditObjectColumn", "disableHyperLink"] }, { 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: 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: i7.ListItemComponent, selector: "[fdListItem] ,[fd-list-item]", inputs: ["selected", "noData", "action", "interactive", "growing", "counter", "counterRole", "counterAriaLabel", "active", "unread", "byline", "ariaRole", "id", "preventClick", "settingsListTpl", "suggestion"], outputs: ["keyDown"], exportAs: ["fdListItem"] }, { kind: "directive", type: i7.ListTitleDirective, selector: "[fd-list-title], [fdListTitle]", inputs: ["wrap", "truncate", "scope"] }, { kind: "directive", type: i7.ListSecondaryDirective, selector: "[fd-list-secondary], [fdListSecondary]", inputs: ["type"] }, { kind: "directive", type: i7.ListIconDirective, selector: "[fdListIcon], [fd-list-icon]", inputs: ["glyph", "glyphFont", "class", "role", "ariaHidden"] }, { kind: "directive", type: i7.ListLinkDirective, selector: "[fd-list-link], [fdListLink]", inputs: ["navigationIndicator", "navigated", "focusable"] }, { kind: "directive", type: i7.ListBylineDirective, selector: "[fdListByline], [fd-list-byline]", inputs: ["twoCol", "wrap"] }, { kind: "directive", type: i7.ListContentDirective, selector: "[fdListContent], [fd-list-content]", inputs: ["twoCol"] }, { kind: "directive", type: i7.ListThumbnailDirective, selector: "[fdListThumbnail], [fd-list-thumbnail]" }, { kind: "directive", type: i2$6.ɵɵDir, selector: "[dir]", inputs: ["dir"], outputs: ["dirChange"], exportAs: ["dir"] }, { 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: "directive", type: ApplyConditionalFormatsDirective, selector: "[applyConditionalFormats]", inputs: ["applyConditionalFormats", "styleIndex", "hostEl", "dbName"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "pipe", type: i2.PictureFieldSourcePipe, name: "picFieldSrc" }, { kind: "pipe", type: i2.BbbTranslatePipe, name: "bbbTranslate" }, { kind: "pipe", type: i2.ColumnIconPipe, name: "columnIcon" }, { kind: "pipe", type: i2.ColumnValuePipe, name: "columnValue" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
6251
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.8", type: ListItemComponent, isStandalone: false, selector: "bsu-list-item", inputs: { setting: "setting", isDisplayType: "isDisplayType" }, usesInheritance: true, ngImport: i0, template: "<ng-container\r\n *ngTemplateOutlet=\"isDisplayType ? displayTemplate : standardTemplate; context: { $implicit: mo }\"\r\n></ng-container>\r\n<ng-template #standardTemplate let-mo>\r\n <li\r\n fd-list-item\r\n class=\"standard-list-row\"\r\n [ngClass]=\"deviceSize\"\r\n [style.padding-right]=\"'calc( 1rem + ' + mo.level * 12 + 'px' + ' )'\"\r\n [class.selected]=\"isChecked === true\"\r\n [selected]=\"isChecked === true\"\r\n (dblclick)=\"onRowClick()\"\r\n (click)=\"onRowCheck()\"\r\n [subline]=\"true\"\r\n >\r\n <fd-checkbox\r\n [class.tw-hidden]=\"!isCheckList\"\r\n [name]=\"mo.$Caption\"\r\n [ngModel]=\"isChecked\"\r\n (change)=\"onRowCheck2($event)\"\r\n ></fd-checkbox>\r\n\r\n <a\r\n fd-list-link\r\n [attr.rtl]=\"rtl\"\r\n class=\"li-link\"\r\n [class.checklist]=\"isCheckList\"\r\n #aEl\r\n [applyConditionalFormats]=\"conditionalFormats\"\r\n [styleIndex]=\"styleIndex\"\r\n [hostEl]=\"aEl\"\r\n [moLinker]=\"mo\"\r\n [disableHyperLink]=\"disableHyperLink || inlineEditMode || !canView\"\r\n [alternateEditObjectColumn]=\"alternateEditObjectColumn\"\r\n >\r\n @if (setting.IconFont || setting.AvatarField) {\r\n <span fd-list-thumbnail>\r\n <fd-avatar\r\n alterIcon=\"alt|content|backup|default-icon\"\r\n [style.color]=\"setting.IconColor ? setting.IconColor : null\"\r\n [circle]=\"true\"\r\n [image]=\"\r\n setting.AvatarField\r\n ? (mo[setting.AvatarField.Name]?.FileId\r\n | picFieldSrc: 'ID':setting.AvatarField.FieldDefId)\r\n : ''\r\n \"\r\n [size]=\"avatarSize\"\r\n [transparent]=\"true\"\r\n [glyph]=\"\r\n setting.IconFont ??\r\n (mo.$State === 'New' && !isChecked ? 'favorite' : inlineEditMode && isChecked ? 'edit' : '')\r\n \"\r\n >\r\n </fd-avatar>\r\n </span>\r\n }\r\n <div fd-list-content>\r\n <div fd-list-byline [twoCol]=\"true\">\r\n <div fd-list-title>\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n renderColumn;\r\n context: {\r\n $implicit: setting.TitleField,\r\n layout94: layout$ | async,\r\n mo: mo,\r\n conditionalFormats: conditionalFormats,\r\n index: 0\r\n }\r\n \"\r\n ></ng-container>\r\n </div>\r\n <div fd-list-byline [style.padding-left]=\"canView && deviceName === 'desktop' ? '.9rem' : '0'\">\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n renderColumn;\r\n context: {\r\n $implicit: setting.StatusField,\r\n layout94: layout$ | async,\r\n mo: mo,\r\n conditionalFormats: conditionalFormats\r\n }\r\n \"\r\n ></ng-container>\r\n </div>\r\n </div>\r\n <div fd-list-byline [class.tw-hidden]=\"!setting.SubtitleField\">\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n renderColumn;\r\n context: {\r\n $implicit: setting.SubtitleField,\r\n layout94: layout$ | async,\r\n mo: mo,\r\n conditionalFormats: conditionalFormats\r\n }\r\n \"\r\n ></ng-container>\r\n </div>\r\n\r\n <div fd-list-byline class=\"tw-flex-wrap tw-flex tw-gap-4\">\r\n @for (column of setting.FieldListMapped; track column) { @if (column) {\r\n @if(column.$CustomComponent?.HideColumnCaption===false) {\r\n <span class=\"\"> {{ column.Caption | bbbTranslate }} </span>}\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n renderColumn;\r\n context: {\r\n $implicit: column,\r\n conditionalFormats: conditionalFormats,\r\n layout94: layout$ | async,\r\n mo: mo,\r\n index: index\r\n }\r\n \"\r\n ></ng-container>\r\n } }\r\n </div>\r\n </div>\r\n </a>\r\n @if (contextMenuItems.length) {\r\n <bsu-ulv-context-menu\r\n class=\"tw-self-center\"\r\n [menuItems]=\"contextMenuItems\"\r\n [conditionalFormats]=\"conditionalFormats\"\r\n [styleIndex]=\"styleIndex\"\r\n [disableOverflowContextMenu]=\"disableOverflowContextMenu\"\r\n [mo]=\"mo\"\r\n (commandClick)=\"onUlvCommand()\"\r\n (overflowClick)=\"onRowCheck()\"\r\n ></bsu-ulv-context-menu>\r\n } @if (canView && !hideOpenIcon) {\r\n <button (click)=\"onRowClick()\" fdType=\"transparent\" [glyph]=\"navigationArrow\" fd-button></button>\r\n }\r\n </li>\r\n</ng-template>\r\n<ng-template #displayTemplate let-mo>\r\n @if (!mo.parent || mo.parent?.expanded) {\r\n <li\r\n class=\"display\"\r\n [ngClass]=\"deviceSize\"\r\n fd-list-item\r\n [interactive]=\"false\"\r\n (dblclick)=\"onRowClick()\"\r\n (click)=\"onRowCheck()\"\r\n [style.padding-right]=\"'calc( 1rem + ' + mo.level * 12 + 'px' + ' )'\"\r\n >\r\n <a\r\n fd-list-link\r\n [attr.rtl]=\"rtl\"\r\n class=\"li-link\"\r\n style=\"cursor: default\"\r\n [class.checklist]=\"isCheckList\"\r\n #aEl\r\n [applyConditionalFormats]=\"conditionalFormats\"\r\n [styleIndex]=\"styleIndex\"\r\n [hostEl]=\"aEl\"\r\n style=\"column-gap: 3px\"\r\n [moLinker]=\"mo\"\r\n [disableHyperLink]=\"disableHyperLink || inlineEditMode || !canView\"\r\n [alternateEditObjectColumn]=\"alternateEditObjectColumn\"\r\n >\r\n @if (setting.AvatarField) {\r\n <img\r\n [src]=\"\r\n mo[setting.AvatarField.Name]?.FileId\r\n | picFieldSrc: 'ID':setting.AvatarField.FieldDefId\r\n \"\r\n style=\"width: 24px; height: 24px\"\r\n loading=\"lazy\"\r\n />\r\n } @if (setting.IconFont) {\r\n <i fd-list-icon [glyph]=\"setting.IconFont\" [style.color]=\"setting.IconColor ? setting.IconColor : null\">\r\n </i>\r\n } @if (!setting.IconFont && mo.$State === 'New' && !isChecked) {\r\n <i fd-list-icon glyph=\"favorite\"></i>\r\n } @if (!setting.IconFont && inlineEditMode && isChecked) {\r\n <i fd-list-icon glyph=\"edit\"></i>\r\n } @if (isCheckList) {\r\n <fd-checkbox [name]=\"mo.$Caption\" [ngModel]=\"isChecked\" (change)=\"onRowCheck2($event)\"></fd-checkbox>\r\n }\r\n <span fd-list-title>\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n renderColumn;\r\n context: {\r\n $implicit: setting.TitleField,\r\n conditionalFormats: conditionalFormats,\r\n layout94: layout$ | async,\r\n mo: mo,\r\n index: 0\r\n }\r\n \"\r\n ></ng-container>\r\n </span>\r\n <span fd-list-secondary [dir]=\"rtl ? 'ltr' : 'rtl'\" [class.flex1]=\"contextMenuItems.length === 0\">\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n renderColumn;\r\n context: {\r\n $implicit: setting.CounterField,\r\n conditionalFormats: conditionalFormats,\r\n layout94: layout$ | async,\r\n mo: mo,\r\n index: index\r\n }\r\n \"\r\n ></ng-container>\r\n @if (canView && !hideOpenIcon) {\r\n <button fd-button (click)=\"onRowClick()\" [glyph]=\"navigationArrow\" fdType=\"transparent\"></button>\r\n } @if (contextMenuItems.length) {\r\n <bsu-ulv-context-menu\r\n [menuItems]=\"contextMenuItems\"\r\n [conditionalFormats]=\"conditionalFormats\"\r\n [styleIndex]=\"styleIndex\"\r\n [disableOverflowContextMenu]=\"disableOverflowContextMenu\"\r\n [mo]=\"mo\"\r\n (commandClick)=\"onUlvCommand()\"\r\n (overflowClick)=\"onRowCheck()\"\r\n ></bsu-ulv-context-menu>\r\n }\r\n </span>\r\n </a>\r\n </li>\r\n }\r\n</ng-template>\r\n<ng-template\r\n #renderColumn\r\n let-column\r\n let-mo=\"mo\"\r\n let-conditionalFormats=\"conditionalFormats\"\r\n let-index=\"index\"\r\n let-layout94=\"layout94\"\r\n>\r\n @if (column) {\r\n <div\r\n #divEl\r\n [applyConditionalFormats]=\"conditionalFormats\"\r\n [styleIndex]=\"styleIndex\"\r\n [hostEl]=\"divEl\"\r\n [dbName]=\"column.Name\"\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 </div>\r\n }\r\n</ng-template>\r\n", styles: [":host ::ng-deep .conditional-format *{font-weight:inherit!important;background-color:inherit!important;color:inherit!important}:host li.s{height:auto}:host .flex1{flex:1;display:flex;justify-content:start;flex-direction:row-reverse}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { 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: "directive", type: i2.MoLinkerDirective, selector: "[moLinker]", inputs: ["moLinker", "alternateEditObjectColumn", "disableHyperLink"] }, { 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: 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: i7.ListItemComponent, selector: "[fdListItem] ,[fd-list-item]", inputs: ["selected", "noData", "action", "interactive", "growing", "counter", "counterRole", "counterAriaLabel", "active", "unread", "byline", "ariaRole", "id", "preventClick", "settingsListTpl", "suggestion"], outputs: ["keyDown"], exportAs: ["fdListItem"] }, { kind: "directive", type: i7.ListTitleDirective, selector: "[fd-list-title], [fdListTitle]", inputs: ["wrap", "truncate", "scope"] }, { kind: "directive", type: i7.ListSecondaryDirective, selector: "[fd-list-secondary], [fdListSecondary]", inputs: ["type"] }, { kind: "directive", type: i7.ListIconDirective, selector: "[fdListIcon], [fd-list-icon]", inputs: ["glyph", "glyphFont", "class", "role", "ariaHidden"] }, { kind: "directive", type: i7.ListLinkDirective, selector: "[fd-list-link], [fdListLink]", inputs: ["navigationIndicator", "navigated", "focusable"] }, { kind: "directive", type: i7.ListBylineDirective, selector: "[fdListByline], [fd-list-byline]", inputs: ["twoCol", "wrap"] }, { kind: "directive", type: i7.ListContentDirective, selector: "[fdListContent], [fd-list-content]", inputs: ["twoCol"] }, { kind: "directive", type: i7.ListThumbnailDirective, selector: "[fdListThumbnail], [fd-list-thumbnail]" }, { kind: "directive", type: i2$7.ɵɵDir, selector: "[dir]", inputs: ["dir"], outputs: ["dirChange"], exportAs: ["dir"] }, { 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: "directive", type: ApplyConditionalFormatsDirective, selector: "[applyConditionalFormats]", inputs: ["applyConditionalFormats", "styleIndex", "hostEl", "dbName"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "pipe", type: i2.PictureFieldSourcePipe, name: "picFieldSrc" }, { kind: "pipe", type: i2.BbbTranslatePipe, name: "bbbTranslate" }, { kind: "pipe", type: i2.ColumnIconPipe, name: "columnIcon" }, { kind: "pipe", type: i2.ColumnValuePipe, name: "columnValue" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
6179
6252
|
}
|
|
6180
6253
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: ListItemComponent, decorators: [{
|
|
6181
6254
|
type: Component,
|
|
@@ -6452,11 +6525,15 @@ class BarsaTableHeaderComponent extends BaseComponent {
|
|
|
6452
6525
|
const thList = this.thArr;
|
|
6453
6526
|
this.columns.forEach((c, i) => {
|
|
6454
6527
|
c.Width = thList[i].offsetWidth;
|
|
6455
|
-
|
|
6456
|
-
this._renderer2.setStyle(thList[i], 'width', `${c.Width}px`);
|
|
6457
|
-
}
|
|
6528
|
+
this._renderer2.setStyle(thList[i], 'width', `${c.Width}px`);
|
|
6458
6529
|
});
|
|
6459
|
-
|
|
6530
|
+
// اگه مجموعِ عرضِ ستونها از عرضِ کانتینر کمتره، آخرین ستون رو کش میدیم که فضای خالیِ بعدش
|
|
6531
|
+
// زشت نمونه؛ وگرنه (ستونها زیادن و از عرض کانتینر رد زدن، پس باید اسکرولِ افقی بخوره) عرضِ
|
|
6532
|
+
// طبیعیِ خودش رو نگه میداره تا از عرضِ جدولِ از قبل سرریزشده هم بیشتر بیرون نزنه.
|
|
6533
|
+
const allColWidth = this.columns.reduce((sum, c) => sum + c.Width, 0);
|
|
6534
|
+
if (this.tableWidth > 0 && allColWidth < this.tableWidth) {
|
|
6535
|
+
this._renderer2.setStyle(thList[thList.length - 1], 'width', '100%');
|
|
6536
|
+
}
|
|
6460
6537
|
this.columnResize.emit(this.columns.map((c, i) => ({ name: c.Name, width: c.Width, thDom: thList[i] })));
|
|
6461
6538
|
// console.log('columnWidthChange');
|
|
6462
6539
|
}
|
|
@@ -6710,6 +6787,13 @@ class BarsaTableRowComponent extends BaseViewItemPropsComponent {
|
|
|
6710
6787
|
this.detailsText ||= 'Details';
|
|
6711
6788
|
}
|
|
6712
6789
|
ngOnChanges(changes) {
|
|
6790
|
+
const navigation = this.mo?.$InlineEditNavigation;
|
|
6791
|
+
if (changes.isChecked?.currentValue && navigation) {
|
|
6792
|
+
const targetColumn = this.columns?.[navigation.columnIndex];
|
|
6793
|
+
targetColumn && this.activeColumn.set(targetColumn);
|
|
6794
|
+
delete this.mo.$InlineEditNavigation;
|
|
6795
|
+
this._focusNavigationTarget(navigation.columnIndex);
|
|
6796
|
+
}
|
|
6713
6797
|
super.ngOnChanges(changes);
|
|
6714
6798
|
const { alternateRowMode, isChecked, rowNumber } = changes;
|
|
6715
6799
|
if (alternateRowMode || isChecked || rowNumber) {
|
|
@@ -6758,6 +6842,14 @@ class BarsaTableRowComponent extends BaseViewItemPropsComponent {
|
|
|
6758
6842
|
const rowN = Number(rowNumber);
|
|
6759
6843
|
this.enableAlternateRowMode = !isChecked && !isNaN(rowN) && alternateRowMode && rowN % 2 === 0;
|
|
6760
6844
|
}
|
|
6845
|
+
_focusNavigationTarget(columnIndex) {
|
|
6846
|
+
setTimeout(() => {
|
|
6847
|
+
const columns = this._el.nativeElement.querySelectorAll('bsu-barsa-table-column');
|
|
6848
|
+
const column = columns[columnIndex];
|
|
6849
|
+
const control = column?.querySelector('input:not([disabled]), select:not([disabled]), textarea:not([disabled]), button:not([disabled]), [tabindex]:not([tabindex="-1"])');
|
|
6850
|
+
control?.focus();
|
|
6851
|
+
});
|
|
6852
|
+
}
|
|
6761
6853
|
_columnChangeToEditMode(column) {
|
|
6762
6854
|
if (this.isCheckList && this.isChecked) {
|
|
6763
6855
|
return;
|
|
@@ -6766,11 +6858,11 @@ class BarsaTableRowComponent extends BaseViewItemPropsComponent {
|
|
|
6766
6858
|
this.activeColumn.set(column);
|
|
6767
6859
|
}
|
|
6768
6860
|
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 }); }
|
|
6861
|
+
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
6862
|
}
|
|
6771
6863
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: BarsaTableRowComponent, decorators: [{
|
|
6772
6864
|
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"] }]
|
|
6865
|
+
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
6866
|
}], propDecorators: { showDetailsInRow: [{
|
|
6775
6867
|
type: Input
|
|
6776
6868
|
}], allowRecordReorder: [{
|
|
@@ -7101,7 +7193,8 @@ class UiTableViewComponent extends ReportViewBaseComponent {
|
|
|
7101
7193
|
calculateColumnWidthFitToContainer(elDom, this.canView, this.disableHeaderContextMenu, this.contextMenuItems, this.columns);
|
|
7102
7194
|
}
|
|
7103
7195
|
_freeColumnSize(_moDataList, _columns) {
|
|
7104
|
-
|
|
7196
|
+
const elDom = this._el.nativeElement.parentElement;
|
|
7197
|
+
calculateFreeColumnSize(this.columns, elDom?.clientWidth ?? 0);
|
|
7105
7198
|
}
|
|
7106
7199
|
_setHeight(parentHeight, checkDialog = true) {
|
|
7107
7200
|
super._setHeight(parentHeight, checkDialog);
|
|
@@ -7208,13 +7301,13 @@ class UiTableViewComponent extends ReportViewBaseComponent {
|
|
|
7208
7301
|
this._renderer2.setStyle(this._el.nativeElement, 'visibility', 'visible');
|
|
7209
7302
|
}
|
|
7210
7303
|
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 }); }
|
|
7304
|
+
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
7305
|
}
|
|
7213
7306
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: UiTableViewComponent, decorators: [{
|
|
7214
7307
|
type: Component,
|
|
7215
7308
|
args: [{ selector: 'bsu-ui-table-view', changeDetection: ChangeDetectionStrategy.OnPush, standalone: false, host: {
|
|
7216
7309
|
'[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"] }]
|
|
7310
|
+
}, 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
7311
|
}], propDecorators: { _tableRef: [{
|
|
7219
7312
|
type: ViewChild,
|
|
7220
7313
|
args: ['tableTpl', { static: true, read: ElementRef }]
|
|
@@ -7912,7 +8005,7 @@ class BreadcrumbComponent extends BaseComponent {
|
|
|
7912
8005
|
this.url = url;
|
|
7913
8006
|
}
|
|
7914
8007
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: BreadcrumbComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
7915
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.8", type: BreadcrumbComponent, isStandalone: false, selector: "bsu-breadcrumb", inputs: { breadCrumb: "breadCrumb", allBreadCrumb: "allBreadCrumb", isLast: "isLast", index: "index" }, usesInheritance: true, ngImport: i0, template: "@if (!isLast) {\r\n<a fd-link [href]=\"'#/'+url\">{{ breadCrumb.label | bbbTranslate }}</a>\r\n} @if (isLast) {\r\n<span dir=\"ltr\" [style.direction]=\"rtl ? 'rtl' : 'ltr'\">{{ breadCrumb.label | bbbTranslate }}</span>\r\n}\r\n", styles: [""], dependencies: [{ kind: "component", type: i2$
|
|
8008
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.8", type: BreadcrumbComponent, isStandalone: false, selector: "bsu-breadcrumb", inputs: { breadCrumb: "breadCrumb", allBreadCrumb: "allBreadCrumb", isLast: "isLast", index: "index" }, usesInheritance: true, ngImport: i0, template: "@if (!isLast) {\r\n<a fd-link [href]=\"'#/'+url\">{{ breadCrumb.label | bbbTranslate }}</a>\r\n} @if (isLast) {\r\n<span dir=\"ltr\" [style.direction]=\"rtl ? 'rtl' : 'ltr'\">{{ breadCrumb.label | bbbTranslate }}</span>\r\n}\r\n", styles: [""], dependencies: [{ kind: "component", type: i2$6.LinkComponent, selector: "[fdLink], [fd-link]", inputs: ["emphasized", "disabled", "inverted", "subtle", "undecorated", "touchTarget"] }, { kind: "directive", type: i2$7.ɵɵDir, selector: "[dir]", inputs: ["dir"], outputs: ["dirChange"], exportAs: ["dir"] }, { kind: "pipe", type: i2.BbbTranslatePipe, name: "bbbTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
7916
8009
|
}
|
|
7917
8010
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: BreadcrumbComponent, decorators: [{
|
|
7918
8011
|
type: Component,
|
|
@@ -10526,7 +10619,7 @@ class FormToolbarComponent extends FormToolbarBaseComponent {
|
|
|
10526
10619
|
}
|
|
10527
10620
|
}
|
|
10528
10621
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: FormToolbarComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
10529
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.8", type: FormToolbarComponent, isStandalone: false, selector: "bsu-form-toolbar", outputs: { toolbarClick: "toolbarClick" }, viewQueries: [{ propertyName: "_tlbCmp", first: true, predicate: ["formToolbar"], descendants: true }, { propertyName: "_divTempWidth", first: true, predicate: ["divTempWidth"], descendants: true, static: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div\r\n style=\"width: 100%; height: 0; visibility: hidden; opacity: 0\"\r\n resizeHandler\r\n [fnResize]=\"onResize\"\r\n #divTempWidth\r\n></div>\r\n<fd-toolbar\r\n #formToolbar\r\n fdType=\"transparent\"\r\n [clearBorder]=\"true\"\r\n [shouldOverflow]=\"true\"\r\n [forceOverflow]=\"true\"\r\n [style.width]=\"width\"\r\n [class.firefox]=\"isFirefox\"\r\n [style.width]=\"'100%'\"\r\n>\r\n @for (btn of buttons; track btn; let i = $index; let last = $last; let first = $first) { @if ((btn === '-' ||\r\n btn.text === '-') && !last && !first && deviceSize !== 's') {\r\n <fd-toolbar-separator [attr.i]=\"i\" [attr.last]=\"last\" [attr.first]=\"first\"></fd-toolbar-separator>\r\n } @if (btn.IAmMenu) { @if (btn.isBuiltin) {\r\n <fd-split-button\r\n [dir]=\"dirValue === 'rtl' ? 'rtl' : 'ltr'\"\r\n fd-toolbar-item\r\n [fdOverflowPriority]=\"btn.overflowPriority\"\r\n [fdOverflowGroup]=\"btn.overflowGroup\"\r\n [mainAction]=\"{ mainActionTitle: btn.text, keepMainAction: true }\"\r\n [fdType]=\"btn.design ? btn.design : btn.Data?.JsonExtraProp?.Design\"\r\n (primaryButtonClicked)=\"btn.isBuiltin && onToolbarClick(btn)\"\r\n (click)=\"menu2.open()\"\r\n >\r\n <fd-menu #menu2>\r\n @for (menuItem of btn.menu.items; track menuItem) {\r\n <li fd-menu-item [disabled]=\"menuItem.disabled\" (click)=\"onToolbarClick(menuItem, menu2)\">\r\n <div fd-menu-interactive>\r\n <fd-menu-addon\r\n position=\"before\"\r\n [glyph]=\"\r\n menuItem.newIcon\r\n ? menuItem.newIcon\r\n : menuItem.Data?.JsonExtraProp?.Icon\r\n \"\r\n >\r\n </fd-menu-addon>\r\n @if (!menuItem.newIcon && menuItem.icon) {\r\n <img class=\"mr8\" [src]=\"menuItem.icon\" loading=\"lazy\" />\r\n }\r\n <span fd-menu-title>{{ menuItem.text }}</span>\r\n </div>\r\n </li>\r\n }\r\n </fd-menu>\r\n </fd-split-button>\r\n } @if (!btn.isBuiltin) {\r\n <button\r\n fd-button\r\n fd-toolbar-item\r\n [fdMenu]=\"true\"\r\n [attr.text]=\"btn.text\"\r\n [attr.itemId]=\"btn.itemId\"\r\n [attr.name]=\"btn.name\"\r\n [fdOverflowPriority]=\"btn.overflowPriority\"\r\n [fdOverflowGroup]=\"btn.overflowGroup\"\r\n [glyph]=\"btn.FontIcon\"\r\n [style.color]=\"btn.IconColor\"\r\n [fdType]=\"btn.design ? btn.design : btn.Data?.JsonExtraProp?.Design\"\r\n [label]=\"btn.text | bbbTranslate\"\r\n [ariaLabel]=\"btn.text | bbbTranslate\"\r\n [fdMenuTrigger]=\"menu\"\r\n >\r\n @if (!btn.Data?.JsonExtraProp?.Icon && !btn.newIcon && btn.icon) {\r\n <img width=\"16\" [src]=\"btn.icon\" loading=\"lazy\" />\r\n }\r\n <fd-menu #menu>\r\n @for (menuItem of btn.menu.items; track menuItem) {\r\n <li fd-menu-item [disabled]=\"menuItem.disabled\" (click)=\"onToolbarClick(menuItem, menu)\">\r\n <div fd-menu-interactive>\r\n @if ( menuItem.newIcon || menuItem.Data?.JsonExtraProp?.Icon || menuItem.FontIcon ||\r\n menuItem.Data?.CustomUi?.Parameters?.Icon ) {\r\n <fd-menu-addon\r\n position=\"before\"\r\n [ngClass]=\"\r\n menuItem.Data?.CustomUi?.Parameters?.FdType$Caption\r\n ? 'fd-button--' +\r\n menuItem.Data?.CustomUi?.Parameters?.FdType$Caption\r\n : ''\r\n \"\r\n [style.color]=\"menuItem.IconColor\"\r\n [attr.name]=\"menuItem.name\"\r\n [attr.itemId]=\"menuItem.itemId\"\r\n [attr.text]=\"menuItem.text\"\r\n [glyph]=\"\r\n menuItem.newIcon ||\r\n menuItem.Data?.JsonExtraProp?.Icon ||\r\n menuItem.FontIcon ||\r\n menuItem.Data?.CustomUi?.Parameters?.Icon\r\n \"\r\n >\r\n </fd-menu-addon>\r\n } @if ( !( menuItem.newIcon || menuItem.Data?.JsonExtraProp?.Icon ||\r\n menuItem.Data?.CustomUi?.Parameters?.Icon || menuItem.FontIcon ) && menuItem.icon ) {\r\n <img class=\"mr8\" [src]=\"menuItem.icon\" loading=\"lazy\" />\r\n }\r\n <span fd-menu-title>{{ menuItem.text }}</span>\r\n </div>\r\n </li>\r\n }\r\n </fd-menu>\r\n </button>\r\n } } @else { @if (!(btn === '-' || btn.text === '-')) {\r\n <ng-container\r\n *ngTemplateOutlet=\"btn.Data?.CustomUi?.Selector ? dynamicBtnTemplate : btnTemplate; context: { $implicit: btn }\"\r\n ></ng-container>\r\n <ng-template #btnTemplate let-btn>\r\n <button\r\n fd-toolbar-item\r\n fd-button\r\n [disabled]=\"btn.disabled\"\r\n [attr.text]=\"btn.text\"\r\n [attr.itemId]=\"btn.itemId\"\r\n [attr.name]=\"btn.name\"\r\n [fdOverflowPriority]=\"btn.overflowPriority\"\r\n [fdOverflowGroup]=\"btn.overflowGroup\"\r\n [fdType]=\"\r\n btn.isWorkflow\r\n ? 'positive'\r\n : btn.design\r\n ? btn.design\r\n : btn.Data?.JsonExtraProp?.Design\r\n \"\r\n [glyph]=\"btn.newIcon ? btn.newIcon : btn.Data?.JsonExtraProp?.Icon\"\r\n (click)=\"onToolbarClick(btn)\"\r\n >\r\n @if (!btn.Data?.JsonExtraProp?.Icon && !btn.newIcon && btn.icon) {\r\n <img width=\"16\" [src]=\"btn.icon\" loading=\"lazy\" />\r\n } @if (btn.text) {\r\n <span>{{ btn.text }}</span>\r\n }\r\n </button>\r\n </ng-template>\r\n <ng-template #dynamicBtnTemplate let-btn>\r\n <bnrc-dynamic-form-toolbaritem\r\n fd-toolbar-item\r\n [attr.text]=\"btn.text\"\r\n [attr.itemId]=\"btn.itemId\"\r\n [attr.name]=\"btn.name\"\r\n [component]=\"btn.Data.CustomUi\"\r\n [context]=\"btn\"\r\n [isEnable]=\"btn.Command?._isEnable\"\r\n (btnClick)=\"onToolbarClick(btn)\"\r\n ></bnrc-dynamic-form-toolbaritem>\r\n </ng-template>\r\n } } }\r\n</fd-toolbar>\r\n", styles: [":host{display:flex;width:100%;flex-direction:column}:host fd-toolbar ::ng-deep .fd-toolbar__spacer{max-width:0}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i2.DynamicFormToolbaritemComponent, selector: "bnrc-dynamic-form-toolbaritem", inputs: ["mo", "index", "deviceName", "deviceSize", "context", "btn", "isEnable", "showText", "allColumns", "conditionalFormats"], outputs: ["btnClick"] }, { kind: "directive", type: i2.ResizeHandlerDirective, selector: "[resizeHandler]", inputs: ["fnResize"] }, { kind: "component", type: i1$4.ButtonComponent, selector: "button[fd-button], a[fd-button], span[fd-button]", inputs: ["id"], exportAs: ["fd-button"] }, { kind: "component", type: i5$2.MenuComponent, selector: "fd-menu", inputs: ["openOnHoverTime", "ariaLabel", "ariaLabelledby", "id", "config", "mobile", "mobileConfig", "placement", "closeOnEscapeKey", "focusAutoCapture", "disabled", "disableScrollbar", "triggers", "fillControlMode", "closeOnOutsideClick", "noArrow", "focusTrapped", "additionalBodyClass", "closeOnNavigation", "restoreFocusOnClose", "appendTo", "fixedPosition", "scrollStrategy", "isOpen"], outputs: ["isOpenChange", "activePath", "beforeOpen"] }, { kind: "component", type: i5$2.MenuItemComponent, selector: "li[fd-menu-item]", inputs: ["disabled", "itemId", "submenu", "parentSubmenu", "hasSeparator"], outputs: ["onSelect"], exportAs: ["fd-menu-item"] }, { kind: "component", type: i5$2.MenuInteractiveComponent, selector: "[fd-menu-interactive]" }, { kind: "directive", type: i5$2.MenuTitleDirective, selector: "[fd-menu-title]", inputs: ["truncate"] }, { kind: "component", type: i5$2.MenuAddonDirective, selector: "fd-menu-addon", inputs: ["position", "submenuIndicator", "ariaHidden"] }, { kind: "directive", type: i5$2.MenuTriggerDirective, selector: "[fdMenuTrigger]", inputs: ["fdMenuTrigger"] }, { kind: "component", type: i8.SplitButtonComponent, selector: "fd-split-button", inputs: ["glyph", "glyphFont", "disabled", "fdType", "expandButtonTitle", "selected", "fixedWidth", "mainAction", "arialLabel"], outputs: ["primaryButtonClicked"] }, { 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: "directive", type: i7$1.ToolbarItemDirective, selector: "[fd-toolbar-item], [fdOverflowGroup], [fdOverflowPriority]", inputs: ["fdOverflowPriority", "fdOverflowGroup"] }, { kind: "component", type: i7$1.ToolbarSeparatorComponent, selector: "fd-toolbar-separator" }, { kind: "directive", type: i2$6.ɵɵDir, selector: "[dir]", inputs: ["dir"], outputs: ["dirChange"], exportAs: ["dir"] }, { kind: "pipe", type: i2.BbbTranslatePipe, name: "bbbTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
10622
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.8", type: FormToolbarComponent, isStandalone: false, selector: "bsu-form-toolbar", outputs: { toolbarClick: "toolbarClick" }, viewQueries: [{ propertyName: "_tlbCmp", first: true, predicate: ["formToolbar"], descendants: true }, { propertyName: "_divTempWidth", first: true, predicate: ["divTempWidth"], descendants: true, static: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div\r\n style=\"width: 100%; height: 0; visibility: hidden; opacity: 0\"\r\n resizeHandler\r\n [fnResize]=\"onResize\"\r\n #divTempWidth\r\n></div>\r\n<fd-toolbar\r\n #formToolbar\r\n fdType=\"transparent\"\r\n [clearBorder]=\"true\"\r\n [shouldOverflow]=\"true\"\r\n [forceOverflow]=\"true\"\r\n [style.width]=\"width\"\r\n [class.firefox]=\"isFirefox\"\r\n [style.width]=\"'100%'\"\r\n>\r\n @for (btn of buttons; track btn; let i = $index; let last = $last; let first = $first) { @if ((btn === '-' ||\r\n btn.text === '-') && !last && !first && deviceSize !== 's') {\r\n <fd-toolbar-separator [attr.i]=\"i\" [attr.last]=\"last\" [attr.first]=\"first\"></fd-toolbar-separator>\r\n } @if (btn.IAmMenu) { @if (btn.isBuiltin) {\r\n <fd-split-button\r\n [dir]=\"dirValue === 'rtl' ? 'rtl' : 'ltr'\"\r\n fd-toolbar-item\r\n [fdOverflowPriority]=\"btn.overflowPriority\"\r\n [fdOverflowGroup]=\"btn.overflowGroup\"\r\n [mainAction]=\"{ mainActionTitle: btn.text, keepMainAction: true }\"\r\n [fdType]=\"btn.design ? btn.design : btn.Data?.JsonExtraProp?.Design\"\r\n (primaryButtonClicked)=\"btn.isBuiltin && onToolbarClick(btn)\"\r\n (click)=\"menu2.open()\"\r\n >\r\n <fd-menu #menu2>\r\n @for (menuItem of btn.menu.items; track menuItem) {\r\n <li fd-menu-item [disabled]=\"menuItem.disabled\" (click)=\"onToolbarClick(menuItem, menu2)\">\r\n <div fd-menu-interactive>\r\n <fd-menu-addon\r\n position=\"before\"\r\n [glyph]=\"\r\n menuItem.newIcon\r\n ? menuItem.newIcon\r\n : menuItem.Data?.JsonExtraProp?.Icon\r\n \"\r\n >\r\n </fd-menu-addon>\r\n @if (!menuItem.newIcon && menuItem.icon) {\r\n <img class=\"mr8\" [src]=\"menuItem.icon\" loading=\"lazy\" />\r\n }\r\n <span fd-menu-title>{{ menuItem.text }}</span>\r\n </div>\r\n </li>\r\n }\r\n </fd-menu>\r\n </fd-split-button>\r\n } @if (!btn.isBuiltin) {\r\n <button\r\n fd-button\r\n fd-toolbar-item\r\n [fdMenu]=\"true\"\r\n [attr.text]=\"btn.text\"\r\n [attr.itemId]=\"btn.itemId\"\r\n [attr.name]=\"btn.name\"\r\n [fdOverflowPriority]=\"btn.overflowPriority\"\r\n [fdOverflowGroup]=\"btn.overflowGroup\"\r\n [glyph]=\"btn.FontIcon\"\r\n [style.color]=\"btn.IconColor\"\r\n [fdType]=\"btn.design ? btn.design : btn.Data?.JsonExtraProp?.Design\"\r\n [label]=\"btn.text | bbbTranslate\"\r\n [ariaLabel]=\"btn.text | bbbTranslate\"\r\n [fdMenuTrigger]=\"menu\"\r\n >\r\n @if (!btn.Data?.JsonExtraProp?.Icon && !btn.newIcon && btn.icon) {\r\n <img width=\"16\" [src]=\"btn.icon\" loading=\"lazy\" />\r\n }\r\n <fd-menu #menu>\r\n @for (menuItem of btn.menu.items; track menuItem) {\r\n <li fd-menu-item [disabled]=\"menuItem.disabled\" (click)=\"onToolbarClick(menuItem, menu)\">\r\n <div fd-menu-interactive>\r\n @if ( menuItem.newIcon || menuItem.Data?.JsonExtraProp?.Icon || menuItem.FontIcon ||\r\n menuItem.Data?.CustomUi?.Parameters?.Icon ) {\r\n <fd-menu-addon\r\n position=\"before\"\r\n [ngClass]=\"\r\n menuItem.Data?.CustomUi?.Parameters?.FdType$Caption\r\n ? 'fd-button--' +\r\n menuItem.Data?.CustomUi?.Parameters?.FdType$Caption\r\n : ''\r\n \"\r\n [style.color]=\"menuItem.IconColor\"\r\n [attr.name]=\"menuItem.name\"\r\n [attr.itemId]=\"menuItem.itemId\"\r\n [attr.text]=\"menuItem.text\"\r\n [glyph]=\"\r\n menuItem.newIcon ||\r\n menuItem.Data?.JsonExtraProp?.Icon ||\r\n menuItem.FontIcon ||\r\n menuItem.Data?.CustomUi?.Parameters?.Icon\r\n \"\r\n >\r\n </fd-menu-addon>\r\n } @if ( !( menuItem.newIcon || menuItem.Data?.JsonExtraProp?.Icon ||\r\n menuItem.Data?.CustomUi?.Parameters?.Icon || menuItem.FontIcon ) && menuItem.icon ) {\r\n <img class=\"mr8\" [src]=\"menuItem.icon\" loading=\"lazy\" />\r\n }\r\n <span fd-menu-title>{{ menuItem.text }}</span>\r\n </div>\r\n </li>\r\n }\r\n </fd-menu>\r\n </button>\r\n } } @else { @if (!(btn === '-' || btn.text === '-')) {\r\n <ng-container\r\n *ngTemplateOutlet=\"btn.Data?.CustomUi?.Selector ? dynamicBtnTemplate : btnTemplate; context: { $implicit: btn }\"\r\n ></ng-container>\r\n <ng-template #btnTemplate let-btn>\r\n <button\r\n fd-toolbar-item\r\n fd-button\r\n [disabled]=\"btn.disabled\"\r\n [attr.text]=\"btn.text\"\r\n [attr.itemId]=\"btn.itemId\"\r\n [attr.name]=\"btn.name\"\r\n [fdOverflowPriority]=\"btn.overflowPriority\"\r\n [fdOverflowGroup]=\"btn.overflowGroup\"\r\n [fdType]=\"\r\n btn.isWorkflow\r\n ? 'positive'\r\n : btn.design\r\n ? btn.design\r\n : btn.Data?.JsonExtraProp?.Design\r\n \"\r\n [glyph]=\"btn.newIcon ? btn.newIcon : btn.Data?.JsonExtraProp?.Icon\"\r\n (click)=\"onToolbarClick(btn)\"\r\n >\r\n @if (!btn.Data?.JsonExtraProp?.Icon && !btn.newIcon && btn.icon) {\r\n <img width=\"16\" [src]=\"btn.icon\" loading=\"lazy\" />\r\n } @if (btn.text) {\r\n <span>{{ btn.text }}</span>\r\n }\r\n </button>\r\n </ng-template>\r\n <ng-template #dynamicBtnTemplate let-btn>\r\n <bnrc-dynamic-form-toolbaritem\r\n fd-toolbar-item\r\n [attr.text]=\"btn.text\"\r\n [attr.itemId]=\"btn.itemId\"\r\n [attr.name]=\"btn.name\"\r\n [component]=\"btn.Data.CustomUi\"\r\n [context]=\"btn\"\r\n [isEnable]=\"btn.Command?._isEnable\"\r\n (btnClick)=\"onToolbarClick(btn)\"\r\n ></bnrc-dynamic-form-toolbaritem>\r\n </ng-template>\r\n } } }\r\n</fd-toolbar>\r\n", styles: [":host{display:flex;width:100%;flex-direction:column}:host fd-toolbar ::ng-deep .fd-toolbar__spacer{max-width:0}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i2.DynamicFormToolbaritemComponent, selector: "bnrc-dynamic-form-toolbaritem", inputs: ["mo", "index", "deviceName", "deviceSize", "context", "btn", "isEnable", "showText", "allColumns", "conditionalFormats"], outputs: ["btnClick"] }, { kind: "directive", type: i2.ResizeHandlerDirective, selector: "[resizeHandler]", inputs: ["fnResize"] }, { kind: "component", type: i1$4.ButtonComponent, selector: "button[fd-button], a[fd-button], span[fd-button]", inputs: ["id"], exportAs: ["fd-button"] }, { kind: "component", type: i5$2.MenuComponent, selector: "fd-menu", inputs: ["openOnHoverTime", "ariaLabel", "ariaLabelledby", "id", "config", "mobile", "mobileConfig", "placement", "closeOnEscapeKey", "focusAutoCapture", "disabled", "disableScrollbar", "triggers", "fillControlMode", "closeOnOutsideClick", "noArrow", "focusTrapped", "additionalBodyClass", "closeOnNavigation", "restoreFocusOnClose", "appendTo", "fixedPosition", "scrollStrategy", "isOpen"], outputs: ["isOpenChange", "activePath", "beforeOpen"] }, { kind: "component", type: i5$2.MenuItemComponent, selector: "li[fd-menu-item]", inputs: ["disabled", "itemId", "submenu", "parentSubmenu", "hasSeparator"], outputs: ["onSelect"], exportAs: ["fd-menu-item"] }, { kind: "component", type: i5$2.MenuInteractiveComponent, selector: "[fd-menu-interactive]" }, { kind: "directive", type: i5$2.MenuTitleDirective, selector: "[fd-menu-title]", inputs: ["truncate"] }, { kind: "component", type: i5$2.MenuAddonDirective, selector: "fd-menu-addon", inputs: ["position", "submenuIndicator", "ariaHidden"] }, { kind: "directive", type: i5$2.MenuTriggerDirective, selector: "[fdMenuTrigger]", inputs: ["fdMenuTrigger"] }, { kind: "component", type: i8.SplitButtonComponent, selector: "fd-split-button", inputs: ["glyph", "glyphFont", "disabled", "fdType", "expandButtonTitle", "selected", "fixedWidth", "mainAction", "arialLabel"], outputs: ["primaryButtonClicked"] }, { 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: "directive", type: i7$1.ToolbarItemDirective, selector: "[fd-toolbar-item], [fdOverflowGroup], [fdOverflowPriority]", inputs: ["fdOverflowPriority", "fdOverflowGroup"] }, { kind: "component", type: i7$1.ToolbarSeparatorComponent, selector: "fd-toolbar-separator" }, { kind: "directive", type: i2$7.ɵɵDir, selector: "[dir]", inputs: ["dir"], outputs: ["dirChange"], exportAs: ["dir"] }, { kind: "pipe", type: i2.BbbTranslatePipe, name: "bbbTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
10530
10623
|
}
|
|
10531
10624
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: FormToolbarComponent, decorators: [{
|
|
10532
10625
|
type: Component,
|
|
@@ -10702,11 +10795,11 @@ class FundamentalDynamicFormComponent extends BaseComponent {
|
|
|
10702
10795
|
}
|
|
10703
10796
|
}
|
|
10704
10797
|
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 }); }
|
|
10798
|
+
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.floating-footer{position:relative}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
10799
|
}
|
|
10707
10800
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: FundamentalDynamicFormComponent, decorators: [{
|
|
10708
10801
|
type: Component,
|
|
10709
|
-
args: [{ selector: 'bsu-fundamental-dynamic-form', changeDetection: ChangeDetectionStrategy.OnPush, standalone: false, 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"] }]
|
|
10802
|
+
args: [{ selector: 'bsu-fundamental-dynamic-form', changeDetection: ChangeDetectionStrategy.OnPush, standalone: false, 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.floating-footer{position:relative}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"] }]
|
|
10710
10803
|
}], propDecorators: { _dynamicPageComponent: [{
|
|
10711
10804
|
type: ViewChild,
|
|
10712
10805
|
args: [DynamicPageComponent, { static: true }]
|
|
@@ -10824,6 +10917,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
|
|
|
10824
10917
|
type: Input
|
|
10825
10918
|
}], workflowButtons: [{
|
|
10826
10919
|
type: Input
|
|
10920
|
+
}], lastUpdateTime: [{
|
|
10921
|
+
type: Input
|
|
10827
10922
|
}] } });
|
|
10828
10923
|
|
|
10829
10924
|
class UiLinearListContainerWithButtonComponent extends DeviceInfoFieldBaseComponent {
|
|
@@ -11331,7 +11426,7 @@ class HyperlinkComponent extends FieldBaseComponent {
|
|
|
11331
11426
|
this.context.fireEvent('click', this.context);
|
|
11332
11427
|
}
|
|
11333
11428
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: HyperlinkComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
11334
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.8", type: HyperlinkComponent, isStandalone: false, selector: "bsu-hyperlink", usesInheritance: true, ngImport: i0, template: "@if (parameters?.RouterLink) {\r\n<a\r\n [routerLink]=\"['./']\"\r\n fd-link\r\n [emphasized]=\"parameters?.Emphasized\"\r\n [ngStyle]=\"parameters?.Style | removeNewline | convertToStyle\"\r\n>\r\n {{ layoutInfo.UseLayoutItemTextForControl ? layoutInfo.Caption : context?.Setting?.ControlFieldCaptionTranslated }}\r\n</a>\r\n} @else {\r\n<a\r\n fd-link\r\n [emphasized]=\"parameters?.Emphasized\"\r\n (click)=\"onClick($event, parameters.Link)\"\r\n [ngStyle]=\"parameters?.Style | removeNewline | convertToStyle\"\r\n [href]=\"parameters.Link\"\r\n>\r\n {{ layoutInfo.UseLayoutItemTextForControl ? layoutInfo.Caption : context?.Setting?.ControlFieldCaptionTranslated }}\r\n</a>\r\n}\r\n", styles: [":host{cursor:pointer;display:flex;flex-direction:column}\n"], dependencies: [{ kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: i2$
|
|
11429
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.8", type: HyperlinkComponent, isStandalone: false, selector: "bsu-hyperlink", usesInheritance: true, ngImport: i0, template: "@if (parameters?.RouterLink) {\r\n<a\r\n [routerLink]=\"['./']\"\r\n fd-link\r\n [emphasized]=\"parameters?.Emphasized\"\r\n [ngStyle]=\"parameters?.Style | removeNewline | convertToStyle\"\r\n>\r\n {{ layoutInfo.UseLayoutItemTextForControl ? layoutInfo.Caption : context?.Setting?.ControlFieldCaptionTranslated }}\r\n</a>\r\n} @else {\r\n<a\r\n fd-link\r\n [emphasized]=\"parameters?.Emphasized\"\r\n (click)=\"onClick($event, parameters.Link)\"\r\n [ngStyle]=\"parameters?.Style | removeNewline | convertToStyle\"\r\n [href]=\"parameters.Link\"\r\n>\r\n {{ layoutInfo.UseLayoutItemTextForControl ? layoutInfo.Caption : context?.Setting?.ControlFieldCaptionTranslated }}\r\n</a>\r\n}\r\n", styles: [":host{cursor:pointer;display:flex;flex-direction:column}\n"], dependencies: [{ kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: i2$6.LinkComponent, selector: "[fdLink], [fd-link]", inputs: ["emphasized", "disabled", "inverted", "subtle", "undecorated", "touchTarget"] }, { kind: "directive", type: i3$6.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "browserUrl", "routerLink"] }, { kind: "pipe", type: i2.RemoveNewlinePipe, name: "removeNewline" }, { kind: "pipe", type: i2.ConvertToStylePipe, name: "convertToStyle" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
11335
11430
|
}
|
|
11336
11431
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: HyperlinkComponent, decorators: [{
|
|
11337
11432
|
type: Component,
|
|
@@ -11507,11 +11602,11 @@ class UiTextFieldAutoCompleteComponent extends FieldBaseComponent {
|
|
|
11507
11602
|
});
|
|
11508
11603
|
}
|
|
11509
11604
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: UiTextFieldAutoCompleteComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
11510
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "22.0.8", type: UiTextFieldAutoCompleteComponent, isStandalone: false, selector: "bsu-ui-text-field-auto-complete", usesInheritance: true, ngImport: i0, template: "<bsu-fundamental-combo\n [allowFreeText]=\"true\"\n [placeholder]=\"Setting?.NullText || ''\"\n [readonly]=\"(readonly$ | async) === true\"\n [showDropdownButton]=\"false\"\n [disabled]=\"(disable$ | async) === true\"\n [isLtr]=\"Setting?.IsLtr === true\"\n [dataSource]=\"comboDataSource\"\n [value]=\"value || ''\"\n (selectionChange)=\"onComboSelection($event)\"\n (cleared)=\"onComboCleared()\"\n>\n</bsu-fundamental-combo>\n", styles: [":host{display:block;height:100%}\n"], dependencies: [{ 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: "pipe", type: i1.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
11605
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "22.0.8", type: UiTextFieldAutoCompleteComponent, isStandalone: false, selector: "bsu-ui-text-field-auto-complete", usesInheritance: true, ngImport: i0, template: "<bsu-fundamental-combo\n [id]=\"id\"\n [allowFreeText]=\"true\"\n [placeholder]=\"Setting?.NullText || ''\"\n [readonly]=\"(readonly$ | async) === true\"\n [showDropdownButton]=\"false\"\n [disabled]=\"(disable$ | async) === true\"\n [isLtr]=\"Setting?.IsLtr === true\"\n [dataSource]=\"comboDataSource\"\n [value]=\"value || ''\"\n (selectionChange)=\"onComboSelection($event)\"\n (cleared)=\"onComboCleared()\"\n>\n</bsu-fundamental-combo>\n", styles: [":host{display:block;height:100%}\n"], dependencies: [{ kind: "component", type: FundamentalComboComponent, selector: "bsu-fundamental-combo", inputs: ["dataSource", "value", "displayKey", "lookupKey", "byline", "placeholder", "disabled", "readonly", "mobile", "mobileConfig", "isLtr", "id", "showDropdownButton", "itemTemplate", "allowFreeText", "width", "comboClass", "fillControlMode", "tabOutStrategy", "closeOnOutsideClick"], outputs: ["selectionChange", "cleared", "openChange", "dataRequested", "dataReceived"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
11511
11606
|
}
|
|
11512
11607
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: UiTextFieldAutoCompleteComponent, decorators: [{
|
|
11513
11608
|
type: Component,
|
|
11514
|
-
args: [{ selector: 'bsu-ui-text-field-auto-complete', changeDetection: ChangeDetectionStrategy.OnPush, standalone: false, template: "<bsu-fundamental-combo\n [allowFreeText]=\"true\"\n [placeholder]=\"Setting?.NullText || ''\"\n [readonly]=\"(readonly$ | async) === true\"\n [showDropdownButton]=\"false\"\n [disabled]=\"(disable$ | async) === true\"\n [isLtr]=\"Setting?.IsLtr === true\"\n [dataSource]=\"comboDataSource\"\n [value]=\"value || ''\"\n (selectionChange)=\"onComboSelection($event)\"\n (cleared)=\"onComboCleared()\"\n>\n</bsu-fundamental-combo>\n", styles: [":host{display:block;height:100%}\n"] }]
|
|
11609
|
+
args: [{ selector: 'bsu-ui-text-field-auto-complete', changeDetection: ChangeDetectionStrategy.OnPush, standalone: false, template: "<bsu-fundamental-combo\n [id]=\"id\"\n [allowFreeText]=\"true\"\n [placeholder]=\"Setting?.NullText || ''\"\n [readonly]=\"(readonly$ | async) === true\"\n [showDropdownButton]=\"false\"\n [disabled]=\"(disable$ | async) === true\"\n [isLtr]=\"Setting?.IsLtr === true\"\n [dataSource]=\"comboDataSource\"\n [value]=\"value || ''\"\n (selectionChange)=\"onComboSelection($event)\"\n (cleared)=\"onComboCleared()\"\n>\n</bsu-fundamental-combo>\n", styles: [":host{display:block;height:100%}\n"] }]
|
|
11515
11610
|
}] });
|
|
11516
11611
|
|
|
11517
11612
|
class UlLoadingMaskUiComponent extends BaseComponent {
|
|
@@ -12271,11 +12366,11 @@ class UiPicturesInfoComponent extends DeviceInfoFieldBaseComponent {
|
|
|
12271
12366
|
this.value = value;
|
|
12272
12367
|
}
|
|
12273
12368
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: UiPicturesInfoComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
12274
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.8", type: UiPicturesInfoComponent, isStandalone: false, selector: "bsu-ui-pictures-info", inputs: { value: "value" }, providers: [UploadService], viewQueries: [{ propertyName: "_fileUploader", first: true, predicate: FileUploaderComponent, descendants: true }, { propertyName: "_fileGalleryViewer", first: true, predicate: FileGalleryViewerComponent, descendants: true }], usesInheritance: true, ngImport: i0, template: "@if (uploadingState$ | async; as uploadingState) { @if (uploadingState.uploading) {\r\n<div\r\n class=\"picture-upload-overlay\"\r\n role=\"status\"\r\n aria-live=\"polite\"\r\n aria-busy=\"true\"\r\n [attr.aria-label]=\"'Uploading' | bbbTranslate\"\r\n>\r\n <div class=\"picture-upload-status\">\r\n <fd-busy-indicator [loading]=\"true\" [size]=\"'m'\"></fd-busy-indicator>\r\n <span>{{ 'Uploading' | bbbTranslate }}</span>\r\n <fd-progress-indicator\r\n state=\"informative\"\r\n [valueNow]=\"uploadingState.progress ?? 0\"\r\n [valueMax]=\"100\"\r\n [valueText]=\"(uploadingState.progress ?? 0) + '%'\"\r\n ></fd-progress-indicator>\r\n </div>\r\n</div>\r\n} }\r\n\r\n<fd-file-uploader\r\n #uploader\r\n [style.display]=\"'none'\"\r\n [id]=\"id\"\r\n [name]=\"'pictures_' + id\"\r\n [placeholder]=\"'AttachPicture' | bbbTranslate\"\r\n [buttonLabel]=\"'AttachPicture' | bbbTranslate\"\r\n [buttonAriaLabel]=\"'AttachPicture' | bbbTranslate\"\r\n accept=\".png,.jpg,.bpm,.jpeg,.gif,.png,.tif,.pdf\"\r\n [multiple]=\"maxFileCount !== 1\"\r\n (selectedFilesChanged)=\"onFileSelection($event)\"\r\n (selectedInvalidFiles)=\"onInvalidFiles($event)\"\r\n></fd-file-uploader>\r\n\r\n<ng-container\r\n *ngTemplateOutlet=\"\r\n isInlineGallery ? inlineGallery : layoutGridTpl;\r\n context: {\r\n disableOrReadonly: (disableOrReadonly$ | async),\r\n mediaData: (mediaData$ | async),\r\n deviceSize: (deviceSize$ | async),\r\n uploader: uploader\r\n }\r\n \"\r\n></ng-container>\r\n<ng-template #inlineGallery let-mediaData=\"mediaData\" let-deviceSize=\"deviceSize\">\r\n <fd-toolbar [shouldOverflow]=\"true\">\r\n @if(mediaData.length && selectedMedia){\r\n <button\r\n fd-toolbar-item\r\n fd-button\r\n fdType=\"transparent\"\r\n [label]=\"'Download' | bbbTranslate\"\r\n glyph=\"download\"\r\n [name]=\"selectedMedia.label\"\r\n [src]=\"selectedMedia.mediaUrl\"\r\n saveImage\r\n ></button>\r\n }\r\n <button\r\n fd-button\r\n fdType=\"transparent\"\r\n [label]=\"'Scan' | bbbTranslate\"\r\n fd-toolbar-item\r\n [glyph]=\"'x-ray'\"\r\n [fdMenuTrigger]=\"menu\"\r\n ></button>\r\n @if(!Setting.GroupList?.length){\r\n <button\r\n fd-button\r\n fd-toolbar-item\r\n glyph=\"add-photo\"\r\n fdType=\"transparent\"\r\n [label]=\"'AttachFile' | bbbTranslate\"\r\n (click)=\"onPrimaryUpload(uploader)\"\r\n ></button>\r\n }@else{\r\n <fd-split-button\r\n fd-toolbar-item\r\n [mainAction]=\"{ mainActionTitle: ('AttachFile' | bbbTranslate), keepMainAction: true }\"\r\n (primaryButtonClicked)=\"onPrimaryUpload(uploader)\"\r\n >\r\n <fd-menu #menu>\r\n @for (groupItem of Setting.GroupList; track groupItem.Id; let index = $index) {\r\n <li fd-menu-item (click)=\"onGroupAttach(groupItem, uploader)\">\r\n <div fd-menu-interactive>\r\n <span fd-menu-title>{{ groupItem.Name | bbbTranslate }}</span>\r\n </div>\r\n </li>\r\n }\r\n </fd-menu>\r\n </fd-split-button>\r\n }\r\n <button\r\n fd-toolbar-item\r\n fd-button\r\n fdType=\"transparent\"\r\n [label]=\"'PreviewZoomIn' | bbbTranslate\"\r\n glyph=\"zoom-in\"\r\n (click)=\"onZoomIn()\"\r\n ></button>\r\n <button\r\n fd-toolbar-item\r\n fd-button\r\n fdType=\"transparent\"\r\n [label]=\"'PreviewZoomOut' | bbbTranslate\"\r\n glyph=\"zoom-out\"\r\n (click)=\"onZoomOut()\"\r\n ></button>\r\n\r\n <button\r\n fd-toolbar-item\r\n fd-button\r\n fdType=\"transparent\"\r\n [label]=\"'Rotate' | bbbTranslate\"\r\n glyph=\"rotate\"\r\n (click)=\"onRotate2()\"\r\n ></button>\r\n <button\r\n fd-toolbar-item\r\n fd-button\r\n fdType=\"transparent\"\r\n [label]=\"'Delete' | bbbTranslate\"\r\n glyph=\"delete\"\r\n (click)=\"onDelete(selectedId)\"\r\n ></button>\r\n <button\r\n fd-toolbar-item\r\n fd-button\r\n fdType=\"transparent\"\r\n [label]=\"'MoveUp' | bbbTranslate\"\r\n glyph=\"arrow-top\"\r\n (click)=\"onMoveUp(selectedId)\"\r\n ></button>\r\n <button\r\n fd-toolbar-item\r\n fd-button\r\n fdType=\"transparent\"\r\n [label]=\"'MoveDown' | bbbTranslate\"\r\n glyph=\"arrow-bottom\"\r\n (click)=\"onMoveDown(selectedId)\"\r\n ></button>\r\n <fd-toolbar-separator></fd-toolbar-separator>\r\n <button\r\n fd-toolbar-item\r\n fd-button\r\n glyph=\"full-screen\"\r\n fdType=\"transparent\"\r\n fullscreenFiles\r\n [label]=\"'FullScreen' | bbbTranslate\"\r\n [files]=\"mediaData\"\r\n [selectedId]=\"selectedId\"\r\n [isImageGallery]=\"true\"\r\n [deviceSize]=\"deviceSize\"\r\n ></button>\r\n <button\r\n glyph=\"print\"\r\n fdType=\"transparent\"\r\n fd-toolbar-item\r\n fd-button\r\n [files]=\"mediaData\"\r\n printFiles\r\n [label]=\"'Print' | bbbTranslate\"\r\n ></button>\r\n\r\n <button\r\n glyph=\"download\"\r\n fdType=\"transparent\"\r\n fd-toolbar-item\r\n fd-button\r\n (click)=\"onDownloadAsPdf()\"\r\n [label]=\"'Download' | bbbTranslate\"\r\n ></button>\r\n </fd-toolbar>\r\n\r\n <bsu-file-gallery-viewer\r\n [style.max-height]=\"'100svh'\"\r\n fillEmptySpace\r\n [decrement]=\"'4.5rem'\"\r\n [fillWidth]=\"true\"\r\n [fillWidth]=\"fillWidth\"\r\n [groupList]=\"Setting.GroupList\"\r\n [deviceSize]=\"deviceSize\"\r\n [title]=\"'AttachPicture' | bbbTranslate\"\r\n [files]=\"mediaData\"\r\n [isImageGallery]=\"true\"\r\n [isHorizontal]=\"isThumbnailHorizontal\"\r\n [selectedId]=\"selectedId\"\r\n [zoom]=\"selectedZoom\"\r\n (selectedIdChange)=\"selectedId = $event\"\r\n (changeOrder)=\"onChangeOrder($event)\"\r\n ></bsu-file-gallery-viewer>\r\n</ng-template>\r\n<ng-template\r\n #layoutGridTpl\r\n let-inDialog=\"inDialog\"\r\n let-gallery=\"gallery\"\r\n let-disableOrReadonly=\"disableOrReadonly\"\r\n let-mediaData=\"mediaData\"\r\n let-deviceSize=\"deviceSize\"\r\n let-uploader=\"uploader\"\r\n>\r\n <bsu-file-card-viewer\r\n [inDialog]=\"inDialog\"\r\n [mediaData]=\"mediaData\"\r\n [disableOrReadonly]=\"disableOrReadonly\"\r\n [deviceSize]=\"deviceSize\"\r\n [uploader]=\"uploader\"\r\n [groupList]=\"Setting.GroupList\"\r\n [scanMenu]=\"menu\"\r\n (rotateMedia)=\"onRotate($event)\"\r\n (deleteMedia)=\"onDelete($event)\"\r\n (openUploader)=\"onOpenUploader($event, uploader)\"\r\n ></bsu-file-card-viewer>\r\n</ng-template>\r\n\r\n<fd-menu #menu>\r\n <li fd-menu-item (click)=\"onScan()\">\r\n <a fd-menu-interactive>\r\n <span fd-menu-title>{{ 'Scan' | bbbTranslate }}</span>\r\n </a>\r\n </li>\r\n <li fd-menu-item (click)=\"onAdvanceScan()\">\r\n <a fd-menu-interactive>\r\n <span fd-menu-title>{{ 'AdvancedScan' | bbbTranslate }}</span>\r\n </a>\r\n </li>\r\n</fd-menu>\r\n", styles: [":host{position:relative}:host ::ng-deep .delete button{border-color:transparent!important;background-color:transparent!important}.picture-upload-overlay{position:absolute;z-index:1000;inset:0;display:flex;align-items:center;justify-content:center;background:#0003}.picture-upload-status{display:flex;width:min(20rem,100% - 2rem);flex-direction:column;gap:.75rem;align-items:center;padding:1rem;border-radius:var(--sapElement_BorderCornerRadius, .25rem);background:var(--sapGroup_ContentBackground, #fff);box-shadow:var(--sapContent_Shadow2, 0 .5rem 1rem rgba(0, 0, 0, .16));color:var(--sapTextColor, #1d2d3e)}.picture-upload-status fd-progress-indicator{width:100%}.big-imgs-box{position:relative}.big-imgs-box>fd-toolbar{position:absolute;z-index:5;opacity:.5}.big-imgs-box>fd-toolbar:hover{opacity:1}fd-toolbar{width:100%}fd-dialog-footer{justify-content:center}.hatchBackground{min-height:100px}.gallery{display:flex;width:100%;height:400px;column-gap:1px;background-color:var(--sapField_Background, #fff)}.gallery ::-webkit-scrollbar{width:7px;height:7px}.gallery ::-webkit-scrollbar-track{box-shadow:inset 0 0 5px gray;border-radius:4px}.gallery ::-webkit-scrollbar-thumb{background:#555454;border-radius:4px}.gallery ::-webkit-scrollbar-thumb:hover{background:#2c2b2b}.gallery .column{overflow-y:scroll;display:flex;flex-direction:column;row-gap:3%;align-items:center}.gallery .column .pics{width:100%;display:flex;justify-content:center}.gallery .column .pics img{border-radius:5px}.gallery .column.small-imgs-box{flex:10%}.gallery .column.big-imgs-box{flex:90%}.gallery .selected{background-color:#fff;border:3px solid #0294d8;padding:10px}.gallery .fill-all .pics{height:100%}.gallery .fill-all img{width:100%!important;height:100%!important;object-fit:fill!important}.gallery .fill-original img{width:unset;height:unset}.gallery .zoom1 img{zoom:1}.gallery .zoom1-5 img{zoom:1.5}.gallery .zoom2 img{zoom:2}fd-dialog .gallery{overflow:auto}fd-dialog .gallery .column{overflow:initial}fd-dialog .gallery .pics{position:relative}fd-dialog fd-dialog-body{display:flex}fd-dialog.horizontal fd-dialog-body{flex-direction:column}fd-dialog.horizontal .gallery{flex-direction:row}fd-dialog.horizontal .thumbnail{border-top:1px solid #ccc;overflow-x:auto}fd-dialog.vertical fd-dialog-body{flex-direction:row-reverse}fd-dialog.vertical .gallery{flex-direction:column;height:100%}fd-dialog.vertical .thumbnail{border-left:1px solid #ccc;height:100%;width:200px;overflow-y:auto}fd-dialog.vertical .thumbnail ::ng-deep .fd-row>div{width:100%;min-width:100%}fd-card.media fd-card-footer button{border:none}fd-card.inDialog fd-card-header{padding-top:5px;padding-bottom:5px}\n"], dependencies: [{ kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2.FillEmptySpaceDirective, selector: "[fillEmptySpace]", inputs: ["mode", "containerDom", "decrement", "disable", "height", "dontUseTopBound", "setMinHeight", "setMaxHeight"], outputs: ["heightChanged"], exportAs: ["fillEmptySpace"] }, { kind: "directive", type: i2.PrintFilesDirective, selector: "[printFiles]", inputs: ["files", "file", "isImageGallery", "component"] }, { kind: "directive", type: i2.SaveImageDirective, selector: "[saveImage]", inputs: ["name", "src"] }, { 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: i5$5.FileUploaderComponent, selector: "fd-file-uploader", inputs: ["disabled", "required", "multiple", "accept", "dragndrop", "maxFileSize", "minFileSize", "id", "ariaLabel", "ariaLabelledBy", "placeholder", "buttonLabel", "buttonAriaLabel", "state", "fileLimit", "inputHidden", "width"], outputs: ["selectedFilesChanged", "selectedInvalidFiles", "onDragEnter", "onDragLeave"] }, { kind: "component", type: i5$2.MenuComponent, selector: "fd-menu", inputs: ["openOnHoverTime", "ariaLabel", "ariaLabelledby", "id", "config", "mobile", "mobileConfig", "placement", "closeOnEscapeKey", "focusAutoCapture", "disabled", "disableScrollbar", "triggers", "fillControlMode", "closeOnOutsideClick", "noArrow", "focusTrapped", "additionalBodyClass", "closeOnNavigation", "restoreFocusOnClose", "appendTo", "fixedPosition", "scrollStrategy", "isOpen"], outputs: ["isOpenChange", "activePath", "beforeOpen"] }, { kind: "component", type: i5$2.MenuItemComponent, selector: "li[fd-menu-item]", inputs: ["disabled", "itemId", "submenu", "parentSubmenu", "hasSeparator"], outputs: ["onSelect"], exportAs: ["fd-menu-item"] }, { kind: "component", type: i5$2.MenuInteractiveComponent, selector: "[fd-menu-interactive]" }, { kind: "directive", type: i5$2.MenuTitleDirective, selector: "[fd-menu-title]", inputs: ["truncate"] }, { kind: "directive", type: i5$2.MenuTriggerDirective, selector: "[fdMenuTrigger]", inputs: ["fdMenuTrigger"] }, { kind: "component", type: i8.SplitButtonComponent, selector: "fd-split-button", inputs: ["glyph", "glyphFont", "disabled", "fdType", "expandButtonTitle", "selected", "fixedWidth", "mainAction", "arialLabel"], outputs: ["primaryButtonClicked"] }, { 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: "directive", type: i7$1.ToolbarItemDirective, selector: "[fd-toolbar-item], [fdOverflowGroup], [fdOverflowPriority]", inputs: ["fdOverflowPriority", "fdOverflowGroup"] }, { 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: FileGalleryViewerComponent, selector: "bsu-file-gallery-viewer", inputs: ["fillWidth", "zoom", "deviceSize", "title", "files", "contentDensity", "isImageGallery", "isHorizontal", "selectedFile", "groupList", "scrollToId", "selectedId"], outputs: ["selectedIdChange", "changeOrder"] }, { kind: "component", type: FileCardViewerComponent, selector: "bsu-file-card-viewer", inputs: ["mediaData", "inDialog", "disableOrReadonly", "deviceSize", "uploader", "scanMenu", "groupList"], outputs: ["openUploader", "rotateMedia", "deleteMedia"] }, { kind: "directive", type: FullscreenFilesDirective, selector: "[fullscreenFiles]", inputs: ["files", "selectedId", "title", "deviceSize", "isImageGallery", "component"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "pipe", type: i2.BbbTranslatePipe, name: "bbbTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
12369
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.8", type: UiPicturesInfoComponent, isStandalone: false, selector: "bsu-ui-pictures-info", inputs: { value: "value" }, providers: [UploadService], viewQueries: [{ propertyName: "_fileUploader", first: true, predicate: FileUploaderComponent, descendants: true }, { propertyName: "_fileGalleryViewer", first: true, predicate: FileGalleryViewerComponent, descendants: true }], usesInheritance: true, ngImport: i0, template: "@if (uploadingState$ | async; as uploadingState) { @if (uploadingState.uploading) {\r\n<div\r\n class=\"picture-upload-overlay\"\r\n role=\"status\"\r\n aria-live=\"polite\"\r\n aria-busy=\"true\"\r\n [attr.aria-label]=\"'Uploading' | bbbTranslate\"\r\n>\r\n <div class=\"picture-upload-status\">\r\n <fd-busy-indicator [loading]=\"true\" [size]=\"'m'\"></fd-busy-indicator>\r\n <span>{{ 'Uploading' | bbbTranslate }}</span>\r\n <fd-progress-indicator\r\n state=\"informative\"\r\n [valueNow]=\"uploadingState.progress ?? 0\"\r\n [valueMax]=\"100\"\r\n [valueText]=\"(uploadingState.progress ?? 0) + '%'\"\r\n ></fd-progress-indicator>\r\n </div>\r\n</div>\r\n} }\r\n\r\n<fd-file-uploader\r\n #uploader\r\n [style.display]=\"'none'\"\r\n [id]=\"id\"\r\n [name]=\"'pictures_' + id\"\r\n [placeholder]=\"'AttachPicture' | bbbTranslate\"\r\n [buttonLabel]=\"'AttachPicture' | bbbTranslate\"\r\n [buttonAriaLabel]=\"'AttachPicture' | bbbTranslate\"\r\n accept=\".png,.jpg,.bpm,.jpeg,.gif,.png,.tif,.pdf\"\r\n [multiple]=\"maxFileCount !== 1\"\r\n (selectedFilesChanged)=\"onFileSelection($event)\"\r\n (selectedInvalidFiles)=\"onInvalidFiles($event)\"\r\n></fd-file-uploader>\r\n\r\n<ng-container\r\n *ngTemplateOutlet=\"\r\n isInlineGallery ? inlineGallery : layoutGridTpl;\r\n context: {\r\n disableOrReadonly: (disableOrReadonly$ | async),\r\n mediaData: (mediaData$ | async),\r\n deviceSize: (deviceSize$ | async),\r\n uploader: uploader\r\n }\r\n \"\r\n></ng-container>\r\n<ng-template\r\n #inlineGallery\r\n let-mediaData=\"mediaData\"\r\n let-deviceSize=\"deviceSize\"\r\n let-disableOrReadonly=\"disableOrReadonly\"\r\n>\r\n <fd-toolbar [shouldOverflow]=\"true\">\r\n @if(mediaData.length && selectedMedia){\r\n <button\r\n fd-toolbar-item\r\n fd-button\r\n fdType=\"transparent\"\r\n [label]=\"'Download' | bbbTranslate\"\r\n glyph=\"download\"\r\n [name]=\"selectedMedia.label\"\r\n [src]=\"selectedMedia.mediaUrl\"\r\n saveImage\r\n ></button>\r\n } @if(!disableOrReadonly){\r\n <button\r\n fd-button\r\n fdType=\"transparent\"\r\n [label]=\"'Scan' | bbbTranslate\"\r\n fd-toolbar-item\r\n [glyph]=\"'x-ray'\"\r\n [fdMenuTrigger]=\"menu\"\r\n ></button>\r\n } @if(!disableOrReadonly){ @if(!Setting.GroupList?.length ){\r\n <button\r\n fd-button\r\n fd-toolbar-item\r\n glyph=\"add-photo\"\r\n fdType=\"transparent\"\r\n [label]=\"'AttachFile' | bbbTranslate\"\r\n (click)=\"onPrimaryUpload(uploader)\"\r\n ></button>\r\n }@else{\r\n <fd-split-button\r\n fd-toolbar-item\r\n [mainAction]=\"{ mainActionTitle: ('AttachFile' | bbbTranslate), keepMainAction: true }\"\r\n (primaryButtonClicked)=\"onPrimaryUpload(uploader)\"\r\n >\r\n <fd-menu #menu>\r\n @for (groupItem of Setting.GroupList; track groupItem.Id; let index = $index) {\r\n <li fd-menu-item (click)=\"onGroupAttach(groupItem, uploader)\">\r\n <div fd-menu-interactive>\r\n <span fd-menu-title>{{ groupItem.Name | bbbTranslate }}</span>\r\n </div>\r\n </li>\r\n }\r\n </fd-menu>\r\n </fd-split-button>\r\n } }\r\n <button\r\n fd-toolbar-item\r\n fd-button\r\n fdType=\"transparent\"\r\n [label]=\"'PreviewZoomIn' | bbbTranslate\"\r\n glyph=\"zoom-in\"\r\n (click)=\"onZoomIn()\"\r\n ></button>\r\n <button\r\n fd-toolbar-item\r\n fd-button\r\n fdType=\"transparent\"\r\n [label]=\"'PreviewZoomOut' | bbbTranslate\"\r\n glyph=\"zoom-out\"\r\n (click)=\"onZoomOut()\"\r\n ></button>\r\n @if(!disableOrReadonly){\r\n <button\r\n fd-toolbar-item\r\n fd-button\r\n fdType=\"transparent\"\r\n [label]=\"'Rotate' | bbbTranslate\"\r\n glyph=\"rotate\"\r\n (click)=\"onRotate2()\"\r\n ></button>\r\n\r\n <button\r\n fd-toolbar-item\r\n fd-button\r\n fdType=\"transparent\"\r\n [label]=\"'Delete' | bbbTranslate\"\r\n glyph=\"delete\"\r\n (click)=\"onDelete(selectedId)\"\r\n ></button>\r\n\r\n <button\r\n fd-toolbar-item\r\n fd-button\r\n fdType=\"transparent\"\r\n [label]=\"'MoveUp' | bbbTranslate\"\r\n glyph=\"arrow-top\"\r\n (click)=\"onMoveUp(selectedId)\"\r\n ></button>\r\n <button\r\n fd-toolbar-item\r\n fd-button\r\n fdType=\"transparent\"\r\n [label]=\"'MoveDown' | bbbTranslate\"\r\n glyph=\"arrow-bottom\"\r\n (click)=\"onMoveDown(selectedId)\"\r\n ></button>\r\n }\r\n <fd-toolbar-separator></fd-toolbar-separator>\r\n <button\r\n fd-toolbar-item\r\n fd-button\r\n glyph=\"full-screen\"\r\n fdType=\"transparent\"\r\n fullscreenFiles\r\n [label]=\"'FullScreen' | bbbTranslate\"\r\n [files]=\"mediaData\"\r\n [selectedId]=\"selectedId\"\r\n [isImageGallery]=\"true\"\r\n [deviceSize]=\"deviceSize\"\r\n ></button>\r\n <button\r\n glyph=\"print\"\r\n fdType=\"transparent\"\r\n fd-toolbar-item\r\n fd-button\r\n [files]=\"mediaData\"\r\n printFiles\r\n [label]=\"'Print' | bbbTranslate\"\r\n ></button>\r\n\r\n <button\r\n glyph=\"pdf-attachment\"\r\n fdType=\"transparent\"\r\n fd-toolbar-item\r\n fd-button\r\n (click)=\"onDownloadAsPdf()\"\r\n [label]=\"'DownloadFile' | bbbTranslate\"\r\n ></button>\r\n </fd-toolbar>\r\n\r\n <bsu-file-gallery-viewer\r\n [style.max-height]=\"'100svh'\"\r\n fillEmptySpace\r\n [decrement]=\"'4.5rem'\"\r\n [fillWidth]=\"true\"\r\n [fillWidth]=\"fillWidth\"\r\n [groupList]=\"Setting.GroupList\"\r\n [deviceSize]=\"deviceSize\"\r\n [title]=\"'AttachPicture' | bbbTranslate\"\r\n [files]=\"mediaData\"\r\n [isImageGallery]=\"true\"\r\n [isHorizontal]=\"isThumbnailHorizontal\"\r\n [selectedId]=\"selectedId\"\r\n [zoom]=\"selectedZoom\"\r\n (selectedIdChange)=\"selectedId = $event\"\r\n (changeOrder)=\"onChangeOrder($event)\"\r\n ></bsu-file-gallery-viewer>\r\n</ng-template>\r\n<ng-template\r\n #layoutGridTpl\r\n let-inDialog=\"inDialog\"\r\n let-gallery=\"gallery\"\r\n let-disableOrReadonly=\"disableOrReadonly\"\r\n let-mediaData=\"mediaData\"\r\n let-deviceSize=\"deviceSize\"\r\n let-uploader=\"uploader\"\r\n>\r\n <bsu-file-card-viewer\r\n [inDialog]=\"inDialog\"\r\n [mediaData]=\"mediaData\"\r\n [disableOrReadonly]=\"disableOrReadonly\"\r\n [deviceSize]=\"deviceSize\"\r\n [uploader]=\"uploader\"\r\n [groupList]=\"Setting.GroupList\"\r\n [scanMenu]=\"menu\"\r\n (rotateMedia)=\"onRotate($event)\"\r\n (deleteMedia)=\"onDelete($event)\"\r\n (openUploader)=\"onOpenUploader($event, uploader)\"\r\n ></bsu-file-card-viewer>\r\n</ng-template>\r\n\r\n<fd-menu #menu>\r\n <li fd-menu-item (click)=\"onScan()\">\r\n <a fd-menu-interactive>\r\n <span fd-menu-title>{{ 'Scan' | bbbTranslate }}</span>\r\n </a>\r\n </li>\r\n <li fd-menu-item (click)=\"onAdvanceScan()\">\r\n <a fd-menu-interactive>\r\n <span fd-menu-title>{{ 'AdvancedScan' | bbbTranslate }}</span>\r\n </a>\r\n </li>\r\n</fd-menu>\r\n", styles: [":host{position:relative}:host ::ng-deep .delete button{border-color:transparent!important;background-color:transparent!important}.picture-upload-overlay{position:absolute;z-index:1000;inset:0;display:flex;align-items:center;justify-content:center;background:#0003}.picture-upload-status{display:flex;width:min(20rem,100% - 2rem);flex-direction:column;gap:.75rem;align-items:center;padding:1rem;border-radius:var(--sapElement_BorderCornerRadius, .25rem);background:var(--sapGroup_ContentBackground, #fff);box-shadow:var(--sapContent_Shadow2, 0 .5rem 1rem rgba(0, 0, 0, .16));color:var(--sapTextColor, #1d2d3e)}.picture-upload-status fd-progress-indicator{width:100%}.big-imgs-box{position:relative}.big-imgs-box>fd-toolbar{position:absolute;z-index:5;opacity:.5}.big-imgs-box>fd-toolbar:hover{opacity:1}fd-toolbar{width:100%}fd-dialog-footer{justify-content:center}.hatchBackground{min-height:100px}.gallery{display:flex;width:100%;height:400px;column-gap:1px;background-color:var(--sapField_Background, #fff)}.gallery ::-webkit-scrollbar{width:7px;height:7px}.gallery ::-webkit-scrollbar-track{box-shadow:inset 0 0 5px gray;border-radius:4px}.gallery ::-webkit-scrollbar-thumb{background:#555454;border-radius:4px}.gallery ::-webkit-scrollbar-thumb:hover{background:#2c2b2b}.gallery .column{overflow-y:scroll;display:flex;flex-direction:column;row-gap:3%;align-items:center}.gallery .column .pics{width:100%;display:flex;justify-content:center}.gallery .column .pics img{border-radius:5px}.gallery .column.small-imgs-box{flex:10%}.gallery .column.big-imgs-box{flex:90%}.gallery .selected{background-color:#fff;border:3px solid #0294d8;padding:10px}.gallery .fill-all .pics{height:100%}.gallery .fill-all img{width:100%!important;height:100%!important;object-fit:fill!important}.gallery .fill-original img{width:unset;height:unset}.gallery .zoom1 img{zoom:1}.gallery .zoom1-5 img{zoom:1.5}.gallery .zoom2 img{zoom:2}fd-dialog .gallery{overflow:auto}fd-dialog .gallery .column{overflow:initial}fd-dialog .gallery .pics{position:relative}fd-dialog fd-dialog-body{display:flex}fd-dialog.horizontal fd-dialog-body{flex-direction:column}fd-dialog.horizontal .gallery{flex-direction:row}fd-dialog.horizontal .thumbnail{border-top:1px solid #ccc;overflow-x:auto}fd-dialog.vertical fd-dialog-body{flex-direction:row-reverse}fd-dialog.vertical .gallery{flex-direction:column;height:100%}fd-dialog.vertical .thumbnail{border-left:1px solid #ccc;height:100%;width:200px;overflow-y:auto}fd-dialog.vertical .thumbnail ::ng-deep .fd-row>div{width:100%;min-width:100%}fd-card.media fd-card-footer button{border:none}fd-card.inDialog fd-card-header{padding-top:5px;padding-bottom:5px}\n"], dependencies: [{ kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2.FillEmptySpaceDirective, selector: "[fillEmptySpace]", inputs: ["mode", "containerDom", "decrement", "disable", "height", "dontUseTopBound", "setMinHeight", "setMaxHeight"], outputs: ["heightChanged"], exportAs: ["fillEmptySpace"] }, { kind: "directive", type: i2.PrintFilesDirective, selector: "[printFiles]", inputs: ["files", "file", "isImageGallery", "component"] }, { kind: "directive", type: i2.SaveImageDirective, selector: "[saveImage]", inputs: ["name", "src"] }, { 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: i5$5.FileUploaderComponent, selector: "fd-file-uploader", inputs: ["disabled", "required", "multiple", "accept", "dragndrop", "maxFileSize", "minFileSize", "id", "ariaLabel", "ariaLabelledBy", "placeholder", "buttonLabel", "buttonAriaLabel", "state", "fileLimit", "inputHidden", "width"], outputs: ["selectedFilesChanged", "selectedInvalidFiles", "onDragEnter", "onDragLeave"] }, { kind: "component", type: i5$2.MenuComponent, selector: "fd-menu", inputs: ["openOnHoverTime", "ariaLabel", "ariaLabelledby", "id", "config", "mobile", "mobileConfig", "placement", "closeOnEscapeKey", "focusAutoCapture", "disabled", "disableScrollbar", "triggers", "fillControlMode", "closeOnOutsideClick", "noArrow", "focusTrapped", "additionalBodyClass", "closeOnNavigation", "restoreFocusOnClose", "appendTo", "fixedPosition", "scrollStrategy", "isOpen"], outputs: ["isOpenChange", "activePath", "beforeOpen"] }, { kind: "component", type: i5$2.MenuItemComponent, selector: "li[fd-menu-item]", inputs: ["disabled", "itemId", "submenu", "parentSubmenu", "hasSeparator"], outputs: ["onSelect"], exportAs: ["fd-menu-item"] }, { kind: "component", type: i5$2.MenuInteractiveComponent, selector: "[fd-menu-interactive]" }, { kind: "directive", type: i5$2.MenuTitleDirective, selector: "[fd-menu-title]", inputs: ["truncate"] }, { kind: "directive", type: i5$2.MenuTriggerDirective, selector: "[fdMenuTrigger]", inputs: ["fdMenuTrigger"] }, { kind: "component", type: i8.SplitButtonComponent, selector: "fd-split-button", inputs: ["glyph", "glyphFont", "disabled", "fdType", "expandButtonTitle", "selected", "fixedWidth", "mainAction", "arialLabel"], outputs: ["primaryButtonClicked"] }, { 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: "directive", type: i7$1.ToolbarItemDirective, selector: "[fd-toolbar-item], [fdOverflowGroup], [fdOverflowPriority]", inputs: ["fdOverflowPriority", "fdOverflowGroup"] }, { 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: FileGalleryViewerComponent, selector: "bsu-file-gallery-viewer", inputs: ["fillWidth", "zoom", "deviceSize", "title", "files", "contentDensity", "isImageGallery", "isHorizontal", "selectedFile", "groupList", "scrollToId", "selectedId"], outputs: ["selectedIdChange", "changeOrder"] }, { kind: "component", type: FileCardViewerComponent, selector: "bsu-file-card-viewer", inputs: ["mediaData", "inDialog", "disableOrReadonly", "deviceSize", "uploader", "scanMenu", "groupList"], outputs: ["openUploader", "rotateMedia", "deleteMedia"] }, { kind: "directive", type: FullscreenFilesDirective, selector: "[fullscreenFiles]", inputs: ["files", "selectedId", "title", "deviceSize", "isImageGallery", "component"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "pipe", type: i2.BbbTranslatePipe, name: "bbbTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
12275
12370
|
}
|
|
12276
12371
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: UiPicturesInfoComponent, decorators: [{
|
|
12277
12372
|
type: Component,
|
|
12278
|
-
args: [{ selector: 'bsu-ui-pictures-info', providers: [UploadService], changeDetection: ChangeDetectionStrategy.OnPush, standalone: false, template: "@if (uploadingState$ | async; as uploadingState) { @if (uploadingState.uploading) {\r\n<div\r\n class=\"picture-upload-overlay\"\r\n role=\"status\"\r\n aria-live=\"polite\"\r\n aria-busy=\"true\"\r\n [attr.aria-label]=\"'Uploading' | bbbTranslate\"\r\n>\r\n <div class=\"picture-upload-status\">\r\n <fd-busy-indicator [loading]=\"true\" [size]=\"'m'\"></fd-busy-indicator>\r\n <span>{{ 'Uploading' | bbbTranslate }}</span>\r\n <fd-progress-indicator\r\n state=\"informative\"\r\n [valueNow]=\"uploadingState.progress ?? 0\"\r\n [valueMax]=\"100\"\r\n [valueText]=\"(uploadingState.progress ?? 0) + '%'\"\r\n ></fd-progress-indicator>\r\n </div>\r\n</div>\r\n} }\r\n\r\n<fd-file-uploader\r\n #uploader\r\n [style.display]=\"'none'\"\r\n [id]=\"id\"\r\n [name]=\"'pictures_' + id\"\r\n [placeholder]=\"'AttachPicture' | bbbTranslate\"\r\n [buttonLabel]=\"'AttachPicture' | bbbTranslate\"\r\n [buttonAriaLabel]=\"'AttachPicture' | bbbTranslate\"\r\n accept=\".png,.jpg,.bpm,.jpeg,.gif,.png,.tif,.pdf\"\r\n [multiple]=\"maxFileCount !== 1\"\r\n (selectedFilesChanged)=\"onFileSelection($event)\"\r\n (selectedInvalidFiles)=\"onInvalidFiles($event)\"\r\n></fd-file-uploader>\r\n\r\n<ng-container\r\n *ngTemplateOutlet=\"\r\n isInlineGallery ? inlineGallery : layoutGridTpl;\r\n context: {\r\n disableOrReadonly: (disableOrReadonly$ | async),\r\n mediaData: (mediaData$ | async),\r\n deviceSize: (deviceSize$ | async),\r\n uploader: uploader\r\n }\r\n \"\r\n></ng-container>\r\n<ng-template #inlineGallery let-mediaData=\"mediaData\" let-deviceSize=\"deviceSize\">\r\n <fd-toolbar [shouldOverflow]=\"true\">\r\n @if(mediaData.length && selectedMedia){\r\n <button\r\n fd-toolbar-item\r\n fd-button\r\n fdType=\"transparent\"\r\n [label]=\"'Download' | bbbTranslate\"\r\n glyph=\"download\"\r\n [name]=\"selectedMedia.label\"\r\n [src]=\"selectedMedia.mediaUrl\"\r\n saveImage\r\n ></button>\r\n }\r\n <button\r\n fd-button\r\n fdType=\"transparent\"\r\n [label]=\"'Scan' | bbbTranslate\"\r\n fd-toolbar-item\r\n [glyph]=\"'x-ray'\"\r\n [fdMenuTrigger]=\"menu\"\r\n ></button>\r\n @if(!Setting.GroupList?.length){\r\n <button\r\n fd-button\r\n fd-toolbar-item\r\n glyph=\"add-photo\"\r\n fdType=\"transparent\"\r\n [label]=\"'AttachFile' | bbbTranslate\"\r\n (click)=\"onPrimaryUpload(uploader)\"\r\n ></button>\r\n }@else{\r\n <fd-split-button\r\n fd-toolbar-item\r\n [mainAction]=\"{ mainActionTitle: ('AttachFile' | bbbTranslate), keepMainAction: true }\"\r\n (primaryButtonClicked)=\"onPrimaryUpload(uploader)\"\r\n >\r\n <fd-menu #menu>\r\n @for (groupItem of Setting.GroupList; track groupItem.Id; let index = $index) {\r\n <li fd-menu-item (click)=\"onGroupAttach(groupItem, uploader)\">\r\n <div fd-menu-interactive>\r\n <span fd-menu-title>{{ groupItem.Name | bbbTranslate }}</span>\r\n </div>\r\n </li>\r\n }\r\n </fd-menu>\r\n </fd-split-button>\r\n }\r\n <button\r\n fd-toolbar-item\r\n fd-button\r\n fdType=\"transparent\"\r\n [label]=\"'PreviewZoomIn' | bbbTranslate\"\r\n glyph=\"zoom-in\"\r\n (click)=\"onZoomIn()\"\r\n ></button>\r\n <button\r\n fd-toolbar-item\r\n fd-button\r\n fdType=\"transparent\"\r\n [label]=\"'PreviewZoomOut' | bbbTranslate\"\r\n glyph=\"zoom-out\"\r\n (click)=\"onZoomOut()\"\r\n ></button>\r\n\r\n <button\r\n fd-toolbar-item\r\n fd-button\r\n fdType=\"transparent\"\r\n [label]=\"'Rotate' | bbbTranslate\"\r\n glyph=\"rotate\"\r\n (click)=\"onRotate2()\"\r\n ></button>\r\n <button\r\n fd-toolbar-item\r\n fd-button\r\n fdType=\"transparent\"\r\n [label]=\"'Delete' | bbbTranslate\"\r\n glyph=\"delete\"\r\n (click)=\"onDelete(selectedId)\"\r\n ></button>\r\n <button\r\n fd-toolbar-item\r\n fd-button\r\n fdType=\"transparent\"\r\n [label]=\"'MoveUp' | bbbTranslate\"\r\n glyph=\"arrow-top\"\r\n (click)=\"onMoveUp(selectedId)\"\r\n ></button>\r\n <button\r\n fd-toolbar-item\r\n fd-button\r\n fdType=\"transparent\"\r\n [label]=\"'MoveDown' | bbbTranslate\"\r\n glyph=\"arrow-bottom\"\r\n (click)=\"onMoveDown(selectedId)\"\r\n ></button>\r\n <fd-toolbar-separator></fd-toolbar-separator>\r\n <button\r\n fd-toolbar-item\r\n fd-button\r\n glyph=\"full-screen\"\r\n fdType=\"transparent\"\r\n fullscreenFiles\r\n [label]=\"'FullScreen' | bbbTranslate\"\r\n [files]=\"mediaData\"\r\n [selectedId]=\"selectedId\"\r\n [isImageGallery]=\"true\"\r\n [deviceSize]=\"deviceSize\"\r\n ></button>\r\n <button\r\n glyph=\"print\"\r\n fdType=\"transparent\"\r\n fd-toolbar-item\r\n fd-button\r\n [files]=\"mediaData\"\r\n printFiles\r\n [label]=\"'Print' | bbbTranslate\"\r\n ></button>\r\n\r\n <button\r\n glyph=\"download\"\r\n fdType=\"transparent\"\r\n fd-toolbar-item\r\n fd-button\r\n (click)=\"onDownloadAsPdf()\"\r\n [label]=\"'Download' | bbbTranslate\"\r\n ></button>\r\n </fd-toolbar>\r\n\r\n <bsu-file-gallery-viewer\r\n [style.max-height]=\"'100svh'\"\r\n fillEmptySpace\r\n [decrement]=\"'4.5rem'\"\r\n [fillWidth]=\"true\"\r\n [fillWidth]=\"fillWidth\"\r\n [groupList]=\"Setting.GroupList\"\r\n [deviceSize]=\"deviceSize\"\r\n [title]=\"'AttachPicture' | bbbTranslate\"\r\n [files]=\"mediaData\"\r\n [isImageGallery]=\"true\"\r\n [isHorizontal]=\"isThumbnailHorizontal\"\r\n [selectedId]=\"selectedId\"\r\n [zoom]=\"selectedZoom\"\r\n (selectedIdChange)=\"selectedId = $event\"\r\n (changeOrder)=\"onChangeOrder($event)\"\r\n ></bsu-file-gallery-viewer>\r\n</ng-template>\r\n<ng-template\r\n #layoutGridTpl\r\n let-inDialog=\"inDialog\"\r\n let-gallery=\"gallery\"\r\n let-disableOrReadonly=\"disableOrReadonly\"\r\n let-mediaData=\"mediaData\"\r\n let-deviceSize=\"deviceSize\"\r\n let-uploader=\"uploader\"\r\n>\r\n <bsu-file-card-viewer\r\n [inDialog]=\"inDialog\"\r\n [mediaData]=\"mediaData\"\r\n [disableOrReadonly]=\"disableOrReadonly\"\r\n [deviceSize]=\"deviceSize\"\r\n [uploader]=\"uploader\"\r\n [groupList]=\"Setting.GroupList\"\r\n [scanMenu]=\"menu\"\r\n (rotateMedia)=\"onRotate($event)\"\r\n (deleteMedia)=\"onDelete($event)\"\r\n (openUploader)=\"onOpenUploader($event, uploader)\"\r\n ></bsu-file-card-viewer>\r\n</ng-template>\r\n\r\n<fd-menu #menu>\r\n <li fd-menu-item (click)=\"onScan()\">\r\n <a fd-menu-interactive>\r\n <span fd-menu-title>{{ 'Scan' | bbbTranslate }}</span>\r\n </a>\r\n </li>\r\n <li fd-menu-item (click)=\"onAdvanceScan()\">\r\n <a fd-menu-interactive>\r\n <span fd-menu-title>{{ 'AdvancedScan' | bbbTranslate }}</span>\r\n </a>\r\n </li>\r\n</fd-menu>\r\n", styles: [":host{position:relative}:host ::ng-deep .delete button{border-color:transparent!important;background-color:transparent!important}.picture-upload-overlay{position:absolute;z-index:1000;inset:0;display:flex;align-items:center;justify-content:center;background:#0003}.picture-upload-status{display:flex;width:min(20rem,100% - 2rem);flex-direction:column;gap:.75rem;align-items:center;padding:1rem;border-radius:var(--sapElement_BorderCornerRadius, .25rem);background:var(--sapGroup_ContentBackground, #fff);box-shadow:var(--sapContent_Shadow2, 0 .5rem 1rem rgba(0, 0, 0, .16));color:var(--sapTextColor, #1d2d3e)}.picture-upload-status fd-progress-indicator{width:100%}.big-imgs-box{position:relative}.big-imgs-box>fd-toolbar{position:absolute;z-index:5;opacity:.5}.big-imgs-box>fd-toolbar:hover{opacity:1}fd-toolbar{width:100%}fd-dialog-footer{justify-content:center}.hatchBackground{min-height:100px}.gallery{display:flex;width:100%;height:400px;column-gap:1px;background-color:var(--sapField_Background, #fff)}.gallery ::-webkit-scrollbar{width:7px;height:7px}.gallery ::-webkit-scrollbar-track{box-shadow:inset 0 0 5px gray;border-radius:4px}.gallery ::-webkit-scrollbar-thumb{background:#555454;border-radius:4px}.gallery ::-webkit-scrollbar-thumb:hover{background:#2c2b2b}.gallery .column{overflow-y:scroll;display:flex;flex-direction:column;row-gap:3%;align-items:center}.gallery .column .pics{width:100%;display:flex;justify-content:center}.gallery .column .pics img{border-radius:5px}.gallery .column.small-imgs-box{flex:10%}.gallery .column.big-imgs-box{flex:90%}.gallery .selected{background-color:#fff;border:3px solid #0294d8;padding:10px}.gallery .fill-all .pics{height:100%}.gallery .fill-all img{width:100%!important;height:100%!important;object-fit:fill!important}.gallery .fill-original img{width:unset;height:unset}.gallery .zoom1 img{zoom:1}.gallery .zoom1-5 img{zoom:1.5}.gallery .zoom2 img{zoom:2}fd-dialog .gallery{overflow:auto}fd-dialog .gallery .column{overflow:initial}fd-dialog .gallery .pics{position:relative}fd-dialog fd-dialog-body{display:flex}fd-dialog.horizontal fd-dialog-body{flex-direction:column}fd-dialog.horizontal .gallery{flex-direction:row}fd-dialog.horizontal .thumbnail{border-top:1px solid #ccc;overflow-x:auto}fd-dialog.vertical fd-dialog-body{flex-direction:row-reverse}fd-dialog.vertical .gallery{flex-direction:column;height:100%}fd-dialog.vertical .thumbnail{border-left:1px solid #ccc;height:100%;width:200px;overflow-y:auto}fd-dialog.vertical .thumbnail ::ng-deep .fd-row>div{width:100%;min-width:100%}fd-card.media fd-card-footer button{border:none}fd-card.inDialog fd-card-header{padding-top:5px;padding-bottom:5px}\n"] }]
|
|
12373
|
+
args: [{ selector: 'bsu-ui-pictures-info', providers: [UploadService], changeDetection: ChangeDetectionStrategy.OnPush, standalone: false, template: "@if (uploadingState$ | async; as uploadingState) { @if (uploadingState.uploading) {\r\n<div\r\n class=\"picture-upload-overlay\"\r\n role=\"status\"\r\n aria-live=\"polite\"\r\n aria-busy=\"true\"\r\n [attr.aria-label]=\"'Uploading' | bbbTranslate\"\r\n>\r\n <div class=\"picture-upload-status\">\r\n <fd-busy-indicator [loading]=\"true\" [size]=\"'m'\"></fd-busy-indicator>\r\n <span>{{ 'Uploading' | bbbTranslate }}</span>\r\n <fd-progress-indicator\r\n state=\"informative\"\r\n [valueNow]=\"uploadingState.progress ?? 0\"\r\n [valueMax]=\"100\"\r\n [valueText]=\"(uploadingState.progress ?? 0) + '%'\"\r\n ></fd-progress-indicator>\r\n </div>\r\n</div>\r\n} }\r\n\r\n<fd-file-uploader\r\n #uploader\r\n [style.display]=\"'none'\"\r\n [id]=\"id\"\r\n [name]=\"'pictures_' + id\"\r\n [placeholder]=\"'AttachPicture' | bbbTranslate\"\r\n [buttonLabel]=\"'AttachPicture' | bbbTranslate\"\r\n [buttonAriaLabel]=\"'AttachPicture' | bbbTranslate\"\r\n accept=\".png,.jpg,.bpm,.jpeg,.gif,.png,.tif,.pdf\"\r\n [multiple]=\"maxFileCount !== 1\"\r\n (selectedFilesChanged)=\"onFileSelection($event)\"\r\n (selectedInvalidFiles)=\"onInvalidFiles($event)\"\r\n></fd-file-uploader>\r\n\r\n<ng-container\r\n *ngTemplateOutlet=\"\r\n isInlineGallery ? inlineGallery : layoutGridTpl;\r\n context: {\r\n disableOrReadonly: (disableOrReadonly$ | async),\r\n mediaData: (mediaData$ | async),\r\n deviceSize: (deviceSize$ | async),\r\n uploader: uploader\r\n }\r\n \"\r\n></ng-container>\r\n<ng-template\r\n #inlineGallery\r\n let-mediaData=\"mediaData\"\r\n let-deviceSize=\"deviceSize\"\r\n let-disableOrReadonly=\"disableOrReadonly\"\r\n>\r\n <fd-toolbar [shouldOverflow]=\"true\">\r\n @if(mediaData.length && selectedMedia){\r\n <button\r\n fd-toolbar-item\r\n fd-button\r\n fdType=\"transparent\"\r\n [label]=\"'Download' | bbbTranslate\"\r\n glyph=\"download\"\r\n [name]=\"selectedMedia.label\"\r\n [src]=\"selectedMedia.mediaUrl\"\r\n saveImage\r\n ></button>\r\n } @if(!disableOrReadonly){\r\n <button\r\n fd-button\r\n fdType=\"transparent\"\r\n [label]=\"'Scan' | bbbTranslate\"\r\n fd-toolbar-item\r\n [glyph]=\"'x-ray'\"\r\n [fdMenuTrigger]=\"menu\"\r\n ></button>\r\n } @if(!disableOrReadonly){ @if(!Setting.GroupList?.length ){\r\n <button\r\n fd-button\r\n fd-toolbar-item\r\n glyph=\"add-photo\"\r\n fdType=\"transparent\"\r\n [label]=\"'AttachFile' | bbbTranslate\"\r\n (click)=\"onPrimaryUpload(uploader)\"\r\n ></button>\r\n }@else{\r\n <fd-split-button\r\n fd-toolbar-item\r\n [mainAction]=\"{ mainActionTitle: ('AttachFile' | bbbTranslate), keepMainAction: true }\"\r\n (primaryButtonClicked)=\"onPrimaryUpload(uploader)\"\r\n >\r\n <fd-menu #menu>\r\n @for (groupItem of Setting.GroupList; track groupItem.Id; let index = $index) {\r\n <li fd-menu-item (click)=\"onGroupAttach(groupItem, uploader)\">\r\n <div fd-menu-interactive>\r\n <span fd-menu-title>{{ groupItem.Name | bbbTranslate }}</span>\r\n </div>\r\n </li>\r\n }\r\n </fd-menu>\r\n </fd-split-button>\r\n } }\r\n <button\r\n fd-toolbar-item\r\n fd-button\r\n fdType=\"transparent\"\r\n [label]=\"'PreviewZoomIn' | bbbTranslate\"\r\n glyph=\"zoom-in\"\r\n (click)=\"onZoomIn()\"\r\n ></button>\r\n <button\r\n fd-toolbar-item\r\n fd-button\r\n fdType=\"transparent\"\r\n [label]=\"'PreviewZoomOut' | bbbTranslate\"\r\n glyph=\"zoom-out\"\r\n (click)=\"onZoomOut()\"\r\n ></button>\r\n @if(!disableOrReadonly){\r\n <button\r\n fd-toolbar-item\r\n fd-button\r\n fdType=\"transparent\"\r\n [label]=\"'Rotate' | bbbTranslate\"\r\n glyph=\"rotate\"\r\n (click)=\"onRotate2()\"\r\n ></button>\r\n\r\n <button\r\n fd-toolbar-item\r\n fd-button\r\n fdType=\"transparent\"\r\n [label]=\"'Delete' | bbbTranslate\"\r\n glyph=\"delete\"\r\n (click)=\"onDelete(selectedId)\"\r\n ></button>\r\n\r\n <button\r\n fd-toolbar-item\r\n fd-button\r\n fdType=\"transparent\"\r\n [label]=\"'MoveUp' | bbbTranslate\"\r\n glyph=\"arrow-top\"\r\n (click)=\"onMoveUp(selectedId)\"\r\n ></button>\r\n <button\r\n fd-toolbar-item\r\n fd-button\r\n fdType=\"transparent\"\r\n [label]=\"'MoveDown' | bbbTranslate\"\r\n glyph=\"arrow-bottom\"\r\n (click)=\"onMoveDown(selectedId)\"\r\n ></button>\r\n }\r\n <fd-toolbar-separator></fd-toolbar-separator>\r\n <button\r\n fd-toolbar-item\r\n fd-button\r\n glyph=\"full-screen\"\r\n fdType=\"transparent\"\r\n fullscreenFiles\r\n [label]=\"'FullScreen' | bbbTranslate\"\r\n [files]=\"mediaData\"\r\n [selectedId]=\"selectedId\"\r\n [isImageGallery]=\"true\"\r\n [deviceSize]=\"deviceSize\"\r\n ></button>\r\n <button\r\n glyph=\"print\"\r\n fdType=\"transparent\"\r\n fd-toolbar-item\r\n fd-button\r\n [files]=\"mediaData\"\r\n printFiles\r\n [label]=\"'Print' | bbbTranslate\"\r\n ></button>\r\n\r\n <button\r\n glyph=\"pdf-attachment\"\r\n fdType=\"transparent\"\r\n fd-toolbar-item\r\n fd-button\r\n (click)=\"onDownloadAsPdf()\"\r\n [label]=\"'DownloadFile' | bbbTranslate\"\r\n ></button>\r\n </fd-toolbar>\r\n\r\n <bsu-file-gallery-viewer\r\n [style.max-height]=\"'100svh'\"\r\n fillEmptySpace\r\n [decrement]=\"'4.5rem'\"\r\n [fillWidth]=\"true\"\r\n [fillWidth]=\"fillWidth\"\r\n [groupList]=\"Setting.GroupList\"\r\n [deviceSize]=\"deviceSize\"\r\n [title]=\"'AttachPicture' | bbbTranslate\"\r\n [files]=\"mediaData\"\r\n [isImageGallery]=\"true\"\r\n [isHorizontal]=\"isThumbnailHorizontal\"\r\n [selectedId]=\"selectedId\"\r\n [zoom]=\"selectedZoom\"\r\n (selectedIdChange)=\"selectedId = $event\"\r\n (changeOrder)=\"onChangeOrder($event)\"\r\n ></bsu-file-gallery-viewer>\r\n</ng-template>\r\n<ng-template\r\n #layoutGridTpl\r\n let-inDialog=\"inDialog\"\r\n let-gallery=\"gallery\"\r\n let-disableOrReadonly=\"disableOrReadonly\"\r\n let-mediaData=\"mediaData\"\r\n let-deviceSize=\"deviceSize\"\r\n let-uploader=\"uploader\"\r\n>\r\n <bsu-file-card-viewer\r\n [inDialog]=\"inDialog\"\r\n [mediaData]=\"mediaData\"\r\n [disableOrReadonly]=\"disableOrReadonly\"\r\n [deviceSize]=\"deviceSize\"\r\n [uploader]=\"uploader\"\r\n [groupList]=\"Setting.GroupList\"\r\n [scanMenu]=\"menu\"\r\n (rotateMedia)=\"onRotate($event)\"\r\n (deleteMedia)=\"onDelete($event)\"\r\n (openUploader)=\"onOpenUploader($event, uploader)\"\r\n ></bsu-file-card-viewer>\r\n</ng-template>\r\n\r\n<fd-menu #menu>\r\n <li fd-menu-item (click)=\"onScan()\">\r\n <a fd-menu-interactive>\r\n <span fd-menu-title>{{ 'Scan' | bbbTranslate }}</span>\r\n </a>\r\n </li>\r\n <li fd-menu-item (click)=\"onAdvanceScan()\">\r\n <a fd-menu-interactive>\r\n <span fd-menu-title>{{ 'AdvancedScan' | bbbTranslate }}</span>\r\n </a>\r\n </li>\r\n</fd-menu>\r\n", styles: [":host{position:relative}:host ::ng-deep .delete button{border-color:transparent!important;background-color:transparent!important}.picture-upload-overlay{position:absolute;z-index:1000;inset:0;display:flex;align-items:center;justify-content:center;background:#0003}.picture-upload-status{display:flex;width:min(20rem,100% - 2rem);flex-direction:column;gap:.75rem;align-items:center;padding:1rem;border-radius:var(--sapElement_BorderCornerRadius, .25rem);background:var(--sapGroup_ContentBackground, #fff);box-shadow:var(--sapContent_Shadow2, 0 .5rem 1rem rgba(0, 0, 0, .16));color:var(--sapTextColor, #1d2d3e)}.picture-upload-status fd-progress-indicator{width:100%}.big-imgs-box{position:relative}.big-imgs-box>fd-toolbar{position:absolute;z-index:5;opacity:.5}.big-imgs-box>fd-toolbar:hover{opacity:1}fd-toolbar{width:100%}fd-dialog-footer{justify-content:center}.hatchBackground{min-height:100px}.gallery{display:flex;width:100%;height:400px;column-gap:1px;background-color:var(--sapField_Background, #fff)}.gallery ::-webkit-scrollbar{width:7px;height:7px}.gallery ::-webkit-scrollbar-track{box-shadow:inset 0 0 5px gray;border-radius:4px}.gallery ::-webkit-scrollbar-thumb{background:#555454;border-radius:4px}.gallery ::-webkit-scrollbar-thumb:hover{background:#2c2b2b}.gallery .column{overflow-y:scroll;display:flex;flex-direction:column;row-gap:3%;align-items:center}.gallery .column .pics{width:100%;display:flex;justify-content:center}.gallery .column .pics img{border-radius:5px}.gallery .column.small-imgs-box{flex:10%}.gallery .column.big-imgs-box{flex:90%}.gallery .selected{background-color:#fff;border:3px solid #0294d8;padding:10px}.gallery .fill-all .pics{height:100%}.gallery .fill-all img{width:100%!important;height:100%!important;object-fit:fill!important}.gallery .fill-original img{width:unset;height:unset}.gallery .zoom1 img{zoom:1}.gallery .zoom1-5 img{zoom:1.5}.gallery .zoom2 img{zoom:2}fd-dialog .gallery{overflow:auto}fd-dialog .gallery .column{overflow:initial}fd-dialog .gallery .pics{position:relative}fd-dialog fd-dialog-body{display:flex}fd-dialog.horizontal fd-dialog-body{flex-direction:column}fd-dialog.horizontal .gallery{flex-direction:row}fd-dialog.horizontal .thumbnail{border-top:1px solid #ccc;overflow-x:auto}fd-dialog.vertical fd-dialog-body{flex-direction:row-reverse}fd-dialog.vertical .gallery{flex-direction:column;height:100%}fd-dialog.vertical .thumbnail{border-left:1px solid #ccc;height:100%;width:200px;overflow-y:auto}fd-dialog.vertical .thumbnail ::ng-deep .fd-row>div{width:100%;min-width:100%}fd-card.media fd-card-footer button{border:none}fd-card.inDialog fd-card-header{padding-top:5px;padding-bottom:5px}\n"] }]
|
|
12279
12374
|
}], propDecorators: { _fileUploader: [{
|
|
12280
12375
|
type: ViewChild,
|
|
12281
12376
|
args: [FileUploaderComponent]
|
|
@@ -12474,11 +12569,11 @@ class BarsaSimpleFormComponent extends BaseComponent {
|
|
|
12474
12569
|
this._toolbarComponent?.updateCollapsibleItems();
|
|
12475
12570
|
}
|
|
12476
12571
|
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 }); }
|
|
12572
|
+
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
12573
|
}
|
|
12479
12574
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: BarsaSimpleFormComponent, decorators: [{
|
|
12480
12575
|
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"] }]
|
|
12576
|
+
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
12577
|
}], propDecorators: { _toolbarComponent: [{
|
|
12483
12578
|
type: ViewChild,
|
|
12484
12579
|
args: ['formToolbar']
|
|
@@ -12566,6 +12661,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
|
|
|
12566
12661
|
type: Input
|
|
12567
12662
|
}], formContentJustify: [{
|
|
12568
12663
|
type: Input
|
|
12664
|
+
}], lastUpdateTime: [{
|
|
12665
|
+
type: Input
|
|
12569
12666
|
}], titleRef: [{
|
|
12570
12667
|
type: ViewChild,
|
|
12571
12668
|
args: ['titleRef', { read: ViewContainerRef }]
|
|
@@ -12580,6 +12677,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
|
|
|
12580
12677
|
class UiFormPanelComponent extends FormBaseComponent {
|
|
12581
12678
|
constructor() {
|
|
12582
12679
|
super(...arguments);
|
|
12680
|
+
/** زمان آخرین بارگذاری/بروزرسانی فرم؛ به کامپوننتهای پایینتر پاس داده میشود. */
|
|
12681
|
+
this.lastUpdateTime = signal(new Date(), /* @ts-ignore */
|
|
12682
|
+
...(ngDevMode ? [{ debugName: "lastUpdateTime" }] : /* istanbul ignore next */ []));
|
|
12583
12683
|
/** Inserted by Angular inject() migration for backwards compatibility */
|
|
12584
12684
|
this._ecap = inject(EnumCaptionPipe);
|
|
12585
12685
|
this._contentDensityService = inject(ContentDensityService);
|
|
@@ -12642,13 +12742,30 @@ class UiFormPanelComponent extends FormBaseComponent {
|
|
|
12642
12742
|
}));
|
|
12643
12743
|
this.fullscreen = parameters?.FullscreenDefault === true && !this.isModal;
|
|
12644
12744
|
this._formPanelService.setIsModal(this.isModal);
|
|
12745
|
+
this._startPolling();
|
|
12746
|
+
}
|
|
12747
|
+
/**
|
|
12748
|
+
* بارگذاری مجدد خودکار فرم بر اساس PollingInterval تنظیمات (ساختار hh:mm؛ مثلاً "0.01" = یک دقیقه).
|
|
12749
|
+
* از متد Reload روی FormPanelCtrlr استفاده میکند. صفر/خالی یعنی خاموش.
|
|
12750
|
+
*/
|
|
12751
|
+
_startPolling() {
|
|
12752
|
+
const pollingInterval = hhmmToMs(this.parameters?.PollingInterval);
|
|
12753
|
+
if (!pollingInterval) {
|
|
12754
|
+
return;
|
|
12755
|
+
}
|
|
12756
|
+
timer(pollingInterval, pollingInterval)
|
|
12757
|
+
.pipe(takeUntil$1(this._onDestroy$))
|
|
12758
|
+
.subscribe(() => {
|
|
12759
|
+
this.FormPanelCtrlr?.Reload();
|
|
12760
|
+
this.lastUpdateTime.set(new Date());
|
|
12761
|
+
});
|
|
12645
12762
|
}
|
|
12646
12763
|
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 }); }
|
|
12764
|
+
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
12765
|
}
|
|
12649
12766
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: UiFormPanelComponent, decorators: [{
|
|
12650
12767
|
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"] }]
|
|
12768
|
+
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
12769
|
}] });
|
|
12653
12770
|
|
|
12654
12771
|
class LayoutWizardComponent extends FormPropsBaseComponent {
|
|
@@ -13512,11 +13629,13 @@ class UiTinymceComponent extends FieldBaseComponent {
|
|
|
13512
13629
|
this.context.fireEvent('change', this, newValue, this.value, {});
|
|
13513
13630
|
}
|
|
13514
13631
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: UiTinymceComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
13515
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
13632
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.8", type: UiTinymceComponent, isStandalone: false, selector: "bsu-ui-tinymce", host: { properties: { "style.position": "!tinyInit ? 'relative' : null", "style.min-height": "this.tinyHeight", "style.min-width": "this._minWidth" } }, usesInheritance: true, ngImport: i0, template: "<ng-container *untilInView=\"el\">\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n (Setting.IsHtmlViewer || (disableOrReadonly$ | async)) === true ? readonlyMode : editMode;\r\n context: { disable: (disable$ | async) === true }\r\n \"\r\n ></ng-container>\r\n <ng-template #readonlyMode let-disable=\"disable\">\r\n <input fd-form-control class=\"hide\" />\r\n <div\r\n class=\"html-readonly fd-input\"\r\n contentDensity\r\n [attr.id]=\"id\"\r\n [attr.readonly]=\"true\"\r\n [class.readonly]=\"true\"\r\n [class.anonymous]=\"isAnonymous\"\r\n [class.disable]=\"disable\"\r\n [innerHtml]=\"value | scopedCss: '#' + id | sanitizeText\"\r\n [style.pointer-event]=\"disable ? 'none' : null\"\r\n style=\"height: auto !important; text-wrap: auto\"\r\n ></div>\r\n </ng-template>\r\n\r\n <ng-template #editMode>\r\n @if(!tinyInit){ <bsu-mask></bsu-mask>}\r\n <bsu-barsa-tinyemce\r\n [attr.ismobile]=\"isMobile\"\r\n [attr.ismobile]=\"isTablet\"\r\n [Setting]=\"Setting\"\r\n [IsInline]=\"parameters?.IsInline === true\"\r\n [value]=\"value\"\r\n [defaultVerbs]=\"context.defaultVerbs\"\r\n (tinyInit)=\"onTinyInit()\"\r\n (valueChange)=\"onTinyChanged($event)\"\r\n [readonly]=\"isReadonly\"\r\n ></bsu-barsa-tinyemce>\r\n </ng-template>\r\n</ng-container>\r\n", styles: [":host{display:flex;flex-direction:column;justify-content:stretch;align-items:stretch;height:100%;width:100%;align-self:flex-start}:host ::ng-deep .tox.tox-tinymce{border-radius:0%;border:var(--sapField_BorderWidth) var(--sapField_BorderStyle) var(--sapField_BorderColor)}.html-readonly,bsu-barsa-tinyemce{flex-grow:1}.html-readonly ::ng-deep>p{overflow:unset}.html-readonly ::ng-deep ol,.html-readonly ::ng-deep ul{list-style:revert!important;margin:revert!important;padding:revert!important}.html-readonly ::ng-deep li{border-width:revert;border-style:revert;border-color:revert}.readonly{background:var(--sapBackgroundColor);height:100%}.disable{background:var(--sapBackgroundColor);height:100%;opacity:.5}.readonly.anonymous{background-color:transparent;border:none}\n"], dependencies: [{ kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2.UntilInViewDirective, selector: "[untilInView]", inputs: ["untilInView", "intersectionDebounce"] }, { kind: "component", type: i2$1.FormControlComponent, selector: "input[fd-form-control], textarea[fd-form-control]", inputs: ["state", "type", "class", "ariaLabel", "ariaLabelledBy"] }, { kind: "component", type: MaskComponent, selector: "bsu-mask", inputs: ["size", "top"] }, { kind: "component", type: BarsaTinyemceComponent, selector: "bsu-barsa-tinyemce", inputs: ["Setting", "isReadonly", "value", "IsInline", "defaultVerbs"], outputs: ["valueChange", "tinyInit"] }, { kind: "directive", type: ContentDensityDirective, selector: "[contentDensity]" }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "pipe", type: i2.SanitizeTextPipe, name: "sanitizeText" }, { kind: "pipe", type: i2.ScopedCssPipe, name: "scopedCss" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
13516
13633
|
}
|
|
13517
13634
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: UiTinymceComponent, decorators: [{
|
|
13518
13635
|
type: Component,
|
|
13519
|
-
args: [{ selector: 'bsu-ui-tinymce', changeDetection: ChangeDetectionStrategy.OnPush, standalone: false,
|
|
13636
|
+
args: [{ selector: 'bsu-ui-tinymce', changeDetection: ChangeDetectionStrategy.OnPush, standalone: false, host: {
|
|
13637
|
+
'[style.position]': "!tinyInit ? 'relative' : null"
|
|
13638
|
+
}, template: "<ng-container *untilInView=\"el\">\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n (Setting.IsHtmlViewer || (disableOrReadonly$ | async)) === true ? readonlyMode : editMode;\r\n context: { disable: (disable$ | async) === true }\r\n \"\r\n ></ng-container>\r\n <ng-template #readonlyMode let-disable=\"disable\">\r\n <input fd-form-control class=\"hide\" />\r\n <div\r\n class=\"html-readonly fd-input\"\r\n contentDensity\r\n [attr.id]=\"id\"\r\n [attr.readonly]=\"true\"\r\n [class.readonly]=\"true\"\r\n [class.anonymous]=\"isAnonymous\"\r\n [class.disable]=\"disable\"\r\n [innerHtml]=\"value | scopedCss: '#' + id | sanitizeText\"\r\n [style.pointer-event]=\"disable ? 'none' : null\"\r\n style=\"height: auto !important; text-wrap: auto\"\r\n ></div>\r\n </ng-template>\r\n\r\n <ng-template #editMode>\r\n @if(!tinyInit){ <bsu-mask></bsu-mask>}\r\n <bsu-barsa-tinyemce\r\n [attr.ismobile]=\"isMobile\"\r\n [attr.ismobile]=\"isTablet\"\r\n [Setting]=\"Setting\"\r\n [IsInline]=\"parameters?.IsInline === true\"\r\n [value]=\"value\"\r\n [defaultVerbs]=\"context.defaultVerbs\"\r\n (tinyInit)=\"onTinyInit()\"\r\n (valueChange)=\"onTinyChanged($event)\"\r\n [readonly]=\"isReadonly\"\r\n ></bsu-barsa-tinyemce>\r\n </ng-template>\r\n</ng-container>\r\n", styles: [":host{display:flex;flex-direction:column;justify-content:stretch;align-items:stretch;height:100%;width:100%;align-self:flex-start}:host ::ng-deep .tox.tox-tinymce{border-radius:0%;border:var(--sapField_BorderWidth) var(--sapField_BorderStyle) var(--sapField_BorderColor)}.html-readonly,bsu-barsa-tinyemce{flex-grow:1}.html-readonly ::ng-deep>p{overflow:unset}.html-readonly ::ng-deep ol,.html-readonly ::ng-deep ul{list-style:revert!important;margin:revert!important;padding:revert!important}.html-readonly ::ng-deep li{border-width:revert;border-style:revert;border-color:revert}.readonly{background:var(--sapBackgroundColor);height:100%}.disable{background:var(--sapBackgroundColor);height:100%;opacity:.5}.readonly.anonymous{background-color:transparent;border:none}\n"] }]
|
|
13520
13639
|
}], propDecorators: { tinyHeight: [{
|
|
13521
13640
|
type: HostBinding,
|
|
13522
13641
|
args: ['style.min-height']
|
|
@@ -13719,7 +13838,7 @@ class UlvPagingComponent extends BaseComponent {
|
|
|
13719
13838
|
this.pageChange.emit(pageNumber);
|
|
13720
13839
|
}
|
|
13721
13840
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: UlvPagingComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
13722
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.8", type: UlvPagingComponent, isStandalone: false, selector: "bsu-ulv-paging", inputs: { pagingSetting: "pagingSetting" }, outputs: { pageChange: "pageChange", pageSizeChange: "pageSizeChange" }, host: { properties: { "height.px": "this.height" } }, usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<!-- <ng-container *ngIf=\"config?.Setting?.Data?.Paging?.HasPaging\">\r\n<div class=\"icons\">\r\n <button\r\n fd-button\r\n [attr.disabled]=\"currentPage === totalPage - 1 ? true : null\"\r\n fdType=\"transparent\"\r\n glyph=\"begin\"\r\n (click)=\"onEndClick()\"\r\n ></button>\r\n <button\r\n fd-button\r\n [attr.disabled]=\"currentPage + 1 >= totalPage ? true : null\"\r\n fdType=\"transparent\"\r\n glyph=\"navigation-left-arrow\"\r\n (click)=\"onNextClick()\"\r\n ></button>\r\n <button\r\n fd-button\r\n [attr.disabled]=\"currentPage - 1 < 0 ? true : null\"\r\n fdType=\"transparent\"\r\n glyph=\"navigation-right-arrow\"\r\n (click)=\"onPreviousClick()\"\r\n ></button>\r\n <button\r\n fd-button\r\n [attr.disabled]=\"currentPage === 0 ? true : null\"\r\n fdType=\"transparent\"\r\n glyph=\"begin\"\r\n (click)=\"onFirstClick()\"\r\n ></button>\r\n</div>\r\n<div class=\"pagesize\">\r\n <label style=\"padding: 0 5px\"\r\n >{{ currentPage * pageSize }}-{{ currentPage * pageSize + pageSize }} \u0627\u0632\r\n {{ config.Setting.Data.Paging.TotalRows }}</label\r\n >\r\n <fd-select (valueChange)=\"onPageSizeChange($event)\" [value]=\"pageSize\">\r\n <fd-option [value]=\"24\">24</fd-option>\r\n <fd-option [value]=\"100\">100</fd-option>\r\n <fd-option [value]=\"100\">100</fd-option>\r\n </fd-select>\r\n\r\n <label style=\"padding: 0 5px\">{{ ItemsPerPage }}:</label>\r\n </div>\r\n</ng-container> -->\r\n@if (pagingSetting) { @if (pagingSetting && pagingSetting.HasPaging && pagingSetting.TotalPages>1) {\r\n<fd-pagination\r\n dir=\"rtl\"\r\n [totalItems]=\"pagingSetting.TotalRows\"\r\n (pageChangeStart)=\"onPageChange($event)\"\r\n [itemsPerPage]=\"pagingSetting.PageSize\"\r\n [currentPage]=\"currentPage\"\r\n [displayTextTemplate]=\"showingItems\"\r\n></fd-pagination>\r\n} }\r\n<ng-template #showingItems let-showing=\"showing\">\r\n <span dir=\"ltr\">\r\n {{ 'From' | bbbTranslate }} {{ showing.from }} {{ 'To' | bbbTranslate }} {{ showing.to }} {{ totalPageStr }}\r\n </span>\r\n</ng-template>\r\n", styles: [":host{align-items:center;display:flex;justify-content:center;flex-direction:row-reverse;width:100%}.icons{display:flex;justify-content:space-between}.icons ui5-button{color:var(--sapContent_LabelColor)}.icons ui5-button:hover{background:var(--sapBackgroundColor)!important;border-color:transparent!important}.icons{padding:0 15px}.pagesize{align-items:center;display:flex;justify-content:flex-start;flex-direction:row-reverse}\n"], dependencies: [{ kind: "component", type: i1$7.PaginationComponent, selector: "fd-pagination", inputs: ["id", "mobile", "totalItems", "currentPage", "itemsPerPage", "itemsPerPageTemplate", "itemsPerPageOptions", "displayTotalItems", "displayTextTemplate"], outputs: ["pageChangeStart", "itemsPerPageChange"] }, { kind: "directive", type: i2$
|
|
13841
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.8", type: UlvPagingComponent, isStandalone: false, selector: "bsu-ulv-paging", inputs: { pagingSetting: "pagingSetting" }, outputs: { pageChange: "pageChange", pageSizeChange: "pageSizeChange" }, host: { properties: { "height.px": "this.height" } }, usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<!-- <ng-container *ngIf=\"config?.Setting?.Data?.Paging?.HasPaging\">\r\n<div class=\"icons\">\r\n <button\r\n fd-button\r\n [attr.disabled]=\"currentPage === totalPage - 1 ? true : null\"\r\n fdType=\"transparent\"\r\n glyph=\"begin\"\r\n (click)=\"onEndClick()\"\r\n ></button>\r\n <button\r\n fd-button\r\n [attr.disabled]=\"currentPage + 1 >= totalPage ? true : null\"\r\n fdType=\"transparent\"\r\n glyph=\"navigation-left-arrow\"\r\n (click)=\"onNextClick()\"\r\n ></button>\r\n <button\r\n fd-button\r\n [attr.disabled]=\"currentPage - 1 < 0 ? true : null\"\r\n fdType=\"transparent\"\r\n glyph=\"navigation-right-arrow\"\r\n (click)=\"onPreviousClick()\"\r\n ></button>\r\n <button\r\n fd-button\r\n [attr.disabled]=\"currentPage === 0 ? true : null\"\r\n fdType=\"transparent\"\r\n glyph=\"begin\"\r\n (click)=\"onFirstClick()\"\r\n ></button>\r\n</div>\r\n<div class=\"pagesize\">\r\n <label style=\"padding: 0 5px\"\r\n >{{ currentPage * pageSize }}-{{ currentPage * pageSize + pageSize }} \u0627\u0632\r\n {{ config.Setting.Data.Paging.TotalRows }}</label\r\n >\r\n <fd-select (valueChange)=\"onPageSizeChange($event)\" [value]=\"pageSize\">\r\n <fd-option [value]=\"24\">24</fd-option>\r\n <fd-option [value]=\"100\">100</fd-option>\r\n <fd-option [value]=\"100\">100</fd-option>\r\n </fd-select>\r\n\r\n <label style=\"padding: 0 5px\">{{ ItemsPerPage }}:</label>\r\n </div>\r\n</ng-container> -->\r\n@if (pagingSetting) { @if (pagingSetting && pagingSetting.HasPaging && pagingSetting.TotalPages>1) {\r\n<fd-pagination\r\n dir=\"rtl\"\r\n [totalItems]=\"pagingSetting.TotalRows\"\r\n (pageChangeStart)=\"onPageChange($event)\"\r\n [itemsPerPage]=\"pagingSetting.PageSize\"\r\n [currentPage]=\"currentPage\"\r\n [displayTextTemplate]=\"showingItems\"\r\n></fd-pagination>\r\n} }\r\n<ng-template #showingItems let-showing=\"showing\">\r\n <span dir=\"ltr\">\r\n {{ 'From' | bbbTranslate }} {{ showing.from }} {{ 'To' | bbbTranslate }} {{ showing.to }} {{ totalPageStr }}\r\n </span>\r\n</ng-template>\r\n", styles: [":host{align-items:center;display:flex;justify-content:center;flex-direction:row-reverse;width:100%}.icons{display:flex;justify-content:space-between}.icons ui5-button{color:var(--sapContent_LabelColor)}.icons ui5-button:hover{background:var(--sapBackgroundColor)!important;border-color:transparent!important}.icons{padding:0 15px}.pagesize{align-items:center;display:flex;justify-content:flex-start;flex-direction:row-reverse}\n"], dependencies: [{ kind: "component", type: i1$7.PaginationComponent, selector: "fd-pagination", inputs: ["id", "mobile", "totalItems", "currentPage", "itemsPerPage", "itemsPerPageTemplate", "itemsPerPageOptions", "displayTotalItems", "displayTextTemplate"], outputs: ["pageChangeStart", "itemsPerPageChange"] }, { kind: "directive", type: i2$7.ɵɵDir, selector: "[dir]", inputs: ["dir"], outputs: ["dirChange"], exportAs: ["dir"] }, { kind: "pipe", type: i2.BbbTranslatePipe, name: "bbbTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
13723
13842
|
}
|
|
13724
13843
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: UlvPagingComponent, decorators: [{
|
|
13725
13844
|
type: Component,
|
|
@@ -14303,6 +14422,7 @@ class UiMoInfoUlvComboComponent extends FieldBaseComponent {
|
|
|
14303
14422
|
set UlvUi(value) {
|
|
14304
14423
|
this._UlvUi = value;
|
|
14305
14424
|
if (value) {
|
|
14425
|
+
this._publishComboItems();
|
|
14306
14426
|
value.viewerControl.on({
|
|
14307
14427
|
MoDataListChanged: () => {
|
|
14308
14428
|
this._publishComboItems();
|
|
@@ -14505,6 +14625,11 @@ class UiMoInfoUlvComboComponent extends FieldBaseComponent {
|
|
|
14505
14625
|
this.ulvAdapter && (this.ulvAdapter.$Expand = false);
|
|
14506
14626
|
this._setValueText(value);
|
|
14507
14627
|
this._checkHasValue(value);
|
|
14628
|
+
// با پاکشدنِ مقدار (onClear یا خالیکردنِ کمبو)، آیکن هم باید برداشته شود؛
|
|
14629
|
+
// رویدادِ iconurlchanged همیشه با مقدارِ خالی شلیک نمیشود.
|
|
14630
|
+
if (!this.hasValue) {
|
|
14631
|
+
this.iconMo.set('');
|
|
14632
|
+
}
|
|
14508
14633
|
super._setValue(value);
|
|
14509
14634
|
this._checkShowExtraButtons();
|
|
14510
14635
|
// this._setComboText(value);
|
|
@@ -14665,13 +14790,13 @@ class UiMoInfoUlvComboComponent extends FieldBaseComponent {
|
|
|
14665
14790
|
// this._trigger$.next('ItemSelect', this.value);
|
|
14666
14791
|
}
|
|
14667
14792
|
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 }); }
|
|
14793
|
+
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 } @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 [id]=\"id\"\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\r\n [src]=\"item | moIcon: UlvMainCtrlr?.Ac?.Setting\"\r\n loading=\"lazy\"\r\n width=\"16px\"\r\n height=\"16px\"\r\n 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 <div style=\"display: flex; column-gap: 8px; flex-wrap: wrap\">\r\n @for (field of reportOption.details; track field.column?.Name) {\r\n <span\r\n class=\"tw-flex tw-justify-start\"\r\n [attr.dir]=\"field.column?.IsLtr ? 'ltr' : null\"\r\n [title]=\"field.value\"\r\n >\r\n <span class=\"!tw-w-auto fd-form-label\">\r\n {{ field.column?.Caption || field.column?.Alias | bbbTranslate }}:</span\r\n >\r\n <span class=\"!tw-w-auto\">{{ field.value }}</span>\r\n </span>\r\n }\r\n </div>\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: "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", "id", "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
14794
|
}
|
|
14670
14795
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: UiMoInfoUlvComboComponent, decorators: [{
|
|
14671
14796
|
type: Component,
|
|
14672
14797
|
args: [{ selector: 'bsu-ui-mo-info-ulv-combo', changeDetection: ChangeDetectionStrategy.OnPush, host: {
|
|
14673
14798
|
'[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"] }]
|
|
14799
|
+
}, 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 } @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 [id]=\"id\"\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\r\n [src]=\"item | moIcon: UlvMainCtrlr?.Ac?.Setting\"\r\n loading=\"lazy\"\r\n width=\"16px\"\r\n height=\"16px\"\r\n 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 <div style=\"display: flex; column-gap: 8px; flex-wrap: wrap\">\r\n @for (field of reportOption.details; track field.column?.Name) {\r\n <span\r\n class=\"tw-flex tw-justify-start\"\r\n [attr.dir]=\"field.column?.IsLtr ? 'ltr' : null\"\r\n [title]=\"field.value\"\r\n >\r\n <span class=\"!tw-w-auto fd-form-label\">\r\n {{ field.column?.Caption || field.column?.Alias | bbbTranslate }}:</span\r\n >\r\n <span class=\"!tw-w-auto\">{{ field.value }}</span>\r\n </span>\r\n }\r\n </div>\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
14800
|
}], propDecorators: { ulvAdapter: [{
|
|
14676
14801
|
type: Input
|
|
14677
14802
|
}], Control: [{
|
|
@@ -15372,7 +15497,7 @@ class BarsaSearchFormComponent extends UiFormPanelComponent {
|
|
|
15372
15497
|
this._router.navigate(['..']);
|
|
15373
15498
|
}
|
|
15374
15499
|
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 }); }
|
|
15500
|
+
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
15501
|
}
|
|
15377
15502
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: BarsaSearchFormComponent, decorators: [{
|
|
15378
15503
|
type: Component,
|
|
@@ -15978,7 +16103,7 @@ class BarsaPishnamayeshPayamComponent extends FieldBaseComponent {
|
|
|
15978
16103
|
useFactory: getDateService$1,
|
|
15979
16104
|
deps: [LogService]
|
|
15980
16105
|
}
|
|
15981
|
-
], usesInheritance: true, ngImport: i0, template: "@if (data) {\r\n<ng-container\r\n *ngTemplateOutlet=\"\r\n showPayamClass;\r\n context: {\r\n $implicit: data,\r\n primary: !data?.$details?.length,\r\n isFirst: true\r\n }\r\n \"\r\n>\r\n</ng-container>\r\n}\r\n<ng-template #showPayamClass let-data let-primary=\"primary\" let-isFirst=\"isFirst\">\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n namayeshPayam;\r\n context: {\r\n $implicit: data.payam.Subject,\r\n mailNoText: data.payam.MailNoText,\r\n fromText: data.payam.FromText,\r\n toText: data.$toText,\r\n importance: data.$importance,\r\n readDate: data.$readDate,\r\n sendDate: data.$sendDate,\r\n ccText: data.$ccText,\r\n bccText: data.$bccText,\r\n accessLevel: data.$accessLevel,\r\n content: data.$content,\r\n fromPhoto: data.$fromPhoto,\r\n details: data.$details,\r\n attachments: data.$attachments,\r\n todo: data.$todo,\r\n customText: data.payam.CustomText,\r\n primary: primary,\r\n isFirst: isFirst\r\n }\r\n \"\r\n >\r\n </ng-container>\r\n</ng-template>\r\n\r\n<ng-template\r\n #namayeshPayam\r\n let-subject\r\n let-mailNoText=\"mailNoText\"\r\n let-content=\"content\"\r\n let-fromText=\"fromText\"\r\n let-toText=\"toText\"\r\n let-importance=\"importance\"\r\n let-readDate=\"readDate\"\r\n let-sendDate=\"sendDate\"\r\n let-ccText=\"ccText\"\r\n let-bccText=\"bccText\"\r\n let-fromPhoto=\"fromPhoto\"\r\n let-details=\"details\"\r\n let-accessLevel=\"accessLevel\"\r\n let-primary=\"primary\"\r\n let-isFirst=\"isFirst\"\r\n let-attachments=\"attachments\"\r\n let-todo=\"todo\"\r\n let-customText=\"customText\"\r\n>\r\n <fd-card cardType=\"object\" class=\"!tw-mb-2\">\r\n <fd-card-header>\r\n <fd-card-main-header>\r\n <fd-avatar\r\n [image]=\"fromPhoto\"\r\n [circle]=\"true\"\r\n size=\"s\"\r\n [ariaLabel]=\"fromText\"\r\n [label]=\"fromText\"\r\n [title]=\"fromText\"\r\n ></fd-avatar>\r\n <div fd-card-title class=\"header-fields\">\r\n <h5 fd-title>\r\n <a fd-link [emphasized]=\"true\" aria-label=\"Sender\"> {{ fromText }}</a>\r\n </h5>\r\n <fd-object-identifier [description]=\"'(' + sendDate + ')'\"> </fd-object-identifier>\r\n </div>\r\n <div fd-card-subtitle>\r\n <h5 fd-title>\r\n {{ subject }} @if(mailNoText){ <span>({{ mailNoText }})</span>}\r\n </h5>\r\n <fd-popover>\r\n <fd-popover-control>\r\n <button fd-button fdType=\"transparent\" [fdMenu]=\"true\">\r\n {{ 'Recievers' | bbbTranslate }}\r\n </button>\r\n </fd-popover-control>\r\n <fd-popover-body>\r\n <ul fd-list>\r\n @for (rec of toText; track rec) {\r\n <li fd-list-item>\r\n <a fd-list-link>{{ rec }}</a>\r\n </li>\r\n }\r\n </ul>\r\n </fd-popover-body>\r\n </fd-popover>\r\n @if(ccText?.length && ccText[0]){\r\n <fd-popover>\r\n <fd-popover-control>\r\n <button fd-button fdType=\"transparent\" [fdMenu]=\"true\">\r\n {{ 'Cc' | bbbTranslate }}\r\n </button>\r\n </fd-popover-control>\r\n <fd-popover-body>\r\n <ul fd-list>\r\n @for (rec of ccText; track rec) {\r\n <li fd-list-item>\r\n <a fd-list-link>{{ rec }}</a>\r\n </li>\r\n }\r\n </ul>\r\n </fd-popover-body>\r\n </fd-popover>\r\n } @if(bccText?.length && bccText[0]){\r\n <fd-popover>\r\n <fd-popover-control>\r\n <button fd-button fdType=\"transparent\" [fdMenu]=\"true\">\r\n {{ 'Bcc' | bbbTranslate }}\r\n </button>\r\n </fd-popover-control>\r\n <fd-popover-body>\r\n <ul fd-list>\r\n @for (rec of bccText; track rec) {\r\n <li fd-list-item>\r\n <a fd-list-link>{{ rec }}</a>\r\n </li>\r\n }\r\n </ul>\r\n </fd-popover-body>\r\n </fd-popover>\r\n }\r\n </div>\r\n </fd-card-main-header>\r\n </fd-card-header>\r\n <fd-card-content>\r\n <fd-panel [expanded]=\"isFirst\">\r\n <div fd-panel-title>\r\n <h5 fd-title>{{ '\u0645\u062D\u062A\u0648\u0627\u06CC \u067E\u06CC\u0627\u0645' | bbbTranslate }}</h5>\r\n <div class=\"payamIcons\">\r\n @if (importance.icon) {\r\n <fd-popover>\r\n <fd-popover-control>\r\n <img [src]=\"'/Customization/Mail/' + importance.icon\" loading=\"lazy\"/>\r\n </fd-popover-control>\r\n <fd-popover-body>\r\n <ul fd-list>\r\n <li fd-list-item>{{ importance.text }}</li>\r\n </ul>\r\n </fd-popover-body>\r\n </fd-popover>\r\n } @if (accessLevel.icon) {\r\n <fd-popover>\r\n <fd-popover-control>\r\n <img [src]=\"'/Customization/Mail/' + accessLevel.icon\" loading=\"lazy\"/>\r\n </fd-popover-control>\r\n <fd-popover-body>\r\n <ul fd-list>\r\n <li fd-list-item>{{ accessLevel.text }}</li>\r\n </ul>\r\n </fd-popover-body>\r\n </fd-popover>\r\n } @if (todo) {\r\n <fd-info-label [label]=\"todo.text\" [color]=\"todo.color\" [title]=\"todo.text\"></fd-info-label>\r\n }\r\n </div>\r\n </div>\r\n <div fd-panel-content>\r\n @if (customText) {\r\n <div>\r\n <fd-message-strip type=\"information\" [noIcon]=\"true\" [dismissible]=\"false\">\r\n {{ customText }}\r\n </fd-message-strip>\r\n </div>\r\n }\r\n <div [innerHtml]=\"content\" [disable]=\"!primary || attachments?.length\"></div>\r\n\r\n @if (attachments?.length) {\r\n <div class=\"file-viewer-attachments\">\r\n @for (file of attachments; track file;let index=$index) { @if (!file.IsDeleted) {\r\n <bsu-file-viewer-popover\r\n [file]=\"file\"\r\n [index]=\"index\"\r\n [files]=\"attachments\"\r\n [deviceSize]=\"(deviceSize$ | async)!!\"\r\n [canDownload]=\"true\"\r\n [disableRemove]=\"true\"\r\n ></bsu-file-viewer-popover>\r\n } } @if (attachments.length > 1) {\r\n <button\r\n fd-button\r\n [title]=\"'Download' | bbbTranslate\"\r\n [glyph]=\"'download'\"\r\n downloadFiles\r\n [files]=\"attachments\"\r\n ></button>\r\n }\r\n </div>\r\n }\r\n <div class=\"readAt\">\r\n @if (readDate) {\r\n <fd-object-identifier [description]=\"('ReadAt' | bbbTranslate) + ': (' + readDate + ')'\">\r\n </fd-object-identifier>\r\n }\r\n </div>\r\n </div>\r\n </fd-panel>\r\n </fd-card-content>\r\n <!-- <fd-card-footer>\r\n <button *fdCardFooterActionItem fd-button fdCompact>Assign to Project</button>\r\n </fd-card-footer> -->\r\n </fd-card>\r\n @for (detail of details; track detail) { \r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n showPayamClass;\r\n context: {\r\n $implicit: detail\r\n }\r\n \"\r\n >\r\n </ng-container>\r\n }\r\n</ng-template>\r\n", styles: [":host{display:block;position:relative;width:100%;height:100%}:host ::ng-deep .fd-panel__content{border-bottom:none;padding-bottom:5px}:host ::ng-deep .fd-card__subtitle{display:flex;align-items:center;column-gap:5px;justify-content:start;height:auto;max-height:initial}:host ::ng-deep .fd-card__subtitle h5{white-space:initial!important}:host ::ng-deep .fd-object-identifier__text{margin-top:0}:host ::ng-deep .fd-panel__header{border-bottom:none}:host ::ng-deep ol{list-style:auto;margin:unset;padding:revert}fd-card-header{cursor:default;border-bottom:none!important}fd-card-header:before{position:relative!important;display:none!important}fd-card-header:hover{background:var(--fdCard_Background_Color)!important}.readAt{padding-top:2rem}.readAt ::ng-deep p{color:var(--sapButton_BorderColor)!important}.payamIcons{display:flex;column-gap:5px}.payamIcons img{width:16px}@media(max-width:410px){h5{max-width:240px}}@media(max-width:1040px){.h5{max-width:600px}}\n"], dependencies: [{ kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { 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: i2$7.LinkComponent, selector: "[fdLink], [fd-link]", inputs: ["emphasized", "disabled", "inverted", "subtle", "undecorated", "touchTarget"] }, { kind: "component", type: i1$4.ButtonComponent, selector: "button[fd-button], a[fd-button], span[fd-button]", inputs: ["id"], exportAs: ["fd-button"] }, { kind: "component", type: i7$2.CardComponent, selector: "fd-card", inputs: ["badge", "badgeIcon", "badgeColor", "badgeColorSecondary", "badgeStatus", "badgeAriaLabel", "secondBadge", "secondBadgeIcon", "secondBadgeColor", "secondBadgeColorSecondary", "secondBadgeStatus", "secondBadgeAriaLabel", "isLoading", "cardType", "id", "ariaRoledescription", "ariaDescription", "ariaLabel", "role", "interactive", "selected", "ariaPosinset", "ariaSetsize", "ariaDescribedby"], outputs: ["ariaPosinsetChange", "ariaSetsizeChange", "keyDown"] }, { kind: "component", type: i7$2.CardHeaderComponent, selector: "fd-card-header", inputs: ["ariaRoleDescription"] }, { kind: "component", type: i7$2.CardMainHeaderComponent, selector: "fd-card-main-header", inputs: ["interactive", "title"] }, { kind: "component", type: i7$2.CardContentComponent, selector: "fd-card-content" }, { kind: "directive", type: i7$2.CardTitleDirective, selector: "[fd-card-title]", inputs: ["id"] }, { kind: "directive", type: i7$2.CardSubtitleDirective, selector: "[fd-card-subtitle]", inputs: ["id"] }, { kind: "component", type: i6$3.InfoLabelComponent, selector: "fd-info-label", inputs: ["type", "glyph", "font", "color", "label", "title", "ariaLabel", "ariaLabelledBy", "srText"] }, { kind: "component", type: i7.ListComponent, selector: "[fd-list], [fdList]", inputs: ["dropdownMode", "multiInputMode", "mobileMode", "hasMessage", "noBorder", "navigationIndicator", "selection", "keyboardSupport", "byline", "subline", "theme", "unreadIndicator", "role", "settingsList", "settingsListFooter", "searchResultsList"], outputs: ["focusEscapeList"] }, { kind: "component", type: i7.ListItemComponent, selector: "[fdListItem] ,[fd-list-item]", inputs: ["selected", "noData", "action", "interactive", "growing", "counter", "counterRole", "counterAriaLabel", "active", "unread", "byline", "ariaRole", "id", "preventClick", "settingsListTpl", "suggestion"], outputs: ["keyDown"], exportAs: ["fdListItem"] }, { kind: "directive", type: i7.ListLinkDirective, selector: "[fd-list-link], [fdListLink]", inputs: ["navigationIndicator", "navigated", "focusable"] }, { kind: "component", type: i5.TitleComponent, selector: "[fd-title], [fdTitle]", inputs: ["twoLineClamp", "headerSize", "wrap"], exportAs: ["fd-title"] }, { 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: i10$2.ObjectIdentifierComponent, selector: "fd-object-identifier", inputs: ["id", "description", "ariaLabel", "bold", "medium"] }, { kind: "component", type: i6$2.PanelComponent, selector: "fd-panel", inputs: ["class", "fixed", "id", "expandId", "expandAriaLabel", "expandAriaLabelledBy", "expanded", "transparent", "noRadius"], outputs: ["expandedChange"] }, { kind: "directive", type: i6$2.PanelContentDirective, selector: "[fd-panel-content]", inputs: ["height", "minHeight", "maxHeight", "ariaLabel", "ariaLabelledBy", "role", "noPadding", "transparent", "id"] }, { kind: "directive", type: i6$2.PanelTitleDirective, selector: "[fd-panel-title]", inputs: ["id", "wrap"] }, { kind: "component", type: i6.PopoverControlComponent, selector: "fd-popover-control, [fdPopoverControl]" }, { kind: "component", type: i6.PopoverBodyComponent, selector: "fd-popover-body", inputs: ["minWidth", "maxWidth", "minHeight", "maxHeight"], outputs: ["onClose"] }, { kind: "component", type: i6.PopoverComponent, selector: "fd-popover", inputs: ["config", "title", "trigger", "id", "mobile", "mobileConfig", "preventSpaceKeyScroll", "placement", "maxWidth", "fillControlMode", "closeOnOutsideClick", "closeOnEscapeKey", "disabled", "triggers", "focusTrapped", "focusAutoCapture", "restoreFocusOnClose", "noArrow", "disableScrollbar", "appendTo", "placementContainer", "scrollStrategy", "cdkPositions", "applyOverlay", "additionalBodyClass", "additionalTriggerClass", "closeOnNavigation", "fixedPosition", "resizable", "bodyAriaLabel", "bodyRole", "bodyAriaLabelledBy", "isOpen"], outputs: ["triggerChange", "isOpenChange", "beforeOpen"] }, { kind: "component", type: FileViewerPopoverComponent, selector: "bsu-file-viewer-popover", inputs: ["files", "file", "index", "deviceSize", "canDownload", "disableRemove", "fdType", "attachmentViewType"], outputs: ["remove"] }, { kind: "directive", type: DownloadFilesDirective, selector: "[downloadFiles]", inputs: ["files", "nozip"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "pipe", type: i2.BbbTranslatePipe, name: "bbbTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
16106
|
+
], usesInheritance: true, ngImport: i0, template: "@if (data) {\r\n<ng-container\r\n *ngTemplateOutlet=\"\r\n showPayamClass;\r\n context: {\r\n $implicit: data,\r\n primary: !data?.$details?.length,\r\n isFirst: true\r\n }\r\n \"\r\n>\r\n</ng-container>\r\n}\r\n<ng-template #showPayamClass let-data let-primary=\"primary\" let-isFirst=\"isFirst\">\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n namayeshPayam;\r\n context: {\r\n $implicit: data.payam.Subject,\r\n mailNoText: data.payam.MailNoText,\r\n fromText: data.payam.FromText,\r\n toText: data.$toText,\r\n importance: data.$importance,\r\n readDate: data.$readDate,\r\n sendDate: data.$sendDate,\r\n ccText: data.$ccText,\r\n bccText: data.$bccText,\r\n accessLevel: data.$accessLevel,\r\n content: data.$content,\r\n fromPhoto: data.$fromPhoto,\r\n details: data.$details,\r\n attachments: data.$attachments,\r\n todo: data.$todo,\r\n customText: data.payam.CustomText,\r\n primary: primary,\r\n isFirst: isFirst\r\n }\r\n \"\r\n >\r\n </ng-container>\r\n</ng-template>\r\n\r\n<ng-template\r\n #namayeshPayam\r\n let-subject\r\n let-mailNoText=\"mailNoText\"\r\n let-content=\"content\"\r\n let-fromText=\"fromText\"\r\n let-toText=\"toText\"\r\n let-importance=\"importance\"\r\n let-readDate=\"readDate\"\r\n let-sendDate=\"sendDate\"\r\n let-ccText=\"ccText\"\r\n let-bccText=\"bccText\"\r\n let-fromPhoto=\"fromPhoto\"\r\n let-details=\"details\"\r\n let-accessLevel=\"accessLevel\"\r\n let-primary=\"primary\"\r\n let-isFirst=\"isFirst\"\r\n let-attachments=\"attachments\"\r\n let-todo=\"todo\"\r\n let-customText=\"customText\"\r\n>\r\n <fd-card cardType=\"object\" class=\"!tw-mb-2\">\r\n <fd-card-header>\r\n <fd-card-main-header>\r\n <fd-avatar\r\n [image]=\"fromPhoto\"\r\n [circle]=\"true\"\r\n size=\"s\"\r\n [ariaLabel]=\"fromText\"\r\n [label]=\"fromText\"\r\n [title]=\"fromText\"\r\n ></fd-avatar>\r\n <div fd-card-title class=\"header-fields\">\r\n <h5 fd-title>\r\n <a fd-link [emphasized]=\"true\" aria-label=\"Sender\"> {{ fromText }}</a>\r\n </h5>\r\n <fd-object-identifier [description]=\"'(' + sendDate + ')'\"> </fd-object-identifier>\r\n </div>\r\n <div fd-card-subtitle>\r\n <h5 fd-title>\r\n {{ subject }} @if(mailNoText){ <span>({{ mailNoText }})</span>}\r\n </h5>\r\n <fd-popover>\r\n <fd-popover-control>\r\n <button fd-button fdType=\"transparent\" [fdMenu]=\"true\">\r\n {{ 'Recievers' | bbbTranslate }}\r\n </button>\r\n </fd-popover-control>\r\n <fd-popover-body>\r\n <ul fd-list>\r\n @for (rec of toText; track rec) {\r\n <li fd-list-item>\r\n <a fd-list-link>{{ rec }}</a>\r\n </li>\r\n }\r\n </ul>\r\n </fd-popover-body>\r\n </fd-popover>\r\n @if(ccText?.length && ccText[0]){\r\n <fd-popover>\r\n <fd-popover-control>\r\n <button fd-button fdType=\"transparent\" [fdMenu]=\"true\">\r\n {{ 'Cc' | bbbTranslate }}\r\n </button>\r\n </fd-popover-control>\r\n <fd-popover-body>\r\n <ul fd-list>\r\n @for (rec of ccText; track rec) {\r\n <li fd-list-item>\r\n <a fd-list-link>{{ rec }}</a>\r\n </li>\r\n }\r\n </ul>\r\n </fd-popover-body>\r\n </fd-popover>\r\n } @if(bccText?.length && bccText[0]){\r\n <fd-popover>\r\n <fd-popover-control>\r\n <button fd-button fdType=\"transparent\" [fdMenu]=\"true\">\r\n {{ 'Bcc' | bbbTranslate }}\r\n </button>\r\n </fd-popover-control>\r\n <fd-popover-body>\r\n <ul fd-list>\r\n @for (rec of bccText; track rec) {\r\n <li fd-list-item>\r\n <a fd-list-link>{{ rec }}</a>\r\n </li>\r\n }\r\n </ul>\r\n </fd-popover-body>\r\n </fd-popover>\r\n }\r\n </div>\r\n </fd-card-main-header>\r\n </fd-card-header>\r\n <fd-card-content>\r\n <fd-panel [expanded]=\"isFirst\">\r\n <div fd-panel-title>\r\n <h5 fd-title>{{ '\u0645\u062D\u062A\u0648\u0627\u06CC \u067E\u06CC\u0627\u0645' | bbbTranslate }}</h5>\r\n <div class=\"payamIcons\">\r\n @if (importance.icon) {\r\n <fd-popover>\r\n <fd-popover-control>\r\n <img [src]=\"'/Customization/Mail/' + importance.icon\" loading=\"lazy\"/>\r\n </fd-popover-control>\r\n <fd-popover-body>\r\n <ul fd-list>\r\n <li fd-list-item>{{ importance.text }}</li>\r\n </ul>\r\n </fd-popover-body>\r\n </fd-popover>\r\n } @if (accessLevel.icon) {\r\n <fd-popover>\r\n <fd-popover-control>\r\n <img [src]=\"'/Customization/Mail/' + accessLevel.icon\" loading=\"lazy\"/>\r\n </fd-popover-control>\r\n <fd-popover-body>\r\n <ul fd-list>\r\n <li fd-list-item>{{ accessLevel.text }}</li>\r\n </ul>\r\n </fd-popover-body>\r\n </fd-popover>\r\n } @if (todo) {\r\n <fd-info-label [label]=\"todo.text\" [color]=\"todo.color\" [title]=\"todo.text\"></fd-info-label>\r\n }\r\n </div>\r\n </div>\r\n <div fd-panel-content>\r\n @if (customText) {\r\n <div>\r\n <fd-message-strip type=\"information\" [noIcon]=\"true\" [dismissible]=\"false\">\r\n {{ customText }}\r\n </fd-message-strip>\r\n </div>\r\n }\r\n <div [innerHtml]=\"content\" [disable]=\"!primary || attachments?.length\"></div>\r\n\r\n @if (attachments?.length) {\r\n <div class=\"file-viewer-attachments\">\r\n @for (file of attachments; track file;let index=$index) { @if (!file.IsDeleted) {\r\n <bsu-file-viewer-popover\r\n [file]=\"file\"\r\n [index]=\"index\"\r\n [files]=\"attachments\"\r\n [deviceSize]=\"(deviceSize$ | async)!!\"\r\n [canDownload]=\"true\"\r\n [disableRemove]=\"true\"\r\n ></bsu-file-viewer-popover>\r\n } } @if (attachments.length > 1) {\r\n <button\r\n fd-button\r\n [title]=\"'Download' | bbbTranslate\"\r\n [glyph]=\"'download'\"\r\n downloadFiles\r\n [files]=\"attachments\"\r\n ></button>\r\n }\r\n </div>\r\n }\r\n <div class=\"readAt\">\r\n @if (readDate) {\r\n <fd-object-identifier [description]=\"('ReadAt' | bbbTranslate) + ': (' + readDate + ')'\">\r\n </fd-object-identifier>\r\n }\r\n </div>\r\n </div>\r\n </fd-panel>\r\n </fd-card-content>\r\n <!-- <fd-card-footer>\r\n <button *fdCardFooterActionItem fd-button fdCompact>Assign to Project</button>\r\n </fd-card-footer> -->\r\n </fd-card>\r\n @for (detail of details; track detail) { \r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n showPayamClass;\r\n context: {\r\n $implicit: detail\r\n }\r\n \"\r\n >\r\n </ng-container>\r\n }\r\n</ng-template>\r\n", styles: [":host{display:block;position:relative;width:100%;height:100%}:host ::ng-deep .fd-panel__content{border-bottom:none;padding-bottom:5px}:host ::ng-deep .fd-card__subtitle{display:flex;align-items:center;column-gap:5px;justify-content:start;height:auto;max-height:initial}:host ::ng-deep .fd-card__subtitle h5{white-space:initial!important}:host ::ng-deep .fd-object-identifier__text{margin-top:0}:host ::ng-deep .fd-panel__header{border-bottom:none}:host ::ng-deep ol{list-style:auto;margin:unset;padding:revert}fd-card-header{cursor:default;border-bottom:none!important}fd-card-header:before{position:relative!important;display:none!important}fd-card-header:hover{background:var(--fdCard_Background_Color)!important}.readAt{padding-top:2rem}.readAt ::ng-deep p{color:var(--sapButton_BorderColor)!important}.payamIcons{display:flex;column-gap:5px}.payamIcons img{width:16px}@media(max-width:410px){h5{max-width:240px}}@media(max-width:1040px){.h5{max-width:600px}}\n"], dependencies: [{ kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { 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: i2$6.LinkComponent, selector: "[fdLink], [fd-link]", inputs: ["emphasized", "disabled", "inverted", "subtle", "undecorated", "touchTarget"] }, { kind: "component", type: i1$4.ButtonComponent, selector: "button[fd-button], a[fd-button], span[fd-button]", inputs: ["id"], exportAs: ["fd-button"] }, { kind: "component", type: i7$2.CardComponent, selector: "fd-card", inputs: ["badge", "badgeIcon", "badgeColor", "badgeColorSecondary", "badgeStatus", "badgeAriaLabel", "secondBadge", "secondBadgeIcon", "secondBadgeColor", "secondBadgeColorSecondary", "secondBadgeStatus", "secondBadgeAriaLabel", "isLoading", "cardType", "id", "ariaRoledescription", "ariaDescription", "ariaLabel", "role", "interactive", "selected", "ariaPosinset", "ariaSetsize", "ariaDescribedby"], outputs: ["ariaPosinsetChange", "ariaSetsizeChange", "keyDown"] }, { kind: "component", type: i7$2.CardHeaderComponent, selector: "fd-card-header", inputs: ["ariaRoleDescription"] }, { kind: "component", type: i7$2.CardMainHeaderComponent, selector: "fd-card-main-header", inputs: ["interactive", "title"] }, { kind: "component", type: i7$2.CardContentComponent, selector: "fd-card-content" }, { kind: "directive", type: i7$2.CardTitleDirective, selector: "[fd-card-title]", inputs: ["id"] }, { kind: "directive", type: i7$2.CardSubtitleDirective, selector: "[fd-card-subtitle]", inputs: ["id"] }, { kind: "component", type: i6$3.InfoLabelComponent, selector: "fd-info-label", inputs: ["type", "glyph", "font", "color", "label", "title", "ariaLabel", "ariaLabelledBy", "srText"] }, { kind: "component", type: i7.ListComponent, selector: "[fd-list], [fdList]", inputs: ["dropdownMode", "multiInputMode", "mobileMode", "hasMessage", "noBorder", "navigationIndicator", "selection", "keyboardSupport", "byline", "subline", "theme", "unreadIndicator", "role", "settingsList", "settingsListFooter", "searchResultsList"], outputs: ["focusEscapeList"] }, { kind: "component", type: i7.ListItemComponent, selector: "[fdListItem] ,[fd-list-item]", inputs: ["selected", "noData", "action", "interactive", "growing", "counter", "counterRole", "counterAriaLabel", "active", "unread", "byline", "ariaRole", "id", "preventClick", "settingsListTpl", "suggestion"], outputs: ["keyDown"], exportAs: ["fdListItem"] }, { kind: "directive", type: i7.ListLinkDirective, selector: "[fd-list-link], [fdListLink]", inputs: ["navigationIndicator", "navigated", "focusable"] }, { kind: "component", type: i5.TitleComponent, selector: "[fd-title], [fdTitle]", inputs: ["twoLineClamp", "headerSize", "wrap"], exportAs: ["fd-title"] }, { 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: i10$2.ObjectIdentifierComponent, selector: "fd-object-identifier", inputs: ["id", "description", "ariaLabel", "bold", "medium"] }, { kind: "component", type: i6$2.PanelComponent, selector: "fd-panel", inputs: ["class", "fixed", "id", "expandId", "expandAriaLabel", "expandAriaLabelledBy", "expanded", "transparent", "noRadius"], outputs: ["expandedChange"] }, { kind: "directive", type: i6$2.PanelContentDirective, selector: "[fd-panel-content]", inputs: ["height", "minHeight", "maxHeight", "ariaLabel", "ariaLabelledBy", "role", "noPadding", "transparent", "id"] }, { kind: "directive", type: i6$2.PanelTitleDirective, selector: "[fd-panel-title]", inputs: ["id", "wrap"] }, { kind: "component", type: i6.PopoverControlComponent, selector: "fd-popover-control, [fdPopoverControl]" }, { kind: "component", type: i6.PopoverBodyComponent, selector: "fd-popover-body", inputs: ["minWidth", "maxWidth", "minHeight", "maxHeight"], outputs: ["onClose"] }, { kind: "component", type: i6.PopoverComponent, selector: "fd-popover", inputs: ["config", "title", "trigger", "id", "mobile", "mobileConfig", "preventSpaceKeyScroll", "placement", "maxWidth", "fillControlMode", "closeOnOutsideClick", "closeOnEscapeKey", "disabled", "triggers", "focusTrapped", "focusAutoCapture", "restoreFocusOnClose", "noArrow", "disableScrollbar", "appendTo", "placementContainer", "scrollStrategy", "cdkPositions", "applyOverlay", "additionalBodyClass", "additionalTriggerClass", "closeOnNavigation", "fixedPosition", "resizable", "bodyAriaLabel", "bodyRole", "bodyAriaLabelledBy", "isOpen"], outputs: ["triggerChange", "isOpenChange", "beforeOpen"] }, { kind: "component", type: FileViewerPopoverComponent, selector: "bsu-file-viewer-popover", inputs: ["files", "file", "index", "deviceSize", "canDownload", "disableRemove", "fdType", "attachmentViewType"], outputs: ["remove"] }, { kind: "directive", type: DownloadFilesDirective, selector: "[downloadFiles]", inputs: ["files", "nozip"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "pipe", type: i2.BbbTranslatePipe, name: "bbbTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
15982
16107
|
}
|
|
15983
16108
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: BarsaPishnamayeshPayamComponent, decorators: [{
|
|
15984
16109
|
type: Component,
|
|
@@ -16156,7 +16281,7 @@ class BarsaLinkableItemsPanelComponent extends LayoutPanelBaseComponent {
|
|
|
16156
16281
|
this.hideControls = this.hideControls.filter((c) => c.Caption !== item.Caption);
|
|
16157
16282
|
}
|
|
16158
16283
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: BarsaLinkableItemsPanelComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
16159
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.8", type: BarsaLinkableItemsPanelComponent, isStandalone: false, selector: "bsu-barsa-linkable-items-panel", providers: [LayoutService], usesInheritance: true, ngImport: i0, template: "@for (item of visibleControls; track item; let i = $index) {\r\n<ng-container\r\n *ngTemplateOutlet=\"\r\n dynamicLayout;\r\n context: {\r\n $implicit: item,\r\n selector: 'bsu-layout-control',\r\n name: 'LayoutControlComponent',\r\n index: i\r\n }\r\n \"\r\n></ng-container>\r\n}\r\n<ng-template\r\n #dynamicLayout\r\n let-index\r\n let-config\r\n let-selector=\"selector\"\r\n let-maxLabelWidth=\"maxLabelWidth\"\r\n let-name=\"name\"\r\n>\r\n <bnrc-dynamic-layout\r\n [config]=\"config\"\r\n [selector]=\"selector\"\r\n [name]=\"name\"\r\n [module]=\"'BarsaSapUi'\"\r\n [moduleFileName]=\"'BarsaSapUi'\"\r\n [maxLabelWidth]=\"(maxLabelWidth$ | async)!!\"\r\n [flex]=\"config.Bounds.width\"\r\n [isSearchPanel]=\"isSearchPanel\"\r\n >\r\n </bnrc-dynamic-layout>\r\n</ng-template>\r\n<div style=\"display: flex; column-gap: 3px; padding: 0 5px\">\r\n @for (item of hideControls; track item; let i = $index) {\r\n <a fd-link [attr.aria-label]=\"item.Caption\" (click)=\"onAddToVisibleControls(item)\"> {{ item.Caption }}</a>\r\n @if (i < hideControls.length - 1) {\r\n <span>/</span>\r\n } }\r\n</div>\r\n", styles: [""], dependencies: [{ kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i2.DynamicLayoutComponent, selector: "bnrc-dynamic-layout", inputs: ["selector", "module", "name", "parameters", "moduleFileName", "flex", "config", "maxLabelWidth", "hasHorizontalText", "isSearchPanel"] }, { kind: "component", type: i2$
|
|
16284
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.8", type: BarsaLinkableItemsPanelComponent, isStandalone: false, selector: "bsu-barsa-linkable-items-panel", providers: [LayoutService], usesInheritance: true, ngImport: i0, template: "@for (item of visibleControls; track item; let i = $index) {\r\n<ng-container\r\n *ngTemplateOutlet=\"\r\n dynamicLayout;\r\n context: {\r\n $implicit: item,\r\n selector: 'bsu-layout-control',\r\n name: 'LayoutControlComponent',\r\n index: i\r\n }\r\n \"\r\n></ng-container>\r\n}\r\n<ng-template\r\n #dynamicLayout\r\n let-index\r\n let-config\r\n let-selector=\"selector\"\r\n let-maxLabelWidth=\"maxLabelWidth\"\r\n let-name=\"name\"\r\n>\r\n <bnrc-dynamic-layout\r\n [config]=\"config\"\r\n [selector]=\"selector\"\r\n [name]=\"name\"\r\n [module]=\"'BarsaSapUi'\"\r\n [moduleFileName]=\"'BarsaSapUi'\"\r\n [maxLabelWidth]=\"(maxLabelWidth$ | async)!!\"\r\n [flex]=\"config.Bounds.width\"\r\n [isSearchPanel]=\"isSearchPanel\"\r\n >\r\n </bnrc-dynamic-layout>\r\n</ng-template>\r\n<div style=\"display: flex; column-gap: 3px; padding: 0 5px\">\r\n @for (item of hideControls; track item; let i = $index) {\r\n <a fd-link [attr.aria-label]=\"item.Caption\" (click)=\"onAddToVisibleControls(item)\"> {{ item.Caption }}</a>\r\n @if (i < hideControls.length - 1) {\r\n <span>/</span>\r\n } }\r\n</div>\r\n", styles: [""], dependencies: [{ kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i2.DynamicLayoutComponent, selector: "bnrc-dynamic-layout", inputs: ["selector", "module", "name", "parameters", "moduleFileName", "flex", "config", "maxLabelWidth", "hasHorizontalText", "isSearchPanel"] }, { kind: "component", type: i2$6.LinkComponent, selector: "[fdLink], [fd-link]", inputs: ["emphasized", "disabled", "inverted", "subtle", "undecorated", "touchTarget"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
16160
16285
|
}
|
|
16161
16286
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: BarsaLinkableItemsPanelComponent, decorators: [{
|
|
16162
16287
|
type: Component,
|
|
@@ -16814,7 +16939,7 @@ class BarsaQuestionPostComponent extends BaseViewItemPropsComponent {
|
|
|
16814
16939
|
this.events.emit({ title: 'rowClick', data: { mo: this.mo, index: this.index } });
|
|
16815
16940
|
}
|
|
16816
16941
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: BarsaQuestionPostComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
16817
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.8", type: BarsaQuestionPostComponent, isStandalone: false, selector: "bsu-barsa-question-post", usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div class=\"tw-w-full tw-flex tw-items-start tw-gap-2 tw-pt-8\">\r\n @if (!isMobile) {\r\n <div class=\"tw-shrink-0 tw-grow-0 tw-w-12\">\r\n <div class=\"tw-size-10 tw-rounded-full tw-bg-gray-500 tw-overflow-hidden\">\r\n <img src=\"https://picsum.photos/50/50?x={{ '\u0639\u0646\u0648\u0627\u0646' | rval: mo:allColumns:true }}\" class=\"tw-full h-full\" loading=\"lazy\"/>\r\n </div>\r\n </div>\r\n } @if (isMobile) {\r\n <div\r\n class=\"tw-shrink-0 tw-grow-0 tw-py-1 tw-text-center tw-w-10 tw-border tw-rounded-md\"\r\n [ngClass]=\"{\r\n 'tw-border-gray-500 tw-text-gray-500': mo.F4 === '0',\r\n 'tw-border-green-600 tw-text-green-600': mo.F4 !== '0',\r\n 'tw-bg-green-600 tw-text-white': !!('\u067E\u0627\u0633\u062E \u0635\u062D\u06CC\u062D' | rval: mo:allColumns:true)\r\n }\"\r\n >\r\n {{ mo.TotalVotes$Caption }}\r\n </div>\r\n }\r\n <div class=\"tw-grow tw-shrink tw-flex tw-flex-col tw-gap-2\">\r\n <div class=\"tw-w-full tw-flex tw-justify-between\">\r\n <div class=\"tw-grow tw-flex tw-flex-col tw-gap-1\">\r\n <span class=\"!tw-text-[.75rem]\">\r\n <span class=\"tw-font-bold\">{{ '\u06A9\u0627\u0631\u0628\u0631 \u0627\u06CC\u062C\u0627\u062F \u06A9\u0646\u0646\u062F\u0647' | rval: mo:allColumns:true }}</span>\r\n \u067E\u0631\u0633\u06CC\u062F\u0647 \u0627\u0633\u062A\r\n <span class=\"tw-font-bold\">|</span>\r\n {{ '\u0632\u0645\u0627\u0646 \u0627\u06CC\u062C\u0627\u062F' | rval: mo:allColumns:true }}\r\n </span>\r\n <a\r\n fd-link\r\n aria-label=\"Standard\"\r\n (click)=\"onRowClick()\"\r\n class=\"!tw-text-[1rem] hover:tw-cursor-pointer !tw-no-underline tw-transition-all\"\r\n >\r\n {{ '\u0639\u0646\u0648\u0627\u0646' | rval: mo:allColumns:true }}\r\n @if (mo.IsClosed) {\r\n <span class=\"tw-black tw-text-sm tw-ms-1\">[\u0628\u0633\u062A\u0647 \u0634\u062F\u0647]</span>\r\n }\r\n </a>\r\n <div class=\"!tw-text-[.75rem] tw-flex tw-gap-2\">\r\n <span>\r\n <span class=\"tw-font-bold\">{{ '\u06A9\u0627\u0631\u0628\u0631 \u0627\u06CC\u062C\u0627\u062F \u06A9\u0646\u0646\u062F\u0647' | rval: mo:allColumns:true }}</span>\r\n \u0648\u06CC\u0631\u0627\u06CC\u0634 \u06A9\u0631\u062F\u0647 \u0627\u0633\u062A\r\n </span>\r\n <span class=\"tw-font-bold\">|</span>\r\n {{ '\u0632\u0645\u0627\u0646 \u0622\u062E\u0631\u06CC\u0646 \u062A\u063A\u06CC\u06CC\u0631' | rval: mo:allColumns:true }}\r\n </div>\r\n @if (!isMobile && mo.Tags.MoDataList.length) {\r\n <div class=\"tw-text-small tw-flex tw-gap-2 tw-flex-wrap\">\r\n @for (tag of mo.Tags.MoDataList; track tag; let last = $last) {\r\n <a\r\n class=\"tw-text-[.625rem] tw-block hover:tw-cursor-pointer tw-border tw-border-solid tw-border-transparent tw-whitespace-nowrap tw-text-blue-800 hover:tw-text-blue-700 tw-py-0.5 tw-px-1.5 tw-rounded-md tw-bg-[rgb(237,245,253)] tw-no-underline hover:tw-border-[rgb(203,231,255)] tw-transition-all\"\r\n >{{ tag.$Caption }}</a\r\n >\r\n }\r\n </div>\r\n }\r\n </div>\r\n @if (!isMobile) {\r\n <div class=\"tw-shrink-0 tw-grow-0 tw-flex tw-gap-1 tw-items-start\">\r\n <div\r\n class=\"!tw-text-[.75rem] tw-px-2 py-1 tw-rounded-md tw-flex tw-flex-col tw-gap-2 tw-items-center\"\r\n [ngClass]=\"{\r\n 'tw-bg-green-100': mo.CorrectAnswer\r\n }\"\r\n >\r\n <span>\u067E\u0627\u0633\u062E \u0647\u0627</span>\r\n <span>{{ mo.CountOfAnswers }}</span>\r\n </div>\r\n <div\r\n class=\"!tw-text-[.75rem] tw-px-2 tw-py-1 tw-rounded-lg tw-flex tw-flex-col tw-gap-2 tw-items-center\"\r\n >\r\n <span>\u0631\u0627\u06CC \u0647\u0627</span>\r\n <span>{{ '\u0645\u062C\u0645\u0648\u0639 \u0631\u0627\u06CC \u0647\u0627' | rval: mo:allColumns:true }}</span>\r\n </div>\r\n </div>\r\n }\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [""], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: i2$
|
|
16942
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.8", type: BarsaQuestionPostComponent, isStandalone: false, selector: "bsu-barsa-question-post", usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div class=\"tw-w-full tw-flex tw-items-start tw-gap-2 tw-pt-8\">\r\n @if (!isMobile) {\r\n <div class=\"tw-shrink-0 tw-grow-0 tw-w-12\">\r\n <div class=\"tw-size-10 tw-rounded-full tw-bg-gray-500 tw-overflow-hidden\">\r\n <img src=\"https://picsum.photos/50/50?x={{ '\u0639\u0646\u0648\u0627\u0646' | rval: mo:allColumns:true }}\" class=\"tw-full h-full\" loading=\"lazy\"/>\r\n </div>\r\n </div>\r\n } @if (isMobile) {\r\n <div\r\n class=\"tw-shrink-0 tw-grow-0 tw-py-1 tw-text-center tw-w-10 tw-border tw-rounded-md\"\r\n [ngClass]=\"{\r\n 'tw-border-gray-500 tw-text-gray-500': mo.F4 === '0',\r\n 'tw-border-green-600 tw-text-green-600': mo.F4 !== '0',\r\n 'tw-bg-green-600 tw-text-white': !!('\u067E\u0627\u0633\u062E \u0635\u062D\u06CC\u062D' | rval: mo:allColumns:true)\r\n }\"\r\n >\r\n {{ mo.TotalVotes$Caption }}\r\n </div>\r\n }\r\n <div class=\"tw-grow tw-shrink tw-flex tw-flex-col tw-gap-2\">\r\n <div class=\"tw-w-full tw-flex tw-justify-between\">\r\n <div class=\"tw-grow tw-flex tw-flex-col tw-gap-1\">\r\n <span class=\"!tw-text-[.75rem]\">\r\n <span class=\"tw-font-bold\">{{ '\u06A9\u0627\u0631\u0628\u0631 \u0627\u06CC\u062C\u0627\u062F \u06A9\u0646\u0646\u062F\u0647' | rval: mo:allColumns:true }}</span>\r\n \u067E\u0631\u0633\u06CC\u062F\u0647 \u0627\u0633\u062A\r\n <span class=\"tw-font-bold\">|</span>\r\n {{ '\u0632\u0645\u0627\u0646 \u0627\u06CC\u062C\u0627\u062F' | rval: mo:allColumns:true }}\r\n </span>\r\n <a\r\n fd-link\r\n aria-label=\"Standard\"\r\n (click)=\"onRowClick()\"\r\n class=\"!tw-text-[1rem] hover:tw-cursor-pointer !tw-no-underline tw-transition-all\"\r\n >\r\n {{ '\u0639\u0646\u0648\u0627\u0646' | rval: mo:allColumns:true }}\r\n @if (mo.IsClosed) {\r\n <span class=\"tw-black tw-text-sm tw-ms-1\">[\u0628\u0633\u062A\u0647 \u0634\u062F\u0647]</span>\r\n }\r\n </a>\r\n <div class=\"!tw-text-[.75rem] tw-flex tw-gap-2\">\r\n <span>\r\n <span class=\"tw-font-bold\">{{ '\u06A9\u0627\u0631\u0628\u0631 \u0627\u06CC\u062C\u0627\u062F \u06A9\u0646\u0646\u062F\u0647' | rval: mo:allColumns:true }}</span>\r\n \u0648\u06CC\u0631\u0627\u06CC\u0634 \u06A9\u0631\u062F\u0647 \u0627\u0633\u062A\r\n </span>\r\n <span class=\"tw-font-bold\">|</span>\r\n {{ '\u0632\u0645\u0627\u0646 \u0622\u062E\u0631\u06CC\u0646 \u062A\u063A\u06CC\u06CC\u0631' | rval: mo:allColumns:true }}\r\n </div>\r\n @if (!isMobile && mo.Tags.MoDataList.length) {\r\n <div class=\"tw-text-small tw-flex tw-gap-2 tw-flex-wrap\">\r\n @for (tag of mo.Tags.MoDataList; track tag; let last = $last) {\r\n <a\r\n class=\"tw-text-[.625rem] tw-block hover:tw-cursor-pointer tw-border tw-border-solid tw-border-transparent tw-whitespace-nowrap tw-text-blue-800 hover:tw-text-blue-700 tw-py-0.5 tw-px-1.5 tw-rounded-md tw-bg-[rgb(237,245,253)] tw-no-underline hover:tw-border-[rgb(203,231,255)] tw-transition-all\"\r\n >{{ tag.$Caption }}</a\r\n >\r\n }\r\n </div>\r\n }\r\n </div>\r\n @if (!isMobile) {\r\n <div class=\"tw-shrink-0 tw-grow-0 tw-flex tw-gap-1 tw-items-start\">\r\n <div\r\n class=\"!tw-text-[.75rem] tw-px-2 py-1 tw-rounded-md tw-flex tw-flex-col tw-gap-2 tw-items-center\"\r\n [ngClass]=\"{\r\n 'tw-bg-green-100': mo.CorrectAnswer\r\n }\"\r\n >\r\n <span>\u067E\u0627\u0633\u062E \u0647\u0627</span>\r\n <span>{{ mo.CountOfAnswers }}</span>\r\n </div>\r\n <div\r\n class=\"!tw-text-[.75rem] tw-px-2 tw-py-1 tw-rounded-lg tw-flex tw-flex-col tw-gap-2 tw-items-center\"\r\n >\r\n <span>\u0631\u0627\u06CC \u0647\u0627</span>\r\n <span>{{ '\u0645\u062C\u0645\u0648\u0639 \u0631\u0627\u06CC \u0647\u0627' | rval: mo:allColumns:true }}</span>\r\n </div>\r\n </div>\r\n }\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [""], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: i2$6.LinkComponent, selector: "[fdLink], [fd-link]", inputs: ["emphasized", "disabled", "inverted", "subtle", "undecorated", "touchTarget"] }, { kind: "pipe", type: i2.MoReportValuePipe, name: "rval" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
16818
16943
|
}
|
|
16819
16944
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: BarsaQuestionPostComponent, decorators: [{
|
|
16820
16945
|
type: Component,
|
|
@@ -16900,7 +17025,7 @@ class BarsaQuestionAnswerContentActionsSectionComponent {
|
|
|
16900
17025
|
return this._domSanitizer.bypassSecurityTrustHtml(html ?? '');
|
|
16901
17026
|
}
|
|
16902
17027
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: BarsaQuestionAnswerContentActionsSectionComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
16903
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.8", type: BarsaQuestionAnswerContentActionsSectionComponent, isStandalone: false, selector: "bsu-barsa-question-answer-content-actions-section", inputs: { mo: "mo", buttons: "buttons" }, outputs: { btnClick: "btnClick" }, host: { classAttribute: "w-full flex grow shrink flex-col" }, providers: [UploadService], ngImport: i0, template: "<div class=\"tw-my-4 [&_*]:!tw-bg-transparent\" [innerHTML]=\"safeHtml(mo.Post.Content)\"></div>\r\n<div class=\"tw-grow tw-shrink\"></div>\r\n<div class=\"tw-flex tw-justify-between tw-items-center\">\r\n @if (mo.Tags?.MoDataList) {\r\n <div class=\"tw-flex tw-gap-3\">\r\n @for (tag of mo.Tags.MoDataList; track tag) {\r\n <bsu-barsa-chip [title]=\"tag.$Caption\"></bsu-barsa-chip>\r\n }\r\n </div>\r\n }\r\n <div class=\"tw-flex tw-gap-3\">\r\n @for (item of buttons; track item) { @if (!item.hidden && !item.isBuiltin) {\r\n <a\r\n fd-link\r\n aria-label=\"Emphasized\"\r\n class=\"!hover:tw-cursor-pointer !tw-no-underline\"\r\n (click)=\"btnClick.emit(); item.handler(item, item)\"\r\n [disabled]=\"item.disabled\"\r\n >{{ item.text }}</a\r\n >\r\n } }\r\n </div>\r\n</div>\r\n", styles: [""], dependencies: [{ kind: "component", type: i2$
|
|
17028
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.8", type: BarsaQuestionAnswerContentActionsSectionComponent, isStandalone: false, selector: "bsu-barsa-question-answer-content-actions-section", inputs: { mo: "mo", buttons: "buttons" }, outputs: { btnClick: "btnClick" }, host: { classAttribute: "w-full flex grow shrink flex-col" }, providers: [UploadService], ngImport: i0, template: "<div class=\"tw-my-4 [&_*]:!tw-bg-transparent\" [innerHTML]=\"safeHtml(mo.Post.Content)\"></div>\r\n<div class=\"tw-grow tw-shrink\"></div>\r\n<div class=\"tw-flex tw-justify-between tw-items-center\">\r\n @if (mo.Tags?.MoDataList) {\r\n <div class=\"tw-flex tw-gap-3\">\r\n @for (tag of mo.Tags.MoDataList; track tag) {\r\n <bsu-barsa-chip [title]=\"tag.$Caption\"></bsu-barsa-chip>\r\n }\r\n </div>\r\n }\r\n <div class=\"tw-flex tw-gap-3\">\r\n @for (item of buttons; track item) { @if (!item.hidden && !item.isBuiltin) {\r\n <a\r\n fd-link\r\n aria-label=\"Emphasized\"\r\n class=\"!hover:tw-cursor-pointer !tw-no-underline\"\r\n (click)=\"btnClick.emit(); item.handler(item, item)\"\r\n [disabled]=\"item.disabled\"\r\n >{{ item.text }}</a\r\n >\r\n } }\r\n </div>\r\n</div>\r\n", styles: [""], dependencies: [{ kind: "component", type: i2$6.LinkComponent, selector: "[fdLink], [fd-link]", inputs: ["emphasized", "disabled", "inverted", "subtle", "undecorated", "touchTarget"] }, { kind: "component", type: BarsaChipComponent, selector: "bsu-barsa-chip", inputs: ["title", "moreInfo", "canCheck", "isChecked"], outputs: ["checkedChange"] }], changeDetection: i0.ChangeDetectionStrategy.Eager }); }
|
|
16904
17029
|
}
|
|
16905
17030
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: BarsaQuestionAnswerContentActionsSectionComponent, decorators: [{
|
|
16906
17031
|
type: Component,
|
|
@@ -16974,7 +17099,7 @@ class BarsaQuestionAnswerVoteSectionComponent extends BaseComponent {
|
|
|
16974
17099
|
// }
|
|
16975
17100
|
}
|
|
16976
17101
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: BarsaQuestionAnswerVoteSectionComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
16977
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "22.0.8", type: BarsaQuestionAnswerVoteSectionComponent, isStandalone: false, selector: "bsu-barsa-question-answer-vote-section", inputs: { vote: "vote", voteDowns: "voteDowns", voteUps: "voteUps" }, outputs: { voteChange: "voteChange" }, providers: [UploadService], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div class=\"tw-flex tw-items-stretch tw-grow tw-shrink-0\">\r\n <div class=\"tw-flex tw-flex-col tw-tems-center tw-gap-1 tw-shrink-0 tw-grow-0\">\r\n <button\r\n fd-button\r\n [fdType]=\"vote === '' ? 'standard' : vote ? 'positive' : 'standard'\"\r\n glyph=\"add\"\r\n class=\"!tw-max-w-8 !tw-max-h-8 !tw-size-8 !tw-rounded-full !tw-border-2\"\r\n (click)=\"onVote(true)\"\r\n ></button>\r\n <span class=\"tw-text-lg tw-font-bold\" dir=\"ltr\">{{ voteUps - voteDowns }}</span>\r\n <button\r\n fd-button\r\n [fdType]=\"vote === '' ? 'standard' : !vote ? 'negative' : 'standard'\"\r\n glyph=\"less\"\r\n class=\"!tw-max-w-8 !tw-max-h-8 !tw-size-8 !tw-rounded-full !tw-border-2\"\r\n (click)=\"onVote(false)\"\r\n ></button>\r\n </div>\r\n</div>\r\n", styles: [""], dependencies: [{ kind: "component", type: i1$4.ButtonComponent, selector: "button[fd-button], a[fd-button], span[fd-button]", inputs: ["id"], exportAs: ["fd-button"] }, { kind: "directive", type: i2$
|
|
17102
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "22.0.8", type: BarsaQuestionAnswerVoteSectionComponent, isStandalone: false, selector: "bsu-barsa-question-answer-vote-section", inputs: { vote: "vote", voteDowns: "voteDowns", voteUps: "voteUps" }, outputs: { voteChange: "voteChange" }, providers: [UploadService], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div class=\"tw-flex tw-items-stretch tw-grow tw-shrink-0\">\r\n <div class=\"tw-flex tw-flex-col tw-tems-center tw-gap-1 tw-shrink-0 tw-grow-0\">\r\n <button\r\n fd-button\r\n [fdType]=\"vote === '' ? 'standard' : vote ? 'positive' : 'standard'\"\r\n glyph=\"add\"\r\n class=\"!tw-max-w-8 !tw-max-h-8 !tw-size-8 !tw-rounded-full !tw-border-2\"\r\n (click)=\"onVote(true)\"\r\n ></button>\r\n <span class=\"tw-text-lg tw-font-bold\" dir=\"ltr\">{{ voteUps - voteDowns }}</span>\r\n <button\r\n fd-button\r\n [fdType]=\"vote === '' ? 'standard' : !vote ? 'negative' : 'standard'\"\r\n glyph=\"less\"\r\n class=\"!tw-max-w-8 !tw-max-h-8 !tw-size-8 !tw-rounded-full !tw-border-2\"\r\n (click)=\"onVote(false)\"\r\n ></button>\r\n </div>\r\n</div>\r\n", styles: [""], dependencies: [{ kind: "component", type: i1$4.ButtonComponent, selector: "button[fd-button], a[fd-button], span[fd-button]", inputs: ["id"], exportAs: ["fd-button"] }, { kind: "directive", type: i2$7.ɵɵDir, selector: "[dir]", inputs: ["dir"], outputs: ["dirChange"], exportAs: ["dir"] }], changeDetection: i0.ChangeDetectionStrategy.Eager }); }
|
|
16978
17103
|
}
|
|
16979
17104
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: BarsaQuestionAnswerVoteSectionComponent, decorators: [{
|
|
16980
17105
|
type: Component,
|
|
@@ -17027,7 +17152,7 @@ class BarsaQuestionAnswerFormAddCommentComponent {
|
|
|
17027
17152
|
});
|
|
17028
17153
|
}
|
|
17029
17154
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: BarsaQuestionAnswerFormAddCommentComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
17030
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.8", type: BarsaQuestionAnswerFormAddCommentComponent, isStandalone: false, selector: "bsu-barsa-question-answer-form-add-comment", inputs: { postId: "postId" }, outputs: { addComment: "addComment" }, host: { classAttribute: "w-full" }, ngImport: i0, template: "@if (!showAddCommentTextArea) {\r\n<div class=\"tw-w-full tw-mt-2 tw-flex tw-gap-3\">\r\n <a\r\n fd-link\r\n aria-label=\"Emphasized\"\r\n class=\"hover:tw-cursor-pointer\"\r\n (click)=\"showAddCommentTextArea = true; newCommentText = ''\"\r\n >\u0627\u0631\u0633\u0627\u0644 \u0646\u0638\u0631</a\r\n >\r\n <ng-content></ng-content>\r\n</div>\r\n}\r\n<div [class.!flex]=\"showAddCommentTextArea\" class=\"tw-hidden tw-items-end tw-w-full tw-gap-4\">\r\n <textarea\r\n rows=\"3\"\r\n class=\"tw-block tw-p-2.5 tw-w-full tw-text-sm tw-text-gray-900 tw-bg-gray-50 tw-rounded-lg tw-border tw-border-gray-300\"\r\n placeholder=\"\u0646\u0638\u0631 \u0634\u0645\u0627...\"\r\n [disabled]=\"sending\"\r\n [(ngModel)]=\"newCommentText\"\r\n ></textarea>\r\n <div class=\"tw-flex tw-justify-end\">\r\n <button fd-button fdType=\"standard\" [disabled]=\"sending || newCommentText.length < 3\" (click)=\"onAddComment()\">\r\n \u0627\u0631\u0633\u0627\u0644\r\n </button>\r\n </div>\r\n</div>\r\n", styles: [""], dependencies: [{ kind: "directive", type: i1$1.DefaultValueAccessor, selector: "input:not([type=checkbox]):not([ngNoCva])[formControlName],textarea:not([ngNoCva])[formControlName],input:not([type=checkbox]):not([ngNoCva])[formControl],textarea:not([ngNoCva])[formControl],input:not([type=checkbox]):not([ngNoCva])[ngModel],textarea:not([ngNoCva])[ngModel],[ngDefaultControl]" }, { 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$
|
|
17155
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.8", type: BarsaQuestionAnswerFormAddCommentComponent, isStandalone: false, selector: "bsu-barsa-question-answer-form-add-comment", inputs: { postId: "postId" }, outputs: { addComment: "addComment" }, host: { classAttribute: "w-full" }, ngImport: i0, template: "@if (!showAddCommentTextArea) {\r\n<div class=\"tw-w-full tw-mt-2 tw-flex tw-gap-3\">\r\n <a\r\n fd-link\r\n aria-label=\"Emphasized\"\r\n class=\"hover:tw-cursor-pointer\"\r\n (click)=\"showAddCommentTextArea = true; newCommentText = ''\"\r\n >\u0627\u0631\u0633\u0627\u0644 \u0646\u0638\u0631</a\r\n >\r\n <ng-content></ng-content>\r\n</div>\r\n}\r\n<div [class.!flex]=\"showAddCommentTextArea\" class=\"tw-hidden tw-items-end tw-w-full tw-gap-4\">\r\n <textarea\r\n rows=\"3\"\r\n class=\"tw-block tw-p-2.5 tw-w-full tw-text-sm tw-text-gray-900 tw-bg-gray-50 tw-rounded-lg tw-border tw-border-gray-300\"\r\n placeholder=\"\u0646\u0638\u0631 \u0634\u0645\u0627...\"\r\n [disabled]=\"sending\"\r\n [(ngModel)]=\"newCommentText\"\r\n ></textarea>\r\n <div class=\"tw-flex tw-justify-end\">\r\n <button fd-button fdType=\"standard\" [disabled]=\"sending || newCommentText.length < 3\" (click)=\"onAddComment()\">\r\n \u0627\u0631\u0633\u0627\u0644\r\n </button>\r\n </div>\r\n</div>\r\n", styles: [""], dependencies: [{ kind: "directive", type: i1$1.DefaultValueAccessor, selector: "input:not([type=checkbox]):not([ngNoCva])[formControlName],textarea:not([ngNoCva])[formControlName],input:not([type=checkbox]):not([ngNoCva])[formControl],textarea:not([ngNoCva])[formControl],input:not([type=checkbox]):not([ngNoCva])[ngModel],textarea:not([ngNoCva])[ngModel],[ngDefaultControl]" }, { 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$6.LinkComponent, selector: "[fdLink], [fd-link]", inputs: ["emphasized", "disabled", "inverted", "subtle", "undecorated", "touchTarget"] }, { kind: "component", type: i1$4.ButtonComponent, selector: "button[fd-button], a[fd-button], span[fd-button]", inputs: ["id"], exportAs: ["fd-button"] }], changeDetection: i0.ChangeDetectionStrategy.Eager }); }
|
|
17031
17156
|
}
|
|
17032
17157
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: BarsaQuestionAnswerFormAddCommentComponent, decorators: [{
|
|
17033
17158
|
type: Component,
|
|
@@ -17042,7 +17167,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
|
|
|
17042
17167
|
|
|
17043
17168
|
class BarsaQuestionAnswerCommentsSectionComponent {
|
|
17044
17169
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: BarsaQuestionAnswerCommentsSectionComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
17045
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.8", type: BarsaQuestionAnswerCommentsSectionComponent, isStandalone: false, selector: "bsu-barsa-question-answer-comments-section", inputs: { post: "post" }, providers: [UploadService], ngImport: i0, template: "<div class=\"tw-flex tw-w-full tw-flex-col tw-items-start\">\r\n <div class=\"tw-border-b tw-border-gray-300 tw-w-full tw-mt-2\"></div>\r\n @if (post.Comments.MoDataList.length > 2 && !post.showAllCommnets) {\r\n <ng-container\r\n *ngTemplateOutlet=\"CommentRows; context: { $implicit: post.Comments.MoDataList.slice(0, 2) }\"\r\n ></ng-container>\r\n } @else {\r\n <ng-container *ngTemplateOutlet=\"CommentRows; context: { $implicit: post.Comments.MoDataList }\"></ng-container>\r\n }\r\n <ng-template #CommentRows let-comments>\r\n @for (comment of comments; track comment) {\r\n <div class=\"tw-py-2 tw-border-b tw-border-gray-200 tw-text-sm tw-w-full\">\r\n <p>\r\n <a fd-link class=\"tw-inline\">{{ comment.CreatorUser$Caption.trim() }}</a>\r\n <span class=\"tw-text-gray-500\">({{ comment.CreationDate$Caption.trim() }}):</span>\r\n {{ comment.$Caption.trim() }}\r\n @if ( comment.LastUpdateDate && comment.LastUpdateDate.getTime() !== comment.CreationDate.getTime() ) {\r\n <span class=\"tw-italic tw-text-gray-500\">\r\n -\r\n {{ comment.LastUpdateDate$Caption }}\r\n \u0648\u06CC\u0631\u0627\u06CC\u0634 \u0634\u062F\u0647\r\n </span>\r\n }\r\n </p>\r\n </div>\r\n }\r\n </ng-template>\r\n <bsu-barsa-question-answer-form-add-comment\r\n [postId]=\"post.Id\"\r\n (addComment)=\"post.Comments.MoDataList.push($event); post.showAllCommnets = true\"\r\n >\r\n @if (post.Comments.MoDataList.length > 2 && !post.showAllCommnets) {\r\n <span>|</span>\r\n <a fd-link aria-label=\"Emphasized\" class=\"hover:tw-cursor-pointer\" (click)=\"post.showAllCommnets = true\">\r\n \u0646\u0645\u0627\u06CC\u0634\r\n {{ post.Comments.MoDataList.length - 2 }}\r\n \u0646\u0638\u0631 \u062F\u06CC\u06AF\u0631\r\n </a>\r\n }\r\n </bsu-barsa-question-answer-form-add-comment>\r\n</div>\r\n", styles: [""], dependencies: [{ kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i2$
|
|
17170
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.8", type: BarsaQuestionAnswerCommentsSectionComponent, isStandalone: false, selector: "bsu-barsa-question-answer-comments-section", inputs: { post: "post" }, providers: [UploadService], ngImport: i0, template: "<div class=\"tw-flex tw-w-full tw-flex-col tw-items-start\">\r\n <div class=\"tw-border-b tw-border-gray-300 tw-w-full tw-mt-2\"></div>\r\n @if (post.Comments.MoDataList.length > 2 && !post.showAllCommnets) {\r\n <ng-container\r\n *ngTemplateOutlet=\"CommentRows; context: { $implicit: post.Comments.MoDataList.slice(0, 2) }\"\r\n ></ng-container>\r\n } @else {\r\n <ng-container *ngTemplateOutlet=\"CommentRows; context: { $implicit: post.Comments.MoDataList }\"></ng-container>\r\n }\r\n <ng-template #CommentRows let-comments>\r\n @for (comment of comments; track comment) {\r\n <div class=\"tw-py-2 tw-border-b tw-border-gray-200 tw-text-sm tw-w-full\">\r\n <p>\r\n <a fd-link class=\"tw-inline\">{{ comment.CreatorUser$Caption.trim() }}</a>\r\n <span class=\"tw-text-gray-500\">({{ comment.CreationDate$Caption.trim() }}):</span>\r\n {{ comment.$Caption.trim() }}\r\n @if ( comment.LastUpdateDate && comment.LastUpdateDate.getTime() !== comment.CreationDate.getTime() ) {\r\n <span class=\"tw-italic tw-text-gray-500\">\r\n -\r\n {{ comment.LastUpdateDate$Caption }}\r\n \u0648\u06CC\u0631\u0627\u06CC\u0634 \u0634\u062F\u0647\r\n </span>\r\n }\r\n </p>\r\n </div>\r\n }\r\n </ng-template>\r\n <bsu-barsa-question-answer-form-add-comment\r\n [postId]=\"post.Id\"\r\n (addComment)=\"post.Comments.MoDataList.push($event); post.showAllCommnets = true\"\r\n >\r\n @if (post.Comments.MoDataList.length > 2 && !post.showAllCommnets) {\r\n <span>|</span>\r\n <a fd-link aria-label=\"Emphasized\" class=\"hover:tw-cursor-pointer\" (click)=\"post.showAllCommnets = true\">\r\n \u0646\u0645\u0627\u06CC\u0634\r\n {{ post.Comments.MoDataList.length - 2 }}\r\n \u0646\u0638\u0631 \u062F\u06CC\u06AF\u0631\r\n </a>\r\n }\r\n </bsu-barsa-question-answer-form-add-comment>\r\n</div>\r\n", styles: [""], dependencies: [{ kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i2$6.LinkComponent, selector: "[fdLink], [fd-link]", inputs: ["emphasized", "disabled", "inverted", "subtle", "undecorated", "touchTarget"] }, { kind: "component", type: BarsaQuestionAnswerFormAddCommentComponent, selector: "bsu-barsa-question-answer-form-add-comment", inputs: ["postId"], outputs: ["addComment"] }], changeDetection: i0.ChangeDetectionStrategy.Eager }); }
|
|
17046
17171
|
}
|
|
17047
17172
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: BarsaQuestionAnswerCommentsSectionComponent, decorators: [{
|
|
17048
17173
|
type: Component,
|
|
@@ -17149,7 +17274,7 @@ class BarsaReportCardFlexViewComponent extends ReportViewBaseComponent {
|
|
|
17149
17274
|
});
|
|
17150
17275
|
}
|
|
17151
17276
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: BarsaReportCardFlexViewComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
17152
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.8", type: BarsaReportCardFlexViewComponent, isStandalone: false, selector: "bsu-barsa-report-card-flex-view", usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div class=\"tw-flex tw-flex-col tw-border tw-border-gray-200 tw-bg-white tw-rounded-md\">\r\n <div class=\"tw-px-4 tw-py-2 tw-border-b tw-border-gray-200 tw-text-lg\">{{ title }}</div>\r\n <div\r\n class=\"tw-flex tw-flex-wrap\"\r\n [ngClass]=\"{\r\n 'tw-px-4 tw-py-3': !viewSetting.NoContentPadding,\r\n 'tw-flex-col': viewSetting.FlexCol,\r\n 'tw-gap-2': viewSetting.RowOlgo.Selector\r\n }\"\r\n >\r\n @for (mo of moDataList; track mo; let index = $index) { @if (viewSetting?.RowOlgo.Selector) {\r\n <bnrc-dynamic-item-component\r\n [component]=\"viewSetting.RowOlgo\"\r\n [mo]=\"mo\"\r\n [UlvMainCtrlr]=\"UlvMainCtrlr\"\r\n [moDataList]=\"moDataList\"\r\n [hideOpenIcon]=\"hideOpenIcon\"\r\n [showRowNumber]=\"contextView?.Grid_ShowRowNumber\"\r\n [rowNumber]=\"mo.Id | rowNumber: pagingSetting:moDataList\"\r\n [columnComponents]=\"viewSetting?.ColumnComponents || null\"\r\n [cartableMo]=\"mo.RelatedMo\"\r\n [cartableWorkflowData]=\"mo.SerializedWorkflowData\"\r\n [serializedRelatedMo]=\"mo.SerializedRelatedMo\"\r\n [detailsText]=\"viewSetting?.DetailsSetting?.ButtonText\"\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 [typeDefId]=\"typeDefId\"\r\n [extraRelation]=\"extraRelation\"\r\n [formSetting]=\"formSetting\"\r\n [index]=\"index\"\r\n [setting]=\"viewSetting\"\r\n [secondaryColumns]=\"secondaryColumns\"\r\n [columns]=\"columns\"\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 [index]=\"index\"\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 (events)=\"onOlgoEvents($event)\"\r\n >\r\n </bnrc-dynamic-item-component>\r\n } @else {\r\n <div\r\n class=\"tw-group hover:tw-bg-[#fdfdfd] tw-px-4 tw-py-2 tw-transition-all hover:tw-cursor-pointer\"\r\n (click)=\"onRowClick({mo, index})\"\r\n >\r\n <a fd-link class=\"tw-block group-hover:tw-text-black !tw-no-underline\">\r\n <div\r\n class=\"tw-inline-block tw-w-8 tw-h-5 tw-p-.5 tw-text-small tw-text-center tw-rounded-md tw-border tw-border-gray-400 tw-text-gray-400\"\r\n [class.!text-green-500]=\"\r\n ('\u062A\u0639\u062F\u0627\u062F \u067E\u0627\u0633\u062E \u0647\u0627' | rval: mo:allColumns) > 0 && !('\u067E\u0627\u0633\u062E \u0635\u062D\u06CC\u062D' | rval: mo:allColumns)\r\n \"\r\n [class.!tw-border-green-500]=\"('\u062A\u0639\u062F\u0627\u062F \u067E\u0627\u0633\u062E \u0647\u0627' | rval: mo:allColumns) > 0\"\r\n [class.!tw-bg-green-500]=\"'\u067E\u0627\u0633\u062E \u0635\u062D\u06CC\u062D' | rval: mo:allColumns\"\r\n [class.!tw-text-white]=\"'\u067E\u0627\u0633\u062E \u0635\u062D\u06CC\u062D' | rval: mo:allColumns\"\r\n >\r\n {{ '\u0645\u062C\u0645\u0648\u0639 \u0631\u0627\u06CC \u0647\u0627' | rval: mo:allColumns:true }}\r\n </div>\r\n {{ mo.$Caption }}\r\n </a>\r\n </div>\r\n } }\r\n </div>\r\n @if (!viewSetting.HideShowAllButton) {\r\n <div class=\"tw-px-4 tw-py-2 tw-border-t tw-border-gray-200 tw-flex tw-justify-center\">\r\n @for (button of toolbarButtons; track button) { @if (!button.Command?.IsBuiltin) {\r\n <a fd-link [ulvCommandHandler]=\"button\">{{ button.text }}</a>\r\n } }\r\n </div>\r\n }\r\n</div>\r\n", styles: [""], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { 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.UlvCommandDirective, selector: "[ulvCommandHandler]", inputs: ["ulvCommandHandler", "disable"], outputs: ["commandClick"] }, { kind: "component", type: i2$
|
|
17277
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.8", type: BarsaReportCardFlexViewComponent, isStandalone: false, selector: "bsu-barsa-report-card-flex-view", usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div class=\"tw-flex tw-flex-col tw-border tw-border-gray-200 tw-bg-white tw-rounded-md\">\r\n <div class=\"tw-px-4 tw-py-2 tw-border-b tw-border-gray-200 tw-text-lg\">{{ title }}</div>\r\n <div\r\n class=\"tw-flex tw-flex-wrap\"\r\n [ngClass]=\"{\r\n 'tw-px-4 tw-py-3': !viewSetting.NoContentPadding,\r\n 'tw-flex-col': viewSetting.FlexCol,\r\n 'tw-gap-2': viewSetting.RowOlgo.Selector\r\n }\"\r\n >\r\n @for (mo of moDataList; track mo; let index = $index) { @if (viewSetting?.RowOlgo.Selector) {\r\n <bnrc-dynamic-item-component\r\n [component]=\"viewSetting.RowOlgo\"\r\n [mo]=\"mo\"\r\n [UlvMainCtrlr]=\"UlvMainCtrlr\"\r\n [moDataList]=\"moDataList\"\r\n [hideOpenIcon]=\"hideOpenIcon\"\r\n [showRowNumber]=\"contextView?.Grid_ShowRowNumber\"\r\n [rowNumber]=\"mo.Id | rowNumber: pagingSetting:moDataList\"\r\n [columnComponents]=\"viewSetting?.ColumnComponents || null\"\r\n [cartableMo]=\"mo.RelatedMo\"\r\n [cartableWorkflowData]=\"mo.SerializedWorkflowData\"\r\n [serializedRelatedMo]=\"mo.SerializedRelatedMo\"\r\n [detailsText]=\"viewSetting?.DetailsSetting?.ButtonText\"\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 [typeDefId]=\"typeDefId\"\r\n [extraRelation]=\"extraRelation\"\r\n [formSetting]=\"formSetting\"\r\n [index]=\"index\"\r\n [setting]=\"viewSetting\"\r\n [secondaryColumns]=\"secondaryColumns\"\r\n [columns]=\"columns\"\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 [index]=\"index\"\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 (events)=\"onOlgoEvents($event)\"\r\n >\r\n </bnrc-dynamic-item-component>\r\n } @else {\r\n <div\r\n class=\"tw-group hover:tw-bg-[#fdfdfd] tw-px-4 tw-py-2 tw-transition-all hover:tw-cursor-pointer\"\r\n (click)=\"onRowClick({mo, index})\"\r\n >\r\n <a fd-link class=\"tw-block group-hover:tw-text-black !tw-no-underline\">\r\n <div\r\n class=\"tw-inline-block tw-w-8 tw-h-5 tw-p-.5 tw-text-small tw-text-center tw-rounded-md tw-border tw-border-gray-400 tw-text-gray-400\"\r\n [class.!text-green-500]=\"\r\n ('\u062A\u0639\u062F\u0627\u062F \u067E\u0627\u0633\u062E \u0647\u0627' | rval: mo:allColumns) > 0 && !('\u067E\u0627\u0633\u062E \u0635\u062D\u06CC\u062D' | rval: mo:allColumns)\r\n \"\r\n [class.!tw-border-green-500]=\"('\u062A\u0639\u062F\u0627\u062F \u067E\u0627\u0633\u062E \u0647\u0627' | rval: mo:allColumns) > 0\"\r\n [class.!tw-bg-green-500]=\"'\u067E\u0627\u0633\u062E \u0635\u062D\u06CC\u062D' | rval: mo:allColumns\"\r\n [class.!tw-text-white]=\"'\u067E\u0627\u0633\u062E \u0635\u062D\u06CC\u062D' | rval: mo:allColumns\"\r\n >\r\n {{ '\u0645\u062C\u0645\u0648\u0639 \u0631\u0627\u06CC \u0647\u0627' | rval: mo:allColumns:true }}\r\n </div>\r\n {{ mo.$Caption }}\r\n </a>\r\n </div>\r\n } }\r\n </div>\r\n @if (!viewSetting.HideShowAllButton) {\r\n <div class=\"tw-px-4 tw-py-2 tw-border-t tw-border-gray-200 tw-flex tw-justify-center\">\r\n @for (button of toolbarButtons; track button) { @if (!button.Command?.IsBuiltin) {\r\n <a fd-link [ulvCommandHandler]=\"button\">{{ button.text }}</a>\r\n } }\r\n </div>\r\n }\r\n</div>\r\n", styles: [""], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { 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.UlvCommandDirective, selector: "[ulvCommandHandler]", inputs: ["ulvCommandHandler", "disable"], outputs: ["commandClick"] }, { kind: "component", type: i2$6.LinkComponent, selector: "[fdLink], [fd-link]", inputs: ["emphasized", "disabled", "inverted", "subtle", "undecorated", "touchTarget"] }, { kind: "pipe", type: i2.MoReportValuePipe, name: "rval" }, { kind: "pipe", type: i2.RowNumberPipe, name: "rowNumber" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
17153
17278
|
}
|
|
17154
17279
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: BarsaReportCardFlexViewComponent, decorators: [{
|
|
17155
17280
|
type: Component,
|
|
@@ -18337,7 +18462,7 @@ class BarsaThemeInspectorComponent {
|
|
|
18337
18462
|
</div>
|
|
18338
18463
|
</fd-popover-body>
|
|
18339
18464
|
</fd-popover>
|
|
18340
|
-
`, isInline: true, styles: [".ti-scope{display:flex;flex-direction:column;gap:4px;padding:8px 12px;font-size:12px;border-bottom:1px solid var(--sapList_BorderColor, #e5e5e5);background:var(--sapList_Background, #fafafa)}.ti-scope-row{display:flex;align-items:center;justify-content:space-between;gap:8px}.ti-scope-label{opacity:.7}.ti-scope-value{font-weight:600}.ti-scope-org{color:var(--sapPositiveColor, #107e3e)}.ti-scope-ver{opacity:.7;font-weight:400;margin-inline-start:4px}.ti-scope-new{color:var(--sapCriticalColor, #e76500)}.ti-scope-hint{opacity:.6;font-size:10px}.ti-body{font-size:12px;overflow:auto;padding:4px 0}.ti-row{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:6px 8px}.ti-row:hover{background:var(--sapList_Hover_Background, #f5f5f5)}.ti-caption{font-weight:600}.ti-var{opacity:.6;direction:ltr;font-size:10px}.ti-empty{padding:12px;text-align:center;opacity:.7}.ti-color{width:36px;height:24px;border:none;background:transparent;cursor:pointer}.ti-font{min-width:9rem;max-width:12rem}.ti-size{display:flex;gap:4px;align-items:center}.ti-num-display{min-width:2.75rem;text-align:center;font-variant-numeric:tabular-nums}.ti-unit{min-width:4.5rem}\n"], dependencies: [{ kind: "component", type: i1$3.BarComponent, selector: "[fd-bar]", inputs: ["barDesign", "inPage", "inHomePage", "clear", "size", "initialSuggestionTitle", "initialSuggestionSubline", "role"] }, { kind: "directive", type: i1$3.BarLeftDirective, selector: "[fd-bar-left]", inputs: ["stackContentsVertically"] }, { kind: "directive", type: i1$3.BarRightDirective, selector: "[fd-bar-right]", inputs: ["stackContentsVertically"] }, { kind: "directive", type: i1$3.BarElementDirective, selector: "fd-bar-element", inputs: ["fullWidth"] }, { kind: "component", type: i1$3.ButtonBarComponent, selector: "fd-button-bar", inputs: ["fullWidth", "fdType", "title", "ariaLabelledby", "id"] }, { kind: "directive", type: i3$3.ContentDensityDirective, selector: "[fdContentDensity]:not([fdCompact]):not([fdCondensed]):not([fdCozy]), [fdCompact]:not([fdContentDensity]):not([fdCondensed]):not([fdCozy]), [fdCondensed]:not([fdContentDensity]):not([fdCompact]):not([fdCozy]), [fdCozy]:not([fdContentDensity]):not([fdCompact]):not([fdCondensed])", inputs: ["fdContentDensity", "fdCompact", "fdCondensed", "fdCozy"], exportAs: ["fdContentDensity"] }, { 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.FormControlComponent, selector: "input[fd-form-control], textarea[fd-form-control]", inputs: ["state", "type", "class", "ariaLabel", "ariaLabelledBy"] }, { kind: "component", type: i5.TitleComponent, selector: "[fd-title], [fdTitle]", inputs: ["twoLineClamp", "headerSize", "wrap"], exportAs: ["fd-title"] }, { kind: "component", type: i6.PopoverBodyComponent, selector: "fd-popover-body", inputs: ["minWidth", "maxWidth", "minHeight", "maxHeight"], outputs: ["onClose"] }, { kind: "directive", type: i6.PopoverBodyHeaderDirective, selector: "[fdPopoverBodyHeader], [fd-popover-body-header]" }, { kind: "directive", type: i6.PopoverBodyFooterDirective, selector: "[fdPopoverBodyFooter], [fd-popover-body-footer]" }, { kind: "component", type: i6.PopoverComponent, selector: "fd-popover", inputs: ["config", "title", "trigger", "id", "mobile", "mobileConfig", "preventSpaceKeyScroll", "placement", "maxWidth", "fillControlMode", "closeOnOutsideClick", "closeOnEscapeKey", "disabled", "triggers", "focusTrapped", "focusAutoCapture", "restoreFocusOnClose", "noArrow", "disableScrollbar", "appendTo", "placementContainer", "scrollStrategy", "cdkPositions", "applyOverlay", "additionalBodyClass", "additionalTriggerClass", "closeOnNavigation", "fixedPosition", "resizable", "bodyAriaLabel", "bodyRole", "bodyAriaLabelledBy", "isOpen"], outputs: ["triggerChange", "isOpenChange", "beforeOpen"] }, { kind: "component", type: i2$3.SelectComponent, selector: "fd-select", inputs: ["extendedBodyTemplate", "scrollStrategy", "textOverflow", "controlId", "state", "mobile", "stateMessage", "disabled", "required", "readonly", "placeholder", "value", "maxHeight", "glyph", "glyphFont", "closeOnOutsideClick", "fillControlMode", "controlTemplate", "appendTo", "unselectMissingOption", "typeaheadDebounceInterval", "ariaLabelledBy", "ariaLabel", "mobileConfig", "inline", "selectControlClass", "selectDropdownButtonClass", "advancedStateMessage", "tabOutStrategy", "ariaHasPopup", "ariaDescription", "compareWith"], outputs: ["isOpenChange", "valueChange"] }, { kind: "component", type: i2$3.OptionComponent, selector: "[fd-option], fd-option", inputs: ["id", "value", "disabled"], outputs: ["selectionChange"] }, { kind: "directive", type: i2$
|
|
18465
|
+
`, isInline: true, styles: [".ti-scope{display:flex;flex-direction:column;gap:4px;padding:8px 12px;font-size:12px;border-bottom:1px solid var(--sapList_BorderColor, #e5e5e5);background:var(--sapList_Background, #fafafa)}.ti-scope-row{display:flex;align-items:center;justify-content:space-between;gap:8px}.ti-scope-label{opacity:.7}.ti-scope-value{font-weight:600}.ti-scope-org{color:var(--sapPositiveColor, #107e3e)}.ti-scope-ver{opacity:.7;font-weight:400;margin-inline-start:4px}.ti-scope-new{color:var(--sapCriticalColor, #e76500)}.ti-scope-hint{opacity:.6;font-size:10px}.ti-body{font-size:12px;overflow:auto;padding:4px 0}.ti-row{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:6px 8px}.ti-row:hover{background:var(--sapList_Hover_Background, #f5f5f5)}.ti-caption{font-weight:600}.ti-var{opacity:.6;direction:ltr;font-size:10px}.ti-empty{padding:12px;text-align:center;opacity:.7}.ti-color{width:36px;height:24px;border:none;background:transparent;cursor:pointer}.ti-font{min-width:9rem;max-width:12rem}.ti-size{display:flex;gap:4px;align-items:center}.ti-num-display{min-width:2.75rem;text-align:center;font-variant-numeric:tabular-nums}.ti-unit{min-width:4.5rem}\n"], dependencies: [{ kind: "component", type: i1$3.BarComponent, selector: "[fd-bar]", inputs: ["barDesign", "inPage", "inHomePage", "clear", "size", "initialSuggestionTitle", "initialSuggestionSubline", "role"] }, { kind: "directive", type: i1$3.BarLeftDirective, selector: "[fd-bar-left]", inputs: ["stackContentsVertically"] }, { kind: "directive", type: i1$3.BarRightDirective, selector: "[fd-bar-right]", inputs: ["stackContentsVertically"] }, { kind: "directive", type: i1$3.BarElementDirective, selector: "fd-bar-element", inputs: ["fullWidth"] }, { kind: "component", type: i1$3.ButtonBarComponent, selector: "fd-button-bar", inputs: ["fullWidth", "fdType", "title", "ariaLabelledby", "id"] }, { kind: "directive", type: i3$3.ContentDensityDirective, selector: "[fdContentDensity]:not([fdCompact]):not([fdCondensed]):not([fdCozy]), [fdCompact]:not([fdContentDensity]):not([fdCondensed]):not([fdCozy]), [fdCondensed]:not([fdContentDensity]):not([fdCompact]):not([fdCozy]), [fdCozy]:not([fdContentDensity]):not([fdCompact]):not([fdCondensed])", inputs: ["fdContentDensity", "fdCompact", "fdCondensed", "fdCozy"], exportAs: ["fdContentDensity"] }, { 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.FormControlComponent, selector: "input[fd-form-control], textarea[fd-form-control]", inputs: ["state", "type", "class", "ariaLabel", "ariaLabelledBy"] }, { kind: "component", type: i5.TitleComponent, selector: "[fd-title], [fdTitle]", inputs: ["twoLineClamp", "headerSize", "wrap"], exportAs: ["fd-title"] }, { kind: "component", type: i6.PopoverBodyComponent, selector: "fd-popover-body", inputs: ["minWidth", "maxWidth", "minHeight", "maxHeight"], outputs: ["onClose"] }, { kind: "directive", type: i6.PopoverBodyHeaderDirective, selector: "[fdPopoverBodyHeader], [fd-popover-body-header]" }, { kind: "directive", type: i6.PopoverBodyFooterDirective, selector: "[fdPopoverBodyFooter], [fd-popover-body-footer]" }, { kind: "component", type: i6.PopoverComponent, selector: "fd-popover", inputs: ["config", "title", "trigger", "id", "mobile", "mobileConfig", "preventSpaceKeyScroll", "placement", "maxWidth", "fillControlMode", "closeOnOutsideClick", "closeOnEscapeKey", "disabled", "triggers", "focusTrapped", "focusAutoCapture", "restoreFocusOnClose", "noArrow", "disableScrollbar", "appendTo", "placementContainer", "scrollStrategy", "cdkPositions", "applyOverlay", "additionalBodyClass", "additionalTriggerClass", "closeOnNavigation", "fixedPosition", "resizable", "bodyAriaLabel", "bodyRole", "bodyAriaLabelledBy", "isOpen"], outputs: ["triggerChange", "isOpenChange", "beforeOpen"] }, { kind: "component", type: i2$3.SelectComponent, selector: "fd-select", inputs: ["extendedBodyTemplate", "scrollStrategy", "textOverflow", "controlId", "state", "mobile", "stateMessage", "disabled", "required", "readonly", "placeholder", "value", "maxHeight", "glyph", "glyphFont", "closeOnOutsideClick", "fillControlMode", "controlTemplate", "appendTo", "unselectMissingOption", "typeaheadDebounceInterval", "ariaLabelledBy", "ariaLabel", "mobileConfig", "inline", "selectControlClass", "selectDropdownButtonClass", "advancedStateMessage", "tabOutStrategy", "ariaHasPopup", "ariaDescription", "compareWith"], outputs: ["isOpenChange", "valueChange"] }, { kind: "component", type: i2$3.OptionComponent, selector: "[fd-option], fd-option", inputs: ["id", "value", "disabled"], outputs: ["selectionChange"] }, { kind: "directive", type: i2$7.ɵɵDir, selector: "[dir]", inputs: ["dir"], outputs: ["dirChange"], exportAs: ["dir"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
18341
18466
|
}
|
|
18342
18467
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: BarsaThemeInspectorComponent, decorators: [{
|
|
18343
18468
|
type: Component,
|