{"version":3,"file":"barsa-develop-components.mjs","sources":["../../../projects/barsa-develop-components/src/lib/ui-text-field-search/ui-text-field-search.component.ts","../../../projects/barsa-develop-components/src/lib/ui-text-field-search/ui-text-field-search.component.html","../../../projects/barsa-develop-components/src/lib/tab-process-view/tab-process-view.component.ts","../../../projects/barsa-develop-components/src/lib/tab-process-view/tab-process-view.component.html","../../../projects/barsa-develop-components/src/lib/ui-enum-segmented-button/ui-enum-segmented-button.component.ts","../../../projects/barsa-develop-components/src/lib/ui-enum-segmented-button/ui-enum-segmented-button.component.html","../../../projects/barsa-develop-components/src/lib/micro-process-flow-view/micro-process-flow-view.component.ts","../../../projects/barsa-develop-components/src/lib/micro-process-flow-view/micro-process-flow-view.component.html","../../../projects/barsa-develop-components/src/lib/setting-form/setting-form.component.ts","../../../projects/barsa-develop-components/src/lib/setting-form/setting-form.component.html","../../../projects/barsa-develop-components/src/lib/barcode.service.ts","../../../projects/barsa-develop-components/src/lib/barcode-reader-video/barcode-reader-video.component.ts","../../../projects/barsa-develop-components/src/lib/barcode-reader-video/barcode-reader-video.component.html","../../../projects/barsa-develop-components/src/lib/barcode-reader-dialog/barcode-reader-dialog.component.ts","../../../projects/barsa-develop-components/src/lib/barcode-reader-dialog/barcode-reader-dialog.component.html","../../../projects/barsa-develop-components/src/lib/barcode-reader/barcode-reader.component.ts","../../../projects/barsa-develop-components/src/lib/barcode-reader/barcode-reader.component.html","../../../projects/barsa-develop-components/src/lib/ui-person/ui-person.pipe.ts","../../../projects/barsa-develop-components/src/lib/ui-person/ui-person.component.ts","../../../projects/barsa-develop-components/src/lib/ui-person/ui-person.component.html","../../../projects/barsa-develop-components/src/lib/login-social-conncetions/login-social-conncetions.component.ts","../../../projects/barsa-develop-components/src/lib/login-social-conncetions/login-social-conncetions.component.html","../../../projects/barsa-develop-components/src/lib/login-form/login-form.component.ts","../../../projects/barsa-develop-components/src/lib/login-form/login-form.component.html","../../../projects/barsa-develop-components/src/lib/service-desk-header/service-desk-header.component.ts","../../../projects/barsa-develop-components/src/lib/service-desk-header/service-desk-header.component.html","../../../projects/barsa-develop-components/src/lib/card-content-image-and-title/card-content-image-and-title.component.ts","../../../projects/barsa-develop-components/src/lib/card-content-image-and-title/card-content-image-and-title.component.html","../../../projects/barsa-develop-components/src/lib/card-header-logo-title-subtitle/card-header-logo-title-subtitle.component.ts","../../../projects/barsa-develop-components/src/lib/card-header-logo-title-subtitle/card-header-logo-title-subtitle.component.html","../../../projects/barsa-develop-components/src/lib/form-content-quick-view/form-content-quick-view.component.ts","../../../projects/barsa-develop-components/src/lib/form-content-quick-view/form-content-quick-view.component.html","../../../projects/barsa-develop-components/src/lib/service-desk-servcie-detail/service-desk-servcie-detail.component.ts","../../../projects/barsa-develop-components/src/lib/service-desk-servcie-detail/service-desk-servcie-detail.component.html","../../../projects/barsa-develop-components/src/lib/service-desk-view-of-services/service-desk-view-of-services.component.ts","../../../projects/barsa-develop-components/src/lib/service-desk-view-of-services/service-desk-view-of-services.component.html","../../../projects/barsa-develop-components/src/lib/service-desk-card-content-mojavezhay-akhz-shode/service-desk-card-content-mojavezhay-akhz-shode.component.ts","../../../projects/barsa-develop-components/src/lib/service-desk-card-content-mojavezhay-akhz-shode/service-desk-card-content-mojavezhay-akhz-shode.component.html","../../../projects/barsa-develop-components/src/lib/card-header-big-image-title-and-subtitle/card-header-big-image-title-and-subtitle.component.ts","../../../projects/barsa-develop-components/src/lib/card-header-big-image-title-and-subtitle/card-header-big-image-title-and-subtitle.component.html","../../../projects/barsa-develop-components/src/lib/service-desk-form-layout-content-mojavez/service-desk-form-layout-content-mojavez.component.ts","../../../projects/barsa-develop-components/src/lib/service-desk-form-layout-content-mojavez/service-desk-form-layout-content-mojavez.component.html","../../../projects/barsa-develop-components/src/lib/ulv-context-menu-item-show-file-content/ulv-context-menu-item-show-file-content.component.ts","../../../projects/barsa-develop-components/src/lib/ulv-context-menu-item-show-file-content/ulv-context-menu-item-show-file-content.component.html","../../../projects/barsa-develop-components/src/lib/resend-verification-code/resend-verification-code.component.ts","../../../projects/barsa-develop-components/src/lib/resend-verification-code/resend-verification-code.component.html","../../../projects/barsa-develop-components/src/lib/checkbox-button/checkbox-button.component.ts","../../../projects/barsa-develop-components/src/lib/checkbox-button/checkbox-button.component.html","../../../projects/barsa-develop-components/src/lib/barcode-format-pipe.ts","../../../projects/barsa-develop-components/src/lib/report-tab-view/report-tab-view.component.ts","../../../projects/barsa-develop-components/src/lib/report-tab-view/report-tab-view.component.html","../../../projects/barsa-develop-components/src/lib/report-line-chart-view/report-line-chart-view.component.ts","../../../projects/barsa-develop-components/src/lib/report-line-chart-view/report-line-chart-view.component.html","../../../projects/barsa-develop-components/src/lib/card-header-kpi/card-header-kpi.component.ts","../../../projects/barsa-develop-components/src/lib/card-header-kpi/card-header-kpi.component.html","../../../projects/barsa-develop-components/src/lib/column-value-state.ts","../../../projects/barsa-develop-components/src/lib/status-tone.ts","../../../projects/barsa-develop-components/src/lib/report-panel-head/report-panel-head.component.ts","../../../projects/barsa-develop-components/src/lib/report-panel-head/report-panel-head.component.html","../../../projects/barsa-develop-components/src/lib/progress-list-row/progress-list-row.component.ts","../../../projects/barsa-develop-components/src/lib/progress-list-row/progress-list-row.component.html","../../../projects/barsa-develop-components/src/lib/status-list-row/status-list-row.component.ts","../../../projects/barsa-develop-components/src/lib/status-list-row/status-list-row.component.html","../../../projects/barsa-develop-components/src/lib/card-header-progress-status/card-header-progress-status.component.ts","../../../projects/barsa-develop-components/src/lib/card-header-progress-status/card-header-progress-status.component.html","../../../projects/barsa-develop-components/src/lib/card-content-line-chart/card-content-line-chart.component.ts","../../../projects/barsa-develop-components/src/lib/card-content-line-chart/card-content-line-chart.component.html","../../../projects/barsa-develop-components/src/lib/form-chart-content/form-chart-content.component.ts","../../../projects/barsa-develop-components/src/lib/form-chart-content/form-chart-content.component.html","../../../projects/barsa-develop-components/src/lib/table-view-vertical-columns/table-view-vertical-columns.component.ts","../../../projects/barsa-develop-components/src/lib/table-view-vertical-columns/table-view-vertical-columns.component.html","../../../projects/barsa-develop-components/src/lib/query-string-observable/query-string-observable.component.ts","../../../projects/barsa-develop-components/src/lib/query-string-observable/query-string-observable.component.html","../../../projects/barsa-develop-components/src/lib/query-string-form-observable/query-string-form-observable.component.ts","../../../projects/barsa-develop-components/src/lib/query-string-form-observable/query-string-form-observable.component.html","../../../projects/barsa-develop-components/src/lib/g4b-details/g4b-details.component.ts","../../../projects/barsa-develop-components/src/lib/g4b-details/g4b-details.component.html","../../../projects/barsa-develop-components/src/lib/avatar/avatar.component.ts","../../../projects/barsa-develop-components/src/lib/avatar/avatar.component.html","../../../projects/barsa-develop-components/src/lib/g4b-estelam/g4b-estelam.component.ts","../../../projects/barsa-develop-components/src/lib/g4b-estelam/g4b-estelam.component.html","../../../projects/barsa-develop-components/src/lib/timer-count-down/timer-count-down.component.ts","../../../projects/barsa-develop-components/src/lib/timer-count-down/timer-count-down.component.html","../../../projects/barsa-develop-components/src/lib/micro-proccess-flow/micro-proccess-flow.component.ts","../../../projects/barsa-develop-components/src/lib/micro-proccess-flow/micro-proccess-flow.component.html","../../../projects/barsa-develop-components/src/lib/pipes/mo-list-to-flow-item.pipe.ts","../../../projects/barsa-develop-components/src/lib/mo-info-micro-proccess-flow/mo-info-micro-proccess-flow.component.ts","../../../projects/barsa-develop-components/src/lib/mo-info-micro-proccess-flow/mo-info-micro-proccess-flow.component.html","../../../projects/barsa-develop-components/src/lib/pipes/datasource-to-flow-item.ts","../../../projects/barsa-develop-components/src/lib/enum-info-micro-proccess-flow/enum-info-micro-proccess-flow.component.ts","../../../projects/barsa-develop-components/src/lib/enum-info-micro-proccess-flow/enum-info-micro-proccess-flow.component.html","../../../projects/barsa-develop-components/src/lib/ui-card-button/ui-card-button.component.ts","../../../projects/barsa-develop-components/src/lib/ui-card-button/ui-card-button.component.html","../../../projects/barsa-develop-components/src/lib/ui-pictures-carousel/ui-pictures-carousel.component.ts","../../../projects/barsa-develop-components/src/lib/ui-pictures-carousel/ui-pictures-carousel.component.html","../../../projects/barsa-develop-components/src/lib/ui-num-rate/ui-num-rate.component.ts","../../../projects/barsa-develop-components/src/lib/ui-num-rate/ui-num-rate.component.html","../../../projects/barsa-develop-components/src/lib/media-file-uploader/media-file-uploader.component.ts","../../../projects/barsa-develop-components/src/lib/media-file-uploader/media-file-uploader.component.html","../../../projects/barsa-develop-components/src/lib/subform-in-row-report/subform-in-row-report.component.ts","../../../projects/barsa-develop-components/src/lib/subform-in-row-report/subform-in-row-report.component.html","../../../projects/barsa-develop-components/src/lib/master-detail-card-form/master-detail-card-form.component.ts","../../../projects/barsa-develop-components/src/lib/master-detail-card-form/master-detail-card-form.component.html","../../../projects/barsa-develop-components/src/lib/report-button-view/report-button-view.component.ts","../../../projects/barsa-develop-components/src/lib/report-button-view/report-button-view.component.html","../../../projects/barsa-develop-components/src/lib/barsa-document-list-item/barsa-document-list-item.component.ts","../../../projects/barsa-develop-components/src/lib/barsa-document-list-item/barsa-document-list-item.component.html","../../../projects/barsa-develop-components/src/lib/barsa-documents/barsa-documents.component.ts","../../../projects/barsa-develop-components/src/lib/barsa-documents/barsa-documents.component.html","../../../projects/barsa-develop-components/src/lib/accept-reject/accept-reject.component.ts","../../../projects/barsa-develop-components/src/lib/accept-reject/accept-reject.component.html","../../../projects/barsa-develop-components/src/lib/footer/footer.component.ts","../../../projects/barsa-develop-components/src/lib/footer/footer.component.html","../../../projects/barsa-develop-components/src/lib/barsa-geographic-location/barsa-geographic-location.component.ts","../../../projects/barsa-develop-components/src/lib/barsa-geographic-location/barsa-geographic-location.component.html","../../../projects/barsa-develop-components/src/lib/geographic-location/geographic-location.component.ts","../../../projects/barsa-develop-components/src/lib/geographic-location/geographic-location.component.html","../../../projects/barsa-develop-components/src/lib/token-report-view/token-report-view.component.ts","../../../projects/barsa-develop-components/src/lib/token-report-view/token-report-view.component.html","../../../projects/barsa-develop-components/src/lib/column-form-viewer/column-form-viewer.component.ts","../../../projects/barsa-develop-components/src/lib/column-form-viewer/column-form-viewer.component.html","../../../projects/barsa-develop-components/src/lib/form-report-view-item/form-report-view-item.component.ts","../../../projects/barsa-develop-components/src/lib/form-report-view-item/form-report-view-item.component.html","../../../projects/barsa-develop-components/src/lib/form-report-view/form-report-view.component.ts","../../../projects/barsa-develop-components/src/lib/form-report-view/form-report-view.component.html","../../../projects/barsa-develop-components/src/lib/form-card/form-card.component.ts","../../../projects/barsa-develop-components/src/lib/form-card/form-card.component.html","../../../projects/barsa-develop-components/src/lib/column-progressbar/column-progressbar.component.ts","../../../projects/barsa-develop-components/src/lib/column-progressbar/column-progressbar.component.html","../../../projects/barsa-develop-components/src/lib/column-chip/column-chip.component.ts","../../../projects/barsa-develop-components/src/lib/column-chip/column-chip.component.html","../../../projects/barsa-develop-components/src/lib/column-rich-text/column-rich-text.component.ts","../../../projects/barsa-develop-components/src/lib/column-rich-text/column-rich-text.component.html","../../../projects/barsa-develop-components/src/lib/barsa-column-trend/barsa-column-trend.component.ts","../../../projects/barsa-develop-components/src/lib/barsa-column-trend/barsa-column-trend.component.html","../../../projects/barsa-develop-components/src/lib/barsa-develop-components.module.ts","../../../projects/barsa-develop-components/src/barsa-develop-components.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\r\nimport { MetaobjectDataModel } from 'barsa-novin-ray-core';\r\nimport { DeviceInfoFieldBaseComponent } from 'barsa-sap-ui';\r\nimport { debounceTime, distinctUntilChanged, Subject } from 'rxjs';\r\n@Component({\r\n    selector: 'bdc-ui-text-field-search',\r\n    templateUrl: './ui-text-field-search.component.html',\r\n    styleUrls: ['./ui-text-field-search.component.scss'],\r\n    changeDetection: ChangeDetectionStrategy.OnPush,\r\n    standalone: false\r\n})\r\nexport class UiTextFieldSearchComponent extends DeviceInfoFieldBaseComponent {\r\n    @Input() value: string;\r\n    _debouncer = new Subject<string>();\r\n    parameters: UiTextFieldSearchSettings;\r\n    @Input() get MinSize(): { width: number; height: number } {\r\n        // this call from outside.corejs\r\n        return { width: 0, height: 30 };\r\n    }\r\n    searchTerm: string;\r\n    ngOnInit(): void {\r\n        super.ngOnInit();\r\n        this._debouncer.pipe(debounceTime(300), distinctUntilChanged()).subscribe((value) => {\r\n            this.value = value;\r\n            this.valueChange.emit(value);\r\n        });\r\n    }\r\n    onAutoSearch(): void {\r\n        this.parameters?.RaiseValueChangeOnlyClick === false && this._valueChange(this.searchTerm);\r\n    }\r\n    onSearchSubmit(): void {\r\n        this._valueChange(this.searchTerm);\r\n    }\r\n    _valueChange(value: string): void {\r\n        this._debouncer.next(value);\r\n    }\r\n}\r\ninterface UiTextFieldSearchSettings extends MetaobjectDataModel {\r\n    RaiseValueChangeOnlyClick: boolean;\r\n}\r\n","<fd-input-group\r\n    style=\"width: 100%\"\r\n    fd-toolbar-item\r\n    type=\"search\"\r\n    glyph=\"search\"\r\n    [glyphAriaLabel]=\"'Search' | bbbTranslate\"\r\n    [placeholder]=\"'Search' | bbbTranslate\"\r\n    [button]=\"true\"\r\n    [disabled]=\"false\"\r\n    [(ngModel)]=\"searchTerm\"\r\n    fdCozy\r\n    (addOnButtonClicked)=\"onSearchSubmit()\"\r\n    (keydown.enter)=\"onSearchSubmit()\"\r\n    (keyup)=\"onAutoSearch()\"\r\n>\r\n</fd-input-group>\r\n","import { ChangeDetectionStrategy, Component, OnInit, ViewChild } from '@angular/core';\r\nimport { takeUntil } from 'rxjs/operators';\r\n\r\nimport { ReportViewBaseComponent, MetaobjectDataModel } from 'barsa-novin-ray-core';\r\nimport { TabProcessViewSetting } from '../models';\r\nimport { TabListComponent, TabPanelComponent } from '@fundamental-ngx/core';\r\n@Component({\r\n    selector: 'bdc-tab-process-view',\r\n    templateUrl: './tab-process-view.component.html',\r\n    styleUrls: ['./tab-process-view.component.scss'],\r\n    changeDetection: ChangeDetectionStrategy.OnPush,\r\n    standalone: false\r\n})\r\nexport class TabProcessViewComponent extends ReportViewBaseComponent<TabProcessViewSetting> implements OnInit {\r\n    @ViewChild(TabListComponent) tabList: TabListComponent;\r\n    fieldTitle: string;\r\n    fieldIcon: string;\r\n    fieldState: string;\r\n    mode: string;\r\n    arrowRight: string;\r\n    fieldSubtitle: string;\r\n    defaultIcon: string;\r\n\r\n    ngOnInit(): void {\r\n        super.ngOnInit();\r\n        this.arrowRight = this.rtl ? 'navigation-left-arrow' : 'navigation-right-arrow';\r\n        this.fieldTitle = this.viewSetting.FieldTitle;\r\n        this.fieldSubtitle = this.viewSetting.FieldSubtitle;\r\n        this.fieldIcon = this.viewSetting.FieldIcon;\r\n        this.defaultIcon = this.viewSetting.DefaultIcon;\r\n        this._ulvMainService.moDataList$.pipe(takeUntil(this._onDestroy$)).subscribe((moDataList) => {\r\n            if (moDataList) {\r\n                const selectedIndex = moDataList.findIndex((c) => c.$IsChecked);\r\n                if (this.tabList && selectedIndex > -1) {\r\n                    setTimeout(() => this.tabList.tabPanels.toArray()[selectedIndex].open(true), 0);\r\n                }\r\n            }\r\n        });\r\n    }\r\n    onTabChange2(e: MetaobjectDataModel): void {\r\n        const index = this.moDataList.findIndex((c) => c.Id === e.Id);\r\n        const mo = this.moDataList[index];\r\n        if (mo.$IsChecked) {\r\n            return;\r\n        }\r\n        super.onRowCheck({ mo, index });\r\n    }\r\n    onTabChange(e: TabPanelComponent): void {\r\n        const index = this.moDataList.findIndex((c) => c.Id === e.id);\r\n        const mo = this.moDataList[index];\r\n        super.onRowCheck({ mo, index });\r\n    }\r\n}\r\n","@if (moDataList?.length) {\r\n<fd-tab-list\r\n    mode=\"process\"\r\n    [style.min-height]=\"moDataList?.length ? '3.8rem' : null\"\r\n    [expandOverflowText]=\"'More' | bbbTranslate\"\r\n>\r\n    @for (item of moDataList; track item; let index = $index; let last = $last) {\r\n    <fd-tab [id]=\"item.Id\" [active]=\"item.$IsChecked\">\r\n        <ng-template fd-tab-title-template>\r\n            <span\r\n                (click)=\"onTabChange2(item)\"\r\n                fd-tab-icon\r\n                [icon]=\"(fieldIcon | rval: item:allColumns) ? (fieldIcon | rval: item:allColumns) : defaultIcon\"\r\n            ></span>\r\n            <div fd-tab-process (click)=\"onTabChange2(item)\">\r\n                <span fd-tab-label>{{ fieldTitle | rval: item:allColumns }}</span>\r\n                <span fd-tab-label>{{ fieldSubtitle | rval: item:allColumns }}</span>\r\n            </div>\r\n        </ng-template>\r\n    </fd-tab>\r\n    }\r\n</fd-tab-list>\r\n} @else {\r\n<div style=\"min-height: 3.8rem; background-color: var(--sapObjectHeader_Background)\"></div>\r\n}\r\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\r\n\r\nimport { FieldBaseComponent } from 'barsa-novin-ray-core';\r\n@Component({\r\n    selector: 'bdc-ui-enum-segmented-button',\r\n    templateUrl: './ui-enum-segmented-button.component.html',\r\n    styleUrls: ['./ui-enum-segmented-button.component.scss'],\r\n    changeDetection: ChangeDetectionStrategy.OnPush,\r\n    standalone: false\r\n})\r\nexport class UiEnumSegmentedButtonComponent extends FieldBaseComponent {\r\n    caption: string;\r\n\r\n    onValueChange(value): void {\r\n        const selectedValue = value;\r\n        this.setValue(selectedValue);\r\n    }\r\n\r\n    protected setValue(selectedValue: any): void {\r\n        this.value = selectedValue;\r\n        this.valueChange.emit(this.value);\r\n        this.fireContextEvent('select', this.value);\r\n    }\r\n}\r\n","<fd-segmented-button style=\"width: 100%\" [(ngModel)]=\"value\" (ngModelChange)=\"onValueChange($event)\">\r\n    @for (item of context.store.data[context.store.root]; track item) { @if (item.id !== '0') {\r\n    <button\r\n        [disabled]=\"(disableOrReadonly$ | async) === true ? true : false\"\r\n        fd-button\r\n        [label]=\"item.txt\"\r\n        [value]=\"item.id\"\r\n    ></button>\r\n    } }\r\n</fd-segmented-button>\r\n","import { ChangeDetectionStrategy, Component, OnInit } from '@angular/core';\r\nimport { ReportViewBaseComponent } from 'barsa-novin-ray-core';\r\n\r\nimport { MicroProcessFlowViewSetting } from '../models';\r\n@Component({\r\n    selector: 'bdc-micro-process-flow-view',\r\n    templateUrl: './micro-process-flow-view.component.html',\r\n    styleUrls: ['./micro-process-flow-view.component.scss'],\r\n    changeDetection: ChangeDetectionStrategy.OnPush,\r\n    standalone: false\r\n})\r\nexport class MicroProcessFlowViewComponent\r\n    extends ReportViewBaseComponent<MicroProcessFlowViewSetting>\r\n    implements OnInit\r\n{\r\n    fieldTitle: string;\r\n    fieldIcon: string;\r\n    fieldState: string;\r\n    mode: string;\r\n    arrowRight: string;\r\n\r\n    ngOnInit(): void {\r\n        super.ngOnInit();\r\n        this.arrowRight = this.rtl ? 'navigation-left-arrow' : 'navigation-right-arrow';\r\n        this.fieldTitle = this.viewSetting.FieldTitle;\r\n        this.fieldIcon = this.viewSetting.FieldIcon;\r\n        this.fieldState = this.viewSetting.FieldState;\r\n        this.mode = this.viewSetting.ModeValue$Caption;\r\n    }\r\n}\r\n","<fd-micro-process-flow style=\"max-width: 100%\">\r\n    @for (item of moDataList; track item; let index = $index) {\r\n    <fd-micro-process-flow-item>\r\n        <ng-container\r\n            *ngTemplateOutlet=\"\r\n                button;\r\n                context: {\r\n                    $implicit: item,\r\n                    index: index,\r\n                    arrow: arrowRight\r\n                }\r\n            \"\r\n        ></ng-container>\r\n    </fd-micro-process-flow-item>\r\n    }\r\n</fd-micro-process-flow>\r\n<ng-template #button let-mo let-index=\"index\" let-arrow=\"arrow\">\r\n    <button\r\n        fd-button\r\n        (click)=\"onRowCheck({mo, index})\"\r\n        fd-micro-process-flow-focusable-item\r\n        [label]=\"fieldTitle | rval: mo:allColumns\"\r\n        [fdType]=\"fieldState | rval: mo:allColumns\"\r\n        [glyph]=\"fieldIcon | rval: mo:allColumns\"\r\n    ></button>\r\n</ng-template>\r\n","import { AfterViewInit, ChangeDetectionStrategy, Component, OnDestroy, OnInit } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { FormBaseComponent, FormPanelService } from 'barsa-novin-ray-core';\r\n\r\n@Component({\r\n    selector: 'bdc-setting-form',\r\n    templateUrl: './setting-form.component.html',\r\n    styleUrls: ['./setting-form.component.scss'],\r\n    changeDetection: ChangeDetectionStrategy.OnPush,\r\n    providers: [FormPanelService],\r\n    standalone: false\r\n})\r\nexport class SettingFormComponent extends FormBaseComponent implements OnInit, AfterViewInit, OnDestroy {\r\n    deviceSize: 'xl' | 'md' | 'sm' = 'xl';\r\n    selectedSetting = false;\r\n    rtl$: Observable<boolean>;\r\n    groupSettingFieldCaption = 'گروه تنظیمات2';\r\n    objectSettingFieldCaption = 'شی تنظیمات';\r\n    private _groupSettingControlUi: any;\r\n\r\n    ngOnInit(): void {\r\n        super.ngOnInit();\r\n        this.rtl$ = this._portalService.rtl$;\r\n        this._portalService.deviceSize$.pipe(takeUntil(this._onDestroy$)).subscribe((deviceSize) => {\r\n            switch (deviceSize) {\r\n                case 's':\r\n                    this.deviceSize = 'sm';\r\n                    break;\r\n                case 'm':\r\n                    this.deviceSize = 'md';\r\n                    break;\r\n                default:\r\n                    this.deviceSize = 'xl';\r\n            }\r\n        });\r\n    }\r\n    ngAfterViewInit(): void {\r\n        super.ngAfterViewInit();\r\n        const fieldUi: any = Object.values(this.listFieldUi).find(\r\n            (c: any) => c.Setting.ControlFieldCaption === this.groupSettingFieldCaption\r\n        );\r\n        if (fieldUi) {\r\n            fieldUi.viewerControl.on({\r\n                rowselect: this._setSelectedSetting.bind(this)\r\n            });\r\n        }\r\n        this._groupSettingControlUi = fieldUi;\r\n    }\r\n    ngOnDestroy(): void {\r\n        super.ngOnDestroy();\r\n        if (this._groupSettingControlUi) {\r\n            this._groupSettingControlUi.viewerControl.un('rowselect', this._setSelectedSetting);\r\n        }\r\n    }\r\n    onSettingClick(): void {}\r\n    onBack(): void {\r\n        this.selectedSetting = false;\r\n    }\r\n    _setSelectedSetting(): void {\r\n        this.selectedSetting = true;\r\n    }\r\n}\r\n","@if (mo$ | async; as mo) { @if (layout94$ | async; as layout) { @if (deviceSize === 'sm') {\r\n<div style=\"display: flex; flex-direction: column\">\r\n    @if (selectedSetting) {\r\n    <div style=\"width: 100%\">\r\n        <button\r\n            fd-button\r\n            [fdType]=\"'transparent'\"\r\n            [glyph]=\"(rtl$ | async)!! ? 'arrow-left' : 'arrow-right'\"\r\n            (click)=\"onBack()\"\r\n        ></button>\r\n    </div>\r\n    }\r\n    <div [class.hide]=\"selectedSetting\">\r\n        <ng-container\r\n            *ngTemplateOutlet=\"\r\n                renderSetting;\r\n                context: {\r\n                    $implicit: layout,\r\n                    isMobile: true\r\n                }\r\n            \"\r\n        ></ng-container>\r\n    </div>\r\n    <div [class.hide]=\"!selectedSetting\">\r\n        <ng-container\r\n            *ngTemplateOutlet=\"\r\n                renderForm;\r\n                context: {\r\n                    $implicit: layout,\r\n                    isMobile: true\r\n                }\r\n            \"\r\n        ></ng-container>\r\n    </div>\r\n</div>\r\n} @else {\r\n<fd-dynamic-side-content [size]=\"deviceSize\">\r\n    <fd-dynamic-side-content-side>\r\n        <ng-container\r\n            *ngTemplateOutlet=\"\r\n                renderSetting;\r\n                context: {\r\n                    $implicit: layout,\r\n                    isMobile: false\r\n                }\r\n            \"\r\n        ></ng-container>\r\n    </fd-dynamic-side-content-side>\r\n    <fd-dynamic-side-content-main>\r\n        <ng-container\r\n            *ngTemplateOutlet=\"\r\n                renderForm;\r\n                context: {\r\n                    $implicit: layout,\r\n                    isMobile: false\r\n                }\r\n            \"\r\n        ></ng-container>\r\n    </fd-dynamic-side-content-main>\r\n</fd-dynamic-side-content>\r\n} }\r\n<ng-template #renderForm let-layout let-isMobile=\"isMobile\">\r\n    @if (objectSettingFieldCaption | controlUi: layout; as layoutConfig) {\r\n    <bsu-layout-control\r\n        (click)=\"onSettingClick()\"\r\n        class=\"form-setting\"\r\n        [class.is-mobile]=\"isMobile\"\r\n        [caption]=\"objectSettingFieldCaption\"\r\n        [config]=\"layoutConfig\"\r\n        [focus]=\"true\"\r\n    ></bsu-layout-control>\r\n    }\r\n</ng-template>\r\n<ng-template #renderSetting let-layout let-isMobile=\"isMobile\">\r\n    @if (groupSettingFieldCaption | controlUi: layout; as layoutConfig) {\r\n    <bsu-layout-control\r\n        class=\"list-setting\"\r\n        [class.is-mobile]=\"isMobile\"\r\n        [caption]=\"groupSettingFieldCaption\"\r\n        [config]=\"layoutConfig\"\r\n    ></bsu-layout-control>\r\n    }\r\n</ng-template>\r\n} @else {\r\n<bsu-mask></bsu-mask>\r\n}\r\n","import { Result, Exception, DecodeHintType, BarcodeFormat } from '@zxing/library';\r\nimport { ChecksumException, FormatException, NotFoundException } from '@zxing/library';\r\nimport { BrowserCodeReader, BrowserMultiFormatReader, IScannerControls } from '@zxing/browser';\r\nimport { BehaviorSubject, Observable, Subject } from 'rxjs';\r\nimport { LogService } from 'barsa-novin-ray-core';\r\nimport { filter, map, shareReplay } from 'rxjs/operators';\r\nimport { Injectable, inject } from '@angular/core';\r\n\r\nexport interface ResultAndError {\r\n    result?: Result;\r\n    error?: Exception;\r\n}\r\n\r\n/**\r\n * Based on zxing-typescript BrowserCodeReader\r\n */\r\nexport class BrowserMultiFormatContinuousReader extends BrowserMultiFormatReader {\r\n    /**\r\n     * Allows to call scanner controls API while scanning.\r\n     * Will be undefined if no scanning is runnig.\r\n     */\r\n    protected scannerControls: IScannerControls | undefined;\r\n\r\n    /**\r\n     * Returns the code reader scanner controls.\r\n     */\r\n    public getScannerControls(): IScannerControls {\r\n        if (!this.scannerControls) {\r\n            throw new Error('No scanning is running at the time.');\r\n        }\r\n        return this.scannerControls;\r\n    }\r\n\r\n    /**\r\n     * Starts the decoding from the current or a new video element.\r\n     *\r\n     * @param deviceId The device's to be used Id\r\n     * @param previewEl A new video element\r\n     */\r\n    public async scanFromDeviceObservable(\r\n        deviceId?: string,\r\n        previewEl?: HTMLVideoElement\r\n    ): Promise<Observable<ResultAndError>> {\r\n        const scan$ = new BehaviorSubject<ResultAndError>({});\r\n        let ctrls;\r\n\r\n        try {\r\n            ctrls = await this.decodeFromVideoDevice(deviceId, previewEl, (result, error) => {\r\n                if (!error) {\r\n                    scan$.next({ result });\r\n                    return;\r\n                }\r\n                console.error(error);\r\n                const errorName = error.name;\r\n\r\n                // stream cannot stop on fails.\r\n                if (\r\n                    // scan Failure - found nothing, no error\r\n                    errorName === NotFoundException.name ||\r\n                    // scan Error - found the QR but got error on decoding\r\n                    errorName === ChecksumException.name ||\r\n                    errorName === FormatException.name ||\r\n                    error.message.includes('No MultiFormat Readers were able to detect the code.')\r\n                ) {\r\n                    scan$.next({ error });\r\n                    return;\r\n                }\r\n\r\n                // probably fatal error\r\n                scan$.error(error);\r\n                this.scannerControls?.stop();\r\n                this.scannerControls = undefined;\r\n                return;\r\n            });\r\n\r\n            this.scannerControls = {\r\n                ...ctrls,\r\n                stop(): void {\r\n                    ctrls.stop();\r\n                    scan$.complete();\r\n                }\r\n            };\r\n        } catch (e) {\r\n            scan$.error(e);\r\n            this.scannerControls?.stop();\r\n            this.scannerControls = undefined;\r\n        }\r\n\r\n        return scan$.asObservable();\r\n    }\r\n}\r\n@Injectable()\r\nexport class UserMediaBaseService {\r\n    hasNavigator = false;\r\n    isMediaDevicesSupported = false;\r\n\r\n    _camerasSource = new BehaviorSubject<MediaDeviceInfo[]>([]);\r\n    cameras$ = this._camerasSource\r\n        .asObservable()\r\n        .pipe(shareReplay(1))\r\n        .pipe(filter((items) => items && items.length > 0));\r\n\r\n    _permissionResponse = new Subject<DOMException>();\r\n    permissionResponse$ = this._permissionResponse.asObservable();\r\n\r\n    _hasDevicesSource = new BehaviorSubject<boolean>(false);\r\n    hasDevices$ = this._hasDevicesSource.asObservable().pipe(shareReplay(1));\r\n\r\n    _permissionSource = new BehaviorSubject<boolean>(false);\r\n    permission$ = this._permissionSource.asObservable().pipe();\r\n\r\n    _camerasNotFoundSource = new Subject<DOMException>();\r\n    camerasNotFound$ = this._camerasNotFoundSource.asObservable().pipe(shareReplay(1));\r\n\r\n    private _logService = inject(LogService);\r\n\r\n    constructor() {\r\n        this.hasNavigator = typeof navigator !== 'undefined';\r\n        this.isMediaDevicesSupported = this.hasNavigator && !!navigator.mediaDevices;\r\n    }\r\n\r\n    async updateVideoInputDevices(): Promise<MediaDeviceInfo[]> {\r\n        // permissions aren't needed to get devices, but to access them and their info\r\n        const devices = (await BrowserCodeReader.listVideoInputDevices()) || [];\r\n        const hasDevices = devices && devices.length > 0;\r\n\r\n        // stores discovered devices and updates information\r\n        this._hasDevicesSource.next(hasDevices);\r\n        this._camerasSource.next([...devices]);\r\n\r\n        if (!hasDevices) {\r\n            const err = {\r\n                code: DOMException.NOT_FOUND_ERR,\r\n                message: 'Device not found.'\r\n            };\r\n            this._camerasNotFoundSource.next(err as DOMException);\r\n        }\r\n\r\n        return devices;\r\n    }\r\n\r\n    /**\r\n     * Gets and registers all cammeras.\r\n     */\r\n    async askForPermission(): Promise<boolean> {\r\n        if (!this.hasNavigator) {\r\n            this._logService.error('user media', `Can't ask permission, navigator is not present.`);\r\n            this._setPermission(false);\r\n        }\r\n\r\n        if (!this.isMediaDevicesSupported) {\r\n            this._logService.error('user media', `Can't get user media, this is not supported.`);\r\n            this._setPermission(false);\r\n        }\r\n\r\n        let stream: MediaStream | undefined;\r\n        let permission = false;\r\n\r\n        try {\r\n            // Will try to ask for permission\r\n            stream = await this._getAnyVideoDevice();\r\n            permission = !!stream;\r\n        } catch (err) {\r\n            this._handlePermissionException(err as DOMException);\r\n        } finally {\r\n            this.terminateStream(stream);\r\n        }\r\n\r\n        this._setPermission(permission);\r\n        return permission;\r\n    }\r\n    protected terminateStream(stream: MediaStream | undefined): void {\r\n        if (stream) {\r\n            stream.getTracks().forEach((t) => t.stop());\r\n        }\r\n\r\n        stream = undefined;\r\n    }\r\n    protected _setPermission(permission: boolean): void {\r\n        this._permissionSource.next(permission);\r\n    }\r\n    protected _getAnyVideoDevice(): Promise<MediaStream> {\r\n        return navigator.mediaDevices.getUserMedia({ video: true });\r\n    }\r\n    protected _handlePermissionException(err: DOMException): boolean {\r\n        console.error('user media', 'Error when asking for permission.', err);\r\n        let permission = false;\r\n\r\n        switch (err.name) {\r\n            // usually caused by not secure origins\r\n            case 'NotSupportedError':\r\n                this._logService.warn('user media', err.message);\r\n                // could not claim\r\n                permission = false;\r\n                // can't check devices\r\n                this._hasDevicesSource.next(false);\r\n                break;\r\n\r\n            // user denied permission\r\n            case 'NotAllowedError':\r\n                this._logService.warn('user media', err.message);\r\n                // claimed and denied permission\r\n                permission = false;\r\n                // this means that input devices exists\r\n                this._hasDevicesSource.next(true);\r\n                break;\r\n\r\n            // the device has no attached input devices\r\n            case 'NotFoundError':\r\n                this._logService.warn('user media', err.message);\r\n                // no permissions claimed\r\n                permission = false;\r\n                // because there was no devices\r\n                this._hasDevicesSource.next(false);\r\n                // tells the listener about the error\r\n                this._camerasNotFoundSource.next(err);\r\n                break;\r\n\r\n            case 'NotReadableError':\r\n                this._logService.warn(\r\n                    'user media',\r\n                    `Couldn't read the device(s)'s stream, it's probably in use by another app.`\r\n                );\r\n                // no permissions claimed\r\n                permission = false;\r\n                // there are devices, which I couldn't use\r\n                this._hasDevicesSource.next(false);\r\n                // tells the listener about the error\r\n                this._camerasNotFoundSource.next(err);\r\n                break;\r\n\r\n            default:\r\n                this._logService.warn(\r\n                    'user media',\r\n                    'I was not able to define if I have permissions for camera or not.',\r\n                    err\r\n                );\r\n                // unknown\r\n                permission = false;\r\n                // this.hasDevices.next(undefined;\r\n                break;\r\n        }\r\n\r\n        this._setPermission(permission);\r\n\r\n        // tells the listener about the error\r\n        this._permissionResponse.next(err);\r\n\r\n        return permission;\r\n    }\r\n}\r\n@Injectable()\r\nexport class WebBarcodeService {\r\n    userMediaService = inject(UserMediaBaseService);\r\n\r\n    scanError$: Observable<Error>;\r\n    scanFailure$: Observable<Error>;\r\n    scanComplete$: Observable<Result>;\r\n    scanSuccess$: Observable<string>;\r\n\r\n    private _device: MediaDeviceInfo | undefined = undefined;\r\n    private _videoEl: HTMLVideoElement;\r\n    private _codeReader: BrowserMultiFormatContinuousReader | undefined = undefined;\r\n    private _hints: Map<DecodeHintType, any> = new Map<DecodeHintType, any>();\r\n    private _scanErrorSource = new Subject<Error>();\r\n    private _scanFailureSource = new Subject<Error>();\r\n    private _scanSubscription: any;\r\n    private _scanCompleteSource = new Subject<Result>();\r\n    private _scanSuccessSource = new Subject<Result>();\r\n    private _options: {\r\n        delayBetweenScanAttempts: number;\r\n        delayBetweenScanSuccess: number;\r\n    } = {\r\n        delayBetweenScanAttempts: 50,\r\n        delayBetweenScanSuccess: 500\r\n    };\r\n\r\n    /** Inserted by Angular inject() migration for backwards compatibility */\r\n\r\n    constructor() {\r\n        this.scanError$ = this._scanErrorSource.asObservable();\r\n        this.scanFailure$ = this._scanFailureSource.asObservable();\r\n        this.scanComplete$ = this._scanCompleteSource.asObservable();\r\n        this.scanSuccess$ = this._scanSuccessSource.asObservable().pipe(map((c) => c.getText()));\r\n    }\r\n\r\n    public startScan(device: MediaDeviceInfo, videoEl: HTMLVideoElement, options = this._options): void {\r\n        // instantly stops the scan before changing devices\r\n        this.scanStop();\r\n\r\n        // correctly sets the new (or none) device\r\n        this._device = device || undefined;\r\n        this._videoEl = videoEl;\r\n        this._options = options;\r\n        if (!this._device) {\r\n            // cleans the video because user removed the device\r\n            BrowserCodeReader.cleanVideoSource(videoEl);\r\n        }\r\n        if (this._scanSubscription) {\r\n            throw new Error('There is already a scan proccess running.');\r\n        }\r\n\r\n        if (!this._device) {\r\n            throw new Error('No device defined, cannot start scan, please define a device.');\r\n        }\r\n\r\n        // if enabled, starts scanning\r\n        if (device) {\r\n            this.scanFromDevice(device.deviceId);\r\n        }\r\n    }\r\n    public setFormat(input: BarcodeFormat[]): void {\r\n        if (typeof input === 'string') {\r\n            throw new Error('Invalid formats, make sure the [formats] input is a binding.');\r\n        }\r\n\r\n        // formats may be set from html template as BarcodeFormat or string array\r\n        const formats = input.map((f) => this.getBarcodeFormatOrFail(f));\r\n\r\n        const hints = this._hints;\r\n\r\n        // updates the hints\r\n        hints.set(DecodeHintType.POSSIBLE_FORMATS, formats);\r\n\r\n        // handles updating the codeReader\r\n        this._hints = hints;\r\n    }\r\n    public scanStop(): void {\r\n        if (this._scanSubscription) {\r\n            this._codeReader?.getScannerControls().stop();\r\n            this._scanSubscription?.unsubscribe();\r\n            this._scanSubscription = undefined;\r\n        }\r\n        // this.torchCompatible.next(false);\r\n    }\r\n\r\n    public destroy(): void {\r\n        // @note apenas necessario por enquanto causa da Torch\r\n        this.scanStop();\r\n        this._codeReader = undefined;\r\n        this._device = undefined;\r\n    }\r\n\r\n    private getBarcodeFormatOrFail(format: string | BarcodeFormat): BarcodeFormat {\r\n        return typeof format === 'string' ? BarcodeFormat[format.trim().toUpperCase()] : format;\r\n    }\r\n    private async scanFromDevice(deviceId: string): Promise<void> {\r\n        const videoElement = this._videoEl;\r\n\r\n        const codeReader = this.getCodeReader();\r\n\r\n        const scanStream = await codeReader.scanFromDeviceObservable(deviceId, videoElement);\r\n\r\n        if (!scanStream) {\r\n            throw new Error('Undefined decoding stream, aborting.');\r\n        }\r\n\r\n        const next = (x: ResultAndError): void => this._onDecodeResult(x.result, x.error);\r\n        const error = (err: any): void => this._onDecodeError(err);\r\n        const complete = (): void => {};\r\n\r\n        this._scanSubscription = scanStream.subscribe(next, error, complete);\r\n\r\n        if (this._scanSubscription.closed) {\r\n            return;\r\n        }\r\n\r\n        // const controls = codeReader.getScannerControls();\r\n        // const hasTorchControl = typeof controls.switchTorch !== 'undefined';\r\n\r\n        // this.torchCompatible.next(hasTorchControl);\r\n    }\r\n    /**\r\n     * Handles decode errors.\r\n     */\r\n    private _onDecodeError(err: any): void {\r\n        this._scanErrorSource.next(err);\r\n        // this.reset();\r\n    }\r\n    /**\r\n     * Handles decode results.\r\n     */\r\n    private _onDecodeResult(result: Result | undefined, error: Exception | undefined): void {\r\n        if (result) {\r\n            this._scanSuccessSource.next(result);\r\n        } else {\r\n            this._scanFailureSource.next(error as Error);\r\n        }\r\n        if (result) {\r\n            this._scanCompleteSource.next(result);\r\n        }\r\n    }\r\n    private getCodeReader(): BrowserMultiFormatContinuousReader {\r\n        if (!this._codeReader) {\r\n            this._codeReader = new BrowserMultiFormatContinuousReader(this._hints, this._options);\r\n        }\r\n\r\n        return this._codeReader;\r\n    }\r\n}\r\n","import {\r\n    ChangeDetectionStrategy,\r\n    Component,\r\n    ElementRef,\r\n    EventEmitter,\r\n    Input,\r\n    OnDestroy,\r\n    OnInit,\r\n    Output,\r\n    ViewChild,\r\n    inject\r\n} from '@angular/core';\r\nimport { BehaviorSubject } from 'rxjs';\r\nimport { BarcodeFormat } from '@zxing/library';\r\n\r\nimport { BaseComponent } from 'barsa-novin-ray-core';\r\nimport { WebBarcodeService } from '../barcode.service';\r\nimport { debounceTime, filter, takeUntil, tap } from 'rxjs/operators';\r\n\r\n@Component({\r\n    selector: 'bdc-barcode-reader-video',\r\n    templateUrl: './barcode-reader-video.component.html',\r\n    styleUrls: ['./barcode-reader-video.component.scss'],\r\n    changeDetection: ChangeDetectionStrategy.OnPush,\r\n    standalone: false,\r\n    providers: [WebBarcodeService]\r\n})\r\nexport class BarcodeReaderVideoComponent extends BaseComponent implements OnInit, OnDestroy {\r\n    @Input() allFormats: BarcodeFormat[];\r\n    @Input()\r\n    previewFitMode: 'fill' | 'contain' | 'cover' | 'scale-down' | 'none' = 'fill';\r\n\r\n    @Output() scanSuccess = new EventEmitter<string>();\r\n\r\n    @ViewChild('videoElement', { static: true })\r\n    videoElement: ElementRef<HTMLVideoElement>;\r\n    @Input() set selectedCamera(val: MediaDeviceInfo) {\r\n        this._cameraSource.next(val);\r\n    }\r\n    private _cameraSource = new BehaviorSubject<MediaDeviceInfo | null>(null);\r\n    private _webBarcodeService = inject(WebBarcodeService);\r\n\r\n    ngOnInit(): void {\r\n        super.ngOnInit();\r\n        this._setFormat(this.allFormats);\r\n\r\n        this._cameraSource\r\n            .asObservable()\r\n            .pipe(\r\n                takeUntil(this._onDestroy$),\r\n                debounceTime(500),\r\n                filter((camera) => camera != null),\r\n\r\n                tap((camera) => {\r\n                    this._stopScan();\r\n                    this._startScan(camera);\r\n                })\r\n            )\r\n            .subscribe();\r\n\r\n        this._webBarcodeService.scanSuccess$.subscribe((result) => {\r\n            this.scanSuccess.emit(result);\r\n        });\r\n    }\r\n    ngOnDestroy(): void {\r\n        super.ngOnDestroy();\r\n        this._webBarcodeService.scanStop();\r\n    }\r\n\r\n    private _setFormat(formats: BarcodeFormat[]): void {\r\n        this._webBarcodeService.setFormat(formats);\r\n    }\r\n    private _stopScan(): void {\r\n        this._webBarcodeService.scanStop();\r\n    }\r\n    private _startScan(camera): void {\r\n        if (this.videoElement) {\r\n            this._webBarcodeService.startScan(camera, this.videoElement.nativeElement);\r\n        }\r\n    }\r\n}\r\n","<video #videoElement [style.object-fit]=\"previewFitMode\">\r\n    <p>{{ 'BrowserNotSupport' | bbbTranslate }}</p>\r\n</video>\r\n","import { AfterViewInit, ChangeDetectionStrategy, Component, inject } from '@angular/core';\r\nimport { DialogRef } from '@fundamental-ngx/core';\r\nimport { Observable, of } from 'rxjs';\r\n\r\nimport { BaseComponent } from 'barsa-novin-ray-core';\r\nimport { UserMediaBaseService } from '../barcode.service';\r\nimport { concatMap, delay, exhaustMap, finalize, takeUntil, tap } from 'rxjs/operators';\r\nimport { BarcodeFormat } from '@zxing/library';\r\n@Component({\r\n    selector: 'bdc-barcode-reader-dialog',\r\n    templateUrl: './barcode-reader-dialog.component.html',\r\n    styleUrls: ['./barcode-reader-dialog.component.scss'],\r\n    changeDetection: ChangeDetectionStrategy.OnPush,\r\n    standalone: false,\r\n    providers: [UserMediaBaseService]\r\n})\r\nexport class BarcodeReaderDialogComponent extends BaseComponent implements AfterViewInit {\r\n    value = '';\r\n    cameras$: Observable<MediaDeviceInfo[]>;\r\n    format = [BarcodeFormat.QR_CODE];\r\n    hasDevice$: Observable<boolean>;\r\n    permission$: Observable<boolean>;\r\n    loading: boolean;\r\n    selectedCamera: MediaDeviceInfo;\r\n    barcodeFormats: Array<BarcodeFormat>;\r\n    selectedFormat: BarcodeFormat;\r\n\r\n    private _dialogRef = inject(DialogRef);\r\n    private _userMediaService = inject(UserMediaBaseService);\r\n    constructor() {\r\n        super();\r\n        this.loading = true;\r\n        this._dialogRef.loading(true);\r\n        this.barcodeFormats = this._dialogRef.data?.barcodeFormats ?? [];\r\n        this.selectedFormat = this.barcodeFormats.length > 0 ? this.barcodeFormats[0] : BarcodeFormat.QR_CODE;\r\n    }\r\n\r\n    ngAfterViewInit(): void {\r\n        super.ngAfterViewInit();\r\n        this._initialize();\r\n    }\r\n\r\n    onDismiss(): void {\r\n        this._dialogRef.dismiss();\r\n    }\r\n    onOk(): void {\r\n        this._close();\r\n    }\r\n\r\n    onCameraChange(value): void {\r\n        this.selectedCamera = value;\r\n    }\r\n    onFormatChange(format): void {\r\n        this.selectedFormat = format;\r\n    }\r\n    onScanSuccess(result): void {\r\n        this.value = result;\r\n        this._close();\r\n    }\r\n    onValueChanged(e): void {\r\n        this.value = e.target.value;\r\n    }\r\n    private _close(): void {\r\n        this._dialogRef.close(this.value);\r\n    }\r\n    private _initialize(): void {\r\n        of(true)\r\n            .pipe(\r\n                takeUntil(this._onDestroy$),\r\n                exhaustMap(() => this._userMediaService.askForPermission()),\r\n                concatMap((permission) => {\r\n                    if (permission) {\r\n                        return this._userMediaService.updateVideoInputDevices();\r\n                    } else {\r\n                        return of(true);\r\n                    }\r\n                }),\r\n                finalize(() => {\r\n                    this.loading = false;\r\n                    this._dialogRef.loading(false);\r\n                })\r\n            )\r\n            .subscribe();\r\n        this.hasDevice$ = this._userMediaService.hasDevices$;\r\n        this.permission$ = this._userMediaService.permission$;\r\n        this.cameras$ = this._userMediaService.cameras$.pipe(\r\n            delay(0),\r\n            tap((cameras) => {\r\n                this.selectedCamera = cameras.find((c) => c.label.indexOf('back') > -1) ?? cameras[0];\r\n            })\r\n        );\r\n    }\r\n}\r\n","<fd-dialog>\r\n    <fd-dialog-header>\r\n        <h1 fd-title>{{ 'BarcodeReader' | bbbTranslate }} {{ selectedCamera?.label }}</h1>\r\n        <button fd-dialog-close-button (click)=\"onDismiss()\"></button>\r\n    </fd-dialog-header>\r\n    <fd-dialog-body>\r\n        @if (!loading) { @if (permission$ | async) { @if (hasDevice$ | async) { @if (selectedCamera) {\r\n        <bdc-barcode-reader-video\r\n            [format]=\"format\"\r\n            [selectedCamera]=\"selectedCamera\"\r\n            [allFormats]=\"barcodeFormats\"\r\n            (scanSuccess)=\"onScanSuccess($event)\"\r\n        ></bdc-barcode-reader-video>\r\n        } } @else {\r\n        <p>BrowserNotSupport</p>\r\n        } } @else {\r\n        <p>NoPermission</p>\r\n        } }\r\n    </fd-dialog-body>\r\n    <fd-dialog-footer>\r\n        <ng-template fdkTemplate=\"footer\">\r\n            @if (cameras$ | async; as cameraList) {\r\n            <div fd-bar-left>\r\n                @if (cameraList.length > 1) {\r\n                <fd-select\r\n                    [placeholder]=\"'Camera' | bbbTranslate\"\r\n                    (valueChange)=\"onCameraChange($event)\"\r\n                    [value]=\"selectedCamera\"\r\n                >\r\n                    @for (camera of cameraList; track camera) {\r\n                    <fd-option [value]=\"camera\">{{ camera.label }}</fd-option>\r\n                    }\r\n                </fd-select>\r\n                }\r\n            </div>\r\n            <div fd-bar-right></div>\r\n            }\r\n        </ng-template>\r\n    </fd-dialog-footer>\r\n</fd-dialog>\r\n","import { ChangeDetectionStrategy, Component, OnInit, inject,signal } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { ContentDensity, DialogService, DynamicPageResponsiveSize } from '@fundamental-ngx/core';\r\n\r\nimport { BarsaApi } from 'barsa-novin-ray-core';\r\nimport { UiMoInfoSubFormUiComponent } from 'barsa-sap-ui';\r\n\r\nimport { BarcodeReaderDialogComponent } from '../barcode-reader-dialog/barcode-reader-dialog.component';\r\nimport { BarcodeFormat } from '@zxing/library';\r\n@Component({\r\n    selector: 'bdc-barcode-reader',\r\n    templateUrl: './barcode-reader.component.html',\r\n    styleUrls: ['./barcode-reader.component.scss'],\r\n    changeDetection: ChangeDetectionStrategy.OnPush,\r\n    standalone: false\r\n})\r\nexport class BarcodeReaderComponent extends UiMoInfoSubFormUiComponent implements OnInit {\r\n    public size: DynamicPageResponsiveSize = 'large';\r\n    public barcodeValue = signal('');\r\n\r\n    contentDensity$: Observable<ContentDensity>;\r\n    barcodeFormat: Array<BarcodeFormat>;\r\n    protected _dialogService = inject(DialogService);\r\n\r\n    ngOnInit(): void {\r\n        super.ngOnInit();\r\n        this.barcodeValue.set(this.context.Setting.FormPanelSetting.Data.Mo.Value);\r\n        const format: string = this.context.Setting.CustomFieldInfo?.Format;\r\n        if (format) {\r\n            this.barcodeFormat = format\r\n                .split(',')\r\n                .filter((c) => c)\r\n                .map((c) => Number(c) - 1);\r\n        }\r\n        this.size = BarsaApi.Bw.GetWindowSize();\r\n    }\r\n\r\n    onOpenBarcodeReader(): void {\r\n        const data = { barcodeFormats: this.barcodeFormat };\r\n        const dialogRef = this._dialogService.open(BarcodeReaderDialogComponent, {\r\n            data,\r\n            width: this.isMobileDevice ? '100svw' : undefined,\r\n            height: this.isMobileDevice ? '100svh' : undefined,\r\n            verticalPadding: true,\r\n            responsivePadding: true,\r\n            mobile: this.isMobileDevice,\r\n            mobileOuterSpacing: true\r\n        });\r\n        dialogRef.afterClosed.pipe(takeUntil(this._onDestroy$)).subscribe((value) => {\r\n            if (value) {\r\n                this._setFieldValue(value);\r\n            }\r\n        });\r\n    }\r\n    onValueChange(e): void {\r\n        this._setFieldValue(e.target.value);\r\n    }\r\n    protected _addFormControl(formControl): void {\r\n        this.customFormPanelUi = formControl;\r\n    }\r\n    private _setFieldValue(value: any): void {\r\n        this.barcodeValue.set(value);\r\n        const valueCustomFieldUi = this.context.formControl._dictFieldUi.Value;\r\n        valueCustomFieldUi.value = value;\r\n        valueCustomFieldUi.fireEvent('change', value);\r\n    }\r\n}\r\n","<!-- <fd-input-group\r\n  placement=\"after\"\r\n  glyph=\"camera\"\r\n  [placeholder]=\"'BarcodeReader' | bbbTranslate\"\r\n  [button]=\"true\"\r\n  ariaLabelledBy=\"fd-input-group-button-label-2\"\r\n  (addOnButtonClicked)=\"onOpenBarcodeReader()\"\r\n  (input)=\"onValueChange($event)\"\r\n>\r\n</fd-input-group> -->\r\n<fd-input-group\r\n    placement=\"after\"\r\n    [name]=\"'barcode_' + id\"\r\n    glyph=\"camera\"\r\n    glyphAriaLabel=\"scan barcode\"\r\n    [placeholder]=\"'BarcodeReader' | bbbTranslate\"\r\n    [ngModel]=\"barcodeValue()\"\r\n    [button]=\"true\"\r\n    [showFocus]=\"true\"\r\n    [disabled]=\"disabled\"\r\n    [readonly]=\"readonly\"\r\n    (addOnButtonClicked)=\"onOpenBarcodeReader()\"\r\n>\r\n</fd-input-group>\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n    name: 'uiPerson',\r\n    standalone: false\r\n})\r\nexport class UiPersonPipe implements PipeTransform {\r\n    transform(value: unknown): string {\r\n        let transform;\r\n        switch (value) {\r\n            case 'FirstName':\r\n                transform = 'نام';\r\n                break;\r\n            case 'LastName':\r\n                transform = 'نام خانوادگی';\r\n                break;\r\n            case 'NationalCode':\r\n                transform = 'کد ملی';\r\n                break;\r\n            case 'FatherName':\r\n                transform = 'نام پدر';\r\n                break;\r\n            case 'Birthplace':\r\n                transform = 'محل تولد';\r\n                break;\r\n            case 'Mobile':\r\n                transform = 'محل تولد';\r\n                break;\r\n            default:\r\n                transform = '';\r\n                break;\r\n        }\r\n        return transform;\r\n    }\r\n}\r\n","import { AfterViewInit, ChangeDetectionStrategy, Component, OnInit, TemplateRef, ViewChild ,inject } from '@angular/core';\r\nimport { DialogRef, DialogService, PopoverBodyComponent, PopoverComponent } from '@fundamental-ngx/core';\r\n\r\nimport { FieldBaseComponent } from 'barsa-novin-ray-core';\r\nimport { Person, PersonFilter } from '../models/person';\r\n\r\n@Component({\r\n    selector: 'bdc-ui-person',\r\n    templateUrl: './ui-person.component.html',\r\n    styleUrls: ['./ui-person.component.scss'],\r\n    changeDetection: ChangeDetectionStrategy.OnPush,\r\n    standalone: false\r\n})\r\nexport class UiPersonComponent extends FieldBaseComponent implements OnInit, AfterViewInit {\r\n    @ViewChild('popover') popoverDom: PopoverComponent;\r\n    @ViewChild(PopoverBodyComponent) popoverBodyDom: PopoverBodyComponent;\r\n    searchResult: Person[] = [];\r\n    personCollection: Person[] = [\r\n        {\r\n            Id: 1,\r\n            FirstName: 'zahra',\r\n            LastName: 'darbandy',\r\n            FatherName: 'ali',\r\n            Birthplace: 'yazd',\r\n            NationalCode: '123456789'\r\n        },\r\n        {\r\n            Id: 2,\r\n            FirstName: 'ali',\r\n            LastName: 'kafdary',\r\n            FatherName: 'reza',\r\n            Birthplace: 'shiraz',\r\n            NationalCode: '754123659'\r\n        },\r\n        {\r\n            Id: 3,\r\n            FirstName: 'sara',\r\n            LastName: 'rezaee',\r\n            FatherName: 'ali',\r\n            Birthplace: 'tehran',\r\n            NationalCode: '123456789'\r\n        },\r\n        {\r\n            Id: 4,\r\n            FirstName: 'علی',\r\n            LastName: 'خزایی',\r\n            FatherName: 'کمال',\r\n            Birthplace: 'اصفهان',\r\n            NationalCode: '452145698'\r\n        },\r\n        {\r\n            Id: 5,\r\n            FirstName: 'vahid',\r\n            LastName: 'alipor',\r\n            FatherName: 'ali',\r\n            Birthplace: 'shiraz',\r\n            NationalCode: '756982456'\r\n        },\r\n        {\r\n            Id: 6,\r\n            FirstName: 'mohammad',\r\n            LastName: 'kamali',\r\n            FatherName: 'vahid',\r\n            Birthplace: 'ahvaz',\r\n            NationalCode: '32165897'\r\n        }\r\n    ];\r\n\r\n    selectedPerson: Person | null;\r\n    dialogRef: DialogRef;\r\n\r\n    filterItems: PersonFilter;\r\n    isPopoverOpened: boolean;\r\n    \r\n    protected _dialogService = inject(DialogService);\r\n\r\n    ngOnInit(): void {\r\n        super.ngOnInit();\r\n        this.value = {\r\n            Id: 5,\r\n            FirstName: 'وحید',\r\n            LastName: 'علیپور',\r\n            FatherName: 'علی',\r\n            Birthplace: 'شیراز',\r\n            NationalCode: '756982456',\r\n            Mobile: '09175623898'\r\n        };     \r\n    }    \r\n\r\n    filter(): void {\r\n        this.searchResult = this.personCollection.filter(\r\n            (person) =>\r\n                person.FirstName.toLowerCase().includes(this.filterItems?.FirstName.toLowerCase() || '') &&\r\n                person.LastName.toLowerCase().includes(this.filterItems?.LastName.toLowerCase() || '') &&\r\n                person.NationalCode.toString().includes(this.filterItems?.NationalCode.toString() || '')\r\n        );\r\n    }\r\n\r\n    select(person: Person): void {\r\n        this.selectedPerson = person;\r\n    }\r\n\r\n    confirm(): void {\r\n        this.value = this.selectedPerson ?? this.value;\r\n        this.valueChange.emit(this.value);\r\n        this.close();\r\n    }\r\n\r\n    close(): void {\r\n        this.dialogRef.close();\r\n        this.selectedPerson = null;\r\n    }\r\n\r\n    openDialog(template: TemplateRef<any>): void {\r\n        this.resetTable();\r\n        this.dialogRef = this._dialogService.open(template, {\r\n            minHeight: '500px',\r\n            minWidth: '700px',\r\n            maxHeight: '1000px',\r\n            maxWidth: '1500px',\r\n            draggable: true,\r\n            resizable: true,\r\n            verticalPadding: false\r\n        });\r\n        this.dialogRef.loading(true);\r\n        setTimeout(() => this.dialogRef.loading(false), 500);\r\n    }\r\n\r\n    resetTable(): void {\r\n        this.filterItems = { FirstName: '', LastName: '', NationalCode: '' };\r\n        this.filter();\r\n    }\r\n\r\n    edit(): void {}\r\n\r\n    delete(): void {\r\n        this.value = null;\r\n        this.valueChange.emit(this.value);\r\n    }\r\n\r\n    openPopover(): void {\r\n        if (!this.isPopoverOpened && this.value) {\r\n            setTimeout(() => {\r\n                this.popoverDom.open();\r\n            }, 1000);\r\n        }\r\n    }\r\n\r\n    openChange(isOpen: boolean): void {\r\n        this.isPopoverOpened = isOpen;\r\n    }\r\n}\r\n","<fd-popover [fillControlMode]=\"'equal'\" #popover (isOpenChange)=\"openChange($event)\">\r\n    <fd-popover-control>\r\n        <ul fd-list [compact]=\"true\">\r\n            <li fd-list-item>\r\n                <div fd-list-content>\r\n                    <div class=\"control-content\" (mouseover)=\"openPopover()\">\r\n                        <fd-icon glyph=\"person-placeholder\"></fd-icon>\r\n                        <div>\r\n                            <span>{{ value?.FirstName }}</span>\r\n                        </div>\r\n                        <div>\r\n                            <span>{{ value?.LastName }}</span>\r\n                        </div>\r\n                    </div>\r\n                </div>\r\n                @if (value) {\r\n                <button fd-button fdType=\"transparent\" glyph=\"user-edit\" (click)=\"edit()\"></button>\r\n                <button fd-button fdType=\"transparent\" glyph=\"decline\" (click)=\"delete()\"></button>\r\n                } @else {\r\n                <button fd-button label=\"انتخاب شخص\" fdType=\"transparent\" (click)=\"openDialog(dialogTemplate)\"></button>\r\n                }\r\n            </li>\r\n        </ul>\r\n    </fd-popover-control>\r\n    @if (value) {\r\n    <fd-popover-body #popoverBody>\r\n        <div class=\"resize-quick-view\">\r\n            <fd-card cardType=\"quickView\">\r\n                <fd-card-content>\r\n                    <fd-quick-view [id]=\"value.id\">\r\n                        <fd-quick-view-subheader>\r\n                            <fd-icon glyph=\"user\"></fd-icon>\r\n                            <fd-quick-view-subheader-title> مشخصات </fd-quick-view-subheader-title>\r\n                        </fd-quick-view-subheader>\r\n                        <fd-quick-view-group>\r\n                            @for (item of value | keyvalue; track item) {\r\n                            <fd-quick-view-group-item>\r\n                                @if (item.key !== 'Id') {\r\n                                <div class=\"popover-body-item\">\r\n                                    <fd-quick-view-group-item-label>\r\n                                        {{ (item.key | uiPerson) + ':' }}\r\n                                    </fd-quick-view-group-item-label>\r\n                                    <fd-quick-view-group-item-content>\r\n                                        @switch (item.value) { @case ( item.key === 'Mobile' || item.key === 'Phone' ?\r\n                                        item.key : '' ) {\r\n                                        <a [href]=\"'tel:' + item.value\" [innerText]=\"item.value\" fd-link></a>\r\n                                        } @case ('Email') {\r\n                                        <a [href]=\"'mailto:' + item.value\" [innerText]=\"item.value\" fd-link></a>\r\n                                        } @default {\r\n                                        <div [innerText]=\"item.value\"></div>\r\n                                        } }\r\n                                    </fd-quick-view-group-item-content>\r\n                                </div>\r\n                                }\r\n                            </fd-quick-view-group-item>\r\n                            }\r\n                        </fd-quick-view-group>\r\n                    </fd-quick-view>\r\n                </fd-card-content>\r\n            </fd-card>\r\n        </div>\r\n    </fd-popover-body>\r\n    }\r\n</fd-popover>\r\n\r\n<ng-template let-dialog let-dialogConfig=\"dialogConfig\" #dialogTemplate>\r\n    <fd-dialog [dialogConfig]=\"dialogConfig\" [dialogRef]=\"dialog\">\r\n        <fd-dialog-header>\r\n            <h1 fd-title>جستجوی شخص</h1>\r\n            <button fd-dialog-close-button (click)=\"dialog.dismiss('Close button')\"></button>\r\n        </fd-dialog-header>\r\n\r\n        <fd-dialog-body>\r\n            <div class=\"filter\" (keydown.enter)=\"filter()\">\r\n                <div fd-form-item>\r\n                    <label fd-form-label for=\"name\">نام</label>\r\n                    <input fd-form-control id=\"name\" [(ngModel)]=\"filterItems.FirstName\" />\r\n                </div>\r\n                <div fd-form-item>\r\n                    <label fd-form-label for=\"last-name\">نام خانوادگی</label>\r\n                    <input fd-form-control id=\"last-name\" [(ngModel)]=\"filterItems.LastName\" />\r\n                </div>\r\n                <div fd-form-item>\r\n                    <label fd-form-label for=\"national-code\">کدملی</label>\r\n                    <input fd-form-control id=\"national-code\" [(ngModel)]=\"filterItems.NationalCode\" />\r\n                </div>\r\n\r\n                <fd-button-bar fdkInitialFocus fdType=\"emphasized\" label=\"جستجو\" (click)=\"filter()\"> </fd-button-bar>\r\n            </div>\r\n\r\n            <table fd-table [noBorderX]=\"true\" [noBorderY]=\"true\">\r\n                <thead fd-table-header>\r\n                    <tr fd-table-row>\r\n                        <th fd-table-cell>نام</th>\r\n                        <th fd-table-cell>نام خانوادگی</th>\r\n                        <th fd-table-cell>کد ملی</th>\r\n                    </tr>\r\n                </thead>\r\n                <tbody fd-table-body>\r\n                    @for (person of searchResult; track person) {\r\n                    <tr (click)=\"select(person)\" [class.selected]=\"selectedPerson?.Id === person?.Id\" fd-table-row>\r\n                        <td fd-table-cell>\r\n                            {{ person.FirstName }}\r\n                        </td>\r\n                        <td fd-table-cell>{{ person.LastName }}</td>\r\n                        <td fd-table-cell>{{ person.NationalCode }}</td>\r\n                    </tr>\r\n                    }\r\n                </tbody>\r\n            </table>\r\n        </fd-dialog-body>\r\n\r\n        <fd-dialog-footer>\r\n            <ng-template fdkTemplate=\"footer\">\r\n                <div fd-bar-right>\r\n                    <fd-button-bar fdType=\"emphasized\" label=\"تایید\" (click)=\"confirm()\"> </fd-button-bar>\r\n                    <fd-button-bar fdkInitialFocus label=\"انصراف\" (click)=\"close()\"> </fd-button-bar>\r\n                </div>\r\n            </ng-template>\r\n        </fd-dialog-footer>\r\n    </fd-dialog>\r\n</ng-template>\r\n","import { ChangeDetectionStrategy, Component, HostBinding, inject } from '@angular/core';\r\n\r\nimport { ReportBaseComponent, BarsaApi, MoReportValuePipe, MetaobjectDataModel } from 'barsa-novin-ray-core';\r\n@Component({\r\n    selector: 'bdc-login-social-conncetions',\r\n    templateUrl: './login-social-conncetions.component.html',\r\n    styleUrls: ['./login-social-conncetions.component.scss'],\r\n    changeDetection: ChangeDetectionStrategy.OnPush,\r\n    standalone: false\r\n})\r\nexport class LoginSocialConncetionsComponent extends ReportBaseComponent {\r\n    @HostBinding('attr.rtl') rtl = BarsaApi.LoginFormData.IsRtl;\r\n\r\n    private reportValuePipe = inject(MoReportValuePipe);\r\n\r\n    onClick(mo: MetaobjectDataModel): void {\r\n        const provider = this.reportValuePipe.transform('Name', mo, this.allColumns, true);\r\n\r\n        const returnUrl = encodeURIComponent(window.location.href);\r\n        BarsaApi.Bw.NavigateTo(`/api/openId/signin?provider=${provider}&returnUrl=${returnUrl}`);\r\n    }\r\n}\r\n","@for (mo of moDataList$ | async; track mo) {\r\n<button\r\n    fd-button\r\n    [label]=\"'Display Text' | rval: mo:allColumns\"\r\n    [fdType]=\"'FdType' | rval: mo:allColumns:true\"\r\n    (click)=\"onClick(mo)\"\r\n>\r\n    <img\r\n        style=\"max-width: 28px\"\r\n        [src]=\"\r\n            ('Logo' | rval: mo:allColumns)?.FileId\r\n                | picFieldSrc: 'GetPictureFromFileInfo':null\r\n        \"\r\n        loading=\"lazy\"\r\n    />\r\n</button>\r\n}\r\n","import { ChangeDetectionStrategy, Component, HostBinding, HostListener, OnInit } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { map, takeUntil } from 'rxjs/operators';\r\nimport { BarsaApi, FormBaseComponent, FormPanelService, getDeviceIsMobile } from 'barsa-novin-ray-core';\r\n\r\n@Component({\r\n    selector: 'bdc-login-form',\r\n    templateUrl: './login-form.component.html',\r\n    styleUrls: ['./login-form.component.scss'],\r\n    changeDetection: ChangeDetectionStrategy.OnPush,\r\n    providers: [FormPanelService],\r\n    standalone: false\r\n})\r\nexport class LoginFormComponent extends FormBaseComponent implements OnInit {\r\n    size$: Observable<'xl' | 'md' | 'sm'>;\r\n    @HostBinding('class.desktopmode') _desktopmode = !getDeviceIsMobile();\r\n    @HostListener('keydown.enter', ['$event'])\r\n    onKeyEnter = (_): void => {\r\n        const layoutItem = this._controlUiPipe.transform(' ورود', this.layout94);\r\n        if (layoutItem) {\r\n            layoutItem.FieldUi.fireEvent('click', layoutItem.FieldUi);\r\n        }\r\n    };\r\n\r\n    ngOnInit(): void {\r\n        this._activatedRoute.queryParams.pipe(takeUntil(this._onDestroy$)).subscribe((params) => {\r\n            BarsaApi.Bw.SetCultureByDisplayName(params.culture);\r\n        });\r\n        super.ngOnInit();\r\n        this.layout94$.subscribe((layout94) => {\r\n            this.layout94 = layout94;\r\n        });\r\n        this.size$ = this._portalService.deviceSize$.pipe(\r\n            map((deviceSize) => {\r\n                switch (deviceSize) {\r\n                    case 's':\r\n                        return 'sm';\r\n                    case 'm':\r\n                        return 'md';\r\n                    default:\r\n                        return 'xl';\r\n                }\r\n            })\r\n        );\r\n    }\r\n}\r\n","@if (mo$ | async; as mo) { @if (mo.IsLogging) {\r\n<bsu-mask></bsu-mask>\r\n} @if ((size$ | async) === 'sm') {\r\n<fd-layout-grid [class.mobile]=\"isMobile\">\r\n    <div [fdLayoutGridCol]=\"1\"></div>\r\n    <div [fdLayoutGridCol]=\"10\">\r\n        <bsu-ly-layout-container-of-root\r\n            [config]=\"layout94$ | async\"\r\n            [isPanel]=\"false\"\r\n            [isRoot]=\"true\"\r\n            [class.desktopMode]=\"!(isMobile === true)\"\r\n        ></bsu-ly-layout-container-of-root>\r\n        <div class=\"extra-grid-layout\"></div>\r\n    </div>\r\n    <div [fdLayoutGridCol]=\"1\"></div>\r\n</fd-layout-grid>\r\n} @else {\r\n<fd-dynamic-side-content [size]=\"(size$ | async)!!\">\r\n    <fd-dynamic-side-content-side>\r\n        <bsu-ly-layout-container-of-root\r\n            [config]=\"layout94$ | async\"\r\n            [isPanel]=\"false\"\r\n            [isRoot]=\"true\"\r\n        ></bsu-ly-layout-container-of-root>\r\n        <div class=\"extra-side\"></div>\r\n    </fd-dynamic-side-content-side>\r\n\r\n    <fd-dynamic-side-content-main>\r\n        <!-- <ng-container *ngIf=\"'عکس پس زمینه' | controlUi: layout94 as layoutConfig\">\r\n        <bsu-layout-control\r\n          [caption]=\"'عکس پس زمینه'\"\r\n          [config]=\"layoutConfig\"\r\n          [showLabel]=\"false\"\r\n          [inlineEdit]=\"true\"\r\n        ></bsu-layout-control>\r\n      </ng-container> -->\r\n        @if ('عکس پس زمینه' | controlUi: layout94; as layoutConfig) {\r\n        <div\r\n            id=\"bgLogin\"\r\n            [style.backgroundImage]=\"\r\n                'url(' +\r\n                (mo.Background?.FileId\r\n                    | picFieldSrc: 'PictureFileInfo':null:layoutConfig.FieldUi.Setting.FieldDefId) +\r\n                ')'\r\n            \"\r\n        ></div>\r\n        }\r\n        <div class=\"extra-mainside\"></div>\r\n    </fd-dynamic-side-content-main>\r\n</fd-dynamic-side-content>\r\n} }\r\n<div class=\"extra\"></div>\r\n","import {\r\n    Component,\r\n    OnInit,\r\n    ChangeDetectionStrategy,\r\n    ViewEncapsulation,\r\n    AfterViewInit,\r\n    ElementRef,\r\n    ViewChild,\r\n    Renderer2,\r\n    ViewChildren,\r\n    QueryList,\r\n    ChangeDetectorRef,\r\n    RendererStyleFlags2,\r\n    Input,\r\n    HostBinding,\r\n    WritableSignal,\r\n    signal,\r\n    inject,\r\n    Signal\r\n} from '@angular/core';\r\nimport { ViewportScroller } from '@angular/common';\r\nimport { Observable, takeUntil } from 'rxjs';\r\nimport { TabPanelComponent, TabSizes } from '@fundamental-ngx/core';\r\nimport { MetaobjectDataModel, PortalService } from 'barsa-novin-ray-core';\r\nimport {\r\n    TilesViewerContainerComponent,\r\n    TilesViewerService,\r\n    TilesViewerGroupComponent,\r\n    TilesService,\r\n    TilesStore,\r\n    AppTileGroup\r\n} from 'barsa-tiles';\r\nimport { Router } from '@angular/router';\r\n\r\n@Component({\r\n    selector: 'bdc-service-desk-header',\r\n    templateUrl: './service-desk-header.component.html',\r\n    styleUrls: ['./service-desk-header.component.scss'],\r\n    providers: [TilesViewerService, TilesService],\r\n    changeDetection: ChangeDetectionStrategy.OnPush,\r\n    encapsulation: ViewEncapsulation.None,\r\n    standalone: false\r\n})\r\nexport class ServiceDeskHeaderComponent extends TilesViewerContainerComponent implements OnInit, AfterViewInit {\r\n    @ViewChild('headerSpaceHolder', { static: true }) headerSpaceHolder: ElementRef<any>;\r\n    @ViewChild('headerGrid', { static: true }) headerGrid: ElementRef<any>;\r\n    @ViewChild('aboveSearch', { static: true }) aboveSearch: ElementRef<any>;\r\n    @ViewChild('searchHolder', { static: true }) searchHolder: ElementRef<any>;\r\n    @ViewChild('navHolder', { static: true }) navHolder: ElementRef<any>;\r\n    @ViewChild('aboveContent', { static: true }) aboveContent: ElementRef<any>;\r\n    @ViewChild('bgOuterHolder', { static: true }) bgOuterHolder: ElementRef<any>;\r\n    @ViewChild('contentAndNav', { static: true }) contentAndNav: ElementRef<any>;\r\n    @ViewChildren(TilesViewerGroupComponent, { read: ElementRef }) tilesViewerGroupElList: QueryList<ElementRef>;\r\n    @ViewChildren(TabPanelComponent) tabPanelComponents: QueryList<TabPanelComponent>;\r\n    @HostBinding('class.mode2') _mode2 = false;\r\n    @HostBinding('class.service-desk-header') _cls = true;\r\n    @Input() settings: ServiceDeskHeaderSetting;\r\n    selectedTabIndex = 0;\r\n\r\n    tabSize: TabSizes;\r\n    searchTerm$: Observable<string>;\r\n    searchTerm = '';    \r\n    selectedAppTileGroup: WritableSignal<MetaobjectDataModel[]> = signal([]);\r\n    isStackContent2 = signal(false);\r\n    appGroups: any[] = [];\r\n    imageUrl: string;\r\n    stackContent = true;\r\n    private _enableScroll = false;\r\n    private _disableIntersection: boolean;\r\n    private observerList: { el: any; observer: IntersectionObserver }[] = [];\r\n    private _lastScrollPos: number;\r\n    private _firstVisiblity = false;\r\n    private _renderer = inject(Renderer2);\r\n    private _viewportScroller = inject(ViewportScroller);\r\n    private _cdr = inject(ChangeDetectorRef);\r\n    private _portalService = inject(PortalService);\r\n    private _router = inject(Router);\r\n    private _tilesStore = inject(TilesStore);\r\n    /** Cache of selectGroupChildren signals keyed by parent group ID. */\r\n    private readonly _childrenSignalCache = new Map<string, Signal<AppTileGroup[]>>();\r\n    get heightOfSpaceHolder(): number {\r\n        const x = this.navHolder.nativeElement.getBoundingClientRect().y;\r\n        return x;\r\n    }\r\n    onVisibilityChange(_e): void {\r\n        if (this._firstVisiblity) {\r\n            return;\r\n        }\r\n        this._firstVisiblity = true;\r\n        const stickyTopPosition = this.heightOfSpaceHolder;\r\n\r\n        this._stickyDom(this.aboveContent.nativeElement, this.navHolder.nativeElement, -stickyTopPosition, 'sticky');\r\n        this._stickyDom(\r\n            this.aboveContent.nativeElement,\r\n            this.bgOuterHolder.nativeElement,\r\n            -stickyTopPosition,\r\n            'sticky',\r\n            () => {\r\n                this._renderer.setStyle(this.bgOuterHolder.nativeElement, 'height', stickyTopPosition + 'px');\r\n            },\r\n            () => {\r\n                this._renderer.setStyle(this.bgOuterHolder.nativeElement, 'height', '100%');\r\n            }\r\n        );\r\n    }\r\n    /**\r\n     *\r\n     */\r\n    ngOnInit(): void {\r\n        super.ngOnInit();\r\n        this.setGridTemplateRows();\r\n        this._renderer.setStyle(this.navHolder.nativeElement, 'top', 'var(--shellbar-height)');\r\n        // this._mode2 = this.settings.Mode2;\r\n        this._mode2 = true;\r\n        this.imageUrl = this._portalService.imageUrl || '/assets/back.jpg';\r\n        let stackContent = true;\r\n        if (this.settings) {\r\n            stackContent = this.settings.StackContent;\r\n        }\r\n        this.stackContent = stackContent;\r\n        this.isStackContent2.set(stackContent);\r\n        this._portalService.searchTerm$.pipe(takeUntil(this._onDestroy$)).subscribe((term) => {\r\n            this.searchTerm = term;\r\n            this._cdr.detectChanges();\r\n        });\r\n\r\n        this.appTileGroups$.subscribe((appTileGroups) => {\r\n            this._setSelectedAppTileGroup(appTileGroups, 0);\r\n            appTileGroups.forEach((c) => this.controller.loadAppTileGroup(c));\r\n            this.appGroups = appTileGroups;\r\n        });        \r\n    }\r\n    ngAfterViewInit(): void {\r\n        const deviceSize = this._portalService.deviceSize;\r\n        let stickyTopPosition = 20;\r\n        if (deviceSize === 's') {\r\n            stickyTopPosition = 60;\r\n        }\r\n        this._stickyDom(this.aboveSearch.nativeElement, this.searchHolder.nativeElement, -stickyTopPosition, 'sticky');\r\n\r\n        this._stickyDom(\r\n            this.aboveSearch.nativeElement,\r\n            this.contentAndNav.nativeElement,\r\n            -stickyTopPosition,\r\n            'navAndContent_tb',\r\n            () => {\r\n                this._renderer.removeAttribute(this.contentAndNav.nativeElement, 'first');\r\n            },\r\n            () => {\r\n                this._renderer.setAttribute(this.contentAndNav.nativeElement, 'first', 'true');\r\n            }\r\n        );\r\n        setTimeout(() => {\r\n            this._enableScroll = true;\r\n        }, 1000);\r\n        this._portalService.navigationStart$.pipe(takeUntil(this._onDestroy$)).subscribe((event) => {\r\n            this._lastScrollPos = window.scrollY;\r\n            if (event === null) {\r\n                return;\r\n            }\r\n            if (\r\n                event?.url.split('/').length > 2 &&\r\n                event?.url !== '/' &&\r\n                event?.url.split('appgroupdialog').length < 2 &&\r\n                !this._disableIntersection\r\n            ) {\r\n                this.prepareForm();\r\n            }\r\n        });\r\n        this._portalService.navigationEnd$.pipe(takeUntil(this._onDestroy$)).subscribe((event) => {\r\n            if (\r\n                event &&\r\n                (event?.url.split('/').length < 3 ||\r\n                    event?.url === '/' ||\r\n                    event.urlAfterRedirects?.split('/').length < 3)\r\n            ) {\r\n                this.unPrepareForm();\r\n            }\r\n        });\r\n    }\r\n    /** Returns a stable Signal for the children of a group from the store dictionary. */\r\n    groupChildrenById(parentId: string): Signal<AppTileGroup[]> {\r\n        let sig = this._childrenSignalCache.get(parentId);\r\n        if (!sig) {\r\n            sig = this._tilesStore.selectGroupChildren(parentId);\r\n            this._childrenSignalCache.set(parentId, sig);\r\n        }\r\n        return sig;\r\n    }\r\n    onSearchSubmit(): void {\r\n        this._router.navigateByUrl('servicedesk/search?term=' + this.searchTerm);\r\n        // var searchMo = BarsaApi.Bw.RunBlMethod('GetSearchMo', this.searchTerm);\r\n        // BarsaApi.Bw.Form.Show({ Mo: searchMo });\r\n    }\r\n    prepareForm(): void {\r\n        this._disableIntersection = true;\r\n        this._cdr.detach();\r\n        this.disconnectIntersctionObserverList();\r\n        this._renderer.addClass(this.searchHolder.nativeElement, 'sticky');\r\n        this._renderer.addClass(this.contentAndNav.nativeElement, 'hide');\r\n        this.visibleContent(false);\r\n        const flags = RendererStyleFlags2.Important;\r\n        this._renderer.setStyle(document.body, 'overflow', 'hidden', flags);\r\n        this.scrollToTop();\r\n    }\r\n    unPrepareForm(): void {\r\n        // this.setHeightSearchHolder(this.heightOfSpaceHolder);\r\n        this.visibleContent(true);\r\n        // this._renderer.removeClass(this.searchHolder.nativeElement, 'sticky');\r\n\r\n        this._renderer.removeClass(this.searchHolder.nativeElement, 'hide');\r\n        this._renderer.removeClass(this.contentAndNav.nativeElement, 'hide');\r\n        const flags = RendererStyleFlags2.Important;\r\n        this._renderer.setStyle(document.body, 'overflow', 'auto', flags);\r\n        this.scrollToTop();\r\n        this._cdr.markForCheck();\r\n        this._cdr.reattach();\r\n        this._disableIntersection = false;\r\n        this.connectIntersctionObserverList();\r\n    }\r\n    setHeightSearchHolder(height): void {\r\n        this._renderer.setStyle(this.headerSpaceHolder.nativeElement, 'height', `${height}px`);\r\n    }\r\n    visibleContent(visible: boolean): void {\r\n        this._renderer.setStyle(this.contentAndNav.nativeElement, 'display', visible ? 'flex' : 'none');\r\n    }\r\n\r\n    setGridTemplateRows(): void {\r\n        this._renderer.setStyle(\r\n            this.headerGrid.nativeElement,\r\n            'grid-template-rows',\r\n            `minmax(78px, 15%) 46px 32px 1fr auto 12%; height:var(--shellbar-height)`\r\n        );\r\n        // this._renderer.setStyle(this.headerSpaceHolder.nativeElement, 'height', `var(--shellbar-height)`);\r\n    }\r\n    onSelectedTabChange3(selectedTab: TabPanelComponent, appTileGroups: MetaobjectDataModel[]): void {\r\n        this._setSelectedAppTileGroup(appTileGroups, +selectedTab.id);\r\n        const tablistCmp = (selectedTab as any)._tabsComponent;\r\n        if (tablistCmp) {\r\n            tablistCmp._disableScrollSpy = true;\r\n        }\r\n        this.scrollToTop();\r\n        if (selectedTab.id === '0') {\r\n            return;\r\n        }\r\n        const elementRefOfselectedTileGroup: HTMLElement = this.tilesViewerGroupElList.get(\r\n            Number(selectedTab.id)\r\n        )?.nativeElement;\r\n\r\n        elementRefOfselectedTileGroup.scrollIntoView({\r\n            block: 'start'\r\n        });\r\n    }\r\n    private _setSelectedAppTileGroup(appTileGroups: MetaobjectDataModel[], index: number): void {\r\n        if (!this.settings) {\r\n            return;\r\n        }\r\n        const { StackContent } = this.settings;\r\n        const apptileGroups = StackContent !== false ? appTileGroups : [appTileGroups[index]];\r\n        apptileGroups && this.selectedAppTileGroup.set(apptileGroups);\r\n    }\r\n    private scrollToLastPos(): void {\r\n        this._viewportScroller.scrollToPosition([0, this._lastScrollPos]);\r\n    }\r\n    private scrollToTop(): void {\r\n        if (this._enableScroll) {\r\n            this._viewportScroller.scrollToPosition([0, this.heightOfSpaceHolder - this.heightOfSpaceHolder]);\r\n        }\r\n    }\r\n    private disconnectIntersctionObserverList(): void {\r\n        this.observerList.forEach((c) => c.observer.disconnect());\r\n    }\r\n    private connectIntersctionObserverList(): void {\r\n        this.observerList.forEach((c) => c.observer.observe(c.el));\r\n    }\r\n    private _setBackground(): void {}\r\n    private _stickyDom(\r\n        above,\r\n        holder,\r\n        marginTop,\r\n        className,\r\n        visibleCallback?: () => void,\r\n        hiddenCallBack?: () => void\r\n    ): void {\r\n        const handler = (entries): void => {\r\n            if (this._disableIntersection) {\r\n                return;\r\n            }\r\n            if (!entries[0].isIntersecting) {\r\n                this._renderer.addClass(holder, className);\r\n                if (typeof visibleCallback === 'function') {\r\n                    visibleCallback();\r\n                }\r\n            } else {\r\n                this._renderer.removeClass(holder, className);\r\n                if (typeof hiddenCallBack === 'function') {\r\n                    hiddenCallBack();\r\n                }\r\n            }\r\n        };\r\n        const options = {\r\n            rootMargin: `${marginTop}px 0px 0px 0px`,\r\n            threshold: 0.1\r\n        };\r\n        const observer = new window.IntersectionObserver(handler, options);\r\n\r\n        observer.observe(above);\r\n        this.observerList.push({ el: above, observer });\r\n    }\r\n}\r\n\r\ninterface ServiceDeskHeaderSetting extends MetaobjectDataModel {\r\n    HideSearch: boolean;\r\n    HideTabs: boolean;\r\n    StackContent: boolean;\r\n}\r\n","<div\r\n    id=\"headerGrid\"\r\n    style=\"grid-template-rows: minmax(1px, 15%) 48px 32px 1fr auto 12%; height: 148px\"\r\n    #headerGrid\r\n    cssRootVariable\r\n    [cssVariableValue]=\"'var(--shellbar-height)'\"\r\n    [cssVariableName]=\"'--absolute-page-top'\"\r\n>\r\n    <div class=\"companyLogoHolder_aboveSearch\" #aboveSearch></div>\r\n    <div id=\"searchHolder\" style=\"grid-row: 2\" #searchHolder></div>\r\n</div>\r\n<div id=\"headerSpaceHolder\" #headerSpaceHolder>\r\n    <div id=\"bgOuterHolder\" #bgOuterHolder>\r\n        <div id=\"bgInnerHolder\" style=\"height: 100vh\">\r\n            <div class=\"backgroundImage\" id=\"backgroundImage\">\r\n                <img class=\"picture\" [attr.src]=\"imageUrl\" loading=\"lazy\" />\r\n                <span id=\"backgroundImageOverlay\" class=\"overlay\"></span>\r\n            </div>\r\n        </div>\r\n    </div>\r\n</div>\r\n<div id=\"contentHolderAndNav\" first=\"true\" #contentAndNav fillEmptySpace [setMinHeight]=\"true\">\r\n    <div class=\"aboveContent\" #aboveContent></div>\r\n    <div id=\"contentHolder\">\r\n        <div\r\n            class=\"nav content-feed\"\r\n            #navHolder\r\n            [style.display]=\"settings?.HideTileGroupsNav ? 'none' : null\"\r\n            intersectionObserver\r\n            [intersectionThreshold]=\"0.5\"\r\n            (visibilityChange)=\"onVisibilityChange($event)\"\r\n        >\r\n            <div class=\"nav-container\">\r\n                <ng-container\r\n                    *ngTemplateOutlet=\"renderTabs; context: { $implicit: (appTileGroups$ | async)!! }\"\r\n                ></ng-container>\r\n            </div>\r\n        </div>\r\n        <div class=\"nav_surrogate\"></div>\r\n        <div class=\"content-feed\">\r\n            <ng-container\r\n                *ngTemplateOutlet=\"renderGroups; context: { $implicit: selectedAppTileGroup() }\"\r\n            ></ng-container>\r\n        </div>\r\n    </div>\r\n</div>\r\n<ng-template #renderTabs let-appTileGroups>\r\n    <fd-tab-list\r\n        [size]=\"tabSize\"\r\n        [collapseOverflow]=\"tabSize === 's' || appTileGroups.length > 5\"\r\n        [expandOverflowText]=\"'More' | bbbTranslate\"\r\n        (selectedTabChange)=\"onSelectedTabChange3($event, appTileGroups)\"\r\n        [stackContent]=\"isStackContent2()\"\r\n    >\r\n        @for (appTileGroup of appTileGroups; track appTileGroup; let i = $index;) {\r\n        <fd-tab [id]=\"'' + i\" [title]=\"appTileGroup.navigatorTitle\"> </fd-tab>\r\n        }\r\n    </fd-tab-list>\r\n</ng-template>\r\n<ng-template #renderGroups let-appTileGroups>\r\n    @for (appTileGroup of appTileGroups; track appTileGroup; let i = $index,isLast=$last) {\r\n    <bt-tiles-viewer-group\r\n        [class]=\"deviceSize$ | async\"\r\n        [attr.islast]=\"isLast\"\r\n        [attr.index]=\"i\"\r\n        [appTileGroup]=\"appTileGroup\"\r\n        [childrenAppTileGroup]=\"groupChildrenById(appTileGroup.Id)()\"\r\n        [edit]=\"false\"\r\n        [stackContent]=\"true\"\r\n        [isAppTileSubGroup]=\"false\"\r\n        [deviceSize]=\"(deviceSize$ | async)!!\"\r\n    ></bt-tiles-viewer-group>\r\n    }\r\n</ng-template>\r\n","import { Component, OnInit, ChangeDetectionStrategy, ViewChild, ElementRef, HostBinding } from '@angular/core';\r\nimport { FilePictureInfoModel, BaseItemContentPropsComponent, UiReportViewBaseSetting } from 'barsa-novin-ray-core';\r\n\r\n@Component({\r\n    selector: 'bdc-card-content-image-and-title',\r\n    templateUrl: './card-content-image-and-title.component.html',\r\n    styleUrls: ['./card-content-image-and-title.component.scss'],\r\n    changeDetection: ChangeDetectionStrategy.OnPush,\r\n    standalone: false\r\n})\r\nexport class CardContentImageAndTitleComponent\r\n    extends BaseItemContentPropsComponent<UiReportViewBaseSetting>\r\n    implements OnInit\r\n{\r\n    @ViewChild('iconRef', { static: false }) iconRef: ElementRef;\r\n\r\n    @HostBinding('style.background-color') backgroundColor: string | null = null;\r\n    @HostBinding('style.color') color: string | null = null;\r\n\r\n    backgroundColorSetting: string;\r\n    title: string;\r\n    subtitle: string;\r\n    icon: string;\r\n    colorSetting: string;\r\n    picture: FilePictureInfoModel;\r\n\r\n    ngOnInit(): void {\r\n        super.ngOnInit();\r\n        const parameters = this.parameters;\r\n        if (parameters != null) {\r\n            this.color = this.colorSetting = parameters.Color;\r\n            this.backgroundColor = this.backgroundColorSetting = parameters.BackgroundColor;\r\n\r\n            this.picture = this._rval.transform(parameters.Picture, this.mo, this.allColumns);\r\n            this.title = this._rval.transform(parameters.Title, this.mo, this.allColumns);\r\n            this.subtitle = this._rval.transform(parameters.Subtitle, this.mo, this.allColumns);\r\n            this.icon = this._rval.transform(parameters.Icon, this.mo, this.allColumns);\r\n\r\n            this.prepareNumberSign();\r\n        }\r\n    }\r\n\r\n    private prepareNumberSign(): void {\r\n        if (this.color && Number(this.colorSetting[0])) {\r\n            this.color = '#' + this.colorSetting;\r\n        }\r\n\r\n        if (this.backgroundColor && Number(this.backgroundColorSetting[0])) {\r\n            this.backgroundColor = '#' + this.backgroundColorSetting;\r\n        }\r\n    }\r\n}\r\n","<div class=\"card-content\" #elemRef>\r\n    <div class=\"item-data\">\r\n        @if (picture) {\r\n        <img\r\n            [imgLazy]=\"picture.FileId | picFieldSrc: 'ID':null:'':100:70\"\r\n            height=\"70\"\r\n            width=\"100\"\r\n            [alt]=\"title | bbbTranslate\"\r\n        />\r\n        } @else { @if (icon) {\r\n        <fd-icon #iconRef [glyph]=\"icon\" [style.color]=\"color\"> </fd-icon>\r\n        } }\r\n    </div>\r\n    <h5 fd-title class=\"item-data fd-title--wrap\" [style.color]=\"color\">\r\n        {{ title | bbbTranslate }}\r\n    </h5>\r\n    @if (subtitle) {\r\n    <h6 fd-title class=\"item-data fd-title--wrap\" [style.color]=\"color\">\r\n        {{ subtitle | bbbTranslate }}\r\n    </h6>\r\n    }\r\n</div>\r\n","import {\r\n    Component,\r\n    OnInit,\r\n    ChangeDetectionStrategy,\r\n    Output,\r\n    EventEmitter,\r\n    inject,\r\n    ElementRef,\r\n    ViewChild\r\n} from '@angular/core';\r\nimport { CardHeaderComponent } from '@fundamental-ngx/core';\r\nimport { CardBaseItemContentPropsComponent, CardViewService, UiReportViewBaseSetting } from 'barsa-novin-ray-core';\r\n\r\n@Component({\r\n    selector: 'bdc-card-header-logo-title-subtitle',\r\n    templateUrl: './card-header-logo-title-subtitle.component.html',\r\n    styleUrls: ['./card-header-logo-title-subtitle.component.scss'],\r\n    changeDetection: ChangeDetectionStrategy.OnPush,\r\n    standalone: false\r\n})\r\nexport class CardHeaderLogoTitleSubtitleComponent\r\n    extends CardBaseItemContentPropsComponent<UiReportViewBaseSetting>\r\n    implements OnInit\r\n{\r\n    @Output() events = new EventEmitter<{ title: string; data?: any }>();\r\n    @ViewChild(CardHeaderComponent, { read: ElementRef }) _headerEl: ElementRef;\r\n    title: string;\r\n    subtitle: string;\r\n    fontIcon: string;\r\n    imageIcon: { FileId: string };\r\n    hasIcon: boolean;\r\n    isIconImage: boolean;\r\n    titleDbName: string;\r\n    subtitleDbName: string;\r\n    avatarCircle: boolean;\r\n    private _cardViewService = inject(CardViewService);\r\n    setHeaderHeight = (): void => {\r\n        this._setHeaderHeight();\r\n    };\r\n    ngOnInit(): void {\r\n        super.ngOnInit();\r\n        this.titleDbName =\r\n            this._findColumnPipe.transform(this.allColumns, this.parameters.Title)?.Name || this.parameters.Title;\r\n        this.subtitleDbName =\r\n            this._findColumnPipe.transform(this.allColumns, this.parameters.Subtitle)?.Name || this.parameters.Subtitle;\r\n        const parameters = this.parameters;\r\n        if (parameters != null) {\r\n            this.title = this._rval.transform(parameters.Title, this.mo, this.allColumns, true);\r\n            this.subtitle = this._rval.transform(parameters.Subtitle, this.mo, this.allColumns, true);\r\n            this.fontIcon = parameters.FontIcon ?? 'person-placeholder';\r\n            this.imageIcon = this._rval.transform(parameters.FontIcon, this.mo, this.allColumns);\r\n            this.isIconImage = typeof this.imageIcon === 'object';\r\n            this.hasIcon = parameters.HasIcon;\r\n            this.avatarCircle = true;\r\n            if (typeof parameters.AvatarCircle !== 'undefined') {\r\n                this.avatarCircle = parameters.AvatarCircle;\r\n            }\r\n        }\r\n    }\r\n    private _setHeaderHeight(): void {\r\n        this._cardViewService.setHeaderHeight(this._headerEl.nativeElement.offsetHeight);\r\n    }\r\n}\r\n","<fd-card-header\r\n    [class.hide-border]=\"parameters.HideBorder\"\r\n    (click)=\"!isCheckList && events.emit({ title: 'rowCheck' })\"\r\n    [style.height.px]=\"maxHeightHeader ? maxHeightHeader : null\"\r\n>\r\n    <fd-card-main-header>\r\n        @if (hasIcon) {\r\n        <fd-avatar\r\n            [circle]=\"avatarCircle\"\r\n            size=\"s\"\r\n            ariaLabel=\"avatar image\"\r\n            title=\"avatar image\"\r\n            alterIcon=\"content|alt|backup|default-icon\"\r\n            [glyph]=\"fontIcon\"\r\n            [image]=\"\r\n                isIconImage\r\n                    ? (imageIcon?.FileId | picFieldSrc: 'GetPictureFromFileInfo':null)\r\n                    : ''\r\n            \"\r\n        ></fd-avatar>\r\n        }\r\n        <div fd-card-title [style.justify-content]=\"'end'\" style=\"display: flex\">\r\n            <div\r\n                style=\"\r\n                    display: flex;\r\n                    justify-content: start;\r\n                    flex-grow: 1;\r\n                    flex-direction: row-reverse;\r\n                    align-items: start;\r\n                \"\r\n            >\r\n                @if (isCheckList) {\r\n                <fd-checkbox\r\n                    [name]=\"mo.$Caption\"\r\n                    [ngModel]=\"isChecked\"\r\n                    (ngModelChange)=\"events.emit({ title: 'rowCheck' })\"\r\n                ></fd-checkbox>\r\n                } @if (setting.ContextMenuInFooter && contextMenuItems && contextMenuItems.length > 0) {\r\n                <div\r\n                    ulvContextMenu\r\n                    [allColumns]=\"allColumns\"\r\n                    [menuItems]=\"contextMenuItems\"\r\n                    [conditionalFormats]=\"conditionalFormats\"\r\n                    [styleIndex]=\"styleIndex\"\r\n                    [disableOverflowContextMenu]=\"disableOverflowContextMenu\"\r\n                    [mo]=\"mo\"\r\n                    (commandClick)=\"events.emit({ title: 'ulvCommand' })\"\r\n                    (overflowClick)=\"events.emit({ title: 'rowCheck' })\"\r\n                ></div>\r\n                }\r\n                <h2\r\n                    #hEl\r\n                    class=\"fd-card__title\"\r\n                    [hostEl]=\"hEl\"\r\n                    [styleIndex]=\"styleIndex\"\r\n                    [dbName]=\"titleDbName\"\r\n                    [applyConditionalFormats]=\"conditionalFormats\"\r\n                >\r\n                    {{ title | bbbTranslate }}\r\n                </h2>\r\n            </div>\r\n            @if (canView) {\r\n            <button\r\n                fd-button\r\n                (click)=\"$event.preventDefault(); $event.stopPropagation(); events.emit({ title: 'rowClick' })\"\r\n                [glyph]=\"navigationArrow\"\r\n                fdType=\"transparent\"\r\n            ></button>\r\n            }\r\n        </div>\r\n\r\n        <h3\r\n            fd-card-subtitle\r\n            #hEl\r\n            [hostEl]=\"hEl\"\r\n            [styleIndex]=\"styleIndex\"\r\n            [dbName]=\"subtitleDbName\"\r\n            [applyConditionalFormats]=\"conditionalFormats\"\r\n            resizeHandler\r\n            [fnResize]=\"setHeaderHeight\"\r\n        >\r\n            {{ subtitle | bbbTranslate }}\r\n        </h3>\r\n    </fd-card-main-header>\r\n</fd-card-header>\r\n<ng-container *ngTemplateOutlet=\"extendedHeaderTemplate\"></ng-container>\r\n<div></div>\r\n","import { Component, OnInit, ChangeDetectionStrategy } from '@angular/core';\r\nimport { FormPropsBaseComponent, MoForReportModel } from 'barsa-novin-ray-core';\r\n\r\n@Component({\r\n    selector: 'bdc-form-content-quick-view',\r\n    templateUrl: './form-content-quick-view.component.html',\r\n    styleUrls: ['./form-content-quick-view.component.scss'],\r\n    changeDetection: ChangeDetectionStrategy.OnPush,\r\n    standalone: false\r\n})\r\nexport class FormContentQuickViewComponent extends FormPropsBaseComponent implements OnInit {\r\n    groups = {};\r\n    title: string;\r\n    subtitle: string;\r\n    fontIcon: string;\r\n    imageUrl: string;\r\n\r\n    ngOnInit(): void {\r\n        super.ngOnInit();\r\n        const groups = {};\r\n        this.title = this._controlUiPipe.transform(this.settings?.Title, this.layout94)?.FieldUi?.value;\r\n        this.subtitle = this._controlUiPipe.transform(this.settings?.Subtitle, this.layout94)?.FieldUi?.value;\r\n        const fontIcon = this._controlUiPipe.transform(this.settings?.FontIcon, this.layout94)?.FieldUi;\r\n        if (fontIcon) {\r\n            const { imageUrl, value } = fontIcon;\r\n            this.imageUrl = imageUrl;\r\n            this.fontIcon = value;\r\n        }\r\n        const settingGroups: MoForReportModel = this.settings?.Groups;\r\n        if (settingGroups) {\r\n            settingGroups.MoDataList.forEach((c) => {\r\n                groups[c.Title] = (c.ListFields as string)\r\n                    .split(',')\r\n                    .map((d) => ({\r\n                        caption: d,\r\n                        fieldUi: this._controlUiPipe.transform(d, this.layout94)\r\n                    }))\r\n                    .map((d) => ({ ...d, value: this.getFieldValue(d.fieldUi?.FieldUi?.value) }))\r\n                    .map((d) => ({ ...d, type: this.getFieldType(d.value) }));\r\n            });\r\n        }\r\n        this.groups = groups;\r\n    }\r\n    getFieldValue(value): any {\r\n        if (!value) {\r\n            return value;\r\n        }\r\n        const t: string = value.toString();\r\n        if (t.indexOf(',') > -1) {\r\n            return t.split(',');\r\n        }\r\n        return value;\r\n    }\r\n    getIsPhone(value): boolean {\r\n        if (value.startsWith('0') || (value.startsWith('+') && !Number.isNaN(value.substring(1, value.length)))) {\r\n            return true;\r\n        }\r\n        return false;\r\n    }\r\n\r\n    getIsEmail(value): boolean {\r\n        if (value.indexOf('@') > -1) {\r\n            return true;\r\n        }\r\n        return false;\r\n    }\r\n    getIsWebsite(value): boolean {\r\n        if (value.startsWith('http') || value.startsWith('https')) {\r\n            return true;\r\n        }\r\n        return false;\r\n    }\r\n\r\n    getFieldType(value: any): any {\r\n        if (typeof value === 'string') {\r\n            if (this.getIsWebsite(value)) {\r\n                return 0;\r\n            }\r\n            if (this.getIsPhone(value)) {\r\n                return 1;\r\n            }\r\n            if (this.getIsEmail(value)) {\r\n                return 2;\r\n            }\r\n            return 3;\r\n        } else if (Array.isArray(value)) {\r\n            if (value.length) {\r\n                if (this.getIsPhone(value[0])) {\r\n                    return 4;\r\n                }\r\n                if (this.getIsEmail(value[0])) {\r\n                    return 5;\r\n                }\r\n                if (this.getIsWebsite(value[0])) {\r\n                    return 6;\r\n                }\r\n            }\r\n        }\r\n    }\r\n}\r\n","<fd-quick-view>\r\n    <fd-quick-view-subheader>\r\n        <fd-avatar\r\n            title=\"avatar\"\r\n            [glyph]=\"fontIcon\"\r\n            [image]=\"imageUrl\"\r\n            [size]=\"'s'\"\r\n            [border]=\"settings.ShowLogoBorder\"\r\n            [transparent]=\"settings.TransparentLogo\"\r\n            [colorAccent]=\"settings.AccentColor\"\r\n        ></fd-avatar>\r\n        <fd-quick-view-subheader-title>\r\n            {{ title | bbbTranslate }}\r\n        </fd-quick-view-subheader-title>\r\n        <fd-quick-view-subheader-subtitle>\r\n            {{ subtitle | bbbTranslate }}\r\n        </fd-quick-view-subheader-subtitle>\r\n    </fd-quick-view-subheader>\r\n\r\n    @for (group of groups | keyvalue; track group) {\r\n    <fd-quick-view-group [attr.aria-labelledby]=\"group.key\">\r\n        <fd-quick-view-group-title [id]=\"group.key\">\r\n            {{ group.key | bbbTranslate }}\r\n        </fd-quick-view-group-title>\r\n        @for (item of $any(group).value; track item) {\r\n        <fd-quick-view-group-item>\r\n            <fd-quick-view-group-item-label>\r\n                {{ item.caption | bbbTranslate }}\r\n            </fd-quick-view-group-item-label>\r\n            <fd-quick-view-group-item-content>\r\n                @switch (item.type) { @case (6) {\r\n                <div style=\"display: flex; flex-direction: column; row-gap: 3px\">\r\n                    @for (website of item.value; track website) {\r\n                    <a\r\n                        [href]=\"website\"\r\n                        [innerText]=\"website | bbbTranslate\"\r\n                        fd-link\r\n                        fd-quick-view-group-item-content-element\r\n                    ></a>\r\n                    }\r\n                </div>\r\n                } @case (0) {\r\n                <a\r\n                    [href]=\"item.value\"\r\n                    [innerText]=\"item.value | bbbTranslate\"\r\n                    fd-link\r\n                    fd-quick-view-group-item-content-element\r\n                ></a>\r\n                } @case (1) {\r\n                <a\r\n                    [href]=\"'tel:' + item.value\"\r\n                    [innerText]=\"item.value | bbbTranslate\"\r\n                    fd-link\r\n                    fd-quick-view-group-item-content-element\r\n                ></a>\r\n                } @case (4) {\r\n                <div style=\"display: flex; flex-direction: column; row-gap: 3px\">\r\n                    @for (tel of item.value; track tel) {\r\n                    <a [href]=\"'tel:' + tel\" [innerText]=\"tel\" fd-link fd-quick-view-group-item-content-element></a>\r\n                    }\r\n                </div>\r\n                } @case (5) {\r\n                <div style=\"display: flex; flex-direction: column; row-gap: 3px\">\r\n                    @for (email of item.value; track email) {\r\n                    <a\r\n                        style=\"direction: ltr; font-family: monospace\"\r\n                        [href]=\"'mailto:' + email\"\r\n                        [innerText]=\"email\"\r\n                        fd-link\r\n                        fd-quick-view-group-item-content-element\r\n                    ></a>\r\n                    }\r\n                </div>\r\n                } @case (2) {\r\n                <a\r\n                    style=\"direction: ltr; font-family: monospace\"\r\n                    [href]=\"'mailto:' + item.value\"\r\n                    [innerText]=\"item.value\"\r\n                    fd-link\r\n                    fd-quick-view-group-item-content-element\r\n                ></a>\r\n                } @default {\r\n                <div [innerText]=\"item.value | bbbTranslate\" fd-quick-view-group-item-content-element></div>\r\n                } }\r\n            </fd-quick-view-group-item-content>\r\n        </fd-quick-view-group-item>\r\n        }\r\n    </fd-quick-view-group>\r\n    }\r\n</fd-quick-view>\r\n","import {\r\n    Component,\r\n    OnInit,\r\n    ChangeDetectionStrategy,\r\n    ViewChild,\r\n    ViewChildren,\r\n    QueryList,\r\n    ElementRef\r\n} from '@angular/core';\r\nimport {\r\n    BarsaApi,\r\n    GeneralControlInfoModel,\r\n    MetaobjectDataModel,\r\n    FormPropsBaseComponent,\r\n    FindLayoutSettingFromLayout94\r\n} from 'barsa-novin-ray-core';\r\n\r\n@Component({\r\n    selector: 'bdc-service-desk-servcie-detail',\r\n    templateUrl: './service-desk-servcie-detail.component.html',\r\n    styleUrls: ['./service-desk-servcie-detail.component.scss'],\r\n    changeDetection: ChangeDetectionStrategy.OnPush,\r\n    standalone: false\r\n})\r\nexport class ServiceDeskServcieDetailComponent extends FormPropsBaseComponent implements OnInit {\r\n    @ViewChild('tabContainerRef') tabContainerRef: ElementRef;\r\n    @ViewChildren('tablesRef') tablesRef: QueryList<ElementRef>;\r\n    filteredControls: FieldsInfo[];\r\n    firstArray: FieldsInfo[] = [];\r\n    secondArray: FieldsInfo[] = [];\r\n    valueSharhKhedmat: any;\r\n    moByCaption = {};\r\n    khadamatmortabet: MetaobjectDataModel[];\r\n    services: GeneralControlInfoModel[];\r\n    controlCount: number;\r\n    isOdd: boolean;\r\n    fieldsCaption: FieldsInfo[] = [];\r\n    value = '';\r\n    rahnamayTasviri: any;\r\n    israhnamayTasviri = false;\r\n    selectedTab: number;\r\n    khadamatmortabetReport: { ReportId: string; TypeDefId: string };\r\n\r\n    ngOnInit(): void {\r\n        super.ngOnInit();\r\n\r\n        const $FieldDict = this.fieldDict;\r\n        if (!$FieldDict) {\r\n            return;\r\n        }\r\n        this._prepare($FieldDict, this.mo);\r\n    }\r\n\r\n    onDownload(item): void {\r\n        if (item.Attachment) {\r\n            BarsaApi.Common.File.DownloadFileId(item.Attachment.Files[0].Id);\r\n        }\r\n    }\r\n\r\n    ngAfterViewInit(): void {\r\n        super.ngAfterViewInit();\r\n        this.alignTablesTr();\r\n    }\r\n    onKhadamatMortabet(item): void {\r\n        BarsaApi.Bw.Form.Show({\r\n            MoId: item.Id,\r\n            TypeDefId: this.khadamatmortabetReport.TypeDefId,\r\n            MoContext: { ReportId: this.khadamatmortabetReport.ReportId }\r\n        });\r\n    }\r\n    private alignTablesTr(): void {\r\n        setTimeout(() => {\r\n            const tablesRef = this.tablesRef.toArray();\r\n            const firstTableEl = tablesRef[0].nativeElement as HTMLElement;\r\n            const secondTableEl = tablesRef[1].nativeElement as HTMLElement;\r\n\r\n            const trFirstTable = firstTableEl.querySelectorAll('tr');\r\n            const trSecondTable = secondTableEl.querySelectorAll('tr');\r\n\r\n            trFirstTable.forEach((tr, index) => {\r\n                if (index < trSecondTable.length) {\r\n                    const trSecond = trSecondTable[index];\r\n                    if (tr.offsetHeight > trSecond.offsetHeight) {\r\n                        trSecond.style.height = `${tr.offsetHeight}px`;\r\n                    } else {\r\n                        tr.style.height = `${trSecond.offsetHeight}px`;\r\n                    }\r\n                }\r\n            });\r\n        }, 0);\r\n    }\r\n\r\n    private _prepare($FieldDict: { [key: string]: string }, mo: MetaobjectDataModel): void {\r\n        const leftside = FindLayoutSettingFromLayout94(this.layout94, 'جدول چپ');\r\n        const rightside = FindLayoutSettingFromLayout94(this.layout94, 'جدول راست');\r\n\r\n        leftside?.items[0]?.items?.forEach((item2) => {\r\n            const key = item2.Caption;\r\n            const fieldName = item2.ControlId;\r\n            const item: FieldsInfo = { caption: key, fieldName };\r\n            if (\r\n                key === 'آدرس سایت' ||\r\n                (typeof mo[fieldName] === 'string' &&\r\n                    (mo[fieldName].startsWith('https://') || mo[fieldName].startsWith('http://')))\r\n            ) {\r\n                item.type = 'Link';\r\n            }\r\n            if (typeof mo[fieldName] === 'object') {\r\n                if (mo[fieldName].$Type === 'Common.MetaObjectListWeb') {\r\n                    item.type = 'MoList';\r\n                } else if (mo[fieldName].Ext) {\r\n                    item.type = 'Image';\r\n                } else if (mo[fieldName].Files) {\r\n                    item.type = 'Files';\r\n                } else {\r\n                    item.type = 'Relation';\r\n                }\r\n            }\r\n            this.firstArray.push(item);\r\n        });\r\n        rightside?.items[0]?.items?.forEach((item2) => {\r\n            const key = item2.Caption;\r\n            const fieldName = item2.ControlId;\r\n            const item: FieldsInfo = { caption: key, fieldName };\r\n            if (\r\n                key === 'آدرس سایت' ||\r\n                (typeof mo[fieldName] === 'string' &&\r\n                    (mo[fieldName].startsWith('https://') || mo[fieldName].startsWith('http://')))\r\n            ) {\r\n                item.type = 'Link';\r\n            }\r\n            if (typeof mo[fieldName] === 'object') {\r\n                if (mo[fieldName].$Type === 'Common.MetaObjectListWeb') {\r\n                    item.type = 'MoList';\r\n                } else if (mo[fieldName].Ext) {\r\n                    item.type = 'Image';\r\n                } else if (mo[fieldName].Files) {\r\n                    item.type = 'Files';\r\n                } else {\r\n                    item.type = 'Relation';\r\n                }\r\n            }\r\n            this.secondArray.push(item);\r\n        });\r\n        this.rahnamayTasviri = this._sanitizer.bypassSecurityTrustResourceUrl(mo[$FieldDict['راهنمای تصویری']]);\r\n        if (this.rahnamayTasviri) {\r\n            this.israhnamayTasviri = true;\r\n        }\r\n\r\n        // this.firstArray = filteredControls.slice(0, controlCountMiddle);\r\n        // this.secondArray = filteredControls.slice(controlCountMiddle, controlCount);\r\n        this.khadamatmortabet = mo[$FieldDict['خدمات مرتبط']]?.MoDataList ?? [];\r\n        this.khadamatmortabetReport = mo[$FieldDict['خدمات مرتبط']];\r\n\r\n        // this.isOdd = controlCount % 2 === 0;\r\n        this.isOdd = false;\r\n    }\r\n}\r\ninterface FieldsInfo {\r\n    type?: string;\r\n    caption: string;\r\n    fieldName: string;\r\n}\r\n","<fd-dynamic-page [size]=\"isMobile ? 'small' : 'large'\">\r\n    <fd-dynamic-page-header\r\n    [class.simple-title]=\"true\"\r\n    [title]=\"''\"\r\n    [class.p-b0]=\"true\"\r\n    [class.hide]=\"true\"\r\n    [class.no-toolbar-items]=\"true\"\r\n>\r\n</fd-dynamic-page-header>\r\n<fd-dynamic-page-subheader style=\"display: none\"> </fd-dynamic-page-subheader>\r\n    <fd-tab-list\r\n        [collapseOverflow]=\"true\"\r\n        [stackContent]=\"false\"\r\n        maxContentHeight=\"auto\"\r\n        [expandOverflowText]=\"'More' | bbbTranslate\"\r\n        #tablist\r\n    >\r\n        <fd-tab [title]=\"'شناسنامه خدمت' | bbbTranslate\" selected>\r\n            <fd-dynamic-page-content>\r\n                <fd-layout-grid class=\"row\" style=\"margin: 0\">\r\n                    <div [fdLayoutGridCol]=\"12\" [colMd]=\"6\" [colLg]=\"6\" [colXl]=\"6\" style=\"padding: 0\">\r\n                        <ng-container\r\n                            *ngTemplateOutlet=\"\r\n                                renderTable;\r\n                                context: {\r\n                                    $implicit: firstArray,\r\n                                    showKhadamatMortabet: isOdd,\r\n                                    classNames: 'firstTable'\r\n                                }\r\n                            \"\r\n                        >\r\n                        </ng-container>\r\n                    </div>\r\n                    <div [fdLayoutGridCol]=\"12\" [colMd]=\"6\" [colLg]=\"6\" [colXl]=\"6\" style=\"padding: 0\">\r\n                        <ng-container\r\n                            *ngTemplateOutlet=\"\r\n                                renderTable;\r\n                                context: {\r\n                                    $implicit: secondArray,\r\n                                    showKhadamatMortabet: !isOdd,\r\n                                    classNames: 'secondTable'\r\n                                }\r\n                            \"\r\n                        >\r\n                        </ng-container>\r\n                    </div>\r\n                </fd-layout-grid>\r\n            </fd-dynamic-page-content>\r\n        </fd-tab>\r\n        <fd-tab [title]=\"'پیشنیازهای اخذ خدمت' | bbbTranslate\">\r\n            <fd-dynamic-page-content>\r\n                @if ('پیشنیازهای اخذ خدمت' | controlUi: layout94; as configUi) {\r\n                <bsu-layout-control\r\n                    [caption]=\"'پیشنیازهای اخذ خدمت' | bbbTranslate\"\r\n                    [config]=\"configUi\"\r\n                ></bsu-layout-control>\r\n                }\r\n            </fd-dynamic-page-content>\r\n        </fd-tab>\r\n        <fd-tab [title]=\"'شرايط اخذ خدمت' | bbbTranslate\">\r\n            <fd-dynamic-page-content>\r\n                @if ('شرایط اخذ خدمت' | controlUi: layout94; as configUi) {\r\n                <bsu-layout-control\r\n                    [caption]=\"'شرایط اخذ خدمت' | bbbTranslate\"\r\n                    [config]=\"configUi\"\r\n                ></bsu-layout-control>\r\n                }\r\n            </fd-dynamic-page-content>\r\n        </fd-tab>\r\n\r\n        <fd-tab [title]=\"'مراحل اخذ خدمت' | bbbTranslate\">\r\n            <fd-dynamic-page-content>\r\n                @if ('مراحل اخذ خدمت' | controlUi: layout94; as configUi) {\r\n                <bsu-layout-control\r\n                    [caption]=\"'مراحل اخذ خدمت' | bbbTranslate\"\r\n                    [config]=\"configUi\"\r\n                ></bsu-layout-control>\r\n                } @if ('فرآیند مجوز' | controlUi: layout94; as configUi) {\r\n                <bsu-layout-control [caption]=\"'فرآیند مجوز' | bbbTranslate\" [config]=\"configUi\"></bsu-layout-control>\r\n                }\r\n            </fd-dynamic-page-content>\r\n        </fd-tab>\r\n\r\n        <fd-tab [title]=\"'مدارک مورد نیاز اخذ خدمت' | bbbTranslate\">\r\n            <fd-dynamic-page-content>\r\n                @if ('مدارک مورد نیاز اخذ خدمت' | controlUi: layout94; as configUi) {\r\n                <bsu-layout-control\r\n                    [caption]=\"'مدارک مورد نیاز اخذ خدمت' | bbbTranslate\"\r\n                    [config]=\"configUi\"\r\n                ></bsu-layout-control>\r\n                }\r\n            </fd-dynamic-page-content>\r\n        </fd-tab>\r\n\r\n        <fd-tab [title]=\"'هزینه های خدمت' | bbbTranslate\">\r\n            <fd-dynamic-page-content>\r\n                @if ('هزینه های خدمت' | controlUi: layout94; as configUi) {\r\n                <bsu-layout-control\r\n                    [caption]=\"'هزینه های خدمت' | bbbTranslate\"\r\n                    [config]=\"configUi\"\r\n                ></bsu-layout-control>\r\n                }\r\n            </fd-dynamic-page-content>\r\n        </fd-tab>\r\n        <fd-tab [title]=\"'مبانی قانونی ارائه خدمت' | bbbTranslate\">\r\n            <fd-dynamic-page-content>\r\n                @if ('مبانی قانونی ارائه خدمت' | controlUi: layout94; as configUi) {\r\n                <bsu-layout-control\r\n                    [caption]=\"'مبانی قانونی ارائه خدمت' | bbbTranslate\"\r\n                    [config]=\"configUi\"\r\n                ></bsu-layout-control>\r\n                }\r\n            </fd-dynamic-page-content>\r\n        </fd-tab>\r\n\r\n        <fd-tab [title]=\"'واحدهای ارائه دهنده خدمت' | bbbTranslate\">\r\n            <fd-dynamic-page-content>\r\n                @if ('واحدهای سازمانی ارائه دهنده' | controlUi: layout94; as configUi) {\r\n                <bsu-layout-control\r\n                    [caption]=\"'واحدهای سازمانی ارائه دهنده' | bbbTranslate\"\r\n                    [config]=\"configUi\"\r\n                ></bsu-layout-control>\r\n                }\r\n            </fd-dynamic-page-content>\r\n        </fd-tab>\r\n\r\n        <fd-tab [title]=\"'دستگاه های استعلام دهنده' | bbbTranslate\">\r\n            <fd-dynamic-page-content>\r\n                @if ('استعلام سازمان ها' | controlUi: layout94; as configUi) {\r\n                <bsu-layout-control\r\n                    [caption]=\"'استعلام سازمان ها' | bbbTranslate\"\r\n                    [config]=\"configUi\"\r\n                ></bsu-layout-control>\r\n                }\r\n            </fd-dynamic-page-content>\r\n        </fd-tab>\r\n        @if ('SLA و راهنمای خدمت' | controlUi: layout94; as configUi) {\r\n        <fd-tab [title]=\"'SLA و راهنمای خدمت' | bbbTranslate\">\r\n            <fd-dynamic-page-content>\r\n                @if (configUi) {\r\n                <bsu-layout-control\r\n                    [caption]=\"'SLA و راهنمای خدمت' | bbbTranslate\"\r\n                    [config]=\"configUi\"\r\n                ></bsu-layout-control>\r\n                }\r\n            </fd-dynamic-page-content>\r\n        </fd-tab>\r\n        }\r\n    </fd-tab-list>\r\n\r\n    <fd-dynamic-page-footer> </fd-dynamic-page-footer>\r\n</fd-dynamic-page>\r\n\r\n<ng-template #renderTable let-array let-showKhadamatMortabet=\"showKhadamatMortabet\" let-classNames=\"classNames\">\r\n    <table #tablesRef class=\"table-grid\" [ngClass]=\"classNames\">\r\n        @for (controlItem of array; track controlItem) {\r\n        <tr>\r\n            <th>{{ controlItem.caption | bbbTranslate }}</th>\r\n            <td>\r\n                @switch (controlItem.type) { @case ('Link') {\r\n                <a dir=\"ltr\" target=\"_blank\" [href]=\"mo[controlItem.fieldName]\">{{ mo[controlItem.fieldName] }}</a>\r\n                } @case ('Relation') {\r\n                {{ controlItem.fieldName | val: mo:true | bbbTranslate }}\r\n                } @case ('MoList') { @for (item of mo[controlItem.fieldName]?.MoDataList; track item) {\r\n                <div class=\"links\">\r\n                    <fd-icon class=\"fd-icon-link\" [glyph]=\"'chain-link'\" style=\"color: #0854a0\"></fd-icon>\r\n                    <!-- <fd-icon class=\"fd-icon-link\" [glyph]=\"'pdf-attachment'\"></fd-icon> -->\r\n                    <a (click)=\"onDownload(item)\">{{ item.$Caption }}</a>\r\n                </div>\r\n                } } @case ('Image') {\r\n                {{ mo[controlItem.fieldName].Ext }}\r\n                } @case ('Files') {\r\n                {{ mo[controlItem.fieldName].Files }}\r\n                } @default {\r\n                {{ mo[controlItem.fieldName + '$Caption'] || mo[controlItem.fieldName] | bbbTranslate }}\r\n                } }\r\n            </td>\r\n        </tr>\r\n        }\r\n        <!-- <ng-container *ngIf=\"showKhadamatMortabet\">\r\n    <tr>\r\n      <th>خدمات مرتبط</th>\r\n      <td>\r\n        <div class=\"links\" *ngFor=\"let item of khadamatmortabet\">\r\n          <a (click)=\"onKhadamatMortabet(item)\">{{ item.$Caption }}</a>\r\n        </div>\r\n      </td>\r\n    </tr>\r\n  </ng-container> -->\r\n    </table>\r\n</ng-template>\r\n","import { Component, OnInit, ChangeDetectionStrategy } from '@angular/core';\r\nimport { MetaobjectDataModel, ReportViewBaseComponent } from 'barsa-novin-ray-core';\r\nimport { ServiceDeskViewOfServicesSetting } from '../models';\r\n\r\n@Component({\r\n    selector: 'bdc-service-desk-view-of-services',\r\n    templateUrl: './service-desk-view-of-services.component.html',\r\n    styleUrls: ['./service-desk-view-of-services.component.scss'],\r\n    changeDetection: ChangeDetectionStrategy.OnPush,\r\n    standalone: false\r\n})\r\nexport class ServiceDeskViewOfServicesComponent\r\n    extends ReportViewBaseComponent<ServiceDeskViewOfServicesSetting>\r\n    implements OnInit\r\n{\r\n    fieldIcon: string;\r\n    fieldTitle: string;\r\n    fieldDynamicCommand: string;\r\n    ngOnInit(): void {\r\n        super.ngOnInit();\r\n        this.fieldIcon = this.viewSetting.FieldIcon;\r\n        this.fieldTitle = this.viewSetting.FieldTitle;\r\n        this.fieldDynamicCommand = this.viewSetting.FieldDynamicCommand;\r\n        this.contextMenuItems?.forEach((c) => {\r\n            const parameters = c.Command.CustomUi?.Parameters;\r\n            if (parameters) {\r\n                // parameters.OnlyIcon = true;\r\n            }\r\n        });\r\n    }\r\n    onRowClick2(e: { mo: MetaobjectDataModel; index: number }, dynamicCommand: any): void {\r\n        if (dynamicCommand) {\r\n            return;\r\n        }\r\n        super.onRowClick(e);\r\n    }\r\n}\r\n","<div class=\"services\">\r\n    <div class=\"service-list\">\r\n        <fd-layout-grid>\r\n            <div fdLayoutGridRow>\r\n                @for (mo of moDataList | multipleGroupBy: groupby; track mo; let i = $index) { @if (mo.$Group ||\r\n                mo.$Group === '') {\r\n                <div [fdLayoutGridCol]=\"12\">\r\n                    <h3\r\n                        fd-title\r\n                        style=\"\r\n                            padding: 0 0 0.4rem 0;\r\n                            border-bottom: var(--sapList_BorderWidth) solid var(--sapList_BorderColor);\r\n                        \"\r\n                    >\r\n                        {{ mo.$Group }}\r\n                    </h3>\r\n                </div>\r\n                } @if (!mo.$Group) {\r\n                <div [fdLayoutGridCol]=\"12\" [colSm]=\"12\" [colMd]=\"3\" [colLg]=\"3\" [colXl]=\"3\">\r\n                    <div class=\"item\">\r\n                        <ng-container\r\n                            *ngTemplateOutlet=\"\r\n                                dynamicCommand;\r\n                                context: {\r\n                                    $implicit: mo,\r\n                                    index: i,\r\n                                    dynCommand: fieldDynamicCommand | rval: mo:allColumns,\r\n                                    title: fieldTitle | rval: mo:allColumns | bbbTranslate\r\n                                }\r\n                            \"\r\n                        ></ng-container>\r\n                    </div>\r\n                </div>\r\n                } }\r\n            </div>\r\n        </fd-layout-grid>\r\n    </div>\r\n</div>\r\n<ng-template #dynamicCommand let-mo let-index=\"index\" let-dynCommand=\"dynCommand\" let-title=\"title\">\r\n    <button\r\n        fd-button\r\n        [dynCommand]=\"dynCommand\"\r\n        [mo]=\"mo\"\r\n        [enableCommand]=\"dynCommand\"\r\n        style=\"width: 100%; max-height: 2.3rem; height: 2.3rem; border-radius: 0\"\r\n        [fdType]=\"'emphasized'\"\r\n        (click)=\"onRowClick2({ mo, index },dynCommand)\"\r\n        [title]=\"title\"\r\n    >\r\n        <span class=\"item-icon\">\r\n            <fd-icon glyph=\"product\"></fd-icon>\r\n        </span>\r\n        <span class=\"item-content\"> {{ title }}</span>\r\n        <span class=\"item-icon-arrow\">\r\n            @if (fieldIcon) {\r\n            <fd-icon [glyph]=\"fieldIcon\"></fd-icon>\r\n            }\r\n        </span>\r\n    </button>\r\n    <div style=\"padding: 10px; border-top: 1px solid #ccc\">\r\n        <bsu-ulv-context-menu\r\n            [disableOverflowContextMenu]=\"true\"\r\n            [mo]=\"mo\"\r\n            [index]=\"index\"\r\n            [styleIndex]=\"mo.$StyleIndex\"\r\n            [menuItems]=\"contextMenuItems\"\r\n            [allColumns]=\"allColumns\"\r\n            (commandClick)=\"this.ulvCommandClick.emit({ mo, index })\"\r\n            (overflowClick)=\"this.rowCheck.emit({ mo, index })\"\r\n        ></bsu-ulv-context-menu>\r\n    </div>\r\n</ng-template>\r\n","import { Component, OnInit, ChangeDetectionStrategy, Input } from '@angular/core';\r\nimport { BaseComponent, MetaobjectDataModel, ReportViewColumn } from 'barsa-novin-ray-core';\r\n\r\n@Component({\r\n    selector: 'bdc-service-desk-card-content-mojavezhay-akhz-shode',\r\n    templateUrl: './service-desk-card-content-mojavezhay-akhz-shode.component.html',\r\n    styleUrls: ['./service-desk-card-content-mojavezhay-akhz-shode.component.scss'],\r\n    changeDetection: ChangeDetectionStrategy.OnPush,\r\n    standalone: false\r\n})\r\nexport class ServiceDeskCardContentMojavezhayAkhzShodeComponent extends BaseComponent implements OnInit {\r\n    @Input() mo: MetaobjectDataModel;\r\n    @Input() allColumns: ReportViewColumn[];\r\n    @Input() parameters: MetaobjectDataModel;\r\n    @Input() rtl: boolean;\r\n    fieldTitle: string;\r\n    titleOfValue: string;\r\n    fieldValue: string;\r\n\r\n    ngOnInit(): void {\r\n        super.ngOnInit();\r\n        this.fieldTitle = this.parameters.FieldTitle;\r\n        this.titleOfValue = this.parameters.TitleOfValue;\r\n        this.fieldValue = this.parameters.FieldValue;\r\n    }\r\n}\r\n","<div style=\"display: flex; flex-direction: row; width: 100%\">\r\n    <h2\r\n        fd-title\r\n        style=\"\r\n            width: 60%;\r\n            text-align: right;\r\n            font-size: 12px;\r\n            font-weight: 600;\r\n            padding: 0px 16px 0 0;\r\n            text-overflow: ellipsis;\r\n            overflow: hidden;\r\n            white-space: nowrap;\r\n        \"\r\n    >\r\n        {{ fieldTitle | rval: mo:allColumns:true }}\r\n    </h2>\r\n    <h3\r\n        fd-title\r\n        style=\"\r\n            width: 40%;\r\n            text-align: left;\r\n            font-size: 12px;\r\n            font-weight: 600;\r\n            padding: 0px 5px 0 10px;\r\n            text-overflow: ellipsis;\r\n            overflow: hidden;\r\n            white-space: nowrap;\r\n            display: flex;\r\n        \"\r\n    >\r\n        <div style=\"width: 100%; font-weight: 400\">{{ titleOfValue }}:</div>\r\n        <div style=\"padding-right: 5px; text-align: left\">\r\n            {{ fieldValue | rval: mo:allColumns }}\r\n        </div>\r\n    </h3>\r\n</div>\r\n","import { Component, ChangeDetectionStrategy } from '@angular/core';\r\nimport { CardHeaderLogoTitleSubtitleComponent } from '../card-header-logo-title-subtitle/card-header-logo-title-subtitle.component';\r\n@Component({\r\n    selector: 'bdc-card-header-big-image-title-and-subtitle',\r\n    templateUrl: './card-header-big-image-title-and-subtitle.component.html',\r\n    styleUrls: ['./card-header-big-image-title-and-subtitle.component.scss'],\r\n    changeDetection: ChangeDetectionStrategy.OnPush,\r\n    standalone: false\r\n})\r\nexport class CardHeaderBigImageTitleAndSubtitleComponent extends CardHeaderLogoTitleSubtitleComponent {}\r\n","<fd-card-header\r\n    [class.hide-border]=\"parameters.HideBorder\"\r\n    [style.height.px]=\"maxHeightHeader ? maxHeightHeader : null\"\r\n>\r\n    <fd-card-main-header>\r\n        @if (hasIcon) {\r\n        <fd-avatar\r\n            [circle]=\"avatarCircle\"\r\n            size=\"s\"\r\n            ariaLabel=\"avatar image\"\r\n            title=\"avatar image\"\r\n            [glyph]=\"fontIcon\"\r\n            [image]=\"\r\n                isIconImage\r\n                    ? (imageIcon?.FileId | picFieldSrc: 'GetPictureFromFileInfo':null)\r\n                    : ''\r\n            \"\r\n        ></fd-avatar>\r\n        }\r\n        <div fd-card-title [style.justify-content]=\"'end'\" style=\"display: flex\">\r\n            <div\r\n                style=\"\r\n                    display: flex;\r\n                    justify-content: start;\r\n                    flex-grow: 1;\r\n                    flex-direction: row-reverse;\r\n                    align-items: start;\r\n                \"\r\n            >\r\n                @if (isCheckList) {\r\n                <fd-checkbox\r\n                    [name]=\"mo.$Caption\"\r\n                    [ngModel]=\"isChecked\"\r\n                    (ngModelChange)=\"events.emit({ title: 'rowCheck' })\"\r\n                ></fd-checkbox>\r\n                } @if (!setting.ContextMenuInFooter && contextMenuItems && contextMenuItems.length > 0) {\r\n                <div\r\n                    ulvContextMenu\r\n                    [allColumns]=\"allColumns\"\r\n                    [menuItems]=\"contextMenuItems\"\r\n                    [conditionalFormats]=\"conditionalFormats\"\r\n                    [disableOverflowContextMenu]=\"disableOverflowContextMenu\"\r\n                    [mo]=\"mo\"\r\n                    [styleIndex]=\"styleIndex\"\r\n                    (commandClick)=\"events.emit({ title: 'ulvCommand' })\"\r\n                    (overflowClick)=\"events.emit({ title: 'rowCheck' })\"\r\n                ></div>\r\n                }\r\n                <h2\r\n                    #hEl\r\n                    class=\"fd-card__title\"\r\n                    [hostEl]=\"hEl\"\r\n                    [dbName]=\"titleDbName\"\r\n                    [styleIndex]=\"styleIndex\"\r\n                    [applyConditionalFormats]=\"conditionalFormats\"\r\n                >\r\n                    {{ title }}\r\n                </h2>\r\n            </div>\r\n            @if (canView && !hideOpenIcon) {\r\n            <button\r\n                fd-button\r\n                (click)=\"events.emit({ title: 'rowClick' })\"\r\n                [glyph]=\"navigationArrow\"\r\n                fdType=\"transparent\"\r\n            ></button>\r\n            }\r\n        </div>\r\n\r\n        <h3\r\n            fd-card-subtitle\r\n            #hEl\r\n            [hostEl]=\"hEl\"\r\n            [dbName]=\"subtitleDbName\"\r\n            [styleIndex]=\"styleIndex\"\r\n            [applyConditionalFormats]=\"conditionalFormats\"\r\n            resizeHandler\r\n            [fnResize]=\"setHeaderHeight\"\r\n        >\r\n            {{ subtitle }}\r\n        </h3>\r\n    </fd-card-main-header>\r\n</fd-card-header>\r\n<ng-container *ngTemplateOutlet=\"extendedHeaderTemplate\"></ng-container>\r\n<div></div>\r\n","import {\r\n    Component,\r\n    OnInit,\r\n    ChangeDetectionStrategy,\r\n    ViewChild,\r\n    ViewChildren,\r\n    QueryList,\r\n    ElementRef\r\n} from '@angular/core';\r\nimport { BarsaApi, FormPropsBaseComponent, MetaobjectDataModel } from 'barsa-novin-ray-core';\r\n\r\n@Component({\r\n    selector: 'bdc-service-desk-form-layout-content-mojavez',\r\n    templateUrl: './service-desk-form-layout-content-mojavez.component.html',\r\n    styleUrls: ['./service-desk-form-layout-content-mojavez.component.scss'],\r\n    changeDetection: ChangeDetectionStrategy.OnPush,\r\n    standalone: false\r\n})\r\nexport class ServiceDeskFormLayoutContentMojavezComponent extends FormPropsBaseComponent implements OnInit {\r\n    @ViewChild('tabContainerRef') tabContainerRef: ElementRef;\r\n    @ViewChildren('tablesRef', { read: ElementRef }) tablesRef: QueryList<ElementRef>;\r\n\r\n    fieldsCaption: FieldsInfo[] = [];\r\n    Mojavez: MetaobjectDataModel[];\r\n\r\n    firstArray: FieldsInfo[];\r\n    secondArray: FieldsInfo[];\r\n    isOdd: boolean;\r\n\r\n    ngOnInit(): void {\r\n        super.ngOnInit();\r\n\r\n        let fieldDict: string[] = [];\r\n        if (this.fieldDict) {\r\n            fieldDict = Object.keys(this.fieldDict);\r\n        }\r\n        if (fieldDict) {\r\n            fieldDict.forEach((key) => {\r\n                if (this.fieldDict) {\r\n                    const fieldName = this.fieldDict[key];\r\n                    const item: FieldsInfo = { caption: key, fieldName, value: '' };\r\n                    const customFiledUi = this._controlUiPipe.transform(key, this.layout94);\r\n                    item.value = this.mo[fieldName];\r\n                    const originalXtype = customFiledUi?.FieldUi?.originalXtype;\r\n                    if (key === 'آدرس سایت') {\r\n                        item.type = 'Link';\r\n                    }\r\n                    if (this.mo[fieldName + '$Caption']) {\r\n                        item.type = 'Caption';\r\n                        item.value = this.mo[fieldName + '$Caption'];\r\n                    } else if (typeof item.value === 'object') {\r\n                        if (item.value.$Type === 'Common.MetaObjectListWeb') {\r\n                            item.type = 'MoList';\r\n                        } else if (item.value.Ext) {\r\n                            item.type = 'Image';\r\n                        } else if (originalXtype === 'Ui.FileLinearListBox') {\r\n                            item.type = 'Files';\r\n                        } else {\r\n                            item.type = 'Relation';\r\n                        }\r\n                        if (key === 'خدمات قابل انجام') {\r\n                            item.type = 'MoList2';\r\n                        }\r\n                    }\r\n                    this.fieldsCaption.push(item);\r\n                }\r\n            });\r\n        }\r\n\r\n        this.fieldsCaption = this.fieldsCaption.filter(\r\n            (c) => c.caption !== 'عنوان مجوز' && c.caption !== 'نقش اشخاص در مجوز' && c.caption !== 'فرزند'\r\n        );\r\n        const controlCount = this.fieldsCaption.length;\r\n        const controlCountMiddle = Math.ceil(this.fieldsCaption.length / 2);\r\n\r\n        this.firstArray = this.fieldsCaption.slice(0, controlCountMiddle);\r\n        this.secondArray = this.fieldsCaption.slice(controlCountMiddle, controlCount);\r\n\r\n        this.isOdd = controlCount % 2 === 0;\r\n    }\r\n    ngAfterViewInit(): void {\r\n        super.ngAfterViewInit();\r\n        this.alignTablesTr();\r\n    }\r\n    onLink(item): void {\r\n        if (item.F34) {\r\n            window.open(item.F42);\r\n        } else {\r\n            BarsaApi.Bw.Msg.Info('سامانه ای تعریف نشده است');\r\n        }\r\n    }\r\n\r\n    onDownload(item): void {\r\n        BarsaApi.Common.File.DownloadFileId(item.Id);\r\n    }\r\n    private alignTablesTr(): void {\r\n        setTimeout(() => {\r\n            const tablesRef = this.tablesRef.toArray();\r\n            const firstTableEl = tablesRef[0].nativeElement as HTMLElement;\r\n            const secondTableEl = tablesRef[1].nativeElement as HTMLElement;\r\n\r\n            const trFirstTable = firstTableEl.querySelectorAll('tr');\r\n            const trSecondTable = secondTableEl.querySelectorAll('tr');\r\n\r\n            trFirstTable.forEach((tr, index) => {\r\n                if (index < trSecondTable.length) {\r\n                    const trSecond = trSecondTable[index];\r\n                    if (tr.offsetHeight > trSecond.offsetHeight) {\r\n                        trSecond.style.height = `${tr.offsetHeight}px`;\r\n                    } else {\r\n                        tr.style.height = `${trSecond.offsetHeight}px`;\r\n                    }\r\n                }\r\n            });\r\n        }, 0);\r\n    }\r\n}\r\ninterface FieldsInfo {\r\n    type?: string;\r\n    caption: string;\r\n    fieldName: string;\r\n    value: any;\r\n}\r\n","<fd-layout-grid>\r\n    <div [fdLayoutGridCol]=\"6\" style=\"padding: 0\">\r\n        <ng-container *ngTemplateOutlet=\"renderTable; context: { $implicit: firstArray, classNames: 'firstTable' }\">\r\n        </ng-container>\r\n    </div>\r\n    <div [fdLayoutGridCol]=\"6\" style=\"padding: 0\">\r\n        <ng-container *ngTemplateOutlet=\"renderTable; context: { $implicit: secondArray, classNames: 'secondTable' }\">\r\n        </ng-container>\r\n    </div>\r\n</fd-layout-grid>\r\n\r\n<ng-template #renderTable let-array let-classNames=\"classNames\">\r\n    <table fd-table #tablesRef class=\"table-grid\" [ngClass]=\"classNames\">\r\n        @for (controlItem of array; track controlItem) {\r\n        <tr fd-table-row>\r\n            <th fd-tabel-cell>{{ controlItem.caption }}</th>\r\n            <td fd-tabel-cell>\r\n                @switch (controlItem.type) { @case ('Link') {\r\n                <a target=\"_blank\" [href]=\"controlItem.value\">{{ controlItem.value }}</a>\r\n                } @case ('Relation') {\r\n                {{ controlItem.value.$Caption }}\r\n                } @case ('MoList') { @for (item of controlItem.value.MoDataList; track item) {\r\n                <div class=\"links\">\r\n                    <fd-icon class=\"fd-icon-link\" [glyph]=\"'pdf-attachment'\"></fd-icon>\r\n                    <a (click)=\"onDownload(item)\">{{ item.$Caption }}</a>\r\n                </div>\r\n                } } @case ('MoList2') { @for (item of controlItem.value.MoDataList; track item) {\r\n                <div class=\"links\">\r\n                    <fd-icon class=\"fd-icon-link\" [glyph]=\"'chain-link'\"></fd-icon>\r\n                    <a (click)=\"onLink(item)\">{{ item.$Caption }}</a>\r\n                </div>\r\n                } } @case ('Caption') {\r\n                {{ controlItem.value }}\r\n                } @case ('Image') {\r\n                {{ controlItem.value.Ext }}\r\n                } @case ('Files') { @for (item of controlItem.value.Files; track item) {\r\n                <div class=\"links\">\r\n                    <fd-icon class=\"fd-icon-link\" [glyph]=\"'pdf-attachment'\"></fd-icon>\r\n                    <a (click)=\"onDownload(item)\">{{ item.FileName }}</a>\r\n                </div>\r\n                } } @default {\r\n                {{ controlItem.value }}\r\n                } }\r\n            </td>\r\n        </tr>\r\n        }\r\n    </table>\r\n</ng-template>\r\n","import { Component, OnInit, ChangeDetectionStrategy, TemplateRef, inject } from '@angular/core';\r\nimport { DomSanitizer } from '@angular/platform-browser';\r\nimport { ButtonType, DialogConfig, DialogService } from '@fundamental-ngx/core';\r\nimport { BarsaApi, BaseFormToolbaritemPropsComponent } from 'barsa-novin-ray-core';\r\n\r\n@Component({\r\n    selector: 'bdc-ulv-context-menu-item-show-file-content',\r\n    templateUrl: './ulv-context-menu-item-show-file-content.component.html',\r\n    styleUrls: ['./ulv-context-menu-item-show-file-content.component.scss'],\r\n    changeDetection: ChangeDetectionStrategy.OnPush,\r\n    standalone: false\r\n})\r\nexport class UlvContextMenuItemShowFileContentComponent extends BaseFormToolbaritemPropsComponent implements OnInit {\r\n    fileType: string;\r\n    file: any;\r\n    videoUrl: string;\r\n    text: string;\r\n    disabled = false;\r\n    compact: boolean;\r\n    icon: string;\r\n    iconOnly: boolean;\r\n    fdType: ButtonType;\r\n    private _dialogService = inject(DialogService);\r\n    private _sanitize = inject(DomSanitizer);\r\n    /** Inserted by Angular inject() migration for backwards compatibility */\r\n\r\n    ngOnInit(): void {\r\n        super.ngOnInit();\r\n        const mo = this.mo;\r\n        this.text = this.parameters.ButtonText;\r\n        this.fdType = this.parameters.FdType$Caption;\r\n        this.compact = this.parameters.Compact;\r\n        this.icon = this.parameters.Icon;\r\n        this.iconOnly = this.parameters.IconOnly;\r\n        this.fileType = this._reportValuePipe.transform(this.parameters.FieldType, mo, this.allColumns); // نوع\r\n        this.file = this._reportValuePipe.transform(this.parameters.FieldFile, mo, this.allColumns);\r\n        this.videoUrl = this._reportValuePipe.transform(this.parameters.FieldVideoUrl, mo, this.allColumns);\r\n        if (this.fileType === '1' && this.file.Files?.length === 0) {\r\n            this.disabled = true;\r\n        }\r\n\r\n        if (this.fileType === '2' && this.videoUrl) {\r\n            this.disabled = true;\r\n        }\r\n    }\r\n    openDialog(dialog: TemplateRef<any>): void {\r\n        let finalUrl;\r\n        if (this.fileType === '1') {\r\n            finalUrl = this._sanitize.bypassSecurityTrustResourceUrl(\r\n                BarsaApi.Common.File.CreateAttachmentUrl(this.file.Files[0].Id, true)\r\n            );\r\n        }\r\n        if (this.fileType === '2') {\r\n            finalUrl = this._sanitize.bypassSecurityTrustResourceUrl(this.videoUrl);\r\n        }\r\n        const isMobile = this.deviceName === 'mobile';\r\n        const x: DialogConfig = {\r\n            data: {\r\n                url: finalUrl,\r\n                isVideo: this.fileType === '2',\r\n                responsivePadding: true,\r\n                mobile: isMobile\r\n            }\r\n        };\r\n\r\n        if (!isMobile) {\r\n            x.width = '60%';\r\n            x.height = '56%';\r\n        }\r\n        this._dialogService.open(dialog, x);\r\n    }\r\n}\r\n","<button\r\n    fd-button\r\n    [compact]=\"compact\"\r\n    [label]=\"iconOnly ? '' : (text | bbbTranslate)\"\r\n    [fdType]=\"fdType\"\r\n    [glyph]=\"icon\"\r\n    [compact]=\"compact\"\r\n    (click)=\"openDialog(pdfDialog)\"\r\n></button>\r\n\r\n<ng-template let-dialog let-dialogConfig=\"dialogConfig\" #pdfDialog>\r\n    <fd-dialog [dialogConfig]=\"dialogConfig\" [dialogRef]=\"dialog\" #dialogTplRef>\r\n        <fd-dialog-header>\r\n            <ng-template fdkTemplate=\"header\">\r\n                <div fd-bar-left></div>\r\n                <div fd-bar-right>\r\n                    @if (dialogConfig.height !== '100vh') {\r\n                    <fd-button-bar\r\n                        ariaLabel=\"fullscreen\"\r\n                        fullscreenDialog\r\n                        [glyph]=\"(dialog.fullScreen | async) === true ? 'exitfullscreen' : 'resize'\"\r\n                        (click)=\"dialog.toggleFullScreen()\"\r\n                    ></fd-button-bar>\r\n                    }\r\n                    <fd-button-bar ariaLabel=\"close\" glyph=\"decline\" (click)=\"dialog.dismiss()\"></fd-button-bar>\r\n                </div>\r\n            </ng-template>\r\n        </fd-dialog-header>\r\n\r\n        <fd-dialog-body class=\"ulvmenu-file-content\">\r\n            @if (!dialogConfig.data.isVideo && dialogConfig.data.url) {\r\n            <object [data]=\"dialogConfig.data.url\" type=\"application/pdf\" width=\"100%\" height=\"98%\"></object>\r\n            } @if (dialogConfig.data.isVideo) {\r\n            <video controls style=\"width: 100%; height: 98%\">\r\n                <source [src]=\"dialogConfig.data.url\" type=\"video/mp4\" />\r\n                Your browser does not support HTML video.\r\n            </video>\r\n            }\r\n        </fd-dialog-body>\r\n    </fd-dialog>\r\n</ng-template>\r\n","import { Component, ChangeDetectionStrategy, AfterViewInit, OnDestroy } from '@angular/core';\r\nimport { FieldBaseComponent } from 'barsa-novin-ray-core';\r\n\r\n@Component({\r\n    selector: 'bdc-resend-verification-code',\r\n    templateUrl: './resend-verification-code.component.html',\r\n    styleUrls: ['./resend-verification-code.component.scss'],\r\n    changeDetection: ChangeDetectionStrategy.OnPush,\r\n    standalone: false\r\n})\r\nexport class ResendVerificationCodeComponent extends FieldBaseComponent implements AfterViewInit, OnDestroy {\r\n    caption = '00:00';\r\n    timer = 1;\r\n    minutes = '0';\r\n    seconds = '0';\r\n    interval$: any | null;\r\n\r\n    _baseTimeLeft = 120;\r\n    _timeLeftCounter = 0;\r\n    ngAfterViewInit(): void {\r\n        super.ngAfterViewInit();\r\n        this._timeLeftCounter = this._baseTimeLeft;\r\n        this.caption = `(${this.caption})`;\r\n        this._startTimer();\r\n    }\r\n    ngOnDestroy(): void {\r\n        super.ngOnDestroy();\r\n        if (this.interval$) {\r\n            clearInterval(this.interval$);\r\n        }\r\n    }\r\n    onClick(): void {\r\n        this.context.fireEvent('click', this.context);\r\n    }\r\n    onStartTimer(): void {\r\n        this._startTimer();\r\n    }\r\n\r\n    private _startTimer(): void {\r\n        this.interval$ = setInterval(() => {\r\n            if (this._timeLeftCounter > 0) {\r\n                this._timeLeftCounter--;\r\n\r\n                this.minutes = Math.floor(this._timeLeftCounter / 60).toString();\r\n                this.seconds = Math.round(this._timeLeftCounter % 60).toString();\r\n                this.minutes = Number(this.minutes) < 10 ? '0' + this.minutes : this.minutes;\r\n                this.seconds = Number(this.seconds) < 10 ? '0' + this.seconds : this.seconds;\r\n                this.caption = `(${this.minutes}:${this.seconds})`;\r\n            } else {\r\n                this._timeLeftCounter = this._baseTimeLeft;\r\n                this.caption = `${this.caption}`;\r\n                if (this.interval$ != null) {\r\n                    clearInterval(this.interval$);\r\n                    this.interval$ = null;\r\n                }\r\n            }\r\n            this._cdr.detectChanges();\r\n        }, 1000);\r\n    }\r\n}\r\n","<button\r\n    (click)=\"onClick()\"\r\n    fd-button\r\n    [disabled]=\"interval$ === null ? null : true\"\r\n    (click)=\"onStartTimer()\"\r\n    [label]=\"interval$ === null ? ('ارسال مجدد' | bbbTranslate) : caption\"\r\n    glyph=\"iphone\"\r\n></button>\r\n","import { Component, OnInit, ChangeDetectionStrategy } from '@angular/core';\r\nimport { ButtonType } from '@fundamental-ngx/core';\r\nimport { UiCheckBoxComponent } from 'barsa-sap-ui';\r\n\r\n@Component({\r\n    selector: 'bdc-checkbox-button',\r\n    templateUrl: './checkbox-button.component.html',\r\n    styleUrls: ['./checkbox-button.component.scss'],\r\n    changeDetection: ChangeDetectionStrategy.OnPush,\r\n    standalone: false\r\n})\r\nexport class CheckboxButtonComponent extends UiCheckBoxComponent implements OnInit {\r\n    fdType: ButtonType;\r\n    trueIcon: string;\r\n    falseIcon: string;\r\n\r\n    ngOnInit(): void {\r\n        super.ngOnInit();\r\n        this.trueIcon = this.parameters?.TrueIcon;\r\n        this.fdType = this.parameters?.FdType$Caption;\r\n        this.falseIcon = this.parameters?.FalseIcon;\r\n    }\r\n    onClick(): void {\r\n        this._valueChanged(!this.value);\r\n    }\r\n}\r\n","<button\r\n    [disabled]=\"(disableOrReadonly$ | async)!!\"\r\n    fd-button\r\n    [glyph]=\"value ? trueIcon : falseIcon\"\r\n    [fdType]=\"fdType\"\r\n    (click)=\"onClick()\"\r\n></button>\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { BarcodeFormat } from '@zxing/library';\r\n\r\n@Pipe({\r\n    name: 'barcodeFormat',\r\n    standalone: false\r\n})\r\nexport class BarcodeFormatPipe implements PipeTransform {\r\n    transform(value: number): string {\r\n        let format = '';\r\n        for (const enumMember of Object.keys(BarcodeFormat)) {\r\n            const isValueProperty = parseInt(enumMember, 10) >= 0;\r\n            if (isValueProperty && Number(enumMember) === value) {\r\n                format = BarcodeFormat[enumMember];\r\n            }\r\n        }\r\n        return format;\r\n    }\r\n}\r\n","import { Component, OnInit, ChangeDetectionStrategy } from '@angular/core';\r\nimport { TabPanelComponent } from '@fundamental-ngx/core';\r\nimport { ReportViewBaseComponent, UiReportViewBaseSetting } from 'barsa-novin-ray-core';\r\n\r\n@Component({\r\n    selector: 'bdc-report-tab-view',\r\n    templateUrl: './report-tab-view.component.html',\r\n    styleUrls: ['./report-tab-view.component.scss'],\r\n    changeDetection: ChangeDetectionStrategy.OnPush,\r\n    standalone: false\r\n})\r\nexport class ReportTabViewComponent extends ReportViewBaseComponent<UiReportViewBaseSetting> implements OnInit {\r\n    fieldTitle: string;\r\n    fieldIcon: string;\r\n    fieldState: string;\r\n    mode: string;\r\n    arrowRight: string;\r\n\r\n    ngOnInit(): void {\r\n        super.ngOnInit();\r\n        this.arrowRight = this.rtl ? 'navigation-left-arrow' : 'navigation-right-arrow';\r\n        this.fieldTitle = this.viewSetting.FieldTitle;\r\n        this.fieldIcon = this.viewSetting.FieldIcon;\r\n        this.fieldState = this.viewSetting.FieldState;\r\n        this.mode = this.viewSetting.Mode$Caption;\r\n    }\r\n    onSelectedTabChange(e: TabPanelComponent): void {\r\n        const index = this.moDataList.findIndex((c) => c.Id === e.id);\r\n        const mo = this.moDataList[index];\r\n        super.onRowCheck({ mo, index });\r\n    }\r\n}\r\n","<fd-tab-list [expandOverflowText]=\"'More' | bbbTranslate\" (selectedTabChange)=\"onSelectedTabChange($event)\">\r\n    @for (mo of moDataList; track mo) {\r\n    <fd-tab [title]=\"mo.$Caption\" [id]=\"mo.Id\"> </fd-tab>\r\n    }\r\n</fd-tab-list>\r\n","import { Component, OnInit, ChangeDetectionStrategy } from '@angular/core';\r\nimport { ReportViewBaseComponent, UiReportViewBaseSetting } from 'barsa-novin-ray-core';\r\n\r\n@Component({\r\n    selector: 'bdc-report-line-chart-view',\r\n    templateUrl: './report-line-chart-view.component.html',\r\n    styleUrls: ['./report-line-chart-view.component.scss'],\r\n    changeDetection: ChangeDetectionStrategy.OnPush,\r\n    standalone: false\r\n})\r\nexport class ReportLineChartViewComponent extends ReportViewBaseComponent<UiReportViewBaseSetting> implements OnInit {}\r\n","<div\r\n    beChartLineTime\r\n    [moDataList]=\"moDataList\"\r\n    [groupByField]=\"'SlaveAddress'\"\r\n    [dateTimeField]=\"'DateTime'\"\r\n    [valueField]=\"'Value'\"\r\n></div>\r\n","import { Component, OnInit, ChangeDetectionStrategy } from '@angular/core';\r\n\r\nimport { CardHeaderLogoTitleSubtitleComponent } from '../card-header-logo-title-subtitle/card-header-logo-title-subtitle.component';\r\n\r\n@Component({\r\n    selector: 'bdc-card-header-kpi',\r\n    templateUrl: './card-header-kpi.component.html',\r\n    styleUrls: ['./card-header-kpi.component.scss'],\r\n    changeDetection: ChangeDetectionStrategy.OnPush,\r\n    standalone: false\r\n})\r\nexport class CardHeaderKpiComponent extends CardHeaderLogoTitleSubtitleComponent implements OnInit {\r\n    kpiValue: string;\r\n    kpiStatus: 'positive' | 'negative' | 'critical' | 'informative';\r\n    kpiAnalyticalLabel: string;\r\n    kpiAnalyticalContent: string;\r\n    kpiAnalayticalSymbol: string;\r\n    ngOnInit(): void {\r\n        const parentField = this.parameters.InheritanceInfo?.ParentFieldName;\r\n        if (parentField) {\r\n            const val = this.parameters[parentField];\r\n            if (val) {\r\n                Object.keys(val).forEach((c) => {\r\n                    if (!c.startsWith('$') && c !== 'Id') {\r\n                        this.parameters[c] = val[c];\r\n                    }\r\n                });\r\n            }\r\n        }\r\n        super.ngOnInit();\r\n\r\n        const parameters = this.parameters;\r\n        if (parameters != null) {\r\n            this.kpiValue = this._rval.transform(parameters.KpiValue, this.mo, this.allColumns, true);\r\n            this.kpiStatus = this._rval.transform(parameters.KpiStatus, this.mo, this.allColumns, true);\r\n            this.kpiAnalyticalLabel = parameters.KpiAnalyticalLabel;\r\n            this.kpiAnalayticalSymbol = this._rval.transform(parameters.KpiAnalayticalSymbol, this.mo, this.allColumns);\r\n            this.kpiAnalyticalContent = this._rval.transform(parameters.KpiAnalyticalContent, this.mo, this.allColumns);\r\n        }\r\n    }\r\n}\r\n","<fd-card-header>\r\n    <fd-card-main-header>\r\n        <div fd-card-title [style.justify-content]=\"'end'\">\r\n            <div style=\"display: flex; justify-content: start; flex-grow: 1\">\r\n                @if (isCheckList) {\r\n                <fd-checkbox\r\n                    [name]=\"mo.$Caption\"\r\n                    [ngModel]=\"isChecked\"\r\n                    (ngModelChange)=\"events.emit({ title: 'rowCheck' })\"\r\n                ></fd-checkbox>\r\n                }\r\n                <h2\r\n                    #hEl\r\n                    class=\"fd-card__title\"\r\n                    [hostEl]=\"hEl\"\r\n                    [dbName]=\"titleDbName\"\r\n                    [styleIndex]=\"styleIndex\"\r\n                    [applyConditionalFormats]=\"conditionalFormats\"\r\n                >\r\n                    {{ title }}\r\n                </h2>\r\n                @if (!setting.ContextMenuInFooter && contextMenuItems && contextMenuItems.length > 0) {\r\n                <div\r\n                    ulvContextMenu\r\n                    [allColumns]=\"allColumns\"\r\n                    [menuItems]=\"contextMenuItems\"\r\n                    [conditionalFormats]=\"conditionalFormats\"\r\n                    [disableOverflowContextMenu]=\"disableOverflowContextMenu\"\r\n                    [styleIndex]=\"styleIndex\"\r\n                    [mo]=\"mo\"\r\n                    (commandClick)=\"events.emit({ title: 'ulvCommand' })\"\r\n                    (overflowClick)=\"events.emit({ title: 'rowCheck' })\"\r\n                ></div>\r\n                }\r\n            </div>\r\n            @if (canView) {\r\n            <button\r\n                fd-button\r\n                (click)=\"events.emit({ title: 'rowClick' })\"\r\n                [glyph]=\"navigationArrow\"\r\n                fdType=\"transparent\"\r\n            ></button>\r\n            }\r\n        </div>\r\n\r\n        <fd-card-kpi-header>\r\n            <strong fd-card-kpi-value [status]=\"kpiStatus\">{{ kpiValue }}</strong>\r\n            <span\r\n                fd-card-kpi-scale-icon\r\n                [glyph]=\"kpiStatus === 'positive' ? 'up' : 'down'\"\r\n                fd-object-status\r\n                [status]=\"kpiStatus\"\r\n                aria-label=\"up arrow\"\r\n                title=\"up arrow\"\r\n            ></span>\r\n            <span fd-card-kpi-scale-text fd-object-status status=\"positive\">°C</span>\r\n\r\n            <div fd-card-kpi-analytics>\r\n                <label fd-card-kpi-analytics-label>{{ kpiAnalyticalLabel }}</label>\r\n                <span fd-card-kpi-analytics-content>{{ kpiAnalyticalContent }}{{ kpiAnalayticalSymbol }}</span>\r\n            </div>\r\n        </fd-card-kpi-header>\r\n\r\n        <h4 fd-card-second-subtitle>{{ subtitle }}</h4>\r\n    </fd-card-main-header>\r\n</fd-card-header>\r\n","/** قرارداد مشترک شرط‌های مقدارمحور برای rendererهای ستون گزارش. */\r\nexport interface ColumnValueState {\r\n    WhenExpression?: string;\r\n    MinValue?: number | string;\r\n    MaxValue?: number | string;\r\n    /** نام‌های کوتاه برای سازگاری با تنظیمات دستی و قدیمی‌تر. */\r\n    When?: string;\r\n    Min?: number | string;\r\n    Max?: number | string;\r\n    [key: string]: any;\r\n}\r\n\r\n/** ساختار آرایه‌ی خام یا MetaObjectListWeb دریافتی از سرور. */\r\nexport type ColumnValueStates<T extends ColumnValueState = ColumnValueState> = T[] | { MoDataList?: T[] };\r\n\r\n/**\r\n * اولین state منطبق را برمی‌گرداند. WhenExpression بر بازه‌ی شامل MinValue/MaxValue\r\n * مقدم است و expression نامعتبر فقط همان state را نامنطبق می‌کند.\r\n */\r\nexport function resolveColumnValueState<T extends ColumnValueState>(\r\n    states: ColumnValueStates<T> | null | undefined,\r\n    value: unknown\r\n): T | null {\r\n    for (const state of _statesList(states)) {\r\n        if (_stateMatches(state, value)) {\r\n            return state;\r\n        }\r\n    }\r\n    return null;\r\n}\r\n\r\nfunction _statesList<T extends ColumnValueState>(states: ColumnValueStates<T> | null | undefined): T[] {\r\n    if (Array.isArray(states)) {\r\n        return states;\r\n    }\r\n    return states && Array.isArray(states.MoDataList) ? states.MoDataList : [];\r\n}\r\n\r\nfunction _stateMatches(state: ColumnValueState, value: unknown): boolean {\r\n    const when = String(state?.WhenExpression ?? state?.When ?? '').trim();\r\n    if (when) {\r\n        return _evalWhen(when, value);\r\n    }\r\n\r\n    const numericValue = _numericValue(value);\r\n    if (!Number.isFinite(numericValue)) {\r\n        return false;\r\n    }\r\n\r\n    const min = state?.MinValue ?? state?.Min;\r\n    const max = state?.MaxValue ?? state?.Max;\r\n    const hasMin = min != null && String(min).trim() !== '';\r\n    const hasMax = max != null && String(max).trim() !== '';\r\n    if (!hasMin && !hasMax) {\r\n        return false;\r\n    }\r\n    if (hasMin && numericValue < Number(min)) {\r\n        return false;\r\n    }\r\n    if (hasMax && numericValue > Number(max)) {\r\n        return false;\r\n    }\r\n    return true;\r\n}\r\n\r\nfunction _evalWhen(expression: string, value: unknown): boolean {\r\n    try {\r\n        const evaluate = new Function('value', `return (${expression});`);\r\n        return !!evaluate(_numericValue(value));\r\n    } catch {\r\n        return false;\r\n    }\r\n}\r\n\r\nfunction _numericValue(value: unknown): number {\r\n    const raw = String(value ?? '').replace(/[^\\d.+-]/g, '');\r\n    const numericValue = parseFloat(raw);\r\n    return Number.isFinite(numericValue) ? numericValue : NaN;\r\n}\r\n","import { GenericTagType } from '@fundamental-ngx/core';\r\n\r\n/** مقادیرِ semanticِ SAP GenericTag که پشتیبانی می‌شوند. */\r\nexport const GENERIC_TAG_TYPES: ReadonlySet<GenericTagType> = new Set(['success', 'warning', 'error', 'information']);\r\n\r\n/**\r\n * synonymها/کپشن‌های رایجِ وضعیت را به یک `GenericTagType` نرمال می‌کند.\r\n * نگاشت: good/positive→success، critical/negative→error، offline/neutral→information.\r\n */\r\nexport function normalizeStatusTone(value: unknown): GenericTagType | null {\r\n    const v = String(value ?? '')\r\n        .trim()\r\n        .toLowerCase();\r\n    if (!v) {\r\n        return null;\r\n    }\r\n    if (GENERIC_TAG_TYPES.has(v as GenericTagType)) {\r\n        return v as GenericTagType;\r\n    }\r\n    if (['good', 'positive', 'ok', 'طبق برنامه'].includes(v)) {\r\n        return 'success';\r\n    }\r\n    if (['warn', 'attention', 'نیازمند توجه'].includes(v)) {\r\n        return 'warning';\r\n    }\r\n    if (['critical', 'negative', 'danger', 'بحرانی'].includes(v)) {\r\n        return 'error';\r\n    }\r\n    if (['offline', 'neutral', 'disconnected', 'info', 'قطع ارتباط'].includes(v)) {\r\n        return 'information';\r\n    }\r\n    return null;\r\n}\r\n\r\n/** ارقامِ فارسی/عربی را به لاتین تبدیل و به عدد تبدیل می‌کند؛ در نبودِ عددِ معتبر NaN می‌دهد. */\r\nexport function toNumberLoose(value: unknown): number {\r\n    const latin = String(value ?? '')\r\n        .replace(/[۰-۹]/g, (d) => String('۰۱۲۳۴۵۶۷۸۹'.indexOf(d)))\r\n        .replace(/[٠-٩]/g, (d) => String('٠١٢٣٤٥٦٧٨٩'.indexOf(d)))\r\n        .replace(/[^\\d.+-]/g, '');\r\n    const n = parseFloat(latin);\r\n    return Number.isFinite(n) ? n : NaN;\r\n}\r\n","import { Component, OnInit, ChangeDetectionStrategy, Input } from '@angular/core';\r\nimport { GenericTagType } from '@fundamental-ngx/core';\r\nimport { CardBaseItemContentPropsComponent, MetaobjectDataModel, UiReportViewBaseSetting } from 'barsa-novin-ray-core';\r\nimport { ColumnValueState, ColumnValueStates, resolveColumnValueState } from '../column-value-state';\r\nimport { normalizeStatusTone } from '../status-tone';\r\n\r\n/**\r\n * هدرِ گزارش به‌سبکِ `.panel-head` تمپلیتِ مانیتورینگ: تیتر + هینت + بَجِ وضعیت + شمارشِ زنده.\r\n *\r\n * به‌عنوان `viewSetting.HeaderComponent` روی `ui-report-container` وصل می‌شود و `moDataList`\r\n * گزارش را می‌گیرد تا بتواند تعداد را نشان دهد. رنگ‌ها از tokenهای SAP و بَج تم‌محور (`fd-generic-tag`).\r\n */\r\n@Component({\r\n    selector: 'bdc-report-panel-head',\r\n    templateUrl: './report-panel-head.component.html',\r\n    styleUrls: ['./report-panel-head.component.scss'],\r\n    changeDetection: ChangeDetectionStrategy.OnPush,\r\n    standalone: false\r\n})\r\nexport class ReportPanelHeadComponent\r\n    extends CardBaseItemContentPropsComponent<UiReportViewBaseSetting>\r\n    implements OnInit\r\n{\r\n    @Input() parameters: ReportPanelHeadSettings;\r\n    @Input() moDataList: MetaobjectDataModel[];\r\n\r\n    title: string;\r\n    hint: string;\r\n    icon: string;\r\n    badgeText: string;\r\n    badgeTone: GenericTagType;\r\n    showCount = false;\r\n    count = 0;\r\n    countLabel: string;\r\n\r\n    ngOnInit(): void {\r\n        super.ngOnInit();\r\n        const p = this.parameters;\r\n        if (p == null) {\r\n            return;\r\n        }\r\n        this.title = this._readField(p.Title);\r\n        this.hint = this._readField(p.Hint);\r\n        this.icon = p.Icon ?? '';\r\n        this.badgeText = this._readField(p.BadgeText);\r\n        this.badgeTone = normalizeStatusTone(p['Badge$Caption'] ?? p.BadgeStatus) ?? 'information';\r\n        this.showCount = !!p.ShowCount;\r\n        this.count = this.moDataList?.length ?? 0;\r\n        this.countLabel = this._readField(p.CountLabel);\r\n\r\n        // بَجِ وضعیت به‌صورتِ مقدارمحور: StatusStates روی «تعدادِ رکوردهای گزارش» ارزیابی می‌شود\r\n        // و در صورتِ تطبیق، رنگ و متنِ بَج را override می‌کند.\r\n        this._applyBadgeState();\r\n    }\r\n\r\n    /**\r\n     * مقدار یک تنظیم را می‌خواند: اگر نامِ ستونِ گزارش باشد مقدارِ آن ستون (نیازمندِ `mo`)،\r\n     * وگرنه همان مقدارِ خامِ ثابت. هدرِ تجمیعیِ گزارش معمولاً `mo` ندارد → مقدارِ ثابت نمایش می‌یابد.\r\n     */\r\n    private _readField(value?: string): string {\r\n        const raw = value ?? '';\r\n        if (!raw || !this.mo) {\r\n            return raw;\r\n        }\r\n        return this._rval.transform(raw, this.mo, this.allColumns, true) || raw;\r\n    }\r\n\r\n    /** اگر `StatusStates` تعریف شده باشد و روی تعداد رکوردها match کند، tone/متنِ بَج را override می‌کند. */\r\n    private _applyBadgeState(): void {\r\n        const states = this.parameters.StatusStates;\r\n        if (!states) {\r\n            return;\r\n        }\r\n        const state = resolveColumnValueState<PanelHeadBadgeState>(states, this.count);\r\n        if (!state) {\r\n            return;\r\n        }\r\n        const tone = normalizeStatusTone(state['Status$Caption'] ?? state['F2$Caption'] ?? state.Status);\r\n        if (tone) {\r\n            this.badgeTone = tone;\r\n        }\r\n        const text = state.Text ?? state.BadgeText ?? state.Note;\r\n        if (text != null && String(text).trim() !== '') {\r\n            this.badgeText = text;\r\n        }\r\n    }\r\n}\r\n\r\n/** تنظیماتِ هدرِ گزارش (همه اختیاری). */\r\nexport interface ReportPanelHeadSettings extends MetaobjectDataModel {\r\n    /** تیترِ هدر */\r\n    Title?: string;\r\n    /** توضیحِ کم‌رنگِ زیرِ تیتر */\r\n    Hint?: string;\r\n    /** آیکنِ SAP کنارِ تیتر */\r\n    Icon?: string;\r\n    /** متنِ بَجِ وضعیت (مثل «اقدام لازم») */\r\n    BadgeText?: string;\r\n    /** رنگِ بَج: success/warning/error/information (یا فیلدِ enum با `Badge$Caption`) */\r\n    BadgeStatus?: string;\r\n    /** نگاشتِ مقدارمحورِ بَج بر اساسِ «تعدادِ رکوردهای گزارش» (رنگ و متنِ بَج را override می‌کند) */\r\n    StatusStates?: ColumnValueStates<PanelHeadBadgeState>;\r\n    /** نمایشِ شمارشِ رکوردهای گزارش */\r\n    ShowCount?: boolean;\r\n    /** برچسبِ کنارِ عددِ شمارش (مثل «مورد») */\r\n    CountLabel?: string;\r\n}\r\n\r\n/** بسته‌ی وضعیتِ مقدارمحورِ بَج (بر اساسِ تعدادِ رکوردها). */\r\nexport interface PanelHeadBadgeState extends ColumnValueState {\r\n    Status?: string | number;\r\n    'Status$Caption'?: string;    \r\n    /** متنِ جایگزینِ بَج در این وضعیت */\r\n    Text?: string;\r\n    BadgeText?: string;\r\n    Note?: string;\r\n}\r\n","<div class=\"rph\">\r\n    <div class=\"rph-main\">\r\n        <div class=\"rph-title-row\">\r\n            @if (icon) { <fd-icon class=\"rph-icon\" [glyph]=\"icon\"></fd-icon> }\r\n            <h2 class=\"rph-title\">{{ title | bbbTranslate }}</h2>\r\n        </div>\r\n        @if (hint) {\r\n        <div class=\"rph-hint\">{{ hint | bbbTranslate }}</div>\r\n        }\r\n    </div>\r\n\r\n    <div class=\"rph-side\">\r\n        @if (showCount) {\r\n        <span class=\"rph-count\">{{ count }}@if (countLabel) { {{ countLabel | bbbTranslate }} }</span>\r\n        } @if (badgeText) {\r\n        <div fd-generic-tag class=\"rph-badge\" [type]=\"badgeTone\" [name]=\"''\" [value]=\"badgeText | bbbTranslate\"></div>\r\n        }\r\n    </div>\r\n</div>\r\n","import { Component, OnInit, ChangeDetectionStrategy, Input } from '@angular/core';\r\nimport { GenericTagType } from '@fundamental-ngx/core';\r\nimport { BaseViewItemPropsComponent, MetaobjectDataModel } from 'barsa-novin-ray-core';\r\nimport { ColumnValueState, ColumnValueStates, resolveColumnValueState } from '../column-value-state';\r\nimport { normalizeStatusTone, toNumberLoose } from '../status-tone';\r\n\r\n/** جهتِ اختلاف (گپ) برای رنگِ متنِ آن. */\r\nexport type ProgressGapTone = 'positive' | 'negative' | 'neutral';\r\n\r\n/**\r\n * یک ردیفِ «پیشرفت» به‌سبکِ تمپلیتِ مانیتورینگ (kiln-row):\r\n * ستونِ عنوان + متنِ وضعیت | نوارِ پیشرفت با مارکرِ «انتظار» و درصد | اعداد `current/target` + گپ.\r\n *\r\n * به‌عنوان `RowOlgo` روی یک UiListView (یا هر جای دیگر) وصل می‌شود و همه‌ی فیلدها را از\r\n * `parameters` خودش می‌خواند. رنگ‌ها کاملاً از tokenهای semanticِ SAP می‌آیند.\r\n */\r\n@Component({\r\n    selector: 'bdc-progress-list-row',\r\n    templateUrl: './progress-list-row.component.html',\r\n    styleUrls: ['./progress-list-row.component.scss'],\r\n    changeDetection: ChangeDetectionStrategy.OnPush,\r\n    standalone: false\r\n})\r\nexport class ProgressListRowComponent extends BaseViewItemPropsComponent implements OnInit {\r\n    private static readonly DEFAULT_TONE_TEXT: Record<GenericTagType, string> = {\r\n        success: 'طبق برنامه',\r\n        warning: 'نیازمند توجه',\r\n        error: 'بحرانی',\r\n        information: 'قطع ارتباط'\r\n    };\r\n\r\n    private static readonly TONE_TEXT_OVERRIDE_KEY: Record<GenericTagType, string> = {\r\n        success: 'SuccessText',\r\n        warning: 'WarningText',\r\n        error: 'ErrorText',\r\n        information: 'InformationText'\r\n    };\r\n\r\n    @Input() parameters: ProgressListRowSettings;\r\n\r\n    title: string;\r\n    tone: GenericTagType | null = null;\r\n    statusText: string;\r\n    progressLabel: string;\r\n    ratioText: string;\r\n    progressPct = 0;\r\n    expectedPct: number | null = null;\r\n    gapText: string;\r\n    gapTone: ProgressGapTone = 'neutral';\r\n\r\n    ngOnInit(): void {\r\n        super.ngOnInit();\r\n        const p = this.parameters;\r\n        if (p == null) {\r\n            return;\r\n        }\r\n\r\n        this.title = this._readField(p.Title);\r\n        this.tone = this._resolveTone();\r\n        this.statusText = this._resolveStatusText();\r\n        this.progressLabel = this._readField(p.ProgressLabel) || 'پیشرفت روزانه';\r\n\r\n        const current = this._readField(p.CurrentValue);\r\n        const target = this._readField(p.TargetValue);\r\n        this.ratioText = current && target ? `${current} / ${target}` : current || target || '';\r\n\r\n        // درصدِ پیشرفت: `Progress` صریح، وگرنه محاسبه از current/target\r\n        const explicit = this._numOrNaN(p.Progress);\r\n        const curN = toNumberLoose(current);\r\n        const tgtN = toNumberLoose(target);\r\n        const pct = Number.isFinite(explicit)\r\n            ? explicit\r\n            : Number.isFinite(curN) && Number.isFinite(tgtN) && tgtN > 0\r\n            ? (curN / tgtN) * 100\r\n            : 0;\r\n        this.progressPct = this._clampPct(pct);\r\n\r\n        // درصدِ موردانتظار برای مارکر (اختیاری)\r\n        const expected = this._numOrNaN(p.Expected);\r\n        this.expectedPct = Number.isFinite(expected) ? this._clampPct(expected) : null;\r\n\r\n        // گپ: متن + جهتِ رنگ از `GapValue` (اگر منفی=عقب، مثبت=جلو)\r\n        this.gapText = this._readField(p.Gap);\r\n        const gapN = this._numOrNaN(p.GapValue);\r\n        this.gapTone = !Number.isFinite(gapN) ? 'neutral' : gapN < 0 ? 'negative' : gapN > 0 ? 'positive' : 'neutral';\r\n    }\r\n\r\n    /** انتخابِ ردیف (تک‌کلیک) — مثل list-item، از مسیرِ `events` به لیست روتر می‌شود. */\r\n    override onRowCheck(onlyCheck?: boolean): void {\r\n        this.events.emit({ title: 'rowCheck', data: { mo: this.mo, index: this.index, onlyCheck } });\r\n    }\r\n\r\n    /** بازکردن (دابل‌کلیک) — مثل list-item، از مسیرِ `events` به لیست روتر می‌شود. */\r\n    override onRowClick(): void {\r\n        this.events.emit({ title: 'rowClick', data: { mo: this.mo, index: this.index } });\r\n    }\r\n\r\n    /** مقدار یک فیلد: اول ارجاعِ ستون، وگرنه همان مقدارِ خامِ تنظیم به‌عنوانِ متنِ ثابت. */\r\n    private _readField(value: string | undefined): string {\r\n        const raw = value ?? '';\r\n        return this._reportValuePipe.transform(raw, this.mo, this.allColumns, true) || raw;\r\n    }\r\n\r\n    /** یک تنظیمِ عددی/فیلدی را به عدد تبدیل می‌کند (ارقامِ فارسی هم). */\r\n    private _numOrNaN(value: string | number | undefined): number {\r\n        if (value == null || value === '') {\r\n            return NaN;\r\n        }\r\n        return toNumberLoose(this._readField(String(value)));\r\n    }\r\n\r\n    private _clampPct(value: number): number {\r\n        return Math.max(0, Math.min(100, Math.round(value)));\r\n    }\r\n\r\n    /** وضعیت را به `GenericTagType` نگاشت می‌کند (کپشنِ enum → فیلد/ثابت → مسیر States). */\r\n    private _resolveTone(): GenericTagType | null {\r\n        const p = this.parameters;\r\n\r\n        const settingCaption = normalizeStatusTone(p['Status$Caption']);\r\n        if (settingCaption) {\r\n            return settingCaption;\r\n        }\r\n\r\n        const raw = this._readField(p.Status);\r\n        const direct = normalizeStatusTone(raw);\r\n        if (direct) {\r\n            return direct;\r\n        }\r\n\r\n        if (p.StatusStates) {\r\n            const stateValue = p.StatusValue ? this._readField(p.StatusValue) : raw;\r\n            const state = resolveColumnValueState<any>(p.StatusStates, stateValue);\r\n            const mapped = normalizeStatusTone(state?.['Status$Caption']);\r\n            if (mapped) {\r\n                return mapped;\r\n            }\r\n        }\r\n\r\n        return null;\r\n    }\r\n\r\n    private _resolveStatusText(): string {\r\n        const p = this.parameters;\r\n        const explicit = this._readField(p.StatusText);\r\n        if (explicit) {\r\n            return explicit;\r\n        }\r\n        if (!this.tone) {\r\n            return '';\r\n        }\r\n        const overrideKey = ProgressListRowComponent.TONE_TEXT_OVERRIDE_KEY[this.tone];\r\n        if (overrideKey && p[overrideKey]) {\r\n            return p[overrideKey];\r\n        }\r\n        return ProgressListRowComponent.DEFAULT_TONE_TEXT[this.tone] ?? '';\r\n    }\r\n}\r\n\r\n/** تنظیماتِ ردیفِ پیشرفت (همه اختیاری؛ نبودِ هرکدام آن بخش را رندر نمی‌کند). */\r\nexport interface ProgressListRowSettings extends MetaobjectDataModel {\r\n    /** عنوانِ ردیف (مثل «کوره ۱») */\r\n    Title?: string;\r\n    /** وضعیت: caption مستقیم (success/warning/error/information) یا مقدارِ عددی + `StatusStates` */\r\n    Status?: string;\r\n    /** متنِ صریحِ وضعیت؛ در نبودش از متنِ پیش‌فرضِ tone */\r\n    StatusText?: string;\r\n    /** نگاشتِ مقدارمحورِ وضعیت وقتی `Status` عددی است */\r\n    StatusStates?: ColumnValueStates<ProgressRowStatusState>;\r\n    /** برچسبِ بالای نوار (پیش‌فرض: «پیشرفت روزانه») */\r\n    ProgressLabel?: string;\r\n    /** مقدارِ فعلی (برای نمایشِ `current/target` و محاسبه‌ی درصد) */\r\n    CurrentValue?: string;\r\n    /** هدف (برای نمایشِ `current/target` و محاسبه‌ی درصد) */\r\n    TargetValue?: string;\r\n    /** درصدِ صریحِ پیشرفت (۰..۱۰۰)؛ اگر داده شود جای محاسبه از current/target می‌نشیند */\r\n    Progress?: string | number;\r\n    /** درصدِ موردانتظار (۰..۱۰۰) برای خطِ مارکر (اختیاری) */\r\n    Expected?: string | number;\r\n    /** متنِ گپ (مثل «۲ تا برنامه عقب است») */\r\n    Gap?: string;\r\n    /** مقدارِ عددیِ گپ برای تعیینِ رنگ (منفی=عقب/قرمز، مثبت=جلو/سبز) */\r\n    GapValue?: string | number;\r\n    /** override متنِ وضعیت به‌ازای هر tone */\r\n    SuccessText?: string;\r\n    WarningText?: string;\r\n    ErrorText?: string;\r\n    InformationText?: string;\r\n}\r\n\r\n/** بسته‌ی وضعیتِ مقدارمحور برای `StatusStates`. */\r\nexport interface ProgressRowStatusState extends ColumnValueState {\r\n    Status?: string | number;\r\n    Status$Caption?: string;\r\n}\r\n","<li\r\n    fd-list-item\r\n    class=\"plr-item\"\r\n    [selected]=\"isChecked\"\r\n    (click)=\"$event.stopPropagation(); onRowCheck()\"\r\n    (dblclick)=\"$event.stopPropagation(); onRowClick()\"\r\n>\r\n    <div class=\"plr-row\" [ngClass]=\"tone ? 'tone-' + tone : ''\">\r\n        <div class=\"plr-title\">\r\n            <div class=\"plr-kiln-title\">{{ title | bbbTranslate }}</div>\r\n            @if (statusText) {\r\n            <div class=\"plr-status-text\">{{ statusText | bbbTranslate }}</div>\r\n            }\r\n        </div>\r\n\r\n        <div class=\"plr-progress\">\r\n            <div class=\"plr-progress-labels\">\r\n                <span class=\"plr-progress-caption\">{{ progressLabel | bbbTranslate }}</span>\r\n                <strong class=\"plr-progress-percent\" dir=\"auto\">{{ progressPct }}٪</strong>\r\n            </div>\r\n            <div class=\"plr-track\">\r\n                @if (expectedPct !== null) {\r\n                <span class=\"plr-marker\" [style.inset-inline-start.%]=\"expectedPct\" aria-hidden=\"true\"></span>\r\n                }\r\n                <div class=\"plr-fill\" [style.width.%]=\"progressPct\"></div>\r\n            </div>\r\n        </div>\r\n\r\n        <div class=\"plr-numbers\">\r\n            @if (ratioText) {\r\n            <div class=\"plr-main\" dir=\"auto\">{{ ratioText }}</div>\r\n            } @if (gapText) {\r\n            <div class=\"plr-gap\" [ngClass]=\"'tone-' + tone\">{{ gapText | bbbTranslate }}</div>\r\n            }\r\n        </div>\r\n    </div>\r\n</li>\r\n","import { Component, OnInit, ChangeDetectionStrategy, Input } from '@angular/core';\r\nimport { GenericTagType } from '@fundamental-ngx/core';\r\nimport { BaseViewItemPropsComponent, MetaobjectDataModel } from 'barsa-novin-ray-core';\r\nimport { ColumnValueState, ColumnValueStates, resolveColumnValueState } from '../column-value-state';\r\nimport { normalizeStatusTone } from '../status-tone';\r\n\r\n/**\r\n * یک ردیفِ لیستیِ وضعیت‌محور به‌سبکِ «اولویت رسیدگی/آلارم» در تمپلیتِ مانیتورینگ (priority-item):\r\n * مربعِ رنگیِ رتبه/آیکن + عنوان + دلیل + مقدارِ رنگی.\r\n *\r\n * به‌عنوان `RowOlgo` روی یک UiListView وصل می‌شود و همه‌ی فیلدها را از `parameters` می‌خواند.\r\n * رنگ‌ها کاملاً از tokenهای semanticِ SAP می‌آیند و وضعیت با `GenericTagType` بیان می‌شود.\r\n */\r\n@Component({\r\n    selector: 'bdc-status-list-row',\r\n    templateUrl: './status-list-row.component.html',\r\n    styleUrls: ['./status-list-row.component.scss'],\r\n    changeDetection: ChangeDetectionStrategy.OnPush,\r\n    standalone: false\r\n})\r\nexport class StatusListRowComponent extends BaseViewItemPropsComponent implements OnInit {\r\n    private static readonly TONE_TEXT_OVERRIDE_KEY: Record<GenericTagType, string> = {\r\n        success: 'SuccessText',\r\n        warning: 'WarningText',\r\n        error: 'ErrorText',\r\n        information: 'InformationText'\r\n    };\r\n\r\n    @Input() parameters: StatusListRowSettings;\r\n\r\n    title: string;\r\n    reason: string;\r\n    value: string;\r\n    icon: string;\r\n    rank: string;\r\n    tone: GenericTagType | null = null;\r\n\r\n    ngOnInit(): void {\r\n        super.ngOnInit();\r\n        const p = this.parameters;\r\n        if (p == null) {\r\n            return;\r\n        }\r\n        this.tone = this._resolveTone();\r\n        this.title = this._readField(p.Title);\r\n        this.reason = this._readField(p.Reason);\r\n        this.icon = p.Icon ?? '';\r\n        this.rank = this._readField(p.Rank);\r\n        this.value = this._resolveValue();\r\n    }\r\n\r\n    /** انتخابِ ردیف (تک‌کلیک) — از مسیرِ `events` به لیست روتر می‌شود. */\r\n    override onRowCheck(onlyCheck?: boolean): void {\r\n        this.events.emit({ title: 'rowCheck', data: { mo: this.mo, index: this.index, onlyCheck } });\r\n    }\r\n\r\n    /** بازکردن (دابل‌کلیک) — از مسیرِ `events` به لیست روتر می‌شود. */\r\n    override onRowClick(): void {\r\n        this.events.emit({ title: 'rowClick', data: { mo: this.mo, index: this.index } });\r\n    }\r\n\r\n    /** مقدار یک فیلد: اول ارجاعِ ستون، وگرنه همان مقدارِ خامِ تنظیم به‌عنوانِ متنِ ثابت. */\r\n    private _readField(value: string | undefined): string {\r\n        const raw = value ?? '';\r\n        return this._reportValuePipe.transform(raw, this.mo, this.allColumns, true) || raw;\r\n    }\r\n\r\n    /** وضعیت را به `GenericTagType` نگاشت می‌کند (کپشنِ enum → فیلد/ثابت → مسیر States). */\r\n    private _resolveTone(): GenericTagType | null {\r\n        const p = this.parameters;\r\n        const settingCaption = normalizeStatusTone(p['Status$Caption']);\r\n        if (settingCaption) {\r\n            return settingCaption;\r\n        }\r\n        const raw = this._readField(p.Status);\r\n        const direct = normalizeStatusTone(raw);\r\n        if (direct) {\r\n            return direct;\r\n        }\r\n        if (p.StatusStates) {\r\n            const state = resolveColumnValueState<any>(p.StatusStates, raw);\r\n            const mapped = normalizeStatusTone(state?.['Status$Caption']);\r\n            if (mapped) {\r\n                return mapped;\r\n            }\r\n        }\r\n        return null;\r\n    }\r\n\r\n    /** متنِ مقدارِ سمت چپ: فیلدِ `Value` صریح، وگرنه متنِ پیش‌فرضِ tone. */\r\n    private _resolveValue(): string {\r\n        const explicit = this._readField(this.parameters.Value);\r\n        if (explicit) {\r\n            return explicit;\r\n        }\r\n        if (!this.tone) {\r\n            return '';\r\n        }\r\n        const overrideKey = StatusListRowComponent.TONE_TEXT_OVERRIDE_KEY[this.tone];\r\n        return (overrideKey && this.parameters[overrideKey]) || '';\r\n    }\r\n}\r\n\r\n/** تنظیماتِ ردیفِ وضعیت (همه اختیاری؛ نبودِ هرکدام آن بخش را رندر نمی‌کند). */\r\nexport interface StatusListRowSettings extends MetaobjectDataModel {\r\n    /** عنوانِ ردیف (مثل نوعِ آلارم) */\r\n    Title?: string;\r\n    /** خطِ دومِ کم‌رنگ (دلیل/توضیح، مثلِ کوره + زمان) */\r\n    Reason?: string;\r\n    /** مقدارِ رنگیِ سمت چپ (مثل گپ یا OFFLINE)؛ در نبودش از متنِ پیش‌فرضِ tone */\r\n    Value?: string;\r\n    /** آیکنِ SAP داخلِ مربعِ رتبه (اگر نبود، `Rank` نمایش داده می‌شود) */\r\n    Icon?: string;\r\n    /** متن/عددِ داخلِ مربع (مثلِ رتبه) */\r\n    Rank?: string;\r\n    /** وضعیت: caption مستقیم (success/warning/error/information) یا مقدارِ عددی + `StatusStates` */\r\n    Status?: string;\r\n    /** نگاشتِ مقدارمحورِ وضعیت وقتی `Status` عددی است */\r\n    StatusStates?: ColumnValueStates<StatusRowState>;\r\n    /** override متنِ مقدار به‌ازای هر tone */\r\n    SuccessText?: string;\r\n    WarningText?: string;\r\n    ErrorText?: string;\r\n    InformationText?: string;\r\n}\r\n\r\n/** بسته‌ی وضعیتِ مقدارمحور برای `StatusStates`. */\r\nexport interface StatusRowState extends ColumnValueState {\r\n    Status?: string | number;\r\n    Status$Caption?: string;\r\n}\r\n\r\n","<li\r\n    fd-list-item\r\n    class=\"slr-item\"\r\n    [selected]=\"isChecked\"\r\n    (click)=\"$event.stopPropagation(); onRowCheck()\"\r\n    (dblclick)=\"$event.stopPropagation(); onRowClick()\"\r\n>\r\n    <div class=\"slr-row\">\r\n        @if (icon || rank) {\r\n        <div class=\"slr-lead\" [ngClass]=\"tone ? 'tone-' + tone : ''\">\r\n            @if (icon) { <fd-icon [glyph]=\"icon\"></fd-icon> } @else { {{ rank }} }\r\n        </div>\r\n        }\r\n\r\n        <div class=\"slr-main\">\r\n            <div class=\"slr-title\">{{ title | bbbTranslate }}</div>\r\n            @if (reason) {\r\n            <div class=\"slr-reason\">{{ reason | bbbTranslate }}</div>\r\n            }\r\n        </div>\r\n\r\n        @if (value) {\r\n        <div class=\"slr-value\" [ngClass]=\"tone ? 'tone-' + tone : ''\" dir=\"auto\">{{ value | bbbTranslate }}</div>\r\n        }\r\n    </div>\r\n</li>\r\n","import { Component, OnInit, ChangeDetectionStrategy, Output, EventEmitter, Input } from '@angular/core';\r\nimport { GenericTagType } from '@fundamental-ngx/core';\r\nimport { CardBaseItemContentPropsComponent, MetaobjectDataModel, UiReportViewBaseSetting } from 'barsa-novin-ray-core';\r\nimport { ColumnValueState, ColumnValueStates, resolveColumnValueState } from '../column-value-state';\r\nimport { normalizeStatusTone } from '../status-tone';\r\n\r\n/**\r\n * هدرِ کارتِ مانیتورینگ: نام + بَجِ وضعیت + امتیازِ `current/target` + خطِ متایِ\r\n * استان/آخرین‌بروزرسانی، به‌همراهِ نوارِ رنگیِ وضعیت در بالای کارت.\r\n *\r\n * وضعیت با تایپِ semanticِ SAP (`GenericTagType`) بیان می‌شود و بَج با کامپوننتِ تم‌محورِ\r\n * `fd-generic-tag` رندر می‌شود تا رنگ‌ها کاملاً از تم بیایند.\r\n *\r\n * اسم پراپرتی‌ها جنرال است (هم‌راستا با کارت‌هدرِ fundamental/ngx) تا هدر برای هر موضوعی\r\n * قابلِ استفاده باشد. همه‌ی فیلدها از `parameters` خودِ هدر خوانده می‌شوند:\r\n * - `Title`           عنوانِ کارت\r\n * - `Status`          فیلدِ وضعیت (مستقیماً یکی از success/warning/error/information، یا مقدارِ عددی + `StatusStates`)\r\n * - `StatusText`      (اختیاری) فیلد/متنِ برچسبِ وضعیت؛ در نبودش از متنِ پیش‌فرضِ tone\r\n * - `Subtitle`        خطِ متایِ اول (زیرِ عنوان)\r\n * - `SubtitleGlyph`   (اختیاری) آیکنِ کنارِ خطِ اول (glyphِ SAP، مثل `map`)\r\n * - `SecondSubtitle`  خطِ متایِ دوم\r\n * - `SecondSubtitleGlyph` (اختیاری) آیکنِ کنارِ خطِ دوم\r\n * - `Counter`         عددِ برجسته/نسبت (مثل «۵۱ / ۷۲»)\r\n * - `CounterLabel`    زیرنویسِ Counter\r\n * - `StatusStates`    (اختیاری) نگاشتِ مقدارمحورِ وضعیت وقتی `Status` عددی است\r\n */\r\n@Component({\r\n    selector: 'bdc-card-header-progress-status',\r\n    templateUrl: './card-header-progress-status.component.html',\r\n    styleUrls: ['./card-header-progress-status.component.scss'],\r\n    changeDetection: ChangeDetectionStrategy.OnPush,\r\n    standalone: false\r\n})\r\nexport class CardHeaderProgressStatusComponent\r\n    extends CardBaseItemContentPropsComponent<UiReportViewBaseSetting>\r\n    implements OnInit\r\n{\r\n    \r\n    /** متنِ پیش‌فرضِ فارسیِ هر tone وقتی `StatusText` ست نشده باشد. */\r\n    private static readonly DEFAULT_TONE_TEXT: Record<GenericTagType, string> = {\r\n        success: 'طبق برنامه',\r\n        warning: 'نیازمند توجه',\r\n        error: 'بحرانی',\r\n        information: 'قطع ارتباط'\r\n    };\r\n\r\n    /** override اختیاریِ متنِ هر tone از طریقِ parameters. */\r\n    private static readonly TONE_TEXT_OVERRIDE_KEY: Record<GenericTagType, string> = {\r\n        success: 'SuccessText',\r\n        warning: 'WarningText',\r\n        error: 'ErrorText',\r\n        information: 'InformationText'\r\n    };\r\n    \r\n    @Output() events = new EventEmitter<{ title: string; data?: any }>();\r\n    @Input() parameters: CardHeaderProgressStatusSettings;\r\n\r\n    title: string;\r\n    titleDbName: string;\r\n    tone: GenericTagType | null = null;\r\n    statusText: string;\r\n    subtitle: string;\r\n    subtitleGlyph: string;\r\n    secondSubtitle: string;\r\n    secondSubtitleGlyph: string;\r\n    counter: string;\r\n    counterLabel: string;\r\n\r\n\r\n    ngOnInit(): void {\r\n        super.ngOnInit();\r\n        const p = this.parameters;\r\n        if (p == null) {\r\n            return;\r\n        }\r\n\r\n        this.titleDbName = this._findColumnPipe.transform(this.allColumns, p.Title ?? '')?.Name || (p.Title ?? '');\r\n        this.title = this._readField(p.Title);\r\n\r\n        this.tone = this._resolveTone();\r\n        this.statusText = this._resolveStatusText();\r\n\r\n        this.subtitle = this._readField(p.Subtitle);\r\n        this.subtitleGlyph = p.SubtitleGlyph ?? '';\r\n        this.secondSubtitle = this._readField(p.SecondSubtitle);\r\n        this.secondSubtitleGlyph = p.SecondSubtitleGlyph ?? '';\r\n        this.counter = this._readField(p.Counter);\r\n        this.counterLabel = p.CounterLabel ?? '';\r\n    }\r\n\r\n    /**\r\n     * مقدار یک فیلد را می‌خواند: اول به‌عنوانِ ارجاعِ ستون (`_rval`)، و اگر ستونی نبود\r\n     * همان مقدارِ خامِ تنظیم به‌عنوانِ متنِ ثابت برگردانده می‌شود.\r\n     */\r\n    private _readField(value: string | undefined): string {\r\n        const raw = value ?? '';\r\n        return this._rval.transform(raw, this.mo, this.allColumns, true) || raw;\r\n    }\r\n\r\n    /** مقدارِ `Status` را به یک `GenericTagType` نگاشت می‌کند (کپشنِ enum → فیلد → مسیر States). */\r\n    private _resolveTone(): GenericTagType | null {\r\n        const p = this.parameters;\r\n\r\n        // مسیر ۱: فیلدِ `Status` خودش enum چندمقداریِ تنظیمات است؛ semantic در `Status$Caption`\r\n        const settingCaption = normalizeStatusTone(p['Status$Caption']);\r\n        if (settingCaption) {\r\n            return settingCaption;\r\n        }\r\n\r\n        // مسیر ۲: `Status` ارجاعِ ستون روی mo (یا مقدارِ ثابت)\r\n        const raw = this._readField(p.Status);\r\n        const direct = normalizeStatusTone(raw);\r\n        if (direct) {\r\n            return direct;\r\n        }\r\n\r\n        // مسیر ۳: نگاشتِ مقدارمحور (عدد/آستانه) با قراردادِ States\r\n        if (p.StatusStates) {\r\n            // مقداری که شرط‌ها روی آن ارزیابی می‌شوند: `StatusValue` (اگر ستونِ گزارش باشد مقدارش،\r\n            // وگرنه همان مقدارِ ثابت)؛ در نبودِ `StatusValue` از خودِ `Status` استفاده می‌شود.\r\n            const stateValue = p.StatusValue ? this._readField(p.StatusValue) : raw;\r\n            const state = resolveColumnValueState<any>(p.StatusStates, stateValue);\r\n            // فیلدِ `Status` در بسته‌ی state چندمقداری است؛ مقدارِ semantic از `Status$Caption` خوانده می‌شود\r\n            const mapped = normalizeStatusTone(state?.['Status$Caption']);\r\n            if (mapped) {\r\n                return mapped;\r\n            }\r\n        }\r\n\r\n        return null;\r\n    }\r\n\r\n    /** متنِ برچسبِ وضعیت: فیلدِ صریح → override tone → متنِ پیش‌فرضِ tone. */\r\n    private _resolveStatusText(): string {\r\n        const p = this.parameters;\r\n        const explicit = this._readField(p.StatusText);\r\n        if (explicit) {\r\n            return explicit;\r\n        }\r\n        if (!this.tone) {\r\n            return '';\r\n        }\r\n        const overrideKey = CardHeaderProgressStatusComponent.TONE_TEXT_OVERRIDE_KEY[this.tone];\r\n        if (overrideKey && p[overrideKey]) {\r\n            return p[overrideKey];\r\n        }\r\n        return CardHeaderProgressStatusComponent.DEFAULT_TONE_TEXT[this.tone] ?? '';\r\n    }\r\n}\r\n\r\n/** تنظیماتِ هدرِ کارت (همه اختیاری؛ نبودِ هرکدام آن بخش را رندر نمی‌کند). */\r\nexport interface CardHeaderProgressStatusSettings extends MetaobjectDataModel {\r\n    /** فیلد/عنوانِ کارت */\r\n    Title?: string;\r\n    /** فیلدِ وضعیت: caption مستقیم (success/warning/error/information) یا مقدارِ عددی + `StatusStates` */\r\n    Status?: string;\r\n    /** فیلد/متنِ صریحِ برچسبِ وضعیت */\r\n    StatusText?: string;\r\n    /** نگاشتِ مقدارمحورِ وضعیت وقتی `Status` عددی است */\r\n    StatusStates?: ColumnValueStates<CardHeaderStatusState>;\r\n    /** فیلد/مقداری که شرط‌های `StatusStates` روی آن ارزیابی می‌شوند؛ در نبودش از `Status` استفاده می‌شود */\r\n    StatusValue?: string;\r\n    /** خطِ متایِ اول (زیرِ عنوان) */\r\n    Subtitle?: string;\r\n    /** آیکنِ SAP کنارِ خطِ اول (مثل `map`) */\r\n    SubtitleGlyph?: string;\r\n    /** خطِ متایِ دوم */\r\n    SecondSubtitle?: string;\r\n    /** آیکنِ SAP کنارِ خطِ دوم */\r\n    SecondSubtitleGlyph?: string;\r\n    /** عددِ برجسته/نسبت (مثل «۵۱ / ۷۲») */\r\n    Counter?: string;\r\n    /** زیرنویسِ Counter */\r\n    CounterLabel?: string;\r\n    /** override متنِ بَج به‌ازای هر tone */\r\n    SuccessText?: string;\r\n    WarningText?: string;\r\n    ErrorText?: string;\r\n    InformationText?: string;\r\n}\r\n\r\n/** یک بسته‌ی وضعیتِ مقدارمحور برای `StatusStates`. */\r\nexport interface CardHeaderStatusState extends ColumnValueState {\r\n    /** enum چندمقداریِ وضعیت (positive/negative/…)؛ مقدارِ semantic از `Status$Caption` خوانده می‌شود */\r\n    Status?: string | number;\r\n    'Status$Caption'?: string;\r\n}\r\n","<fd-card-header\r\n    [ngClass]=\"'type-' + tone\"\r\n    [class.progress-header--compact]=\"deviceSize === 's'\"\r\n    class=\"progress-header\"\r\n    (click)=\"!isCheckList && events.emit({ title: 'rowCheck' })\"\r\n>\r\n    <fd-card-main-header>\r\n        <div class=\"progress-header__row\">\r\n            <div class=\"progress-header__main\">\r\n                <div class=\"progress-header__name-row\">\r\n                    @if (isCheckList) {\r\n                    <fd-checkbox\r\n                        [name]=\"mo.$Caption\"\r\n                        [ngModel]=\"isChecked\"\r\n                        (ngModelChange)=\"events.emit({ title: 'rowCheck' })\"\r\n                    ></fd-checkbox>\r\n                    }\r\n                    <h2\r\n                        #hEl\r\n                        class=\"fd-card__title progress-header__name\"\r\n                        [hostEl]=\"hEl\"\r\n                        [styleIndex]=\"styleIndex\"\r\n                        [dbName]=\"titleDbName\"\r\n                        [applyConditionalFormats]=\"conditionalFormats\"\r\n                    >\r\n                        {{ title | bbbTranslate }}\r\n                    </h2>\r\n                    @if (tone) {\r\n                    <div\r\n                        fd-generic-tag\r\n                        class=\"progress-header__badge\"\r\n                        [type]=\"tone\"\r\n                        [name]=\"''\"\r\n                        [value]=\"statusText | bbbTranslate\"\r\n                    ></div>\r\n                    }\r\n                </div>\r\n                @if (subtitle || secondSubtitle) {\r\n                <div class=\"progress-header__meta\">\r\n                    @if (subtitle) {\r\n                    <span class=\"progress-header__meta-item\">\r\n                        @if (subtitleGlyph) { <fd-icon [glyph]=\"subtitleGlyph\"></fd-icon> }{{ subtitle | bbbTranslate }}\r\n                    </span>\r\n                    } @if (secondSubtitle) {\r\n                    <span class=\"progress-header__meta-item\">\r\n                        @if (secondSubtitleGlyph) { <fd-icon [glyph]=\"secondSubtitleGlyph\"></fd-icon> }{{\r\n                            secondSubtitle | bbbTranslate\r\n                        }}\r\n                    </span>\r\n                    }\r\n                </div>\r\n                }\r\n            </div>\r\n\r\n            @if (counter) {\r\n            <div class=\"progress-header__counter\">\r\n                <div class=\"progress-header__counter-value\" dir=\"auto\">{{ counter }}</div>\r\n                @if (counterLabel) {\r\n                <div class=\"progress-header__counter-caption\">{{ counterLabel | bbbTranslate }}</div>\r\n                }\r\n            </div>\r\n            } @if (!setting.ContextMenuInFooter && contextMenuItems && contextMenuItems.length > 0) {\r\n            <div\r\n                ulvContextMenu\r\n                fd-card-header-action\r\n                [allColumns]=\"allColumns\"\r\n                [menuItems]=\"contextMenuItems\"\r\n                [conditionalFormats]=\"conditionalFormats\"\r\n                [disableOverflowContextMenu]=\"disableOverflowContextMenu\"\r\n                [styleIndex]=\"styleIndex\"\r\n                [mo]=\"mo\"\r\n                (commandClick)=\"events.emit({ title: 'ulvCommand' })\"\r\n                (overflowClick)=\"events.emit({ title: 'rowCheck' })\"\r\n            ></div>\r\n            } @if (canView) {\r\n            <button\r\n                fd-button\r\n                class=\"progress-header__view\"\r\n                (click)=\"$event.preventDefault(); $event.stopPropagation(); events.emit({ title: 'rowClick' })\"\r\n                [glyph]=\"navigationArrow\"\r\n                fdType=\"transparent\"\r\n            ></button>\r\n            }\r\n        </div>\r\n    </fd-card-main-header>\r\n</fd-card-header>\r\n","import { Component, OnInit, ChangeDetectionStrategy } from '@angular/core';\r\nimport { BarsaApi, BaseItemContentPropsComponent, UiReportViewBaseSetting } from 'barsa-novin-ray-core';\r\n\r\n@Component({\r\n    selector: 'bdc-card-content-line-chart',\r\n    templateUrl: './card-content-line-chart.component.html',\r\n    styleUrls: ['./card-content-line-chart.component.scss'],\r\n    changeDetection: ChangeDetectionStrategy.OnPush,\r\n    standalone: false\r\n})\r\nexport class CardContentLineChartComponent\r\n    extends BaseItemContentPropsComponent<UiReportViewBaseSetting>\r\n    implements OnInit\r\n{\r\n    chartOption: any;\r\n\r\n    ngOnInit(): void {\r\n        super.ngOnInit();\r\n        const parameters = this.parameters;\r\n        const { MethodParametersFieldName, RunBlMethodName } = parameters;\r\n        const methodParameters: any = [];\r\n        MethodParametersFieldName.split(',').forEach((c) => {\r\n            const value = this.mo[c];\r\n            if (typeof value === 'object' && value.Id) {\r\n                methodParameters.push(value.Id);\r\n            } else {\r\n                methodParameters.push(value);\r\n            }\r\n        });\r\n        BarsaApi.Bw.RunBlMethodAsync({\r\n            Parameters: methodParameters,\r\n            Method: RunBlMethodName,\r\n            SuccessFn: (chartOption: string) => {\r\n                this.chartOption = JSON.parse(chartOption);\r\n                this._cdr.detectChanges();\r\n            },\r\n            FailFn: () => {}\r\n        });\r\n    }\r\n}\r\n","@if (chartOption) {\r\n<div class=\"card-content\" #elemRef>\r\n    <div beChartLineTime [chartOption]=\"chartOption\"></div>\r\n</div>\r\n}\r\n","import { Component, OnInit, ChangeDetectionStrategy } from '@angular/core';\r\nimport { BarsaApi, FormPropsBaseComponent } from 'barsa-novin-ray-core';\r\n\r\n@Component({\r\n    selector: 'bdc-form-chart-content',\r\n    templateUrl: './form-chart-content.component.html',\r\n    styleUrls: ['./form-chart-content.component.scss'],\r\n    changeDetection: ChangeDetectionStrategy.OnPush,\r\n    standalone: false\r\n})\r\nexport class FormChartContentComponent extends FormPropsBaseComponent implements OnInit {\r\n    chartOption: any;\r\n\r\n    ngOnInit(): void {\r\n        super.ngOnInit();\r\n        const settings = this.settings;\r\n        const { MethodParametersFieldName, RunBlMethodName } = settings;\r\n        const methodParameters: any = [];\r\n        MethodParametersFieldName.split(',').forEach((c) => {\r\n            const value = this.mo[c];\r\n            if (typeof value === 'object' && value.Id) {\r\n                methodParameters.push(value.Id);\r\n            } else {\r\n                methodParameters.push(value);\r\n            }\r\n        });\r\n        BarsaApi.Bw.RunBlMethodAsync({\r\n            Parameters: methodParameters,\r\n            Method: RunBlMethodName,\r\n            SuccessFn: (chartOption: string) => {\r\n                this.chartOption = JSON.parse(chartOption);\r\n                this._cdr.detectChanges();\r\n            },\r\n            FailFn: () => {}\r\n        });\r\n    }\r\n}\r\n","@if (chartOption) {\r\n<div beChartLineTime [chartOption]=\"chartOption\"></div>\r\n}\r\n","import { Component, ChangeDetectionStrategy } from '@angular/core';\r\nimport { ReportViewBaseComponent, UiReportViewBaseSetting } from 'barsa-novin-ray-core';\r\n\r\n@Component({\r\n    selector: 'bdc-table-view-vertical-columns',\r\n    templateUrl: './table-view-vertical-columns.component.html',\r\n    styleUrls: ['./table-view-vertical-columns.component.scss'],\r\n    changeDetection: ChangeDetectionStrategy.OnPush,\r\n    standalone: false\r\n})\r\nexport class TableViewVerticalColumnsComponent extends ReportViewBaseComponent<UiReportViewBaseSetting> {}\r\n","@for (mo of moDataList | multipleGroupBy: groupby; track mo; let index = $index) { @if (mo.$Group) {\r\n<h3>{{ mo.$Group }}</h3>\r\n<ng-container *ngTemplateOutlet=\"tplTable; context: { $implicit: mo.$Children, index: index }\"></ng-container>\r\n} }\r\n<ng-template #tplTable let-children let-index=\"index\">\r\n    <table fd-table [style.margin-top]=\"index > 0 ? '2rem' : 0\">\r\n        <tbody fd-table-body>\r\n            @for (column of columns; track column) {\r\n            <tr fd-table-row>\r\n                <th fd-table-cell>\r\n                    <strong>{{ column.Alias }}:</strong>\r\n                </th>\r\n                @for (mo of children; track mo; let index = $index) {\r\n                <td\r\n                    fd-table-cell\r\n                    #tdEl\r\n                    [applyConditionalFormats]=\"conditionalFormats\"\r\n                    [hostEl]=\"tdEl\"\r\n                    [styleIndex]=\"mo.$StyleIndex\"\r\n                    [dbName]=\"column.Name\"\r\n                >\r\n                    <bsu-column-renderer\r\n                        [mo]=\"mo\"\r\n                        [column]=\"column\"\r\n                        [value]=\"column | columnValue: mo | bbbTranslate\"\r\n                        [icon]=\"column | columnIcon: mo\"\r\n                        [editMode]=\"false\"\r\n                        [isChecked]=\"false\"\r\n                        [isNewInlineMo]=\"false\"\r\n                        [index]=\"index\"\r\n                        [rtl]=\"rtl\"\r\n                        [deviceName]=\"deviceName\"\r\n                        [formLayoutShowLabel]=\"false\"\r\n                        [deviceSize]=\"deviceSize\"\r\n                    ></bsu-column-renderer>\r\n                </td>\r\n                }\r\n            </tr>\r\n            }\r\n        </tbody>\r\n    </table>\r\n</ng-template>\r\n","import { Component, OnInit, ChangeDetectionStrategy } from '@angular/core';\r\nimport { FieldBaseComponent } from 'barsa-novin-ray-core';\r\n\r\n@Component({\r\n    selector: 'bdc-query-string-observable',\r\n    templateUrl: './query-string-observable.component.html',\r\n    styleUrls: ['./query-string-observable.component.scss'],\r\n    changeDetection: ChangeDetectionStrategy.OnPush,\r\n    standalone: false\r\n})\r\nexport class QueryStringObservableComponent extends FieldBaseComponent implements OnInit {\r\n    caption: string;\r\n\r\n    ngOnInit(): void {\r\n        super.ngOnInit();\r\n        this._activatedRoute.queryParams.subscribe((queryParams) => {\r\n            const value = queryParams[this.Setting.ControlName];\r\n            if (value) {\r\n                this.value = value;\r\n                this.valueChange.emit(this.value);\r\n            }\r\n        });\r\n    }\r\n}\r\n","","import { Component, OnInit, ChangeDetectionStrategy, inject } from '@angular/core';\r\nimport { ActivatedRoute, Params, Router } from '@angular/router';\r\nimport { BarsaApi, BaseComponent, PortalService } from 'barsa-novin-ray-core';\r\nimport { takeUntil } from 'rxjs';\r\n\r\n@Component({\r\n    selector: 'bdc-query-string-form-observable',\r\n    templateUrl: './query-string-form-observable.component.html',\r\n    styleUrls: ['./query-string-form-observable.component.scss'],\r\n    changeDetection: ChangeDetectionStrategy.OnPush,\r\n    standalone: false\r\n})\r\nexport class QueryStringFormObservableComponent extends BaseComponent implements OnInit {\r\n    private _activatedRoute = inject(ActivatedRoute);\r\n    private _router = inject(Router);\r\n    private _portalService = inject(PortalService);\r\n\r\n    /** Inserted by Angular inject() migration for backwards compatibility */\r\n    \r\n\r\n    constructor() {\r\n        super();\r\n    }\r\n\r\n    ngOnInit(): void {\r\n        super.ngOnInit();\r\n        this._portalService.navigationEnd$.pipe(takeUntil(this._onDestroy$)).subscribe((event) => {\r\n            if (event?.url.endsWith('/query')) {\r\n                this._router.navigate(['../']);\r\n            }\r\n        });\r\n        const params: Params = this._activatedRoute.snapshot.queryParams;\r\n\r\n        const strActionList = params['actionList'];\r\n        if (strActionList) {\r\n            const actionList: Array<ActionListModel> = JSON.parse(strActionList.replaceAll(\"'\", '\"'));\r\n            if (actionList) {\r\n                BarsaApi.Ul.WorkflowPanelCtrlr.RunWorkflowActionList(actionList, null);\r\n            }\r\n        }\r\n    }\r\n}\r\ninterface ActionListModel {\r\n    ActionType: string;\r\n    ActivityRunId: string;\r\n    MoId: string;\r\n    OpenByWorkflow: string;\r\n    TypeDefId: string;\r\n    ViewId?:string;\r\n    ReportId?:string;\r\n}\r\n","","import { Component, OnInit, ChangeDetectionStrategy, ViewContainerRef, ViewChild } from '@angular/core';\r\nimport { BaseItemContentPropsComponent, UiReportViewBaseSetting } from 'barsa-novin-ray-core';\r\n\r\n@Component({\r\n    selector: 'bdc-g4b-details',\r\n    templateUrl: './g4b-details.component.html',\r\n    styleUrls: ['./g4b-details.component.scss'],\r\n    changeDetection: ChangeDetectionStrategy.OnPush,\r\n    standalone: false\r\n})\r\nexport class G4bDetailsComponent extends BaseItemContentPropsComponent<UiReportViewBaseSetting> implements OnInit {\r\n    @ViewChild('container', { static: true, read: ViewContainerRef }) _containerRef: ViewContainerRef;\r\n    ngOnInit(): void {\r\n        super.ngOnInit();\r\n        this._containerRef.createEmbeddedView(this.setting.$detailsFormItems, {\r\n            $implicit: this.setting.$detailsColumns,\r\n            mo: this.mo,\r\n            inlineEditMode: this.inlineEditMode,\r\n            isNewInlineMo: this.isNewInlineMo,\r\n            layout94: this.layout94$\r\n        });\r\n    }\r\n}\r\n","<div #container></div>\r\n<!-- <fd-info-label [label]=\"'وضعیت درخواست'\" [color]=\"'1'\" [title]=\"'وضعیت درخواست'\"></fd-info-label> -->\r\n<div fd-form-item class=\"status-wrapper\" style=\"width: 100%; padding-bottom: 1rem\" [attr.deviceSize]=\"deviceSize\">\r\n    <label fd-form-label>وضعیت درخواست </label>\r\n    <fd-micro-process-flow class=\"flow\">\r\n        <fd-micro-process-flow-item [state]=\"'positive'\">\r\n            <div class=\"flow-item\">\r\n                <!-- <fd-micro-process-flow-icon\r\n                    fd-micro-process-flow-focusable-item\r\n                    [glyph]=\"'accept'\"\r\n                ></fd-micro-process-flow-icon> -->\r\n                <!-- <h4 fd-title class=\"fd-object-number--informative\">شروع درخواست</h4> -->\r\n                <button\r\n                    style=\"pointer-events: none; border: none\"\r\n                    fd-button\r\n                    [fdType]=\"'positive'\"\r\n                    [label]=\"'شروع درخواست'\"\r\n                    [glyph]=\"'accept'\"\r\n                ></button>\r\n            </div>\r\n        </fd-micro-process-flow-item>\r\n        <fd-micro-process-flow-item>\r\n            <div class=\"flow-item\">\r\n                <button fd-button [fdType]=\"'standard'\" [label]=\"'تکمیل مدارک توسط متقاضی'\" [glyph]=\"''\"></button>\r\n            </div>\r\n        </fd-micro-process-flow-item>\r\n        <fd-micro-process-flow-item>\r\n            <div class=\"flow-item\">\r\n                <!-- <fd-micro-process-flow-icon\r\n                    fd-micro-process-flow-focusable-item\r\n                    [glyph]=\"'less'\"\r\n                ></fd-micro-process-flow-icon> -->\r\n                <button\r\n                    [disabled]=\"true\"\r\n                    fd-button\r\n                    [fdType]=\"'transparent'\"\r\n                    [label]=\"'تایید مدارک توسط دستگاه مربوطه'\"\r\n                    [glyph]=\"''\"\r\n                ></button>\r\n            </div>\r\n        </fd-micro-process-flow-item>\r\n        <fd-micro-process-flow-item>\r\n            <div class=\"flow-item\">\r\n                <!-- <fd-micro-process-flow-icon\r\n                    fd-micro-process-flow-focusable-item\r\n                    [glyph]=\"'less'\"\r\n                ></fd-micro-process-flow-icon> -->\r\n                <button\r\n                    [disabled]=\"true\"\r\n                    fd-button\r\n                    [fdType]=\"'transparent'\"\r\n                    [label]=\"'تعیین وضعیت صدور مجوز'\"\r\n                    [glyph]=\"''\"\r\n                ></button>\r\n            </div>\r\n        </fd-micro-process-flow-item>\r\n    </fd-micro-process-flow>\r\n</div>\r\n","import { Component, OnInit, ChangeDetectionStrategy, SimpleChanges } from '@angular/core';\r\nimport { BaseItemContentPropsComponent, UiReportViewBaseSetting, MetaobjectDataModel } from 'barsa-novin-ray-core';\r\n\r\n@Component({\r\n    selector: 'bdc-avatar',\r\n    templateUrl: './avatar.component.html',\r\n    styleUrls: ['./avatar.component.scss'],\r\n    changeDetection: ChangeDetectionStrategy.OnPush,\r\n    standalone: false\r\n})\r\nexport class AvatarComponent extends BaseItemContentPropsComponent<UiReportViewBaseSetting> implements OnInit {\r\n    pictureId: string;\r\n    subtitle: string;\r\n    status: number;\r\n    ngOnInit(): void {\r\n        super.ngOnInit();\r\n        this._setProps(this.mo);\r\n    }\r\n    ngOnChanges(changes: SimpleChanges): void {\r\n        const { mo } = changes;\r\n        if (mo && !mo.firstChange) {\r\n            this._setProps(mo.currentValue);\r\n\r\n            this._cdr.detectChanges();\r\n        }\r\n    }\r\n    protected _setProps(_mo: MetaobjectDataModel): void {\r\n        this.pictureId = this.mo[this.parameters.FieldName]?.FileId;\r\n\r\n        this.status = this.mo[this.parameters.IsOnline];        \r\n    }\r\n}\r\n","@if(mo){\r\n<fd-card>\r\n    <fd-card-header>\r\n        <fd-card-main-header>\r\n            <fd-avatar\r\n                [placeholder]=\"!mo[parameters?.FieldName]\"\r\n                [size]=\"deviceSize === 'l' || deviceSize === 'xl' ? 's' : 'xs'\"\r\n                [glyph]=\"parameters?.DefaultIcon || null\"\r\n                [circle]=\"parameters?.Circle\"\r\n                [placeHolder]=\"parameters?.DefaultIcon!!\"\r\n                [image]=\"pictureId ? (pictureId | picFieldSrc: 'PictureFileInfo':mo.Id:column.FieldDefId) : null\"\r\n                alterIcon=\"alt|content|backup|default-icon\"\r\n            ></fd-avatar>\r\n            <h2 fd-card-title nowraptext width=\"90%\">\r\n                {{\r\n                    !parameters?.Title\r\n                        ? ''\r\n                        : (parameters?.Title | val: mo:true | bbbTranslate)\r\n                }}\r\n            </h2>\r\n            <h3 fd-card-subtitle nowraptext>\r\n                {{ !parameters?.Subtitle ? '' : (parameters.Subtitle | val: mo:true | bbbTranslate) }}\r\n            </h3>\r\n            @if(status){\r\n            <div\r\n                class=\"tw-absolute tw-bottom-0 tw-right-0 tw-border-2 tw-border-default tw-size-4 tw-rounded-full\"\r\n                [class.tw-bg-green-600]=\"status\"\r\n            ></div>\r\n            }\r\n        </fd-card-main-header>\r\n    </fd-card-header>\r\n</fd-card>\r\n}\r\n","import { Component, OnInit, ChangeDetectionStrategy } from '@angular/core';\r\nimport { BaseItemContentPropsComponent, UiReportViewBaseSetting } from 'barsa-novin-ray-core';\r\n\r\n@Component({\r\n    selector: 'bdc-g4b-estelam',\r\n    templateUrl: './g4b-estelam.component.html',\r\n    styleUrls: ['./g4b-estelam.component.scss'],\r\n    changeDetection: ChangeDetectionStrategy.OnPush,\r\n    standalone: false\r\n})\r\nexport class G4bEstelamComponent extends BaseItemContentPropsComponent<UiReportViewBaseSetting> implements OnInit {\r\n    natijeh = 1;\r\n    options = ['رد استعلام', 'تایید استعلام', 'در انتظار پاسخ'];\r\n    ngOnInit(): void {\r\n        super.ngOnInit();\r\n    }\r\n    onClick(e): void {\r\n        if (this.isChecked) {\r\n            e.stopPropagation();\r\n            e.preventDefault();\r\n        }\r\n    }\r\n}\r\n","<div fd-form-item class=\"textarea\">\r\n    <label fd-form-label for=\"input-2\">پاسخ استعلام</label>\r\n    <textarea fd-form-control style=\"height: 1.8rem\"></textarea>\r\n</div>\r\n\r\n<div fd-form-item>\r\n    <label fd-form-label for=\"input-2\">وضعیت</label>\r\n    <fd-segmented-button [(ngModel)]=\"natijeh\" (click)=\"onClick($event)\">\r\n        <button fd-button [label]=\"'در انتظار پاسخ'\" value=\"1\" [fdType]=\"'standard'\"></button>\r\n        <button fd-button [label]=\"'تایید استعلام'\" value=\"2\" [fdType]=\"'positive'\"></button>\r\n        <button fd-button [label]=\"'رد استعلام'\" value=\"3\" [fdType]=\"'negative'\"></button>\r\n    </fd-segmented-button>\r\n</div>\r\n<!-- <div fd-form-item>\r\n    <label fd-form-label for=\"input-2\">وضعیت</label>\r\n    <fd-select placeholder=\"Select value\" stateMessage=\"Success message\" state=\"success\">\r\n        <li fd-option *ngFor=\"let option of options\" [value]=\"option\">{{ option }}</li>\r\n    </fd-select>\r\n</div> -->\r\n","import { Component, OnInit, ChangeDetectionStrategy, inject } from '@angular/core';\r\nimport { DateService, FieldBaseComponent, getDateService, LogService } from 'barsa-novin-ray-core';\r\n\r\n@Component({\r\n    selector: 'bdc-timer-count-down',\r\n    templateUrl: './timer-count-down.component.html',\r\n    styleUrls: ['./timer-count-down.component.scss'],\r\n    changeDetection: ChangeDetectionStrategy.OnPush,\r\n    providers: [\r\n        {\r\n            provide: DateService,\r\n            useFactory: getDateService,\r\n            deps: [LogService]\r\n        }\r\n    ],\r\n    standalone: false\r\n})\r\nexport class TimerCountDownComponent extends FieldBaseComponent implements OnInit {\r\n    countDownText: string;\r\n    _interval: any;\r\n    protected override _dateService = inject(DateService, { self: true });\r\n\r\n    ngOnInit(): void {\r\n        super.ngOnInit();\r\n        this._setCountDown(this.value);\r\n    }\r\n    ngOnDestroy(): void {\r\n        super.ngOnDestroy();\r\n        if (this._interval) {\r\n            clearInterval(this._interval);\r\n        }\r\n    }\r\n    protected _setValue(value: any): void {\r\n        super._setValue(value);\r\n        this._setCountDown(value);\r\n    }\r\n    protected _setCountDown(value: string | Date | any): void {\r\n        const keysInValue = Object.keys(value);\r\n        let _tempValue = value;\r\n        if (keysInValue.length) {\r\n            const findKeyDate = keysInValue.find((c) => !isNaN(Date.parse(value[c])));\r\n            if (findKeyDate) {\r\n                _tempValue = new Date(value[findKeyDate]);\r\n            }\r\n        }\r\n        const exp = this._dateService.getMoment(_tempValue);\r\n        if (this._interval) {\r\n            clearInterval(this._interval);\r\n            this._interval = null;\r\n        }\r\n        this._interval = setInterval((): void => {\r\n            const now = this._dateService.getMoment(new Date());\r\n            const diffDuration = this._dateService.duration(exp.diff(now));\r\n            const month = diffDuration.months();\r\n            const days = diffDuration.days();\r\n            const hours = diffDuration.hours().toLocaleString('en-US', {\r\n                minimumIntegerDigits: 2,\r\n                useGrouping: false\r\n            });\r\n            const minutes = diffDuration.minutes().toLocaleString('en-US', {\r\n                minimumIntegerDigits: 2,\r\n                useGrouping: false\r\n            });\r\n            const seconds = diffDuration.seconds().toLocaleString('en-US', {\r\n                minimumIntegerDigits: 2,\r\n                useGrouping: false\r\n            });\r\n            this.countDownText = `\r\n            ${this._getMonthText(month)} \r\n            ${this._daysText(days)} \r\n            ${this._getTimeText(hours, minutes, seconds)}`;\r\n            this._cdr.detectChanges();\r\n        }, 1000);\r\n    }\r\n    private _getMonthText(month): string {\r\n        return month > 0 ? `${month} ماه` : '';\r\n    }\r\n    private _daysText(days): string {\r\n        return days > 0 ? `${days} روز` : '';\r\n    }\r\n    private _getTimeText(hours, minutes, seconds): string {\r\n        if (hours < 0 || minutes < 0 || seconds < 0) {\r\n            if (this.parameters?.ExpireViewMode) {\r\n                switch (this.parameters.ExpireViewMode) {\r\n                    case 1:\r\n                        return `00:00:00`;\r\n                        break;\r\n                    case 2:\r\n                        return `پایان یافته`;\r\n                        break;\r\n                    case 3:\r\n                        return '';\r\n                        break;\r\n                    case 4: // نمایش زمان گذشته\r\n                        return `${hours}:${minutes}:${seconds}`;\r\n                        break;\r\n                }\r\n            }\r\n            return `00:00:00`;\r\n        }\r\n        return `${hours}:${minutes}:${seconds}`;\r\n    }\r\n}\r\n","<span>{{ countDownText }}</span>\r\n","import { Component, ChangeDetectionStrategy, Input, Output, EventEmitter, SimpleChanges, OnInit } from '@angular/core';\r\nimport { BaseComponent } from 'barsa-novin-ray-core';\r\n\r\n@Component({\r\n    selector: 'bdc-micro-proccess-flow',\r\n    templateUrl: './micro-proccess-flow.component.html',\r\n    styleUrls: ['./micro-proccess-flow.component.scss'],\r\n    changeDetection: ChangeDetectionStrategy.OnPush,\r\n    standalone: false\r\n})\r\nexport class MicroProccessFlowComponent extends BaseComponent implements OnInit {\r\n    @Input() items: Array<FlowItem>;\r\n    @Input() selected: string;\r\n    @Input() readonly: boolean;\r\n    @Input() idIskey: boolean;\r\n    @Output() selectedChange = new EventEmitter<FlowItem>();\r\n    selectedIndex: number;\r\n    maxWidth: number;\r\n\r\n    ngOnInit(): void {\r\n        super.ngOnInit();\r\n        this._setIndex(this.selected, this.items);\r\n        this.maxWidth = (this._el.nativeElement as HTMLElement).offsetWidth;\r\n    }\r\n    onItemClick(item: FlowItem): void {\r\n        this.selectedChange.emit(item);\r\n    }\r\n    ngOnChanges(changes: SimpleChanges): void {\r\n        const { selected, items } = changes;\r\n        if (selected && !selected.firstChange) {\r\n            this._setIndex(selected.currentValue, this.items);\r\n        } else if (items && !items.firstChange) {\r\n            this._setIndex(this.selected, items.currentValue);\r\n        }\r\n    }\r\n    protected _setIndex(val: string, items: FlowItem[]): void {\r\n        this.selectedIndex = items.findIndex((c) => (this.idIskey ? c.id === val : c.label === val));\r\n    }\r\n}\r\nexport interface FlowItem {\r\n    id: string;\r\n    label: string;\r\n    icon: string;\r\n}\r\n","<fd-micro-process-flow class=\"flow\" [style.max-width.px]=\"maxWidth\">\r\n    @for (item of items; track item; let i = $index) {\r\n    <fd-micro-process-flow-item [state]=\"i <= selectedIndex ? 'positive' : 'none'\">\r\n        <div class=\"flow-item\">\r\n            @if (selectedIndex > -1) {\r\n            <button\r\n                [class.reached]=\"i <= selectedIndex\"\r\n                fd-button\r\n                [fdType]=\"i <= selectedIndex ? 'positive' : i === selectedIndex + 1 ? 'standard' : 'transparent'\"\r\n                [label]=\"item.label\"\r\n                [glyph]=\"i <= selectedIndex ? 'accept' : null\"\r\n                [disabled]=\"readonly || (i > selectedIndex + 1 && selectedIndex > -1)\"\r\n                (click)=\"onItemClick(item)\"\r\n            ></button>\r\n            } @if (selectedIndex === -1) {\r\n            <button\r\n                [class.reached]=\"false\"\r\n                fd-button\r\n                [fdType]=\"'transparent'\"\r\n                [label]=\"item.label\"\r\n                [glyph]=\"null\"\r\n                [disabled]=\"readonly\"\r\n                (click)=\"onItemClick(item)\"\r\n            ></button>\r\n            }\r\n        </div>\r\n    </fd-micro-process-flow-item>\r\n    }\r\n</fd-micro-process-flow>\r\n","import { PipeTransform, Pipe } from '@angular/core';\r\nimport { MetaobjectDataModel } from 'barsa-novin-ray-core';\r\nimport { FlowItem } from '../micro-proccess-flow/micro-proccess-flow.component';\r\n\r\n@Pipe({\r\n    name: 'moListToFlowItem',\r\n    standalone: false\r\n})\r\nexport class MoListToFlowItemPipe implements PipeTransform {\r\n    constructor() {}\r\n    transform(moList: MetaobjectDataModel[]): FlowItem[] {\r\n        const flowItems: FlowItem[] = moList.map((item: MetaobjectDataModel) => ({\r\n            icon: '',\r\n            id: item.Id,\r\n            label: item.$Caption\r\n        }));\r\n        return flowItems;\r\n    }\r\n}\r\n","import { Component, ChangeDetectionStrategy } from '@angular/core';\r\nimport { UiMoInfoUlvComboComponent } from 'barsa-sap-ui';\r\nimport { FlowItem } from '../micro-proccess-flow/micro-proccess-flow.component';\r\n\r\n@Component({\r\n    selector: 'bdc-mo-info-micro-proccess-flow',\r\n    templateUrl: './mo-info-micro-proccess-flow.component.html',\r\n    styleUrls: ['./mo-info-micro-proccess-flow.component.scss'],\r\n    changeDetection: ChangeDetectionStrategy.OnPush,\r\n    standalone: false\r\n})\r\nexport class MoInfoMicroProccessFlowComponent extends UiMoInfoUlvComboComponent {\r\n    ngOnInit(): void {\r\n        super.ngOnInit();\r\n        this._triggerClick('Normal');\r\n    }\r\n    onSelectedChange(item: FlowItem): void {\r\n        this._raiseValueChanged(item.label);\r\n    }\r\n}\r\n","<bdc-micro-proccess-flow\r\n    [items]=\"\r\n        (loading$ | async) === true\r\n            | moInfoUlvMoList\r\n                : isDataLoadedFirstTime\r\n                : ulvAdapter?.Setting?.Data?.MoDataList\r\n                : UlvUi?.Setting?.Data?.MoDataList\r\n                : ulvAdapter?.Setting?.Data?.Paging\r\n                : UlvUi?.Setting?.Data?.Paging\r\n            | moListToFlowItem\r\n    \"\r\n    [selected]=\"value\"\r\n    (selectedChange)=\"onSelectedChange($event)\"\r\n></bdc-micro-proccess-flow>\r\n","import { PipeTransform, Pipe } from '@angular/core';\r\nimport { RowDataOption } from 'barsa-novin-ray-core';\r\nimport { FlowItem } from '../micro-proccess-flow/micro-proccess-flow.component';\r\n\r\n@Pipe({\r\n    name: 'datasourceToFlowItem',\r\n    standalone: false\r\n})\r\nexport class DataSourceToFlowItemPipe implements PipeTransform {\r\n    constructor() {}\r\n    transform(datasource: RowDataOption[]): FlowItem[] {\r\n        const flowItems: FlowItem[] = datasource.map((item: RowDataOption) => ({\r\n            icon: '',\r\n            id: item.id,\r\n            label: item.txt\r\n        }));\r\n        return flowItems;\r\n    }\r\n}\r\n","import { Component, ChangeDetectionStrategy } from '@angular/core';\r\nimport { UiSimpleComboComponent } from 'barsa-sap-ui';\r\nimport { FlowItem } from '../micro-proccess-flow/micro-proccess-flow.component';\r\n\r\n@Component({\r\n    selector: 'bdc-enum-info-micro-proccess-flow',\r\n    templateUrl: './enum-info-micro-proccess-flow.component.html',\r\n    styleUrls: ['./enum-info-micro-proccess-flow.component.scss'],\r\n    changeDetection: ChangeDetectionStrategy.OnPush,\r\n    standalone: false\r\n})\r\nexport class EnumInfoMicroProccessFlowComponent extends UiSimpleComboComponent {\r\n    onSelectedChange(item: FlowItem): void {\r\n        this._handleValueChange(item.id);\r\n    }\r\n}\r\n","<bdc-micro-proccess-flow\r\n    [items]=\"context.store.data[context.store.root] | datasourceToFlowItem\"\r\n    [selected]=\"value\"\r\n    [idIskey]=\"true\"\r\n    [readonly]=\"(disableOrReadonly$ | async) === true\"\r\n    (selectedChange)=\"onSelectedChange($event)\"\r\n></bdc-micro-proccess-flow>\r\n","import { ChangeDetectionStrategy, Component, HostBinding, OnInit } from '@angular/core';\r\nimport { FieldBaseComponent, FileAttachmentInfo, MetaobjectDataModel } from 'barsa-novin-ray-core';\r\n\r\n/**\r\n * اندازه‌های کارت‌دکمه. `auto` (پیش‌فرض) یعنی سیستم بر اساسِ عرضِ واقعیِ کارت با\r\n * CSS Container Query مقیاسِ داخلی را انتخاب می‌کند؛ `s`/`m`/`lg`/`xl` مقیاسِ ثابت را force می‌کنند.\r\n */\r\nexport type CardButtonSize = 'auto' | 's' | 'm' | 'lg' | 'xl';\r\n\r\n/** جایگاهِ تصویر/آیکنِ کارت‌دکمه (بالا یا پایینِ متن). */\r\nexport type CardButtonImagePosition = 'top' | 'bottom';\r\n\r\n/**\r\n * Card Button — یک فیلدِ دکمه‌ی فرم (از نوعِ `UIButton`) که به‌سبکِ «کارتِ تصویری» رندر می‌شود.\r\n * پیاده‌سازیِ همان پیش‌نمایشِ HTML (چهار اندازه S/M/LG/XL + جایگاهِ تصویر بالا/پایین) به‌شکلِ\r\n * یک دکمه‌ی کلیک‌پذیر. به‌صورتِ پیش‌فرض (`Size=auto`) همه‌ی متریک‌های اندازه (ارتفاعِ تصویر،\r\n * پدینگ، فونتِ عنوان/زیرعنوان، تعدادِ خطوطِ زیرعنوان، اندازه‌ی آیکن) با CSS Container Query بر\r\n * اساسِ عرضِ واقعیِ کارت مقیاس می‌شوند؛ کاربر می‌تواند با `Size=s|m|lg|xl` مقیاسِ ثابت را force کند.\r\n *\r\n * هم‌الگو با `bsu-ui-button` و `bsu-barsa-field-kpi-card`؛ همه‌ی رنگ‌ها از SAP variableها می‌آیند.\r\n */\r\n@Component({\r\n    selector: 'bdc-ui-card-button',\r\n    templateUrl: './ui-card-button.component.html',\r\n    styleUrls: ['./ui-card-button.component.scss'],\r\n    changeDetection: ChangeDetectionStrategy.OnPush,\r\n    standalone: false\r\n})\r\nexport class UiCardButtonComponent extends FieldBaseComponent implements OnInit {\r\n    private static readonly VALID_SIZES: ReadonlySet<CardButtonSize> = new Set(['auto', 's', 'm', 'lg', 'xl']);\r\n\r\n    // پیش‌فرضِ امن: در مسیرِ فرمِ داینامیکِ لو-کد ممکن است تنظیماتی پاس داده نشود و\r\n    // `parameters` undefined بماند؛ بدونِ این default دسترسیِ تمپلیت به فیلدها crash می‌کند.\r\n    parameters: CardButtonSettings = {} as CardButtonSettings;\r\n\r\n    @HostBinding('style.margin') designMode: string;\r\n\r\n    // ── محتوا ──\r\n    title = '';\r\n    subtitle = '';\r\n    badge = '';\r\n    /** آیکنِ SAP (glyph) داخلِ ناحیه‌ی تصویر */\r\n    icon = '';\r\n    /** آدرسِ نهاییِ تصویرِ ناحیه‌ی media (resolve‌شده از FileAttachment)؛ بر آیکن مقدم است */\r\n    picture = '';\r\n    /**\r\n     * اندازه‌ی رندرِ تصویر (px). `pictureWidth` اندازه‌ی thumbnailِ سمتِ سرور را می‌دهد و\r\n     * `pictureHeight` علاوه بر آن ارتفاعِ خودِ قابِ تصویر را هم مشخص می‌کند (برای اینکه عکسِ\r\n     * بلند/مربع جا شود). هر دو اختیاری‌اند (خالی ⇒ ارتفاع از پریستِ `Size`).\r\n     */\r\n    pictureWidth: number | null = null;\r\n    pictureHeight: number | null = null;\r\n    /** نحوه‌ی جاگیریِ تصویر در قاب: `cover` (پرکردن با بُرش) یا `contain` (نمایشِ کاملِ عکس). */\r\n    imageFit: 'cover' | 'contain' = 'cover';\r\n    metaStart = '';\r\n    metaEnd = '';\r\n    showArrow = true;\r\n    onlyIcon = false;\r\n\r\n    // ── حالت‌ها ──\r\n    size: CardButtonSize = 'auto';\r\n    imagePosition: CardButtonImagePosition = 'top';\r\n\r\n    // ── رنگِ تأکیدی (پیش‌فرض از scss = var(--sapBrandColor)) ──\r\n    accentColor: string | null = null;\r\n\r\n    // توجه: همه‌ی متریک‌های اندازه (ارتفاعِ تصویر، پدینگ، فونتِ عنوان/زیرعنوان، تعدادِ خطوط،\r\n    // اندازه‌ی آیکن) فقط از پریستِ `Size` می‌آیند (کلاس‌های `.size-*` در scss) و دستی گرفته نمی‌شوند.\r\n\r\n    /** ناحیه‌ی media فقط وقتی رندر می‌شود که تصویر یا آیکنی وجود داشته باشد. */\r\n    get hasMedia(): boolean {\r\n        return !!this.picture || !!this.icon;\r\n    }\r\n\r\n    /** آیا فوتر (متاداده) نمایش داده شود. */\r\n    get hasMeta(): boolean {\r\n        return !this._bool(this.parameters?.HideMeta) && (!!this.metaStart || !!this.metaEnd);\r\n    }\r\n\r\n\r\n    ngOnInit(): void {\r\n        super.ngOnInit();\r\n        this.designMode = this.JsonExtraProp?.Design ? '3px 1px' : '0';\r\n        this._compute();\r\n    }\r\n\r\n    /** کلیک: مثلِ `bsu-ui-button` رویدادِ `click`ِ کنترلر را شلیک می‌کند. */\r\n    onClick(): void {\r\n        if (this.context?.fireEvent) {\r\n            this.context.fireEvent('click', this.context);\r\n        }\r\n    }\r\n\r\n    protected _configChaned(_: any): void {\r\n        this._compute();\r\n        super._configChaned(_);\r\n    }\r\n\r\n    /** همه‌ی فیلدهای مشتق‌شده‌ی نمایش را از روی `parameters` بازمحاسبه می‌کند. */\r\n    private _compute(): void {\r\n        const p = this.parameters ?? ({} as CardButtonSettings);\r\n\r\n        this.title = p.Title || this.context?.text || this.Setting?.ControlFieldCaptionTranslated || '';\r\n        this.subtitle = p.Subtitle ?? '';\r\n        this.badge = p.Badge ?? '';\r\n        this.icon = String(p.Icon ?? '').trim();\r\n        this.pictureWidth = this._num(p.PictureWidth);\r\n        this.pictureHeight = this._num(p.PictureHeight);\r\n        this.imageFit = p.ImageFit === 'contain' ? 'contain' : 'cover';\r\n        this.picture = this._resolvePicture(p.Picture);\r\n        this.metaStart = p.MetaStart ?? '';\r\n        this.metaEnd = p.MetaEnd ?? '';\r\n        this.showArrow = p.ShowArrow == null ? true : this._bool(p.ShowArrow);\r\n        this.onlyIcon = this._bool(p.OnlyIcon);\r\n\r\n        this.size = this._normalizeSize(p.Size);\r\n        this.imagePosition = this._bool(p.ImagePosition === 'bottom') ? 'bottom' : 'top';\r\n\r\n        this.accentColor = this._color(p.AccentColor);\r\n    }\r\n\r\n    /** نامِ اندازه را نرمال‌سازی می‌کند؛ خالی/نامعتبر ⇒ `auto` (تصمیمِ سیستم بر اساسِ عرض). */\r\n    private _normalizeSize(value: any): CardButtonSize {\r\n        const v = String(value ?? '').trim().toLowerCase() as CardButtonSize;\r\n        return UiCardButtonComponent.VALID_SIZES.has(v) ? v : 'auto';\r\n    }\r\n\r\n    /** مقدارِ عددیِ تنظیم را به number تبدیل می‌کند؛ خالی/نامعتبر ⇒ null (fallback به پریست). */\r\n    private _num(value: string | number | undefined): number | null {\r\n        if (value == null || String(value).trim() === '') {\r\n            return null;\r\n        }\r\n        const n = Number(value);\r\n        return Number.isFinite(n) ? n : null;\r\n    }\r\n\r\n    /**\r\n     * تصویرِ ناحیه‌ی media را resolve می‌کند. ورودی معمولاً یک FileAttachment (آبجکت با\r\n     * `FileId`/`Id`) است و به آدرسِ `IH.ashx` تبدیل می‌شود؛ `PictureWidth`/`PictureHeight`\r\n     * به‌عنوانِ اندازه‌ی thumbnailِ سمتِ سرور پاس داده می‌شوند (بهینه‌سازیِ ریسپانسیو).\r\n     * رشته‌ی مستقیم (آدرسِ آماده) هم برای سازگاری پشتیبانی می‌شود.\r\n     */\r\n    private _resolvePicture(raw: FileAttachmentInfo | string | undefined): string {\r\n        if (!raw) {\r\n            return '';\r\n        }\r\n        if (typeof raw === 'object') {\r\n            const fileId = raw.FileId ?? raw.Id;\r\n            if (!fileId || raw.IsDeleted) {\r\n                return '';\r\n            }\r\n            return this._picFieldSrc.transform(\r\n                fileId,\r\n                'ID',\r\n                null,\r\n                undefined,\r\n                this.pictureWidth ?? undefined,\r\n                this.pictureHeight ?? undefined\r\n            );\r\n        }\r\n        return String(raw).trim();\r\n    }\r\n\r\n    /** رنگِ دستیِ کاربر را برمی‌گرداند (هگزِ بدونِ # را اصلاح می‌کند)؛ خالی ⇒ null. */\r\n    private _color(raw: any): string | null {\r\n        const c = String(raw ?? '').trim();\r\n        if (!c) {\r\n            return null;\r\n        }\r\n        // هگزِ بدونِ # (مثلِ متادیتای color-pickerِ سرور)\r\n        return /^[0-9a-fA-F]{3,8}$/.test(c) ? `#${c}` : c;\r\n    }\r\n\r\n    /** تفسیرِ آزادِ boolean از تنظیم (true/'true'/'1'/1). */\r\n    private _bool(value: any): boolean {\r\n        return value === true || value === 'true' || value === 1 || value === '1';\r\n    }\r\n}\r\n\r\n/** تنظیماتِ کارت‌دکمه (همه اختیاری؛ نبودِ هرکدام آن بخش را رندر نمی‌کند). */\r\nexport interface CardButtonSettings extends MetaobjectDataModel {\r\n    /** عنوانِ دکمه؛ اگر خالی باشد از متنِ کنترل/caption فیلد استفاده می‌شود */\r\n    Title?: string;\r\n    /** زیرعنوان (چند خطی، تعدادِ خطوطش با `SubtitleLines`/پریستِ اندازه مهار می‌شود) */\r\n    Subtitle?: string;\r\n    /** برچسبِ گوشه‌ی تصویر (badge) */\r\n    Badge?: string;\r\n    /** آیکنِ SAP (glyph) داخلِ ناحیه‌ی تصویر */\r\n    Icon?: string;\r\n    /** تصویرِ ناحیه‌ی media به‌صورتِ FileAttachment (اگر ست شود بر `Icon` مقدم است) */\r\n    Picture?: FileAttachmentInfo | string;\r\n    /** عرضِ thumbnailِ سمتِ سرور (px) */\r\n    PictureWidth?: string | number;\r\n    /** ارتفاعِ قابِ تصویر (px)؛ اگر خالی باشد ارتفاع از پریستِ `Size` می‌آید (ریسپانسیو) */\r\n    PictureHeight?: string | number;\r\n    /**\r\n     * نحوه‌ی جاگیریِ تصویر: `cover` (پیش‌فرض؛ پرکردنِ قاب با بُرشِ لبه‌ها) یا `contain`\r\n     * (نمایشِ کاملِ عکس بدونِ بُرش). برای دیده‌شدنِ کاملِ عکس `contain` را انتخاب کنید.\r\n     */\r\n    ImageFit?: 'cover' | 'contain';\r\n    /** متنِ سمتِ شروعِ فوتر (متاداده) */\r\n    MetaStart?: string;\r\n    /** متنِ سمتِ پایانِ فوتر (متاداده) */\r\n    MetaEnd?: string;\r\n    /** نمایشِ فلشِ راهبری (پیش‌فرض: true) */\r\n    ShowArrow?: boolean | string;\r\n    /** مخفی‌کردنِ کاملِ فوترِ متاداده */\r\n    HideMeta?: boolean | string;\r\n    /** فقط آیکن (بدونِ متن) */\r\n    OnlyIcon?: boolean | string;\r\n\r\n    /**\r\n     * اندازه‌ی کارت‌دکمه. پیش‌فرض `auto`: سیستم بر اساسِ عرضِ واقعیِ کارت (Container Query)\r\n     * مقیاسِ داخلی را انتخاب می‌کند و روی همه‌ی دستگاه‌ها/ستون‌ها درست درمی‌آید. مقادیرِ\r\n     * `s`/`m`/`lg`/`xl` مقیاسِ ثابت را force می‌کنند (بدونِ واکنش به عرض).\r\n     */\r\n    Size?: CardButtonSize;\r\n    /** جایگاهِ تصویر: `top` | `bottom` (پیش‌فرض: `top`) */\r\n    ImagePosition?: CardButtonImagePosition;\r\n\r\n    /** رنگِ تأکیدی (فلش/badge/hover)؛ پیش‌فرض `var(--sapBrandColor)` */\r\n    AccentColor?: string;\r\n\r\n    // توجه: ارتفاعِ تصویر، پدینگ، فونتِ عنوان/زیرعنوان، تعدادِ خطوط و اندازه‌ی آیکن دستی گرفته\r\n    // نمی‌شوند؛ همگی از پریستِ `Size` (کلاس‌های `.size-*` در scss) مقدار می‌گیرند.\r\n}\r\n","<button\r\n    type=\"button\"\r\n    [class]=\"'cb-card size-' + size + ' pos-' + imagePosition\"\r\n    [class.cb-only-icon]=\"onlyIcon\"\r\n    [class.cb-has-media]=\"hasMedia\"\r\n    [disabled]=\"(disable$ | async)!!\"\r\n    [title]=\"title | bbbTranslate\"\r\n    [style.--cb-accent]=\"accentColor\"\r\n    [style.--cb-fit]=\"imageFit\"\r\n    [style.--cb-media-h.px]=\"pictureHeight\"\r\n    (click)=\"onClick()\"\r\n>\r\n    @if (hasMedia) {\r\n    <span class=\"cb-media\">\r\n        @if (picture) {\r\n        <img class=\"cb-image\" [src]=\"picture\" loading=\"lazy\" [alt]=\"title | bbbTranslate\" />\r\n        } @else if (icon) {\r\n        <fd-icon class=\"cb-glyph\" [glyph]=\"icon\"></fd-icon>\r\n        } @if (badge) {\r\n        <span class=\"cb-badge\">{{ badge | bbbTranslate }}</span>\r\n        }\r\n    </span>\r\n    }\r\n\r\n    @if (!onlyIcon) {\r\n    <span class=\"cb-header\">\r\n        <span class=\"cb-text\">\r\n            <span class=\"cb-title\">{{ title | bbbTranslate }}</span>\r\n            @if (subtitle) {\r\n            <span class=\"cb-subtitle\">{{ subtitle | bbbTranslate }}</span>\r\n            }\r\n        </span>\r\n        @if (showArrow) {\r\n        <span class=\"cb-arrow\" aria-hidden=\"true\">‹</span>\r\n        }\r\n    </span>\r\n\r\n    @if (hasMeta) {\r\n    <span class=\"cb-meta\">\r\n        <span>{{ metaStart | bbbTranslate }}</span>\r\n        <span>{{ metaEnd | bbbTranslate }}</span>\r\n    </span>\r\n    } }\r\n</button>\r\n","import { Component, ChangeDetectionStrategy } from '@angular/core';\r\nimport { UploadService } from 'barsa-novin-ray-core';\r\nimport { UiPicturesInfoComponent } from 'barsa-sap-ui';\r\n\r\n@Component({\r\n    selector: 'bdc-ui-pictures-carousel',\r\n    templateUrl: './ui-pictures-carousel.component.html',\r\n    styleUrls: ['./ui-pictures-carousel.component.scss'],\r\n    providers: [UploadService],\r\n    changeDetection: ChangeDetectionStrategy.OnPush,\r\n    standalone: false\r\n})\r\nexport class UiPicturesCarouselComponent extends UiPicturesInfoComponent {}\r\n","@if (mediaData$ | async; as mediaData) {\r\n<fd-carousel carouselIndicatorsOrientation=\"top\" width=\"100%\">\r\n    @for (media of mediaData; track media; let i = $index) {\r\n    <fd-carousel-item>\r\n        <img [imgLazy]=\"media.mediaUrl\" [src]=\"media.mediaUrl\" />\r\n    </fd-carousel-item>\r\n    }\r\n</fd-carousel>\r\n} @else {\r\n<div style=\"width: 100%; position: relative\">\r\n    <bsu-mask></bsu-mask>\r\n</div>\r\n}\r\n","import { Component, ChangeDetectionStrategy, OnInit, HostListener } from '@angular/core';\r\nimport { FieldBaseComponent } from 'barsa-novin-ray-core';\r\n\r\n@Component({\r\n    selector: 'bdc-ui-num-rate',\r\n    templateUrl: './ui-num-rate.component.html',\r\n    styleUrls: ['./ui-num-rate.component.scss'],\r\n    changeDetection: ChangeDetectionStrategy.OnPush,\r\n    standalone: false\r\n})\r\nexport class UiNumRateComponent extends FieldBaseComponent implements OnInit {\r\n    @HostListener('keydown', ['$event'])\r\n    onKeyDown(e: KeyboardEvent): void {\r\n        const validValues = ['1', '2', '3', '4', '5'];\r\n        if (validValues.indexOf(e.key) > -1) {\r\n            this._onRatingChanged(+e.key);\r\n        }\r\n    }\r\n    onRatingChanged(val: number): void {\r\n        this._onRatingChanged(val);\r\n    }\r\n    _setValue(val: any): void {\r\n        if (typeof val === 'string') {\r\n            if (isNaN(+val[0])) {\r\n                val = val.substring(1, val.length);\r\n            }\r\n            if (isNaN(+val)) {\r\n                return;\r\n            }\r\n        }\r\n        super._setValue(val);\r\n    }\r\n    private _onRatingChanged(val: number): void {\r\n        this.value = val;\r\n        this.valueChange.emit(this.value);\r\n    }\r\n}\r\n","<fd-rating-indicator\r\n    [ariaLabel]=\"Setting.NullText || ''\"\r\n    [size]=\"parameters?.SizeValue$Caption\"\r\n    [value]=\"value\"\r\n    [disabled]=\"(disableOrReadonly$ | async) === true\"\r\n    [displayMode]=\"parameters?.DisplayMode\"\r\n    [dynamicTextIndicator]=\"parameters?.TextIndicator\"\r\n    (ratingChanged)=\"onRatingChanged($event)\"\r\n></fd-rating-indicator>\r\n","import { ChangeDetectionStrategy, Component, inject, OnInit, TemplateRef, ViewChild } from '@angular/core';\r\nimport { AudioRecordingService, BarsaApi, UploadService, VideoRecordingService } from 'barsa-novin-ray-core';\r\nimport { UiPdfViewerComponent } from 'barsa-sap-ui';\r\n\r\n@Component({\r\n    selector: 'bdc-media-file-uploader',\r\n    templateUrl: './media-file-uploader.component.html',\r\n    styleUrls: ['./media-file-uploader.component.scss'],\r\n    changeDetection: ChangeDetectionStrategy.OnPush,\r\n    providers: [AudioRecordingService, VideoRecordingService, UploadService],\r\n    standalone: false\r\n})\r\nexport class MediaFileUploaderComponent extends UiPdfViewerComponent implements OnInit {\r\n    @ViewChild('videoElement') videoElement: any;\r\n    @ViewChild('photoElement') photoElement: any;\r\n    @ViewChild('container', { read: TemplateRef })\r\n    dialogContainer: TemplateRef<any>;\r\n\r\n    isPlaying = false;\r\n    displayControls = true;\r\n    isRecording = false;\r\n    recordedTime;\r\n    fileBlob;\r\n    fileName;\r\n    audioStream;\r\n    videoStream: MediaStream;\r\n    audioConf = { audio: true };\r\n    videoConf = { video: { facingMode: 'user', width: 320 }, audio: true };\r\n    glyph: string;\r\n    recordType = 'audio';\r\n    protected override _audioRecorder = inject(AudioRecordingService, { self: true });\r\n    protected override _videoRecoder = inject(VideoRecordingService, { self: true });\r\n    get video(): HTMLMediaElement {\r\n        return this.videoElement?.nativeElement;\r\n    }\r\n    get fileInput(): HTMLInputElement {\r\n        return this.photoElement?.nativeElement;\r\n    }\r\n    ngOnInit(): void {\r\n        super.ngOnInit();\r\n        this._videoRecoder.recordingFailed().subscribe(() => {\r\n            this.isRecording = false;\r\n            this._cdr.detectChanges();\r\n        });\r\n\r\n        this._videoRecoder.getRecordedTime().subscribe((time) => {\r\n            this.recordedTime = time;\r\n            this._cdr.detectChanges();\r\n        });\r\n\r\n        this._videoRecoder.getStream().subscribe((stream) => {\r\n            this.videoStream = stream;\r\n            this._cdr.detectChanges();\r\n        });\r\n\r\n        this._videoRecoder.getRecordedBlob().subscribe((data) => {\r\n            this.fileBlob = data.blob;\r\n            this.fileName = data.title;\r\n            this.valueUrl = this._domSanitizer.bypassSecurityTrustUrl(data.url);\r\n            this._cdr.detectChanges();\r\n        });\r\n\r\n        this._audioRecorder.recordingFailed().subscribe(() => {\r\n            this.isRecording = false;\r\n            this._cdr.detectChanges();\r\n        });\r\n\r\n        this._audioRecorder.getRecordedTime().subscribe((time) => {\r\n            this.recordedTime = time;\r\n            this._cdr.detectChanges();\r\n        });\r\n\r\n        this._audioRecorder.getRecordedBlob().subscribe((data) => {\r\n            this.fileBlob = data.blob;\r\n            this.fileName = data.title;\r\n            this.valueUrl = this._domSanitizer.bypassSecurityTrustUrl(URL.createObjectURL(data.blob));\r\n            this._cdr.detectChanges();\r\n        });\r\n        let glyph = '';\r\n        switch (this.recordType) {\r\n            case 'audio':\r\n                glyph = 'attachment-audio';\r\n                break;\r\n            case 'video':\r\n                glyph = 'attachment-video';\r\n                break;\r\n            default:\r\n                glyph = 'attachment-photo';\r\n                break;\r\n        }\r\n        this.glyph = glyph;\r\n        this.fileName = this.value?.FileName;\r\n        this.recordType = this.parameters?.MediaType$Caption || 'audio';\r\n    }\r\n\r\n    onDelete(): void {\r\n        super.onDelete();\r\n        this.onClearRecord();\r\n    }\r\n    onClearRecord(): void {\r\n        this.abortVideoRecording();\r\n        this.abortAudioRecording();\r\n        this.fileBlob = null;\r\n        this.valueUrl = null;\r\n        this._cdr.detectChanges();\r\n    }\r\n    onToggleRecord(): void {\r\n        if (this.recordType === 'audio') {\r\n            if (this.isRecording) {\r\n                this.stopAudioRecording();\r\n            } else {\r\n                this.startAudioRecording();\r\n            }\r\n        } else if (this.recordType === 'video') {\r\n            this.video.hidden = false;\r\n            if (this.isRecording) {\r\n                this.stopVideoRecording();\r\n            } else {\r\n                this.startVideoRecording();\r\n            }\r\n        } else if (this.recordType === 'photo') {\r\n        }\r\n    }\r\n    onTakePhoto(): void {\r\n        if (this.fileInput?.files?.length) {\r\n            const file = this.fileInput.files.item(0);\r\n            if (file) {\r\n                this.fileName = file.name;\r\n                this._uploadFile([file]).subscribe();\r\n            }\r\n        }\r\n    }\r\n    onUpload(): void {\r\n        const videoFile: File = new File([this.fileBlob], this.fileName);\r\n        this._uploadFile([videoFile]).subscribe();\r\n    }\r\n    startVideoRecording(): void {\r\n        if (!this.isRecording) {\r\n            this.video.controls = false;\r\n            this.isRecording = true;\r\n            this._videoRecoder\r\n                .startRecording(this.videoConf)\r\n                .then((stream) => {\r\n                    // this.video.src = window.URL.createObjectURL(stream);\r\n                    this.video.srcObject = stream;\r\n                    this.video.play();\r\n                })\r\n                .catch(function (err) {\r\n                    console.error(err.name + ': ' + err.message);\r\n                });\r\n        }\r\n    }\r\n\r\n    abortVideoRecording(): void {\r\n        if (this.isRecording && this.recordType === 'video') {\r\n            this.isRecording = false;\r\n            this._videoRecoder.abortRecording();\r\n        }\r\n        if (this.video) {\r\n            const video = this.video;\r\n            video.controls = false;\r\n            video.hidden = true;\r\n        }\r\n    }\r\n\r\n    stopVideoRecording(): void {\r\n        if (this.isRecording && this.recordType === 'video') {\r\n            this._videoRecoder.stopRecording();\r\n            const video: any = this.video;\r\n            video.srcObject = this.valueUrl;\r\n            video.controls = true;\r\n            this.isRecording = false;\r\n        }\r\n    }\r\n\r\n    clearVideoRecordedData(): void {\r\n        this.valueUrl = null;\r\n        const video = this.video;\r\n        video.srcObject = null;\r\n        video.controls = false;\r\n        this._cdr.detectChanges();\r\n    }\r\n\r\n    downloadVideoRecordedData(): void {\r\n        this._downloadFile(this.fileBlob, 'video/mp4', this.fileName);\r\n    }\r\n\r\n    startAudioRecording(): void {\r\n        if (!this.isRecording) {\r\n            this.isRecording = true;\r\n            this._audioRecorder.startRecording();\r\n        }\r\n    }\r\n\r\n    abortAudioRecording(): void {\r\n        if (this.isRecording && this.recordType === 'audio') {\r\n            this.isRecording = false;\r\n            this._audioRecorder.abortRecording();\r\n        }\r\n    }\r\n\r\n    stopAudioRecording(): void {\r\n        if (this.isRecording && this.recordType === 'audio') {\r\n            this._audioRecorder.stopRecording();\r\n            this.isRecording = false;\r\n        }\r\n    }\r\n\r\n    clearAudioRecordedData(): void {\r\n        this.valueUrl = null;\r\n    }\r\n\r\n    downloadAudioRecordedData(): void {\r\n        this._downloadFile(this.fileBlob, 'audio/mp3', this.fileName);\r\n    }\r\n\r\n    ngOnDestroy(): void {\r\n        this.abortAudioRecording();\r\n    }\r\n\r\n    _downloadFile(data: any, type: string, filename: string): any {\r\n        const blob = new Blob([data], { type });\r\n        const url = window.URL.createObjectURL(blob);\r\n        // this.video.srcObject = stream;\r\n        // const url = data;\r\n        const anchor = document.createElement('a');\r\n        anchor.download = filename;\r\n        anchor.href = url;\r\n        document.body.appendChild(anchor);\r\n        anchor.click();\r\n        document.body.removeChild(anchor);\r\n    }\r\n    protected _downloadFileIdCompleted(response): void {\r\n        super._downloadFileIdCompleted(response);\r\n        if (this.valueUrl) {\r\n            if (this.recordType === 'video') {\r\n                this.video.controls = true;\r\n            }\r\n        }\r\n    }\r\n    protected _refresh(_?: boolean): void {\r\n        if (BarsaApi.Ext.isEmpty(this.value)) {\r\n            return;\r\n        }\r\n        const fileId = this.value.Id;\r\n        this.DownloadFileId(fileId, true, '', null, false);\r\n    }\r\n}\r\n","<fd-card class=\"upload\" [ngClass]=\"recordType\">\r\n    <fd-card-content class=\"file-content\">\r\n        <div [class.no-recording]=\"!isRecording && valueUrl\" [ngClass]=\"recordType\" class=\"media-wrapper\">\r\n            <div class=\"icon\">\r\n                @if (!value && !valueUrl && !isRecording) {\r\n                <i style=\"left: 45%; position: absolute\" fd-nested-list-icon [glyph]=\"glyph\"></i>\r\n                }\r\n            </div>\r\n            @if (recordType === 'video') {\r\n            <video #videoElement [class.video-novalue]=\"!valueUrl\">\r\n                @if (!isRecording && valueUrl) {\r\n                <source [src]=\"valueUrl\" />\r\n                } @if (!value && !valueUrl && !isRecording) {\r\n                <i style=\"left: 45%; position: absolute\" fd-nested-list-icon [glyph]=\"glyph\"></i>\r\n                }\r\n            </video>\r\n            } @if (!isRecording && valueUrl && recordType === 'audio') {\r\n            <audio controls>\r\n                <source [src]=\"valueUrl\" type=\"audio/mp3\" />\r\n            </audio>\r\n            } @if (recordType === 'photo') {\r\n            <input\r\n                #photoElement\r\n                type=\"file\"\r\n                accept=\"image/*\"\r\n                id=\"file-input\"\r\n                capture=\"environment\"\r\n                (change)=\"onTakePhoto()\"\r\n            />\r\n            }\r\n        </div>\r\n        @if (isRecording || valueUrl) {\r\n        <div class=\"media-info\">\r\n            <div>\r\n                {{ !isRecording ? '' : ('Recording' | bbbTranslate) }} <strong>{{ recordedTime }}</strong>\r\n            </div>\r\n            <div>{{ fileName }}</div>\r\n        </div>\r\n        } @if (uploadingState$ | async; as uploadingState) { @if (uploadingState.state === 'Uploading') {\r\n        <div class=\"progress\">\r\n            <div>\r\n                <fd-progress-indicator\r\n                    state=\"informative\"\r\n                    [valueNow]=\"uploadingState?.progress\"\r\n                ></fd-progress-indicator>\r\n            </div>\r\n        </div>\r\n        } }\r\n        <div class=\"btn-wrapper\">\r\n            @if (!value && !valueUrl) {\r\n            <button\r\n                class=\"btn-record\"\r\n                fd-button\r\n                [glyph]=\"isRecording ? 'stop' : 'record'\"\r\n                [fdType]=\"isRecording ? 'attention' : 'ghost'\"\r\n                (click)=\"onToggleRecord()\"\r\n            ></button>\r\n            } @if (!value && valueUrl) {\r\n            <div class=\"btn-toolbar\">\r\n                <button fd-button [glyph]=\"'delete'\" fdType=\"negative\" (click)=\"onClearRecord()\"></button>\r\n                <button fd-button [label]=\"'Upload' | bbbTranslate\" [glyph]=\"'upload'\" (click)=\"onUpload()\"></button>\r\n            </div>\r\n            } @if (value) {\r\n            <div class=\"btn-toolbar\">\r\n                @if (value) {\r\n                <button fd-button [glyph]=\"'delete'\" fdType=\"negative\" (click)=\"onDelete()\"></button>\r\n                } @if (value) {\r\n                <button fd-button [glyph]=\"'download'\" fdType=\"standard\" (click)=\"onDownload()\"></button>\r\n                }\r\n            </div>\r\n            }\r\n        </div>\r\n    </fd-card-content>\r\n</fd-card>\r\n","import { ChangeDetectionStrategy, Component, OnChanges, OnInit, SimpleChanges } from '@angular/core';\r\nimport {\r\n    BaseItemContentPropsComponent,\r\n    createGridEditorFormPanel,\r\n    UiReportViewBaseSetting,\r\n    FormComponentParams,\r\n    MetaobjectDataModel,\r\n    BarsaApi\r\n} from 'barsa-novin-ray-core';\r\nimport { Subject, debounceTime, switchMap, takeUntil } from 'rxjs';\r\n\r\n@Component({\r\n    selector: 'bdc-subform-in-row-report',\r\n    templateUrl: './subform-in-row-report.component.html',\r\n    styleUrls: ['./subform-in-row-report.component.scss'],\r\n    changeDetection: ChangeDetectionStrategy.OnPush,\r\n    standalone: false\r\n})\r\nexport class SubformInRowReportComponent\r\n    extends BaseItemContentPropsComponent<UiReportViewBaseSetting>\r\n    implements OnInit, OnChanges\r\n{\r\n    formPanelCtrl: any;\r\n    loaded: boolean;\r\n    params: FormComponentParams;\r\n    parameters: SubformInRowReportSetting;\r\n    suggestionList$ = new Subject<void>();\r\n    errorMessage: string;\r\n    ngOnInit(): void {\r\n        super.ngOnInit();\r\n        this.suggestionList$\r\n            .asObservable()\r\n            .pipe(\r\n                takeUntil(this._onDestroy$),\r\n                debounceTime(500),\r\n                switchMap(\r\n                    (_ulvParams) =>\r\n                        new Promise<void>((resolve, reject) => {\r\n                            formPanelCtrl.Save(false, (err) => {\r\n                                if (err) {\r\n                                    reject(err);\r\n                                }\r\n                                this.UlvMainCtrlr.RefreshRowsByMosNoSelectionChange([formPanelCtrl.Mo], [], []);\r\n                                resolve();\r\n                            });\r\n                        })\r\n                )\r\n            )\r\n            .subscribe();\r\n\r\n        const userDefineViewId = this.parameters?.ViewTypeValue?.Id;\r\n        this.params = {\r\n            moId: this.mo.Id,\r\n            typeDefId: this.typeDefId,\r\n            isSimple: true,\r\n            viewId: userDefineViewId\r\n        };\r\n        const formPanelCtrl = createGridEditorFormPanel(\r\n            this.formSetting,\r\n            { ...this.mo },\r\n            this.typeDefId,\r\n            null,\r\n            false\r\n            // BarsaApi.Common.Util.TryGetValue(this.context.Setting, 'Extra.Relation')\r\n        );\r\n\r\n        this.formPanelCtrl = formPanelCtrl;\r\n        if (this.parameters?.AutoSaveOnChange) {\r\n            formPanelCtrl.on({\r\n                scope: this,\r\n                ValueChange: () => {\r\n                    this.suggestionList$.next();\r\n                }\r\n            });\r\n        }\r\n        formPanelCtrl.FormRequestParams = {\r\n            MoId: this.mo.Id,\r\n            MoContext: { ViewId: userDefineViewId }\r\n        };\r\n        formPanelCtrl.LoadAndCreate(\r\n            { MoId: this.mo.Id, TypeDefId: this.typeDefId, TypeViewId: userDefineViewId },\r\n            false,\r\n            true,\r\n            (t, _e, _r) => {\r\n        formPanelCtrl.Setting.DisableRefreshRoute = true;\r\n\r\n                const error = BarsaApi.Common.Util.TryGetValue(t, 'Data.ResponseData.error');\r\n                if (error) {\r\n                    this.loaded = false;\r\n                    this.errorMessage = error.userMessage;\r\n                } else {\r\n                    this.loaded = true;\r\n                }\r\n                this._cdr.detectChanges();\r\n            }\r\n        );\r\n    }\r\n    ngOnChanges(changes: SimpleChanges): void {\r\n        super.ngOnChanges(changes);\r\n        const { mo } = changes;\r\n        if (mo && !mo.firstChange) {\r\n            BarsaApi.Common.Merger.FastMerge(this.formPanelCtrl.Mo, mo.currentValue);\r\n            this.formPanelCtrl.SetValue(this.formPanelCtrl.Mo);\r\n        }\r\n    }\r\n}\r\ninterface SubformInRowReportSetting extends MetaobjectDataModel {\r\n    TypeDefValue: MetaobjectDataModel;\r\n    ViewTypeValue: MetaobjectDataModel;\r\n    AutoSaveOnChange: boolean;\r\n}\r\n","@if (loaded) {\r\n<bnrc-form [formPanelCtrl]=\"formPanelCtrl\" class=\"subform-in-row\" [params]=\"params\"></bnrc-form>\r\n} @if(errorMessage){\r\n<span\r\n    fd-object-status\r\n    status=\"negative\"\r\n    [label]=\"errorMessage\"\r\n    [title]=\"errorMessage\"\r\n    [attr.aria-label]=\"errorMessage\"\r\n></span>\r\n}\r\n","import { ChangeDetectionStrategy, Component, OnInit } from '@angular/core';\r\nimport { FormPropsBaseComponent } from 'barsa-novin-ray-core';\r\n\r\n@Component({\r\n    selector: 'bdc-master-detail-card-form',\r\n    templateUrl: './master-detail-card-form.component.html',\r\n    styleUrls: ['./master-detail-card-form.component.css'],\r\n    changeDetection: ChangeDetectionStrategy.OnPush,\r\n    standalone: false\r\n})\r\nexport class MasterDetailCardFormComponent extends FormPropsBaseComponent implements OnInit {\r\n    ngOnInit(): void {\r\n        super.ngOnInit();\r\n    }\r\n}\r\n","<fd-card class=\"master-tab\">\r\n    <bsu-ly-tab-page [config]=\"modernTabs[0]\"></bsu-ly-tab-page>\r\n</fd-card>\r\n<fd-card class=\"details-tab\">\r\n    <bsu-ly-tab-page [config]=\"modernTabs[1]\"></bsu-ly-tab-page>\r\n</fd-card>\r\n","import { ChangeDetectionStrategy, Component, OnInit } from '@angular/core';\r\nimport { BarsaApi, MetaobjectDataModel, BaseFormToolbaritemPropsComponent } from 'barsa-novin-ray-core';\r\n\r\n@Component({\r\n    selector: 'bdc-report-button-view',\r\n    templateUrl: './report-button-view.component.html',\r\n    styleUrls: ['./report-button-view.component.scss'],\r\n    changeDetection: ChangeDetectionStrategy.OnPush,\r\n    standalone: false\r\n})\r\nexport class ReportButtonViewComponent extends BaseFormToolbaritemPropsComponent implements OnInit {\r\n    loaded = false;\r\n    moDataList: MetaobjectDataModel[];\r\n    ngOnInit(): void {\r\n        super.ngOnInit();\r\n    }\r\n    onMainActionClick(menu): void {\r\n        if (this.parameters.MetaReport) {\r\n            BarsaApi.Bw.RunBlMethodAsync({\r\n                Parameters: [this.parameters.MetaReport.Id],\r\n                Method: '_PortalExecuteReport',\r\n                SuccessFn: (moDataList: MetaobjectDataModel[]) => {\r\n                    this.moDataList = moDataList;\r\n                    menu.open();\r\n                },\r\n                FailFn: () => {}\r\n            });\r\n        }\r\n    }\r\n    onButtonClick(_btn: MetaobjectDataModel): void {}\r\n}\r\n","<!-- <fd-split-button\r\nfd-toolbar-item\r\n[fdType]=\"'transparent'\"\r\n[mainAction]=\"{\r\n    keepMainAction: true,\r\n    mainActionTitle: 'Choose' | bbbTranslate\r\n}\"\r\n>\r\n<fd-menu>\r\n  <li fd-menu-item *ngFor=\"let mo of moDataList;let index=index\">\r\n    <div fd-menu-interactive (click)=\"onRowCheck({mo,index})\">\r\n      <span fd-menu-title>\r\n        <fd-icon [glyph]=\"viewSetting.Icon | rval: mo:allColumns:true \"> </fd-icon>\r\n      </span>\r\n    </div>\r\n  </li>\r\n</fd-menu>\r\n</fd-split-button> -->\r\n\r\n<fd-split-button\r\n    fd-toolbar-item\r\n    [mainAction]=\"{ mainActionTitle: parameters.MainActionTitle, keepMainAction: true }\"\r\n    [fdType]=\"parameters.FdType$Caption\"\r\n    (click)=\"onMainActionClick(menu)\"\r\n>\r\n    <fd-menu #menu>\r\n        @for (mo of moDataList; track mo; let index = $index) {\r\n        <li fd-menu-item (click)=\"onButtonClick(mo)\">\r\n            <div fd-menu-interactive>\r\n                <fd-menu-addon position=\"before\"> </fd-menu-addon>\r\n                <span fd-menu-title>{{ mo.$Caption | bbbTranslate }}</span>\r\n            </div>\r\n        </li>\r\n        }\r\n    </fd-menu>\r\n</fd-split-button>\r\n","import {\r\n    ChangeDetectionStrategy,\r\n    ChangeDetectorRef,\r\n    Component,\r\n    EventEmitter,\r\n    Input,\r\n    OnChanges,\r\n    Output,\r\n    SimpleChanges,\r\n    ViewChild,\r\n    inject\r\n} from '@angular/core';\r\nimport {\r\n    AbbrevationDeviceSize,\r\n    AudioMimeType,\r\n    BaseComponent,\r\n    FileAttachmentInfo,\r\n    ImageMimeType,\r\n    PreventDefaulEvent,\r\n    VideoMimeType,\r\n    AllFilesMimeType,\r\n    PictureFieldSourcePipe,\r\n    isImage,\r\n    getIcon,\r\n    IUploadingState\r\n} from 'barsa-novin-ray-core';\r\nimport { DocumentItem } from '../models';\r\nimport { FileUploaderComponent } from '@fundamental-ngx/core';\r\n\r\n@Component({\r\n    selector: 'bdc-barsa-document-list-item',\r\n    templateUrl: './barsa-document-list-item.component.html',\r\n    styleUrls: ['./barsa-document-list-item.component.scss'],\r\n    changeDetection: ChangeDetectionStrategy.OnPush,\r\n    standalone: false\r\n})\r\nexport class BarsaDocumentListItemComponent extends BaseComponent implements OnChanges {\r\n    @ViewChild(FileUploaderComponent, { static: false }) fileUploadComponent: FileUploaderComponent;\r\n\r\n    @Input() documentItem: DocumentItem;\r\n    @Input() deviceSize: AbbrevationDeviceSize;\r\n    @Input() files: FileAttachmentInfo[];\r\n    @Input() accepted: boolean;\r\n    @Input() rejectedReason: string;\r\n    @Input() readonly: boolean;\r\n    @Input() status: number;\r\n    @Input() uploadingState: IUploadingState;\r\n\r\n    @Output() statusChanged = new EventEmitter<{ value: number; rejectedText: string }>();\r\n    @Output() rejectTextChange = new EventEmitter<string>();\r\n    @Output() fileSelectionChange = new EventEmitter<File[]>();\r\n    @Output() removeFile = new EventEmitter<FileAttachmentInfo>();\r\n    @Output() fullscreen = new EventEmitter<null | FileAttachmentInfo>();\r\n    @Output() download = new EventEmitter<FileAttachmentInfo>();\r\n    @Output() downloadAll = new EventEmitter<void>();\r\n\r\n    hasFiles = false;\r\n    firstImageUrl: any;\r\n    private _cdr = inject(ChangeDetectorRef);\r\n    private _picFieldSrc = inject(PictureFieldSourcePipe);\r\n\r\n    ngOnInit(): void {\r\n        super.ngOnInit();\r\n        const documentItem = this.documentItem;\r\n        documentItem.$ValidExtensions = `            \r\n        ${documentItem.SupportImage ? ImageMimeType : ''},\r\n        ${documentItem.SupportAudio ? AudioMimeType : ''},\r\n        ${documentItem.SupportVideo ? VideoMimeType : ''},\r\n        ${documentItem.SupportFile ? AllFilesMimeType : ''}\r\n        `;\r\n    }\r\n    ngOnChanges(changes: SimpleChanges): void {\r\n        super.ngOnChanges(changes);\r\n        const { files } = changes;\r\n        files && Array.isArray(files.currentValue) && this._setFirstImage(files.currentValue);\r\n        this._detectChanges();\r\n    }\r\n    onReject(e: number): void {\r\n        this.statusChanged.emit({ value: e, rejectedText: e === 2 ? '' : this.rejectedReason });\r\n    }\r\n    onRejectedTextChange(e): void {\r\n        this.rejectTextChange.emit(e.target.value);\r\n    }\r\n    onPreventClick(e): void {\r\n        PreventDefaulEvent(e);\r\n    }\r\n    onFileSelection(files: File[]): void {\r\n        this.fileSelectionChange.emit(files);\r\n        this.fileUploadComponent?.clear();\r\n\r\n    }\r\n\r\n    protected _setFirstImage(files: FileAttachmentInfo[]): void {\r\n        files.length &&\r\n            (this.firstImageUrl = isImage(files[0].Type)\r\n                ? this._picFieldSrc.transform(files[0].Id, 'ID', null, '', 120, 120)\r\n                : getIcon(files[0].Type));\r\n    }\r\n    protected _detectChanges(): void {\r\n        this._cdr.detectChanges();\r\n    }\r\n}\r\n","<!-- <li fd-list-item style=\"padding: 0.5rem 1rem\">\r\n<span fd-list-thumbnail>\r\n  <fd-icon *ngIf=\"documentItem.FontIcon\" [glyph]=\"documentItem.FontIcon\"></fd-icon>\r\n  <fd-avatar\r\n    *ngIf=\"documentItem.Avatar\"\r\n    size=\"s\"\r\n    [image]=\"documentItem.Avatar.FileId | picFieldSrc: 'ID':null:''\"\r\n    [clickable]=\"true\"\r\n    ></fd-avatar\r\n  ></span>\r\n\r\n  <div fd-list-content>\r\n    <div fd-list-title>\r\n      <div style=\"display: flex; column-gap: 3px\">\r\n        <strong\r\n          >{{ documentItem.Title }}\r\n          <span fd-object-status status=\"negative\" *ngIf=\"documentItem.IsRequired\"\r\n            >*({{ 'اجباری' | bbbTranslate }})\r\n          </span>\r\n        </strong>\r\n        <div\r\n          *ngIf=\"documentItem.$Accepted === false || documentItem.$Accepted === true\"\r\n          style=\"display: flex; column-gap: 3px; flex-wrap: wrap; align-items: center\"\r\n          >\r\n          <span\r\n            fd-object-status\r\n            [status]=\"accepted ? 'positive' : 'negative'\"\r\n            [label]=\"accepted ? acceptedText : rejectedText\"\r\n            [clickable]=\"true\"\r\n            [inverted]=\"true\"\r\n            [aria-label]=\"accepted ? acceptedText : rejectedText\"\r\n          ></span>\r\n          <fd-popover title=\"Rejected document\" *ngIf=\"rejectedReason && !accepted\">\r\n            <fd-popover-control>\r\n              <span\r\n                fd-object-status\r\n                status=\"negative\"\r\n                glyph=\"question-mark\"\r\n                glyphAriaLabel=\"Negative\"\r\n                title=\"Rejected document\"\r\n              ></span>\r\n            </fd-popover-control>\r\n            <fd-popover-body>\r\n              <fd-message-strip type=\"error\" [dismissible]=\"false\">\r\n                {{ rejectedReason }}\r\n              </fd-message-strip>\r\n            </fd-popover-body>\r\n          </fd-popover>\r\n        </div>\r\n      </div>\r\n    </div>\r\n    <div fd-list-byline [twoCol]=\"true\" [class.smallSize]=\"deviceSize === 's'\">\r\n      <div fd-list-byline-left>\r\n        <div style=\"display: flex; flex-direction: column; row-gap: 5px; flex-wrap: wrap\">\r\n          <span>\r\n            {{ documentItem.Description }}\r\n          </span>\r\n          <div style=\"display: flex; flex-wrap: wrap; column-gap: 3px; align-items: center\">\r\n            <ng-container *ngIf=\"hasFiles\">\r\n              <button fd-button [fdType]=\"'transparent'\" glyph=\"show\" (click)=\"onFullscreen()\"></button>\r\n              <ng-container *ngFor=\"let file of files\">\r\n                <fd-token\r\n                  [readOnly]=\"readonly\"\r\n                  *ngIf=\"!file.IsDeleted\"\r\n                  (onCloseClick)=\"onRemoveFile(file)\"\r\n                  >{{ file.FileName }}</fd-token\r\n                  >\r\n                </ng-container>\r\n              </ng-container>\r\n              <button\r\n                fd-button\r\n                *ngIf=\"documentItem.MaxFileCount && !readonly\"\r\n                glyph=\"attachment\"\r\n                [label]=\"'AttachFile' | bbbTranslate\"\r\n                (click)=\"!readonly && uploader.open()\"\r\n              ></button>\r\n              <fd-file-uploader\r\n                #uploader\r\n                [style.display]=\"'none'\"\r\n                fd-toolbar-item\r\n                [id]=\"documentItem.ItemKey\"\r\n                [name]=\"'pictures_' + documentItem.ItemKey\"\r\n                [accept]=\"documentItem.$ValidExtensions\"\r\n                [fileLimit]=\"documentItem.MaxFileCount\"\r\n                [multiple]=\"documentItem.MaxFileCount > 0\"\r\n                (selectedFilesChanged)=\"onFileSelection($event)\"\r\n              ></fd-file-uploader>\r\n            </div>\r\n          </div>\r\n        </div>\r\n        <div fd-list-byline-right *ngIf=\"documentItem.CanAccept\">\r\n          <bdc-accept-reject\r\n            [rejectedReason]=\"rejectedReason\"\r\n            [positiveText]=\"acceptedText\"\r\n            [negativeText]=\"rejectedText\"\r\n            [deviceSize]=\"deviceSize\"\r\n            [readonly]=\"readonly\"\r\n          ></bdc-accept-reject>\r\n        </div>\r\n      </div>\r\n    </div>\r\n  </li> -->\r\n\r\n<tr fd-table-row>\r\n    <td fd-table-cell>\r\n        @if (documentItem.Avatar && !files.length) {\r\n        <fd-avatar\r\n            size=\"s\"\r\n            [image]=\"documentItem.Avatar.FileId | picFieldSrc: 'ID':null:'':64:64\"\r\n            [clickable]=\"true\"\r\n            [transparent]=\"true\"\r\n        ></fd-avatar>\r\n        } @else { @if (files.length) {\r\n        <fd-avatar [transparent]=\"true\" size=\"s\" [image]=\"firstImageUrl\" [clickable]=\"true\"></fd-avatar>\r\n        } @if (!files.length) {\r\n        <fd-avatar [transparent]=\"true\" size=\"s\" [glyph]=\"documentItem.FontIcon\" [clickable]=\"true\"></fd-avatar>\r\n        } }\r\n    </td>\r\n    <td fd-table-cell style=\"min-width: 140px\">\r\n        <p fd-table-text>\r\n            <strong\r\n                >{{ documentItem.Title }}\r\n                @if (documentItem.IsRequired) {\r\n                <span fd-object-status status=\"negative\">*({{ 'اجباری' | bbbTranslate }}) </span>\r\n                }\r\n            </strong>\r\n        </p>\r\n        <div>\r\n            <span>\r\n                {{ documentItem.Description }}\r\n            </span>\r\n        </div>\r\n    </td>\r\n\r\n    <td fd-table-cell>\r\n        <ng-container>\r\n            <!-- <ul fd-list>\r\n        <li fd-list-item *ngFor=\"let file of files; let ind = index\">\r\n          <span fd-list-title>\r\n            {{ file.FileName }}\r\n          </span>\r\n          <span fd-list-secondary>\r\n            <button ariaLabel=\"Remove\" title=\"Remove\" fd-button glyph=\"delete\" ></button>\r\n          </span>\r\n        </li>\r\n      </ul> -->\r\n            <div style=\"display: flex; align-items: flex-start; column-gap: 3px; row-gap: 3px; flex-direction: column\">\r\n                @for (file of files; track file;let index=$index) {\r\n                <!-- <span><fd-icon glyph=\"attachment\"></fd-icon><a fd-link>{{file.FileName}}</a></span> -->\r\n                @if (!file.IsDeleted) {\r\n                <bsu-file-viewer-popover\r\n                    [file]=\"file\"\r\n                    [index]=\"index\"\r\n                    [deviceSize]=\"deviceSize\"\r\n                    [canDownload]=\"true\"\r\n                    (remove)=\"removeFile.emit(file)\"\r\n                ></bsu-file-viewer-popover>\r\n                } }\r\n                <!-- <button\r\n        fd-button\r\n        *ngIf=\"+documentItem.MaxFileCount && !readonly\"\r\n        glyph=\"add\"\r\n        (click)=\"!readonly && uploader.open()\"\r\n      ></button> -->\r\n            </div>\r\n            <!-- <p *ngFor=\"let file of files\" fd-table-text>\r\n    <fd-action-sheet  >\r\n      <fd-action-sheet-control>\r\n        <button\r\n          fd-button\r\n          glyph=\"settings\"\r\n          title=\"Open Action Sheet Mobile\"\r\n          id=\"fd-action-sheet-mobile-control\"\r\n          aria-haspopup=\"menu\"\r\n          [label]=\"file.FileName ||''\"\r\n          aria-controls=\"fd-action-sheet-mobile-body\"\r\n        ></button>\r\n      </fd-action-sheet-control>\r\n\r\n      <fd-action-sheet-body\r\n        actionSheetBodyId=\"fd-action-sheet-mobile-body\"\r\n        ariaLabelledBy=\"fd-action-sheet-mobile-control\"\r\n        >\r\n        <li fd-action-sheet-item label=\"Search\" glyph=\"search\"></li>\r\n        <li fd-action-sheet-item label=\"Download\" glyph=\"download\" ></li>\r\n        <li fd-action-sheet-item label=\"Accept\" glyph=\"accept\" ></li>\r\n        <li fd-action-sheet-item label=\"Reject\" glyph=\"cancel\" ></li>\r\n        <li fd-action-sheet-item label=\"Decide Later\" [isCloseButton]=\"true\"></li>\r\n        <li fd-action-sheet-item label=\"Cancel\" [negative]=\"true\" [isCloseButton]=\"true\"></li>\r\n      </fd-action-sheet-body>\r\n    </fd-action-sheet>\r\n  </p> -->\r\n        </ng-container>\r\n    </td>\r\n    <td fd-table-cell>\r\n        <div class=\"status\" style=\"position: relative\">\r\n            @if (+documentItem.MaxFileCount && !readonly) {\r\n            <button\r\n                fd-button\r\n                glyph=\"attachment\"\r\n                [label]=\"'AttachFile' | bbbTranslate\"\r\n                [disabled]=\"uploadingState?.key === documentItem.Title && uploadingState?.uploading\"\r\n                (click)=\"!readonly && uploader.open()\"\r\n            >\r\n                @if (uploadingState?.key === documentItem.Title && uploadingState?.uploading) {\r\n                <bsu-mask [marginTop]=\"'3px'\"></bsu-mask>\r\n                }\r\n            </button>\r\n            }\r\n            <button\r\n                fd-button\r\n                glyph=\"show\"\r\n                fullscreenFiles\r\n                [files]=\"files\"\r\n                [title]=\"documentItem.Title\"\r\n                [fd-inline-help]=\"'مشاهده همه' | bbbTranslate\"\r\n                [aria-describedby]=\"'مشاهده همه' | bbbTranslate\"\r\n                [ariaLabel]=\"'مشاهده همه' | bbbTranslate\"                \r\n                [disabled]=\"!files.length\"\r\n                [files]=\"files\"\r\n            ></button>\r\n            <button\r\n                fd-button\r\n                glyph=\"download\"\r\n                [fd-inline-help]=\"'دانلود همه' | bbbTranslate\"\r\n                [aria-describedby]=\"'دانلود همه' | bbbTranslate\"\r\n                [ariaLabel]=\"'دانلود همه' | bbbTranslate\"\r\n                downloadFiles\r\n                [disabled]=\"!files.length\"\r\n                [files]=\"files\"\r\n                (click)=\"downloadAll.emit()\"\r\n            ></button>\r\n        </div>\r\n    </td>\r\n    <td fd-table-cell>\r\n        <fd-action-sheet #actionSheet>\r\n            <fd-action-sheet-control>\r\n                <ng-container *ngTemplateOutlet=\"statusTpl\"></ng-container>\r\n            </fd-action-sheet-control>\r\n            <fd-action-sheet-body>\r\n                <li\r\n                    fd-action-sheet-item\r\n                    [label]=\"'Accept' | bbbTranslate\"\r\n                    glyph=\"accept\"\r\n                    (click)=\"actionSheet.close(); onReject(2)\"\r\n                ></li>\r\n                <li\r\n                    fd-action-sheet-item\r\n                    [label]=\"'Reject' | bbbTranslate\"\r\n                    glyph=\"cancel\"\r\n                    (click)=\"actionSheet.close(); onReject(3)\"\r\n                ></li>\r\n            </fd-action-sheet-body>\r\n        </fd-action-sheet>\r\n\r\n        @if (status === 3) {\r\n        <p fd-table-text maxWidth=\"400px\">\r\n            @if (readonly && rejectedReason) {\r\n            <span> {{ rejectedReason | bbbTranslate }} </span>\r\n            } @if (!readonly) {\r\n            <input\r\n                fd-form-control\r\n                [value]=\"rejectedReason | bbbTranslate\"\r\n                [placeholder]=\"'دلایل رد مدرک' | bbbTranslate\"\r\n            />\r\n            }\r\n        </p>\r\n        }\r\n    </td>\r\n</tr>\r\n\r\n<fd-file-uploader\r\n    #uploader\r\n    [style.display]=\"'none'\"\r\n    fd-toolbar-item\r\n    [id]=\"documentItem.ItemKey\"\r\n    [name]=\"'pictures_' + documentItem.ItemKey\"\r\n    [accept]=\"documentItem.$ValidExtensions\"\r\n    [fileLimit]=\"documentItem.MaxFileCount\"\r\n    [multiple]=\"documentItem.MaxFileCount > 0\"\r\n    (selectedFilesChanged)=\"onFileSelection($event)\"\r\n></fd-file-uploader>\r\n<ng-template #statusTpl>\r\n    <div class=\"status\">\r\n        <button fd-button fdType=\"transparent\">\r\n            @if (status === 1) {\r\n            <span\r\n                fd-object-status\r\n                [label]=\"'[پیوست مدارک]' | bbbTranslate\"\r\n                [aria-label]=\"'[پیوست مدارک]' | bbbTranslate\"\r\n            ></span>\r\n            } @if (status === 2) {\r\n            <span\r\n                fd-object-status\r\n                glyph=\"message-success\"\r\n                status=\"positive\"\r\n                [label]=\"'Accepted' | bbbTranslate\"\r\n                [label]=\"'Accepted' | bbbTranslate\"\r\n            ></span>\r\n            } @if (status === 3) {\r\n            <span\r\n                fd-object-status\r\n                glyph=\"cancel\"\r\n                status=\"negative\"\r\n                [label]=\"'Rejected' | bbbTranslate\"\r\n                [aria-label]=\"'Rejected' | bbbTranslate\"\r\n            ></span>\r\n            }\r\n        </button>\r\n    </div>\r\n</ng-template>\r\n","import { ChangeDetectionStrategy, Component, OnChanges, OnInit, SimpleChanges } from '@angular/core';\r\nimport {\r\n    FilesValidationHelper,\r\n    LinearListHelper,\r\n    MetaobjectDataModel,\r\n    ReportViewBaseComponent,\r\n    ReportViewColumn,\r\n    UploadService,\r\n    FileAttachmentInfo,\r\n    IUploadingState\r\n} from 'barsa-novin-ray-core';\r\nimport { Observable } from 'rxjs';\r\nimport { DocumentItem, DocumentsSetting } from '../models';\r\n\r\n@Component({\r\n    selector: 'bdc-barsa-documents',\r\n    templateUrl: './barsa-documents.component.html',\r\n    styleUrls: ['./barsa-documents.component.scss'],\r\n    changeDetection: ChangeDetectionStrategy.OnPush,\r\n    providers: [UploadService],\r\n    standalone: false\r\n})\r\nexport class BarsaDocumentsComponent extends ReportViewBaseComponent<DocumentsSetting> implements OnInit, OnChanges {\r\n    keyColumn: ReportViewColumn;\r\n    fileColumn: ReportViewColumn;\r\n    statusColumn: ReportViewColumn;\r\n    rejectedReasonColumn: ReportViewColumn;\r\n    acceptedColumn: ReportViewColumn;\r\n    selectedMo: MetaobjectDataModel;\r\n    uploadingState$: Observable<IUploadingState>;\r\n\r\n    protected _filesValidationHelper: FilesValidationHelper;\r\n    protected _linearHelper: LinearListHelper;\r\n\r\n    get documentItems(): Array<DocumentItem> {\r\n        if (this.customFieldInfo) {\r\n            return this.customFieldInfo.DocumentItems.MoDataList as Array<DocumentItem>;\r\n        } else {\r\n            return this.viewSetting.FilesSetting.DocumentItems.MoDataList as Array<DocumentItem>;\r\n        }\r\n    }\r\n    ngOnInit(): void {\r\n        super.ngOnInit();\r\n        const { moDataList, viewSetting, allColumns } = this;\r\n\r\n        this._initColumnField(allColumns, viewSetting);\r\n        this._subscribeOnUploadFile(this.fileColumn);\r\n        this._mapDocumentItem(moDataList, this.documentItems);\r\n        this._checkMandatory();\r\n    }\r\n\r\n    ngOnChanges(changes: SimpleChanges): void {\r\n        super.ngOnChanges(changes);\r\n        const { moDataList } = changes;\r\n        if (moDataList && !moDataList.firstChange) {\r\n            if (moDataList && !moDataList.firstChange) {\r\n                this._mapDocumentItem(moDataList.currentValue, this.documentItems);\r\n                this.detectChanges();\r\n            }\r\n        }\r\n    }\r\n    ngAfterViewInit(): void {\r\n        super.ngAfterViewInit();\r\n        setTimeout(() => {\r\n            for (let i = 0; i < this.documentItems.length - this.moDataList.length; i++) {\r\n                this.createNewMo.emit();\r\n            }\r\n        });\r\n    }\r\n    onFileSelection(files: File[], documentItem: DocumentItem, mo: MetaobjectDataModel): void {\r\n        this.selectedMo = mo;\r\n        this._uploadFile(files, documentItem);\r\n    }\r\n    onRemoveFile(file: FileAttachmentInfo, mo: MetaobjectDataModel): void {\r\n        const fileDbName = this.fileColumn.Name;\r\n        let files = mo[fileDbName].Files;\r\n        if (file.IsNew) {\r\n            files = files.filter((c) => c.Id !== file.Id);\r\n        } else {\r\n            const existFile = files.find((c) => c.Id === file.Id);\r\n            existFile.IsDeleted = true;\r\n        }\r\n        mo[fileDbName].Files = [...files];\r\n        this._updateMo(mo);\r\n    }\r\n    onStatusChanged(e: { value: number; rejectedText: string }, mo: MetaobjectDataModel): void {\r\n        mo[this.statusColumn.Name] = e.value;\r\n        mo[this.rejectedReasonColumn.Name] = e.rejectedText;\r\n        this._updateMo(mo);\r\n    }\r\n    onRejectedTextChange(text: string, mo: MetaobjectDataModel): void {\r\n        mo[this.rejectedReasonColumn.Name] = text;\r\n        this._updateMo(mo);\r\n    }\r\n    _checkMandatory(): void {\r\n        const moDataList = this.moDataList;\r\n        const items = this.documentItems.filter((c) => c.IsRequired);\r\n        let mandatory = items.length > 0;\r\n        const mandatory2 = items\r\n            .map((item) => moDataList.find((c) => c[this.keyColumn.Name] === item.ItemKey))\r\n            .filter((item) => item)\r\n            .some((mo) => mo[this.fileColumn.Name].Files.filter((c) => !c.IsDeleted).length === 0);\r\n        mandatory = mandatory && mandatory2;\r\n        this.mandatory.emit(mandatory);\r\n    }\r\n    _mapDocumentItem(moDataList: Array<MetaobjectDataModel>, documentItems: Array<DocumentItem>): void {\r\n        const keyName = this.keyColumn.Name;\r\n        moDataList.forEach((mo, _index) => {\r\n            let documentItem = documentItems.find((c) => c.ItemKey === mo[keyName]); // find setting that matches with mo by itemKey\r\n            if (documentItem) {\r\n                mo.$documentItem = documentItem;\r\n            } else {\r\n                documentItem = documentItems.find(\r\n                    (item) => moDataList.map((c) => c[keyName]).indexOf(item.ItemKey) < 0\r\n                ); // find a setting has not have $RelatedMo yet\r\n                if (documentItem) {\r\n                    mo[keyName] = documentItem.ItemKey;\r\n                    mo.$documentItem = documentItem;\r\n                    this.updateMo.emit(mo);\r\n                }\r\n            }\r\n        });\r\n    }\r\n    protected _initColumnField(allColumns: ReportViewColumn[], viewSetting: DocumentsSetting): void {\r\n        const keyColumn = this._findColumnByDbName.transform(allColumns, viewSetting.ItemKeyField);\r\n        const fileColumn = this._findColumnByDbName.transform(allColumns, viewSetting.FileField);\r\n        const acceptedColumn = this._findColumnByDbName.transform(allColumns, viewSetting.AcceptedField);\r\n        const rejectedReasonColumn = this._findColumnByDbName.transform(allColumns, viewSetting.RejectedReasonField);\r\n        const statusColumn = this._findColumnByDbName.transform(allColumns, viewSetting.StatusField);\r\n        !keyColumn && this._columnNotExistsInReport(viewSetting.ItemKeyField);\r\n        !fileColumn && this._columnNotExistsInReport(viewSetting.FileField);\r\n        !rejectedReasonColumn && this._columnNotExistsInReport(viewSetting.RejectedReasonField);\r\n        !acceptedColumn && this._columnNotExistsInReport(viewSetting.AcceptedField);\r\n        !statusColumn && this._columnNotExistsInReport(viewSetting.StatusField);\r\n\r\n        keyColumn && (this.keyColumn = keyColumn);\r\n        fileColumn && (this.fileColumn = fileColumn);\r\n        acceptedColumn && (this.acceptedColumn = acceptedColumn);\r\n        rejectedReasonColumn && (this.rejectedReasonColumn = rejectedReasonColumn);\r\n        statusColumn && (this.statusColumn = statusColumn);\r\n    }\r\n    protected _subscribeOnUploadFile(fileColumn: ReportViewColumn): void {\r\n        this._filesValidationHelper = new FilesValidationHelper(0, 0, 0);\r\n        if (this._uploadService) {\r\n            this._createLinearHelper(this._uploadService, this._filesValidationHelper, fileColumn.FieldDefId);\r\n            this.uploadingState$ = this._uploadService.uploadingState$;\r\n        } else {\r\n            throw new Error('UploadService not provided.');\r\n        }\r\n\r\n        this._linearHelper.newFileUploaded$.subscribe((file) => {\r\n            const mo = this.moDataList.find((c) => c.Id === this.selectedMo.Id);\r\n            if (mo) {\r\n                mo[fileColumn.Name].Files = [...mo[fileColumn.Name].Files, file];\r\n                this._updateMo(mo);\r\n            }\r\n        });\r\n    }\r\n    protected _updateMo(mo: MetaobjectDataModel): void {\r\n        mo.$NewInlineMo = undefined;\r\n        if (mo.$State === 'Unchanged') {\r\n            mo.$State = 'Modified';\r\n        }\r\n        this.updateMo.emit(mo);\r\n        this._checkMandatory();\r\n    }\r\n    protected _createLinearHelper(\r\n        uploadService: UploadService,\r\n        filesValidationHelper: FilesValidationHelper,\r\n        fieldDefId: string\r\n    ): void {\r\n        this._linearHelper = new LinearListHelper(uploadService, filesValidationHelper, fieldDefId);\r\n    }\r\n    protected _uploadFile(files: File[], documentItem: DocumentItem): void {\r\n        const filesValidationHelper = this._filesValidationHelper;\r\n        filesValidationHelper.maxFileCount = +documentItem.MaxFileCount;\r\n        filesValidationHelper.maxFileSize = +documentItem.EachFileSize;\r\n        filesValidationHelper.maxTotalFileSize = +documentItem.MaxFileSize;\r\n        this._linearHelper.uploadToServer(files, documentItem.Title);\r\n    }\r\n    protected _columnNotExistsInReport(columnCaption): void {\r\n        throw new Error(`can not find ${columnCaption} column in report.please add it to report columns.`);\r\n    }\r\n}\r\n","<!-- <ul fd-list [byline]=\"true\" fdCompact [selection]=\"false\"> -->\r\n<table fd-table aria-label=\"Default\" [allCellsFocusable]=\"true\" [noBorderX]=\"true\">\r\n    <thead fd-table-header>\r\n        <tr fd-table-row>\r\n            <th fd-table-cell>{{ 'عکس' | bbbTranslate }}</th>\r\n            <th fd-table-cell style=\"min-width: 140px; width: auto\">{{ 'نوع مدرک' | bbbTranslate }}</th>\r\n            <th fd-table-cell style=\"width: 99%\">{{ 'الصاق فایل' | bbbTranslate }}</th>\r\n            <th fd-table-cell></th>\r\n            <th fd-table-cell style=\"width: 400px; min-width: 400px; max-width: 400px\">{{ 'وضعیت' | bbbTranslate }}</th>\r\n        </tr>\r\n    </thead>\r\n    <tbody fd-table-body>\r\n        @for (mo of moDataList; track _trackByRow($index, mo)) { @if (mo.$documentItem) {\r\n        <bdc-barsa-document-list-item\r\n            [documentItem]=\"mo.$documentItem\"\r\n            [accepted]=\"mo[acceptedColumn.Name]\"\r\n            [files]=\"mo[fileColumn.Name].Files\"\r\n            [uploadingState]=\"(uploadingState$ | async)!!\"\r\n            [rejectedReason]=\"mo[rejectedReasonColumn.Name]\"\r\n            [fileDbName]=\"fileColumn.Name\"\r\n            [status]=\"+mo[statusColumn.Name]\"\r\n            [deviceSize]=\"deviceSize\"\r\n            [readonly]=\"!access.Edit\"\r\n            [deviceSize]=\"deviceSize\"\r\n            (removeFile)=\"onRemoveFile($event, mo)\"\r\n            (fileSelectionChange)=\"onFileSelection($event, mo.$documentItem, mo)\"\r\n            (rejectTextChange)=\"onRejectedTextChange($event, mo)\"\r\n            (statusChanged)=\"onStatusChanged($event, mo)\"\r\n        ></bdc-barsa-document-list-item>\r\n        } }\r\n        <!-- </ul> -->\r\n    </tbody>\r\n</table>\r\n","import {\r\n    ChangeDetectionStrategy,\r\n    ChangeDetectorRef,\r\n    Component,\r\n    EventEmitter,\r\n    Input,\r\n    OnInit,\r\n    Output,\r\n    inject\r\n} from '@angular/core';\r\nimport { AbbrevationDeviceSize, BaseComponent, getUniqueId } from 'barsa-novin-ray-core';\r\n\r\n@Component({\r\n    selector: 'bdc-accept-reject',\r\n    templateUrl: './accept-reject.component.html',\r\n    styleUrls: ['./accept-reject.component.scss'],\r\n    changeDetection: ChangeDetectionStrategy.OnPush,\r\n    standalone: false\r\n})\r\nexport class AcceptRejectComponent extends BaseComponent implements OnInit {\r\n    @Input() negativeText: string;\r\n    @Input() positiveText: string;\r\n    @Input() rejectedReason: string;\r\n    @Input() acceptedText: string;\r\n    @Input() deviceSize: AbbrevationDeviceSize;\r\n    @Input() readonly: boolean;\r\n    @Input() rejected: boolean;\r\n    @Output() rejectedChanged = new EventEmitter<{ accept: boolean; error: string }>();\r\n\r\n    id = getUniqueId(3);\r\n    applied = false;\r\n\r\n    private _cdr = inject(ChangeDetectorRef);\r\n\r\n    ngOnInit(): void {\r\n        super.ngOnInit();\r\n        this._initilaize();\r\n    }\r\n    onReject(): void {\r\n        this._raiseEvent(true, true, this.rejectedReason);\r\n    }\r\n    onReset(): void {\r\n        this._raiseEvent(false, false);\r\n    }\r\n    onAccept(): void {\r\n        this._raiseEvent(true, false);\r\n    }\r\n    protected _initilaize(): void {\r\n        if (this.rejectedReason) {\r\n            this.rejected = true;\r\n            this.applied = true;\r\n        }\r\n    }\r\n    protected _raiseEvent(applied: boolean, rejected: boolean, rejectedReason = ''): void {\r\n        this.applied = applied;\r\n        this.rejected = rejected;\r\n        this.rejectedReason = rejectedReason;\r\n        this.rejectedChanged.emit({ accept: rejected, error: rejectedReason });\r\n        this._cdr.detectChanges();\r\n    }\r\n}\r\n","@if (!applied && !readonly) {\r\n<div>\r\n    <button\r\n        fd-button\r\n        [label]=\"positiveText | bbbTranslate\"\r\n        fdType=\"positive\"\r\n        glyph=\"message-success\"\r\n        ariaLabel=\"positive\"\r\n        value=\"yes\"\r\n        style=\"margin: 0 5px\"\r\n        (click)=\"onAccept()\"\r\n    ></button>\r\n    <fd-popover [focusTrapped]=\"true\" [focusAutoCapture]=\"true\" [mobile]=\"deviceSize === 's'\" #popover>\r\n        <fd-popover-control>\r\n            <button\r\n                fd-button\r\n                [label]=\"negativeText | bbbTranslate\"\r\n                glyph=\"message-error\"\r\n                fdType=\"negative\"\r\n                ariaLabel=\"Negative\"\r\n                value=\"no\"\r\n            ></button>\r\n        </fd-popover-control>\r\n        <fd-popover-body style=\"min-width: 320px\">\r\n            <div fd-popover-body-header>\r\n                <div fd-bar [cozy]=\"true\" id=\"popover-bar-header-1\">\r\n                    <div fd-bar-left>\r\n                        <span\r\n                            fd-object-status\r\n                            status=\"negative\"\r\n                            glyph=\"message-error\"\r\n                            glyphAriaLabel=\"Negative\"\r\n                            title=\"Negative\"\r\n                        ></span>\r\n                        <fd-bar-element>علت رد</fd-bar-element>\r\n                    </div>\r\n                </div>\r\n            </div>\r\n            <div fd-form-item>\r\n                <fd-form-input-message-group>\r\n                    <textarea fd-form-control [id]=\"id\" [(ngModel)]=\"rejectedReason\"></textarea>\r\n                </fd-form-input-message-group>\r\n            </div>\r\n            <div fd-popover-body-footer>\r\n                <div fd-bar barDesign=\"footer\">\r\n                    <div fd-bar-right>\r\n                        <fd-button-bar\r\n                            [label]=\"'Ok' | bbbTranslate\"\r\n                            fdType=\"emphasized\"\r\n                            (click)=\"popover.close(); onReject()\"\r\n                        ></fd-button-bar>\r\n                        <fd-button-bar [label]=\"'Cancel' | bbbTranslate\" (click)=\"popover.close()\"></fd-button-bar>\r\n                    </div>\r\n                </div>\r\n            </div>\r\n        </fd-popover-body>\r\n    </fd-popover>\r\n</div>\r\n} @if (readonly || applied) {\r\n<div>\r\n    <span>{{ rejected ? rejectedReason : ('✓' + acceptedText | bbbTranslate) }}</span>\r\n    <button fd-button glyph=\"decline\" fdType=\"transparent\" (click)=\"onReset()\"></button>\r\n</div>\r\n}\r\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, Input, OnInit, inject, signal } from '@angular/core';\r\nimport { BaseComponent, PortalService, MetaobjectDataModel, AbbrevationDeviceSize } from 'barsa-novin-ray-core';\r\nimport { takeUntil, withLatestFrom } from 'rxjs/operators';\r\n\r\n@Component({\r\n    selector: 'bdc-footer',\r\n    templateUrl: './footer.component.html',\r\n    styleUrls: ['./footer.component.scss'],\r\n    changeDetection: ChangeDetectionStrategy.OnPush,\r\n    standalone: false\r\n})\r\nexport class FooterComponent extends BaseComponent implements OnInit {\r\n    @Input() settings: MetaobjectDataModel;\r\n    rtl: boolean;\r\n    footer: MetaobjectDataModel;\r\n    deviceSize: AbbrevationDeviceSize;\r\n    hide = signal(false);\r\n    private _portalService = inject(PortalService);\r\n    private _cdr = inject(ChangeDetectorRef);\r\n\r\n    constructor() {\r\n        super();\r\n        this._portalService.navigationStart$.pipe(takeUntil(this._onDestroy$)).subscribe((event) => {\r\n            if (event === null) {\r\n                return;\r\n            }\r\n            if (event?.url.indexOf('/report/') > 0 || event?.url.indexOf('/form/') > 0) {\r\n                this.hide.set(true);\r\n            } else {\r\n                this.hide.set(false);\r\n            }\r\n        });\r\n\r\n        this._portalService.rtl$\r\n            .pipe(withLatestFrom(this._portalService.deviceSize$))\r\n            .subscribe(([rtl, deviceSize]) => {\r\n                this.rtl = rtl;\r\n                this.deviceSize = deviceSize;\r\n            });\r\n    }\r\n\r\n    ngOnInit(): void {\r\n        super.ngOnInit();\r\n        const { RelatedMo } = this.settings;\r\n        if (!RelatedMo) {\r\n            return;\r\n        }\r\n        this._portalService.loadMo(RelatedMo.Id, RelatedMo.$TypeDefId).subscribe((result) => {\r\n            this.footer = result?.Data?.Mo;\r\n            this._cdr.detectChanges();\r\n        });\r\n    }\r\n}\r\n","@if (footer) {\r\n<div #footerEl>\r\n    <div\r\n        [class.hide]=\"hide()\"\r\n        fd-bar\r\n        barDesign=\"footer\"\r\n        [size]=\"'m_l'\"\r\n        [class.rtl]=\"rtl\"\r\n        class=\"footer\"\r\n        [class.mobile]=\"deviceSize === 's'\"\r\n        cssRootVariable\r\n        [cssVariableValue]=\"footerEl.offsetHeight + 'px'\"\r\n        [cssVariableName]=\"'--footer-height'\"\r\n    >\r\n        <div fd-bar-left class=\"left\">\r\n            <a\r\n                fd-button\r\n                glyph=\"email\"\r\n                [fd-inline-help]=\"('ایمیل پشتیبانی' | bbbTranslate) + ': ' + footer.Email\"\r\n                [href]=\"'mailto:' + footer.Email\"\r\n                fdType=\"transparent\"\r\n            >\r\n            </a>\r\n            <a\r\n                fd-button\r\n                glyph=\"headset\"\r\n                [fd-inline-help]=\"('شماره پشتیبانی' | bbbTranslate) + ': ' + footer.TelNumber\"\r\n                [href]=\"'tel:' + footer.TelNumber\"\r\n                fdType=\"transparent\"\r\n            ></a>\r\n            <fd-popover>\r\n                <fd-popover-control>\r\n                    <button\r\n                        fd-button\r\n                        glyph=\"vertical-waterfall-chart\"\r\n                        [title]=\"'آمار بازدید' | bbbTranslate\"\r\n                        aria-haspopup=\"menu\"\r\n                        fdType=\"transparent\"\r\n                        [fd-inline-help]=\"'آمار بازدید' | bbbTranslate\"\r\n                        tabindex=\"0\"\r\n                    ></button>\r\n                </fd-popover-control>\r\n                <fd-popover-body>\r\n                    <ul fd-list>\r\n                        <li fd-list-item class=\"all\">\r\n                            <i fd-list-icon glyph=\"bar-chart\"></i>\r\n                            <span fd-list-title>{{ 'تعداد بازدیدکنندگان کل' | bbbTranslate }}<strong>120</strong></span>\r\n                        </li>\r\n                        <li fd-list-item class=\"today\">\r\n                            <i fd-list-icon glyph=\"bar-chart\"></i>\r\n                            <span fd-list-title\r\n                                >{{ 'تعداد بازدیدکنندگان امروز' | bbbTranslate }} <strong>76</strong></span\r\n                            >\r\n                        </li>\r\n                        <li fd-list-item class=\"online\">\r\n                            <i fd-list-icon glyph=\"bar-chart\"></i>\r\n                            <span fd-list-title>{{ 'تعداد کاربران آنللاین' | bbbTranslate }} <strong>10</strong></span>\r\n                        </li>\r\n                    </ul>\r\n                </fd-popover-body>\r\n            </fd-popover>\r\n            <fd-popover>\r\n                <fd-popover-control>\r\n                    <button\r\n                        [fd-inline-help]=\"'کانال ارتباطی' | bbbTranslate\"\r\n                        tabindex=\"0\"\r\n                        fd-button\r\n                        glyph=\"paper-plane\"\r\n                        id=\"fd-action-sheet-default-control\"\r\n                        aria-haspopup=\"menu\"\r\n                        fdType=\"transparent\"\r\n                    ></button>\r\n                </fd-popover-control>\r\n                <fd-popover-body>\r\n                    <ul fd-list>\r\n                        @for (socialNetwork of footer.SocialNetworks.MoDataList; track socialNetwork) {\r\n                        <li fd-list-item>\r\n                            <a fd-list-link [href]=\"socialNetwork.Url\" style=\"display: flex; column-gap: 5px\">\r\n                                <i fd-list-icon class=\"sap-icon--1\"\r\n                                    ><img\r\n                                        [src]=\"\r\n                                            socialNetwork.Image?.FileId\r\n                                                | picFieldSrc: 'ID':null:'':16:16\r\n                                        \"\r\n                                        loading=\"lazy\"\r\n                                    />\r\n                                </i>\r\n                                <span fd-list-title>{{ socialNetwork.Title | bbbTranslate }}</span>\r\n                            </a>\r\n                        </li>\r\n                        }\r\n                    </ul>\r\n                </fd-popover-body>\r\n            </fd-popover>\r\n            <fd-bar-element>\r\n                <a fd-link [href]=\"footer.SiteAddress\" tabindex=\"0\" class=\"!tw-flex !tw-items-center\"\r\n                    ><fd-icon glyph=\"world\"> </fd-icon>\r\n                    <span style=\"padding: 0 5px\">{{ footer.SiteTitle | bbbTranslate }}</span></a\r\n                >\r\n            </fd-bar-element>\r\n        </div>\r\n        @if (deviceSize !== 's') {\r\n        <div fd-bar-middle class=\"middle\">\r\n            <fd-bar-element> {{ footer.Copyright | bbbTranslate }}</fd-bar-element>\r\n        </div>\r\n        } @if (deviceSize !== 's' && deviceSize !== 'm') {\r\n        <div fd-bar-right class=\"right\"></div>\r\n        }\r\n    </div>\r\n</div>\r\n}\r\n<!-- \r\n@else if(footer?.Mode2){\r\n<div class=\"tw-relative tw-mt-16\">\r\n    <svg class=\"tw-absolute tw-top-0 tw-w-full tw-h-6 tw--mt-5 sm:tw--mt-10 sm:tw-h-16 text-deep-purple-accent-400\" preserveAspectRatio=\"none\" viewBox=\"0 0 1440 54\">\r\n      <path fill=\"--sapShellColor\" d=\"M0 22L120 16.7C240 11 480 1.00001 720 0.700012C960 1.00001 1200 11 1320 16.7L1440 22V54H1320C1200 54 960 54 720 54C480 54 240 54 120 54H0V22Z\"></path>\r\n    </svg>\r\n    <div class=\"tw-px-4 tw-pt-12 tw-mx-auto sm:tw-max-w-xl md:tw-max-w-full lg:tw-max-w-screen-xl md:tw-px-24 lg:tw-px-8\">\r\n      <div class=\"tw-grid tw-gap-16 tw-row-gap-10 tw-mb-8 lg:tw-grid-cols-6\">\r\n        <div class=\"md:tw-max-w-md lg:tw-col-span-2\">\r\n          <a href=\"/\" aria-label=\"رفتن به خانه\" title=\"شرکت\" class=\"tw-inline-flex tw-items-center\">\r\n            <svg class=\"tw-w-8 text-teal-accent-400\" viewBox=\"0 0 24 24\" stroke-linejoin=\"round\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-miterlimit=\"10\" stroke=\"currentColor\" fill=\"none\">\r\n              <rect x=\"3\" y=\"1\" width=\"7\" height=\"12\"></rect>\r\n              <rect x=\"3\" y=\"17\" width=\"7\" height=\"6\"></rect>\r\n              <rect x=\"14\" y=\"1\" width=\"7\" height=\"6\"></rect>\r\n              <rect x=\"14\" y=\"11\" width=\"7\" height=\"12\"></rect>\r\n            </svg>\r\n            <span class=\"tw-ml-2 tw-text-xl tw-font-bold tw-tracking-wide tw-text-gray-100 tw-uppercase\">شرکت</span>\r\n          </a>\r\n          <div class=\"tw-mt-4 lg:tw-max-w-sm\">\r\n            <p class=\"tw-text-sm text-deep-purple-50\">\r\n              ما متعهد به ارائه بهترین خدمات و محصولات با بالاترین کیفیت هستیم تا نیازهای شما را برآورده کنیم.\r\n            </p>\r\n            <p class=\"tw-mt-4 tw-text-sm text-deep-purple-50\">\r\n              همراه با تیمی متخصص، در تلاشیم تا رضایت مشتریان را جلب کنیم و تجربه‌ای بی‌نظیر فراهم سازیم.\r\n            </p>\r\n          </div>\r\n        </div>\r\n        <div class=\"tw-grid tw-grid-cols-2 tw-gap-5 tw-row-gap-8 lg:tw-col-span-4 md:tw-grid-cols-4\">\r\n          <div>\r\n            <p class=\"tw-font-semibold tw-tracking-wide text-teal-accent-400\">دسته‌بندی</p>\r\n            <ul class=\"tw-mt-2 tw-space-y-2\">\r\n              <li><a href=\"/\" class=\"tw-transition-colors tw-duration-300 text-deep-purple-50 hover:text-teal-accent-400\">اخبار</a></li>\r\n              <li><a href=\"/\" class=\"tw-transition-colors tw-duration-300 text-deep-purple-50 hover:text-teal-accent-400\">جهان</a></li>\r\n              <li><a href=\"/\" class=\"tw-transition-colors tw-duration-300 text-deep-purple-50 hover:text-teal-accent-400\">بازی‌ها</a></li>\r\n              <li><a href=\"/\" class=\"tw-transition-colors tw-duration-300 text-deep-purple-50 hover:text-teal-accent-400\">مراجع</a></li>\r\n            </ul>\r\n          </div>\r\n          <div>\r\n            <p class=\"tw-font-semibold tw-tracking-wide text-teal-accent-400\">دیجیتال</p>\r\n            <ul class=\"tw-mt-2 tw-space-y-2\">\r\n              <li><a href=\"/\" class=\"tw-transition-colors tw-duration-300 text-deep-purple-50 hover:text-teal-accent-400\">وب</a></li>\r\n              <li><a href=\"/\" class=\"tw-transition-colors tw-duration-300 text-deep-purple-50 hover:text-teal-accent-400\">تجارت الکترونیک</a></li>\r\n              <li><a href=\"/\" class=\"tw-transition-colors tw-duration-300 text-deep-purple-50 hover:text-teal-accent-400\">کسب و کار</a></li>\r\n              <li><a href=\"/\" class=\"tw-transition-colors tw-duration-300 text-deep-purple-50 hover:text-teal-accent-400\">سرگرمی</a></li>\r\n            </ul>\r\n          </div>\r\n          <div>\r\n            <p class=\"tw-font-semibold tw-tracking-wide text-teal-accent-400\">دیجیتال</p>\r\n            <ul class=\"tw-mt-2 tw-space-y-2\">\r\n              <li><a href=\"/\" class=\"tw-transition-colors tw-duration-300 text-deep-purple-50 hover:text-teal-accent-400\">وب</a></li>\r\n              <li><a href=\"/\" class=\"tw-transition-colors tw-duration-300 text-deep-purple-50 hover:text-teal-accent-400\">تجارت الکترونیک</a></li>\r\n              <li><a href=\"/\" class=\"tw-transition-colors tw-duration-300 text-deep-purple-50 hover:text-teal-accent-400\">کسب و کار</a></li>\r\n              <li><a href=\"/\" class=\"tw-transition-colors tw-duration-300 text-deep-purple-50 hover:text-teal-accent-400\">سرگرمی</a></li>\r\n            </ul>\r\n          </div>\r\n          <div>\r\n            <p class=\"tw-font-semibold tw-tracking-wide text-teal-accent-400\">دیجیتال</p>\r\n            <ul class=\"tw-mt-2 tw-space-y-2\">\r\n              <li><a href=\"/\" class=\"tw-transition-colors tw-duration-300 text-deep-purple-50 hover:text-teal-accent-400\">وب</a></li>\r\n              <li><a href=\"/\" class=\"tw-transition-colors tw-duration-300 text-deep-purple-50 hover:text-teal-accent-400\">تجارت الکترونیک</a></li>\r\n              <li><a href=\"/\" class=\"tw-transition-colors tw-duration-300 text-deep-purple-50 hover:text-teal-accent-400\">کسب و کار</a></li>\r\n              <li><a href=\"/\" class=\"tw-transition-colors tw-duration-300 text-deep-purple-50 hover:text-teal-accent-400\">سرگرمی</a></li>\r\n            </ul>\r\n          </div>        \r\n        </div>\r\n      </div>\r\n      <div class=\"tw-flex tw-flex-col tw-justify-between tw-pt-5 tw-pb-10 tw-border-t border-deep-purple-accent-200 sm:tw-flex-row\">\r\n        <p class=\"tw-text-sm tw-text-gray-100\">© حق نشر ۲۰۲۵ تمامی حقوق محفوظ است.</p>\r\n      </div>\r\n    </div>\r\n  </div>\r\n} -->\r\n","import {\r\n    ChangeDetectionStrategy,\r\n    Component,\r\n    AfterViewInit,\r\n    Input,\r\n    Output,\r\n    EventEmitter,\r\n    SimpleChanges,\r\n    signal\r\n} from '@angular/core';\r\nimport { BaseComponent } from 'barsa-novin-ray-core';\r\n\r\ndeclare const head: any;\r\ndeclare const L: any;\r\n\r\n@Component({\r\n    selector: 'bdc-barsa-geographic-location',\r\n    templateUrl: './barsa-geographic-location.component.html',\r\n    styleUrls: ['./barsa-geographic-location.component.scss'],\r\n    changeDetection: ChangeDetectionStrategy.OnPush,\r\n    standalone: false\r\n})\r\nexport class BarsaGeographicLocationComponent extends BaseComponent implements AfterViewInit {\r\n    @Input() disableOrReadonly: boolean;\r\n    @Input() setAutomaticLocation: boolean;\r\n    @Input() showLocationButton: boolean;\r\n    @Input() showFullscreenButton: boolean;\r\n    @Input() showExitFullscreenButton: boolean;\r\n    @Input() draggable: boolean;\r\n\r\n    @Input() defaultLocation: number[];\r\n    @Input() latitude: number;\r\n    @Input() longitude: number;\r\n    @Output() move = new EventEmitter<any>();\r\n    @Output() moveEnd = new EventEmitter<any>();\r\n    @Output() fullscreen = new EventEmitter();\r\n    @Output() exitFullscreen = new EventEmitter();\r\n    @Output() errorEvent = new EventEmitter();\r\n    @Output() markerChange = new EventEmitter<{ latitude; longitude }>();\r\n\r\n    signalMap = signal(null);\r\n    private _map: any;\r\n    private _marker: any;\r\n\r\n    private _navigatorOptions = {\r\n        enableHighAccuracy: true,\r\n        timeout: 5000,\r\n        maximumAge: 0\r\n    };\r\n\r\n    ngOnChanges(changes: SimpleChanges): void {\r\n        super.ngOnChanges(changes);\r\n        const { longitude, latitude } = changes;\r\n        if (latitude?.firstChange === false || longitude?.firstChange === false) {\r\n            this._setGeoLocation(\r\n                {\r\n                    latitude: latitude.currentValue,\r\n                    longitude: longitude.currentValue\r\n                },\r\n                this.disableOrReadonly,\r\n                this.latitude !== latitude.currentValue || this.longitude !== longitude.currentValue,\r\n                false\r\n            );\r\n        }\r\n    }\r\n    ngAfterViewInit(): void {\r\n        super.ngAfterViewInit();\r\n        head.load(\r\n            [\r\n                'Lib/leaflet/leaflet.css',\r\n                'Lib/leaflet/leaflet-src.js',\r\n                'Lib/leaflet/SearchControl.js',\r\n                'Lib/leaflet/BeautifyMarker-master/leaflet-beautify-marker-icon.css',\r\n                'Lib/leaflet/BeautifyMarker-master/leaflet-beautify-marker-icon.js',\r\n                'Lib/leaflet/BeautifyMarker-master/leaflet-beautify-marker.js',\r\n                'Lib/leaflet/BeautifyMarker-master/leaflet-beautify-marker-icon-barsa.js'\r\n            ],\r\n            () => this._initilaize()\r\n        );\r\n    }\r\n    // {\r\n    //     latlng,\r\n    //     point,\r\n    //     x,\r\n    //     y,\r\n    //     marker,\r\n    //     data\r\n    // }\r\n    onLongPress({ latlng }: { latlng: { lat: number; lng: number } }): void {\r\n        if (this.disableOrReadonly || !this.draggable) {\r\n            return;\r\n        }\r\n        this._setGeoLocation({ latitude: latlng.lat, longitude: latlng.lng }, this.disableOrReadonly, false, true);\r\n    }\r\n    onCurrentLocation(): void {\r\n        if (this.disableOrReadonly) {\r\n            return;\r\n        }\r\n        this._getNavigatorCurrentPosition();\r\n    }\r\n    onFullscreen(): void {\r\n        this.fullscreen.emit();\r\n    }\r\n    onExitFullscreen(): void {\r\n        this.exitFullscreen.emit();\r\n    }\r\n    protected _addMarkers(disableOrReadonly: boolean, pos: number[]): void {\r\n        this._setGeoLocation({ latitude: pos[0], longitude: pos[1] }, disableOrReadonly);\r\n    }\r\n\r\n    protected _initilaize(): void {\r\n        this._map = L.map(this._el.nativeElement);\r\n        this.signalMap.set(this._map);\r\n        const location = this.defaultLocation;\r\n        if (this.latitude) {\r\n            location[0] = Number(this.latitude);\r\n            location[1] = Number(this.longitude);\r\n        }\r\n        this._setGeoLocation(\r\n            {\r\n                latitude: location[0],\r\n                longitude: location[1]\r\n            },\r\n            this.disableOrReadonly,\r\n            true,\r\n            false\r\n        );\r\n\r\n        if (!this.disableOrReadonly && this.setAutomaticLocation && !this.latitude) {\r\n            // درصورتی که از قبل مقدار نداشته باشد\r\n            this._getNavigatorCurrentPosition();\r\n        }\r\n    }\r\n    protected _onErrorNavigatorLocation(err): void {\r\n        this.errorEvent.emit(err);\r\n    }\r\n    protected _setGeoLocation(\r\n        position: { latitude: any; longitude: any },\r\n        disableOrReadonly = false,\r\n        setView = false,\r\n        fireEvent = true\r\n    ): void {\r\n        if (this._marker) {\r\n            this._map.removeLayer(this._marker);\r\n            this._marker = null;\r\n        }\r\n\r\n        const { latitude, longitude } = position;\r\n\r\n        L.tileLayer('https://api.mapbox.com/styles/v1/{id}/tiles/{z}/{x}/{y}?access_token={accessToken}', {\r\n            attribution: '',\r\n            maxZoom: 18,\r\n            id: 'mapbox/streets-v11',\r\n            tileSize: 512,\r\n            zoomOffset: -1,\r\n            accessToken:\r\n                'pk.eyJ1IjoibXJlemFkZXZlbG9wZXIiLCJhIjoiY2p6anlrdTE2MDBxdjNtczZtYWFqbHFmdiJ9.SzniRy2KH6U3gdbOFnwA7Q'\r\n        }).addTo(this._map);\r\n        if (setView) {\r\n            this._map.setView([latitude, longitude], 18);\r\n        }\r\n        const marker = this._createMarker(\r\n            '0',\r\n            { mo: 'test' },\r\n            latitude,\r\n            longitude,\r\n            'my location',\r\n            '',\r\n            !disableOrReadonly && this.draggable === true\r\n        );\r\n        marker.addTo(this._map);\r\n        this._marker = marker;\r\n        if (!disableOrReadonly && fireEvent) {\r\n            this.markerChange.emit({ latitude, longitude });\r\n        }\r\n    }\r\n    protected _getNavigatorCurrentPosition(): void {\r\n        if (navigator.geolocation) {\r\n            navigator.geolocation.getCurrentPosition(\r\n                (position) =>\r\n                    this._setGeoLocation(\r\n                        { latitude: position.coords.latitude, longitude: position.coords.longitude },\r\n                        this.disableOrReadonly,\r\n                        true\r\n                    ),\r\n                (err) => this._onErrorNavigatorLocation(err),\r\n                this._navigatorOptions\r\n            );\r\n        }\r\n    }\r\n    protected _createMarker(id, mo, lat, lng, text, icon, draggable): any {\r\n        const markerCfg = {\r\n            Id: id,\r\n            Data: mo,\r\n            title: text,\r\n            draggable,\r\n            icon: L.divIcon({\r\n                html: icon\r\n                    ? `<fd-icon style=\"font-size:1rem\" class=\"sap-icon--${icon}\"></fd-icon>`\r\n                    : `<img  style=\"width:32px\" src=\"${'assets/svg/location-sign.svg'}\"/>`,\r\n                iconSize: [20, 20],\r\n                className: 'my-location'\r\n            })\r\n        };\r\n\r\n        // var marker = L.BeautifyMarker.marker([Number(lat), Number(lng)], {\r\n        const marker = L.marker([Number(lat), Number(lng)], markerCfg);\r\n\r\n        marker.on('moveend', (e) => {\r\n            this._onMoveEnd(e);\r\n        });\r\n        marker.on('move', (e) => {\r\n            this._onMove(e);\r\n        });\r\n\r\n        return marker;\r\n    }\r\n\r\n    protected _onMove(e): void {\r\n        this.move.emit(e);\r\n    }\r\n    protected _onMoveEnd(e): void {\r\n        this.moveEnd.emit(e);\r\n    }\r\n}\r\n","@if(signalMap()){\r\n<div\r\n    style=\"position: absolute; z-index: 1000; display: flex; flex-direction: column; row-gap: 5px; left: 0; bottom: 0\"\r\n    [leafletLongPress]=\"signalMap()\"\r\n    (longPress)=\"onLongPress($event)\"\r\n>\r\n    @if (showFullscreenButton) {\r\n    <button fd-button glyph=\"resize\" fdType=\"positive\" (click)=\"onFullscreen()\"></button>\r\n    } @if (showExitFullscreenButton) {\r\n    <button fd-button glyph=\"exitfullscreen\" fdType=\"positive\" (click)=\"onExitFullscreen()\"></button>\r\n    } @if (showLocationButton || disableOrReadonly) {\r\n    <button fd-button glyph=\"map\" fdType=\"positive\" (click)=\"onCurrentLocation()\"></button>\r\n    }\r\n</div>\r\n}\r\n","import { ChangeDetectionStrategy, Component, inject, OnInit, TemplateRef, ViewChild } from '@angular/core';\r\nimport { DialogService } from '@fundamental-ngx/core';\r\nimport { BarsaApi } from 'barsa-novin-ray-core';\r\nimport { UiMoInfoSubFormUiComponent } from 'barsa-sap-ui';\r\n\r\n@Component({\r\n    selector: 'bdc-geographic-location',\r\n    templateUrl: './geographic-location.component.html',\r\n    styleUrls: ['./geographic-location.component.scss'],\r\n    changeDetection: ChangeDetectionStrategy.OnPush,\r\n    standalone: false\r\n})\r\nexport class GeographicLocationComponent extends UiMoInfoSubFormUiComponent implements OnInit {\r\n    @ViewChild('confirmationDialog') dialogTemplate: TemplateRef<any>;\r\n    fullscreen = false;\r\n\r\n    latValue;\r\n    lngValue;\r\n    customFormPanelUi: any;\r\n    protected _dialogService = inject(DialogService);\r\n    private _movePos: { latitude: any; longitude: any };\r\n    get latitudeUi(): any {\r\n        return this.customFormPanelUi._dictFieldUi.Latitude;\r\n    }\r\n    get longitudeUi(): any {\r\n        return this.customFormPanelUi._dictFieldUi.Longitude;\r\n    }\r\n\r\n    openDialog(dialog: TemplateRef<any>): void {\r\n        this._dialogService.open(dialog, {\r\n            responsivePadding: true,\r\n            width: '100svw',\r\n            height: '100svh',\r\n            mobile: true,\r\n            ariaLabelledBy: 'map',\r\n            ariaDescribedBy: 'choose location',\r\n            focusTrapped: true\r\n        });\r\n    }\r\n    ngOnInit(): void {\r\n        super.ngOnInit();\r\n        this._setDefaultLatAndLong(this.latitudeUi?.value, this.longitudeUi?.value);\r\n    }\r\n    onFullscreen(): void {\r\n        this.fullscreen = true;\r\n        this.openDialog(this.dialogTemplate);\r\n    }\r\n\r\n    onExistFullscreen(): void {\r\n        this.fullscreen = false;\r\n        this._cdr.detectChanges();\r\n    }\r\n    onOpenChange(isOpen): void {\r\n        this.fullscreen = isOpen;\r\n    }\r\n    onErrorNavigatorLocation(err): void {\r\n        const err2 = `خطا در دریافت موقعیت مکانی جاری. (${err.message})`;\r\n        BarsaApi.Bw.Toast.Error(err2);\r\n    }\r\n    onMove(e): void {\r\n        this._movePos = { latitude: e.latlng.lat, longitude: e.latlng.lng };\r\n    }\r\n    onMoveEnd(_e): void {\r\n        this._handleMarkerChange(this._movePos);\r\n    }\r\n    onMarkerChange(e: { latitude; longitude }): void {\r\n        this._handleMarkerChange(e);\r\n    }\r\n    protected _handleMarkerChange(e: { latitude; longitude }): void {\r\n        const { latitude, longitude } = e;\r\n        this.latitudeUi.value = latitude;\r\n        this.longitudeUi.value = longitude;\r\n        this._valueChanged();\r\n    }\r\n    protected _setDefaultLatAndLong(lat: number, lng: number): void {\r\n        if (lat && lng) {\r\n            this.latValue = lat;\r\n            this.lngValue = lng;\r\n        }\r\n    }\r\n    protected _titleChanged(): void {\r\n        this._setDefaultLatAndLong(this.latitudeUi?.value, this.longitudeUi?.value);\r\n    }\r\n    protected _valueChanged(): void {\r\n        this.latitudeUi.fireEvent('change', this.latitudeUi, this.latitudeUi.value);\r\n        this.longitudeUi.fireEvent('change', this.longitudeUi, this.longitudeUi.value);\r\n    }\r\n}\r\n","@if (customFormPanelUi) {\r\n<bnrc-form style=\"display: none\" *untilInView=\"el\" [customFormPanelUi]=\"customFormPanelUi\"></bnrc-form>\r\n} @if (!fullscreen) {\r\n<ng-container *ngTemplateOutlet=\"map; context: { inDialog: false }\"></ng-container>\r\n}\r\n\r\n<ng-template let-dialog let-dialogConfig=\"dialogConfig\" #confirmationDialog>\r\n    <fd-dialog [dialogConfig]=\"dialogConfig\" [dialogRef]=\"dialog\">\r\n        <fd-dialog-body>\r\n            <ng-container *ngTemplateOutlet=\"map; context: { inDialog: true, dialog: dialog }\"></ng-container>\r\n        </fd-dialog-body>\r\n    </fd-dialog>\r\n</ng-template>\r\n\r\n<ng-template #map let-inDialog=\"inDialog\" let-dialog=\"dialog\">\r\n    <bdc-barsa-geographic-location    \r\n        [style.height]=\"inDialog ? '100svh !important' : null\"\r\n        [defaultLocation]=\"[35.7568, 51.412]\"\r\n        [latitude]=\"latValue\"\r\n        [longitude]=\"lngValue\"\r\n        [showExitFullscreenButton]=\"inDialog\"\r\n        [showFullscreenButton]=\"!inDialog && customFieldInfo.ShowFullscreenButton\"\r\n        [showLocationButton]=\"customFieldInfo.ShowLocationButton\"\r\n        [setAutomaticLocation]=\"customFieldInfo.GetCurrentLocation\"\r\n        [disableOrReadonly]=\"(disableOrReadonly$ | async) === true\"\r\n        [draggable]=\"customFieldInfo.Draggable === true\"\r\n        (fullscreen)=\"onFullscreen()\"\r\n        (markerChange)=\"onMarkerChange($event)\"\r\n        (move)=\"onMove($event)\"\r\n        (errorEvent)=\"onErrorNavigatorLocation($event)\"\r\n        (moveEnd)=\"onMoveEnd($event)\"\r\n        (exitFullscreen)=\"onExistFullscreen(); dialog && dialog.close('Continue')\"\r\n    ></bdc-barsa-geographic-location>\r\n</ng-template>\r\n","import { ChangeDetectionStrategy, Component, OnInit } from '@angular/core';\r\nimport { MetaobjectDataModel, ReportViewBaseComponent } from 'barsa-novin-ray-core';\r\n\r\nimport { MicroProcessFlowViewSetting } from '../models';\r\n@Component({\r\n    selector: 'bdc-token-report-view',\r\n    templateUrl: './token-report-view.component.html',\r\n    styleUrls: ['./token-report-view.component.scss'],\r\n    changeDetection: ChangeDetectionStrategy.OnPush,\r\n    standalone: false\r\n})\r\nexport class TokenReportViewComponent extends ReportViewBaseComponent<MicroProcessFlowViewSetting> implements OnInit {\r\n    fieldTitle: string;\r\n    fieldIcon: string;\r\n    fieldState: string;\r\n    mode: string;\r\n    arrowRight: string;\r\n\r\n    ngOnInit(): void {\r\n        super.ngOnInit();\r\n    }\r\n    onRemoveItem(mo: MetaobjectDataModel, index: number): void {\r\n        this.rowCheck.emit({ mo, index });\r\n        let itemId = 'RemoveFromList';\r\n        if (this.viewSetting?.DeleteAction === '1') {\r\n            itemId = 'Delete';\r\n        }\r\n\r\n        this.executeToolbarButton.emit({ itemId });\r\n    }\r\n}\r\n","@for (mo of moDataList | multipleGroupBy: groupby; track mo; let index = $index; let last = $last) { @if (!mo.parent ||\r\nmo.parent?.expanded) {\r\n<ng-container\r\n    *ngTemplateOutlet=\"\r\n        itemTemplate;\r\n        context: {\r\n            $implicit: mo,\r\n            index: index,\r\n            last: last,\r\n            columns: columns,\r\n            moDataList: moDataList,\r\n            moDataListCount: moDataList.length\r\n        }\r\n    \"\r\n></ng-container>\r\n} }\r\n<ng-template\r\n    #itemTemplate\r\n    let-mo\r\n    let-index=\"index\"\r\n    let-last=\"last\"\r\n    let-columns=\"columns\"\r\n    let-moDataListCount=\"moDataListCount\"\r\n    let-moDataList=\"moDataList\"\r\n>\r\n    <fd-token fdCozy (onCloseClick)=\"onRemoveItem(mo, index)\" [readOnly]=\"false\">{{\r\n        columns[0].Caption | rval: mo:columns:true\r\n    }}</fd-token>\r\n</ng-template>\r\n","import { ChangeDetectionStrategy, Component, Input, OnInit, TemplateRef, inject } from '@angular/core';\r\nimport { DialogService } from '@fundamental-ngx/core';\r\nimport { ColumnRendererBase,LayoutSetting, MetaobjectDataModel, BarsaApi } from 'barsa-novin-ray-core';\r\n\r\n\r\n@Component({\r\n    selector: 'bdc-column-form-viewer',\r\n    templateUrl: './column-form-viewer.component.html',\r\n    styleUrls: ['./column-form-viewer.component.scss'],\r\n    changeDetection: ChangeDetectionStrategy.OnPush,\r\n    standalone: false\r\n})\r\nexport class ColumnFormViewerComponent extends ColumnRendererBase implements OnInit {\r\n    @Input() layout94: LayoutSetting;\r\n    @Input() parameters: MetaobjectDataModel;\r\n    isOpen = false;\r\n    dom: HTMLElement;\r\n    formParam;\r\n    confirmationReason: string;\r\n    loadForm = false;\r\n    loading = true;\r\n    newPage = false;\r\n    private _dialogService = inject(DialogService);    \r\n    ngOnInit(): void {\r\n        super.ngOnInit();\r\n        const columnMo = this.mo[this.column.Name];\r\n        if (!columnMo) {\r\n            return;\r\n        }\r\n        this.newPage = this.parameters.NewPage;\r\n        this.formParam = {\r\n            moId: columnMo.Id,\r\n            typeDefId: columnMo.$TypeDefId,\r\n            viewId: this.parameters.MetaView?.Id\r\n        };\r\n    }\r\n    openPopover(): void {\r\n        this.isOpen = true;\r\n        this.loadForm = true;\r\n    }\r\n\r\n    onFormRendered(popover): void {\r\n        this.loading = false;\r\n        if (this.newPage) {\r\n            return;\r\n        }\r\n        popover.close();\r\n        setTimeout(() => {\r\n            popover.open();\r\n        });\r\n    }\r\n    openMoInNewPage(): void {\r\n        const columnMo = this.mo[this.column.Name];\r\n        BarsaApi.Bw.Form.Show({\r\n            MoId: columnMo.Id,\r\n            MoContext: {\r\n                ViewId: this.parameters.MetaView?.Id\r\n            }\r\n        });\r\n    }\r\n    openDialog(dialog: TemplateRef<any>, container: HTMLElement): void {\r\n        const dialogRef = this._dialogService.open(dialog, {\r\n            responsivePadding: true,\r\n            focusTrapped: true,\r\n            backdropClickCloseable: true,\r\n            closeOnNavigation: true,\r\n            hasBackdrop: false,\r\n            container,\r\n            escKeyCloseable: true,\r\n            mobile: this.deviceSize === 's'\r\n        });\r\n\r\n        dialogRef.afterClosed.subscribe(\r\n            (result) => {\r\n                this.confirmationReason = 'Dialog closed with result: ' + result;\r\n            },\r\n            (error) => {\r\n                this.confirmationReason = 'Dialog dismissed with result: ' + error;\r\n            }\r\n        );\r\n    }\r\n}\r\n","<ng-container *ngTemplateOutlet=\"newPage || deviceSize === 's' ? renderColumn : popoverTpl\"> </ng-container>\r\n<ng-template #popoverTpl>\r\n    <fd-popover\r\n        #popover\r\n        [closeOnOutsideClick]=\"true\"\r\n        [noArrow]=\"false\"\r\n        placement=\"bottom-start\"\r\n        [title]=\"column.Caption\"\r\n    >\r\n        <fd-popover-control>\r\n            <ng-container *ngTemplateOutlet=\"renderColumn\"></ng-container>\r\n        </fd-popover-control>\r\n        <fd-popover-body class=\"popover-form-inColumn\">\r\n            @if (loading && loadForm) {\r\n            <div style=\"position: relative; height: 80px; width: 100%\">\r\n                <bsu-mask [top]=\"'50%'\"></bsu-mask>\r\n            </div>\r\n            } @if (this.mo.Id && loadForm) {\r\n            <bnrc-form\r\n                [params]=\"formParam\"\r\n                (formRendered)=\"onFormRendered(popover)\"\r\n                (formClose)=\"popover.close()\"\r\n                class=\"form-inColumn\"\r\n            ></bnrc-form>\r\n            }\r\n        </fd-popover-body>\r\n    </fd-popover>\r\n</ng-template>\r\n<ng-template #renderColumn>\r\n    <bsu-column-renderer\r\n        [mo]=\"mo\"\r\n        [column]=\"column\"\r\n        [value]=\"column | columnValue: mo | bbbTranslate\"\r\n        [icon]=\"column | columnIcon: mo\"\r\n        [editMode]=\"editMode\"\r\n        [isChecked]=\"isChecked\"\r\n        [index]=\"index\"\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        (click)=\"newPage || deviceSize === 's' ? openMoInNewPage() : openPopover()\"\r\n    ></bsu-column-renderer>\r\n</ng-template>\r\n","import { ChangeDetectionStrategy, Component, Input, OnInit } from '@angular/core';\r\n\r\nimport {\r\n    BaseViewItemPropsComponent,\r\n    MetaobjectDataModel,\r\n    TypeUlvMainCtrlr,\r\n    FormComponentParams,\r\n    BarsaApi\r\n} from 'barsa-novin-ray-core';\r\n\r\n@Component({\r\n    selector: 'bdc-form-report-view-item',\r\n    templateUrl: './form-report-view-item.component.html',\r\n    styleUrls: ['./form-report-view-item.component.scss'],\r\n    changeDetection: ChangeDetectionStrategy.OnPush,\r\n    standalone: false\r\n})\r\nexport class FormReportViewItemComponent extends BaseViewItemPropsComponent implements OnInit {\r\n    @Input() mo: MetaobjectDataModel;\r\n    @Input() UlvMainCtrlr: TypeUlvMainCtrlr;\r\n    @Input() fieldDict: Record<string, string>;\r\n    @Input() saveOnValueChanged: boolean;\r\n    formParams: FormComponentParams;\r\n    toolbarItems: any[] = [];\r\n    ngOnInit(): void {\r\n        super.ngOnInit();\r\n        this.mo.$FieldDict = this.fieldDict;\r\n        delete this.mo.$Wrapper;\r\n        const meFormSetting = JSON.parse(JSON.stringify(this.formSetting));\r\n        const mo = new BarsaApi.Common.MetaObjectWeb(this.mo);\r\n\r\n        meFormSetting.Data = { Mo: this.mo };\r\n        const formpanelCtrlrParams = this.UlvMainCtrlr.DataCtrlr.GetEditFormParams(mo, false, false, null, null);\r\n        this.formParams = {\r\n            ...formpanelCtrlrParams,\r\n            formSetting: meFormSetting,\r\n            moId: this.mo.Id,\r\n            typeDefId: this.typeDefId,\r\n            isSimple: true,\r\n            viewId: meFormSetting.View.TypeViewId\r\n        };\r\n    }\r\n    onMoChanged(mo: MetaobjectDataModel): void {\r\n        this.UlvMainCtrlr.RefreshRowsByMosNoSelectionChange([mo], [], []);\r\n    }\r\n}\r\n","<bnrc-form\r\n    class=\"form-report-view-item\"\r\n    [params]=\"formParams\"\r\n    [UlvMainCtrlr]=\"UlvMainCtrlr\"\r\n    (moChanged)=\"onMoChanged($event)\"\r\n    [saveOnChange]=\"saveOnValueChanged\"\r\n></bnrc-form>\r\n","import { ChangeDetectionStrategy, Component, OnInit, ViewChild, ViewContainerRef } from '@angular/core';\r\n\r\nimport { ReportViewBaseComponent, BarsaApi, FormSetting, MetaobjectDataModel } from 'barsa-novin-ray-core';\r\nimport { FormReportViewSetting } from '../models';\r\n\r\n@Component({\r\n    selector: 'bdc-form-report-view',\r\n    templateUrl: './form-report-view.component.html',\r\n    styleUrls: ['./form-report-view.component.scss'],\r\n    changeDetection: ChangeDetectionStrategy.OnPush,\r\n    standalone: false\r\n})\r\nexport class FormReportViewComponent extends ReportViewBaseComponent<FormReportViewSetting> implements OnInit {\r\n    @ViewChild('containerRef', { static: true, read: ViewContainerRef }) containerRef: ViewContainerRef;\r\n    formSettingItem: FormSetting;\r\n    parameters: FormReportViewSetting;\r\n    ngOnInit(): void {\r\n        super.ngOnInit();\r\n        const x = BarsaApi.Bw.RunBlMethod(\r\n            'GetSerializeFormSetting',\r\n            this.parameters?.MetaTypeDefValue.Id || this.typeViewId\r\n        );\r\n        this.formSettingItem = BarsaApi.Ext.decode(x);\r\n    }\r\n    _trackByRow(_index: number, row: MetaobjectDataModel): string {\r\n        return `${row.Id}`;\r\n    }\r\n}\r\n","@if (moDataList?.length) { @if (formSettingItem) { @for (mo of moDataList; track _trackByRow(index, mo); let index =\r\n$index; let last = $last) {\r\n<bdc-form-report-view-item\r\n    [setting]=\"viewSetting\"\r\n    [formSetting]=\"formSettingItem\"\r\n    [fieldDict]=\"fieldDict\"\r\n    [typeDefId]=\"typeDefId\"\r\n    [columnsCount]=\"columnsCount\"\r\n    [allColumns]=\"allColumns\"\r\n    [columns]=\"columns\"\r\n    [moDataList]=\"moDataList\"\r\n    [UlvMainCtrlr]=\"UlvMainCtrlr\"\r\n    [index]=\"index\"\r\n    [mo]=\"mo\"\r\n    [rtl]=\"rtl\"\r\n    [saveOnValueChanged]=\"viewSetting.SaveOnValueChanged\"\r\n    (editFormPanelSave)=\"onEditFormPanelSave($event)\"\r\n    (editFormPanelCancel)=\"onEditFormPanelCancel(mo)\"\r\n    (click)=\"onRowCheck({mo, index})\"\r\n>\r\n</bdc-form-report-view-item>\r\n} } } @else {\r\n<bsu-no-data></bsu-no-data>\r\n}\r\n","import { Component, OnInit, ChangeDetectionStrategy } from '@angular/core';\r\nimport { FormPropsBaseComponent, FormPanelService } from 'barsa-novin-ray-core';\r\n\r\n@Component({\r\n    selector: 'bdc-form-card',\r\n    templateUrl: './form-card.component.html',\r\n    styleUrls: ['./form-card.component.scss'],\r\n    changeDetection: ChangeDetectionStrategy.OnPush,\r\n    providers: [FormPanelService],\r\n    standalone: false\r\n})\r\nexport class FormCardComponent extends FormPropsBaseComponent implements OnInit {\r\n    ngOnInit(): void {\r\n        super.ngOnInit();\r\n    }\r\n}\r\n","<fd-card cardType=\"object\">\r\n    @if (toolbarItems) {\r\n    <!-- <fd-card-header *ngIf=\"toolbarVisible !== false && toolbarItems.length\">\r\n    <div fd-card-title></div>\r\n    <div fd-card-subtitle style=\"width: 100%\"></div>\r\n  </fd-card-header> -->\r\n    }\r\n    <fd-card-content>\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    </fd-card-content>\r\n</fd-card>\r\n","import {\r\n    ChangeDetectionStrategy,\r\n    Component,\r\n    Input,\r\n    OnInit,\r\n    inject,\r\n    ElementRef,\r\n    Renderer2,\r\n    WritableSignal,\r\n    signal,\r\n    SimpleChanges\r\n} from '@angular/core';\r\nimport { ProgressIndicatorState } from '@fundamental-ngx/core';\r\nimport {\r\n    LayoutSetting,\r\n    MetaobjectDataModel,\r\n    PortalService,\r\n    BarsaApi,\r\n    ColumnValueOfParametersPipe,\r\n    ColumnRendererBase,\r\n    EnumCaptionPipe\r\n} from 'barsa-novin-ray-core';\r\nimport { ColumnValueState, ColumnValueStates, resolveColumnValueState } from '../column-value-state';\r\n\r\nconst PROGRESS_INDICATOR_STATES: ReadonlySet<ProgressIndicatorState> = new Set([\r\n    'informative',\r\n    'positive',\r\n    'critical',\r\n    'negative'\r\n]);\r\n\r\n@Component({\r\n    selector: 'bdc-column-progressbar',\r\n    templateUrl: './column-progressbar.component.html',\r\n    styleUrls: ['./column-progressbar.component.scss'],\r\n    changeDetection: ChangeDetectionStrategy.OnPush,\r\n    standalone: false\r\n})\r\nexport class ColumnProgressbarComponent extends ColumnRendererBase implements OnInit {\r\n    @Input() layout94: LayoutSetting;\r\n    @Input() parameters: ColumnProgressbarSettings;\r\n\r\n    _el = inject(ElementRef);\r\n    _renderer2 = inject(Renderer2);\r\n    _portalService = inject(PortalService);\r\n    _columnValueOfParametersPipe = inject(ColumnValueOfParametersPipe);\r\n    _enumCaptionPipe = inject(EnumCaptionPipe);\r\n    isRtl = true;\r\n\r\n    maxValue: WritableSignal<string> = signal('100');\r\n    customUntitValueNow: WritableSignal<number> = signal(0);\r\n    unit: WritableSignal<string> = signal('MB');\r\n    valueText: WritableSignal<string> = signal('');\r\n    state: WritableSignal<ProgressIndicatorState> = signal('informative');\r\n\r\n    ngOnInit(): void {\r\n        super.ngOnInit();\r\n        const valueState = resolveColumnValueState(this.parameters?.States, this.value);\r\n        this._setMaxValue(this.mo);\r\n        this._setState(valueState);\r\n        this._setUnit();\r\n        this._setValueText(valueState);\r\n        this._setRtl();\r\n    }\r\n    ngOnChanges(changes: SimpleChanges): void {\r\n        super.ngOnChanges(changes);\r\n        const { mo, value, parameters } = changes;\r\n        if ((mo && !mo.firstChange) || (value && !value.firstChange) || (parameters && !parameters.firstChange)) {\r\n            const currentMo = (mo && mo.currentValue) || this.mo;\r\n            const valueState = resolveColumnValueState(this.parameters?.States, this.value);\r\n            this._setMaxValue(currentMo);\r\n            this._setState(valueState);\r\n            this._setUnit();\r\n            this._setColor(currentMo, valueState);\r\n            this._setValueText(valueState);\r\n        }\r\n    }\r\n    ngAfterViewInit(): void {\r\n        super.ngAfterViewInit();\r\n        this._setColor(this.mo, resolveColumnValueState(this.parameters?.States, this.value));\r\n    }\r\n    _setRtl(): void {\r\n        this.isRtl = this._portalService.isRtl;\r\n    }\r\n    _setState(valueState: ColumnProgressbarState | null): void {\r\n        if (this.parameters?.State$Caption) {\r\n            this.state.set(this.parameters.State$Caption);\r\n        }\r\n\r\n        const stateOverride = this._stateOverride(valueState);\r\n        if (stateOverride) {\r\n            this.state.set(stateOverride);\r\n        }\r\n    }\r\n    _setUnit(): void {\r\n        if (this.parameters?.Units) {\r\n            this.unit.set(this.parameters.Units);\r\n        }\r\n    }\r\n    _setValueText(valueState: ColumnProgressbarState | null): void {\r\n        const t = String.fromCharCode(0x202a);\r\n        const baseValueText = this.isRtl\r\n            ? `${t} ${this.parameters?.HideMaxValue ? '' : this.maxValue()}  ${\r\n                  BarsaApi.BBB[this.unit()] || this.unit()\r\n              } ${this.signalValue()}`\r\n            : `${this.signalValue()} ${BarsaApi.BBB[this.unit()] || this.unit()} ${this.maxValue()}`;\r\n        const textOverride = this._firstConfiguredValue(valueState?.ValueText, valueState?.Note);\r\n        this.valueText.set(textOverride != null ? String(textOverride) : baseValueText);\r\n    }\r\n    _setMaxValue(mo: MetaobjectDataModel): void {\r\n        const { MaxValue, MaxValueField } = this.parameters ?? {};\r\n        if (MaxValue || MaxValueField) {\r\n            this.maxValue.set(\r\n                this._columnValueOfParametersPipe.transform(this.allColumns, mo, MaxValueField ?? '', MaxValue ?? '')\r\n            );\r\n        }\r\n    }\r\n    _setColor(mo: MetaobjectDataModel, valueState: ColumnProgressbarState | null): void {\r\n        const { Color, ColorField } = this.parameters ?? {};\r\n        let color: unknown = null;\r\n        if (Color || ColorField) {\r\n            color = this._columnValueOfParametersPipe.transform(this.allColumns, mo, ColorField ?? '', Color ?? '');\r\n        }\r\n\r\n        const stateColor = this._firstConfiguredValue(valueState?.Color, valueState?.ValueColor);\r\n        if (stateColor != null) {\r\n            color = stateColor;\r\n        } else if (this._stateOverride(valueState)) {\r\n            // state معنایی از رنگ دستی پایه مقدم است تا رنگ بومی Fundamental دیده شود.\r\n            color = null;\r\n        }\r\n        const dom = this._el.nativeElement as HTMLElement;\r\n        const progressBar = dom.querySelector('.fd-progress-indicator__progress-bar');\r\n        if (progressBar) {\r\n            if (color != null && String(color).trim() !== '') {\r\n                this._renderer2.setStyle(progressBar, 'background-color', color);\r\n            } else {\r\n                this._renderer2.removeStyle(progressBar, 'background-color');\r\n            }\r\n        }\r\n    }\r\n\r\n    private _isProgressIndicatorState(value: unknown): value is ProgressIndicatorState {\r\n        return typeof value === 'string' && PROGRESS_INDICATOR_STATES.has(value as ProgressIndicatorState);\r\n    }\r\n\r\n    private _stateOverride(valueState: ColumnProgressbarState | null): ProgressIndicatorState | null {\r\n        const state = this._enumCaptionPipe.transform(valueState, 'State');\r\n        return this._isProgressIndicatorState(state) ? state : null;\r\n    }\r\n\r\n    /** اولین مقدار واقعاً تنظیم‌شده را برمی‌گرداند؛ خالی تنظیم پایه را پاک نمی‌کند. */\r\n    private _firstConfiguredValue(...values: unknown[]): any | null {\r\n        return values.find((value) => value != null && String(value).trim() !== '') ?? null;\r\n    }\r\n}\r\n\r\ninterface ColumnProgressbarSettings extends MetaobjectDataModel {\r\n    ColorField?: string;\r\n    Color?: string;\r\n    Units?: string;\r\n    MaxValue?: string;\r\n    MaxValueField?: string;\r\n    State?: number | string;\r\n    State$Caption?: ProgressIndicatorState;\r\n    ValueText?: string;\r\n    HideMaxValue?: boolean;\r\n    States?: ColumnValueStates<ColumnProgressbarState>;\r\n}\r\n\r\ninterface ColumnProgressbarState extends ColumnValueState {\r\n    /** enum چندمقداری ProgressIndicator؛ مقدار semantic از `State$Caption` خوانده می‌شود */\r\n    State?: number | string;\r\n    /** رنگ دستی نوار؛ `ValueColor` alias سازگار با ساختار Trend/KPI است */\r\n    Color?: string;\r\n    ValueColor?: string;\r\n    /** متن جایگزین نوار؛ `Note` alias سازگار با ساختار Trend/KPI است */\r\n    ValueText?: string;\r\n    Note?: string;\r\n}\r\n","<fd-progress-indicator\r\n    [state]=\"state()\"\r\n    [valueNow]=\"signalValue() | strToNum\"\r\n    [valueMax]=\"maxValue() | strToNum\"\r\n    [unit]=\"unit()\"\r\n    [valueText]=\"valueText()\"\r\n></fd-progress-indicator>\r\n","import {\r\n    ChangeDetectionStrategy,\r\n    Component,\r\n    Input,\r\n    OnInit,\r\n    SimpleChanges,\r\n    inject,\r\n    signal,\r\n    WritableSignal\r\n} from '@angular/core';\r\nimport { GenericTagType } from '@fundamental-ngx/core';\r\nimport {\r\n    LayoutSetting,\r\n    MetaobjectDataModel,\r\n    ColumnValueOfParametersPipe,\r\n    ColumnRendererBase,\r\n    EnumCaptionPipe,\r\n    ReadableTextColorPipe\r\n} from 'barsa-novin-ray-core';\r\nimport { ColumnValueState, ColumnValueStates, resolveColumnValueState } from '../column-value-state';\r\n\r\nconst GENERIC_TAG_TYPES: ReadonlySet<GenericTagType> = new Set(['error', 'success', 'warning', 'information']);\r\n\r\n@Component({\r\n    selector: 'bdc-column-chip',\r\n    templateUrl: './column-chip.component.html',\r\n    styleUrls: ['./column-chip.component.scss'],\r\n    changeDetection: ChangeDetectionStrategy.OnPush,\r\n    standalone: false\r\n})\r\nexport class ColumnChipComponent extends ColumnRendererBase implements OnInit {\r\n    @Input() layout94: LayoutSetting;\r\n    @Input() parameters: ColumnChipSettings;\r\n    state: WritableSignal<GenericTagType | null> = signal('success');\r\n    customColor: WritableSignal<string | null> = signal(null);\r\n    customDecoratorColor: WritableSignal<string | null> = signal(null);\r\n    customTextColor: WritableSignal<string | null> = signal(null);\r\n    _columnValueOfParametersPipe = inject(ColumnValueOfParametersPipe);\r\n    _enumCaptionPipe = inject(EnumCaptionPipe);\r\n    _readableTextColorPipe = inject(ReadableTextColorPipe);\r\n    /** فقط متن overrideشده‌ی state؛ null یعنی استفاده‌ی مستقیم از signalValue قدیمی. */\r\n    chipValue: WritableSignal<any | null> = signal(null);\r\n    ngOnInit(): void {\r\n        super.ngOnInit();\r\n        this._setStateField(this.mo);\r\n    }\r\n    ngOnChanges(changes: SimpleChanges): void {\r\n        super.ngOnChanges(changes);\r\n        const { mo, value, parameters } = changes;\r\n        if ((mo && !mo.firstChange) || (value && !value.firstChange) || (parameters && !parameters.firstChange)) {\r\n            this._setStateField((mo && mo.currentValue) || this.mo);\r\n        }\r\n    }\r\n    _setStateField(mo): void {\r\n        this.chipValue.set(null);\r\n        this._resetVisualState();\r\n\r\n        const { State$Caption, StateField } = this.parameters ?? {};\r\n        if (State$Caption || StateField) {\r\n            const x = this._columnValueOfParametersPipe.transform(\r\n                this.allColumns,\r\n                mo,\r\n                StateField ?? '',\r\n                State$Caption ?? '',\r\n                true\r\n            );\r\n            this._applyVisualState(x, false);\r\n        }\r\n\r\n        const valueState = resolveColumnValueState(this.parameters?.States, this.value);\r\n        if (!valueState) {\r\n            return;\r\n        }\r\n\r\n        const configuredColor = this._firstConfiguredValue(valueState.Color, valueState.ValueColor);\r\n        const configuredState = this._enumCaptionPipe.transform(valueState, 'State');\r\n        const stateOverride = this._firstConfiguredValue(configuredState);\r\n        if (configuredColor != null) {\r\n            const colorApplied = this._applyVisualState(configuredColor, true);\r\n            if (!colorApplied && stateOverride != null) {\r\n                this._applyVisualState(stateOverride, true);\r\n            }\r\n        } else if (stateOverride != null) {\r\n            this._applyVisualState(stateOverride, true);\r\n        }\r\n\r\n        const textOverride = this._firstConfiguredValue(valueState.Text, valueState.Note);\r\n        if (textOverride != null) {\r\n            this.chipValue.set(textOverride);\r\n        }\r\n    }\r\n\r\n    /** مقدار semantic یا رنگ CSS را با همان قرارداد قدیمی چیپ اعمال می‌کند. */\r\n    private _applyVisualState(value: unknown, preserveOnInvalid: boolean): boolean {\r\n        if (this._isGenericTagType(value)) {\r\n            this.state.set(value);\r\n            this.customColor.set(null);\r\n            this.customDecoratorColor.set(null);\r\n            this.customTextColor.set(null);\r\n            return true;\r\n        }\r\n\r\n        const readableTextColor = this._readableTextColorPipe.transform(value, this._el.nativeElement);\r\n        if (readableTextColor) {\r\n            const backgroundColor = String(value);\r\n            this.state.set(null);\r\n            this.customColor.set(backgroundColor);\r\n            this.customDecoratorColor.set(this._getDecoratorColor(backgroundColor, readableTextColor));\r\n            this.customTextColor.set(readableTextColor);\r\n            return true;\r\n        } else if (!preserveOnInvalid) {\r\n            this.state.set(null);\r\n            this.customColor.set(null);\r\n            this.customDecoratorColor.set(null);\r\n            this.customTextColor.set(null);\r\n        }\r\n        return false;\r\n    }\r\n\r\n    private _resetVisualState(): void {\r\n        this.state.set('success');\r\n        this.customColor.set(null);\r\n        this.customDecoratorColor.set(null);\r\n        this.customTextColor.set(null);\r\n    }\r\n\r\n    /** اولین مقدار واقعاً تنظیم‌شده را برمی‌گرداند؛ خالی تنظیم پایه را پاک نمی‌کند. */\r\n    private _firstConfiguredValue(...values: unknown[]): any | null {\r\n        return values.find((value) => value != null && String(value).trim() !== '') ?? null;\r\n    }\r\n\r\n    private _isGenericTagType(value: unknown): value is GenericTagType {\r\n        return typeof value === 'string' && GENERIC_TAG_TYPES.has(value as GenericTagType);\r\n    }\r\n\r\n    private _getDecoratorColor(backgroundColor: string, textColor: string): string {\r\n        const mixedColor = `color-mix(in srgb, ${backgroundColor} 45%, ${textColor} 55%)`;\r\n        return typeof CSS !== 'undefined' && CSS.supports('color', mixedColor) ? mixedColor : textColor;\r\n    }\r\n}\r\n\r\ninterface ColumnChipSettings extends MetaobjectDataModel {\r\n    State?: string | number;\r\n    State$Caption?: string;\r\n    StateField?: string;\r\n    ShowColumnCaption?: boolean;\r\n    States?: ColumnValueStates<ColumnChipState>;\r\n}\r\n\r\ninterface ColumnChipState extends ColumnValueState {\r\n    /** enum چندمقداری GenericTag؛ مقدار semantic از `State$Caption` خوانده می‌شود */\r\n    State?: string | number;\r\n    /** رنگ پس‌زمینه‌ی دستی؛ `ValueColor` alias سازگار با ساختار Trend/KPI است */\r\n    Color?: string;\r\n    ValueColor?: string;\r\n    /** متن جایگزین مقدار چیپ؛ `Note` alias سازگار با ساختار Trend/KPI است */\r\n    Text?: string;\r\n    Note?: string;\r\n}\r\n","@if(value){\r\n<div\r\n    fd-generic-tag\r\n    [type]=\"state()\"\r\n    [class.hidename]=\"!parameters?.ShowColumnCaption\"\r\n    [name]=\"parameters?.ShowColumnCaption ? column.Alias : ''\"\r\n    [value]=\"chipValue() ?? signalValue()\"\r\n    [style.--fdGenericTag_Background_Color]=\"customColor()\"\r\n    [style.--fdGenericTag_Decorator_Color]=\"customDecoratorColor()\"\r\n    [style.color]=\"customTextColor()\"\r\n    [style.--fdGenericTag_Name_Color]=\"customTextColor()\"\r\n    [style.--fdGenericTag_Value_Color]=\"customTextColor()\"\r\n    [attr.title]=\"value\"\r\n></div>\r\n}\r\n","import { ChangeDetectionStrategy, Component, SimpleChanges, HostBinding } from '@angular/core';\r\nimport { SafeHtml } from '@angular/platform-browser';\r\nimport { IRichTextColumnView, RichTextColumnController } from 'barsa-sap-ui';\r\nimport { ColumnRendererViewBase } from 'barsa-novin-ray-core';\r\n\r\n@Component({\r\n    selector: 'bdc-column-rich-text',\r\n    templateUrl: './column-rich-text.component.html',\r\n    styleUrls: ['./column-rich-text.component.scss'],\r\n    changeDetection: ChangeDetectionStrategy.OnPush,\r\n    standalone: false\r\n})\r\nexport class ColumnRichTextComponent\r\n    extends ColumnRendererViewBase<RichTextColumnController>\r\n    implements IRichTextColumnView\r\n{\r\n    @HostBinding('class') classList: string;\r\n    text: SafeHtml;\r\n    controller: RichTextColumnController;\r\n    /**\r\n     *\r\n     */\r\n    constructor() {\r\n        super();\r\n        this.controller = new RichTextColumnController(this);\r\n    }\r\n\r\n    ngOnInit(): void {\r\n        super.ngOnInit();\r\n        this.controller.updateText(this.value);\r\n    }\r\n    ngOnChanges(changes: SimpleChanges): void {\r\n        super.ngOnChanges(changes);\r\n        const { mo } = changes;\r\n        if (mo && !mo.firstChange) {\r\n            this.controller.updateText(this.value);\r\n        }\r\n    }\r\n    setText(text: SafeHtml): void {\r\n        this.text = text;\r\n    }\r\n    setClassList(classList: string): void {\r\n        this.classList = classList;\r\n    }\r\n}\r\n","<div class=\"tw-flex-1\" [innerHtml]=\"text\"></div>\r\n","import {\r\n    ChangeDetectionStrategy,\r\n    Component,\r\n    Input,\r\n    OnInit,\r\n    SimpleChanges,\r\n    WritableSignal,\r\n    inject,\r\n    signal\r\n} from '@angular/core';\r\nimport { GenericTagType } from '@fundamental-ngx/core';\r\nimport {\r\n    ColumnRendererBase,\r\n    ColumnValueOfParametersPipe,\r\n    EnumCaptionPipe,\r\n    LayoutSetting,\r\n    MetaobjectDataModel\r\n} from 'barsa-novin-ray-core';\r\nimport { ColumnValueState, ColumnValueStates, resolveColumnValueState } from '../column-value-state';\r\n\r\ntype TrendDirection = 'up' | 'down' | 'flat';\r\n\r\n/**\r\n * نشانگر روند سلول گزارش به‌صورت فلش معنایی SAP (▲/▼/—).\r\n * قرارداد `X`/`XField` (مقدار ثابت یا مقدار یک فیلد) را از طریق\r\n * `ColumnValueOfParametersPipe` پشتیبانی می‌کند.\r\n */\r\n@Component({\r\n    selector: 'bdc-barsa-column-trend',\r\n    templateUrl: './barsa-column-trend.component.html',\r\n    styleUrls: ['./barsa-column-trend.component.scss'],\r\n    changeDetection: ChangeDetectionStrategy.OnPush,\r\n    standalone: false\r\n})\r\nexport class BarsaColumnTrendComponent extends ColumnRendererBase implements OnInit {\r\n    private static readonly GLYPHS: Record<TrendDirection, string> = {\r\n        up: '▲',\r\n        down: '▼',\r\n        flat: '—'\r\n    };\r\n    private static readonly DEFAULT_TEXTS: Record<TrendDirection, string> = {\r\n        up: 'رو به بهبود',\r\n        down: 'رو به کاهش',\r\n        flat: 'بدون تغییر'\r\n    };\r\n    /** نگاشت toneهای سرور/KPI به stateهای معتبر GenericTag. */\r\n    private static readonly TONE_STATES: Record<string, GenericTagType> = {\r\n        success: 'success',\r\n        sucess: 'success',\r\n        positive: 'success',\r\n        warning: 'warning',\r\n        critical: 'warning',\r\n        danger: 'error',\r\n        error: 'error',\r\n        negative: 'error',\r\n        info: 'information',\r\n        information: 'information',\r\n        neutral: 'information',\r\n        offline: 'information',\r\n        all: 'information',\r\n        brand: 'information'\r\n    };\r\n\r\n    @Input() layout94: LayoutSetting;\r\n    @Input() parameters: ColumnTrendSettings;\r\n\r\n    /** نماد نمایشی روند */\r\n    glyph: WritableSignal<string> = signal('—');\r\n    /** وضعیت معنایی SAP برای رنگ‌آمیزی هماهنگ با تم */\r\n    state: WritableSignal<GenericTagType> = signal('information');\r\n    /** توضیح متنی جهت روند در ردیف دوم */\r\n    directionText: WritableSignal<string> = signal(BarsaColumnTrendComponent.DEFAULT_TEXTS.flat);\r\n    /** رنگ دستیِ مقدار از تنظیمات پایه یا اولین state منطبق */\r\n    customValueColor: WritableSignal<string | null> = signal(null);\r\n\r\n    private _columnValueOfParametersPipe = inject(ColumnValueOfParametersPipe);\r\n    private _enumCaptionPipe = inject(EnumCaptionPipe);\r\n\r\n    ngOnInit(): void {\r\n        super.ngOnInit();\r\n        this._compute(this.mo);\r\n    }\r\n\r\n    ngOnChanges(changes: SimpleChanges): void {\r\n        super.ngOnChanges(changes);\r\n        const { mo, value, parameters } = changes;\r\n        if ((mo && !mo.firstChange) || (value && !value.firstChange) || (parameters && !parameters.firstChange)) {\r\n            this._compute((mo && mo.currentValue) || this.mo);\r\n        }\r\n    }\r\n\r\n    /** جهت و وضعیت معنایی روند را از روی `value` و `parameters` بازمحاسبه می‌کند. */\r\n    private _compute(mo: MetaobjectDataModel): void {\r\n        let direction = this._resolveDirection(mo);\r\n        const valueState = resolveColumnValueState(this.parameters?.States, this.value);\r\n        const stateDirection = this._normalizeDirection(this._enumCaptionPipe.transform(valueState, 'Direction'));\r\n        if (stateDirection) {\r\n            direction = stateDirection;\r\n        }\r\n\r\n        let state = this._resolveDirectionState(direction);\r\n        let directionText = this._resolveDirectionText(direction);\r\n        let customValueColor = this._manualColor(this.parameters?.ValueColor);\r\n\r\n        if (valueState) {\r\n            const toneCaption = valueState['Status$Caption'];\r\n            const stateOverride = this._toneState(toneCaption);\r\n            if (stateOverride) {\r\n                state = stateOverride;\r\n            }\r\n\r\n            const stateValueColor = this._manualColor(valueState.ValueColor);\r\n            if (stateValueColor) {\r\n                customValueColor = stateValueColor;\r\n            } else if (stateOverride) {\r\n                // tone وضعیت از رنگ دستیِ پایه مقدم است.\r\n                customValueColor = null;\r\n            }\r\n\r\n            if (valueState.Note != null && String(valueState.Note).trim() !== '') {\r\n                directionText = String(valueState.Note);\r\n            }\r\n        }\r\n\r\n        this.glyph.set(BarsaColumnTrendComponent.GLYPHS[direction]);\r\n        this.state.set(state);\r\n        this.directionText.set(directionText);\r\n        this.customValueColor.set(customValueColor);\r\n    }\r\n\r\n    /** رنگ واقعی کاربر؛ مقدار پیش‌فرض مشکی color-picker مثل KPI ست‌نشده محسوب می‌شود. */\r\n    private _manualColor(raw: any): string | null {\r\n        const color = String(raw ?? '')\r\n            .trim()\r\n            .toLowerCase();\r\n        if (!color || color === '#000000' || color === '#000' || color === 'black' || color === 'rgb(0,0,0)') {\r\n            return null;\r\n        }\r\n        return String(raw).trim();\r\n    }\r\n\r\n    /** tone سرور را به GenericTagType نگاشت می‌کند؛ مقدار ناشناخته override ندارد. */\r\n    private _toneState(caption: any): GenericTagType | null {\r\n        const key = String(caption ?? '')\r\n            .trim()\r\n            .toLowerCase();\r\n        return BarsaColumnTrendComponent.TONE_STATES[key] || null;\r\n    }\r\n\r\n    /** مقدار تنظیمی را فقط وقتی یکی از جهت‌های معتبر باشد normalize می‌کند. */\r\n    private _normalizeDirection(raw: unknown): TrendDirection | null {\r\n        const direction = String(raw ?? '')\r\n            .trim()\r\n            .toLowerCase();\r\n        return direction === 'up' || direction === 'down' || direction === 'flat' ? direction : null;\r\n    }\r\n\r\n    /** متن تنظیم‌شده‌ی جهت را با مقدار پیش‌فرض نمونه‌ی داشبورد برمی‌گرداند. */\r\n    private _resolveDirectionText(direction: TrendDirection): string {\r\n        const configuredTexts: Record<TrendDirection, string | undefined> = {\r\n            up: this.parameters?.UpText,\r\n            down: this.parameters?.DownText,\r\n            flat: this.parameters?.FlatText\r\n        };\r\n        return configuredTexts[direction] ?? BarsaColumnTrendComponent.DEFAULT_TEXTS[direction];\r\n    }\r\n\r\n    /** good/bad/flat را به stateهای معنایی استاندارد SAP تبدیل می‌کند. */\r\n    private _resolveDirectionState(direction: TrendDirection): GenericTagType {\r\n        if (direction === 'flat') {\r\n            return 'information';\r\n        }\r\n\r\n        const positiveIsGood = this.parameters?.PositiveIsGood !== false;\r\n        const isGood = direction === 'up' ? positiveIsGood : !positiveIsGood;\r\n        return isGood ? 'success' : 'error';\r\n    }\r\n\r\n    /** جهت را از override یا علامت عدد سلول استخراج می‌کند. */\r\n    private _resolveDirection(mo: MetaobjectDataModel): TrendDirection {\r\n        const { DirectionField } = this.parameters ?? {};\r\n        const directionCaption = this._enumCaptionPipe.transform(this.parameters, 'Direction');\r\n        if (directionCaption || DirectionField) {\r\n            const raw = String(\r\n                this._columnValueOfParametersPipe.transform(\r\n                    this.allColumns,\r\n                    mo,\r\n                    DirectionField ?? '',\r\n                    directionCaption ?? ''\r\n                )\r\n            );\r\n            const configuredDirection = this._normalizeDirection(raw);\r\n            if (configuredDirection) {\r\n                return configuredDirection;\r\n            }\r\n        }\r\n\r\n        const numericValue = parseFloat(String(this.value).replace(/[^\\d.+-]/g, ''));\r\n        if (Number.isFinite(numericValue)) {\r\n            return numericValue > 0 ? 'up' : numericValue < 0 ? 'down' : 'flat';\r\n        }\r\n        return 'flat';\r\n    }\r\n}\r\n\r\ninterface ColumnTrendSettings extends MetaobjectDataModel {\r\n    /** enum چندمقداری جهت صریح؛ مقدار semantic از `Direction$Caption` خوانده می‌شود */\r\n    Direction?: string;\r\n    /** نام فیلدی که جهت را می‌دهد */\r\n    DirectionField?: string;\r\n    /** آیا up به‌معنای مثبت/خوب است (پیش‌فرض true) */\r\n    PositiveIsGood?: boolean;\r\n    /** عنوان واحد؛ برای نمونه «هدف» */\r\n    Unit?: string;\r\n    /** علامت چسبیده به مقدار؛ برای نمونه «٪» */\r\n    Symbol?: string;\r\n    /** توضیح حالت صعودی */\r\n    UpText?: string;\r\n    /** توضیح حالت نزولی */\r\n    DownText?: string;\r\n    /** توضیح حالت بدون تغییر */\r\n    FlatText?: string;\r\n    /** پنهان‌کردن ردیف مقدار اصلی */\r\n    HideValue?: boolean;\r\n    /** پنهان‌کردن ردیف توضیحی روند */\r\n    HideTrendText?: boolean;\r\n    /** رنگ دستی پایه‌ی مقدار؛ state منطبق می‌تواند آن را override کند */\r\n    ValueColor?: string;\r\n    /** وضعیت‌های مقدارمحور؛ آرایه‌ی خام یا MetaObjectListWeb سرور */\r\n    States?: ColumnValueStates<ColumnTrendState>;\r\n}\r\n\r\n/** بسته‌ی اختیاری یک وضعیت مقدارمحور، هم‌قرارداد با KpiState در BSUI-009. */\r\ninterface ColumnTrendState extends ColumnValueState {\r\n    /** enum چندمقداری جهت؛ مقدار semantic از `Direction$Caption` خوانده می‌شود */\r\n    Direction?: string;\r\n    ValueColor?: string;\r\n    Note?: string;\r\n    /** toneِ وضعیت؛ نامِ semantic در `State$Caption` می‌آید (مثلِ `negative`) */\r\n    Status$Caption?: string;\r\n    [key: string]: any;\r\n}\r\n","@if (value !== null && value !== undefined && value !== '') {\r\n<span\r\n    class=\"bdc-trend\"\r\n    [attr.data-state]=\"state()\"\r\n    [attr.title]=\"value\"\r\n    [class.bdc-trend--custom-color]=\"!!customValueColor()\"\r\n    [style.--bdc-trend-value-color]=\"customValueColor()\"\r\n>\r\n    @if (!parameters?.HideValue) {\r\n    <span class=\"bdc-trend__value\">\r\n        <span class=\"bdc-trend__measurement\" dir=\"ltr\">\r\n            <span>{{ signalValue() }}</span>\r\n            @if (parameters?.Symbol) {\r\n            <span>{{ parameters.Symbol }}</span>\r\n            }\r\n        </span>\r\n        @if (parameters?.Unit) {\r\n        <span class=\"bdc-trend__unit\">{{ parameters.Unit }}</span>\r\n        }\r\n    </span>\r\n    } @if (!parameters?.HideTrendText) {\r\n    <span class=\"bdc-trend__detail\">\r\n        <span class=\"bdc-trend__glyph\">{{ glyph() }}</span>\r\n        <span>{{ directionText() }}</span>\r\n    </span>\r\n    }\r\n</span>\r\n}\r\n","import { CUSTOM_ELEMENTS_SCHEMA, NgModule, NO_ERRORS_SCHEMA, inject } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { FundamentalNgxCoreModule } from '@fundamental-ngx/core';\r\n\r\nimport { BarsaNovinRayCoreModule, BaseModule, DynamicComponentService } from 'barsa-novin-ray-core';\r\nimport { BarsaSapUiModule } from 'barsa-sap-ui';\r\nimport { BarsaTilesModule } from 'barsa-tiles';\r\n\r\nimport { LoginFormComponent } from './login-form/login-form.component';\r\nimport { LoginSocialConncetionsComponent } from './login-social-conncetions/login-social-conncetions.component';\r\nimport { UiPersonComponent } from './ui-person/ui-person.component';\r\nimport { UiPersonPipe } from './ui-person/ui-person.pipe';\r\nimport { BarcodeReaderComponent } from './barcode-reader/barcode-reader.component';\r\nimport { BarcodeReaderDialogComponent } from './barcode-reader-dialog/barcode-reader-dialog.component';\r\nimport { BarcodeReaderVideoComponent } from './barcode-reader-video/barcode-reader-video.component';\r\nimport { UserMediaBaseService, WebBarcodeService } from './barcode.service';\r\nimport { SettingFormComponent } from './setting-form/setting-form.component';\r\nimport { MicroProcessFlowViewComponent } from './micro-process-flow-view/micro-process-flow-view.component';\r\nimport { UiEnumSegmentedButtonComponent } from './ui-enum-segmented-button/ui-enum-segmented-button.component';\r\nimport { TabProcessViewComponent } from './tab-process-view/tab-process-view.component';\r\nimport { UiTextFieldSearchComponent } from './ui-text-field-search/ui-text-field-search.component';\r\nimport { BarcodeFormatPipe } from './barcode-format-pipe';\r\nimport { ServiceDeskHeaderComponent } from './service-desk-header/service-desk-header.component';\r\nimport { CardContentImageAndTitleComponent } from './card-content-image-and-title/card-content-image-and-title.component';\r\nimport { CardHeaderLogoTitleSubtitleComponent } from './card-header-logo-title-subtitle/card-header-logo-title-subtitle.component';\r\nimport { FormContentQuickViewComponent } from './form-content-quick-view/form-content-quick-view.component';\r\nimport { ServiceDeskServcieDetailComponent } from './service-desk-servcie-detail/service-desk-servcie-detail.component';\r\nimport { ServiceDeskViewOfServicesComponent } from './service-desk-view-of-services/service-desk-view-of-services.component';\r\nimport { ServiceDeskCardContentMojavezhayAkhzShodeComponent } from './service-desk-card-content-mojavezhay-akhz-shode/service-desk-card-content-mojavezhay-akhz-shode.component';\r\nimport { CardHeaderBigImageTitleAndSubtitleComponent } from './card-header-big-image-title-and-subtitle/card-header-big-image-title-and-subtitle.component';\r\nimport { ServiceDeskFormLayoutContentMojavezComponent } from './service-desk-form-layout-content-mojavez/service-desk-form-layout-content-mojavez.component';\r\nimport { UlvContextMenuItemShowFileContentComponent } from './ulv-context-menu-item-show-file-content/ulv-context-menu-item-show-file-content.component';\r\nimport { ResendVerificationCodeComponent } from './resend-verification-code/resend-verification-code.component';\r\nimport { CheckboxButtonComponent } from './checkbox-button/checkbox-button.component';\r\nimport { ReportTabViewComponent } from './report-tab-view/report-tab-view.component';\r\nimport { ReportLineChartViewComponent } from './report-line-chart-view/report-line-chart-view.component';\r\nimport { CardHeaderKpiComponent } from './card-header-kpi/card-header-kpi.component';\r\nimport { ReportPanelHeadComponent } from './report-panel-head/report-panel-head.component';\r\nimport { ProgressListRowComponent } from './progress-list-row/progress-list-row.component';\r\nimport { StatusListRowComponent } from './status-list-row/status-list-row.component';\r\nimport { CardHeaderProgressStatusComponent } from './card-header-progress-status/card-header-progress-status.component';\r\nimport { CardContentLineChartComponent } from './card-content-line-chart/card-content-line-chart.component';\r\nimport { FormChartContentComponent } from './form-chart-content/form-chart-content.component';\r\nimport { TableViewVerticalColumnsComponent } from './table-view-vertical-columns/table-view-vertical-columns.component';\r\nimport { QueryStringObservableComponent } from './query-string-observable/query-string-observable.component';\r\nimport { QueryStringFormObservableComponent } from './query-string-form-observable/query-string-form-observable.component';\r\nimport { G4bDetailsComponent } from './g4b-details/g4b-details.component';\r\nimport { AvatarComponent } from './avatar/avatar.component';\r\nimport { G4bEstelamComponent } from './g4b-estelam/g4b-estelam.component';\r\nimport { TimerCountDownComponent } from './timer-count-down/timer-count-down.component';\r\nimport { MoInfoMicroProccessFlowComponent } from './mo-info-micro-proccess-flow/mo-info-micro-proccess-flow.component';\r\nimport { MicroProccessFlowComponent } from './micro-proccess-flow/micro-proccess-flow.component';\r\nimport { EnumInfoMicroProccessFlowComponent } from './enum-info-micro-proccess-flow/enum-info-micro-proccess-flow.component';\r\nimport { UiCardButtonComponent } from './ui-card-button/ui-card-button.component';\r\n\r\nimport { DataSourceToFlowItemPipe, MoListToFlowItemPipe } from './pipes';\r\nimport { UiPicturesCarouselComponent } from './ui-pictures-carousel/ui-pictures-carousel.component';\r\nimport { UiNumRateComponent } from './ui-num-rate/ui-num-rate.component';\r\nimport { MediaFileUploaderComponent } from './media-file-uploader/media-file-uploader.component';\r\nimport { SubformInRowReportComponent } from './subform-in-row-report/subform-in-row-report.component';\r\nimport { MasterDetailCardFormComponent } from './master-detail-card-form/master-detail-card-form.component';\r\nimport { ReportButtonViewComponent } from './report-button-view/report-button-view.component';\r\nimport { BarsaDocumentsComponent } from './barsa-documents/barsa-documents.component';\r\nimport { BarsaDocumentListItemComponent } from './barsa-document-list-item/barsa-document-list-item.component';\r\nimport { AcceptRejectComponent } from './accept-reject/accept-reject.component';\r\nimport { FooterComponent } from './footer/footer.component';\r\nimport { GeographicLocationComponent } from './geographic-location/geographic-location.component';\r\nimport { BarsaGeographicLocationComponent } from './barsa-geographic-location/barsa-geographic-location.component';\r\nimport { TokenReportViewComponent } from './token-report-view/token-report-view.component';\r\nimport { ColumnFormViewerComponent } from './column-form-viewer/column-form-viewer.component';\r\nimport { PlatformInputGroupModule } from '@fundamental-ngx/platform';\r\nimport { FormReportViewComponent } from './form-report-view/form-report-view.component';\r\nimport { FormReportViewItemComponent } from './form-report-view-item/form-report-view-item.component';\r\nimport { FormCardComponent } from './form-card/form-card.component';\r\nimport { ColumnProgressbarComponent } from './column-progressbar/column-progressbar.component';\r\nimport { BarsaColumnTrendComponent, ColumnChipComponent, ColumnRichTextComponent } from '../public-api';\r\n\r\nconst components = [\r\n    LoginFormComponent,\r\n    LoginSocialConncetionsComponent,\r\n    UiPersonComponent,\r\n    BarcodeReaderComponent,\r\n    BarcodeReaderDialogComponent,\r\n    BarcodeReaderVideoComponent,\r\n    SettingFormComponent,\r\n    MicroProcessFlowViewComponent,\r\n    UiEnumSegmentedButtonComponent,\r\n    TabProcessViewComponent,\r\n    UiTextFieldSearchComponent,\r\n    ServiceDeskHeaderComponent,\r\n    CardContentImageAndTitleComponent,\r\n    CardHeaderLogoTitleSubtitleComponent,\r\n    FormContentQuickViewComponent,\r\n    ServiceDeskServcieDetailComponent,\r\n    ServiceDeskViewOfServicesComponent,\r\n    ServiceDeskCardContentMojavezhayAkhzShodeComponent,\r\n    CardHeaderBigImageTitleAndSubtitleComponent,\r\n    ServiceDeskFormLayoutContentMojavezComponent,\r\n    UlvContextMenuItemShowFileContentComponent,\r\n    ResendVerificationCodeComponent,\r\n    CheckboxButtonComponent,\r\n    ReportTabViewComponent,\r\n    ReportLineChartViewComponent,\r\n    CardHeaderKpiComponent,\r\n    ReportPanelHeadComponent,\r\n    ProgressListRowComponent,\r\n    StatusListRowComponent,\r\n    CardHeaderProgressStatusComponent,\r\n    CardContentLineChartComponent,\r\n    FormChartContentComponent,\r\n    TableViewVerticalColumnsComponent,\r\n    QueryStringObservableComponent,\r\n    QueryStringFormObservableComponent,\r\n    G4bDetailsComponent,\r\n    AvatarComponent,\r\n    G4bEstelamComponent,\r\n    TimerCountDownComponent,\r\n    MoInfoMicroProccessFlowComponent,\r\n    MicroProccessFlowComponent,\r\n    EnumInfoMicroProccessFlowComponent,\r\n    UiCardButtonComponent,\r\n    UiPicturesCarouselComponent,\r\n    UiNumRateComponent,\r\n    MediaFileUploaderComponent,\r\n    SubformInRowReportComponent,\r\n    MasterDetailCardFormComponent,\r\n    ReportButtonViewComponent,\r\n    BarsaDocumentsComponent,\r\n    BarsaDocumentListItemComponent,\r\n    AcceptRejectComponent,\r\n    FooterComponent,\r\n    GeographicLocationComponent,\r\n    BarsaGeographicLocationComponent,\r\n    TokenReportViewComponent,\r\n    ColumnFormViewerComponent,\r\n    FormReportViewComponent,\r\n    FormReportViewItemComponent,\r\n    FormCardComponent,\r\n    ColumnProgressbarComponent,\r\n    ColumnChipComponent,\r\n    ColumnRichTextComponent,\r\n    BarsaColumnTrendComponent\r\n];\r\n\r\nconst pipes = [UiPersonPipe, BarcodeFormatPipe, MoListToFlowItemPipe, DataSourceToFlowItemPipe];\r\n@NgModule({\r\n    declarations: [...components, ...pipes],\r\n    schemas: [CUSTOM_ELEMENTS_SCHEMA, NO_ERRORS_SCHEMA],\r\n    imports: [\r\n        CommonModule,\r\n        BarsaNovinRayCoreModule,\r\n        ReactiveFormsModule,\r\n        BarsaSapUiModule,\r\n        BarsaTilesModule,\r\n        FundamentalNgxCoreModule,\r\n        PlatformInputGroupModule,\r\n        FormsModule\r\n    ],\r\n    providers: [UserMediaBaseService, WebBarcodeService],\r\n    exports: [...components]\r\n})\r\nexport class BarsaDevelopComponentsModule extends BaseModule {\r\n    protected dcm: DynamicComponentService;\r\n    protected dynamicComponents = [...components];\r\n    /** Inserted by Angular inject() migration for backwards compatibility */\r\n    constructor() {\r\n        const dcm = inject(DynamicComponentService);\r\n        super(dcm, 'BarsaDevelopComponentsModule');\r\n        this.dcm = dcm;\r\n    }\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i5","i1","i2","i3","i4","debounceTime","i6.BarcodeReaderVideoComponent","i7","i8","i9","i11","i12","i13","i15","i16.UiPersonPipe","takeUntil","i6","GENERIC_TAG_TYPES","i1.MicroProccessFlowComponent","i4.MoListToFlowItemPipe","i3.DataSourceToFlowItemPipe","i10","i2.BarsaDocumentListItemComponent","i4.BarsaGeographicLocationComponent","i2.FormReportViewItemComponent"],"mappings":"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"}