barsa-novin-ray-core 1.0.310 → 1.0.312

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"barsa-novin-ray-core.mjs","sources":["../../../projects/barsa-novin-ray-core/src/lib/abstract-classes/barsa-api.ts","../../../projects/barsa-novin-ray-core/src/lib/abstract-classes/base.component.ts","../../../projects/barsa-novin-ray-core/src/lib/empty-page-with-router-and-router-outlet/empty-page-with-router-and-router-outlet.component.ts","../../../projects/barsa-novin-ray-core/src/lib/empty-page-with-router-and-router-outlet/empty-page-with-router-and-router-outlet.component.html","../../../projects/barsa-novin-ray-core/src/lib/injdection-tokens.ts","../../../projects/barsa-novin-ray-core/src/lib/services/log.service.ts","../../../projects/barsa-novin-ray-core/src/lib/date-services/date.service.ts","../../../projects/barsa-novin-ray-core/src/lib/date-services/date-hijri.service.ts","../../../projects/barsa-novin-ray-core/src/lib/date-services/date-miladi.service.ts","../../../projects/barsa-novin-ray-core/src/lib/date-services/date-shamsi.service.ts","../../../projects/barsa-novin-ray-core/src/lib/device.ts","../../../projects/barsa-novin-ray-core/src/lib/constants.ts","../../../projects/barsa-novin-ray-core/src/lib/services/api.service.ts","../../../projects/barsa-novin-ray-core/src/lib/services/breadcrumb.service.ts","../../../projects/barsa-novin-ray-core/src/lib/modal-root.component.ts","../../../projects/barsa-novin-ray-core/src/lib/services/barsa-dialog.service.ts","../../../projects/barsa-novin-ray-core/src/lib/not-found/not-found.component.ts","../../../projects/barsa-novin-ray-core/src/lib/not-found/not-found.component.html","../../../projects/barsa-novin-ray-core/src/lib/services/dynamic-component.service.ts","../../../projects/barsa-novin-ray-core/src/lib/services/form-panel.service.ts","../../../projects/barsa-novin-ray-core/src/lib/services/form.service.ts","../../../projects/barsa-novin-ray-core/src/lib/services/container.service.ts","../../../projects/barsa-novin-ray-core/src/lib/services/horizontal-layout.service.ts","../../../projects/barsa-novin-ray-core/src/lib/services/layout.service.ts","../../../projects/barsa-novin-ray-core/src/lib/resolvers/portal-page.resolver.ts","../../../projects/barsa-novin-ray-core/src/lib/auth-guard.ts","../../../projects/barsa-novin-ray-core/src/lib/services/portal.service.ts","../../../projects/barsa-novin-ray-core/src/lib/services/ui.service.ts","../../../projects/barsa-novin-ray-core/src/lib/pipes/mo-report-value.pipe.ts","../../../projects/barsa-novin-ray-core/src/lib/pipes/numeral.pipe.ts","../../../projects/barsa-novin-ray-core/src/lib/pipes/groupby.pipe.ts","../../../projects/barsa-novin-ray-core/src/lib/pipes/bbb-translate.pipe.ts","../../../projects/barsa-novin-ray-core/src/lib/pipes/context-menu.pipe.ts","../../../projects/barsa-novin-ray-core/src/lib/pipes/header-facet-value.pipe.ts","../../../projects/barsa-novin-ray-core/src/lib/pipes/seperator-fix.pipe.ts","../../../projects/barsa-novin-ray-core/src/lib/pipes/convert-to-style.pipe.ts","../../../projects/barsa-novin-ray-core/src/lib/pipes/tlbButtons.pipe.ts","../../../projects/barsa-novin-ray-core/src/lib/pipes/remove-newline.pipe.ts","../../../projects/barsa-novin-ray-core/src/lib/pipes/mo-value.pipe.ts","../../../projects/barsa-novin-ray-core/src/lib/pipes/filter.pipe.ts","../../../projects/barsa-novin-ray-core/src/lib/pipes/filter-tab.pipe.ts","../../../projects/barsa-novin-ray-core/src/lib/pipes/mo-report-value-concat.pipe.ts","../../../projects/barsa-novin-ray-core/src/lib/pipes/filter-string.pipe.ts","../../../projects/barsa-novin-ray-core/src/lib/pipes/sort.pipe.ts","../../../projects/barsa-novin-ray-core/src/lib/pipes/barsa-icon-dict.pipe.ts","../../../projects/barsa-novin-ray-core/src/lib/pipes/fileinfo-count.pipe.ts","../../../projects/barsa-novin-ray-core/src/lib/pipes/control-ui.pipe.ts","../../../projects/barsa-novin-ray-core/src/lib/pipes/visible-value.pipe.ts","../../../projects/barsa-novin-ray-core/src/lib/pipes/date-time-to-caption.pipe.ts","../../../projects/barsa-novin-ray-core/src/lib/pipes/filter-toolbar-control.pipe.ts","../../../projects/barsa-novin-ray-core/src/lib/pipes/multiple-groupby.pipe.ts","../../../projects/barsa-novin-ray-core/src/lib/pipes/picture-field-source.pipe.ts","../../../projects/barsa-novin-ray-core/src/lib/pipes/fiori-icon.pipe.ts","../../../projects/barsa-novin-ray-core/src/lib/pipes/can-upload.pipe.ts","../../../projects/barsa-novin-ray-core/src/lib/pipes/list-count.pipe.ts","../../../projects/barsa-novin-ray-core/src/lib/pipes/total-summary.pipe.ts","../../../projects/barsa-novin-ray-core/src/lib/pipes/merge-fields-to-columns.pipe.ts","../../../projects/barsa-novin-ray-core/src/lib/pipes/find-column-by-db-name.pipe.ts","../../../projects/barsa-novin-ray-core/src/lib/pipes/filter-columns-by-details.pipe.ts","../../../projects/barsa-novin-ray-core/src/lib/pipes/mo-info-ulv-paging.pipe.ts","../../../projects/barsa-novin-ray-core/src/lib/pipes/mo-info-ulv-data.pipe.ts","../../../projects/barsa-novin-ray-core/src/lib/pipes/reverse.pipe.ts","../../../projects/barsa-novin-ray-core/src/lib/pipes/column-customui.pipe.ts","../../../projects/barsa-novin-ray-core/src/lib/pipes/sanitize-text.pipe.ts","../../../projects/barsa-novin-ray-core/src/lib/pipes/column-custom-component.pipe.ts","../../../projects/barsa-novin-ray-core/src/lib/pipes/column-value.pipe.ts","../../../projects/barsa-novin-ray-core/src/lib/pipes/column-icon.pipe.ts","../../../projects/barsa-novin-ray-core/src/lib/services/ulvmain.service.ts","../../../projects/barsa-novin-ray-core/src/lib/services/upload.service.ts","../../../projects/barsa-novin-ray-core/src/lib/services/network-status.service.ts","../../../projects/barsa-novin-ray-core/src/lib/services/audio-recording.service.ts","../../../projects/barsa-novin-ray-core/src/lib/services/video-recording.service.ts","../../../projects/barsa-novin-ray-core/src/lib/services/local-storage.service.ts","../../../projects/barsa-novin-ray-core/src/lib/services/indexeddb.service.ts","../../../projects/barsa-novin-ray-core/src/lib/services/barsa-storage.service.ts","../../../projects/barsa-novin-ray-core/src/lib/services/prompt-update.service.ts","../../../projects/barsa-novin-ray-core/src/lib/services/notification-sw.service.ts","../../../projects/barsa-novin-ray-core/src/lib/services/notification.service.ts","../../../projects/barsa-novin-ray-core/src/lib/services/column.service.ts","../../../projects/barsa-novin-ray-core/src/lib/abstract-classes/field-base.ts","../../../projects/barsa-novin-ray-core/src/lib/from-intersection-observer.ts","../../../projects/barsa-novin-ray-core/src/lib/abstract-classes/form-base.ts","../../../projects/barsa-novin-ray-core/src/lib/abstract-classes/form-toolbar-base.ts","../../../projects/barsa-novin-ray-core/src/lib/abstract-classes/system-base.ts","../../../projects/barsa-novin-ray-core/src/lib/abstract-classes/report-base.ts","../../../projects/barsa-novin-ray-core/src/lib/abstract-classes/report-item-base.ts","../../../projects/barsa-novin-ray-core/src/lib/abstract-classes/application-base.ts","../../../projects/barsa-novin-ray-core/src/lib/abstract-classes/layout-item-base.ts","../../../projects/barsa-novin-ray-core/src/lib/abstract-classes/layout-panel-base.ts","../../../projects/barsa-novin-ray-core/src/lib/container.component.ts","../../../projects/barsa-novin-ray-core/src/lib/abstract-classes/page-base.ts","../../../projects/barsa-novin-ray-core/src/lib/abstract-classes/number-base.ts","../../../projects/barsa-novin-ray-core/src/lib/abstract-classes/models.ts","../../../projects/barsa-novin-ray-core/src/lib/abstract-classes/files-validation-helper.ts","../../../projects/barsa-novin-ray-core/src/lib/abstract-classes/report-view-base.component.ts","../../../projects/barsa-novin-ray-core/src/lib/abstract-classes/form-props.base.ts","../../../projects/barsa-novin-ray-core/src/lib/abstract-classes/linear-list-helper.ts","../../../projects/barsa-novin-ray-core/src/lib/abstract-classes/page-with-form-handler-base.ts","../../../projects/barsa-novin-ray-core/src/lib/abstract-classes/form-page-base.ts","../../../projects/barsa-novin-ray-core/src/lib/form/form.component.ts","../../../projects/barsa-novin-ray-core/src/lib/abstract-classes/form-page.component.ts","../../../projects/barsa-novin-ray-core/src/lib/abstract-classes/base-column-props.ts","../../../projects/barsa-novin-ray-core/src/lib/abstract-classes/tile-props.ts","../../../projects/barsa-novin-ray-core/src/lib/empty-page/empty-page.component.ts","../../../projects/barsa-novin-ray-core/src/lib/empty-page/empty-page.component.html","../../../projects/barsa-novin-ray-core/src/lib/redirect-report-navigator-command/redirect-report-navigator-command.component.ts","../../../projects/barsa-novin-ray-core/src/lib/redirect-report-navigator-command/redirect-report-navigator-command.component.html","../../../projects/barsa-novin-ray-core/src/lib/portal-page/portal-page.component.ts","../../../projects/barsa-novin-ray-core/src/lib/portal-page/portal-page.component.html","../../../projects/barsa-novin-ray-core/src/lib/dynamic-component/base-dynamic.component.ts","../../../projects/barsa-novin-ray-core/src/lib/dynamic-component/dynamic-form.component.ts","../../../projects/barsa-novin-ray-core/src/lib/dynamic-component/dynamic-item.component.ts","../../../projects/barsa-novin-ray-core/src/lib/dynamic-component/base-view-props.ts","../../../projects/barsa-novin-ray-core/src/lib/dynamic-component/base-view-content-props.ts","../../../projects/barsa-novin-ray-core/src/lib/dynamic-component/base-view-item-props.ts","../../../projects/barsa-novin-ray-core/src/lib/dynamic-component/base-item-content-props.ts","../../../projects/barsa-novin-ray-core/src/lib/dynamic-component/base-form-toolbaritem-props.ts","../../../projects/barsa-novin-ray-core/src/lib/dynamic-component/dynamic-form-toolbar-item.component.ts","../../../projects/barsa-novin-ray-core/src/lib/dynamic-component/dynamic-layout.component.ts","../../../projects/barsa-novin-ray-core/src/lib/root-portal/root-portal.component.ts","../../../projects/barsa-novin-ray-core/src/lib/directives/anchor-scroll.directive.ts","../../../projects/barsa-novin-ray-core/src/lib/directives/base.directive.ts","../../../projects/barsa-novin-ray-core/src/lib/directives/attr-rtl.directive.ts","../../../projects/barsa-novin-ray-core/src/lib/directives/column-resizer.directive.ts","../../../projects/barsa-novin-ray-core/src/lib/directives/dynamic-command.directive.ts","../../../projects/barsa-novin-ray-core/src/lib/directives/ellipsify.directive.ts","../../../projects/barsa-novin-ray-core/src/lib/directives/field-binding.directive.ts","../../../projects/barsa-novin-ray-core/src/lib/directives/img-lazy.directive.ts","../../../projects/barsa-novin-ray-core/src/lib/directives/intersection-observer.directive.ts","../../../projects/barsa-novin-ray-core/src/lib/directives/items-renderer.directive.ts","../../../projects/barsa-novin-ray-core/src/lib/directives/numbers-only-input.directive.ts","../../../projects/barsa-novin-ray-core/src/lib/directives/placeHolder.directive.ts","../../../projects/barsa-novin-ray-core/src/lib/directives/render-ulv-viewer.directive.ts","../../../projects/barsa-novin-ray-core/src/lib/directives/render-ulv-paging.directive.ts","../../../projects/barsa-novin-ray-core/src/lib/directives/table-resizer.directive.ts","../../../projects/barsa-novin-ray-core/src/lib/directives/ulv-command.directive.ts","../../../projects/barsa-novin-ray-core/src/lib/directives/until-inview.directive.ts","../../../projects/barsa-novin-ray-core/src/lib/directives/workflow-choice-command.directive.ts","../../../projects/barsa-novin-ray-core/src/lib/directives/copy.directive.ts","../../../projects/barsa-novin-ray-core/src/lib/directives/ellapsis-text.directive.ts","../../../projects/barsa-novin-ray-core/src/lib/resolvers/portal-dynamic-page.resolver.ts","../../../projects/barsa-novin-ray-core/src/lib/resolvers/portal-form-page.resolver.ts","../../../projects/barsa-novin-ray-core/src/lib/resolvers/portal-report-page.resolver.ts","../../../projects/barsa-novin-ray-core/src/lib/form-new/form-new.component.ts","../../../projects/barsa-novin-ray-core/src/lib/report-container/report-container.component.ts","../../../projects/barsa-novin-ray-core/src/lib/report-container/report-container.component.html","../../../projects/barsa-novin-ray-core/src/lib/field-ui/field-ui.component.ts","../../../projects/barsa-novin-ray-core/src/lib/base-ulv-setting.component.ts","../../../projects/barsa-novin-ray-core/src/lib/custom-route-reuse-strategy.ts","../../../projects/barsa-novin-ray-core/src/lib/redirect-home-guard.ts","../../../projects/barsa-novin-ray-core/src/lib/root-page/root-page.component.ts","../../../projects/barsa-novin-ray-core/src/lib/root-page/root-page.component.html","../../../projects/barsa-novin-ray-core/src/lib/base.module.ts","../../../projects/barsa-novin-ray-core/src/lib/form-page-routing/constants.ts","../../../projects/barsa-novin-ray-core/src/lib/form-page-routing/barsa-sap-ui-form-page-routing.module.ts","../../../projects/barsa-novin-ray-core/src/lib/form-page-routing/barsa-sap-ui-form-page.module.ts","../../../projects/barsa-novin-ray-core/src/lib/barsa-novin-ray-core-routing.module.ts","../../../projects/barsa-novin-ray-core/src/lib/global-error-handler.ts","../../../projects/barsa-novin-ray-core/src/lib/barsa-novin-ray-core.module.ts","../../../projects/barsa-novin-ray-core/src/barsa-novin-ray-core.ts"],"sourcesContent":["export declare const Common: any;\r\nexport declare const Ul: any;\r\nexport declare const Ui: any;\r\nexport declare const Util: any;\r\nexport declare const Bw: any;\r\nexport declare const BBB: any;\r\nexport declare const LoginAction: any;\r\nexport declare const UlvMainCtrl: any;\r\nexport declare const LoginFormUi: any;\r\nexport declare const LoginFormData: any;\r\nexport declare const LoginForm: any;\r\nexport declare const Ext: any;\r\nexport declare const GanttChartHelper: any;\r\nexport class BarsaApi {\r\n static idGenerator = -10000;\r\n static get GanttChartHelper(): any {\r\n return GanttChartHelper;\r\n }\r\n static get Ext(): any {\r\n return Ext;\r\n }\r\n static get Common(): any {\r\n return Common;\r\n }\r\n static get Util(): any {\r\n return Util;\r\n }\r\n static get Ul(): any {\r\n return Ul;\r\n }\r\n static get Ui(): any {\r\n return Ui;\r\n }\r\n static get Bw(): any {\r\n return Bw;\r\n }\r\n static get BBB(): any {\r\n return BBB;\r\n }\r\n static get LoginForm(): any {\r\n return LoginForm;\r\n }\r\n static get LoginAction(): any {\r\n return LoginAction;\r\n }\r\n static get LoginFormUi(): any {\r\n return LoginFormUi;\r\n }\r\n static get LoginFormData(): any {\r\n return LoginFormData;\r\n }\r\n}\r\n","import {\n OnInit,\n AfterViewInit,\n Component,\n OnDestroy,\n OnChanges,\n SimpleChanges,\n AfterContentInit,\n Input,\n ChangeDetectionStrategy\n} from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { BarsaApi } from './barsa-api';\n\n@Component({\n selector: 'bnrc-base',\n template: '',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport abstract class BaseComponent implements OnInit, AfterViewInit, AfterContentInit, OnDestroy, OnChanges {\n // @Input() settings: any;\n @Input() rendered;\n protected readonly _onDestroy$: Subject<void> = new Subject<void>();\n constructor() {}\n ngAfterContentInit(): void {\n if (!BarsaApi.Common.Debug?.Data?.CustomUi) {\n return;\n }\n console.log('ngAfterContentInit');\n console.log(this);\n }\n ngOnChanges(changes: SimpleChanges): void {\n if (!BarsaApi.Common.Debug?.Data?.CustomUi) {\n return;\n }\n console.log(changes);\n }\n ngOnInit(): void {\n this.rendered = true;\n if (!BarsaApi.Common.Debug?.Data?.CustomUi) {\n return;\n }\n console.log('ngOnInit');\n console.log(this);\n }\n ngAfterViewInit(): void {\n if (!BarsaApi.Common.Debug?.Data?.CustomUi) {\n return;\n }\n console.log('ngAfterViewInit');\n console.log(this);\n }\n ngOnDestroy(): void {\n this._onDestroy$.next();\n this._onDestroy$.complete();\n if (!BarsaApi.Common.Debug?.Data?.CustomUi) {\n return;\n }\n console.log('ngOnDestroy');\n console.log(this);\n }\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\nimport { BaseComponent } from '../abstract-classes/base.component';\n@Component({\n selector: 'bnrc-empty-page-with-router-and-router-outlet',\n templateUrl: './empty-page-with-router-and-router-outlet.component.html',\n styleUrls: ['./empty-page-with-router-and-router-outlet.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class EmptyPageWithRouterAndRouterOutletComponent extends BaseComponent {\n constructor() {\n super();\n }\n}\n","<ng-container #containerRef></ng-container>\r\n<router-outlet></router-outlet>\r\n<router-outlet name=\"main\"></router-outlet>\r\n","import { InjectionToken } from '@angular/core';\nimport { NotificationPopupService } from './services/notification-popup.service';\nimport { ToastService } from './services/toast.service';\n\nexport const APP_VERSION = new InjectionToken<string>('AppVersion');\nexport const DIALOG_SERVICE = new InjectionToken<string>('DIALOG_SERVICE');\nexport const FORM_DIALOG_COMPONENT = new InjectionToken<string>('FORM_DIALOG_COMPONENT');\nexport const NOTIFICATAION_POPUP_SERVER = new InjectionToken<NotificationPopupService>('NOTIFICATAION_POPUP_SERVER');\nexport const TOAST_SERVICE = new InjectionToken<ToastService>('TOAST_SERVICE');\n\nexport const NOTIFICATION_WEBWORKER_FACTORY = new InjectionToken<() => Worker>('notificaion-worker');\n","// angular\r\nimport { Injectable } from '@angular/core';\r\n\r\nexport interface IDebug {\r\n LEVEL_1: boolean;\r\n LEVEL_2: boolean;\r\n LEVEL_3: boolean;\r\n LEVEL_4: boolean;\r\n LEVEL_5: boolean;\r\n}\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class LogService {\r\n public static DEBUG: IDebug = {\r\n LEVEL_1: false, // .warn only\r\n LEVEL_2: false, // .error only\r\n LEVEL_3: false, // .log + all the above\r\n LEVEL_4: false, // .log + all the above + info\r\n LEVEL_5: false // just info (excluding all else)\r\n };\r\n\r\n // info (extra messages like analytics)\r\n // use LEVEL_5 to see only these\r\n public info(...msg: Array<any>): void {\r\n if (LogService.DEBUG.LEVEL_5 || LogService.DEBUG.LEVEL_4) {\r\n // extra messages\r\n /* eslint-disable */\r\n console.info(msg);\r\n }\r\n }\r\n\r\n // debug (standard output)\r\n public debug(...msg: Array<any>): void {\r\n if (LogService.DEBUG.LEVEL_4 || LogService.DEBUG.LEVEL_3) {\r\n // console.debug does not work on {N} apps... use `log`\r\n /* eslint-disable */\r\n console.debug(msg);\r\n }\r\n }\r\n\r\n // error\r\n public error(...err: Array<any>): void {\r\n if (LogService.DEBUG.LEVEL_4 || LogService.DEBUG.LEVEL_3 || LogService.DEBUG.LEVEL_2) {\r\n console.error(err);\r\n }\r\n }\r\n\r\n // warn\r\n public warn(...warn: Array<any>): void {\r\n if (LogService.DEBUG.LEVEL_4 || LogService.DEBUG.LEVEL_3 || LogService.DEBUG.LEVEL_1) {\r\n console.warn(warn);\r\n }\r\n }\r\n}\r\n","import { Injectable, Optional } from '@angular/core';\nimport moment, { Duration, DurationInputArg1, DurationInputArg2 } from 'moment';\n\nimport { DateInfo } from './date-info';\nimport { LogService } from '../services/log.service';\nimport { Moment } from 'moment';\n\n@Injectable()\nexport abstract class DateService {\n protected abstract locale: string;\n\n constructor(@Optional() protected logService: LogService) {}\n protected get now(): Date {\n return new Date();\n }\n monthNames(): string[] {\n return moment.localeData(this.locale).months();\n }\n\n includeDay(date: Date, startDate: Date, endDate: Date): boolean {\n return moment(date).isBetween(startDate, endDate);\n }\n duration(inp: DurationInputArg1, unit?: DurationInputArg2): Duration {\n return moment.duration(inp);\n }\n\n day(date: Date): number {\n return moment(date).weekday();\n }\n\n getDayStr(mode: 'Today' | 'DaysBefore' | 'DaysAfter'): string {\n let date: Date;\n switch (mode) {\n case 'Today':\n date = this.now;\n break;\n case 'DaysBefore':\n date = new Date(this.now.setDate(this.now.getDate() - 1));\n break;\n case 'DaysAfter':\n date = new Date(this.now.setDate(this.now.getDate() + 1));\n break;\n }\n const momentOfDate = this.getMoment(date);\n return this.getDateString(momentOfDate, true, false);\n }\n\n getMonthStr(mode: 'ThisMonth' | 'NextMonth' | 'PrevMonth'): string {\n const momentOfDate = this.getMoment(this.now);\n let date: Date;\n switch (mode) {\n case 'ThisMonth':\n date = this.now;\n break;\n case 'NextMonth':\n date = this.addMonth(momentOfDate, 1);\n break;\n case 'PrevMonth':\n date = this.subtractMonth(momentOfDate, 1);\n break;\n default:\n date = this.now;\n break;\n }\n const dateInfo = this.getDateInfo(date);\n return dateInfo.monthName + ' ' + dateInfo.strYear;\n }\n\n getYearStr(mode: 'ThisYear' | 'PrevYear' | 'NextYear'): number {\n let year: number;\n const thisYear = this.getDateInfo(this.now).year;\n switch (mode) {\n case 'ThisYear':\n year = thisYear;\n break;\n case 'PrevYear':\n year = thisYear - 1;\n break;\n case 'NextYear':\n year = thisYear + 1;\n break;\n default:\n year = thisYear;\n break;\n }\n return year;\n }\n\n getWeekStr(mode: 'ThisWeek' | 'NextWeek' | 'PrevWeek'): string {\n const { from, to } = this.getWeekRange(mode);\n const strFirstDate = this.getDateString(from, true, false);\n const strLastDate = this.getDateString(to, true, false);\n return strFirstDate + this.toText() + strLastDate;\n }\n\n getWeekRange(mode: 'ThisWeek' | 'NextWeek' | 'PrevWeek'): {\n from: Moment;\n to: Moment;\n } {\n let from = moment();\n let to = moment();\n from.locale(this.locale);\n to.locale(this.locale);\n switch (mode) {\n case 'ThisWeek':\n from = from.startOf('week');\n to = to.endOf('week');\n break;\n case 'NextWeek':\n from = from.day(+7).startOf('week');\n to = to.day(+7).endOf('week');\n break;\n case 'PrevWeek':\n from = from.day(-7).startOf('week');\n to = to.day(-7).endOf('week');\n break;\n }\n\n return { from, to };\n }\n format(value: Date, format: string): string {\n const m = this.getMoment(value);\n return m.format(format);\n }\n getShortDateString(date: Date): string {\n const m = moment(date);\n m.locale('fa');\n const format = 'YYYY/MM/DD';\n return m.format(format);\n }\n\n protected checkSame(moment1, moment2, mode, prefix: '' | 'i' | 'j'): boolean {\n const yearF = `${prefix}YYYY`;\n const monthF = `${prefix}MM`;\n const dayF = `${prefix}DD`;\n const dayCompare = yearF + monthF + dayF;\n const monthCompare = yearF + monthF;\n const yearCompare = yearF;\n let val1;\n let val2;\n switch (mode) {\n case 'day':\n val1 = moment1.format(dayCompare);\n val2 = moment2.format(dayCompare);\n break;\n case 'month':\n val1 = moment1.format(monthCompare);\n val2 = moment2.format(monthCompare);\n break;\n case 'year':\n val1 = moment1.format(yearCompare);\n val2 = moment2.format(yearCompare);\n break;\n }\n return val1 === val2;\n }\n\n abstract subtractMonth(moment: any, value: number): Date;\n\n abstract addMonth(moment: any, value: number): Date;\n\n abstract from(date1: Date, date2: Date): string;\n\n abstract to(date: Date, endDate: Date): string;\n\n abstract getTimes(date: string | Date): string;\n\n abstract getDateTimeString(date: Date): string;\n\n abstract weeksCount(momentObj: any): number;\n\n abstract isSame(date1: Date, date2: Date, mode: 'year' | 'month' | 'day'): boolean;\n\n abstract strDate(date: Date): string;\n\n abstract date(date: Date): number;\n\n abstract endOfMonth(moment: any): Date;\n\n abstract startOfMonth(moment: any): Date;\n\n abstract getDateInfo(date: any): DateInfo;\n\n abstract daysInMonth(year: any, month: any): number;\n\n abstract getMoment(date?: Date): any;\n\n abstract stringToMoment(str: string, format: string): any;\n\n abstract getStrMonthName(date: Date): string;\n\n abstract getDateString(date, showDate, showTime): string;\n\n abstract parse(payload: { year: number; month: number; day: number; hour: string; minutes: string }): any;\n\n abstract weekdaysMin(): string[];\n\n abstract weekDays(): string[];\n\n abstract toText();\n}\n","import { Injectable, Optional } from '@angular/core';\n\nimport moment from 'moment-hijri';\n\nimport { LogService } from '../services/log.service';\nimport { DateInfo } from './date-info';\nimport { DateService } from './date.service';\n\n@Injectable()\nexport class DateHijriService extends DateService {\n protected locale = 'ar-SA';\n constructor(@Optional() protected logService: LogService) {\n super(logService);\n }\n getTimes(date: string | Date): string {\n return moment(date).format('HH:mm');\n }\n weeksCount(momentObj: any): number {\n return moment.duration(moment(momentObj).endOf('iMonth') - moment(momentObj).startOf('iMonth')).weeks() + 1;\n }\n subtractMonth(momentOfDate: any, value: number): Date {\n return momentOfDate.subtract(value, 'iMonth').toDate();\n }\n addMonth(momentOfDate: any, value: number): Date {\n return momentOfDate.add(value, 'iMonth').toDate();\n }\n toText(): string {\n return 'الی ';\n }\n to(date1: Date, date2: Date): string {\n return moment(date1).to(date2);\n }\n from(date1: Date, date2: Date): string {\n return moment(date1).from(date2);\n }\n isSame(date1: Date, date2: Date, mode: 'year' | 'month' | 'day'): boolean {\n const m1 = moment(date1);\n const m2 = moment(date2);\n return this.checkSame(m1, m2, mode, 'i');\n }\n strDate(date: Date): string {\n return moment(date).format('iD');\n }\n weekdaysMin(): string[] {\n return moment.weekdaysMin();\n }\n weekDays(): string[] {\n return moment.weekdays();\n }\n date(date: Date): any {\n return moment(date).iDate();\n }\n endOfMonth(date: Date): any {\n return moment(date).endOf('iMonth').format('iYYYY-iMM-iDD hh:mm');\n }\n startOfMonth(date: Date): any {\n return moment(date).startOf('iMonth').format('iYYYY-iMM-iDD hh:mm');\n }\n getDateInfo(date: any): DateInfo {\n const m = moment(date);\n const shamsi = {\n year: m.iYear(),\n month: m.iMonth(),\n day: m.iDate(),\n hour: m.hour(),\n minutes: m.minute(),\n strYear: m.format('iYYYY'),\n strMonth: m.format('iM'),\n strDay: m.format('iD'),\n monthName: m.format('iMMMM'),\n dayInWeek: 0,\n dayName: m.format('dddd'),\n moment: m,\n date\n };\n shamsi.dayInWeek = m.daysInMonth(shamsi.year, shamsi.month);\n return shamsi;\n }\n daysInMonth(year: number, month: number): number {\n return moment.jDaysInMonth(year, month);\n }\n getMoment(date?: Date): any {\n if (!date) {\n date = new Date();\n }\n return moment(date);\n }\n stringToMoment(str: string, format: string): any {\n return moment(str, format);\n }\n getStrMonthName(date: Date): string {\n return moment(date).format('iMMMM');\n }\n parse(payload: { year: number; month: number; day: number; hour: string; minutes: string }): any {\n const { year, month, day, hour, minutes } = payload;\n const format = 'iYYYY-iM-iD HH:mm';\n const value = `${year}-${month}-${day} ${hour}:${minutes}`;\n if (this.logService) {\n this.logService.info(value, format);\n }\n\n return moment(value, format);\n }\n monthNames(): string[] {\n return moment.localeData()._iMonths;\n }\n format(value: Date, format: string): string {\n const m = this.getMoment(value);\n format = format.indexOf('YYYY') > -1 ? format.replace('YYYY', 'i1111') : format;\n format = format.indexOf('YY') > -1 ? format.replace('YY', 'i11') : format;\n format = format.indexOf('MMMM') > -1 ? format.replace('MMMM', 'i2222') : format;\n format = format.indexOf('MM') > -1 ? format.replace('MM', 'i22') : format;\n format = format.indexOf('DD') > -1 ? format.replace('DD', 'i33') : format;\n\n format = format.replace(/1/g, 'Y');\n format = format.replace(/2/g, 'M');\n format = format.replace(/3/g, 'D');\n return m.format(format);\n }\n getShortDateString(date: Date): string {\n const m = moment(date);\n m.locale('ar-SA');\n const format = 'iYYYY/iMM/iDD';\n return m.format(format);\n }\n getDateTimeString(date: Date): string {\n const m = moment(date);\n m.locale('ar-SA');\n return m.format('iYYYY-iMM-iDD HH:mm');\n }\n getDateString(date: Date, showDate: boolean, showTime: boolean): string {\n const m = moment(date);\n let format = 'dddd';\n if (showDate) {\n format = `${format} iYYYY/iMM/iDD `;\n }\n if (showTime) {\n format = `${format} HH:mm`;\n }\n return m.format(format);\n }\n}\n","import { Injectable, Optional } from '@angular/core';\r\n\r\nimport moment from 'moment';\r\n\r\nimport { LogService } from '../services/log.service';\r\nimport { DateInfo } from './date-info';\r\nimport { DateService } from './date.service';\r\n\r\n@Injectable()\r\nexport class DateMiladiService extends DateService {\r\n protected locale = 'en';\r\n constructor(@Optional() protected logService: LogService) {\r\n super(logService);\r\n moment.locale('en');\r\n }\r\n getTimes(date: string | Date): string {\r\n return moment(date).format('HH:mm');\r\n }\r\n weeksCount(momentObj: any): number {\r\n return moment.duration(moment(momentObj).endOf('month').diff(moment(momentObj).startOf('month'))).asWeeks() + 1;\r\n }\r\n subtractMonth(momentOfDate: any, value: number): Date {\r\n return momentOfDate.subtract(value, 'months').toDate();\r\n }\r\n addMonth(momentOfDate: any, value: number): Date {\r\n return momentOfDate.add(value, 'months').toDate();\r\n }\r\n to(date1: Date, date2: Date): string {\r\n return moment(date1).to(date2);\r\n }\r\n from(date1: Date, date2: Date): string {\r\n return moment(date1).from(date2);\r\n }\r\n isSame(date1: Date, date2: Date, mode: 'year' | 'month' | 'day'): boolean {\r\n return moment(date1).isSame(date2, mode);\r\n }\r\n strDate(date: Date): string {\r\n return moment(date).format('D');\r\n }\r\n toText(): string {\r\n return 'to ';\r\n }\r\n date(date: Date): number {\r\n return moment(date).date();\r\n }\r\n endOfMonth(date: Date): Date {\r\n return new Date(moment(date).endOf('month').format('YYYY-MM-DD hh:mm'));\r\n }\r\n startOfMonth(date: Date): Date {\r\n return new Date(moment(date).startOf('month').format('YYYY-MM-DD hh:mm'));\r\n }\r\n getDateInfo(date: any): DateInfo {\r\n const m = moment(date);\r\n const miladi = {\r\n year: m.year(),\r\n month: m.month(),\r\n day: m.date(),\r\n hour: m.hour(),\r\n minutes: m.minute(),\r\n strYear: m.format('YYYY'),\r\n strMonth: m.format('M'),\r\n strDay: m.format('D'),\r\n monthName: m.format('MMMM'),\r\n dayInWeek: 0,\r\n moment: m,\r\n dayName: m.format('dddd'),\r\n date\r\n };\r\n miladi.dayInWeek = m.daysInMonth();\r\n return miladi;\r\n }\r\n daysInMonth(year: number, month: number): number {\r\n return moment([year, month]).daysInMonth();\r\n }\r\n getMoment(date?: Date): any {\r\n if (!date) {\r\n date = new Date();\r\n }\r\n return moment(date);\r\n }\r\n stringToMoment(str: string, format: string): any {\r\n return moment(str, format);\r\n }\r\n getStrMonthName(date: Date): string {\r\n return moment(date).format('MMMM');\r\n }\r\n parse(payload: { year: number; month: number; day: number; hour: string; minutes: string }): any {\r\n const { year, month, day, hour, minutes } = payload;\r\n const format = 'YYYY-M-D HH:mm';\r\n const value = `${year}-${month}-${day} ${hour}:${minutes}`;\r\n if (this.logService) {\r\n this.logService.info(value, format);\r\n }\r\n\r\n return moment(value, format);\r\n }\r\n\r\n getDateString(date: Date, showDate: boolean, showTime: boolean): string {\r\n const m = moment(date);\r\n m.locale('en');\r\n\r\n let format = 'dddd';\r\n if (showDate) {\r\n format = `${format} DD MM YYYY`;\r\n }\r\n if (showTime) {\r\n format = `${format} HH:mm`;\r\n }\r\n return m.format(format);\r\n }\r\n getDateTimeString(date: Date): string {\r\n const m = moment(date);\r\n m.locale('en');\r\n return m.format('YYYY-MM-DD HH:mm');\r\n }\r\n weekdaysMin(): string[] {\r\n return moment.weekdaysMin();\r\n }\r\n weekDays(): string[] {\r\n return moment.weekdays();\r\n }\r\n}\r\n","import { Injectable, Optional } from '@angular/core';\n\nimport moment from 'moment-jalaali';\n\nimport { LogService } from '../services/log.service';\nimport { DateInfo } from './date-info';\nimport { DateService } from './date.service';\n\n@Injectable()\nexport class DateShamsiService extends DateService {\n protected locale = 'fa';\n\n constructor(@Optional() protected logService: LogService) {\n super(logService);\n moment.loadPersian({ usePersianDigits: true, dialect: 'persian-modern' });\n }\n\n getTimes(date: string | Date): string {\n return moment(date).format('HH:mm');\n }\n\n weeksCount(momentObj: any): number {\n return moment.duration(moment(momentObj).endOf('jMonth') - moment(momentObj).startOf('jMonth')).weeks() + 1;\n }\n\n subtractMonth(momentOfDate: any, value: number): Date {\n return momentOfDate.subtract(value, 'jMonth').toDate();\n }\n\n addMonth(momentOfDate: any, value: number): Date {\n return momentOfDate.add(value, 'jMonth').toDate();\n }\n\n to(date1: Date, date2: Date): string {\n return moment(date1).to(date2);\n }\n\n from(date1: Date, date2: Date): string {\n return moment(date1).from(date2);\n }\n\n isSame(date1: Date, date2: Date, mode: 'year' | 'month' | 'day'): boolean {\n const m1 = moment(date1);\n const m2 = moment(date2);\n return this.checkSame(m1, m2, mode, 'j');\n }\n\n strDate(date: Date): string {\n return moment(date).format('jD');\n }\n\n weekdaysMin(): Array<string> {\n return 'ش_ی_د_س_چ_پ_ج'.split('_');\n }\n\n weekDays(): Array<string> {\n return 'شنبه_یک\\u200cشنبه_دوشنبه_سه\\u200cشنبه_چهارشنبه_پنج\\u200cشنبه_جمعه'.split('_');\n }\n toText(): string {\n return 'تا ';\n }\n date(date: Date): any {\n return moment(date).jDate();\n }\n\n endOfMonth(date: Date): Date {\n return moment(date).endOf('jMonth').toDate();\n }\n\n startOfMonth(date: Date): Date {\n return moment(date).startOf('jMonth').toDate();\n }\n\n monthNames(): string[] {\n return moment.localeData()._jMonths;\n }\n\n getDateInfo(date: any): DateInfo {\n const m = moment(date);\n const shamsi = {\n year: m.jYear(),\n month: m.jMonth(),\n day: m.jDate(),\n hour: m.hour(),\n minutes: m.minute(),\n strYear: m.format('jYYYY'),\n strMonth: m.format('jM'),\n strDay: m.format('jD'),\n monthName: m.format('jMMMM'),\n dayInWeek: 0,\n moment: m,\n dayName: m.format('dddd'),\n date\n };\n shamsi.dayInWeek = m.daysInMonth(shamsi.year, shamsi.month);\n return shamsi;\n }\n\n daysInMonth(year: number, month: number): number {\n return moment.jDaysInMonth(year, month);\n }\n\n getMoment(date?: Date): any {\n if (!date) {\n date = new Date();\n }\n return moment(date);\n }\n stringToMoment(str: string, format: string): any {\n return moment(str, format);\n }\n\n getStrMonthName(date: Date): string {\n return moment(date).format('jMMMM');\n }\n\n getDateTimeString(date: Date): string {\n const m = moment(date);\n m.locale('fa');\n return m.format('jYYYY/jMM/jDD HH:mm');\n }\n format(value: Date, format: string): string {\n const m = this.getMoment(value);\n format = format.indexOf('YYYY') > -1 ? format.replace('YYYY', 'j1111') : format;\n format = format.indexOf('YY') > -1 ? format.replace('YY', 'j11') : format;\n format = format.indexOf('MMMM') > -1 ? format.replace('MMMM', 'j2222') : format;\n format = format.indexOf('MM') > -1 ? format.replace('MM', 'j22') : format;\n format = format.indexOf('DD') > -1 ? format.replace('DD', 'j33') : format;\n\n format = format.replace(/1/g, 'Y');\n format = format.replace(/2/g, 'M');\n format = format.replace(/3/g, 'D');\n return m.format(format);\n }\n getShortDateString(date: Date): string {\n const m = moment(date);\n m.locale('fa');\n const format = 'jYYYY/jMM/jDD';\n return m.format(format);\n }\n getDateString(date: Date, showDate: boolean, showTime: boolean): string {\n const m = moment(date);\n m.locale('fa');\n let format = '';\n if (showDate) {\n format = `dddd jYYYY/jMM/jDD`;\n }\n if (showTime) {\n format = `${format} HH:mm`;\n }\n return m.format(format);\n }\n\n parse(payload: { year: number; month: number; day: number; hour: string; minutes: string }): any {\n const { year, month, day, hour, minutes } = payload;\n const format = 'jYYYY-jM-jD HH:mm';\n const value = `${year}-${month}-${day} ${hour}:${minutes}`;\n if (this.logService) {\n this.logService.info(value, format);\n }\n\n return moment(value, format);\n }\n}\n","/* eslint-disable */\r\n\r\nconst Device: { [key: string]: any } = {};\r\n\r\n// * ******* OS Detection ********\r\n\r\n/**\r\n * Contains information about the operating system of the Device.\r\n * @name Device.os\r\n */\r\n\r\n/**\r\n * Enumeration containing the names of known operating systems.\r\n * @name Device.os.OS\r\n */\r\n\r\n/**\r\n * The name of the operating system.\r\n * @name Device.os.name\r\n * @type String\r\n */\r\n\r\n/**\r\n * The version of the operating system as <code>string</code>. Might be empty if no version can be determined.\r\n * @name Device.os.versionStr\r\n * @type String\r\n */\r\n\r\n/**\r\n * The version of the operating system as <code>float</code>. Might be <code>-1</code> if no version can be determined.\r\n * @name Device.os.version\r\n * @type float\r\n */\r\n\r\n/**\r\n * If this flag is set to <code>true</code>, a Windows operating system is used.\r\n * @name Device.os.windows\r\n * @type boolean\r\n */\r\n\r\n/**\r\n * If this flag is set to <code>true</code>, a Mac operating system is used.\r\n * @name Device.os.macintosh\r\n * @type boolean\r\n */\r\n\r\n/*\r\n * If this flag is set to <code>true</code>, an iOS operating system is used.\r\n * @name Device.os.ios\r\n * @type boolean\r\n */\r\n\r\n/**\r\n * If this flag is set to <code>true</code>, an Android operating system is used.\r\n * @name Device.os.android\r\n * @type boolean\r\n */\r\n\r\n/*\r\n * Windows operating system name.\r\n * @see Device.os.name\r\n * @name Device.os.OS.WINDOWS\r\n */\r\n\r\n/**\r\n * MAC operating system name.\r\n * @see Device.os.name\r\n * @name Device.os.OS.MACINTOSH\r\n */\r\n\r\n/**\r\n * iOS operating system name.\r\n * @see Device.os.name\r\n * @name Device.os.OS.IOS\r\n */\r\n\r\n/**\r\n * Android operating system name.\r\n * @see Device.os.name\r\n * @name Device.os.OS.ANDROID\r\n */\r\n\r\nconst OS = {\r\n WINDOWS: 'win',\r\n MACINTOSH: 'mac',\r\n IOS: 'iOS',\r\n ANDROID: 'Android'\r\n};\r\n\r\nconst _getMobileOS = () => {\r\n const userAgent = navigator.userAgent;\r\n\r\n // iOS, Android\r\n let rPlatform = /\\(([a-zA-Z ]+);\\s(?:[U]?[;]?)([\\D]+)((?:[\\d._]*))(?:.*[)][^\\d]*)([\\d.]*)\\s/;\r\n let aMatches = userAgent.match(rPlatform);\r\n\r\n if (aMatches) {\r\n const rAppleDevices = /iPhone|iPad|iPod/;\r\n\r\n if (aMatches[0].match(rAppleDevices)) {\r\n aMatches[3] = aMatches[3].replace(/_/g, '.');\r\n\r\n return {\r\n name: OS.IOS,\r\n versionStr: aMatches[3]\r\n };\r\n }\r\n\r\n if (aMatches[2].match(/Android/)) {\r\n aMatches[2] = aMatches[2].replace(/\\s/g, '');\r\n return {\r\n name: OS.ANDROID,\r\n versionStr: aMatches[3]\r\n };\r\n }\r\n }\r\n\r\n // Firefox on Android\r\n rPlatform = /\\((Android)[\\s]?([\\d][.\\d]*)?;.*Firefox\\/[\\d][.\\d]*/;\r\n aMatches = userAgent.match(rPlatform);\r\n if (aMatches) {\r\n return {\r\n name: OS.ANDROID,\r\n versionStr: aMatches.length === 3 ? aMatches[2] : ''\r\n };\r\n }\r\n return {};\r\n};\r\n\r\nconst _getDesktopOS = () => {\r\n const sPlatform = navigator.platform;\r\n if (sPlatform.indexOf('Win') !== -1) {\r\n const rVersion = /Windows NT (\\d+).(\\d)/i; // userAgent since windows 10: Windows NT 10[...]\r\n const uaResult = navigator.userAgent.match(rVersion);\r\n\r\n return {\r\n name: OS.WINDOWS,\r\n versionStr: (uaResult && uaResult[1]) || ''\r\n };\r\n }\r\n\r\n if (sPlatform.indexOf('Mac') !== -1) {\r\n return {\r\n name: OS.MACINTOSH,\r\n versionStr: ''\r\n };\r\n }\r\n\r\n return null;\r\n};\r\n\r\nconst _getOS = () => _getMobileOS() || _getDesktopOS();\r\n\r\nconst _setOS = () => {\r\n if (Device.os) {\r\n return;\r\n }\r\n\r\n Device.os = _getOS() || {};\r\n Device.os.OS = OS;\r\n Device.os.version = Device.os.versionStr ? parseFloat(Device.os.versionStr) : -1;\r\n\r\n if (Device.os.name) {\r\n Object.keys(OS).forEach((name) => {\r\n if (OS[name] === Device.os.name) {\r\n Device.os[name.toLowerCase()] = true;\r\n }\r\n });\r\n }\r\n};\r\n\r\nconst getOS = () => {\r\n if (!Device.os) {\r\n _setOS();\r\n }\r\n\r\n return Device.os;\r\n};\r\n\r\nconst isAndroid = () => {\r\n if (!Device.os) {\r\n _setOS();\r\n }\r\n\r\n return !!Device.os.android;\r\n};\r\n\r\n// * ******* Browser Detection ********\r\n\r\n/**\r\n * Contains information about the used browser.\r\n * @name Device.browser\r\n */\r\n\r\n/**\r\n * Enumeration containing the names of known browsers.\r\n * @name Device.browser.BROWSER\r\n *\r\n * The name of the browser.\r\n * @name Device.browser.name\r\n * @type String\r\n */\r\n\r\n/**\r\n * The version of the browser as <code>string</code>. Might be empty if no version can be determined.\r\n * @name Device.browser.versionStr\r\n * @type String\r\n */\r\n\r\n/**\r\n * The version of the browser as <code>float</code>. Might be <code>-1</code> if no version can be determined.\r\n * @name Device.browser.version\r\n * @type float\r\n */\r\n\r\n/**\r\n * If this flag is set to <code>true</code>, the mobile variant of the browser is used or\r\n * a tablet or phone device is detected. This information might not be available for all browsers.\r\n * @name Device.browser.mobile\r\n * @type boolean\r\n */\r\n\r\n/**\r\n * If this flag is set to <code>true</code>, the Microsoft Internet Explorer browser is used.\r\n * @name Device.browser.internet_explorer\r\n * @type boolean\r\n * @deprecated since 1.20, use {@link Device.browser.msie} instead.\r\n */\r\n\r\n/**\r\n * If this flag is set to <code>true</code>, the Microsoft Internet Explorer browser is used.\r\n * @name Device.browser.msie\r\n * @type boolean\r\n */\r\n\r\n/**\r\n * If this flag is set to <code>true</code>, the Microsoft Edge browser is used.\r\n * @name Device.browser.edge\r\n * @type boolean\r\n */\r\n\r\n/**\r\n * If this flag is set to <code>true</code>, the Mozilla Firefox browser is used.\r\n * @name Device.browser.firefox\r\n */\r\n\r\n/**\r\n * If this flag is set to <code>true</code>, the Google Chrome browser is used.\r\n * @name Device.browser.chrome\r\n * @type boolean\r\n *\r\n * If this flag is set to <code>true</code>, the Apple Safari browser is used.\r\n *\r\n * <b>Note:</b>\r\n * This flag is also <code>true</code> when the standalone (fullscreen) mode or webview is used on iOS devices.\r\n * Please also note the flags {@link Device.browser.fullscreen} and {@link Device.browser.webview}.\r\n *\r\n * @name Device.browser.safari\r\n * @type boolean\r\n */\r\n\r\n/**\r\n * If this flag is set to <code>true</code>, a browser featuring a Webkit engine is used.\r\n *\r\n * <b>Note:</b>\r\n * This flag is also <code>true</code> when the used browser was based on the Webkit engine, but\r\n * uses another rendering engine in the meantime. For example the Chrome browser started from version 28 and above\r\n * uses the Blink rendering engine.\r\n *\r\n * @name Device.browser.webkit\r\n * @type boolean\r\n */\r\n\r\n/**\r\n * If this flag is set to <code>true</code>, the Safari browser runs in standalone fullscreen mode on iOS.\r\n *\r\n * <b>Note:</b> This flag is only available if the Safari browser was detected. Furthermore, if this mode is detected,\r\n * technically not a standard Safari is used. There might be slight differences in behavior and detection, e.g.\r\n * the availability of {@link Device.browser.version}.\r\n *\r\n * @name Device.browser.fullscreen\r\n * @type boolean\r\n */\r\n\r\n/**\r\n * If this flag is set to <code>true</code>, the Safari browser runs in webview mode on iOS.\r\n *\r\n * <b>Note:</b> This flag is only available if the Safari browser was detected. Furthermore, if this mode is detected,\r\n * technically not a standard Safari is used. There might be slight differences in behavior and detection, e.g.\r\n * the availability of {@link Device.browser.version}.\r\n *\r\n * @name Device.browser.webview\r\n * @type boolean\r\n */\r\n\r\n/**\r\n * If this flag is set to <code>true</code>, the Phantom JS browser is used.\r\n * @name Device.browser.phantomJS\r\n * @type boolean\r\n */\r\n\r\n/**\r\n * The version of the used Webkit engine, if available.\r\n * @name Device.browser.webkitVersion\r\n * @type String\r\n */\r\n\r\n/**\r\n * If this flag is set to <code>true</code>, a browser featuring a Mozilla engine is used.\r\n * @name Device.browser.mozilla\r\n * @type boolean\r\n */\r\n\r\n/**\r\n * Internet Explorer browser name.\r\n * @name Device.browser.BROWSER.INTERNET_EXPLORER\r\n */\r\n\r\n/**\r\n * Edge browser name.\r\n * @name Device.browser.BROWSER.EDGE\r\n */\r\n\r\n/**\r\n * Firefox browser name.\r\n * @name Device.browser.BROWSER.FIREFOX\r\n */\r\n\r\n/**\r\n * Chrome browser name.\r\n * @name Device.browser.BROWSER.CHROME\r\n */\r\n\r\n/**\r\n * Safari browser name.\r\n * @name Device.browser.BROWSER.SAFARI\r\n */\r\n\r\n/**\r\n * Android stock browser name.\r\n * @name Device.browser.BROWSER.ANDROID\r\n */\r\n\r\nconst BROWSER = {\r\n INTERNET_EXPLORER: 'ie',\r\n EDGE: 'ed',\r\n FIREFOX: 'ff',\r\n CHROME: 'cr',\r\n SAFARI: 'sf',\r\n ANDROID: 'an'\r\n};\r\n\r\n/* !\r\n * Taken from jQuery JavaScript Library v1.7.1\r\n * http://jquery.com/\r\n *\r\n * Copyright 2011, John Resig\r\n * Dual licensed under the MIT or GPL Version 2 licenses.\r\n * http://jquery.org/license\r\n *\r\n * Includes Sizzle.js\r\n * http://sizzlejs.com/\r\n * Copyright 2011, The Dojo Foundation\r\n * Released under the MIT, BSD, and GPL Licenses.\r\n *\r\n * Date: Mon Nov 21 21:11:03 2011 -0500\r\n */\r\nconst _calcBrowser = () => {\r\n const sUserAgent = navigator.userAgent.toLowerCase();\r\n\r\n const rwebkit = /(webkit)[ /]([\\w.]+)/;\r\n const rmsie = /(msie) ([\\w.]+)/;\r\n const rmsie11 = /(trident)\\/[\\w.]+;.*rv:([\\w.]+)/;\r\n const redge = /(edge)[ /]([\\w.]+)/;\r\n const rmozilla = /(mozilla)(?:.*? rv:([\\w.]+))?/;\r\n\r\n // WinPhone IE11 and MS Edge userAgents contain \"WebKit\" and \"Mozilla\" and therefore must be checked first\r\n const browserMatch =\r\n redge.exec(sUserAgent) ||\r\n rmsie11.exec(sUserAgent) ||\r\n rwebkit.exec(sUserAgent) ||\r\n rmsie.exec(sUserAgent) ||\r\n (sUserAgent.indexOf('compatible') < 0 && rmozilla.exec(sUserAgent)) ||\r\n [];\r\n\r\n const oRes = {\r\n browser: browserMatch[1] || '',\r\n version: browserMatch[2] || '0'\r\n };\r\n oRes[oRes.browser] = true;\r\n return oRes;\r\n};\r\n\r\nconst _getBrowser = () => {\r\n const oBrowser: { [key: string]: any } = _calcBrowser();\r\n const sUserAgent = navigator.userAgent;\r\n const oNavigator: { [key: string]: any } = window.navigator;\r\n\r\n // jQuery checks for user agent strings. We differentiate between browsers\r\n let oExpMobile;\r\n let oResult;\r\n let fVersion;\r\n\r\n // Mozilla\r\n if (oBrowser.mozilla) {\r\n oExpMobile = /Mobile/;\r\n if (sUserAgent.match(/Firefox\\/(\\d+\\.\\d+)/)) {\r\n fVersion = parseFloat(RegExp.$1);\r\n oResult = {\r\n name: BROWSER.FIREFOX,\r\n versionStr: `${fVersion}`,\r\n version: fVersion,\r\n mozilla: true,\r\n mobile: oExpMobile.test(sUserAgent)\r\n };\r\n } else {\r\n // unknown mozilla browser\r\n oResult = {\r\n mobile: oExpMobile.test(sUserAgent),\r\n mozilla: true,\r\n version: -1\r\n };\r\n }\r\n } else if (oBrowser.webkit) {\r\n // webkit version is needed for calculation if the mobile android device is a tablet (calculation of other mobile devices work without)\r\n const regExpWebkitVersion = sUserAgent.toLowerCase().match(/webkit[/]([\\d.]+)/);\r\n let webkitVersion;\r\n if (regExpWebkitVersion) {\r\n webkitVersion = regExpWebkitVersion[1];\r\n }\r\n oExpMobile = /Mobile/;\r\n const aChromeMatch = sUserAgent.match(/(Chrome|CriOS)\\/(\\d+\\.\\d+).\\d+/);\r\n const aFirefoxMatch = sUserAgent.match(/FxiOS\\/(\\d+\\.\\d+)/);\r\n const aAndroidMatch = sUserAgent.match(/Android .+ Version\\/(\\d+\\.\\d+)/);\r\n\r\n if (aChromeMatch || aFirefoxMatch || aAndroidMatch) {\r\n let sName;\r\n let sVersion;\r\n let bMobile;\r\n\r\n if (aChromeMatch) {\r\n sName = BROWSER.CHROME;\r\n bMobile = oExpMobile.test(sUserAgent);\r\n sVersion = parseFloat(aChromeMatch[2]);\r\n } else if (aFirefoxMatch) {\r\n sName = BROWSER.FIREFOX;\r\n bMobile = true;\r\n sVersion = parseFloat(aFirefoxMatch[1]);\r\n } else if (aAndroidMatch) {\r\n sName = BROWSER.ANDROID;\r\n bMobile = oExpMobile.test(sUserAgent);\r\n sVersion = parseFloat(aAndroidMatch[1]);\r\n }\r\n\r\n oResult = {\r\n name: sName,\r\n mobile: bMobile,\r\n versionStr: `${sVersion}`,\r\n version: sVersion,\r\n webkit: true,\r\n webkitVersion\r\n };\r\n } else {\r\n // Safari might have an issue with sUserAgent.match(...); thus changing\r\n const oExp = /(Version|PhantomJS)\\/(\\d+\\.\\d+).*Safari/;\r\n const bStandalone: any = oNavigator.standalone;\r\n if (oExp.test(sUserAgent)) {\r\n const aParts: any = oExp.exec(sUserAgent);\r\n fVersion = parseFloat(aParts[2]);\r\n oResult = {\r\n name: BROWSER.SAFARI,\r\n versionStr: `${fVersion}`,\r\n fullscreen: false,\r\n webview: false,\r\n version: fVersion,\r\n mobile: oExpMobile.test(sUserAgent),\r\n webkit: true,\r\n webkitVersion,\r\n phantomJS: aParts[1] === 'PhantomJS'\r\n };\r\n } else if (\r\n /iPhone|iPad|iPod/.test(sUserAgent) &&\r\n !/CriOS/.test(sUserAgent) &&\r\n !/FxiOS/.test(sUserAgent) &&\r\n (bStandalone === true || bStandalone === false)\r\n ) {\r\n // WebView or Standalone mode on iOS\r\n oResult = {\r\n name: BROWSER.SAFARI,\r\n version: -1,\r\n fullscreen: bStandalone,\r\n webview: !bStandalone,\r\n mobile: oExpMobile.test(sUserAgent),\r\n webkit: true,\r\n webkitVersion\r\n };\r\n } else {\r\n // other webkit based browser\r\n oResult = {\r\n mobile: oExpMobile.test(sUserAgent),\r\n webkit: true,\r\n webkitVersion,\r\n version: -1\r\n };\r\n }\r\n }\r\n } else if (oBrowser.msie || oBrowser.trident) {\r\n fVersion = parseFloat(oBrowser.version);\r\n\r\n oResult = {\r\n name: BROWSER.INTERNET_EXPLORER,\r\n versionStr: `${fVersion}`,\r\n version: fVersion,\r\n msie: true,\r\n mobile: false\r\n };\r\n } else if (oBrowser.edge) {\r\n fVersion = parseFloat(oBrowser.version);\r\n oResult = {\r\n name: BROWSER.EDGE,\r\n versionStr: `${fVersion}`,\r\n version: fVersion,\r\n edge: true\r\n };\r\n } else {\r\n oResult = {\r\n name: '',\r\n versionStr: '',\r\n version: -1,\r\n mobile: false\r\n };\r\n }\r\n\r\n return oResult;\r\n};\r\n\r\nconst _setBrowser = () => {\r\n Device.browser = _getBrowser();\r\n Device.browser.BROWSER = BROWSER;\r\n\r\n if (Device.browser.name) {\r\n Object.keys(BROWSER).forEach((b) => {\r\n if (BROWSER[b] === Device.browser.name) {\r\n Device.browser[b.toLowerCase()] = true;\r\n }\r\n });\r\n }\r\n};\r\n\r\nconst getBrowser = () => {\r\n if (!Device.browser) {\r\n _setBrowser();\r\n }\r\n return Device.browser;\r\n};\r\n\r\nconst isIE = () => {\r\n if (!Device.browser) {\r\n _setBrowser();\r\n }\r\n return !!Device.browser.msie;\r\n};\r\n\r\nconst isEdge = () => {\r\n if (!Device.browser) {\r\n _setBrowser();\r\n }\r\n return !!Device.browser.edge;\r\n};\r\n\r\nconst isChrome = () => {\r\n if (!Device.browser) {\r\n _setBrowser();\r\n }\r\n return !!Device.browser.chrome;\r\n};\r\n\r\nconst isFF = () => {\r\n if (!Device.browser) {\r\n _setBrowser();\r\n }\r\n return !!Device.browser.firefox;\r\n};\r\n\r\nconst isSafari = () => {\r\n if (!Device.browser) {\r\n _setBrowser();\r\n }\r\n return !!Device.browser.safari;\r\n};\r\n\r\n// * ******* Support Detection ********\r\n\r\nconst _setSupport = () => {\r\n if (Device.support) {\r\n return;\r\n }\r\n\r\n if (!Device.browser) {\r\n _setBrowser();\r\n }\r\n\r\n Device.support = {};\r\n Device.support.touch = !!(\r\n 'ontouchstart' in window ||\r\n navigator.maxTouchPoints > 0 ||\r\n ((window as any).DocumentTouch && document instanceof (window as any).DocumentTouch)\r\n );\r\n};\r\n\r\nconst supportTouch = () => {\r\n if (!Device.support) {\r\n _setSupport();\r\n }\r\n\r\n return !!Device.support.touch;\r\n};\r\n\r\n// * ******* System Detection ********\r\n\r\n/**\r\n * Provides a basic categorization of the used device based on various indicators.\r\n *\r\n * <b>Note:</b> Depending on the capabilities of the device it is also possible that multiple flags are set to <code>true</code>.\r\n *\r\n * @namespace\r\n * @name Device.system\r\n */\r\n\r\n/**\r\n * If this flag is set to <code>true</code>, the device is recognized as a phone.\r\n *\r\n * @name Device.system.phone\r\n * @type boolean\r\n */\r\n\r\n/**\r\n * @name Device.system.SYSTEMTYPE\r\n * Enumeration containing the names of known types of the devices.\r\n */\r\n\r\nconst SYSTEMTYPE = {\r\n TABLET: 'tablet',\r\n PHONE: 'phone',\r\n DESKTOP: 'desktop',\r\n COMBI: 'combi'\r\n};\r\n\r\nconst _isTablet = () => {\r\n const sUserAgent = navigator.userAgent;\r\n if (Device.os.name === Device.os.OS.IOS) {\r\n return /ipad/i.test(sUserAgent);\r\n }\r\n // in real mobile device\r\n if (supportTouch()) {\r\n if (Device.os.windows && Device.os.version >= 8) {\r\n return true;\r\n }\r\n\r\n if (Device.browser.chrome && Device.os.android && Device.os.version >= 4.4) {\r\n return !/Mobile Safari\\/[.0-9]+/.test(sUserAgent);\r\n }\r\n let densityFactor = window.devicePixelRatio ? window.devicePixelRatio : 1; // may be undefined in Windows Phone devices\r\n // On Android sometimes window.screen.width returns the logical CSS pixels, sometimes the physical device pixels;\r\n // Tests on multiple devices suggest this depends on the Webkit version.\r\n // The Webkit patch which changed the behavior was done here: https://bugs.webkit.org/show_bug.cgi?id=106460\r\n // Chrome 27 with Webkit 537.36 returns the logical pixels,\r\n // Chrome 18 with Webkit 535.19 returns the physical pixels.\r\n // The BlackBerry 10 browser with Webkit 537.10+ returns the physical pixels.\r\n // So it appears like somewhere above Webkit 537.10 we do not hve to divide by the devicePixelRatio anymore.\r\n if (Device.os.android && Device.browser.webkit && parseFloat(Device.browser.webkitVersion) > 537.1) {\r\n densityFactor = 1;\r\n }\r\n\r\n // this is how android distinguishes between tablet and phone\r\n // http://android-developers.blogspot.de/2011/07/new-tools-for-managing-screen-sizes.html\r\n const bTablet = Math.min(window.screen.width / densityFactor, window.screen.height / densityFactor) >= 600;\r\n\r\n // special workaround for Nexus 7 where the window.screen.width is 600px or 601px in portrait mode (=> tablet)\r\n // but window.screen.height 552px in landscape mode (=> phone), because the browser UI takes some space on top.\r\n // So the detected device type depends on the orientation :-(\r\n // actually this is a Chrome bug, as \"width\"/\"height\" should return the entire screen's dimensions and\r\n // \"availWidth\"/\"availHeight\" should return the size available after subtracting the browser UI\r\n\r\n /*\r\n if (isLandscape() &&\r\n (window.screen.height === 552 || window.screen.height === 553) // old/new Nexus 7\r\n &&\r\n (/Nexus 7/i.test(sUserAgent))) {\r\n bTablet = true;\r\n }\r\n */\r\n\r\n return bTablet;\r\n }\r\n // This simple android phone detection can be used here because this is the mobile emulation mode in desktop browser\r\n const bAndroidPhone = /(?=android)(?=.*mobile)/i.test(sUserAgent);\r\n // in desktop browser, it's detected as tablet when\r\n // 1. Windows 8 device with a touch screen where \"Touch\" is contained in the userAgent\r\n // 2. Android emulation and it's not an Android phone\r\n return (Device.browser.msie && sUserAgent.indexOf('Touch') !== -1) || (Device.os.android && !bAndroidPhone);\r\n};\r\n\r\nconst _getSystem = () => {\r\n const bTabletDetected = _isTablet();\r\n const isWin8Upwards = Device.os.windows && Device.os.version >= 8;\r\n\r\n const oSystem: { [key: string]: any } = {};\r\n oSystem.tablet = !!((Device.support.touch || isWin8Upwards) && bTabletDetected);\r\n oSystem.phone = !!((Device.os.windows_phone || Device.support.touch) && !bTabletDetected);\r\n oSystem.desktop = !!((!oSystem.tablet && !oSystem.phone) || isWin8Upwards);\r\n oSystem.combi = oSystem.desktop && oSystem.tablet;\r\n oSystem.SYSTEMTYPE = SYSTEMTYPE;\r\n\r\n return oSystem;\r\n};\r\n\r\nconst _setSystem = () => {\r\n _setSupport();\r\n _setOS();\r\n\r\n Device.system = {};\r\n Device.system = _getSystem();\r\n if (Device.system.tablet || Device.system.phone) {\r\n Device.browser.mobile = true;\r\n }\r\n};\r\n\r\nconst getSystem = () => {\r\n if (!Device.system) {\r\n _setSystem();\r\n }\r\n\r\n return Device.system;\r\n};\r\n\r\nconst isDesktop = () => {\r\n if (!Device.system) {\r\n _setSystem();\r\n }\r\n\r\n return Device.system.desktop;\r\n};\r\n\r\nconst isTablet = () => {\r\n if (!Device.system) {\r\n _setSystem();\r\n }\r\n\r\n return Device.system.tablet;\r\n};\r\n\r\nconst isPhone = () => {\r\n if (!Device.system) {\r\n _setSystem();\r\n }\r\n\r\n return Device.system.phone;\r\n};\r\n\r\nconst isMobile = () => {\r\n if (!Device.system) {\r\n _setSystem();\r\n }\r\n\r\n return Device.browser.mobile;\r\n};\r\n\r\nexport {\r\n isIE,\r\n isEdge,\r\n isChrome,\r\n isFF,\r\n isSafari,\r\n isMobile,\r\n isDesktop,\r\n isTablet,\r\n isPhone,\r\n isAndroid,\r\n getOS,\r\n getSystem,\r\n getBrowser,\r\n supportTouch\r\n};\r\n","/* eslint-disable */\nimport { _isNumberValue } from '@angular/cdk/coercion';\nimport { BarsaApi } from './abstract-classes/barsa-api';\nimport {\n AbbrevationDeviceSize,\n ColSetting,\n FormSetting,\n GeneralControlInfoModel,\n GridSetting,\n LayoutSetting,\n MetaobjectDataModel,\n ReportViewColumn\n} from './abstract-classes/models';\nimport { DateHijriService, DateMiladiService, DateService, DateShamsiService } from './date-services';\nimport * as Device from './device';\nimport { LogService } from './services/log.service';\n\nexport function throwIfAlreadyLoaded(parentModule: any, moduleName: string): void {\n if (parentModule) {\n throw new Error(`${moduleName} has already been loaded. Import ${moduleName} in the AppModule only.`);\n }\n}\nexport function genrateInlineMoId() {\n return (BarsaApi.idGenerator--).toString();\n}\nexport function enumValueToStringSize(value: string, defaultValue: string): string {\n switch (value) {\n case '1':\n return 's';\n case '2':\n return 'm';\n case '3':\n return 'l';\n default:\n return defaultValue;\n }\n}\nexport function executeUlvCommandHandler(button, options?): void {\n if (button.Command && button.Command.Handler) {\n button.Command.Handler(button, options);\n } else if (button.handler) {\n button.handler.bind(button.scope)(button, options);\n }\n}\nexport function getUniqueId(parts: number): string {\n const stringArr: string[] = [];\n for (let i = 0; i < parts; i++) {\n // eslint-disable-next-line no-bitwise\n const S4 = (((1 + Math.random()) * 0x10000) | 0).toString(16);\n const S4_: string = S4.length > 0 ? S4.substring(1) : '';\n stringArr.push(S4_);\n }\n return stringArr.join('-');\n}\n\nexport function getDateService(logService: LogService, culture?): DateService {\n const defaultCulture = culture ?? BarsaApi.LoginFormData.Culture;\n switch (defaultCulture) {\n case 'fa-IR':\n return new DateShamsiService(logService);\n case 'ar-AE':\n return new DateHijriService(logService);\n default:\n return new DateMiladiService(logService);\n }\n}\nexport function isFirefox(): boolean {\n return navigator.userAgent.toLowerCase().indexOf('firefox') > -1;\n}\nexport function getImagePath(\n type: string,\n moId: string | null,\n fileId: string,\n fieldDefId?: string,\n size?: number,\n sizeH?: number\n): string {\n moId = moId == null ? '' : encodeURIComponent(moId);\n fileId = fileId == null ? '' : encodeURIComponent(fileId);\n fieldDefId = fieldDefId == null ? '' : encodeURIComponent(fieldDefId);\n size = size == null ? 128 : size;\n sizeH = sizeH == null ? size : sizeH;\n const url = `/IH.ashx?ty=${type}&moId=${moId}&id=${fileId}&fdId=${fieldDefId}&si=${size}&siH=${sizeH}`;\n return url;\n}\n\nexport function isFunction(functionToCheck): boolean {\n return functionToCheck && {}.toString.call(functionToCheck) === '[object Function]';\n}\nexport function DeviceWidth(): number {\n return window.innerWidth > 0 ? window.innerWidth : screen.width;\n}\nexport function getHeaderValue(fieldValue): any {\n if (typeof fieldValue !== 'object') {\n return fieldValue;\n }\n const value = fieldValue.Value;\n const valueCaption: string = fieldValue.Value$Caption;\n let valueObjectCaption = null;\n if (typeof value === 'object') {\n valueObjectCaption = fieldValue.Value.$Caption;\n }\n if (valueObjectCaption) {\n return valueObjectCaption;\n }\n if (valueCaption && !valueCaption.startsWith('tmp')) {\n return valueCaption;\n }\n return value;\n}\nexport function elementInViewport2(el: any): boolean {\n let top = el.offsetTop;\n let left = el.offsetLeft;\n const width = el.offsetWidth;\n const height = el.offsetHeight;\n\n while (el.offsetParent) {\n el = el.offsetParent;\n top += el.offsetTop;\n left += el.offsetLeft;\n }\n\n return (\n top < window.pageYOffset + window.innerHeight &&\n left < window.pageXOffset + window.innerWidth &&\n top + height > window.pageYOffset &&\n left + width > window.pageXOffset\n );\n}\nexport function PreventDefaulEvent(e): void {\n e.stopPropagation();\n e.preventDefault();\n}\n\nexport function getParentHeight(elDom: HTMLElement): number {\n let parentDom = elDom.parentElement;\n let parentHeight = parentDom?.clientHeight ?? 0;\n while (parentDom != null && parentHeight < 40) {\n parentDom = parentDom.parentElement;\n parentHeight = parentDom?.clientHeight ?? 0;\n }\n return parentHeight;\n}\n\nexport function getComponentDefined(\n controlUi: { originalXtype: string },\n customUiSetting: { Module: string; Name: string; Selector: string }\n): {\n moduleName: string;\n modulePath: string;\n componentName: string;\n selector: string;\n} {\n let moduleName = BarsaApi.LoginFormData.DefaultUiModule;\n let moduleKebabName = BarsaApi.Common.Util.GetKebabCase(moduleName);\n let componentName = controlUi.originalXtype.replace('.', '').replace('_', '');\n let selector: string = BarsaApi.Common.Util.GetKebabCase(componentName);\n selector = selector.substring(1, selector.length);\n selector = BarsaApi.LoginFormData.CustomUiPrefix + '-' + selector;\n if (customUiSetting && customUiSetting.Module) {\n moduleName = customUiSetting.Module;\n moduleKebabName = BarsaApi.Common.Util.GetKebabCase(moduleName);\n componentName = customUiSetting.Name;\n selector = customUiSetting.Selector;\n }\n const modulePath = moduleKebabName.slice(1, moduleKebabName.length);\n return { moduleName, modulePath, componentName, selector };\n}\n\nexport function getDeviceIsPhone(): boolean {\n return Device.isPhone();\n}\nexport function getDeviceIsDesktop(): boolean {\n return Device.isTablet();\n}\nexport function getDeviceIsTablet(): boolean {\n return Device.isTablet();\n}\nexport function getDeviceIsMobile(): boolean {\n return navigator.userAgent.indexOf('mobi') > 0 || getDeviceIsPhone();\n}\n\nexport function getControlSizeMode(el: HTMLElement, deviceSize: 's' | 'm' | 'l' | 'xl' = 'l'): AbbrevationDeviceSize {\n const containerWidth = el.offsetWidth;\n if (containerWidth === 0) {\n return deviceSize;\n }\n if (deviceSize === 's' || containerWidth < 600) {\n deviceSize = 's';\n } else if (deviceSize === 'm' || (containerWidth > 600 && containerWidth < 1200)) {\n deviceSize = 'm';\n }\n return deviceSize;\n}\n\nexport function formatBytes(\n bytes,\n decimals = 2,\n size: 'Bytes' | 'KB' | 'MB' | 'GB' | 'TB' | 'PB' | 'EB' | 'ZB' | 'YB'\n): string {\n if (bytes === 0) {\n return '0 Bytes';\n }\n\n const k = 1024;\n const dm = decimals < 0 ? 0 : decimals;\n const sizes = ['Bytes', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'];\n const i = sizes.findIndex((c) => c === size);\n return parseFloat((bytes / Math.pow(k, i)).toFixed(dm)) + ' ' + sizes[i];\n}\nexport function getValidExtension(validExtensions): string {\n let _validExtensions = '';\n if (Array.isArray(validExtensions)) {\n _validExtensions = validExtensions.map((c) => '.' + c.Extension).join(',');\n }\n return _validExtensions;\n}\nexport function getIcon(type: string): string {\n return BarsaApi.Common.File.FileIconDict128[type];\n}\nexport function isImage(type): boolean {\n if (!type) {\n return false;\n }\n type = type.toLowerCase();\n return ['img', 'png', 'jpeg', 'jpg', 'gif', 'bmp', 'tiff', 'image'].indexOf(type) > -1;\n}\n\nexport function GetAllColumnsSorted(context): Array<ReportViewColumn> {\n const allColumns = BarsaApi.Common.Util.TryGetValue(context, 'Setting.View.Columns', []).filter(\n (c) => c.Name !== 'Id' && c.Name !== '$StyleIndex' && !c.Hidden\n );\n\n const colList: ColSetting[] = BarsaApi.Common.Util.TryGetValue(\n context,\n 'Setting.View.GridSetting.ColSettingList',\n []\n );\n const columns = new Array<ReportViewColumn>();\n colList.forEach((colS) => {\n const column = allColumns.find((c) => c.Name === colS.Name);\n if (column) {\n columns.push({ ...column, Hidden: colS.IsHidden, Width: colS.Width });\n }\n });\n allColumns.forEach((column, index) => {\n const colSetting = colList.find((c) => c.Name === column.Name);\n if (!colSetting) {\n columns.splice(index, 0, { ...column, Hidden: colList.length > 0 ? true : false });\n }\n });\n return columns;\n}\nexport function getGridSettings(context): GridSetting {\n const gridSetting = BarsaApi.Common.Util.TryGetValue(context, 'Setting.View.GridSetting', null);\n return {\n ColSettingList: gridSetting?.ColSettingList ?? null,\n SortSettingList: gridSetting?.SortSettingList ?? [],\n AutoSizeColumns: gridSetting?.AutoSizeColumns ?? false\n };\n}\nexport function GetDefaultMoObjectInfo(typeDefId: string): MetaobjectDataModel {\n return {\n Id: '0',\n $Caption: '',\n $TypeDefId: typeDefId,\n $State: 'New',\n $Type: 'Common.MetaObjectWeb',\n $FieldDict: {}\n };\n}\nexport function getLayout94ObjectInfo(): LayoutSetting {\n return {\n Type: 'Root',\n ControlId: 'ریشه',\n xtype: 'Ly.LayoutContainer',\n Bounds: { x: 0, y: 0, width: 432, height: 24 },\n items: [\n {\n Type: 'VerticalJoin',\n xtype: 'Ly.LayoutJoin',\n IsVertical: true,\n Bounds: { x: 0, y: 0, width: 432, height: 82 },\n items: []\n }\n ]\n };\n}\nexport function getFormSettings(typeDefId: string): FormSetting {\n const mo = GetDefaultMoObjectInfo(typeDefId);\n\n const formPanelSettings: FormSetting = {\n View: {\n Layout94: getLayout94ObjectInfo,\n ControlInfo: [],\n TypeDefId: typeDefId\n },\n IsSearchPanel: true,\n Data: {\n Mo: mo\n }\n };\n return formPanelSettings;\n}\nexport function createFormPanelMetaConditions(\n typeDefId: string,\n controlsInfo: GeneralControlInfoModel[],\n controlName: string,\n value: any\n): any {\n const formSettings = getFormSettings(typeDefId);\n formSettings.View.ControlInfo = JSON.parse(JSON.stringify(controlsInfo));\n\n formSettings.View.Layout94.items[0].items.push(...controlsInfo.map((c) => getLayoutControl(c.ControlName)));\n formSettings.Data.Mo[controlName] = value;\n const formPanelCtrlr = new BarsaApi.Ul.FormPanelCtrlr({\n Setting: formSettings,\n Features: {\n Workflow: false,\n Toolbar: false,\n InfoBar: false\n }\n });\n return formPanelCtrlr;\n}\nexport function getNewMoGridEditor(formSettings: FormSetting, typedefId: string): Partial<FormSetting> {\n const newFormSettings: FormSetting = JSON.parse(JSON.stringify(formSettings));\n return { ...newFormSettings.Data.Mo, $TypeDefId: typedefId };\n}\nexport function createGridEditorFormPanel(\n formSettings: FormSetting,\n mo: MetaobjectDataModel,\n typedef: string,\n relation: any,\n rewriteLayout: boolean = true\n): any {\n const newFormSettings: FormSetting = JSON.parse(JSON.stringify(formSettings));\n newFormSettings.Data.Mo = { ...mo, $TypeDefId: typedef };\n if (rewriteLayout) {\n newFormSettings.View.Layout94 = getLayout94ObjectInfo();\n newFormSettings.View.Layout94.items[0].items.push(\n ...newFormSettings.View.ControlInfo.map((c) =>\n getLayoutControl(c.ControlName, c.ControlFieldCaptionTranslated, false)\n )\n );\n }\n const formRequestParams = new BarsaApi.Ul.FormRequestParams({\n MoId: newFormSettings.Data.Mo.Id,\n TypeDefId: typedef,\n Relation: relation\n // MoContext: {\n // ReportId: '',\n // ViewId: '',\n // ViewName: '',\n // CondFormating: '',\n // IncludeInReport: ''\n // }\n });\n const formPanelCtrlr = new BarsaApi.Ul.FormPanelCtrlr({\n Setting: newFormSettings,\n Relation: relation,\n Features: {\n Workflow: false,\n Toolbar: false,\n InfoBar: false\n },\n FormRequestParams: formRequestParams\n });\n return formPanelCtrlr;\n}\n\nexport function getLayoutControl(\n controlName: string,\n controlCaption: string = '',\n hide: boolean = true\n): Partial<GeneralControlInfoModel> {\n return {\n xtype: 'Ly.LayoutControl',\n Type: 'LayoutControlItem',\n ControlId: controlName,\n IsVertical: false,\n TextLocation: 'Right',\n TextVisible: false,\n Visible: !hide,\n hide,\n UseLayoutItemTextForControl: false,\n Caption: controlCaption,\n AccessibleName: '',\n Bounds: { x: 0, y: 0, width: 432, height: 24 },\n MinSize: { width: 89, height: 24 },\n MaxSize: { width: 0, height: 24 },\n ControlBounds: { width: 388, height: 20 },\n ControlMinSize: { width: 45, height: 20 },\n ControlMaxSize: { width: 0, height: 20 },\n Padding: [2, 2, 2, 2],\n LabelSize: { width: 35, height: 13 },\n originalXtype: ''\n };\n}\n\nexport function getControlList(\n mo: MetaobjectDataModel,\n controlDbNames: string[],\n isSearchPanel: boolean,\n isGridEditor: boolean\n): Promise<GeneralControlInfoModel[]> {\n return new Promise<GeneralControlInfoModel[]>((resolve, reject) => {\n BarsaApi.Common.Ajax.GetServerData(\n 'Form94.GetControlInfos',\n {\n controlInfoParameter: {\n FieldDbNames: controlDbNames,\n Mo: new BarsaApi.Common.MetaObjectWeb(mo),\n IsSearchPanel: isSearchPanel,\n IsGridEditor: isGridEditor\n }\n },\n (m) => {\n resolve(m);\n },\n (err) => {\n reject(err);\n }\n );\n });\n}\n\nexport type NzSafeAny = any;\nexport type NumberInput = number | string | undefined | null;\nexport interface NgStyleInterface {\n [klass: string]: NzSafeAny;\n}\n\nexport interface IndexableObject {\n [key: string]: NzSafeAny;\n}\nexport function shallowEqual(objA?: IndexableObject, objB?: IndexableObject): boolean {\n if (objA === objB) {\n return true;\n }\n\n if (typeof objA !== 'object' || !objA || typeof objB !== 'object' || !objB) {\n return false;\n }\n\n const keysA = Object.keys(objA);\n const keysB = Object.keys(objB);\n\n if (keysA.length !== keysB.length) {\n return false;\n }\n\n const bHasOwnProperty = Object.prototype.hasOwnProperty.bind(objB);\n\n // eslint-disable-next-line @typescript-eslint/prefer-for-of\n for (let idx = 0; idx < keysA.length; idx++) {\n const key = keysA[idx];\n if (!bHasOwnProperty(key)) {\n return false;\n }\n if (objA[key] !== objB[key]) {\n return false;\n }\n }\n\n return true;\n}\nexport function toNumber(value: number | string): number;\nexport function toNumber<D>(value: number | string, fallback: D): number | D;\nexport function toNumber(value: number | string, fallbackValue: number = 0): number {\n return _isNumberValue(value) ? Number(value) : fallbackValue;\n}\nfunction propDecoratorFactory<T, D>(\n name: string,\n fallback: (v: T) => D\n): (target: NzSafeAny, propName: string) => void {\n function propDecorator(\n target: NzSafeAny,\n propName: string,\n originalDescriptor?: TypedPropertyDescriptor<NzSafeAny>\n ): NzSafeAny {\n const privatePropName = `$$__zorroPropDecorator__${propName}`;\n\n if (Object.prototype.hasOwnProperty.call(target, privatePropName)) {\n // warn(`The prop \"${privatePropName}\" is already exist, it will be overrided by ${name} decorator.`);\n }\n\n Object.defineProperty(target, privatePropName, {\n configurable: true,\n writable: true\n });\n\n return {\n get(): string {\n return originalDescriptor && originalDescriptor.get\n ? originalDescriptor.get.bind(this)()\n : this[privatePropName];\n },\n set(value: T): void {\n if (originalDescriptor && originalDescriptor.set) {\n originalDescriptor.set.bind(this)(fallback(value));\n }\n this[privatePropName] = fallback(value);\n }\n };\n }\n\n return propDecorator;\n}\nexport function InputNumber(fallbackValue?: NzSafeAny): NzSafeAny {\n return propDecoratorFactory('InputNumber', (value: string | number) => toNumber(value, fallbackValue));\n}\nexport enum AffixRespondEvents {\n resize = 'resize',\n scroll = 'scroll',\n touchstart = 'touchstart',\n touchmove = 'touchmove',\n touchend = 'touchend',\n pageshow = 'pageshow',\n load = 'LOAD'\n}\nexport interface SimpleRect {\n top: number;\n left: number;\n width?: number;\n height?: number;\n bottom?: number;\n}\n\nexport function isTargetWindow(target: Element | Window): target is Window {\n return typeof window !== 'undefined' && target === window;\n}\n\nexport function getTargetRect(target: Element | Window): SimpleRect {\n return !isTargetWindow(target)\n ? target.getBoundingClientRect()\n : {\n top: 0,\n left: 0,\n bottom: 0\n };\n}\nexport function getFieldValue(name: string, mo: MetaobjectDataModel, caption?: boolean): string {\n const fieldName = mo.$FieldDict && mo.$FieldDict[name] ? mo.$FieldDict[name] : name;\n let val = mo[fieldName];\n if (caption) {\n let captionVal = mo[fieldName]?.$Caption;\n if (typeof captionVal !== 'string') {\n if (!captionVal) {\n captionVal = mo[fieldName + '$Caption'];\n }\n if (!captionVal) {\n captionVal = val;\n }\n }\n val = captionVal;\n }\n return val;\n}\n\n/* eslint-disable no-invalid-this */\nexport const availablePrefixes = ['moz', 'ms', 'webkit'];\n\nexport function requestAnimationFramePolyfill(): typeof requestAnimationFrame {\n let lastTime = 0;\n return function (callback: FrameRequestCallback): any {\n const currTime = new Date().getTime();\n const timeToCall = Math.max(0, 16 - (currTime - lastTime));\n const id = setTimeout(() => {\n callback(currTime + timeToCall);\n }, timeToCall);\n lastTime = currTime + timeToCall;\n return id;\n };\n}\nexport function ExecuteDynamicCommand(command: { Id: string }, mo: MetaobjectDataModel | null = null): void {\n const e = { command, DynamicSetting: mo, Mo: mo };\n BarsaApi.Common.CustomCodeManager.RunDynamicCommand(command.Id, e);\n}\nexport function ExecuteWorkflowChoiceDef(scope, param, success: (result) => void, failed: (error) => void): void {\n BarsaApi.Common.Ajax.GetServerData(\n 'Workflow94.ChoiceSelect',\n param,\n (result) => {\n success(result);\n }, // success\n (error) => {\n failed(error);\n }, // error\n () => {}, // doReturn\n scope,\n true\n );\n}\nexport function getRequestAnimationFrame(): typeof requestAnimationFrame {\n if (typeof window === 'undefined') {\n return () => 0;\n }\n if (window.requestAnimationFrame) {\n // https://github.com/vuejs/vue/issues/4465\n return window.requestAnimationFrame.bind(window);\n }\n\n const prefix = availablePrefixes.filter((key) => `${key}RequestAnimationFrame` in window)[0];\n\n return prefix ? (window as NzSafeAny)[`${prefix}RequestAnimationFrame`] : requestAnimationFramePolyfill();\n}\nexport function cancelRequestAnimationFrame(id: number): NzSafeAny {\n if (typeof window === 'undefined') {\n return null;\n }\n if (window.cancelAnimationFrame) {\n return window.cancelAnimationFrame(id);\n }\n const prefix = availablePrefixes.filter(\n (key) => `${key}CancelAnimationFrame` in window || `${key}CancelRequestAnimationFrame` in window\n )[0];\n\n return prefix\n ? (\n (window as NzSafeAny)[`${prefix}CancelAnimationFrame`] ||\n (window as NzSafeAny)[`${prefix}CancelRequestAnimationFrame`]\n )\n // @ts-ignore\n .call(this, id)\n : clearTimeout(id);\n}\n\nexport type EasyingFn = (t: number, b: number, c: number, d: number) => number;\n\nexport function easeInOutCubic(t: number, b: number, c: number, d: number): number {\n const cc = c - b;\n let tt = t / (d / 2);\n if (tt < 1) {\n return (cc / 2) * tt * tt * tt + b;\n } else {\n return (cc / 2) * ((tt -= 2) * tt * tt + 2) + b;\n }\n}\n\nexport interface NzScrollToOptions {\n /** Animation duration, default as 450 */\n duration?: number;\n /** Scroll container, default as window */\n easing?: EasyingFn;\n /** Scroll end callback */\n callback?(): void;\n}\nexport const WordMimeType =\n '.doc,.docx,application/msword,application/vnd.openxmlformats-officedocument.wordprocessingml.document';\nexport const ImageMimeType = '.jpeg,.jpg,.gif,.png,.bmp,.tif,image/*';\nexport const PdfMimeType = '.pdf';\nexport const AllFilesMimeType = '.txt,.ppt,.pdf,.*';\nexport const VideoMimeType = 'video/*';\nexport const AudioMimeType = 'audio/*';\n","import { Injectable } from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\nimport { Observable, from } from 'rxjs';\n\nimport { BarsaApi } from '../abstract-classes/barsa-api';\nimport { CartableTemplateKey, LoginResult, PortalDataModel } from '../abstract-classes/models';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ApiService {\n portalLoginUrl = `/api/auth/portal/login`;\n executeUrl = `api/base/execute`;\n constructor(private httpClient: HttpClient) {}\n\n public loginPortal(): Observable<LoginResult> {\n return this.httpClient.get<LoginResult>(this.portalLoginUrl);\n }\n public GetCartableTemplate(keyOfCartableTemplates: CartableTemplateKey[]): Observable<{ [key: string]: string }> {\n return from(this.loadFormAjax({ viewSettings: keyOfCartableTemplates }, 'List94.LoadCartableTemplates'));\n }\n public loadPortalPageData(pageId, typeDefId): Observable<any> {\n return from(\n this.loadFormAjax(\n {\n formParam: {\n IsNew: false,\n Mo: { Id: pageId, $TypeDefId: typeDefId }\n }\n },\n 'Form94.GetPortal'\n )\n );\n }\n public loadPortal(portalId, typeDefId): Observable<PortalDataModel> {\n return from(\n this.loadFormAjax(\n {\n formParam: {\n IsNew: false,\n Mo: { Id: portalId, $TypeDefId: typeDefId }\n }\n },\n 'Form94.GetPortal'\n )\n );\n }\n public loadPortalSync(portalId, typeDefId): PortalDataModel {\n return this.getServerDataSync(\n {\n formParam: {\n IsNew: false,\n Mo: { Id: portalId, $TypeDefId: typeDefId }\n }\n },\n 'Form94.GetPortal'\n );\n }\n private getServerDataSync(param, action): PortalDataModel {\n return BarsaApi.Common.Ajax.GetServerData_SyncReturn(action, param, false);\n }\n private loadFormAjax(param, action): Promise<any> {\n return new Promise((resolve, reject) => {\n BarsaApi.Common.Ajax.GetServerData(\n action,\n param,\n (m) => {\n resolve(m);\n },\n (err) => {\n reject(err);\n }\n );\n });\n }\n}\n","import { Injectable } from '@angular/core';\r\nimport { ActivatedRoute, Data, NavigationEnd, Router } from '@angular/router';\r\nimport { BehaviorSubject, Observable } from 'rxjs';\r\nimport { filter, map, startWith } from 'rxjs/operators';\r\nimport { BreadCrumbInfo } from './portal.service';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BreadcrumbService {\r\n // Observable exposing the breadcrumb hierarchy\r\n readonly breadcrumbs$: Observable<BreadCrumbInfo[]>;\r\n\r\n // Subject emitting the breadcrumb hierarchy\r\n private readonly _breadcrumbs$ = new BehaviorSubject<BreadCrumbInfo[]>([]);\r\n\r\n constructor(private router: Router) {\r\n this.breadcrumbs$ = this._breadcrumbs$.asObservable();\r\n this.router.events\r\n .pipe(\r\n // Filter the NavigationEnd events as the breadcrumb is updated only when the route reaches its end\r\n filter((event) => event instanceof NavigationEnd),\r\n startWith(this.router),\r\n map(() => this.router.routerState.root)\r\n )\r\n .subscribe((root) => {\r\n // Construct the breadcrumb hierarchy\r\n // const root = this.router.routerState.snapshot.root;\r\n const breadcrumbs: BreadCrumbInfo[] = [];\r\n this.addBreadcrumb(root, breadcrumbs);\r\n\r\n // Emit the new hierarchy\r\n this._breadcrumbs$.next(breadcrumbs);\r\n });\r\n }\r\n\r\n private addBreadcrumb(route: ActivatedRoute | null, breadcrumbs: BreadCrumbInfo[]): void {\r\n if (route) {\r\n // Add an element for the current route part\r\n if (route.snapshot.data?.breadcrumb || route.snapshot.data?.pageData?.BreadCrumb) {\r\n let url = '';\r\n const routeURL: string = route.snapshot.url.map((segment) => segment.path).join('/');\r\n if (routeURL !== '') {\r\n url += `/${routeURL}`;\r\n }\r\n const breadcrumb = {\r\n label: this.getLabel(route.snapshot.data),\r\n url,\r\n route\r\n };\r\n breadcrumbs.push(breadcrumb);\r\n }\r\n // Add another element for the next route part\r\n this.addBreadcrumb(route.firstChild, breadcrumbs);\r\n }\r\n }\r\n\r\n private getLabel(data: Data): string {\r\n // The breadcrumb can be defined as a static string or as a function to construct the breadcrumb element out of the route data\r\n const breadcrumb = data.breadcrumb || data.pageData.BreadCrumb;\r\n\r\n return typeof breadcrumb === 'function' ? data.breadcrumb(data) : breadcrumb;\r\n }\r\n}\r\n","import {\n AfterViewInit,\n ApplicationRef,\n Component,\n ComponentFactoryResolver,\n ComponentRef,\n Injector,\n OnInit,\n Type\n} from '@angular/core';\nimport { BaseComponent } from './abstract-classes/base.component';\n\n@Component({\n template: ``\n})\nexport class ModalRootComponent extends BaseComponent implements OnInit, AfterViewInit {\n componentType: Type<any>;\n componentInstance: ComponentRef<any>;\n constructor(\n private factoryResolver: ComponentFactoryResolver,\n private injector: Injector,\n private _appRef: ApplicationRef\n ) {\n super();\n // this.insertComponent();\n }\n\n ngOnInit(): void {\n super.ngOnInit();\n // this.insertComponent();\n }\n close(): void {\n this._appRef.detachView(this.componentInstance.hostView);\n }\n insertComponent(): void {\n const factoryResolver = this.factoryResolver.resolveComponentFactory(this.componentType);\n this.componentInstance = factoryResolver.create(this.injector);\n\n this._appRef.attachView(this.componentInstance.hostView);\n }\n}\n","import {\n ComponentFactoryResolver,\n Injectable,\n InjectFlags,\n InjectionToken,\n Injector,\n OnDestroy,\n Type,\n ViewContainerRef\n} from '@angular/core';\nimport { ActivatedRoute } from '@angular/router';\nimport { Observable, Subject } from 'rxjs';\nimport { ContainerComponent } from '../container.component';\n\nimport { ModalRootComponent } from '../modal-root.component';\n\nexport class CustomInjector implements Injector {\n constructor(\n private parentInjector: Injector,\n private additionalTokens: WeakMap<any, any>,\n private activatedRoute?: ActivatedRoute\n ) {}\n\n get<T>(token: Type<T> | InjectionToken<T>, notFoundValue?: T, flags?: InjectFlags): T;\n get(token: any, notFoundValue?: any): any {\n if (token === ActivatedRoute && this.activatedRoute) {\n return this.activatedRoute;\n }\n const value = this.additionalTokens.get(token);\n if (value) {\n return value;\n }\n return this.parentInjector.get<any>(token, notFoundValue);\n }\n}\n@Injectable() // check it later\nexport class DialogParams implements OnDestroy {\n context: any;\n afterClosed$: Observable<any>;\n private afterClosed: Subject<any> = new Subject<any>();\n constructor() {\n this.afterClosed$ = this.afterClosed?.asObservable();\n }\n close(result?: any): void {\n if (this.afterClosed != null) {\n this.afterClosed.next(result);\n }\n }\n\n ngOnDestroy(): void {\n this.afterClosed.unsubscribe();\n }\n}\n\n@Injectable({\n providedIn: 'root'\n})\nexport class BarsaDialogService {\n containerComponent: ContainerComponent;\n constructor(protected factoryResolver: ComponentFactoryResolver, protected injector: Injector) {}\n\n showForm(component: Type<any>, context: any, container?: ViewContainerRef): Observable<any> {\n const weakMap = new WeakMap();\n\n const dialogParams = new DialogParams();\n dialogParams.context = context;\n weakMap.set(DialogParams, dialogParams);\n\n const viewContainerRef = container ?? this.containerComponent.vcr;\n const factory = this.factoryResolver.resolveComponentFactory(ModalRootComponent);\n const modalRootComponentRef = factory.create(new CustomInjector(viewContainerRef.injector, weakMap));\n\n modalRootComponentRef.instance.componentType = component;\n modalRootComponentRef.instance.insertComponent();\n if (!context.inDialog) {\n // viewContainerRef.element.nativeElement.classList.add('deactive');\n }\n viewContainerRef.insert(modalRootComponentRef.hostView, 0);\n this.containerComponent.cdr.detectChanges();\n const sub = dialogParams.afterClosed$?.subscribe(() => {\n modalRootComponentRef.instance.close();\n viewContainerRef.remove(0);\n sub?.unsubscribe();\n // viewContainerRef.element.nativeElement.classList.remove('deactive');\n });\n // this.modalRootComponentRef.instance.navigate();\n return dialogParams.afterClosed$;\n }\n}\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\nimport { BaseComponent } from '../abstract-classes/base.component';\n\n@Component({\n selector: 'bnrc-not-found',\n templateUrl: './not-found.component.html',\n styleUrls: ['./not-found.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class NotFoundComponent extends BaseComponent {\n @Input() componentName: string;\n @Input() moduleName: string;\n}\n","<div fd-form-control>{{ moduleName + ' ' + componentName }}</div>\r\n","import { Injectable, Injector, ComponentRef, ComponentFactoryResolver } from '@angular/core';\r\nimport { Observable, of } from 'rxjs';\r\nimport { NotFoundComponent } from '../not-found/not-found.component';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class DynamicComponentService {\r\n private _dynamicModuleWithComponents: {\r\n [key: string]: {\r\n ngModuleRef: any;\r\n };\r\n } = {};\r\n constructor(private cfr: ComponentFactoryResolver) {}\r\n addModuleWithComponents(moduleName: string, ngModuleRef: any): void {\r\n if (!this._dynamicModuleWithComponents[moduleName]) {\r\n this._dynamicModuleWithComponents[moduleName] = {\r\n ngModuleRef\r\n };\r\n }\r\n }\r\n getComponentBySelector(\r\n selector: string,\r\n moduleName: string,\r\n injector: Injector\r\n ): Observable<ComponentRef<unknown>> {\r\n const moName = moduleName + 'Module';\r\n const module = this._dynamicModuleWithComponents[moName];\r\n if (module && module.ngModuleRef.getComponentFactory) {\r\n const componentFactory = module.ngModuleRef.getComponentFactory(selector);\r\n if (componentFactory) {\r\n return of(componentFactory.create(injector));\r\n }\r\n }\r\n const componentRef = this.cfr.resolveComponentFactory(NotFoundComponent).create(injector);\r\n componentRef.instance.componentName = selector;\r\n componentRef.instance.moduleName = moduleName;\r\n return of(componentRef);\r\n }\r\n getComponentByName(\r\n componentName: string,\r\n moduleName: string,\r\n injector: Injector\r\n ): Observable<ComponentRef<unknown>> {\r\n const cmpName = componentName + 'Component';\r\n const moName = moduleName + 'Module';\r\n const module = this._dynamicModuleWithComponents[moName];\r\n if (module && module.ngModuleRef.getComponentFactory) {\r\n const componentFactory = module.ngModuleRef.getComponentFactory(cmpName);\r\n if (componentFactory) {\r\n return of(componentFactory.create(injector));\r\n }\r\n }\r\n const componentRef = this.cfr.resolveComponentFactory(NotFoundComponent).create(injector);\r\n componentRef.instance.componentName = componentName;\r\n componentRef.instance.moduleName = moduleName;\r\n return of(componentRef);\r\n }\r\n}\r\n","import { BehaviorSubject, Subject, Observable, combineLatest } from 'rxjs';\nimport { debounceTime, delay, filter, map, takeUntil, tap } from 'rxjs/operators';\nimport { FormViewSetting, IHeaderLayout, LayoutSetting, MetaobjectDataModel } from '../abstract-classes/models';\nimport { BarsaApi } from '../abstract-classes/barsa-api';\nimport { BaseComponent } from '../abstract-classes/base.component';\nimport { DeviceWidth, getHeaderValue } from '../constants';\n\nexport class FormPanelService extends BaseComponent {\n context$: Observable<any>;\n searchPanelIsObject$: Observable<boolean>;\n isSearchPanel$: Observable<boolean>;\n workflowPanelUi$: Observable<any>;\n mo$: Observable<MetaobjectDataModel>;\n view$: Observable<any>;\n toolbarItems$: Observable<any[]>;\n workflowButtons$: Observable<any[]>;\n maxContentWidth$: Observable<string>;\n wizardNextStep$: Observable<void>;\n wizardPreviousStep$: Observable<void>;\n layout$: Observable<any>;\n forceClose$: Observable<void>;\n groupLayout$: Observable<LayoutSetting>;\n isSimpleForm$: Observable<boolean>;\n formWidth$: Observable<string>;\n toolbarVisible$: Observable<boolean>;\n headerLayout$: Observable<IHeaderLayout>;\n _hideClose$ = new BehaviorSubject<boolean>(false);\n _hideTitle$ = new BehaviorSubject<boolean>(false);\n _hidePin$ = new BehaviorSubject<boolean>(false);\n title$: Observable<string>;\n headerDescription$: Observable<string>;\n headerRemoveContentPadding$: Observable<boolean>;\n headerSubtitle$: Observable<string>;\n avatar$: Observable<any>;\n mask$: Observable<boolean>;\n formHeight$: Observable<number>;\n fieldDict$: Observable<{ [key: string]: string } | undefined>;\n\n private _context;\n private _contextSource = new BehaviorSubject<any>(null);\n private _formHeightSource = new BehaviorSubject<number>(0);\n private _searchPanelIsObjectSource = new BehaviorSubject<boolean>(false);\n private _isSearchPanelSource = new BehaviorSubject<boolean>(false);\n private _workflowPanelUiSource = new BehaviorSubject<any>(null);\n private _moSource = new BehaviorSubject<any>(null);\n private _viewSource = new BehaviorSubject<any>(null);\n private _toolbarItemsSource = new BehaviorSubject<any[]>([]);\n private _titleSource = new BehaviorSubject<string>('');\n private _maxContentWidthSource = new BehaviorSubject<string>('auto');\n private _wizardNextStepSource = new Subject<void>();\n private _wizardPreviousStepSource = new Subject<void>();\n private _layoutSource = new BehaviorSubject<any>(null);\n private _forceCloseSource = new Subject<void>();\n private _groupBRuleSource = new Subject<LayoutSetting>();\n private _isSimpleFormSource = new BehaviorSubject<boolean>(false);\n private _formWidthSource = new BehaviorSubject<string>('100%');\n private _toolbarVisibleSource = new BehaviorSubject<boolean>(true);\n private _headerLayoutSource = new BehaviorSubject<any>(null);\n private _headerTitleSource = new BehaviorSubject<string>('');\n private _maskSource = new BehaviorSubject<boolean>(false);\n private _headerRemoveContentPaddingSource = new BehaviorSubject<boolean>(false);\n private _headerDescriptionSource = new BehaviorSubject<string>('');\n private _canSend$ = new BehaviorSubject<boolean>(false);\n\n constructor() {\n super();\n this.context$ = this._contextSource.asObservable().pipe(\n tap((context) => this._prepareContext(context)),\n takeUntil(this._onDestroy$)\n );\n\n this.searchPanelIsObject$ = this._searchPanelIsObjectSource.asObservable().pipe(takeUntil(this._onDestroy$));\n this.isSearchPanel$ = this._isSearchPanelSource.asObservable().pipe(takeUntil(this._onDestroy$));\n this.workflowPanelUi$ = this._workflowPanelUiSource.asObservable().pipe(takeUntil(this._onDestroy$));\n this.formHeight$ = this._formHeightSource.asObservable();\n this.mo$ = this._moSource.asObservable().pipe(takeUntil(this._onDestroy$));\n this.fieldDict$ = this.mo$.pipe(\n map((c) => c.$FieldDict),\n takeUntil(this._onDestroy$)\n );\n\n this.view$ = this._viewSource.asObservable().pipe(\n tap((view) => this._prepareView(view)),\n takeUntil(this._onDestroy$)\n );\n\n this.toolbarItems$ = this._toolbarItemsSource.asObservable().pipe(\n map((items) => this._filterToolbarItems(items)),\n takeUntil(this._onDestroy$)\n );\n this.workflowButtons$ = this._toolbarItemsSource.asObservable().pipe(\n map((items) => this._filterToolbarItems(items)),\n map((items) => items.filter((c) => c.isWorkflow)),\n takeUntil(this._onDestroy$)\n );\n\n this.maxContentWidth$ = this._maxContentWidthSource.asObservable().pipe(\n map((width) => (width ? width + 'px' : 'auto')),\n takeUntil(this._onDestroy$)\n );\n\n this.wizardNextStep$ = this._wizardNextStepSource.asObservable().pipe(takeUntil(this._onDestroy$));\n this.wizardPreviousStep$ = this._wizardPreviousStepSource.asObservable().pipe(takeUntil(this._onDestroy$));\n this.layout$ = this._layoutSource.asObservable().pipe(\n map((layout) => {\n if (!layout) {\n return layout;\n }\n const deviceWidth = DeviceWidth();\n if (deviceWidth < layout.Bounds.width) {\n layout.Bounds.width = deviceWidth;\n }\n return { ...layout };\n }),\n takeUntil(this._onDestroy$)\n );\n\n this.forceClose$ = this._forceCloseSource.asObservable().pipe(takeUntil(this._onDestroy$));\n\n this.groupLayout$ = this._groupBRuleSource.asObservable().pipe(takeUntil(this._onDestroy$));\n\n this.isSimpleForm$ = this._isSimpleFormSource.asObservable().pipe(takeUntil(this._onDestroy$));\n\n this.formWidth$ = this._formWidthSource.asObservable().pipe(takeUntil(this._onDestroy$));\n\n this.toolbarVisible$ = this._toolbarVisibleSource.asObservable().pipe(takeUntil(this._onDestroy$));\n this.title$ = combineLatest([this._headerTitleSource.asObservable(), this._titleSource.asObservable()]).pipe(\n map(([headerTitle, title]) => (headerTitle ? headerTitle : title)),\n takeUntil(this._onDestroy$)\n );\n this.headerLayout$ = this._headerLayoutSource.asObservable().pipe(\n filter((headerLayout) => !!headerLayout),\n tap((headerLayout) => this._headerTitleSource.next(getHeaderValue(headerLayout?.Title))),\n tap((headerLayout) => this._hideClose$.next(headerLayout?.HideClose)),\n tap((headerLayout) => this._hideTitle$.next(headerLayout?.HideTitle)),\n tap((headerLayout) => this._hidePin$.next(headerLayout?.HidePin)),\n tap((headerLayout) => this._headerDescriptionSource.next(getHeaderValue(headerLayout?.Description))),\n tap((headerLayout) =>\n this._headerRemoveContentPaddingSource.next(getHeaderValue(headerLayout?.RemoveContentPadding))\n ),\n takeUntil(this._onDestroy$)\n );\n\n this.headerDescription$ = this._headerDescriptionSource.asObservable().pipe(takeUntil(this._onDestroy$));\n\n this.headerRemoveContentPadding$ = this._headerRemoveContentPaddingSource\n .asObservable()\n .pipe(delay(0), takeUntil(this._onDestroy$));\n\n this.headerSubtitle$ = this.headerLayout$.pipe(\n map((headerLayout) => getHeaderValue(headerLayout?.SubTitle)),\n takeUntil(this._onDestroy$)\n );\n\n this.avatar$ = this.headerLayout$.pipe(\n map((headerLayout) => getHeaderValue(headerLayout?.Avatar)),\n takeUntil(this._onDestroy$)\n );\n\n this.mask$ = this._maskSource.asObservable().pipe(debounceTime(200), takeUntil(this._onDestroy$));\n }\n get hidePin$(): Observable<boolean> {\n return this._hidePin$.asObservable();\n }\n get hideClose$(): Observable<boolean> {\n return this._hideClose$.asObservable();\n }\n get hideTitle$(): Observable<boolean> {\n return this._hideTitle$.asObservable();\n }\n get canSend$(): Observable<boolean> {\n return this._canSend$.asObservable();\n }\n get mo(): MetaobjectDataModel {\n return this._moSource.getValue();\n }\n set context(val: any) {\n if (this._context) {\n this.destroy();\n }\n this._contextSource.next(val);\n }\n setFormHeight(val: number): void {\n this._formHeightSource.next(val);\n }\n destroy(): void {\n if (!this._context) {\n return;\n }\n this._context.un('GroupBRuleChanged', this._groupBRuleChanged);\n this._context.un('TitleChanged', this._titleChanged);\n this._context.un('WizardNextStep', this._wizardNextStep);\n this._context.un('WizardPreviousStep', this._wizardPreviousStep);\n this._context.un('DoLayout', this._doLayout);\n this._context.un('MaskChanged', this._maskChanged);\n this._context.un('ForceClose', this._forceClose);\n this._context.toolbar.un('ToolbarItemsChanged', this._toolbarItemsChanged);\n this._context = null;\n this._layoutSource.next(null);\n // this._onDestroy$.next();\n }\n\n toolbarClick(btn): void {\n btn.handler(btn, this._context);\n }\n wfChoice(btn): void {\n this._context.WorkflowPanelUi.fireEvent('ChoiceSelect', btn, this._context);\n }\n\n protected _initialize(context: any): void {\n this._workflowPanelUiSource.next(context?.WorkflowPanelUi);\n this._isSearchPanelSource.next(context?.Setting?.IsSearchPanel);\n this._canSend$.next(context?.Setting?.CanSend);\n this._searchPanelIsObjectSource.next(context?.Setting?.ParameterTypeIsObject);\n this._moSource.next(context?.Mo);\n this._viewSource.next(context?.Setting?.View);\n this._toolbarItemsSource.next(context?.toolbar?.items);\n if (context?.toolbar) {\n context.toolbar.on({\n ToolbarItemsChanged: this._toolbarItemsChanged.bind(this)\n });\n }\n this._titleSource?.next(context?.title);\n this._toolbarVisibleSource.next(this._getToolbarVisibility(context));\n }\n\n protected _prepareView(view): void {\n this._layoutSource.next(view?.Layout94);\n this._maxContentWidthSource.next(this._getMaxContentWidth(view));\n this._isSimpleFormSource.next(this._getIsSimpleForm(view));\n this._headerLayoutSource.next(this._getHeaderLayout(view));\n this._formWidthSource.next(view?.inDialog ? view.Layout94.Bounds.width + 'px' : '100%');\n }\n protected _filterToolbarItems(items: Array<any>): Array<any> {\n if (!items) {\n return [];\n }\n // در صورتی که در موبایل باشد دو دکمه نمایش داده شود از دکمه های کاربر و فرآیندی\n // در صورتی که دکمه ی وجود نداشت فقط دکمه ذخیره نمایش داده شود\n // در حالتهای دیگر ابتدا دکمه های کاربری و فرآیندی و بعد دکمه های تعریف شده سیستم نمایش داده میشود.\n\n let newItems = items.filter((c) => !c.hidden);\n const nonStringItems = newItems.filter((c) => typeof c !== 'string');\n let nonBuiltinCount = 0;\n nonStringItems.forEach((item) => {\n if (typeof item === 'string') {\n return;\n }\n if (item.isBuiltin) {\n // سیستمی\n item.priority = 'always';\n } else {\n if (nonBuiltinCount > 1) {\n // دکمه های کاربری که بیشتر از دو هستند\n item.priority = 'low';\n }\n nonBuiltinCount++;\n }\n });\n if (nonBuiltinCount === 0) {\n // اگر هیچ دکمه کاربری وجود نداشت\n nonStringItems.forEach((item, index) => {\n if (item.itemId === 'Save') {\n item.priority = 'never';\n }\n });\n }\n const saveAndNew = newItems.find((c) => c.itemId === 'SaveAndNew');\n const saveAndClose = newItems.find((c) => c.itemId === 'SaveAndClose');\n if (saveAndClose && saveAndClose.menu) {\n const save = saveAndClose.menu.items[0];\n if (save) {\n save.isBuiltin = true;\n save.priority = nonBuiltinCount === 0 ? 'never' : 'always';\n\n newItems.push(save);\n if (saveAndNew) {\n save.IAmMenu = true;\n save.menu = { items: [{ ...saveAndNew }] };\n newItems = newItems.filter((c) => c.itemId !== 'SaveAndNew');\n }\n }\n }\n newItems.forEach((item) => {\n if (item.menu) {\n item.menu.items = item.menu.items.filter((c) => !c.hidden);\n }\n });\n return newItems.sort((a): number => (typeof a == 'string' ? 0 : a.IAmMenu ? 1 : -1));\n }\n protected _getHeaderLayout(view): IHeaderLayout {\n const headerLayout = BarsaApi.Common.Util.TryGetValue(view, 'HeaderLayout', null);\n\n if (headerLayout) {\n // this.setHeaderTitleAndSubtitleAndAvatar(headerLayout);\n const t: any[] = [];\n headerLayout.FacetList.MoDataList.forEach((facetColumn) => {\n t.push({\n type: facetColumn.ColumnSettings.$FormPanelSetting.Data.Mo.Type,\n mo: facetColumn.ColumnSettings.$FormPanelSetting.Data.Mo\n });\n });\n headerLayout.FacetList2 = t;\n }\n return headerLayout;\n }\n\n protected _getIsSimpleForm(view: FormViewSetting): boolean {\n const isSimple = BarsaApi.Common.Util.TryGetValue(view, 'ExtraJsonProp.IsSimple', false);\n return isSimple;\n }\n protected _getToolbarVisibility(context): boolean {\n if (!context) {\n return false;\n }\n const hideToolbar = BarsaApi.Common.Util.TryGetValue(context, 'toolbar.hideToolbar', false);\n if (hideToolbar) {\n return false;\n }\n const { FormSettings } = context.Setting.View;\n if (FormSettings) {\n const showToolbar = FormSettings.ShowToolbar === false ? false : true;\n const featureToolbar = BarsaApi.Common.Util.TryGetValue(context, 'Features.Toolbar', false);\n\n const visible = (featureToolbar && showToolbar) !== false;\n return visible;\n }\n return true;\n }\n protected _getMaxContentWidth(view): string {\n const maxContentWidth = BarsaApi.Common.Util.TryGetValue(view, 'ExtraJsonProp.MaxWidth', '0');\n return maxContentWidth;\n }\n protected _addListener(context): void {\n if (!context) {\n return;\n }\n context.on({\n GroupBRuleChanged: this._groupBRuleChanged.bind(this),\n TitleChanged: this._titleChanged.bind(this),\n WizardNextStep: this._wizardNextStep.bind(this),\n WizardPreviousStep: this._wizardPreviousStep.bind(this),\n DoLayout: this._doLayout.bind(this),\n MaskChanged: this._maskChanged.bind(this),\n ForceClose: this._forceClose.bind(this),\n Refresh: this._refresh.bind(this)\n });\n context.toolbar.on({\n ToolbarItemsChanged: this._toolbarItemsChanged.bind(this)\n });\n }\n protected _refresh(): void {\n this._initialize(this._context);\n // this._prepareView(this._context.Setting.View);\n }\n protected _forceClose(): void {\n this._forceCloseSource.next();\n }\n protected _maskChanged(mask): void {\n this._maskSource.next(mask);\n }\n protected _toolbarItemsChanged(items): void {\n this._toolbarItemsSource.next(items);\n }\n protected _titleChanged(title): void {\n this._titleSource.next(title);\n }\n protected _wizardNextStep(): void {\n this._wizardNextStepSource.next();\n }\n protected _wizardPreviousStep(): void {\n this._wizardPreviousStepSource.next();\n }\n protected _doLayout(context): void {\n const view = context.Setting.View;\n this._viewSource.next(view);\n }\n protected _groupBRuleChanged(groupItem: LayoutSetting): void {\n this._groupBRuleSource.next(groupItem);\n }\n protected _prepareContext(context): void {\n this._addListener(context);\n this._initialize(context);\n this._context = context;\n }\n}\n","import { BehaviorSubject, Observable } from 'rxjs';\r\n\r\nexport class FormService {\r\n formList$: Observable<string[]>;\r\n private fromListSubject = new BehaviorSubject<string[]>([]);\r\n constructor() {\r\n this.formList$ = this.fromListSubject.asObservable();\r\n }\r\n openCompose(formComposeId: string): void {\r\n this.fromListSubject.next([...this.fromListSubject.value, formComposeId]);\r\n }\r\n closeCompose(formComposeId: string): void {\r\n this.fromListSubject.next(this.fromListSubject.value.filter((id) => id !== formComposeId));\r\n }\r\n}\r\n","import { Injectable, OnDestroy, Optional, SkipSelf, ViewContainerRef, ViewRef } from '@angular/core';\r\n@Injectable()\r\nexport class ContainerService implements OnDestroy {\r\n private _viewContainerRef: ViewContainerRef;\r\n private _viewRef: ViewRef | null;\r\n\r\n constructor(@SkipSelf() @Optional() private _parentService: ContainerService) {}\r\n ngOnDestroy(): void {\r\n if (this._parentService) {\r\n this._parentService.insert();\r\n }\r\n }\r\n setViewContainerRef(viewContainerRef: ViewContainerRef): void {\r\n this._viewContainerRef = viewContainerRef;\r\n if (this._parentService) {\r\n this._parentService.detach();\r\n }\r\n }\r\n private detach(): void {\r\n this._viewRef = this._viewContainerRef.detach();\r\n }\r\n private insert(): void {\r\n if (this._viewRef) {\r\n this._viewContainerRef.insert(this._viewRef);\r\n }\r\n }\r\n}\r\n","import { BehaviorSubject, Observable } from 'rxjs';\r\nimport { map } from 'rxjs/operators';\r\n\r\nexport class HorizontalLayoutService {\r\n displayTextFlexColumn$: Observable<boolean>;\r\n private controlFlexColumnSource = new BehaviorSubject<DisplayTextFlex>({});\r\n\r\n constructor() {\r\n this.displayTextFlexColumn$ = this.controlFlexColumnSource\r\n .asObservable()\r\n .pipe(map((controlFlexColumn) => Object.keys(controlFlexColumn).some((c) => controlFlexColumn[c])));\r\n }\r\n setFlexColumn(id, val: boolean): void {\r\n const flexColumn = this.controlFlexColumnSource.getValue();\r\n flexColumn[id] = val;\r\n this.controlFlexColumnSource.next(flexColumn);\r\n }\r\n}\r\ninterface DisplayTextFlex {\r\n [key: string]: boolean;\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { BehaviorSubject, Observable, Subject } from 'rxjs';\r\nimport { distinctUntilChanged } from 'rxjs/operators';\r\n\r\n@Injectable()\r\nexport class LayoutService {\r\n rootRendered$: Observable<boolean>;\r\n maxWidth$: Observable<number>;\r\n refreshLayout$: Observable<void>;\r\n horizontal$: Observable<any[]>;\r\n id: string;\r\n isTab: boolean;\r\n\r\n private rendered = new BehaviorSubject<boolean>(false);\r\n private maxWidth = new BehaviorSubject<number>(0);\r\n private refreshLayoutSource = new Subject<void>();\r\n private horizontalSource = new Subject<any[]>();\r\n private _listOfHorizontal: any[] = [];\r\n\r\n constructor() {\r\n this.rootRendered$ = this.rendered.asObservable();\r\n this.maxWidth$ = this.maxWidth.asObservable();\r\n this.refreshLayout$ = this.refreshLayoutSource.asObservable();\r\n this.horizontal$ = this.horizontalSource.asObservable().pipe(distinctUntilChanged((a, b) => a === b));\r\n }\r\n setRendered(val: boolean): void {\r\n this.rendered.next(val);\r\n }\r\n setMaxWidth(val): void {\r\n if (this.maxWidth.value < val) {\r\n this.maxWidth.next(val);\r\n }\r\n }\r\n refreshLayout(): void {\r\n this.refreshLayoutSource.next();\r\n }\r\n addHorizontal(id): void {\r\n this._listOfHorizontal = [...this._listOfHorizontal, id];\r\n this.horizontalSource.next(this._listOfHorizontal);\r\n }\r\n removeHorizontal(id): void {\r\n this._listOfHorizontal = this._listOfHorizontal.filter((c) => c !== id);\r\n this.horizontalSource.next(this._listOfHorizontal);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { ActivatedRouteSnapshot, Resolve } from '@angular/router';\r\nimport { Observable } from 'rxjs';\r\n\r\nimport { PageDataModel } from '../abstract-classes/models';\r\nimport { PortalService } from '../services/portal.service';\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class PortalPageResolver implements Resolve<PageDataModel | null> {\r\n constructor(private portalService: PortalService) {}\r\n\r\n resolve(\r\n route: ActivatedRouteSnapshot\r\n // state: RouterStateSnapshot\r\n ): Observable<PageDataModel | null> {\r\n // const url = decodeURI(route['_routerState'].url);\r\n // let url2=route.routeConfig?.path;\r\n // if(route.routeConfig?.path=='')\r\n // {\r\n // url2 = url.split('/').find((c) => c && !c.startsWith('(')) ?? '';\r\n // }\r\n // if(url2=='**'){\r\n // url2=route.url[0].path;\r\n // }\r\n // url2 = '/' + url2;\r\n\r\n return this.portalService.resolveData(route.data.pageData);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\nimport { ActivatedRouteSnapshot, CanActivate, Router, UrlTree } from '@angular/router';\nimport { Observable } from 'rxjs';\nimport { map, tap, withLatestFrom } from 'rxjs/operators';\n\nimport { BarsaApi } from './abstract-classes/barsa-api';\nimport { PortalService } from './services/portal.service';\n\n@Injectable()\nexport class AuthGuard implements CanActivate {\n constructor(private router: Router, protected portalService: PortalService) {}\n\n canActivate(\n activatedRouteSnapshot: ActivatedRouteSnapshot\n\n // state: RouterStateSnapshot\n ): Observable<boolean | UrlTree> | Promise<boolean | UrlTree> | boolean | UrlTree {\n const url = decodeURI((activatedRouteSnapshot as any)._routerState.url);\n let url2 = url.split('/').find((c) => c && !c.startsWith('(')) ?? '';\n url2 = '/' + url2;\n return this.portalService.getPageData(url2, false).pipe(\n map((pageData) => {\n const pageNeedAuthorize = pageData?.HasAuthorize || pageData == null ? true : false;\n const hasAuthorized: boolean =\n (!BarsaApi.LoginFormData.IsAnonymous && BarsaApi.LoginFormData.IsUserLoggedIn) ||\n !pageNeedAuthorize;\n return hasAuthorized;\n }),\n withLatestFrom(this.portalService.portalData$),\n tap(([hasAuthorized, portalData]) => {\n if (!hasAuthorized) {\n const loginPage = portalData?.ChildPageList.MoDataList.find((c) => c.IsLoginRoute);\n const loginRoute = loginPage?.Route || 'login';\n this.router.navigate([loginRoute]);\n }\n }),\n map(([hasAuthorized]) => hasAuthorized)\n );\n }\n}\n","import { Compiler, ComponentRef, Injectable, Injector, NgModuleFactory, Type, ViewContainerRef } from '@angular/core';\r\nimport { Location } from '@angular/common';\r\nimport { ActivatedRoute, NavigationEnd, NavigationStart, Route, Router } from '@angular/router';\r\nimport { Observable, BehaviorSubject, of, from, forkJoin, fromEvent, Subject } from 'rxjs';\r\nimport {\r\n tap,\r\n map,\r\n concatMap,\r\n finalize,\r\n publishReplay,\r\n refCount,\r\n exhaustMap,\r\n distinctUntilChanged,\r\n startWith,\r\n debounceTime\r\n} from 'rxjs/operators';\r\n\r\nimport {\r\n AbbrevationDeviceSize,\r\n LoginResult,\r\n MetaobjectDataModel,\r\n MoForReportModel,\r\n PageDataModel,\r\n PortalDataModel,\r\n ReportModel\r\n} from '../abstract-classes/models';\r\nimport { ApiService } from './api.service';\r\nimport { LogService } from './log.service';\r\nimport { BarsaApi } from '../abstract-classes/barsa-api';\r\nimport { BarsaDialogService } from './barsa-dialog.service';\r\n\r\nimport {\r\n ExecuteDynamicCommand,\r\n getComponentDefined,\r\n getDeviceIsMobile,\r\n getDeviceIsTablet,\r\n getHeaderValue,\r\n getUniqueId\r\n} from '../constants';\r\nimport { PortalPageResolver } from '../resolvers/portal-page.resolver';\r\nimport { AuthGuard } from '../auth-guard';\r\nimport { DynamicComponentService } from './dynamic-component.service';\r\nimport { SafeResourceUrl } from '@angular/platform-browser';\r\n\r\ndeclare let AjaxHelper: any;\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class PortalService {\r\n public offsetTop = 0;\r\n\r\n loginLoading = new BehaviorSubject<boolean>(false);\r\n loaded = false;\r\n formPanels: any = {};\r\n cachedImages: any = {};\r\n dateText$: Observable<string>;\r\n defaultRoute: string;\r\n cachedPageData: { [key: string]: Observable<PageDataModel> } = {};\r\n pages: PageDataModel[] = [];\r\n rtlSource = new BehaviorSubject<boolean>(BarsaApi.LoginFormData.IsRtl);\r\n userLoggedIn$: Observable<boolean>;\r\n dictionary: { [key: string]: BehaviorSubject<any> } = {};\r\n portalDataSource = new BehaviorSubject<PortalDataModel | null>(null);\r\n portalSettings$: Observable<MetaobjectDataModel>;\r\n portalData$: Observable<PortalDataModel | null>;\r\n deviceSize$: Observable<AbbrevationDeviceSize>;\r\n rtl$: Observable<boolean>;\r\n dirValue$: Observable<'rtl' | 'ltr'>;\r\n routeInitialized$: Observable<boolean>;\r\n _isAnonumousSource = new BehaviorSubject<boolean>(true);\r\n private _deviceSizeSource = new BehaviorSubject<AbbrevationDeviceSize>(this._initalizeDeviceSize());\r\n private _loggedInSource = new BehaviorSubject<boolean>(false);\r\n private routeInitializedSource = new BehaviorSubject<boolean>(false);\r\n private dateTextSource = new BehaviorSubject<string>('');\r\n private _navigationStart$ = new BehaviorSubject<NavigationStart | null>(null);\r\n private _navigationEnd$ = new BehaviorSubject<NavigationEnd | null>(null);\r\n private _userPortalSettings$ = new BehaviorSubject<MetaobjectDataModel | null>(null);\r\n private _cssUrlSource = new BehaviorSubject<SafeResourceUrl | null>(null);\r\n private _cssCustomUrlSource = new BehaviorSubject<SafeResourceUrl | null>(null);\r\n private _searchTerm$ = new BehaviorSubject<string>('');\r\n private _windowResize$ = new Subject<void>();\r\n private _deviceLandscape$ = new BehaviorSubject<boolean>(!window.matchMedia('(orientation: portrait)').matches);\r\n private _standalone$ = new BehaviorSubject<boolean>(window.matchMedia('(display-mode: standalone)').matches);\r\n constructor(\r\n private dcm: DynamicComponentService,\r\n private apiService: ApiService,\r\n private logService: LogService,\r\n private dialogService: BarsaDialogService,\r\n private compiler: Compiler,\r\n private _router: Router,\r\n private _location: Location\r\n ) {\r\n this.initialize();\r\n this._initLandscape();\r\n this._initStandalone();\r\n this._isAnonumousSource.next(BarsaApi.LoginFormData.IsAnonymous);\r\n }\r\n get standalone$(): Observable<boolean> {\r\n return this._standalone$.asObservable();\r\n }\r\n get landscape$(): Observable<boolean> {\r\n return this._deviceLandscape$.asObservable();\r\n }\r\n get windowResize$(): Observable<void> {\r\n return this._windowResize$.asObservable().pipe(debounceTime(300));\r\n }\r\n get portalData(): PortalDataModel | null {\r\n return this.portalDataSource.getValue();\r\n }\r\n get searchTerm$(): Observable<string> {\r\n return this._searchTerm$.asObservable();\r\n }\r\n get cssUrl$(): Observable<SafeResourceUrl | null> {\r\n return this._cssUrlSource.asObservable();\r\n }\r\n get cssCustomUrl$(): Observable<SafeResourceUrl | null> {\r\n return this._cssCustomUrlSource.asObservable();\r\n }\r\n get userPortalSettings(): MetaobjectDataModel | null {\r\n return this._userPortalSettings$.getValue();\r\n }\r\n get userPortalSettings$(): Observable<MetaobjectDataModel | null> {\r\n return this._userPortalSettings$.asObservable();\r\n }\r\n get deviceSize(): AbbrevationDeviceSize {\r\n return this._deviceSizeSource.getValue();\r\n }\r\n get isAnonymous$(): Observable<boolean> {\r\n return this._isAnonumousSource.asObservable();\r\n }\r\n get navigationEnd$(): Observable<NavigationEnd | null> {\r\n return this._navigationEnd$.asObservable();\r\n }\r\n get navigationStart$(): Observable<NavigationStart | null> {\r\n return this._navigationStart$.asObservable();\r\n }\r\n\r\n public loadMo(id: string, typedefId: string): Observable<any> {\r\n return this.apiService.loadPortalPageData(id, typedefId);\r\n }\r\n\r\n setSearchTerm(term: string): void {\r\n this._searchTerm$.next(term);\r\n }\r\n windowResize(): void {\r\n this._windowResize$.next();\r\n }\r\n naviationEnd(event: NavigationEnd): void {\r\n this._navigationEnd$.next(event);\r\n }\r\n naviationStart(event: NavigationStart): void {\r\n this._navigationStart$.next(event);\r\n }\r\n setUserPortalSettings(userPortalSettings: MetaobjectDataModel): void {\r\n this._userPortalSettings$.next(userPortalSettings);\r\n }\r\n setTheme(themeUrl: SafeResourceUrl): void {\r\n this._cssUrlSource.next(themeUrl);\r\n this._cssCustomUrlSource.next(themeUrl);\r\n }\r\n setData(key, data): void {\r\n if (!this.dictionary[key]) {\r\n this.dictionary[key] = new BehaviorSubject<any>(data);\r\n this.dictionary[key].next(data);\r\n } else {\r\n const oldVal = this.dictionary[key].getValue();\r\n if (oldVal !== data) {\r\n this.dictionary[key].next(data);\r\n }\r\n }\r\n }\r\n getData(key, defaultValue: any = null): Observable<any> {\r\n if (!this.dictionary[key]) {\r\n this.dictionary[key] = new BehaviorSubject<any>(defaultValue);\r\n }\r\n return this.dictionary[key].asObservable();\r\n }\r\n getDataSync<T>(key, defaultValue: any = null): T | null {\r\n if (!this.dictionary[key]) {\r\n return defaultValue;\r\n }\r\n return this.dictionary[key].getValue();\r\n }\r\n createForReport(navItem): Observable<any> {\r\n return from(\r\n new Promise((resolve, reject) => {\r\n BarsaApi.Ul.UlvMainCtrlr.CreateForReport({}, navItem, (err, result) => {\r\n if (err) {\r\n reject(err);\r\n } else {\r\n resolve(result);\r\n }\r\n });\r\n })\r\n );\r\n }\r\n renderUlvMainUi(\r\n navItem,\r\n vcr: ViewContainerRef,\r\n injector: Injector,\r\n isReportPage: boolean = false\r\n ): Observable<any> {\r\n return this.createForReport(navItem).pipe(\r\n exhaustMap((ulvMainCtrlr) =>\r\n this.getUlvMainUiComponent(ulvMainCtrlr.Adapter.Control, injector, isReportPage).pipe(\r\n tap((ulvManiUiComponent) => vcr.insert(ulvManiUiComponent.hostView)),\r\n map(() => ulvMainCtrlr)\r\n )\r\n )\r\n );\r\n }\r\n getUlvMainUiComponent(customUlvMainUi, injector: Injector, isReportPage): Observable<ComponentRef<any>> {\r\n const customUiSetting = BarsaApi.Common.Util.TryGetValue(customUlvMainUi.Setting, 'CustomUi', null);\r\n const { moduleName, modulePath, componentName, selector } = getComponentDefined(\r\n customUlvMainUi,\r\n customUiSetting\r\n );\r\n return this.getComponent(moduleName, modulePath, componentName, selector, injector).pipe(\r\n map((component) => {\r\n const componentInstance = component.instance;\r\n componentInstance.id = customUlvMainUi.id;\r\n componentInstance.context = customUlvMainUi;\r\n componentInstance.isReportPage = isReportPage;\r\n customUlvMainUi.controlUi = componentInstance;\r\n return component;\r\n })\r\n );\r\n }\r\n initialize(): void {\r\n this.deviceSize$ = this._deviceSizeSource.asObservable().pipe(distinctUntilChanged());\r\n this.portalData$ = this.portalDataSource.asObservable();\r\n this.rtl$ = this.rtlSource.asObservable().pipe(distinctUntilChanged());\r\n this.dirValue$ = this.rtl$.pipe(map((isRtl) => (isRtl ? 'rtl' : 'ltr')));\r\n this.routeInitialized$ = this.routeInitializedSource.asObservable().pipe(distinctUntilChanged());\r\n\r\n this.dateText$ = this.dateTextSource.asObservable();\r\n this.portalSettings$ = this.portalDataSource\r\n .asObservable()\r\n .pipe(map((portalData) => (portalData ? portalData.PortalSettings : ({} as any))));\r\n fromEvent(window, 'resize')\r\n .pipe(\r\n startWith(null),\r\n debounceTime(1000),\r\n map(() => this._initalizeDeviceSize())\r\n )\r\n .subscribe((c) => {\r\n this._windowResize$.next();\r\n this._deviceSizeSource.next(c);\r\n });\r\n\r\n this.setUserLoginStatus(BarsaApi.LoginFormData.IsUserLoggedIn);\r\n\r\n this.userLoggedIn$ = this._loggedInSource\r\n .asObservable()\r\n .pipe(map((isLoggedIn) => isLoggedIn && BarsaApi.LoginFormData.IsAnonymous === false));\r\n }\r\n _setDeviceSize(): void {\r\n const deviceSize = this._initalizeDeviceSize();\r\n this._deviceSizeSource.next(deviceSize);\r\n }\r\n _initalizeDeviceSize(): AbbrevationDeviceSize {\r\n const _ismobile = getDeviceIsMobile();\r\n const _isTablet = getDeviceIsTablet();\r\n let _windoWSize: AbbrevationDeviceSize = 's';\r\n if (window.innerWidth <= 600) {\r\n _windoWSize = 's';\r\n } else if (window.innerWidth > 600 && window.innerWidth <= 992) {\r\n _windoWSize = 'm';\r\n } else if (window.innerWidth > 992 && window.innerWidth <= 1200) {\r\n _windoWSize = 'l';\r\n } else {\r\n _windoWSize = 'xl';\r\n }\r\n if (_ismobile) {\r\n return 's';\r\n }\r\n if (_isTablet && _windoWSize !== 'l' && _windoWSize !== 'xl') {\r\n return 'm';\r\n }\r\n return _windoWSize;\r\n }\r\n compileModule(dependency: LibraryDepenecy): Observable<NgModuleFactory<any>> {\r\n const module$ = this.getModule(dependency);\r\n return module$.pipe(\r\n concatMap((modules) => {\r\n const moduleFactory = this.getNgModuleFactory(modules, dependency.name);\r\n return of(moduleFactory);\r\n })\r\n );\r\n }\r\n getModule(dependency: LibraryDepenecy): Observable<any> {\r\n const { name, kebabName, umd, exportAs } = dependency;\r\n const base = `/assets/modules/${kebabName}/bundles`;\r\n const date = BarsaApi.LoginFormData.abc;\r\n const path = `${base}/${kebabName}.umd.js?t=${date}`;\r\n return of(true).pipe(\r\n concatMap(() => {\r\n const modules = this.getRegisteredModules(umd, exportAs, name);\r\n if (modules) {\r\n return of(modules);\r\n }\r\n return this.loadJs$(path).pipe(map(() => this.getRegisteredModules(umd, exportAs, name)));\r\n })\r\n );\r\n }\r\n\r\n setValueOnObject(path, index, modules, object): void {\r\n const splited = path.split('.');\r\n const prop = splited[index];\r\n if (typeof object[prop] === typeof undefined) {\r\n object[prop] = {};\r\n }\r\n if (index === splited.length - 1) {\r\n object[prop] = modules;\r\n return;\r\n }\r\n this.setValueOnObject(path, index + 1, modules, object[prop]);\r\n }\r\n\r\n getComponent(\r\n moduleName: string,\r\n modulePath: string,\r\n componentName: string,\r\n selector: string,\r\n parentInjector: Injector\r\n ): Observable<ComponentRef<any>> {\r\n return this.dcm.getComponentBySelector(selector, moduleName, parentInjector);\r\n }\r\n loadJs$(path): Observable<string> {\r\n return from(\r\n new Promise<string>((resolve, reject) => {\r\n const script = document.createElement('script');\r\n script.setAttribute('type', 'text/javascript');\r\n script.setAttribute('src', path);\r\n script.onload = () => {\r\n resolve(path);\r\n };\r\n document.getElementsByTagName('head')[0].appendChild(script);\r\n setTimeout(() => {\r\n reject();\r\n }, 5000);\r\n })\r\n );\r\n }\r\n\r\n ReportExecute(reportName: string): Observable<MoForReportModel> {\r\n return from(this.ReportExecutePromise(reportName));\r\n }\r\n ReportExecutePromise(reportName: string): Promise<MoForReportModel> {\r\n const ulvParams = {\r\n Flags: {\r\n Data: 'True',\r\n Extra: 'False',\r\n Search: 'False',\r\n View: 'False'\r\n // General:\"False\", // ulvmainctrl does not craete ui control raise error\r\n },\r\n ReportName: reportName,\r\n UsageEnum: 'SystemContainer'\r\n };\r\n return new Promise<MoForReportModel>((resolve, reject) => {\r\n BarsaApi.Bw.ExecuteReport(\r\n { ulvParams },\r\n (result: ReportModel) => {\r\n resolve(result.Data);\r\n },\r\n (err) => {\r\n reject(err);\r\n }\r\n );\r\n });\r\n }\r\n addFormPanelCtrlr(id, formpanelCtrlr: any): void {\r\n this.formPanels[id] = formpanelCtrlr;\r\n }\r\n setUserLoginStatus(status: boolean): void {\r\n this._loggedInSource.next(status);\r\n }\r\n extractAllPages(portalData: PortalDataModel | null): void {\r\n if (!portalData) {\r\n return;\r\n }\r\n portalData.ChildPageList.MoDataList.forEach((pageData) => {\r\n this.addChildPages(pageData);\r\n });\r\n }\r\n extractAllPages_Old(portalData: PortalDataModel | null): void {\r\n if (!portalData) {\r\n return;\r\n }\r\n\r\n const config = this._router.config;\r\n portalData.ChildPageList.MoDataList.forEach((pageData) => {\r\n const path = pageData.Route.replace('/', '');\r\n config.push(\r\n this.createRoute(pageData, path, pageData.HasAuthorize, pageData.PageModule?.$Caption, null, null)\r\n );\r\n if (pageData.IsDefaultRoute) {\r\n this.defaultRoute = path;\r\n config.push(this.createRoute(pageData, '', false, portalData.PageModule?.$Caption, path, null));\r\n }\r\n\r\n this.addChildPages(pageData);\r\n });\r\n this._router.resetConfig(config);\r\n if (this._location.path() === '') {\r\n // this._router.navigate([this.defaultRoute]);\r\n this._router.navigate(['']);\r\n }\r\n // this.routeInitialized();\r\n }\r\n ssoLogin(): void {\r\n AjaxHelper.AjaxRequest(\r\n '/api/base/ssologin',\r\n null,\r\n false,\r\n () => {\r\n // console.log(response);\r\n },\r\n () => {\r\n alert('error in sso login.');\r\n },\r\n null\r\n );\r\n }\r\n ssoLogout(): void {\r\n AjaxHelper.AjaxRequest(\r\n '/api/base/ssologout',\r\n null,\r\n false,\r\n () => {\r\n // console.log(response);\r\n },\r\n () => {\r\n alert('error in sso logout.');\r\n },\r\n null\r\n );\r\n }\r\n addChildPages(pageData: PageDataModel): void {\r\n this.pages.push(pageData);\r\n if (!pageData.ChildPageList?.MoDataList?.length) {\r\n return;\r\n }\r\n pageData.ChildPageList.MoDataList.forEach((childPage) => {\r\n this.addChildPages(childPage);\r\n });\r\n }\r\n /* eslint-disable */\r\n createRoute(pageData, path, hasAuthorized, moduleName, redirectTo, isDynamicRoute): Route {\r\n return {};\r\n }\r\n createRoute2(\r\n pageData,\r\n path,\r\n hasAuthorized,\r\n moduleName,\r\n redirectTo: string | null = null,\r\n isDynamicRoute: boolean = false\r\n ): Route {\r\n let modulePath: string = BarsaApi.Common.Util.GetKebabCase(moduleName);\r\n const umd = moduleName;\r\n modulePath = modulePath.substring(1, modulePath.length);\r\n const dynamicRoute: Route = {};\r\n dynamicRoute.path = path;\r\n dynamicRoute.data = { pageData };\r\n if (!isDynamicRoute) {\r\n dynamicRoute.resolve = {\r\n pageData: PortalPageResolver\r\n };\r\n }\r\n if (path === '') {\r\n dynamicRoute.pathMatch = 'full';\r\n }\r\n if (redirectTo) {\r\n dynamicRoute.redirectTo = redirectTo;\r\n } else {\r\n if (hasAuthorized) {\r\n dynamicRoute.canActivate = [AuthGuard];\r\n }\r\n dynamicRoute.loadChildren = () => {\r\n const dependencies: LibraryDepenecy[] = JSON.parse(pageData.Dependencies); // eval(pageData.Dependencies);\r\n const pageLibrary = {\r\n name: moduleName,\r\n kebabName: modulePath,\r\n umd,\r\n exportAs: [moduleName]\r\n };\r\n const dependencies$ = from(dependencies).pipe(\r\n concatMap((dependency: LibraryDepenecy) => this.compileModule(dependency))\r\n );\r\n return forkJoin([dependencies$]).pipe(\r\n concatMap(() => this.getModule(pageLibrary)),\r\n map((modules) => modules[moduleName + 'Module']),\r\n tap(() => this.routeInitialized())\r\n );\r\n };\r\n }\r\n\r\n return dynamicRoute;\r\n }\r\n routeInitialized(): void {\r\n this.routeInitializedSource.next(true);\r\n }\r\n public loginByAnonymous(): Observable<boolean> {\r\n this.loginLoading.next(true);\r\n return this.apiService.loginPortal().pipe(\r\n map((result: LoginResult) => {\r\n if (typeof result === 'object' && result !== null) {\r\n this.logService.debug(result);\r\n window.localStorage.setItem(BarsaApi.LoginAction.token2StorageKey, result.data.sth);\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n }),\r\n finalize(() => {\r\n this.loginLoading.next(false);\r\n })\r\n );\r\n }\r\n public getPageData(url: string, isRoot: boolean): Observable<PageDataModel | null> {\r\n if (isRoot || url === '' || url === '/') {\r\n return this.portalData$;\r\n }\r\n\r\n if (url.indexOf('?') > -1) {\r\n url = url.substr(0, url.indexOf('?'));\r\n }\r\n if (this.cachedPageData[url]) {\r\n return this.cachedPageData[url];\r\n }\r\n const pageData = this.findPageByRoute(url);\r\n AjaxHelper.UseCache = !pageData?.HasAuthorize;\r\n\r\n this.cachedPageData[url] = this.apiService\r\n .loadPortalPageData(pageData?.Id, this.portalDataSource.getValue()?.ChildPageList.TypeDefId)\r\n .pipe(\r\n map((pageMo) => pageMo.Data.Mo),\r\n tap((pageMo) => {\r\n this.addChildRoute(pageMo, pageMo.ChildPageList);\r\n this.addChildPages(pageMo);\r\n }),\r\n publishReplay(1),\r\n refCount()\r\n );\r\n // this.cachedPageData[url] = this.portalData$.pipe(\r\n // filter((portalData) => portalData != null),\r\n // map((portalData) => ),\r\n // concatMap((pageData) => {\r\n // return\r\n // }),\r\n\r\n // tap(pageData=>{})\r\n // );\r\n return this.cachedPageData[url];\r\n }\r\n public resolveData(routePageData): Observable<PageDataModel | null> {\r\n // const pageData = this.pages.find((c) => c.Route === routePageData.Route && c.Module === routePageData.Module);\r\n const pageData = this.pages.find((c) => c.Route === routePageData.Route);\r\n if (!pageData) {\r\n return of(null);\r\n }\r\n const id = pageData.Id;\r\n\r\n if (this.cachedPageData[id]) {\r\n return this.cachedPageData[id];\r\n }\r\n\r\n AjaxHelper.UseCache = !pageData?.HasAuthorize;\r\n this.cachedPageData[id] = this.apiService\r\n .loadPortalPageData(id, this.portalDataSource.getValue()?.ChildPageList.TypeDefId)\r\n .pipe(\r\n map((pageMo) => pageMo.Data.Mo),\r\n tap((pageMo) => {\r\n this.addChildRoute(pageMo, pageMo.ChildPageList);\r\n this.addChildPages(pageMo);\r\n }),\r\n publishReplay(1),\r\n refCount()\r\n );\r\n // this.cachedPageData[url] = this.portalData$.pipe(\r\n // filter((portalData) => portalData != null),\r\n // map((portalData) => ),\r\n // concatMap((pageData) => {\r\n // return\r\n // }),\r\n\r\n // tap(pageData=>{})\r\n // );\r\n return this.cachedPageData[id];\r\n }\r\n\r\n addChildRoute(pageMo: MetaobjectDataModel, ChildPageList: MoForReportModel): void {\r\n return;\r\n }\r\n addChildRoute_Old(pageMo: MetaobjectDataModel, ChildPageList: MoForReportModel): void {\r\n if (!ChildPageList?.MoDataList?.length) {\r\n return;\r\n }\r\n\r\n const config = this._router.config;\r\n const parentPath = pageMo.Route.replace('/', '');\r\n const parentRoute = config.find((c) => (c.path = parentPath));\r\n const children: Route[] = [];\r\n if (parentRoute) {\r\n ChildPageList.MoDataList.forEach((child) => {\r\n const path = child.Route.replace('/', '');\r\n const childroute = this.createRoute(\r\n child,\r\n path,\r\n child.HasAuthorize,\r\n child.PageModule?.$Caption,\r\n null,\r\n true\r\n );\r\n children.push(childroute);\r\n });\r\n // debugger;\r\n\r\n (parentRoute as any)._loadedConfig.routes[0].children = children;\r\n\r\n this._router.resetConfig(config);\r\n }\r\n }\r\n\r\n public loadPortalData_Old1(): Observable<PortalDataModel> {\r\n return this.apiService.loadPortal(BarsaApi.LoginFormData.PortalId, BarsaApi.LoginFormData.PortalTypeDefId).pipe(\r\n tap((portalSetting) => {\r\n const portalData = portalSetting.Data.Mo;\r\n this.extractAllPages(portalData);\r\n this.portalDataSource.next(portalData);\r\n }),\r\n concatMap(() => from(this.loadSystem())),\r\n tap((all) => this.dateTextSource.next(BarsaApi.LoginFormData.DateText))\r\n );\r\n }\r\n public loadPortalDataSync_Old2(): void {\r\n const portalSetting = this.apiService.loadPortalSync(\r\n BarsaApi.LoginFormData.PortalId,\r\n BarsaApi.LoginFormData.PortalTypeDefId\r\n );\r\n const portalData = portalSetting.Data.Mo;\r\n\r\n this.extractAllPages(portalData);\r\n\r\n this.portalDataSource.next(portalData);\r\n\r\n this.loadSystem();\r\n this.dateTextSource.next(BarsaApi.LoginFormData.DateText);\r\n }\r\n public loadPortalDataSync(): void {\r\n const portalSettingStr = BarsaApi.Bw.RunBlMethod('GetPortal', BarsaApi.LoginFormData.PortalId);\r\n const portalSetting = BarsaApi.Ext.decode(portalSettingStr);\r\n const portalData = portalSetting;\r\n\r\n this.extractAllPages(portalData);\r\n\r\n this.portalDataSource.next(portalData);\r\n\r\n this.dateTextSource.next(BarsaApi.LoginFormData.DateText);\r\n }\r\n public ExecuteNotificationAction(id: string, actionTitle: string): void {\r\n BarsaApi.Bw.RunBlMethodAsync({\r\n Parameters: [id, actionTitle],\r\n Method: 'ExecuteNotificationAction',\r\n SuccessFn: (e: { Mo: MetaobjectDataModel; DynamicCommandId: string }) => {\r\n if (e.DynamicCommandId) {\r\n ExecuteDynamicCommand({ Id: e.DynamicCommandId }, e.Mo);\r\n }\r\n },\r\n FailFn: (e) => {\r\n this.logService.error(e);\r\n }\r\n });\r\n }\r\n public loadUserPortalSetting(): void {\r\n BarsaApi.Bw.RunBlMethodAsync({\r\n Parameters: [],\r\n Method: 'GetUserPortalSettings',\r\n SuccessFn: (userPortalSetting: MetaobjectDataModel) => {\r\n this._userPortalSettings$.next(userPortalSetting);\r\n },\r\n FailFn: (e) => {\r\n this.logService.error(e);\r\n }\r\n });\r\n }\r\n\r\n ShowFormPanelControl(\r\n formpanelCtrlr: any,\r\n router: Router,\r\n activatedRoute: ActivatedRoute,\r\n dialogComponent: Type<any>,\r\n isPage: boolean,\r\n isReload: boolean = false\r\n ): void {\r\n if (!formpanelCtrlr) {\r\n console.warn('form panel controler is undefined!');\r\n return;\r\n }\r\n const mo = formpanelCtrlr.Mo;\r\n const headerLayout = BarsaApi.Common.Util.TryGetValue(formpanelCtrlr, 'Setting.View.HeaderLayout', null);\r\n let isModal = BarsaApi.Common.Util.TryGetValue(formpanelCtrlr, 'Setting.View.ExtraJsonProp.Modal', false);\r\n const modalSetting = BarsaApi.Common.Util.TryGetValue(\r\n formpanelCtrlr,\r\n 'Setting.View.CustomUi.Parameters.ModalSetting',\r\n null\r\n );\r\n if (modalSetting) {\r\n isModal = true;\r\n }\r\n formpanelCtrlr.Setting.IsModal = isModal;\r\n formpanelCtrlr.IsModal = isModal;\r\n const breadCrumb = getHeaderValue(headerLayout?.BreadCrumb);\r\n const queryParams = {\r\n id: mo.$State === 'New' ? '0' : mo.Id,\r\n tyid: mo.$TypeDefId,\r\n tycp: mo.$Caption ? mo.$Caption : null,\r\n repid: mo.$ReportId,\r\n vid: formpanelCtrlr?.Setting?.View?.TypeViewId,\r\n bc: breadCrumb ? breadCrumb : mo.$State === 'New' ? mo.$TypeDefName : mo.$Caption\r\n };\r\n const id = getUniqueId(4);\r\n this.addFormPanelCtrlr(id, formpanelCtrlr);\r\n if (isModal) {\r\n this.dialogService.showForm(dialogComponent, {\r\n ...queryParams,\r\n formpanelCtrlr\r\n });\r\n } else {\r\n const state = { formPanelCtrlrId: id };\r\n if (isPage) {\r\n router.navigate(\r\n [\r\n 'form',\r\n {\r\n outlets: {\r\n main: ['show', { ...queryParams, formPanelCtrlrId: id, isFirst: true }]\r\n }\r\n }\r\n ],\r\n {\r\n state,\r\n relativeTo: activatedRoute,\r\n skipLocationChange: isReload\r\n }\r\n );\r\n } else {\r\n router.navigate(\r\n [\r\n 'popup',\r\n {\r\n outlets: {\r\n main: ['show', { ...queryParams, formPanelCtrlrId: id }]\r\n }\r\n }\r\n ],\r\n {\r\n relativeTo: activatedRoute,\r\n state,\r\n queryParamsHandling: 'preserve',\r\n skipLocationChange: isReload\r\n }\r\n );\r\n }\r\n }\r\n }\r\n public loadSystem(id: number = 0): Promise<PortalDataModel> {\r\n return new Promise((resolve, reject) => {\r\n BarsaApi.Ul.ApplicationCtrlr._loadSystem(\r\n id,\r\n true,\r\n (data) => {\r\n resolve(data);\r\n },\r\n (err) => {\r\n reject(err);\r\n }\r\n );\r\n });\r\n }\r\n private _initStandalone(): void {\r\n window.matchMedia('(display-mode: standalone)').addEventListener('change', (e) => {\r\n const isMatch = e.matches;\r\n\r\n if (isMatch) {\r\n this._standalone$.next(true);\r\n } else {\r\n this._standalone$.next(false);\r\n }\r\n });\r\n }\r\n private _initLandscape(): void {\r\n window.matchMedia('(orientation: portrait)').addEventListener('change', (e) => {\r\n const isMatch = e.matches;\r\n\r\n if (isMatch) {\r\n this._deviceLandscape$.next(false); // portrait\r\n } else {\r\n this._deviceLandscape$.next(true); // landscape\r\n }\r\n });\r\n }\r\n private findPageByRoute(url: string): PageDataModel | null {\r\n const findedPage = this.pages.find((c) => c.Route === url);\r\n return findedPage || null;\r\n }\r\n private getNgModuleFactory(modules: { [key: string]: any }, moduleName: string): NgModuleFactory<any> {\r\n const moduleClass = modules[moduleName + 'Module'];\r\n let moduleFactory: NgModuleFactory<any>;\r\n if (moduleClass instanceof NgModuleFactory) {\r\n moduleFactory = moduleClass;\r\n } else {\r\n const compiled = this.compiler.compileModuleAndAllComponentsSync(moduleClass);\r\n moduleFactory = compiled.ngModuleFactory;\r\n }\r\n return moduleFactory;\r\n }\r\n\r\n private getRegisteredModules(umd: string, exportAs: string[], moduleName: string): { [key: string]: any } {\r\n let modules;\r\n if (umd !== '') {\r\n modules = window;\r\n umd.split('.').forEach((c) => {\r\n if (typeof modules !== typeof undefined) {\r\n modules = modules[c];\r\n }\r\n });\r\n } else {\r\n modules = window[moduleName];\r\n }\r\n if (exportAs.length > 0 && modules) {\r\n exportAs.forEach((c) => {\r\n this.setValueOnObject(c, 0, modules, window);\r\n });\r\n }\r\n return modules;\r\n }\r\n}\r\nexport interface LibraryDepenecy {\r\n name: string;\r\n kebabName: string;\r\n umd: string;\r\n exportAs: string[];\r\n}\r\nexport interface BreadCrumbInfo {\r\n label: string;\r\n url: string;\r\n route: ActivatedRoute;\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Observable, Subject } from 'rxjs';\r\n@Injectable()\r\nexport class UiService {\r\n tabSelected = new Subject<any>();\r\n tabSelected$ = this.tabSelected.asObservable();\r\n id: string;\r\n menuToggle$: Observable<boolean>;\r\n\r\n private menuToggleSubject = new Subject<boolean>();\r\n constructor() {\r\n this.menuToggle$ = this.menuToggleSubject.asObservable();\r\n }\r\n toggleMenu(toggle: boolean): void {\r\n this.menuToggleSubject.next(toggle);\r\n }\r\n setTabSelected(val: any): void {\r\n this.tabSelected.next(val);\r\n }\r\n}\r\n","import { PipeTransform, Pipe } from '@angular/core';\nimport { MetaobjectDataModel } from '../abstract-classes/models';\n\n@Pipe({\n name: 'rval'\n})\nexport class MoReportValuePipe implements PipeTransform {\n transform(\n name: string,\n mo: MetaobjectDataModel,\n Columns?: { [key: string]: any; Name: string; Caption: string }[],\n caption?: boolean\n ): any {\n let fieldName = Columns ? Columns.find((c) => c.Name === name || c.Alias === name)?.Name : name;\n if (!fieldName) {\n fieldName = name;\n }\n let val = fieldName ? mo[fieldName] : undefined;\n if (caption) {\n let captionVal = fieldName ? mo[fieldName]?.$Caption : undefined;\n if (typeof captionVal === 'undefined') {\n captionVal = mo[fieldName + '$Caption'];\n }\n if (typeof captionVal === 'undefined') {\n captionVal = val;\n }\n val = captionVal;\n }\n return val;\n }\n}\n","import { PipeTransform, Pipe } from '@angular/core';\r\ndeclare const BigNumber: any;\r\n@Pipe({\r\n name: 'numeral'\r\n})\r\nexport class NumeralPipe implements PipeTransform {\r\n transform(value: string | number, decimalPrecision: number, showThousandSeperator: boolean): string | number {\r\n if (value === '') {\r\n return value;\r\n }\r\n if (!value) {\r\n return '';\r\n }\r\n decimalPrecision = Number(decimalPrecision);\r\n const newVal = value.toString().replace(/,/g, '');\r\n if (typeof decimalPrecision === 'number' && decimalPrecision > 0) {\r\n return new BigNumber(newVal).toFormat(decimalPrecision);\r\n } else if (!showThousandSeperator) {\r\n return value;\r\n }\r\n return new BigNumber(newVal).toFormat(0);\r\n }\r\n floor(num, precision): number {\r\n const factor = Math.pow(10, precision);\r\n const tempNumber = num * factor;\r\n const roundedTempNumber = Math.floor(tempNumber);\r\n\r\n return roundedTempNumber / factor;\r\n }\r\n getValue(value): string {\r\n const newVal = value.toString().replace(/,/g, '');\r\n return newVal;\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { GroupByItem } from '../abstract-classes';\r\nimport { getUniqueId } from '../constants';\r\n\r\n@Pipe({\r\n name: 'groupBy'\r\n})\r\nexport class GroupByPipe implements PipeTransform {\r\n resolveValue(current: any, property: string, $Caption: boolean = false, dot$Caption: boolean = false): any {\r\n const isDate = current[property] instanceof Date;\r\n if (isDate) {\r\n return current[property + '$Caption'].split(' ')[0];\r\n }\r\n if ($Caption) {\r\n return current[property + '$Caption'];\r\n }\r\n if (dot$Caption) {\r\n return current[property].$Caption;\r\n }\r\n return current[property];\r\n }\r\n\r\n transform(collection: any[], property: string): GroupByItem[] {\r\n // prevents the application from breaking if the array of objects doesn't exist yet\r\n if (!collection) {\r\n return [];\r\n }\r\n const resolveValue = this.resolveValue;\r\n const first = collection[0];\r\n if (!(first[property] instanceof Date) && resolveValue(first, property, true)) {\r\n property = property + '$Caption';\r\n }\r\n const groupedCollection = collection.reduce((previous, current) => {\r\n if (typeof resolveValue(current, property) === 'object' && resolveValue(current, property, false, true)) {\r\n if (!previous[resolveValue(current, property, false, true)]) {\r\n previous[resolveValue(current, property, false, true)] = [current];\r\n } else {\r\n previous[resolveValue(current, property, false, true)].push(current);\r\n }\r\n } else {\r\n if (!previous[resolveValue(current, property)]) {\r\n previous[resolveValue(current, property)] = [current];\r\n } else {\r\n previous[resolveValue(current, property)].push(current);\r\n }\r\n }\r\n return previous;\r\n }, {});\r\n\r\n // this will return an array of objects, each object containing a group of objects\r\n return Object.keys(groupedCollection).map((key) => ({\r\n id: getUniqueId(2),\r\n key,\r\n value: groupedCollection[key]\r\n }));\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { BarsaApi } from '../abstract-classes';\n\n@Pipe({\n name: 'bbbTranslate'\n})\nexport class BbbTranslatePipe implements PipeTransform {\n transform(key: string): string {\n if (!key) {\n return key;\n }\n let hasStar = false;\n if (typeof key === 'string' && key.indexOf('*') > 0) {\n hasStar = true;\n }\n if (!key.replace) {\n return key;\n }\n const key2 = key.replace('*', '').trim();\n\n let result = BarsaApi.BBB[key2] ?? key2;\n if (hasStar) {\n result += '*';\n }\n return result;\n }\n}\n","import { PipeTransform, Pipe } from '@angular/core';\nimport { MenuItem } from '../abstract-classes';\nimport { BbbTranslatePipe } from './bbb-translate.pipe';\n\n@Pipe({\n name: 'contextMenu'\n})\nexport class ContextMenuPipe implements PipeTransform {\n constructor(private bbbPipe: BbbTranslatePipe) {}\n transform(commands: MenuItem[] | null, checkList: boolean = false): any[] {\n if (!commands) {\n return [];\n }\n return commands.filter((c) => {\n const isObject = typeof c === 'object';\n if (!isObject) {\n return false;\n }\n const EditText = this.bbbPipe.transform('Edit');\n if (c.text === EditText && c.Command?.IsBuiltin) {\n return false;\n }\n const DeleteText = this.bbbPipe.transform('Delete');\n if (checkList && c.text === DeleteText && c.Command?.IsBuiltin) {\n return false;\n }\n if (c.Command._isVisible === false) {\n return false;\n }\n return true;\n });\n }\n}\n","import { PipeTransform, Pipe } from '@angular/core';\r\nimport { getHeaderValue } from '../constants';\r\n\r\n@Pipe({\r\n name: 'facetValue'\r\n})\r\nexport class HeaderFacetValuePipe implements PipeTransform {\r\n constructor() {}\r\n transform(value: any, type?: string): any {\r\n if (!type) {\r\n return getHeaderValue(value);\r\n }\r\n // rating-indicator && progress-indicator\r\n return Number(value.Value);\r\n }\r\n}\r\n","import { PipeTransform, Pipe } from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'seperatorFix'\r\n})\r\nexport class SeperatorFixPipe implements PipeTransform {\r\n transform(buttons: any[]): any[] {\r\n if (Array.isArray(buttons)) {\r\n buttons?.forEach((c, i) => {\r\n if (typeof c === 'string') {\r\n buttons[i] = { text: '', type: 'seperator' };\r\n }\r\n });\r\n }\r\n return buttons;\r\n }\r\n}\r\n","import { PipeTransform, Pipe } from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'convertToStyle'\r\n})\r\nexport class ConvertToStylePipe implements PipeTransform {\r\n constructor() {}\r\n transform(text: string | undefined): any {\r\n if (text) {\r\n const style = text.replace(/\\r?\\n|\\r/g, '');\r\n const styles: string[] = style.split(';');\r\n styles.splice(styles.length - 1, 1);\r\n let styleString = '{';\r\n styles.forEach((element, index) => {\r\n const keyVal = element.split(':');\r\n styleString += `\"${keyVal[0]}\":\"${keyVal[1]}\"`;\r\n if (index < styles.length - 1) {\r\n styleString += `,`;\r\n }\r\n });\r\n\r\n styleString += '}';\r\n return JSON.parse(styleString);\r\n }\r\n return {};\r\n }\r\n}\r\n","import { PipeTransform, Pipe } from '@angular/core';\nimport { BarsaApi } from '../abstract-classes';\n\n@Pipe({\n name: 'tlbButtons'\n})\nexport class TlbButtonsPipe implements PipeTransform {\n constructor() {}\n transform(buttons: any[] | null, property: string | string[], value?: any | any[]): any[] {\n if (!buttons) {\n return [];\n }\n let lastIsString = false;\n const btns = buttons.filter((btn) => {\n let filter = false;\n if (typeof btn === 'string') {\n if (lastIsString) {\n filter = false;\n } else {\n filter = true;\n lastIsString = true;\n }\n } else if (typeof property === 'string') {\n filter = this.filterBtn(btn, property, value);\n if (lastIsString && filter) {\n lastIsString = false;\n }\n } else if (Array.isArray(property)) {\n property.forEach((prop, i) => {\n if (!filter) {\n filter = this.filterBtn(btn, prop, value[i]);\n }\n });\n if (filter && lastIsString) {\n lastIsString = false;\n }\n }\n\n return filter;\n });\n return btns.length === 1 && typeof btns[0] === 'string' ? [] : btns;\n }\n filterBtn(btn, property, value): boolean {\n const val = BarsaApi.Common.Util.TryGetValue(btn, property);\n if (\n (val === null && (typeof value === 'undefined' || value === null)) ||\n (val === null && typeof value === typeof false && !value)\n ) {\n return !btn.hidden && !btn.Command?.hide;\n }\n return value === val && !btn.hidden && !btn.Command?.hide;\n }\n}\n","import { PipeTransform, Pipe } from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'removeNewline'\r\n})\r\nexport class RemoveNewlinePipe implements PipeTransform {\r\n constructor() {}\r\n transform(text: string | undefined): string | undefined {\r\n if (text) {\r\n return text.replace(/\\r?\\n|\\r/g, '');\r\n }\r\n return text;\r\n }\r\n}\r\n","import { PipeTransform, Pipe } from '@angular/core';\nimport { MetaobjectDataModel } from '../abstract-classes/models';\nimport { getFieldValue } from '../constants';\n\n@Pipe({\n name: 'val'\n})\nexport class MoValuePipe implements PipeTransform {\n constructor() {}\n transform(name: string, mo: MetaobjectDataModel, caption?: boolean): string {\n return getFieldValue(name, mo, caption);\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { BarsaApi } from '../abstract-classes';\r\n\r\n@Pipe({\r\n name: 'filter'\r\n})\r\nexport class FilterPipe implements PipeTransform {\r\n transform(collection: any[], filterArgs: { [key: string]: any }): any[] {\r\n if (!collection || !filterArgs) {\r\n return [];\r\n }\r\n return collection.filter((val) => this.matchFilter(val, filterArgs));\r\n }\r\n matchFilter(value, fitlerArgs): boolean {\r\n const match = Object.keys(fitlerArgs).some((key) => {\r\n const filterValue = fitlerArgs[key];\r\n if (typeof filterValue === typeof true && !filterValue) {\r\n const val = BarsaApi.Common.Util.TryGetValue(value, key);\r\n return !val;\r\n } else {\r\n return BarsaApi.Common.Util.TryGetValue(value, key) === filterValue;\r\n }\r\n });\r\n return match;\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'filterTab'\r\n})\r\nexport class FilterTabPipe implements PipeTransform {\r\n transform(collection: any[]): any[] {\r\n if (!collection) {\r\n return [];\r\n }\r\n return collection.filter((val) => val.Visible !== false);\r\n }\r\n}\r\n","import { PipeTransform, Pipe } from '@angular/core';\r\nimport { MetaobjectDataModel } from '../abstract-classes/models';\r\n\r\n@Pipe({\r\n name: 'rvalConcat'\r\n})\r\nexport class MoReportValueConcatPipe implements PipeTransform {\r\n constructor() {}\r\n transform(names: string[], symbol: string, mo: MetaobjectDataModel, Columns?: any[]): string {\r\n let result = '';\r\n names.forEach((name, i) => {\r\n const fieldName = Columns ? Columns.find((c) => c.Name === name || c.Alias === name)?.Name : name;\r\n if (i > 0) {\r\n result += symbol;\r\n }\r\n const caption = mo[fieldName]?.$Caption;\r\n const caption1 = mo[fieldName + '$Caption'];\r\n if (caption) {\r\n result += caption;\r\n } else if (caption1) {\r\n result += caption1;\r\n } else {\r\n result += mo[fieldName];\r\n }\r\n });\r\n\r\n return result;\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { BarsaApi } from '../abstract-classes';\r\n\r\n@Pipe({\r\n name: 'filterStr'\r\n})\r\nexport class FilterStringPipe implements PipeTransform {\r\n transform(\r\n collection: any[] | undefined | null,\r\n filterArgs: {\r\n [key: string]: any;\r\n mode: 'contains' | 'equals' | 'startWith' | 'endWith';\r\n }\r\n ): any[] {\r\n if (!collection || !filterArgs) {\r\n return [];\r\n }\r\n return collection.filter((val) => this.matchFilter(val, filterArgs));\r\n }\r\n matchFilter(value, filterArgs): boolean {\r\n const match = Object.keys(filterArgs).some((key) => {\r\n const filterVal = filterArgs[key];\r\n if (!filterVal) {\r\n return true;\r\n }\r\n const val: string = BarsaApi.Common.Util.TryGetValue(value, key);\r\n if (!val) {\r\n return false;\r\n }\r\n switch (filterArgs.mode) {\r\n case 'contains':\r\n return val.indexOf(filterVal) > -1;\r\n case 'equals':\r\n return val === filterVal;\r\n case 'startWith':\r\n return val.startsWith(filterVal);\r\n case 'endWith':\r\n return val.endsWith(filterVal);\r\n }\r\n return false;\r\n });\r\n return match;\r\n }\r\n}\r\n","import { Injectable, Pipe, PipeTransform } from '@angular/core';\r\n\r\nexport type SortOrder = 'asc' | 'desc';\r\n\r\n@Injectable()\r\n@Pipe({\r\n name: 'sort'\r\n})\r\nexport class SortPipe implements PipeTransform {\r\n transform(value: any[], sortOrder: SortOrder | string = 'asc', sortKey?: string): any {\r\n sortOrder = sortOrder && (sortOrder.toLowerCase() as any);\r\n\r\n if (!value || (sortOrder !== 'asc' && sortOrder !== 'desc')) {\r\n return value;\r\n }\r\n\r\n let numberArray: any[] = [];\r\n let stringArray: any[] = [];\r\n\r\n if (!sortKey) {\r\n numberArray = value.filter((item) => typeof item === 'number').sort();\r\n stringArray = value.filter((item) => typeof item === 'string').sort();\r\n } else {\r\n numberArray = value\r\n .filter((item) => typeof item[sortKey] === 'number')\r\n .sort((a, b) => a[sortKey] - b[sortKey]);\r\n stringArray = value\r\n .filter((item) => typeof item[sortKey] === 'string')\r\n .sort((a, b) => {\r\n if (a[sortKey] < b[sortKey]) {\r\n return -1;\r\n } else if (a[sortKey] > b[sortKey]) {\r\n return 1;\r\n } else {\r\n return 0;\r\n }\r\n });\r\n }\r\n const sorted = numberArray.concat(stringArray);\r\n return sortOrder === 'asc' ? sorted : sorted.reverse();\r\n }\r\n}\r\n","import { PipeTransform, Pipe } from '@angular/core';\r\nimport { IconFont } from '@fundamental-ngx/core';\r\nimport { BarsaApi } from '../abstract-classes';\r\n\r\n@Pipe({\r\n name: 'barsaIconDict'\r\n})\r\nexport class BarsaIconDictPipe implements PipeTransform {\r\n constructor() {}\r\n transform(type: string, size: string = '128'): IconFont {\r\n const sizeField = size === '128' ? 'FileIconDict128' : 'FileIconDict16';\r\n return BarsaApi.Common.File[sizeField][type];\r\n }\r\n}\r\n","import { PipeTransform, Pipe } from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'fileinfoCount'\r\n})\r\nexport class FileInfoCountPipe implements PipeTransform {\r\n constructor() {}\r\n transform(value: { Files: any[] }): number {\r\n if (!value || !value.Files) {\r\n return 0;\r\n }\r\n return value.Files.filter((c) => !c.IsDeleted).length;\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { LayoutSetting } from '../abstract-classes';\r\n\r\n@Pipe({\r\n name: 'controlUi'\r\n})\r\nexport class ControlUiPipe implements PipeTransform {\r\n transform(caption: string, layout94: LayoutSetting): LayoutSetting | null {\r\n return this.findLayoutItem(caption, layout94);\r\n }\r\n findLayoutItem(caption, layoutItem): LayoutSetting | null {\r\n if (!layoutItem) {\r\n return null;\r\n }\r\n if (layoutItem.Caption === caption) {\r\n return layoutItem;\r\n }\r\n let finded: LayoutSetting | null = null;\r\n layoutItem.items?.forEach((childItem) => {\r\n if (!finded) {\r\n finded = this.findLayoutItem(caption, childItem);\r\n }\r\n });\r\n return finded;\r\n }\r\n}\r\n","import { PipeTransform, Pipe } from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'barsaVisibleValue'\r\n})\r\nexport class VisibleValuePipe implements PipeTransform {\r\n constructor() {}\r\n\r\n transform(object, feild): string {\r\n let outputValue;\r\n if (object[feild]?.$Caption !== undefined) {\r\n outputValue = object[feild].$Caption;\r\n } else {\r\n outputValue = object[feild + '$Caption'] !== undefined ? object[feild + '$Caption'] : object[feild];\r\n }\r\n return outputValue;\r\n }\r\n}\r\n","import { PipeTransform, Pipe } from '@angular/core';\r\nimport { getDateService } from '../constants';\r\nimport { DateService } from '../date-services';\r\nimport { LogService } from '../services/log.service';\r\n\r\n@Pipe({\r\n name: 'dateTimeToCaption'\r\n})\r\nexport class DateTimeToCaptionPipe implements PipeTransform {\r\n _dateService: DateService;\r\n transform(\r\n value: Date | undefined,\r\n format: string,\r\n culture: string,\r\n showDate: boolean | undefined = true,\r\n showTime: boolean | undefined = true\r\n ): string {\r\n if (!value) {\r\n return '';\r\n }\r\n this._dateService = this._dateService ?? getDateService(new LogService(), culture);\r\n let formatPattern = format;\r\n if (!showDate) {\r\n formatPattern = format.split(' ')[1];\r\n } else if (!showTime) {\r\n formatPattern = format.split(' ')[0];\r\n }\r\n if (culture === 'fa-IR') {\r\n formatPattern = formatPattern.replace('YYYY', 'jYYYY');\r\n formatPattern = formatPattern.replace('MM', 'jMM');\r\n formatPattern = formatPattern.replace('DD', 'jDD');\r\n }\r\n return this._dateService.getMoment(value).format(formatPattern);\r\n }\r\n}\r\n","import { PipeTransform, Pipe } from '@angular/core';\r\nimport { LayoutSetting } from '../abstract-classes';\r\n\r\n@Pipe({\r\n name: 'filterToolbarControl'\r\n})\r\nexport class FilterToolbarControlPipe implements PipeTransform {\r\n transform(config: LayoutSetting): LayoutSetting[] {\r\n return config.items.filter(\r\n (c) => c.xtype !== 'Ly.LayoutControl' || (c.xtype === 'Ly.LayoutControl' && c.FieldUi)\r\n ); // filter toolbar button.fieldui is undefined in toolbar layout control.\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\nimport { SortSetting } from '../abstract-classes';\r\nimport { BbbTranslatePipe } from '../pipes/bbb-translate.pipe';\r\nimport { VisibleValuePipe } from './visible-value.pipe';\r\n\r\n@Pipe({\r\n name: 'multipleGroupBy'\r\n})\r\nexport class MultipleGroupByPipe implements PipeTransform {\r\n constructor(private bbbPipe: BbbTranslatePipe, private visibleValuePipe: VisibleValuePipe) {}\r\n\r\n transform(collection: any[], sortSettings: SortSetting[]): any {\r\n const grouped: any = {};\r\n if (sortSettings.length === 0) {\r\n collection.forEach((c) => {\r\n delete c.$Parent;\r\n });\r\n return collection;\r\n }\r\n const groups = sortSettings.map((c) => c.Name);\r\n const getTitle = (mo, fieldName): string => this.visibleValuePipe.transform(mo, fieldName);\r\n collection.forEach((a) => {\r\n groups\r\n .reduce((o, g, i) => {\r\n const groupTitle = getTitle(a, g);\r\n o[groupTitle] = o[groupTitle] || (i + 1 === groups.length ? [] : {});\r\n if (Array.isArray(o[groupTitle])) {\r\n a.$Level = groups.length;\r\n let title = getTitle(a, groups[0]);\r\n let parent = grouped[title];\r\n parent.$Count = (parent.$Count ?? 0) + 1;\r\n for (let j = 1; j < groups.length - 1; j++) {\r\n title = getTitle(a, groups[j]);\r\n parent = parent[title];\r\n parent.$Count = o[groupTitle].length + 1;\r\n }\r\n } else {\r\n const a2 = this.findGroup(groupTitle, a);\r\n o[groupTitle].$Expanded = a2?.$Expanded;\r\n o[groupTitle].$Visibility = a2?.$Visibility;\r\n }\r\n return o[groupTitle];\r\n }, grouped)\r\n .push(a);\r\n });\r\n const arr = [];\r\n this.prepareArr(arr, null, grouped, groups.length, 0);\r\n return arr;\r\n }\r\n\r\n findGroup(groupTitle: string, a: any): any {\r\n if (a.$Group === groupTitle) {\r\n return a;\r\n }\r\n if (a.$Parent) {\r\n return this.findGroup(groupTitle, a.$Parent);\r\n }\r\n }\r\n prepareArr(arr, parent: Group | null, item: Group, maxlevel, level): void {\r\n const keys = Object.keys(item);\r\n item.$Level = level;\r\n keys.forEach((key) => {\r\n if (\r\n key !== '$Count' &&\r\n key !== '$Level' &&\r\n key !== '$Parent' &&\r\n key !== '$Expanded' &&\r\n key !== '$Visibility'\r\n ) {\r\n const row: Group = item[key];\r\n\r\n const newRow: Group = {\r\n $Group: !key ? (!parent ? this.bbbPipe.transform('Empty_Bracket') : key) : key,\r\n $Level: level,\r\n $Count: row.$Count,\r\n $Expanded: row.$Expanded === false || parent?.$Expanded === false ? false : true,\r\n $Parent: parent,\r\n $Children: [],\r\n $Visibility: row.$Visibility === false || parent?.$Visibility === false ? false : true\r\n };\r\n if (newRow.$Parent) {\r\n if (newRow.$Parent?.$Children) {\r\n newRow.$Parent.$Children.push(newRow);\r\n } else {\r\n newRow.$Parent.$Children = [newRow];\r\n }\r\n }\r\n if (Array.isArray(row)) {\r\n if (row.length) {\r\n newRow.$Expanded =\r\n newRow.$Expanded === false || row[0].$Parent?.$Expanded === false ? false : true;\r\n }\r\n arr.push(newRow);\r\n row.forEach((c) => {\r\n c.$Parent = newRow;\r\n c.$Visibility = true;\r\n newRow.$Children.push(c);\r\n });\r\n arr.push(...row);\r\n } else {\r\n arr.push(newRow);\r\n if (level < maxlevel) {\r\n this.prepareArr(arr, newRow, row, maxlevel, level + 1);\r\n }\r\n }\r\n }\r\n });\r\n }\r\n}\r\n\r\nexport interface Group {\r\n $Group: any;\r\n $Level: number;\r\n $Count: number;\r\n $Expanded: boolean;\r\n $Parent: any;\r\n $Children: any[];\r\n $Visibility: boolean;\r\n}\r\n","import { PipeTransform, Pipe } from '@angular/core';\r\nimport { getImagePath } from '../constants';\r\n@Pipe({\r\n name: 'picFieldSrc'\r\n})\r\nexport class PictureFieldSourcePipe implements PipeTransform {\r\n constructor() {}\r\n transform(\r\n value: string | any,\r\n type: string,\r\n moId: string | null,\r\n fieldDefId?: string,\r\n sw?: number,\r\n sh?: number\r\n ): string {\r\n if (typeof value === 'object') {\r\n value = value?.FileId;\r\n }\r\n const url = getImagePath(type, moId, value, fieldDefId, sw, sh);\r\n return url;\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'fioriIcon'\r\n})\r\nexport class FioriIconPipe implements PipeTransform {\r\n transform(value: string, defaultIcon: string): string {\r\n if (!value) {\r\n return defaultIcon;\r\n }\r\n switch (value) {\r\n case 'New':\r\n return 'add';\r\n case 'Edit':\r\n return 'edit';\r\n case 'Delete':\r\n return 'delete';\r\n case 'MoveUp':\r\n return 'arrow-top';\r\n case 'MoveDown':\r\n return 'arrow-bottom';\r\n case 'RefreshReport':\r\n return 'refresh';\r\n case 'AddToList':\r\n return 'chain-link';\r\n case 'RemoveFromList':\r\n return 'broken-link';\r\n case 'ExportToExcel':\r\n return 'broken-link';\r\n case 'WorkflowHistory':\r\n return 'work-history';\r\n\r\n default:\r\n return defaultIcon;\r\n }\r\n }\r\n}\r\n","import { PipeTransform, Pipe } from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'canUploadFile'\r\n})\r\nexport class CanUploadFilePipe implements PipeTransform {\r\n constructor() {}\r\n transform(\r\n value: any[],\r\n maxFileCount: number = 1,\r\n disable: boolean = false,\r\n readonly: boolean = false\r\n // fileCount: number\r\n ): boolean {\r\n let canUpload = true;\r\n if (disable || readonly) {\r\n canUpload = false;\r\n }\r\n\r\n let existFilesCount = 0;\r\n if (value) {\r\n existFilesCount = value.filter((c) => !c.IsDeleted).length;\r\n }\r\n if (maxFileCount !== 0 && maxFileCount <= existFilesCount) {\r\n canUpload = false;\r\n }\r\n return canUpload;\r\n }\r\n}\r\n","import { PipeTransform, Pipe } from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'listCount'\r\n})\r\nexport class ListCountPipe implements PipeTransform {\r\n constructor() {}\r\n transform(list: Array<any>): number {\r\n return list.length;\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { MetaobjectDataModel } from '../abstract-classes';\r\n\r\n@Pipe({\r\n name: 'totalSummary'\r\n})\r\nexport class TotalSummaryPipe implements PipeTransform {\r\n transform(moDataList: MetaobjectDataModel[], columnName: string): number {\r\n return moDataList.reduce(\r\n (curr, prev, currIndex): number =>\r\n currIndex === 0 ? Number(prev[columnName]) : curr + Number(prev[columnName]),\r\n 0\r\n );\r\n }\r\n // Number('') == 0\r\n // Number('a') == NaN it will never be happen because value of\r\n}\r\n","import { Injectable, Pipe, PipeTransform } from '@angular/core';\r\nimport { MetaobjectDataModel, ReportViewColumn } from '../abstract-classes';\r\n\r\n@Injectable()\r\n@Pipe({\r\n name: 'mergeFieldsToColumns'\r\n})\r\nexport class MergeFieldsToColumnsPipe implements PipeTransform {\r\n transform(\r\n columns: ReportViewColumn[],\r\n mergeColumnMoDataList: MetaobjectDataModel[] | undefined\r\n ): ReportViewColumn[] {\r\n if (!mergeColumnMoDataList || !mergeColumnMoDataList.length) {\r\n return columns;\r\n }\r\n return this._mergeFieldsToColumns(columns, mergeColumnMoDataList);\r\n }\r\n protected _mergeFieldsToColumns(\r\n columns: ReportViewColumn[],\r\n mergeColumnMoDataList: MetaobjectDataModel[] | undefined\r\n ): ReportViewColumn[] {\r\n let mergeFieldsToColumns;\r\n if (mergeColumnMoDataList) {\r\n mergeFieldsToColumns = {};\r\n mergeColumnMoDataList\r\n .map((c) => c as MergeCell)\r\n .forEach(\r\n (c) =>\r\n (mergeFieldsToColumns[c.ColumnName] = mergeFieldsToColumns[c.ColumnName]\r\n ? [...mergeFieldsToColumns[c.ColumnName], c.FieldCaption]\r\n : [c.FieldCaption])\r\n );\r\n }\r\n if (mergeFieldsToColumns) {\r\n columns.forEach((c) => {\r\n const columnMerged = mergeFieldsToColumns[c.Alias];\r\n if (columnMerged) {\r\n c.$MergedFieldsToColumn = columnMerged;\r\n }\r\n });\r\n }\r\n return columns;\r\n }\r\n}\r\ninterface MergeCell extends MetaobjectDataModel {\r\n ColumnName: string;\r\n MergeTo: string;\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { ReportViewColumn } from '../abstract-classes';\n\n@Pipe({\n name: 'findColumnByDbName',\n pure: true\n})\nexport class FindColumnByDbNamePipe implements PipeTransform {\n transform(\n columns: ReportViewColumn[],\n name: string,\n secondaryColumns: ReportViewColumn[] = []\n ): ReportViewColumn | undefined {\n return this.findColumn(columns, name, secondaryColumns);\n }\n private findColumn(\n columns: ReportViewColumn[],\n column: string,\n secondaryColumns: ReportViewColumn[]\n ): ReportViewColumn | undefined {\n let columnFound = this._findColumn(columns, column);\n if (!columnFound && secondaryColumns.length) {\n columnFound = this._findColumn(secondaryColumns, column);\n }\n return columnFound;\n }\n private _findColumn(columns: ReportViewColumn[], name: string): ReportViewColumn | undefined {\n return columns.find((column) => column.Name === name || column.Caption === name);\n }\n}\n","import { PipeTransform, Pipe } from '@angular/core';\r\nimport { ReportViewColumn } from '../abstract-classes';\r\n\r\n@Pipe({\r\n name: 'filterColumnsByDetails'\r\n})\r\nexport class FilterColumnsByDetailsPipe implements PipeTransform {\r\n transform(columns: ReportViewColumn[], detailsColumns: ReportViewColumn[]): ReportViewColumn[] {\r\n if (!columns?.length) {\r\n return columns;\r\n }\r\n return columns.filter(\r\n (column) =>\r\n detailsColumns.map((c) => c.Caption).indexOf(column.Caption) === -1 &&\r\n detailsColumns.map((c) => c.Name).indexOf(column.Name) === -1\r\n );\r\n }\r\n}\r\n","import { PipeTransform, Pipe } from '@angular/core';\nimport { PagingSetting } from '../abstract-classes';\n@Pipe({\n name: 'moInfoUlvPaging'\n})\nexport class MoInfoUlvPagingPipe implements PipeTransform {\n transform(ulvAdapterPaging?: PagingSetting, ulvUiPaging?: PagingSetting): PagingSetting | undefined {\n return ulvAdapterPaging ? ulvAdapterPaging : ulvUiPaging;\n }\n}\n","import { PipeTransform, Pipe } from '@angular/core';\nimport { MoInfoUlvPagingPipe } from './mo-info-ulv-paging.pipe';\nimport { MetaobjectDataModel, PagingSetting } from '../abstract-classes';\n@Pipe({\n name: 'moInfoUlvMoList'\n})\nexport class MoInfoUlvMoListPipe implements PipeTransform {\n constructor(private _moInfoUlvPaging: MoInfoUlvPagingPipe) {}\n transform(\n loading: boolean,\n isDataLoadedFirstTime: boolean,\n ulvAdapterMoDataList: MetaobjectDataModel[] | undefined,\n ulvUiMoDataList: MetaobjectDataModel[] | undefined,\n ulvAdapterPaging: PagingSetting | undefined,\n ulvUiPaging: PagingSetting | undefined\n ): any {\n const result: MetaobjectDataModel[] =\n loading && !isDataLoadedFirstTime\n ? [{ Id: '-1', $Caption: '', $isLoading: true }]\n : ulvAdapterMoDataList\n ? ulvAdapterMoDataList?.length === 0\n ? [{ Id: '-1', $Caption: '', isEmpty: true }]\n : ulvAdapterMoDataList\n : ulvUiMoDataList\n ? ulvUiMoDataList\n : [];\n if (result.length > 0) {\n const paging = ulvAdapterPaging ? ulvAdapterPaging : ulvUiPaging;\n result.forEach((c) => {\n c.$__Index = undefined;\n c.$__IsFirst = undefined;\n c.$__IsLast = undefined;\n });\n result.forEach((c, index) => {\n c.$__Index = index;\n if (index === 0) {\n c.$__IsFirst = true;\n c.$IsChecked = true;\n }\n if (index === result.length - 1) {\n c.$__IsLast = true;\n }\n });\n if (paging?.HasPaging) {\n if (paging.Page + 1 < paging.TotalPages) {\n if (!result[result.length - 1].$LoadMore) {\n result.push({ $Caption: 'More', $LoadMore: true, Id: '-1' });\n }\n } else {\n if (result[result.length - 1].$LoadMore) {\n result.splice(result.length - 1, 1);\n }\n }\n }\n }\n return result;\n }\n}\n","import { PipeTransform, Pipe } from '@angular/core';\n@Pipe({\n name: 'reverse'\n})\nexport class ReversePipe implements PipeTransform {\n transform(value, doReverse: boolean = true): any[] {\n if (!doReverse) {\n return value;\n }\n if (!value) {\n return [];\n }\n return value.reverse();\n }\n}\n","import { PipeTransform, Pipe } from '@angular/core';\nimport { EjrayOlgo, MetaobjectDataModel, MoForReportModel, ReportViewColumn } from '../abstract-classes/models';\nimport { FindColumnByDbNamePipe } from './find-column-by-db-name.pipe';\n\n@Pipe({\n name: 'columnCustomUi'\n})\nexport class ColumnCustomUiPipe implements PipeTransform {\n constructor(private _findColumnByDbNamePipe: FindColumnByDbNamePipe) {}\n transform(column: ReportViewColumn, columnComponents: MoForReportModel | null): EjrayOlgo | null {\n if (!columnComponents) {\n return null;\n }\n let component = null;\n columnComponents.MoDataList.forEach((c: MetaobjectDataModel) => {\n if (!component) {\n const columnItem = this._findColumnByDbNamePipe.transform([column], c.Title);\n if (columnItem) {\n component = c.Component;\n }\n }\n });\n return component;\n }\n}\n","import { PipeTransform, Pipe } from '@angular/core';\nimport { DomSanitizer, SafeHtml } from '@angular/platform-browser';\n\n@Pipe({\n name: 'sanitizeText'\n})\nexport class SanitizeTextPipe implements PipeTransform {\n constructor(private _domSanitizer: DomSanitizer) {}\n transform(text: string): SafeHtml {\n return this._domSanitizer.bypassSecurityTrustHtml(text);\n }\n}\n","import { Injectable, Pipe, PipeTransform } from '@angular/core';\nimport { MetaobjectDataModel, ReportViewColumn } from '../abstract-classes';\n\n@Injectable()\n@Pipe({\n name: 'columnCustomComponent'\n})\nexport class ColumnCustomComponentPipe implements PipeTransform {\n transform(\n columns: ReportViewColumn[],\n customComponentMoDataList: MetaobjectDataModel[] | undefined\n ): ReportViewColumn[] {\n if (!customComponentMoDataList || !customComponentMoDataList.length) {\n return columns;\n }\n return this._setCustomComponentToColumns(columns, customComponentMoDataList);\n }\n protected _setCustomComponentToColumns(\n columns: ReportViewColumn[],\n customComponentMoDataList: MetaobjectDataModel[] | undefined\n ): ReportViewColumn[] {\n let allCustomComponents;\n if (customComponentMoDataList) {\n allCustomComponents = {};\n customComponentMoDataList\n .map((c) => c as MergeCell)\n .forEach((c) => (allCustomComponents[c.Title] = c.Component));\n }\n if (allCustomComponents) {\n columns.forEach((c) => {\n const customComponent = allCustomComponents[c.Alias];\n if (customComponent) {\n c.$CustomComponent = customComponent;\n }\n });\n }\n return columns;\n }\n}\ninterface MergeCell extends MetaobjectDataModel {\n Title: string;\n Component: MetaobjectDataModel;\n}\n","import { PipeTransform, Pipe } from '@angular/core';\nimport { MetaobjectDataModel, ReportViewColumn } from '../abstract-classes/models';\n\n@Pipe({\n name: 'columnValue'\n})\nexport class ColumnValuePipe implements PipeTransform {\n transform(column: ReportViewColumn, mo: MetaobjectDataModel): any {\n const colName = column.Name;\n const data = mo[colName];\n let caption = mo[colName + '$Caption'];\n\n if (typeof data === 'object' && data) {\n if (data.$Caption) {\n caption = data.$Caption;\n }\n if (column.FieldTypeId.toString() === '6' && column.Tag === 'Image') {\n // Column is enum with image\n caption = '';\n }\n }\n if (!caption && typeof data !== 'object') {\n caption = data;\n }\n\n if (column.OnlyImage || (column.FieldTypeId.toString() === '6' && column.Tag === 'Image')) {\n caption = '';\n }\n return caption || '';\n }\n}\n","import { PipeTransform, Pipe } from '@angular/core';\nimport { MetaobjectDataModel, ReportViewColumn } from '../abstract-classes/models';\n\n@Pipe({\n name: 'columnIcon'\n})\nexport class ColumnIconPipe implements PipeTransform {\n transform(column: ReportViewColumn, mo: MetaobjectDataModel): any {\n const colName = column.Name;\n const data = mo[colName];\n let icon = mo[colName + '$Icon'];\n\n if (typeof data === 'object' && data) {\n icon = data.$Icon;\n }\n return icon;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { BehaviorSubject, combineLatest, Observable, of, Subject, Subscription } from 'rxjs';\nimport {\n delay,\n distinctUntilChanged,\n map,\n shareReplay,\n switchMap,\n takeUntil,\n tap,\n withLatestFrom\n} from 'rxjs/operators';\nimport {\n BarsaApi,\n MenuItem,\n MetaobjectDataModel,\n PagingSetting,\n SearchPanelSettings,\n GeneralControlInfoModel,\n ColumnInfoType,\n FormSetting,\n ShareButtonsChoiceDef,\n ChoiceDef,\n CartableTemplateKey\n} from '../abstract-classes';\nimport {\n executeUlvCommandHandler,\n genrateInlineMoId,\n getControlList,\n GetDefaultMoObjectInfo,\n getNewMoGridEditor\n} from '../constants';\nimport { BbbTranslatePipe } from '../pipes';\nimport { ApiService } from './api.service';\n@Injectable()\nexport class UlvMainService {\n moDataListSource = new BehaviorSubject<MetaobjectDataModel[]>([]);\n context$: Subscription;\n viewer$: Observable<any>;\n conditionalFormats$: Observable<any>;\n hideToolbar$: Observable<boolean>;\n mask$: Observable<boolean>;\n viwerMask$: Observable<boolean>;\n visible$: Observable<boolean>;\n enable$: Observable<boolean>;\n readonly$: Observable<boolean>;\n menuItems$: Observable<MenuItem[]>;\n title$: Observable<{ text: string; image: string }>;\n formPanelControlShowWindow$: Observable<{ formpanelControl: any; hasParentMo: boolean }>;\n searchPanelUi$: Observable<any>;\n pagingSetting$: Observable<PagingSetting | null>;\n toolbarButtons$: Observable<any[]>;\n destroy$: Observable<void>;\n moDataList$: Observable<MetaobjectDataModel[]>;\n reportId$: Observable<string>;\n allowInlineEdit$: Observable<boolean>;\n inlineEditMode$: Observable<boolean>;\n onlyInlineEdit$: Observable<boolean>;\n context: any;\n openSearchPanelHiddenSettings$: Observable<void>;\n openSearchFilesManage$: Observable<void>;\n searchPanelMoChanged$: Observable<boolean>;\n allSearchPanelSettings$: Observable<SearchPanelSettings[]>;\n layoutInfo$: Observable<any>;\n selectedSearchPanelSettingsId$: Observable<string>;\n selectedSearchPanelSettings$: Observable<SearchPanelSettings | undefined>;\n newInlineEditMo$: Observable<MetaobjectDataModel | null>;\n _cartableTemplates$ = new BehaviorSubject<{ [key: string]: FormSetting }>({});\n _cartableChildsMo$ = new BehaviorSubject<{ [key: string]: MetaobjectDataModel } | null>({});\n selectedCount$: Observable<number>;\n\n private _layoutInfoSource = new Subject<any>();\n private _contextSource = new Subject<any>();\n private _inDialog$ = new BehaviorSubject<boolean>(false);\n private _isMultiSelect$ = new BehaviorSubject<boolean>(false);\n private _fullscreen$ = new BehaviorSubject<boolean>(false);\n private _conditionalFormatsSource = new BehaviorSubject<any[]>([]);\n private _reportSource = new BehaviorSubject<any>(null);\n private _viewerControlSource = new BehaviorSubject<any>(null);\n private _hideToolbarSource = new BehaviorSubject<boolean>(true);\n private _onDestroy$ = new Subject<void>();\n private _maskSource = new BehaviorSubject<boolean>(false);\n private _viewerMaskSource = new BehaviorSubject<boolean>(false);\n private _visibleSource = new BehaviorSubject<boolean>(true);\n private _enableSource = new BehaviorSubject<boolean>(true);\n private _readonlySource = new BehaviorSubject<boolean>(false);\n private _menuItemsSource = new BehaviorSubject<MenuItem[]>([]);\n private _onlyInlineEditSource = new BehaviorSubject<boolean>(false);\n private _inlineEditModeSource = new BehaviorSubject<boolean>(false);\n private _allowInlineEditSource = new BehaviorSubject<boolean>(false);\n private _cartableKeySeperator = '@';\n private _titleSource = new BehaviorSubject<{ text: string; image: string }>({\n text: '',\n image: ''\n });\n private _formPanelControlShowWindowSource = new Subject<{\n formpanelControl: any;\n hasParentMo: any;\n }>();\n private _searchPanelUiSource = new BehaviorSubject<any>(null);\n\n private _pagingSettingSource = new BehaviorSubject<PagingSetting | null>(null);\n private _toolbarButtonsSource = new BehaviorSubject<any[]>([]);\n private _toolbarButtonsWorkflowButtons = new BehaviorSubject<any[]>([]);\n private _destroySource = new Subject<void>();\n private _firstApplyAutomatically = true;\n private _controlInfosMetaobject: GeneralControlInfoModel[] = [];\n private _selectedSearchPanelSettingsIdSource = new BehaviorSubject<string>('');\n private _defaultSearchPanelSettingsSource = new Subject<SearchPanelSettings>();\n private _allSearchPanelSettingsSource = new BehaviorSubject<SearchPanelSettings[]>([]);\n private _openSearchPanelHiddenSettingsSource = new Subject<void>();\n private _openSearchFilesManageSource = new Subject<void>();\n private _searchPanelMoChangedSource = new BehaviorSubject<boolean>(false);\n private _newInlineEditMoSource = new BehaviorSubject<MetaobjectDataModel | null>(null);\n private _hideSearchapanelSource = new BehaviorSubject<boolean>(false);\n private _workflowShareButtons: ShareButtonsChoiceDef[] = [];\n\n constructor(private _bbbPipe: BbbTranslatePipe, private _apiService: ApiService) {\n this.context$ = this._contextSource\n .asObservable()\n .pipe(\n takeUntil(this._onDestroy$),\n tap((context) => (this.context = context)),\n tap((context) => this._initialize(context)),\n tap((context) => this._addEventListener(context))\n )\n .subscribe();\n this.newInlineEditMo$ = this._newInlineEditMoSource.asObservable().pipe(takeUntil(this._onDestroy$));\n this.viewer$ = this._viewerControlSource.asObservable().pipe(takeUntil(this._onDestroy$));\n this.conditionalFormats$ = this._conditionalFormatsSource.asObservable().pipe(takeUntil(this._onDestroy$));\n this.hideToolbar$ = this._hideToolbarSource.asObservable().pipe(takeUntil(this._onDestroy$));\n this.mask$ = this._maskSource.asObservable().pipe(takeUntil(this._onDestroy$));\n this.viwerMask$ = this._viewerMaskSource.asObservable().pipe(takeUntil(this._onDestroy$));\n this.visible$ = this._visibleSource.asObservable().pipe(takeUntil(this._onDestroy$));\n this.enable$ = this._enableSource.asObservable().pipe(takeUntil(this._onDestroy$));\n this.readonly$ = this._readonlySource.asObservable().pipe(takeUntil(this._onDestroy$));\n this.menuItems$ = this._menuItemsSource.asObservable().pipe(\n takeUntil(this._onDestroy$),\n map((items) => items.filter((c) => c.itemId !== 'ExportToExcel' && c.itemId !== 'Delete'))\n );\n this.title$ = this._titleSource.asObservable().pipe(takeUntil(this._onDestroy$));\n this.formPanelControlShowWindow$ = this._formPanelControlShowWindowSource\n .asObservable()\n .pipe(takeUntil(this._onDestroy$));\n this.searchPanelUi$ = this._searchPanelUiSource.asObservable().pipe(\n takeUntil(this._onDestroy$),\n tap((searchPanel) => this._addDefaultSearchPanelSettings(searchPanel))\n );\n this.openSearchPanelHiddenSettings$ = this._openSearchPanelHiddenSettingsSource.asObservable();\n this.pagingSetting$ = this._pagingSettingSource.asObservable().pipe(takeUntil(this._onDestroy$));\n this.toolbarButtons$ = this._toolbarButtonsSource.asObservable().pipe(\n withLatestFrom(this._toolbarButtonsWorkflowButtons.asObservable()),\n takeUntil(this._onDestroy$),\n map(([c, wfBtns]) =>\n !c\n ? []\n : [\n ...c.map((d) => ({\n ...d,\n hideText: d.Command?.IsBuiltin && d.itemId !== 'New' ? true : false\n })),\n ...wfBtns\n ]\n ),\n map((c) =>\n !c ? [] : [...c.filter((d) => !d.Command?.IsBuiltin), ...c.filter((d) => d.Command?.IsBuiltin)]\n )\n );\n this.destroy$ = this._destroySource.asObservable().pipe(tap(() => this._unscubscribeContext()));\n this.moDataList$ = this.moDataListSource.asObservable().pipe();\n this.selectedCount$ = this.moDataList$.pipe(map((items) => items.filter((d) => d.$IsChecked).length));\n this.reportId$ = this._reportSource.asObservable().pipe(map((report) => report?.Id));\n\n this.allowInlineEdit$ = this._allowInlineEditSource.asObservable();\n this.inlineEditMode$ = this._inlineEditModeSource.asObservable();\n this.onlyInlineEdit$ = this._onlyInlineEditSource.asObservable();\n this.openSearchFilesManage$ = this._openSearchFilesManageSource.asObservable();\n this.searchPanelMoChanged$ = this._searchPanelMoChangedSource.asObservable().pipe(distinctUntilChanged());\n this.layoutInfo$ = this._layoutInfoSource.asObservable().pipe(shareReplay(1));\n this.allSearchPanelSettings$ = combineLatest([\n this._allSearchPanelSettingsSource.asObservable(),\n this._defaultSearchPanelSettingsSource.asObservable()\n ]).pipe(\n map(([allSettings, defaultSettings]) => {\n if (defaultSettings && allSettings) {\n defaultSettings.IsDefault = !allSettings.some((c) => c.IsDefault);\n allSettings = [defaultSettings, ...allSettings];\n }\n return allSettings;\n }),\n delay(0),\n shareReplay(1)\n );\n this.selectedSearchPanelSettingsId$ = this._selectedSearchPanelSettingsIdSource\n .asObservable()\n .pipe(distinctUntilChanged());\n this.selectedSearchPanelSettings$ = combineLatest([\n this.selectedSearchPanelSettingsId$,\n this.allSearchPanelSettings$\n ]).pipe(\n map(([id, settings]) => settings?.find((c) => c.Id === id)),\n shareReplay(1)\n );\n }\n get inDialog$(): Observable<boolean> {\n return this._inDialog$.asObservable();\n }\n get isMultiSelect$(): Observable<boolean> {\n return this._isMultiSelect$.asObservable();\n }\n get fullscreen$(): Observable<boolean> {\n return this._fullscreen$.asObservable();\n }\n get cartableChildsMo$(): Observable<{ [key: string]: MetaobjectDataModel } | null> {\n return this._cartableChildsMo$.asObservable();\n }\n get cartableTemplates$(): Observable<{ [key: string]: FormSetting } | null> {\n return this._cartableTemplates$.asObservable();\n }\n get searchPanelUi(): any {\n return this._searchPanelUiSource.getValue();\n }\n get reportId(): string | undefined {\n return this._reportSource.getValue()?.Id;\n }\n get allSearchPanelSettings(): SearchPanelSettings[] {\n return this._allSearchPanelSettingsSource.getValue();\n }\n get hideSearchpanel$(): Observable<boolean> {\n return this._hideSearchapanelSource.asObservable().pipe(distinctUntilChanged());\n }\n get hideSearchpanel(): boolean {\n return this._hideSearchapanelSource.getValue();\n }\n executeToolbarButton(itemId: string, options?: any): void {\n const buttons = this._toolbarButtonsSource.getValue();\n if (!buttons.length) {\n return;\n }\n const btn = buttons.find((c) => c.itemId === itemId);\n if (btn) {\n executeUlvCommandHandler(btn, options);\n }\n }\n addWorkflowButtonsInToolbar(e: ShareButtonsChoiceDef): void {\n const arrOfShareButtons = this._createWorkflowShareButtons(e);\n const value = arrOfShareButtons.map((c) => ({\n icon: '',\n text: c,\n itemId: c,\n Data: null,\n $ShareWorkflowButtons: true,\n Command: { _isVisible: true, _isEnable: true, JsonExtraProp: { Design: 'attention' } },\n handler: (d) => this.onWorkflowButtonInToolbarClick(d),\n IsBuiltin: false\n }));\n this._toolbarButtonsWorkflowButtons.next(value);\n }\n onWorkflowButtonInToolbarClick(shareButton: { text: string }): void {\n BarsaApi.Bw.Msg.OKCancel('آیا از تایید موارد کارتابل مطمئن هستید؟', 'تایید', (res) => {\n if (res === 'ok') {\n const params = this._workflowShareButtons.map((c) => ({\n mo: c.mo,\n choiceDef: c.choiceList.find((d) => d.Title === shareButton.text)\n }));\n this._setWorkflowState('Pending', params);\n\n BarsaApi.Common.Ajax.GetServerData(\n 'Workflow94.OnGroupOfChoiceDefsSelect',\n { parameter: { DataList: params } },\n () => {\n this._setWorkflowState('Success', params);\n }, // success\n () => {\n this._setWorkflowState('Failed', params, 'متاسفانه عملیات ناموفق بود.');\n }, // failure\n null,\n this\n );\n }\n });\n }\n _setWorkflowState(\n state: string,\n param: { mo: MetaobjectDataModel; choiceDef: ChoiceDef | undefined }[],\n errorText?: string\n ): void {\n const moDataList = this.moDataListSource.getValue();\n moDataList.forEach((c) => {\n const mo = param.find((d) => c.Id === d.mo.Id);\n if (mo) {\n c.$WorkflowState = { state, errorText };\n }\n });\n this.reSetMoDataList(moDataList);\n }\n setTitle(title: string): void {\n this._titleSource.next({ text: title, image: '' });\n }\n toggleHideSearchpanel(val?: boolean): void {\n this._hideSearchapanelSource.next(typeof val !== 'undefined' ? val : !this._hideSearchapanelSource.getValue());\n }\n setContext(context): void {\n this._contextSource.next(context);\n }\n setInDialog(val: boolean): void {\n this._inDialog$.next(val);\n }\n setIsMultiSelect(val: boolean): void {\n this._isMultiSelect$.next(val);\n }\n setFullscreen(val: boolean): void {\n this._fullscreen$.next(val);\n }\n\n createNewInlineMo(isChecked: boolean): MetaobjectDataModel {\n const context = this.context;\n const formSetting = context.Setting.FormTemplate;\n const typeDefId = context.Setting.Extra.Report.TypeDefId;\n const newMo = getNewMoGridEditor(formSetting, typeDefId) as MetaobjectDataModel;\n newMo.Id = genrateInlineMoId();\n newMo.$IsChecked = isChecked;\n newMo.$NewInlineMo = true;\n if (this._isComposite(context)) {\n const relation = BarsaApi.Common.Util.TryGetValue(this.context.Setting, 'Extra.Relation');\n newMo[relation.ParentFdName] = relation.ParentMoId;\n }\n // this._newInlineEditMoSource.next(newMo);\n return newMo;\n }\n setLayoutInfo(layoutInfo): void {\n this._layoutInfoSource.next(layoutInfo);\n }\n\n destroy(): void {\n this._onDestroy$.next();\n this._unscubscribeContext();\n }\n\n pageSizeChanged(pageIndex): void {\n this.context.fireEvent('PageChange', this.context, pageIndex);\n }\n\n pageChanged(pageIndex): void {\n this.context.currentPage = pageIndex;\n this.context.fireEvent('PageChange', this.context, pageIndex);\n }\n\n reSetMoDataList(moDataList?: MetaobjectDataModel[]): void {\n const newMoDataList = moDataList ?? this.moDataListSource.getValue();\n this._moDataListChanged([...newMoDataList]);\n if (!this.context.Setting?.IsCartableReport) {\n return;\n }\n const keyOfCatableTemplates = new Set<string>();\n newMoDataList.forEach((c) => {\n const tpdfId = c.RelatedMo?.$TypeDefId;\n if (tpdfId) {\n const key = `${tpdfId}${this._cartableKeySeperator}${c.CartableSettings?.Id || '0'}`;\n keyOfCatableTemplates.add(key);\n }\n });\n if (keyOfCatableTemplates.size > 0) {\n this._loadCartableTemplate(keyOfCatableTemplates);\n }\n }\n // Search Setting Manager\n clearSearch(): void {\n const searchPanelUi = this.searchPanelUi;\n const fieldUi = searchPanelUi._dictFieldUi.$Search ?? searchPanelUi._dictFieldUi.جستجو;\n fieldUi.fireEvent('ClearClick');\n }\n search(): void {\n const searchPanelUi = this.searchPanelUi;\n const fieldUi = searchPanelUi._dictFieldUi.$Search ?? searchPanelUi._dictFieldUi.جستجو;\n fieldUi.fireEvent('SearchClick');\n }\n\n getValueInlineEdit(): boolean {\n return this._inlineEditModeSource.getValue();\n }\n\n getAllowInlineEdit(): boolean {\n return this._allowInlineEditSource.getValue();\n }\n setInlineEdit(value: boolean): void {\n this._inlineEditModeSource.next(value);\n }\n\n openSearchFieldsHiddenSettings(): void {\n this._openSearchPanelHiddenSettingsSource.next();\n }\n\n openSearchFilesManage(): void {\n this._openSearchFilesManageSource.next();\n }\n\n searchPanelMoChanged(change: boolean): void {\n this._searchPanelMoChangedSource.next(change);\n }\n\n loadSearchPanelSettings(): void {\n if (this.context.FormPanelUi) {\n return;\n }\n this.reportId$\n .pipe(\n takeUntil(this._onDestroy$),\n tap((reportId) => this._loadSearchPanelSettings(reportId))\n )\n .subscribe();\n }\n\n addSearchPanelSettings(searchPanelSettings: SearchPanelSettings): void {\n const allSearchPanelSettings = this._allSearchPanelSettingsSource.getValue();\n allSearchPanelSettings.push(searchPanelSettings);\n this._allSearchPanelSettingsSource.next(allSearchPanelSettings);\n }\n saveSearchPanelSetting(selectedSearchPanelSettings: SearchPanelSettings): void {\n const searchMo = this.getSearchPanelMo();\n const fieldsSetting = this.getSearchPanelFieldsSetting();\n if (!selectedSearchPanelSettings) {\n return;\n }\n selectedSearchPanelSettings.SearchMo = JSON.stringify(searchMo);\n selectedSearchPanelSettings.FieldsSetting = JSON.stringify(fieldsSetting);\n BarsaApi.Bw.RunBlMethod(\n 'SaveSearchPanelSettings',\n new BarsaApi.Common.MetaObjectWeb({\n Id: selectedSearchPanelSettings.Id,\n $Caption: selectedSearchPanelSettings.Title,\n ReportId: selectedSearchPanelSettings.Report?.Id,\n Title: selectedSearchPanelSettings.Title,\n IsDefault: selectedSearchPanelSettings.IsDefault,\n IsPublic: selectedSearchPanelSettings.IsPublic,\n ApplyAutomatically: selectedSearchPanelSettings.ApplyAutomatically,\n HideSearchPanel: selectedSearchPanelSettings.HideSearchPanel,\n SearchMo: selectedSearchPanelSettings.SearchMo,\n FieldsSetting: selectedSearchPanelSettings.FieldsSetting\n }),\n true\n );\n this.searchPanelMoChanged(false);\n }\n\n applySearchPanelSettings(searchPanelSettings: SearchPanelSettings | undefined): void {\n const searchPanelUi = this.searchPanelUi;\n if (!searchPanelSettings) {\n return;\n }\n if (this._firstApplyAutomatically && searchPanelSettings.IsPrimary) {\n this._firstApplyAutomatically = false;\n return;\n }\n this._firstApplyAutomatically = false;\n\n this.resetSearchPanelSettings(searchPanelUi);\n if (searchPanelSettings.SearchMo) {\n const searchMo = JSON.parse(searchPanelSettings.SearchMo);\n Object.keys(searchMo).forEach((c) => {\n const field = searchPanelUi._dictFieldUi[c];\n if (field && c.indexOf('$') === -1) {\n field.SetValue(searchMo[c]);\n searchPanelUi.Mo.SetFValue(c, searchMo[c]);\n }\n });\n if (searchPanelSettings.IsPrimary && !searchPanelUi.Setting.ImmediateExecute) {\n this.searchPanelMoChanged(false);\n return;\n }\n if (searchPanelSettings.ApplyAutomatically) {\n this.search();\n }\n }\n // TODO set hidden fields\n if (searchPanelSettings.FieldsSetting) {\n const settings = JSON.parse(searchPanelSettings.FieldsSetting);\n this.setAndApplySearchPanelSettingFieldsSetting(\n typeof settings === 'string' ? JSON.parse(settings) : settings\n );\n }\n this.searchPanelMoChanged(false);\n }\n getSearchPanelMo(): MetaobjectDataModel {\n return this.searchPanelUi.Mo;\n }\n getSearchPanelFieldsSetting(): Array<Partial<GeneralControlInfoModel>> {\n const searchPanelUi = this.searchPanelUi;\n const fields: Array<GeneralControlInfoModel> = searchPanelUi.Setting.View.ControlInfo.filter(\n (c) => c.ControlName !== '$Search' && c.ControlName !== 'جستجو'\n );\n const fieldsSetting = fields.map((c) => ({\n Name: c.ControlName,\n Caption: c.ControlFieldCaptionTranslated,\n Hidden: searchPanelUi._dictFieldUi[c.ControlName].Setting.IsVisible === false ? true : false,\n IsMandatory: c.IsMandatory\n }));\n return fieldsSetting;\n }\n setAndApplySearchPanelSettingFieldsSetting(fieldsSetting: ColumnInfoType[]): void {\n const searchPanelUi = this.searchPanelUi;\n fieldsSetting.forEach((c) => {\n const field = searchPanelUi._dictFieldUi[c.Name];\n if (field) {\n searchPanelUi.fireEvent('ChangeFieldVisible', field.Setting.ControlFieldCaption, !c.Hidden);\n }\n });\n }\n updateSearchPanelSettings(allSearchPanelSettings: SearchPanelSettings[]): void {\n allSearchPanelSettings = allSearchPanelSettings.filter((c) => !c.IsPrimary && !c.IsDeleted);\n this._allSearchPanelSettingsSource.next(allSearchPanelSettings);\n }\n\n removeSearchPanelSettings(searchPanelSettingsId: string): void {\n const allSearchPanelSettings = this._allSearchPanelSettingsSource.getValue();\n allSearchPanelSettings.filter((c) => c.Id !== searchPanelSettingsId);\n this._allSearchPanelSettingsSource.next(allSearchPanelSettings);\n }\n\n changeSelectedSearchPanel(selectedSearchPanelSettingsId: string): void {\n this._selectedSearchPanelSettingsIdSource.next(selectedSearchPanelSettingsId);\n }\n\n loadMetaConditionsControlInfos(typeDefId: string, fieldDbNames: string[]): Observable<GeneralControlInfoModel[]> {\n const mo = GetDefaultMoObjectInfo(typeDefId);\n return of(this._controlInfosMetaobject).pipe(\n switchMap((controlsInfo) => {\n if (controlsInfo.length > 0) {\n return of(controlsInfo);\n }\n return getControlList(mo, fieldDbNames, true, false);\n }),\n tap((controlsInfo: GeneralControlInfoModel[]) => (this._controlInfosMetaobject = controlsInfo))\n );\n }\n protected _createWorkflowShareButtons(e: ShareButtonsChoiceDef): string[] {\n let shareButtons: string[] = [];\n if (e.add) {\n this._workflowShareButtons.push(e);\n } else {\n this._workflowShareButtons = this._workflowShareButtons.filter((c) => c.mo.Id !== e.mo.Id);\n }\n if (!this._workflowShareButtons.length) {\n return [];\n }\n if (this._workflowShareButtons.length > 0) {\n shareButtons = this._workflowShareButtons[0].choiceList.map((d) => d.Title);\n const unShareButtons: string[] = [];\n for (let i = 1; i < this._workflowShareButtons.length; i++) {\n const item = this._workflowShareButtons[i];\n for (let j = 0; j < shareButtons.length; j++) {\n if (item.choiceList.map((d) => d.Title).indexOf(shareButtons[j]) < 0) {\n unShareButtons.push(shareButtons[j]);\n }\n }\n }\n shareButtons = shareButtons.filter((c) => unShareButtons.indexOf(c) === -1);\n console.log(shareButtons);\n }\n return shareButtons;\n }\n protected _initCreateNewInlineMo(context): void {\n if (!context) {\n return;\n }\n const formSetting = context.Setting.FormTemplate;\n if (formSetting) {\n this.createNewInlineMo(false);\n }\n }\n\n protected _isComposite(context): boolean {\n const relationType = BarsaApi.Common.Util.TryGetValue(context.Setting, 'Extra.Relation.RelationType');\n return relationType === BarsaApi.Common.Enums.RelationType.Composition;\n }\n protected _addEventListener(context: any): void {\n context.on({\n MaskChanged: this._maskChanged.bind(this),\n ViewerMaskChanged: this._viewerMaskChanged.bind(this),\n ViewerControlChanged: this._viewerControlChanged.bind(this),\n VisibleChanged: this._visibleChanged.bind(this),\n ReadonlyChanged: this._readonlyChanged.bind(this),\n MenuItemsChanged: this._menuItemsChanged.bind(this),\n TitleChanged: this._titleChanged.bind(this),\n FormPanelControlShowWindow: this._formPanelControlShowWindowChanged.bind(this),\n SearchPanelChanged: this._searchPanelChanged.bind(this),\n PagingSettingChanged: this._pagingSettingChanged.bind(this),\n ToolbarButtonsChanged: this._toolbarButtonsChanged.bind(this),\n EnableChanged: this._enableChanged.bind(this),\n Destroy: this._destroyChanged.bind(this),\n ExitInlineEdit: this._existInlineEdit.bind(this)\n });\n }\n\n protected _initialize(context: any): void {\n this._initCartablesFormTemplate(context);\n this._initConditionalFormats(context);\n this._initAllowInlineEdit(context);\n this._initOnlyInlineEdit(context);\n this._initInlineEditMode(context);\n this._initReport(context);\n this._initViewerControl(context);\n this._initHideToolbar(context);\n this._initToolbarButtons(context);\n this._initVisible(context);\n this._initEnable(context);\n this._initTitle(context);\n this._initReadonly(context);\n this._initMoDataList(context);\n this._initPagingSetting(context);\n this._initMenuItems(context);\n this._initSearchpanel(context);\n this._initCreateNewInlineMo(context);\n }\n protected _initCartablesFormTemplate(context): void {\n const cartableTemplates = context.Setting.CartableTemplates;\n if (cartableTemplates) {\n const keys = Object.keys(cartableTemplates);\n keys.forEach((key) => {\n if (typeof cartableTemplates[key] === 'string') {\n cartableTemplates[key] = BarsaApi.Ext.decode(cartableTemplates[key]);\n }\n });\n this._cartableTemplates$.next(cartableTemplates);\n }\n this._cartableChildsMo(context);\n }\n protected _initSearchpanel(context): void {\n if (context && context._searchPanelControl) {\n this._searchPanelChanged(context._searchPanelControl);\n }\n }\n\n protected _initConditionalFormats(context): void {\n if (context && context.Setting.View?.ConditionalFormats) {\n this._conditionalFormatsChanged(context.Setting.View?.ConditionalFormats);\n }\n }\n\n protected _initMenuItems(context): void {\n if (context && context.menuItems) {\n // const newItems = context.menuItems;\n const newItems = context.menuItems.filter(\n (c) => c.itemId !== 'Delete' && c.itemId !== 'AddToList' && c.itemId !== 'RemoveFromList'\n );\n this._menuItemsChanged(newItems);\n }\n }\n\n protected _initReport(context): void {\n const report = BarsaApi.Common.Util.TryGetValue(context, 'Setting.Extra.Report', []);\n this._reportSource.next(report);\n }\n\n protected _initMoDataList(context): void {\n const moDataList = BarsaApi.Common.Util.TryGetValue(context, 'Setting.Data.MoDataList', []);\n this._moDataListChanged(moDataList);\n }\n protected _cartableChildsMo(context): void {\n if (context.Setting.CartableChildsMo) {\n this._cartableChildsMo$.next(context.Setting.CartableChildsMo);\n }\n }\n\n protected _initPagingSetting(context): void {\n const pagingSetting = BarsaApi.Common.Util.TryGetValue(context, 'Setting.Data.Paging', null);\n this._pagingSettingChanged(pagingSetting);\n }\n\n protected _initTitle(context): void {\n let title = BarsaApi.Common.Util.TryGetValue(context, 'title', null);\n if (title === null) {\n title = BarsaApi.Common.Util.TryGetValue(context, 'Setting.Extra.Report.Caption', '');\n }\n this._titleChanged({ text: title, image: '' });\n }\n\n protected _initReadonly(context): void {\n const readonly = context.readonly === true ? true : false;\n this._readonlyChanged(readonly);\n }\n\n protected _initEnable(context): void {\n const enable = context.enable === false ? false : true;\n this._enableChanged(enable);\n }\n\n protected _initVisible(context): void {\n const visible = context.Setting.IsVisible === false ? false : true;\n this._visibleChanged(visible);\n }\n\n protected _initToolbarButtons(context): void {\n const buttons = context.tlbButtons;\n if (Array.isArray(buttons)) {\n this._toolbarButtonsChanged(buttons);\n }\n }\n\n protected _initInlineEditMode(context): void {\n const inlineEditMode: boolean = context.Setting?.View?.AutoInlineEdit;\n this._inlineEditModeSource.next(inlineEditMode);\n }\n\n protected _initAllowInlineEdit(context): void {\n const allowInlineEdit: boolean = context.Setting?.View?.AllowInlineEdit;\n const allowEdit = context.Setting.Extra?.DefaultCommandsAccess?.Edit;\n this._allowInlineEditSource.next(allowInlineEdit && allowEdit);\n }\n\n protected _initOnlyInlineEdit(context): void {\n const onlyInlineEdit: boolean = context.Setting?.View?.OnlyInlineEdit;\n this._onlyInlineEditSource.next(onlyInlineEdit);\n }\n\n protected _initViewerControl(context): void {\n const viewerControl = context.viewerControl;\n if (viewerControl) {\n this._viewerControlChanged(viewerControl);\n }\n }\n\n protected _initHideToolbar(context): void {\n const hideToolbar = BarsaApi.Common.Util.TryGetValue(context, 'Setting.Extra.Report.HideToolbar', false);\n this._hideToolbarSource.next(hideToolbar);\n }\n\n protected _unscubscribeContext(): void {\n this.context.un('MaskChanged', this._maskChanged);\n this.context.un('ViewerControlChanged', this._viewerControlChanged);\n this.context.un('ViewerMaskChanged', this._viewerMaskChanged);\n this.context.un('VisibleChanged', this._visibleChanged);\n this.context.un('ReadonlyChanged', this._readonlyChanged);\n this.context.un('MenuItemsChanged', this._menuItemsChanged);\n this.context.un('TitleChanged', this._titleChanged);\n this.context.un('FormPanelControlShowWindow', this._formPanelControlShowWindowChanged);\n this.context.un('PagingSettingChanged', this._pagingSettingChanged);\n this.context.un('ToolbarButtonsChanged', this._toolbarButtonsChanged);\n this.context.un('EnableChanged', this._enableChanged);\n this.context.un('Destroy', this._destroyChanged);\n this.context.un('ExitInlineEdit', this._existInlineEdit);\n }\n protected _conditionalFormatsChanged(conditionalFormats: any): void {\n this._conditionalFormatsSource.next(conditionalFormats);\n }\n protected _moDataListChanged(moDataList): void {\n this.moDataListSource.next(moDataList);\n if (this.context) {\n this._cartableChildsMo(this.context);\n this._initCartablesFormTemplate(this.context);\n this._checkCartableWorkflowShareButtons(moDataList);\n }\n }\n protected _checkCartableWorkflowShareButtons(moDataList: MetaobjectDataModel[]): void {\n const hasSelected = moDataList.some((c) => c.$IsChecked);\n if (!hasSelected) {\n this._toolbarButtonsWorkflowButtons.next([]);\n }\n }\n\n protected _viewerControlChanged(viewerControl): void {\n this._viewerControlSource.next(viewerControl);\n this._initConditionalFormats(this.context);\n this._initInlineEditMode(this.context);\n this._initAllowInlineEdit(this.context);\n this._initOnlyInlineEdit(this.context);\n }\n\n protected _maskChanged(mask: boolean): void {\n this._maskSource.next(mask);\n }\n\n protected _viewerMaskChanged(viewerMask: boolean): void {\n this._viewerMaskSource.next(viewerMask);\n }\n\n protected _readonlyChanged(readonly: boolean): void {\n this._readonlySource.next(readonly);\n }\n\n protected _visibleChanged(viewerMask: boolean): void {\n this._visibleSource.next(viewerMask);\n }\n\n protected _menuItemsChanged(menuItems: any[]): void {\n this._menuItemsSource.next(menuItems);\n }\n\n protected _titleChanged(titleObj: { text: string; image: string }): void {\n this._titleSource.next(titleObj);\n }\n\n protected _formPanelControlShowWindowChanged(formpanelObj: { formpanelControl: any; hasParentMo: any }): void {\n this._formPanelControlShowWindowSource.next(formpanelObj);\n }\n\n protected _searchPanelChanged(searchPanel: any): void {\n this._searchPanelUiSource.next(searchPanel);\n }\n\n protected _pagingSettingChanged(pageingSetting: any): void {\n this._pagingSettingSource.next(pageingSetting);\n }\n\n protected _toolbarButtonsChanged(buttons: any[]): void {\n this._toolbarButtonsSource.next(buttons);\n }\n\n protected _enableChanged(enable: boolean): void {\n this._enableSource.next(enable);\n }\n\n protected _destroyChanged(): void {\n this._destroySource.next();\n }\n protected _existInlineEdit(): void {\n this._inlineEditModeSource.next(false);\n }\n\n protected _addDefaultSearchPanelSettings(searchPanel: any): void {\n const searchMo = JSON.stringify(searchPanel?.Mo ?? new MetaobjectDataModel());\n const StandardText = this._bbbPipe.transform('Standard');\n const standardSettings = {\n Id: '',\n $Caption: StandardText,\n IsStandard: true,\n IsDefault: true,\n IsPublic: true,\n IsPrimary: true,\n ApplyAutomatically: true,\n HideSearchPanel: false,\n Title: StandardText,\n SearchMo: searchMo,\n ReportId: ''\n };\n this._defaultSearchPanelSettingsSource.next(standardSettings);\n }\n\n protected _loadSearchPanelSettings(reportId): void {\n BarsaApi.Bw.RunBlMethodAsync({\n Parameters: [reportId],\n Method: 'LoadAllUserSearchPanelSettings',\n SuccessFn: (allSearchPanelSettings) => {\n if (Array.isArray(allSearchPanelSettings)) {\n allSearchPanelSettings = BarsaApi.Bw._unwrap(allSearchPanelSettings);\n this._allSearchPanelSettingsSource.next(allSearchPanelSettings);\n const defaultSearch = allSearchPanelSettings.find((c) => c.IsDefault);\n if (defaultSearch) {\n this._selectedSearchPanelSettingsIdSource.next(defaultSearch.Id);\n }\n }\n },\n FailFn: () => {}\n });\n }\n protected resetSearchPanelSettings(searchPanelUi): void {\n this.clearSearch();\n const fieldUi = searchPanelUi._dictFieldUi;\n const changed = searchPanelUi.Mo.GetChangedObject();\n Object.keys(changed).forEach((c) => {\n const field = searchPanelUi._dictFieldUi[c];\n if (field) {\n field.SetValue(null);\n searchPanelUi.Mo.SetFValue(c, null);\n }\n searchPanelUi.Mo.SetState('New');\n });\n Object.keys(fieldUi).forEach((c) => {\n if (c !== '$Search' && fieldUi[c].LayoutControl) {\n searchPanelUi.fireEvent('ChangeFieldVisible', fieldUi[c].Setting.ControlFieldCaption, true);\n }\n });\n }\n protected _loadCartableTemplate(keyOfCartableTemplates: Set<string>): void {\n let cartableTemplates = this._cartableTemplates$.getValue();\n if (!cartableTemplates) {\n return;\n }\n const keys: CartableTemplateKey[] = [];\n\n keyOfCartableTemplates.forEach((key) => {\n const values = key.split(this._cartableKeySeperator);\n if (!cartableTemplates[key]) {\n keys.push({ TypeDefId: values[0], SettingsId: values[1] });\n }\n });\n if (keys.length === 0) {\n return;\n }\n this._apiService.GetCartableTemplate(keys).subscribe((c) => {\n if (!c) {\n return;\n }\n const templates: { [key: string]: FormSetting } = {};\n Object.keys(c).forEach((cId) => {\n templates[cId] = BarsaApi.Ext.decode(c[cId]);\n });\n cartableTemplates = { ...cartableTemplates, ...templates };\n this._cartableTemplates$.next(cartableTemplates);\n });\n }\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient, HttpErrorResponse, HttpEventType } from '@angular/common/http';\n\nimport { Subject, Observable, throwError, from } from 'rxjs';\nimport { catchError, finalize, map, takeUntil } from 'rxjs/operators';\nimport { BarsaApi, IUploadingState } from '../abstract-classes';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class UploadService {\n private _uploadingStateSource = new Subject<IUploadingState>();\n uploadingState$ = this._uploadingStateSource.asObservable();\n cancelation$ = new Subject<void>();\n uploadURL = `/Fields/File/Base/FileUploadFormMulti.ashx`;\n constructor(private httpClient: HttpClient) {}\n\n public upload(data: FormData, fdId: string, key: string = ''): Observable<any> {\n let state: IUploadingState = {\n key,\n progress: 0,\n state: 'Start',\n uploading: false\n };\n this._setUploadingStatus(state);\n return this.httpClient\n .post<any>(this.uploadURL, data, {\n reportProgress: true,\n observe: 'events',\n headers: { fdId }\n })\n .pipe(\n map((event) => {\n switch (event.type) {\n case HttpEventType.UploadProgress: {\n const total = event.total || 0;\n const progress = Math.round((100 * event.loaded) / total);\n return { status: 'progress', message: progress };\n }\n case HttpEventType.Response:\n return event.body;\n default:\n return `Unhandled event: ${event.type}`;\n }\n }),\n map((res) => {\n if (Array.isArray(res)) {\n state = this._setUploadingStatus({ ...state, state: 'Complete', uploading: false });\n } else if (res !== null && typeof res === 'object') {\n if (res.status === 'error') {\n state = this._setUploadingStatus({ ...state, state: 'Error', uploading: false });\n } else if (res.status === 'progress') {\n state = this._setUploadingStatus({\n ...state,\n state: 'Uploading',\n uploading: true,\n progress: res.message\n });\n }\n }\n return res;\n }),\n takeUntil(this.cancelation$.asObservable()),\n catchError((err) => {\n if (err instanceof HttpErrorResponse) {\n BarsaApi.Bw.Toast.Error(`${err.status} : ${err.message}`);\n }\n\n return throwError(() => new Error(err));\n }),\n finalize(() => {\n state = this._setUploadingStatus({\n ...state,\n uploading: false\n });\n })\n );\n }\n\n public compressFiles$(files: File[]): Observable<FormData> {\n return from(this.compressFiles(files));\n }\n private _setUploadingStatus(state: IUploadingState): IUploadingState {\n if (state.state === 'Start') {\n state.uploading = true;\n }\n this._uploadingStateSource.next(state);\n return state;\n }\n private compressFiles(files: File[]): Promise<FormData> {\n const formData = new FormData();\n return new Promise((resolve, reject) => {\n files.forEach((file, index) => {\n const file2 = file; // get the file\n const blobURL = URL.createObjectURL(file2);\n const img = new Image();\n img.src = blobURL;\n const biggerThan1MB = file.size / 1024 > 1000;\n console.log(`file size ${biggerThan1MB}`);\n const mimeTypeJpg = 'image/jpeg';\n const MAX_WIDTH = 1920;\n const MAX_HEIGHT = 1080;\n const MIME_TYPE = biggerThan1MB ? mimeTypeJpg : file.type;\n const QUALITY = biggerThan1MB && file.type === mimeTypeJpg ? 0.5 : 1;\n if (MIME_TYPE === file.type && QUALITY === 1) {\n formData.append('file', file, file.name);\n if (index === files.length - 1) {\n resolve(formData);\n }\n }\n img.onerror = function (): void {\n URL.revokeObjectURL(img.src);\n // Handle the failure properly\n console.log('Cannot load image');\n reject(new Error('Cannot load image'));\n };\n img.onload = function (): void {\n URL.revokeObjectURL(img.src);\n const [newWidth, newHeight] = calculateSize(img, MAX_WIDTH, MAX_HEIGHT);\n const canvas = document.createElement('canvas');\n canvas.width = newWidth;\n canvas.height = newHeight;\n const ctx = canvas.getContext('2d');\n ctx?.drawImage(img, 0, 0, newWidth, newHeight);\n canvas.toBlob(\n (blob) => {\n // Handle the compressed image. es. upload or save in local state\n if (blob) {\n // formData.append(\n // 'unicFileName',\n // 'x' + BarsaApi.Common.Util.GetNewMetaGuid() + ';;;' + file.name\n // );\n formData.append('file', blob, file.name);\n }\n if (index === files.length - 1) {\n resolve(formData);\n }\n },\n MIME_TYPE,\n QUALITY\n );\n };\n function calculateSize(img1, maxWidth, maxHeight): number[] {\n let width = img1.width;\n let height = img1.height;\n\n // calculate the width and height, constraining the proportions\n if (width > height) {\n if (width > maxWidth) {\n height = Math.round((height * maxWidth) / width);\n width = maxWidth;\n }\n } else {\n if (height > maxHeight) {\n width = Math.round((width * maxHeight) / height);\n height = maxHeight;\n }\n }\n return [width, height];\n }\n });\n });\n }\n}\n","import { Injectable } from '@angular/core';\r\n\r\nimport { fromEvent, merge, Observable, of } from 'rxjs';\r\nimport { map } from 'rxjs/operators';\r\n\r\n@Injectable()\r\nexport class NetworkStatusService {\r\n get networkStatus$(): Observable<boolean> {\r\n return merge(of(null), fromEvent(window, 'online'), fromEvent(window, 'offline')).pipe(\r\n map(() => navigator.onLine)\r\n );\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport RecordRTC from 'recordrtc';\r\nimport moment from 'moment';\r\nimport { Observable, Subject } from 'rxjs';\r\n\r\ninterface RecordedAudioOutput {\r\n blob: Blob;\r\n title: string;\r\n}\r\n\r\n@Injectable()\r\nexport class AudioRecordingService {\r\n private stream;\r\n private recorder;\r\n private interval;\r\n private startTime;\r\n private _recorded = new Subject<RecordedAudioOutput>();\r\n private _recordingTime = new Subject<string>();\r\n private _recordingFailed = new Subject<string>();\r\n\r\n getRecordedBlob(): Observable<RecordedAudioOutput> {\r\n return this._recorded.asObservable();\r\n }\r\n\r\n getRecordedTime(): Observable<string> {\r\n return this._recordingTime.asObservable();\r\n }\r\n\r\n recordingFailed(): Observable<string> {\r\n return this._recordingFailed.asObservable();\r\n }\r\n\r\n startRecording(): void {\r\n if (this.recorder) {\r\n // It means recording is already started or it is already recording something\r\n return;\r\n }\r\n\r\n this._recordingTime.next('00:00');\r\n navigator.mediaDevices\r\n .getUserMedia({ audio: true })\r\n .then((s) => {\r\n this.stream = s;\r\n this.record();\r\n })\r\n .catch((_) => {\r\n this._recordingFailed.next('');\r\n });\r\n }\r\n\r\n abortRecording(): void {\r\n this.stopMedia();\r\n }\r\n\r\n private record(): void {\r\n this.recorder = new RecordRTC.StereoAudioRecorder(this.stream, {\r\n type: 'audio',\r\n mimeType: 'audio/mp3'\r\n });\r\n\r\n this.recorder.record();\r\n this.startTime = moment();\r\n this.interval = setInterval(() => {\r\n const currentTime = moment();\r\n const diffTime = moment.duration(currentTime.diff(this.startTime));\r\n const time = this.toString(diffTime.minutes()) + ':' + this.toString(diffTime.seconds());\r\n this._recordingTime.next(time);\r\n }, 500);\r\n }\r\n\r\n private toString(value): string {\r\n let val = value;\r\n if (!value) {\r\n val = '00';\r\n }\r\n if (value < 10) {\r\n val = '0' + value;\r\n }\r\n return val;\r\n }\r\n\r\n stopRecording(): void {\r\n if (this.recorder) {\r\n this.recorder.stop(\r\n (blob) => {\r\n if (this.startTime) {\r\n const mp3Name = encodeURIComponent('audio_' + new Date().getTime() + '.mp3');\r\n this.stopMedia();\r\n this._recorded.next({ blob, title: mp3Name });\r\n }\r\n },\r\n () => {\r\n this.stopMedia();\r\n this._recordingFailed.next('');\r\n }\r\n );\r\n }\r\n }\r\n\r\n private stopMedia(): void {\r\n if (this.recorder) {\r\n this.recorder = null;\r\n clearInterval(this.interval);\r\n this.startTime = null;\r\n if (this.stream) {\r\n this.stream.getAudioTracks().forEach((track) => track.stop());\r\n this.stream = null;\r\n }\r\n }\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport RecordRTC from 'recordrtc';\r\nimport moment from 'moment';\r\nimport { Observable, Subject } from 'rxjs';\r\n\r\ninterface RecordedVideoOutput {\r\n blob: Blob;\r\n url: string;\r\n title: string;\r\n}\r\n\r\n@Injectable()\r\nexport class VideoRecordingService {\r\n private stream;\r\n private recorder;\r\n private interval;\r\n private startTime;\r\n private _stream = new Subject<MediaStream>();\r\n private _recorded = new Subject<RecordedVideoOutput>();\r\n private _recordedUrl = new Subject<string>();\r\n private _recordingTime = new Subject<string>();\r\n private _recordingFailed = new Subject<string>();\r\n\r\n getRecordedUrl(): Observable<string> {\r\n return this._recordedUrl.asObservable();\r\n }\r\n\r\n getRecordedBlob(): Observable<RecordedVideoOutput> {\r\n return this._recorded.asObservable();\r\n }\r\n\r\n getRecordedTime(): Observable<string> {\r\n return this._recordingTime.asObservable();\r\n }\r\n\r\n recordingFailed(): Observable<string> {\r\n return this._recordingFailed.asObservable();\r\n }\r\n\r\n getStream(): Observable<MediaStream> {\r\n return this._stream.asObservable();\r\n }\r\n\r\n startRecording(conf: any): Promise<any> {\r\n const browser = <any>navigator;\r\n if (this.recorder) {\r\n // It means recording is already started or it is already recording something\r\n return Promise.resolve(this.stream);\r\n }\r\n\r\n this._recordingTime.next('00:00');\r\n return new Promise((resolve, reject) => {\r\n browser.mediaDevices\r\n .getUserMedia(conf)\r\n .then((stream) => {\r\n this.stream = stream;\r\n this.record();\r\n resolve(this.stream);\r\n })\r\n .catch((error) => {\r\n this._recordingFailed.next('');\r\n reject(error);\r\n });\r\n });\r\n }\r\n\r\n abortRecording(): void {\r\n this.stopMedia();\r\n }\r\n stopRecording(): void {\r\n if (this.recorder) {\r\n this.recorder.stopRecording(this.processVideo.bind(this));\r\n // this.processVideo.bind(this.recorder)\r\n // this.processVideo(this.recorder);\r\n // this.stopMedia();\r\n }\r\n }\r\n\r\n private record(): void {\r\n this.recorder = new RecordRTC(this.stream, {\r\n type: 'video',\r\n mimeType: 'video/webm',\r\n bitsPerSecond: 44000\r\n });\r\n this.recorder.startRecording();\r\n this.startTime = moment();\r\n this.interval = setInterval(() => {\r\n const currentTime = moment();\r\n const diffTime = moment.duration(currentTime.diff(this.startTime));\r\n const time = this.toString(diffTime.minutes()) + ':' + this.toString(diffTime.seconds());\r\n this._recordingTime.next(time);\r\n this._stream.next(this.stream);\r\n }, 500);\r\n }\r\n\r\n private toString(value): string {\r\n let val = value;\r\n if (!value) {\r\n val = '00';\r\n }\r\n if (value < 10) {\r\n val = '0' + value;\r\n }\r\n return val;\r\n }\r\n\r\n private processVideo(audioVideoWebMURL): void {\r\n // console.log(audioVideoWebMURL);\r\n const recordedBlob = this.recorder.getBlob();\r\n this.recorder.getDataURL(function (_) {});\r\n const recordedName = encodeURIComponent('video_' + new Date().getTime() + '.webm');\r\n this._recorded.next({ blob: recordedBlob, url: audioVideoWebMURL, title: recordedName });\r\n this.stopMedia();\r\n // this.recorder.save(recordedName);\r\n }\r\n\r\n private stopMedia(): void {\r\n if (this.recorder) {\r\n this.recorder = null;\r\n clearInterval(this.interval);\r\n this.startTime = null;\r\n if (this.stream) {\r\n this.stream.getAudioTracks().forEach((track) => track.stop());\r\n this.stream.getVideoTracks().forEach((track) => track.stop());\r\n this.stream.stop();\r\n this.stream = null;\r\n }\r\n }\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\n\n@Injectable()\nexport class LocalStorageService {\n localstorage = false;\n constructor() {}\n setItem(key: string, value: string): void {\n let valueOfKey = '';\n if (typeof value === 'object' || Array.isArray(value)) {\n valueOfKey = JSON.stringify(value);\n } else {\n valueOfKey = value;\n }\n localStorage.setItem(key, valueOfKey);\n }\n getItem(key: string): string | null {\n return localStorage.getItem(key);\n }\n remove(key: string): void {\n localStorage.removeItem(key);\n }\n clear(): void {\n localStorage.clear();\n }\n}\n","import { Injectable } from '@angular/core';\n\n@Injectable()\nexport class IndexedDbService {\n _db: IDBDatabase | null = null;\n constructor() {}\n open(dbName: string, version: number): void {\n const DBOpenRequest = window.indexedDB.open(dbName, version);\n // Register two event handlers to act on the database being opened successfully, or not\n DBOpenRequest.onerror = (event) => {\n // TODO: Handle error\n };\n\n DBOpenRequest.onsuccess = (event) => {\n // TODO: Handle success\n this._db = DBOpenRequest.result;\n };\n // This event handles the event whereby a new version of the database needs to be created\n // Either one has not been created before, or a new version number has been submitted via the\n // window.indexedDB.open line above\n // it is only implemented in recent browsers\n DBOpenRequest.onupgradeneeded = (event) => {\n // TODO: Handle upgradeneeded\n };\n }\n delete(dbName): void {\n window.indexedDB.deleteDatabase(dbName);\n }\n}\n","import { Injectable } from '@angular/core';\r\nimport { LocalStorageService } from './local-storage.service';\r\nimport { IndexedDbService } from './indexeddb.service';\r\nimport { BarsaApi } from '../abstract-classes/barsa-api';\r\nimport { LogService } from './log.service';\r\n@Injectable()\r\nexport class BarsaStorageService {\r\n STARTUP_DATA_KEY = 'STARTUP_DATA';\r\n DBNAME_KEY = 'BARSA_DB';\r\n DBNAME_VERSION_KEY = `${this.DBNAME_KEY}_VERSION`;\r\n BAZAVARI_VERSION_KEY = `BAZAVARI_VERSION`;\r\n constructor(\r\n private _logService: LogService,\r\n private _localStorageService: LocalStorageService,\r\n private _indexedDbService: IndexedDbService\r\n ) {}\r\n protected get currentBazavariVersion(): string {\r\n return BarsaApi.LoginFormData.ChangeKeyVersion;\r\n }\r\n interceptXhr(): void {\r\n const origOpen = XMLHttpRequest.prototype.open;\r\n const logService = this._logService;\r\n // const isAnonymous = BarsaApi.LoginFormData.IsAnonymous;\r\n // const startupData = JSON.stringify(BarsaApi.LoginFormData);\r\n // localStorage.setItem(this.STARTUP_DATA_KEY, startupData);\r\n // const me = this;\r\n return;\r\n XMLHttpRequest.prototype.open = function (\r\n method: string,\r\n url: string | URL,\r\n async?: boolean,\r\n username?: string | null,\r\n password?: string | null\r\n ) {\r\n // console.log('request started!');\r\n // if(isAnonymous){\r\n // var responseText=me._indexedDbService.get(url);\r\n // if(responseText){\r\n\r\n // }\r\n // return;\r\n // }\r\n this.addEventListener('load', function () {\r\n // console.log('request completed!');\r\n // console.log(this.readyState); // will always be 4 (ajax is completed successfully)\r\n // console.log(this.responseText); // whatever the response was\r\n if (this.status === 401 && BarsaApi.LoginFormData.succeed !== false) {\r\n logService.info(`unauthorized ${this.status}`);\r\n // console.log('clear localstorage');\r\n // localStorage.clear();\r\n }\r\n });\r\n origOpen.call(this, method, url, async === false ? false : true, username, password);\r\n };\r\n }\r\n init(): void {\r\n this.interceptXhr();\r\n const localStorage = this._localStorageService;\r\n\r\n // we set runtime structure version in localstorage\r\n // in indexdb service we can read current version and cached version and\r\n // if they are different we need to to add version to indexdb database\r\n const db_version = localStorage.getItem(this.DBNAME_VERSION_KEY);\r\n const bazavari_version = localStorage.getItem(this.BAZAVARI_VERSION_KEY);\r\n let dbVer = 0;\r\n dbVer = Number.parseInt(db_version ?? '0', 10);\r\n if (isNaN(dbVer) || !db_version) {\r\n this.deleteDatabase();\r\n }\r\n if (bazavari_version !== this.currentBazavariVersion) {\r\n dbVer++;\r\n }\r\n localStorage.setItem(this.DBNAME_VERSION_KEY, dbVer.toString());\r\n localStorage.setItem(this.BAZAVARI_VERSION_KEY, this.currentBazavariVersion);\r\n this.openDatabase(dbVer);\r\n }\r\n deleteDatabase(): void {\r\n this._indexedDbService.delete(this.DBNAME_KEY);\r\n }\r\n openDatabase(version: number): void {\r\n this._indexedDbService.open(this.DBNAME_KEY, version);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { SwUpdate, VersionReadyEvent } from '@angular/service-worker';\r\nimport { filter, interval } from 'rxjs';\r\nimport { BarsaApi } from '../abstract-classes';\r\nimport { LogService } from './log.service';\r\n\r\n@Injectable()\r\nexport class PromptUpdateService {\r\n constructor(private _logService: LogService, private swUpdate: SwUpdate) {\r\n _logService.info(`sw enable ${swUpdate.isEnabled}`);\r\n if (swUpdate.isEnabled) {\r\n swUpdate.checkForUpdate();\r\n\r\n _logService.info('sw check for update');\r\n\r\n swUpdate.unrecoverable.subscribe((event) => {\r\n // TODO: handle unrecoverable\r\n alert(\r\n 'An error occurred that we cannot recover from:\\n' + event.reason + '\\n\\nPlease reload the page.'\r\n );\r\n document.location.reload();\r\n });\r\n interval(1e3 * 60 * 60).subscribe(() => swUpdate.checkForUpdate());\r\n }\r\n }\r\n checkForUpdate(): void {\r\n this.swUpdate.versionUpdates\r\n .pipe(filter((evt): evt is VersionReadyEvent => evt.type === 'VERSION_READY'))\r\n .subscribe((evt) => {\r\n this._logService.info('sw new version found.');\r\n\r\n this.promptUser(() => {\r\n // Reload the page to update to the latest version.\r\n document.location.reload();\r\n });\r\n });\r\n }\r\n promptUser(callback): void {\r\n BarsaApi.Bw.Msg.YesNo(BarsaApi.BBB.NewVersionFound, BarsaApi.BBB.UpdateApplication, function (buttonId) {\r\n if (buttonId === 'yes') {\r\n return callback();\r\n }\r\n });\r\n }\r\n showError(callback): void {\r\n BarsaApi.Bw.Msg.Error(BarsaApi.BBB.Error, BarsaApi.BBB.NeedReload, function (buttonId) {\r\n if (buttonId === 'yes') {\r\n return callback();\r\n }\r\n });\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { SwPush } from '@angular/service-worker';\r\nimport { tap } from 'rxjs';\r\nimport { BarsaApi, ExNotificationPayload, NotificationItem } from '../abstract-classes';\r\nimport { LogService } from './log.service';\r\nimport { PortalService } from './portal.service';\r\n\r\n@Injectable()\r\nexport class ServiceWorkerNotificationService {\r\n _notifications: NotificationItem[] = [];\r\n constructor(private _logService: LogService, private _swPush: SwPush, private _portalService: PortalService) {\r\n _logService.info(`swPush enable ${_swPush.isEnabled}`);\r\n _swPush.notificationClicks.pipe(tap((c) => console.log(c))).subscribe((e) => {\r\n if (!e.notification.tag) {\r\n return;\r\n }\r\n this.closeNotifications([e.notification.tag]);\r\n\r\n const actionTitle = e.action;\r\n if (actionTitle === '') {\r\n return;\r\n }\r\n if (!BarsaApi.LoginFormData.IsUserLoggedIn) {\r\n return;\r\n }\r\n this._portalService.ExecuteNotificationAction(e.notification.tag, actionTitle);\r\n\r\n // TODO:exeucte action\r\n // not handled!!\r\n });\r\n }\r\n public get isEnabled(): boolean {\r\n return this._swPush.isEnabled;\r\n }\r\n private async getSw(): Promise<ServiceWorkerRegistration | undefined> {\r\n return await navigator.serviceWorker.getRegistration('ngsw-worker.js');\r\n }\r\n public async showNotification(payload: ExNotificationPayload): Promise<void> {\r\n const sw = await this.getSw();\r\n const { isRtl, lang, notificationItem }: { isRtl: boolean; lang: string; notificationItem: NotificationItem } =\r\n payload;\r\n const tag = notificationItem.Tag;\r\n const dir = isRtl ? 'rtl' : 'ltr';\r\n const actions = !notificationItem.UiActions\r\n ? []\r\n : notificationItem.UiActions.map((action) => ({\r\n title: action.Title,\r\n icon: action.Icon,\r\n action: action.Title\r\n }));\r\n const data = {\r\n onActionClick: {\r\n default: { operation: 'openWindow' }\r\n }\r\n };\r\n actions.forEach((action) => {\r\n data.onActionClick[action.title] = {\r\n operation: 'focusLastFocusedOrOpen',\r\n url: `#/login?notificationTag=${tag}&action=${action.title}`\r\n };\r\n });\r\n this._notifications.push(notificationItem);\r\n sw?.showNotification(notificationItem.Title, {\r\n dir,\r\n tag,\r\n body: notificationItem.Content,\r\n image: notificationItem.Image,\r\n icon: notificationItem.Icon,\r\n lang,\r\n actions,\r\n data\r\n });\r\n }\r\n private _isSupported(): boolean {\r\n if (!('serviceWorker' in navigator)) {\r\n // Service Worker isn't supported on this browser, disable or hide UI.\r\n return false;\r\n }\r\n\r\n if (!('PushManager' in window)) {\r\n // Push isn't supported on this browser, disable or hide UI.\r\n return false;\r\n }\r\n\r\n return true;\r\n }\r\n private _isActionsSupported(): boolean {\r\n return 'actions' in Notification.prototype;\r\n }\r\n private _isIconSupported(): boolean {\r\n return 'icon' in Notification.prototype;\r\n }\r\n private isBadgeSupported(): boolean {\r\n return 'badge' in Notification.prototype;\r\n }\r\n private _isDirSupported(): boolean {\r\n return 'dir' in Notification.prototype;\r\n }\r\n private isImageSupported(): boolean {\r\n return 'image' in Notification.prototype;\r\n }\r\n\r\n private isTitleBodySupported(): boolean {\r\n return 'title' in Notification.prototype && 'body' in Notification.prototype;\r\n }\r\n private isVibrateSupported(): boolean {\r\n return 'vibrate' in Notification.prototype;\r\n }\r\n private isTimestampSupported(): boolean {\r\n return 'timestamp' in Notification.prototype;\r\n }\r\n private isTagSupported(): boolean {\r\n return 'tag' in Notification.prototype;\r\n }\r\n private isSoundSupported(): boolean {\r\n return 'sound' in Notification.prototype;\r\n }\r\n\r\n private isSilentSupported(): boolean {\r\n return 'silent' in Notification.prototype;\r\n }\r\n\r\n private isReqInterSupported(): boolean {\r\n return 'requireInteraction' in Notification.prototype;\r\n }\r\n public async closeNotifications(tags: string[]): Promise<void> {\r\n const sw = await this.getSw();\r\n tags.forEach(async (tag) => {\r\n const notifs: Notification[] | undefined = await sw?.getNotifications({ tag });\r\n if (notifs?.length) {\r\n notifs.forEach((c) => c.close());\r\n }\r\n });\r\n }\r\n}\r\n","import { LowerCasePipe } from '@angular/common';\r\nimport { Inject, Injectable, NgZone } from '@angular/core';\r\nimport { DomSanitizer } from '@angular/platform-browser';\r\nimport { BehaviorSubject, Observable } from 'rxjs';\r\n\r\nimport { BarsaApi } from '../abstract-classes/barsa-api';\r\nimport { MetaobjectDataModel, NotificationItem, NotifyOptions } from '../abstract-classes/models';\r\nimport { NOTIFICATAION_POPUP_SERVER } from '../injdection-tokens';\r\nimport { BbbTranslatePipe } from '../pipes/bbb-translate.pipe';\r\nimport { LogService } from './log.service';\r\nimport { NotificationPopupService } from './notification-popup.service';\r\nimport { ServiceWorkerNotificationService } from './notification-sw.service';\r\n\r\n@Injectable()\r\nexport class NotificationService {\r\n private _notifications$ = new BehaviorSubject<MetaobjectDataModel[]>([]);\r\n private _notificationCount$ = new BehaviorSubject<{ unread: number; all: number }>({ unread: 0, all: 0 });\r\n private _notificationUnreadCount$ = new BehaviorSubject<number>(0);\r\n private _notificationLoading$ = new BehaviorSubject<boolean>(false);\r\n pageCount = 1;\r\n pageIndex = 0;\r\n constructor(\r\n @Inject(NOTIFICATAION_POPUP_SERVER) protected _popupService: NotificationPopupService,\r\n private _logService: LogService,\r\n private _lowerCase: LowerCasePipe,\r\n private _bbbTranslate: BbbTranslatePipe,\r\n private _domSanitizer: DomSanitizer,\r\n private _serviceWorkerNotification: ServiceWorkerNotificationService,\r\n private _ngZone: NgZone\r\n ) {}\r\n get notificationCount$(): Observable<{ unread: number; all: number }> {\r\n return this._notificationCount$.asObservable();\r\n }\r\n\r\n get notifications$(): Observable<MetaobjectDataModel[]> {\r\n return this._notifications$.asObservable().pipe();\r\n }\r\n get notificationLoading$(): Observable<boolean> {\r\n return this._notificationLoading$.asObservable();\r\n }\r\n public loadMore(): void {\r\n this.loadNotifications(this.pageIndex);\r\n }\r\n public setNotificationViewed(tags: string[]): void {\r\n BarsaApi.Bw.RunBlMethodAsync({\r\n Parameters: [tags],\r\n Method: 'SetNotificationViewed',\r\n SuccessFn: () => {\r\n const molistCurr = this._notifications$.getValue();\r\n const updatedUnreadMoList = molistCurr.map((c) => ({\r\n ...c,\r\n Unread: tags.indexOf(c.Tag) > -1 ? false : c.Unread\r\n }));\r\n this._notifications$.next([...updatedUnreadMoList]);\r\n this.increaseNotifcationCount(-tags.length, 0);\r\n return tags;\r\n },\r\n FailFn: (e) => {\r\n this._logService.error(e);\r\n }\r\n });\r\n }\r\n public handleTopic(eventTopic, content, ownerKey): void {\r\n console.log('handleTopic', eventTopic, content, ownerKey);\r\n if (eventTopic === 'GlobalReportMoDelete') {\r\n const { IdList }: { IdList: string[] } = content;\r\n const notifications = this._notifications$.getValue();\r\n let findInNotifications = false;\r\n let unreadCount = 0;\r\n let count = 0;\r\n IdList.forEach((id) => {\r\n const foundNotification = notifications.find((c) => c.Id === id);\r\n if (foundNotification) {\r\n findInNotifications = true;\r\n count++;\r\n if (foundNotification.Unread) {\r\n unreadCount++;\r\n }\r\n }\r\n });\r\n if (findInNotifications) {\r\n this._notifications$.next(notifications.filter((c) => !IdList.includes(c.Id)));\r\n }\r\n if (unreadCount > 0) {\r\n this.increaseNotifcationCount(-unreadCount, -count);\r\n }\r\n }\r\n }\r\n public addNotification(\r\n msg: string,\r\n title: string,\r\n type: string,\r\n image: string,\r\n mo,\r\n uiOptions: NotifyOptions,\r\n otherOptions: Record<string, any>\r\n ): void {\r\n this._ngZone.run(() => {\r\n if (otherOptions) {\r\n const { MoId, TypeDefId } = otherOptions;\r\n console.log('addNotification', title, MoId, mo);\r\n let newNotification: NotificationItem = {\r\n $Caption: title,\r\n Id: MoId,\r\n $TypeDefId: TypeDefId,\r\n Title: title,\r\n Unread: true,\r\n Icon: image,\r\n Image: '',\r\n Content: msg,\r\n Tag: '',\r\n Priority: 0,\r\n Subject: '',\r\n CreationDate: new Date(),\r\n CreationDate$Caption: this._bbbTranslate.transform('DateR_Today')\r\n };\r\n const parsedMo = mo ? BarsaApi.Ext.decode(mo) : null;\r\n newNotification = this._prepareProperties(newNotification, parsedMo, msg);\r\n\r\n if (parsedMo) {\r\n const molist = this._notifications$.getValue();\r\n this._notifications$.next([newNotification, ...molist]);\r\n this.increaseNotifcationCount(1, 1);\r\n }\r\n this.showNotification(newNotification, parsedMo, uiOptions, otherOptions);\r\n }\r\n });\r\n }\r\n\r\n public increaseNotifcationCount(unread: number, count: number): void {\r\n const countValue = this._notificationCount$.getValue();\r\n const sumUnread = countValue.unread + +unread;\r\n const sumAll = countValue.all + +count;\r\n this._notificationCount$.next({ unread: sumUnread > 0 ? sumUnread : 0, all: sumAll > 0 ? sumAll : 0 });\r\n }\r\n public loadUnreadNotificationCount(): void {\r\n BarsaApi.Bw.RunBlMethodAsync({\r\n Parameters: [],\r\n Method: 'GetShellbarNotificationCount',\r\n SuccessFn: (e: { Unread: number; All: number }) => {\r\n this._updateUnreadAndCount(e);\r\n },\r\n FailFn: (e) => {\r\n this._logService.error(e);\r\n }\r\n });\r\n }\r\n public loadNotifications(pageIndex: number = 0): void {\r\n if (pageIndex + 1 > this.pageCount) {\r\n return;\r\n }\r\n this.notificationLoading(true);\r\n BarsaApi.Bw.RunBlMethodAsync({\r\n Parameters: [pageIndex],\r\n Method: 'GetShellbarNotifications',\r\n SuccessFn: (e: { PageCount: number; MoList: MetaobjectDataModel[] }) => {\r\n const notifications = this._notifications$.getValue();\r\n const notifListOfTags = notifications.map((c) => c.Tag);\r\n const molist = e.MoList.filter((c) => notifListOfTags.indexOf(c.Tag) === -1).map((mo) =>\r\n this._prepareProperties(<NotificationItem>mo, mo, mo.IMessage?.Content)\r\n );\r\n this._notifications$.next([...notifications, ...molist]);\r\n this.pageCount = +e.PageCount;\r\n this.pageIndex = pageIndex + 1;\r\n this.notificationLoading(false);\r\n },\r\n FailFn: (e) => {\r\n this._logService.error(e);\r\n this.notificationLoading(false);\r\n }\r\n });\r\n }\r\n\r\n public removeNotification(molist: MetaobjectDataModel[], closeNotification = true): void {\r\n const moIds = this._setNotificationLoading(molist, true);\r\n BarsaApi.Bw.RunBlMethodAsync({\r\n Parameters: [moIds],\r\n Method: 'RemoveShellbarNotification',\r\n SuccessFn: (e: { Unread: number; All: number }) => {\r\n const notificationList = this._notifications$.getValue();\r\n this._updateUnreadAndCount(e);\r\n const newMoList = notificationList.filter((c) => moIds.indexOf(c.Id) === -1);\r\n this._notifications$.next(newMoList);\r\n if (closeNotification) {\r\n this._serviceWorkerNotification.closeNotifications(moIds);\r\n }\r\n if (this._notificationCount$.getValue().all > 0) {\r\n this.loadNotifications(this.pageIndex - 1);\r\n }\r\n },\r\n FailFn: (e) => {\r\n this._logService.error(e);\r\n this._setNotificationLoading(molist, false);\r\n }\r\n });\r\n }\r\n private _updateUnreadAndCount(e: { Unread: number; All: number }): void {\r\n this._notificationUnreadCount$.next(+e.Unread);\r\n this._notificationCount$.next({ unread: +e.Unread, all: +e.All });\r\n }\r\n\r\n get SupportNotifications(): boolean {\r\n return typeof Notification !== 'undefined' && this._serviceWorkerNotification.isEnabled;\r\n }\r\n public showNotification(\r\n notificationItem: NotificationItem,\r\n mo: MetaobjectDataModel | null,\r\n uiOptions: NotifyOptions,\r\n otherOptions: Record<string, any>\r\n ): void {\r\n if (!this.SupportNotifications) {\r\n this._logService.warn(`InApp Notification is not supported.`);\r\n uiOptions = uiOptions ?? {};\r\n uiOptions.NotificationItem = notificationItem;\r\n this._popupNotify(notificationItem, mo, uiOptions, otherOptions);\r\n return;\r\n }\r\n this._inAppNotify(notificationItem);\r\n }\r\n private notificationLoading(loading): void {\r\n this._notificationLoading$.next(loading);\r\n }\r\n private _setNotificationLoading(molist: MetaobjectDataModel[], loading: boolean = true): string[] {\r\n const molistCurr = this._notifications$.getValue();\r\n const moIds = molist.map((c) => c.Id);\r\n const molistWithLoadingProperty = molistCurr.map((c) => ({\r\n ...c,\r\n $NotificatoinLoading: moIds.indexOf(c.Id) !== -1 ? loading : c.$NotificatoinLoading\r\n }));\r\n this._notifications$.next([...molistWithLoadingProperty]);\r\n return moIds;\r\n }\r\n private _popupNotify(\r\n notificationItem: NotificationItem,\r\n mo: MetaobjectDataModel | null,\r\n uiOptions: NotifyOptions,\r\n otherOptions: Record<string, any>\r\n ): void {\r\n this._popupService.popupNotify(\r\n notificationItem.$SafeContent,\r\n notificationItem.Title,\r\n notificationItem.Subject,\r\n notificationItem.Image,\r\n mo,\r\n uiOptions,\r\n otherOptions\r\n );\r\n }\r\n private _prepareProperties(\r\n notificationItem: NotificationItem,\r\n mo: MetaobjectDataModel,\r\n content: string\r\n ): NotificationItem {\r\n if (!mo) {\r\n return notificationItem;\r\n }\r\n return {\r\n ...notificationItem,\r\n ...mo,\r\n UiActions: !mo.UiActions ? [] : JSON.parse(mo.UiActions),\r\n CreationDate: mo.IMessage.CreationDate,\r\n CreationDate$Caption: mo.IMessage.CreationDate$Caption,\r\n CreatorUser: mo.IMessage.CreatorUser,\r\n CreatorUser$Caption: mo.IMessage.CreatorUser$Caption,\r\n Icon: `${BarsaApi.Bw.Origin()}${notificationItem.Icon}`,\r\n $SafeContent: this._domSanitizer.bypassSecurityTrustHtml(content)\r\n };\r\n }\r\n private _inAppNotify(notificationItem: NotificationItem): void {\r\n Notification.requestPermission((result) => {\r\n const lang = BarsaApi.LoginFormData.Culture;\r\n const isRtl = BarsaApi.LoginFormData.CulturesRtl[lang];\r\n\r\n if (result === 'granted') {\r\n this._serviceWorkerNotification.showNotification({\r\n notificationItem,\r\n isRtl,\r\n lang\r\n });\r\n } else {\r\n // TODO:permission denied\r\n this._logService.error('notification permission denied.');\r\n }\r\n });\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\nimport { Observable, Subject } from 'rxjs';\n\n@Injectable()\nexport class ColumnService {\n private _uiControlRendered = new Subject<void>();\n get uiControlRendered(): Observable<void> {\n return this._uiControlRendered.asObservable();\n }\n constructor() {}\n controlRendered(): void {\n this._uiControlRendered.next();\n }\n}\n","import {\r\n Input,\r\n Output,\r\n EventEmitter,\r\n Component,\r\n ChangeDetectorRef,\r\n ElementRef,\r\n OnInit,\r\n OnDestroy,\r\n AfterViewInit,\r\n ChangeDetectionStrategy,\r\n Renderer2,\r\n Self,\r\n Optional,\r\n Inject,\r\n HostBinding\r\n} from '@angular/core';\r\nimport { DomSanitizer } from '@angular/platform-browser';\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { BehaviorSubject, combineLatest, Observable, Subject } from 'rxjs';\r\nimport { distinctUntilChanged, map, takeUntil } from 'rxjs/operators';\r\n\r\nimport { BaseComponent } from './base.component';\r\nimport { DateService } from '../date-services';\r\nimport { DIALOG_SERVICE } from '../injdection-tokens';\r\nimport { BbbTranslatePipe, NumeralPipe, PictureFieldSourcePipe } from '../pipes';\r\nimport { AudioRecordingService, ColumnService, PortalService, UploadService, VideoRecordingService } from '../services';\r\nimport { BarsaApi } from './barsa-api';\r\nimport { GeneralControlInfoModel, AbbrevationDeviceSize, MetaobjectDataModel } from './models';\r\nimport { getDeviceIsMobile } from '../constants';\r\n\r\nexport interface FieldSetting {\r\n [key: string]: any;\r\n ControlFieldCaption: string;\r\n ControlFieldCaptionTranslated: string;\r\n ControlFieldDefId: string;\r\n ControlName: string;\r\n RelatedFieldList: [];\r\n Hide: boolean;\r\n xtype: string;\r\n LabelPosition: string;\r\n IsMandatory: boolean;\r\n IsVisible: boolean;\r\n ShowLabel: boolean;\r\n IsReadOnly: boolean;\r\n IsEnabled: boolean;\r\n IsBold: boolean;\r\n IsAutomatic: boolean;\r\n JsonExtraProp: any | null;\r\n FieldIcon: string;\r\n IsLtr: boolean;\r\n}\r\n@Component({\r\n selector: 'bnrc-field-base',\r\n template: '',\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport abstract class FieldBaseComponent extends BaseComponent implements OnInit, OnDestroy, AfterViewInit {\r\n @Input() context: any;\r\n @Input() focusControl: boolean;\r\n @Input() layoutInfo: any;\r\n @Input() value: any;\r\n @Input() width: number;\r\n @Input() height: number;\r\n @Input() formHeight: number;\r\n @Input() inlineEdit: boolean;\r\n @Input() id: string;\r\n @Input() parametes: MetaobjectDataModel;\r\n @Output() valueChange = new EventEmitter<any>();\r\n @Output() formmatedValue = new EventEmitter<any>();\r\n @HostBinding('class.isMobile') isMobile = getDeviceIsMobile();\r\n JsonExtraProp: any;\r\n parameters: any;\r\n Setting: GeneralControlInfoModel;\r\n refresh$: Observable<any>;\r\n value$: Observable<any>;\r\n disable$: Observable<boolean>;\r\n readonly$: Observable<boolean>;\r\n disableOrReadonly$: Observable<boolean>;\r\n deviceSize$: Observable<AbbrevationDeviceSize>;\r\n el: any;\r\n mobileConfig: any = {\r\n title: 'انتخاب',\r\n approveButtonText: 'تایید',\r\n cancelButtonText: 'انصراف',\r\n hasCloseButton: true,\r\n dialogConfig: {\r\n ariaLabel: 'انتخاب'\r\n }\r\n };\r\n get customFieldInfo(): MetaobjectDataModel {\r\n return this.context.Setting.CustomFieldInfo;\r\n }\r\n private _refreshSource = new Subject<any>();\r\n private _valueChangedSource = new Subject<any>();\r\n private _disableChangedSource = new BehaviorSubject<boolean>(false);\r\n private _readonlyChangedSource = new BehaviorSubject<boolean>(false);\r\n\r\n constructor(\r\n protected _portalService: PortalService,\r\n protected _bbbPipe: BbbTranslatePipe,\r\n protected _picFieldSrc: PictureFieldSourcePipe,\r\n protected _numeralPipe: NumeralPipe,\r\n protected _el: ElementRef,\r\n protected _cdr: ChangeDetectorRef,\r\n protected _renderer2: Renderer2,\r\n protected _activatedRoute: ActivatedRoute,\r\n protected _domSanitizer: DomSanitizer,\r\n @Optional() @Inject(DIALOG_SERVICE) protected _dialogService: any,\r\n @Self() @Optional() protected _uploadService: UploadService,\r\n @Self() @Optional() protected _dateService: DateService,\r\n @Self() @Optional() protected _audioRecorder: AudioRecordingService,\r\n @Self() @Optional() protected _videoRecoder: VideoRecordingService,\r\n @Optional() protected _columnService: ColumnService\r\n ) {\r\n super();\r\n this.refresh$ = this._refreshSource.asObservable().pipe(takeUntil(this._onDestroy$));\r\n this.value$ = this._valueChangedSource.asObservable().pipe(takeUntil(this._onDestroy$));\r\n this.deviceSize$ = this._portalService.deviceSize$;\r\n this.disable$ = this._disableChangedSource\r\n .asObservable()\r\n .pipe(takeUntil(this._onDestroy$), distinctUntilChanged());\r\n this.readonly$ = this._readonlyChangedSource\r\n .asObservable()\r\n .pipe(takeUntil(this._onDestroy$), distinctUntilChanged());\r\n this.disableOrReadonly$ = combineLatest([this.readonly$, this.disable$]).pipe(\r\n map(([disable, readonly]) => disable || readonly),\r\n distinctUntilChanged()\r\n );\r\n this.el = _el;\r\n }\r\n\r\n ngOnInit(): void {\r\n super.ngOnInit();\r\n if (this.context) {\r\n // this.context.rendered = true;\r\n this.Setting = this.context ? this.context.Setting : null;\r\n const readonly = this.context?.readOnly;\r\n this._setReadonly(readonly, false);\r\n this._setDisable(this.context.disable, false);\r\n this.parameters = BarsaApi.Common.Util.TryGetValue(this.context, 'Setting.CustomUi.Parameters', null);\r\n this.JsonExtraProp = BarsaApi.Common.Util.TryGetValue(this.context, 'Setting.JsonExtraProp', null);\r\n }\r\n this._addListener();\r\n this._setMobileConfig();\r\n }\r\n ngOnDestroy(): void {\r\n super.ngOnDestroy();\r\n this._removeListener();\r\n }\r\n ngAfterViewInit(): void {\r\n super.ngAfterViewInit();\r\n this._columnService?.controlRendered();\r\n if (this.focusControl) {\r\n const elDom = this._el.nativeElement as HTMLElement;\r\n const focusableNodeList: NodeListOf<HTMLElement> = elDom.querySelectorAll(\r\n ' button, [href], input, select, textarea, [tabindex]:not([tabindex=”-1″])'\r\n );\r\n let focused = false;\r\n focusableNodeList.forEach((el: HTMLElement) => {\r\n const tagName: string = el.tagName.toLocaleLowerCase();\r\n if (\r\n !focused &&\r\n el.offsetWidth > 0 &&\r\n el.offsetHeight > 0 &&\r\n el.getAttribute('disabled') !== 'true' &&\r\n el.getAttribute('ng-reflect-disabled') !== 'true' &&\r\n !tagName.startsWith('fdp')\r\n ) {\r\n el.focus();\r\n focused = true;\r\n }\r\n });\r\n }\r\n }\r\n\r\n fireContextEvent(event: string, value: any, value1?: any, value2?: any): void {\r\n this.context.fireEvent(event, value, value1, value2);\r\n }\r\n protected _setMobileConfig(): void {\r\n const mobileConfig = this.mobileConfig;\r\n mobileConfig.title = this.Setting?.ControlFieldCaptionTranslated;\r\n mobileConfig.dialogConfig && (mobileConfig.dialogConfig.ariaLabel = mobileConfig.title);\r\n mobileConfig.approveButtonText = this._bbbPipe.transform('Ok');\r\n mobileConfig.cancelButtonText = this._bbbPipe.transform('Cancel');\r\n }\r\n protected _addListener(): void {\r\n if (this.context && this.context.on) {\r\n this.context.on({\r\n ControlValueChanged: this._setValue.bind(this),\r\n ControlDisableChanged: this._setDisable.bind(this),\r\n ControlReadonlyChanged: this._setReadonly.bind(this),\r\n ControlRefresh: this._setRefresh.bind(this)\r\n });\r\n }\r\n }\r\n protected _removeListener(): void {\r\n if (this.context && this.context.un) {\r\n this.context.un('ControlValueChanged', this._setValue);\r\n this.context.un('ControlDisableChanged', this._setDisable);\r\n this.context.un('ControlReadonlyChanged', this._setReadonly);\r\n this.context.un('ControlRefresh', this._setRefresh);\r\n }\r\n }\r\n protected _setValue(value): void {\r\n this.value = value;\r\n this._valueChangedSource.next(value);\r\n this._cdr.detectChanges();\r\n }\r\n protected _setRefresh(value): void {\r\n this._refreshSource.next(value);\r\n this._cdr.detectChanges();\r\n }\r\n protected _setDisable(value, changeDetect = true): void {\r\n this._disableChangedSource.next(value);\r\n if (changeDetect) {\r\n this._cdr.detectChanges();\r\n }\r\n }\r\n protected _setReadonly(value, changeDetect = true): void {\r\n this._readonlyChangedSource.next(value);\r\n if (changeDetect) {\r\n this._cdr.detectChanges();\r\n }\r\n }\r\n}\r\n","import { Observable, Subject } from 'rxjs';\nimport { debounceTime, filter } from 'rxjs/operators';\n\nexport enum IntersectionStatus {\n Visible = 'Visible',\n Pending = 'Pending',\n NotVisible = 'NotVisible'\n}\n/* eslint-disable */\nexport const fromIntersectionObserver = (\n element: HTMLElement,\n config: IntersectionObserverInit,\n debounce = 0,\n autoStop = true\n) =>\n new Observable<IntersectionStatus>((subscriber) => {\n const subject$ = new Subject<{\n entry: IntersectionObserverEntry;\n observer: IntersectionObserver;\n }>();\n\n const intersectionObserver = new IntersectionObserver((entries, observer) => {\n entries.forEach((entry) => {\n if (isIntersecting(entry)) {\n subject$.next({ entry, observer });\n }\n });\n }, config);\n\n subject$.subscribe(() => {\n subscriber.next(IntersectionStatus.Pending);\n });\n\n subject$.pipe(debounceTime(debounce), filter(Boolean)).subscribe(async (x: any) => {\n const { entry, observer } = x;\n const isEntryVisible = await isVisible(entry.target as HTMLElement);\n\n if (isEntryVisible) {\n subscriber.next(IntersectionStatus.Visible);\n autoStop && observer.unobserve(entry.target);\n } else {\n subscriber.next(IntersectionStatus.NotVisible);\n }\n });\n\n intersectionObserver.observe(element);\n\n return {\n unsubscribe(): void {\n intersectionObserver.disconnect();\n subject$.unsubscribe();\n }\n };\n });\n\nasync function isVisible(element: HTMLElement): Promise<boolean> {\n return new Promise((resolve) => {\n const observer = new IntersectionObserver(([entry]) => {\n resolve(entry.isIntersecting);\n observer.disconnect();\n });\n\n observer.observe(element);\n });\n}\n\nfunction isIntersecting(entry: IntersectionObserverEntry): boolean {\n return entry.isIntersecting || entry.intersectionRatio > 0;\n}\n","import {\n Input,\n Component,\n Output,\n EventEmitter,\n OnInit,\n OnDestroy,\n ChangeDetectionStrategy,\n ElementRef,\n Self,\n ChangeDetectorRef,\n HostBinding\n} from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { filter, map, takeUntil, merge } from 'rxjs/operators';\n\nimport { BaseComponent } from './base.component';\nimport { getDeviceIsMobile, getParentHeight, getUniqueId } from '../constants';\nimport { FormPanelService } from '../services/form-panel.service';\nimport { BarsaApi } from './barsa-api';\nimport {\n FormSetting,\n FormViewSetting,\n FormVisibilityStatus,\n IHeaderLayout,\n LayoutSetting,\n MetaobjectDataModel\n} from './models';\nimport { BreadcrumbService, PortalService } from '../services';\nimport { ControlUiPipe } from '../pipes';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { fromIntersectionObserver } from '../from-intersection-observer';\n\n@Component({\n selector: 'bnrc-form-base',\n template: '',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class FormBaseComponent extends BaseComponent implements OnInit, OnDestroy {\n @HostBinding('attr.id') id = `form_${getUniqueId(4)}`;\n @Input() context: {\n [key: string]: any;\n config: any;\n Setting: FormSetting;\n };\n @Output() formClose = new EventEmitter();\n listFieldUi: any;\n isWizard: boolean;\n parameters: MetaobjectDataModel;\n isMobile: boolean;\n\n toolbarVisible$: Observable<boolean>;\n hideClose$: Observable<boolean>;\n hideTitle$: Observable<boolean>;\n hidePin$: Observable<boolean>;\n title$: Observable<string>;\n toolbarItems$: Observable<any[]>;\n workflowButtons$: Observable<any[]>;\n headerLayout$: Observable<IHeaderLayout | null>;\n layout94$: Observable<any>;\n layout94: any;\n maxContentWidth$: Observable<string>;\n formWidth$: Observable<string>;\n headerDescription$: Observable<string>;\n headerRemoveContentPadding$: Observable<boolean>;\n headerSubtitle$: Observable<string>;\n avatar$: Observable<any>;\n workflowPanelUi$: Observable<any>;\n view$: Observable<FormViewSetting>;\n mo$: Observable<MetaobjectDataModel | null>;\n isSimple$: Observable<boolean>;\n fieldDict$: Observable<{ [key: string]: string } | undefined>;\n mask$: Observable<boolean>;\n isSearchPanel: boolean;\n isModal: boolean;\n isSubForm: boolean;\n modernTabs$: Observable<LayoutSetting[]>;\n isFormReport: boolean;\n landscape$: Observable<boolean>;\n standalone$: Observable<boolean>;\n protected _style: HTMLStyleElement;\n protected _standalone: boolean;\n private _formIntersection: any;\n formVisibilityStatus: FormVisibilityStatus;\n\n constructor(\n protected _breadcrumbService: BreadcrumbService,\n protected _portalService: PortalService,\n protected _router: Router,\n protected _el: ElementRef,\n protected _controlUiPipe: ControlUiPipe,\n @Self() protected _formPanelService: FormPanelService,\n protected _activatedRoute: ActivatedRoute,\n protected _cdr: ChangeDetectorRef\n ) {\n super();\n this._formPanelService.isSearchPanel$.subscribe((isSearchPanel) => {\n this.isSearchPanel = isSearchPanel;\n });\n this.hideClose$ = this._formPanelService.hideClose$;\n this.hideTitle$ = this._formPanelService.hideTitle$;\n this.hidePin$ = this._formPanelService.hidePin$;\n this.toolbarVisible$ = this._formPanelService.toolbarVisible$;\n this.title$ = this._formPanelService.title$;\n this.toolbarItems$ = this._formPanelService.toolbarItems$;\n this.workflowButtons$ = this._formPanelService.workflowButtons$;\n this.headerLayout$ = this._formPanelService.headerLayout$;\n this.layout94$ = this._formPanelService.layout$;\n this.maxContentWidth$ = this._formPanelService.maxContentWidth$;\n this.formWidth$ = this._formPanelService.formWidth$;\n this.headerSubtitle$ = this._formPanelService.headerSubtitle$;\n this.avatar$ = this._formPanelService.avatar$;\n this.workflowPanelUi$ = this._formPanelService.workflowPanelUi$;\n this.view$ = this._formPanelService.view$;\n this.mo$ = this._formPanelService.mo$;\n this.fieldDict$ = this._formPanelService.fieldDict$;\n this.isSimple$ = this._formPanelService.isSimpleForm$;\n this.mask$ = this._formPanelService.mask$;\n this.headerDescription$ = this._formPanelService.headerDescription$;\n this.headerRemoveContentPadding$ = this._formPanelService.headerRemoveContentPadding$;\n this._formPanelService.context$.pipe(takeUntil(this._onDestroy$)).subscribe();\n this._formPanelService.view$.pipe(takeUntil(this._onDestroy$)).subscribe();\n this.landscape$ = this._portalService.landscape$;\n this.standalone$ = this._portalService.standalone$;\n this._portalService.standalone$.pipe(takeUntil(this._onDestroy$)).subscribe((c) => (this._standalone = c));\n }\n get forceClose$(): Observable<void> {\n return this._formPanelService.forceClose$;\n }\n\n ngOnInit(): void {\n super.ngOnInit();\n this._formPanelService.context = this.context;\n this.isMobile = getDeviceIsMobile();\n this.listFieldUi = this.context._dictFieldUi;\n\n this.isModal = this.context.Setting?.IsModal;\n this.isSubForm = this.context.IsSubForm;\n this.isFormReport = this.context.IsFormReport;\n this._setParamters();\n this._addDynamicFormStyles(this.parameters?.CssStyles);\n this.modernTabs$ = this.layout94$.pipe(\n filter((c) => c),\n map((layout94) => (this.layout94 = layout94)),\n /* eslint-disable */\n merge(this._formPanelService.groupLayout$),\n map((_) => {\n if (this.layout94.items[0].xtype !== 'Ly.LayoutTabPanel') {\n return [];\n }\n const tabs: LayoutSetting[] = this.layout94.items[0].items;\n return tabs.filter((c) => c.Visible !== false);\n })\n );\n setTimeout(() => {\n this.obtainHeight();\n }, 0);\n this._portalService.windowResize$.subscribe((e) => {\n this.obtainHeight();\n });\n this._formIntersection = fromIntersectionObserver(\n this._el.nativeElement,\n {\n root: null,\n rootMargin: '0px',\n threshold: 0\n },\n 100,\n false\n )\n .pipe(takeUntil(this._onDestroy$))\n .subscribe((e) => {\n this._onInView(e);\n });\n }\n protected _onInView(e): void {\n if (this.isMobile) {\n this.formVisibilityStatus = e;\n this._cdr.detectChanges();\n }\n }\n ngOnDestroy(): void {\n super.ngOnDestroy();\n this._formIntersection.unsubscribe();\n this._formPanelService.destroy();\n this._removeDynamicFormStyles();\n }\n onClose(): void {\n this.context.fireEvent('RequestForClose', this.context);\n }\n onToolbarClick(btn): void {\n this._formPanelService.toolbarClick(btn);\n }\n onWorkflowChoiceClick(wfChoice): void {\n this._formPanelService.wfChoice(wfChoice);\n }\n fieldChange(fieldName, value): void {\n const fieldUi = this.context._listFieldUi.find((c) => c.Setting.ControlName === fieldName);\n fieldUi.value = value;\n fieldUi.fireEvent('change', fieldUi);\n }\n searchClick(): void {\n const fieldUi = this.context._listFieldUi.find((c) => c.originalXtype === 'Ui.SearchCommandInfoUi');\n\n fieldUi.fireEvent(BarsaApi.Ul.FormPanelCtrlr.EventEnum.SearchClick, fieldUi);\n }\n protected _addDynamicFormStyles(cssStyles: string): void {\n if (!cssStyles) {\n return;\n }\n cssStyles = cssStyles.replace(/:root/gi, `#${this.id}`);\n const head = document.head || document.getElementsByTagName('head')[0];\n const style: any = document.createElement('style');\n\n head.appendChild(style);\n\n style.type = 'text/css';\n if (style.styleSheet) {\n // This is required for IE8 and below.\n style.styleSheet.cssText = cssStyles;\n } else {\n style.appendChild(document.createTextNode(cssStyles));\n }\n this._style = style;\n }\n protected _removeDynamicFormStyles(): void {\n if (!this._style) {\n return;\n }\n const head = document.head || document.getElementsByTagName('head')[0];\n head.removeChild(this._style);\n }\n protected obtainHeight(): void {\n const parentHeight = getParentHeight(this._el.nativeElement as HTMLElement);\n this._formPanelService.setFormHeight(parentHeight);\n }\n private _setParamters(): void {\n this.parameters = BarsaApi.Common.Util.TryGetValue(this.context, 'Setting.View.CustomUi.Parameters', null);\n }\n}\n","import { Input, Component, EventEmitter, Output, HostBinding, OnInit, ChangeDetectionStrategy } from '@angular/core';\nimport { BaseComponent } from './base.component';\n@Component({\n selector: 'bnrc-form-toolbar-base',\n template: '',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class FormToolbarBaseComponent extends BaseComponent implements OnInit {\n @Input() buttons: any[];\n @Input() visible = true;\n @Input() size: any;\n @Input() device: any;\n @Input() deviceSize: any;\n @Input() rtl: boolean;\n @Input() landscape: boolean;\n @Input() standalone: boolean;\n @Output() toolClick = new EventEmitter<any>();\n @HostBinding('attr.rtl') _rtl;\n ngOnInit(): void {\n super.ngOnInit();\n this._rtl = this.rtl;\n }\n\n onToolClick(btn): void {\n this.toolClick.emit(btn);\n }\n}\n","import { Input, Component, ChangeDetectionStrategy } from '@angular/core';\nimport { BaseComponent } from './base.component';\n\nexport interface NavigatorItem {\n [key: string]: any;\n Caption: string;\n FolderId: string;\n IconUrl: string;\n Id: string;\n IsRoot: boolean;\n IsTab: boolean;\n Name: string;\n NotLoaded: boolean;\n ReportId: string;\n Parent?: NavigatorItem;\n Items: NavigatorItem[];\n}\nexport interface SystemSetting {\n Id: string;\n Name: string;\n Caption: string;\n IconName: string;\n RootFolderId: string;\n IsLoaded: boolean;\n IsUiCreated: boolean;\n IsActive: boolean;\n FormSetting: string;\n CustomCodeError: string;\n HasVerifyPassword: boolean;\n Navigator: {\n Root: NavigatorItem;\n };\n /// <summary>\n /// ExtraData is an inline object consisting some complementary properties like Navigator, Commands and Workflow list\n /// </summary>\n ExtraData: any;\n}\n@Component({\n selector: 'bnrc-system-base',\n template: '',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class SystemBaseComponent extends BaseComponent {\n @Input() context: {\n [key: string]: any;\n SystemData: SystemSetting;\n SystemNavUi: any;\n SystemContainerUi: any;\n };\n constructor() {\n super();\n }\n @Input() showFormPanel = (): void => {};\n}\n","import {\n Input,\n Component,\n EventEmitter,\n Output,\n OnInit,\n AfterViewInit,\n OnDestroy,\n ChangeDetectionStrategy\n} from '@angular/core';\n\nimport { BehaviorSubject, Observable } from 'rxjs';\nimport { debounceTime, map, pluck, takeUntil, tap } from 'rxjs/operators';\n\nimport { BaseComponent } from './base.component';\nimport { GetAllColumnsSorted, getUniqueId } from '../constants';\nimport { PortalService } from '../services/portal.service';\nimport { UlvMainService } from '../services/ulvmain.service';\nimport { BarsaApi } from './barsa-api';\nimport {\n MetaobjectDataModel,\n GridSetting,\n ColSetting,\n ReportViewColumn,\n SortSetting,\n MenuItem,\n PagingSetting,\n AbbrevationDeviceSize,\n columnsResizedEventArgs,\n FormSetting\n} from './models';\n\nexport interface ReportSetting {\n [key: string]: any;\n Id: string;\n Extra: any;\n}\n@Component({\n selector: 'bnrc-report-base',\n template: '',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class ReportBaseComponent extends BaseComponent implements OnInit, AfterViewInit, OnDestroy {\n @Input() context: {\n [key: string]: any;\n Setting: ReportSetting;\n };\n @Input() currentPage: number;\n\n @Output() pageChange = new EventEmitter<number>();\n @Output() pageSizeChange = new EventEmitter<number>();\n\n defaultGridSetting = {\n ColSettingList: [],\n AutoSizeColumns: false,\n SortSettingList: [],\n Hidden: true\n };\n itemSelector: string;\n allColumns: ReportViewColumn[];\n id: string;\n\n sortSettings: { IsGrouped: boolean; Name: string; SortDirection: string }[] | null = null;\n parameters: any;\n fields: any;\n\n visibleColumns$: Observable<ReportViewColumn[]>;\n searchTerm$: Observable<string>;\n moDataList$: Observable<MetaobjectDataModel[]>;\n gridSetting$: Observable<GridSetting>;\n groupby$: Observable<SortSetting[]>;\n allChecked$: Observable<boolean>;\n pagingSetting$: Observable<PagingSetting | null>;\n deviceSize$: Observable<AbbrevationDeviceSize>;\n mask$: Observable<boolean>;\n title$: Observable<string>;\n inDialog$: Observable<boolean>;\n isMultiSelect$: Observable<boolean>;\n fullscreen$: Observable<boolean>;\n menuItems$: Observable<MenuItem[]>;\n toolbarButtons$: Observable<any[]>;\n toolbarEnable$: Observable<boolean>;\n hideToolbar$: Observable<boolean>;\n selectedMo$: Observable<MetaobjectDataModel | undefined>;\n conditionalFormats$: Observable<any[]>;\n newInlineEditMo$: Observable<MetaobjectDataModel | null>;\n cartableTemplates$: Observable<{ [key: string]: FormSetting } | null>;\n cartableChildsMo$: Observable<{ [key: string]: MetaobjectDataModel } | null>;\n selectedCount$: Observable<number>;\n\n protected _visibleColumnsSource = new BehaviorSubject<ReportViewColumn[]>([]);\n protected searchTermSource = new BehaviorSubject<string>('');\n protected gridSettingSource = new BehaviorSubject<GridSetting>(this.defaultGridSetting);\n protected groupbySource = new BehaviorSubject<SortSetting[]>([]);\n private _allCheckedSource = new BehaviorSubject<boolean>(false);\n\n constructor(protected _portalService: PortalService, protected _ulvMainService: UlvMainService) {\n super();\n this.visibleColumns$ = this._visibleColumnsSource.asObservable();\n this.searchTerm$ = this.searchTermSource.asObservable();\n this.gridSetting$ = this.gridSettingSource.asObservable();\n this.groupby$ = this.groupbySource.asObservable();\n this.allChecked$ = this._allCheckedSource.asObservable();\n this.fields = {};\n this.toolbarButtons$ = this._ulvMainService.toolbarButtons$;\n }\n get moDataList(): MetaobjectDataModel[] {\n return this._ulvMainService.moDataListSource.getValue();\n }\n\n ngOnInit(): void {\n super.ngOnInit();\n this.rendered = true;\n this.context.rendered = true;\n this.inDialog$ = this._ulvMainService.inDialog$;\n this.isMultiSelect$ = this._ulvMainService.isMultiSelect$;\n this.fullscreen$ = this._ulvMainService.fullscreen$;\n this.deviceSize$ = this._portalService.deviceSize$;\n this.hideToolbar$ = this._ulvMainService.hideToolbar$;\n this.newInlineEditMo$ = this._ulvMainService.newInlineEditMo$;\n this.conditionalFormats$ = this._ulvMainService.conditionalFormats$;\n this.cartableTemplates$ = this._ulvMainService.cartableTemplates$;\n this.cartableChildsMo$ = this._ulvMainService.cartableChildsMo$;\n this.title$ = this._ulvMainService.title$.pipe(pluck('text'));\n this.menuItems$ = this._ulvMainService.menuItems$;\n this.pagingSetting$ = this._ulvMainService.pagingSetting$;\n this.toolbarEnable$ = this._ulvMainService.enable$;\n this.mask$ = this._ulvMainService.viwerMask$.pipe(debounceTime(200));\n this.selectedMo$ = this._ulvMainService.moDataList$.pipe(map((items) => items.find((c) => c.$IsChecked)));\n this.moDataList$ = this._ulvMainService.moDataList$.pipe(tap((items) => this._setAllChecked(items)));\n this.selectedCount$ = this._ulvMainService.selectedCount$;\n\n this.context.on({\n MoDataListChanged: this._moDataListChanged.bind(this),\n GridSettingChanged: this._gridSettingChanged.bind(this)\n });\n // in gheire faal bood chon moshkel eijad mikard\n // va dar ulv event baiad raise shavad\n // ke data amade shode va ulvmainservice an ra begirad.gozaresh mortabet\n this._ulvMainService.reSetMoDataList(this.context.moDataList);\n let gridSetting = this.defaultGridSetting;\n if (this.context.GetGridSetting) {\n gridSetting = this.context.GetGridSetting() || this.defaultGridSetting;\n }\n\n this._setVisibleColumns();\n\n gridSetting.SortSettingList ||= [];\n this.allColumns = this.context.allColumns || [];\n this.updateGridSetting(gridSetting, false, false);\n this.parameters = BarsaApi.Common.Util.TryGetValue(\n this.context,\n 'Setting.ClassNames.CustomUi.Parameters',\n null\n );\n this.id = getUniqueId(4);\n\n this.itemSelector = BarsaApi.Common.Util.TryGetValue(this.context, 'Setting.ClassNames.CustomUiRow.Selector');\n\n this.parameters = BarsaApi.Common.Util.TryGetValue(this.context, 'Setting.ClassNames.CustomUi.Parameters');\n const fieldSettings = BarsaApi.Common.Util.TryGetValue(this.parameters, 'FieldSettings.MoDataList', []);\n\n fieldSettings.forEach((c) => {\n this.fields[c.ComponentParameter.$Caption] = c.$Caption;\n });\n }\n\n ngAfterViewInit(): void {\n super.ngAfterViewInit();\n\n this.deviceSize$\n .pipe(\n takeUntil(this._onDestroy$),\n tap((deviceSize) => this._deviceSizeChanged(deviceSize))\n )\n .subscribe();\n this._portalService.windowResize$.pipe(takeUntil(this._onDestroy$)).subscribe(() => this._windowResized());\n this.context?.fireEvent('afterrender', this);\n }\n ngOnDestroy(): void {\n super.ngOnDestroy();\n this.context.un('MoDataListChanged', this._moDataListChanged);\n this.context.un('GridSettingChanged', this._gridSettingChanged);\n }\n protected _gridSettingChanged(setting): void {\n this.gridSettingSource.next(setting);\n }\n protected _moDataListChanged(moDataList): void {\n this._ulvMainService.reSetMoDataList(moDataList);\n }\n protected _setAllChecked(items: MetaobjectDataModel[]): void {\n this._allCheckedSource.next(!items.some((c) => !c.$IsChecked));\n }\n\n protected _handleColumnsResized(e: columnsResizedEventArgs): void {\n const gridSetting: GridSetting = this.gridSettingSource.getValue();\n const { columns, resized } = e;\n const colList: ColSetting[] = gridSetting.ColSettingList;\n resized.forEach((column1) => {\n const resizedColumn = columns.find((c) => c.Name === column1.name);\n const column = colList.find((c) => c.Name === resizedColumn?.Name);\n if (column) {\n column.Width = column1.width;\n } else if (resizedColumn) {\n colList.push({ IsHidden: resizedColumn.Hidden, Name: resizedColumn.Name, Width: column1.width });\n }\n });\n this.updateGridSetting(gridSetting, false);\n this._setVisibleColumns();\n }\n protected _setVisibleColumns(): void {\n const columns = GetAllColumnsSorted(this.context);\n this._visibleColumnsSource.next(columns.filter((c) => !c.Hidden));\n }\n protected applyGroupby(): void {\n const sortList: SortSetting[] = BarsaApi.Common.Util.TryGetValue(\n this.context,\n 'Setting.View.GridSetting.SortSettingList',\n []\n );\n this.groupbySource.next(sortList.filter((c) => c.IsGrouped));\n }\n protected _raiseRowClick(index, mo): void {\n this.context?.fireEvent('rowdblclick', this.context, index, mo);\n }\n /* eslint-disable */\n protected _deviceSizeChanged(_: string): void {}\n protected _windowResized(): void {}\n\n protected _openMo(mo, i): void {\n this._raiseRowClick(i, mo);\n }\n\n protected updateGridSetting(setting, isSort = false, raiseEvent = true): void {\n if (!setting) {\n return;\n }\n this.context.Setting.View.GridSetting = setting;\n this.gridSettingSource.next(setting);\n this.applyGroupby();\n if (isSort) {\n setting.Event = 'SortChange';\n } else {\n setting.Event = '';\n }\n this._deviceSizeChanged(this._portalService.deviceSize);\n if (raiseEvent) {\n this.context.fireEvent('UserSettingChange', this.context, setting);\n }\n }\n protected _ulvCommandClicked(mo, index): void {\n this._removeCheckedAll();\n this._select(mo, index);\n }\n protected _checkedAll(): void {\n const moDataList = this.moDataList;\n moDataList.forEach((mo) => (mo.$IsChecked = true));\n this._ulvMainService.reSetMoDataList();\n this.context.fireEvent('rowSelectAll', this.context);\n }\n protected _removeCheckedAll(): void {\n this._deselctAll();\n // this.context.fireEvent('rowDeselectAll', this.context);\n }\n\n protected _deselctAll(): void {\n const moDataList = this.moDataList;\n moDataList.forEach((mo) => (mo.$IsChecked = false));\n this._ulvMainService.reSetMoDataList();\n }\n protected _deselect(mo, index): MetaobjectDataModel {\n mo.$IsChecked = false;\n this._ulvMainService.reSetMoDataList();\n this.context.fireEvent('rowdeselect', this.context, index, mo);\n return mo;\n }\n\n protected _select(mo, index): MetaobjectDataModel {\n // this._deselctAll();\n mo.$IsChecked = true;\n this._ulvMainService.reSetMoDataList();\n this.context.fireEvent('rowselect', this.context, index, mo);\n return mo;\n }\n\n protected _doCheckedAll(checked): void {\n if (checked) {\n this._checkedAll();\n } else {\n this._removeCheckedAll();\n }\n }\n\n protected _getSelected(): MetaobjectDataModel | null {\n const selectedMo = this.moDataList.find((mo) => mo.$IsChecked);\n if (!selectedMo) {\n return null;\n }\n selectedMo.json = selectedMo;\n return selectedMo;\n }\n protected refreshContextMoDataList(moDataList): void {\n this.context.fireEvent('RefreshContextMoDataList', moDataList);\n }\n}\n","import {\n Input,\n Component,\n HostBinding,\n HostListener,\n Output,\n EventEmitter,\n OnInit,\n ChangeDetectionStrategy\n} from '@angular/core';\nimport { BaseComponent } from './base.component';\nimport { BarsaApi } from './barsa-api';\nimport { MetaobjectDataModel } from './models';\nimport { ReportSetting } from './report-base';\n\nexport interface FieldSettings extends MetaobjectDataModel {\n ComponentParameter: MetaobjectDataModel;\n RelatedField: string;\n}\nexport interface ReportItemSetting extends MetaobjectDataModel {\n FieldSettings: {\n MoDataList: Array<FieldSettings>;\n };\n}\n\n@Component({\n selector: 'bnrc-report-item-base',\n template: '',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class ReportItemBaseComponent extends BaseComponent implements OnInit {\n @Output() itemClick = new EventEmitter();\n @HostBinding('class') classNames2: string;\n @Input() classNames: string;\n @Input() context: {\n [key: string]: any;\n Setting: ReportSetting;\n } | null;\n @Input() mo: MetaobjectDataModel;\n @Input() allColumns: any[];\n @Input() index = -1;\n fields: any;\n parameters: ReportItemSetting | null;\n constructor() {\n super();\n this.fields = {};\n }\n\n @HostListener('click', ['$event.target'])\n onClick(): void {\n this.itemClick.emit({ index: this.index, mo: this.mo });\n }\n\n ngOnInit(): void {\n super.ngOnInit();\n this.classNames2 = this.classNames;\n this.parameters = BarsaApi.Common.Util.TryGetValue(this.context, 'Setting.ClassNames.CustomUiRow.Parameters');\n const fieldSettings = BarsaApi.Common.Util.TryGetValue(this.parameters, 'FieldSettings.MoDataList', []);\n\n fieldSettings.forEach((c) => {\n this.fields[c.ComponentParameter.$Caption] = c.$Caption;\n });\n }\n}\n","import { Input, Component, ChangeDetectionStrategy } from '@angular/core';\nimport { BaseComponent } from './base.component';\nimport { SystemSetting } from './system-base';\n\nexport interface ApplicationSetting {\n [key: string]: any;\n ConnectionInfo: string;\n AllowManagementWindow: boolean;\n DefaultSystemId: string;\n EnableCompactArray: boolean;\n EnableNotification: boolean;\n EnableScanner: boolean;\n ForceFormHelpButton: boolean;\n HideDeleteInForms: boolean;\n HideThemeButton: boolean;\n IsAdmin: boolean;\n IsInitializing: boolean;\n IsOnActivityDirectory: boolean;\n IsUser: boolean;\n MaxExcelExportRows: number;\n NewDateFix: boolean;\n NoLogout: boolean;\n ScannerAgentValidVersion: string;\n SecurityType: string;\n ShowDebugToolbar: boolean;\n ShowNextPrivious: boolean;\n SystemDict: { [key: string]: SystemSetting };\n Version: string;\n VersionSpl: string;\n User: {\n DispalyName: string;\n Id: string;\n Name: string;\n };\n WebConfig: {\n Workflow: {\n ShowInfoBar: true;\n ShowToolbar: true;\n ShowUserMsg: true;\n };\n };\n}\n@Component({\n selector: 'bnrc-application-base',\n template: '',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class ApplicationBaseComponent extends BaseComponent {\n // @ViewChildren(PlaceHolderDirective) placeHoldersRef: QueryList<\n // PlaceHolderDirective\n // >;\n @Input() context: {\n [key: string]: any;\n Setting: ApplicationSetting;\n };\n @Input() selectedSystemId: string;\n systemList: any[] = [];\n}\n","import { Input, Component, ChangeDetectionStrategy, ChangeDetectorRef } from '@angular/core';\nimport { BaseComponent } from './base.component';\nimport { getUniqueId } from '../constants';\nimport { FormPanelService } from '../services/form-panel.service';\nimport { LayoutSetting } from './models';\n\n@Component({\n selector: 'bnrc-layout-item-base',\n template: '',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class LayoutItemBaseComponent extends BaseComponent {\n @Input() config: LayoutSetting;\n @Input() isPanel: boolean;\n isSearchPanel: boolean;\n searchPanelIsObject: boolean;\n id: string;\n constructor(protected formPanelService: FormPanelService, protected _cdr: ChangeDetectorRef) {\n super();\n this.id = getUniqueId(4);\n this.formPanelService.isSearchPanel$.subscribe((isSearchPanel) => {\n this.isSearchPanel = isSearchPanel;\n });\n this.formPanelService.searchPanelIsObject$.subscribe((searchPanelIsObject) => {\n this.searchPanelIsObject = searchPanelIsObject;\n });\n }\n}\n","import {\n Input,\n Component,\n Self,\n ViewChild,\n ElementRef,\n OnInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef\n} from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { getUniqueId } from '../constants';\nimport { FormPanelService } from '../services/form-panel.service';\nimport { LayoutService } from '../services/layout.service';\nimport { LayoutItemBaseComponent } from './layout-item-base';\nimport { LayoutSetting } from './models';\n\n@Component({\n selector: 'bnrc-layout-panel-base',\n template: '',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class LayoutPanelBaseComponent extends LayoutItemBaseComponent implements OnInit {\n @Input() isPanel: boolean;\n @Input() config: LayoutSetting;\n @ViewChild('canvas', { static: true }) canvasRef: ElementRef;\n maxLabelWidth$: Observable<number>;\n isSearchPanel: boolean;\n id: string;\n constructor(\n public el: ElementRef,\n protected formPanelService: FormPanelService,\n @Self() protected layoutService: LayoutService,\n protected _cdr: ChangeDetectorRef\n ) {\n super(formPanelService, _cdr);\n this.id = getUniqueId(4);\n layoutService.id = 'panel' + this.id;\n this.formPanelService.isSearchPanel$.subscribe((isSearchPanel) => {\n this.isSearchPanel = isSearchPanel;\n });\n }\n ngOnInit(): void {\n super.ngOnInit();\n this.maxLabelWidth$ = this.layoutService.maxWidth$;\n this._calcWidth(this.config);\n }\n _calcWidth(config): void {\n config.items.forEach((item) => {\n switch (item.xtype) {\n case 'Ly.LayoutJoin':\n this._calcWidth(item);\n break;\n case 'Ly.LayoutControl':\n this._setLabelWidth(item);\n break;\n }\n });\n }\n _setLabelWidth(item: any): void {\n const fieldXtype = item.FieldUi?.originalXtype;\n if (fieldXtype === 'Ui.Button' || fieldXtype === 'Ui.CheckBox' || !item.TextVisible) {\n return;\n }\n const ctx = this.canvasRef.nativeElement.getContext('2d');\n ctx.font = 'normal 0.885rem IRANYekanDigits';\n let labelCaption = item.Caption;\n if (item.FieldUi?.Setting?.IsMandatory) {\n if (labelCaption.indexOf('*') < 0) {\n labelCaption = labelCaption + ' *';\n }\n } else {\n labelCaption = labelCaption.replace('*', '');\n }\n\n const labelWidth = ctx.measureText(labelCaption).width;\n let labelWithPadding = labelWidth + 10;\n if (item.FieldUi?.Setting?.FieldIcon) {\n labelWithPadding += 21;\n }\n const controlWidth = Math.ceil(labelWithPadding);\n this.layoutService.setMaxWidth(controlWidth);\n }\n}\n","import {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n Inject,\n Injector,\n OnDestroy,\n OnInit,\n Optional,\n Self,\n Type,\n ViewChild,\n ViewContainerRef,\n ViewRef\n} from '@angular/core';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { BarsaApi } from './abstract-classes/barsa-api';\nimport { BaseComponent } from './abstract-classes/base.component';\nimport { getUniqueId } from './constants';\nimport { FORM_DIALOG_COMPONENT } from './injdection-tokens';\nimport { BarsaDialogService } from './services/barsa-dialog.service';\nimport { ContainerService } from './services/container.service';\nimport { PortalService } from './services/portal.service';\n@Component({\n selector: 'bnrc-container',\n template: '',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport abstract class ContainerComponent extends BaseComponent implements OnInit, AfterViewInit, OnDestroy {\n @ViewChild('containerRef', { static: true, read: ViewContainerRef })\n containerRef: ViewContainerRef;\n oldContainerContainer: ContainerComponent;\n parentContainer: any;\n public id = getUniqueId(6);\n private _viewRef: ViewRef | null;\n\n constructor(\n protected _el: ElementRef,\n protected _activatedRoute: ActivatedRoute,\n protected _portalService: PortalService,\n protected _vcr: ViewContainerRef,\n protected _dialogService: BarsaDialogService,\n protected _injector: Injector,\n protected _router: Router,\n protected _cdr: ChangeDetectorRef,\n @Self() @Optional() protected _containerService: ContainerService,\n @Optional() @Inject(FORM_DIALOG_COMPONENT) protected _formDialogComponent: Type<any>\n ) {\n super();\n this.oldContainerContainer = this._dialogService.containerComponent;\n this._dialogService.containerComponent = this;\n }\n get injector(): Injector {\n return this._injector;\n }\n get cdr(): ChangeDetectorRef {\n return this._cdr;\n }\n get vcr(): ViewContainerRef {\n return this.containerRef;\n }\n ngOnInit(): void {\n this.parentContainer = BarsaApi.Ul.ApplicationCtrlr.CurrentSystemAdapter;\n BarsaApi.Ul.ApplicationCtrlr.CurrentSystemAdapter = this;\n super.ngOnInit();\n if (this._containerService) {\n this._containerService.setViewContainerRef(this.containerRef);\n }\n }\n ngOnDestroy(): void {\n BarsaApi.Ul.ApplicationCtrlr.CurrentSystemAdapter = this.parentContainer;\n super.ngOnDestroy();\n this._dialogService.containerComponent = this.oldContainerContainer;\n }\n detach(): void {\n this._viewRef = this.containerRef.detach();\n this._cdr.detectChanges();\n }\n reAttach(): void {\n if (this._viewRef) {\n this.containerRef.insert(this._viewRef);\n this._cdr.detectChanges();\n }\n }\n}\n","import { AfterViewInit, ComponentRef, Component, ChangeDetectionStrategy } from '@angular/core';\r\nimport { from, Observable, Subscription } from 'rxjs';\r\nimport { takeUntil, map, filter, tap, concatMap } from 'rxjs/operators';\r\n\r\nimport { BarsaApi } from './barsa-api';\r\nimport { ModuleDataModel, PageDataModel, PlaceHolderDataModel, PortalDataModel } from './models';\r\nimport { ContainerComponent } from '../container.component';\r\n\r\n@Component({\r\n selector: 'bnrc-page-base',\r\n template: '',\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class PageBaseComponent extends ContainerComponent implements AfterViewInit {\r\n portalData$: Observable<PortalDataModel>;\r\n portalSubscription: Subscription;\r\n isRoot: boolean;\r\n hasRouterOutlet: PlaceHolderDataModel;\r\n hasRoute = true;\r\n fullscreen = true;\r\n pageData: PageDataModel | null;\r\n\r\n ngAfterViewInit(): void {\r\n super.ngAfterViewInit();\r\n this.addModulesToDom();\r\n }\r\n protected addModulesToDom(): void {\r\n this.getData$()\r\n .pipe(filter((c) => c != null))\r\n .subscribe((pageData) => {\r\n this.renderPlaceHolders(pageData);\r\n });\r\n }\r\n protected getData$(): Observable<PortalDataModel | null> {\r\n if (this.isRoot) {\r\n return this._portalService.portalData$;\r\n }\r\n return this._activatedRoute.data.pipe(\r\n map((data) => data.pageData),\r\n takeUntil(this._onDestroy$)\r\n );\r\n }\r\n\r\n protected renderPlaceHolders(pageData: PageDataModel | null): void {\r\n this.pageData = pageData;\r\n const modules = this.getModules(pageData);\r\n this.addModulesToPage(modules);\r\n }\r\n protected preparePlaceholder(\r\n placeHolderElement: HTMLElement | DocumentFragment,\r\n placeHolderName: string,\r\n pageData: PageDataModel | null\r\n ): void {\r\n // remove old attached component . when we use rxjs for update data\r\n const hasChild = placeHolderElement.hasChildNodes();\r\n if (hasChild) {\r\n placeHolderElement.removeChild(placeHolderElement.childNodes[0]);\r\n }\r\n const placeHolders = this.getPlaceHolders(pageData);\r\n const placeHolder = placeHolders.find((c) => c.Name === placeHolderName);\r\n if (placeHolder != null) {\r\n const modules = this.getModules(pageData);\r\n const module = modules.find((c) => c.PlaceHolder.Id === placeHolder.Id);\r\n if (module) {\r\n const controlUi = this.getModuleControlUi(module.Component);\r\n placeHolderElement.appendChild(controlUi);\r\n }\r\n } else {\r\n console.error('placeholder not found ' + placeHolderName);\r\n }\r\n }\r\n protected getModuleControlUi(component): any {\r\n const controlUi = document.createElement(component.Selector) as any;\r\n controlUi.settings = component.Settings;\r\n controlUi.activatedRoute = this._activatedRoute;\r\n return controlUi;\r\n }\r\n protected addModulesToPage(modules: Array<any>): void {\r\n modules = modules.sort((a, b) => (Number(a.OrderNumber) > Number(b.OrderNumber) ? 1 : -1));\r\n from(modules)\r\n .pipe(\r\n takeUntil(this._onDestroy$),\r\n concatMap((module) =>\r\n this.getComponentFactory(module.Component).pipe(\r\n tap((controlUi) => {\r\n controlUi.instance.settings = module.Component.Settings;\r\n controlUi.instance.activatedRoute = this._activatedRoute;\r\n if (this.containerRef) {\r\n this.containerRef.insert(controlUi.hostView);\r\n } else {\r\n this._vcr.insert(controlUi.hostView);\r\n }\r\n })\r\n )\r\n )\r\n )\r\n .subscribe(() => this._cdr.detectChanges());\r\n }\r\n protected getComponentFactory(uiComponent: {\r\n Selector: string;\r\n Name: string;\r\n Module: string;\r\n ModuleFileName: string;\r\n }): Observable<ComponentRef<any>> {\r\n return this._portalService.getComponent(\r\n uiComponent.Module,\r\n uiComponent.ModuleFileName,\r\n uiComponent.Name,\r\n uiComponent.Selector,\r\n this._injector\r\n );\r\n }\r\n\r\n protected getPlaceHolders(pageData): Array<PlaceHolderDataModel> {\r\n const placeholders = BarsaApi.Common.Util.TryGetValue(\r\n pageData,\r\n 'Component.Settings.PlaceHolders.MoDataList',\r\n []\r\n );\r\n return placeholders;\r\n }\r\n protected getModules(pageData): Array<ModuleDataModel> {\r\n return BarsaApi.Common.Util.TryGetValue(pageData, 'ModuleList.MoDataList', []);\r\n }\r\n}\r\n","import { ChangeDetectionStrategy, Component, OnDestroy, OnInit } from '@angular/core';\n\nimport { FieldBaseComponent } from './field-base';\nimport { BarsaApi } from './barsa-api';\n@Component({\n selector: 'bnrc-number-base',\n template: '',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class NumberBaseComponent extends FieldBaseComponent implements OnInit, OnDestroy {\n hasMask: boolean;\n tickRef: any;\n protected inputElement: HTMLInputElement | null | undefined;\n get decimalPrecision(): number {\n const decimalPrecision = Number(this.Setting.DecimalPrecision);\n if (isNaN(decimalPrecision)) {\n return 0;\n }\n return decimalPrecision;\n }\n ngOnInit(): void {\n super.ngOnInit();\n\n if (this.inputElement) {\n const formated = this._getFormated(this.value).toString();\n this.inputElement.value = formated;\n }\n this.hasMask =\n BarsaApi.Common.Util.TryGetValue(this.context, 'Setting.ShowThousandSeperator', false) ||\n BarsaApi.Common.Util.TryGetValue(this.context, 'Setting.DecimalPrecision', 0) > 0;\n }\n\n ngOnDestroy(): void {\n this._clearInterval();\n super.ngOnDestroy();\n }\n onKeyDown(e): void {\n const isCharacter = this._isCharacter(e);\n if (!isCharacter) {\n return;\n }\n const isValid = new RegExp('^[0-9,.]*$').test(e.currentTarget.value + e.key);\n if (!isValid || e.key === '.') {\n if (e.key === '.' && this.inputElement && this.decimalPrecision > 0) {\n const cursorPosition = this.inputElement.value.indexOf('.');\n this._setCursorPosition(cursorPosition + 1);\n }\n e.preventDefault();\n e.stopPropagation();\n }\n }\n onValueChange(e): void {\n const text: string = e.currentTarget?.value || '';\n this.reFormatValue(text, e);\n }\n protected _setValue(value): void {\n super._setValue(value);\n this.reFormatValue(this.value, { target: this.inputElement });\n }\n protected _clearInterval(): void {\n if (this.tickRef) {\n clearInterval(this.tickRef);\n this.tickRef = null;\n }\n }\n protected _isCharacter(evt): boolean {\n if (typeof evt.which === 'undefined') {\n return true;\n } else if (typeof evt.which === 'number' && evt.which > 0) {\n return !evt.ctrlKey && !evt.metaKey && !evt.altKey && evt.which !== 8 && evt.key.length === 1;\n }\n return false;\n }\n\n protected _getFormated(val): string {\n return this._numeralPipe.transform(val, this.decimalPrecision, this.Setting.ShowThousandSeperator).toString();\n }\n protected _setCursorPosition(cursorPosition): void {\n if (this.inputElement) {\n if (cursorPosition > this.inputElement.value.length && this.decimalPrecision) {\n cursorPosition = this.inputElement.value.length;\n }\n\n this.inputElement.setSelectionRange(cursorPosition, cursorPosition);\n }\n }\n private reFormatValue(text: string | number, e: any): void {\n let newVal: string | undefined;\n if (typeof text === 'number') {\n if (text === this.value) {\n return;\n }\n text = text.toString();\n }\n if (typeof text === 'undefined' && typeof this.value === 'undefined') {\n return;\n }\n\n if (text) {\n let indexofDot = text.indexOf('.');\n const selectionStart = this.inputElement?.selectionStart;\n\n const decimalPersicion = this.decimalPrecision;\n if (decimalPersicion) {\n const t = text.length - (indexofDot + 1);\n if (t > decimalPersicion) {\n const diff = t - decimalPersicion;\n if (selectionStart && selectionStart < text.length) {\n // text = text.substring(0, text.length - diff);\n text =\n text.substring(0, selectionStart) +\n text.substring(selectionStart + 1, selectionStart + 1 + text.length - diff);\n } else {\n text = text.substring(0, text.length - 1);\n }\n }\n }\n let formated: string = this._getFormated(text).toString();\n newVal = this._numeralPipe.getValue(formated);\n\n let indexOfDotFormated = formated.indexOf('.');\n\n if (decimalPersicion === 0) {\n indexofDot = text.length;\n indexOfDotFormated = formated.length;\n }\n if (this.hasMask) {\n let cursorPosition = this.inputElement?.selectionStart;\n let diff = 0;\n if (indexofDot < 0 && decimalPersicion > 0) {\n formated = this._getFormated(text);\n newVal = this._numeralPipe.getValue(formated);\n } else if (cursorPosition != null && cursorPosition <= indexofDot) {\n diff = indexOfDotFormated - indexofDot;\n cursorPosition += diff;\n }\n if (this.inputElement && this.inputElement.value !== formated) {\n this.inputElement.value = formated;\n }\n if (e.target.value !== formated) {\n e.target.value = formated;\n }\n this._setCursorPosition(cursorPosition);\n } else {\n if (this.inputElement) {\n this.inputElement.value = newVal;\n }\n }\n } else if (this.inputElement) {\n this.inputElement.value = '';\n }\n if (newVal && +newVal === this.value) {\n return;\n }\n this.value = typeof newVal == 'undefined' ? '' : newVal;\n this.formmatedValue.emit(this.inputElement?.value);\n this.valueChange.emit(this.value);\n }\n}\n","import { SafeHtml } from '@angular/platform-browser';\nimport { DateInfo as DateInfoService } from '../date-services';\n\nexport class GeneralControlInfoModel {\n [key: string]: any;\n ControlFieldCaption: string;\n ControlFieldCaptionTranslated: string;\n ControlFieldDefId: string;\n ControlName: string;\n RelatedFieldList: [];\n Hide: boolean;\n xtype: string;\n LabelPosition: string;\n IsMandatory: boolean;\n IsVisible: boolean;\n ShowLabel = true;\n IsReadOnly: boolean;\n IsEnabled: boolean;\n IsBold: boolean;\n IsAutomatic: boolean;\n JsonExtraProp: any | null;\n Component: string;\n Info: ControlInfoTypes;\n FieldIcon: string;\n IsLtr: boolean;\n DisplayType: string;\n}\nexport interface FileAttachmentInfo {\n [key: string]: any;\n Id: string;\n IsNew: boolean;\n IsDeleted: boolean;\n Type: string;\n FileName?: string;\n}\nexport class StringControlInfoModel extends GeneralControlInfoModel {\n MaxLength: number;\n MinLength: number;\n RegularExpression: string;\n IsPassword: boolean;\n IsMultiLine: boolean;\n NullText: string;\n AllowedStringChars: string;\n OnlyAcceptCurrentCulture: boolean;\n}\nexport class RichStringControlInfoModel extends StringControlInfoModel {\n IsHtmlViewer: boolean;\n}\nexport class NumberControlInfoModel extends GeneralControlInfoModel {\n MinValue: number;\n MaxValue: number;\n DecimalPrecision: number;\n ShowThousandSeperator: boolean;\n NumberType: string;\n CurrencySymbol: string;\n}\nexport class FilePictureInfoModel extends GeneralControlInfoModel {\n Ext: string;\n FileId: string;\n IsDeleted: boolean;\n}\nexport class FileControlInfoModel extends GeneralControlInfoModel {\n CanDelete: boolean;\n CanSave: boolean;\n CanView: boolean;\n IsMultiSelect: boolean;\n MaxFileCount: number;\n MaxFileSizeKb: number;\n OfficeOnline: boolean;\n ValidExtensions: string;\n ViewType: string;\n}\nexport class CommandControlInfoModel extends GeneralControlInfoModel {\n MenuName: string;\n DisableWhenReadonly: boolean;\n DisplayType: string;\n DynamicCommand: string;\n}\nexport class IconControlInfoModel extends GeneralControlInfoModel {}\nexport class PictureFileControlInfoModel extends GeneralControlInfoModel {\n SizeMode: number;\n MaxFileSizeKb: number;\n ValidExtensions: string;\n}\nexport class GaugeControlInfoModel extends GeneralControlInfoModel {\n IsAutomatic: boolean;\n MaxValue: number;\n MaxValue2: number;\n MinValue: number;\n MinValue2: number;\n Value: number;\n}\nexport type RelationListTypes =\n | RelationListControlInfoModel\n | HistoryControlInfoModel\n | RabetehAkseTakiListiControlInfoModel\n | SingleRelationControlInfoModel;\nexport class RelationListControlInfoModel extends GeneralControlInfoModel {\n RelationViewType: string;\n UlvSetting: ReportModel;\n}\nexport class HistoryControlInfoModel extends RelationListControlInfoModel {\n HasExternalParameter: boolean;\n ParamName1: string;\n}\nexport class RabetehAkseTakiListiControlInfoModel extends RelationListControlInfoModel {\n AutoSave;\n}\nexport class RelatedReportControlInfoModel extends GeneralControlInfoModel {\n HasExternalParameter: boolean;\n ParamName1: string;\n UlvSetting: ReportModel;\n}\nexport class CodeEditorControlInfoModel extends GeneralControlInfoModel {\n ExtraText: string;\n Suggestions: string;\n}\nexport class EnumControlInfoModel extends GeneralControlInfoModel {\n IsMultiSelect: boolean;\n ShowAsRadioButton: boolean;\n IconDisplayType: string;\n DataSource: {\n Rows: RowDataOption[];\n };\n EmptyRowData: RowDataOption;\n}\nexport class RowDataOption {\n id: string;\n IsEmpty: boolean;\n txt: string;\n txt_safe?: string;\n url: string;\n}\nexport class DateTimeControlInfoModel extends GeneralControlInfoModel {\n CalendarType: string;\n DateFormat: string;\n ShowDate1: boolean;\n ShowTime1: boolean;\n TimeFormat: string;\n}\nexport class BoolControlInfoModel extends GeneralControlInfoModel {\n FalseCaption: string;\n TrueCaption: string;\n TrueIcon: string;\n ViewType: string;\n FalseIcon: string;\n}\nexport class CalculateControlInfoModel extends GeneralControlInfoModel {\n InnerCtrlr: ControlInfoTypes;\n ExecutaionTime: string;\n EditType: string;\n DontShowRecalculateButton: boolean;\n}\nexport class SubformControlInfoModel extends GeneralControlInfoModel {\n TypeDefId: any;\n TypeDefIcon: string;\n IsComposedRelation: string;\n DropDownReportId: string;\n TypeViewId: string;\n FormPanelSetting: FormSetting;\n}\nexport interface DownloadFileInfo {\n fileId: string;\n fileUrl: string;\n viewInBrowser: boolean;\n convertTo: string;\n isOfficeOnline: boolean;\n forOcx: boolean;\n}\nexport interface DownloadFileInfoResult {\n filename: string;\n content: string;\n contentType: string;\n succeed: boolean;\n}\nexport class LinearListControlInfoModel extends GeneralControlInfoModel {\n DefaultField: string;\n ExtraJsonPropField: string;\n FillBeforeDropDown: boolean;\n IsGeneralInfo: boolean;\n IsMultiSelect: boolean;\n Relation: ListRelationModel;\n RelationViewType: string;\n RowIcon: string;\n TargetTypeDefId: string;\n}\nexport class ListRelationModel {\n [key: string]: any;\n ChildFdId: string;\n ChildFdName: string;\n IsAutoSave: boolean;\n ParentMoId: string;\n RelationType: string;\n}\nexport class SingleRelationControlInfoModel extends GeneralControlInfoModel {\n ColumnRequestEnum: string;\n DropDownReportId: string;\n FillBeforeDropDown: boolean;\n HideCombo: boolean;\n RelationViewType: string;\n PassParentForm: boolean;\n ShowNewButton: boolean;\n ShowOkCancel: boolean;\n ViewRelatedFormType: string;\n TargetTypeDefId: string;\n DataSource: {\n Rows: RowDataOption[];\n };\n PreviewFieldCaption: string;\n PreviewFieldId: string;\n PreviewFieldName: string;\n}\n\nexport type ControlInfoTypes =\n | SubformControlInfoModel\n | CalculateControlInfoModel\n | BoolControlInfoModel\n | EnumControlInfoModel\n | IconControlInfoModel\n | FileControlInfoModel\n | DateTimeControlInfoModel\n | NumberControlInfoModel\n | StringControlInfoModel\n | PictureFileControlInfoModel\n | GaugeControlInfoModel\n | CommandControlInfoModel\n | CodeEditorControlInfoModel;\n\nexport interface FormViewSetting {\n [key: string]: any;\n Layout94: any;\n ControlInfo: GeneralControlInfoModel[];\n}\nexport interface FormSetting {\n [key: string]: any;\n Data: {\n [key: string]: any;\n Mo: MetaobjectDataModel;\n };\n View: FormViewSetting;\n}\n\nexport class MetaobjectDataModel {\n [key: string]: any;\n $FieldDict?: { [key: string]: string };\n $ReportId?: string;\n $Type?: string;\n $StyleIndex?: number[];\n $Caption: string;\n $Icon?: string;\n $State?: string;\n $TypeDefId?: string;\n $TypeDefName?: string;\n $Children?: MetaobjectDataModel[];\n Id: string;\n}\nexport declare class CalendarMetaobjectDataModel extends MetaobjectDataModel {\n $Color: string;\n $MomentStartDate: string;\n $MomentEndDate: string;\n $StartTimes: string;\n $EndTimes: string;\n $Title: string;\n $Notes: string;\n $StartDateInfo?: DateInfoService;\n $EndDateInfo?: DateInfoService;\n}\n\nexport class MoForReportModel {\n $Type?: string;\n TypeDefId: string;\n ReportId: string;\n Icon?: string;\n MoDataList: Array<MetaobjectDataModel>;\n DeletedList: Array<{ Id: string; TypeDefId: string }>;\n AddedList: Array<{ Id: string; TypeDefId: string }>;\n Paging: PagingSetting;\n Relation?: {\n RelationType: string;\n ParentMoId: string;\n ParentFdId: string;\n ChildFdId: string;\n ParentFdName: string;\n ChildFdName: string;\n PassParentMoField: string;\n IsAutoSave: boolean;\n IsAutoSave_ReloadParentForms: boolean;\n IsAutoSave_ReloadRootParentList: boolean;\n };\n constructor() {\n this.DeletedList = this.AddedList = this.MoDataList = [];\n }\n}\nexport class ReportBaseInfo {\n Id: string;\n Caption: string;\n FolderId: string;\n IconUrl: string;\n Name: string;\n ReportId: string;\n}\nexport class ReportExtraInfo extends ReportBaseInfo {\n TypeDefId: string;\n TypeDefCaption: string;\n ReportType: string;\n HideToolbar: boolean;\n}\n\nexport class MetaobjectRelationModel extends ListRelationModel {\n ParentFdId: string;\n PassParentMoField: string;\n}\n\nexport enum FieldInfoTypeEnum {\n IntInfo = 0,\n StringInfo = 2,\n DateInfo = 3,\n BoolInfo = 5,\n EnumInfo = 6,\n UserInfo = 7,\n CategoryInfo = 8,\n MetaObjectInfo = 9,\n CommandInfo = 10, // 0x0000000A\n PicturesInfo = 11, // 0x0000000B\n RelationInfo = 12, // 0x0000000C\n HistoryInfo = 13, // 0x0000000D\n RelationInfoReverse_AksListi = 14, // 0x0000000E\n CreatorUserInfo = 15, // 0x0000000F\n CreationDateInfo = 16, // 0x00000010\n LastUpdateDateInfo = 17, // 0x00000011\n ReminderInfo = 18, // 0x00000012\n RichStringInfo = 19, // 0x00000013\n ConvertCommandInfo = 20, // 0x00000014\n RelationInfoSingleReverse_AksTakiListi = 21, // 0x00000015\n DialCommandInfo = 22, // 0x00000016\n FindContactCommandInfo = 23, // 0x00000017\n SequenceCommandInfo = 24, // 0x00000018\n CurrencyInfo = 25, // 0x00000019\n SinglePictureInfo = 26, // 0x0000001A\n WordReportCommandInfo = 27, // 0x0000001B\n HierarchicalInfo = 28, // 0x0000001C\n TimeSpanInfo = 29, // 0x0000001D\n ReportInfo = 30, // 0x0000001E\n FileInfo = 31, // 0x0000001F\n WordFileInfo = 32, // 0x00000020\n PictureFileInfo = 33, // 0x00000021\n GaugeInfo = 34, // 0x00000022\n CodeInfo = 35, // 0x00000023\n WorkCenterInfo = 36, // 0x00000024\n IsDeletedInfo = 37, // 0x00000025\n RowNumberInfo = 38, // 0x00000026\n BinaryInfo = 39, // 0x00000027\n ReverseMetaObjectInfo_AksTakiTaki = 40, // 0x00000028\n ColorInfo = 41, // 0x00000029\n IconInfo = 42, // 0x0000002A\n RefreshFieldCommandInfo = 43, // 0x0000002B\n ReferenceFieldInfo = 44, // 0x0000002C\n SearchCommandInfo = 45, // 0x0000002D\n OrderInfo = 46 // 0x0000002E\n}\nexport interface ClassNamesModel {\n CommandBarClass: string;\n DataClass: string;\n SelectionClass: string;\n ViewerClass: string;\n}\nexport interface ExtraModel {\n CustomCommands?: CustomCommand[];\n DefaultCommandsAccess?: DefaultCommandsAccess;\n ParentUlvConfig?: any;\n Relation?: MetaobjectRelationModel;\n Report?: ReportExtraInfo;\n ExtraJsonPropReport?: any;\n}\n\nexport class BaseReportModel {\n ClassNames: ClassNamesModel;\n Extra: ExtraModel;\n View: ViewTypes;\n SearchPanel: any;\n DefaultItemComponent = 'ReportDefaultItemComponent';\n}\nexport interface DefaultCommandsAccess {\n Add: boolean;\n AddToList: boolean;\n Delete: boolean;\n Edit: boolean;\n Export: boolean;\n Print: boolean;\n Refresh: boolean;\n RemoveFromList: boolean;\n View: boolean;\n}\nexport class CustomCommand {\n Data: any;\n DisableWhenReadonly: boolean;\n HideDisable: boolean;\n IconUrl: string;\n IsLarge: boolean;\n Mytype: string;\n Order: number;\n ShowOnContext: boolean;\n ShowOnToolbar: boolean;\n Text: string;\n UseAlways: boolean;\n UseForMulti: boolean;\n UseForSingle: boolean;\n}\nexport class ReportModel extends BaseReportModel {\n Data: MoForReportModel;\n constructor() {\n super();\n }\n}\nexport class ReportListModel extends BaseReportModel {\n View: GridView;\n}\nexport class ReportFormModel extends BaseReportModel {\n View: FormView;\n}\nexport interface TreeView {\n ConditionalFormats: [];\n ParentIdDbName: string;\n ShowSelectionChecks: boolean;\n TreeAutoOpenLevels: number;\n}\n\nexport interface GridView {\n AllowGridColumnSort: boolean;\n AutoInlineEdit: boolean;\n ColumnRequestEnum: string;\n Columns: Array<ReportViewColumn>;\n ConditionalFormats: [];\n DisableRowReload: boolean;\n GridSetting: GridSetting;\n Grid_FreeColumnSizing: boolean;\n Grid_GridLines: string;\n Grid_HideHeader: boolean;\n Grid_ShowRowNumber: boolean;\n HasConditionalFormat: boolean;\n HasSummaryRow: boolean;\n HideIcon: boolean;\n IsCheckList: boolean;\n}\nexport interface CalendarView {\n CalendarFields: CalendarFields;\n}\nexport interface FormView {\n FormPanelSetting: any;\n}\nexport type ViewTypes = GridView | CalendarView | TreeView | FormView;\n\nexport type ReportModelTypes = ReportListModel | ReportCalendarModel | ReportFormModel | ReportTreeModel;\n\nexport class ReportCalendarModel extends BaseReportModel {\n View: CalendarView;\n}\nexport class ReportTreeModel extends BaseReportModel {\n View: TreeView;\n}\nexport interface CalendarFields {\n EndDate: string;\n Notes: string;\n StartDate: string;\n Title: string;\n Color: string;\n}\n\nexport class ReportViewColumn {\n Alias: string;\n Caption: string;\n FieldDefId: string;\n FieldTypeId: number;\n FieldType: string;\n HasSummary: boolean;\n Hidden: boolean;\n IsLtr: boolean;\n IsPreview: boolean;\n MetaFieldTypeId: string;\n Name: string;\n Width: number;\n Tag?: string;\n Icon: string;\n OnlyImage?: boolean;\n Extra?: any;\n $Width: string;\n $Width2?: string;\n $MergedFieldsToColumn?: string[];\n $CSSClassName?: string;\n $CustomComponent?: EjrayOlgo;\n}\n\nexport class GridSetting {\n ColSettingList: Array<ColSetting>;\n SortSettingList: Array<SortSetting>;\n AutoSizeColumns: boolean;\n}\nexport class ColSetting {\n Name: string;\n Width: number;\n IsHidden: boolean;\n}\nexport class SortSetting {\n Name: string;\n SortDirection: string;\n IsGrouped: boolean;\n}\n\nexport class ReportField {\n public key: string;\n public value: string;\n public caption: string;\n constructor(public column: ReportViewColumn, public item: any) {\n const name = column.Name;\n this.caption = column.Caption;\n this.value = this.item[name];\n if (Number(column.FieldTypeId) === FieldInfoTypeEnum.DateInfo) {\n this.value = this.item[name + '$Caption'];\n }\n if (Number(column.FieldTypeId) === FieldInfoTypeEnum.IconInfo) {\n this.value = this.item[name].Url;\n }\n }\n}\n\nexport interface LoginResult {\n data: { sth: string };\n}\nexport interface ComponentSettingsDataModel extends MetaobjectDataModel {\n PlaceHolders?: PlaceHolderDataModel[];\n}\nexport interface ComponentDataModel extends MetaobjectDataModel {\n Selector: string;\n Settings: ComponentSettingsDataModel;\n}\nexport interface PlaceHolderDataModel extends MetaobjectDataModel {\n Name: string;\n Title: string;\n IsPage: boolean;\n OrderNumber: string;\n}\n\nexport interface ModuleDataModel extends MetaobjectDataModel {\n Title: string;\n PlaceHolder: PlaceHolderDataModel;\n Component: ComponentDataModel;\n}\nexport interface PageListReportModel extends MoForReportModel {\n MoDataList: Array<PageDataModel>;\n}\nexport interface ModuleListReportModel extends MoForReportModel {\n MoDataList: Array<ModuleDataModel>;\n}\nexport interface PageDataModel extends MetaobjectDataModel {\n Component: ComponentDataModel;\n ModuleList: ModuleListReportModel;\n ChildPageList: PageListReportModel;\n Title: string;\n Route: string;\n IsDefaultRoute: boolean;\n IsLoginRoute: boolean;\n}\n\nexport interface PortalDataModel extends PageDataModel {\n IsActive: boolean;\n IsPwa: boolean;\n PortalSettings: MetaobjectDataModel;\n}\nexport interface GroupVisibility {\n enable: boolean;\n visible: boolean;\n readonly: boolean;\n}\n\nexport interface IHeaderLayout {\n [key: string]: any;\n Title: string;\n Subtitle: string;\n Avatar: any;\n FacetList: { MoDataList: MetaobjectDataModel[] };\n}\n\nexport interface MenuItem {\n icon: string;\n text: string;\n itemId: string;\n Data: any;\n Command: any;\n handler: () => void;\n IsBuiltin?: boolean;\n}\nexport interface PagingSetting {\n EndIndex: number;\n HasPaging: boolean;\n Page: number;\n PageSize: number;\n RowCount: number;\n StartIndex: number;\n TotalPages: number;\n TotalRows: number;\n}\nexport interface ColumnInfoType {\n Name: string;\n Hidden: boolean;\n Caption: string;\n IsMandatory?: boolean;\n Width: number;\n}\nexport interface SearchPanelSettings extends MetaobjectDataModel {\n Title: string;\n ReportId: string;\n IsDefault: boolean;\n IsPublic: boolean;\n ApplyAutomatically: boolean;\n SearchMo?: string;\n FieldsSetting?: string;\n}\nexport declare type DeviceSize = 'desktop' | 'mobile' | 'tablet';\nexport const DateRanges = [\n 'DateR_None',\n 'DateR_SpecificRange',\n 'DateR_Today',\n 'DateR_ThisWeek',\n 'DateR_ThisMonth',\n 'DateR_ThisYear',\n 'DateR_DaysBefore',\n 'DateR_PrevWeek',\n 'DateR_PrevMonth',\n 'DateR_PrevYear',\n 'DateR_DaysAfter',\n 'DateR_NextWeek',\n 'DateR_NextMonth',\n 'DateR_NextYear'\n];\n\nexport interface UiReportViewBase {\n UiComponent: {\n Component: boolean;\n Module: string;\n ModuleFileName: string;\n Name: string;\n Selector: string;\n Settings: UiReportViewBaseSetting;\n };\n}\nexport interface UiReportViewBaseSetting {\n [key: string]: any;\n Type: string;\n Icon: string;\n IsDefault: boolean;\n Hidden: boolean;\n EnableSearch: boolean;\n DisableResponsive?: boolean;\n DisableOverflowContextMenu?: boolean;\n HorizontalGroupBy: boolean;\n}\n\nexport interface LayoutSetting {\n [key: string]: any;\n Title?: string;\n xtype: string;\n TextVisible?: boolean;\n items: LayoutSetting[];\n IsRoot?: boolean;\n SelectedTabPageName?: string;\n}\nexport declare type AbbrevationDeviceSize = 's' | 'm' | 'l' | 'xl';\nexport interface TreeNodeObj {\n isExpand: boolean;\n visibility: boolean;\n expand: () => void;\n collapse: () => void;\n Data: MetaobjectDataModel;\n children: TreeNodeObj[];\n icon: string;\n key: string;\n leaf: boolean;\n text: string;\n level: number;\n loading?: boolean;\n hasOneDepthLevel?: boolean;\n parentNode: TreeNodeObj | null;\n firstChild: TreeNodeObj | null;\n lastChild: TreeNodeObj | null;\n previousSibling: TreeNodeObj | null;\n nextSibling: TreeNodeObj | null;\n attributes: { Data: MetaobjectDataModel | null };\n hasChildNodes: () => boolean;\n noDrop: boolean;\n $Children?: TreeNodeObj[];\n}\n\nexport interface ColumnResizedArgs {\n name: string;\n width: number;\n}\nexport type columnsResizedEventArgs = { columns: Array<ReportViewColumn>; resized: Array<ColumnResizedArgs> };\nexport type RelationItemType = {\n Id: string;\n SourceTypeDefId: string;\n ObjectInRelationName: string;\n GroupCaption: string;\n};\n\nexport interface EjrayOlgo extends MetaobjectDataModel {\n Module: string;\n ModuleFileName: string;\n Name: string;\n Selector: string;\n Parameters?: MetaobjectDataModel;\n Settings?: MetaobjectDataModel;\n}\n\nexport interface IUploadingState {\n key: string;\n uploading: boolean;\n state: 'Uploading' | 'Error' | 'Complete' | 'Start';\n progress: any;\n}\nexport type GroupByItem = { [key: string]: any; id: string; key: string; value: any[] };\nexport type NotifyOptions = {\n Sound: boolean; // Sound of notification. Set this false to disable sound.\n Image: string | null; // Image source string\n Title: string | null; // Title of notification. If you do not include the title in options it will automatically takes its value\n Icon: boolean; // Icon of notification. Leave as is for default icon or set custom string\n Delay: number; // Hide notification after this time (in miliseconds)\n Closable: boolean; // Make notifications closable\n DelayIndicator: boolean; // Show timer indicator\n CloseOnClick: boolean; // Close notifications by clicking on them\n IsRtl: boolean;\n Position: string | object; // Available options: \"top left\", \"top right\", \"bottom left\", \"bottom right\", \"center top\", \"center bottom\"\n SoundPath: string; // The folder path where sounds are located\n Size: string; // normal, mini, large\n ContinueDelayOnInactiveTab: boolean; // Continue delay when browser tab is inactive\n Width: number; // Width of notification box\n MessageHeight: number; // Notification message maximum height.\n NotificationItem?: NotificationItem;\n};\nexport type ShareButtonsChoiceDef = { mo: MetaobjectDataModel; choiceList: ChoiceDef[]; add: boolean };\nexport type ChoiceDef = {\n ActivityDefId: string;\n ActivityRunId: string;\n ChoiceDefId: string;\n ChoiceName?: string;\n Title: string;\n Icon?: string;\n HasBar?: boolean;\n};\nexport type WorkflowExecuteChoiceStatus = {\n loading: boolean;\n result: any;\n error: any;\n choice?: ChoiceDef;\n};\nexport type NotificationPayload = {\n msg: string;\n title: string;\n type: string;\n image: string;\n mo;\n uiOptions: NotifyOptions;\n otherOptions: Record<string, any>;\n};\nexport type NotificationAction = {\n Title: string;\n Id: string;\n Icon: string;\n Status: string | any;\n};\nexport type NotificationItem = MetaobjectDataModel & {\n Title: string;\n Unread: boolean;\n Content: string;\n $SafeContent?: SafeHtml;\n Priority: number;\n Subject: string;\n Tag: string;\n Icon: string;\n Image: string;\n CreationDate: Date;\n CreationDate$Caption: string;\n UiActions?: NotificationAction[];\n $ChoiceDefStatus?: WorkflowExecuteChoiceStatus;\n};\n\nexport type ExNotificationPayload = {\n lang: string;\n isRtl: boolean;\n notificationItem: NotificationItem;\n};\nexport type FormVisibilityStatus = 'Pending' | 'Visible';\nexport type CartableTemplateKey = { TypeDefId: string; SettingsId: string };\n","import { BaseComponent } from './base.component';\nimport { formatBytes } from '../constants';\nimport { BarsaApi } from './barsa-api';\n\nexport class FilesValidationHelper extends BaseComponent {\n _maxFileCount: number;\n _maxFileSize: number;\n _maxTotalFileSize: number;\n\n get maxFileCount(): number {\n return this._maxFileCount;\n }\n set maxFileCount(val: number) {\n this._maxFileCount = val;\n }\n get maxFileSize(): number {\n return this._maxFileSize;\n }\n set maxFileSize(val: number) {\n this._maxFileSize = val * 1024;\n }\n get maxTotalFileSize(): number {\n return this._maxTotalFileSize;\n }\n set maxTotalFileSize(val: number) {\n this._maxTotalFileSize = val * 1024;\n }\n\n constructor(maxFileCount: number, maxFileSize: number, maxTotalFileSize: number) {\n super();\n this.maxFileCount = Number(maxFileCount);\n this.maxFileSize = Number(maxFileSize);\n this.maxTotalFileSize = Number(maxTotalFileSize);\n }\n\n public validateFiles(files: File[]): boolean {\n return this._validateSize(files);\n }\n\n private _validateSize(files: File[]): boolean {\n const totalFileSize = files.reduce((accumulator, currFile) => accumulator + currFile.size, 0);\n const uplaodTotalSizeTooBigText = BarsaApi.BBB['Uplaod_TotalSizeTooBig'];\n const uplaodFileTooBigText = BarsaApi.BBB['Uplaod_FileTooBig'];\n const maxFilesExceeded = BarsaApi.BBB['Uplaod_MaxFilesExceeded'];\n\n let errorMsg = '';\n if (files.length > this.maxFileCount && this.maxFileCount > 0) {\n errorMsg = maxFilesExceeded + `(${this.maxFileCount})`;\n }\n const fileReachSize: File[] = [];\n files.forEach((file) => {\n if (file.size > this.maxFileSize) {\n fileReachSize.push(file);\n }\n });\n if (files.length > 1 && this.maxTotalFileSize > 0 && totalFileSize > this.maxTotalFileSize) {\n errorMsg = uplaodTotalSizeTooBigText\n ?.replace('{{{filesize}}}', this._getMbSize(totalFileSize))\n .replace('{{maxFilesize}}', this._getMbSize(this.maxTotalFileSize));\n } else if (fileReachSize.length) {\n errorMsg += uplaodFileTooBigText\n ?.replace('{{{filesize}}}', this._getMbSize(fileReachSize[0].size))\n .replace('{{maxFilesize}}', this._getMbSize(this.maxFileSize));\n errorMsg +=\n `<br/>` +\n fileReachSize\n .map(\n (c, index) =>\n `<div class=\"file-validation\" ><strong>${index + 1}-</strong><strong>${\n c.name\n }</strong></div>`\n )\n .join('<br/>');\n }\n if (errorMsg) {\n BarsaApi.Ul.MsgBox.Error(errorMsg, () => {});\n return false;\n }\n return true;\n }\n private _getKbSize(size): string {\n return formatBytes(size, 2, 'KB');\n }\n private _getMbSize(size): string {\n return formatBytes(size, 2, 'MB');\n }\n}\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n EventEmitter,\n Input,\n OnInit,\n Optional,\n Output,\n Renderer2,\n SimpleChanges,\n TemplateRef\n} from '@angular/core';\nimport { ContentDensity } from '@fundamental-ngx/core';\n\nimport { BaseComponent } from './base.component';\nimport { FindColumnByDbNamePipe } from '../pipes';\nimport { PortalService, UlvMainService, UploadService } from '../services';\nimport {\n AbbrevationDeviceSize,\n ColumnResizedArgs,\n columnsResizedEventArgs,\n DefaultCommandsAccess,\n DeviceSize,\n FormSetting,\n MetaobjectDataModel,\n RelationItemType,\n ReportViewColumn,\n UiReportViewBaseSetting,\n ShareButtonsChoiceDef\n} from './models';\n\n@Component({\n selector: 'bnrc-report-view-base',\n template: '',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class ReportViewBaseComponent<T extends UiReportViewBaseSetting> extends BaseComponent implements OnInit {\n @Input() contextView: any;\n @Input() viewSetting: T;\n @Input() allColumns: any;\n @Input() isCheckList: boolean;\n @Input() allChecked: boolean;\n @Input() moDataList: any;\n @Input() access: DefaultCommandsAccess;\n @Input() groupby: any;\n @Input() selectedCount: any;\n @Input() conditionalFormats: any;\n @Input() parentHeight: number;\n @Input() deviceName: DeviceSize;\n @Input() deviceSize: AbbrevationDeviceSize;\n @Input() contextMenuItems: any[];\n @Input() columns: any;\n @Input() allowInlineEdit: any;\n @Input() secondaryColumns: any;\n @Input() popin: boolean;\n @Input() customFieldInfo: MetaobjectDataModel | any;\n @Input() hasSummary: boolean;\n @Input() hasSelected: boolean;\n @Input() columnsCount: any;\n @Input() hideOpenIcon: boolean;\n @Input() openOnClick: boolean;\n @Input() typeDefId: string;\n @Input() extraRelation: any;\n @Input() relationList: Array<RelationItemType>;\n @Input() disableResponsive: boolean;\n @Input() rowItem: TemplateRef<any>;\n @Input() mobileOrTablet: boolean;\n @Input() inDialog: boolean;\n @Input() isMultiSelect: boolean;\n @Input() fullscreen: boolean;\n\n @Input() newInlineEditMo: MetaobjectDataModel | null;\n @Input() selectedMo: MetaobjectDataModel;\n @Input() inlineEditMode: boolean;\n @Input() onlyInlineEdit: boolean;\n @Input() rowHoverable: boolean;\n @Input() tlbButtons: any[];\n @Input() formSetting: FormSetting;\n @Input() disableOverflowContextMenu: boolean;\n @Input() rowActivable = true;\n @Input() contentDensity: ContentDensity;\n @Input() rtl = true;\n @Input() showOkCancelButtons;\n @Input() title;\n @Input() navigationArrow: string;\n @Input() cartableTemplates: { [key: string]: FormSetting };\n @Input() cartableChildsMo: { [key: string]: MetaobjectDataModel };\n @Output() deselectAll = new EventEmitter<void>();\n @Output() editFormPanelCancel = new EventEmitter<MetaobjectDataModel>();\n @Output() editFormPanelSave = new EventEmitter<MetaobjectDataModel>();\n @Output() selectNextInlineRecord = new EventEmitter<MetaobjectDataModel>();\n @Output() editFormPanelValueChange = new EventEmitter<MetaobjectDataModel>();\n @Output() ulvCommandClick = new EventEmitter<any>();\n @Output() sortAscending = new EventEmitter<any>();\n @Output() workflowShareButtons = new EventEmitter<ShareButtonsChoiceDef>();\n @Output() sortDescending = new EventEmitter<any>();\n @Output() filter = new EventEmitter<any>();\n @Output() executeToolbarButton = new EventEmitter<{ itemId: string; options?: any }>();\n @Output() rowCheck = new EventEmitter<{ mo; index; cause? }>();\n @Output() rowClick = new EventEmitter<{ mo; index }>();\n @Output() cartableFormClosed = new EventEmitter<{ mo; index }>();\n @Output() createNewMo = new EventEmitter<void>();\n @Output() updateMo = new EventEmitter<MetaobjectDataModel>();\n @Output() expandClick = new EventEmitter<MetaobjectDataModel>();\n @Output() trackBySelectedFn = new EventEmitter<{ index; record }>();\n @Output() allCheckbox = new EventEmitter<boolean>();\n @Output() mandatory = new EventEmitter<boolean>();\n @Output() columnResized = new EventEmitter<columnsResizedEventArgs>();\n @Input() set containerWidth(val: number) {\n this._containerWidth = val;\n this._containerWidthChanged(val);\n }\n\n resizedByUser: boolean;\n elWidth: number;\n canView = false;\n fitWidth: boolean;\n firstSelectedMetaobject: MetaobjectDataModel;\n private _singleClicked: boolean;\n protected _containerWidth = 0;\n constructor(\n protected _el: ElementRef,\n protected _cdr: ChangeDetectorRef,\n protected _renderer2: Renderer2,\n protected _findColumnByDbName: FindColumnByDbNamePipe,\n protected _ulvMainService: UlvMainService,\n protected _portalService: PortalService,\n @Optional() protected _uploadService?: UploadService\n ) {\n super();\n }\n\n ngOnInit(): void {\n super.ngOnInit();\n if (this.access.View && !this.showOkCancelButtons) {\n this.canView = true;\n }\n this.elWidth = this._el.nativeElement.clientWidth;\n this.fitWidth = this.viewSetting?.FitWidth === true ? true : false;\n }\n ngOnChanges(changes: SimpleChanges): void {\n super.ngOnChanges(changes);\n let detectChanges = false;\n Object.keys(changes).forEach((key) => {\n if (!changes[key].firstChange) {\n this[key] = changes[key].currentValue;\n detectChanges = true;\n }\n });\n if (detectChanges) {\n this.detectChanges();\n }\n }\n onColumnResized(e: Array<ColumnResizedArgs>): void {\n this.resizedByUser = true;\n this.columnResized.emit({ columns: this.columns, resized: e });\n }\n onDeselectAll(): void {\n this.deselectAll.emit();\n }\n onRowCheck({ mo, index }): void {\n this._singleClicked = true;\n setTimeout(() => {\n if (this._singleClicked) {\n this.rowCheck.emit({ mo, index });\n }\n }, 30);\n // this.rowCheck.emit({ mo, index, cause });\n }\n onWorkflowShareButtons(e: ShareButtonsChoiceDef): void {\n this.workflowShareButtons.emit(e);\n }\n onOlgoEvents(e: { title: string; data?: any }): void {\n this[e.title].emit(e.data);\n }\n onRowClick({ mo, index }): void {\n this._singleClicked = false;\n this.rowClick.emit({ mo, index });\n }\n onCartableFormClosed({ mo, index }): void {\n this.cartableFormClosed.emit({ mo, index });\n }\n\n onExpandClick(mo: MetaobjectDataModel): void {\n this.expandClick.emit(mo);\n }\n\n onAllCheckbox(checked): void {\n this.allCheckbox.emit(checked);\n }\n onClearCheckbox(): void {\n this.allCheckbox.emit(false);\n }\n onSelectNextInlineRecord(mo): void {\n this.selectNextInlineRecord.emit(mo);\n }\n onEditFormPanelSave(mo): void {\n this.editFormPanelSave.emit(mo);\n }\n onEditFormPanelCancel(mo: MetaobjectDataModel): void {\n this.editFormPanelCancel.emit(mo);\n }\n onEditFormPanelValueChange(mo: MetaobjectDataModel): void {\n this.editFormPanelValueChange.emit(mo);\n }\n onUlvCommand({ mo, index }): void {\n this.ulvCommandClick.emit({ mo, index });\n }\n\n onSortAscending(column): void {\n this.sortAscending.emit(column);\n }\n\n onSortDescending(column): void {\n this.sortDescending.emit(column);\n }\n\n onFilter(column): void {\n this.filter.emit(column);\n }\n onDynamicComponentEvents(e: { title: string; data?: any }, mo: MetaobjectDataModel, index: number): void {\n switch (e.title) {\n case 'rowCheck':\n this.onRowCheck({ mo, index });\n break;\n case 'rowClick':\n this.onRowClick({ mo, index });\n break;\n case 'ulvCommand':\n this.onUlvCommand({ mo, index });\n break;\n }\n }\n detectChanges(): void {\n this._cdr.detectChanges();\n }\n _trackBySelectedFn(index, record): void {\n this.trackBySelectedFn?.emit({ index, record });\n }\n\n _trackByColumn(index: number, column: ReportViewColumn): string {\n return `${column.Name}${index}`;\n }\n _trackByRow(index: number, row: MetaobjectDataModel): string {\n return `${row.$Group ? row.$Group : row.Id}${index}`;\n }\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n protected _containerWidthChanged(_: number): void {}\n}\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ComponentFactoryResolver,\n Input,\n OnInit,\n Renderer2,\n ViewContainerRef\n} from '@angular/core';\nimport { DomSanitizer } from '@angular/platform-browser';\nimport { BaseComponent } from './base.component';\n\nimport { ControlUiPipe } from '../pipes';\nimport { BreadCrumbInfo, FormPanelService } from '../services';\nimport { LayoutSetting, MetaobjectDataModel } from './models';\n\n@Component({\n selector: 'bnrc-form-props-base',\n template: '',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class FormPropsBaseComponent extends BaseComponent implements OnInit {\n @Input() breadCrumbs: BreadCrumbInfo[] | null;\n @Input() toolbarVisible: boolean;\n @Input() toolbarItems: any[];\n @Input() layoutActions: any[];\n @Input() layout94;\n @Input() settings: MetaobjectDataModel;\n @Input() workflowPanelUi: any;\n @Input() title: string;\n @Input() subtitle: string;\n @Input() description: string;\n @Input() facetList: any[];\n @Input() removeHeaderBorder: boolean;\n @Input() removeContentPadding: boolean;\n @Input() isMobile: boolean;\n @Input() avatar: any;\n @Input() rtl: boolean;\n @Input() mask: boolean;\n @Input() fieldDict: { [key: string]: string } | undefined;\n @Input() contentDensity: any;\n @Input() deviceSize: 's' | 'm' | 'l' | 'xl';\n @Input() dirValue: 'rtl' | 'ltr';\n @Input() modernTabs: LayoutSetting[];\n @Input() mo: MetaobjectDataModel;\n constructor(\n protected _controlUiPipe: ControlUiPipe,\n protected _formPanelService: FormPanelService,\n protected _sanitizer: DomSanitizer,\n protected _cdr: ChangeDetectorRef,\n protected _renderer2: Renderer2,\n protected _vcr: ViewContainerRef,\n protected _factoryResolver: ComponentFactoryResolver\n ) {\n super();\n }\n ngOnInit(): void {\n // this.mo = this._formPanelService.mo;\n super.ngOnInit();\n }\n}\n","import { BehaviorSubject, forkJoin, Observable, Subject } from 'rxjs';\nimport { tap } from 'rxjs/operators';\nimport { BaseComponent } from './base.component';\nimport { getIcon, getImagePath, isImage, getUniqueId } from '../constants';\nimport { UploadService } from '../services/upload.service';\nimport { BarsaApi } from './barsa-api';\nimport { FilesValidationHelper } from './files-validation-helper';\nimport { FileAttachmentInfo, IUploadingState } from './models';\n\nexport class LinearListHelper extends BaseComponent {\n uploading$ = new Observable<IUploadingState>();\n\n private _valueExtra$ = new BehaviorSubject<ValueExtraType>({});\n private _loading$ = new Subject<boolean>();\n private _delete$ = new Subject<FileAttachmentInfo>();\n private _newFileUploaded$ = new Subject<FileAttachmentInfo>();\n constructor(\n private _uploadService: UploadService,\n private _filesValidationHelper: FilesValidationHelper,\n private _fieldDefId: string\n ) {\n super();\n this.uploading$ = this._uploadService.uploadingState$;\n }\n public get loading$(): Observable<boolean> {\n return this._loading$.asObservable();\n }\n public get valueExtra$(): Observable<ValueExtraType> {\n return this._valueExtra$.asObservable();\n }\n public get delete$(): Observable<FileAttachmentInfo> {\n return this._delete$.asObservable();\n }\n public get newFileUploaded$(): Observable<FileAttachmentInfo> {\n return this._newFileUploaded$.asObservable();\n }\n init(fileAttachmentInfo: FileAttachmentInfo): void {\n const fileValueExtra = this._getFileValueExtra(fileAttachmentInfo.Id);\n this._setIconAndImage(fileAttachmentInfo, fileValueExtra);\n }\n cancel(fileAttachment: FileAttachmentInfo): void {\n this._valueExtra[fileAttachment.Id].cancelation$?.next();\n }\n retry(fileAttachment: FileAttachmentInfo): void {\n this.uploadFile(fileAttachment).subscribe();\n }\n uploadToServer(files: File[], key: string = ''): void {\n const isValid = this._filesValidationHelper.validateFiles(files);\n if (!isValid) {\n return;\n }\n const fileAttachments = files.map((c) => this._createFileAttachment(c));\n forkJoin(fileAttachments.map((fileAttachment) => this.uploadFile(fileAttachment, key))).subscribe();\n }\n protected get _valueExtra(): ValueExtraType {\n return this._valueExtra$.getValue();\n }\n\n protected _getFileValueExtra(fileId): UploadFileProps {\n const valueExtra = this._valueExtra;\n const fileValueExtra = valueExtra[fileId];\n if (!fileValueExtra) {\n valueExtra[fileId] = {};\n this._valueExtra$.next({ ...valueExtra });\n }\n return valueExtra[fileId] as UploadFileProps;\n }\n protected _setIconAndImage(fileAttachment: FileAttachmentInfo, fileValueExtra: UploadFileProps): void {\n const fileType = fileAttachment.Type;\n const fileId = fileAttachment.Id;\n if (fileAttachment.IsNew && !fileValueExtra.UploadState) {\n fileValueExtra.FileUrl = 'document';\n fileValueExtra.IsIcon = true;\n } else if (isImage(fileType)) {\n fileValueExtra.FileUrl = getImagePath('ID', '', fileId);\n fileValueExtra.IsIcon = false;\n } else {\n fileValueExtra.FileUrl = getIcon(fileType);\n fileValueExtra.IsIcon = true;\n }\n }\n\n protected _setLoading(loading: boolean): void {\n this._loading$.next(loading);\n }\n protected _createFileAttachment(file: File, key: string | null = null): any {\n const id: string = key ?? getUniqueId(4);\n const temp: string[] = file.name.split('.');\n const ext = temp[temp.length - 1];\n const newFileAttachment = {\n FileName: file.name,\n Id: id,\n FileId: id,\n IsDeleted: false,\n IsNew: true,\n Type: ext\n };\n const fileValueExtra = this._getFileValueExtra(newFileAttachment.Id);\n this._setIconAndImage(newFileAttachment, fileValueExtra);\n fileValueExtra.UploadState = 'Ready';\n fileValueExtra.binary = file;\n fileValueExtra.cancelation$ = new Subject<void>();\n return newFileAttachment;\n }\n protected uploadFile(fileAttachment: FileAttachmentInfo, key: string = ''): Observable<any> {\n const formData = new FormData();\n formData.append('unicFileName', 'x' + BarsaApi.Common.Util.GetNewMetaGuid() + ';;;' + fileAttachment.FileName);\n formData.append('file', this._valueExtra[fileAttachment.Id].binary);\n\n return this._uploadService.upload(formData, this._fieldDefId, key).pipe(\n tap((res) => {\n if (Array.isArray(res)) {\n this._updateValue(fileAttachment, res);\n }\n })\n );\n }\n\n protected _updateValue(fileAttachment: FileAttachmentInfo, res: any[]): void {\n this._delete$.next(fileAttachment);\n // this._deleteFileAttachment(fileAttachment);\n const id = res[0].FileId;\n const newFileAttachment = {\n ...fileAttachment,\n Id: id,\n FileId: id,\n FileName: res[0].FileName,\n IsDeleted: false\n };\n const fileValueExtra = this._getFileValueExtra(id);\n fileValueExtra.binary = null;\n this._setIconAndImage(newFileAttachment, fileValueExtra);\n this._newFileUploaded$.next(newFileAttachment);\n }\n}\n\ninterface UploadFileProps {\n FileUrl?: string;\n cancelation$?: Subject<void>;\n binary?: any;\n UploadState?: string;\n Progress?: number;\n IsIcon?: boolean;\n}\ntype ValueExtraType = { [key: string]: UploadFileProps };\n","import { Component, Input } from '@angular/core';\r\nimport { PageBaseComponent } from './page-base';\r\n\r\n@Component({\r\n template: ''\r\n})\r\nexport class PageWithFormHandlerBaseComponent extends PageBaseComponent {\r\n formpanelCtrlr: any;\r\n /* eslint-disable */\r\n @Input() ShowFormPanelControl = (formpanelCtrlr) => {\r\n this.formpanelCtrlr = formpanelCtrlr;\r\n this._portalService.ShowFormPanelControl(\r\n formpanelCtrlr,\r\n this._router,\r\n this._activatedRoute,\r\n this._formDialogComponent,\r\n true\r\n );\r\n };\r\n /* eslint-disable */\r\n @Input() ForceCloseChild = () => {\r\n this._router.navigate(['../'], { relativeTo: this._activatedRoute });\r\n };\r\n /* eslint-disable */\r\n @Input() RefreshFormPanelControl = (formpanelCtrlr) => {\r\n if (!this.formpanelCtrlr) {\r\n this.formpanelCtrlr = formpanelCtrlr;\r\n }\r\n this._portalService.ShowFormPanelControl(\r\n this.formpanelCtrlr,\r\n this._router,\r\n this._activatedRoute,\r\n this._formDialogComponent,\r\n true,\r\n true\r\n );\r\n };\r\n}\r\n","import { Input, Component, OnInit, AfterViewInit, OnChanges, OnDestroy, ChangeDetectionStrategy } from '@angular/core';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { ContainerComponent } from '../container.component';\r\nimport { BarsaApi } from './barsa-api';\r\n\r\n@Component({\r\n selector: 'bnrc-form-page-base',\r\n template: '',\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class FormPageBaseComponent extends ContainerComponent implements OnInit, AfterViewInit, OnChanges, OnDestroy {\r\n @Input() formPanelCtrlr: any;\r\n params: {\r\n moId: string;\r\n typeDefId: string;\r\n reportId: string;\r\n viewId: string;\r\n };\r\n formpanelCtrlrId: string;\r\n ngOnInit(): void {\r\n super.ngOnInit();\r\n this._activatedRoute.params.pipe(takeUntil(this._onDestroy$)).subscribe((params) => {\r\n const state = this._router.getCurrentNavigation()?.extras.state;\r\n this.prepareIds(state?.formPanelCtrlrId, params);\r\n });\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n super.ngAfterViewInit();\r\n if (!this.formPanelCtrlr) {\r\n this.formPanelCtrlr = this._portalService.formPanels[this.formpanelCtrlrId];\r\n }\r\n this.hideAllPageContent();\r\n if (BarsaApi.LoginFormData.IsServiceDesk) {\r\n setTimeout(() => {\r\n window.scrollTo({ top: 0 });\r\n }, 0);\r\n }\r\n }\r\n ngOnDestroy(): void {\r\n super.ngOnDestroy();\r\n this._portalService.formPanels[this.formpanelCtrlrId] = null;\r\n this.removeLastHidePage();\r\n }\r\n\r\n hideAllPageContent(): void {\r\n // const pages = document.querySelectorAll('.section.absolute-page');\r\n // pages?.forEach((pageEl) => {\r\n // if (pageEl !== this._el.nativeElement) {\r\n // // (pageEl as HTMLElement).classList.add('hide');\r\n // }\r\n // });\r\n // if (pages && pages.length > 0) {\r\n // (pages[pages.length - 1]?.firstChild as HTMLElement)?.classList?.remove('hide');\r\n // }\r\n }\r\n removeLastHidePage(): void {\r\n // const pages = document.querySelectorAll('.section.absolute-page');\r\n // if (pages && pages.length > 0) {\r\n // const last: null | Element = pages[pages.length - 2];\r\n // last.classList?.remove('hide');\r\n // }\r\n }\r\n /* eslint-disable */\r\n @Input() ShowFormPanelControl = (formpanelCtrlr) => {\r\n this._portalService.ShowFormPanelControl(\r\n formpanelCtrlr,\r\n this._router,\r\n this._activatedRoute,\r\n this._formDialogComponent,\r\n false\r\n );\r\n };\r\n /* eslint-disable */\r\n @Input() RefreshFormPanelControl = () => {\r\n const formpanelCtrlr = this._portalService.formPanels[this.formpanelCtrlrId];\r\n this.parentContainer.RefreshFormPanelControl(formpanelCtrlr);\r\n };\r\n /* eslint-disable */\r\n @Input() ForceCloseChild = () => {\r\n this._router.navigate([{ outlets: { popup: null } }], {\r\n relativeTo: this._activatedRoute\r\n });\r\n };\r\n /* eslint-disable */\r\n @Input() ForceClose = () => {\r\n this.parentContainer.ForceCloseChild();\r\n };\r\n onFormClose(): void {\r\n if (\r\n this._activatedRoute.snapshot.params.isFirst &&\r\n this._activatedRoute.parent?.parent?.routeConfig?.path === 'form'\r\n ) {\r\n const parentUrl = this._router.url.split('/form/')[0];\r\n this._router.navigateByUrl(parentUrl, {\r\n replaceUrl: true\r\n });\r\n // this.router.navigate(['../']);\r\n // this.router.navigate([{ outlets: { main: null } }], {\r\n // relativeTo: this.activatedRoute,\r\n // });\r\n } else {\r\n this._router.navigate(['../'], {\r\n relativeTo: this._activatedRoute,\r\n replaceUrl: true\r\n });\r\n }\r\n return;\r\n const outlet = this._activatedRoute.outlet;\r\n // let outlets = {};\r\n // outlets[outlet] = null;\r\n // if(this.location.getState())\r\n this._router.navigate([{ outlets: { main: null } }]);\r\n }\r\n protected prepareIds(formpanelCtrlrId: string, params): void {\r\n this.formpanelCtrlrId = formpanelCtrlrId || params.formPanelCtrlrId;\r\n if (this.formpanelCtrlrId) {\r\n this.formPanelCtrlr = this._portalService.formPanels[this.formpanelCtrlrId];\r\n }\r\n const moId = params.id;\r\n const typeDefId = params.tyid;\r\n const reportId = params.repid;\r\n const viewId = params.vid;\r\n this.params = Object.assign({}, { moId, typeDefId, reportId, viewId });\r\n this._cdr.detectChanges();\r\n }\r\n}\r\n","import {\r\n Component,\r\n ElementRef,\r\n ViewChild,\r\n Input,\r\n Output,\r\n EventEmitter,\r\n SimpleChanges,\r\n ViewContainerRef,\r\n Injector,\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n ComponentRef,\r\n OnInit,\r\n OnChanges,\r\n OnDestroy\r\n} from '@angular/core';\r\nimport { takeUntil, tap } from 'rxjs/operators';\r\n\r\nimport { getComponentDefined, getUniqueId } from '../constants';\r\nimport { BaseComponent } from '../abstract-classes/base.component';\r\nimport { MetaobjectDataModel } from '../abstract-classes/models';\r\nimport { PortalService } from '../services/portal.service';\r\nimport { BarsaApi } from '../abstract-classes/barsa-api';\r\n\r\n@Component({\r\n selector: 'bnrc-form',\r\n template: '<ng-container #placeholder> </ng-container>',\r\n styleUrls: ['./form.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class FormComponent extends BaseComponent implements OnInit, OnChanges, OnDestroy {\r\n @Input() params: {\r\n formSetting?: any;\r\n moId: string;\r\n typeDefId: string | undefined;\r\n reportId?: string;\r\n viewId?: string | undefined;\r\n ViewName?: string | undefined;\r\n inDialog?: boolean;\r\n };\r\n @Input() customFormPanelUi;\r\n @Input() formPanelCtrl;\r\n @Input() formPanelCtrlId: string;\r\n @Output() titleChanged = new EventEmitter<string>();\r\n @Output() moChanged = new EventEmitter<MetaobjectDataModel>();\r\n @Output() formClose = new EventEmitter();\r\n @Output() formRendered = new EventEmitter();\r\n @ViewChild('placeholder', { read: ViewContainerRef, static: true })\r\n vcr: ViewContainerRef;\r\n uniqueId: string;\r\n uiFormComponent: ComponentRef<any>;\r\n constructor(\r\n private portalService: PortalService,\r\n private injector: Injector,\r\n private cdr: ChangeDetectorRef,\r\n el: ElementRef\r\n ) {\r\n super();\r\n el.nativeElement.id = this.uniqueId = getUniqueId(4);\r\n }\r\n ngOnInit(): void {\r\n super.ngOnInit();\r\n if (this.formPanelCtrlId && !this.formPanelCtrl) {\r\n this.formPanelCtrl = this.portalService.formPanels[this.formPanelCtrlId];\r\n }\r\n this.appendForm(this.params);\r\n }\r\n ngOnChanges(changes: SimpleChanges): void {\r\n super.ngOnChanges(changes);\r\n if (changes.params && !changes.params.firstChange) {\r\n const params = changes.params;\r\n const currVal = JSON.stringify(params.currentValue);\r\n const prevVal = JSON.stringify(params.previousValue);\r\n if (currVal !== prevVal) {\r\n // this.uiFormComponent.instance.formPanelService.destroy();\r\n this.vcr.clear();\r\n this.appendForm(currVal);\r\n }\r\n }\r\n }\r\n ngOnDestroy(): void {\r\n super.ngOnDestroy();\r\n if (this.uiFormComponent) {\r\n this.uiFormComponent.destroy();\r\n }\r\n }\r\n appendForm(params): void {\r\n if (this.formPanelCtrl || this.customFormPanelUi) {\r\n const customFromPanelUi = this.customFormPanelUi || this.formPanelCtrl.Adapter.Control;\r\n this._renderFormPanelUi(customFromPanelUi);\r\n return;\r\n }\r\n\r\n const { formSetting, moId, typeDefId, reportId, viewId, viewName } = params;\r\n let options: any = null;\r\n if (formSetting) {\r\n options = {\r\n Mo: formSetting.Data.Mo,\r\n TypeDefId: formSetting.Data.Mo.$TypeDefId\r\n };\r\n } else if (moId && (typeDefId || reportId)) {\r\n options = {\r\n MoId: moId,\r\n MoContext: {\r\n ReportId: reportId,\r\n ViewId: viewId,\r\n ViewName: viewName\r\n },\r\n TypeDefId: typeDefId,\r\n ReportId: reportId\r\n };\r\n }\r\n const frmParam = new BarsaApi.Ul.FormRequestParams(options);\r\n const formpanelCtrlr = new BarsaApi.Ul.FormPanelCtrlr({\r\n FormRequestParams: frmParam\r\n });\r\n formpanelCtrlr.inDialog = this.params.inDialog;\r\n formpanelCtrlr.Setting = formSetting;\r\n this.formPanelCtrl = formpanelCtrlr;\r\n this.portalService.formPanels[this.formPanelCtrlId] = formpanelCtrlr;\r\n BarsaApi.Common.Async.Waterfall(\r\n 'Ul.SystemContainerCtrlr.CreateFormPanel',\r\n [\r\n formpanelCtrlr.LoadAndCreate.bind(formpanelCtrlr, frmParam, false, formSetting ? false : true),\r\n (doReturn0) => {\r\n this._renderFormPanelUi(formpanelCtrlr.Adapter.Control);\r\n doReturn0();\r\n }\r\n ],\r\n (err, result) => {\r\n // me.UnmaskPage(),\r\n if (err) {\r\n console.error(err);\r\n }\r\n BarsaApi.Common.Async.Finalize(err, result);\r\n }\r\n );\r\n }\r\n\r\n private async _renderFormPanelUi(customFormPanelUi: any): Promise<void> {\r\n const customUiSetting = BarsaApi.Common.Util.TryGetValue(customFormPanelUi.Setting, 'View.CustomUi', null);\r\n const { moduleName, modulePath, componentName, selector } = getComponentDefined(\r\n customFormPanelUi,\r\n customUiSetting\r\n );\r\n this.portalService\r\n .getComponent(moduleName, modulePath, componentName, selector, this.injector)\r\n .pipe(\r\n takeUntil(this._onDestroy$),\r\n tap((component) => {\r\n const componentInstance = component.instance;\r\n componentInstance.FormPanelCtrlr = this.formPanelCtrl;\r\n componentInstance.context = customFormPanelUi;\r\n componentInstance.toolbar = customFormPanelUi.toolbar;\r\n componentInstance.setting = customFormPanelUi.Setting;\r\n componentInstance.title = customFormPanelUi.title;\r\n componentInstance.groupVisibility = customFormPanelUi.groupVisibility;\r\n this.vcr.insert(component.hostView);\r\n componentInstance.mo$.pipe(takeUntil(this._onDestroy$)).subscribe((mo) => {\r\n this.moChanged.emit(mo);\r\n });\r\n componentInstance.title$.pipe(takeUntil(this._onDestroy$)).subscribe((title) => {\r\n this.titleChanged.emit(title);\r\n });\r\n componentInstance.forceClose$.pipe(takeUntil(this._onDestroy$)).subscribe(() => {\r\n this.formClose.emit();\r\n });\r\n // component.instance.addEventListener('formClose', this.close);\r\n // el.appendChild(htmlElement);\r\n this.formRendered.emit(customFormPanelUi);\r\n })\r\n )\r\n .subscribe((component) => {\r\n this.uiFormComponent = component;\r\n this.cdr.detectChanges();\r\n });\r\n }\r\n}\r\n","import { ChangeDetectionStrategy, Component, HostBinding, Input, ViewChild } from '@angular/core';\r\nimport { FormPageBaseComponent } from '../abstract-classes';\r\nimport { FormComponent } from '../form/form.component';\r\nimport { ContainerService, FormService } from '../services';\r\n\r\n@Component({\r\n selector: 'bnrc-form-page',\r\n template: `\r\n <bnrc-form\r\n [formPanelCtrl]=\"formPanelCtrlr\"\r\n [formPanelCtrlId]=\"formpanelCtrlrId\"\r\n [params]=\"params\"\r\n (formClose)=\"onFormClose()\"\r\n ></bnrc-form>\r\n <router-outlet></router-outlet>\r\n `,\r\n styles: [\r\n `\r\n :host {\r\n display: block;\r\n background: var(--sapBackgroundColor);\r\n }\r\n `\r\n ],\r\n providers: [FormService, ContainerService],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class FormPageComponent extends FormPageBaseComponent {\r\n @ViewChild(FormComponent, { static: true }) formRef: FormComponent;\r\n @Input() formPanelCtrlr: any;\r\n @HostBinding('class.section') sectionClass = true;\r\n @HostBinding('class.absolute-page') absolutePageClass = true;\r\n moId: string;\r\n typeDefId: string;\r\n reportId: string;\r\n viewId: string;\r\n formpanelCtrlrId: string;\r\n ngOnInit(): void {\r\n this.containerRef = this.formRef.vcr; // it must be first because we change containerRef\r\n super.ngOnInit();\r\n }\r\n}\r\n","import {\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n EventEmitter,\n Input,\n OnChanges,\n Optional,\n Output,\n Self\n} from '@angular/core';\n\nimport {\n MetaobjectDataModel,\n LayoutSetting,\n AbbrevationDeviceSize,\n EjrayOlgo,\n ReportViewColumn,\n UiReportViewBaseSetting,\n DeviceSize\n} from '../abstract-classes';\nimport { BaseComponent } from './base.component';\nimport { ColumnService } from '../services';\nimport { takeUntil } from 'rxjs';\n@Component({\n selector: 'bnrc-base-column-props',\n template: ``,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class BaseColumnPropsComponent extends BaseComponent implements AfterViewInit, OnChanges {\n @Output() save = new EventEmitter<any>();\n @Output() cancel = new EventEmitter<any>();\n @Output() tab = new EventEmitter<any>();\n @Output() changeToEditMode = new EventEmitter<any>();\n @Input() allColumns: ReportViewColumn[];\n @Input() column: any;\n @Input() mo: MetaobjectDataModel;\n @Input() index: any;\n @Input() editMode: boolean;\n @Input() customRowHeight: any;\n @Input() controlUi: LayoutSetting | null;\n @Input() formLayoutShowLabel: boolean;\n @Input() isChecked: boolean;\n @Input() isNewInlineMo: boolean;\n @Input() layout94: LayoutSetting;\n @Input() detailsComponentSetting: UiReportViewBaseSetting;\n\n @Input() value: any;\n @Input() icon: any;\n @Input() rtl: boolean;\n @Input() deviceName: DeviceSize;\n @Input() deviceSize: AbbrevationDeviceSize;\n customComponent: EjrayOlgo | null;\n constructor(@Optional() @Self() _columnService: ColumnService, protected _el: ElementRef) {\n super();\n _columnService.uiControlRendered.pipe(takeUntil(this._onDestroy$)).subscribe((c) => {\n this._callChangeToEditMode();\n });\n }\n\n _callChangeToEditMode(): void {\n this.changeToEditMode.emit(this._el.nativeElement);\n }\n}\n","import {\n AfterViewInit,\n Component,\n ChangeDetectionStrategy,\n Input,\n EventEmitter,\n Output,\n ElementRef,\n Renderer2,\n ChangeDetectorRef\n} from '@angular/core';\nimport { LayoutSetting, MetaobjectDataModel } from './models';\n\nimport { BaseComponent } from './base.component';\nimport { FieldSetting } from './field-base';\n\n@Component({\n selector: 'bnrc-tile-base',\n template: '',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class TilePropsComponent extends BaseComponent implements AfterViewInit {\n @Input() parameters: MetaobjectDataModel;\n @Input() data: MetaobjectDataModel;\n @Input() context: FieldSetting;\n @Input() edit: boolean;\n @Input() layoutInfo: LayoutSetting;\n @Output() hideClick = new EventEmitter();\n @Output() renameClick = new EventEmitter();\n\n constructor(public el: ElementRef, protected _renderer2: Renderer2, protected _cdr: ChangeDetectorRef) {\n super();\n }\n}\n","import { ChangeDetectionStrategy, Component, HostBinding, OnInit } from '@angular/core';\r\nimport { BarsaApi, PageWithFormHandlerBaseComponent } from '../abstract-classes';\r\n\r\nimport { ContainerService } from '../services/container.service';\r\n@Component({\r\n selector: 'bnrc-empty-page',\r\n templateUrl: './empty-page.component.html',\r\n styleUrls: ['./empty-page.component.scss'],\r\n providers: [ContainerService],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class EmptyPageComponent extends PageWithFormHandlerBaseComponent implements OnInit {\r\n @HostBinding('style.position') _position: string | null = null;\r\n @HostBinding('class.section') sectionClass = true;\r\n @HostBinding('class.absolute-page') absolutePageClass = true;\r\n ngOnInit(): void {\r\n super.ngOnInit();\r\n if (!BarsaApi.LoginFormData.IsServiceDesk) {\r\n this._position = 'relative';\r\n }\r\n if (this._activatedRoute.snapshot.data?.pageData?.Component?.Settings?.IsRelativePage) {\r\n this._position = 'relative';\r\n }\r\n }\r\n}\r\n","<ng-container #containerRef></ng-container>\r\n<router-outlet></router-outlet>\r\n<router-outlet name=\"main\"></router-outlet>\r\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\nimport { Router } from '@angular/router';\n\nimport { BarsaApi, MetaobjectDataModel } from '../abstract-classes';\nimport { BaseComponent } from '../abstract-classes/base.component';\n@Component({\n selector: 'bnrc-redirect-report-navigator-command',\n templateUrl: './redirect-report-navigator-command.component.html',\n styleUrls: ['./redirect-report-navigator-command.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class RedirectReportNavigatorCommandComponent extends BaseComponent {\n settings: MetaobjectDataModel;\n _Object = {\n ShowSystemContainerPage: (navItem) => {\n if (navItem.DynamicCommand) {\n const logParams = { CommandId: navItem.FolderId };\n const finish = BarsaApi.Common.LogManager.StartLog('Navigator.Command', logParams);\n const e = { Command: navItem, DynamicSetting: navItem.DynamicCommand };\n BarsaApi.Common.CustomCodeManager.RunDynamicCommand(navItem.Id, e, finish);\n BarsaApi.Common.LogManager.EndLog();\n } else {\n this.router.navigate([this.settings.ReportPageUrl, navItem.Id + '__' + navItem.Caption]);\n }\n }\n };\n constructor(private router: Router) {\n super();\n BarsaApi.Bw.App.GetActiveSystem = () => this;\n }\n}\n","","import { ChangeDetectionStrategy, Component } from '@angular/core';\r\n\r\nimport { PageBaseComponent } from '../abstract-classes';\r\n\r\n@Component({\r\n selector: 'bnrc-portal-page',\r\n templateUrl: './portal-page.component.html',\r\n styleUrls: ['./portal-page.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class PortalPageComponent extends PageBaseComponent {}\r\n","<ng-container #containerRef></ng-container>\r\n<router-outlet></router-outlet>\r\n","import {\n ChangeDetectionStrategy,\n Component,\n ComponentRef,\n EventEmitter,\n Injector,\n Input,\n OnChanges,\n OnDestroy,\n OnInit,\n Output,\n SimpleChanges,\n ViewChild,\n ViewContainerRef\n} from '@angular/core';\nimport { takeUntil, tap } from 'rxjs';\nimport { EjrayOlgo } from '../abstract-classes';\nimport { BaseComponent } from '../abstract-classes/base.component';\nimport { PortalService } from '../services';\n\n@Component({\n selector: 'bnrc-dynamic-component',\n template: `<ng-container #componentContainer></ng-container>`,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class BaseDynamicComponent extends BaseComponent implements OnInit, OnDestroy, OnChanges {\n @ViewChild('componentContainer', { read: ViewContainerRef, static: true })\n _container: ViewContainerRef;\n @Input() component: EjrayOlgo;\n @Input() value: any;\n @Output() events = new EventEmitter<{ title: string; data?: any }>();\n public _component: ComponentRef<any>;\n constructor(\n protected _vcr: ViewContainerRef,\n protected _portalService: PortalService,\n protected _injector: Injector\n ) {\n super();\n }\n async ngOnInit(): Promise<void> {\n super.ngOnInit();\n if (!this._container) {\n this._container = this._vcr;\n }\n this._renderComponentInstance();\n }\n ngOnChanges(changes: SimpleChanges): void {\n if (!this._component?.instance) {\n return;\n }\n // const changesKey = Object.keys(changes);\n // changesKey\n // .filter((c) => !changes[c].firstChange)\n // .forEach((c) => (this._component.instance[c] = changes[c].currentValue));\n\n this._component.instance.ngOnChanges(changes);\n }\n ngOnDestroy(): void {\n this._destroyComponentInstance();\n }\n\n protected async _renderComponentInstance(): Promise<void> {\n this._destroyComponentInstance();\n if (!this.component) {\n return;\n }\n const { Module, ModuleFileName, Name, Selector } = this.component;\n this._portalService\n .getComponent(Module, ModuleFileName, Name, Selector, this._injector)\n .pipe(takeUntil(this._onDestroy$))\n .subscribe((componentRef: ComponentRef<any>) => {\n this._container.insert(componentRef.hostView);\n this._component = componentRef;\n if (this.component.Parameters) {\n this._component.instance.parameters = this.component.Parameters;\n } else if (this.component.Settings) {\n this._component.instance.parameters = this.component.Settings;\n }\n if (this.value) {\n this._component.instance.value = this.value;\n }\n this.setComponentInputs();\n const events = this._component.instance.events as EventEmitter<{ title: string; data?: any }>;\n if (events) {\n events\n .pipe(\n takeUntil(this._onDestroy$),\n tap((c) => this.events.emit(c))\n )\n .subscribe();\n }\n });\n // this.setComponentInputs();\n }\n\n protected setComponentInputs(): void {\n const inputProperties = Object.keys(this).filter((c) => !c.startsWith('_') && c !== 'events');\n inputProperties.forEach((c) => {\n this._component.instance[c] = this[c];\n });\n }\n\n protected _destroyComponentInstance(): void {\n if (this._component) {\n this._component.destroy();\n }\n }\n}\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\r\nimport { LayoutSetting, MetaobjectDataModel } from '../abstract-classes';\r\nimport { BreadCrumbInfo } from '../services';\r\nimport { BaseDynamicComponent } from './base-dynamic.component';\r\n\r\n@Component({\r\n selector: 'bnrc-dynamic-form-component',\r\n template: `<ng-container #componentContainer></ng-container>`,\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class DynamicFormComponent extends BaseDynamicComponent {\r\n @Input() breadCrumbs: BreadCrumbInfo[] | null;\r\n @Input() toolbarVisible: boolean;\r\n @Input() toolbarItems: any[];\r\n @Input() layoutActions: any[];\r\n @Input() layout94;\r\n @Input() settings: MetaobjectDataModel;\r\n @Input() workflowPanelUi: any;\r\n @Input() title: string;\r\n @Input() subtitle: string;\r\n @Input() description: string;\r\n @Input() facetList: any[];\r\n @Input() removeHeaderBorder: boolean;\r\n @Input() removeContentPadding: boolean;\r\n @Input() isMobile: boolean;\r\n @Input() avatar: any;\r\n @Input() rtl: boolean;\r\n @Input() mask: boolean;\r\n @Input() mo: MetaobjectDataModel;\r\n @Input() contentDensity: any;\r\n @Input() deviceSize: 's' | 'm' | 'l' | 'xl';\r\n @Input() dirValue: 'rtl' | 'ltr';\r\n @Input() fieldDict: { [key: string]: string } | undefined;\r\n @Input() modernTabs: LayoutSetting[];\r\n}\r\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport {\n AbbrevationDeviceSize,\n DeviceSize,\n FormSetting,\n MetaobjectDataModel,\n ReportViewColumn,\n UiReportViewBaseSetting\n} from '../abstract-classes';\nimport { BaseDynamicComponent } from './base-dynamic.component';\n\n@Component({\n selector: 'bnrc-dynamic-item-component',\n template: `<ng-container #componentContainer></ng-container>`,\n styles: [\n `\n :host {\n display: contents;\n }\n `\n ],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class DynamicItemComponent extends BaseDynamicComponent {\n @Input() mo: MetaobjectDataModel;\n @Input() allColumns: ReportViewColumn[];\n @Input() moDataList: MetaobjectDataModel[];\n @Input() columns: ReportViewColumn[];\n @Input() column: ReportViewColumn;\n @Input() index: number;\n @Input() last: boolean;\n @Input() deviceName: DeviceSize;\n @Input() deviceSize: AbbrevationDeviceSize;\n @Input() rtl: boolean;\n @Input() editMode: boolean;\n @Input() setting: UiReportViewBaseSetting;\n @Input() parameters?: MetaobjectDataModel;\n @Input() contextMenuItems: any[];\n @Input() canView: boolean;\n @Input() formSetting: FormSetting;\n @Input() conditionalFormats: any;\n @Input() disableOverflowContextMenu: boolean;\n @Input() navigationArrow: string;\n @Input() isCheckList: boolean;\n\n @Input() fields: MetaobjectDataModel;\n @Input() isChecked: boolean;\n @Input() layout94$: Observable<any>;\n @Input() inlineEditMode: boolean;\n @Input() isNewInlineMo: boolean;\n @Input() allowInlineEdit: boolean;\n @Input() typeDefId: string;\n @Input() rowIndicator: boolean;\n @Input() rowIndicatorColor: string;\n}\n","import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from '@angular/core';\n\nimport {\n AbbrevationDeviceSize,\n DefaultCommandsAccess,\n DeviceSize,\n MetaobjectDataModel,\n ShareButtonsChoiceDef\n} from '../abstract-classes';\nimport { BaseComponent } from '../abstract-classes/base.component';\n\n@Component({\n selector: 'bnrc-base-view-props',\n template: ``,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class BaseViewPropsComponent extends BaseComponent {\n @Input() moDataList: MetaobjectDataModel[];\n @Input() reportId: string;\n @Input() allColumns: any;\n @Input() isCheckList: boolean;\n @Input() allChecked: boolean;\n @Input() canView: boolean;\n @Input() visibility: boolean;\n @Input() level: number;\n @Input() expanded: boolean;\n @Input() styleIndex: number[];\n @Input() workflowState: { state: string; errorText: string };\n @Input() parentExpanded: boolean;\n @Input() access: DefaultCommandsAccess;\n @Input() groupby: any;\n @Input() conditionalFormats: any;\n @Input() deviceName: DeviceSize;\n @Input() deviceSize: AbbrevationDeviceSize;\n @Input() contextMenuItems: any[];\n @Input() columns: any;\n @Input() allowInlineEdit: any;\n @Input() secondaryColumns: any;\n @Input() popin: boolean;\n @Input() typeDefId: string;\n @Input() columnsCount: any;\n @Input() mobileOrTablet: boolean;\n @Input() containerWidth: number;\n @Input() newInlineEditMo: MetaobjectDataModel | null;\n @Input() inlineEditMode: boolean;\n @Input() onlyInlineEdit: boolean;\n @Input() rowHoverable: boolean;\n @Input() tlbButtons: any[];\n @Input() setting: any | null | undefined;\n @Input() parameters: MetaobjectDataModel;\n @Input() formSetting: any;\n @Input() disableOverflowContextMenu: boolean;\n @Input() rowActivable = true;\n @Input() contentDensity: any;\n @Input() rtl = true;\n @Input() showOkCancelButtons;\n @Input() title;\n @Input() isChecked;\n @Input() navigationArrow: string;\n @Output() deselectAll = new EventEmitter<void>();\n @Output() rowCheck = new EventEmitter<{ mo: MetaobjectDataModel; index: number }>();\n @Output() workflowShareButtons = new EventEmitter<ShareButtonsChoiceDef>();\n @Output() rowClick = new EventEmitter<{ mo: MetaobjectDataModel; index: number }>();\n @Output() ulvCommand = new EventEmitter<{ mo: MetaobjectDataModel; index: number }>();\n @Output() editFormPanelCancel = new EventEmitter<MetaobjectDataModel>();\n @Output() editFormPanelSave = new EventEmitter<MetaobjectDataModel>();\n @Output() selectNextInlineRecord = new EventEmitter<MetaobjectDataModel>();\n @Output() action = new EventEmitter<string>();\n @Output() expandClick = new EventEmitter<MetaobjectDataModel>();\n @Output() editFormPanelValueChange = new EventEmitter<MetaobjectDataModel>();\n @Output() cartableFormClosed = new EventEmitter<{ mo: MetaobjectDataModel; index: number }>();\n _trackByRow(index: number, row: MetaobjectDataModel): string {\n return `${row.$Group ? row.$Group : row.Id}${index}`;\n }\n}\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\nimport { MetaobjectDataModel, UiReportViewBaseSetting } from '../abstract-classes';\nimport { BaseViewPropsComponent } from './base-view-props';\n\n@Component({\n selector: 'bnrc-base-view-content-props',\n template: ``,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class BaseViewContentPropsComponent<T extends UiReportViewBaseSetting> extends BaseViewPropsComponent {\n @Input() moDataList: MetaobjectDataModel[];\n @Input() setting: T;\n}\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n Input,\n OnChanges,\n OnInit,\n Optional,\n Self,\n SimpleChanges,\n SkipSelf\n} from '@angular/core';\nimport { DomSanitizer, SafeHtml } from '@angular/platform-browser';\nimport { catchError, from, tap, Observable, Subject, switchMap, takeUntil, throwError } from 'rxjs';\n\nimport { MetaobjectDataModel, ReportViewColumn, FormSetting, BarsaApi, ChoiceDef } from '../abstract-classes';\nimport { PreventDefaulEvent, createGridEditorFormPanel } from '../constants';\nimport { FormPanelService, UlvMainService } from '../services';\nimport { BaseViewPropsComponent } from './base-view-props';\nimport { MoReportValuePipe } from '../pipes';\ntype ReasonToSave = 'TAB' | 'CTRL+ENTER' | 'CHECK_CHANGED' | 'ESC';\n@Component({\n selector: 'bnrc-base-view-item-props',\n template: ``,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class BaseViewItemPropsComponent extends BaseViewPropsComponent implements OnInit, OnChanges {\n @Input() mo: MetaobjectDataModel;\n @Input() moDataListCount: number;\n @Input() index: number;\n @Input() last: boolean;\n @Input() isChecked: boolean;\n @Input() isNewInlineMo: boolean;\n @Input() extraRelation: any;\n @Input() hideOpenIcon: boolean;\n @Input() inDialog: boolean;\n @Input() isMultiSelect: boolean;\n @Input() rowIndicator: boolean;\n @Input() rowIndicatorColor: string;\n\n @Input() set serializedRelatedMo(val: string) {\n this._serializedRelatedMo = val;\n this._updateCartableMo(val);\n this._createCartableParams();\n }\n @Input() set cartableTemplate(val: FormSetting) {\n this._cartableTemplate = val;\n this._createCartableParams();\n }\n @Input() set cartableMo(val: MetaobjectDataModel) {\n this._cartableMo = val;\n this._updateCartableMo(this._serializedRelatedMo);\n\n this._createCartableParams();\n }\n @Input() set cartableWorkflowData(val: string) {\n this._cartableWorkflowData = val;\n this._createCartableParams();\n }\n hasError = false;\n _focusToFirstEidtableColumn = false;\n _lastEditableColumnIndex: number;\n inlineEditInReport = true;\n layout$: Observable<any>;\n formPanelCtrlr: any;\n saving: boolean;\n saved: boolean;\n inRow = true;\n hasCartableTemplate = false;\n cartableParams: {\n formSetting: FormSetting;\n moId: string;\n typeDefId: string | undefined;\n viewId: any;\n inDialog: boolean;\n };\n bruleActionMessage: BruleActionMessage | null = null;\n private _saveEditedMo$ = new Subject<ReasonToSave>();\n private _formpanelValueChanged$ = new Subject<void>();\n private _formPanelLoaded: boolean;\n private _cartableMo: MetaobjectDataModel;\n private _cartableTemplate: FormSetting;\n private _cartableWorkflowData: string;\n private _serializedRelatedMo: string;\n constructor(\n protected _el: ElementRef,\n protected _domSanitizer: DomSanitizer,\n protected _cdr: ChangeDetectorRef,\n protected _reportValuePipe: MoReportValuePipe,\n @Optional() @SkipSelf() protected _parentFormPanelService: FormPanelService,\n @Optional() @Self() protected _formPanelService: FormPanelService,\n @Optional() protected _ulvMainService: UlvMainService\n ) {\n super();\n this._saveEditedMo$\n .asObservable()\n .pipe(\n takeUntil(this._onDestroy$),\n switchMap((reason: ReasonToSave) => this._inlineEditSaveFormPanel(reason)),\n catchError((err) => throwError(() => err))\n )\n .subscribe((res: { reason: ReasonToSave; succeed: boolean; saved: boolean }) => {\n if (res.saved) {\n this._formpanelValueChanged$.next();\n this._cdr.markForCheck();\n }\n if (res.reason === 'TAB' || res.reason === 'CTRL+ENTER') {\n this.selectNextInlineRecord.emit(this.mo);\n } else if (res.reason === 'ESC') {\n this.editFormPanelCancel.emit(this.mo);\n }\n });\n this._formpanelValueChanged$\n .asObservable()\n .pipe(\n takeUntil(this._onDestroy$),\n switchMap(() => this._syncMo()),\n tap(() => {\n if (typeof this.mo.$InlineMoChanged === 'undefined') {\n this.mo.$InlineMoChanged = true;\n }\n })\n )\n .subscribe(() => {\n this.editFormPanelValueChange.emit(this.mo);\n });\n }\n private get _hasFormPanelService(): boolean {\n return this._formPanelService !== null && this.formSetting;\n }\n\n ngOnInit(): void {\n super.ngOnInit();\n\n if (this._hasFormPanelService) {\n this._formPanelService.context$.pipe(takeUntil(this._onDestroy$)).subscribe();\n this._formPanelService.view$.pipe(takeUntil(this._onDestroy$)).subscribe();\n this.layout$ = this._formPanelService.layout$;\n }\n }\n ngOnChanges(changes: SimpleChanges): void {\n super.ngOnChanges(changes);\n const { isChecked, inlineEditMode } = changes;\n let needToLoadForm = false;\n if (this.inlineEditMode) {\n if (isChecked) {\n if (!isChecked.currentValue && isChecked.previousValue) {\n if (this._needToSave()) {\n this._saveEditedMo$.next('CHECK_CHANGED');\n }\n } else if (isChecked.currentValue) {\n needToLoadForm = true;\n }\n }\n }\n if (inlineEditMode?.currentValue && !inlineEditMode?.previousValue && this.isChecked) {\n needToLoadForm = true;\n } else if (!inlineEditMode?.currentValue && inlineEditMode?.previousValue && this.isChecked) {\n this._saveEditedMo$.next('ESC');\n }\n if (needToLoadForm) {\n this._loadAndCreateFormPanelCtrlr();\n }\n if (changes.mo && !changes.mo.firstChange && this.inlineEditMode) {\n if (this._formPanelLoaded) {\n this.formPanelCtrlr.SetValue(changes.mo.currentValue);\n }\n }\n // if (mo && !mo.firstChange && this._hasFormPanelService && this.isChecked && this.inlineEditMode) {\n // //this.formPanelCtrlr.SetValue(changes.mo.currentValue);\n // }\n }\n ngOnDestroy(): void {\n super.ngOnDestroy();\n if (this.formPanelCtrlr) {\n this.formPanelCtrlr.un('bruleShowMessageAction', this._handleBruleShowMessageAction);\n }\n }\n OnCartableFormClick(e): void {\n if (this.isChecked) {\n e.preventDefault();\n e.stopPropagation();\n }\n }\n\n onRowCheck(): void {\n this._rowCheck();\n }\n\n onRowClick(): void {\n this.rowClick.emit({ mo: this.mo, index: this.index });\n }\n onColumnChangeToEditMode(columnEl: HTMLElement, index: number): void {\n const focusables = columnEl.querySelectorAll(\n `button,button:not([disabled]),[href],input:not([disabled]),input,\n select,select:not([disabled]),textarea,textarea:not([disabled]),[tabindex]:not([tabindex=\"-1\"])`\n );\n this._lastEditableColumnIndex = index;\n if (!focusables.length || this._focusToFirstEidtableColumn) {\n return;\n }\n this._focusToFirstEidtableColumn = true;\n const lastFocusable = focusables[0];\n setTimeout(() => {\n (lastFocusable as HTMLElement)?.focus();\n }, 0);\n }\n onTabKeyDown(e, index): void {\n if (index === this._lastEditableColumnIndex) {\n PreventDefaulEvent(e);\n this._saveEditedMo$.next('TAB');\n }\n }\n onEditFormPanelSave(e): void {\n this._saveEditedMo$.next('CTRL+ENTER');\n }\n onEditFormPanelCancel(e): void {\n this._saveEditedMo$.next('ESC');\n }\n onUlvCommand(): void {\n this.ulvCommand.emit({ mo: this.mo, index: this.index });\n }\n onAction(commandBody: string): void {\n this.action.emit(commandBody);\n }\n onExpandClick(): void {\n this.expandClick.emit(this.mo);\n }\n onDynamicComponentEvents(e: { title: string; data?: any }): void {\n switch (e.title) {\n case 'rowCheck':\n this.onRowCheck();\n break;\n case 'rowClick':\n this.onRowClick();\n break;\n case 'ulvCommand':\n this.onUlvCommand();\n break;\n }\n }\n\n onCartableFormClosed(): void {\n this.cartableFormClosed.emit({ mo: this.mo, index: this.index });\n }\n _trackByColumn(index: number, column: ReportViewColumn): string {\n return `${column.Name}${index}`;\n }\n protected _updateCartableMo(serializeMo: string): void {\n if (serializeMo && this._cartableMo) {\n serializeMo = `${serializeMo}`;\n const mo = BarsaApi.Ext.decode(serializeMo);\n this._cartableMo = { ...this._cartableMo, ...mo };\n }\n }\n protected _createCartableParams(): void {\n let cartableTemplate = this._cartableTemplate;\n const cartableMo = this._cartableMo;\n const cartableWorkflowData = this._cartableWorkflowData;\n if (this.hasCartableTemplate) {\n // TODO update cartable mo;\n return;\n }\n if (\n cartableTemplate &&\n cartableMo &&\n typeof cartableWorkflowData !== 'undefined' &&\n this._serializedRelatedMo\n ) {\n cartableTemplate = JSON.parse(JSON.stringify(cartableTemplate));\n const view = cartableTemplate.View;\n cartableTemplate.Data = { Mo: { ...cartableMo } };\n cartableTemplate.Workflow = cartableWorkflowData === '' ? null : JSON.parse(cartableWorkflowData);\n if (!view.ExtraJsonProp) {\n view.ExtraJsonProp = {};\n }\n view.ExtraJsonProp.IsSimple = true;\n\n this.cartableParams = {\n formSetting: cartableTemplate,\n moId: cartableMo.Id,\n typeDefId: cartableMo.$TypeDefId,\n viewId: view.TypeViewId,\n inDialog: false\n };\n this.hasCartableTemplate = true;\n this._cdr.markForCheck();\n }\n }\n protected _needToSave(): boolean {\n // if (!this.isChecked) {\n // return false;\n // }\n // const isChildNode = (this._el.nativeElement as HTMLElement).contains(e.target);\n // if (isChildNode) {\n // return false;\n // }\n const t = this.inlineEditMode && this._hasFormPanelService;\n if (!t) {\n return false;\n }\n\n return this.formPanelCtrlr && this.formPanelCtrlr.IsMoChanged();\n }\n\n protected _checkfocusOutFromRow(target): void {\n // const focusable: NodeList = this._focusableControls;\n // let foundInFocusable = false;\n // focusable.forEach((c) => {\n // if (c === target) {\n // foundInFocusable = true;\n // }\n // });\n // if (!foundInFocusable) {\n // this._saveEditedMo$.next('TAB');\n // }\n }\n protected _rowCheck(): void {\n // if (this.isChecked) {\n // return;\n // }\n this.rowCheck.emit({ mo: this.mo, index: this.index });\n if (this.cartableParams) {\n const choiceList: ChoiceDef[] = this.cartableParams.formSetting?.Workflow?.ChoiceList;\n if (choiceList.length) {\n this.workflowShareButtons.emit({ mo: this.mo, choiceList, add: !this.isChecked });\n }\n }\n }\n\n protected _handleValueChange(): void {\n if (!this.isChecked) {\n this.onRowCheck();\n }\n this._formpanelValueChanged$.next();\n }\n protected _syncMo(): Observable<void> {\n const syncWithFormpanelMo = this.mo;\n const _isChecked = this.mo.$IsChecked;\n const formPanelCtrlrMo = this.formPanelCtrlr.Mo;\n this._updateWithOriginalValues(formPanelCtrlrMo, syncWithFormpanelMo);\n syncWithFormpanelMo['$OriginalValues'] = formPanelCtrlrMo['$OriginalValues'];\n syncWithFormpanelMo['$FieldDict'] = formPanelCtrlrMo['$FieldDict'];\n syncWithFormpanelMo['$State'] = formPanelCtrlrMo['$State']; // this add because if we edit unchanged mo it does not reflect to mo of ulv.\n this.mo = { ...syncWithFormpanelMo };\n this.mo.$IsChecked = _isChecked;\n return from(Promise.resolve());\n }\n\n protected _updateWithOriginalValues(source: MetaobjectDataModel, dest: MetaobjectDataModel): void {\n Object.keys(source.$OriginalValues).forEach((c: any) => {\n dest[c] = source[c];\n if (source[c + '$Caption']) {\n dest[c + '$Caption'] = source[c + '$Caption'];\n }\n if (source[c + '$Icon']) {\n dest[c + '$Icon'] = source[c + '$Icon'];\n }\n });\n }\n\n protected _raiseFormPanelValueChanged(): void {\n this.editFormPanelValueChange.emit(this.mo);\n }\n\n protected _handleBruleShowMessageAction(action: BruleActionMessage): void {\n action.MessageExpressionHtml = this._domSanitizer.bypassSecurityTrustHtml(action.MessageExpression);\n this.bruleActionMessage = action;\n // if (action.MessageType === BarsaApi.Common.Enums.ShowMessageRuleAction_Type.Information) {\n // if (action.EscapeCharacters) Ul.MsgBox.Info(action.MessageExpression, doReturn);\n // else Ul.MsgBox.Info_ShowHtml(action.MessageExpression, doReturn);\n // } else if (action.MessageType === BarsaApi.Common.Enums.ShowMessageRuleAction_Type.Error) {\n // var doReturn0 = function () {\n // this._formPanel.RefocusCurrentField();\n // doReturn(new Common.SilentException());\n // };\n // if (action.EscapeCharacters) Ul.MsgBox.Error(action.MessageExpression, doReturn0.bind(this));\n // else Ul.MsgBox.Error_ShowHtml(action.MessageExpression, doReturn0.bind(this));\n // } else if (action.MessageType === BarsaApi.Common.Enums.ShowMessageRuleAction_Type.OkCancel) {\n // Ul.MsgBox.ConfirmYesNo_Safe(true, action.MessageExpression, BBB.Select, action.EscapeCharacters, doReturn);\n // }\n }\n protected _createFormPanelCtrlr(mo: MetaobjectDataModel, typeDefId: string): any {\n if (!this.formPanelCtrlr) {\n this.formPanelCtrlr = createGridEditorFormPanel(\n this.formSetting,\n { ...mo },\n typeDefId,\n this.extraRelation,\n this.inRow\n // BarsaApi.Common.Util.TryGetValue(this.context.Setting, 'Extra.Relation')\n );\n }\n this.formPanelCtrlr.InlineEditInReport = true;\n this.formPanelCtrlr.on({\n bruleShowMessageAction: this._handleBruleShowMessageAction.bind(this),\n valueChange: this._handleValueChange.bind(this)\n });\n\n return this.formPanelCtrlr;\n }\n\n protected _loadAndCreateFormPanelCtrlr(): void {\n const formSettingData = this.formSetting.Data;\n const formMo = {\n ...this.mo,\n $FieldDict: formSettingData.Mo.$FieldDict,\n $TypeDefId: formSettingData.Mo.$TypeDefId,\n $OriginalValues: {}\n };\n if (this._formPanelLoaded) {\n this.formPanelCtrlr.SetValue(formMo);\n return;\n }\n\n this._createFormPanelCtrlr(formMo, this.typeDefId);\n this._formPanelLoaded = true;\n const formPanelCtrlr = this.formPanelCtrlr;\n this.formPanelCtrlr.UlvMoDataListCount = this.moDataListCount - 1;\n formPanelCtrlr.LoadAndCreate(null, false, false, () => {\n const customFormPanelUi = formPanelCtrlr.Adapter.Control;\n const parentMo = this._parentFormPanelService ? this._parentFormPanelService.mo : null;\n if (this.extraRelation && parentMo && this.extraRelation.RelationType === 'Composition') {\n formPanelCtrlr.Mo.SetFValue(this.extraRelation.ParentFdName, parentMo);\n // newFormSettings.Data.Mo[relation.ParentFdName] = parentMo.GetChangedObject();\n // newFormSettings.Data.Mo[relation.ParentFdName].$State = parentMo.$State;\n }\n customFormPanelUi.Refresh = () => {};\n this._formPanelService.context = formPanelCtrlr.Adapter.Control;\n });\n }\n protected _resetSavingStates(): void {\n this.hasError = false;\n this.bruleActionMessage = null;\n this.saved = false;\n this._cdr.markForCheck();\n }\n protected _setSavingState(err): void {\n if (err) {\n this.hasError = true;\n return;\n }\n this.hasError = false;\n this.saved = true;\n }\n protected _inlineEditSaveFormPanel(reason): Promise<{ reason: ReasonToSave; succeed: boolean; saved: boolean }> {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n return new Promise<{ reason: ReasonToSave; succeed: boolean; saved: boolean }>((resolve, _) => {\n if (!this.formPanelCtrlr.IsMoChanged()) {\n // if state of mo is new or modidfied then it needs to update\n resolve({ reason, succeed: true, saved: false });\n }\n const formPanelCtrlrMo = this.formPanelCtrlr.Mo;\n delete formPanelCtrlrMo.json;\n // this.saving = true;\n\n this.mo.$InlineMoChanged = false;\n this.editFormPanelSave.emit(this.mo);\n this.bruleActionMessage = null;\n this.formPanelCtrlr.Save(false, (err) => {\n // this.saving = false;\n this.formPanelCtrlr.SetIsChanged(false);\n this._setSavingState(err);\n resolve({ reason, succeed: true, saved: true });\n });\n });\n }\n}\ninterface BruleActionMessage {\n MessageType: number;\n EscapeCharacters: boolean;\n MessageExpression: string;\n MessageExpressionHtml: SafeHtml;\n}\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n EventEmitter,\n Input,\n Output,\n Renderer2\n} from '@angular/core';\nimport { Observable } from 'rxjs';\nimport {\n AbbrevationDeviceSize,\n DeviceSize,\n MetaobjectDataModel,\n ReportViewColumn,\n UiReportViewBaseSetting,\n FormSetting\n} from '../abstract-classes';\nimport { BaseComponent } from '../abstract-classes/base.component';\nimport { FindColumnByDbNamePipe, MoReportValuePipe } from '../pipes';\n\n@Component({\n selector: 'bnrc-base-item-content-props',\n template: ``,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class BaseItemContentPropsComponent<T extends UiReportViewBaseSetting> extends BaseComponent {\n @Output() events = new EventEmitter<{ title: string; data?: any }>();\n @Input() mo: MetaobjectDataModel;\n @Input() allColumns: ReportViewColumn[];\n @Input() column: ReportViewColumn;\n @Input() index: number;\n @Input() styleIndex: number[];\n @Input() deviceName: DeviceSize;\n @Input() deviceSize: AbbrevationDeviceSize;\n @Input() rtl: boolean;\n @Input() editMode: boolean;\n @Input() setting: T;\n @Input() parameters: MetaobjectDataModel;\n @Input() contextMenuItems: any[];\n @Input() canView: boolean;\n @Input() conditionalFormats: any;\n @Input() disableOverflowContextMenu: boolean;\n @Input() navigationArrow: string;\n @Input() isCheckList: boolean;\n @Input() fields: MetaobjectDataModel;\n @Input() isChecked: boolean;\n @Input() layout94$: Observable<any>;\n @Input() inlineEditMode: boolean;\n @Input() allowInlineEdit: boolean;\n @Input() isNewInlineMo: boolean;\n @Input() formSetting: FormSetting;\n @Input() typeDefId: string;\n\n constructor(\n protected _rval: MoReportValuePipe,\n protected _findColumnPipe: FindColumnByDbNamePipe,\n protected _cdr: ChangeDetectorRef,\n protected _el: ElementRef,\n protected _renderer2: Renderer2\n ) {\n super();\n }\n}\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, EventEmitter, Input, Output } from '@angular/core';\nimport { DeviceSize, MetaobjectDataModel, ReportViewColumn } from '../abstract-classes';\nimport { BaseComponent } from '../abstract-classes/base.component';\nimport { MoReportValuePipe } from '../pipes';\n\n@Component({\n selector: 'bnrc-form-toolbaritem-props',\n template: ``,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class BaseFormToolbaritemPropsComponent extends BaseComponent {\n @Input() deviceName: DeviceSize;\n @Input() btn: any;\n @Input() context: any;\n @Input() isEnable: boolean;\n @Input() inlineEditMode: boolean;\n @Input() parameters: MetaobjectDataModel;\n @Output() ulvClick = new EventEmitter<{ title: string; data?: any }>();\n @Input() mo: MetaobjectDataModel;\n @Input() allColumns: ReportViewColumn[];\n @Input() index: number;\n @Input() showText: boolean;\n @Input() conditionalFormats: any;\n @Output() commandClick = new EventEmitter<any>();\n constructor(protected _reportValuePipe: MoReportValuePipe, protected _cdr: ChangeDetectorRef) {\n super();\n }\n}\n","import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from '@angular/core';\r\nimport { DeviceSize, MetaobjectDataModel, ReportViewColumn } from '../abstract-classes';\r\nimport { BaseDynamicComponent } from './base-dynamic.component';\r\n\r\n@Component({\r\n selector: 'bnrc-dynamic-form-toolbaritem',\r\n template: `<ng-container #componentContainer></ng-container>`,\r\n styles: [':host { display: block;}'],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class DynamicFormToolbaritemComponent extends BaseDynamicComponent {\r\n @Output() btnClick = new EventEmitter<any>();\r\n @Input() mo: MetaobjectDataModel;\r\n @Input() index: number;\r\n @Input() deviceName: DeviceSize;\r\n @Input() context: any;\r\n @Input() btn: any;\r\n @Input() isEnable: boolean;\r\n @Input() showText: boolean;\r\n @Input() allColumns: ReportViewColumn[];\r\n @Input() conditionalFormats: any;\r\n}\r\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\nimport { LayoutSetting, MetaobjectDataModel } from '../abstract-classes';\nimport { BaseDynamicComponent } from './base-dynamic.component';\nimport { getUniqueId } from '../constants';\n\n@Component({\n selector: 'bnrc-dynamic-layout',\n template: ``,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class DynamicLayoutComponent extends BaseDynamicComponent {\n @Input() selector: string;\n @Input() module: string;\n @Input() name: string;\n @Input() parameters: MetaobjectDataModel;\n @Input() moduleFileName: string;\n @Input() flex: string;\n @Input() config: LayoutSetting;\n @Input() maxLabelWidth: number;\n @Input() hasHorizontalText: boolean;\n @Input() isSearchPanel: boolean;\n\n async ngOnInit(): Promise<void> {\n this.component = {\n Id: getUniqueId(3),\n $Caption: getUniqueId(3),\n Module: this.module,\n ModuleFileName: this.moduleFileName,\n Name: this.name,\n Selector: this.selector,\n Parameters: this.parameters\n };\n super.ngOnInit();\n }\n}\n","import { ChangeDetectionStrategy, Component, ElementRef, OnInit, ViewChild } from '@angular/core';\r\n\r\nimport { NavigationEnd, NavigationStart, RouterEvent } from '@angular/router';\r\nimport { Observable } from 'rxjs';\r\n\r\nimport { PageBaseComponent } from '../abstract-classes';\r\n\r\n@Component({\r\n selector: 'bnrc-root-portal',\r\n template: `<section class=\"section\" id=\"mainpage\" #sectionRef>\r\n <div #containerRef></div>\r\n </section>\r\n <div class=\"page-wrapper\">\r\n <router-outlet></router-outlet>\r\n </div>\r\n <footer #footerRef></footer> `,\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class RootPortalComponent extends PageBaseComponent implements OnInit {\r\n @ViewChild('sectionRef') sectionRef: ElementRef;\r\n @ViewChild('footerRef') footerRef: ElementRef;\r\n portalLoading$: Observable<boolean>;\r\n modules: any;\r\n isRoot = true;\r\n ngOnInit(): void {\r\n super.ngOnInit();\r\n this._router.events.subscribe((event) => {\r\n if (event instanceof NavigationStart && event instanceof RouterEvent) {\r\n this._portalService.naviationStart(event);\r\n }\r\n if (event instanceof NavigationEnd && event instanceof RouterEvent) {\r\n this._portalService.naviationEnd(event);\r\n }\r\n });\r\n }\r\n}\r\n","import { Directive, HostListener, Input } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[anchorScroll]'\r\n})\r\nexport class AnchorScrollDirective {\r\n @Input() anchorScroll: string;\r\n @HostListener('click')\r\n scrollInto(): void {\r\n const element = document.querySelector('#' + this.anchorScroll);\r\n if (element != null) {\r\n element.scrollIntoView();\r\n }\r\n }\r\n}\r\n","import {\n OnInit,\n AfterViewInit,\n Directive,\n OnDestroy,\n OnChanges,\n SimpleChanges,\n AfterContentInit,\n ElementRef\n} from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { BarsaApi } from '../abstract-classes/barsa-api';\n\n@Directive()\nexport abstract class BaseDirective implements OnInit, AfterViewInit, AfterContentInit, OnDestroy, OnChanges {\n protected readonly _onDestroy$: Subject<void> = new Subject<void>();\n /**\n *\n */\n constructor(protected _el: ElementRef) {}\n ngAfterContentInit(): void {\n if (!BarsaApi.Common.Debug?.Data?.CustomUi) {\n return;\n }\n console.log('ngAfterContentInit');\n console.log(this);\n }\n ngOnChanges(changes: SimpleChanges): void {\n if (!BarsaApi.Common.Debug?.Data?.CustomUi) {\n return;\n }\n console.log(changes);\n }\n ngOnInit(): void {\n if (!BarsaApi.Common.Debug?.Data?.CustomUi) {\n return;\n }\n console.log('ngOnInit');\n console.log(this);\n }\n ngAfterViewInit(): void {\n if (!BarsaApi.Common.Debug?.Data?.CustomUi) {\n return;\n }\n console.log('ngAfterViewInit');\n console.log(this);\n }\n ngOnDestroy(): void {\n this._onDestroy$.next();\n this._onDestroy$.complete();\n if (!BarsaApi.Common.Debug?.Data?.CustomUi) {\n return;\n }\n console.log('ngOnDestroy');\n console.log(this);\n }\n}\n","import { Directive, ElementRef, Input, Renderer2 } from '@angular/core';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { BaseDirective } from './base.directive';\r\n\r\nimport { PortalService } from '../services/portal.service';\r\n\r\n@Directive({\r\n selector: '[attrRtl]'\r\n})\r\nexport class AttrRtlDirective extends BaseDirective {\r\n @Input('attrRtl') rtl: boolean | undefined;\r\n constructor(private _renderer2: Renderer2, protected _el: ElementRef, _portalService: PortalService) {\r\n super(_el);\r\n const rtl = this.rtl;\r\n if (rtl === false) {\r\n this._setRtlAttribute(rtl);\r\n return;\r\n }\r\n _portalService.rtl$.pipe(takeUntil(this._onDestroy$)).subscribe((rtlValue) => {\r\n this._setRtlAttribute(rtlValue);\r\n });\r\n }\r\n\r\n private _setRtlAttribute(rtl: boolean): void {\r\n this._renderer2.setAttribute(this._el.nativeElement, 'rtl', `${rtl}`);\r\n }\r\n}\r\n","import { Directive, ElementRef, Input, OnInit, Renderer2 } from '@angular/core';\nimport { BaseDirective } from './base.directive';\n\n@Directive({\n selector: '[columnResizer]'\n})\nexport class ColumnResizerDirective extends BaseDirective implements OnInit {\n @Input() disableResizer: boolean;\n constructor(protected _el: ElementRef, private renderer: Renderer2) {\n super(_el);\n }\n ngOnInit(): void {\n super.ngOnInit();\n if (!this.disableResizer) {\n this._addColumnsResizer();\n }\n }\n\n private _addColumnsResizer(): void {\n const cell: HTMLTableCellElement = this._el.nativeElement;\n if (cell.hasAttribute('NoResizable')) {\n return;\n }\n const columnResizer = this.renderer.createElement('div');\n\n this.renderer.appendChild(cell, columnResizer);\n columnResizer.setAttribute('class', 'column-resizer');\n this.renderer.setAttribute(\n columnResizer,\n 'style',\n 'cursor: col-resize; width: 8px;position: absolute;left:0; top:0; bottom:0'\n );\n this.renderer.setStyle(cell, 'padding-left', 0);\n this.renderer.setStyle(cell, 'position', 'relative');\n }\n}\n","import { Directive, EventEmitter, HostListener, Input, Output } from '@angular/core';\nimport { MetaobjectDataModel } from '../abstract-classes';\nimport { ExecuteDynamicCommand } from '../constants';\n\n@Directive({\n selector: '[dynCommand]'\n})\nexport class DynamicCommandDirective {\n @Input() dynCommand: MetaobjectDataModel;\n @Input() mo: MetaobjectDataModel;\n @Input() enableCommand;\n @Output() commandClick = new EventEmitter();\n @HostListener('click', ['$event'])\n onClick(event: any): boolean {\n if (typeof this.enableCommand === typeof undefined) {\n this.enableCommand = true;\n }\n if (!this.enableCommand || !this.dynCommand) {\n return true;\n }\n const command = this.dynCommand;\n event.stopPropagation();\n event.preventDefault();\n ExecuteDynamicCommand(command, this.mo);\n this.commandClick.emit();\n return false;\n }\n}\n","import { AfterViewInit, Directive, ElementRef, HostListener, Input, Renderer2 } from '@angular/core';\nimport { BaseDirective } from './base.directive';\n\n@Directive({\n selector: '[ellipsify]'\n})\nexport class EllipsifyDirective extends BaseDirective implements AfterViewInit {\n @Input() limitLine;\n childes: ElementRef[];\n\n constructor(protected _el: ElementRef, protected renderer: Renderer2) {\n super(_el);\n }\n @HostListener('mousemove', ['$event'])\n moseMove(e): void {\n if (e.buttons) {\n this._heightChange();\n }\n }\n\n ngAfterViewInit(): void {\n super.ngAfterViewInit();\n setTimeout(() => {\n this.childes = this._el.nativeElement.querySelectorAll('span, h5, p');\n this._initStyle();\n this._handleNoEllipsis();\n this._heightChange();\n }, 100);\n }\n\n private _heightChange(): void {\n this.childes.forEach((child: any) => {\n if (child.childElementCount === 0) {\n const height = child.clientHeight;\n const lineHeightStr = getComputedStyle(child).lineHeight.replace('px', '');\n const lineHeight = Number(lineHeightStr);\n let limitLine = this.limitLine ? this.limitLine : Math.round(height / lineHeight);\n limitLine = limitLine && limitLine !== 0 ? limitLine : 1;\n this.renderer.setStyle(child, '-webkit-line-clamp', limitLine.toString());\n }\n });\n }\n\n private _initStyle(): void {\n this.childes.forEach((child: any) => {\n if (child.childElementCount === 0) {\n this.renderer.setStyle(child, 'height', 'inherit');\n this.renderer.setStyle(child, 'overflow', 'hidden');\n this.renderer.setStyle(child, '-webkit-box-orient', 'vertical');\n this.renderer.setStyle(child, 'display', '-webkit-box');\n this.renderer.setStyle(child, 'width', 'fit-content');\n }\n });\n }\n\n private _handleNoEllipsis(): void {\n const noEllipsisEls = this._el.nativeElement.querySelectorAll('[ellipsis=no-ellipsis]');\n noEllipsisEls.forEach((el: any) => {\n const all = el.querySelectorAll('span, h5, p');\n all.forEach((el2) => {\n if (el2.childElementCount === 0) {\n this.renderer.setStyle(el2, 'white-space', 'break-spaces');\n }\n });\n });\n }\n}\n","import { Directive, Input } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[field]'\r\n})\r\nexport class FieldDirective {\r\n @Input() field: string;\r\n @Input() value: any;\r\n}\r\n","import { Directive, ElementRef, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { fromEvent, timer, Subject, merge } from 'rxjs';\nimport { debounceTime, filter, takeUntil, tap } from 'rxjs/operators';\n\nimport { BaseDirective } from './base.directive';\nimport { PortalService } from '../services/portal.service';\n\n@Directive({\n selector: '[imgLazy]'\n})\nexport class ImageLazyDirective extends BaseDirective implements OnInit {\n @Input() auto = true;\n @Input() threshold = 20;\n @Output() imageLoaded = new EventEmitter();\n @Input() imgLazy: string;\n private _imgEl: HTMLImageElement;\n private _imageViewed$ = new Subject<void>();\n constructor(protected _el: ElementRef, private portalService: PortalService) {\n super(_el);\n this._imgEl = this._el.nativeElement as HTMLImageElement;\n }\n ngOnInit(): void {\n super.ngOnInit();\n const supports = 'loading' in HTMLImageElement.prototype;\n\n if (supports) {\n this._imgEl.src = this.imgLazy;\n this._imgEl.setAttribute('loading', 'lazy');\n this.handleLoadEvent(this._imgEl);\n return;\n }\n const timer1 = timer(1000);\n if (this.auto) {\n const isCached = this.portalService.cachedImages[this.imgLazy];\n if (isCached) {\n this._imgEl.src = this.imgLazy;\n return;\n }\n merge([timer1, fromEvent(window, 'scroll')])\n .pipe(\n takeUntil(this._imageViewed$),\n takeUntil(this._onDestroy$),\n debounceTime(20),\n filter(() => this.isInViewport()),\n tap(() => this.showImage())\n )\n .subscribe();\n }\n }\n public showImage(): void {\n const imgEl = this._imgEl;\n if (this.imgLazy === this._imgEl.src) {\n imgEl.parentElement?.setAttribute('imgLoaded', 'true');\n return;\n }\n this.portalService.cachedImages[this.imgLazy] = true;\n imgEl.src = this.imgLazy;\n this.handleLoadEvent(imgEl);\n this._imageViewed$.next();\n }\n private handleLoadEvent(imgEl: HTMLImageElement): void {\n imgEl.addEventListener('load', () => {\n imgEl.parentElement?.setAttribute('imgLoaded', 'true');\n this.imageLoaded.emit();\n });\n }\n private isInViewport(): boolean {\n const rect = this._imgEl.getBoundingClientRect();\n const isInViewport =\n rect.top >= 0 &&\n rect.left >= 0 &&\n rect.bottom - this.threshold <= (window.innerHeight || document.documentElement.clientHeight) &&\n rect.right <= (window.innerWidth || document.documentElement.clientWidth);\n return isInViewport;\n }\n}\n","import { Directive, ElementRef, EventEmitter, Input, OnInit, OnDestroy, Output } from '@angular/core';\r\n\r\nimport { Subject } from 'rxjs';\r\nimport { takeUntil } from 'rxjs/operators';\r\n\r\nimport { fromIntersectionObserver, IntersectionStatus } from '../from-intersection-observer';\r\n\r\n@Directive({\r\n selector: '[intersectionObserver]'\r\n})\r\nexport class IntersectionObserverDirective implements OnInit, OnDestroy {\r\n @Input() intersectionDebounce = 0;\r\n @Input() intersectionRootMargin = '0px';\r\n @Input() intersectionRoot: HTMLElement;\r\n @Input() intersectionThreshold: number | number[];\r\n\r\n @Output() visibilityChange = new EventEmitter<IntersectionStatus>();\r\n\r\n private destroy$ = new Subject<void>();\r\n\r\n constructor(private element: ElementRef) {}\r\n\r\n ngOnInit(): void {\r\n const element = this.element.nativeElement;\r\n const config = {\r\n root: this.intersectionRoot,\r\n rootMargin: this.intersectionRootMargin,\r\n threshold: this.intersectionThreshold\r\n };\r\n\r\n fromIntersectionObserver(element, config, this.intersectionDebounce)\r\n .pipe(takeUntil(this.destroy$))\r\n .subscribe((status) => {\r\n this.visibilityChange.emit(status);\r\n });\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.destroy$.next();\r\n }\r\n}\r\n","import { Directive, ElementRef, EventEmitter, Input, OnInit, Output } from '@angular/core';\n\nimport { MetaobjectDataModel } from '../abstract-classes/models';\nimport { BaseDirective } from './base.directive';\n\n@Directive({\n selector: '[itemsRenderer]'\n})\nexport class ItemsRendererDirective extends BaseDirective implements OnInit {\n @Input() itemsRenderer: any;\n @Input() moDataList: MetaobjectDataModel[];\n @Input() itemClass: string;\n @Output() itemClick = new EventEmitter();\n @Input() handleClick = false;\n private _fragmentDoc: DocumentFragment;\n constructor(public _el: ElementRef) {\n super(_el);\n }\n ngOnInit(): void {\n super.ngOnInit();\n const context = this.itemsRenderer.context;\n const { itemSelector } = this.itemsRenderer;\n const fragmentDoc = document.createDocumentFragment();\n if (!this.moDataList) {\n this.moDataList = this.itemsRenderer.moDataList;\n }\n\n this.moDataList.forEach((mo, index) => {\n const itemComponentElement = document.createElement(itemSelector);\n itemComponentElement.addEventListener('itemClick', (e) => {\n if (this.handleClick) {\n this.itemClick.emit(e.detail);\n } else {\n mo.$IsChecked = true;\n context?.fireEvent('rowdblclick', context, index, mo);\n }\n });\n itemComponentElement.context = context;\n itemComponentElement.mo = mo;\n itemComponentElement.index = index;\n itemComponentElement.classNames = this.itemClass;\n itemComponentElement.allColumns = this.itemsRenderer.allColumns;\n fragmentDoc.appendChild(itemComponentElement);\n });\n this._el.nativeElement.appendChild(fragmentDoc);\n this._fragmentDoc = fragmentDoc;\n }\n}\n","import { Directive, ElementRef, HostListener } from '@angular/core';\r\n\r\n@Directive({\r\n selector: 'input[type=number], input[numbersOnly]'\r\n})\r\nexport class NumbersOnlyInputDirective {\r\n constructor(private elRef: ElementRef) {}\r\n\r\n @HostListener('input', ['$event']) onInputChange(event): void {\r\n const initalValue = this.elRef.nativeElement.value;\r\n this.elRef.nativeElement.value = initalValue.replace(/[^0-9]*/g, '');\r\n if (initalValue !== this.elRef.nativeElement.value) {\r\n event.stopPropagation();\r\n }\r\n }\r\n}\r\n","import { Directive, Input } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[placeHolder]'\r\n})\r\nexport class PlaceHolderDirective {\r\n @Input() placeHolder: string;\r\n}\r\n","import {\r\n AfterViewInit,\r\n ChangeDetectorRef,\r\n ComponentRef,\r\n Directive,\r\n ElementRef,\r\n Injector,\r\n Input,\r\n OnDestroy,\r\n ViewContainerRef\r\n} from '@angular/core';\r\nimport { delay, takeUntil, tap } from 'rxjs/operators';\r\nimport { BarsaApi } from '../abstract-classes';\r\n\r\nimport { BaseDirective } from './base.directive';\r\nimport { getComponentDefined, getUniqueId } from '../constants';\r\nimport { PortalService } from '../services/portal.service';\r\n\r\n@Directive({\r\n selector: '[renderUlvViewer]'\r\n})\r\nexport class RenderUlvViewerDirective extends BaseDirective implements AfterViewInit, OnDestroy {\r\n @Input() mask: boolean;\r\n @Input('renderUlvViewer') viewer;\r\n component: ComponentRef<any>;\r\n constructor(\r\n private _injector: Injector,\r\n private _portalService: PortalService,\r\n private _vcr: ViewContainerRef,\r\n private _cdr: ChangeDetectorRef,\r\n protected _el: ElementRef\r\n ) {\r\n super(_el);\r\n }\r\n ngAfterViewInit(): void {\r\n super.ngAfterViewInit();\r\n this._render();\r\n }\r\n ngOnDestroy(): void {\r\n super.ngOnDestroy();\r\n if (this.component) {\r\n this.component.destroy();\r\n }\r\n }\r\n _render(): void {\r\n const context = this.viewer;\r\n if (context) {\r\n let defaultSetting = BarsaApi.Common.Util.TryGetValue(context.Setting, 'ClassNames.CustomUi', null);\r\n const customUi = BarsaApi.Common.Util.TryGetValue(context.Setting, 'View.CustomUi', null);\r\n if (customUi !== null) {\r\n defaultSetting = customUi;\r\n }\r\n const { moduleName, modulePath, componentName, selector } = getComponentDefined(context, defaultSetting);\r\n this._portalService\r\n .getComponent(moduleName, modulePath, componentName, selector, this._injector)\r\n .pipe(\r\n takeUntil(this._onDestroy$),\r\n delay(0),\r\n tap((component) => {\r\n component.instance.id = getUniqueId(4);\r\n component.instance.context = context;\r\n context.controlUi = component.instance;\r\n this.component = component;\r\n this._vcr.insert(component.hostView);\r\n this._cdr.detectChanges();\r\n })\r\n )\r\n .subscribe();\r\n }\r\n }\r\n}\r\n","import {\n ChangeDetectorRef,\n ComponentRef,\n Directive,\n ElementRef,\n EventEmitter,\n Injector,\n Input,\n OnDestroy,\n OnInit,\n Output,\n SimpleChanges,\n ViewContainerRef\n} from '@angular/core';\nimport { delay, takeUntil, tap } from 'rxjs/operators';\n\nimport { BaseDirective } from './base.directive';\nimport { getComponentDefined, getUniqueId } from '../constants';\nimport { PortalService } from '../services/portal.service';\nimport { BarsaApi, PagingSetting } from '../abstract-classes';\n\n@Directive({\n selector: '[renderUlvPaging]'\n})\nexport class RenderUlvPaginDirective extends BaseDirective implements OnInit, OnDestroy {\n @Output() pageChange = new EventEmitter<number>();\n @Input() mask: boolean;\n @Input() pagingSetting: PagingSetting;\n @Input('renderUlvPaging') context;\n component: ComponentRef<any>;\n constructor(\n private _injector: Injector,\n private _portalService: PortalService,\n private _vcr: ViewContainerRef,\n private _cdr: ChangeDetectorRef,\n protected _el: ElementRef\n ) {\n super(_el);\n }\n async ngOnInit(): Promise<void> {\n super.ngOnInit();\n this._render();\n }\n ngOnDestroy(): void {\n super.ngOnDestroy();\n this.component?.destroy();\n }\n ngOnChanges(changes: SimpleChanges): void {\n super.ngOnChanges(changes);\n if (this.component) {\n Object.keys(changes).forEach((key) => {\n if (!changes[key].firstChange) {\n this.component.instance[key] = changes[key].currentValue;\n }\n });\n this.component.instance.ngOnChanges(changes);\n }\n }\n async _render(): Promise<void> {\n const context = this.context;\n if (context) {\n const customUiSetting = BarsaApi.Common.Util.TryGetValue(context.Setting, 'ClassNames.CustomUi', null);\n const {\n moduleName,\n modulePath\n // componentName,\n // selector\n } = getComponentDefined(context, customUiSetting);\n\n this._portalService\n .getComponent(moduleName, modulePath, 'UlvPaging', 'bsu-ulv-paging', this._injector)\n .pipe(\n takeUntil(this._onDestroy$),\n delay(0),\n tap((component) => {\n const instance: any = component.instance;\n instance.id = getUniqueId(4);\n instance.context = context;\n instance.pagingSetting = this.pagingSetting;\n instance.pageChange?.pipe(takeUntil(this._onDestroy$)).subscribe((e) => {\n this.pageChange.emit(e);\n });\n this.component = component;\n this._vcr.insert(component.hostView);\n this._cdr.detectChanges();\n })\n )\n .subscribe();\n }\n }\n}\n","import {\n Directive,\n ElementRef,\n Input,\n Renderer2,\n HostListener,\n SimpleChanges,\n OnInit,\n OnDestroy,\n AfterViewInit,\n OnChanges,\n EventEmitter,\n Output\n} from '@angular/core';\nimport { fromEvent } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { ColumnResizedArgs } from '../abstract-classes';\nimport { BaseDirective } from './base.directive';\nconst enum Resizer {\n Row = 'Row',\n Column = 'Column'\n}\n\n@Directive({\n selector: '[tableResizer]'\n})\nexport class TableResizerDirective extends BaseDirective implements OnInit, OnDestroy, AfterViewInit, OnChanges {\n @Input() fitWidth: boolean;\n @Input() minWidth;\n @Input() minHeight;\n @Input() containerWidth: number;\n @Input() rowResizer: boolean;\n @Input() enableResizing: boolean;\n @Output() columnResized = new EventEmitter<Array<ColumnResizedArgs>>();\n private _currentCell: HTMLTableCellElement;\n private _sideCell;\n private _startX;\n private _startY;\n private _currentColumnWidth;\n private _sideColumnWidth;\n private _currentRowHeight;\n private _currentResizer: Resizer | null;\n private _isInitTable: boolean;\n constructor(protected _el: ElementRef, private renderer: Renderer2) {\n super(_el);\n fromEvent(document, 'mouseup')\n .pipe(takeUntil(this._onDestroy$))\n .subscribe(() => {\n this._mouseUp();\n });\n fromEvent(document, 'mousemove')\n .pipe(takeUntil(this._onDestroy$))\n .subscribe((e) => {\n this._mouseMove(e);\n });\n }\n private get _table(): HTMLTableElement {\n return this._el.nativeElement as HTMLTableElement;\n }\n\n @HostListener('mousedown', ['$event'])\n moseDown(e): void {\n this._mouseDown(e);\n }\n\n @HostListener('mousemove', ['$event'])\n moseMove(e): void {\n this._mouseMove(e);\n }\n\n ngAfterViewInit(): void {\n if (this.rowResizer) {\n this._putBodyCellsContentIntoDiv();\n }\n if (this.rowResizer) {\n this._addRowsResizer();\n }\n this._setTableMode(this.fitWidth);\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n super.ngOnChanges(changes);\n const { fitWidth } = changes;\n if (this.enableResizing && fitWidth && !fitWidth.firstChange) {\n const newFitWidth = fitWidth.currentValue;\n this._setTableMode(newFitWidth);\n }\n }\n private _initializeTable(): void {\n this._initTable();\n this._setTableMode(this.fitWidth);\n }\n private _resizeRow(event): void {\n this._currentResizer = Resizer.Row;\n const elementFromPoint = document.elementFromPoint(event.pageX, event.pageY);\n this._currentCell = elementFromPoint?.closest('td') as HTMLTableCellElement;\n this._startY = event.pageY;\n this._currentRowHeight = this._currentCell?.clientHeight || 0;\n }\n\n private _resizeColumn(event): void {\n if (!this.fitWidth) {\n this._setTableFreeSize();\n }\n this._currentResizer = Resizer.Column;\n const elementFromPoint = document.elementFromPoint(event.pageX, event.pageY);\n this._currentCell = elementFromPoint?.closest('th') as HTMLTableCellElement;\n this._startX = event.pageX;\n this._currentColumnWidth = this._currentCell?.clientWidth || 0;\n this._sideCell = this._getSideCell(this._currentCell);\n this._sideColumnWidth = this._sideCell?.clientWidth;\n }\n\n private _addRowsResizer(): void {\n const table = this._table;\n const rowsLabel = table.querySelectorAll('.vertical-label');\n rowsLabel.forEach((cell) => {\n const rowResizer = this.renderer.createElement('div');\n\n this.renderer.appendChild(cell, rowResizer);\n\n rowResizer.setAttribute('class', 'row-resizer');\n this.renderer.setStyle(cell, 'height', 'inherit');\n this.renderer.setStyle(cell, 'position', 'relative');\n this.renderer.setAttribute(\n rowResizer,\n 'style',\n 'cursor: row-resize; height:8px; position:absolute;bottom:0;left:0;right:0'\n );\n });\n }\n\n private _putBodyCellsContentIntoDiv(): void {\n const table = this._table as any;\n const bodyCells = table.querySelectorAll('body td:not(.vertical-label)');\n bodyCells.forEach((cell) => {\n const contentContainer = this.renderer.createElement('div');\n cell.children.forEach((child) => {\n contentContainer.appendChild(child);\n });\n this.renderer.setStyle(cell, 'overflow', 'hidden');\n this.renderer.setStyle(cell, 'height', 'inherit');\n this.renderer.setStyle(contentContainer, 'height', 'inherit');\n this.renderer.setStyle(contentContainer, 'display', 'block');\n\n cell.appendChild(contentContainer);\n });\n }\n\n private _getSideCell(currentCell): Element | null {\n const currentRow = this._currentCell.parentNode?.children;\n if (currentRow) {\n const cellIndexInRow = Array.from(currentRow).indexOf(currentCell);\n return Array.from(currentRow)[cellIndexInRow + 1];\n }\n return null;\n }\n\n private _changeWidth(\n fitWidth: boolean,\n sideCell,\n currentCell,\n changedCurrentCellWidth,\n changedSideCellWidth\n ): void {\n if (fitWidth) {\n if (sideCell && changedCurrentCellWidth >= this.minWidth && changedSideCellWidth >= this.minWidth) {\n this.renderer.setStyle(sideCell, 'width', changedSideCellWidth + 'px');\n this.renderer.setStyle(sideCell, 'min-width', changedSideCellWidth + 'px');\n this.renderer.setStyle(currentCell, 'width', changedCurrentCellWidth + 'px');\n this.renderer.setStyle(currentCell, 'min-width', changedCurrentCellWidth + 'px');\n }\n } else if (changedCurrentCellWidth >= this.minWidth) {\n this.renderer.setStyle(currentCell, 'width', changedCurrentCellWidth + 'px');\n this.renderer.setStyle(currentCell, 'min-width', changedCurrentCellWidth + 'px');\n }\n }\n\n private _changeHeight(currentCell, changedHeight, minHeight): void {\n if (changedHeight > minHeight) {\n this.renderer.setStyle(currentCell.closest('tr'), 'height', changedHeight + 'px');\n }\n }\n private _initTable(): void {\n if (this._isInitTable) {\n return;\n }\n this._isInitTable = true;\n const table: HTMLTableElement = this._table;\n const parent = table.parentElement;\n this.renderer.setStyle(parent, 'overflow-x', this.fitWidth ? 'hidden' : 'auto');\n // this.renderer.setStyle(parent, 'overflow-y', 'auto');\n this.renderer.setStyle(parent, 'width', '100%');\n }\n\n private _setTableMode(isFitWidth): void {\n if (isFitWidth) {\n this._setTableFitSize();\n }\n }\n\n private _setTableFreeSize(): void {\n const table = this._table;\n this.renderer.setStyle(table, 'width', this.containerWidth + 'px');\n this.renderer.setStyle(table, 'max-width', 'unset');\n this.renderer.setStyle(table, 'min-width', this.containerWidth + 'px');\n const headCells = table.querySelectorAll('th');\n headCells.forEach((cell) => {\n const width = cell.offsetWidth;\n this.renderer.setStyle(cell, 'width', width + 'px');\n this.renderer.setStyle(cell, 'min-width', width + 'px');\n });\n }\n\n private _setTableFitSize(): void {\n const table = this._table;\n this.renderer.setStyle(table, 'width', '100%');\n this.renderer.setStyle(table, 'max-width', '100%');\n }\n\n private _mouseDown(e): void {\n if (e.srcElement.className === 'row-resizer') {\n this._resizeRow(e);\n this.renderer.setStyle(this._el.nativeElement, 'cursor', 'row-resize');\n } else if (e.srcElement.className === 'column-resizer') {\n this._resizeColumn(e);\n this.renderer.setStyle(this._el.nativeElement, 'cursor', 'col-resize');\n }\n }\n\n private _mouseMove(e): void {\n if (e.buttons !== 0) {\n if (this._currentResizer === Resizer.Column) {\n if (!this._isInitTable) {\n this._initializeTable();\n }\n const endX = e.pageX;\n const dx = endX - this._startX;\n const changedCurrentCellWidth = this._currentColumnWidth - dx;\n const changedSideCellWidth = this._sideColumnWidth + dx;\n this._changeWidth(\n this.fitWidth,\n this._sideCell,\n this._currentCell,\n changedCurrentCellWidth,\n changedSideCellWidth\n );\n } else if (this._currentResizer === Resizer.Row) {\n const endY = e.pageY;\n const dy = endY - this._startY;\n const changedCurrentRowHeight = this._currentRowHeight + dy;\n this._changeHeight(this._currentCell, changedCurrentRowHeight, this.minHeight);\n }\n }\n }\n\n private _mouseUp(): void {\n if (this._currentResizer) {\n const table = this._el.nativeElement;\n const headers = table.querySelectorAll('th');\n const columnResized: ColumnResizedArgs[] = [];\n for (let i = 0; i < headers.length; i++) {\n const header = headers[i];\n const columnName = header.attributes['columnname']?.value;\n if (typeof columnName !== 'undefined') {\n columnResized.push({ name: columnName, width: header.offsetWidth });\n }\n }\n this.columnResized.emit(columnResized);\n }\n this._currentResizer = null;\n this.renderer.setStyle(this._el.nativeElement, 'cursor', 'default');\n }\n}\n","import { Directive, EventEmitter, HostListener, Input, Output } from '@angular/core';\nimport { BaseDirective } from './base.directive';\nimport { executeUlvCommandHandler } from '../constants';\n\n@Directive({\n selector: '[ulvCommandHandler]'\n})\nexport class UlvCommandDirective extends BaseDirective {\n @Input() ulvCommandHandler: any;\n @Output() commandClick = new EventEmitter();\n @HostListener('click', ['$event'])\n onClick(event: any): boolean {\n const button = this.ulvCommandHandler;\n event.stopPropagation();\n event.preventDefault();\n this.commandClick.emit(button);\n setTimeout(() => {\n // add settimeout because we need select row before execute row\n executeUlvCommandHandler(button);\n });\n\n return false;\n }\n}\n","import {\r\n ChangeDetectorRef,\r\n Directive,\r\n ElementRef,\r\n Input,\r\n OnDestroy,\r\n OnInit,\r\n TemplateRef,\r\n ViewContainerRef\r\n} from '@angular/core';\r\nimport { Subject } from 'rxjs';\r\nimport { takeUntil } from 'rxjs/operators';\r\n\r\nimport { BaseDirective } from './base.directive';\r\nimport { fromIntersectionObserver } from '../from-intersection-observer';\r\n\r\n@Directive({\r\n selector: '[untilInView]'\r\n})\r\nexport class UntilInViewDirective extends BaseDirective implements OnInit, OnDestroy {\r\n @Input() untilInView: ElementRef;\r\n @Input() intersectionDebounce = 100;\r\n private viewed$ = new Subject<void>();\r\n constructor(\r\n private _templateRef: TemplateRef<any>,\r\n private _vcr: ViewContainerRef,\r\n private _cdr: ChangeDetectorRef,\r\n protected _el: ElementRef\r\n ) {\r\n super(_el);\r\n }\r\n\r\n public viewed(): void {\r\n this.viewed$.next();\r\n this._vcr.createEmbeddedView(this._templateRef);\r\n this._cdr.detectChanges();\r\n }\r\n\r\n ngOnInit(): void {\r\n super.ngOnInit();\r\n const element = this.untilInView.nativeElement;\r\n const config = {\r\n root: null,\r\n rootMargin: '0px',\r\n threshold: 0\r\n };\r\n fromIntersectionObserver(element, config, this.intersectionDebounce)\r\n .pipe(takeUntil(this.viewed$), takeUntil(this._onDestroy$))\r\n .subscribe(() => {\r\n this.viewed();\r\n });\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this._onDestroy$.next();\r\n }\r\n}\r\n","import { Directive, EventEmitter, HostListener, Input, Output } from '@angular/core';\r\nimport { ChoiceDef, MetaobjectDataModel, WorkflowExecuteChoiceStatus } from '../abstract-classes';\r\nimport { ExecuteWorkflowChoiceDef } from '../constants';\r\n\r\n@Directive({\r\n selector: '[wfChoice]'\r\n})\r\nexport class WorfkflowwChoiceCommandDirective {\r\n @Input() wfChoice: ChoiceDef;\r\n @Input() mo: MetaobjectDataModel;\r\n @Input() enableCommand;\r\n @Output() commandClick = new EventEmitter();\r\n @Output() workflowExecuteChoiceStatusChanged = new EventEmitter<WorkflowExecuteChoiceStatus>();\r\n status: WorkflowExecuteChoiceStatus = {\r\n loading: false,\r\n result: null,\r\n error: null\r\n };\r\n @HostListener('click', ['$event'])\r\n onClick(event: any): boolean {\r\n if (typeof this.enableCommand === typeof undefined) {\r\n this.enableCommand = true;\r\n }\r\n if (!this.enableCommand) {\r\n return true;\r\n }\r\n event.stopPropagation();\r\n event.preventDefault();\r\n const choice = this.wfChoice;\r\n const param = {\r\n mo: this.mo,\r\n choiceDef: { ...choice }\r\n };\r\n this.status = { choice, loading: true, result: null, error: null };\r\n this.workflowExecuteChoiceStatusChanged.emit(this.status);\r\n ExecuteWorkflowChoiceDef(\r\n this,\r\n param,\r\n (result) => {\r\n this.workflowExecuteChoiceStatusChanged.emit({ ...this.status, loading: false, result, error: null });\r\n },\r\n (error) => {\r\n this.workflowExecuteChoiceStatusChanged.emit({ ...this.status, loading: false, result: null, error });\r\n }\r\n );\r\n this.commandClick.emit();\r\n return false;\r\n }\r\n}\r\n","import { Directive, ElementRef, HostListener, Input, OnInit, Optional, Inject, Renderer2 } from '@angular/core';\nimport { BaseDirective } from './base.directive';\nimport { TOAST_SERVICE } from '../injdection-tokens';\nimport { ToastService } from '../services/toast.service';\n\n@Directive({\n selector: '[copy]'\n})\nexport class CopyDirective extends BaseDirective implements OnInit {\n @Input() copy: string;\n _inputEl: HTMLInputElement;\n /**\n *\n */\n constructor(\n @Optional() @Inject(TOAST_SERVICE) protected _toastService: ToastService,\n protected _el: ElementRef,\n protected _renderer2: Renderer2\n ) {\n super(_el);\n if (!navigator.clipboard) {\n this._renderer2.addClass(this._el.nativeElement, 'hide');\n }\n }\n\n @HostListener('click')\n doCopy(): void {\n const inputEl = this._inputEl;\n inputEl.value = this.copy;\n const copyText = inputEl;\n /* Select the text field */\n copyText.select();\n copyText.setSelectionRange(0, inputEl.value.length); /* For mobile devices */\n /* Copy the text inside the text field */\n navigator.clipboard.writeText(copyText.value);\n if (this._toastService) {\n this._toastService.open(` ${this.copy} copied. `, { duration: 5000 });\n }\n }\n ngOnInit(): void {\n super.ngOnInit();\n const dom = this._el.nativeElement as HTMLElement;\n const inputEl = document.createElement('input');\n inputEl.style.display = 'none';\n dom.appendChild(inputEl);\n this._inputEl = inputEl;\n }\n}\n","import { Directive, ElementRef, Input, OnInit, Renderer2 } from '@angular/core';\nimport { BaseDirective } from './base.directive';\n\n@Directive({\n selector: '[ellapsisText]'\n})\nexport class EllapsisTextDirective extends BaseDirective implements OnInit {\n @Input() ellapsisText: string;\n @Input() maxWidth: number;\n\n /**\n *\n */\n constructor(protected _el: ElementRef, protected _renderer2: Renderer2) {\n super(_el);\n }\n ngOnInit(): void {\n super.ngOnInit();\n const measureTextDom = document.getElementById('measureText') as HTMLCanvasElement;\n if (!measureTextDom) {\n return;\n }\n const ctx = measureTextDom.getContext('2d') as any;\n\n ctx.font = 'normal 0.885rem IRANYekanDigits';\n\n const labelCaption = this.ellapsisText;\n\n const labelWidth = ctx.measureText(labelCaption).width;\n const labelWithPadding = labelWidth + 10;\n const textWidth = Math.ceil(labelWithPadding);\n if (this.maxWidth > 0 && textWidth > this.maxWidth) {\n this._renderer2.setStyle(this._el.nativeElement, 'width', `${this.maxWidth}px`);\n }\n }\n}\n","import { Injectable } from '@angular/core';\r\nimport { ActivatedRouteSnapshot, Resolve } from '@angular/router';\r\nimport { Observable } from 'rxjs';\r\n\r\nimport { PageDataModel } from '../abstract-classes';\r\nimport { PortalService } from '../services/portal.service';\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class PortalDynamicPageResolver implements Resolve<PageDataModel | null> {\r\n constructor(private portalService: PortalService) {}\r\n\r\n resolve(\r\n route: ActivatedRouteSnapshot\r\n // state: RouterStateSnapshot\r\n ): Observable<PageDataModel | null> {\r\n // const url = decodeURI(route['_routerState'].url);\r\n // let url2=route.routeConfig?.path;\r\n // if(route.params.path)\r\n // url2=route.params.path;\r\n\r\n // if(route.url.length==0)\r\n // return of(null);\r\n // if(route.routeConfig?.path=='')\r\n // {\r\n // url2 = url.split('/').find((c) => c && !c.startsWith('(')) ?? '';\r\n // }\r\n // else if(url2=='**'){\r\n // url2=route.url[0].path;\r\n // }\r\n // url2 = '/' + url2;\r\n // const url=route.params.path;\r\n const _route: any = route;\r\n let pageData = route.data?.pageData;\r\n // if (!pageData && url) {\r\n // pageData = this.portalService.pages.find((c) => c.Route == '/' + url);\r\n // }\r\n const urlSegments = _route._urlSegment.segments;\r\n const lastUrlSegment = urlSegments[urlSegments.length - 1];\r\n if (urlSegments.length === 1) {\r\n pageData = this.portalService.pages.find(\r\n (c) => c.ParentRoute === '/' + lastUrlSegment.path && c.IsDefaultRoute\r\n );\r\n } else {\r\n pageData = this.portalService.pages.find((c) => c.Route === '/' + lastUrlSegment.path);\r\n }\r\n\r\n // }\r\n return this.portalService.resolveData(pageData);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { ActivatedRouteSnapshot, Resolve } from '@angular/router';\r\n@Injectable({ providedIn: 'root' })\r\nexport class PortalFormPageResolver implements Resolve<string> {\r\n constructor() {}\r\n resolve(\r\n route: ActivatedRouteSnapshot\r\n // state: RouterStateSnapshot\r\n ): string {\r\n const breadcrumb = route.params.bc; // means breadCrumb\r\n return breadcrumb;\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { ActivatedRouteSnapshot, Resolve } from '@angular/router';\r\nimport { Observable } from 'rxjs';\r\nimport { map } from 'rxjs/operators';\r\n\r\nimport { PageDataModel } from '../abstract-classes';\r\nimport { PortalService } from '../services/portal.service';\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class PortalReportPageResolver implements Resolve<PageDataModel | null> {\r\n constructor(private portalService: PortalService) {}\r\n\r\n resolve(\r\n route: ActivatedRouteSnapshot\r\n // state: RouterStateSnapshot\r\n ): Observable<PageDataModel | null> {\r\n // const url = decodeURI(route['_routerState'].url);\r\n // let url2=route.routeConfig?.path;\r\n // if(route.routeConfig?.path=='')\r\n // {\r\n // url2 = url.split('/').find((c) => c && !c.startsWith('(')) ?? '';\r\n // }\r\n // if(url2=='**'){\r\n // url2=route.url[0].path;\r\n // }\r\n // url2 = '/' + url2;\r\n const caption = route.params.id.split('__')[1];\r\n return this.portalService.resolveData(route.data.pageData).pipe(\r\n map((pageData) => {\r\n if (pageData) {\r\n pageData.BreadCrumb = caption;\r\n }\r\n return pageData;\r\n })\r\n );\r\n }\r\n}\r\n","import { ChangeDetectionStrategy, Component, Input, OnInit } from '@angular/core';\nimport { MetaobjectDataModel } from '../abstract-classes/models';\nimport { BaseComponent } from '../abstract-classes/base.component';\nimport { getUniqueId } from '../constants';\n\ninterface FormNewSetting {\n MetaTypeDef: MetaobjectDataModel;\n MetaView: MetaobjectDataModel;\n DisableGenerateId: boolean;\n}\n@Component({\n selector: 'bnrc-form-new',\n template: '<bnrc-form [params]=\"params\"></bnrc-form>',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class FormNewComponent extends BaseComponent implements OnInit {\n @Input() settings: FormNewSetting;\n newId: string;\n params: { moId: string; typeDefId: string; viewId: string };\n constructor() {\n super();\n }\n ngOnInit(): void {\n super.ngOnInit();\n const moId = this.settings.DisableGenerateId ? '0' : getUniqueId(4);\n const typeDefId = this.settings?.MetaTypeDef?.Id;\n const viewId = this.settings?.MetaView?.Id;\n this.params = { moId, typeDefId, viewId };\n }\n}\n","import { ChangeDetectionStrategy, Component, Injector, Input, OnInit, ViewContainerRef } from '@angular/core';\nimport { Observable, Subject, throwError } from 'rxjs';\nimport { catchError, debounceTime, finalize, takeUntil } from 'rxjs/operators';\n\nimport { MetaobjectDataModel } from '../abstract-classes/models';\nimport { BaseComponent } from '../abstract-classes/base.component';\nimport { PortalService } from '../services/portal.service';\ninterface ReportSetting extends MetaobjectDataModel {\n RelatedReport: MetaobjectDataModel;\n RowClick: string;\n DataOnly: boolean;\n}\n@Component({\n selector: 'bnrc-report-container',\n templateUrl: './report-container.component.html',\n styleUrls: ['./report-container.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class ReportContainerComponent extends BaseComponent implements OnInit {\n @Input() settings: ReportSetting;\n loading$: Observable<boolean>;\n private _loadingSource = new Subject<boolean>();\n constructor(private portalService: PortalService, private injector: Injector, private vcr: ViewContainerRef) {\n super();\n this.loading$ = this._loadingSource.asObservable().pipe(takeUntil(this._onDestroy$), debounceTime(200));\n }\n\n ngOnInit(): void {\n super.ngOnInit();\n let ulvParam;\n if (this.settings.DataOnly) {\n ulvParam = {\n Flags: {\n Data: 'True',\n Extra: 'False',\n Search: 'False',\n View: 'False'\n // General:\"False\", // ulvmainctrl does not craete ui control raise error\n }\n };\n ulvParam.ReportId = this.settings.RelatedReport.Id;\n ulvParam.UsageEnum = 'SystemContainer';\n }\n this._loadingSource.next(true);\n this.portalService\n .renderUlvMainUi(\n {\n Id: null,\n ReportId: this.settings.RelatedReport.Id,\n UlvParams: ulvParam\n },\n this.vcr,\n this.injector\n )\n .pipe(\n takeUntil(this._onDestroy$),\n catchError((err) => throwError(err)),\n finalize(() => this._loadingSource.next(false))\n )\n .subscribe();\n }\n}\n","<bsu-mask *ngIf=\"(loading$ | async)!!\"></bsu-mask>\r\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ComponentRef,\n ElementRef,\n HostBinding,\n Injector,\n Input,\n OnChanges,\n OnInit,\n SimpleChanges,\n ViewChild,\n ViewContainerRef\n} from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { mergeWith, takeUntil, tap } from 'rxjs/operators';\n\nimport { BarsaApi } from '../abstract-classes';\n\nimport { BaseComponent } from '../abstract-classes/base.component';\nimport { getComponentDefined, getUniqueId } from '../constants';\nimport { PortalService } from '../services/portal.service';\n\n@Component({\n selector: 'bnrc-field-ui',\n template: '<ng-container #placeholder></ng-container>',\n styleUrls: ['./field-ui.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class FieldUiComponent extends BaseComponent implements OnInit, OnChanges {\n @Input() isSearchPanel: boolean;\n @Input() customField: any;\n @Input() layoutInfo: any;\n @Input() inlineEdit: boolean;\n @Input() focusControl: boolean;\n @Input() formHeight: number;\n @HostBinding('style.width') width = '100%';\n @ViewChild('placeholder', { read: ViewContainerRef, static: true })\n vcr: ViewContainerRef;\n uniquId: any;\n private _component: ComponentRef<any>;\n private _customFieldChange$ = new Subject<void>();\n constructor(\n el: ElementRef,\n private _portalService: PortalService,\n private _injector: Injector,\n private _cdr: ChangeDetectorRef\n ) {\n super();\n el.nativeElement.id = this.uniquId = getUniqueId(4);\n }\n async ngOnInit(): Promise<void> {\n super.ngOnInit();\n if (this.customField.originalXtype === 'Ui.CheckBox') {\n // this.width = 'auto';\n }\n // if (this.isSearchPanel) {\n // this.width = '320px';\n // }\n this.inserFieldToContainer();\n }\n async ngOnChanges(changes: SimpleChanges): Promise<void> {\n super.ngOnChanges(changes);\n const { customField } = changes;\n if (this._component) {\n if (customField && !customField.firstChange) {\n this._customFieldChange$.next();\n this._setContext(this._component.instance, customField.currentValue);\n } else {\n Object.keys(changes).forEach((key) => {\n if (!changes[key].firstChange) {\n this._component.instance[key] = changes[key].currentValue;\n }\n });\n this._component.instance.ngOnChanges(changes);\n }\n }\n }\n ngOnDestroy(): void {\n super.ngOnDestroy();\n if (this._component) {\n this._component.destroy();\n }\n }\n async inserFieldToContainer(): Promise<void> {\n const customField = this.customField;\n if (!customField) {\n console.error('item does not exist.');\n return;\n }\n let customUiSetting = BarsaApi.Common.Util.TryGetValue(customField.Setting, 'CustomUi', null);\n if (customField._innerControl) {\n customUiSetting = null;\n }\n const { moduleName, modulePath, componentName, selector } = getComponentDefined(customField, customUiSetting);\n this._portalService\n .getComponent(moduleName, modulePath, componentName, selector, this._injector)\n .pipe(\n takeUntil(this._onDestroy$),\n tap((component) => {\n const componentInstance = component.instance;\n componentInstance.id = getUniqueId(4);\n componentInstance.layoutInfo = this.layoutInfo;\n componentInstance.inlineEdit = this.inlineEdit;\n if (customUiSetting) {\n componentInstance.parameters = customUiSetting.Parameters;\n }\n this._setContext(componentInstance, customField);\n componentInstance.focusControl = this.focusControl;\n this._component = component;\n this.vcr.insert(component.hostView);\n this._cdr.detectChanges();\n })\n )\n .subscribe();\n }\n\n private _setContext(componentInstance: any, customField: any): void {\n componentInstance.context = customField;\n componentInstance.value = customField.value;\n componentInstance.disable = customField.disable;\n componentInstance.readonly = customField.readonly;\n componentInstance.formHeight = this.formHeight;\n\n customField.controlUi = componentInstance;\n if (componentInstance.valueChange) {\n componentInstance.valueChange\n .pipe(\n takeUntil(this._onDestroy$.pipe(mergeWith(this._customFieldChange$)))\n // distinctUntilChanged((oldVal, newVal) => customField.value != newVal)\n )\n .subscribe((value) => {\n customField.value = value;\n customField.caption = componentInstance.caption;\n customField.fireEvent('change', value);\n });\n }\n if (componentInstance.formmatedValue) {\n componentInstance.formmatedValue\n .pipe(\n takeUntil(this._onDestroy$.pipe(mergeWith(this._customFieldChange$)))\n // distinctUntilChanged((oldVal, newVal) => customField.value != newVal)\n )\n .subscribe((formmatedValue) => {\n customField.formmatedValue = formmatedValue; // this event call from number base\n });\n }\n }\n}\n","import { ChangeDetectionStrategy, Component, HostBinding, OnInit } from '@angular/core';\n\nimport { GridSetting, ReportViewColumn, SortSetting } from './abstract-classes';\nimport { BarsaApi } from './abstract-classes/barsa-api';\nimport { BaseComponent } from './abstract-classes/base.component';\nimport { getGridSettings, GetAllColumnsSorted } from './constants';\nimport { isMobile } from './device';\n\n@Component({\n selector: 'bnrc-base-ulv-setting',\n template: '',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport abstract class BaseUlvSettingComponent extends BaseComponent implements OnInit {\n @HostBinding('class.mobile') mobile = isMobile();\n context: any;\n originalSetting: any;\n allColumns: ReportViewColumn[];\n sortSettings: SortSetting[];\n ngOnInit(): void {\n super.ngOnInit();\n this.originalSetting = BarsaApi.Common.Util.TryGetValue(this.context, 'Setting.View.GridSetting', null);\n this.allColumns = GetAllColumnsSorted(this.context);\n\n this.sortSettings = BarsaApi.Common.Util.TryGetValue(\n this.context,\n 'Setting.View.GridSetting.SortSettingList',\n []\n );\n }\n\n onCancelSettings(): void {\n this.close(null);\n }\n onOkClick(): void {\n const setting = this.getSettings();\n this.close(setting);\n }\n onClose(): void {\n this.close(null);\n }\n protected getSettings(): GridSetting {\n return getGridSettings(this.context);\n }\n protected abstract close(setting: any): void;\n}\n","import { RouteReuseStrategy, ActivatedRouteSnapshot, DetachedRouteHandle } from '@angular/router';\r\n\r\nexport class CustomRouteReuseStategy implements RouteReuseStrategy {\r\n handlers: { [key: string]: DetachedRouteHandle } = {};\r\n\r\n shouldDetach(route: ActivatedRouteSnapshot): boolean {\r\n return route.data.shouldReuse || false;\r\n }\r\n\r\n store(route: ActivatedRouteSnapshot, handle: Record<string, unknown>): void {\r\n if (route.data.shouldReuse && route?.routeConfig?.path) {\r\n this.handlers[route.routeConfig.path] = handle;\r\n }\r\n }\r\n\r\n shouldAttach(route: ActivatedRouteSnapshot): boolean {\r\n if (route.routeConfig?.path) {\r\n return !!this.handlers[route.routeConfig.path];\r\n }\r\n // return !!route.routeConfig && !!this.handlers[route.routeConfig.path];\r\n return false;\r\n }\r\n\r\n retrieve(route: ActivatedRouteSnapshot): Record<string, unknown> | null {\r\n if (!route.routeConfig?.path) {\r\n return null;\r\n }\r\n return this.handlers[route.routeConfig.path];\r\n }\r\n\r\n shouldReuseRoute(\r\n future: ActivatedRouteSnapshot\r\n // curr: ActivatedRouteSnapshot\r\n ): boolean {\r\n return future.data.shouldReuse || false;\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { CanActivate, Router, UrlTree } from '@angular/router';\r\nimport { Observable, of } from 'rxjs';\r\nimport { map, tap, withLatestFrom } from 'rxjs/operators';\r\n\r\nimport { BarsaApi } from './abstract-classes';\r\nimport { PortalService } from './services/portal.service';\r\n\r\n@Injectable()\r\nexport class RedirectHomeGuard implements CanActivate {\r\n constructor(private router: Router, protected portalService: PortalService) {}\r\n\r\n canActivate(): // activatedRouteSnapshot: ActivatedRouteSnapshot,\r\n // state: RouterStateSnapshot\r\n Observable<boolean | UrlTree> | Promise<boolean | UrlTree> | boolean | UrlTree {\r\n return of(!BarsaApi.LoginFormData.IsAnonymous && BarsaApi.LoginFormData.IsUserLoggedIn).pipe(\r\n withLatestFrom(this.portalService.portalData$),\r\n tap(([hasAuthorized, portalData]) => {\r\n if (hasAuthorized) {\r\n const homePage = portalData?.ChildPageList.MoDataList.find((c) => c.IsDefaultRoute === true);\r\n const homeRoute = homePage?.Route || 'home';\r\n this.router.navigate([homeRoute]);\r\n }\r\n }),\r\n map(([hasAuthorized]) => !hasAuthorized)\r\n );\r\n }\r\n}\r\n","import { Component, ViewContainerRef, HostBinding, ChangeDetectionStrategy } from '@angular/core';\nimport { BaseComponent } from '../abstract-classes/base.component';\n\n@Component({\n selector: 'bnrc-root-page',\n templateUrl: './root-page.component.html',\n styleUrls: ['./root-page.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class RootPageComponent extends BaseComponent {\n @HostBinding('class.page-content') _pageContent = true;\n constructor(protected viewContainerRef: ViewContainerRef) {\n super();\n }\n}\n","<router-outlet></router-outlet>\r\n<router-outlet name=\"main\"></router-outlet>\r\n","import { ComponentFactory, ComponentFactoryResolver, Type } from '@angular/core';\r\nimport { DynamicComponentService } from './services/dynamic-component.service';\r\n\r\nexport abstract class BaseModule {\r\n private selectorToFactoryMap: { [key: string]: ComponentFactory<any> } = {};\r\n private isInitialize = false;\r\n protected abstract dynamicComponents: Type<any>[]; // similar to entryComponents\r\n\r\n constructor(\r\n protected dcm: DynamicComponentService,\r\n protected componentFactoryResolver: ComponentFactoryResolver,\r\n protected moduleName: string\r\n ) {\r\n dcm?.addModuleWithComponents(moduleName, this);\r\n }\r\n\r\n public getComponentFactory(componentName: string): ComponentFactory<any> {\r\n if (!this.isInitialize) {\r\n // lazy initialisation\r\n this.populateRegistry();\r\n }\r\n return this.selectorToFactoryMap[componentName];\r\n }\r\n\r\n private populateRegistry(): void {\r\n this.selectorToFactoryMap = {};\r\n this.isInitialize = true;\r\n if (Array.isArray(this.dynamicComponents) && this.dynamicComponents.length > 0) {\r\n this.dynamicComponents.forEach((compType) => {\r\n const componentFactory: ComponentFactory<any> =\r\n this.componentFactoryResolver.resolveComponentFactory(compType);\r\n this.selectorToFactoryMap[componentFactory.selector] = componentFactory;\r\n });\r\n }\r\n }\r\n}\r\n","import { AuthGuard } from '../auth-guard';\r\n\r\nexport function formRoutes(authGuard: boolean = false): any {\r\n return {\r\n path: 'form',\r\n canActivate: authGuard ? [AuthGuard] : [],\r\n loadChildren: () => import('./barsa-sap-ui-form-page.module').then((m) => m.BarsaSapUiFormPageModule)\r\n };\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { Routes, RouterModule } from '@angular/router'; // CLI imports router\r\nimport { EmptyPageWithRouterAndRouterOutletComponent } from '../empty-page-with-router-and-router-outlet/empty-page-with-router-and-router-outlet.component';\r\nimport { PortalFormPageResolver } from '../resolvers';\r\nimport { FormPageComponent } from '../abstract-classes/form-page.component';\r\n\r\nconst routes: Routes = [\r\n {\r\n path: '',\r\n component: EmptyPageWithRouterAndRouterOutletComponent,\r\n children: [\r\n {\r\n path: 'show',\r\n outlet: 'main',\r\n component: FormPageComponent,\r\n data: { breadcrumb: (data: any) => `${data.breadcrumb}` }, // dynamic\r\n resolve: { breadcrumb: PortalFormPageResolver },\r\n children: [\r\n {\r\n path: 'popup',\r\n loadChildren: () =>\r\n import('./barsa-sap-ui-form-page.module').then((c) => c.BarsaSapUiFormPageModule)\r\n }\r\n ]\r\n }\r\n ]\r\n }\r\n];\r\n\r\n@NgModule({\r\n imports: [RouterModule.forChild(routes)],\r\n exports: [RouterModule]\r\n})\r\nexport class BarsaSapUiFormPageRoutingModule {}\r\n","import { ComponentFactoryResolver, CUSTOM_ELEMENTS_SCHEMA, NgModule, NO_ERRORS_SCHEMA } from '@angular/core';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { CommonModule } from '@angular/common';\r\n\r\nimport { BarsaSapUiFormPageRoutingModule } from './barsa-sap-ui-form-page-routing.module';\r\n\r\nimport { BaseModule } from '../base.module';\r\nimport { DynamicComponentService } from '../services';\r\nconst components = [];\r\n@NgModule({\r\n imports: [CommonModule, FormsModule, BarsaSapUiFormPageRoutingModule],\r\n declarations: [...components],\r\n exports: [...components],\r\n schemas: [NO_ERRORS_SCHEMA, CUSTOM_ELEMENTS_SCHEMA]\r\n})\r\nexport class BarsaSapUiFormPageModule extends BaseModule {\r\n protected dynamicComponents = [...components];\r\n constructor(protected dcm: DynamicComponentService, protected cfr: ComponentFactoryResolver) {\r\n super(dcm, cfr, 'BarsaSapUiFormPageModule');\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { Routes, RouterModule } from '@angular/router';\r\nimport { BarsaApi } from './abstract-classes';\r\nimport { AuthGuard } from './auth-guard';\r\nimport { EmptyPageComponent } from './empty-page/empty-page.component';\r\nimport { formRoutes } from './form-page-routing';\r\nimport { PortalPageComponent } from './portal-page/portal-page.component';\r\nimport { RedirectHomeGuard } from './redirect-home-guard';\r\nimport { PortalPageResolver, PortalReportPageResolver } from './resolvers';\r\nimport { RootPageComponent } from './root-page/root-page.component';\r\n\r\nconst routesDefault: Routes = [\r\n {\r\n path: 'login',\r\n component: EmptyPageComponent,\r\n data: { pageData: { Route: '/login', Module: 'BarsaLoginPage' } },\r\n resolve: { pageData: PortalPageResolver },\r\n canActivate: [RedirectHomeGuard],\r\n children: []\r\n },\r\n {\r\n path: 'resetpassword',\r\n component: EmptyPageComponent,\r\n data: {\r\n pageData: { Route: '/resetpassword', Module: 'BarsaResetPasswordPage' }\r\n },\r\n resolve: { pageData: PortalPageResolver },\r\n canActivate: [RedirectHomeGuard],\r\n children: []\r\n },\r\n {\r\n path: 'recoverpassword',\r\n component: EmptyPageComponent,\r\n data: {\r\n pageData: {\r\n Route: '/recoverpassword',\r\n Module: 'BarsaRecoverPasswordPage'\r\n }\r\n },\r\n resolve: { pageData: PortalPageResolver },\r\n canActivate: [RedirectHomeGuard],\r\n children: []\r\n },\r\n {\r\n path: 'signup',\r\n component: EmptyPageComponent,\r\n data: {\r\n pageData: { Route: '/signup', Module: 'BarsaUserRegisterPage' }\r\n },\r\n resolve: { pageData: PortalPageResolver },\r\n canActivate: [RedirectHomeGuard],\r\n children: []\r\n },\r\n {\r\n path: 'landingpage',\r\n component: EmptyPageComponent,\r\n data: {\r\n pageData: {\r\n HasAuthorize: false,\r\n Module: 'BarsaLandingPage',\r\n Route: '/landingpage'\r\n }\r\n },\r\n resolve: { pageData: PortalPageResolver },\r\n children: [\r\n formRoutes(true),\r\n {\r\n path: '',\r\n redirectTo: 'query',\r\n pathMatch: 'full'\r\n },\r\n {\r\n path: 'query',\r\n component: EmptyPageComponent,\r\n data: {\r\n pageData: {\r\n HasAuthorize: true,\r\n Module: 'BarsaQueryPage',\r\n Route: '/query'\r\n }\r\n },\r\n resolve: { pageData: PortalPageResolver },\r\n children: [formRoutes(true)]\r\n }\r\n ]\r\n }\r\n];\r\n\r\nconst commonRoutes = [\r\n {\r\n path: 'search',\r\n component: EmptyPageComponent,\r\n data: {\r\n pageData: {\r\n HasAuthorize: false,\r\n Module: 'BarsaSearchPage',\r\n Route: '/search'\r\n }\r\n },\r\n resolve: { pageData: PortalPageResolver },\r\n children: [formRoutes()]\r\n },\r\n {\r\n path: 'report/:id',\r\n component: EmptyPageComponent,\r\n resolve: { pageData: PortalReportPageResolver },\r\n data: {\r\n pageData: {\r\n HasAuthorize: false,\r\n Route: '/report',\r\n Module: 'BarsaReportPage'\r\n }\r\n },\r\n children: [formRoutes(true)]\r\n }\r\n];\r\nconst mainRoutes: Routes = [\r\n {\r\n path: 'home',\r\n component: PortalPageComponent,\r\n canActivate: [AuthGuard],\r\n data: {\r\n pageData: {\r\n Module: 'BarsaHomePage',\r\n HasAuthorize: true,\r\n Route: '/home'\r\n }\r\n },\r\n resolve: { pageData: PortalPageResolver },\r\n children: [\r\n {\r\n path: '',\r\n component: EmptyPageComponent,\r\n data: {\r\n pageData: {\r\n HasAuthorize: false,\r\n Module: 'BarsaLaunchPadPage',\r\n Route: '/launchpad'\r\n }\r\n },\r\n resolve: { pageData: PortalPageResolver },\r\n children: [formRoutes()]\r\n },\r\n {\r\n path: 'appfinder',\r\n component: RootPageComponent,\r\n resolve: { pageData: PortalPageResolver },\r\n data: {\r\n pageData: {\r\n HasAuthorize: true,\r\n Route: '/appfinder',\r\n Module: 'BarsaAppFinderPage'\r\n }\r\n },\r\n children: [{ path: '', component: EmptyPageComponent }, formRoutes()]\r\n },\r\n ...commonRoutes\r\n ]\r\n }\r\n];\r\n\r\nconst routesServiceDesk: Routes = [\r\n {\r\n path: 'home',\r\n component: EmptyPageComponent,\r\n canActivate: [AuthGuard],\r\n data: {\r\n pageData: {\r\n Module: 'BarsaHomePage',\r\n HasAuthorize: true,\r\n Route: '/home'\r\n }\r\n },\r\n resolve: { pageData: PortalPageResolver },\r\n children: [formRoutes(true), ...commonRoutes]\r\n }\r\n];\r\nconst isServiceDesk = BarsaApi.LoginFormData.IsServiceDesk; // eslint-disable-line\r\nconst routesHome = isServiceDesk ? routesServiceDesk : mainRoutes;\r\nconst routes = [...routesDefault, ...routesHome];\r\n@NgModule({\r\n imports: [RouterModule.forChild(routes)],\r\n exports: [RouterModule]\r\n})\r\nexport class BarsaNovinRayCoreRoutingModule {}\r\n","import { ErrorHandler, Injectable } from '@angular/core';\r\nimport * as _ from 'lodash';\r\n\r\n@Injectable()\r\nexport class GlobalErrorHandler implements ErrorHandler {\r\n constructor() {}\r\n handleError(error): void {\r\n // if (environment.production)\r\n {\r\n console.group();\r\n console.error('global error handler error', error);\r\n console.error('global error handler stack', _.get(error, 'stack', ''));\r\n console.groupEnd();\r\n if (error.Execute) {\r\n error.Execute();\r\n }\r\n }\r\n // IMPORTANT: Rethrow the error otherwise it gets swallowed\r\n // throw error;\r\n }\r\n}\r\n","import {\n APP_INITIALIZER,\n ComponentFactoryResolver,\n ErrorHandler,\n ModuleWithProviders,\n NgModule,\n NO_ERRORS_SCHEMA\n} from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { HttpClientModule } from '@angular/common/http';\nimport { Title } from '@angular/platform-browser';\n\nimport { FormComponent } from './form/form.component';\nimport { FieldUiComponent } from './field-ui/field-ui.component';\n\nimport { ReportContainerComponent } from './report-container/report-container.component';\nimport { AnchorScrollDirective } from './directives/anchor-scroll.directive';\nimport { BarsaNovinRayCoreRoutingModule } from './barsa-novin-ray-core-routing.module';\nimport { ModalRootComponent } from './modal-root.component';\nimport { FormNewComponent } from './form-new/form-new.component';\nimport { RootPortalComponent } from './root-portal/root-portal.component';\nimport { AuthGuard } from './auth-guard';\n\nimport {\n DynamicFormComponent,\n DynamicItemComponent,\n BaseDynamicComponent,\n DynamicFormToolbaritemComponent,\n DynamicLayoutComponent\n} from './dynamic-component';\nimport { RedirectHomeGuard } from './redirect-home-guard';\nimport { NotFoundComponent } from './not-found/not-found.component';\nimport { RootPageComponent } from './root-page/root-page.component';\nimport { BaseModule } from './base.module';\nimport { PortalPageComponent } from './portal-page/portal-page.component';\nimport { GlobalErrorHandler } from './global-error-handler';\n\nimport { RedirectReportNavigatorCommandComponent } from './redirect-report-navigator-command/redirect-report-navigator-command.component';\nimport { EmptyPageWithRouterAndRouterOutletComponent } from './empty-page-with-router-and-router-outlet/empty-page-with-router-and-router-outlet.component';\nimport { EmptyPageComponent } from './empty-page/empty-page.component';\nimport { BarsaApi } from './abstract-classes/barsa-api';\nimport { FormPageComponent } from './abstract-classes/form-page.component';\n\nimport {\n BreadcrumbService,\n UploadService,\n ApiService,\n LogService,\n BarsaDialogService,\n PortalService,\n UiService,\n LayoutService,\n DynamicComponentService,\n NetworkStatusService,\n AudioRecordingService,\n VideoRecordingService,\n PromptUpdateService,\n BarsaStorageService,\n LocalStorageService,\n IndexedDbService,\n NotificationService,\n ServiceWorkerNotificationService\n} from './services';\nimport {\n DynamicCommandDirective,\n ItemsRendererDirective,\n NumbersOnlyInputDirective,\n PlaceHolderDirective,\n RenderUlvPaginDirective,\n ImageLazyDirective,\n UntilInViewDirective,\n IntersectionObserverDirective,\n EllipsifyDirective,\n TableResizerDirective,\n ColumnResizerDirective,\n AttrRtlDirective,\n RenderUlvViewerDirective,\n UlvCommandDirective,\n WorfkflowwChoiceCommandDirective,\n CopyDirective,\n EllapsisTextDirective\n} from './directives';\nimport {\n NumeralPipe,\n CanUploadFilePipe,\n RemoveNewlinePipe,\n ConvertToStylePipe,\n FilterPipe,\n FilterTabPipe,\n FilterStringPipe,\n FioriIconPipe,\n SortPipe,\n GroupByPipe,\n MultipleGroupByPipe,\n MoValuePipe,\n MoReportValuePipe,\n HeaderFacetValuePipe,\n PictureFieldSourcePipe,\n TlbButtonsPipe,\n SeperatorFixPipe,\n MoReportValueConcatPipe,\n ContextMenuPipe,\n BbbTranslatePipe,\n BarsaIconDictPipe,\n FileInfoCountPipe,\n ControlUiPipe,\n VisibleValuePipe,\n DateTimeToCaptionPipe,\n FilterToolbarControlPipe,\n ListCountPipe,\n TotalSummaryPipe,\n MergeFieldsToColumnsPipe,\n FindColumnByDbNamePipe,\n FilterColumnsByDetailsPipe,\n MoInfoUlvMoListPipe,\n MoInfoUlvPagingPipe,\n ReversePipe,\n ColumnCustomUiPipe,\n SanitizeTextPipe,\n ColumnCustomComponentPipe,\n ColumnIconPipe,\n ColumnValuePipe\n} from './pipes';\nimport { BarsaSapUiFormPageModule } from './form-page-routing';\n\n// eslint-disable-next-line no-var\ndeclare var BBB: any;\n\nconst components = [\n FormComponent,\n FieldUiComponent,\n NotFoundComponent,\n RootPageComponent,\n RootPortalComponent,\n ReportContainerComponent,\n FormNewComponent,\n ModalRootComponent,\n PortalPageComponent,\n RedirectReportNavigatorCommandComponent,\n EmptyPageWithRouterAndRouterOutletComponent,\n DynamicItemComponent,\n DynamicFormComponent,\n BaseDynamicComponent,\n DynamicFormToolbaritemComponent,\n DynamicLayoutComponent,\n EmptyPageComponent,\n FormPageComponent\n];\nconst directives = [\n PlaceHolderDirective,\n NumbersOnlyInputDirective,\n RenderUlvViewerDirective,\n RenderUlvPaginDirective,\n AnchorScrollDirective,\n ItemsRendererDirective,\n UlvCommandDirective,\n DynamicCommandDirective,\n WorfkflowwChoiceCommandDirective,\n ImageLazyDirective,\n UntilInViewDirective,\n IntersectionObserverDirective,\n EllipsifyDirective,\n TableResizerDirective,\n ColumnResizerDirective,\n AttrRtlDirective,\n CopyDirective,\n EllapsisTextDirective\n];\nconst pipes = [\n NumeralPipe,\n CanUploadFilePipe,\n RemoveNewlinePipe,\n ConvertToStylePipe,\n FilterPipe,\n FilterTabPipe,\n FilterStringPipe,\n FioriIconPipe,\n SortPipe,\n GroupByPipe,\n MultipleGroupByPipe,\n MoValuePipe,\n MoReportValuePipe,\n HeaderFacetValuePipe,\n PictureFieldSourcePipe,\n TlbButtonsPipe,\n SeperatorFixPipe,\n MoReportValueConcatPipe,\n ContextMenuPipe,\n BbbTranslatePipe,\n BarsaIconDictPipe,\n FileInfoCountPipe,\n ControlUiPipe,\n VisibleValuePipe,\n DateTimeToCaptionPipe,\n FilterToolbarControlPipe,\n ListCountPipe,\n TotalSummaryPipe,\n MergeFieldsToColumnsPipe,\n FindColumnByDbNamePipe,\n FilterColumnsByDetailsPipe,\n MoInfoUlvMoListPipe,\n MoInfoUlvPagingPipe,\n ReversePipe,\n ColumnCustomUiPipe,\n SanitizeTextPipe,\n ColumnCustomComponentPipe,\n ColumnIconPipe,\n ColumnValuePipe\n];\n@NgModule({\n declarations: [...components, ...pipes, ...directives],\n imports: [CommonModule, HttpClientModule, BarsaNovinRayCoreRoutingModule, BarsaSapUiFormPageModule],\n exports: [...components, ...pipes, ...directives],\n schemas: [NO_ERRORS_SCHEMA]\n})\nexport class BarsaNovinRayCoreModule extends BaseModule {\n protected dynamicComponents = [...components];\n constructor(protected dcm: DynamicComponentService, protected componentFactoryResolver: ComponentFactoryResolver) {\n super(dcm, componentFactoryResolver, 'BarsaNovinRayCoreModule');\n }\n static forRoot(): ModuleWithProviders<BarsaNovinRayCoreModule> {\n return {\n ngModule: BarsaNovinRayCoreModule,\n providers: [\n ...pipes,\n UploadService,\n ApiService,\n LogService,\n BarsaDialogService,\n PortalService,\n UiService,\n LayoutService,\n DynamicComponentService,\n BreadcrumbService,\n AuthGuard,\n NetworkStatusService,\n AudioRecordingService,\n VideoRecordingService,\n RedirectHomeGuard,\n PromptUpdateService,\n NotificationService,\n ServiceWorkerNotificationService,\n LocalStorageService,\n IndexedDbService,\n BbbTranslatePipe,\n BarsaStorageService,\n {\n provide: ErrorHandler,\n useClass: GlobalErrorHandler\n },\n {\n provide: APP_INITIALIZER,\n useFactory: (notificationService: NotificationService) => () => {\n BarsaApi.Ul.NotificationManager.on({\n ShowPopup: notificationService.addNotification.bind(notificationService),\n PublishEvent: notificationService.handleTopic.bind(notificationService)\n });\n },\n deps: [NotificationService],\n multi: true\n },\n {\n provide: APP_INITIALIZER,\n useFactory:\n (promptUpdateService: PromptUpdateService, barsaStorageService: BarsaStorageService) => () => {\n promptUpdateService.checkForUpdate();\n barsaStorageService.init();\n },\n deps: [PromptUpdateService, BarsaStorageService],\n multi: true\n },\n {\n provide: APP_INITIALIZER,\n useFactory: () => () => {\n if (BarsaApi.LoginFormData.Culture === 'fa-IR') {\n return Promise.resolve();\n }\n return fetch(`/Localization/Translation/data_${BarsaApi.LoginFormData.Culture}.json`)\n .then(function (res) {\n return res.json();\n })\n .then(function (res) {\n if (BBB) {\n // eslint-disable\n BBB = { ...BarsaApi.BBB, ...res };\n }\n });\n },\n deps: [],\n multi: true\n },\n {\n provide: APP_INITIALIZER,\n useFactory: (portalService: PortalService, titleService: Title) => () => {\n portalService.loadUserPortalSetting();\n portalService.loadPortalDataSync();\n if (portalService.portalData?.Title) {\n titleService.setTitle(portalService.portalData?.Title);\n }\n if (BarsaApi.LoginFormData.IsAnonymous && !BarsaApi.LoginFormData.IsServiceDesk) {\n return portalService.loadSystem(BarsaApi.LoginFormData.PortalSystemId); // login form need just portal system\n } else {\n return portalService.loadSystem(); // load all systems if user is logged in\n }\n },\n deps: [PortalService, Title],\n multi: true\n }\n ]\n };\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.LogService","moment","Device.isPhone","Device.isTablet","i1","i1.PortalService","i2.PortalService","i1.DynamicComponentService","i2.ApiService","i3.LogService","i4.BarsaDialogService","i5","i6","i1.BbbTranslatePipe","i2.VisibleValuePipe","i1.MoInfoUlvPagingPipe","i1.FindColumnByDbNamePipe","i2.LocalStorageService","i3.IndexedDbService","filter","i2","tap","i3.PortalService","i3.BbbTranslatePipe","i5.ServiceWorkerNotificationService","i1.UploadService","i5.DateService","i1.AudioRecordingService","i1.VideoRecordingService","i1.ColumnService","merge","i1.BreadcrumbService","i3.ControlUiPipe","i4.FormPanelService","i2.UlvMainService","i1.FormPanelService","i2.LayoutService","i2.UploadService","i1.ControlUiPipe","i2.FormPanelService","i3","i2.FormComponent","takeUntil","switchMap","catchError","i2.MoReportValuePipe","i3.FormPanelService","i3.UlvMainService","i1.MoReportValuePipe","i1.FormComponent","routes","components"],"mappings":"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"}
1
+ {"version":3,"file":"barsa-novin-ray-core.mjs","sources":["../../../projects/barsa-novin-ray-core/src/lib/abstract-classes/barsa-api.ts","../../../projects/barsa-novin-ray-core/src/lib/abstract-classes/base.component.ts","../../../projects/barsa-novin-ray-core/src/lib/empty-page-with-router-and-router-outlet/empty-page-with-router-and-router-outlet.component.ts","../../../projects/barsa-novin-ray-core/src/lib/empty-page-with-router-and-router-outlet/empty-page-with-router-and-router-outlet.component.html","../../../projects/barsa-novin-ray-core/src/lib/injdection-tokens.ts","../../../projects/barsa-novin-ray-core/src/lib/services/log.service.ts","../../../projects/barsa-novin-ray-core/src/lib/date-services/date.service.ts","../../../projects/barsa-novin-ray-core/src/lib/date-services/date-hijri.service.ts","../../../projects/barsa-novin-ray-core/src/lib/date-services/date-miladi.service.ts","../../../projects/barsa-novin-ray-core/src/lib/date-services/date-shamsi.service.ts","../../../projects/barsa-novin-ray-core/src/lib/device.ts","../../../projects/barsa-novin-ray-core/src/lib/constants.ts","../../../projects/barsa-novin-ray-core/src/lib/services/api.service.ts","../../../projects/barsa-novin-ray-core/src/lib/services/breadcrumb.service.ts","../../../projects/barsa-novin-ray-core/src/lib/modal-root.component.ts","../../../projects/barsa-novin-ray-core/src/lib/services/barsa-dialog.service.ts","../../../projects/barsa-novin-ray-core/src/lib/not-found/not-found.component.ts","../../../projects/barsa-novin-ray-core/src/lib/not-found/not-found.component.html","../../../projects/barsa-novin-ray-core/src/lib/services/dynamic-component.service.ts","../../../projects/barsa-novin-ray-core/src/lib/services/form-panel.service.ts","../../../projects/barsa-novin-ray-core/src/lib/services/form.service.ts","../../../projects/barsa-novin-ray-core/src/lib/services/container.service.ts","../../../projects/barsa-novin-ray-core/src/lib/services/horizontal-layout.service.ts","../../../projects/barsa-novin-ray-core/src/lib/services/layout.service.ts","../../../projects/barsa-novin-ray-core/src/lib/resolvers/portal-page.resolver.ts","../../../projects/barsa-novin-ray-core/src/lib/auth-guard.ts","../../../projects/barsa-novin-ray-core/src/lib/services/portal.service.ts","../../../projects/barsa-novin-ray-core/src/lib/services/ui.service.ts","../../../projects/barsa-novin-ray-core/src/lib/pipes/mo-report-value.pipe.ts","../../../projects/barsa-novin-ray-core/src/lib/pipes/numeral.pipe.ts","../../../projects/barsa-novin-ray-core/src/lib/pipes/groupby.pipe.ts","../../../projects/barsa-novin-ray-core/src/lib/pipes/bbb-translate.pipe.ts","../../../projects/barsa-novin-ray-core/src/lib/pipes/context-menu.pipe.ts","../../../projects/barsa-novin-ray-core/src/lib/pipes/header-facet-value.pipe.ts","../../../projects/barsa-novin-ray-core/src/lib/pipes/seperator-fix.pipe.ts","../../../projects/barsa-novin-ray-core/src/lib/pipes/convert-to-style.pipe.ts","../../../projects/barsa-novin-ray-core/src/lib/pipes/tlbButtons.pipe.ts","../../../projects/barsa-novin-ray-core/src/lib/pipes/remove-newline.pipe.ts","../../../projects/barsa-novin-ray-core/src/lib/pipes/mo-value.pipe.ts","../../../projects/barsa-novin-ray-core/src/lib/pipes/filter.pipe.ts","../../../projects/barsa-novin-ray-core/src/lib/pipes/filter-tab.pipe.ts","../../../projects/barsa-novin-ray-core/src/lib/pipes/mo-report-value-concat.pipe.ts","../../../projects/barsa-novin-ray-core/src/lib/pipes/filter-string.pipe.ts","../../../projects/barsa-novin-ray-core/src/lib/pipes/sort.pipe.ts","../../../projects/barsa-novin-ray-core/src/lib/pipes/barsa-icon-dict.pipe.ts","../../../projects/barsa-novin-ray-core/src/lib/pipes/fileinfo-count.pipe.ts","../../../projects/barsa-novin-ray-core/src/lib/pipes/control-ui.pipe.ts","../../../projects/barsa-novin-ray-core/src/lib/pipes/visible-value.pipe.ts","../../../projects/barsa-novin-ray-core/src/lib/pipes/date-time-to-caption.pipe.ts","../../../projects/barsa-novin-ray-core/src/lib/pipes/filter-toolbar-control.pipe.ts","../../../projects/barsa-novin-ray-core/src/lib/pipes/multiple-groupby.pipe.ts","../../../projects/barsa-novin-ray-core/src/lib/pipes/picture-field-source.pipe.ts","../../../projects/barsa-novin-ray-core/src/lib/pipes/fiori-icon.pipe.ts","../../../projects/barsa-novin-ray-core/src/lib/pipes/can-upload.pipe.ts","../../../projects/barsa-novin-ray-core/src/lib/pipes/list-count.pipe.ts","../../../projects/barsa-novin-ray-core/src/lib/pipes/total-summary.pipe.ts","../../../projects/barsa-novin-ray-core/src/lib/pipes/merge-fields-to-columns.pipe.ts","../../../projects/barsa-novin-ray-core/src/lib/pipes/find-column-by-db-name.pipe.ts","../../../projects/barsa-novin-ray-core/src/lib/pipes/filter-columns-by-details.pipe.ts","../../../projects/barsa-novin-ray-core/src/lib/pipes/mo-info-ulv-paging.pipe.ts","../../../projects/barsa-novin-ray-core/src/lib/pipes/mo-info-ulv-data.pipe.ts","../../../projects/barsa-novin-ray-core/src/lib/pipes/reverse.pipe.ts","../../../projects/barsa-novin-ray-core/src/lib/pipes/column-customui.pipe.ts","../../../projects/barsa-novin-ray-core/src/lib/pipes/sanitize-text.pipe.ts","../../../projects/barsa-novin-ray-core/src/lib/pipes/column-custom-component.pipe.ts","../../../projects/barsa-novin-ray-core/src/lib/pipes/column-value.pipe.ts","../../../projects/barsa-novin-ray-core/src/lib/pipes/column-icon.pipe.ts","../../../projects/barsa-novin-ray-core/src/lib/services/ulvmain.service.ts","../../../projects/barsa-novin-ray-core/src/lib/services/upload.service.ts","../../../projects/barsa-novin-ray-core/src/lib/services/network-status.service.ts","../../../projects/barsa-novin-ray-core/src/lib/services/audio-recording.service.ts","../../../projects/barsa-novin-ray-core/src/lib/services/video-recording.service.ts","../../../projects/barsa-novin-ray-core/src/lib/services/local-storage.service.ts","../../../projects/barsa-novin-ray-core/src/lib/services/indexeddb.service.ts","../../../projects/barsa-novin-ray-core/src/lib/services/barsa-storage.service.ts","../../../projects/barsa-novin-ray-core/src/lib/services/prompt-update.service.ts","../../../projects/barsa-novin-ray-core/src/lib/services/notification-sw.service.ts","../../../projects/barsa-novin-ray-core/src/lib/services/notification.service.ts","../../../projects/barsa-novin-ray-core/src/lib/services/column.service.ts","../../../projects/barsa-novin-ray-core/src/lib/services/service-worker-communication.service.ts","../../../projects/barsa-novin-ray-core/src/lib/abstract-classes/field-base.ts","../../../projects/barsa-novin-ray-core/src/lib/from-intersection-observer.ts","../../../projects/barsa-novin-ray-core/src/lib/abstract-classes/form-base.ts","../../../projects/barsa-novin-ray-core/src/lib/abstract-classes/form-toolbar-base.ts","../../../projects/barsa-novin-ray-core/src/lib/abstract-classes/system-base.ts","../../../projects/barsa-novin-ray-core/src/lib/abstract-classes/report-base.ts","../../../projects/barsa-novin-ray-core/src/lib/abstract-classes/report-item-base.ts","../../../projects/barsa-novin-ray-core/src/lib/abstract-classes/application-base.ts","../../../projects/barsa-novin-ray-core/src/lib/abstract-classes/layout-item-base.ts","../../../projects/barsa-novin-ray-core/src/lib/abstract-classes/layout-panel-base.ts","../../../projects/barsa-novin-ray-core/src/lib/container.component.ts","../../../projects/barsa-novin-ray-core/src/lib/abstract-classes/page-base.ts","../../../projects/barsa-novin-ray-core/src/lib/abstract-classes/number-base.ts","../../../projects/barsa-novin-ray-core/src/lib/abstract-classes/models.ts","../../../projects/barsa-novin-ray-core/src/lib/abstract-classes/files-validation-helper.ts","../../../projects/barsa-novin-ray-core/src/lib/abstract-classes/report-view-base.component.ts","../../../projects/barsa-novin-ray-core/src/lib/abstract-classes/form-props.base.ts","../../../projects/barsa-novin-ray-core/src/lib/abstract-classes/linear-list-helper.ts","../../../projects/barsa-novin-ray-core/src/lib/abstract-classes/page-with-form-handler-base.ts","../../../projects/barsa-novin-ray-core/src/lib/abstract-classes/form-page-base.ts","../../../projects/barsa-novin-ray-core/src/lib/form/form.component.ts","../../../projects/barsa-novin-ray-core/src/lib/abstract-classes/form-page.component.ts","../../../projects/barsa-novin-ray-core/src/lib/abstract-classes/base-column-props.ts","../../../projects/barsa-novin-ray-core/src/lib/abstract-classes/tile-props.ts","../../../projects/barsa-novin-ray-core/src/lib/empty-page/empty-page.component.ts","../../../projects/barsa-novin-ray-core/src/lib/empty-page/empty-page.component.html","../../../projects/barsa-novin-ray-core/src/lib/redirect-report-navigator-command/redirect-report-navigator-command.component.ts","../../../projects/barsa-novin-ray-core/src/lib/redirect-report-navigator-command/redirect-report-navigator-command.component.html","../../../projects/barsa-novin-ray-core/src/lib/portal-page/portal-page.component.ts","../../../projects/barsa-novin-ray-core/src/lib/portal-page/portal-page.component.html","../../../projects/barsa-novin-ray-core/src/lib/dynamic-component/base-dynamic.component.ts","../../../projects/barsa-novin-ray-core/src/lib/dynamic-component/dynamic-form.component.ts","../../../projects/barsa-novin-ray-core/src/lib/dynamic-component/dynamic-item.component.ts","../../../projects/barsa-novin-ray-core/src/lib/dynamic-component/base-view-props.ts","../../../projects/barsa-novin-ray-core/src/lib/dynamic-component/base-view-content-props.ts","../../../projects/barsa-novin-ray-core/src/lib/dynamic-component/base-view-item-props.ts","../../../projects/barsa-novin-ray-core/src/lib/dynamic-component/base-item-content-props.ts","../../../projects/barsa-novin-ray-core/src/lib/dynamic-component/base-form-toolbaritem-props.ts","../../../projects/barsa-novin-ray-core/src/lib/dynamic-component/dynamic-form-toolbar-item.component.ts","../../../projects/barsa-novin-ray-core/src/lib/dynamic-component/dynamic-layout.component.ts","../../../projects/barsa-novin-ray-core/src/lib/root-portal/root-portal.component.ts","../../../projects/barsa-novin-ray-core/src/lib/directives/anchor-scroll.directive.ts","../../../projects/barsa-novin-ray-core/src/lib/directives/base.directive.ts","../../../projects/barsa-novin-ray-core/src/lib/directives/attr-rtl.directive.ts","../../../projects/barsa-novin-ray-core/src/lib/directives/column-resizer.directive.ts","../../../projects/barsa-novin-ray-core/src/lib/directives/dynamic-command.directive.ts","../../../projects/barsa-novin-ray-core/src/lib/directives/ellipsify.directive.ts","../../../projects/barsa-novin-ray-core/src/lib/directives/field-binding.directive.ts","../../../projects/barsa-novin-ray-core/src/lib/directives/img-lazy.directive.ts","../../../projects/barsa-novin-ray-core/src/lib/directives/intersection-observer.directive.ts","../../../projects/barsa-novin-ray-core/src/lib/directives/items-renderer.directive.ts","../../../projects/barsa-novin-ray-core/src/lib/directives/numbers-only-input.directive.ts","../../../projects/barsa-novin-ray-core/src/lib/directives/placeHolder.directive.ts","../../../projects/barsa-novin-ray-core/src/lib/directives/render-ulv-viewer.directive.ts","../../../projects/barsa-novin-ray-core/src/lib/directives/render-ulv-paging.directive.ts","../../../projects/barsa-novin-ray-core/src/lib/directives/table-resizer.directive.ts","../../../projects/barsa-novin-ray-core/src/lib/directives/ulv-command.directive.ts","../../../projects/barsa-novin-ray-core/src/lib/directives/until-inview.directive.ts","../../../projects/barsa-novin-ray-core/src/lib/directives/workflow-choice-command.directive.ts","../../../projects/barsa-novin-ray-core/src/lib/directives/copy.directive.ts","../../../projects/barsa-novin-ray-core/src/lib/directives/ellapsis-text.directive.ts","../../../projects/barsa-novin-ray-core/src/lib/resolvers/portal-dynamic-page.resolver.ts","../../../projects/barsa-novin-ray-core/src/lib/resolvers/portal-form-page.resolver.ts","../../../projects/barsa-novin-ray-core/src/lib/resolvers/portal-report-page.resolver.ts","../../../projects/barsa-novin-ray-core/src/lib/form-new/form-new.component.ts","../../../projects/barsa-novin-ray-core/src/lib/report-container/report-container.component.ts","../../../projects/barsa-novin-ray-core/src/lib/report-container/report-container.component.html","../../../projects/barsa-novin-ray-core/src/lib/field-ui/field-ui.component.ts","../../../projects/barsa-novin-ray-core/src/lib/base-ulv-setting.component.ts","../../../projects/barsa-novin-ray-core/src/lib/custom-route-reuse-strategy.ts","../../../projects/barsa-novin-ray-core/src/lib/redirect-home-guard.ts","../../../projects/barsa-novin-ray-core/src/lib/root-page/root-page.component.ts","../../../projects/barsa-novin-ray-core/src/lib/root-page/root-page.component.html","../../../projects/barsa-novin-ray-core/src/lib/base.module.ts","../../../projects/barsa-novin-ray-core/src/lib/form-page-routing/constants.ts","../../../projects/barsa-novin-ray-core/src/lib/form-page-routing/barsa-sap-ui-form-page-routing.module.ts","../../../projects/barsa-novin-ray-core/src/lib/form-page-routing/barsa-sap-ui-form-page.module.ts","../../../projects/barsa-novin-ray-core/src/lib/barsa-novin-ray-core-routing.module.ts","../../../projects/barsa-novin-ray-core/src/lib/global-error-handler.ts","../../../projects/barsa-novin-ray-core/src/lib/barsa-novin-ray-core.module.ts","../../../projects/barsa-novin-ray-core/src/barsa-novin-ray-core.ts"],"sourcesContent":["export declare const Common: any;\r\nexport declare const Ul: any;\r\nexport declare const Ui: any;\r\nexport declare const Util: any;\r\nexport declare const Bw: any;\r\nexport declare const BBB: any;\r\nexport declare const LoginAction: any;\r\nexport declare const UlvMainCtrl: any;\r\nexport declare const LoginFormUi: any;\r\nexport declare const LoginFormData: any;\r\nexport declare const LoginForm: any;\r\nexport declare const Ext: any;\r\nexport declare const GanttChartHelper: any;\r\nexport class BarsaApi {\r\n static idGenerator = -10000;\r\n static get GanttChartHelper(): any {\r\n return GanttChartHelper;\r\n }\r\n static get Ext(): any {\r\n return Ext;\r\n }\r\n static get Common(): any {\r\n return Common;\r\n }\r\n static get Util(): any {\r\n return Util;\r\n }\r\n static get Ul(): any {\r\n return Ul;\r\n }\r\n static get Ui(): any {\r\n return Ui;\r\n }\r\n static get Bw(): any {\r\n return Bw;\r\n }\r\n static get BBB(): any {\r\n return BBB;\r\n }\r\n static get LoginForm(): any {\r\n return LoginForm;\r\n }\r\n static get LoginAction(): any {\r\n return LoginAction;\r\n }\r\n static get LoginFormUi(): any {\r\n return LoginFormUi;\r\n }\r\n static get LoginFormData(): any {\r\n return LoginFormData;\r\n }\r\n}\r\n","import {\n OnInit,\n AfterViewInit,\n Component,\n OnDestroy,\n OnChanges,\n SimpleChanges,\n AfterContentInit,\n Input,\n ChangeDetectionStrategy\n} from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { BarsaApi } from './barsa-api';\n\n@Component({\n selector: 'bnrc-base',\n template: '',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport abstract class BaseComponent implements OnInit, AfterViewInit, AfterContentInit, OnDestroy, OnChanges {\n // @Input() settings: any;\n @Input() rendered;\n protected readonly _onDestroy$: Subject<void> = new Subject<void>();\n constructor() {}\n ngAfterContentInit(): void {\n if (!BarsaApi.Common.Debug?.Data?.CustomUi) {\n return;\n }\n console.log('ngAfterContentInit');\n console.log(this);\n }\n ngOnChanges(changes: SimpleChanges): void {\n if (!BarsaApi.Common.Debug?.Data?.CustomUi) {\n return;\n }\n console.log(changes);\n }\n ngOnInit(): void {\n this.rendered = true;\n if (!BarsaApi.Common.Debug?.Data?.CustomUi) {\n return;\n }\n console.log('ngOnInit');\n console.log(this);\n }\n ngAfterViewInit(): void {\n if (!BarsaApi.Common.Debug?.Data?.CustomUi) {\n return;\n }\n console.log('ngAfterViewInit');\n console.log(this);\n }\n ngOnDestroy(): void {\n this._onDestroy$.next();\n this._onDestroy$.complete();\n if (!BarsaApi.Common.Debug?.Data?.CustomUi) {\n return;\n }\n console.log('ngOnDestroy');\n console.log(this);\n }\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\nimport { BaseComponent } from '../abstract-classes/base.component';\n@Component({\n selector: 'bnrc-empty-page-with-router-and-router-outlet',\n templateUrl: './empty-page-with-router-and-router-outlet.component.html',\n styleUrls: ['./empty-page-with-router-and-router-outlet.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class EmptyPageWithRouterAndRouterOutletComponent extends BaseComponent {\n constructor() {\n super();\n }\n}\n","<ng-container #containerRef></ng-container>\r\n<router-outlet></router-outlet>\r\n<router-outlet name=\"main\"></router-outlet>\r\n","import { InjectionToken } from '@angular/core';\nimport { NotificationPopupService } from './services/notification-popup.service';\nimport { ToastService } from './services/toast.service';\n\nexport const APP_VERSION = new InjectionToken<string>('AppVersion');\nexport const DIALOG_SERVICE = new InjectionToken<string>('DIALOG_SERVICE');\nexport const FORM_DIALOG_COMPONENT = new InjectionToken<string>('FORM_DIALOG_COMPONENT');\nexport const NOTIFICATAION_POPUP_SERVER = new InjectionToken<NotificationPopupService>('NOTIFICATAION_POPUP_SERVER');\nexport const TOAST_SERVICE = new InjectionToken<ToastService>('TOAST_SERVICE');\n\nexport const NOTIFICATION_WEBWORKER_FACTORY = new InjectionToken<() => Worker>('notificaion-worker');\n","// angular\r\nimport { Injectable } from '@angular/core';\r\n\r\nexport interface IDebug {\r\n LEVEL_1: boolean;\r\n LEVEL_2: boolean;\r\n LEVEL_3: boolean;\r\n LEVEL_4: boolean;\r\n LEVEL_5: boolean;\r\n}\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class LogService {\r\n public static DEBUG: IDebug = {\r\n LEVEL_1: false, // .warn only\r\n LEVEL_2: false, // .error only\r\n LEVEL_3: false, // .log + all the above\r\n LEVEL_4: false, // .log + all the above + info\r\n LEVEL_5: false // just info (excluding all else)\r\n };\r\n\r\n // info (extra messages like analytics)\r\n // use LEVEL_5 to see only these\r\n public info(...msg: Array<any>): void {\r\n if (LogService.DEBUG.LEVEL_5 || LogService.DEBUG.LEVEL_4) {\r\n // extra messages\r\n /* eslint-disable */\r\n console.info(msg);\r\n }\r\n }\r\n\r\n // debug (standard output)\r\n public debug(...msg: Array<any>): void {\r\n if (LogService.DEBUG.LEVEL_4 || LogService.DEBUG.LEVEL_3) {\r\n // console.debug does not work on {N} apps... use `log`\r\n /* eslint-disable */\r\n console.debug(msg);\r\n }\r\n }\r\n\r\n // error\r\n public error(...err: Array<any>): void {\r\n if (LogService.DEBUG.LEVEL_4 || LogService.DEBUG.LEVEL_3 || LogService.DEBUG.LEVEL_2) {\r\n console.error(err);\r\n }\r\n }\r\n\r\n // warn\r\n public warn(...warn: Array<any>): void {\r\n if (LogService.DEBUG.LEVEL_4 || LogService.DEBUG.LEVEL_3 || LogService.DEBUG.LEVEL_1) {\r\n console.warn(warn);\r\n }\r\n }\r\n}\r\n","import { Injectable, Optional } from '@angular/core';\nimport moment, { Duration, DurationInputArg1, DurationInputArg2 } from 'moment';\n\nimport { DateInfo } from './date-info';\nimport { LogService } from '../services/log.service';\nimport { Moment } from 'moment';\n\n@Injectable()\nexport abstract class DateService {\n protected abstract locale: string;\n\n constructor(@Optional() protected logService: LogService) {}\n protected get now(): Date {\n return new Date();\n }\n monthNames(): string[] {\n return moment.localeData(this.locale).months();\n }\n\n includeDay(date: Date, startDate: Date, endDate: Date): boolean {\n return moment(date).isBetween(startDate, endDate);\n }\n duration(inp: DurationInputArg1, unit?: DurationInputArg2): Duration {\n return moment.duration(inp);\n }\n\n day(date: Date): number {\n return moment(date).weekday();\n }\n\n getDayStr(mode: 'Today' | 'DaysBefore' | 'DaysAfter'): string {\n let date: Date;\n switch (mode) {\n case 'Today':\n date = this.now;\n break;\n case 'DaysBefore':\n date = new Date(this.now.setDate(this.now.getDate() - 1));\n break;\n case 'DaysAfter':\n date = new Date(this.now.setDate(this.now.getDate() + 1));\n break;\n }\n const momentOfDate = this.getMoment(date);\n return this.getDateString(momentOfDate, true, false);\n }\n\n getMonthStr(mode: 'ThisMonth' | 'NextMonth' | 'PrevMonth'): string {\n const momentOfDate = this.getMoment(this.now);\n let date: Date;\n switch (mode) {\n case 'ThisMonth':\n date = this.now;\n break;\n case 'NextMonth':\n date = this.addMonth(momentOfDate, 1);\n break;\n case 'PrevMonth':\n date = this.subtractMonth(momentOfDate, 1);\n break;\n default:\n date = this.now;\n break;\n }\n const dateInfo = this.getDateInfo(date);\n return dateInfo.monthName + ' ' + dateInfo.strYear;\n }\n\n getYearStr(mode: 'ThisYear' | 'PrevYear' | 'NextYear'): number {\n let year: number;\n const thisYear = this.getDateInfo(this.now).year;\n switch (mode) {\n case 'ThisYear':\n year = thisYear;\n break;\n case 'PrevYear':\n year = thisYear - 1;\n break;\n case 'NextYear':\n year = thisYear + 1;\n break;\n default:\n year = thisYear;\n break;\n }\n return year;\n }\n\n getWeekStr(mode: 'ThisWeek' | 'NextWeek' | 'PrevWeek'): string {\n const { from, to } = this.getWeekRange(mode);\n const strFirstDate = this.getDateString(from, true, false);\n const strLastDate = this.getDateString(to, true, false);\n return strFirstDate + this.toText() + strLastDate;\n }\n\n getWeekRange(mode: 'ThisWeek' | 'NextWeek' | 'PrevWeek'): {\n from: Moment;\n to: Moment;\n } {\n let from = moment();\n let to = moment();\n from.locale(this.locale);\n to.locale(this.locale);\n switch (mode) {\n case 'ThisWeek':\n from = from.startOf('week');\n to = to.endOf('week');\n break;\n case 'NextWeek':\n from = from.day(+7).startOf('week');\n to = to.day(+7).endOf('week');\n break;\n case 'PrevWeek':\n from = from.day(-7).startOf('week');\n to = to.day(-7).endOf('week');\n break;\n }\n\n return { from, to };\n }\n format(value: Date, format: string): string {\n const m = this.getMoment(value);\n return m.format(format);\n }\n getShortDateString(date: Date): string {\n const m = moment(date);\n m.locale('fa');\n const format = 'YYYY/MM/DD';\n return m.format(format);\n }\n\n protected checkSame(moment1, moment2, mode, prefix: '' | 'i' | 'j'): boolean {\n const yearF = `${prefix}YYYY`;\n const monthF = `${prefix}MM`;\n const dayF = `${prefix}DD`;\n const dayCompare = yearF + monthF + dayF;\n const monthCompare = yearF + monthF;\n const yearCompare = yearF;\n let val1;\n let val2;\n switch (mode) {\n case 'day':\n val1 = moment1.format(dayCompare);\n val2 = moment2.format(dayCompare);\n break;\n case 'month':\n val1 = moment1.format(monthCompare);\n val2 = moment2.format(monthCompare);\n break;\n case 'year':\n val1 = moment1.format(yearCompare);\n val2 = moment2.format(yearCompare);\n break;\n }\n return val1 === val2;\n }\n\n abstract subtractMonth(moment: any, value: number): Date;\n\n abstract addMonth(moment: any, value: number): Date;\n\n abstract from(date1: Date, date2: Date): string;\n\n abstract to(date: Date, endDate: Date): string;\n\n abstract getTimes(date: string | Date): string;\n\n abstract getDateTimeString(date: Date): string;\n\n abstract weeksCount(momentObj: any): number;\n\n abstract isSame(date1: Date, date2: Date, mode: 'year' | 'month' | 'day'): boolean;\n\n abstract strDate(date: Date): string;\n\n abstract date(date: Date): number;\n\n abstract endOfMonth(moment: any): Date;\n\n abstract startOfMonth(moment: any): Date;\n\n abstract getDateInfo(date: any): DateInfo;\n\n abstract daysInMonth(year: any, month: any): number;\n\n abstract getMoment(date?: Date): any;\n\n abstract stringToMoment(str: string, format: string): any;\n\n abstract getStrMonthName(date: Date): string;\n\n abstract getDateString(date, showDate, showTime): string;\n\n abstract parse(payload: { year: number; month: number; day: number; hour: string; minutes: string }): any;\n\n abstract weekdaysMin(): string[];\n\n abstract weekDays(): string[];\n\n abstract toText();\n}\n","import { Injectable, Optional } from '@angular/core';\n\nimport moment from 'moment-hijri';\n\nimport { LogService } from '../services/log.service';\nimport { DateInfo } from './date-info';\nimport { DateService } from './date.service';\n\n@Injectable()\nexport class DateHijriService extends DateService {\n protected locale = 'ar-SA';\n constructor(@Optional() protected logService: LogService) {\n super(logService);\n }\n getTimes(date: string | Date): string {\n return moment(date).format('HH:mm');\n }\n weeksCount(momentObj: any): number {\n return moment.duration(moment(momentObj).endOf('iMonth') - moment(momentObj).startOf('iMonth')).weeks() + 1;\n }\n subtractMonth(momentOfDate: any, value: number): Date {\n return momentOfDate.subtract(value, 'iMonth').toDate();\n }\n addMonth(momentOfDate: any, value: number): Date {\n return momentOfDate.add(value, 'iMonth').toDate();\n }\n toText(): string {\n return 'الی ';\n }\n to(date1: Date, date2: Date): string {\n return moment(date1).to(date2);\n }\n from(date1: Date, date2: Date): string {\n return moment(date1).from(date2);\n }\n isSame(date1: Date, date2: Date, mode: 'year' | 'month' | 'day'): boolean {\n const m1 = moment(date1);\n const m2 = moment(date2);\n return this.checkSame(m1, m2, mode, 'i');\n }\n strDate(date: Date): string {\n return moment(date).format('iD');\n }\n weekdaysMin(): string[] {\n return moment.weekdaysMin();\n }\n weekDays(): string[] {\n return moment.weekdays();\n }\n date(date: Date): any {\n return moment(date).iDate();\n }\n endOfMonth(date: Date): any {\n return moment(date).endOf('iMonth').format('iYYYY-iMM-iDD hh:mm');\n }\n startOfMonth(date: Date): any {\n return moment(date).startOf('iMonth').format('iYYYY-iMM-iDD hh:mm');\n }\n getDateInfo(date: any): DateInfo {\n const m = moment(date);\n const shamsi = {\n year: m.iYear(),\n month: m.iMonth(),\n day: m.iDate(),\n hour: m.hour(),\n minutes: m.minute(),\n strYear: m.format('iYYYY'),\n strMonth: m.format('iM'),\n strDay: m.format('iD'),\n monthName: m.format('iMMMM'),\n dayInWeek: 0,\n dayName: m.format('dddd'),\n moment: m,\n date\n };\n shamsi.dayInWeek = m.daysInMonth(shamsi.year, shamsi.month);\n return shamsi;\n }\n daysInMonth(year: number, month: number): number {\n return moment.jDaysInMonth(year, month);\n }\n getMoment(date?: Date): any {\n if (!date) {\n date = new Date();\n }\n return moment(date);\n }\n stringToMoment(str: string, format: string): any {\n return moment(str, format);\n }\n getStrMonthName(date: Date): string {\n return moment(date).format('iMMMM');\n }\n parse(payload: { year: number; month: number; day: number; hour: string; minutes: string }): any {\n const { year, month, day, hour, minutes } = payload;\n const format = 'iYYYY-iM-iD HH:mm';\n const value = `${year}-${month}-${day} ${hour}:${minutes}`;\n if (this.logService) {\n this.logService.info(value, format);\n }\n\n return moment(value, format);\n }\n monthNames(): string[] {\n return moment.localeData()._iMonths;\n }\n format(value: Date, format: string): string {\n const m = this.getMoment(value);\n format = format.indexOf('YYYY') > -1 ? format.replace('YYYY', 'i1111') : format;\n format = format.indexOf('YY') > -1 ? format.replace('YY', 'i11') : format;\n format = format.indexOf('MMMM') > -1 ? format.replace('MMMM', 'i2222') : format;\n format = format.indexOf('MM') > -1 ? format.replace('MM', 'i22') : format;\n format = format.indexOf('DD') > -1 ? format.replace('DD', 'i33') : format;\n\n format = format.replace(/1/g, 'Y');\n format = format.replace(/2/g, 'M');\n format = format.replace(/3/g, 'D');\n return m.format(format);\n }\n getShortDateString(date: Date): string {\n const m = moment(date);\n m.locale('ar-SA');\n const format = 'iYYYY/iMM/iDD';\n return m.format(format);\n }\n getDateTimeString(date: Date): string {\n const m = moment(date);\n m.locale('ar-SA');\n return m.format('iYYYY-iMM-iDD HH:mm');\n }\n getDateString(date: Date, showDate: boolean, showTime: boolean): string {\n const m = moment(date);\n let format = 'dddd';\n if (showDate) {\n format = `${format} iYYYY/iMM/iDD `;\n }\n if (showTime) {\n format = `${format} HH:mm`;\n }\n return m.format(format);\n }\n}\n","import { Injectable, Optional } from '@angular/core';\r\n\r\nimport moment from 'moment';\r\n\r\nimport { LogService } from '../services/log.service';\r\nimport { DateInfo } from './date-info';\r\nimport { DateService } from './date.service';\r\n\r\n@Injectable()\r\nexport class DateMiladiService extends DateService {\r\n protected locale = 'en';\r\n constructor(@Optional() protected logService: LogService) {\r\n super(logService);\r\n moment.locale('en');\r\n }\r\n getTimes(date: string | Date): string {\r\n return moment(date).format('HH:mm');\r\n }\r\n weeksCount(momentObj: any): number {\r\n return moment.duration(moment(momentObj).endOf('month').diff(moment(momentObj).startOf('month'))).asWeeks() + 1;\r\n }\r\n subtractMonth(momentOfDate: any, value: number): Date {\r\n return momentOfDate.subtract(value, 'months').toDate();\r\n }\r\n addMonth(momentOfDate: any, value: number): Date {\r\n return momentOfDate.add(value, 'months').toDate();\r\n }\r\n to(date1: Date, date2: Date): string {\r\n return moment(date1).to(date2);\r\n }\r\n from(date1: Date, date2: Date): string {\r\n return moment(date1).from(date2);\r\n }\r\n isSame(date1: Date, date2: Date, mode: 'year' | 'month' | 'day'): boolean {\r\n return moment(date1).isSame(date2, mode);\r\n }\r\n strDate(date: Date): string {\r\n return moment(date).format('D');\r\n }\r\n toText(): string {\r\n return 'to ';\r\n }\r\n date(date: Date): number {\r\n return moment(date).date();\r\n }\r\n endOfMonth(date: Date): Date {\r\n return new Date(moment(date).endOf('month').format('YYYY-MM-DD hh:mm'));\r\n }\r\n startOfMonth(date: Date): Date {\r\n return new Date(moment(date).startOf('month').format('YYYY-MM-DD hh:mm'));\r\n }\r\n getDateInfo(date: any): DateInfo {\r\n const m = moment(date);\r\n const miladi = {\r\n year: m.year(),\r\n month: m.month(),\r\n day: m.date(),\r\n hour: m.hour(),\r\n minutes: m.minute(),\r\n strYear: m.format('YYYY'),\r\n strMonth: m.format('M'),\r\n strDay: m.format('D'),\r\n monthName: m.format('MMMM'),\r\n dayInWeek: 0,\r\n moment: m,\r\n dayName: m.format('dddd'),\r\n date\r\n };\r\n miladi.dayInWeek = m.daysInMonth();\r\n return miladi;\r\n }\r\n daysInMonth(year: number, month: number): number {\r\n return moment([year, month]).daysInMonth();\r\n }\r\n getMoment(date?: Date): any {\r\n if (!date) {\r\n date = new Date();\r\n }\r\n return moment(date);\r\n }\r\n stringToMoment(str: string, format: string): any {\r\n return moment(str, format);\r\n }\r\n getStrMonthName(date: Date): string {\r\n return moment(date).format('MMMM');\r\n }\r\n parse(payload: { year: number; month: number; day: number; hour: string; minutes: string }): any {\r\n const { year, month, day, hour, minutes } = payload;\r\n const format = 'YYYY-M-D HH:mm';\r\n const value = `${year}-${month}-${day} ${hour}:${minutes}`;\r\n if (this.logService) {\r\n this.logService.info(value, format);\r\n }\r\n\r\n return moment(value, format);\r\n }\r\n\r\n getDateString(date: Date, showDate: boolean, showTime: boolean): string {\r\n const m = moment(date);\r\n m.locale('en');\r\n\r\n let format = 'dddd';\r\n if (showDate) {\r\n format = `${format} DD MM YYYY`;\r\n }\r\n if (showTime) {\r\n format = `${format} HH:mm`;\r\n }\r\n return m.format(format);\r\n }\r\n getDateTimeString(date: Date): string {\r\n const m = moment(date);\r\n m.locale('en');\r\n return m.format('YYYY-MM-DD HH:mm');\r\n }\r\n weekdaysMin(): string[] {\r\n return moment.weekdaysMin();\r\n }\r\n weekDays(): string[] {\r\n return moment.weekdays();\r\n }\r\n}\r\n","import { Injectable, Optional } from '@angular/core';\n\nimport moment from 'moment-jalaali';\n\nimport { LogService } from '../services/log.service';\nimport { DateInfo } from './date-info';\nimport { DateService } from './date.service';\n\n@Injectable()\nexport class DateShamsiService extends DateService {\n protected locale = 'fa';\n\n constructor(@Optional() protected logService: LogService) {\n super(logService);\n moment.loadPersian({ usePersianDigits: true, dialect: 'persian-modern' });\n }\n\n getTimes(date: string | Date): string {\n return moment(date).format('HH:mm');\n }\n\n weeksCount(momentObj: any): number {\n return moment.duration(moment(momentObj).endOf('jMonth') - moment(momentObj).startOf('jMonth')).weeks() + 1;\n }\n\n subtractMonth(momentOfDate: any, value: number): Date {\n return momentOfDate.subtract(value, 'jMonth').toDate();\n }\n\n addMonth(momentOfDate: any, value: number): Date {\n return momentOfDate.add(value, 'jMonth').toDate();\n }\n\n to(date1: Date, date2: Date): string {\n return moment(date1).to(date2);\n }\n\n from(date1: Date, date2: Date): string {\n return moment(date1).from(date2);\n }\n\n isSame(date1: Date, date2: Date, mode: 'year' | 'month' | 'day'): boolean {\n const m1 = moment(date1);\n const m2 = moment(date2);\n return this.checkSame(m1, m2, mode, 'j');\n }\n\n strDate(date: Date): string {\n return moment(date).format('jD');\n }\n\n weekdaysMin(): Array<string> {\n return 'ش_ی_د_س_چ_پ_ج'.split('_');\n }\n\n weekDays(): Array<string> {\n return 'شنبه_یک\\u200cشنبه_دوشنبه_سه\\u200cشنبه_چهارشنبه_پنج\\u200cشنبه_جمعه'.split('_');\n }\n toText(): string {\n return 'تا ';\n }\n date(date: Date): any {\n return moment(date).jDate();\n }\n\n endOfMonth(date: Date): Date {\n return moment(date).endOf('jMonth').toDate();\n }\n\n startOfMonth(date: Date): Date {\n return moment(date).startOf('jMonth').toDate();\n }\n\n monthNames(): string[] {\n return moment.localeData()._jMonths;\n }\n\n getDateInfo(date: any): DateInfo {\n const m = moment(date);\n const shamsi = {\n year: m.jYear(),\n month: m.jMonth(),\n day: m.jDate(),\n hour: m.hour(),\n minutes: m.minute(),\n strYear: m.format('jYYYY'),\n strMonth: m.format('jM'),\n strDay: m.format('jD'),\n monthName: m.format('jMMMM'),\n dayInWeek: 0,\n moment: m,\n dayName: m.format('dddd'),\n date\n };\n shamsi.dayInWeek = m.daysInMonth(shamsi.year, shamsi.month);\n return shamsi;\n }\n\n daysInMonth(year: number, month: number): number {\n return moment.jDaysInMonth(year, month);\n }\n\n getMoment(date?: Date): any {\n if (!date) {\n date = new Date();\n }\n return moment(date);\n }\n stringToMoment(str: string, format: string): any {\n return moment(str, format);\n }\n\n getStrMonthName(date: Date): string {\n return moment(date).format('jMMMM');\n }\n\n getDateTimeString(date: Date): string {\n const m = moment(date);\n m.locale('fa');\n return m.format('jYYYY/jMM/jDD HH:mm');\n }\n format(value: Date, format: string): string {\n const m = this.getMoment(value);\n format = format.indexOf('YYYY') > -1 ? format.replace('YYYY', 'j1111') : format;\n format = format.indexOf('YY') > -1 ? format.replace('YY', 'j11') : format;\n format = format.indexOf('MMMM') > -1 ? format.replace('MMMM', 'j2222') : format;\n format = format.indexOf('MM') > -1 ? format.replace('MM', 'j22') : format;\n format = format.indexOf('DD') > -1 ? format.replace('DD', 'j33') : format;\n\n format = format.replace(/1/g, 'Y');\n format = format.replace(/2/g, 'M');\n format = format.replace(/3/g, 'D');\n return m.format(format);\n }\n getShortDateString(date: Date): string {\n const m = moment(date);\n m.locale('fa');\n const format = 'jYYYY/jMM/jDD';\n return m.format(format);\n }\n getDateString(date: Date, showDate: boolean, showTime: boolean): string {\n const m = moment(date);\n m.locale('fa');\n let format = '';\n if (showDate) {\n format = `dddd jYYYY/jMM/jDD`;\n }\n if (showTime) {\n format = `${format} HH:mm`;\n }\n return m.format(format);\n }\n\n parse(payload: { year: number; month: number; day: number; hour: string; minutes: string }): any {\n const { year, month, day, hour, minutes } = payload;\n const format = 'jYYYY-jM-jD HH:mm';\n const value = `${year}-${month}-${day} ${hour}:${minutes}`;\n if (this.logService) {\n this.logService.info(value, format);\n }\n\n return moment(value, format);\n }\n}\n","/* eslint-disable */\r\n\r\nconst Device: { [key: string]: any } = {};\r\n\r\n// * ******* OS Detection ********\r\n\r\n/**\r\n * Contains information about the operating system of the Device.\r\n * @name Device.os\r\n */\r\n\r\n/**\r\n * Enumeration containing the names of known operating systems.\r\n * @name Device.os.OS\r\n */\r\n\r\n/**\r\n * The name of the operating system.\r\n * @name Device.os.name\r\n * @type String\r\n */\r\n\r\n/**\r\n * The version of the operating system as <code>string</code>. Might be empty if no version can be determined.\r\n * @name Device.os.versionStr\r\n * @type String\r\n */\r\n\r\n/**\r\n * The version of the operating system as <code>float</code>. Might be <code>-1</code> if no version can be determined.\r\n * @name Device.os.version\r\n * @type float\r\n */\r\n\r\n/**\r\n * If this flag is set to <code>true</code>, a Windows operating system is used.\r\n * @name Device.os.windows\r\n * @type boolean\r\n */\r\n\r\n/**\r\n * If this flag is set to <code>true</code>, a Mac operating system is used.\r\n * @name Device.os.macintosh\r\n * @type boolean\r\n */\r\n\r\n/*\r\n * If this flag is set to <code>true</code>, an iOS operating system is used.\r\n * @name Device.os.ios\r\n * @type boolean\r\n */\r\n\r\n/**\r\n * If this flag is set to <code>true</code>, an Android operating system is used.\r\n * @name Device.os.android\r\n * @type boolean\r\n */\r\n\r\n/*\r\n * Windows operating system name.\r\n * @see Device.os.name\r\n * @name Device.os.OS.WINDOWS\r\n */\r\n\r\n/**\r\n * MAC operating system name.\r\n * @see Device.os.name\r\n * @name Device.os.OS.MACINTOSH\r\n */\r\n\r\n/**\r\n * iOS operating system name.\r\n * @see Device.os.name\r\n * @name Device.os.OS.IOS\r\n */\r\n\r\n/**\r\n * Android operating system name.\r\n * @see Device.os.name\r\n * @name Device.os.OS.ANDROID\r\n */\r\n\r\nconst OS = {\r\n WINDOWS: 'win',\r\n MACINTOSH: 'mac',\r\n IOS: 'iOS',\r\n ANDROID: 'Android'\r\n};\r\n\r\nconst _getMobileOS = () => {\r\n const userAgent = navigator.userAgent;\r\n\r\n // iOS, Android\r\n let rPlatform = /\\(([a-zA-Z ]+);\\s(?:[U]?[;]?)([\\D]+)((?:[\\d._]*))(?:.*[)][^\\d]*)([\\d.]*)\\s/;\r\n let aMatches = userAgent.match(rPlatform);\r\n\r\n if (aMatches) {\r\n const rAppleDevices = /iPhone|iPad|iPod/;\r\n\r\n if (aMatches[0].match(rAppleDevices)) {\r\n aMatches[3] = aMatches[3].replace(/_/g, '.');\r\n\r\n return {\r\n name: OS.IOS,\r\n versionStr: aMatches[3]\r\n };\r\n }\r\n\r\n if (aMatches[2].match(/Android/)) {\r\n aMatches[2] = aMatches[2].replace(/\\s/g, '');\r\n return {\r\n name: OS.ANDROID,\r\n versionStr: aMatches[3]\r\n };\r\n }\r\n }\r\n\r\n // Firefox on Android\r\n rPlatform = /\\((Android)[\\s]?([\\d][.\\d]*)?;.*Firefox\\/[\\d][.\\d]*/;\r\n aMatches = userAgent.match(rPlatform);\r\n if (aMatches) {\r\n return {\r\n name: OS.ANDROID,\r\n versionStr: aMatches.length === 3 ? aMatches[2] : ''\r\n };\r\n }\r\n return {};\r\n};\r\n\r\nconst _getDesktopOS = () => {\r\n const sPlatform = navigator.platform;\r\n if (sPlatform.indexOf('Win') !== -1) {\r\n const rVersion = /Windows NT (\\d+).(\\d)/i; // userAgent since windows 10: Windows NT 10[...]\r\n const uaResult = navigator.userAgent.match(rVersion);\r\n\r\n return {\r\n name: OS.WINDOWS,\r\n versionStr: (uaResult && uaResult[1]) || ''\r\n };\r\n }\r\n\r\n if (sPlatform.indexOf('Mac') !== -1) {\r\n return {\r\n name: OS.MACINTOSH,\r\n versionStr: ''\r\n };\r\n }\r\n\r\n return null;\r\n};\r\n\r\nconst _getOS = () => _getMobileOS() || _getDesktopOS();\r\n\r\nconst _setOS = () => {\r\n if (Device.os) {\r\n return;\r\n }\r\n\r\n Device.os = _getOS() || {};\r\n Device.os.OS = OS;\r\n Device.os.version = Device.os.versionStr ? parseFloat(Device.os.versionStr) : -1;\r\n\r\n if (Device.os.name) {\r\n Object.keys(OS).forEach((name) => {\r\n if (OS[name] === Device.os.name) {\r\n Device.os[name.toLowerCase()] = true;\r\n }\r\n });\r\n }\r\n};\r\n\r\nconst getOS = () => {\r\n if (!Device.os) {\r\n _setOS();\r\n }\r\n\r\n return Device.os;\r\n};\r\n\r\nconst isAndroid = () => {\r\n if (!Device.os) {\r\n _setOS();\r\n }\r\n\r\n return !!Device.os.android;\r\n};\r\n\r\n// * ******* Browser Detection ********\r\n\r\n/**\r\n * Contains information about the used browser.\r\n * @name Device.browser\r\n */\r\n\r\n/**\r\n * Enumeration containing the names of known browsers.\r\n * @name Device.browser.BROWSER\r\n *\r\n * The name of the browser.\r\n * @name Device.browser.name\r\n * @type String\r\n */\r\n\r\n/**\r\n * The version of the browser as <code>string</code>. Might be empty if no version can be determined.\r\n * @name Device.browser.versionStr\r\n * @type String\r\n */\r\n\r\n/**\r\n * The version of the browser as <code>float</code>. Might be <code>-1</code> if no version can be determined.\r\n * @name Device.browser.version\r\n * @type float\r\n */\r\n\r\n/**\r\n * If this flag is set to <code>true</code>, the mobile variant of the browser is used or\r\n * a tablet or phone device is detected. This information might not be available for all browsers.\r\n * @name Device.browser.mobile\r\n * @type boolean\r\n */\r\n\r\n/**\r\n * If this flag is set to <code>true</code>, the Microsoft Internet Explorer browser is used.\r\n * @name Device.browser.internet_explorer\r\n * @type boolean\r\n * @deprecated since 1.20, use {@link Device.browser.msie} instead.\r\n */\r\n\r\n/**\r\n * If this flag is set to <code>true</code>, the Microsoft Internet Explorer browser is used.\r\n * @name Device.browser.msie\r\n * @type boolean\r\n */\r\n\r\n/**\r\n * If this flag is set to <code>true</code>, the Microsoft Edge browser is used.\r\n * @name Device.browser.edge\r\n * @type boolean\r\n */\r\n\r\n/**\r\n * If this flag is set to <code>true</code>, the Mozilla Firefox browser is used.\r\n * @name Device.browser.firefox\r\n */\r\n\r\n/**\r\n * If this flag is set to <code>true</code>, the Google Chrome browser is used.\r\n * @name Device.browser.chrome\r\n * @type boolean\r\n *\r\n * If this flag is set to <code>true</code>, the Apple Safari browser is used.\r\n *\r\n * <b>Note:</b>\r\n * This flag is also <code>true</code> when the standalone (fullscreen) mode or webview is used on iOS devices.\r\n * Please also note the flags {@link Device.browser.fullscreen} and {@link Device.browser.webview}.\r\n *\r\n * @name Device.browser.safari\r\n * @type boolean\r\n */\r\n\r\n/**\r\n * If this flag is set to <code>true</code>, a browser featuring a Webkit engine is used.\r\n *\r\n * <b>Note:</b>\r\n * This flag is also <code>true</code> when the used browser was based on the Webkit engine, but\r\n * uses another rendering engine in the meantime. For example the Chrome browser started from version 28 and above\r\n * uses the Blink rendering engine.\r\n *\r\n * @name Device.browser.webkit\r\n * @type boolean\r\n */\r\n\r\n/**\r\n * If this flag is set to <code>true</code>, the Safari browser runs in standalone fullscreen mode on iOS.\r\n *\r\n * <b>Note:</b> This flag is only available if the Safari browser was detected. Furthermore, if this mode is detected,\r\n * technically not a standard Safari is used. There might be slight differences in behavior and detection, e.g.\r\n * the availability of {@link Device.browser.version}.\r\n *\r\n * @name Device.browser.fullscreen\r\n * @type boolean\r\n */\r\n\r\n/**\r\n * If this flag is set to <code>true</code>, the Safari browser runs in webview mode on iOS.\r\n *\r\n * <b>Note:</b> This flag is only available if the Safari browser was detected. Furthermore, if this mode is detected,\r\n * technically not a standard Safari is used. There might be slight differences in behavior and detection, e.g.\r\n * the availability of {@link Device.browser.version}.\r\n *\r\n * @name Device.browser.webview\r\n * @type boolean\r\n */\r\n\r\n/**\r\n * If this flag is set to <code>true</code>, the Phantom JS browser is used.\r\n * @name Device.browser.phantomJS\r\n * @type boolean\r\n */\r\n\r\n/**\r\n * The version of the used Webkit engine, if available.\r\n * @name Device.browser.webkitVersion\r\n * @type String\r\n */\r\n\r\n/**\r\n * If this flag is set to <code>true</code>, a browser featuring a Mozilla engine is used.\r\n * @name Device.browser.mozilla\r\n * @type boolean\r\n */\r\n\r\n/**\r\n * Internet Explorer browser name.\r\n * @name Device.browser.BROWSER.INTERNET_EXPLORER\r\n */\r\n\r\n/**\r\n * Edge browser name.\r\n * @name Device.browser.BROWSER.EDGE\r\n */\r\n\r\n/**\r\n * Firefox browser name.\r\n * @name Device.browser.BROWSER.FIREFOX\r\n */\r\n\r\n/**\r\n * Chrome browser name.\r\n * @name Device.browser.BROWSER.CHROME\r\n */\r\n\r\n/**\r\n * Safari browser name.\r\n * @name Device.browser.BROWSER.SAFARI\r\n */\r\n\r\n/**\r\n * Android stock browser name.\r\n * @name Device.browser.BROWSER.ANDROID\r\n */\r\n\r\nconst BROWSER = {\r\n INTERNET_EXPLORER: 'ie',\r\n EDGE: 'ed',\r\n FIREFOX: 'ff',\r\n CHROME: 'cr',\r\n SAFARI: 'sf',\r\n ANDROID: 'an'\r\n};\r\n\r\n/* !\r\n * Taken from jQuery JavaScript Library v1.7.1\r\n * http://jquery.com/\r\n *\r\n * Copyright 2011, John Resig\r\n * Dual licensed under the MIT or GPL Version 2 licenses.\r\n * http://jquery.org/license\r\n *\r\n * Includes Sizzle.js\r\n * http://sizzlejs.com/\r\n * Copyright 2011, The Dojo Foundation\r\n * Released under the MIT, BSD, and GPL Licenses.\r\n *\r\n * Date: Mon Nov 21 21:11:03 2011 -0500\r\n */\r\nconst _calcBrowser = () => {\r\n const sUserAgent = navigator.userAgent.toLowerCase();\r\n\r\n const rwebkit = /(webkit)[ /]([\\w.]+)/;\r\n const rmsie = /(msie) ([\\w.]+)/;\r\n const rmsie11 = /(trident)\\/[\\w.]+;.*rv:([\\w.]+)/;\r\n const redge = /(edge)[ /]([\\w.]+)/;\r\n const rmozilla = /(mozilla)(?:.*? rv:([\\w.]+))?/;\r\n\r\n // WinPhone IE11 and MS Edge userAgents contain \"WebKit\" and \"Mozilla\" and therefore must be checked first\r\n const browserMatch =\r\n redge.exec(sUserAgent) ||\r\n rmsie11.exec(sUserAgent) ||\r\n rwebkit.exec(sUserAgent) ||\r\n rmsie.exec(sUserAgent) ||\r\n (sUserAgent.indexOf('compatible') < 0 && rmozilla.exec(sUserAgent)) ||\r\n [];\r\n\r\n const oRes = {\r\n browser: browserMatch[1] || '',\r\n version: browserMatch[2] || '0'\r\n };\r\n oRes[oRes.browser] = true;\r\n return oRes;\r\n};\r\n\r\nconst _getBrowser = () => {\r\n const oBrowser: { [key: string]: any } = _calcBrowser();\r\n const sUserAgent = navigator.userAgent;\r\n const oNavigator: { [key: string]: any } = window.navigator;\r\n\r\n // jQuery checks for user agent strings. We differentiate between browsers\r\n let oExpMobile;\r\n let oResult;\r\n let fVersion;\r\n\r\n // Mozilla\r\n if (oBrowser.mozilla) {\r\n oExpMobile = /Mobile/;\r\n if (sUserAgent.match(/Firefox\\/(\\d+\\.\\d+)/)) {\r\n fVersion = parseFloat(RegExp.$1);\r\n oResult = {\r\n name: BROWSER.FIREFOX,\r\n versionStr: `${fVersion}`,\r\n version: fVersion,\r\n mozilla: true,\r\n mobile: oExpMobile.test(sUserAgent)\r\n };\r\n } else {\r\n // unknown mozilla browser\r\n oResult = {\r\n mobile: oExpMobile.test(sUserAgent),\r\n mozilla: true,\r\n version: -1\r\n };\r\n }\r\n } else if (oBrowser.webkit) {\r\n // webkit version is needed for calculation if the mobile android device is a tablet (calculation of other mobile devices work without)\r\n const regExpWebkitVersion = sUserAgent.toLowerCase().match(/webkit[/]([\\d.]+)/);\r\n let webkitVersion;\r\n if (regExpWebkitVersion) {\r\n webkitVersion = regExpWebkitVersion[1];\r\n }\r\n oExpMobile = /Mobile/;\r\n const aChromeMatch = sUserAgent.match(/(Chrome|CriOS)\\/(\\d+\\.\\d+).\\d+/);\r\n const aFirefoxMatch = sUserAgent.match(/FxiOS\\/(\\d+\\.\\d+)/);\r\n const aAndroidMatch = sUserAgent.match(/Android .+ Version\\/(\\d+\\.\\d+)/);\r\n\r\n if (aChromeMatch || aFirefoxMatch || aAndroidMatch) {\r\n let sName;\r\n let sVersion;\r\n let bMobile;\r\n\r\n if (aChromeMatch) {\r\n sName = BROWSER.CHROME;\r\n bMobile = oExpMobile.test(sUserAgent);\r\n sVersion = parseFloat(aChromeMatch[2]);\r\n } else if (aFirefoxMatch) {\r\n sName = BROWSER.FIREFOX;\r\n bMobile = true;\r\n sVersion = parseFloat(aFirefoxMatch[1]);\r\n } else if (aAndroidMatch) {\r\n sName = BROWSER.ANDROID;\r\n bMobile = oExpMobile.test(sUserAgent);\r\n sVersion = parseFloat(aAndroidMatch[1]);\r\n }\r\n\r\n oResult = {\r\n name: sName,\r\n mobile: bMobile,\r\n versionStr: `${sVersion}`,\r\n version: sVersion,\r\n webkit: true,\r\n webkitVersion\r\n };\r\n } else {\r\n // Safari might have an issue with sUserAgent.match(...); thus changing\r\n const oExp = /(Version|PhantomJS)\\/(\\d+\\.\\d+).*Safari/;\r\n const bStandalone: any = oNavigator.standalone;\r\n if (oExp.test(sUserAgent)) {\r\n const aParts: any = oExp.exec(sUserAgent);\r\n fVersion = parseFloat(aParts[2]);\r\n oResult = {\r\n name: BROWSER.SAFARI,\r\n versionStr: `${fVersion}`,\r\n fullscreen: false,\r\n webview: false,\r\n version: fVersion,\r\n mobile: oExpMobile.test(sUserAgent),\r\n webkit: true,\r\n webkitVersion,\r\n phantomJS: aParts[1] === 'PhantomJS'\r\n };\r\n } else if (\r\n /iPhone|iPad|iPod/.test(sUserAgent) &&\r\n !/CriOS/.test(sUserAgent) &&\r\n !/FxiOS/.test(sUserAgent) &&\r\n (bStandalone === true || bStandalone === false)\r\n ) {\r\n // WebView or Standalone mode on iOS\r\n oResult = {\r\n name: BROWSER.SAFARI,\r\n version: -1,\r\n fullscreen: bStandalone,\r\n webview: !bStandalone,\r\n mobile: oExpMobile.test(sUserAgent),\r\n webkit: true,\r\n webkitVersion\r\n };\r\n } else {\r\n // other webkit based browser\r\n oResult = {\r\n mobile: oExpMobile.test(sUserAgent),\r\n webkit: true,\r\n webkitVersion,\r\n version: -1\r\n };\r\n }\r\n }\r\n } else if (oBrowser.msie || oBrowser.trident) {\r\n fVersion = parseFloat(oBrowser.version);\r\n\r\n oResult = {\r\n name: BROWSER.INTERNET_EXPLORER,\r\n versionStr: `${fVersion}`,\r\n version: fVersion,\r\n msie: true,\r\n mobile: false\r\n };\r\n } else if (oBrowser.edge) {\r\n fVersion = parseFloat(oBrowser.version);\r\n oResult = {\r\n name: BROWSER.EDGE,\r\n versionStr: `${fVersion}`,\r\n version: fVersion,\r\n edge: true\r\n };\r\n } else {\r\n oResult = {\r\n name: '',\r\n versionStr: '',\r\n version: -1,\r\n mobile: false\r\n };\r\n }\r\n\r\n return oResult;\r\n};\r\n\r\nconst _setBrowser = () => {\r\n Device.browser = _getBrowser();\r\n Device.browser.BROWSER = BROWSER;\r\n\r\n if (Device.browser.name) {\r\n Object.keys(BROWSER).forEach((b) => {\r\n if (BROWSER[b] === Device.browser.name) {\r\n Device.browser[b.toLowerCase()] = true;\r\n }\r\n });\r\n }\r\n};\r\n\r\nconst getBrowser = () => {\r\n if (!Device.browser) {\r\n _setBrowser();\r\n }\r\n return Device.browser;\r\n};\r\n\r\nconst isIE = () => {\r\n if (!Device.browser) {\r\n _setBrowser();\r\n }\r\n return !!Device.browser.msie;\r\n};\r\n\r\nconst isEdge = () => {\r\n if (!Device.browser) {\r\n _setBrowser();\r\n }\r\n return !!Device.browser.edge;\r\n};\r\n\r\nconst isChrome = () => {\r\n if (!Device.browser) {\r\n _setBrowser();\r\n }\r\n return !!Device.browser.chrome;\r\n};\r\n\r\nconst isFF = () => {\r\n if (!Device.browser) {\r\n _setBrowser();\r\n }\r\n return !!Device.browser.firefox;\r\n};\r\n\r\nconst isSafari = () => {\r\n if (!Device.browser) {\r\n _setBrowser();\r\n }\r\n return !!Device.browser.safari;\r\n};\r\n\r\n// * ******* Support Detection ********\r\n\r\nconst _setSupport = () => {\r\n if (Device.support) {\r\n return;\r\n }\r\n\r\n if (!Device.browser) {\r\n _setBrowser();\r\n }\r\n\r\n Device.support = {};\r\n Device.support.touch = !!(\r\n 'ontouchstart' in window ||\r\n navigator.maxTouchPoints > 0 ||\r\n ((window as any).DocumentTouch && document instanceof (window as any).DocumentTouch)\r\n );\r\n};\r\n\r\nconst supportTouch = () => {\r\n if (!Device.support) {\r\n _setSupport();\r\n }\r\n\r\n return !!Device.support.touch;\r\n};\r\n\r\n// * ******* System Detection ********\r\n\r\n/**\r\n * Provides a basic categorization of the used device based on various indicators.\r\n *\r\n * <b>Note:</b> Depending on the capabilities of the device it is also possible that multiple flags are set to <code>true</code>.\r\n *\r\n * @namespace\r\n * @name Device.system\r\n */\r\n\r\n/**\r\n * If this flag is set to <code>true</code>, the device is recognized as a phone.\r\n *\r\n * @name Device.system.phone\r\n * @type boolean\r\n */\r\n\r\n/**\r\n * @name Device.system.SYSTEMTYPE\r\n * Enumeration containing the names of known types of the devices.\r\n */\r\n\r\nconst SYSTEMTYPE = {\r\n TABLET: 'tablet',\r\n PHONE: 'phone',\r\n DESKTOP: 'desktop',\r\n COMBI: 'combi'\r\n};\r\n\r\nconst _isTablet = () => {\r\n const sUserAgent = navigator.userAgent;\r\n if (Device.os.name === Device.os.OS.IOS) {\r\n return /ipad/i.test(sUserAgent);\r\n }\r\n // in real mobile device\r\n if (supportTouch()) {\r\n if (Device.os.windows && Device.os.version >= 8) {\r\n return true;\r\n }\r\n\r\n if (Device.browser.chrome && Device.os.android && Device.os.version >= 4.4) {\r\n return !/Mobile Safari\\/[.0-9]+/.test(sUserAgent);\r\n }\r\n let densityFactor = window.devicePixelRatio ? window.devicePixelRatio : 1; // may be undefined in Windows Phone devices\r\n // On Android sometimes window.screen.width returns the logical CSS pixels, sometimes the physical device pixels;\r\n // Tests on multiple devices suggest this depends on the Webkit version.\r\n // The Webkit patch which changed the behavior was done here: https://bugs.webkit.org/show_bug.cgi?id=106460\r\n // Chrome 27 with Webkit 537.36 returns the logical pixels,\r\n // Chrome 18 with Webkit 535.19 returns the physical pixels.\r\n // The BlackBerry 10 browser with Webkit 537.10+ returns the physical pixels.\r\n // So it appears like somewhere above Webkit 537.10 we do not hve to divide by the devicePixelRatio anymore.\r\n if (Device.os.android && Device.browser.webkit && parseFloat(Device.browser.webkitVersion) > 537.1) {\r\n densityFactor = 1;\r\n }\r\n\r\n // this is how android distinguishes between tablet and phone\r\n // http://android-developers.blogspot.de/2011/07/new-tools-for-managing-screen-sizes.html\r\n const bTablet = Math.min(window.screen.width / densityFactor, window.screen.height / densityFactor) >= 600;\r\n\r\n // special workaround for Nexus 7 where the window.screen.width is 600px or 601px in portrait mode (=> tablet)\r\n // but window.screen.height 552px in landscape mode (=> phone), because the browser UI takes some space on top.\r\n // So the detected device type depends on the orientation :-(\r\n // actually this is a Chrome bug, as \"width\"/\"height\" should return the entire screen's dimensions and\r\n // \"availWidth\"/\"availHeight\" should return the size available after subtracting the browser UI\r\n\r\n /*\r\n if (isLandscape() &&\r\n (window.screen.height === 552 || window.screen.height === 553) // old/new Nexus 7\r\n &&\r\n (/Nexus 7/i.test(sUserAgent))) {\r\n bTablet = true;\r\n }\r\n */\r\n\r\n return bTablet;\r\n }\r\n // This simple android phone detection can be used here because this is the mobile emulation mode in desktop browser\r\n const bAndroidPhone = /(?=android)(?=.*mobile)/i.test(sUserAgent);\r\n // in desktop browser, it's detected as tablet when\r\n // 1. Windows 8 device with a touch screen where \"Touch\" is contained in the userAgent\r\n // 2. Android emulation and it's not an Android phone\r\n return (Device.browser.msie && sUserAgent.indexOf('Touch') !== -1) || (Device.os.android && !bAndroidPhone);\r\n};\r\n\r\nconst _getSystem = () => {\r\n const bTabletDetected = _isTablet();\r\n const isWin8Upwards = Device.os.windows && Device.os.version >= 8;\r\n\r\n const oSystem: { [key: string]: any } = {};\r\n oSystem.tablet = !!((Device.support.touch || isWin8Upwards) && bTabletDetected);\r\n oSystem.phone = !!((Device.os.windows_phone || Device.support.touch) && !bTabletDetected);\r\n oSystem.desktop = !!((!oSystem.tablet && !oSystem.phone) || isWin8Upwards);\r\n oSystem.combi = oSystem.desktop && oSystem.tablet;\r\n oSystem.SYSTEMTYPE = SYSTEMTYPE;\r\n\r\n return oSystem;\r\n};\r\n\r\nconst _setSystem = () => {\r\n _setSupport();\r\n _setOS();\r\n\r\n Device.system = {};\r\n Device.system = _getSystem();\r\n if (Device.system.tablet || Device.system.phone) {\r\n Device.browser.mobile = true;\r\n }\r\n};\r\n\r\nconst getSystem = () => {\r\n if (!Device.system) {\r\n _setSystem();\r\n }\r\n\r\n return Device.system;\r\n};\r\n\r\nconst isDesktop = () => {\r\n if (!Device.system) {\r\n _setSystem();\r\n }\r\n\r\n return Device.system.desktop;\r\n};\r\n\r\nconst isTablet = () => {\r\n if (!Device.system) {\r\n _setSystem();\r\n }\r\n\r\n return Device.system.tablet;\r\n};\r\n\r\nconst isPhone = () => {\r\n if (!Device.system) {\r\n _setSystem();\r\n }\r\n\r\n return Device.system.phone;\r\n};\r\n\r\nconst isMobile = () => {\r\n if (!Device.system) {\r\n _setSystem();\r\n }\r\n\r\n return Device.browser.mobile;\r\n};\r\n\r\nexport {\r\n isIE,\r\n isEdge,\r\n isChrome,\r\n isFF,\r\n isSafari,\r\n isMobile,\r\n isDesktop,\r\n isTablet,\r\n isPhone,\r\n isAndroid,\r\n getOS,\r\n getSystem,\r\n getBrowser,\r\n supportTouch\r\n};\r\n","/* eslint-disable */\nimport { _isNumberValue } from '@angular/cdk/coercion';\nimport { BarsaApi } from './abstract-classes/barsa-api';\nimport {\n AbbrevationDeviceSize,\n ColSetting,\n FormSetting,\n GeneralControlInfoModel,\n GridSetting,\n LayoutSetting,\n MetaobjectDataModel,\n ReportViewColumn\n} from './abstract-classes/models';\nimport { DateHijriService, DateMiladiService, DateService, DateShamsiService } from './date-services';\nimport * as Device from './device';\nimport { LogService } from './services/log.service';\n\nexport function throwIfAlreadyLoaded(parentModule: any, moduleName: string): void {\n if (parentModule) {\n throw new Error(`${moduleName} has already been loaded. Import ${moduleName} in the AppModule only.`);\n }\n}\nexport function genrateInlineMoId() {\n return (BarsaApi.idGenerator--).toString();\n}\nexport function enumValueToStringSize(value: string, defaultValue: string): string {\n switch (value) {\n case '1':\n return 's';\n case '2':\n return 'm';\n case '3':\n return 'l';\n default:\n return defaultValue;\n }\n}\nexport function executeUlvCommandHandler(button, options?): void {\n if (button.Command && button.Command.Handler) {\n button.Command.Handler(button, options);\n } else if (button.handler) {\n button.handler.bind(button.scope)(button, options);\n }\n}\nexport function getUniqueId(parts: number): string {\n const stringArr: string[] = [];\n for (let i = 0; i < parts; i++) {\n // eslint-disable-next-line no-bitwise\n const S4 = (((1 + Math.random()) * 0x10000) | 0).toString(16);\n const S4_: string = S4.length > 0 ? S4.substring(1) : '';\n stringArr.push(S4_);\n }\n return stringArr.join('-');\n}\n\nexport function getDateService(logService: LogService, culture?): DateService {\n const defaultCulture = culture ?? BarsaApi.LoginFormData.Culture;\n switch (defaultCulture) {\n case 'fa-IR':\n return new DateShamsiService(logService);\n case 'ar-AE':\n return new DateHijriService(logService);\n default:\n return new DateMiladiService(logService);\n }\n}\nexport function isFirefox(): boolean {\n return navigator.userAgent.toLowerCase().indexOf('firefox') > -1;\n}\nexport function getImagePath(\n type: string,\n moId: string | null,\n fileId: string,\n fieldDefId?: string,\n size?: number,\n sizeH?: number\n): string {\n moId = moId == null ? '' : encodeURIComponent(moId);\n fileId = fileId == null ? '' : encodeURIComponent(fileId);\n fieldDefId = fieldDefId == null ? '' : encodeURIComponent(fieldDefId);\n size = size == null ? 128 : size;\n sizeH = sizeH == null ? size : sizeH;\n const url = `/IH.ashx?ty=${type}&moId=${moId}&id=${fileId}&fdId=${fieldDefId}&si=${size}&siH=${sizeH}`;\n return url;\n}\n\nexport function isFunction(functionToCheck): boolean {\n return functionToCheck && {}.toString.call(functionToCheck) === '[object Function]';\n}\nexport function DeviceWidth(): number {\n return window.innerWidth > 0 ? window.innerWidth : screen.width;\n}\nexport function getHeaderValue(fieldValue): any {\n if (typeof fieldValue !== 'object') {\n return fieldValue;\n }\n const value = fieldValue.Value;\n const valueCaption: string = fieldValue.Value$Caption;\n let valueObjectCaption = null;\n if (typeof value === 'object') {\n valueObjectCaption = fieldValue.Value.$Caption;\n }\n if (valueObjectCaption) {\n return valueObjectCaption;\n }\n if (valueCaption && !valueCaption.startsWith('tmp')) {\n return valueCaption;\n }\n return value;\n}\nexport function elementInViewport2(el: any): boolean {\n let top = el.offsetTop;\n let left = el.offsetLeft;\n const width = el.offsetWidth;\n const height = el.offsetHeight;\n\n while (el.offsetParent) {\n el = el.offsetParent;\n top += el.offsetTop;\n left += el.offsetLeft;\n }\n\n return (\n top < window.pageYOffset + window.innerHeight &&\n left < window.pageXOffset + window.innerWidth &&\n top + height > window.pageYOffset &&\n left + width > window.pageXOffset\n );\n}\nexport function PreventDefaulEvent(e): void {\n e.stopPropagation();\n e.preventDefault();\n}\n\nexport function getParentHeight(elDom: HTMLElement): number {\n let parentDom = elDom.parentElement;\n let parentHeight = parentDom?.clientHeight ?? 0;\n while (parentDom != null && parentHeight < 40) {\n parentDom = parentDom.parentElement;\n parentHeight = parentDom?.clientHeight ?? 0;\n }\n return parentHeight;\n}\n\nexport function getComponentDefined(\n controlUi: { originalXtype: string },\n customUiSetting: { Module: string; Name: string; Selector: string }\n): {\n moduleName: string;\n modulePath: string;\n componentName: string;\n selector: string;\n} {\n let moduleName = BarsaApi.LoginFormData.DefaultUiModule;\n let moduleKebabName = BarsaApi.Common.Util.GetKebabCase(moduleName);\n let componentName = controlUi.originalXtype.replace('.', '').replace('_', '');\n let selector: string = BarsaApi.Common.Util.GetKebabCase(componentName);\n selector = selector.substring(1, selector.length);\n selector = BarsaApi.LoginFormData.CustomUiPrefix + '-' + selector;\n if (customUiSetting && customUiSetting.Module) {\n moduleName = customUiSetting.Module;\n moduleKebabName = BarsaApi.Common.Util.GetKebabCase(moduleName);\n componentName = customUiSetting.Name;\n selector = customUiSetting.Selector;\n }\n const modulePath = moduleKebabName.slice(1, moduleKebabName.length);\n return { moduleName, modulePath, componentName, selector };\n}\n\nexport function getDeviceIsPhone(): boolean {\n return Device.isPhone();\n}\nexport function getDeviceIsDesktop(): boolean {\n return Device.isTablet();\n}\nexport function getDeviceIsTablet(): boolean {\n return Device.isTablet();\n}\nexport function getDeviceIsMobile(): boolean {\n return navigator.userAgent.indexOf('mobi') > 0 || getDeviceIsPhone();\n}\n\nexport function getControlSizeMode(el: HTMLElement, deviceSize: 's' | 'm' | 'l' | 'xl' = 'l'): AbbrevationDeviceSize {\n const containerWidth = el.offsetWidth;\n if (containerWidth === 0) {\n return deviceSize;\n }\n if (deviceSize === 's' || containerWidth < 600) {\n deviceSize = 's';\n } else if (deviceSize === 'm' || (containerWidth > 600 && containerWidth < 1200)) {\n deviceSize = 'm';\n }\n return deviceSize;\n}\n\nexport function formatBytes(\n bytes,\n decimals = 2,\n size: 'Bytes' | 'KB' | 'MB' | 'GB' | 'TB' | 'PB' | 'EB' | 'ZB' | 'YB'\n): string {\n if (bytes === 0) {\n return '0 Bytes';\n }\n\n const k = 1024;\n const dm = decimals < 0 ? 0 : decimals;\n const sizes = ['Bytes', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'];\n const i = sizes.findIndex((c) => c === size);\n return parseFloat((bytes / Math.pow(k, i)).toFixed(dm)) + ' ' + sizes[i];\n}\nexport function getValidExtension(validExtensions): string {\n let _validExtensions = '';\n if (Array.isArray(validExtensions)) {\n _validExtensions = validExtensions.map((c) => '.' + c.Extension).join(',');\n }\n return _validExtensions;\n}\nexport function getIcon(type: string): string {\n return BarsaApi.Common.File.FileIconDict128[type];\n}\nexport function isImage(type): boolean {\n if (!type) {\n return false;\n }\n type = type.toLowerCase();\n return ['img', 'png', 'jpeg', 'jpg', 'gif', 'bmp', 'tiff', 'image'].indexOf(type) > -1;\n}\n\nexport function GetAllColumnsSorted(context): Array<ReportViewColumn> {\n const allColumns = BarsaApi.Common.Util.TryGetValue(context, 'Setting.View.Columns', []).filter(\n (c) => c.Name !== 'Id' && c.Name !== '$StyleIndex' && !c.Hidden\n );\n\n const colList: ColSetting[] = BarsaApi.Common.Util.TryGetValue(\n context,\n 'Setting.View.GridSetting.ColSettingList',\n []\n );\n const columns = new Array<ReportViewColumn>();\n colList.forEach((colS) => {\n const column = allColumns.find((c) => c.Name === colS.Name);\n if (column) {\n columns.push({ ...column, Hidden: colS.IsHidden, Width: colS.Width });\n }\n });\n allColumns.forEach((column, index) => {\n const colSetting = colList.find((c) => c.Name === column.Name);\n if (!colSetting) {\n columns.splice(index, 0, { ...column, Hidden: colList.length > 0 ? true : false });\n }\n });\n return columns;\n}\nexport function getGridSettings(context): GridSetting {\n const gridSetting = BarsaApi.Common.Util.TryGetValue(context, 'Setting.View.GridSetting', null);\n return {\n ColSettingList: gridSetting?.ColSettingList ?? null,\n SortSettingList: gridSetting?.SortSettingList ?? [],\n AutoSizeColumns: gridSetting?.AutoSizeColumns ?? false\n };\n}\nexport function GetDefaultMoObjectInfo(typeDefId: string): MetaobjectDataModel {\n return {\n Id: '0',\n $Caption: '',\n $TypeDefId: typeDefId,\n $State: 'New',\n $Type: 'Common.MetaObjectWeb',\n $FieldDict: {}\n };\n}\nexport function getLayout94ObjectInfo(): LayoutSetting {\n return {\n Type: 'Root',\n ControlId: 'ریشه',\n xtype: 'Ly.LayoutContainer',\n Bounds: { x: 0, y: 0, width: 432, height: 24 },\n items: [\n {\n Type: 'VerticalJoin',\n xtype: 'Ly.LayoutJoin',\n IsVertical: true,\n Bounds: { x: 0, y: 0, width: 432, height: 82 },\n items: []\n }\n ]\n };\n}\nexport function getFormSettings(typeDefId: string): FormSetting {\n const mo = GetDefaultMoObjectInfo(typeDefId);\n\n const formPanelSettings: FormSetting = {\n View: {\n Layout94: getLayout94ObjectInfo,\n ControlInfo: [],\n TypeDefId: typeDefId\n },\n IsSearchPanel: true,\n Data: {\n Mo: mo\n }\n };\n return formPanelSettings;\n}\nexport function createFormPanelMetaConditions(\n typeDefId: string,\n controlsInfo: GeneralControlInfoModel[],\n controlName: string,\n value: any\n): any {\n const formSettings = getFormSettings(typeDefId);\n formSettings.View.ControlInfo = JSON.parse(JSON.stringify(controlsInfo));\n\n formSettings.View.Layout94.items[0].items.push(...controlsInfo.map((c) => getLayoutControl(c.ControlName)));\n formSettings.Data.Mo[controlName] = value;\n const formPanelCtrlr = new BarsaApi.Ul.FormPanelCtrlr({\n Setting: formSettings,\n Features: {\n Workflow: false,\n Toolbar: false,\n InfoBar: false\n }\n });\n return formPanelCtrlr;\n}\nexport function getNewMoGridEditor(formSettings: FormSetting, typedefId: string): Partial<FormSetting> {\n const newFormSettings: FormSetting = JSON.parse(JSON.stringify(formSettings));\n return { ...newFormSettings.Data.Mo, $TypeDefId: typedefId };\n}\nexport function createGridEditorFormPanel(\n formSettings: FormSetting,\n mo: MetaobjectDataModel,\n typedef: string,\n relation: any,\n rewriteLayout: boolean = true\n): any {\n const newFormSettings: FormSetting = JSON.parse(JSON.stringify(formSettings));\n newFormSettings.Data.Mo = { ...mo, $TypeDefId: typedef };\n if (rewriteLayout) {\n newFormSettings.View.Layout94 = getLayout94ObjectInfo();\n newFormSettings.View.Layout94.items[0].items.push(\n ...newFormSettings.View.ControlInfo.map((c) =>\n getLayoutControl(c.ControlName, c.ControlFieldCaptionTranslated, false)\n )\n );\n }\n const formRequestParams = new BarsaApi.Ul.FormRequestParams({\n MoId: newFormSettings.Data.Mo.Id,\n TypeDefId: typedef,\n Relation: relation\n // MoContext: {\n // ReportId: '',\n // ViewId: '',\n // ViewName: '',\n // CondFormating: '',\n // IncludeInReport: ''\n // }\n });\n const formPanelCtrlr = new BarsaApi.Ul.FormPanelCtrlr({\n Setting: newFormSettings,\n Relation: relation,\n Features: {\n Workflow: false,\n Toolbar: false,\n InfoBar: false\n },\n FormRequestParams: formRequestParams\n });\n return formPanelCtrlr;\n}\n\nexport function getLayoutControl(\n controlName: string,\n controlCaption: string = '',\n hide: boolean = true\n): Partial<GeneralControlInfoModel> {\n return {\n xtype: 'Ly.LayoutControl',\n Type: 'LayoutControlItem',\n ControlId: controlName,\n IsVertical: false,\n TextLocation: 'Right',\n TextVisible: false,\n Visible: !hide,\n hide,\n UseLayoutItemTextForControl: false,\n Caption: controlCaption,\n AccessibleName: '',\n Bounds: { x: 0, y: 0, width: 432, height: 24 },\n MinSize: { width: 89, height: 24 },\n MaxSize: { width: 0, height: 24 },\n ControlBounds: { width: 388, height: 20 },\n ControlMinSize: { width: 45, height: 20 },\n ControlMaxSize: { width: 0, height: 20 },\n Padding: [2, 2, 2, 2],\n LabelSize: { width: 35, height: 13 },\n originalXtype: ''\n };\n}\n\nexport function getControlList(\n mo: MetaobjectDataModel,\n controlDbNames: string[],\n isSearchPanel: boolean,\n isGridEditor: boolean\n): Promise<GeneralControlInfoModel[]> {\n return new Promise<GeneralControlInfoModel[]>((resolve, reject) => {\n BarsaApi.Common.Ajax.GetServerData(\n 'Form94.GetControlInfos',\n {\n controlInfoParameter: {\n FieldDbNames: controlDbNames,\n Mo: new BarsaApi.Common.MetaObjectWeb(mo),\n IsSearchPanel: isSearchPanel,\n IsGridEditor: isGridEditor\n }\n },\n (m) => {\n resolve(m);\n },\n (err) => {\n reject(err);\n }\n );\n });\n}\n\nexport type NzSafeAny = any;\nexport type NumberInput = number | string | undefined | null;\nexport interface NgStyleInterface {\n [klass: string]: NzSafeAny;\n}\n\nexport interface IndexableObject {\n [key: string]: NzSafeAny;\n}\nexport function shallowEqual(objA?: IndexableObject, objB?: IndexableObject): boolean {\n if (objA === objB) {\n return true;\n }\n\n if (typeof objA !== 'object' || !objA || typeof objB !== 'object' || !objB) {\n return false;\n }\n\n const keysA = Object.keys(objA);\n const keysB = Object.keys(objB);\n\n if (keysA.length !== keysB.length) {\n return false;\n }\n\n const bHasOwnProperty = Object.prototype.hasOwnProperty.bind(objB);\n\n // eslint-disable-next-line @typescript-eslint/prefer-for-of\n for (let idx = 0; idx < keysA.length; idx++) {\n const key = keysA[idx];\n if (!bHasOwnProperty(key)) {\n return false;\n }\n if (objA[key] !== objB[key]) {\n return false;\n }\n }\n\n return true;\n}\nexport function toNumber(value: number | string): number;\nexport function toNumber<D>(value: number | string, fallback: D): number | D;\nexport function toNumber(value: number | string, fallbackValue: number = 0): number {\n return _isNumberValue(value) ? Number(value) : fallbackValue;\n}\nfunction propDecoratorFactory<T, D>(\n name: string,\n fallback: (v: T) => D\n): (target: NzSafeAny, propName: string) => void {\n function propDecorator(\n target: NzSafeAny,\n propName: string,\n originalDescriptor?: TypedPropertyDescriptor<NzSafeAny>\n ): NzSafeAny {\n const privatePropName = `$$__zorroPropDecorator__${propName}`;\n\n if (Object.prototype.hasOwnProperty.call(target, privatePropName)) {\n // warn(`The prop \"${privatePropName}\" is already exist, it will be overrided by ${name} decorator.`);\n }\n\n Object.defineProperty(target, privatePropName, {\n configurable: true,\n writable: true\n });\n\n return {\n get(): string {\n return originalDescriptor && originalDescriptor.get\n ? originalDescriptor.get.bind(this)()\n : this[privatePropName];\n },\n set(value: T): void {\n if (originalDescriptor && originalDescriptor.set) {\n originalDescriptor.set.bind(this)(fallback(value));\n }\n this[privatePropName] = fallback(value);\n }\n };\n }\n\n return propDecorator;\n}\nexport function InputNumber(fallbackValue?: NzSafeAny): NzSafeAny {\n return propDecoratorFactory('InputNumber', (value: string | number) => toNumber(value, fallbackValue));\n}\nexport enum AffixRespondEvents {\n resize = 'resize',\n scroll = 'scroll',\n touchstart = 'touchstart',\n touchmove = 'touchmove',\n touchend = 'touchend',\n pageshow = 'pageshow',\n load = 'LOAD'\n}\nexport interface SimpleRect {\n top: number;\n left: number;\n width?: number;\n height?: number;\n bottom?: number;\n}\n\nexport function isTargetWindow(target: Element | Window): target is Window {\n return typeof window !== 'undefined' && target === window;\n}\n\nexport function getTargetRect(target: Element | Window): SimpleRect {\n return !isTargetWindow(target)\n ? target.getBoundingClientRect()\n : {\n top: 0,\n left: 0,\n bottom: 0\n };\n}\nexport function getFieldValue(name: string, mo: MetaobjectDataModel, caption?: boolean): string {\n const fieldName = mo.$FieldDict && mo.$FieldDict[name] ? mo.$FieldDict[name] : name;\n let val = mo[fieldName];\n if (caption) {\n let captionVal = mo[fieldName]?.$Caption;\n if (typeof captionVal !== 'string') {\n if (!captionVal) {\n captionVal = mo[fieldName + '$Caption'];\n }\n if (!captionVal) {\n captionVal = val;\n }\n }\n val = captionVal;\n }\n return val;\n}\n\n/* eslint-disable no-invalid-this */\nexport const availablePrefixes = ['moz', 'ms', 'webkit'];\n\nexport function requestAnimationFramePolyfill(): typeof requestAnimationFrame {\n let lastTime = 0;\n return function (callback: FrameRequestCallback): any {\n const currTime = new Date().getTime();\n const timeToCall = Math.max(0, 16 - (currTime - lastTime));\n const id = setTimeout(() => {\n callback(currTime + timeToCall);\n }, timeToCall);\n lastTime = currTime + timeToCall;\n return id;\n };\n}\nexport function ExecuteDynamicCommand(command: { Id: string }, mo: MetaobjectDataModel | null = null): void {\n const e = { command, DynamicSetting: mo, Mo: mo };\n BarsaApi.Common.CustomCodeManager.RunDynamicCommand(command.Id, e);\n}\nexport function ExecuteWorkflowChoiceDef(scope, param, success: (result) => void, failed: (error) => void): void {\n BarsaApi.Common.Ajax.GetServerData(\n 'Workflow94.ChoiceSelect',\n param,\n (result) => {\n success(result);\n }, // success\n (error) => {\n failed(error);\n }, // error\n () => {}, // doReturn\n scope,\n true\n );\n}\nexport function getRequestAnimationFrame(): typeof requestAnimationFrame {\n if (typeof window === 'undefined') {\n return () => 0;\n }\n if (window.requestAnimationFrame) {\n // https://github.com/vuejs/vue/issues/4465\n return window.requestAnimationFrame.bind(window);\n }\n\n const prefix = availablePrefixes.filter((key) => `${key}RequestAnimationFrame` in window)[0];\n\n return prefix ? (window as NzSafeAny)[`${prefix}RequestAnimationFrame`] : requestAnimationFramePolyfill();\n}\nexport function cancelRequestAnimationFrame(id: number): NzSafeAny {\n if (typeof window === 'undefined') {\n return null;\n }\n if (window.cancelAnimationFrame) {\n return window.cancelAnimationFrame(id);\n }\n const prefix = availablePrefixes.filter(\n (key) => `${key}CancelAnimationFrame` in window || `${key}CancelRequestAnimationFrame` in window\n )[0];\n\n return prefix\n ? (\n (window as NzSafeAny)[`${prefix}CancelAnimationFrame`] ||\n (window as NzSafeAny)[`${prefix}CancelRequestAnimationFrame`]\n )\n // @ts-ignore\n .call(this, id)\n : clearTimeout(id);\n}\n\nexport type EasyingFn = (t: number, b: number, c: number, d: number) => number;\n\nexport function easeInOutCubic(t: number, b: number, c: number, d: number): number {\n const cc = c - b;\n let tt = t / (d / 2);\n if (tt < 1) {\n return (cc / 2) * tt * tt * tt + b;\n } else {\n return (cc / 2) * ((tt -= 2) * tt * tt + 2) + b;\n }\n}\n\nexport interface NzScrollToOptions {\n /** Animation duration, default as 450 */\n duration?: number;\n /** Scroll container, default as window */\n easing?: EasyingFn;\n /** Scroll end callback */\n callback?(): void;\n}\nexport const WordMimeType =\n '.doc,.docx,application/msword,application/vnd.openxmlformats-officedocument.wordprocessingml.document';\nexport const ImageMimeType = '.jpeg,.jpg,.gif,.png,.bmp,.tif,image/*';\nexport const PdfMimeType = '.pdf';\nexport const AllFilesMimeType = '.txt,.ppt,.pdf,.*';\nexport const VideoMimeType = 'video/*';\nexport const AudioMimeType = 'audio/*';\n","import { Injectable } from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\nimport { Observable, from } from 'rxjs';\n\nimport { BarsaApi } from '../abstract-classes/barsa-api';\nimport { CartableTemplateKey, LoginResult, PortalDataModel } from '../abstract-classes/models';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ApiService {\n portalLoginUrl = `/api/auth/portal/login`;\n executeUrl = `api/base/execute`;\n constructor(private httpClient: HttpClient) {}\n\n public loginPortal(): Observable<LoginResult> {\n return this.httpClient.get<LoginResult>(this.portalLoginUrl);\n }\n public GetCartableTemplate(keyOfCartableTemplates: CartableTemplateKey[]): Observable<{ [key: string]: string }> {\n return from(this.loadFormAjax({ viewSettings: keyOfCartableTemplates }, 'List94.LoadCartableTemplates'));\n }\n public loadPortalPageData(pageId, typeDefId): Observable<any> {\n return from(\n this.loadFormAjax(\n {\n formParam: {\n IsNew: false,\n Mo: { Id: pageId, $TypeDefId: typeDefId }\n }\n },\n 'Form94.GetPortal'\n )\n );\n }\n public loadPortal(portalId, typeDefId): Observable<PortalDataModel> {\n return from(\n this.loadFormAjax(\n {\n formParam: {\n IsNew: false,\n Mo: { Id: portalId, $TypeDefId: typeDefId }\n }\n },\n 'Form94.GetPortal'\n )\n );\n }\n public loadPortalSync(portalId, typeDefId): PortalDataModel {\n return this.getServerDataSync(\n {\n formParam: {\n IsNew: false,\n Mo: { Id: portalId, $TypeDefId: typeDefId }\n }\n },\n 'Form94.GetPortal'\n );\n }\n private getServerDataSync(param, action): PortalDataModel {\n return BarsaApi.Common.Ajax.GetServerData_SyncReturn(action, param, false);\n }\n private loadFormAjax(param, action): Promise<any> {\n return new Promise((resolve, reject) => {\n BarsaApi.Common.Ajax.GetServerData(\n action,\n param,\n (m) => {\n resolve(m);\n },\n (err) => {\n reject(err);\n }\n );\n });\n }\n}\n","import { Injectable } from '@angular/core';\r\nimport { ActivatedRoute, Data, NavigationEnd, Router } from '@angular/router';\r\nimport { BehaviorSubject, Observable } from 'rxjs';\r\nimport { filter, map, startWith } from 'rxjs/operators';\r\nimport { BreadCrumbInfo } from './portal.service';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BreadcrumbService {\r\n // Observable exposing the breadcrumb hierarchy\r\n readonly breadcrumbs$: Observable<BreadCrumbInfo[]>;\r\n\r\n // Subject emitting the breadcrumb hierarchy\r\n private readonly _breadcrumbs$ = new BehaviorSubject<BreadCrumbInfo[]>([]);\r\n\r\n constructor(private router: Router) {\r\n this.breadcrumbs$ = this._breadcrumbs$.asObservable();\r\n this.router.events\r\n .pipe(\r\n // Filter the NavigationEnd events as the breadcrumb is updated only when the route reaches its end\r\n filter((event) => event instanceof NavigationEnd),\r\n startWith(this.router),\r\n map(() => this.router.routerState.root)\r\n )\r\n .subscribe((root) => {\r\n // Construct the breadcrumb hierarchy\r\n // const root = this.router.routerState.snapshot.root;\r\n const breadcrumbs: BreadCrumbInfo[] = [];\r\n this.addBreadcrumb(root, breadcrumbs);\r\n\r\n // Emit the new hierarchy\r\n this._breadcrumbs$.next(breadcrumbs);\r\n });\r\n }\r\n\r\n private addBreadcrumb(route: ActivatedRoute | null, breadcrumbs: BreadCrumbInfo[]): void {\r\n if (route) {\r\n // Add an element for the current route part\r\n if (route.snapshot.data?.breadcrumb || route.snapshot.data?.pageData?.BreadCrumb) {\r\n let url = '';\r\n const routeURL: string = route.snapshot.url.map((segment) => segment.path).join('/');\r\n if (routeURL !== '') {\r\n url += `/${routeURL}`;\r\n }\r\n const breadcrumb = {\r\n label: this.getLabel(route.snapshot.data),\r\n url,\r\n route\r\n };\r\n breadcrumbs.push(breadcrumb);\r\n }\r\n // Add another element for the next route part\r\n this.addBreadcrumb(route.firstChild, breadcrumbs);\r\n }\r\n }\r\n\r\n private getLabel(data: Data): string {\r\n // The breadcrumb can be defined as a static string or as a function to construct the breadcrumb element out of the route data\r\n const breadcrumb = data.breadcrumb || data.pageData.BreadCrumb;\r\n\r\n return typeof breadcrumb === 'function' ? data.breadcrumb(data) : breadcrumb;\r\n }\r\n}\r\n","import {\n AfterViewInit,\n ApplicationRef,\n Component,\n ComponentFactoryResolver,\n ComponentRef,\n Injector,\n OnInit,\n Type\n} from '@angular/core';\nimport { BaseComponent } from './abstract-classes/base.component';\n\n@Component({\n template: ``\n})\nexport class ModalRootComponent extends BaseComponent implements OnInit, AfterViewInit {\n componentType: Type<any>;\n componentInstance: ComponentRef<any>;\n constructor(\n private factoryResolver: ComponentFactoryResolver,\n private injector: Injector,\n private _appRef: ApplicationRef\n ) {\n super();\n // this.insertComponent();\n }\n\n ngOnInit(): void {\n super.ngOnInit();\n // this.insertComponent();\n }\n close(): void {\n this._appRef.detachView(this.componentInstance.hostView);\n }\n insertComponent(): void {\n const factoryResolver = this.factoryResolver.resolveComponentFactory(this.componentType);\n this.componentInstance = factoryResolver.create(this.injector);\n\n this._appRef.attachView(this.componentInstance.hostView);\n }\n}\n","import {\n ComponentFactoryResolver,\n Injectable,\n InjectFlags,\n InjectionToken,\n Injector,\n OnDestroy,\n Type,\n ViewContainerRef\n} from '@angular/core';\nimport { ActivatedRoute } from '@angular/router';\nimport { Observable, Subject } from 'rxjs';\nimport { ContainerComponent } from '../container.component';\n\nimport { ModalRootComponent } from '../modal-root.component';\n\nexport class CustomInjector implements Injector {\n constructor(\n private parentInjector: Injector,\n private additionalTokens: WeakMap<any, any>,\n private activatedRoute?: ActivatedRoute\n ) {}\n\n get<T>(token: Type<T> | InjectionToken<T>, notFoundValue?: T, flags?: InjectFlags): T;\n get(token: any, notFoundValue?: any): any {\n if (token === ActivatedRoute && this.activatedRoute) {\n return this.activatedRoute;\n }\n const value = this.additionalTokens.get(token);\n if (value) {\n return value;\n }\n return this.parentInjector.get<any>(token, notFoundValue);\n }\n}\n@Injectable() // check it later\nexport class DialogParams implements OnDestroy {\n context: any;\n afterClosed$: Observable<any>;\n private afterClosed: Subject<any> = new Subject<any>();\n constructor() {\n this.afterClosed$ = this.afterClosed?.asObservable();\n }\n close(result?: any): void {\n if (this.afterClosed != null) {\n this.afterClosed.next(result);\n }\n }\n\n ngOnDestroy(): void {\n this.afterClosed.unsubscribe();\n }\n}\n\n@Injectable({\n providedIn: 'root'\n})\nexport class BarsaDialogService {\n containerComponent: ContainerComponent;\n constructor(protected factoryResolver: ComponentFactoryResolver, protected injector: Injector) {}\n\n showForm(component: Type<any>, context: any, container?: ViewContainerRef): Observable<any> {\n const weakMap = new WeakMap();\n\n const dialogParams = new DialogParams();\n dialogParams.context = context;\n weakMap.set(DialogParams, dialogParams);\n\n const viewContainerRef = container ?? this.containerComponent.vcr;\n const factory = this.factoryResolver.resolveComponentFactory(ModalRootComponent);\n const modalRootComponentRef = factory.create(new CustomInjector(viewContainerRef.injector, weakMap));\n\n modalRootComponentRef.instance.componentType = component;\n modalRootComponentRef.instance.insertComponent();\n if (!context.inDialog) {\n // viewContainerRef.element.nativeElement.classList.add('deactive');\n }\n viewContainerRef.insert(modalRootComponentRef.hostView, 0);\n this.containerComponent.cdr.detectChanges();\n const sub = dialogParams.afterClosed$?.subscribe(() => {\n modalRootComponentRef.instance.close();\n viewContainerRef.remove(0);\n sub?.unsubscribe();\n // viewContainerRef.element.nativeElement.classList.remove('deactive');\n });\n // this.modalRootComponentRef.instance.navigate();\n return dialogParams.afterClosed$;\n }\n}\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\nimport { BaseComponent } from '../abstract-classes/base.component';\n\n@Component({\n selector: 'bnrc-not-found',\n templateUrl: './not-found.component.html',\n styleUrls: ['./not-found.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class NotFoundComponent extends BaseComponent {\n @Input() componentName: string;\n @Input() moduleName: string;\n}\n","<div fd-form-control>{{ moduleName + ' ' + componentName }}</div>\r\n","import { Injectable, Injector, ComponentRef, ComponentFactoryResolver } from '@angular/core';\r\nimport { Observable, of } from 'rxjs';\r\nimport { NotFoundComponent } from '../not-found/not-found.component';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class DynamicComponentService {\r\n private _dynamicModuleWithComponents: {\r\n [key: string]: {\r\n ngModuleRef: any;\r\n };\r\n } = {};\r\n constructor(private cfr: ComponentFactoryResolver) {}\r\n addModuleWithComponents(moduleName: string, ngModuleRef: any): void {\r\n if (!this._dynamicModuleWithComponents[moduleName]) {\r\n this._dynamicModuleWithComponents[moduleName] = {\r\n ngModuleRef\r\n };\r\n }\r\n }\r\n getComponentBySelector(\r\n selector: string,\r\n moduleName: string,\r\n injector: Injector\r\n ): Observable<ComponentRef<unknown>> {\r\n const moName = moduleName + 'Module';\r\n const module = this._dynamicModuleWithComponents[moName];\r\n if (module && module.ngModuleRef.getComponentFactory) {\r\n const componentFactory = module.ngModuleRef.getComponentFactory(selector);\r\n if (componentFactory) {\r\n return of(componentFactory.create(injector));\r\n }\r\n }\r\n const componentRef = this.cfr.resolveComponentFactory(NotFoundComponent).create(injector);\r\n componentRef.instance.componentName = selector;\r\n componentRef.instance.moduleName = moduleName;\r\n return of(componentRef);\r\n }\r\n getComponentByName(\r\n componentName: string,\r\n moduleName: string,\r\n injector: Injector\r\n ): Observable<ComponentRef<unknown>> {\r\n const cmpName = componentName + 'Component';\r\n const moName = moduleName + 'Module';\r\n const module = this._dynamicModuleWithComponents[moName];\r\n if (module && module.ngModuleRef.getComponentFactory) {\r\n const componentFactory = module.ngModuleRef.getComponentFactory(cmpName);\r\n if (componentFactory) {\r\n return of(componentFactory.create(injector));\r\n }\r\n }\r\n const componentRef = this.cfr.resolveComponentFactory(NotFoundComponent).create(injector);\r\n componentRef.instance.componentName = componentName;\r\n componentRef.instance.moduleName = moduleName;\r\n return of(componentRef);\r\n }\r\n}\r\n","import { BehaviorSubject, Subject, Observable, combineLatest } from 'rxjs';\nimport { debounceTime, delay, filter, map, takeUntil, tap } from 'rxjs/operators';\nimport { FormViewSetting, IHeaderLayout, LayoutSetting, MetaobjectDataModel } from '../abstract-classes/models';\nimport { BarsaApi } from '../abstract-classes/barsa-api';\nimport { BaseComponent } from '../abstract-classes/base.component';\nimport { DeviceWidth, getHeaderValue } from '../constants';\n\nexport class FormPanelService extends BaseComponent {\n context$: Observable<any>;\n searchPanelIsObject$: Observable<boolean>;\n isSearchPanel$: Observable<boolean>;\n workflowPanelUi$: Observable<any>;\n mo$: Observable<MetaobjectDataModel>;\n view$: Observable<any>;\n toolbarItems$: Observable<any[]>;\n workflowButtons$: Observable<any[]>;\n maxContentWidth$: Observable<string>;\n wizardNextStep$: Observable<void>;\n wizardPreviousStep$: Observable<void>;\n layout$: Observable<any>;\n forceClose$: Observable<void>;\n groupLayout$: Observable<LayoutSetting>;\n isSimpleForm$: Observable<boolean>;\n formWidth$: Observable<string>;\n toolbarVisible$: Observable<boolean>;\n headerLayout$: Observable<IHeaderLayout>;\n _hideClose$ = new BehaviorSubject<boolean>(false);\n _hideTitle$ = new BehaviorSubject<boolean>(false);\n _hidePin$ = new BehaviorSubject<boolean>(false);\n title$: Observable<string>;\n headerDescription$: Observable<string>;\n headerRemoveContentPadding$: Observable<boolean>;\n headerSubtitle$: Observable<string>;\n avatar$: Observable<any>;\n mask$: Observable<boolean>;\n formHeight$: Observable<number>;\n fieldDict$: Observable<{ [key: string]: string } | undefined>;\n\n private _context;\n private _contextSource = new BehaviorSubject<any>(null);\n private _formHeightSource = new BehaviorSubject<number>(0);\n private _searchPanelIsObjectSource = new BehaviorSubject<boolean>(false);\n private _isSearchPanelSource = new BehaviorSubject<boolean>(false);\n private _workflowPanelUiSource = new BehaviorSubject<any>(null);\n private _moSource = new BehaviorSubject<any>(null);\n private _viewSource = new BehaviorSubject<any>(null);\n private _toolbarItemsSource = new BehaviorSubject<any[]>([]);\n private _titleSource = new BehaviorSubject<string>('');\n private _maxContentWidthSource = new BehaviorSubject<string>('auto');\n private _wizardNextStepSource = new Subject<void>();\n private _wizardPreviousStepSource = new Subject<void>();\n private _layoutSource = new BehaviorSubject<any>(null);\n private _forceCloseSource = new Subject<void>();\n private _groupBRuleSource = new Subject<LayoutSetting>();\n private _isSimpleFormSource = new BehaviorSubject<boolean>(false);\n private _formWidthSource = new BehaviorSubject<string>('100%');\n private _toolbarVisibleSource = new BehaviorSubject<boolean>(true);\n private _headerLayoutSource = new BehaviorSubject<any>(null);\n private _headerTitleSource = new BehaviorSubject<string>('');\n private _maskSource = new BehaviorSubject<boolean>(false);\n private _headerRemoveContentPaddingSource = new BehaviorSubject<boolean>(false);\n private _headerDescriptionSource = new BehaviorSubject<string>('');\n private _canSend$ = new BehaviorSubject<boolean>(false);\n\n constructor() {\n super();\n this.context$ = this._contextSource.asObservable().pipe(\n tap((context) => this._prepareContext(context)),\n takeUntil(this._onDestroy$)\n );\n\n this.searchPanelIsObject$ = this._searchPanelIsObjectSource.asObservable().pipe(takeUntil(this._onDestroy$));\n this.isSearchPanel$ = this._isSearchPanelSource.asObservable().pipe(takeUntil(this._onDestroy$));\n this.workflowPanelUi$ = this._workflowPanelUiSource.asObservable().pipe(takeUntil(this._onDestroy$));\n this.formHeight$ = this._formHeightSource.asObservable();\n this.mo$ = this._moSource.asObservable().pipe(takeUntil(this._onDestroy$));\n this.fieldDict$ = this.mo$.pipe(\n map((c) => c.$FieldDict),\n takeUntil(this._onDestroy$)\n );\n\n this.view$ = this._viewSource.asObservable().pipe(\n tap((view) => this._prepareView(view)),\n takeUntil(this._onDestroy$)\n );\n\n this.toolbarItems$ = this._toolbarItemsSource.asObservable().pipe(\n map((items) => this._filterToolbarItems(items)),\n takeUntil(this._onDestroy$)\n );\n this.workflowButtons$ = this._toolbarItemsSource.asObservable().pipe(\n map((items) => this._filterToolbarItems(items)),\n map((items) => items.filter((c) => c.isWorkflow)),\n takeUntil(this._onDestroy$)\n );\n\n this.maxContentWidth$ = this._maxContentWidthSource.asObservable().pipe(\n map((width) => (width ? width + 'px' : 'auto')),\n takeUntil(this._onDestroy$)\n );\n\n this.wizardNextStep$ = this._wizardNextStepSource.asObservable().pipe(takeUntil(this._onDestroy$));\n this.wizardPreviousStep$ = this._wizardPreviousStepSource.asObservable().pipe(takeUntil(this._onDestroy$));\n this.layout$ = this._layoutSource.asObservable().pipe(\n map((layout) => {\n if (!layout) {\n return layout;\n }\n const deviceWidth = DeviceWidth();\n if (deviceWidth < layout.Bounds.width) {\n layout.Bounds.width = deviceWidth;\n }\n return { ...layout };\n }),\n takeUntil(this._onDestroy$)\n );\n\n this.forceClose$ = this._forceCloseSource.asObservable().pipe(takeUntil(this._onDestroy$));\n\n this.groupLayout$ = this._groupBRuleSource.asObservable().pipe(takeUntil(this._onDestroy$));\n\n this.isSimpleForm$ = this._isSimpleFormSource.asObservable().pipe(takeUntil(this._onDestroy$));\n\n this.formWidth$ = this._formWidthSource.asObservable().pipe(takeUntil(this._onDestroy$));\n\n this.toolbarVisible$ = this._toolbarVisibleSource.asObservable().pipe(takeUntil(this._onDestroy$));\n this.title$ = combineLatest([this._headerTitleSource.asObservable(), this._titleSource.asObservable()]).pipe(\n map(([headerTitle, title]) => (headerTitle ? headerTitle : title)),\n takeUntil(this._onDestroy$)\n );\n this.headerLayout$ = this._headerLayoutSource.asObservable().pipe(\n filter((headerLayout) => !!headerLayout),\n tap((headerLayout) => this._headerTitleSource.next(getHeaderValue(headerLayout?.Title))),\n tap((headerLayout) => this._hideClose$.next(headerLayout?.HideClose)),\n tap((headerLayout) => this._hideTitle$.next(headerLayout?.HideTitle)),\n tap((headerLayout) => this._hidePin$.next(headerLayout?.HidePin)),\n tap((headerLayout) => this._headerDescriptionSource.next(getHeaderValue(headerLayout?.Description))),\n tap((headerLayout) =>\n this._headerRemoveContentPaddingSource.next(getHeaderValue(headerLayout?.RemoveContentPadding))\n ),\n takeUntil(this._onDestroy$)\n );\n\n this.headerDescription$ = this._headerDescriptionSource.asObservable().pipe(takeUntil(this._onDestroy$));\n\n this.headerRemoveContentPadding$ = this._headerRemoveContentPaddingSource\n .asObservable()\n .pipe(delay(0), takeUntil(this._onDestroy$));\n\n this.headerSubtitle$ = this.headerLayout$.pipe(\n map((headerLayout) => getHeaderValue(headerLayout?.SubTitle)),\n takeUntil(this._onDestroy$)\n );\n\n this.avatar$ = this.headerLayout$.pipe(\n map((headerLayout) => getHeaderValue(headerLayout?.Avatar)),\n takeUntil(this._onDestroy$)\n );\n\n this.mask$ = this._maskSource.asObservable().pipe(debounceTime(200), takeUntil(this._onDestroy$));\n }\n get hidePin$(): Observable<boolean> {\n return this._hidePin$.asObservable();\n }\n get hideClose$(): Observable<boolean> {\n return this._hideClose$.asObservable();\n }\n get hideTitle$(): Observable<boolean> {\n return this._hideTitle$.asObservable();\n }\n get canSend$(): Observable<boolean> {\n return this._canSend$.asObservable();\n }\n get mo(): MetaobjectDataModel {\n return this._moSource.getValue();\n }\n set context(val: any) {\n if (this._context) {\n this.destroy();\n }\n this._contextSource.next(val);\n }\n setFormHeight(val: number): void {\n this._formHeightSource.next(val);\n }\n destroy(): void {\n if (!this._context) {\n return;\n }\n this._context.un('GroupBRuleChanged', this._groupBRuleChanged);\n this._context.un('TitleChanged', this._titleChanged);\n this._context.un('WizardNextStep', this._wizardNextStep);\n this._context.un('WizardPreviousStep', this._wizardPreviousStep);\n this._context.un('DoLayout', this._doLayout);\n this._context.un('MaskChanged', this._maskChanged);\n this._context.un('ForceClose', this._forceClose);\n this._context.toolbar.un('ToolbarItemsChanged', this._toolbarItemsChanged);\n this._context = null;\n this._layoutSource.next(null);\n // this._onDestroy$.next();\n }\n\n toolbarClick(btn): void {\n btn.handler(btn, this._context);\n }\n wfChoice(btn): void {\n this._context.WorkflowPanelUi.fireEvent('ChoiceSelect', btn, this._context);\n }\n\n protected _initialize(context: any): void {\n this._workflowPanelUiSource.next(context?.WorkflowPanelUi);\n this._isSearchPanelSource.next(context?.Setting?.IsSearchPanel);\n this._canSend$.next(context?.Setting?.CanSend);\n this._searchPanelIsObjectSource.next(context?.Setting?.ParameterTypeIsObject);\n this._moSource.next(context?.Mo);\n this._viewSource.next(context?.Setting?.View);\n this._toolbarItemsSource.next(context?.toolbar?.items);\n if (context?.toolbar) {\n context.toolbar.on({\n ToolbarItemsChanged: this._toolbarItemsChanged.bind(this)\n });\n }\n this._titleSource?.next(context?.title);\n this._toolbarVisibleSource.next(this._getToolbarVisibility(context));\n }\n\n protected _prepareView(view): void {\n this._layoutSource.next(view?.Layout94);\n this._maxContentWidthSource.next(this._getMaxContentWidth(view));\n this._isSimpleFormSource.next(this._getIsSimpleForm(view));\n this._headerLayoutSource.next(this._getHeaderLayout(view));\n this._formWidthSource.next(view?.inDialog ? view.Layout94.Bounds.width + 'px' : '100%');\n }\n protected _filterToolbarItems(items: Array<any>): Array<any> {\n if (!items) {\n return [];\n }\n // در صورتی که در موبایل باشد دو دکمه نمایش داده شود از دکمه های کاربر و فرآیندی\n // در صورتی که دکمه ی وجود نداشت فقط دکمه ذخیره نمایش داده شود\n // در حالتهای دیگر ابتدا دکمه های کاربری و فرآیندی و بعد دکمه های تعریف شده سیستم نمایش داده میشود.\n\n let newItems = items.filter((c) => !c.hidden);\n const nonStringItems = newItems.filter((c) => typeof c !== 'string');\n let nonBuiltinCount = 0;\n nonStringItems.forEach((item) => {\n if (typeof item === 'string') {\n return;\n }\n if (item.isBuiltin) {\n // سیستمی\n item.priority = 'always';\n } else {\n if (nonBuiltinCount > 1) {\n // دکمه های کاربری که بیشتر از دو هستند\n item.priority = 'low';\n }\n nonBuiltinCount++;\n }\n });\n if (nonBuiltinCount === 0) {\n // اگر هیچ دکمه کاربری وجود نداشت\n nonStringItems.forEach((item, index) => {\n if (item.itemId === 'Save') {\n item.priority = 'never';\n }\n });\n }\n const saveAndNew = newItems.find((c) => c.itemId === 'SaveAndNew');\n const saveAndClose = newItems.find((c) => c.itemId === 'SaveAndClose');\n if (saveAndClose && saveAndClose.menu) {\n const save = saveAndClose.menu.items[0];\n if (save) {\n save.isBuiltin = true;\n save.priority = nonBuiltinCount === 0 ? 'never' : 'always';\n\n newItems.push(save);\n if (saveAndNew) {\n save.IAmMenu = true;\n save.menu = { items: [{ ...saveAndNew }] };\n newItems = newItems.filter((c) => c.itemId !== 'SaveAndNew');\n }\n }\n }\n newItems.forEach((item) => {\n if (item.menu) {\n item.menu.items = item.menu.items.filter((c) => !c.hidden);\n }\n });\n return newItems.sort((a): number => (typeof a == 'string' ? 0 : a.IAmMenu ? 1 : -1));\n }\n protected _getHeaderLayout(view): IHeaderLayout {\n const headerLayout = BarsaApi.Common.Util.TryGetValue(view, 'HeaderLayout', null);\n\n if (headerLayout) {\n // this.setHeaderTitleAndSubtitleAndAvatar(headerLayout);\n const t: any[] = [];\n headerLayout.FacetList.MoDataList.forEach((facetColumn) => {\n t.push({\n type: facetColumn.ColumnSettings.$FormPanelSetting.Data.Mo.Type,\n mo: facetColumn.ColumnSettings.$FormPanelSetting.Data.Mo\n });\n });\n headerLayout.FacetList2 = t;\n }\n return headerLayout;\n }\n\n protected _getIsSimpleForm(view: FormViewSetting): boolean {\n const isSimple = BarsaApi.Common.Util.TryGetValue(view, 'ExtraJsonProp.IsSimple', false);\n return isSimple;\n }\n protected _getToolbarVisibility(context): boolean {\n if (!context) {\n return false;\n }\n const hideToolbar = BarsaApi.Common.Util.TryGetValue(context, 'toolbar.hideToolbar', false);\n if (hideToolbar) {\n return false;\n }\n const { FormSettings } = context.Setting.View;\n if (FormSettings) {\n const showToolbar = FormSettings.ShowToolbar === false ? false : true;\n const featureToolbar = BarsaApi.Common.Util.TryGetValue(context, 'Features.Toolbar', false);\n\n const visible = (featureToolbar && showToolbar) !== false;\n return visible;\n }\n return true;\n }\n protected _getMaxContentWidth(view): string {\n const maxContentWidth = BarsaApi.Common.Util.TryGetValue(view, 'ExtraJsonProp.MaxWidth', '0');\n return maxContentWidth;\n }\n protected _addListener(context): void {\n if (!context) {\n return;\n }\n context.on({\n GroupBRuleChanged: this._groupBRuleChanged.bind(this),\n TitleChanged: this._titleChanged.bind(this),\n WizardNextStep: this._wizardNextStep.bind(this),\n WizardPreviousStep: this._wizardPreviousStep.bind(this),\n DoLayout: this._doLayout.bind(this),\n MaskChanged: this._maskChanged.bind(this),\n ForceClose: this._forceClose.bind(this),\n Refresh: this._refresh.bind(this)\n });\n context.toolbar.on({\n ToolbarItemsChanged: this._toolbarItemsChanged.bind(this)\n });\n }\n protected _refresh(): void {\n this._initialize(this._context);\n // this._prepareView(this._context.Setting.View);\n }\n protected _forceClose(): void {\n this._forceCloseSource.next();\n }\n protected _maskChanged(mask): void {\n this._maskSource.next(mask);\n }\n protected _toolbarItemsChanged(items): void {\n this._toolbarItemsSource.next(items);\n }\n protected _titleChanged(title): void {\n this._titleSource.next(title);\n }\n protected _wizardNextStep(): void {\n this._wizardNextStepSource.next();\n }\n protected _wizardPreviousStep(): void {\n this._wizardPreviousStepSource.next();\n }\n protected _doLayout(context): void {\n const view = context.Setting.View;\n this._viewSource.next(view);\n }\n protected _groupBRuleChanged(groupItem: LayoutSetting): void {\n this._groupBRuleSource.next(groupItem);\n }\n protected _prepareContext(context): void {\n this._addListener(context);\n this._initialize(context);\n this._context = context;\n }\n}\n","import { BehaviorSubject, Observable } from 'rxjs';\r\n\r\nexport class FormService {\r\n formList$: Observable<string[]>;\r\n private fromListSubject = new BehaviorSubject<string[]>([]);\r\n constructor() {\r\n this.formList$ = this.fromListSubject.asObservable();\r\n }\r\n openCompose(formComposeId: string): void {\r\n this.fromListSubject.next([...this.fromListSubject.value, formComposeId]);\r\n }\r\n closeCompose(formComposeId: string): void {\r\n this.fromListSubject.next(this.fromListSubject.value.filter((id) => id !== formComposeId));\r\n }\r\n}\r\n","import { Injectable, OnDestroy, Optional, SkipSelf, ViewContainerRef, ViewRef } from '@angular/core';\r\n@Injectable()\r\nexport class ContainerService implements OnDestroy {\r\n private _viewContainerRef: ViewContainerRef;\r\n private _viewRef: ViewRef | null;\r\n\r\n constructor(@SkipSelf() @Optional() private _parentService: ContainerService) {}\r\n ngOnDestroy(): void {\r\n if (this._parentService) {\r\n this._parentService.insert();\r\n }\r\n }\r\n setViewContainerRef(viewContainerRef: ViewContainerRef): void {\r\n this._viewContainerRef = viewContainerRef;\r\n if (this._parentService) {\r\n this._parentService.detach();\r\n }\r\n }\r\n private detach(): void {\r\n this._viewRef = this._viewContainerRef.detach();\r\n }\r\n private insert(): void {\r\n if (this._viewRef) {\r\n this._viewContainerRef.insert(this._viewRef);\r\n }\r\n }\r\n}\r\n","import { BehaviorSubject, Observable } from 'rxjs';\r\nimport { map } from 'rxjs/operators';\r\n\r\nexport class HorizontalLayoutService {\r\n displayTextFlexColumn$: Observable<boolean>;\r\n private controlFlexColumnSource = new BehaviorSubject<DisplayTextFlex>({});\r\n\r\n constructor() {\r\n this.displayTextFlexColumn$ = this.controlFlexColumnSource\r\n .asObservable()\r\n .pipe(map((controlFlexColumn) => Object.keys(controlFlexColumn).some((c) => controlFlexColumn[c])));\r\n }\r\n setFlexColumn(id, val: boolean): void {\r\n const flexColumn = this.controlFlexColumnSource.getValue();\r\n flexColumn[id] = val;\r\n this.controlFlexColumnSource.next(flexColumn);\r\n }\r\n}\r\ninterface DisplayTextFlex {\r\n [key: string]: boolean;\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { BehaviorSubject, Observable, Subject } from 'rxjs';\r\nimport { distinctUntilChanged } from 'rxjs/operators';\r\n\r\n@Injectable()\r\nexport class LayoutService {\r\n rootRendered$: Observable<boolean>;\r\n maxWidth$: Observable<number>;\r\n refreshLayout$: Observable<void>;\r\n horizontal$: Observable<any[]>;\r\n id: string;\r\n isTab: boolean;\r\n\r\n private rendered = new BehaviorSubject<boolean>(false);\r\n private maxWidth = new BehaviorSubject<number>(0);\r\n private refreshLayoutSource = new Subject<void>();\r\n private horizontalSource = new Subject<any[]>();\r\n private _listOfHorizontal: any[] = [];\r\n\r\n constructor() {\r\n this.rootRendered$ = this.rendered.asObservable();\r\n this.maxWidth$ = this.maxWidth.asObservable();\r\n this.refreshLayout$ = this.refreshLayoutSource.asObservable();\r\n this.horizontal$ = this.horizontalSource.asObservable().pipe(distinctUntilChanged((a, b) => a === b));\r\n }\r\n setRendered(val: boolean): void {\r\n this.rendered.next(val);\r\n }\r\n setMaxWidth(val): void {\r\n if (this.maxWidth.value < val) {\r\n this.maxWidth.next(val);\r\n }\r\n }\r\n refreshLayout(): void {\r\n this.refreshLayoutSource.next();\r\n }\r\n addHorizontal(id): void {\r\n this._listOfHorizontal = [...this._listOfHorizontal, id];\r\n this.horizontalSource.next(this._listOfHorizontal);\r\n }\r\n removeHorizontal(id): void {\r\n this._listOfHorizontal = this._listOfHorizontal.filter((c) => c !== id);\r\n this.horizontalSource.next(this._listOfHorizontal);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { ActivatedRouteSnapshot, Resolve } from '@angular/router';\r\nimport { Observable } from 'rxjs';\r\n\r\nimport { PageDataModel } from '../abstract-classes/models';\r\nimport { PortalService } from '../services/portal.service';\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class PortalPageResolver implements Resolve<PageDataModel | null> {\r\n constructor(private portalService: PortalService) {}\r\n\r\n resolve(\r\n route: ActivatedRouteSnapshot\r\n // state: RouterStateSnapshot\r\n ): Observable<PageDataModel | null> {\r\n // const url = decodeURI(route['_routerState'].url);\r\n // let url2=route.routeConfig?.path;\r\n // if(route.routeConfig?.path=='')\r\n // {\r\n // url2 = url.split('/').find((c) => c && !c.startsWith('(')) ?? '';\r\n // }\r\n // if(url2=='**'){\r\n // url2=route.url[0].path;\r\n // }\r\n // url2 = '/' + url2;\r\n\r\n return this.portalService.resolveData(route.data.pageData);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\nimport { ActivatedRouteSnapshot, CanActivate, Router, UrlTree } from '@angular/router';\nimport { Observable } from 'rxjs';\nimport { map, tap, withLatestFrom } from 'rxjs/operators';\n\nimport { BarsaApi } from './abstract-classes/barsa-api';\nimport { PortalService } from './services/portal.service';\n\n@Injectable()\nexport class AuthGuard implements CanActivate {\n constructor(private router: Router, protected portalService: PortalService) {}\n\n canActivate(\n activatedRouteSnapshot: ActivatedRouteSnapshot\n\n // state: RouterStateSnapshot\n ): Observable<boolean | UrlTree> | Promise<boolean | UrlTree> | boolean | UrlTree {\n const url = decodeURI((activatedRouteSnapshot as any)._routerState.url);\n let url2 = url.split('/').find((c) => c && !c.startsWith('(')) ?? '';\n url2 = '/' + url2;\n return this.portalService.getPageData(url2, false).pipe(\n map((pageData) => {\n const pageNeedAuthorize = pageData?.HasAuthorize || pageData == null ? true : false;\n const hasAuthorized: boolean =\n (!BarsaApi.LoginFormData.IsAnonymous && BarsaApi.LoginFormData.IsUserLoggedIn) ||\n !pageNeedAuthorize;\n return hasAuthorized;\n }),\n withLatestFrom(this.portalService.portalData$),\n tap(([hasAuthorized, portalData]) => {\n if (!hasAuthorized) {\n const loginPage = portalData?.ChildPageList.MoDataList.find((c) => c.IsLoginRoute);\n const loginRoute = loginPage?.Route || 'login';\n this.router.navigate([loginRoute]);\n }\n }),\n map(([hasAuthorized]) => hasAuthorized)\n );\n }\n}\n","import { Compiler, ComponentRef, Injectable, Injector, NgModuleFactory, Type, ViewContainerRef } from '@angular/core';\nimport { Location } from '@angular/common';\nimport { ActivatedRoute, NavigationEnd, NavigationStart, Route, Router } from '@angular/router';\nimport { Observable, BehaviorSubject, of, from, forkJoin, fromEvent, Subject } from 'rxjs';\nimport {\n tap,\n map,\n concatMap,\n finalize,\n publishReplay,\n refCount,\n exhaustMap,\n distinctUntilChanged,\n startWith,\n debounceTime\n} from 'rxjs/operators';\n\nimport {\n AbbrevationDeviceSize,\n LoginResult,\n MetaobjectDataModel,\n MoForReportModel,\n PageDataModel,\n PortalDataModel,\n ReportModel\n} from '../abstract-classes/models';\nimport { ApiService } from './api.service';\nimport { LogService } from './log.service';\nimport { BarsaApi } from '../abstract-classes/barsa-api';\nimport { BarsaDialogService } from './barsa-dialog.service';\n\nimport {\n ExecuteDynamicCommand,\n getComponentDefined,\n getDeviceIsMobile,\n getDeviceIsTablet,\n getHeaderValue,\n getUniqueId\n} from '../constants';\nimport { PortalPageResolver } from '../resolvers/portal-page.resolver';\nimport { AuthGuard } from '../auth-guard';\nimport { DynamicComponentService } from './dynamic-component.service';\nimport { SafeResourceUrl } from '@angular/platform-browser';\n\ndeclare let AjaxHelper: any;\n\n@Injectable({\n providedIn: 'root'\n})\nexport class PortalService {\n public offsetTop = 0;\n\n loginLoading = new BehaviorSubject<boolean>(false);\n loaded = false;\n formPanels: any = {};\n cachedImages: any = {};\n dateText$: Observable<string>;\n defaultRoute: string;\n cachedPageData: { [key: string]: Observable<PageDataModel> } = {};\n pages: PageDataModel[] = [];\n rtlSource = new BehaviorSubject<boolean>(BarsaApi.LoginFormData.IsRtl);\n userLoggedIn$: Observable<boolean>;\n dictionary: { [key: string]: BehaviorSubject<any> } = {};\n portalDataSource = new BehaviorSubject<PortalDataModel | null>(null);\n portalSettings$: Observable<MetaobjectDataModel>;\n portalData$: Observable<PortalDataModel | null>;\n deviceSize$: Observable<AbbrevationDeviceSize>;\n rtl$: Observable<boolean>;\n dirValue$: Observable<'rtl' | 'ltr'>;\n routeInitialized$: Observable<boolean>;\n _isAnonumousSource = new BehaviorSubject<boolean>(true);\n private _deviceSizeSource = new BehaviorSubject<AbbrevationDeviceSize>(this._initalizeDeviceSize());\n private _loggedInSource = new BehaviorSubject<boolean>(false);\n private routeInitializedSource = new BehaviorSubject<boolean>(false);\n private dateTextSource = new BehaviorSubject<string>('');\n private _navigationStart$ = new BehaviorSubject<NavigationStart | null>(null);\n private _navigationEnd$ = new BehaviorSubject<NavigationEnd | null>(null);\n private _userPortalSettings$ = new BehaviorSubject<MetaobjectDataModel | null>(null);\n private _cssUrlSource = new BehaviorSubject<SafeResourceUrl | null>(null);\n private _cssCustomUrlSource = new BehaviorSubject<SafeResourceUrl | null>(null);\n private _searchTerm$ = new BehaviorSubject<string>('');\n private _windowResize$ = new Subject<void>();\n private _deviceLandscape$ = new BehaviorSubject<boolean>(!window.matchMedia('(orientation: portrait)').matches);\n private _standalone$ = new BehaviorSubject<boolean>(window.matchMedia('(display-mode: standalone)').matches);\n private _documentVisibilitychange$ = new Subject<boolean>();\n constructor(\n private dcm: DynamicComponentService,\n private apiService: ApiService,\n private logService: LogService,\n private dialogService: BarsaDialogService,\n private compiler: Compiler,\n private _router: Router,\n private _location: Location\n ) {\n this.initialize();\n this._initLandscape();\n this._initStandalone();\n this._initVisibilityChange();\n this._isAnonumousSource.next(BarsaApi.LoginFormData.IsAnonymous);\n }\n get documentVisibilitychange$(): Observable<boolean> {\n return this._documentVisibilitychange$.asObservable();\n }\n get standalone$(): Observable<boolean> {\n return this._standalone$.asObservable();\n }\n get landscape$(): Observable<boolean> {\n return this._deviceLandscape$.asObservable();\n }\n get windowResize$(): Observable<void> {\n return this._windowResize$.asObservable().pipe(debounceTime(300));\n }\n get portalData(): PortalDataModel | null {\n return this.portalDataSource.getValue();\n }\n get searchTerm$(): Observable<string> {\n return this._searchTerm$.asObservable();\n }\n get cssUrl$(): Observable<SafeResourceUrl | null> {\n return this._cssUrlSource.asObservable();\n }\n get cssCustomUrl$(): Observable<SafeResourceUrl | null> {\n return this._cssCustomUrlSource.asObservable();\n }\n get userPortalSettings(): MetaobjectDataModel | null {\n return this._userPortalSettings$.getValue();\n }\n get userPortalSettings$(): Observable<MetaobjectDataModel | null> {\n return this._userPortalSettings$.asObservable();\n }\n get deviceSize(): AbbrevationDeviceSize {\n return this._deviceSizeSource.getValue();\n }\n get isAnonymous$(): Observable<boolean> {\n return this._isAnonumousSource.asObservable();\n }\n get navigationEnd$(): Observable<NavigationEnd | null> {\n return this._navigationEnd$.asObservable();\n }\n get navigationStart$(): Observable<NavigationStart | null> {\n return this._navigationStart$.asObservable();\n }\n\n public loadMo(id: string, typedefId: string): Observable<any> {\n return this.apiService.loadPortalPageData(id, typedefId);\n }\n\n setSearchTerm(term: string): void {\n this._searchTerm$.next(term);\n }\n windowResize(): void {\n this._windowResize$.next();\n }\n naviationEnd(event: NavigationEnd): void {\n this._navigationEnd$.next(event);\n }\n naviationStart(event: NavigationStart): void {\n this._navigationStart$.next(event);\n }\n setUserPortalSettings(userPortalSettings: MetaobjectDataModel): void {\n this._userPortalSettings$.next(userPortalSettings);\n }\n setTheme(themeUrl: SafeResourceUrl): void {\n this._cssUrlSource.next(themeUrl);\n this._cssCustomUrlSource.next(themeUrl);\n }\n setData(key, data): void {\n if (!this.dictionary[key]) {\n this.dictionary[key] = new BehaviorSubject<any>(data);\n this.dictionary[key].next(data);\n } else {\n const oldVal = this.dictionary[key].getValue();\n if (oldVal !== data) {\n this.dictionary[key].next(data);\n }\n }\n }\n getData(key, defaultValue: any = null): Observable<any> {\n if (!this.dictionary[key]) {\n this.dictionary[key] = new BehaviorSubject<any>(defaultValue);\n }\n return this.dictionary[key].asObservable();\n }\n getDataSync<T>(key, defaultValue: any = null): T | null {\n if (!this.dictionary[key]) {\n return defaultValue;\n }\n return this.dictionary[key].getValue();\n }\n createForReport(navItem): Observable<any> {\n return from(\n new Promise((resolve, reject) => {\n BarsaApi.Ul.UlvMainCtrlr.CreateForReport({}, navItem, (err, result) => {\n if (err) {\n reject(err);\n } else {\n resolve(result);\n }\n });\n })\n );\n }\n renderUlvMainUi(\n navItem,\n vcr: ViewContainerRef,\n injector: Injector,\n isReportPage: boolean = false\n ): Observable<any> {\n return this.createForReport(navItem).pipe(\n exhaustMap((ulvMainCtrlr) =>\n this.getUlvMainUiComponent(ulvMainCtrlr.Adapter.Control, injector, isReportPage).pipe(\n tap((ulvManiUiComponent) => vcr.insert(ulvManiUiComponent.hostView)),\n map(() => ulvMainCtrlr)\n )\n )\n );\n }\n getUlvMainUiComponent(customUlvMainUi, injector: Injector, isReportPage): Observable<ComponentRef<any>> {\n const customUiSetting = BarsaApi.Common.Util.TryGetValue(customUlvMainUi.Setting, 'CustomUi', null);\n const { moduleName, modulePath, componentName, selector } = getComponentDefined(\n customUlvMainUi,\n customUiSetting\n );\n return this.getComponent(moduleName, modulePath, componentName, selector, injector).pipe(\n map((component) => {\n const componentInstance = component.instance;\n componentInstance.id = customUlvMainUi.id;\n componentInstance.context = customUlvMainUi;\n componentInstance.isReportPage = isReportPage;\n customUlvMainUi.controlUi = componentInstance;\n return component;\n })\n );\n }\n initialize(): void {\n this.deviceSize$ = this._deviceSizeSource.asObservable().pipe(distinctUntilChanged());\n this.portalData$ = this.portalDataSource.asObservable();\n this.rtl$ = this.rtlSource.asObservable().pipe(distinctUntilChanged());\n this.dirValue$ = this.rtl$.pipe(map((isRtl) => (isRtl ? 'rtl' : 'ltr')));\n this.routeInitialized$ = this.routeInitializedSource.asObservable().pipe(distinctUntilChanged());\n\n this.dateText$ = this.dateTextSource.asObservable();\n this.portalSettings$ = this.portalDataSource\n .asObservable()\n .pipe(map((portalData) => (portalData ? portalData.PortalSettings : ({} as any))));\n fromEvent(window, 'resize')\n .pipe(\n startWith(null),\n debounceTime(1000),\n map(() => this._initalizeDeviceSize())\n )\n .subscribe((c) => {\n this._windowResize$.next();\n this._deviceSizeSource.next(c);\n });\n\n this.setUserLoginStatus(BarsaApi.LoginFormData.IsUserLoggedIn);\n\n this.userLoggedIn$ = this._loggedInSource\n .asObservable()\n .pipe(map((isLoggedIn) => isLoggedIn && BarsaApi.LoginFormData.IsAnonymous === false));\n }\n _setDeviceSize(): void {\n const deviceSize = this._initalizeDeviceSize();\n this._deviceSizeSource.next(deviceSize);\n }\n _initalizeDeviceSize(): AbbrevationDeviceSize {\n const _ismobile = getDeviceIsMobile();\n const _isTablet = getDeviceIsTablet();\n let _windoWSize: AbbrevationDeviceSize = 's';\n if (window.innerWidth <= 600) {\n _windoWSize = 's';\n } else if (window.innerWidth > 600 && window.innerWidth <= 992) {\n _windoWSize = 'm';\n } else if (window.innerWidth > 992 && window.innerWidth <= 1200) {\n _windoWSize = 'l';\n } else {\n _windoWSize = 'xl';\n }\n if (_ismobile) {\n return 's';\n }\n if (_isTablet && _windoWSize !== 'l' && _windoWSize !== 'xl') {\n return 'm';\n }\n return _windoWSize;\n }\n compileModule(dependency: LibraryDepenecy): Observable<NgModuleFactory<any>> {\n const module$ = this.getModule(dependency);\n return module$.pipe(\n concatMap((modules) => {\n const moduleFactory = this.getNgModuleFactory(modules, dependency.name);\n return of(moduleFactory);\n })\n );\n }\n getModule(dependency: LibraryDepenecy): Observable<any> {\n const { name, kebabName, umd, exportAs } = dependency;\n const base = `/assets/modules/${kebabName}/bundles`;\n const date = BarsaApi.LoginFormData.abc;\n const path = `${base}/${kebabName}.umd.js?t=${date}`;\n return of(true).pipe(\n concatMap(() => {\n const modules = this.getRegisteredModules(umd, exportAs, name);\n if (modules) {\n return of(modules);\n }\n return this.loadJs$(path).pipe(map(() => this.getRegisteredModules(umd, exportAs, name)));\n })\n );\n }\n\n setValueOnObject(path, index, modules, object): void {\n const splited = path.split('.');\n const prop = splited[index];\n if (typeof object[prop] === typeof undefined) {\n object[prop] = {};\n }\n if (index === splited.length - 1) {\n object[prop] = modules;\n return;\n }\n this.setValueOnObject(path, index + 1, modules, object[prop]);\n }\n\n getComponent(\n moduleName: string,\n modulePath: string,\n componentName: string,\n selector: string,\n parentInjector: Injector\n ): Observable<ComponentRef<any>> {\n return this.dcm.getComponentBySelector(selector, moduleName, parentInjector);\n }\n loadJs$(path): Observable<string> {\n return from(\n new Promise<string>((resolve, reject) => {\n const script = document.createElement('script');\n script.setAttribute('type', 'text/javascript');\n script.setAttribute('src', path);\n script.onload = () => {\n resolve(path);\n };\n document.getElementsByTagName('head')[0].appendChild(script);\n setTimeout(() => {\n reject();\n }, 5000);\n })\n );\n }\n\n ReportExecute(reportName: string): Observable<MoForReportModel> {\n return from(this.ReportExecutePromise(reportName));\n }\n ReportExecutePromise(reportName: string): Promise<MoForReportModel> {\n const ulvParams = {\n Flags: {\n Data: 'True',\n Extra: 'False',\n Search: 'False',\n View: 'False'\n // General:\"False\", // ulvmainctrl does not craete ui control raise error\n },\n ReportName: reportName,\n UsageEnum: 'SystemContainer'\n };\n return new Promise<MoForReportModel>((resolve, reject) => {\n BarsaApi.Bw.ExecuteReport(\n { ulvParams },\n (result: ReportModel) => {\n resolve(result.Data);\n },\n (err) => {\n reject(err);\n }\n );\n });\n }\n addFormPanelCtrlr(id, formpanelCtrlr: any): void {\n this.formPanels[id] = formpanelCtrlr;\n }\n setUserLoginStatus(status: boolean): void {\n this._loggedInSource.next(status);\n }\n extractAllPages(portalData: PortalDataModel | null): void {\n if (!portalData) {\n return;\n }\n portalData.ChildPageList.MoDataList.forEach((pageData) => {\n this.addChildPages(pageData);\n });\n }\n extractAllPages_Old(portalData: PortalDataModel | null): void {\n if (!portalData) {\n return;\n }\n\n const config = this._router.config;\n portalData.ChildPageList.MoDataList.forEach((pageData) => {\n const path = pageData.Route.replace('/', '');\n config.push(\n this.createRoute(pageData, path, pageData.HasAuthorize, pageData.PageModule?.$Caption, null, null)\n );\n if (pageData.IsDefaultRoute) {\n this.defaultRoute = path;\n config.push(this.createRoute(pageData, '', false, portalData.PageModule?.$Caption, path, null));\n }\n\n this.addChildPages(pageData);\n });\n this._router.resetConfig(config);\n if (this._location.path() === '') {\n // this._router.navigate([this.defaultRoute]);\n this._router.navigate(['']);\n }\n // this.routeInitialized();\n }\n ssoLogin(): void {\n AjaxHelper.AjaxRequest(\n '/api/base/ssologin',\n null,\n false,\n () => {\n // console.log(response);\n },\n () => {\n alert('error in sso login.');\n },\n null\n );\n }\n ssoLogout(): void {\n AjaxHelper.AjaxRequest(\n '/api/base/ssologout',\n null,\n false,\n () => {\n // console.log(response);\n },\n () => {\n alert('error in sso logout.');\n },\n null\n );\n }\n addChildPages(pageData: PageDataModel): void {\n this.pages.push(pageData);\n if (!pageData.ChildPageList?.MoDataList?.length) {\n return;\n }\n pageData.ChildPageList.MoDataList.forEach((childPage) => {\n this.addChildPages(childPage);\n });\n }\n /* eslint-disable */\n createRoute(pageData, path, hasAuthorized, moduleName, redirectTo, isDynamicRoute): Route {\n return {};\n }\n createRoute2(\n pageData,\n path,\n hasAuthorized,\n moduleName,\n redirectTo: string | null = null,\n isDynamicRoute: boolean = false\n ): Route {\n let modulePath: string = BarsaApi.Common.Util.GetKebabCase(moduleName);\n const umd = moduleName;\n modulePath = modulePath.substring(1, modulePath.length);\n const dynamicRoute: Route = {};\n dynamicRoute.path = path;\n dynamicRoute.data = { pageData };\n if (!isDynamicRoute) {\n dynamicRoute.resolve = {\n pageData: PortalPageResolver\n };\n }\n if (path === '') {\n dynamicRoute.pathMatch = 'full';\n }\n if (redirectTo) {\n dynamicRoute.redirectTo = redirectTo;\n } else {\n if (hasAuthorized) {\n dynamicRoute.canActivate = [AuthGuard];\n }\n dynamicRoute.loadChildren = () => {\n const dependencies: LibraryDepenecy[] = JSON.parse(pageData.Dependencies); // eval(pageData.Dependencies);\n const pageLibrary = {\n name: moduleName,\n kebabName: modulePath,\n umd,\n exportAs: [moduleName]\n };\n const dependencies$ = from(dependencies).pipe(\n concatMap((dependency: LibraryDepenecy) => this.compileModule(dependency))\n );\n return forkJoin([dependencies$]).pipe(\n concatMap(() => this.getModule(pageLibrary)),\n map((modules) => modules[moduleName + 'Module']),\n tap(() => this.routeInitialized())\n );\n };\n }\n\n return dynamicRoute;\n }\n routeInitialized(): void {\n this.routeInitializedSource.next(true);\n }\n public loginByAnonymous(): Observable<boolean> {\n this.loginLoading.next(true);\n return this.apiService.loginPortal().pipe(\n map((result: LoginResult) => {\n if (typeof result === 'object' && result !== null) {\n this.logService.debug(result);\n window.localStorage.setItem(BarsaApi.LoginAction.token2StorageKey, result.data.sth);\n return true;\n } else {\n return false;\n }\n }),\n finalize(() => {\n this.loginLoading.next(false);\n })\n );\n }\n public getPageData(url: string, isRoot: boolean): Observable<PageDataModel | null> {\n if (isRoot || url === '' || url === '/') {\n return this.portalData$;\n }\n\n if (url.indexOf('?') > -1) {\n url = url.substr(0, url.indexOf('?'));\n }\n if (this.cachedPageData[url]) {\n return this.cachedPageData[url];\n }\n const pageData = this.findPageByRoute(url);\n AjaxHelper.UseCache = !pageData?.HasAuthorize;\n\n this.cachedPageData[url] = this.apiService\n .loadPortalPageData(pageData?.Id, this.portalDataSource.getValue()?.ChildPageList.TypeDefId)\n .pipe(\n map((pageMo) => pageMo.Data.Mo),\n tap((pageMo) => {\n this.addChildRoute(pageMo, pageMo.ChildPageList);\n this.addChildPages(pageMo);\n }),\n publishReplay(1),\n refCount()\n );\n // this.cachedPageData[url] = this.portalData$.pipe(\n // filter((portalData) => portalData != null),\n // map((portalData) => ),\n // concatMap((pageData) => {\n // return\n // }),\n\n // tap(pageData=>{})\n // );\n return this.cachedPageData[url];\n }\n public resolveData(routePageData): Observable<PageDataModel | null> {\n // const pageData = this.pages.find((c) => c.Route === routePageData.Route && c.Module === routePageData.Module);\n const pageData = this.pages.find((c) => c.Route === routePageData.Route);\n if (!pageData) {\n return of(null);\n }\n const id = pageData.Id;\n\n if (this.cachedPageData[id]) {\n return this.cachedPageData[id];\n }\n\n AjaxHelper.UseCache = !pageData?.HasAuthorize;\n this.cachedPageData[id] = this.apiService\n .loadPortalPageData(id, this.portalDataSource.getValue()?.ChildPageList.TypeDefId)\n .pipe(\n map((pageMo) => pageMo.Data.Mo),\n tap((pageMo) => {\n this.addChildRoute(pageMo, pageMo.ChildPageList);\n this.addChildPages(pageMo);\n }),\n publishReplay(1),\n refCount()\n );\n // this.cachedPageData[url] = this.portalData$.pipe(\n // filter((portalData) => portalData != null),\n // map((portalData) => ),\n // concatMap((pageData) => {\n // return\n // }),\n\n // tap(pageData=>{})\n // );\n return this.cachedPageData[id];\n }\n\n addChildRoute(pageMo: MetaobjectDataModel, ChildPageList: MoForReportModel): void {\n return;\n }\n addChildRoute_Old(pageMo: MetaobjectDataModel, ChildPageList: MoForReportModel): void {\n if (!ChildPageList?.MoDataList?.length) {\n return;\n }\n\n const config = this._router.config;\n const parentPath = pageMo.Route.replace('/', '');\n const parentRoute = config.find((c) => (c.path = parentPath));\n const children: Route[] = [];\n if (parentRoute) {\n ChildPageList.MoDataList.forEach((child) => {\n const path = child.Route.replace('/', '');\n const childroute = this.createRoute(\n child,\n path,\n child.HasAuthorize,\n child.PageModule?.$Caption,\n null,\n true\n );\n children.push(childroute);\n });\n // debugger;\n\n (parentRoute as any)._loadedConfig.routes[0].children = children;\n\n this._router.resetConfig(config);\n }\n }\n\n public loadPortalData_Old1(): Observable<PortalDataModel> {\n return this.apiService.loadPortal(BarsaApi.LoginFormData.PortalId, BarsaApi.LoginFormData.PortalTypeDefId).pipe(\n tap((portalSetting) => {\n const portalData = portalSetting.Data.Mo;\n this.extractAllPages(portalData);\n this.portalDataSource.next(portalData);\n }),\n concatMap(() => from(this.loadSystem())),\n tap((all) => this.dateTextSource.next(BarsaApi.LoginFormData.DateText))\n );\n }\n public loadPortalDataSync_Old2(): void {\n const portalSetting = this.apiService.loadPortalSync(\n BarsaApi.LoginFormData.PortalId,\n BarsaApi.LoginFormData.PortalTypeDefId\n );\n const portalData = portalSetting.Data.Mo;\n\n this.extractAllPages(portalData);\n\n this.portalDataSource.next(portalData);\n\n this.loadSystem();\n this.dateTextSource.next(BarsaApi.LoginFormData.DateText);\n }\n public loadPortalDataSync(): void {\n const portalSettingStr = BarsaApi.Bw.RunBlMethod('GetPortal', BarsaApi.LoginFormData.PortalId);\n const portalSetting = BarsaApi.Ext.decode(portalSettingStr);\n const portalData = portalSetting;\n\n this.extractAllPages(portalData);\n\n this.portalDataSource.next(portalData);\n\n this.dateTextSource.next(BarsaApi.LoginFormData.DateText);\n }\n public ExecuteNotificationAction(id: string, actionTitle: string): void {\n BarsaApi.Bw.RunBlMethodAsync({\n Parameters: [id, actionTitle],\n Method: 'ExecuteNotificationAction',\n SuccessFn: (e: { Mo: MetaobjectDataModel; DynamicCommandId: string }) => {\n if (e.DynamicCommandId) {\n ExecuteDynamicCommand({ Id: e.DynamicCommandId }, e.Mo);\n }\n },\n FailFn: (e) => {\n this.logService.error(e);\n }\n });\n }\n public loadUserPortalSetting(): void {\n BarsaApi.Bw.RunBlMethodAsync({\n Parameters: [],\n Method: 'GetUserPortalSettings',\n SuccessFn: (userPortalSetting: MetaobjectDataModel) => {\n this._userPortalSettings$.next(userPortalSetting);\n },\n FailFn: (e) => {\n this.logService.error(e);\n }\n });\n }\n\n ShowFormPanelControl(\n formpanelCtrlr: any,\n router: Router,\n activatedRoute: ActivatedRoute,\n dialogComponent: Type<any>,\n isPage: boolean,\n isReload: boolean = false\n ): void {\n if (!formpanelCtrlr) {\n console.warn('form panel controler is undefined!');\n return;\n }\n const mo = formpanelCtrlr.Mo;\n const headerLayout = BarsaApi.Common.Util.TryGetValue(formpanelCtrlr, 'Setting.View.HeaderLayout', null);\n let isModal = BarsaApi.Common.Util.TryGetValue(formpanelCtrlr, 'Setting.View.ExtraJsonProp.Modal', false);\n const modalSetting = BarsaApi.Common.Util.TryGetValue(\n formpanelCtrlr,\n 'Setting.View.CustomUi.Parameters.ModalSetting',\n null\n );\n if (modalSetting) {\n isModal = true;\n }\n formpanelCtrlr.Setting.IsModal = isModal;\n formpanelCtrlr.IsModal = isModal;\n const breadCrumb = getHeaderValue(headerLayout?.BreadCrumb);\n const queryParams = {\n id: mo.$State === 'New' ? '0' : mo.Id,\n tyid: mo.$TypeDefId,\n tycp: mo.$Caption ? mo.$Caption : null,\n repid: mo.$ReportId,\n vid: formpanelCtrlr?.Setting?.View?.TypeViewId,\n bc: breadCrumb ? breadCrumb : mo.$State === 'New' ? mo.$TypeDefName : mo.$Caption\n };\n const id = getUniqueId(4);\n this.addFormPanelCtrlr(id, formpanelCtrlr);\n if (isModal) {\n this.dialogService.showForm(dialogComponent, {\n ...queryParams,\n formpanelCtrlr\n });\n } else {\n const state = { formPanelCtrlrId: id };\n if (isPage) {\n router.navigate(\n [\n 'form',\n {\n outlets: {\n main: ['show', { ...queryParams, formPanelCtrlrId: id, isFirst: true }]\n }\n }\n ],\n {\n state,\n relativeTo: activatedRoute,\n skipLocationChange: isReload\n }\n );\n } else {\n router.navigate(\n [\n 'popup',\n {\n outlets: {\n main: ['show', { ...queryParams, formPanelCtrlrId: id }]\n }\n }\n ],\n {\n relativeTo: activatedRoute,\n state,\n queryParamsHandling: 'preserve',\n skipLocationChange: isReload\n }\n );\n }\n }\n }\n public loadSystem(id: number = 0): Promise<PortalDataModel> {\n return new Promise((resolve, reject) => {\n BarsaApi.Ul.ApplicationCtrlr._loadSystem(\n id,\n true,\n (data) => {\n resolve(data);\n },\n (err) => {\n reject(err);\n }\n );\n });\n }\n private _initVisibilityChange(): void {\n document.addEventListener('visibilitychange', () => {\n if (document.visibilityState === 'visible') {\n this._documentVisibilitychange$.next(false);\n } else {\n this._documentVisibilitychange$.next(true);\n }\n });\n }\n private _initStandalone(): void {\n window.matchMedia('(display-mode: standalone)').addEventListener('change', (e) => {\n const isMatch = e.matches;\n\n if (isMatch) {\n this._standalone$.next(true);\n } else {\n this._standalone$.next(false);\n }\n });\n }\n private _initLandscape(): void {\n window.matchMedia('(orientation: portrait)').addEventListener('change', (e) => {\n const isMatch = e.matches;\n\n if (isMatch) {\n this._deviceLandscape$.next(false); // portrait\n } else {\n this._deviceLandscape$.next(true); // landscape\n }\n });\n }\n private findPageByRoute(url: string): PageDataModel | null {\n const findedPage = this.pages.find((c) => c.Route === url);\n return findedPage || null;\n }\n private getNgModuleFactory(modules: { [key: string]: any }, moduleName: string): NgModuleFactory<any> {\n const moduleClass = modules[moduleName + 'Module'];\n let moduleFactory: NgModuleFactory<any>;\n if (moduleClass instanceof NgModuleFactory) {\n moduleFactory = moduleClass;\n } else {\n const compiled = this.compiler.compileModuleAndAllComponentsSync(moduleClass);\n moduleFactory = compiled.ngModuleFactory;\n }\n return moduleFactory;\n }\n\n private getRegisteredModules(umd: string, exportAs: string[], moduleName: string): { [key: string]: any } {\n let modules;\n if (umd !== '') {\n modules = window;\n umd.split('.').forEach((c) => {\n if (typeof modules !== typeof undefined) {\n modules = modules[c];\n }\n });\n } else {\n modules = window[moduleName];\n }\n if (exportAs.length > 0 && modules) {\n exportAs.forEach((c) => {\n this.setValueOnObject(c, 0, modules, window);\n });\n }\n return modules;\n }\n}\nexport interface LibraryDepenecy {\n name: string;\n kebabName: string;\n umd: string;\n exportAs: string[];\n}\nexport interface BreadCrumbInfo {\n label: string;\n url: string;\n route: ActivatedRoute;\n}\n","import { Injectable } from '@angular/core';\r\nimport { Observable, Subject } from 'rxjs';\r\n@Injectable()\r\nexport class UiService {\r\n tabSelected = new Subject<any>();\r\n tabSelected$ = this.tabSelected.asObservable();\r\n id: string;\r\n menuToggle$: Observable<boolean>;\r\n\r\n private menuToggleSubject = new Subject<boolean>();\r\n constructor() {\r\n this.menuToggle$ = this.menuToggleSubject.asObservable();\r\n }\r\n toggleMenu(toggle: boolean): void {\r\n this.menuToggleSubject.next(toggle);\r\n }\r\n setTabSelected(val: any): void {\r\n this.tabSelected.next(val);\r\n }\r\n}\r\n","import { PipeTransform, Pipe } from '@angular/core';\nimport { MetaobjectDataModel } from '../abstract-classes/models';\n\n@Pipe({\n name: 'rval'\n})\nexport class MoReportValuePipe implements PipeTransform {\n transform(\n name: string,\n mo: MetaobjectDataModel,\n Columns?: { [key: string]: any; Name: string; Caption: string }[],\n caption?: boolean\n ): any {\n let fieldName = Columns ? Columns.find((c) => c.Name === name || c.Alias === name)?.Name : name;\n if (!fieldName) {\n fieldName = name;\n }\n let val = fieldName ? mo[fieldName] : undefined;\n if (caption) {\n let captionVal = fieldName ? mo[fieldName]?.$Caption : undefined;\n if (typeof captionVal === 'undefined') {\n captionVal = mo[fieldName + '$Caption'];\n }\n if (typeof captionVal === 'undefined') {\n captionVal = val;\n }\n val = captionVal;\n }\n return val;\n }\n}\n","import { PipeTransform, Pipe } from '@angular/core';\r\ndeclare const BigNumber: any;\r\n@Pipe({\r\n name: 'numeral'\r\n})\r\nexport class NumeralPipe implements PipeTransform {\r\n transform(value: string | number, decimalPrecision: number, showThousandSeperator: boolean): string | number {\r\n if (value === '') {\r\n return value;\r\n }\r\n if (!value) {\r\n return '';\r\n }\r\n decimalPrecision = Number(decimalPrecision);\r\n const newVal = value.toString().replace(/,/g, '');\r\n if (typeof decimalPrecision === 'number' && decimalPrecision > 0) {\r\n return new BigNumber(newVal).toFormat(decimalPrecision);\r\n } else if (!showThousandSeperator) {\r\n return value;\r\n }\r\n return new BigNumber(newVal).toFormat(0);\r\n }\r\n floor(num, precision): number {\r\n const factor = Math.pow(10, precision);\r\n const tempNumber = num * factor;\r\n const roundedTempNumber = Math.floor(tempNumber);\r\n\r\n return roundedTempNumber / factor;\r\n }\r\n getValue(value): string {\r\n const newVal = value.toString().replace(/,/g, '');\r\n return newVal;\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { GroupByItem } from '../abstract-classes';\r\nimport { getUniqueId } from '../constants';\r\n\r\n@Pipe({\r\n name: 'groupBy'\r\n})\r\nexport class GroupByPipe implements PipeTransform {\r\n resolveValue(current: any, property: string, $Caption: boolean = false, dot$Caption: boolean = false): any {\r\n const isDate = current[property] instanceof Date;\r\n if (isDate) {\r\n return current[property + '$Caption'].split(' ')[0];\r\n }\r\n if ($Caption) {\r\n return current[property + '$Caption'];\r\n }\r\n if (dot$Caption) {\r\n return current[property].$Caption;\r\n }\r\n return current[property];\r\n }\r\n\r\n transform(collection: any[], property: string): GroupByItem[] {\r\n // prevents the application from breaking if the array of objects doesn't exist yet\r\n if (!collection) {\r\n return [];\r\n }\r\n const resolveValue = this.resolveValue;\r\n const first = collection[0];\r\n if (!(first[property] instanceof Date) && resolveValue(first, property, true)) {\r\n property = property + '$Caption';\r\n }\r\n const groupedCollection = collection.reduce((previous, current) => {\r\n if (typeof resolveValue(current, property) === 'object' && resolveValue(current, property, false, true)) {\r\n if (!previous[resolveValue(current, property, false, true)]) {\r\n previous[resolveValue(current, property, false, true)] = [current];\r\n } else {\r\n previous[resolveValue(current, property, false, true)].push(current);\r\n }\r\n } else {\r\n if (!previous[resolveValue(current, property)]) {\r\n previous[resolveValue(current, property)] = [current];\r\n } else {\r\n previous[resolveValue(current, property)].push(current);\r\n }\r\n }\r\n return previous;\r\n }, {});\r\n\r\n // this will return an array of objects, each object containing a group of objects\r\n return Object.keys(groupedCollection).map((key) => ({\r\n id: getUniqueId(2),\r\n key,\r\n value: groupedCollection[key]\r\n }));\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { BarsaApi } from '../abstract-classes';\n\n@Pipe({\n name: 'bbbTranslate'\n})\nexport class BbbTranslatePipe implements PipeTransform {\n transform(key: string): string {\n if (!key) {\n return key;\n }\n let hasStar = false;\n if (typeof key === 'string' && key.indexOf('*') > 0) {\n hasStar = true;\n }\n if (!key.replace) {\n return key;\n }\n const key2 = key.replace('*', '').trim();\n\n let result = BarsaApi.BBB[key2] ?? key2;\n if (hasStar) {\n result += '*';\n }\n return result;\n }\n}\n","import { PipeTransform, Pipe } from '@angular/core';\nimport { MenuItem } from '../abstract-classes';\nimport { BbbTranslatePipe } from './bbb-translate.pipe';\n\n@Pipe({\n name: 'contextMenu'\n})\nexport class ContextMenuPipe implements PipeTransform {\n constructor(private bbbPipe: BbbTranslatePipe) {}\n transform(commands: MenuItem[] | null, checkList: boolean = false): any[] {\n if (!commands) {\n return [];\n }\n return commands.filter((c) => {\n const isObject = typeof c === 'object';\n if (!isObject) {\n return false;\n }\n const EditText = this.bbbPipe.transform('Edit');\n if (c.text === EditText && c.Command?.IsBuiltin) {\n return false;\n }\n const DeleteText = this.bbbPipe.transform('Delete');\n if (checkList && c.text === DeleteText && c.Command?.IsBuiltin) {\n return false;\n }\n if (c.Command._isVisible === false) {\n return false;\n }\n return true;\n });\n }\n}\n","import { PipeTransform, Pipe } from '@angular/core';\r\nimport { getHeaderValue } from '../constants';\r\n\r\n@Pipe({\r\n name: 'facetValue'\r\n})\r\nexport class HeaderFacetValuePipe implements PipeTransform {\r\n constructor() {}\r\n transform(value: any, type?: string): any {\r\n if (!type) {\r\n return getHeaderValue(value);\r\n }\r\n // rating-indicator && progress-indicator\r\n return Number(value.Value);\r\n }\r\n}\r\n","import { PipeTransform, Pipe } from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'seperatorFix'\r\n})\r\nexport class SeperatorFixPipe implements PipeTransform {\r\n transform(buttons: any[]): any[] {\r\n if (Array.isArray(buttons)) {\r\n buttons?.forEach((c, i) => {\r\n if (typeof c === 'string') {\r\n buttons[i] = { text: '', type: 'seperator' };\r\n }\r\n });\r\n }\r\n return buttons;\r\n }\r\n}\r\n","import { PipeTransform, Pipe } from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'convertToStyle'\r\n})\r\nexport class ConvertToStylePipe implements PipeTransform {\r\n constructor() {}\r\n transform(text: string | undefined): any {\r\n if (text) {\r\n const style = text.replace(/\\r?\\n|\\r/g, '');\r\n const styles: string[] = style.split(';');\r\n styles.splice(styles.length - 1, 1);\r\n let styleString = '{';\r\n styles.forEach((element, index) => {\r\n const keyVal = element.split(':');\r\n styleString += `\"${keyVal[0]}\":\"${keyVal[1]}\"`;\r\n if (index < styles.length - 1) {\r\n styleString += `,`;\r\n }\r\n });\r\n\r\n styleString += '}';\r\n return JSON.parse(styleString);\r\n }\r\n return {};\r\n }\r\n}\r\n","import { PipeTransform, Pipe } from '@angular/core';\nimport { BarsaApi } from '../abstract-classes';\n\n@Pipe({\n name: 'tlbButtons'\n})\nexport class TlbButtonsPipe implements PipeTransform {\n constructor() {}\n transform(buttons: any[] | null, property: string | string[], value?: any | any[]): any[] {\n if (!buttons) {\n return [];\n }\n let lastIsString = false;\n const btns = buttons.filter((btn) => {\n let filter = false;\n if (typeof btn === 'string') {\n if (lastIsString) {\n filter = false;\n } else {\n filter = true;\n lastIsString = true;\n }\n } else if (typeof property === 'string') {\n filter = this.filterBtn(btn, property, value);\n if (lastIsString && filter) {\n lastIsString = false;\n }\n } else if (Array.isArray(property)) {\n property.forEach((prop, i) => {\n if (!filter) {\n filter = this.filterBtn(btn, prop, value[i]);\n }\n });\n if (filter && lastIsString) {\n lastIsString = false;\n }\n }\n\n return filter;\n });\n return btns.length === 1 && typeof btns[0] === 'string' ? [] : btns;\n }\n filterBtn(btn, property, value): boolean {\n const val = BarsaApi.Common.Util.TryGetValue(btn, property);\n if (\n (val === null && (typeof value === 'undefined' || value === null)) ||\n (val === null && typeof value === typeof false && !value)\n ) {\n return !btn.hidden && !btn.Command?.hide;\n }\n return value === val && !btn.hidden && !btn.Command?.hide;\n }\n}\n","import { PipeTransform, Pipe } from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'removeNewline'\r\n})\r\nexport class RemoveNewlinePipe implements PipeTransform {\r\n constructor() {}\r\n transform(text: string | undefined): string | undefined {\r\n if (text) {\r\n return text.replace(/\\r?\\n|\\r/g, '');\r\n }\r\n return text;\r\n }\r\n}\r\n","import { PipeTransform, Pipe } from '@angular/core';\nimport { MetaobjectDataModel } from '../abstract-classes/models';\nimport { getFieldValue } from '../constants';\n\n@Pipe({\n name: 'val'\n})\nexport class MoValuePipe implements PipeTransform {\n constructor() {}\n transform(name: string, mo: MetaobjectDataModel, caption?: boolean): string {\n return getFieldValue(name, mo, caption);\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { BarsaApi } from '../abstract-classes';\r\n\r\n@Pipe({\r\n name: 'filter'\r\n})\r\nexport class FilterPipe implements PipeTransform {\r\n transform(collection: any[], filterArgs: { [key: string]: any }): any[] {\r\n if (!collection || !filterArgs) {\r\n return [];\r\n }\r\n return collection.filter((val) => this.matchFilter(val, filterArgs));\r\n }\r\n matchFilter(value, fitlerArgs): boolean {\r\n const match = Object.keys(fitlerArgs).some((key) => {\r\n const filterValue = fitlerArgs[key];\r\n if (typeof filterValue === typeof true && !filterValue) {\r\n const val = BarsaApi.Common.Util.TryGetValue(value, key);\r\n return !val;\r\n } else {\r\n return BarsaApi.Common.Util.TryGetValue(value, key) === filterValue;\r\n }\r\n });\r\n return match;\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'filterTab'\r\n})\r\nexport class FilterTabPipe implements PipeTransform {\r\n transform(collection: any[]): any[] {\r\n if (!collection) {\r\n return [];\r\n }\r\n return collection.filter((val) => val.Visible !== false);\r\n }\r\n}\r\n","import { PipeTransform, Pipe } from '@angular/core';\r\nimport { MetaobjectDataModel } from '../abstract-classes/models';\r\n\r\n@Pipe({\r\n name: 'rvalConcat'\r\n})\r\nexport class MoReportValueConcatPipe implements PipeTransform {\r\n constructor() {}\r\n transform(names: string[], symbol: string, mo: MetaobjectDataModel, Columns?: any[]): string {\r\n let result = '';\r\n names.forEach((name, i) => {\r\n const fieldName = Columns ? Columns.find((c) => c.Name === name || c.Alias === name)?.Name : name;\r\n if (i > 0) {\r\n result += symbol;\r\n }\r\n const caption = mo[fieldName]?.$Caption;\r\n const caption1 = mo[fieldName + '$Caption'];\r\n if (caption) {\r\n result += caption;\r\n } else if (caption1) {\r\n result += caption1;\r\n } else {\r\n result += mo[fieldName];\r\n }\r\n });\r\n\r\n return result;\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { BarsaApi } from '../abstract-classes';\r\n\r\n@Pipe({\r\n name: 'filterStr'\r\n})\r\nexport class FilterStringPipe implements PipeTransform {\r\n transform(\r\n collection: any[] | undefined | null,\r\n filterArgs: {\r\n [key: string]: any;\r\n mode: 'contains' | 'equals' | 'startWith' | 'endWith';\r\n }\r\n ): any[] {\r\n if (!collection || !filterArgs) {\r\n return [];\r\n }\r\n return collection.filter((val) => this.matchFilter(val, filterArgs));\r\n }\r\n matchFilter(value, filterArgs): boolean {\r\n const match = Object.keys(filterArgs).some((key) => {\r\n const filterVal = filterArgs[key];\r\n if (!filterVal) {\r\n return true;\r\n }\r\n const val: string = BarsaApi.Common.Util.TryGetValue(value, key);\r\n if (!val) {\r\n return false;\r\n }\r\n switch (filterArgs.mode) {\r\n case 'contains':\r\n return val.indexOf(filterVal) > -1;\r\n case 'equals':\r\n return val === filterVal;\r\n case 'startWith':\r\n return val.startsWith(filterVal);\r\n case 'endWith':\r\n return val.endsWith(filterVal);\r\n }\r\n return false;\r\n });\r\n return match;\r\n }\r\n}\r\n","import { Injectable, Pipe, PipeTransform } from '@angular/core';\r\n\r\nexport type SortOrder = 'asc' | 'desc';\r\n\r\n@Injectable()\r\n@Pipe({\r\n name: 'sort'\r\n})\r\nexport class SortPipe implements PipeTransform {\r\n transform(value: any[], sortOrder: SortOrder | string = 'asc', sortKey?: string): any {\r\n sortOrder = sortOrder && (sortOrder.toLowerCase() as any);\r\n\r\n if (!value || (sortOrder !== 'asc' && sortOrder !== 'desc')) {\r\n return value;\r\n }\r\n\r\n let numberArray: any[] = [];\r\n let stringArray: any[] = [];\r\n\r\n if (!sortKey) {\r\n numberArray = value.filter((item) => typeof item === 'number').sort();\r\n stringArray = value.filter((item) => typeof item === 'string').sort();\r\n } else {\r\n numberArray = value\r\n .filter((item) => typeof item[sortKey] === 'number')\r\n .sort((a, b) => a[sortKey] - b[sortKey]);\r\n stringArray = value\r\n .filter((item) => typeof item[sortKey] === 'string')\r\n .sort((a, b) => {\r\n if (a[sortKey] < b[sortKey]) {\r\n return -1;\r\n } else if (a[sortKey] > b[sortKey]) {\r\n return 1;\r\n } else {\r\n return 0;\r\n }\r\n });\r\n }\r\n const sorted = numberArray.concat(stringArray);\r\n return sortOrder === 'asc' ? sorted : sorted.reverse();\r\n }\r\n}\r\n","import { PipeTransform, Pipe } from '@angular/core';\r\nimport { IconFont } from '@fundamental-ngx/core';\r\nimport { BarsaApi } from '../abstract-classes';\r\n\r\n@Pipe({\r\n name: 'barsaIconDict'\r\n})\r\nexport class BarsaIconDictPipe implements PipeTransform {\r\n constructor() {}\r\n transform(type: string, size: string = '128'): IconFont {\r\n const sizeField = size === '128' ? 'FileIconDict128' : 'FileIconDict16';\r\n return BarsaApi.Common.File[sizeField][type];\r\n }\r\n}\r\n","import { PipeTransform, Pipe } from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'fileinfoCount'\r\n})\r\nexport class FileInfoCountPipe implements PipeTransform {\r\n constructor() {}\r\n transform(value: { Files: any[] }): number {\r\n if (!value || !value.Files) {\r\n return 0;\r\n }\r\n return value.Files.filter((c) => !c.IsDeleted).length;\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { LayoutSetting } from '../abstract-classes';\r\n\r\n@Pipe({\r\n name: 'controlUi'\r\n})\r\nexport class ControlUiPipe implements PipeTransform {\r\n transform(caption: string, layout94: LayoutSetting): LayoutSetting | null {\r\n return this.findLayoutItem(caption, layout94);\r\n }\r\n findLayoutItem(caption, layoutItem): LayoutSetting | null {\r\n if (!layoutItem) {\r\n return null;\r\n }\r\n if (layoutItem.Caption === caption) {\r\n return layoutItem;\r\n }\r\n let finded: LayoutSetting | null = null;\r\n layoutItem.items?.forEach((childItem) => {\r\n if (!finded) {\r\n finded = this.findLayoutItem(caption, childItem);\r\n }\r\n });\r\n return finded;\r\n }\r\n}\r\n","import { PipeTransform, Pipe } from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'barsaVisibleValue'\r\n})\r\nexport class VisibleValuePipe implements PipeTransform {\r\n constructor() {}\r\n\r\n transform(object, feild): string {\r\n let outputValue;\r\n if (object[feild]?.$Caption !== undefined) {\r\n outputValue = object[feild].$Caption;\r\n } else {\r\n outputValue = object[feild + '$Caption'] !== undefined ? object[feild + '$Caption'] : object[feild];\r\n }\r\n return outputValue;\r\n }\r\n}\r\n","import { PipeTransform, Pipe } from '@angular/core';\r\nimport { getDateService } from '../constants';\r\nimport { DateService } from '../date-services';\r\nimport { LogService } from '../services/log.service';\r\n\r\n@Pipe({\r\n name: 'dateTimeToCaption'\r\n})\r\nexport class DateTimeToCaptionPipe implements PipeTransform {\r\n _dateService: DateService;\r\n transform(\r\n value: Date | undefined,\r\n format: string,\r\n culture: string,\r\n showDate: boolean | undefined = true,\r\n showTime: boolean | undefined = true\r\n ): string {\r\n if (!value) {\r\n return '';\r\n }\r\n this._dateService = this._dateService ?? getDateService(new LogService(), culture);\r\n let formatPattern = format;\r\n if (!showDate) {\r\n formatPattern = format.split(' ')[1];\r\n } else if (!showTime) {\r\n formatPattern = format.split(' ')[0];\r\n }\r\n if (culture === 'fa-IR') {\r\n formatPattern = formatPattern.replace('YYYY', 'jYYYY');\r\n formatPattern = formatPattern.replace('MM', 'jMM');\r\n formatPattern = formatPattern.replace('DD', 'jDD');\r\n }\r\n return this._dateService.getMoment(value).format(formatPattern);\r\n }\r\n}\r\n","import { PipeTransform, Pipe } from '@angular/core';\r\nimport { LayoutSetting } from '../abstract-classes';\r\n\r\n@Pipe({\r\n name: 'filterToolbarControl'\r\n})\r\nexport class FilterToolbarControlPipe implements PipeTransform {\r\n transform(config: LayoutSetting): LayoutSetting[] {\r\n return config.items.filter(\r\n (c) => c.xtype !== 'Ly.LayoutControl' || (c.xtype === 'Ly.LayoutControl' && c.FieldUi)\r\n ); // filter toolbar button.fieldui is undefined in toolbar layout control.\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\nimport { SortSetting } from '../abstract-classes';\r\nimport { BbbTranslatePipe } from '../pipes/bbb-translate.pipe';\r\nimport { VisibleValuePipe } from './visible-value.pipe';\r\n\r\n@Pipe({\r\n name: 'multipleGroupBy'\r\n})\r\nexport class MultipleGroupByPipe implements PipeTransform {\r\n constructor(private bbbPipe: BbbTranslatePipe, private visibleValuePipe: VisibleValuePipe) {}\r\n\r\n transform(collection: any[], sortSettings: SortSetting[]): any {\r\n const grouped: any = {};\r\n if (sortSettings.length === 0) {\r\n collection.forEach((c) => {\r\n delete c.$Parent;\r\n });\r\n return collection;\r\n }\r\n const groups = sortSettings.map((c) => c.Name);\r\n const getTitle = (mo, fieldName): string => this.visibleValuePipe.transform(mo, fieldName);\r\n collection.forEach((a) => {\r\n groups\r\n .reduce((o, g, i) => {\r\n const groupTitle = getTitle(a, g);\r\n o[groupTitle] = o[groupTitle] || (i + 1 === groups.length ? [] : {});\r\n if (Array.isArray(o[groupTitle])) {\r\n a.$Level = groups.length;\r\n let title = getTitle(a, groups[0]);\r\n let parent = grouped[title];\r\n parent.$Count = (parent.$Count ?? 0) + 1;\r\n for (let j = 1; j < groups.length - 1; j++) {\r\n title = getTitle(a, groups[j]);\r\n parent = parent[title];\r\n parent.$Count = o[groupTitle].length + 1;\r\n }\r\n } else {\r\n const a2 = this.findGroup(groupTitle, a);\r\n o[groupTitle].$Expanded = a2?.$Expanded;\r\n o[groupTitle].$Visibility = a2?.$Visibility;\r\n }\r\n return o[groupTitle];\r\n }, grouped)\r\n .push(a);\r\n });\r\n const arr = [];\r\n this.prepareArr(arr, null, grouped, groups.length, 0);\r\n return arr;\r\n }\r\n\r\n findGroup(groupTitle: string, a: any): any {\r\n if (a.$Group === groupTitle) {\r\n return a;\r\n }\r\n if (a.$Parent) {\r\n return this.findGroup(groupTitle, a.$Parent);\r\n }\r\n }\r\n prepareArr(arr, parent: Group | null, item: Group, maxlevel, level): void {\r\n const keys = Object.keys(item);\r\n item.$Level = level;\r\n keys.forEach((key) => {\r\n if (\r\n key !== '$Count' &&\r\n key !== '$Level' &&\r\n key !== '$Parent' &&\r\n key !== '$Expanded' &&\r\n key !== '$Visibility'\r\n ) {\r\n const row: Group = item[key];\r\n\r\n const newRow: Group = {\r\n $Group: !key ? (!parent ? this.bbbPipe.transform('Empty_Bracket') : key) : key,\r\n $Level: level,\r\n $Count: row.$Count,\r\n $Expanded: row.$Expanded === false || parent?.$Expanded === false ? false : true,\r\n $Parent: parent,\r\n $Children: [],\r\n $Visibility: row.$Visibility === false || parent?.$Visibility === false ? false : true\r\n };\r\n if (newRow.$Parent) {\r\n if (newRow.$Parent?.$Children) {\r\n newRow.$Parent.$Children.push(newRow);\r\n } else {\r\n newRow.$Parent.$Children = [newRow];\r\n }\r\n }\r\n if (Array.isArray(row)) {\r\n if (row.length) {\r\n newRow.$Expanded =\r\n newRow.$Expanded === false || row[0].$Parent?.$Expanded === false ? false : true;\r\n }\r\n arr.push(newRow);\r\n row.forEach((c) => {\r\n c.$Parent = newRow;\r\n c.$Visibility = true;\r\n newRow.$Children.push(c);\r\n });\r\n arr.push(...row);\r\n } else {\r\n arr.push(newRow);\r\n if (level < maxlevel) {\r\n this.prepareArr(arr, newRow, row, maxlevel, level + 1);\r\n }\r\n }\r\n }\r\n });\r\n }\r\n}\r\n\r\nexport interface Group {\r\n $Group: any;\r\n $Level: number;\r\n $Count: number;\r\n $Expanded: boolean;\r\n $Parent: any;\r\n $Children: any[];\r\n $Visibility: boolean;\r\n}\r\n","import { PipeTransform, Pipe } from '@angular/core';\r\nimport { getImagePath } from '../constants';\r\n@Pipe({\r\n name: 'picFieldSrc'\r\n})\r\nexport class PictureFieldSourcePipe implements PipeTransform {\r\n constructor() {}\r\n transform(\r\n value: string | any,\r\n type: string,\r\n moId: string | null,\r\n fieldDefId?: string,\r\n sw?: number,\r\n sh?: number\r\n ): string {\r\n if (typeof value === 'object') {\r\n value = value?.FileId;\r\n }\r\n const url = getImagePath(type, moId, value, fieldDefId, sw, sh);\r\n return url;\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'fioriIcon'\r\n})\r\nexport class FioriIconPipe implements PipeTransform {\r\n transform(value: string, defaultIcon: string): string {\r\n if (!value) {\r\n return defaultIcon;\r\n }\r\n switch (value) {\r\n case 'New':\r\n return 'add';\r\n case 'Edit':\r\n return 'edit';\r\n case 'Delete':\r\n return 'delete';\r\n case 'MoveUp':\r\n return 'arrow-top';\r\n case 'MoveDown':\r\n return 'arrow-bottom';\r\n case 'RefreshReport':\r\n return 'refresh';\r\n case 'AddToList':\r\n return 'chain-link';\r\n case 'RemoveFromList':\r\n return 'broken-link';\r\n case 'ExportToExcel':\r\n return 'broken-link';\r\n case 'WorkflowHistory':\r\n return 'work-history';\r\n\r\n default:\r\n return defaultIcon;\r\n }\r\n }\r\n}\r\n","import { PipeTransform, Pipe } from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'canUploadFile'\r\n})\r\nexport class CanUploadFilePipe implements PipeTransform {\r\n constructor() {}\r\n transform(\r\n value: any[],\r\n maxFileCount: number = 1,\r\n disable: boolean = false,\r\n readonly: boolean = false\r\n // fileCount: number\r\n ): boolean {\r\n let canUpload = true;\r\n if (disable || readonly) {\r\n canUpload = false;\r\n }\r\n\r\n let existFilesCount = 0;\r\n if (value) {\r\n existFilesCount = value.filter((c) => !c.IsDeleted).length;\r\n }\r\n if (maxFileCount !== 0 && maxFileCount <= existFilesCount) {\r\n canUpload = false;\r\n }\r\n return canUpload;\r\n }\r\n}\r\n","import { PipeTransform, Pipe } from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'listCount'\r\n})\r\nexport class ListCountPipe implements PipeTransform {\r\n constructor() {}\r\n transform(list: Array<any>): number {\r\n return list.length;\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { MetaobjectDataModel } from '../abstract-classes';\r\n\r\n@Pipe({\r\n name: 'totalSummary'\r\n})\r\nexport class TotalSummaryPipe implements PipeTransform {\r\n transform(moDataList: MetaobjectDataModel[], columnName: string): number {\r\n return moDataList.reduce(\r\n (curr, prev, currIndex): number =>\r\n currIndex === 0 ? Number(prev[columnName]) : curr + Number(prev[columnName]),\r\n 0\r\n );\r\n }\r\n // Number('') == 0\r\n // Number('a') == NaN it will never be happen because value of\r\n}\r\n","import { Injectable, Pipe, PipeTransform } from '@angular/core';\r\nimport { MetaobjectDataModel, ReportViewColumn } from '../abstract-classes';\r\n\r\n@Injectable()\r\n@Pipe({\r\n name: 'mergeFieldsToColumns'\r\n})\r\nexport class MergeFieldsToColumnsPipe implements PipeTransform {\r\n transform(\r\n columns: ReportViewColumn[],\r\n mergeColumnMoDataList: MetaobjectDataModel[] | undefined\r\n ): ReportViewColumn[] {\r\n if (!mergeColumnMoDataList || !mergeColumnMoDataList.length) {\r\n return columns;\r\n }\r\n return this._mergeFieldsToColumns(columns, mergeColumnMoDataList);\r\n }\r\n protected _mergeFieldsToColumns(\r\n columns: ReportViewColumn[],\r\n mergeColumnMoDataList: MetaobjectDataModel[] | undefined\r\n ): ReportViewColumn[] {\r\n let mergeFieldsToColumns;\r\n if (mergeColumnMoDataList) {\r\n mergeFieldsToColumns = {};\r\n mergeColumnMoDataList\r\n .map((c) => c as MergeCell)\r\n .forEach(\r\n (c) =>\r\n (mergeFieldsToColumns[c.ColumnName] = mergeFieldsToColumns[c.ColumnName]\r\n ? [...mergeFieldsToColumns[c.ColumnName], c.FieldCaption]\r\n : [c.FieldCaption])\r\n );\r\n }\r\n if (mergeFieldsToColumns) {\r\n columns.forEach((c) => {\r\n const columnMerged = mergeFieldsToColumns[c.Alias];\r\n if (columnMerged) {\r\n c.$MergedFieldsToColumn = columnMerged;\r\n }\r\n });\r\n }\r\n return columns;\r\n }\r\n}\r\ninterface MergeCell extends MetaobjectDataModel {\r\n ColumnName: string;\r\n MergeTo: string;\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { ReportViewColumn } from '../abstract-classes';\n\n@Pipe({\n name: 'findColumnByDbName',\n pure: true\n})\nexport class FindColumnByDbNamePipe implements PipeTransform {\n transform(\n columns: ReportViewColumn[],\n name: string,\n secondaryColumns: ReportViewColumn[] = []\n ): ReportViewColumn | undefined {\n return this.findColumn(columns, name, secondaryColumns);\n }\n private findColumn(\n columns: ReportViewColumn[],\n column: string,\n secondaryColumns: ReportViewColumn[]\n ): ReportViewColumn | undefined {\n let columnFound = this._findColumn(columns, column);\n if (!columnFound && secondaryColumns.length) {\n columnFound = this._findColumn(secondaryColumns, column);\n }\n return columnFound;\n }\n private _findColumn(columns: ReportViewColumn[], name: string): ReportViewColumn | undefined {\n return columns.find((column) => column.Name === name || column.Caption === name);\n }\n}\n","import { PipeTransform, Pipe } from '@angular/core';\r\nimport { ReportViewColumn } from '../abstract-classes';\r\n\r\n@Pipe({\r\n name: 'filterColumnsByDetails'\r\n})\r\nexport class FilterColumnsByDetailsPipe implements PipeTransform {\r\n transform(columns: ReportViewColumn[], detailsColumns: ReportViewColumn[]): ReportViewColumn[] {\r\n if (!columns?.length) {\r\n return columns;\r\n }\r\n return columns.filter(\r\n (column) =>\r\n detailsColumns.map((c) => c.Caption).indexOf(column.Caption) === -1 &&\r\n detailsColumns.map((c) => c.Name).indexOf(column.Name) === -1\r\n );\r\n }\r\n}\r\n","import { PipeTransform, Pipe } from '@angular/core';\nimport { PagingSetting } from '../abstract-classes';\n@Pipe({\n name: 'moInfoUlvPaging'\n})\nexport class MoInfoUlvPagingPipe implements PipeTransform {\n transform(ulvAdapterPaging?: PagingSetting, ulvUiPaging?: PagingSetting): PagingSetting | undefined {\n return ulvAdapterPaging ? ulvAdapterPaging : ulvUiPaging;\n }\n}\n","import { PipeTransform, Pipe } from '@angular/core';\nimport { MoInfoUlvPagingPipe } from './mo-info-ulv-paging.pipe';\nimport { MetaobjectDataModel, PagingSetting } from '../abstract-classes';\n@Pipe({\n name: 'moInfoUlvMoList'\n})\nexport class MoInfoUlvMoListPipe implements PipeTransform {\n constructor(private _moInfoUlvPaging: MoInfoUlvPagingPipe) {}\n transform(\n loading: boolean,\n isDataLoadedFirstTime: boolean,\n ulvAdapterMoDataList: MetaobjectDataModel[] | undefined,\n ulvUiMoDataList: MetaobjectDataModel[] | undefined,\n ulvAdapterPaging: PagingSetting | undefined,\n ulvUiPaging: PagingSetting | undefined\n ): any {\n const result: MetaobjectDataModel[] =\n loading && !isDataLoadedFirstTime\n ? [{ Id: '-1', $Caption: '', $isLoading: true }]\n : ulvAdapterMoDataList\n ? ulvAdapterMoDataList?.length === 0\n ? [{ Id: '-1', $Caption: '', isEmpty: true }]\n : ulvAdapterMoDataList\n : ulvUiMoDataList\n ? ulvUiMoDataList\n : [];\n if (result.length > 0) {\n const paging = ulvAdapterPaging ? ulvAdapterPaging : ulvUiPaging;\n result.forEach((c) => {\n c.$__Index = undefined;\n c.$__IsFirst = undefined;\n c.$__IsLast = undefined;\n });\n result.forEach((c, index) => {\n c.$__Index = index;\n if (index === 0) {\n c.$__IsFirst = true;\n c.$IsChecked = true;\n }\n if (index === result.length - 1) {\n c.$__IsLast = true;\n }\n });\n if (paging?.HasPaging) {\n if (paging.Page + 1 < paging.TotalPages) {\n if (!result[result.length - 1].$LoadMore) {\n result.push({ $Caption: 'More', $LoadMore: true, Id: '-1' });\n }\n } else {\n if (result[result.length - 1].$LoadMore) {\n result.splice(result.length - 1, 1);\n }\n }\n }\n }\n return result;\n }\n}\n","import { PipeTransform, Pipe } from '@angular/core';\n@Pipe({\n name: 'reverse'\n})\nexport class ReversePipe implements PipeTransform {\n transform(value, doReverse: boolean = true): any[] {\n if (!doReverse) {\n return value;\n }\n if (!value) {\n return [];\n }\n return value.reverse();\n }\n}\n","import { PipeTransform, Pipe } from '@angular/core';\nimport { EjrayOlgo, MetaobjectDataModel, MoForReportModel, ReportViewColumn } from '../abstract-classes/models';\nimport { FindColumnByDbNamePipe } from './find-column-by-db-name.pipe';\n\n@Pipe({\n name: 'columnCustomUi'\n})\nexport class ColumnCustomUiPipe implements PipeTransform {\n constructor(private _findColumnByDbNamePipe: FindColumnByDbNamePipe) {}\n transform(column: ReportViewColumn, columnComponents: MoForReportModel | null): EjrayOlgo | null {\n if (!columnComponents) {\n return null;\n }\n let component = null;\n columnComponents.MoDataList.forEach((c: MetaobjectDataModel) => {\n if (!component) {\n const columnItem = this._findColumnByDbNamePipe.transform([column], c.Title);\n if (columnItem) {\n component = c.Component;\n }\n }\n });\n return component;\n }\n}\n","import { PipeTransform, Pipe } from '@angular/core';\nimport { DomSanitizer, SafeHtml } from '@angular/platform-browser';\n\n@Pipe({\n name: 'sanitizeText'\n})\nexport class SanitizeTextPipe implements PipeTransform {\n constructor(private _domSanitizer: DomSanitizer) {}\n transform(text: string): SafeHtml {\n return this._domSanitizer.bypassSecurityTrustHtml(text);\n }\n}\n","import { Injectable, Pipe, PipeTransform } from '@angular/core';\nimport { MetaobjectDataModel, ReportViewColumn } from '../abstract-classes';\n\n@Injectable()\n@Pipe({\n name: 'columnCustomComponent'\n})\nexport class ColumnCustomComponentPipe implements PipeTransform {\n transform(\n columns: ReportViewColumn[],\n customComponentMoDataList: MetaobjectDataModel[] | undefined\n ): ReportViewColumn[] {\n if (!customComponentMoDataList || !customComponentMoDataList.length) {\n return columns;\n }\n return this._setCustomComponentToColumns(columns, customComponentMoDataList);\n }\n protected _setCustomComponentToColumns(\n columns: ReportViewColumn[],\n customComponentMoDataList: MetaobjectDataModel[] | undefined\n ): ReportViewColumn[] {\n let allCustomComponents;\n if (customComponentMoDataList) {\n allCustomComponents = {};\n customComponentMoDataList\n .map((c) => c as MergeCell)\n .forEach((c) => (allCustomComponents[c.Title] = c.Component));\n }\n if (allCustomComponents) {\n columns.forEach((c) => {\n const customComponent = allCustomComponents[c.Alias];\n if (customComponent) {\n c.$CustomComponent = customComponent;\n }\n });\n }\n return columns;\n }\n}\ninterface MergeCell extends MetaobjectDataModel {\n Title: string;\n Component: MetaobjectDataModel;\n}\n","import { PipeTransform, Pipe } from '@angular/core';\nimport { MetaobjectDataModel, ReportViewColumn } from '../abstract-classes/models';\n\n@Pipe({\n name: 'columnValue'\n})\nexport class ColumnValuePipe implements PipeTransform {\n transform(column: ReportViewColumn, mo: MetaobjectDataModel): any {\n const colName = column.Name;\n const data = mo[colName];\n let caption = mo[colName + '$Caption'];\n\n if (typeof data === 'object' && data) {\n if (data.$Caption) {\n caption = data.$Caption;\n }\n if (column.FieldTypeId.toString() === '6' && column.Tag === 'Image') {\n // Column is enum with image\n caption = '';\n }\n }\n if (!caption && typeof data !== 'object') {\n caption = data;\n }\n\n if (column.OnlyImage || (column.FieldTypeId.toString() === '6' && column.Tag === 'Image')) {\n caption = '';\n }\n return caption || '';\n }\n}\n","import { PipeTransform, Pipe } from '@angular/core';\nimport { MetaobjectDataModel, ReportViewColumn } from '../abstract-classes/models';\n\n@Pipe({\n name: 'columnIcon'\n})\nexport class ColumnIconPipe implements PipeTransform {\n transform(column: ReportViewColumn, mo: MetaobjectDataModel): any {\n const colName = column.Name;\n const data = mo[colName];\n let icon = mo[colName + '$Icon'];\n\n if (typeof data === 'object' && data) {\n icon = data.$Icon;\n }\n return icon;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { BehaviorSubject, combineLatest, Observable, of, Subject, Subscription } from 'rxjs';\nimport {\n delay,\n distinctUntilChanged,\n filter,\n map,\n shareReplay,\n switchMap,\n takeUntil,\n tap,\n withLatestFrom\n} from 'rxjs/operators';\nimport {\n BarsaApi,\n MenuItem,\n MetaobjectDataModel,\n PagingSetting,\n SearchPanelSettings,\n GeneralControlInfoModel,\n ColumnInfoType,\n FormSetting,\n ShareButtonsChoiceDef,\n ChoiceDef,\n CartableTemplateKey\n} from '../abstract-classes';\nimport {\n executeUlvCommandHandler,\n genrateInlineMoId,\n getControlList,\n GetDefaultMoObjectInfo,\n getNewMoGridEditor\n} from '../constants';\nimport { BbbTranslatePipe } from '../pipes';\nimport { ApiService } from './api.service';\n@Injectable()\nexport class UlvMainService {\n moDataListSource = new BehaviorSubject<MetaobjectDataModel[]>([]);\n context$: Subscription;\n viewer$: Observable<any>;\n conditionalFormats$: Observable<any>;\n hideToolbar$: Observable<boolean>;\n mask$: Observable<boolean>;\n viwerMask$: Observable<boolean>;\n visible$: Observable<boolean>;\n enable$: Observable<boolean>;\n readonly$: Observable<boolean>;\n menuItems$: Observable<MenuItem[]>;\n title$: Observable<{ text: string; image: string }>;\n formPanelControlShowWindow$: Observable<{ formpanelControl: any; hasParentMo: boolean }>;\n searchPanelUi$: Observable<any>;\n pagingSetting$: Observable<PagingSetting | null>;\n toolbarButtons$: Observable<any[]>;\n destroy$: Observable<void>;\n moDataList$: Observable<MetaobjectDataModel[]>;\n reportId$: Observable<string>;\n allowInlineEdit$: Observable<boolean>;\n inlineEditMode$: Observable<boolean>;\n onlyInlineEdit$: Observable<boolean>;\n context: any;\n openSearchPanelHiddenSettings$: Observable<void>;\n openSearchFilesManage$: Observable<void>;\n searchPanelMoChanged$: Observable<boolean>;\n allSearchPanelSettings$: Observable<SearchPanelSettings[]>;\n layoutInfo$: Observable<any>;\n selectedSearchPanelSettingsId$: Observable<string>;\n selectedSearchPanelSettings$: Observable<SearchPanelSettings | undefined>;\n newInlineEditMo$: Observable<MetaobjectDataModel | null>;\n _cartableTemplates$ = new BehaviorSubject<{ [key: string]: FormSetting }>({});\n _cartableChildsMo$ = new BehaviorSubject<{ [key: string]: MetaobjectDataModel } | null>({});\n selectedCount$: Observable<number>;\n\n private _layoutInfoSource = new Subject<any>();\n private _contextSource = new Subject<any>();\n private _inDialog$ = new BehaviorSubject<boolean>(false);\n private _isMultiSelect$ = new BehaviorSubject<boolean>(false);\n private _fullscreen$ = new BehaviorSubject<boolean>(false);\n private _conditionalFormatsSource = new BehaviorSubject<any[]>([]);\n private _reportSource = new BehaviorSubject<any>(null);\n private _viewerControlSource = new BehaviorSubject<any>(null);\n private _hideToolbarSource = new BehaviorSubject<boolean>(true);\n private _onDestroy$ = new Subject<void>();\n private _maskSource = new BehaviorSubject<boolean>(false);\n private _viewerMaskSource = new BehaviorSubject<boolean>(false);\n private _visibleSource = new BehaviorSubject<boolean>(true);\n private _enableSource = new BehaviorSubject<boolean>(true);\n private _readonlySource = new BehaviorSubject<boolean>(false);\n private _menuItemsSource = new BehaviorSubject<MenuItem[]>([]);\n private _onlyInlineEditSource = new BehaviorSubject<boolean>(false);\n private _inlineEditModeSource = new BehaviorSubject<boolean>(false);\n private _allowInlineEditSource = new BehaviorSubject<boolean>(false);\n private _cartableKeySeperator = '@';\n private _titleSource = new BehaviorSubject<{ text: string; image: string }>({\n text: '',\n image: ''\n });\n private _formPanelControlShowWindowSource = new Subject<{\n formpanelControl: any;\n hasParentMo: any;\n }>();\n private _searchPanelUiSource = new BehaviorSubject<any>(null);\n\n private _pagingSettingSource = new BehaviorSubject<PagingSetting | null>(null);\n private _toolbarButtonsSource = new BehaviorSubject<any[]>([]);\n private _toolbarButtonsWorkflowButtons = new BehaviorSubject<any[]>([]);\n private _destroySource = new Subject<void>();\n private _firstApplyAutomatically = true;\n private _controlInfosMetaobject: GeneralControlInfoModel[] = [];\n private _selectedSearchPanelSettingsIdSource = new BehaviorSubject<string>('');\n private _defaultSearchPanelSettingsSource = new Subject<SearchPanelSettings>();\n private _allSearchPanelSettingsSource = new BehaviorSubject<SearchPanelSettings[]>([]);\n private _openSearchPanelHiddenSettingsSource = new Subject<void>();\n private _openSearchFilesManageSource = new Subject<void>();\n private _searchPanelMoChangedSource = new BehaviorSubject<boolean>(false);\n private _newInlineEditMoSource = new BehaviorSubject<MetaobjectDataModel | null>(null);\n private _hideSearchapanelSource = new BehaviorSubject<boolean>(false);\n private _workflowShareButtons: ShareButtonsChoiceDef[] = [];\n\n constructor(private _bbbPipe: BbbTranslatePipe, private _apiService: ApiService) {\n this.context$ = this._contextSource\n .asObservable()\n .pipe(\n takeUntil(this._onDestroy$),\n tap((context) => (this.context = context)),\n tap((context) => this._initialize(context)),\n tap((context) => this._addEventListener(context))\n )\n .subscribe();\n this.newInlineEditMo$ = this._newInlineEditMoSource.asObservable().pipe(takeUntil(this._onDestroy$));\n this.viewer$ = this._viewerControlSource.asObservable().pipe(takeUntil(this._onDestroy$));\n this.conditionalFormats$ = this._conditionalFormatsSource.asObservable().pipe(takeUntil(this._onDestroy$));\n this.hideToolbar$ = this._hideToolbarSource.asObservable().pipe(takeUntil(this._onDestroy$));\n this.mask$ = this._maskSource.asObservable().pipe(takeUntil(this._onDestroy$));\n this.viwerMask$ = this._viewerMaskSource.asObservable().pipe(takeUntil(this._onDestroy$));\n this.visible$ = this._visibleSource.asObservable().pipe(takeUntil(this._onDestroy$));\n this.enable$ = this._enableSource.asObservable().pipe(takeUntil(this._onDestroy$));\n this.readonly$ = this._readonlySource.asObservable().pipe(takeUntil(this._onDestroy$));\n this.menuItems$ = this._menuItemsSource.asObservable().pipe(\n takeUntil(this._onDestroy$),\n filter((items) => items?.length > 0),\n map((items) => items.filter((c) => c.itemId !== 'ExportToExcel' && c.itemId !== 'Delete'))\n );\n this.title$ = this._titleSource.asObservable().pipe(takeUntil(this._onDestroy$));\n this.formPanelControlShowWindow$ = this._formPanelControlShowWindowSource\n .asObservable()\n .pipe(takeUntil(this._onDestroy$));\n this.searchPanelUi$ = this._searchPanelUiSource.asObservable().pipe(\n takeUntil(this._onDestroy$),\n tap((searchPanel) => this._addDefaultSearchPanelSettings(searchPanel))\n );\n this.openSearchPanelHiddenSettings$ = this._openSearchPanelHiddenSettingsSource.asObservable();\n this.pagingSetting$ = this._pagingSettingSource.asObservable().pipe(takeUntil(this._onDestroy$));\n this.toolbarButtons$ = this._toolbarButtonsSource.asObservable().pipe(\n withLatestFrom(this._toolbarButtonsWorkflowButtons.asObservable()),\n takeUntil(this._onDestroy$),\n map(([c, wfBtns]) =>\n !c\n ? []\n : [\n ...c.map((d) => ({\n ...d,\n hideText: d.Command?.IsBuiltin && d.itemId !== 'New' ? true : false\n })),\n ...wfBtns\n ]\n ),\n map((c) =>\n !c ? [] : [...c.filter((d) => !d.Command?.IsBuiltin), ...c.filter((d) => d.Command?.IsBuiltin)]\n )\n );\n this.destroy$ = this._destroySource.asObservable().pipe(tap(() => this._unscubscribeContext()));\n this.moDataList$ = this.moDataListSource.asObservable().pipe();\n this.selectedCount$ = this.moDataList$.pipe(map((items) => items.filter((d) => d.$IsChecked).length));\n this.reportId$ = this._reportSource.asObservable().pipe(map((report) => report?.Id));\n\n this.allowInlineEdit$ = this._allowInlineEditSource.asObservable();\n this.inlineEditMode$ = this._inlineEditModeSource.asObservable();\n this.onlyInlineEdit$ = this._onlyInlineEditSource.asObservable();\n this.openSearchFilesManage$ = this._openSearchFilesManageSource.asObservable();\n this.searchPanelMoChanged$ = this._searchPanelMoChangedSource.asObservable().pipe(distinctUntilChanged());\n this.layoutInfo$ = this._layoutInfoSource.asObservable().pipe(shareReplay(1));\n this.allSearchPanelSettings$ = combineLatest([\n this._allSearchPanelSettingsSource.asObservable(),\n this._defaultSearchPanelSettingsSource.asObservable()\n ]).pipe(\n map(([allSettings, defaultSettings]) => {\n if (defaultSettings && allSettings) {\n defaultSettings.IsDefault = !allSettings.some((c) => c.IsDefault);\n allSettings = [defaultSettings, ...allSettings];\n }\n return allSettings;\n }),\n delay(0),\n shareReplay(1)\n );\n this.selectedSearchPanelSettingsId$ = this._selectedSearchPanelSettingsIdSource\n .asObservable()\n .pipe(distinctUntilChanged());\n this.selectedSearchPanelSettings$ = combineLatest([\n this.selectedSearchPanelSettingsId$,\n this.allSearchPanelSettings$\n ]).pipe(\n map(([id, settings]) => settings?.find((c) => c.Id === id)),\n shareReplay(1)\n );\n }\n get inDialog$(): Observable<boolean> {\n return this._inDialog$.asObservable();\n }\n get isMultiSelect$(): Observable<boolean> {\n return this._isMultiSelect$.asObservable();\n }\n get fullscreen$(): Observable<boolean> {\n return this._fullscreen$.asObservable();\n }\n get cartableChildsMo$(): Observable<{ [key: string]: MetaobjectDataModel } | null> {\n return this._cartableChildsMo$.asObservable();\n }\n get cartableTemplates$(): Observable<{ [key: string]: FormSetting } | null> {\n return this._cartableTemplates$.asObservable();\n }\n get searchPanelUi(): any {\n return this._searchPanelUiSource.getValue();\n }\n get reportId(): string | undefined {\n return this._reportSource.getValue()?.Id;\n }\n get allSearchPanelSettings(): SearchPanelSettings[] {\n return this._allSearchPanelSettingsSource.getValue();\n }\n get hideSearchpanel$(): Observable<boolean> {\n return this._hideSearchapanelSource.asObservable().pipe(distinctUntilChanged());\n }\n get hideSearchpanel(): boolean {\n return this._hideSearchapanelSource.getValue();\n }\n executeToolbarButton(itemId: string, options?: any): void {\n const buttons = this._toolbarButtonsSource.getValue();\n if (!buttons.length) {\n return;\n }\n const btn = buttons.find((c) => c.itemId === itemId);\n if (btn) {\n executeUlvCommandHandler(btn, options);\n }\n }\n addWorkflowButtonsInToolbar(e: ShareButtonsChoiceDef): void {\n const arrOfShareButtons = this._createWorkflowShareButtons(e);\n const value = arrOfShareButtons.map((c) => ({\n icon: '',\n text: c,\n itemId: c,\n Data: null,\n $ShareWorkflowButtons: true,\n Command: { _isVisible: true, _isEnable: true, JsonExtraProp: { Design: 'attention' } },\n handler: (d) => this.onWorkflowButtonInToolbarClick(d),\n IsBuiltin: false\n }));\n this._toolbarButtonsWorkflowButtons.next(value);\n }\n onWorkflowButtonInToolbarClick(shareButton: { text: string }): void {\n BarsaApi.Bw.Msg.OKCancel('آیا از تایید موارد کارتابل مطمئن هستید؟', 'تایید', (res) => {\n if (res === 'ok') {\n const params = this._workflowShareButtons.map((c) => ({\n mo: c.mo,\n choiceDef: c.choiceList.find((d) => d.Title === shareButton.text)\n }));\n this._setWorkflowState('Pending', params);\n\n BarsaApi.Common.Ajax.GetServerData(\n 'Workflow94.OnGroupOfChoiceDefsSelect',\n { parameter: { DataList: params } },\n () => {\n this._setWorkflowState('Success', params);\n }, // success\n () => {\n this._setWorkflowState('Failed', params, 'متاسفانه عملیات ناموفق بود.');\n }, // failure\n null,\n this\n );\n }\n });\n }\n _setWorkflowState(\n state: string,\n param: { mo: MetaobjectDataModel; choiceDef: ChoiceDef | undefined }[],\n errorText?: string\n ): void {\n const moDataList = this.moDataListSource.getValue();\n moDataList.forEach((c) => {\n const mo = param.find((d) => c.Id === d.mo.Id);\n if (mo) {\n c.$WorkflowState = { state, errorText };\n }\n });\n this.reSetMoDataList(moDataList);\n }\n setTitle(title: string): void {\n this._titleSource.next({ text: title, image: '' });\n }\n toggleHideSearchpanel(val?: boolean): void {\n this._hideSearchapanelSource.next(typeof val !== 'undefined' ? val : !this._hideSearchapanelSource.getValue());\n }\n setContext(context): void {\n this._contextSource.next(context);\n }\n setInDialog(val: boolean): void {\n this._inDialog$.next(val);\n }\n setIsMultiSelect(val: boolean): void {\n this._isMultiSelect$.next(val);\n }\n setFullscreen(val: boolean): void {\n this._fullscreen$.next(val);\n }\n\n createNewInlineMo(isChecked: boolean): MetaobjectDataModel {\n const context = this.context;\n const formSetting = context.Setting.FormTemplate;\n const typeDefId = context.Setting.Extra.Report.TypeDefId;\n const newMo = getNewMoGridEditor(formSetting, typeDefId) as MetaobjectDataModel;\n newMo.Id = genrateInlineMoId();\n newMo.$IsChecked = isChecked;\n newMo.$NewInlineMo = true;\n if (this._isComposite(context)) {\n const relation = BarsaApi.Common.Util.TryGetValue(this.context.Setting, 'Extra.Relation');\n newMo[relation.ParentFdName] = relation.ParentMoId;\n }\n // this._newInlineEditMoSource.next(newMo);\n return newMo;\n }\n setLayoutInfo(layoutInfo): void {\n this._layoutInfoSource.next(layoutInfo);\n }\n\n destroy(): void {\n this._onDestroy$.next();\n this._unscubscribeContext();\n }\n\n pageSizeChanged(pageIndex): void {\n this.context.fireEvent('PageChange', this.context, pageIndex);\n }\n\n pageChanged(pageIndex): void {\n this.context.currentPage = pageIndex;\n this.context.fireEvent('PageChange', this.context, pageIndex);\n }\n\n reSetMoDataList(moDataList?: MetaobjectDataModel[]): void {\n const newMoDataList = moDataList ?? this.moDataListSource.getValue();\n this._moDataListChanged([...newMoDataList]);\n if (!this.context.Setting?.IsCartableReport) {\n return;\n }\n const keyOfCatableTemplates = new Set<string>();\n newMoDataList.forEach((c) => {\n const tpdfId = c.RelatedMo?.$TypeDefId;\n if (tpdfId) {\n const key = `${tpdfId}${this._cartableKeySeperator}${c.CartableSettings?.Id || '0'}`;\n keyOfCatableTemplates.add(key);\n }\n });\n if (keyOfCatableTemplates.size > 0) {\n this._loadCartableTemplate(keyOfCatableTemplates);\n }\n }\n // Search Setting Manager\n clearSearch(): void {\n const searchPanelUi = this.searchPanelUi;\n const fieldUi = searchPanelUi._dictFieldUi.$Search ?? searchPanelUi._dictFieldUi.جستجو;\n fieldUi.fireEvent('ClearClick');\n }\n search(): void {\n const searchPanelUi = this.searchPanelUi;\n const fieldUi = searchPanelUi._dictFieldUi.$Search ?? searchPanelUi._dictFieldUi.جستجو;\n fieldUi.fireEvent('SearchClick');\n }\n\n getValueInlineEdit(): boolean {\n return this._inlineEditModeSource.getValue();\n }\n\n getAllowInlineEdit(): boolean {\n return this._allowInlineEditSource.getValue();\n }\n setInlineEdit(value: boolean): void {\n this._inlineEditModeSource.next(value);\n }\n\n openSearchFieldsHiddenSettings(): void {\n this._openSearchPanelHiddenSettingsSource.next();\n }\n\n openSearchFilesManage(): void {\n this._openSearchFilesManageSource.next();\n }\n\n searchPanelMoChanged(change: boolean): void {\n this._searchPanelMoChangedSource.next(change);\n }\n\n loadSearchPanelSettings(): void {\n if (this.context.FormPanelUi) {\n return;\n }\n this.reportId$\n .pipe(\n takeUntil(this._onDestroy$),\n tap((reportId) => this._loadSearchPanelSettings(reportId))\n )\n .subscribe();\n }\n\n addSearchPanelSettings(searchPanelSettings: SearchPanelSettings): void {\n const allSearchPanelSettings = this._allSearchPanelSettingsSource.getValue();\n allSearchPanelSettings.push(searchPanelSettings);\n this._allSearchPanelSettingsSource.next(allSearchPanelSettings);\n }\n saveSearchPanelSetting(selectedSearchPanelSettings: SearchPanelSettings): void {\n const searchMo = this.getSearchPanelMo();\n const fieldsSetting = this.getSearchPanelFieldsSetting();\n if (!selectedSearchPanelSettings) {\n return;\n }\n selectedSearchPanelSettings.SearchMo = JSON.stringify(searchMo);\n selectedSearchPanelSettings.FieldsSetting = JSON.stringify(fieldsSetting);\n BarsaApi.Bw.RunBlMethod(\n 'SaveSearchPanelSettings',\n new BarsaApi.Common.MetaObjectWeb({\n Id: selectedSearchPanelSettings.Id,\n $Caption: selectedSearchPanelSettings.Title,\n ReportId: selectedSearchPanelSettings.Report?.Id,\n Title: selectedSearchPanelSettings.Title,\n IsDefault: selectedSearchPanelSettings.IsDefault,\n IsPublic: selectedSearchPanelSettings.IsPublic,\n ApplyAutomatically: selectedSearchPanelSettings.ApplyAutomatically,\n HideSearchPanel: selectedSearchPanelSettings.HideSearchPanel,\n SearchMo: selectedSearchPanelSettings.SearchMo,\n FieldsSetting: selectedSearchPanelSettings.FieldsSetting\n }),\n true\n );\n this.searchPanelMoChanged(false);\n }\n\n applySearchPanelSettings(searchPanelSettings: SearchPanelSettings | undefined): void {\n const searchPanelUi = this.searchPanelUi;\n if (!searchPanelSettings) {\n return;\n }\n if (this._firstApplyAutomatically && searchPanelSettings.IsPrimary) {\n this._firstApplyAutomatically = false;\n return;\n }\n this._firstApplyAutomatically = false;\n\n this.resetSearchPanelSettings(searchPanelUi);\n if (searchPanelSettings.SearchMo) {\n const searchMo = JSON.parse(searchPanelSettings.SearchMo);\n Object.keys(searchMo).forEach((c) => {\n const field = searchPanelUi._dictFieldUi[c];\n if (field && c.indexOf('$') === -1) {\n field.SetValue(searchMo[c]);\n searchPanelUi.Mo.SetFValue(c, searchMo[c]);\n }\n });\n if (searchPanelSettings.IsPrimary && !searchPanelUi.Setting.ImmediateExecute) {\n this.searchPanelMoChanged(false);\n return;\n }\n if (searchPanelSettings.ApplyAutomatically) {\n this.search();\n }\n }\n // TODO set hidden fields\n if (searchPanelSettings.FieldsSetting) {\n const settings = JSON.parse(searchPanelSettings.FieldsSetting);\n this.setAndApplySearchPanelSettingFieldsSetting(\n typeof settings === 'string' ? JSON.parse(settings) : settings\n );\n }\n this.searchPanelMoChanged(false);\n }\n getSearchPanelMo(): MetaobjectDataModel {\n return this.searchPanelUi.Mo;\n }\n getSearchPanelFieldsSetting(): Array<Partial<GeneralControlInfoModel>> {\n const searchPanelUi = this.searchPanelUi;\n const fields: Array<GeneralControlInfoModel> = searchPanelUi.Setting.View.ControlInfo.filter(\n (c) => c.ControlName !== '$Search' && c.ControlName !== 'جستجو'\n );\n const fieldsSetting = fields.map((c) => ({\n Name: c.ControlName,\n Caption: c.ControlFieldCaptionTranslated,\n Hidden: searchPanelUi._dictFieldUi[c.ControlName].Setting.IsVisible === false ? true : false,\n IsMandatory: c.IsMandatory\n }));\n return fieldsSetting;\n }\n setAndApplySearchPanelSettingFieldsSetting(fieldsSetting: ColumnInfoType[]): void {\n const searchPanelUi = this.searchPanelUi;\n fieldsSetting.forEach((c) => {\n const field = searchPanelUi._dictFieldUi[c.Name];\n if (field) {\n searchPanelUi.fireEvent('ChangeFieldVisible', field.Setting.ControlFieldCaption, !c.Hidden);\n }\n });\n }\n updateSearchPanelSettings(allSearchPanelSettings: SearchPanelSettings[]): void {\n allSearchPanelSettings = allSearchPanelSettings.filter((c) => !c.IsPrimary && !c.IsDeleted);\n this._allSearchPanelSettingsSource.next(allSearchPanelSettings);\n }\n\n removeSearchPanelSettings(searchPanelSettingsId: string): void {\n const allSearchPanelSettings = this._allSearchPanelSettingsSource.getValue();\n allSearchPanelSettings.filter((c) => c.Id !== searchPanelSettingsId);\n this._allSearchPanelSettingsSource.next(allSearchPanelSettings);\n }\n\n changeSelectedSearchPanel(selectedSearchPanelSettingsId: string): void {\n this._selectedSearchPanelSettingsIdSource.next(selectedSearchPanelSettingsId);\n }\n\n loadMetaConditionsControlInfos(typeDefId: string, fieldDbNames: string[]): Observable<GeneralControlInfoModel[]> {\n const mo = GetDefaultMoObjectInfo(typeDefId);\n return of(this._controlInfosMetaobject).pipe(\n switchMap((controlsInfo) => {\n if (controlsInfo.length > 0) {\n return of(controlsInfo);\n }\n return getControlList(mo, fieldDbNames, true, false);\n }),\n tap((controlsInfo: GeneralControlInfoModel[]) => (this._controlInfosMetaobject = controlsInfo))\n );\n }\n protected _createWorkflowShareButtons(e: ShareButtonsChoiceDef): string[] {\n let shareButtons: string[] = [];\n if (e.add) {\n this._workflowShareButtons.push(e);\n } else {\n this._workflowShareButtons = this._workflowShareButtons.filter((c) => c.mo.Id !== e.mo.Id);\n }\n if (!this._workflowShareButtons.length) {\n return [];\n }\n if (this._workflowShareButtons.length > 0) {\n shareButtons = this._workflowShareButtons[0].choiceList.map((d) => d.Title);\n const unShareButtons: string[] = [];\n for (let i = 1; i < this._workflowShareButtons.length; i++) {\n const item = this._workflowShareButtons[i];\n for (let j = 0; j < shareButtons.length; j++) {\n if (item.choiceList.map((d) => d.Title).indexOf(shareButtons[j]) < 0) {\n unShareButtons.push(shareButtons[j]);\n }\n }\n }\n shareButtons = shareButtons.filter((c) => unShareButtons.indexOf(c) === -1);\n console.log(shareButtons);\n }\n return shareButtons;\n }\n protected _initCreateNewInlineMo(context): void {\n if (!context) {\n return;\n }\n const formSetting = context.Setting.FormTemplate;\n if (formSetting) {\n this.createNewInlineMo(false);\n }\n }\n\n protected _isComposite(context): boolean {\n const relationType = BarsaApi.Common.Util.TryGetValue(context.Setting, 'Extra.Relation.RelationType');\n return relationType === BarsaApi.Common.Enums.RelationType.Composition;\n }\n protected _addEventListener(context: any): void {\n context.on({\n MaskChanged: this._maskChanged.bind(this),\n ViewerMaskChanged: this._viewerMaskChanged.bind(this),\n ViewerControlChanged: this._viewerControlChanged.bind(this),\n VisibleChanged: this._visibleChanged.bind(this),\n ReadonlyChanged: this._readonlyChanged.bind(this),\n MenuItemsChanged: this._menuItemsChanged.bind(this),\n TitleChanged: this._titleChanged.bind(this),\n FormPanelControlShowWindow: this._formPanelControlShowWindowChanged.bind(this),\n SearchPanelChanged: this._searchPanelChanged.bind(this),\n PagingSettingChanged: this._pagingSettingChanged.bind(this),\n ToolbarButtonsChanged: this._toolbarButtonsChanged.bind(this),\n EnableChanged: this._enableChanged.bind(this),\n Destroy: this._destroyChanged.bind(this),\n ExitInlineEdit: this._existInlineEdit.bind(this)\n });\n }\n\n protected _initialize(context: any): void {\n this._initCartablesFormTemplate(context);\n this._initConditionalFormats(context);\n this._initAllowInlineEdit(context);\n this._initOnlyInlineEdit(context);\n this._initInlineEditMode(context);\n this._initReport(context);\n this._initViewerControl(context);\n this._initHideToolbar(context);\n this._initToolbarButtons(context);\n this._initVisible(context);\n this._initEnable(context);\n this._initTitle(context);\n this._initReadonly(context);\n this._initMoDataList(context);\n this._initPagingSetting(context);\n this._initMenuItems(context);\n this._initSearchpanel(context);\n this._initCreateNewInlineMo(context);\n }\n protected _initCartablesFormTemplate(context): void {\n const cartableTemplates = context.Setting.CartableTemplates;\n if (cartableTemplates) {\n const keys = Object.keys(cartableTemplates);\n keys.forEach((key) => {\n if (typeof cartableTemplates[key] === 'string') {\n cartableTemplates[key] = BarsaApi.Ext.decode(cartableTemplates[key]);\n }\n });\n this._cartableTemplates$.next(cartableTemplates);\n }\n this._cartableChildsMo(context);\n }\n protected _initSearchpanel(context): void {\n if (context && context._searchPanelControl) {\n this._searchPanelChanged(context._searchPanelControl);\n }\n }\n\n protected _initConditionalFormats(context): void {\n if (context && context.Setting.View?.ConditionalFormats) {\n this._conditionalFormatsChanged(context.Setting.View?.ConditionalFormats);\n }\n }\n\n protected _initMenuItems(context): void {\n if (context && context.menuItems) {\n // const newItems = context.menuItems;\n const newItems = context.menuItems.filter(\n (c) => c.itemId !== 'Delete' && c.itemId !== 'AddToList' && c.itemId !== 'RemoveFromList'\n );\n this._menuItemsChanged(newItems);\n }\n }\n\n protected _initReport(context): void {\n const report = BarsaApi.Common.Util.TryGetValue(context, 'Setting.Extra.Report', []);\n this._reportSource.next(report);\n }\n\n protected _initMoDataList(context): void {\n const moDataList = BarsaApi.Common.Util.TryGetValue(context, 'Setting.Data.MoDataList', []);\n this._moDataListChanged(moDataList);\n }\n protected _cartableChildsMo(context): void {\n if (context.Setting.CartableChildsMo) {\n this._cartableChildsMo$.next(context.Setting.CartableChildsMo);\n }\n }\n\n protected _initPagingSetting(context): void {\n const pagingSetting = BarsaApi.Common.Util.TryGetValue(context, 'Setting.Data.Paging', null);\n this._pagingSettingChanged(pagingSetting);\n }\n\n protected _initTitle(context): void {\n let title = BarsaApi.Common.Util.TryGetValue(context, 'title', null);\n if (title === null) {\n title = BarsaApi.Common.Util.TryGetValue(context, 'Setting.Extra.Report.Caption', '');\n }\n this._titleChanged({ text: title, image: '' });\n }\n\n protected _initReadonly(context): void {\n const readonly = context.readonly === true ? true : false;\n this._readonlyChanged(readonly);\n }\n\n protected _initEnable(context): void {\n const enable = context.enable === false ? false : true;\n this._enableChanged(enable);\n }\n\n protected _initVisible(context): void {\n const visible = context.Setting.IsVisible === false ? false : true;\n this._visibleChanged(visible);\n }\n\n protected _initToolbarButtons(context): void {\n const buttons = context.tlbButtons;\n if (Array.isArray(buttons)) {\n this._toolbarButtonsChanged(buttons);\n }\n }\n\n protected _initInlineEditMode(context): void {\n const inlineEditMode: boolean = context.Setting?.View?.AutoInlineEdit;\n this._inlineEditModeSource.next(inlineEditMode);\n }\n\n protected _initAllowInlineEdit(context): void {\n const allowInlineEdit: boolean = context.Setting?.View?.AllowInlineEdit;\n const allowEdit = context.Setting.Extra?.DefaultCommandsAccess?.Edit;\n this._allowInlineEditSource.next(allowInlineEdit && allowEdit);\n }\n\n protected _initOnlyInlineEdit(context): void {\n const onlyInlineEdit: boolean = context.Setting?.View?.OnlyInlineEdit;\n this._onlyInlineEditSource.next(onlyInlineEdit);\n }\n\n protected _initViewerControl(context): void {\n const viewerControl = context.viewerControl;\n if (viewerControl) {\n this._viewerControlChanged(viewerControl);\n }\n }\n\n protected _initHideToolbar(context): void {\n const hideToolbar = BarsaApi.Common.Util.TryGetValue(context, 'Setting.Extra.Report.HideToolbar', false);\n this._hideToolbarSource.next(hideToolbar);\n }\n\n protected _unscubscribeContext(): void {\n this.context.un('MaskChanged', this._maskChanged);\n this.context.un('ViewerControlChanged', this._viewerControlChanged);\n this.context.un('ViewerMaskChanged', this._viewerMaskChanged);\n this.context.un('VisibleChanged', this._visibleChanged);\n this.context.un('ReadonlyChanged', this._readonlyChanged);\n this.context.un('MenuItemsChanged', this._menuItemsChanged);\n this.context.un('TitleChanged', this._titleChanged);\n this.context.un('FormPanelControlShowWindow', this._formPanelControlShowWindowChanged);\n this.context.un('PagingSettingChanged', this._pagingSettingChanged);\n this.context.un('ToolbarButtonsChanged', this._toolbarButtonsChanged);\n this.context.un('EnableChanged', this._enableChanged);\n this.context.un('Destroy', this._destroyChanged);\n this.context.un('ExitInlineEdit', this._existInlineEdit);\n }\n protected _conditionalFormatsChanged(conditionalFormats: any): void {\n this._conditionalFormatsSource.next(conditionalFormats);\n }\n protected _moDataListChanged(moDataList): void {\n this.moDataListSource.next(moDataList);\n if (this.context) {\n this._cartableChildsMo(this.context);\n this._initCartablesFormTemplate(this.context);\n this._checkCartableWorkflowShareButtons(moDataList);\n }\n }\n protected _checkCartableWorkflowShareButtons(moDataList: MetaobjectDataModel[]): void {\n const hasSelected = moDataList.some((c) => c.$IsChecked);\n if (!hasSelected) {\n this._toolbarButtonsWorkflowButtons.next([]);\n }\n }\n\n protected _viewerControlChanged(viewerControl): void {\n this._viewerControlSource.next(viewerControl);\n this._initConditionalFormats(this.context);\n this._initInlineEditMode(this.context);\n this._initAllowInlineEdit(this.context);\n this._initOnlyInlineEdit(this.context);\n }\n\n protected _maskChanged(mask: boolean): void {\n this._maskSource.next(mask);\n }\n\n protected _viewerMaskChanged(viewerMask: boolean): void {\n this._viewerMaskSource.next(viewerMask);\n }\n\n protected _readonlyChanged(readonly: boolean): void {\n this._readonlySource.next(readonly);\n }\n\n protected _visibleChanged(viewerMask: boolean): void {\n this._visibleSource.next(viewerMask);\n }\n\n protected _menuItemsChanged(menuItems: any[]): void {\n this._menuItemsSource.next(menuItems);\n }\n\n protected _titleChanged(titleObj: { text: string; image: string }): void {\n this._titleSource.next(titleObj);\n }\n\n protected _formPanelControlShowWindowChanged(formpanelObj: { formpanelControl: any; hasParentMo: any }): void {\n this._formPanelControlShowWindowSource.next(formpanelObj);\n }\n\n protected _searchPanelChanged(searchPanel: any): void {\n this._searchPanelUiSource.next(searchPanel);\n }\n\n protected _pagingSettingChanged(pageingSetting: any): void {\n this._pagingSettingSource.next(pageingSetting);\n }\n\n protected _toolbarButtonsChanged(buttons: any[]): void {\n this._toolbarButtonsSource.next(buttons);\n }\n\n protected _enableChanged(enable: boolean): void {\n this._enableSource.next(enable);\n }\n\n protected _destroyChanged(): void {\n this._destroySource.next();\n }\n protected _existInlineEdit(): void {\n this._inlineEditModeSource.next(false);\n }\n\n protected _addDefaultSearchPanelSettings(searchPanel: any): void {\n const searchMo = JSON.stringify(searchPanel?.Mo ?? new MetaobjectDataModel());\n const StandardText = this._bbbPipe.transform('Standard');\n const standardSettings = {\n Id: '',\n $Caption: StandardText,\n IsStandard: true,\n IsDefault: true,\n IsPublic: true,\n IsPrimary: true,\n ApplyAutomatically: true,\n HideSearchPanel: false,\n Title: StandardText,\n SearchMo: searchMo,\n ReportId: ''\n };\n this._defaultSearchPanelSettingsSource.next(standardSettings);\n }\n\n protected _loadSearchPanelSettings(reportId): void {\n BarsaApi.Bw.RunBlMethodAsync({\n Parameters: [reportId],\n Method: 'LoadAllUserSearchPanelSettings',\n SuccessFn: (allSearchPanelSettings) => {\n if (Array.isArray(allSearchPanelSettings)) {\n allSearchPanelSettings = BarsaApi.Bw._unwrap(allSearchPanelSettings);\n this._allSearchPanelSettingsSource.next(allSearchPanelSettings);\n const defaultSearch = allSearchPanelSettings.find((c) => c.IsDefault);\n if (defaultSearch) {\n this._selectedSearchPanelSettingsIdSource.next(defaultSearch.Id);\n }\n }\n },\n FailFn: () => {}\n });\n }\n protected resetSearchPanelSettings(searchPanelUi): void {\n this.clearSearch();\n const fieldUi = searchPanelUi._dictFieldUi;\n const changed = searchPanelUi.Mo.GetChangedObject();\n Object.keys(changed).forEach((c) => {\n const field = searchPanelUi._dictFieldUi[c];\n if (field) {\n field.SetValue(null);\n searchPanelUi.Mo.SetFValue(c, null);\n }\n searchPanelUi.Mo.SetState('New');\n });\n Object.keys(fieldUi).forEach((c) => {\n if (c !== '$Search' && fieldUi[c].LayoutControl) {\n searchPanelUi.fireEvent('ChangeFieldVisible', fieldUi[c].Setting.ControlFieldCaption, true);\n }\n });\n }\n protected _loadCartableTemplate(keyOfCartableTemplates: Set<string>): void {\n let cartableTemplates = this._cartableTemplates$.getValue();\n if (!cartableTemplates) {\n return;\n }\n const keys: CartableTemplateKey[] = [];\n\n keyOfCartableTemplates.forEach((key) => {\n const values = key.split(this._cartableKeySeperator);\n if (!cartableTemplates[key]) {\n keys.push({ TypeDefId: values[0], SettingsId: values[1] });\n }\n });\n if (keys.length === 0) {\n return;\n }\n this._apiService.GetCartableTemplate(keys).subscribe((c) => {\n if (!c) {\n return;\n }\n const templates: { [key: string]: FormSetting } = {};\n Object.keys(c).forEach((cId) => {\n templates[cId] = BarsaApi.Ext.decode(c[cId]);\n });\n cartableTemplates = { ...cartableTemplates, ...templates };\n this._cartableTemplates$.next(cartableTemplates);\n });\n }\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient, HttpErrorResponse, HttpEventType } from '@angular/common/http';\n\nimport { Subject, Observable, throwError, from } from 'rxjs';\nimport { catchError, finalize, map, takeUntil } from 'rxjs/operators';\nimport { BarsaApi, IUploadingState } from '../abstract-classes';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class UploadService {\n private _uploadingStateSource = new Subject<IUploadingState>();\n uploadingState$ = this._uploadingStateSource.asObservable();\n cancelation$ = new Subject<void>();\n uploadURL = `/Fields/File/Base/FileUploadFormMulti.ashx`;\n constructor(private httpClient: HttpClient) {}\n\n public upload(data: FormData, fdId: string, key: string = ''): Observable<any> {\n let state: IUploadingState = {\n key,\n progress: 0,\n state: 'Start',\n uploading: false\n };\n this._setUploadingStatus(state);\n return this.httpClient\n .post<any>(this.uploadURL, data, {\n reportProgress: true,\n observe: 'events',\n headers: { fdId }\n })\n .pipe(\n map((event) => {\n switch (event.type) {\n case HttpEventType.UploadProgress: {\n const total = event.total || 0;\n const progress = Math.round((100 * event.loaded) / total);\n return { status: 'progress', message: progress };\n }\n case HttpEventType.Response:\n return event.body;\n default:\n return `Unhandled event: ${event.type}`;\n }\n }),\n map((res) => {\n if (Array.isArray(res)) {\n state = this._setUploadingStatus({ ...state, state: 'Complete', uploading: false });\n } else if (res !== null && typeof res === 'object') {\n if (res.status === 'error') {\n state = this._setUploadingStatus({ ...state, state: 'Error', uploading: false });\n } else if (res.status === 'progress') {\n state = this._setUploadingStatus({\n ...state,\n state: 'Uploading',\n uploading: true,\n progress: res.message\n });\n }\n }\n return res;\n }),\n takeUntil(this.cancelation$.asObservable()),\n catchError((err) => {\n if (err instanceof HttpErrorResponse) {\n BarsaApi.Bw.Toast.Error(`${err.status} : ${err.message}`);\n }\n\n return throwError(() => new Error(err));\n }),\n finalize(() => {\n state = this._setUploadingStatus({\n ...state,\n uploading: false\n });\n })\n );\n }\n\n public compressFiles$(files: File[]): Observable<FormData> {\n return from(this.compressFiles(files));\n }\n private _setUploadingStatus(state: IUploadingState): IUploadingState {\n if (state.state === 'Start') {\n state.uploading = true;\n }\n this._uploadingStateSource.next(state);\n return state;\n }\n private compressFiles(files: File[]): Promise<FormData> {\n const formData = new FormData();\n return new Promise((resolve, reject) => {\n files.forEach((file, index) => {\n const file2 = file; // get the file\n const blobURL = URL.createObjectURL(file2);\n const img = new Image();\n img.src = blobURL;\n const biggerThan1MB = file.size / 1024 > 1000;\n console.log(`file size ${biggerThan1MB}`);\n const mimeTypeJpg = 'image/jpeg';\n const MAX_WIDTH = 1920;\n const MAX_HEIGHT = 1080;\n const MIME_TYPE = biggerThan1MB ? mimeTypeJpg : file.type;\n const QUALITY = biggerThan1MB && file.type === mimeTypeJpg ? 0.5 : 1;\n if (MIME_TYPE === file.type && QUALITY === 1) {\n formData.append('file', file, file.name);\n if (index === files.length - 1) {\n resolve(formData);\n }\n }\n img.onerror = function (): void {\n URL.revokeObjectURL(img.src);\n // Handle the failure properly\n console.log('Cannot load image');\n reject(new Error('Cannot load image'));\n };\n img.onload = function (): void {\n URL.revokeObjectURL(img.src);\n const [newWidth, newHeight] = calculateSize(img, MAX_WIDTH, MAX_HEIGHT);\n const canvas = document.createElement('canvas');\n canvas.width = newWidth;\n canvas.height = newHeight;\n const ctx = canvas.getContext('2d');\n ctx?.drawImage(img, 0, 0, newWidth, newHeight);\n canvas.toBlob(\n (blob) => {\n // Handle the compressed image. es. upload or save in local state\n if (blob) {\n // formData.append(\n // 'unicFileName',\n // 'x' + BarsaApi.Common.Util.GetNewMetaGuid() + ';;;' + file.name\n // );\n formData.append('file', blob, file.name);\n }\n if (index === files.length - 1) {\n resolve(formData);\n }\n },\n MIME_TYPE,\n QUALITY\n );\n };\n function calculateSize(img1, maxWidth, maxHeight): number[] {\n let width = img1.width;\n let height = img1.height;\n\n // calculate the width and height, constraining the proportions\n if (width > height) {\n if (width > maxWidth) {\n height = Math.round((height * maxWidth) / width);\n width = maxWidth;\n }\n } else {\n if (height > maxHeight) {\n width = Math.round((width * maxHeight) / height);\n height = maxHeight;\n }\n }\n return [width, height];\n }\n });\n });\n }\n}\n","import { Injectable } from '@angular/core';\r\n\r\nimport { fromEvent, merge, Observable, of } from 'rxjs';\r\nimport { map } from 'rxjs/operators';\r\n\r\n@Injectable()\r\nexport class NetworkStatusService {\r\n get networkStatus$(): Observable<boolean> {\r\n return merge(of(null), fromEvent(window, 'online'), fromEvent(window, 'offline')).pipe(\r\n map(() => navigator.onLine)\r\n );\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport RecordRTC from 'recordrtc';\r\nimport moment from 'moment';\r\nimport { Observable, Subject } from 'rxjs';\r\n\r\ninterface RecordedAudioOutput {\r\n blob: Blob;\r\n title: string;\r\n}\r\n\r\n@Injectable()\r\nexport class AudioRecordingService {\r\n private stream;\r\n private recorder;\r\n private interval;\r\n private startTime;\r\n private _recorded = new Subject<RecordedAudioOutput>();\r\n private _recordingTime = new Subject<string>();\r\n private _recordingFailed = new Subject<string>();\r\n\r\n getRecordedBlob(): Observable<RecordedAudioOutput> {\r\n return this._recorded.asObservable();\r\n }\r\n\r\n getRecordedTime(): Observable<string> {\r\n return this._recordingTime.asObservable();\r\n }\r\n\r\n recordingFailed(): Observable<string> {\r\n return this._recordingFailed.asObservable();\r\n }\r\n\r\n startRecording(): void {\r\n if (this.recorder) {\r\n // It means recording is already started or it is already recording something\r\n return;\r\n }\r\n\r\n this._recordingTime.next('00:00');\r\n navigator.mediaDevices\r\n .getUserMedia({ audio: true })\r\n .then((s) => {\r\n this.stream = s;\r\n this.record();\r\n })\r\n .catch((_) => {\r\n this._recordingFailed.next('');\r\n });\r\n }\r\n\r\n abortRecording(): void {\r\n this.stopMedia();\r\n }\r\n\r\n private record(): void {\r\n this.recorder = new RecordRTC.StereoAudioRecorder(this.stream, {\r\n type: 'audio',\r\n mimeType: 'audio/mp3'\r\n });\r\n\r\n this.recorder.record();\r\n this.startTime = moment();\r\n this.interval = setInterval(() => {\r\n const currentTime = moment();\r\n const diffTime = moment.duration(currentTime.diff(this.startTime));\r\n const time = this.toString(diffTime.minutes()) + ':' + this.toString(diffTime.seconds());\r\n this._recordingTime.next(time);\r\n }, 500);\r\n }\r\n\r\n private toString(value): string {\r\n let val = value;\r\n if (!value) {\r\n val = '00';\r\n }\r\n if (value < 10) {\r\n val = '0' + value;\r\n }\r\n return val;\r\n }\r\n\r\n stopRecording(): void {\r\n if (this.recorder) {\r\n this.recorder.stop(\r\n (blob) => {\r\n if (this.startTime) {\r\n const mp3Name = encodeURIComponent('audio_' + new Date().getTime() + '.mp3');\r\n this.stopMedia();\r\n this._recorded.next({ blob, title: mp3Name });\r\n }\r\n },\r\n () => {\r\n this.stopMedia();\r\n this._recordingFailed.next('');\r\n }\r\n );\r\n }\r\n }\r\n\r\n private stopMedia(): void {\r\n if (this.recorder) {\r\n this.recorder = null;\r\n clearInterval(this.interval);\r\n this.startTime = null;\r\n if (this.stream) {\r\n this.stream.getAudioTracks().forEach((track) => track.stop());\r\n this.stream = null;\r\n }\r\n }\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport RecordRTC from 'recordrtc';\r\nimport moment from 'moment';\r\nimport { Observable, Subject } from 'rxjs';\r\n\r\ninterface RecordedVideoOutput {\r\n blob: Blob;\r\n url: string;\r\n title: string;\r\n}\r\n\r\n@Injectable()\r\nexport class VideoRecordingService {\r\n private stream;\r\n private recorder;\r\n private interval;\r\n private startTime;\r\n private _stream = new Subject<MediaStream>();\r\n private _recorded = new Subject<RecordedVideoOutput>();\r\n private _recordedUrl = new Subject<string>();\r\n private _recordingTime = new Subject<string>();\r\n private _recordingFailed = new Subject<string>();\r\n\r\n getRecordedUrl(): Observable<string> {\r\n return this._recordedUrl.asObservable();\r\n }\r\n\r\n getRecordedBlob(): Observable<RecordedVideoOutput> {\r\n return this._recorded.asObservable();\r\n }\r\n\r\n getRecordedTime(): Observable<string> {\r\n return this._recordingTime.asObservable();\r\n }\r\n\r\n recordingFailed(): Observable<string> {\r\n return this._recordingFailed.asObservable();\r\n }\r\n\r\n getStream(): Observable<MediaStream> {\r\n return this._stream.asObservable();\r\n }\r\n\r\n startRecording(conf: any): Promise<any> {\r\n const browser = <any>navigator;\r\n if (this.recorder) {\r\n // It means recording is already started or it is already recording something\r\n return Promise.resolve(this.stream);\r\n }\r\n\r\n this._recordingTime.next('00:00');\r\n return new Promise((resolve, reject) => {\r\n browser.mediaDevices\r\n .getUserMedia(conf)\r\n .then((stream) => {\r\n this.stream = stream;\r\n this.record();\r\n resolve(this.stream);\r\n })\r\n .catch((error) => {\r\n this._recordingFailed.next('');\r\n reject(error);\r\n });\r\n });\r\n }\r\n\r\n abortRecording(): void {\r\n this.stopMedia();\r\n }\r\n stopRecording(): void {\r\n if (this.recorder) {\r\n this.recorder.stopRecording(this.processVideo.bind(this));\r\n // this.processVideo.bind(this.recorder)\r\n // this.processVideo(this.recorder);\r\n // this.stopMedia();\r\n }\r\n }\r\n\r\n private record(): void {\r\n this.recorder = new RecordRTC(this.stream, {\r\n type: 'video',\r\n mimeType: 'video/webm',\r\n bitsPerSecond: 44000\r\n });\r\n this.recorder.startRecording();\r\n this.startTime = moment();\r\n this.interval = setInterval(() => {\r\n const currentTime = moment();\r\n const diffTime = moment.duration(currentTime.diff(this.startTime));\r\n const time = this.toString(diffTime.minutes()) + ':' + this.toString(diffTime.seconds());\r\n this._recordingTime.next(time);\r\n this._stream.next(this.stream);\r\n }, 500);\r\n }\r\n\r\n private toString(value): string {\r\n let val = value;\r\n if (!value) {\r\n val = '00';\r\n }\r\n if (value < 10) {\r\n val = '0' + value;\r\n }\r\n return val;\r\n }\r\n\r\n private processVideo(audioVideoWebMURL): void {\r\n // console.log(audioVideoWebMURL);\r\n const recordedBlob = this.recorder.getBlob();\r\n this.recorder.getDataURL(function (_) {});\r\n const recordedName = encodeURIComponent('video_' + new Date().getTime() + '.webm');\r\n this._recorded.next({ blob: recordedBlob, url: audioVideoWebMURL, title: recordedName });\r\n this.stopMedia();\r\n // this.recorder.save(recordedName);\r\n }\r\n\r\n private stopMedia(): void {\r\n if (this.recorder) {\r\n this.recorder = null;\r\n clearInterval(this.interval);\r\n this.startTime = null;\r\n if (this.stream) {\r\n this.stream.getAudioTracks().forEach((track) => track.stop());\r\n this.stream.getVideoTracks().forEach((track) => track.stop());\r\n this.stream.stop();\r\n this.stream = null;\r\n }\r\n }\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\n\n@Injectable()\nexport class LocalStorageService {\n localstorage = false;\n constructor() {}\n setItem(key: string, value: string): void {\n let valueOfKey = '';\n if (typeof value === 'object' || Array.isArray(value)) {\n valueOfKey = JSON.stringify(value);\n } else {\n valueOfKey = value;\n }\n localStorage.setItem(key, valueOfKey);\n }\n getItem(key: string): string | null {\n return localStorage.getItem(key);\n }\n remove(key: string): void {\n localStorage.removeItem(key);\n }\n clear(): void {\n localStorage.clear();\n }\n}\n","import { Injectable } from '@angular/core';\n\n@Injectable()\nexport class IndexedDbService {\n _db: IDBDatabase | null = null;\n constructor() {}\n open(dbName: string, version: number): void {\n const DBOpenRequest = window.indexedDB.open(dbName, version);\n // Register two event handlers to act on the database being opened successfully, or not\n DBOpenRequest.onerror = (event) => {\n // TODO: Handle error\n };\n\n DBOpenRequest.onsuccess = (event) => {\n // TODO: Handle success\n this._db = DBOpenRequest.result;\n };\n // This event handles the event whereby a new version of the database needs to be created\n // Either one has not been created before, or a new version number has been submitted via the\n // window.indexedDB.open line above\n // it is only implemented in recent browsers\n DBOpenRequest.onupgradeneeded = (event) => {\n // TODO: Handle upgradeneeded\n };\n }\n delete(dbName): void {\n window.indexedDB.deleteDatabase(dbName);\n }\n}\n","import { Injectable } from '@angular/core';\r\nimport { LocalStorageService } from './local-storage.service';\r\nimport { IndexedDbService } from './indexeddb.service';\r\nimport { BarsaApi } from '../abstract-classes/barsa-api';\r\nimport { LogService } from './log.service';\r\n@Injectable()\r\nexport class BarsaStorageService {\r\n STARTUP_DATA_KEY = 'STARTUP_DATA';\r\n DBNAME_KEY = 'BARSA_DB';\r\n DBNAME_VERSION_KEY = `${this.DBNAME_KEY}_VERSION`;\r\n BAZAVARI_VERSION_KEY = `BAZAVARI_VERSION`;\r\n constructor(\r\n private _logService: LogService,\r\n private _localStorageService: LocalStorageService,\r\n private _indexedDbService: IndexedDbService\r\n ) {}\r\n protected get currentBazavariVersion(): string {\r\n return BarsaApi.LoginFormData.ChangeKeyVersion;\r\n }\r\n interceptXhr(): void {\r\n const origOpen = XMLHttpRequest.prototype.open;\r\n const logService = this._logService;\r\n // const isAnonymous = BarsaApi.LoginFormData.IsAnonymous;\r\n // const startupData = JSON.stringify(BarsaApi.LoginFormData);\r\n // localStorage.setItem(this.STARTUP_DATA_KEY, startupData);\r\n // const me = this;\r\n return;\r\n XMLHttpRequest.prototype.open = function (\r\n method: string,\r\n url: string | URL,\r\n async?: boolean,\r\n username?: string | null,\r\n password?: string | null\r\n ) {\r\n // console.log('request started!');\r\n // if(isAnonymous){\r\n // var responseText=me._indexedDbService.get(url);\r\n // if(responseText){\r\n\r\n // }\r\n // return;\r\n // }\r\n this.addEventListener('load', function () {\r\n // console.log('request completed!');\r\n // console.log(this.readyState); // will always be 4 (ajax is completed successfully)\r\n // console.log(this.responseText); // whatever the response was\r\n if (this.status === 401 && BarsaApi.LoginFormData.succeed !== false) {\r\n logService.info(`unauthorized ${this.status}`);\r\n // console.log('clear localstorage');\r\n // localStorage.clear();\r\n }\r\n });\r\n origOpen.call(this, method, url, async === false ? false : true, username, password);\r\n };\r\n }\r\n init(): void {\r\n this.interceptXhr();\r\n const localStorage = this._localStorageService;\r\n\r\n // we set runtime structure version in localstorage\r\n // in indexdb service we can read current version and cached version and\r\n // if they are different we need to to add version to indexdb database\r\n const db_version = localStorage.getItem(this.DBNAME_VERSION_KEY);\r\n const bazavari_version = localStorage.getItem(this.BAZAVARI_VERSION_KEY);\r\n let dbVer = 0;\r\n dbVer = Number.parseInt(db_version ?? '0', 10);\r\n if (isNaN(dbVer) || !db_version) {\r\n this.deleteDatabase();\r\n }\r\n if (bazavari_version !== this.currentBazavariVersion) {\r\n dbVer++;\r\n }\r\n localStorage.setItem(this.DBNAME_VERSION_KEY, dbVer.toString());\r\n localStorage.setItem(this.BAZAVARI_VERSION_KEY, this.currentBazavariVersion);\r\n this.openDatabase(dbVer);\r\n }\r\n deleteDatabase(): void {\r\n this._indexedDbService.delete(this.DBNAME_KEY);\r\n }\r\n openDatabase(version: number): void {\r\n this._indexedDbService.open(this.DBNAME_KEY, version);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { SwUpdate, VersionReadyEvent } from '@angular/service-worker';\r\nimport { filter, interval } from 'rxjs';\r\nimport { BarsaApi } from '../abstract-classes';\r\nimport { LogService } from './log.service';\r\n\r\n@Injectable()\r\nexport class PromptUpdateService {\r\n constructor(private _logService: LogService, private swUpdate: SwUpdate) {\r\n _logService.info(`sw enable ${swUpdate.isEnabled}`);\r\n if (swUpdate.isEnabled) {\r\n swUpdate.checkForUpdate();\r\n\r\n _logService.info('sw check for update');\r\n\r\n swUpdate.unrecoverable.subscribe((event) => {\r\n // TODO: handle unrecoverable\r\n alert(\r\n 'An error occurred that we cannot recover from:\\n' + event.reason + '\\n\\nPlease reload the page.'\r\n );\r\n document.location.reload();\r\n });\r\n interval(1e3 * 60 * 60).subscribe(() => swUpdate.checkForUpdate());\r\n }\r\n }\r\n checkForUpdate(): void {\r\n this.swUpdate.versionUpdates\r\n .pipe(filter((evt): evt is VersionReadyEvent => evt.type === 'VERSION_READY'))\r\n .subscribe((evt) => {\r\n this._logService.info('sw new version found.');\r\n\r\n this.promptUser(() => {\r\n // Reload the page to update to the latest version.\r\n document.location.reload();\r\n });\r\n });\r\n }\r\n promptUser(callback): void {\r\n BarsaApi.Bw.Msg.YesNo(BarsaApi.BBB.NewVersionFound, BarsaApi.BBB.UpdateApplication, function (buttonId) {\r\n if (buttonId === 'yes') {\r\n return callback();\r\n }\r\n });\r\n }\r\n showError(callback): void {\r\n BarsaApi.Bw.Msg.Error(BarsaApi.BBB.Error, BarsaApi.BBB.NeedReload, function (buttonId) {\r\n if (buttonId === 'yes') {\r\n return callback();\r\n }\r\n });\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\nimport { SwPush } from '@angular/service-worker';\nimport { tap } from 'rxjs';\nimport { BarsaApi, ExNotificationPayload, NotificationItem } from '../abstract-classes';\nimport { LogService } from './log.service';\nimport { PortalService } from './portal.service';\n\n@Injectable()\nexport class ServiceWorkerNotificationService {\n constructor(private _logService: LogService, private _swPush: SwPush, private _portalService: PortalService) {\n _logService.info(`swPush enable ${_swPush.isEnabled}`);\n _swPush.notificationClicks.pipe(tap((c) => console.log(c))).subscribe((e) => {\n if (!e.notification.tag) {\n return;\n }\n this.closeNotifications([e.notification.tag]);\n\n const actionTitle = e.action;\n if (actionTitle === '') {\n return;\n }\n if (!BarsaApi?.LoginFormData?.IsUserLoggedIn) {\n return;\n }\n this._portalService.ExecuteNotificationAction(e.notification.tag, actionTitle);\n\n // TODO:exeucte action\n // not handled!!\n });\n }\n public get isEnabled(): boolean {\n return this._swPush.isEnabled;\n }\n private async getSw(): Promise<ServiceWorkerRegistration | undefined> {\n return await navigator.serviceWorker.getRegistration('ngsw-worker.js');\n }\n public async showNotification(payload: ExNotificationPayload): Promise<void> {\n const sw = await this.getSw();\n const { isRtl, lang, notificationItem }: { isRtl: boolean; lang: string; notificationItem: NotificationItem } =\n payload;\n const tag = notificationItem.Tag;\n const dir = isRtl ? 'rtl' : 'ltr';\n const actions = !notificationItem.UiActions\n ? []\n : notificationItem.UiActions.map((action) => ({\n title: action.Title,\n icon: action.Icon,\n action: action.Title\n }));\n const data = {\n onActionClick: {\n default: { operation: 'openWindow' }\n }\n };\n actions.forEach((action) => {\n data.onActionClick[action.title] = {\n operation: 'focusLastFocusedOrOpen',\n url: `#/login?notificationTag=${tag}&action=${action.title}`\n };\n });\n\n sw?.showNotification(notificationItem.Title, {\n dir,\n tag,\n body: notificationItem.Content,\n image: notificationItem.Image,\n icon: notificationItem.Icon,\n lang,\n actions,\n data\n });\n }\n private _isSupported(): boolean {\n if (!('serviceWorker' in navigator)) {\n // Service Worker isn't supported on this browser, disable or hide UI.\n return false;\n }\n\n if (!('PushManager' in window)) {\n // Push isn't supported on this browser, disable or hide UI.\n return false;\n }\n\n return true;\n }\n private _isActionsSupported(): boolean {\n return 'actions' in Notification.prototype;\n }\n private _isIconSupported(): boolean {\n return 'icon' in Notification.prototype;\n }\n private isBadgeSupported(): boolean {\n return 'badge' in Notification.prototype;\n }\n private _isDirSupported(): boolean {\n return 'dir' in Notification.prototype;\n }\n private isImageSupported(): boolean {\n return 'image' in Notification.prototype;\n }\n\n private isTitleBodySupported(): boolean {\n return 'title' in Notification.prototype && 'body' in Notification.prototype;\n }\n private isVibrateSupported(): boolean {\n return 'vibrate' in Notification.prototype;\n }\n private isTimestampSupported(): boolean {\n return 'timestamp' in Notification.prototype;\n }\n private isTagSupported(): boolean {\n return 'tag' in Notification.prototype;\n }\n private isSoundSupported(): boolean {\n return 'sound' in Notification.prototype;\n }\n\n private isSilentSupported(): boolean {\n return 'silent' in Notification.prototype;\n }\n\n private isReqInterSupported(): boolean {\n return 'requireInteraction' in Notification.prototype;\n }\n public async closeNotifications(tags: string[]): Promise<void> {\n const sw = await this.getSw();\n tags.forEach(async (tag) => {\n const notifs: Notification[] | undefined = await sw?.getNotifications({ tag });\n if (notifs?.length) {\n notifs.forEach((c) => c.close());\n }\n });\n }\n}\n","import { LowerCasePipe } from '@angular/common';\r\nimport { Inject, Injectable, NgZone } from '@angular/core';\r\nimport { DomSanitizer } from '@angular/platform-browser';\r\nimport { BehaviorSubject, Observable } from 'rxjs';\r\n\r\nimport { BarsaApi } from '../abstract-classes/barsa-api';\r\nimport { MetaobjectDataModel, NotificationItem, NotifyOptions } from '../abstract-classes/models';\r\nimport { NOTIFICATAION_POPUP_SERVER } from '../injdection-tokens';\r\nimport { BbbTranslatePipe } from '../pipes/bbb-translate.pipe';\r\nimport { LogService } from './log.service';\r\nimport { NotificationPopupService } from './notification-popup.service';\r\nimport { ServiceWorkerNotificationService } from './notification-sw.service';\r\n\r\n@Injectable()\r\nexport class NotificationService {\r\n private _notifications$ = new BehaviorSubject<MetaobjectDataModel[]>([]);\r\n private _notificationCount$ = new BehaviorSubject<{ unread: number; all: number }>({ unread: 0, all: 0 });\r\n private _notificationUnreadCount$ = new BehaviorSubject<number>(0);\r\n private _notificationLoading$ = new BehaviorSubject<boolean>(false);\r\n pageCount = 1;\r\n pageIndex = 0;\r\n constructor(\r\n @Inject(NOTIFICATAION_POPUP_SERVER) protected _popupService: NotificationPopupService,\r\n private _logService: LogService,\r\n private _lowerCase: LowerCasePipe,\r\n private _bbbTranslate: BbbTranslatePipe,\r\n private _domSanitizer: DomSanitizer,\r\n private _serviceWorkerNotification: ServiceWorkerNotificationService,\r\n private _ngZone: NgZone\r\n ) {}\r\n get notificationCount$(): Observable<{ unread: number; all: number }> {\r\n return this._notificationCount$.asObservable();\r\n }\r\n\r\n get notifications$(): Observable<MetaobjectDataModel[]> {\r\n return this._notifications$.asObservable().pipe();\r\n }\r\n get notificationLoading$(): Observable<boolean> {\r\n return this._notificationLoading$.asObservable();\r\n }\r\n public loadMore(): void {\r\n this.loadNotifications(this.pageIndex);\r\n }\r\n public setNotificationViewed(tags: string[]): void {\r\n BarsaApi.Bw.RunBlMethodAsync({\r\n Parameters: [tags],\r\n Method: 'SetNotificationViewed',\r\n SuccessFn: () => {\r\n const molistCurr = this._notifications$.getValue();\r\n const updatedUnreadMoList = molistCurr.map((c) => ({\r\n ...c,\r\n Unread: tags.indexOf(c.Tag) > -1 ? false : c.Unread\r\n }));\r\n this._notifications$.next([...updatedUnreadMoList]);\r\n this.increaseNotifcationCount(-tags.length, 0);\r\n return tags;\r\n },\r\n FailFn: (e) => {\r\n this._logService.error(e);\r\n }\r\n });\r\n }\r\n public handleTopic(eventTopic, content, ownerKey): void {\r\n console.log('handleTopic', eventTopic, content, ownerKey);\r\n if (eventTopic === 'GlobalReportMoDelete') {\r\n const { IdList }: { IdList: string[] } = content;\r\n const notifications = this._notifications$.getValue();\r\n let findInNotifications = false;\r\n let unreadCount = 0;\r\n let count = 0;\r\n IdList.forEach((id) => {\r\n const foundNotification = notifications.find((c) => c.Id === id);\r\n if (foundNotification) {\r\n findInNotifications = true;\r\n count++;\r\n if (foundNotification.Unread) {\r\n unreadCount++;\r\n }\r\n }\r\n });\r\n if (findInNotifications) {\r\n this._notifications$.next(notifications.filter((c) => !IdList.includes(c.Id)));\r\n }\r\n if (unreadCount > 0) {\r\n this.increaseNotifcationCount(-unreadCount, -count);\r\n }\r\n }\r\n }\r\n public addNotification(\r\n msg: string,\r\n title: string,\r\n type: string,\r\n image: string,\r\n mo,\r\n uiOptions: NotifyOptions,\r\n otherOptions: Record<string, any>\r\n ): void {\r\n this._ngZone.run(() => {\r\n if (otherOptions) {\r\n const { MoId, TypeDefId } = otherOptions;\r\n console.log('addNotification', title, MoId, mo);\r\n let newNotification: NotificationItem = {\r\n $Caption: title,\r\n Id: MoId,\r\n $TypeDefId: TypeDefId,\r\n Title: title,\r\n Unread: true,\r\n Icon: image,\r\n Image: '',\r\n Content: msg,\r\n Tag: '',\r\n Priority: 0,\r\n Subject: '',\r\n CreationDate: new Date(),\r\n CreationDate$Caption: this._bbbTranslate.transform('DateR_Today')\r\n };\r\n const parsedMo = mo ? BarsaApi.Ext.decode(mo) : null;\r\n newNotification = this._prepareProperties(newNotification, parsedMo, msg);\r\n\r\n if (parsedMo) {\r\n const molist = this._notifications$.getValue();\r\n this._notifications$.next([newNotification, ...molist]);\r\n this.increaseNotifcationCount(1, 1);\r\n }\r\n this.showNotification(newNotification, parsedMo, uiOptions, otherOptions);\r\n }\r\n });\r\n }\r\n\r\n public increaseNotifcationCount(unread: number, count: number): void {\r\n const countValue = this._notificationCount$.getValue();\r\n const sumUnread = countValue.unread + +unread;\r\n const sumAll = countValue.all + +count;\r\n this._notificationCount$.next({ unread: sumUnread > 0 ? sumUnread : 0, all: sumAll > 0 ? sumAll : 0 });\r\n }\r\n public loadUnreadNotificationCount(): void {\r\n BarsaApi.Bw.RunBlMethodAsync({\r\n Parameters: [],\r\n Method: 'GetShellbarNotificationCount',\r\n SuccessFn: (e: { Unread: number; All: number }) => {\r\n this._updateUnreadAndCount(e);\r\n },\r\n FailFn: (e) => {\r\n this._logService.error(e);\r\n }\r\n });\r\n }\r\n public loadNotifications(pageIndex: number = 0): void {\r\n if (pageIndex + 1 > this.pageCount) {\r\n return;\r\n }\r\n this.notificationLoading(true);\r\n BarsaApi.Bw.RunBlMethodAsync({\r\n Parameters: [pageIndex],\r\n Method: 'GetShellbarNotifications',\r\n SuccessFn: (e: { PageCount: number; MoList: MetaobjectDataModel[] }) => {\r\n const notifications = this._notifications$.getValue();\r\n const notifListOfTags = notifications.map((c) => c.Tag);\r\n const molist = e.MoList.filter((c) => notifListOfTags.indexOf(c.Tag) === -1).map((mo) =>\r\n this._prepareProperties(<NotificationItem>mo, mo, mo.IMessage?.Content)\r\n );\r\n this._notifications$.next([...notifications, ...molist]);\r\n this.pageCount = +e.PageCount;\r\n this.pageIndex = pageIndex + 1;\r\n this.notificationLoading(false);\r\n },\r\n FailFn: (e) => {\r\n this._logService.error(e);\r\n this.notificationLoading(false);\r\n }\r\n });\r\n }\r\n\r\n public removeNotification(molist: MetaobjectDataModel[], closeNotification = true): void {\r\n const moIds = this._setNotificationLoading(molist, true);\r\n BarsaApi.Bw.RunBlMethodAsync({\r\n Parameters: [moIds],\r\n Method: 'RemoveShellbarNotification',\r\n SuccessFn: (e: { Unread: number; All: number }) => {\r\n const notificationList = this._notifications$.getValue();\r\n this._updateUnreadAndCount(e);\r\n const newMoList = notificationList.filter((c) => moIds.indexOf(c.Id) === -1);\r\n this._notifications$.next(newMoList);\r\n if (closeNotification) {\r\n this._serviceWorkerNotification.closeNotifications(moIds);\r\n }\r\n if (this._notificationCount$.getValue().all > 0) {\r\n this.loadNotifications(this.pageIndex - 1);\r\n }\r\n },\r\n FailFn: (e) => {\r\n this._logService.error(e);\r\n this._setNotificationLoading(molist, false);\r\n }\r\n });\r\n }\r\n private _updateUnreadAndCount(e: { Unread: number; All: number }): void {\r\n this._notificationUnreadCount$.next(+e.Unread);\r\n this._notificationCount$.next({ unread: +e.Unread, all: +e.All });\r\n }\r\n\r\n get SupportNotifications(): boolean {\r\n return typeof Notification !== 'undefined' && this._serviceWorkerNotification.isEnabled;\r\n }\r\n public showNotification(\r\n notificationItem: NotificationItem,\r\n mo: MetaobjectDataModel | null,\r\n uiOptions: NotifyOptions,\r\n otherOptions: Record<string, any>\r\n ): void {\r\n if (!this.SupportNotifications) {\r\n this._logService.warn(`InApp Notification is not supported.`);\r\n uiOptions = uiOptions ?? {};\r\n uiOptions.NotificationItem = notificationItem;\r\n this._popupNotify(notificationItem, mo, uiOptions, otherOptions);\r\n return;\r\n }\r\n this._inAppNotify(notificationItem);\r\n }\r\n private notificationLoading(loading): void {\r\n this._notificationLoading$.next(loading);\r\n }\r\n private _setNotificationLoading(molist: MetaobjectDataModel[], loading: boolean = true): string[] {\r\n const molistCurr = this._notifications$.getValue();\r\n const moIds = molist.map((c) => c.Id);\r\n const molistWithLoadingProperty = molistCurr.map((c) => ({\r\n ...c,\r\n $NotificatoinLoading: moIds.indexOf(c.Id) !== -1 ? loading : c.$NotificatoinLoading\r\n }));\r\n this._notifications$.next([...molistWithLoadingProperty]);\r\n return moIds;\r\n }\r\n private _popupNotify(\r\n notificationItem: NotificationItem,\r\n mo: MetaobjectDataModel | null,\r\n uiOptions: NotifyOptions,\r\n otherOptions: Record<string, any>\r\n ): void {\r\n this._popupService.popupNotify(\r\n notificationItem.$SafeContent,\r\n notificationItem.Title,\r\n notificationItem.Subject,\r\n notificationItem.Image,\r\n mo,\r\n uiOptions,\r\n otherOptions\r\n );\r\n }\r\n private _prepareProperties(\r\n notificationItem: NotificationItem,\r\n mo: MetaobjectDataModel,\r\n content: string\r\n ): NotificationItem {\r\n if (!mo) {\r\n return notificationItem;\r\n }\r\n return {\r\n ...notificationItem,\r\n ...mo,\r\n UiActions: !mo.UiActions ? [] : JSON.parse(mo.UiActions),\r\n CreationDate: mo.IMessage.CreationDate,\r\n CreationDate$Caption: mo.IMessage.CreationDate$Caption,\r\n CreatorUser: mo.IMessage.CreatorUser,\r\n CreatorUser$Caption: mo.IMessage.CreatorUser$Caption,\r\n Icon: `${BarsaApi.Bw.Origin()}${notificationItem.Icon}`,\r\n $SafeContent: this._domSanitizer.bypassSecurityTrustHtml(content)\r\n };\r\n }\r\n private _inAppNotify(notificationItem: NotificationItem): void {\r\n Notification.requestPermission((result) => {\r\n const lang = BarsaApi.LoginFormData.Culture;\r\n const isRtl = BarsaApi.LoginFormData.CulturesRtl[lang];\r\n\r\n if (result === 'granted') {\r\n this._serviceWorkerNotification.showNotification({\r\n notificationItem,\r\n isRtl,\r\n lang\r\n });\r\n } else {\r\n // TODO:permission denied\r\n this._logService.error('notification permission denied.');\r\n }\r\n });\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\nimport { Observable, Subject } from 'rxjs';\n\n@Injectable()\nexport class ColumnService {\n private _uiControlRendered = new Subject<void>();\n get uiControlRendered(): Observable<void> {\n return this._uiControlRendered.asObservable();\n }\n constructor() {}\n controlRendered(): void {\n this._uiControlRendered.next();\n }\n}\n","import { Injectable } from '@angular/core';\nimport { LogService } from './log.service';\nimport { PortalService } from './portal.service';\nimport { BarsaApi } from '../abstract-classes';\nimport { LocalStorageService } from './local-storage.service';\n\n@Injectable()\nexport class ServiceWorkerCommuncationService {\n _serviceWorker: ServiceWorker;\n _hidden: boolean;\n constructor(\n private _localStorage: LocalStorageService,\n private _logService: LogService,\n private _portalService: PortalService\n ) {}\n public init(): void {\n navigator.serviceWorker.ready.then((registration) => {\n if (registration.active) {\n this._serviceWorker = registration.active;\n this._subscribe();\n }\n });\n }\n protected _subscribe(): void {\n this._portalService.userLoggedIn$.pipe().subscribe((isLoggedIn) => this._isLoggedIn(isLoggedIn));\n this._portalService.documentVisibilitychange$\n .pipe()\n .subscribe((visibilitychange) => this._visibilitychange(visibilitychange));\n }\n protected _setDefaultOptions(): void {\n const token2 = this._localStorage.getItem(BarsaApi.LoginAction.token2StorageKey);\n const lang = BarsaApi.LoginFormData.Culture;\n const dir = BarsaApi.LoginFormData.IsRtl ? 'rtl' : 'ltr';\n\n this._postServiceWorker({ event: 'setOptions', options: { token2, lang, dir } });\n }\n protected _isLoggedIn(isLoggedIn: boolean): void {\n this._postServiceWorker({ event: 'isLoggedIn', options: { isLoggedIn } });\n this._setDefaultOptions();\n }\n protected _visibilitychange(documentIsHidden: boolean): void {\n this._postServiceWorker({ event: 'visibilitychange', options: { documentIsHidden } });\n }\n protected _postServiceWorker(message): void {\n console.log(`post message to sw ${JSON.stringify(message, null, 2)}`);\n if (!this._serviceWorker) {\n this._logService.warn(`service worker is undefined.`);\n return;\n }\n this._serviceWorker.postMessage(message);\n }\n}\n","import {\r\n Input,\r\n Output,\r\n EventEmitter,\r\n Component,\r\n ChangeDetectorRef,\r\n ElementRef,\r\n OnInit,\r\n OnDestroy,\r\n AfterViewInit,\r\n ChangeDetectionStrategy,\r\n Renderer2,\r\n Self,\r\n Optional,\r\n Inject,\r\n HostBinding\r\n} from '@angular/core';\r\nimport { DomSanitizer } from '@angular/platform-browser';\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { BehaviorSubject, combineLatest, Observable, Subject } from 'rxjs';\r\nimport { distinctUntilChanged, map, takeUntil } from 'rxjs/operators';\r\n\r\nimport { BaseComponent } from './base.component';\r\nimport { DateService } from '../date-services';\r\nimport { DIALOG_SERVICE } from '../injdection-tokens';\r\nimport { BbbTranslatePipe, NumeralPipe, PictureFieldSourcePipe } from '../pipes';\r\nimport { AudioRecordingService, ColumnService, PortalService, UploadService, VideoRecordingService } from '../services';\r\nimport { BarsaApi } from './barsa-api';\r\nimport { GeneralControlInfoModel, AbbrevationDeviceSize, MetaobjectDataModel } from './models';\r\nimport { getDeviceIsMobile } from '../constants';\r\n\r\nexport interface FieldSetting {\r\n [key: string]: any;\r\n ControlFieldCaption: string;\r\n ControlFieldCaptionTranslated: string;\r\n ControlFieldDefId: string;\r\n ControlName: string;\r\n RelatedFieldList: [];\r\n Hide: boolean;\r\n xtype: string;\r\n LabelPosition: string;\r\n IsMandatory: boolean;\r\n IsVisible: boolean;\r\n ShowLabel: boolean;\r\n IsReadOnly: boolean;\r\n IsEnabled: boolean;\r\n IsBold: boolean;\r\n IsAutomatic: boolean;\r\n JsonExtraProp: any | null;\r\n FieldIcon: string;\r\n IsLtr: boolean;\r\n}\r\n@Component({\r\n selector: 'bnrc-field-base',\r\n template: '',\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport abstract class FieldBaseComponent extends BaseComponent implements OnInit, OnDestroy, AfterViewInit {\r\n @Input() context: any;\r\n @Input() focusControl: boolean;\r\n @Input() layoutInfo: any;\r\n @Input() value: any;\r\n @Input() width: number;\r\n @Input() height: number;\r\n @Input() formHeight: number;\r\n @Input() inlineEdit: boolean;\r\n @Input() id: string;\r\n @Input() parametes: MetaobjectDataModel;\r\n @Output() valueChange = new EventEmitter<any>();\r\n @Output() formmatedValue = new EventEmitter<any>();\r\n @HostBinding('class.isMobile') isMobile = getDeviceIsMobile();\r\n JsonExtraProp: any;\r\n parameters: any;\r\n Setting: GeneralControlInfoModel;\r\n refresh$: Observable<any>;\r\n value$: Observable<any>;\r\n disable$: Observable<boolean>;\r\n readonly$: Observable<boolean>;\r\n disableOrReadonly$: Observable<boolean>;\r\n deviceSize$: Observable<AbbrevationDeviceSize>;\r\n el: any;\r\n mobileConfig: any = {\r\n title: 'انتخاب',\r\n approveButtonText: 'تایید',\r\n cancelButtonText: 'انصراف',\r\n hasCloseButton: true,\r\n dialogConfig: {\r\n ariaLabel: 'انتخاب'\r\n }\r\n };\r\n get customFieldInfo(): MetaobjectDataModel {\r\n return this.context.Setting.CustomFieldInfo;\r\n }\r\n private _refreshSource = new Subject<any>();\r\n private _valueChangedSource = new Subject<any>();\r\n private _disableChangedSource = new BehaviorSubject<boolean>(false);\r\n private _readonlyChangedSource = new BehaviorSubject<boolean>(false);\r\n\r\n constructor(\r\n protected _portalService: PortalService,\r\n protected _bbbPipe: BbbTranslatePipe,\r\n protected _picFieldSrc: PictureFieldSourcePipe,\r\n protected _numeralPipe: NumeralPipe,\r\n protected _el: ElementRef,\r\n protected _cdr: ChangeDetectorRef,\r\n protected _renderer2: Renderer2,\r\n protected _activatedRoute: ActivatedRoute,\r\n protected _domSanitizer: DomSanitizer,\r\n @Optional() @Inject(DIALOG_SERVICE) protected _dialogService: any,\r\n @Self() @Optional() protected _uploadService: UploadService,\r\n @Self() @Optional() protected _dateService: DateService,\r\n @Self() @Optional() protected _audioRecorder: AudioRecordingService,\r\n @Self() @Optional() protected _videoRecoder: VideoRecordingService,\r\n @Optional() protected _columnService: ColumnService\r\n ) {\r\n super();\r\n this.refresh$ = this._refreshSource.asObservable().pipe(takeUntil(this._onDestroy$));\r\n this.value$ = this._valueChangedSource.asObservable().pipe(takeUntil(this._onDestroy$));\r\n this.deviceSize$ = this._portalService.deviceSize$;\r\n this.disable$ = this._disableChangedSource\r\n .asObservable()\r\n .pipe(takeUntil(this._onDestroy$), distinctUntilChanged());\r\n this.readonly$ = this._readonlyChangedSource\r\n .asObservable()\r\n .pipe(takeUntil(this._onDestroy$), distinctUntilChanged());\r\n this.disableOrReadonly$ = combineLatest([this.readonly$, this.disable$]).pipe(\r\n map(([disable, readonly]) => disable || readonly),\r\n distinctUntilChanged()\r\n );\r\n this.el = _el;\r\n }\r\n\r\n ngOnInit(): void {\r\n super.ngOnInit();\r\n if (this.context) {\r\n // this.context.rendered = true;\r\n this.Setting = this.context ? this.context.Setting : null;\r\n const readonly = this.context?.readOnly;\r\n this._setReadonly(readonly, false);\r\n this._setDisable(this.context.disable, false);\r\n this.parameters = BarsaApi.Common.Util.TryGetValue(this.context, 'Setting.CustomUi.Parameters', null);\r\n this.JsonExtraProp = BarsaApi.Common.Util.TryGetValue(this.context, 'Setting.JsonExtraProp', null);\r\n }\r\n this._addListener();\r\n this._setMobileConfig();\r\n }\r\n ngOnDestroy(): void {\r\n super.ngOnDestroy();\r\n this._removeListener();\r\n }\r\n ngAfterViewInit(): void {\r\n super.ngAfterViewInit();\r\n this._columnService?.controlRendered();\r\n if (this.focusControl) {\r\n const elDom = this._el.nativeElement as HTMLElement;\r\n const focusableNodeList: NodeListOf<HTMLElement> = elDom.querySelectorAll(\r\n ' button, [href], input, select, textarea, [tabindex]:not([tabindex=”-1″])'\r\n );\r\n let focused = false;\r\n focusableNodeList.forEach((el: HTMLElement) => {\r\n const tagName: string = el.tagName.toLocaleLowerCase();\r\n if (\r\n !focused &&\r\n el.offsetWidth > 0 &&\r\n el.offsetHeight > 0 &&\r\n el.getAttribute('disabled') !== 'true' &&\r\n el.getAttribute('ng-reflect-disabled') !== 'true' &&\r\n !tagName.startsWith('fdp')\r\n ) {\r\n el.focus();\r\n focused = true;\r\n }\r\n });\r\n }\r\n }\r\n\r\n fireContextEvent(event: string, value: any, value1?: any, value2?: any): void {\r\n this.context.fireEvent(event, value, value1, value2);\r\n }\r\n protected _setMobileConfig(): void {\r\n const mobileConfig = this.mobileConfig;\r\n mobileConfig.title = this.Setting?.ControlFieldCaptionTranslated;\r\n mobileConfig.dialogConfig && (mobileConfig.dialogConfig.ariaLabel = mobileConfig.title);\r\n mobileConfig.approveButtonText = this._bbbPipe.transform('Ok');\r\n mobileConfig.cancelButtonText = this._bbbPipe.transform('Cancel');\r\n }\r\n protected _addListener(): void {\r\n if (this.context && this.context.on) {\r\n this.context.on({\r\n ControlValueChanged: this._setValue.bind(this),\r\n ControlDisableChanged: this._setDisable.bind(this),\r\n ControlReadonlyChanged: this._setReadonly.bind(this),\r\n ControlRefresh: this._setRefresh.bind(this)\r\n });\r\n }\r\n }\r\n protected _removeListener(): void {\r\n if (this.context && this.context.un) {\r\n this.context.un('ControlValueChanged', this._setValue);\r\n this.context.un('ControlDisableChanged', this._setDisable);\r\n this.context.un('ControlReadonlyChanged', this._setReadonly);\r\n this.context.un('ControlRefresh', this._setRefresh);\r\n }\r\n }\r\n protected _setValue(value): void {\r\n this.value = value;\r\n this._valueChangedSource.next(value);\r\n this._cdr.detectChanges();\r\n }\r\n protected _setRefresh(value): void {\r\n this._refreshSource.next(value);\r\n this._cdr.detectChanges();\r\n }\r\n protected _setDisable(value, changeDetect = true): void {\r\n this._disableChangedSource.next(value);\r\n if (changeDetect) {\r\n this._cdr.detectChanges();\r\n }\r\n }\r\n protected _setReadonly(value, changeDetect = true): void {\r\n this._readonlyChangedSource.next(value);\r\n if (changeDetect) {\r\n this._cdr.detectChanges();\r\n }\r\n }\r\n}\r\n","import { Observable, Subject } from 'rxjs';\nimport { debounceTime, filter } from 'rxjs/operators';\n\nexport enum IntersectionStatus {\n Visible = 'Visible',\n Pending = 'Pending',\n NotVisible = 'NotVisible'\n}\n/* eslint-disable */\nexport const fromIntersectionObserver = (\n element: HTMLElement,\n config: IntersectionObserverInit,\n debounce = 0,\n autoStop = true\n) =>\n new Observable<IntersectionStatus>((subscriber) => {\n const subject$ = new Subject<{\n entry: IntersectionObserverEntry;\n observer: IntersectionObserver;\n }>();\n\n const intersectionObserver = new IntersectionObserver((entries, observer) => {\n entries.forEach((entry) => {\n if (isIntersecting(entry)) {\n subject$.next({ entry, observer });\n }\n });\n }, config);\n\n subject$.subscribe(() => {\n subscriber.next(IntersectionStatus.Pending);\n });\n\n subject$.pipe(debounceTime(debounce), filter(Boolean)).subscribe(async (x: any) => {\n const { entry, observer } = x;\n const isEntryVisible = await isVisible(entry.target as HTMLElement);\n\n if (isEntryVisible) {\n subscriber.next(IntersectionStatus.Visible);\n autoStop && observer.unobserve(entry.target);\n } else {\n subscriber.next(IntersectionStatus.NotVisible);\n }\n });\n\n intersectionObserver.observe(element);\n\n return {\n unsubscribe(): void {\n intersectionObserver.disconnect();\n subject$.unsubscribe();\n }\n };\n });\n\nasync function isVisible(element: HTMLElement): Promise<boolean> {\n return new Promise((resolve) => {\n const observer = new IntersectionObserver(([entry]) => {\n resolve(entry.isIntersecting);\n observer.disconnect();\n });\n\n observer.observe(element);\n });\n}\n\nfunction isIntersecting(entry: IntersectionObserverEntry): boolean {\n return entry.isIntersecting || entry.intersectionRatio > 0;\n}\n","import {\n Input,\n Component,\n Output,\n EventEmitter,\n OnInit,\n OnDestroy,\n ChangeDetectionStrategy,\n ElementRef,\n Self,\n ChangeDetectorRef,\n HostBinding\n} from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { filter, map, takeUntil, merge } from 'rxjs/operators';\n\nimport { BaseComponent } from './base.component';\nimport { getDeviceIsMobile, getParentHeight, getUniqueId } from '../constants';\nimport { FormPanelService } from '../services/form-panel.service';\nimport { BarsaApi } from './barsa-api';\nimport {\n FormSetting,\n FormViewSetting,\n FormVisibilityStatus,\n IHeaderLayout,\n LayoutSetting,\n MetaobjectDataModel\n} from './models';\nimport { BreadcrumbService, PortalService } from '../services';\nimport { ControlUiPipe } from '../pipes';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { fromIntersectionObserver } from '../from-intersection-observer';\n\n@Component({\n selector: 'bnrc-form-base',\n template: '',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class FormBaseComponent extends BaseComponent implements OnInit, OnDestroy {\n @HostBinding('attr.id') id = `form_${getUniqueId(4)}`;\n @Input() context: {\n [key: string]: any;\n config: any;\n Setting: FormSetting;\n };\n @Output() formClose = new EventEmitter();\n listFieldUi: any;\n isWizard: boolean;\n parameters: MetaobjectDataModel;\n isMobile: boolean;\n\n toolbarVisible$: Observable<boolean>;\n hideClose$: Observable<boolean>;\n hideTitle$: Observable<boolean>;\n hidePin$: Observable<boolean>;\n title$: Observable<string>;\n toolbarItems$: Observable<any[]>;\n workflowButtons$: Observable<any[]>;\n headerLayout$: Observable<IHeaderLayout | null>;\n layout94$: Observable<any>;\n layout94: any;\n maxContentWidth$: Observable<string>;\n formWidth$: Observable<string>;\n headerDescription$: Observable<string>;\n headerRemoveContentPadding$: Observable<boolean>;\n headerSubtitle$: Observable<string>;\n avatar$: Observable<any>;\n workflowPanelUi$: Observable<any>;\n view$: Observable<FormViewSetting>;\n mo$: Observable<MetaobjectDataModel | null>;\n isSimple$: Observable<boolean>;\n fieldDict$: Observable<{ [key: string]: string } | undefined>;\n mask$: Observable<boolean>;\n isSearchPanel: boolean;\n isModal: boolean;\n isSubForm: boolean;\n modernTabs$: Observable<LayoutSetting[]>;\n isFormReport: boolean;\n landscape$: Observable<boolean>;\n standalone$: Observable<boolean>;\n protected _style: HTMLStyleElement;\n protected _standalone: boolean;\n private _formIntersection: any;\n formVisibilityStatus: FormVisibilityStatus;\n\n constructor(\n protected _breadcrumbService: BreadcrumbService,\n protected _portalService: PortalService,\n protected _router: Router,\n protected _el: ElementRef,\n protected _controlUiPipe: ControlUiPipe,\n @Self() protected _formPanelService: FormPanelService,\n protected _activatedRoute: ActivatedRoute,\n protected _cdr: ChangeDetectorRef\n ) {\n super();\n this._formPanelService.isSearchPanel$.subscribe((isSearchPanel) => {\n this.isSearchPanel = isSearchPanel;\n });\n this.hideClose$ = this._formPanelService.hideClose$;\n this.hideTitle$ = this._formPanelService.hideTitle$;\n this.hidePin$ = this._formPanelService.hidePin$;\n this.toolbarVisible$ = this._formPanelService.toolbarVisible$;\n this.title$ = this._formPanelService.title$;\n this.toolbarItems$ = this._formPanelService.toolbarItems$;\n this.workflowButtons$ = this._formPanelService.workflowButtons$;\n this.headerLayout$ = this._formPanelService.headerLayout$;\n this.layout94$ = this._formPanelService.layout$;\n this.maxContentWidth$ = this._formPanelService.maxContentWidth$;\n this.formWidth$ = this._formPanelService.formWidth$;\n this.headerSubtitle$ = this._formPanelService.headerSubtitle$;\n this.avatar$ = this._formPanelService.avatar$;\n this.workflowPanelUi$ = this._formPanelService.workflowPanelUi$;\n this.view$ = this._formPanelService.view$;\n this.mo$ = this._formPanelService.mo$;\n this.fieldDict$ = this._formPanelService.fieldDict$;\n this.isSimple$ = this._formPanelService.isSimpleForm$;\n this.mask$ = this._formPanelService.mask$;\n this.headerDescription$ = this._formPanelService.headerDescription$;\n this.headerRemoveContentPadding$ = this._formPanelService.headerRemoveContentPadding$;\n this._formPanelService.context$.pipe(takeUntil(this._onDestroy$)).subscribe();\n this._formPanelService.view$.pipe(takeUntil(this._onDestroy$)).subscribe();\n this.landscape$ = this._portalService.landscape$;\n this.standalone$ = this._portalService.standalone$;\n this._portalService.standalone$.pipe(takeUntil(this._onDestroy$)).subscribe((c) => (this._standalone = c));\n }\n get forceClose$(): Observable<void> {\n return this._formPanelService.forceClose$;\n }\n\n ngOnInit(): void {\n super.ngOnInit();\n this._formPanelService.context = this.context;\n this.isMobile = getDeviceIsMobile();\n this.listFieldUi = this.context._dictFieldUi;\n\n this.isModal = this.context.Setting?.IsModal;\n this.isSubForm = this.context.IsSubForm;\n this.isFormReport = this.context.IsFormReport;\n this._setParamters();\n this._addDynamicFormStyles(this.parameters?.CssStyles);\n this.modernTabs$ = this.layout94$.pipe(\n filter((c) => c),\n map((layout94) => (this.layout94 = layout94)),\n /* eslint-disable */\n merge(this._formPanelService.groupLayout$),\n map((_) => {\n if (this.layout94.items[0].xtype !== 'Ly.LayoutTabPanel') {\n return [];\n }\n const tabs: LayoutSetting[] = this.layout94.items[0].items;\n return tabs.filter((c) => c.Visible !== false);\n })\n );\n setTimeout(() => {\n this.obtainHeight();\n }, 0);\n this._portalService.windowResize$.subscribe((e) => {\n this.obtainHeight();\n });\n this._formIntersection = fromIntersectionObserver(\n this._el.nativeElement,\n {\n root: null,\n rootMargin: '0px',\n threshold: 0\n },\n 100,\n false\n )\n .pipe(takeUntil(this._onDestroy$))\n .subscribe((e) => {\n this._onInView(e);\n });\n }\n protected _onInView(e): void {\n if (this.isMobile) {\n this.formVisibilityStatus = e;\n this._cdr.detectChanges();\n }\n }\n ngOnDestroy(): void {\n super.ngOnDestroy();\n this._formIntersection.unsubscribe();\n this._formPanelService.destroy();\n this._removeDynamicFormStyles();\n }\n onClose(): void {\n this.context.fireEvent('RequestForClose', this.context);\n }\n onToolbarClick(btn): void {\n this._formPanelService.toolbarClick(btn);\n }\n onWorkflowChoiceClick(wfChoice): void {\n this._formPanelService.wfChoice(wfChoice);\n }\n fieldChange(fieldName, value): void {\n const fieldUi = this.context._listFieldUi.find((c) => c.Setting.ControlName === fieldName);\n fieldUi.value = value;\n fieldUi.fireEvent('change', fieldUi);\n }\n searchClick(): void {\n const fieldUi = this.context._listFieldUi.find((c) => c.originalXtype === 'Ui.SearchCommandInfoUi');\n\n fieldUi.fireEvent(BarsaApi.Ul.FormPanelCtrlr.EventEnum.SearchClick, fieldUi);\n }\n protected _addDynamicFormStyles(cssStyles: string): void {\n if (!cssStyles) {\n return;\n }\n cssStyles = cssStyles.replace(/:root/gi, `#${this.id}`);\n const head = document.head || document.getElementsByTagName('head')[0];\n const style: any = document.createElement('style');\n\n head.appendChild(style);\n\n style.type = 'text/css';\n if (style.styleSheet) {\n // This is required for IE8 and below.\n style.styleSheet.cssText = cssStyles;\n } else {\n style.appendChild(document.createTextNode(cssStyles));\n }\n this._style = style;\n }\n protected _removeDynamicFormStyles(): void {\n if (!this._style) {\n return;\n }\n const head = document.head || document.getElementsByTagName('head')[0];\n head.removeChild(this._style);\n }\n protected obtainHeight(): void {\n const parentHeight = getParentHeight(this._el.nativeElement as HTMLElement);\n this._formPanelService.setFormHeight(parentHeight);\n }\n private _setParamters(): void {\n this.parameters = BarsaApi.Common.Util.TryGetValue(this.context, 'Setting.View.CustomUi.Parameters', null);\n }\n}\n","import { Input, Component, EventEmitter, Output, HostBinding, OnInit, ChangeDetectionStrategy } from '@angular/core';\nimport { BaseComponent } from './base.component';\n@Component({\n selector: 'bnrc-form-toolbar-base',\n template: '',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class FormToolbarBaseComponent extends BaseComponent implements OnInit {\n @Input() buttons: any[];\n @Input() visible = true;\n @Input() size: any;\n @Input() device: any;\n @Input() deviceSize: any;\n @Input() rtl: boolean;\n @Input() landscape: boolean;\n @Input() standalone: boolean;\n @Output() toolClick = new EventEmitter<any>();\n @HostBinding('attr.rtl') _rtl;\n ngOnInit(): void {\n super.ngOnInit();\n this._rtl = this.rtl;\n }\n\n onToolClick(btn): void {\n this.toolClick.emit(btn);\n }\n}\n","import { Input, Component, ChangeDetectionStrategy } from '@angular/core';\nimport { BaseComponent } from './base.component';\n\nexport interface NavigatorItem {\n [key: string]: any;\n Caption: string;\n FolderId: string;\n IconUrl: string;\n Id: string;\n IsRoot: boolean;\n IsTab: boolean;\n Name: string;\n NotLoaded: boolean;\n ReportId: string;\n Parent?: NavigatorItem;\n Items: NavigatorItem[];\n}\nexport interface SystemSetting {\n Id: string;\n Name: string;\n Caption: string;\n IconName: string;\n RootFolderId: string;\n IsLoaded: boolean;\n IsUiCreated: boolean;\n IsActive: boolean;\n FormSetting: string;\n CustomCodeError: string;\n HasVerifyPassword: boolean;\n Navigator: {\n Root: NavigatorItem;\n };\n /// <summary>\n /// ExtraData is an inline object consisting some complementary properties like Navigator, Commands and Workflow list\n /// </summary>\n ExtraData: any;\n}\n@Component({\n selector: 'bnrc-system-base',\n template: '',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class SystemBaseComponent extends BaseComponent {\n @Input() context: {\n [key: string]: any;\n SystemData: SystemSetting;\n SystemNavUi: any;\n SystemContainerUi: any;\n };\n constructor() {\n super();\n }\n @Input() showFormPanel = (): void => {};\n}\n","import {\n Input,\n Component,\n EventEmitter,\n Output,\n OnInit,\n AfterViewInit,\n OnDestroy,\n ChangeDetectionStrategy\n} from '@angular/core';\n\nimport { BehaviorSubject, Observable } from 'rxjs';\nimport { debounceTime, map, pluck, takeUntil, tap } from 'rxjs/operators';\n\nimport { BaseComponent } from './base.component';\nimport { GetAllColumnsSorted, getUniqueId } from '../constants';\nimport { PortalService } from '../services/portal.service';\nimport { UlvMainService } from '../services/ulvmain.service';\nimport { BarsaApi } from './barsa-api';\nimport {\n MetaobjectDataModel,\n GridSetting,\n ColSetting,\n ReportViewColumn,\n SortSetting,\n MenuItem,\n PagingSetting,\n AbbrevationDeviceSize,\n columnsResizedEventArgs,\n FormSetting\n} from './models';\n\nexport interface ReportSetting {\n [key: string]: any;\n Id: string;\n Extra: any;\n}\n@Component({\n selector: 'bnrc-report-base',\n template: '',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class ReportBaseComponent extends BaseComponent implements OnInit, AfterViewInit, OnDestroy {\n @Input() context: {\n [key: string]: any;\n Setting: ReportSetting;\n };\n @Input() currentPage: number;\n\n @Output() pageChange = new EventEmitter<number>();\n @Output() pageSizeChange = new EventEmitter<number>();\n\n defaultGridSetting = {\n ColSettingList: [],\n AutoSizeColumns: false,\n SortSettingList: [],\n Hidden: true\n };\n itemSelector: string;\n allColumns: ReportViewColumn[];\n id: string;\n\n sortSettings: { IsGrouped: boolean; Name: string; SortDirection: string }[] | null = null;\n parameters: any;\n fields: any;\n\n visibleColumns$: Observable<ReportViewColumn[]>;\n searchTerm$: Observable<string>;\n moDataList$: Observable<MetaobjectDataModel[]>;\n gridSetting$: Observable<GridSetting>;\n groupby$: Observable<SortSetting[]>;\n allChecked$: Observable<boolean>;\n pagingSetting$: Observable<PagingSetting | null>;\n deviceSize$: Observable<AbbrevationDeviceSize>;\n mask$: Observable<boolean>;\n title$: Observable<string>;\n inDialog$: Observable<boolean>;\n isMultiSelect$: Observable<boolean>;\n fullscreen$: Observable<boolean>;\n menuItems$: Observable<MenuItem[]>;\n toolbarButtons$: Observable<any[]>;\n toolbarEnable$: Observable<boolean>;\n hideToolbar$: Observable<boolean>;\n selectedMo$: Observable<MetaobjectDataModel | undefined>;\n conditionalFormats$: Observable<any[]>;\n newInlineEditMo$: Observable<MetaobjectDataModel | null>;\n cartableTemplates$: Observable<{ [key: string]: FormSetting } | null>;\n cartableChildsMo$: Observable<{ [key: string]: MetaobjectDataModel } | null>;\n selectedCount$: Observable<number>;\n\n protected _visibleColumnsSource = new BehaviorSubject<ReportViewColumn[]>([]);\n protected searchTermSource = new BehaviorSubject<string>('');\n protected gridSettingSource = new BehaviorSubject<GridSetting>(this.defaultGridSetting);\n protected groupbySource = new BehaviorSubject<SortSetting[]>([]);\n private _allCheckedSource = new BehaviorSubject<boolean>(false);\n\n constructor(protected _portalService: PortalService, protected _ulvMainService: UlvMainService) {\n super();\n this.visibleColumns$ = this._visibleColumnsSource.asObservable();\n this.searchTerm$ = this.searchTermSource.asObservable();\n this.gridSetting$ = this.gridSettingSource.asObservable();\n this.groupby$ = this.groupbySource.asObservable();\n this.allChecked$ = this._allCheckedSource.asObservable();\n this.fields = {};\n this.toolbarButtons$ = this._ulvMainService.toolbarButtons$;\n }\n get moDataList(): MetaobjectDataModel[] {\n return this._ulvMainService.moDataListSource.getValue();\n }\n\n ngOnInit(): void {\n super.ngOnInit();\n this.rendered = true;\n this.context.rendered = true;\n this.inDialog$ = this._ulvMainService.inDialog$;\n this.isMultiSelect$ = this._ulvMainService.isMultiSelect$;\n this.fullscreen$ = this._ulvMainService.fullscreen$;\n this.deviceSize$ = this._portalService.deviceSize$;\n this.hideToolbar$ = this._ulvMainService.hideToolbar$;\n this.newInlineEditMo$ = this._ulvMainService.newInlineEditMo$;\n this.conditionalFormats$ = this._ulvMainService.conditionalFormats$;\n this.cartableTemplates$ = this._ulvMainService.cartableTemplates$;\n this.cartableChildsMo$ = this._ulvMainService.cartableChildsMo$;\n this.title$ = this._ulvMainService.title$.pipe(pluck('text'));\n this.menuItems$ = this._ulvMainService.menuItems$;\n this.pagingSetting$ = this._ulvMainService.pagingSetting$;\n this.toolbarEnable$ = this._ulvMainService.enable$;\n this.mask$ = this._ulvMainService.viwerMask$.pipe(debounceTime(200));\n this.selectedMo$ = this._ulvMainService.moDataList$.pipe(map((items) => items.find((c) => c.$IsChecked)));\n this.moDataList$ = this._ulvMainService.moDataList$.pipe(tap((items) => this._setAllChecked(items)));\n this.selectedCount$ = this._ulvMainService.selectedCount$;\n\n this.context.on({\n MoDataListChanged: this._moDataListChanged.bind(this),\n GridSettingChanged: this._gridSettingChanged.bind(this)\n });\n // in gheire faal bood chon moshkel eijad mikard\n // va dar ulv event baiad raise shavad\n // ke data amade shode va ulvmainservice an ra begirad.gozaresh mortabet\n this._ulvMainService.reSetMoDataList(this.context.moDataList);\n let gridSetting = this.defaultGridSetting;\n if (this.context.GetGridSetting) {\n gridSetting = this.context.GetGridSetting() || this.defaultGridSetting;\n }\n\n this._setVisibleColumns();\n\n gridSetting.SortSettingList ||= [];\n this.allColumns = this.context.allColumns || [];\n this.updateGridSetting(gridSetting, false, false);\n this.parameters = BarsaApi.Common.Util.TryGetValue(\n this.context,\n 'Setting.ClassNames.CustomUi.Parameters',\n null\n );\n this.id = getUniqueId(4);\n\n this.itemSelector = BarsaApi.Common.Util.TryGetValue(this.context, 'Setting.ClassNames.CustomUiRow.Selector');\n\n this.parameters = BarsaApi.Common.Util.TryGetValue(this.context, 'Setting.ClassNames.CustomUi.Parameters');\n const fieldSettings = BarsaApi.Common.Util.TryGetValue(this.parameters, 'FieldSettings.MoDataList', []);\n\n fieldSettings.forEach((c) => {\n this.fields[c.ComponentParameter.$Caption] = c.$Caption;\n });\n }\n\n ngAfterViewInit(): void {\n super.ngAfterViewInit();\n\n this.deviceSize$\n .pipe(\n takeUntil(this._onDestroy$),\n tap((deviceSize) => this._deviceSizeChanged(deviceSize))\n )\n .subscribe();\n this._portalService.windowResize$.pipe(takeUntil(this._onDestroy$)).subscribe(() => this._windowResized());\n this.context?.fireEvent('afterrender', this);\n }\n ngOnDestroy(): void {\n super.ngOnDestroy();\n this.context.un('MoDataListChanged', this._moDataListChanged);\n this.context.un('GridSettingChanged', this._gridSettingChanged);\n }\n protected _gridSettingChanged(setting): void {\n this.gridSettingSource.next(setting);\n }\n protected _moDataListChanged(moDataList): void {\n this._ulvMainService.reSetMoDataList(moDataList);\n }\n protected _setAllChecked(items: MetaobjectDataModel[]): void {\n this._allCheckedSource.next(!items.some((c) => !c.$IsChecked));\n }\n\n protected _handleColumnsResized(e: columnsResizedEventArgs): void {\n const gridSetting: GridSetting = this.gridSettingSource.getValue();\n const { columns, resized } = e;\n const colList: ColSetting[] = gridSetting.ColSettingList;\n resized.forEach((column1) => {\n const resizedColumn = columns.find((c) => c.Name === column1.name);\n const column = colList.find((c) => c.Name === resizedColumn?.Name);\n if (column) {\n column.Width = column1.width;\n } else if (resizedColumn) {\n colList.push({ IsHidden: resizedColumn.Hidden, Name: resizedColumn.Name, Width: column1.width });\n }\n });\n this.updateGridSetting(gridSetting, false);\n this._setVisibleColumns();\n }\n protected _setVisibleColumns(): void {\n const columns = GetAllColumnsSorted(this.context);\n this._visibleColumnsSource.next(columns.filter((c) => !c.Hidden));\n }\n protected applyGroupby(): void {\n const sortList: SortSetting[] = BarsaApi.Common.Util.TryGetValue(\n this.context,\n 'Setting.View.GridSetting.SortSettingList',\n []\n );\n this.groupbySource.next(sortList.filter((c) => c.IsGrouped));\n }\n protected _raiseRowClick(index, mo): void {\n this.context?.fireEvent('rowdblclick', this.context, index, mo);\n }\n /* eslint-disable */\n protected _deviceSizeChanged(_: string): void {}\n protected _windowResized(): void {}\n\n protected _openMo(mo, i): void {\n this._raiseRowClick(i, mo);\n }\n\n protected updateGridSetting(setting, isSort = false, raiseEvent = true): void {\n if (!setting) {\n return;\n }\n this.context.Setting.View.GridSetting = setting;\n this.gridSettingSource.next(setting);\n this.applyGroupby();\n if (isSort) {\n setting.Event = 'SortChange';\n } else {\n setting.Event = '';\n }\n this._deviceSizeChanged(this._portalService.deviceSize);\n if (raiseEvent) {\n this.context.fireEvent('UserSettingChange', this.context, setting);\n }\n }\n protected _ulvCommandClicked(mo, index): void {\n this._removeCheckedAll();\n this._select(mo, index);\n }\n protected _checkedAll(): void {\n const moDataList = this.moDataList;\n moDataList.forEach((mo) => (mo.$IsChecked = true));\n this._ulvMainService.reSetMoDataList();\n this.context.fireEvent('rowSelectAll', this.context);\n }\n protected _removeCheckedAll(): void {\n this._deselctAll();\n // this.context.fireEvent('rowDeselectAll', this.context);\n }\n\n protected _deselctAll(): void {\n const moDataList = this.moDataList;\n moDataList.forEach((mo) => (mo.$IsChecked = false));\n this._ulvMainService.reSetMoDataList();\n }\n protected _deselect(mo, index): MetaobjectDataModel {\n mo.$IsChecked = false;\n this._ulvMainService.reSetMoDataList();\n this.context.fireEvent('rowdeselect', this.context, index, mo);\n return mo;\n }\n\n protected _select(mo, index): MetaobjectDataModel {\n // this._deselctAll();\n mo.$IsChecked = true;\n this._ulvMainService.reSetMoDataList();\n this.context.fireEvent('rowselect', this.context, index, mo);\n return mo;\n }\n\n protected _doCheckedAll(checked): void {\n if (checked) {\n this._checkedAll();\n } else {\n this._removeCheckedAll();\n }\n }\n\n protected _getSelected(): MetaobjectDataModel | null {\n const selectedMo = this.moDataList.find((mo) => mo.$IsChecked);\n if (!selectedMo) {\n return null;\n }\n selectedMo.json = selectedMo;\n return selectedMo;\n }\n protected refreshContextMoDataList(moDataList): void {\n this.context.fireEvent('RefreshContextMoDataList', moDataList);\n }\n}\n","import {\n Input,\n Component,\n HostBinding,\n HostListener,\n Output,\n EventEmitter,\n OnInit,\n ChangeDetectionStrategy\n} from '@angular/core';\nimport { BaseComponent } from './base.component';\nimport { BarsaApi } from './barsa-api';\nimport { MetaobjectDataModel } from './models';\nimport { ReportSetting } from './report-base';\n\nexport interface FieldSettings extends MetaobjectDataModel {\n ComponentParameter: MetaobjectDataModel;\n RelatedField: string;\n}\nexport interface ReportItemSetting extends MetaobjectDataModel {\n FieldSettings: {\n MoDataList: Array<FieldSettings>;\n };\n}\n\n@Component({\n selector: 'bnrc-report-item-base',\n template: '',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class ReportItemBaseComponent extends BaseComponent implements OnInit {\n @Output() itemClick = new EventEmitter();\n @HostBinding('class') classNames2: string;\n @Input() classNames: string;\n @Input() context: {\n [key: string]: any;\n Setting: ReportSetting;\n } | null;\n @Input() mo: MetaobjectDataModel;\n @Input() allColumns: any[];\n @Input() index = -1;\n fields: any;\n parameters: ReportItemSetting | null;\n constructor() {\n super();\n this.fields = {};\n }\n\n @HostListener('click', ['$event.target'])\n onClick(): void {\n this.itemClick.emit({ index: this.index, mo: this.mo });\n }\n\n ngOnInit(): void {\n super.ngOnInit();\n this.classNames2 = this.classNames;\n this.parameters = BarsaApi.Common.Util.TryGetValue(this.context, 'Setting.ClassNames.CustomUiRow.Parameters');\n const fieldSettings = BarsaApi.Common.Util.TryGetValue(this.parameters, 'FieldSettings.MoDataList', []);\n\n fieldSettings.forEach((c) => {\n this.fields[c.ComponentParameter.$Caption] = c.$Caption;\n });\n }\n}\n","import { Input, Component, ChangeDetectionStrategy } from '@angular/core';\nimport { BaseComponent } from './base.component';\nimport { SystemSetting } from './system-base';\n\nexport interface ApplicationSetting {\n [key: string]: any;\n ConnectionInfo: string;\n AllowManagementWindow: boolean;\n DefaultSystemId: string;\n EnableCompactArray: boolean;\n EnableNotification: boolean;\n EnableScanner: boolean;\n ForceFormHelpButton: boolean;\n HideDeleteInForms: boolean;\n HideThemeButton: boolean;\n IsAdmin: boolean;\n IsInitializing: boolean;\n IsOnActivityDirectory: boolean;\n IsUser: boolean;\n MaxExcelExportRows: number;\n NewDateFix: boolean;\n NoLogout: boolean;\n ScannerAgentValidVersion: string;\n SecurityType: string;\n ShowDebugToolbar: boolean;\n ShowNextPrivious: boolean;\n SystemDict: { [key: string]: SystemSetting };\n Version: string;\n VersionSpl: string;\n User: {\n DispalyName: string;\n Id: string;\n Name: string;\n };\n WebConfig: {\n Workflow: {\n ShowInfoBar: true;\n ShowToolbar: true;\n ShowUserMsg: true;\n };\n };\n}\n@Component({\n selector: 'bnrc-application-base',\n template: '',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class ApplicationBaseComponent extends BaseComponent {\n // @ViewChildren(PlaceHolderDirective) placeHoldersRef: QueryList<\n // PlaceHolderDirective\n // >;\n @Input() context: {\n [key: string]: any;\n Setting: ApplicationSetting;\n };\n @Input() selectedSystemId: string;\n systemList: any[] = [];\n}\n","import { Input, Component, ChangeDetectionStrategy, ChangeDetectorRef } from '@angular/core';\nimport { BaseComponent } from './base.component';\nimport { getUniqueId } from '../constants';\nimport { FormPanelService } from '../services/form-panel.service';\nimport { LayoutSetting } from './models';\n\n@Component({\n selector: 'bnrc-layout-item-base',\n template: '',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class LayoutItemBaseComponent extends BaseComponent {\n @Input() config: LayoutSetting;\n @Input() isPanel: boolean;\n isSearchPanel: boolean;\n searchPanelIsObject: boolean;\n id: string;\n constructor(protected formPanelService: FormPanelService, protected _cdr: ChangeDetectorRef) {\n super();\n this.id = getUniqueId(4);\n this.formPanelService.isSearchPanel$.subscribe((isSearchPanel) => {\n this.isSearchPanel = isSearchPanel;\n });\n this.formPanelService.searchPanelIsObject$.subscribe((searchPanelIsObject) => {\n this.searchPanelIsObject = searchPanelIsObject;\n });\n }\n}\n","import {\n Input,\n Component,\n Self,\n ViewChild,\n ElementRef,\n OnInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef\n} from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { getUniqueId } from '../constants';\nimport { FormPanelService } from '../services/form-panel.service';\nimport { LayoutService } from '../services/layout.service';\nimport { LayoutItemBaseComponent } from './layout-item-base';\nimport { LayoutSetting } from './models';\n\n@Component({\n selector: 'bnrc-layout-panel-base',\n template: '',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class LayoutPanelBaseComponent extends LayoutItemBaseComponent implements OnInit {\n @Input() isPanel: boolean;\n @Input() config: LayoutSetting;\n @ViewChild('canvas', { static: true }) canvasRef: ElementRef;\n maxLabelWidth$: Observable<number>;\n isSearchPanel: boolean;\n id: string;\n constructor(\n public el: ElementRef,\n protected formPanelService: FormPanelService,\n @Self() protected layoutService: LayoutService,\n protected _cdr: ChangeDetectorRef\n ) {\n super(formPanelService, _cdr);\n this.id = getUniqueId(4);\n layoutService.id = 'panel' + this.id;\n this.formPanelService.isSearchPanel$.subscribe((isSearchPanel) => {\n this.isSearchPanel = isSearchPanel;\n });\n }\n ngOnInit(): void {\n super.ngOnInit();\n this.maxLabelWidth$ = this.layoutService.maxWidth$;\n this._calcWidth(this.config);\n }\n _calcWidth(config): void {\n config.items.forEach((item) => {\n switch (item.xtype) {\n case 'Ly.LayoutJoin':\n this._calcWidth(item);\n break;\n case 'Ly.LayoutControl':\n this._setLabelWidth(item);\n break;\n }\n });\n }\n _setLabelWidth(item: any): void {\n const fieldXtype = item.FieldUi?.originalXtype;\n if (fieldXtype === 'Ui.Button' || fieldXtype === 'Ui.CheckBox' || !item.TextVisible) {\n return;\n }\n const ctx = this.canvasRef.nativeElement.getContext('2d');\n ctx.font = 'normal 0.885rem IRANYekanDigits';\n let labelCaption = item.Caption;\n if (item.FieldUi?.Setting?.IsMandatory) {\n if (labelCaption.indexOf('*') < 0) {\n labelCaption = labelCaption + ' *';\n }\n } else {\n labelCaption = labelCaption.replace('*', '');\n }\n\n const labelWidth = ctx.measureText(labelCaption).width;\n let labelWithPadding = labelWidth + 10;\n if (item.FieldUi?.Setting?.FieldIcon) {\n labelWithPadding += 21;\n }\n const controlWidth = Math.ceil(labelWithPadding);\n this.layoutService.setMaxWidth(controlWidth);\n }\n}\n","import {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n Inject,\n Injector,\n OnDestroy,\n OnInit,\n Optional,\n Self,\n Type,\n ViewChild,\n ViewContainerRef,\n ViewRef\n} from '@angular/core';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { BarsaApi } from './abstract-classes/barsa-api';\nimport { BaseComponent } from './abstract-classes/base.component';\nimport { getUniqueId } from './constants';\nimport { FORM_DIALOG_COMPONENT } from './injdection-tokens';\nimport { BarsaDialogService } from './services/barsa-dialog.service';\nimport { ContainerService } from './services/container.service';\nimport { PortalService } from './services/portal.service';\n@Component({\n selector: 'bnrc-container',\n template: '',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport abstract class ContainerComponent extends BaseComponent implements OnInit, AfterViewInit, OnDestroy {\n @ViewChild('containerRef', { static: true, read: ViewContainerRef })\n containerRef: ViewContainerRef;\n oldContainerContainer: ContainerComponent;\n parentContainer: any;\n public id = getUniqueId(6);\n private _viewRef: ViewRef | null;\n\n constructor(\n protected _el: ElementRef,\n protected _activatedRoute: ActivatedRoute,\n protected _portalService: PortalService,\n protected _vcr: ViewContainerRef,\n protected _dialogService: BarsaDialogService,\n protected _injector: Injector,\n protected _router: Router,\n protected _cdr: ChangeDetectorRef,\n @Self() @Optional() protected _containerService: ContainerService,\n @Optional() @Inject(FORM_DIALOG_COMPONENT) protected _formDialogComponent: Type<any>\n ) {\n super();\n this.oldContainerContainer = this._dialogService.containerComponent;\n this._dialogService.containerComponent = this;\n }\n get injector(): Injector {\n return this._injector;\n }\n get cdr(): ChangeDetectorRef {\n return this._cdr;\n }\n get vcr(): ViewContainerRef {\n return this.containerRef;\n }\n ngOnInit(): void {\n this.parentContainer = BarsaApi.Ul.ApplicationCtrlr.CurrentSystemAdapter;\n BarsaApi.Ul.ApplicationCtrlr.CurrentSystemAdapter = this;\n super.ngOnInit();\n if (this._containerService) {\n this._containerService.setViewContainerRef(this.containerRef);\n }\n }\n ngOnDestroy(): void {\n BarsaApi.Ul.ApplicationCtrlr.CurrentSystemAdapter = this.parentContainer;\n super.ngOnDestroy();\n this._dialogService.containerComponent = this.oldContainerContainer;\n }\n detach(): void {\n this._viewRef = this.containerRef.detach();\n this._cdr.detectChanges();\n }\n reAttach(): void {\n if (this._viewRef) {\n this.containerRef.insert(this._viewRef);\n this._cdr.detectChanges();\n }\n }\n}\n","import { AfterViewInit, ComponentRef, Component, ChangeDetectionStrategy } from '@angular/core';\r\nimport { from, Observable, Subscription } from 'rxjs';\r\nimport { takeUntil, map, filter, tap, concatMap } from 'rxjs/operators';\r\n\r\nimport { BarsaApi } from './barsa-api';\r\nimport { ModuleDataModel, PageDataModel, PlaceHolderDataModel, PortalDataModel } from './models';\r\nimport { ContainerComponent } from '../container.component';\r\n\r\n@Component({\r\n selector: 'bnrc-page-base',\r\n template: '',\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class PageBaseComponent extends ContainerComponent implements AfterViewInit {\r\n portalData$: Observable<PortalDataModel>;\r\n portalSubscription: Subscription;\r\n isRoot: boolean;\r\n hasRouterOutlet: PlaceHolderDataModel;\r\n hasRoute = true;\r\n fullscreen = true;\r\n pageData: PageDataModel | null;\r\n\r\n ngAfterViewInit(): void {\r\n super.ngAfterViewInit();\r\n this.addModulesToDom();\r\n }\r\n protected addModulesToDom(): void {\r\n this.getData$()\r\n .pipe(filter((c) => c != null))\r\n .subscribe((pageData) => {\r\n this.renderPlaceHolders(pageData);\r\n });\r\n }\r\n protected getData$(): Observable<PortalDataModel | null> {\r\n if (this.isRoot) {\r\n return this._portalService.portalData$;\r\n }\r\n return this._activatedRoute.data.pipe(\r\n map((data) => data.pageData),\r\n takeUntil(this._onDestroy$)\r\n );\r\n }\r\n\r\n protected renderPlaceHolders(pageData: PageDataModel | null): void {\r\n this.pageData = pageData;\r\n const modules = this.getModules(pageData);\r\n this.addModulesToPage(modules);\r\n }\r\n protected preparePlaceholder(\r\n placeHolderElement: HTMLElement | DocumentFragment,\r\n placeHolderName: string,\r\n pageData: PageDataModel | null\r\n ): void {\r\n // remove old attached component . when we use rxjs for update data\r\n const hasChild = placeHolderElement.hasChildNodes();\r\n if (hasChild) {\r\n placeHolderElement.removeChild(placeHolderElement.childNodes[0]);\r\n }\r\n const placeHolders = this.getPlaceHolders(pageData);\r\n const placeHolder = placeHolders.find((c) => c.Name === placeHolderName);\r\n if (placeHolder != null) {\r\n const modules = this.getModules(pageData);\r\n const module = modules.find((c) => c.PlaceHolder.Id === placeHolder.Id);\r\n if (module) {\r\n const controlUi = this.getModuleControlUi(module.Component);\r\n placeHolderElement.appendChild(controlUi);\r\n }\r\n } else {\r\n console.error('placeholder not found ' + placeHolderName);\r\n }\r\n }\r\n protected getModuleControlUi(component): any {\r\n const controlUi = document.createElement(component.Selector) as any;\r\n controlUi.settings = component.Settings;\r\n controlUi.activatedRoute = this._activatedRoute;\r\n return controlUi;\r\n }\r\n protected addModulesToPage(modules: Array<any>): void {\r\n modules = modules.sort((a, b) => (Number(a.OrderNumber) > Number(b.OrderNumber) ? 1 : -1));\r\n from(modules)\r\n .pipe(\r\n takeUntil(this._onDestroy$),\r\n concatMap((module) =>\r\n this.getComponentFactory(module.Component).pipe(\r\n tap((controlUi) => {\r\n controlUi.instance.settings = module.Component.Settings;\r\n controlUi.instance.activatedRoute = this._activatedRoute;\r\n if (this.containerRef) {\r\n this.containerRef.insert(controlUi.hostView);\r\n } else {\r\n this._vcr.insert(controlUi.hostView);\r\n }\r\n })\r\n )\r\n )\r\n )\r\n .subscribe(() => this._cdr.detectChanges());\r\n }\r\n protected getComponentFactory(uiComponent: {\r\n Selector: string;\r\n Name: string;\r\n Module: string;\r\n ModuleFileName: string;\r\n }): Observable<ComponentRef<any>> {\r\n return this._portalService.getComponent(\r\n uiComponent.Module,\r\n uiComponent.ModuleFileName,\r\n uiComponent.Name,\r\n uiComponent.Selector,\r\n this._injector\r\n );\r\n }\r\n\r\n protected getPlaceHolders(pageData): Array<PlaceHolderDataModel> {\r\n const placeholders = BarsaApi.Common.Util.TryGetValue(\r\n pageData,\r\n 'Component.Settings.PlaceHolders.MoDataList',\r\n []\r\n );\r\n return placeholders;\r\n }\r\n protected getModules(pageData): Array<ModuleDataModel> {\r\n return BarsaApi.Common.Util.TryGetValue(pageData, 'ModuleList.MoDataList', []);\r\n }\r\n}\r\n","import { ChangeDetectionStrategy, Component, OnDestroy, OnInit } from '@angular/core';\n\nimport { FieldBaseComponent } from './field-base';\nimport { BarsaApi } from './barsa-api';\n@Component({\n selector: 'bnrc-number-base',\n template: '',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class NumberBaseComponent extends FieldBaseComponent implements OnInit, OnDestroy {\n hasMask: boolean;\n tickRef: any;\n protected inputElement: HTMLInputElement | null | undefined;\n get decimalPrecision(): number {\n const decimalPrecision = Number(this.Setting.DecimalPrecision);\n if (isNaN(decimalPrecision)) {\n return 0;\n }\n return decimalPrecision;\n }\n ngOnInit(): void {\n super.ngOnInit();\n\n if (this.inputElement) {\n const formated = this._getFormated(this.value).toString();\n this.inputElement.value = formated;\n }\n this.hasMask =\n BarsaApi.Common.Util.TryGetValue(this.context, 'Setting.ShowThousandSeperator', false) ||\n BarsaApi.Common.Util.TryGetValue(this.context, 'Setting.DecimalPrecision', 0) > 0;\n }\n\n ngOnDestroy(): void {\n this._clearInterval();\n super.ngOnDestroy();\n }\n onKeyDown(e): void {\n const isCharacter = this._isCharacter(e);\n if (!isCharacter) {\n return;\n }\n const isValid = new RegExp('^[0-9,.]*$').test(e.currentTarget.value + e.key);\n if (!isValid || e.key === '.') {\n if (e.key === '.' && this.inputElement && this.decimalPrecision > 0) {\n const cursorPosition = this.inputElement.value.indexOf('.');\n this._setCursorPosition(cursorPosition + 1);\n }\n e.preventDefault();\n e.stopPropagation();\n }\n }\n onValueChange(e): void {\n const text: string = e.currentTarget?.value || '';\n this.reFormatValue(text, e);\n }\n protected _setValue(value): void {\n super._setValue(value);\n this.reFormatValue(this.value, { target: this.inputElement });\n }\n protected _clearInterval(): void {\n if (this.tickRef) {\n clearInterval(this.tickRef);\n this.tickRef = null;\n }\n }\n protected _isCharacter(evt): boolean {\n if (typeof evt.which === 'undefined') {\n return true;\n } else if (typeof evt.which === 'number' && evt.which > 0) {\n return !evt.ctrlKey && !evt.metaKey && !evt.altKey && evt.which !== 8 && evt.key.length === 1;\n }\n return false;\n }\n\n protected _getFormated(val): string {\n return this._numeralPipe.transform(val, this.decimalPrecision, this.Setting.ShowThousandSeperator).toString();\n }\n protected _setCursorPosition(cursorPosition): void {\n if (this.inputElement) {\n if (cursorPosition > this.inputElement.value.length && this.decimalPrecision) {\n cursorPosition = this.inputElement.value.length;\n }\n\n this.inputElement.setSelectionRange(cursorPosition, cursorPosition);\n }\n }\n private reFormatValue(text: string | number, e: any): void {\n let newVal: string | undefined;\n if (typeof text === 'number') {\n if (text === this.value) {\n return;\n }\n text = text.toString();\n }\n if (typeof text === 'undefined' && typeof this.value === 'undefined') {\n return;\n }\n\n if (text) {\n let indexofDot = text.indexOf('.');\n const selectionStart = this.inputElement?.selectionStart;\n\n const decimalPersicion = this.decimalPrecision;\n if (decimalPersicion) {\n const t = text.length - (indexofDot + 1);\n if (t > decimalPersicion) {\n const diff = t - decimalPersicion;\n if (selectionStart && selectionStart < text.length) {\n // text = text.substring(0, text.length - diff);\n text =\n text.substring(0, selectionStart) +\n text.substring(selectionStart + 1, selectionStart + 1 + text.length - diff);\n } else {\n text = text.substring(0, text.length - 1);\n }\n }\n }\n let formated: string = this._getFormated(text).toString();\n newVal = this._numeralPipe.getValue(formated);\n\n let indexOfDotFormated = formated.indexOf('.');\n\n if (decimalPersicion === 0) {\n indexofDot = text.length;\n indexOfDotFormated = formated.length;\n }\n if (this.hasMask) {\n let cursorPosition = this.inputElement?.selectionStart;\n let diff = 0;\n if (indexofDot < 0 && decimalPersicion > 0) {\n formated = this._getFormated(text);\n newVal = this._numeralPipe.getValue(formated);\n } else if (cursorPosition != null && cursorPosition <= indexofDot) {\n diff = indexOfDotFormated - indexofDot;\n cursorPosition += diff;\n }\n if (this.inputElement && this.inputElement.value !== formated) {\n this.inputElement.value = formated;\n }\n if (e.target.value !== formated) {\n e.target.value = formated;\n }\n this._setCursorPosition(cursorPosition);\n } else {\n if (this.inputElement) {\n this.inputElement.value = newVal;\n }\n }\n } else if (this.inputElement) {\n this.inputElement.value = '';\n }\n if (newVal && +newVal === this.value) {\n return;\n }\n this.value = typeof newVal == 'undefined' ? '' : newVal;\n this.formmatedValue.emit(this.inputElement?.value);\n this.valueChange.emit(this.value);\n }\n}\n","import { SafeHtml } from '@angular/platform-browser';\nimport { DateInfo as DateInfoService } from '../date-services';\n\nexport class GeneralControlInfoModel {\n [key: string]: any;\n ControlFieldCaption: string;\n ControlFieldCaptionTranslated: string;\n ControlFieldDefId: string;\n ControlName: string;\n RelatedFieldList: [];\n Hide: boolean;\n xtype: string;\n LabelPosition: string;\n IsMandatory: boolean;\n IsVisible: boolean;\n ShowLabel = true;\n IsReadOnly: boolean;\n IsEnabled: boolean;\n IsBold: boolean;\n IsAutomatic: boolean;\n JsonExtraProp: any | null;\n Component: string;\n Info: ControlInfoTypes;\n FieldIcon: string;\n IsLtr: boolean;\n DisplayType: string;\n}\nexport interface FileAttachmentInfo {\n [key: string]: any;\n Id: string;\n IsNew: boolean;\n IsDeleted: boolean;\n Type: string;\n FileName?: string;\n}\nexport class StringControlInfoModel extends GeneralControlInfoModel {\n MaxLength: number;\n MinLength: number;\n RegularExpression: string;\n IsPassword: boolean;\n IsMultiLine: boolean;\n NullText: string;\n AllowedStringChars: string;\n OnlyAcceptCurrentCulture: boolean;\n}\nexport class RichStringControlInfoModel extends StringControlInfoModel {\n IsHtmlViewer: boolean;\n}\nexport class NumberControlInfoModel extends GeneralControlInfoModel {\n MinValue: number;\n MaxValue: number;\n DecimalPrecision: number;\n ShowThousandSeperator: boolean;\n NumberType: string;\n CurrencySymbol: string;\n}\nexport class FilePictureInfoModel extends GeneralControlInfoModel {\n Ext: string;\n FileId: string;\n IsDeleted: boolean;\n}\nexport class FileControlInfoModel extends GeneralControlInfoModel {\n CanDelete: boolean;\n CanSave: boolean;\n CanView: boolean;\n IsMultiSelect: boolean;\n MaxFileCount: number;\n MaxFileSizeKb: number;\n OfficeOnline: boolean;\n ValidExtensions: string;\n ViewType: string;\n}\nexport class CommandControlInfoModel extends GeneralControlInfoModel {\n MenuName: string;\n DisableWhenReadonly: boolean;\n DisplayType: string;\n DynamicCommand: string;\n}\nexport class IconControlInfoModel extends GeneralControlInfoModel {}\nexport class PictureFileControlInfoModel extends GeneralControlInfoModel {\n SizeMode: number;\n MaxFileSizeKb: number;\n ValidExtensions: string;\n}\nexport class GaugeControlInfoModel extends GeneralControlInfoModel {\n IsAutomatic: boolean;\n MaxValue: number;\n MaxValue2: number;\n MinValue: number;\n MinValue2: number;\n Value: number;\n}\nexport type RelationListTypes =\n | RelationListControlInfoModel\n | HistoryControlInfoModel\n | RabetehAkseTakiListiControlInfoModel\n | SingleRelationControlInfoModel;\nexport class RelationListControlInfoModel extends GeneralControlInfoModel {\n RelationViewType: string;\n UlvSetting: ReportModel;\n}\nexport class HistoryControlInfoModel extends RelationListControlInfoModel {\n HasExternalParameter: boolean;\n ParamName1: string;\n}\nexport class RabetehAkseTakiListiControlInfoModel extends RelationListControlInfoModel {\n AutoSave;\n}\nexport class RelatedReportControlInfoModel extends GeneralControlInfoModel {\n HasExternalParameter: boolean;\n ParamName1: string;\n UlvSetting: ReportModel;\n}\nexport class CodeEditorControlInfoModel extends GeneralControlInfoModel {\n ExtraText: string;\n Suggestions: string;\n}\nexport class EnumControlInfoModel extends GeneralControlInfoModel {\n IsMultiSelect: boolean;\n ShowAsRadioButton: boolean;\n IconDisplayType: string;\n DataSource: {\n Rows: RowDataOption[];\n };\n EmptyRowData: RowDataOption;\n}\nexport class RowDataOption {\n id: string;\n IsEmpty: boolean;\n txt: string;\n txt_safe?: string;\n url: string;\n}\nexport class DateTimeControlInfoModel extends GeneralControlInfoModel {\n CalendarType: string;\n DateFormat: string;\n ShowDate1: boolean;\n ShowTime1: boolean;\n TimeFormat: string;\n}\nexport class BoolControlInfoModel extends GeneralControlInfoModel {\n FalseCaption: string;\n TrueCaption: string;\n TrueIcon: string;\n ViewType: string;\n FalseIcon: string;\n}\nexport class CalculateControlInfoModel extends GeneralControlInfoModel {\n InnerCtrlr: ControlInfoTypes;\n ExecutaionTime: string;\n EditType: string;\n DontShowRecalculateButton: boolean;\n}\nexport class SubformControlInfoModel extends GeneralControlInfoModel {\n TypeDefId: any;\n TypeDefIcon: string;\n IsComposedRelation: string;\n DropDownReportId: string;\n TypeViewId: string;\n FormPanelSetting: FormSetting;\n}\nexport interface DownloadFileInfo {\n fileId: string;\n fileUrl: string;\n viewInBrowser: boolean;\n convertTo: string;\n isOfficeOnline: boolean;\n forOcx: boolean;\n}\nexport interface DownloadFileInfoResult {\n filename: string;\n content: string;\n contentType: string;\n succeed: boolean;\n}\nexport class LinearListControlInfoModel extends GeneralControlInfoModel {\n DefaultField: string;\n ExtraJsonPropField: string;\n FillBeforeDropDown: boolean;\n IsGeneralInfo: boolean;\n IsMultiSelect: boolean;\n Relation: ListRelationModel;\n RelationViewType: string;\n RowIcon: string;\n TargetTypeDefId: string;\n}\nexport class ListRelationModel {\n [key: string]: any;\n ChildFdId: string;\n ChildFdName: string;\n IsAutoSave: boolean;\n ParentMoId: string;\n RelationType: string;\n}\nexport class SingleRelationControlInfoModel extends GeneralControlInfoModel {\n ColumnRequestEnum: string;\n DropDownReportId: string;\n FillBeforeDropDown: boolean;\n HideCombo: boolean;\n RelationViewType: string;\n PassParentForm: boolean;\n ShowNewButton: boolean;\n ShowOkCancel: boolean;\n ViewRelatedFormType: string;\n TargetTypeDefId: string;\n DataSource: {\n Rows: RowDataOption[];\n };\n PreviewFieldCaption: string;\n PreviewFieldId: string;\n PreviewFieldName: string;\n}\n\nexport type ControlInfoTypes =\n | SubformControlInfoModel\n | CalculateControlInfoModel\n | BoolControlInfoModel\n | EnumControlInfoModel\n | IconControlInfoModel\n | FileControlInfoModel\n | DateTimeControlInfoModel\n | NumberControlInfoModel\n | StringControlInfoModel\n | PictureFileControlInfoModel\n | GaugeControlInfoModel\n | CommandControlInfoModel\n | CodeEditorControlInfoModel;\n\nexport interface FormViewSetting {\n [key: string]: any;\n Layout94: any;\n ControlInfo: GeneralControlInfoModel[];\n}\nexport interface FormSetting {\n [key: string]: any;\n Data: {\n [key: string]: any;\n Mo: MetaobjectDataModel;\n };\n View: FormViewSetting;\n}\n\nexport class MetaobjectDataModel {\n [key: string]: any;\n $FieldDict?: { [key: string]: string };\n $ReportId?: string;\n $Type?: string;\n $StyleIndex?: number[];\n $Caption: string;\n $Icon?: string;\n $State?: string;\n $TypeDefId?: string;\n $TypeDefName?: string;\n $Children?: MetaobjectDataModel[];\n Id: string;\n}\nexport declare class CalendarMetaobjectDataModel extends MetaobjectDataModel {\n $Color: string;\n $MomentStartDate: string;\n $MomentEndDate: string;\n $StartTimes: string;\n $EndTimes: string;\n $Title: string;\n $Notes: string;\n $StartDateInfo?: DateInfoService;\n $EndDateInfo?: DateInfoService;\n}\n\nexport class MoForReportModel {\n $Type?: string;\n TypeDefId: string;\n ReportId: string;\n Icon?: string;\n MoDataList: Array<MetaobjectDataModel>;\n DeletedList: Array<{ Id: string; TypeDefId: string }>;\n AddedList: Array<{ Id: string; TypeDefId: string }>;\n Paging: PagingSetting;\n Relation?: {\n RelationType: string;\n ParentMoId: string;\n ParentFdId: string;\n ChildFdId: string;\n ParentFdName: string;\n ChildFdName: string;\n PassParentMoField: string;\n IsAutoSave: boolean;\n IsAutoSave_ReloadParentForms: boolean;\n IsAutoSave_ReloadRootParentList: boolean;\n };\n constructor() {\n this.DeletedList = this.AddedList = this.MoDataList = [];\n }\n}\nexport class ReportBaseInfo {\n Id: string;\n Caption: string;\n FolderId: string;\n IconUrl: string;\n Name: string;\n ReportId: string;\n}\nexport class ReportExtraInfo extends ReportBaseInfo {\n TypeDefId: string;\n TypeDefCaption: string;\n ReportType: string;\n HideToolbar: boolean;\n}\n\nexport class MetaobjectRelationModel extends ListRelationModel {\n ParentFdId: string;\n PassParentMoField: string;\n}\n\nexport enum FieldInfoTypeEnum {\n IntInfo = 0,\n StringInfo = 2,\n DateInfo = 3,\n BoolInfo = 5,\n EnumInfo = 6,\n UserInfo = 7,\n CategoryInfo = 8,\n MetaObjectInfo = 9,\n CommandInfo = 10, // 0x0000000A\n PicturesInfo = 11, // 0x0000000B\n RelationInfo = 12, // 0x0000000C\n HistoryInfo = 13, // 0x0000000D\n RelationInfoReverse_AksListi = 14, // 0x0000000E\n CreatorUserInfo = 15, // 0x0000000F\n CreationDateInfo = 16, // 0x00000010\n LastUpdateDateInfo = 17, // 0x00000011\n ReminderInfo = 18, // 0x00000012\n RichStringInfo = 19, // 0x00000013\n ConvertCommandInfo = 20, // 0x00000014\n RelationInfoSingleReverse_AksTakiListi = 21, // 0x00000015\n DialCommandInfo = 22, // 0x00000016\n FindContactCommandInfo = 23, // 0x00000017\n SequenceCommandInfo = 24, // 0x00000018\n CurrencyInfo = 25, // 0x00000019\n SinglePictureInfo = 26, // 0x0000001A\n WordReportCommandInfo = 27, // 0x0000001B\n HierarchicalInfo = 28, // 0x0000001C\n TimeSpanInfo = 29, // 0x0000001D\n ReportInfo = 30, // 0x0000001E\n FileInfo = 31, // 0x0000001F\n WordFileInfo = 32, // 0x00000020\n PictureFileInfo = 33, // 0x00000021\n GaugeInfo = 34, // 0x00000022\n CodeInfo = 35, // 0x00000023\n WorkCenterInfo = 36, // 0x00000024\n IsDeletedInfo = 37, // 0x00000025\n RowNumberInfo = 38, // 0x00000026\n BinaryInfo = 39, // 0x00000027\n ReverseMetaObjectInfo_AksTakiTaki = 40, // 0x00000028\n ColorInfo = 41, // 0x00000029\n IconInfo = 42, // 0x0000002A\n RefreshFieldCommandInfo = 43, // 0x0000002B\n ReferenceFieldInfo = 44, // 0x0000002C\n SearchCommandInfo = 45, // 0x0000002D\n OrderInfo = 46 // 0x0000002E\n}\nexport interface ClassNamesModel {\n CommandBarClass: string;\n DataClass: string;\n SelectionClass: string;\n ViewerClass: string;\n}\nexport interface ExtraModel {\n CustomCommands?: CustomCommand[];\n DefaultCommandsAccess?: DefaultCommandsAccess;\n ParentUlvConfig?: any;\n Relation?: MetaobjectRelationModel;\n Report?: ReportExtraInfo;\n ExtraJsonPropReport?: any;\n}\n\nexport class BaseReportModel {\n ClassNames: ClassNamesModel;\n Extra: ExtraModel;\n View: ViewTypes;\n SearchPanel: any;\n DefaultItemComponent = 'ReportDefaultItemComponent';\n}\nexport interface DefaultCommandsAccess {\n Add: boolean;\n AddToList: boolean;\n Delete: boolean;\n Edit: boolean;\n Export: boolean;\n Print: boolean;\n Refresh: boolean;\n RemoveFromList: boolean;\n View: boolean;\n}\nexport class CustomCommand {\n Data: any;\n DisableWhenReadonly: boolean;\n HideDisable: boolean;\n IconUrl: string;\n IsLarge: boolean;\n Mytype: string;\n Order: number;\n ShowOnContext: boolean;\n ShowOnToolbar: boolean;\n Text: string;\n UseAlways: boolean;\n UseForMulti: boolean;\n UseForSingle: boolean;\n}\nexport class ReportModel extends BaseReportModel {\n Data: MoForReportModel;\n constructor() {\n super();\n }\n}\nexport class ReportListModel extends BaseReportModel {\n View: GridView;\n}\nexport class ReportFormModel extends BaseReportModel {\n View: FormView;\n}\nexport interface TreeView {\n ConditionalFormats: [];\n ParentIdDbName: string;\n ShowSelectionChecks: boolean;\n TreeAutoOpenLevels: number;\n}\n\nexport interface GridView {\n AllowGridColumnSort: boolean;\n AutoInlineEdit: boolean;\n ColumnRequestEnum: string;\n Columns: Array<ReportViewColumn>;\n ConditionalFormats: [];\n DisableRowReload: boolean;\n GridSetting: GridSetting;\n Grid_FreeColumnSizing: boolean;\n Grid_GridLines: string;\n Grid_HideHeader: boolean;\n Grid_ShowRowNumber: boolean;\n HasConditionalFormat: boolean;\n HasSummaryRow: boolean;\n HideIcon: boolean;\n IsCheckList: boolean;\n}\nexport interface CalendarView {\n CalendarFields: CalendarFields;\n}\nexport interface FormView {\n FormPanelSetting: any;\n}\nexport type ViewTypes = GridView | CalendarView | TreeView | FormView;\n\nexport type ReportModelTypes = ReportListModel | ReportCalendarModel | ReportFormModel | ReportTreeModel;\n\nexport class ReportCalendarModel extends BaseReportModel {\n View: CalendarView;\n}\nexport class ReportTreeModel extends BaseReportModel {\n View: TreeView;\n}\nexport interface CalendarFields {\n EndDate: string;\n Notes: string;\n StartDate: string;\n Title: string;\n Color: string;\n}\n\nexport class ReportViewColumn {\n Alias: string;\n Caption: string;\n FieldDefId: string;\n FieldTypeId: number;\n FieldType: string;\n HasSummary: boolean;\n Hidden: boolean;\n IsLtr: boolean;\n IsPreview: boolean;\n MetaFieldTypeId: string;\n Name: string;\n Width: number;\n Tag?: string;\n Icon: string;\n OnlyImage?: boolean;\n Extra?: any;\n $Width: string;\n $Width2?: string;\n $MergedFieldsToColumn?: string[];\n $CSSClassName?: string;\n $CustomComponent?: EjrayOlgo;\n}\n\nexport class GridSetting {\n ColSettingList: Array<ColSetting>;\n SortSettingList: Array<SortSetting>;\n AutoSizeColumns: boolean;\n}\nexport class ColSetting {\n Name: string;\n Width: number;\n IsHidden: boolean;\n}\nexport class SortSetting {\n Name: string;\n SortDirection: string;\n IsGrouped: boolean;\n}\n\nexport class ReportField {\n public key: string;\n public value: string;\n public caption: string;\n constructor(public column: ReportViewColumn, public item: any) {\n const name = column.Name;\n this.caption = column.Caption;\n this.value = this.item[name];\n if (Number(column.FieldTypeId) === FieldInfoTypeEnum.DateInfo) {\n this.value = this.item[name + '$Caption'];\n }\n if (Number(column.FieldTypeId) === FieldInfoTypeEnum.IconInfo) {\n this.value = this.item[name].Url;\n }\n }\n}\n\nexport interface LoginResult {\n data: { sth: string };\n}\nexport interface ComponentSettingsDataModel extends MetaobjectDataModel {\n PlaceHolders?: PlaceHolderDataModel[];\n}\nexport interface ComponentDataModel extends MetaobjectDataModel {\n Selector: string;\n Settings: ComponentSettingsDataModel;\n}\nexport interface PlaceHolderDataModel extends MetaobjectDataModel {\n Name: string;\n Title: string;\n IsPage: boolean;\n OrderNumber: string;\n}\n\nexport interface ModuleDataModel extends MetaobjectDataModel {\n Title: string;\n PlaceHolder: PlaceHolderDataModel;\n Component: ComponentDataModel;\n}\nexport interface PageListReportModel extends MoForReportModel {\n MoDataList: Array<PageDataModel>;\n}\nexport interface ModuleListReportModel extends MoForReportModel {\n MoDataList: Array<ModuleDataModel>;\n}\nexport interface PageDataModel extends MetaobjectDataModel {\n Component: ComponentDataModel;\n ModuleList: ModuleListReportModel;\n ChildPageList: PageListReportModel;\n Title: string;\n Route: string;\n IsDefaultRoute: boolean;\n IsLoginRoute: boolean;\n}\n\nexport interface PortalDataModel extends PageDataModel {\n IsActive: boolean;\n IsPwa: boolean;\n PortalSettings: MetaobjectDataModel;\n}\nexport interface GroupVisibility {\n enable: boolean;\n visible: boolean;\n readonly: boolean;\n}\n\nexport interface IHeaderLayout {\n [key: string]: any;\n Title: string;\n Subtitle: string;\n Avatar: any;\n FacetList: { MoDataList: MetaobjectDataModel[] };\n}\n\nexport interface MenuItem {\n icon: string;\n text: string;\n itemId: string;\n Data: any;\n Command: any;\n handler: () => void;\n IsBuiltin?: boolean;\n}\nexport interface PagingSetting {\n EndIndex: number;\n HasPaging: boolean;\n Page: number;\n PageSize: number;\n RowCount: number;\n StartIndex: number;\n TotalPages: number;\n TotalRows: number;\n}\nexport interface ColumnInfoType {\n Name: string;\n Hidden: boolean;\n Caption: string;\n IsMandatory?: boolean;\n Width: number;\n}\nexport interface SearchPanelSettings extends MetaobjectDataModel {\n Title: string;\n ReportId: string;\n IsDefault: boolean;\n IsPublic: boolean;\n ApplyAutomatically: boolean;\n SearchMo?: string;\n FieldsSetting?: string;\n}\nexport declare type DeviceSize = 'desktop' | 'mobile' | 'tablet';\nexport const DateRanges = [\n 'DateR_None',\n 'DateR_SpecificRange',\n 'DateR_Today',\n 'DateR_ThisWeek',\n 'DateR_ThisMonth',\n 'DateR_ThisYear',\n 'DateR_DaysBefore',\n 'DateR_PrevWeek',\n 'DateR_PrevMonth',\n 'DateR_PrevYear',\n 'DateR_DaysAfter',\n 'DateR_NextWeek',\n 'DateR_NextMonth',\n 'DateR_NextYear'\n];\n\nexport interface UiReportViewBase {\n UiComponent: {\n Component: boolean;\n Module: string;\n ModuleFileName: string;\n Name: string;\n Selector: string;\n Settings: UiReportViewBaseSetting;\n };\n}\nexport interface UiReportViewBaseSetting {\n [key: string]: any;\n Type: string;\n Icon: string;\n IsDefault: boolean;\n Hidden: boolean;\n EnableSearch: boolean;\n DisableResponsive?: boolean;\n DisableOverflowContextMenu?: boolean;\n HorizontalGroupBy: boolean;\n}\n\nexport interface LayoutSetting {\n [key: string]: any;\n Title?: string;\n xtype: string;\n TextVisible?: boolean;\n items: LayoutSetting[];\n IsRoot?: boolean;\n SelectedTabPageName?: string;\n}\nexport declare type AbbrevationDeviceSize = 's' | 'm' | 'l' | 'xl';\nexport interface TreeNodeObj {\n isExpand: boolean;\n visibility: boolean;\n expand: () => void;\n collapse: () => void;\n Data: MetaobjectDataModel;\n children: TreeNodeObj[];\n icon: string;\n key: string;\n leaf: boolean;\n text: string;\n level: number;\n loading?: boolean;\n hasOneDepthLevel?: boolean;\n parentNode: TreeNodeObj | null;\n firstChild: TreeNodeObj | null;\n lastChild: TreeNodeObj | null;\n previousSibling: TreeNodeObj | null;\n nextSibling: TreeNodeObj | null;\n attributes: { Data: MetaobjectDataModel | null };\n hasChildNodes: () => boolean;\n noDrop: boolean;\n $Children?: TreeNodeObj[];\n}\n\nexport interface ColumnResizedArgs {\n name: string;\n width: number;\n}\nexport type columnsResizedEventArgs = { columns: Array<ReportViewColumn>; resized: Array<ColumnResizedArgs> };\nexport type RelationItemType = {\n Id: string;\n SourceTypeDefId: string;\n ObjectInRelationName: string;\n GroupCaption: string;\n};\n\nexport interface EjrayOlgo extends MetaobjectDataModel {\n Module: string;\n ModuleFileName: string;\n Name: string;\n Selector: string;\n Parameters?: MetaobjectDataModel;\n Settings?: MetaobjectDataModel;\n}\n\nexport interface IUploadingState {\n key: string;\n uploading: boolean;\n state: 'Uploading' | 'Error' | 'Complete' | 'Start';\n progress: any;\n}\nexport type GroupByItem = { [key: string]: any; id: string; key: string; value: any[] };\nexport type NotifyOptions = {\n Sound: boolean; // Sound of notification. Set this false to disable sound.\n Image: string | null; // Image source string\n Title: string | null; // Title of notification. If you do not include the title in options it will automatically takes its value\n Icon: boolean; // Icon of notification. Leave as is for default icon or set custom string\n Delay: number; // Hide notification after this time (in miliseconds)\n Closable: boolean; // Make notifications closable\n DelayIndicator: boolean; // Show timer indicator\n CloseOnClick: boolean; // Close notifications by clicking on them\n IsRtl: boolean;\n Position: string | object; // Available options: \"top left\", \"top right\", \"bottom left\", \"bottom right\", \"center top\", \"center bottom\"\n SoundPath: string; // The folder path where sounds are located\n Size: string; // normal, mini, large\n ContinueDelayOnInactiveTab: boolean; // Continue delay when browser tab is inactive\n Width: number; // Width of notification box\n MessageHeight: number; // Notification message maximum height.\n NotificationItem?: NotificationItem;\n};\nexport type ShareButtonsChoiceDef = { mo: MetaobjectDataModel; choiceList: ChoiceDef[]; add: boolean };\nexport type ChoiceDef = {\n ActivityDefId: string;\n ActivityRunId: string;\n ChoiceDefId: string;\n ChoiceName?: string;\n Title: string;\n Icon?: string;\n HasBar?: boolean;\n};\nexport type WorkflowExecuteChoiceStatus = {\n loading: boolean;\n result: any;\n error: any;\n choice?: ChoiceDef;\n};\nexport type NotificationPayload = {\n msg: string;\n title: string;\n type: string;\n image: string;\n mo;\n uiOptions: NotifyOptions;\n otherOptions: Record<string, any>;\n};\nexport type NotificationAction = {\n Title: string;\n Id: string;\n Icon: string;\n Status: string | any;\n};\nexport type NotificationItem = MetaobjectDataModel & {\n Title: string;\n Unread: boolean;\n Content: string;\n $SafeContent?: SafeHtml;\n Priority: number;\n Subject: string;\n Tag: string;\n Icon: string;\n Image: string;\n CreationDate: Date;\n CreationDate$Caption: string;\n UiActions?: NotificationAction[];\n $ChoiceDefStatus?: WorkflowExecuteChoiceStatus;\n};\n\nexport type ExNotificationPayload = {\n lang: string;\n isRtl: boolean;\n notificationItem: NotificationItem;\n};\nexport type FormVisibilityStatus = 'Pending' | 'Visible';\nexport type CartableTemplateKey = { TypeDefId: string; SettingsId: string };\n","import { BaseComponent } from './base.component';\nimport { formatBytes } from '../constants';\nimport { BarsaApi } from './barsa-api';\n\nexport class FilesValidationHelper extends BaseComponent {\n _maxFileCount: number;\n _maxFileSize: number;\n _maxTotalFileSize: number;\n\n get maxFileCount(): number {\n return this._maxFileCount;\n }\n set maxFileCount(val: number) {\n this._maxFileCount = val;\n }\n get maxFileSize(): number {\n return this._maxFileSize;\n }\n set maxFileSize(val: number) {\n this._maxFileSize = val * 1024;\n }\n get maxTotalFileSize(): number {\n return this._maxTotalFileSize;\n }\n set maxTotalFileSize(val: number) {\n this._maxTotalFileSize = val * 1024;\n }\n\n constructor(maxFileCount: number, maxFileSize: number, maxTotalFileSize: number) {\n super();\n this.maxFileCount = Number(maxFileCount);\n this.maxFileSize = Number(maxFileSize);\n this.maxTotalFileSize = Number(maxTotalFileSize);\n }\n\n public validateFiles(files: File[]): boolean {\n return this._validateSize(files);\n }\n\n private _validateSize(files: File[]): boolean {\n const totalFileSize = files.reduce((accumulator, currFile) => accumulator + currFile.size, 0);\n const uplaodTotalSizeTooBigText = BarsaApi.BBB['Uplaod_TotalSizeTooBig'];\n const uplaodFileTooBigText = BarsaApi.BBB['Uplaod_FileTooBig'];\n const maxFilesExceeded = BarsaApi.BBB['Uplaod_MaxFilesExceeded'];\n\n let errorMsg = '';\n if (files.length > this.maxFileCount && this.maxFileCount > 0) {\n errorMsg = maxFilesExceeded + `(${this.maxFileCount})`;\n }\n const fileReachSize: File[] = [];\n files.forEach((file) => {\n if (file.size > this.maxFileSize) {\n fileReachSize.push(file);\n }\n });\n if (files.length > 1 && this.maxTotalFileSize > 0 && totalFileSize > this.maxTotalFileSize) {\n errorMsg = uplaodTotalSizeTooBigText\n ?.replace('{{{filesize}}}', this._getMbSize(totalFileSize))\n .replace('{{maxFilesize}}', this._getMbSize(this.maxTotalFileSize));\n } else if (fileReachSize.length) {\n errorMsg += uplaodFileTooBigText\n ?.replace('{{{filesize}}}', this._getMbSize(fileReachSize[0].size))\n .replace('{{maxFilesize}}', this._getMbSize(this.maxFileSize));\n errorMsg +=\n `<br/>` +\n fileReachSize\n .map(\n (c, index) =>\n `<div class=\"file-validation\" ><strong>${index + 1}-</strong><strong>${\n c.name\n }</strong></div>`\n )\n .join('<br/>');\n }\n if (errorMsg) {\n BarsaApi.Ul.MsgBox.Error(errorMsg, () => {});\n return false;\n }\n return true;\n }\n private _getKbSize(size): string {\n return formatBytes(size, 2, 'KB');\n }\n private _getMbSize(size): string {\n return formatBytes(size, 2, 'MB');\n }\n}\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n EventEmitter,\n Input,\n OnInit,\n Optional,\n Output,\n Renderer2,\n SimpleChanges,\n TemplateRef\n} from '@angular/core';\nimport { ContentDensity } from '@fundamental-ngx/core';\n\nimport { BaseComponent } from './base.component';\nimport { FindColumnByDbNamePipe } from '../pipes';\nimport { PortalService, UlvMainService, UploadService } from '../services';\nimport {\n AbbrevationDeviceSize,\n ColumnResizedArgs,\n columnsResizedEventArgs,\n DefaultCommandsAccess,\n DeviceSize,\n FormSetting,\n MetaobjectDataModel,\n RelationItemType,\n ReportViewColumn,\n UiReportViewBaseSetting,\n ShareButtonsChoiceDef\n} from './models';\n\n@Component({\n selector: 'bnrc-report-view-base',\n template: '',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class ReportViewBaseComponent<T extends UiReportViewBaseSetting> extends BaseComponent implements OnInit {\n @Input() contextView: any;\n @Input() viewSetting: T;\n @Input() allColumns: any;\n @Input() isCheckList: boolean;\n @Input() allChecked: boolean;\n @Input() moDataList: any;\n @Input() access: DefaultCommandsAccess;\n @Input() groupby: any;\n @Input() selectedCount: any;\n @Input() conditionalFormats: any;\n @Input() parentHeight: number;\n @Input() deviceName: DeviceSize;\n @Input() deviceSize: AbbrevationDeviceSize;\n @Input() contextMenuItems: any[];\n @Input() columns: any;\n @Input() allowInlineEdit: any;\n @Input() secondaryColumns: any;\n @Input() popin: boolean;\n @Input() customFieldInfo: MetaobjectDataModel | any;\n @Input() hasSummary: boolean;\n @Input() hasSelected: boolean;\n @Input() columnsCount: any;\n @Input() hideOpenIcon: boolean;\n @Input() openOnClick: boolean;\n @Input() typeDefId: string;\n @Input() extraRelation: any;\n @Input() relationList: Array<RelationItemType>;\n @Input() disableResponsive: boolean;\n @Input() rowItem: TemplateRef<any>;\n @Input() mobileOrTablet: boolean;\n @Input() inDialog: boolean;\n @Input() isMultiSelect: boolean;\n @Input() fullscreen: boolean;\n\n @Input() newInlineEditMo: MetaobjectDataModel | null;\n @Input() selectedMo: MetaobjectDataModel;\n @Input() inlineEditMode: boolean;\n @Input() onlyInlineEdit: boolean;\n @Input() rowHoverable: boolean;\n @Input() tlbButtons: any[];\n @Input() formSetting: FormSetting;\n @Input() disableOverflowContextMenu: boolean;\n @Input() rowActivable = true;\n @Input() contentDensity: ContentDensity;\n @Input() rtl = true;\n @Input() showOkCancelButtons;\n @Input() title;\n @Input() navigationArrow: string;\n @Input() cartableTemplates: { [key: string]: FormSetting };\n @Input() cartableChildsMo: { [key: string]: MetaobjectDataModel };\n @Output() deselectAll = new EventEmitter<void>();\n @Output() editFormPanelCancel = new EventEmitter<MetaobjectDataModel>();\n @Output() editFormPanelSave = new EventEmitter<MetaobjectDataModel>();\n @Output() selectNextInlineRecord = new EventEmitter<MetaobjectDataModel>();\n @Output() editFormPanelValueChange = new EventEmitter<MetaobjectDataModel>();\n @Output() ulvCommandClick = new EventEmitter<any>();\n @Output() sortAscending = new EventEmitter<any>();\n @Output() workflowShareButtons = new EventEmitter<ShareButtonsChoiceDef>();\n @Output() sortDescending = new EventEmitter<any>();\n @Output() filter = new EventEmitter<any>();\n @Output() executeToolbarButton = new EventEmitter<{ itemId: string; options?: any }>();\n @Output() rowCheck = new EventEmitter<{ mo; index; cause? }>();\n @Output() rowClick = new EventEmitter<{ mo; index }>();\n @Output() cartableFormClosed = new EventEmitter<{ mo; index }>();\n @Output() createNewMo = new EventEmitter<void>();\n @Output() updateMo = new EventEmitter<MetaobjectDataModel>();\n @Output() expandClick = new EventEmitter<MetaobjectDataModel>();\n @Output() trackBySelectedFn = new EventEmitter<{ index; record }>();\n @Output() allCheckbox = new EventEmitter<boolean>();\n @Output() mandatory = new EventEmitter<boolean>();\n @Output() columnResized = new EventEmitter<columnsResizedEventArgs>();\n @Input() set containerWidth(val: number) {\n this._containerWidth = val;\n this._containerWidthChanged(val);\n }\n\n resizedByUser: boolean;\n elWidth: number;\n canView = false;\n fitWidth: boolean;\n firstSelectedMetaobject: MetaobjectDataModel;\n private _singleClicked: boolean;\n protected _containerWidth = 0;\n constructor(\n protected _el: ElementRef,\n protected _cdr: ChangeDetectorRef,\n protected _renderer2: Renderer2,\n protected _findColumnByDbName: FindColumnByDbNamePipe,\n protected _ulvMainService: UlvMainService,\n protected _portalService: PortalService,\n @Optional() protected _uploadService?: UploadService\n ) {\n super();\n }\n\n ngOnInit(): void {\n super.ngOnInit();\n if (this.access.View && !this.showOkCancelButtons) {\n this.canView = true;\n }\n this.elWidth = this._el.nativeElement.clientWidth;\n this.fitWidth = this.viewSetting?.FitWidth === true ? true : false;\n }\n ngOnChanges(changes: SimpleChanges): void {\n super.ngOnChanges(changes);\n let detectChanges = false;\n Object.keys(changes).forEach((key) => {\n if (!changes[key].firstChange) {\n this[key] = changes[key].currentValue;\n detectChanges = true;\n }\n });\n if (detectChanges) {\n this.detectChanges();\n }\n }\n onColumnResized(e: Array<ColumnResizedArgs>): void {\n this.resizedByUser = true;\n this.columnResized.emit({ columns: this.columns, resized: e });\n }\n onDeselectAll(): void {\n this.deselectAll.emit();\n }\n onRowCheck({ mo, index }): void {\n this._singleClicked = true;\n setTimeout(() => {\n if (this._singleClicked) {\n this.rowCheck.emit({ mo, index });\n }\n }, 30);\n // this.rowCheck.emit({ mo, index, cause });\n }\n onWorkflowShareButtons(e: ShareButtonsChoiceDef): void {\n this.workflowShareButtons.emit(e);\n }\n onOlgoEvents(e: { title: string; data?: any }): void {\n this[e.title].emit(e.data);\n }\n onRowClick({ mo, index }): void {\n this._singleClicked = false;\n this.rowClick.emit({ mo, index });\n }\n onCartableFormClosed({ mo, index }): void {\n this.cartableFormClosed.emit({ mo, index });\n }\n\n onExpandClick(mo: MetaobjectDataModel): void {\n this.expandClick.emit(mo);\n }\n\n onAllCheckbox(checked): void {\n this.allCheckbox.emit(checked);\n }\n onClearCheckbox(): void {\n this.allCheckbox.emit(false);\n }\n onSelectNextInlineRecord(mo): void {\n this.selectNextInlineRecord.emit(mo);\n }\n onEditFormPanelSave(mo): void {\n this.editFormPanelSave.emit(mo);\n }\n onEditFormPanelCancel(mo: MetaobjectDataModel): void {\n this.editFormPanelCancel.emit(mo);\n }\n onEditFormPanelValueChange(mo: MetaobjectDataModel): void {\n this.editFormPanelValueChange.emit(mo);\n }\n onUlvCommand({ mo, index }): void {\n this.ulvCommandClick.emit({ mo, index });\n }\n\n onSortAscending(column): void {\n this.sortAscending.emit(column);\n }\n\n onSortDescending(column): void {\n this.sortDescending.emit(column);\n }\n\n onFilter(column): void {\n this.filter.emit(column);\n }\n onDynamicComponentEvents(e: { title: string; data?: any }, mo: MetaobjectDataModel, index: number): void {\n switch (e.title) {\n case 'rowCheck':\n this.onRowCheck({ mo, index });\n break;\n case 'rowClick':\n this.onRowClick({ mo, index });\n break;\n case 'ulvCommand':\n this.onUlvCommand({ mo, index });\n break;\n }\n }\n detectChanges(): void {\n this._cdr.detectChanges();\n }\n _trackBySelectedFn(index, record): void {\n this.trackBySelectedFn?.emit({ index, record });\n }\n\n _trackByColumn(index: number, column: ReportViewColumn): string {\n return `${column.Name}${index}`;\n }\n _trackByRow(index: number, row: MetaobjectDataModel): string {\n return `${row.$Group ? row.$Group : row.Id}${index}`;\n }\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n protected _containerWidthChanged(_: number): void {}\n}\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ComponentFactoryResolver,\n Input,\n OnInit,\n Renderer2,\n ViewContainerRef\n} from '@angular/core';\nimport { DomSanitizer } from '@angular/platform-browser';\nimport { BaseComponent } from './base.component';\n\nimport { ControlUiPipe } from '../pipes';\nimport { BreadCrumbInfo, FormPanelService } from '../services';\nimport { LayoutSetting, MetaobjectDataModel } from './models';\n\n@Component({\n selector: 'bnrc-form-props-base',\n template: '',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class FormPropsBaseComponent extends BaseComponent implements OnInit {\n @Input() breadCrumbs: BreadCrumbInfo[] | null;\n @Input() toolbarVisible: boolean;\n @Input() toolbarItems: any[];\n @Input() layoutActions: any[];\n @Input() layout94;\n @Input() settings: MetaobjectDataModel;\n @Input() workflowPanelUi: any;\n @Input() title: string;\n @Input() subtitle: string;\n @Input() description: string;\n @Input() facetList: any[];\n @Input() removeHeaderBorder: boolean;\n @Input() removeContentPadding: boolean;\n @Input() isMobile: boolean;\n @Input() avatar: any;\n @Input() rtl: boolean;\n @Input() mask: boolean;\n @Input() fieldDict: { [key: string]: string } | undefined;\n @Input() contentDensity: any;\n @Input() deviceSize: 's' | 'm' | 'l' | 'xl';\n @Input() dirValue: 'rtl' | 'ltr';\n @Input() modernTabs: LayoutSetting[];\n @Input() mo: MetaobjectDataModel;\n constructor(\n protected _controlUiPipe: ControlUiPipe,\n protected _formPanelService: FormPanelService,\n protected _sanitizer: DomSanitizer,\n protected _cdr: ChangeDetectorRef,\n protected _renderer2: Renderer2,\n protected _vcr: ViewContainerRef,\n protected _factoryResolver: ComponentFactoryResolver\n ) {\n super();\n }\n ngOnInit(): void {\n // this.mo = this._formPanelService.mo;\n super.ngOnInit();\n }\n}\n","import { BehaviorSubject, forkJoin, Observable, Subject } from 'rxjs';\nimport { tap } from 'rxjs/operators';\nimport { BaseComponent } from './base.component';\nimport { getIcon, getImagePath, isImage, getUniqueId } from '../constants';\nimport { UploadService } from '../services/upload.service';\nimport { BarsaApi } from './barsa-api';\nimport { FilesValidationHelper } from './files-validation-helper';\nimport { FileAttachmentInfo, IUploadingState } from './models';\n\nexport class LinearListHelper extends BaseComponent {\n uploading$ = new Observable<IUploadingState>();\n\n private _valueExtra$ = new BehaviorSubject<ValueExtraType>({});\n private _loading$ = new Subject<boolean>();\n private _delete$ = new Subject<FileAttachmentInfo>();\n private _newFileUploaded$ = new Subject<FileAttachmentInfo>();\n constructor(\n private _uploadService: UploadService,\n private _filesValidationHelper: FilesValidationHelper,\n private _fieldDefId: string\n ) {\n super();\n this.uploading$ = this._uploadService.uploadingState$;\n }\n public get loading$(): Observable<boolean> {\n return this._loading$.asObservable();\n }\n public get valueExtra$(): Observable<ValueExtraType> {\n return this._valueExtra$.asObservable();\n }\n public get delete$(): Observable<FileAttachmentInfo> {\n return this._delete$.asObservable();\n }\n public get newFileUploaded$(): Observable<FileAttachmentInfo> {\n return this._newFileUploaded$.asObservable();\n }\n init(fileAttachmentInfo: FileAttachmentInfo): void {\n const fileValueExtra = this._getFileValueExtra(fileAttachmentInfo.Id);\n this._setIconAndImage(fileAttachmentInfo, fileValueExtra);\n }\n cancel(fileAttachment: FileAttachmentInfo): void {\n this._valueExtra[fileAttachment.Id].cancelation$?.next();\n }\n retry(fileAttachment: FileAttachmentInfo): void {\n this.uploadFile(fileAttachment).subscribe();\n }\n uploadToServer(files: File[], key: string = ''): void {\n const isValid = this._filesValidationHelper.validateFiles(files);\n if (!isValid) {\n return;\n }\n const fileAttachments = files.map((c) => this._createFileAttachment(c));\n forkJoin(fileAttachments.map((fileAttachment) => this.uploadFile(fileAttachment, key))).subscribe();\n }\n protected get _valueExtra(): ValueExtraType {\n return this._valueExtra$.getValue();\n }\n\n protected _getFileValueExtra(fileId): UploadFileProps {\n const valueExtra = this._valueExtra;\n const fileValueExtra = valueExtra[fileId];\n if (!fileValueExtra) {\n valueExtra[fileId] = {};\n this._valueExtra$.next({ ...valueExtra });\n }\n return valueExtra[fileId] as UploadFileProps;\n }\n protected _setIconAndImage(fileAttachment: FileAttachmentInfo, fileValueExtra: UploadFileProps): void {\n const fileType = fileAttachment.Type;\n const fileId = fileAttachment.Id;\n if (fileAttachment.IsNew && !fileValueExtra.UploadState) {\n fileValueExtra.FileUrl = 'document';\n fileValueExtra.IsIcon = true;\n } else if (isImage(fileType)) {\n fileValueExtra.FileUrl = getImagePath('ID', '', fileId);\n fileValueExtra.IsIcon = false;\n } else {\n fileValueExtra.FileUrl = getIcon(fileType);\n fileValueExtra.IsIcon = true;\n }\n }\n\n protected _setLoading(loading: boolean): void {\n this._loading$.next(loading);\n }\n protected _createFileAttachment(file: File, key: string | null = null): any {\n const id: string = key ?? getUniqueId(4);\n const temp: string[] = file.name.split('.');\n const ext = temp[temp.length - 1];\n const newFileAttachment = {\n FileName: file.name,\n Id: id,\n FileId: id,\n IsDeleted: false,\n IsNew: true,\n Type: ext\n };\n const fileValueExtra = this._getFileValueExtra(newFileAttachment.Id);\n this._setIconAndImage(newFileAttachment, fileValueExtra);\n fileValueExtra.UploadState = 'Ready';\n fileValueExtra.binary = file;\n fileValueExtra.cancelation$ = new Subject<void>();\n return newFileAttachment;\n }\n protected uploadFile(fileAttachment: FileAttachmentInfo, key: string = ''): Observable<any> {\n const formData = new FormData();\n formData.append('unicFileName', 'x' + BarsaApi.Common.Util.GetNewMetaGuid() + ';;;' + fileAttachment.FileName);\n formData.append('file', this._valueExtra[fileAttachment.Id].binary);\n\n return this._uploadService.upload(formData, this._fieldDefId, key).pipe(\n tap((res) => {\n if (Array.isArray(res)) {\n this._updateValue(fileAttachment, res);\n }\n })\n );\n }\n\n protected _updateValue(fileAttachment: FileAttachmentInfo, res: any[]): void {\n this._delete$.next(fileAttachment);\n // this._deleteFileAttachment(fileAttachment);\n const id = res[0].FileId;\n const newFileAttachment = {\n ...fileAttachment,\n Id: id,\n FileId: id,\n FileName: res[0].FileName,\n IsDeleted: false\n };\n const fileValueExtra = this._getFileValueExtra(id);\n fileValueExtra.binary = null;\n this._setIconAndImage(newFileAttachment, fileValueExtra);\n this._newFileUploaded$.next(newFileAttachment);\n }\n}\n\ninterface UploadFileProps {\n FileUrl?: string;\n cancelation$?: Subject<void>;\n binary?: any;\n UploadState?: string;\n Progress?: number;\n IsIcon?: boolean;\n}\ntype ValueExtraType = { [key: string]: UploadFileProps };\n","import { Component, Input } from '@angular/core';\r\nimport { PageBaseComponent } from './page-base';\r\n\r\n@Component({\r\n template: ''\r\n})\r\nexport class PageWithFormHandlerBaseComponent extends PageBaseComponent {\r\n formpanelCtrlr: any;\r\n /* eslint-disable */\r\n @Input() ShowFormPanelControl = (formpanelCtrlr) => {\r\n this.formpanelCtrlr = formpanelCtrlr;\r\n this._portalService.ShowFormPanelControl(\r\n formpanelCtrlr,\r\n this._router,\r\n this._activatedRoute,\r\n this._formDialogComponent,\r\n true\r\n );\r\n };\r\n /* eslint-disable */\r\n @Input() ForceCloseChild = () => {\r\n this._router.navigate(['../'], { relativeTo: this._activatedRoute });\r\n };\r\n /* eslint-disable */\r\n @Input() RefreshFormPanelControl = (formpanelCtrlr) => {\r\n if (!this.formpanelCtrlr) {\r\n this.formpanelCtrlr = formpanelCtrlr;\r\n }\r\n this._portalService.ShowFormPanelControl(\r\n this.formpanelCtrlr,\r\n this._router,\r\n this._activatedRoute,\r\n this._formDialogComponent,\r\n true,\r\n true\r\n );\r\n };\r\n}\r\n","import { Input, Component, OnInit, AfterViewInit, OnChanges, OnDestroy, ChangeDetectionStrategy } from '@angular/core';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { ContainerComponent } from '../container.component';\r\nimport { BarsaApi } from './barsa-api';\r\n\r\n@Component({\r\n selector: 'bnrc-form-page-base',\r\n template: '',\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class FormPageBaseComponent extends ContainerComponent implements OnInit, AfterViewInit, OnChanges, OnDestroy {\r\n @Input() formPanelCtrlr: any;\r\n params: {\r\n moId: string;\r\n typeDefId: string;\r\n reportId: string;\r\n viewId: string;\r\n };\r\n formpanelCtrlrId: string;\r\n ngOnInit(): void {\r\n super.ngOnInit();\r\n this._activatedRoute.params.pipe(takeUntil(this._onDestroy$)).subscribe((params) => {\r\n const state = this._router.getCurrentNavigation()?.extras.state;\r\n this.prepareIds(state?.formPanelCtrlrId, params);\r\n });\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n super.ngAfterViewInit();\r\n if (!this.formPanelCtrlr) {\r\n this.formPanelCtrlr = this._portalService.formPanels[this.formpanelCtrlrId];\r\n }\r\n this.hideAllPageContent();\r\n if (BarsaApi.LoginFormData.IsServiceDesk) {\r\n setTimeout(() => {\r\n window.scrollTo({ top: 0 });\r\n }, 0);\r\n }\r\n }\r\n ngOnDestroy(): void {\r\n super.ngOnDestroy();\r\n this._portalService.formPanels[this.formpanelCtrlrId] = null;\r\n this.removeLastHidePage();\r\n }\r\n\r\n hideAllPageContent(): void {\r\n // const pages = document.querySelectorAll('.section.absolute-page');\r\n // pages?.forEach((pageEl) => {\r\n // if (pageEl !== this._el.nativeElement) {\r\n // // (pageEl as HTMLElement).classList.add('hide');\r\n // }\r\n // });\r\n // if (pages && pages.length > 0) {\r\n // (pages[pages.length - 1]?.firstChild as HTMLElement)?.classList?.remove('hide');\r\n // }\r\n }\r\n removeLastHidePage(): void {\r\n // const pages = document.querySelectorAll('.section.absolute-page');\r\n // if (pages && pages.length > 0) {\r\n // const last: null | Element = pages[pages.length - 2];\r\n // last.classList?.remove('hide');\r\n // }\r\n }\r\n /* eslint-disable */\r\n @Input() ShowFormPanelControl = (formpanelCtrlr) => {\r\n this._portalService.ShowFormPanelControl(\r\n formpanelCtrlr,\r\n this._router,\r\n this._activatedRoute,\r\n this._formDialogComponent,\r\n false\r\n );\r\n };\r\n /* eslint-disable */\r\n @Input() RefreshFormPanelControl = () => {\r\n const formpanelCtrlr = this._portalService.formPanels[this.formpanelCtrlrId];\r\n this.parentContainer.RefreshFormPanelControl(formpanelCtrlr);\r\n };\r\n /* eslint-disable */\r\n @Input() ForceCloseChild = () => {\r\n this._router.navigate([{ outlets: { popup: null } }], {\r\n relativeTo: this._activatedRoute\r\n });\r\n };\r\n /* eslint-disable */\r\n @Input() ForceClose = () => {\r\n this.parentContainer.ForceCloseChild();\r\n };\r\n onFormClose(): void {\r\n if (\r\n this._activatedRoute.snapshot.params.isFirst &&\r\n this._activatedRoute.parent?.parent?.routeConfig?.path === 'form'\r\n ) {\r\n const parentUrl = this._router.url.split('/form/')[0];\r\n this._router.navigateByUrl(parentUrl, {\r\n replaceUrl: true\r\n });\r\n // this.router.navigate(['../']);\r\n // this.router.navigate([{ outlets: { main: null } }], {\r\n // relativeTo: this.activatedRoute,\r\n // });\r\n } else {\r\n this._router.navigate(['../'], {\r\n relativeTo: this._activatedRoute,\r\n replaceUrl: true\r\n });\r\n }\r\n return;\r\n const outlet = this._activatedRoute.outlet;\r\n // let outlets = {};\r\n // outlets[outlet] = null;\r\n // if(this.location.getState())\r\n this._router.navigate([{ outlets: { main: null } }]);\r\n }\r\n protected prepareIds(formpanelCtrlrId: string, params): void {\r\n this.formpanelCtrlrId = formpanelCtrlrId || params.formPanelCtrlrId;\r\n if (this.formpanelCtrlrId) {\r\n this.formPanelCtrlr = this._portalService.formPanels[this.formpanelCtrlrId];\r\n }\r\n const moId = params.id;\r\n const typeDefId = params.tyid;\r\n const reportId = params.repid;\r\n const viewId = params.vid;\r\n this.params = Object.assign({}, { moId, typeDefId, reportId, viewId });\r\n this._cdr.detectChanges();\r\n }\r\n}\r\n","import {\n Component,\n ElementRef,\n ViewChild,\n Input,\n Output,\n EventEmitter,\n SimpleChanges,\n ViewContainerRef,\n Injector,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n ComponentRef,\n OnInit,\n OnChanges,\n OnDestroy\n} from '@angular/core';\nimport { takeUntil, tap } from 'rxjs/operators';\n\nimport { getComponentDefined, getUniqueId } from '../constants';\nimport { BaseComponent } from '../abstract-classes/base.component';\nimport { MetaobjectDataModel } from '../abstract-classes/models';\nimport { PortalService } from '../services/portal.service';\nimport { BarsaApi } from '../abstract-classes/barsa-api';\n\n@Component({\n selector: 'bnrc-form',\n template: '<ng-container #placeholder> </ng-container>',\n styleUrls: ['./form.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class FormComponent extends BaseComponent implements OnInit, OnChanges, OnDestroy {\n @Input() params: {\n formSetting?: any;\n moId: string;\n typeDefId: string | undefined;\n reportId?: string;\n viewId?: string | undefined;\n ViewName?: string | undefined;\n inDialog?: boolean;\n isSimple?: boolean;\n };\n @Input() customFormPanelUi;\n @Input() formPanelCtrl;\n @Input() formPanelCtrlId: string;\n @Output() titleChanged = new EventEmitter<string>();\n @Output() moChanged = new EventEmitter<MetaobjectDataModel>();\n @Output() formClose = new EventEmitter();\n @Output() formRendered = new EventEmitter();\n @ViewChild('placeholder', { read: ViewContainerRef, static: true })\n vcr: ViewContainerRef;\n uniqueId: string;\n uiFormComponent: ComponentRef<any>;\n constructor(\n private portalService: PortalService,\n private injector: Injector,\n private cdr: ChangeDetectorRef,\n el: ElementRef\n ) {\n super();\n el.nativeElement.id = this.uniqueId = getUniqueId(4);\n }\n ngOnInit(): void {\n super.ngOnInit();\n if (this.formPanelCtrlId && !this.formPanelCtrl) {\n this.formPanelCtrl = this.portalService.formPanels[this.formPanelCtrlId];\n }\n this.appendForm(this.params);\n }\n ngOnChanges(changes: SimpleChanges): void {\n super.ngOnChanges(changes);\n if (changes.params && !changes.params.firstChange) {\n const params = changes.params;\n const currVal = JSON.stringify(params.currentValue);\n const prevVal = JSON.stringify(params.previousValue);\n if (currVal !== prevVal) {\n // this.uiFormComponent.instance.formPanelService.destroy();\n this.vcr.clear();\n this.appendForm(currVal);\n }\n }\n }\n ngOnDestroy(): void {\n super.ngOnDestroy();\n if (this.uiFormComponent) {\n this.uiFormComponent.destroy();\n }\n }\n appendForm(params): void {\n if (this.formPanelCtrl || this.customFormPanelUi) {\n const customFromPanelUi = this.customFormPanelUi || this.formPanelCtrl.Adapter.Control;\n this._renderFormPanelUi(customFromPanelUi);\n return;\n }\n\n const { formSetting, moId, typeDefId, reportId, viewId, viewName } = params;\n let options: any = null;\n if (formSetting) {\n options = {\n Mo: formSetting.Data.Mo,\n TypeDefId: formSetting.Data.Mo.$TypeDefId\n };\n } else if (moId && (typeDefId || reportId)) {\n options = {\n MoId: moId,\n MoContext: {\n ReportId: reportId,\n ViewId: viewId,\n ViewName: viewName\n },\n TypeDefId: typeDefId,\n ReportId: reportId\n };\n }\n const frmParam = new BarsaApi.Ul.FormRequestParams(options);\n const formpanelCtrlr = new BarsaApi.Ul.FormPanelCtrlr({\n FormRequestParams: frmParam\n });\n formpanelCtrlr.inDialog = this.params.inDialog;\n\n formpanelCtrlr.Setting = formSetting;\n this.formPanelCtrl = formpanelCtrlr;\n this.portalService.formPanels[this.formPanelCtrlId] = formpanelCtrlr;\n BarsaApi.Common.Async.Waterfall(\n 'Ul.SystemContainerCtrlr.CreateFormPanel',\n [\n formpanelCtrlr.LoadAndCreate.bind(formpanelCtrlr, frmParam, false, formSetting ? false : true),\n (doReturn0) => {\n this._renderFormPanelUi(formpanelCtrlr.Adapter.Control);\n doReturn0();\n }\n ],\n (err, result) => {\n // me.UnmaskPage(),\n if (err) {\n console.error(err);\n }\n BarsaApi.Common.Async.Finalize(err, result);\n }\n );\n }\n\n private async _renderFormPanelUi(customFormPanelUi: any): Promise<void> {\n if (this.params.isSimple) {\n if (!customFormPanelUi.Setting.View.ExtraJsonProp) {\n customFormPanelUi.Setting.View.ExtraJsonProp = {};\n }\n customFormPanelUi.Setting.View.ExtraJsonProp.IsSimple = this.params.isSimple;\n }\n const customUiSetting = BarsaApi.Common.Util.TryGetValue(customFormPanelUi.Setting, 'View.CustomUi', null);\n const { moduleName, modulePath, componentName, selector } = getComponentDefined(\n customFormPanelUi,\n customUiSetting\n );\n this.portalService\n .getComponent(moduleName, modulePath, componentName, selector, this.injector)\n .pipe(\n takeUntil(this._onDestroy$),\n tap((component) => {\n const componentInstance = component.instance;\n componentInstance.FormPanelCtrlr = this.formPanelCtrl;\n componentInstance.context = customFormPanelUi;\n componentInstance.toolbar = customFormPanelUi.toolbar;\n componentInstance.setting = customFormPanelUi.Setting;\n componentInstance.title = customFormPanelUi.title;\n componentInstance.groupVisibility = customFormPanelUi.groupVisibility;\n this.vcr.insert(component.hostView);\n componentInstance.mo$.pipe(takeUntil(this._onDestroy$)).subscribe((mo) => {\n this.moChanged.emit(mo);\n });\n componentInstance.title$.pipe(takeUntil(this._onDestroy$)).subscribe((title) => {\n this.titleChanged.emit(title);\n });\n componentInstance.forceClose$.pipe(takeUntil(this._onDestroy$)).subscribe(() => {\n this.formClose.emit();\n });\n // component.instance.addEventListener('formClose', this.close);\n // el.appendChild(htmlElement);\n this.formRendered.emit(customFormPanelUi);\n })\n )\n .subscribe((component) => {\n this.uiFormComponent = component;\n this.cdr.detectChanges();\n });\n }\n}\n","import { ChangeDetectionStrategy, Component, HostBinding, Input, ViewChild } from '@angular/core';\r\nimport { FormPageBaseComponent } from '../abstract-classes';\r\nimport { FormComponent } from '../form/form.component';\r\nimport { ContainerService, FormService } from '../services';\r\n\r\n@Component({\r\n selector: 'bnrc-form-page',\r\n template: `\r\n <bnrc-form\r\n [formPanelCtrl]=\"formPanelCtrlr\"\r\n [formPanelCtrlId]=\"formpanelCtrlrId\"\r\n [params]=\"params\"\r\n (formClose)=\"onFormClose()\"\r\n ></bnrc-form>\r\n <router-outlet></router-outlet>\r\n `,\r\n styles: [\r\n `\r\n :host {\r\n display: block;\r\n background: var(--sapBackgroundColor);\r\n }\r\n `\r\n ],\r\n providers: [FormService, ContainerService],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class FormPageComponent extends FormPageBaseComponent {\r\n @ViewChild(FormComponent, { static: true }) formRef: FormComponent;\r\n @Input() formPanelCtrlr: any;\r\n @HostBinding('class.section') sectionClass = true;\r\n @HostBinding('class.absolute-page') absolutePageClass = true;\r\n moId: string;\r\n typeDefId: string;\r\n reportId: string;\r\n viewId: string;\r\n formpanelCtrlrId: string;\r\n ngOnInit(): void {\r\n this.containerRef = this.formRef.vcr; // it must be first because we change containerRef\r\n super.ngOnInit();\r\n }\r\n}\r\n","import {\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n EventEmitter,\n Input,\n OnChanges,\n Optional,\n Output,\n Self\n} from '@angular/core';\n\nimport {\n MetaobjectDataModel,\n LayoutSetting,\n AbbrevationDeviceSize,\n EjrayOlgo,\n ReportViewColumn,\n UiReportViewBaseSetting,\n DeviceSize\n} from '../abstract-classes';\nimport { BaseComponent } from './base.component';\nimport { ColumnService } from '../services';\nimport { takeUntil } from 'rxjs';\n@Component({\n selector: 'bnrc-base-column-props',\n template: ``,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class BaseColumnPropsComponent extends BaseComponent implements AfterViewInit, OnChanges {\n @Output() save = new EventEmitter<any>();\n @Output() cancel = new EventEmitter<any>();\n @Output() tab = new EventEmitter<any>();\n @Output() changeToEditMode = new EventEmitter<any>();\n @Input() allColumns: ReportViewColumn[];\n @Input() column: any;\n @Input() mo: MetaobjectDataModel;\n @Input() index: any;\n @Input() editMode: boolean;\n @Input() customRowHeight: any;\n @Input() controlUi: LayoutSetting | null;\n @Input() formLayoutShowLabel: boolean;\n @Input() isChecked: boolean;\n @Input() isNewInlineMo: boolean;\n @Input() layout94: LayoutSetting;\n @Input() detailsComponentSetting: UiReportViewBaseSetting;\n\n @Input() value: any;\n @Input() icon: any;\n @Input() rtl: boolean;\n @Input() deviceName: DeviceSize;\n @Input() deviceSize: AbbrevationDeviceSize;\n @Input() customComponent: EjrayOlgo | null;\n constructor(@Optional() @Self() _columnService: ColumnService, protected _el: ElementRef) {\n super();\n _columnService.uiControlRendered.pipe(takeUntil(this._onDestroy$)).subscribe((c) => {\n this._callChangeToEditMode();\n });\n }\n\n _callChangeToEditMode(): void {\n this.changeToEditMode.emit(this._el.nativeElement);\n }\n}\n","import {\n AfterViewInit,\n Component,\n ChangeDetectionStrategy,\n Input,\n EventEmitter,\n Output,\n ElementRef,\n Renderer2,\n ChangeDetectorRef\n} from '@angular/core';\nimport { LayoutSetting, MetaobjectDataModel } from './models';\n\nimport { BaseComponent } from './base.component';\nimport { FieldSetting } from './field-base';\n\n@Component({\n selector: 'bnrc-tile-base',\n template: '',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class TilePropsComponent extends BaseComponent implements AfterViewInit {\n @Input() parameters: MetaobjectDataModel;\n @Input() data: MetaobjectDataModel;\n @Input() context: FieldSetting;\n @Input() edit: boolean;\n @Input() layoutInfo: LayoutSetting;\n @Output() hideClick = new EventEmitter();\n @Output() renameClick = new EventEmitter();\n\n constructor(public el: ElementRef, protected _renderer2: Renderer2, protected _cdr: ChangeDetectorRef) {\n super();\n }\n}\n","import { ChangeDetectionStrategy, Component, HostBinding, OnInit } from '@angular/core';\r\nimport { BarsaApi, PageWithFormHandlerBaseComponent } from '../abstract-classes';\r\n\r\nimport { ContainerService } from '../services/container.service';\r\n@Component({\r\n selector: 'bnrc-empty-page',\r\n templateUrl: './empty-page.component.html',\r\n styleUrls: ['./empty-page.component.scss'],\r\n providers: [ContainerService],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class EmptyPageComponent extends PageWithFormHandlerBaseComponent implements OnInit {\r\n @HostBinding('style.position') _position: string | null = null;\r\n @HostBinding('class.section') sectionClass = true;\r\n @HostBinding('class.absolute-page') absolutePageClass = true;\r\n ngOnInit(): void {\r\n super.ngOnInit();\r\n if (!BarsaApi.LoginFormData.IsServiceDesk) {\r\n this._position = 'relative';\r\n }\r\n if (this._activatedRoute.snapshot.data?.pageData?.Component?.Settings?.IsRelativePage) {\r\n this._position = 'relative';\r\n }\r\n }\r\n}\r\n","<ng-container #containerRef></ng-container>\r\n<router-outlet></router-outlet>\r\n<router-outlet name=\"main\"></router-outlet>\r\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\nimport { Router } from '@angular/router';\n\nimport { BarsaApi, MetaobjectDataModel } from '../abstract-classes';\nimport { BaseComponent } from '../abstract-classes/base.component';\n@Component({\n selector: 'bnrc-redirect-report-navigator-command',\n templateUrl: './redirect-report-navigator-command.component.html',\n styleUrls: ['./redirect-report-navigator-command.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class RedirectReportNavigatorCommandComponent extends BaseComponent {\n settings: MetaobjectDataModel;\n _Object = {\n ShowSystemContainerPage: (navItem) => {\n if (navItem.DynamicCommand) {\n const logParams = { CommandId: navItem.FolderId };\n const finish = BarsaApi.Common.LogManager.StartLog('Navigator.Command', logParams);\n const e = { Command: navItem, DynamicSetting: navItem.DynamicCommand };\n BarsaApi.Common.CustomCodeManager.RunDynamicCommand(navItem.Id, e, finish);\n BarsaApi.Common.LogManager.EndLog();\n } else {\n this.router.navigate([this.settings.ReportPageUrl, navItem.Id + '__' + navItem.Caption]);\n }\n }\n };\n constructor(private router: Router) {\n super();\n BarsaApi.Bw.App.GetActiveSystem = () => this;\n }\n}\n","","import { ChangeDetectionStrategy, Component } from '@angular/core';\r\n\r\nimport { PageBaseComponent } from '../abstract-classes';\r\n\r\n@Component({\r\n selector: 'bnrc-portal-page',\r\n templateUrl: './portal-page.component.html',\r\n styleUrls: ['./portal-page.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class PortalPageComponent extends PageBaseComponent {}\r\n","<ng-container #containerRef></ng-container>\r\n<router-outlet></router-outlet>\r\n","import {\n ChangeDetectionStrategy,\n Component,\n ComponentRef,\n EventEmitter,\n Injector,\n Input,\n OnChanges,\n OnDestroy,\n OnInit,\n Output,\n SimpleChanges,\n ViewChild,\n ViewContainerRef\n} from '@angular/core';\nimport { takeUntil, tap } from 'rxjs';\nimport { EjrayOlgo } from '../abstract-classes';\nimport { BaseComponent } from '../abstract-classes/base.component';\nimport { PortalService } from '../services';\n\n@Component({\n selector: 'bnrc-dynamic-component',\n template: `<ng-container #componentContainer></ng-container>`,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class BaseDynamicComponent extends BaseComponent implements OnInit, OnDestroy, OnChanges {\n @ViewChild('componentContainer', { read: ViewContainerRef, static: true })\n _container: ViewContainerRef;\n @Input() component: EjrayOlgo;\n @Input() value: any;\n @Output() events = new EventEmitter<{ title: string; data?: any }>();\n public _component: ComponentRef<any>;\n constructor(\n protected _vcr: ViewContainerRef,\n protected _portalService: PortalService,\n protected _injector: Injector\n ) {\n super();\n }\n async ngOnInit(): Promise<void> {\n super.ngOnInit();\n if (!this._container) {\n this._container = this._vcr;\n }\n this._renderComponentInstance();\n }\n ngOnChanges(changes: SimpleChanges): void {\n if (!this._component?.instance) {\n return;\n }\n // const changesKey = Object.keys(changes);\n // changesKey\n // .filter((c) => !changes[c].firstChange)\n // .forEach((c) => (this._component.instance[c] = changes[c].currentValue));\n\n this._component.instance.ngOnChanges(changes);\n }\n ngOnDestroy(): void {\n this._destroyComponentInstance();\n }\n\n protected async _renderComponentInstance(): Promise<void> {\n this._destroyComponentInstance();\n if (!this.component) {\n return;\n }\n const { Module, ModuleFileName, Name, Selector } = this.component;\n this._portalService\n .getComponent(Module, ModuleFileName, Name, Selector, this._injector)\n .pipe(takeUntil(this._onDestroy$))\n .subscribe((componentRef: ComponentRef<any>) => {\n this._container.insert(componentRef.hostView);\n this._component = componentRef;\n if (this.component.Parameters) {\n this._component.instance.parameters = this.component.Parameters;\n } else if (this.component.Settings) {\n this._component.instance.parameters = this.component.Settings;\n }\n if (this.value) {\n this._component.instance.value = this.value;\n }\n this.setComponentInputs();\n const events = this._component.instance.events as EventEmitter<{ title: string; data?: any }>;\n if (events) {\n events\n .pipe(\n takeUntil(this._onDestroy$),\n tap((c) => this.events.emit(c))\n )\n .subscribe();\n }\n });\n // this.setComponentInputs();\n }\n\n protected setComponentInputs(): void {\n const inputProperties = Object.keys(this).filter((c) => !c.startsWith('_') && c !== 'events');\n inputProperties.forEach((c) => {\n this._component.instance[c] = this[c];\n });\n }\n\n protected _destroyComponentInstance(): void {\n if (this._component) {\n this._component.destroy();\n }\n }\n}\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\r\nimport { LayoutSetting, MetaobjectDataModel } from '../abstract-classes';\r\nimport { BreadCrumbInfo } from '../services';\r\nimport { BaseDynamicComponent } from './base-dynamic.component';\r\n\r\n@Component({\r\n selector: 'bnrc-dynamic-form-component',\r\n template: `<ng-container #componentContainer></ng-container>`,\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class DynamicFormComponent extends BaseDynamicComponent {\r\n @Input() breadCrumbs: BreadCrumbInfo[] | null;\r\n @Input() toolbarVisible: boolean;\r\n @Input() toolbarItems: any[];\r\n @Input() layoutActions: any[];\r\n @Input() layout94;\r\n @Input() settings: MetaobjectDataModel;\r\n @Input() workflowPanelUi: any;\r\n @Input() title: string;\r\n @Input() subtitle: string;\r\n @Input() description: string;\r\n @Input() facetList: any[];\r\n @Input() removeHeaderBorder: boolean;\r\n @Input() removeContentPadding: boolean;\r\n @Input() isMobile: boolean;\r\n @Input() avatar: any;\r\n @Input() rtl: boolean;\r\n @Input() mask: boolean;\r\n @Input() mo: MetaobjectDataModel;\r\n @Input() contentDensity: any;\r\n @Input() deviceSize: 's' | 'm' | 'l' | 'xl';\r\n @Input() dirValue: 'rtl' | 'ltr';\r\n @Input() fieldDict: { [key: string]: string } | undefined;\r\n @Input() modernTabs: LayoutSetting[];\r\n}\r\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport {\n AbbrevationDeviceSize,\n DeviceSize,\n FormSetting,\n MetaobjectDataModel,\n ReportViewColumn,\n UiReportViewBaseSetting\n} from '../abstract-classes';\nimport { BaseDynamicComponent } from './base-dynamic.component';\n\n@Component({\n selector: 'bnrc-dynamic-item-component',\n template: `<ng-container #componentContainer></ng-container>`,\n styles: [\n `\n :host {\n display: contents;\n }\n `\n ],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class DynamicItemComponent extends BaseDynamicComponent {\n @Input() mo: MetaobjectDataModel;\n @Input() allColumns: ReportViewColumn[];\n @Input() moDataList: MetaobjectDataModel[];\n @Input() columns: ReportViewColumn[];\n @Input() column: ReportViewColumn;\n @Input() index: number;\n @Input() last: boolean;\n @Input() deviceName: DeviceSize;\n @Input() deviceSize: AbbrevationDeviceSize;\n @Input() rtl: boolean;\n @Input() editMode: boolean;\n @Input() setting: UiReportViewBaseSetting;\n @Input() parameters?: MetaobjectDataModel;\n @Input() contextMenuItems: any[];\n @Input() canView: boolean;\n @Input() formSetting: FormSetting;\n @Input() conditionalFormats: any;\n @Input() disableOverflowContextMenu: boolean;\n @Input() navigationArrow: string;\n @Input() isCheckList: boolean;\n\n @Input() fields: MetaobjectDataModel;\n @Input() isChecked: boolean;\n @Input() layout94$: Observable<any>;\n @Input() inlineEditMode: boolean;\n @Input() isNewInlineMo: boolean;\n @Input() allowInlineEdit: boolean;\n @Input() typeDefId: string;\n @Input() rowIndicator: boolean;\n @Input() rowIndicatorColor: string;\n}\n","import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from '@angular/core';\n\nimport {\n AbbrevationDeviceSize,\n DefaultCommandsAccess,\n DeviceSize,\n MetaobjectDataModel,\n ShareButtonsChoiceDef\n} from '../abstract-classes';\nimport { BaseComponent } from '../abstract-classes/base.component';\n\n@Component({\n selector: 'bnrc-base-view-props',\n template: ``,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class BaseViewPropsComponent extends BaseComponent {\n @Input() moDataList: MetaobjectDataModel[];\n @Input() reportId: string;\n @Input() allColumns: any;\n @Input() isCheckList: boolean;\n @Input() allChecked: boolean;\n @Input() canView: boolean;\n @Input() visibility: boolean;\n @Input() level: number;\n @Input() expanded: boolean;\n @Input() styleIndex: number[];\n @Input() workflowState: { state: string; errorText: string };\n @Input() parentExpanded: boolean;\n @Input() access: DefaultCommandsAccess;\n @Input() groupby: any;\n @Input() conditionalFormats: any;\n @Input() deviceName: DeviceSize;\n @Input() deviceSize: AbbrevationDeviceSize;\n @Input() contextMenuItems: any[];\n @Input() columns: any;\n @Input() allowInlineEdit: any;\n @Input() secondaryColumns: any;\n @Input() popin: boolean;\n @Input() typeDefId: string;\n @Input() columnsCount: any;\n @Input() mobileOrTablet: boolean;\n @Input() containerWidth: number;\n @Input() newInlineEditMo: MetaobjectDataModel | null;\n @Input() inlineEditMode: boolean;\n @Input() onlyInlineEdit: boolean;\n @Input() rowHoverable: boolean;\n @Input() tlbButtons: any[];\n @Input() setting: any | null | undefined;\n @Input() parameters: MetaobjectDataModel;\n @Input() formSetting: any;\n @Input() disableOverflowContextMenu: boolean;\n @Input() rowActivable = true;\n @Input() contentDensity: any;\n @Input() rtl = true;\n @Input() showOkCancelButtons;\n @Input() title;\n @Input() isChecked;\n @Input() navigationArrow: string;\n @Output() deselectAll = new EventEmitter<void>();\n @Output() rowCheck = new EventEmitter<{ mo: MetaobjectDataModel; index: number }>();\n @Output() workflowShareButtons = new EventEmitter<ShareButtonsChoiceDef>();\n @Output() rowClick = new EventEmitter<{ mo: MetaobjectDataModel; index: number }>();\n @Output() ulvCommand = new EventEmitter<{ mo: MetaobjectDataModel; index: number }>();\n @Output() editFormPanelCancel = new EventEmitter<MetaobjectDataModel>();\n @Output() editFormPanelSave = new EventEmitter<MetaobjectDataModel>();\n @Output() selectNextInlineRecord = new EventEmitter<MetaobjectDataModel>();\n @Output() action = new EventEmitter<string>();\n @Output() expandClick = new EventEmitter<MetaobjectDataModel>();\n @Output() editFormPanelValueChange = new EventEmitter<MetaobjectDataModel>();\n @Output() cartableFormClosed = new EventEmitter<{ mo: MetaobjectDataModel; index: number }>();\n _trackByRow(index: number, row: MetaobjectDataModel): string {\n return `${row.$Group ? row.$Group : row.Id}${index}`;\n }\n}\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\nimport { MetaobjectDataModel, UiReportViewBaseSetting } from '../abstract-classes';\nimport { BaseViewPropsComponent } from './base-view-props';\n\n@Component({\n selector: 'bnrc-base-view-content-props',\n template: ``,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class BaseViewContentPropsComponent<T extends UiReportViewBaseSetting> extends BaseViewPropsComponent {\n @Input() moDataList: MetaobjectDataModel[];\n @Input() setting: T;\n}\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n Input,\n OnChanges,\n OnInit,\n Optional,\n Self,\n SimpleChanges,\n SkipSelf\n} from '@angular/core';\nimport { DomSanitizer, SafeHtml } from '@angular/platform-browser';\nimport { catchError, from, tap, Observable, Subject, switchMap, takeUntil, throwError } from 'rxjs';\n\nimport { MetaobjectDataModel, ReportViewColumn, FormSetting, BarsaApi, ChoiceDef } from '../abstract-classes';\nimport { PreventDefaulEvent, createGridEditorFormPanel } from '../constants';\nimport { FormPanelService, UlvMainService } from '../services';\nimport { BaseViewPropsComponent } from './base-view-props';\nimport { MoReportValuePipe } from '../pipes';\ntype ReasonToSave = 'TAB' | 'CTRL+ENTER' | 'CHECK_CHANGED' | 'ESC';\n@Component({\n selector: 'bnrc-base-view-item-props',\n template: ``,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class BaseViewItemPropsComponent extends BaseViewPropsComponent implements OnInit, OnChanges {\n @Input() mo: MetaobjectDataModel;\n @Input() moDataListCount: number;\n @Input() index: number;\n @Input() last: boolean;\n @Input() isChecked: boolean;\n @Input() isNewInlineMo: boolean;\n @Input() extraRelation: any;\n @Input() hideOpenIcon: boolean;\n @Input() inDialog: boolean;\n @Input() isMultiSelect: boolean;\n @Input() rowIndicator: boolean;\n @Input() rowIndicatorColor: string;\n\n @Input() set serializedRelatedMo(val: string) {\n this._serializedRelatedMo = val;\n this._updateCartableMo(val);\n this._createCartableParams();\n }\n @Input() set cartableTemplate(val: FormSetting) {\n this._cartableTemplate = val;\n this._createCartableParams();\n }\n @Input() set cartableMo(val: MetaobjectDataModel) {\n this._cartableMo = val;\n this._updateCartableMo(this._serializedRelatedMo);\n\n this._createCartableParams();\n }\n @Input() set cartableWorkflowData(val: string) {\n this._cartableWorkflowData = val;\n this._createCartableParams();\n }\n hasError = false;\n _focusToFirstEidtableColumn = false;\n _lastEditableColumnIndex: number;\n inlineEditInReport = true;\n layout$: Observable<any>;\n formPanelCtrlr: any;\n saving: boolean;\n saved: boolean;\n inRow = true;\n hasCartableTemplate = false;\n cartableParams: {\n formSetting: FormSetting;\n moId: string;\n typeDefId: string | undefined;\n viewId: any;\n inDialog: boolean;\n };\n bruleActionMessage: BruleActionMessage | null = null;\n private _saveEditedMo$ = new Subject<ReasonToSave>();\n private _formpanelValueChanged$ = new Subject<void>();\n private _formPanelLoaded: boolean;\n private _cartableMo: MetaobjectDataModel;\n private _cartableTemplate: FormSetting;\n private _cartableWorkflowData: string;\n private _serializedRelatedMo: string;\n constructor(\n protected _el: ElementRef,\n protected _domSanitizer: DomSanitizer,\n protected _cdr: ChangeDetectorRef,\n protected _reportValuePipe: MoReportValuePipe,\n @Optional() @SkipSelf() protected _parentFormPanelService: FormPanelService,\n @Optional() @Self() protected _formPanelService: FormPanelService,\n @Optional() protected _ulvMainService: UlvMainService\n ) {\n super();\n this._saveEditedMo$\n .asObservable()\n .pipe(\n takeUntil(this._onDestroy$),\n switchMap((reason: ReasonToSave) => this._inlineEditSaveFormPanel(reason)),\n catchError((err) => throwError(() => err))\n )\n .subscribe((res: { reason: ReasonToSave; succeed: boolean; saved: boolean }) => {\n if (res.saved) {\n this._formpanelValueChanged$.next();\n this._cdr.markForCheck();\n }\n if (res.reason === 'TAB' || res.reason === 'CTRL+ENTER') {\n this.selectNextInlineRecord.emit(this.mo);\n } else if (res.reason === 'ESC') {\n this.editFormPanelCancel.emit(this.mo);\n }\n });\n this._formpanelValueChanged$\n .asObservable()\n .pipe(\n takeUntil(this._onDestroy$),\n switchMap(() => this._syncMo()),\n tap(() => {\n if (typeof this.mo.$InlineMoChanged === 'undefined') {\n this.mo.$InlineMoChanged = true;\n }\n })\n )\n .subscribe(() => {\n this.editFormPanelValueChange.emit(this.mo);\n });\n }\n private get _hasFormPanelService(): boolean {\n return this._formPanelService !== null && this.formSetting;\n }\n\n ngOnInit(): void {\n super.ngOnInit();\n\n if (this._hasFormPanelService) {\n this._formPanelService.context$.pipe(takeUntil(this._onDestroy$)).subscribe();\n this._formPanelService.view$.pipe(takeUntil(this._onDestroy$)).subscribe();\n this.layout$ = this._formPanelService.layout$;\n }\n }\n ngOnChanges(changes: SimpleChanges): void {\n super.ngOnChanges(changes);\n const { isChecked, inlineEditMode } = changes;\n let needToLoadForm = false;\n if (this.inlineEditMode) {\n if (isChecked) {\n if (!isChecked.currentValue && isChecked.previousValue) {\n if (this._needToSave()) {\n this._saveEditedMo$.next('CHECK_CHANGED');\n }\n } else if (isChecked.currentValue) {\n needToLoadForm = true;\n }\n }\n }\n if (inlineEditMode?.currentValue && !inlineEditMode?.previousValue && this.isChecked) {\n needToLoadForm = true;\n } else if (!inlineEditMode?.currentValue && inlineEditMode?.previousValue && this.isChecked) {\n this._saveEditedMo$.next('ESC');\n }\n if (needToLoadForm) {\n this._loadAndCreateFormPanelCtrlr();\n }\n if (changes.mo && !changes.mo.firstChange && this.inlineEditMode) {\n if (this._formPanelLoaded) {\n this.formPanelCtrlr.SetValue(changes.mo.currentValue);\n }\n }\n // if (mo && !mo.firstChange && this._hasFormPanelService && this.isChecked && this.inlineEditMode) {\n // //this.formPanelCtrlr.SetValue(changes.mo.currentValue);\n // }\n }\n ngOnDestroy(): void {\n super.ngOnDestroy();\n if (this.formPanelCtrlr) {\n this.formPanelCtrlr.un('bruleShowMessageAction', this._handleBruleShowMessageAction);\n }\n }\n OnCartableFormClick(e): void {\n if (this.isChecked) {\n e.preventDefault();\n e.stopPropagation();\n }\n }\n\n onRowCheck(): void {\n this._rowCheck();\n }\n\n onRowClick(): void {\n this.rowClick.emit({ mo: this.mo, index: this.index });\n }\n onColumnChangeToEditMode(columnEl: HTMLElement, index: number): void {\n const focusables = columnEl.querySelectorAll(\n `button,button:not([disabled]),[href],input:not([disabled]),input,\n select,select:not([disabled]),textarea,textarea:not([disabled]),[tabindex]:not([tabindex=\"-1\"])`\n );\n this._lastEditableColumnIndex = index;\n if (!focusables.length || this._focusToFirstEidtableColumn) {\n return;\n }\n this._focusToFirstEidtableColumn = true;\n const lastFocusable = focusables[0];\n setTimeout(() => {\n (lastFocusable as HTMLElement)?.focus();\n }, 0);\n }\n onTabKeyDown(e, index): void {\n if (index === this._lastEditableColumnIndex) {\n PreventDefaulEvent(e);\n this._saveEditedMo$.next('TAB');\n }\n }\n onEditFormPanelSave(e): void {\n this._saveEditedMo$.next('CTRL+ENTER');\n }\n onEditFormPanelCancel(e): void {\n this._saveEditedMo$.next('ESC');\n }\n onUlvCommand(): void {\n this.ulvCommand.emit({ mo: this.mo, index: this.index });\n }\n onAction(commandBody: string): void {\n this.action.emit(commandBody);\n }\n onExpandClick(): void {\n this.expandClick.emit(this.mo);\n }\n onDynamicComponentEvents(e: { title: string; data?: any }): void {\n switch (e.title) {\n case 'rowCheck':\n this.onRowCheck();\n break;\n case 'rowClick':\n this.onRowClick();\n break;\n case 'ulvCommand':\n this.onUlvCommand();\n break;\n }\n }\n\n onCartableFormClosed(): void {\n this.cartableFormClosed.emit({ mo: this.mo, index: this.index });\n }\n _trackByColumn(index: number, column: ReportViewColumn): string {\n return `${column.Name}${index}`;\n }\n protected _updateCartableMo(serializeMo: string): void {\n if (serializeMo && this._cartableMo) {\n serializeMo = `${serializeMo}`;\n const mo = BarsaApi.Ext.decode(serializeMo);\n this._cartableMo = { ...this._cartableMo, ...mo };\n }\n }\n protected _createCartableParams(): void {\n let cartableTemplate = this._cartableTemplate;\n const cartableMo = this._cartableMo;\n const cartableWorkflowData = this._cartableWorkflowData;\n if (this.hasCartableTemplate) {\n // TODO update cartable mo;\n return;\n }\n if (\n cartableTemplate &&\n cartableMo &&\n typeof cartableWorkflowData !== 'undefined' &&\n this._serializedRelatedMo\n ) {\n cartableTemplate = JSON.parse(JSON.stringify(cartableTemplate));\n const view = cartableTemplate.View;\n cartableTemplate.Data = { Mo: { ...cartableMo } };\n cartableTemplate.Workflow = cartableWorkflowData === '' ? null : JSON.parse(cartableWorkflowData);\n if (!view.ExtraJsonProp) {\n view.ExtraJsonProp = {};\n }\n view.ExtraJsonProp.IsSimple = true;\n\n this.cartableParams = {\n formSetting: cartableTemplate,\n moId: cartableMo.Id,\n typeDefId: cartableMo.$TypeDefId,\n viewId: view.TypeViewId,\n inDialog: false\n };\n this.hasCartableTemplate = true;\n this._cdr.markForCheck();\n }\n }\n protected _needToSave(): boolean {\n // if (!this.isChecked) {\n // return false;\n // }\n // const isChildNode = (this._el.nativeElement as HTMLElement).contains(e.target);\n // if (isChildNode) {\n // return false;\n // }\n const t = this.inlineEditMode && this._hasFormPanelService;\n if (!t) {\n return false;\n }\n\n return this.formPanelCtrlr && this.formPanelCtrlr.IsMoChanged();\n }\n\n protected _checkfocusOutFromRow(target): void {\n // const focusable: NodeList = this._focusableControls;\n // let foundInFocusable = false;\n // focusable.forEach((c) => {\n // if (c === target) {\n // foundInFocusable = true;\n // }\n // });\n // if (!foundInFocusable) {\n // this._saveEditedMo$.next('TAB');\n // }\n }\n protected _rowCheck(): void {\n // if (this.isChecked) {\n // return;\n // }\n this.rowCheck.emit({ mo: this.mo, index: this.index });\n if (this.cartableParams) {\n const choiceList: ChoiceDef[] = this.cartableParams.formSetting?.Workflow?.ChoiceList;\n if (choiceList.length) {\n this.workflowShareButtons.emit({ mo: this.mo, choiceList, add: !this.isChecked });\n }\n }\n }\n\n protected _handleValueChange(): void {\n if (!this.isChecked) {\n this.onRowCheck();\n }\n this._formpanelValueChanged$.next();\n }\n protected _syncMo(): Observable<void> {\n const syncWithFormpanelMo = this.mo;\n const _isChecked = this.mo.$IsChecked;\n const formPanelCtrlrMo = this.formPanelCtrlr.Mo;\n this._updateWithOriginalValues(formPanelCtrlrMo, syncWithFormpanelMo);\n syncWithFormpanelMo['$OriginalValues'] = formPanelCtrlrMo['$OriginalValues'];\n syncWithFormpanelMo['$FieldDict'] = formPanelCtrlrMo['$FieldDict'];\n syncWithFormpanelMo['$State'] = formPanelCtrlrMo['$State']; // this add because if we edit unchanged mo it does not reflect to mo of ulv.\n this.mo = { ...syncWithFormpanelMo };\n this.mo.$IsChecked = _isChecked;\n return from(Promise.resolve());\n }\n\n protected _updateWithOriginalValues(source: MetaobjectDataModel, dest: MetaobjectDataModel): void {\n Object.keys(source.$OriginalValues).forEach((c: any) => {\n dest[c] = source[c];\n if (source[c + '$Caption']) {\n dest[c + '$Caption'] = source[c + '$Caption'];\n }\n if (source[c + '$Icon']) {\n dest[c + '$Icon'] = source[c + '$Icon'];\n }\n });\n }\n\n protected _raiseFormPanelValueChanged(): void {\n this.editFormPanelValueChange.emit(this.mo);\n }\n\n protected _handleBruleShowMessageAction(action: BruleActionMessage): void {\n action.MessageExpressionHtml = this._domSanitizer.bypassSecurityTrustHtml(action.MessageExpression);\n this.bruleActionMessage = action;\n // if (action.MessageType === BarsaApi.Common.Enums.ShowMessageRuleAction_Type.Information) {\n // if (action.EscapeCharacters) Ul.MsgBox.Info(action.MessageExpression, doReturn);\n // else Ul.MsgBox.Info_ShowHtml(action.MessageExpression, doReturn);\n // } else if (action.MessageType === BarsaApi.Common.Enums.ShowMessageRuleAction_Type.Error) {\n // var doReturn0 = function () {\n // this._formPanel.RefocusCurrentField();\n // doReturn(new Common.SilentException());\n // };\n // if (action.EscapeCharacters) Ul.MsgBox.Error(action.MessageExpression, doReturn0.bind(this));\n // else Ul.MsgBox.Error_ShowHtml(action.MessageExpression, doReturn0.bind(this));\n // } else if (action.MessageType === BarsaApi.Common.Enums.ShowMessageRuleAction_Type.OkCancel) {\n // Ul.MsgBox.ConfirmYesNo_Safe(true, action.MessageExpression, BBB.Select, action.EscapeCharacters, doReturn);\n // }\n }\n protected _createFormPanelCtrlr(mo: MetaobjectDataModel, typeDefId: string): any {\n if (!this.formPanelCtrlr) {\n this.formPanelCtrlr = createGridEditorFormPanel(\n this.formSetting,\n { ...mo },\n typeDefId,\n this.extraRelation,\n this.inRow\n // BarsaApi.Common.Util.TryGetValue(this.context.Setting, 'Extra.Relation')\n );\n }\n this.formPanelCtrlr.InlineEditInReport = true;\n this.formPanelCtrlr.on({\n bruleShowMessageAction: this._handleBruleShowMessageAction.bind(this),\n valueChange: this._handleValueChange.bind(this)\n });\n\n return this.formPanelCtrlr;\n }\n\n protected _loadAndCreateFormPanelCtrlr(): void {\n const formSettingData = this.formSetting.Data;\n const formMo = {\n ...this.mo,\n $FieldDict: formSettingData.Mo.$FieldDict,\n $TypeDefId: formSettingData.Mo.$TypeDefId,\n $OriginalValues: {}\n };\n if (this._formPanelLoaded) {\n this.formPanelCtrlr.SetValue(formMo);\n return;\n }\n\n this._createFormPanelCtrlr(formMo, this.typeDefId);\n this._formPanelLoaded = true;\n const formPanelCtrlr = this.formPanelCtrlr;\n this.formPanelCtrlr.UlvMoDataListCount = this.moDataListCount - 1;\n formPanelCtrlr.LoadAndCreate(null, false, false, () => {\n const customFormPanelUi = formPanelCtrlr.Adapter.Control;\n const parentMo = this._parentFormPanelService ? this._parentFormPanelService.mo : null;\n if (this.extraRelation && parentMo && this.extraRelation.RelationType === 'Composition') {\n formPanelCtrlr.Mo.SetFValue(this.extraRelation.ParentFdName, parentMo);\n // newFormSettings.Data.Mo[relation.ParentFdName] = parentMo.GetChangedObject();\n // newFormSettings.Data.Mo[relation.ParentFdName].$State = parentMo.$State;\n }\n customFormPanelUi.Refresh = () => {};\n this._formPanelService.context = formPanelCtrlr.Adapter.Control;\n });\n }\n protected _resetSavingStates(): void {\n this.hasError = false;\n this.bruleActionMessage = null;\n this.saved = false;\n this._cdr.markForCheck();\n }\n protected _setSavingState(err): void {\n if (err) {\n this.hasError = true;\n return;\n }\n this.hasError = false;\n this.saved = true;\n }\n protected _inlineEditSaveFormPanel(reason): Promise<{ reason: ReasonToSave; succeed: boolean; saved: boolean }> {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n return new Promise<{ reason: ReasonToSave; succeed: boolean; saved: boolean }>((resolve, _) => {\n if (!this.formPanelCtrlr.IsMoChanged()) {\n // if state of mo is new or modidfied then it needs to update\n resolve({ reason, succeed: true, saved: false });\n }\n const formPanelCtrlrMo = this.formPanelCtrlr.Mo;\n delete formPanelCtrlrMo.json;\n // this.saving = true;\n\n this.mo.$InlineMoChanged = false;\n this.editFormPanelSave.emit(this.mo);\n this.bruleActionMessage = null;\n this.formPanelCtrlr.Save(false, (err) => {\n // this.saving = false;\n this.formPanelCtrlr.SetIsChanged(false);\n this._setSavingState(err);\n resolve({ reason, succeed: true, saved: true });\n });\n });\n }\n}\ninterface BruleActionMessage {\n MessageType: number;\n EscapeCharacters: boolean;\n MessageExpression: string;\n MessageExpressionHtml: SafeHtml;\n}\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n EventEmitter,\n Input,\n Output,\n Renderer2\n} from '@angular/core';\nimport { Observable } from 'rxjs';\nimport {\n AbbrevationDeviceSize,\n DeviceSize,\n MetaobjectDataModel,\n ReportViewColumn,\n UiReportViewBaseSetting,\n FormSetting\n} from '../abstract-classes';\nimport { BaseComponent } from '../abstract-classes/base.component';\nimport { FindColumnByDbNamePipe, MoReportValuePipe } from '../pipes';\n\n@Component({\n selector: 'bnrc-base-item-content-props',\n template: ``,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class BaseItemContentPropsComponent<T extends UiReportViewBaseSetting> extends BaseComponent {\n @Output() events = new EventEmitter<{ title: string; data?: any }>();\n @Input() mo: MetaobjectDataModel;\n @Input() allColumns: ReportViewColumn[];\n @Input() column: ReportViewColumn;\n @Input() index: number;\n @Input() styleIndex: number[];\n @Input() deviceName: DeviceSize;\n @Input() deviceSize: AbbrevationDeviceSize;\n @Input() rtl: boolean;\n @Input() editMode: boolean;\n @Input() setting: T;\n @Input() parameters: MetaobjectDataModel;\n @Input() contextMenuItems: any[];\n @Input() canView: boolean;\n @Input() conditionalFormats: any;\n @Input() disableOverflowContextMenu: boolean;\n @Input() navigationArrow: string;\n @Input() isCheckList: boolean;\n @Input() fields: MetaobjectDataModel;\n @Input() isChecked: boolean;\n @Input() layout94$: Observable<any>;\n @Input() inlineEditMode: boolean;\n @Input() allowInlineEdit: boolean;\n @Input() isNewInlineMo: boolean;\n @Input() formSetting: FormSetting;\n @Input() typeDefId: string;\n\n constructor(\n protected _rval: MoReportValuePipe,\n protected _findColumnPipe: FindColumnByDbNamePipe,\n protected _cdr: ChangeDetectorRef,\n protected _el: ElementRef,\n protected _renderer2: Renderer2\n ) {\n super();\n }\n}\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, EventEmitter, Input, Output } from '@angular/core';\nimport { DeviceSize, MetaobjectDataModel, ReportViewColumn } from '../abstract-classes';\nimport { BaseComponent } from '../abstract-classes/base.component';\nimport { MoReportValuePipe } from '../pipes';\n\n@Component({\n selector: 'bnrc-form-toolbaritem-props',\n template: ``,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class BaseFormToolbaritemPropsComponent extends BaseComponent {\n @Input() deviceName: DeviceSize;\n @Input() btn: any;\n @Input() context: any;\n @Input() isEnable: boolean;\n @Input() inlineEditMode: boolean;\n @Input() parameters: MetaobjectDataModel;\n @Output() ulvClick = new EventEmitter<{ title: string; data?: any }>();\n @Input() mo: MetaobjectDataModel;\n @Input() allColumns: ReportViewColumn[];\n @Input() index: number;\n @Input() showText: boolean;\n @Input() conditionalFormats: any;\n @Output() commandClick = new EventEmitter<any>();\n constructor(protected _reportValuePipe: MoReportValuePipe, protected _cdr: ChangeDetectorRef) {\n super();\n }\n}\n","import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from '@angular/core';\r\nimport { DeviceSize, MetaobjectDataModel, ReportViewColumn } from '../abstract-classes';\r\nimport { BaseDynamicComponent } from './base-dynamic.component';\r\n\r\n@Component({\r\n selector: 'bnrc-dynamic-form-toolbaritem',\r\n template: `<ng-container #componentContainer></ng-container>`,\r\n styles: [':host { display: block;}'],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class DynamicFormToolbaritemComponent extends BaseDynamicComponent {\r\n @Output() btnClick = new EventEmitter<any>();\r\n @Input() mo: MetaobjectDataModel;\r\n @Input() index: number;\r\n @Input() deviceName: DeviceSize;\r\n @Input() context: any;\r\n @Input() btn: any;\r\n @Input() isEnable: boolean;\r\n @Input() showText: boolean;\r\n @Input() allColumns: ReportViewColumn[];\r\n @Input() conditionalFormats: any;\r\n}\r\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\nimport { LayoutSetting, MetaobjectDataModel } from '../abstract-classes';\nimport { BaseDynamicComponent } from './base-dynamic.component';\nimport { getUniqueId } from '../constants';\n\n@Component({\n selector: 'bnrc-dynamic-layout',\n template: ``,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class DynamicLayoutComponent extends BaseDynamicComponent {\n @Input() selector: string;\n @Input() module: string;\n @Input() name: string;\n @Input() parameters: MetaobjectDataModel;\n @Input() moduleFileName: string;\n @Input() flex: string;\n @Input() config: LayoutSetting;\n @Input() maxLabelWidth: number;\n @Input() hasHorizontalText: boolean;\n @Input() isSearchPanel: boolean;\n\n async ngOnInit(): Promise<void> {\n this.component = {\n Id: getUniqueId(3),\n $Caption: getUniqueId(3),\n Module: this.module,\n ModuleFileName: this.moduleFileName,\n Name: this.name,\n Selector: this.selector,\n Parameters: this.parameters\n };\n super.ngOnInit();\n }\n}\n","import { ChangeDetectionStrategy, Component, ElementRef, OnInit, ViewChild } from '@angular/core';\r\n\r\nimport { NavigationEnd, NavigationStart, RouterEvent } from '@angular/router';\r\nimport { Observable } from 'rxjs';\r\n\r\nimport { PageBaseComponent } from '../abstract-classes';\r\n\r\n@Component({\r\n selector: 'bnrc-root-portal',\r\n template: `<section class=\"section\" id=\"mainpage\" #sectionRef>\r\n <div #containerRef></div>\r\n </section>\r\n <div class=\"page-wrapper\">\r\n <router-outlet></router-outlet>\r\n </div>\r\n <footer #footerRef></footer> `,\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class RootPortalComponent extends PageBaseComponent implements OnInit {\r\n @ViewChild('sectionRef') sectionRef: ElementRef;\r\n @ViewChild('footerRef') footerRef: ElementRef;\r\n portalLoading$: Observable<boolean>;\r\n modules: any;\r\n isRoot = true;\r\n ngOnInit(): void {\r\n super.ngOnInit();\r\n this._router.events.subscribe((event) => {\r\n if (event instanceof NavigationStart && event instanceof RouterEvent) {\r\n this._portalService.naviationStart(event);\r\n }\r\n if (event instanceof NavigationEnd && event instanceof RouterEvent) {\r\n this._portalService.naviationEnd(event);\r\n }\r\n });\r\n }\r\n}\r\n","import { Directive, HostListener, Input } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[anchorScroll]'\r\n})\r\nexport class AnchorScrollDirective {\r\n @Input() anchorScroll: string;\r\n @HostListener('click')\r\n scrollInto(): void {\r\n const element = document.querySelector('#' + this.anchorScroll);\r\n if (element != null) {\r\n element.scrollIntoView();\r\n }\r\n }\r\n}\r\n","import {\n OnInit,\n AfterViewInit,\n Directive,\n OnDestroy,\n OnChanges,\n SimpleChanges,\n AfterContentInit,\n ElementRef\n} from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { BarsaApi } from '../abstract-classes/barsa-api';\n\n@Directive()\nexport abstract class BaseDirective implements OnInit, AfterViewInit, AfterContentInit, OnDestroy, OnChanges {\n protected readonly _onDestroy$: Subject<void> = new Subject<void>();\n /**\n *\n */\n constructor(protected _el: ElementRef) {}\n ngAfterContentInit(): void {\n if (!BarsaApi.Common.Debug?.Data?.CustomUi) {\n return;\n }\n console.log('ngAfterContentInit');\n console.log(this);\n }\n ngOnChanges(changes: SimpleChanges): void {\n if (!BarsaApi.Common.Debug?.Data?.CustomUi) {\n return;\n }\n console.log(changes);\n }\n ngOnInit(): void {\n if (!BarsaApi.Common.Debug?.Data?.CustomUi) {\n return;\n }\n console.log('ngOnInit');\n console.log(this);\n }\n ngAfterViewInit(): void {\n if (!BarsaApi.Common.Debug?.Data?.CustomUi) {\n return;\n }\n console.log('ngAfterViewInit');\n console.log(this);\n }\n ngOnDestroy(): void {\n this._onDestroy$.next();\n this._onDestroy$.complete();\n if (!BarsaApi.Common.Debug?.Data?.CustomUi) {\n return;\n }\n console.log('ngOnDestroy');\n console.log(this);\n }\n}\n","import { Directive, ElementRef, Input, Renderer2 } from '@angular/core';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { BaseDirective } from './base.directive';\r\n\r\nimport { PortalService } from '../services/portal.service';\r\n\r\n@Directive({\r\n selector: '[attrRtl]'\r\n})\r\nexport class AttrRtlDirective extends BaseDirective {\r\n @Input('attrRtl') rtl: boolean | undefined;\r\n constructor(private _renderer2: Renderer2, protected _el: ElementRef, _portalService: PortalService) {\r\n super(_el);\r\n const rtl = this.rtl;\r\n if (rtl === false) {\r\n this._setRtlAttribute(rtl);\r\n return;\r\n }\r\n _portalService.rtl$.pipe(takeUntil(this._onDestroy$)).subscribe((rtlValue) => {\r\n this._setRtlAttribute(rtlValue);\r\n });\r\n }\r\n\r\n private _setRtlAttribute(rtl: boolean): void {\r\n this._renderer2.setAttribute(this._el.nativeElement, 'rtl', `${rtl}`);\r\n }\r\n}\r\n","import { Directive, ElementRef, Input, OnInit, Renderer2 } from '@angular/core';\nimport { BaseDirective } from './base.directive';\n\n@Directive({\n selector: '[columnResizer]'\n})\nexport class ColumnResizerDirective extends BaseDirective implements OnInit {\n @Input() disableResizer: boolean;\n constructor(protected _el: ElementRef, private renderer: Renderer2) {\n super(_el);\n }\n ngOnInit(): void {\n super.ngOnInit();\n if (!this.disableResizer) {\n this._addColumnsResizer();\n }\n }\n\n private _addColumnsResizer(): void {\n const cell: HTMLTableCellElement = this._el.nativeElement;\n if (cell.hasAttribute('NoResizable')) {\n return;\n }\n const columnResizer = this.renderer.createElement('div');\n\n this.renderer.appendChild(cell, columnResizer);\n columnResizer.setAttribute('class', 'column-resizer');\n this.renderer.setAttribute(\n columnResizer,\n 'style',\n 'cursor: col-resize; width: 8px;position: absolute;left:0; top:0; bottom:0'\n );\n this.renderer.setStyle(cell, 'padding-left', 0);\n this.renderer.setStyle(cell, 'position', 'relative');\n }\n}\n","import { Directive, EventEmitter, HostListener, Input, Output } from '@angular/core';\nimport { MetaobjectDataModel } from '../abstract-classes';\nimport { ExecuteDynamicCommand } from '../constants';\n\n@Directive({\n selector: '[dynCommand]'\n})\nexport class DynamicCommandDirective {\n @Input() dynCommand: MetaobjectDataModel;\n @Input() mo: MetaobjectDataModel;\n @Input() enableCommand;\n @Output() commandClick = new EventEmitter();\n @HostListener('click', ['$event'])\n onClick(event: any): boolean {\n if (typeof this.enableCommand === typeof undefined) {\n this.enableCommand = true;\n }\n if (!this.enableCommand || !this.dynCommand) {\n return true;\n }\n const command = this.dynCommand;\n event.stopPropagation();\n event.preventDefault();\n ExecuteDynamicCommand(command, this.mo);\n this.commandClick.emit();\n return false;\n }\n}\n","import { AfterViewInit, Directive, ElementRef, HostListener, Input, Renderer2 } from '@angular/core';\nimport { BaseDirective } from './base.directive';\n\n@Directive({\n selector: '[ellipsify]'\n})\nexport class EllipsifyDirective extends BaseDirective implements AfterViewInit {\n @Input() limitLine;\n childes: ElementRef[];\n\n constructor(protected _el: ElementRef, protected renderer: Renderer2) {\n super(_el);\n }\n @HostListener('mousemove', ['$event'])\n moseMove(e): void {\n if (e.buttons) {\n this._heightChange();\n }\n }\n\n ngAfterViewInit(): void {\n super.ngAfterViewInit();\n setTimeout(() => {\n this.childes = this._el.nativeElement.querySelectorAll('span, h5, p');\n this._initStyle();\n this._handleNoEllipsis();\n this._heightChange();\n }, 100);\n }\n\n private _heightChange(): void {\n this.childes.forEach((child: any) => {\n if (child.childElementCount === 0) {\n const height = child.clientHeight;\n const lineHeightStr = getComputedStyle(child).lineHeight.replace('px', '');\n const lineHeight = Number(lineHeightStr);\n let limitLine = this.limitLine ? this.limitLine : Math.round(height / lineHeight);\n limitLine = limitLine && limitLine !== 0 ? limitLine : 1;\n this.renderer.setStyle(child, '-webkit-line-clamp', limitLine.toString());\n }\n });\n }\n\n private _initStyle(): void {\n this.childes.forEach((child: any) => {\n if (child.childElementCount === 0) {\n this.renderer.setStyle(child, 'height', 'inherit');\n this.renderer.setStyle(child, 'overflow', 'hidden');\n this.renderer.setStyle(child, '-webkit-box-orient', 'vertical');\n this.renderer.setStyle(child, 'display', '-webkit-box');\n this.renderer.setStyle(child, 'width', 'fit-content');\n }\n });\n }\n\n private _handleNoEllipsis(): void {\n const noEllipsisEls = this._el.nativeElement.querySelectorAll('[ellipsis=no-ellipsis]');\n noEllipsisEls.forEach((el: any) => {\n const all = el.querySelectorAll('span, h5, p');\n all.forEach((el2) => {\n if (el2.childElementCount === 0) {\n this.renderer.setStyle(el2, 'white-space', 'break-spaces');\n }\n });\n });\n }\n}\n","import { Directive, Input } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[field]'\r\n})\r\nexport class FieldDirective {\r\n @Input() field: string;\r\n @Input() value: any;\r\n}\r\n","import { Directive, ElementRef, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { fromEvent, timer, Subject, merge } from 'rxjs';\nimport { debounceTime, filter, takeUntil, tap } from 'rxjs/operators';\n\nimport { BaseDirective } from './base.directive';\nimport { PortalService } from '../services/portal.service';\n\n@Directive({\n selector: '[imgLazy]'\n})\nexport class ImageLazyDirective extends BaseDirective implements OnInit {\n @Input() auto = true;\n @Input() threshold = 20;\n @Output() imageLoaded = new EventEmitter();\n @Input() imgLazy: string;\n private _imgEl: HTMLImageElement;\n private _imageViewed$ = new Subject<void>();\n constructor(protected _el: ElementRef, private portalService: PortalService) {\n super(_el);\n this._imgEl = this._el.nativeElement as HTMLImageElement;\n }\n ngOnInit(): void {\n super.ngOnInit();\n const supports = 'loading' in HTMLImageElement.prototype;\n\n if (supports) {\n this._imgEl.src = this.imgLazy;\n this._imgEl.setAttribute('loading', 'lazy');\n this.handleLoadEvent(this._imgEl);\n return;\n }\n const timer1 = timer(1000);\n if (this.auto) {\n const isCached = this.portalService.cachedImages[this.imgLazy];\n if (isCached) {\n this._imgEl.src = this.imgLazy;\n return;\n }\n merge([timer1, fromEvent(window, 'scroll')])\n .pipe(\n takeUntil(this._imageViewed$),\n takeUntil(this._onDestroy$),\n debounceTime(20),\n filter(() => this.isInViewport()),\n tap(() => this.showImage())\n )\n .subscribe();\n }\n }\n public showImage(): void {\n const imgEl = this._imgEl;\n if (this.imgLazy === this._imgEl.src) {\n imgEl.parentElement?.setAttribute('imgLoaded', 'true');\n return;\n }\n this.portalService.cachedImages[this.imgLazy] = true;\n imgEl.src = this.imgLazy;\n this.handleLoadEvent(imgEl);\n this._imageViewed$.next();\n }\n private handleLoadEvent(imgEl: HTMLImageElement): void {\n imgEl.addEventListener('load', () => {\n imgEl.parentElement?.setAttribute('imgLoaded', 'true');\n this.imageLoaded.emit();\n });\n }\n private isInViewport(): boolean {\n const rect = this._imgEl.getBoundingClientRect();\n const isInViewport =\n rect.top >= 0 &&\n rect.left >= 0 &&\n rect.bottom - this.threshold <= (window.innerHeight || document.documentElement.clientHeight) &&\n rect.right <= (window.innerWidth || document.documentElement.clientWidth);\n return isInViewport;\n }\n}\n","import { Directive, ElementRef, EventEmitter, Input, OnInit, OnDestroy, Output } from '@angular/core';\r\n\r\nimport { Subject } from 'rxjs';\r\nimport { takeUntil } from 'rxjs/operators';\r\n\r\nimport { fromIntersectionObserver, IntersectionStatus } from '../from-intersection-observer';\r\n\r\n@Directive({\r\n selector: '[intersectionObserver]'\r\n})\r\nexport class IntersectionObserverDirective implements OnInit, OnDestroy {\r\n @Input() intersectionDebounce = 0;\r\n @Input() intersectionRootMargin = '0px';\r\n @Input() intersectionRoot: HTMLElement;\r\n @Input() intersectionThreshold: number | number[];\r\n\r\n @Output() visibilityChange = new EventEmitter<IntersectionStatus>();\r\n\r\n private destroy$ = new Subject<void>();\r\n\r\n constructor(private element: ElementRef) {}\r\n\r\n ngOnInit(): void {\r\n const element = this.element.nativeElement;\r\n const config = {\r\n root: this.intersectionRoot,\r\n rootMargin: this.intersectionRootMargin,\r\n threshold: this.intersectionThreshold\r\n };\r\n\r\n fromIntersectionObserver(element, config, this.intersectionDebounce)\r\n .pipe(takeUntil(this.destroy$))\r\n .subscribe((status) => {\r\n this.visibilityChange.emit(status);\r\n });\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.destroy$.next();\r\n }\r\n}\r\n","import { Directive, ElementRef, EventEmitter, Input, OnInit, Output } from '@angular/core';\n\nimport { MetaobjectDataModel } from '../abstract-classes/models';\nimport { BaseDirective } from './base.directive';\n\n@Directive({\n selector: '[itemsRenderer]'\n})\nexport class ItemsRendererDirective extends BaseDirective implements OnInit {\n @Input() itemsRenderer: any;\n @Input() moDataList: MetaobjectDataModel[];\n @Input() itemClass: string;\n @Output() itemClick = new EventEmitter();\n @Input() handleClick = false;\n private _fragmentDoc: DocumentFragment;\n constructor(public _el: ElementRef) {\n super(_el);\n }\n ngOnInit(): void {\n super.ngOnInit();\n const context = this.itemsRenderer.context;\n const { itemSelector } = this.itemsRenderer;\n const fragmentDoc = document.createDocumentFragment();\n if (!this.moDataList) {\n this.moDataList = this.itemsRenderer.moDataList;\n }\n\n this.moDataList.forEach((mo, index) => {\n const itemComponentElement = document.createElement(itemSelector);\n itemComponentElement.addEventListener('itemClick', (e) => {\n if (this.handleClick) {\n this.itemClick.emit(e.detail);\n } else {\n mo.$IsChecked = true;\n context?.fireEvent('rowdblclick', context, index, mo);\n }\n });\n itemComponentElement.context = context;\n itemComponentElement.mo = mo;\n itemComponentElement.index = index;\n itemComponentElement.classNames = this.itemClass;\n itemComponentElement.allColumns = this.itemsRenderer.allColumns;\n fragmentDoc.appendChild(itemComponentElement);\n });\n this._el.nativeElement.appendChild(fragmentDoc);\n this._fragmentDoc = fragmentDoc;\n }\n}\n","import { Directive, ElementRef, HostListener } from '@angular/core';\r\n\r\n@Directive({\r\n selector: 'input[type=number], input[numbersOnly]'\r\n})\r\nexport class NumbersOnlyInputDirective {\r\n constructor(private elRef: ElementRef) {}\r\n\r\n @HostListener('input', ['$event']) onInputChange(event): void {\r\n const initalValue = this.elRef.nativeElement.value;\r\n this.elRef.nativeElement.value = initalValue.replace(/[^0-9]*/g, '');\r\n if (initalValue !== this.elRef.nativeElement.value) {\r\n event.stopPropagation();\r\n }\r\n }\r\n}\r\n","import { Directive, Input } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[placeHolder]'\r\n})\r\nexport class PlaceHolderDirective {\r\n @Input() placeHolder: string;\r\n}\r\n","import {\r\n AfterViewInit,\r\n ChangeDetectorRef,\r\n ComponentRef,\r\n Directive,\r\n ElementRef,\r\n Injector,\r\n Input,\r\n OnDestroy,\r\n ViewContainerRef\r\n} from '@angular/core';\r\nimport { delay, takeUntil, tap } from 'rxjs/operators';\r\nimport { BarsaApi } from '../abstract-classes';\r\n\r\nimport { BaseDirective } from './base.directive';\r\nimport { getComponentDefined, getUniqueId } from '../constants';\r\nimport { PortalService } from '../services/portal.service';\r\n\r\n@Directive({\r\n selector: '[renderUlvViewer]'\r\n})\r\nexport class RenderUlvViewerDirective extends BaseDirective implements AfterViewInit, OnDestroy {\r\n @Input() mask: boolean;\r\n @Input('renderUlvViewer') viewer;\r\n component: ComponentRef<any>;\r\n constructor(\r\n private _injector: Injector,\r\n private _portalService: PortalService,\r\n private _vcr: ViewContainerRef,\r\n private _cdr: ChangeDetectorRef,\r\n protected _el: ElementRef\r\n ) {\r\n super(_el);\r\n }\r\n ngAfterViewInit(): void {\r\n super.ngAfterViewInit();\r\n this._render();\r\n }\r\n ngOnDestroy(): void {\r\n super.ngOnDestroy();\r\n if (this.component) {\r\n this.component.destroy();\r\n }\r\n }\r\n _render(): void {\r\n const context = this.viewer;\r\n if (context) {\r\n let defaultSetting = BarsaApi.Common.Util.TryGetValue(context.Setting, 'ClassNames.CustomUi', null);\r\n const customUi = BarsaApi.Common.Util.TryGetValue(context.Setting, 'View.CustomUi', null);\r\n if (customUi !== null) {\r\n defaultSetting = customUi;\r\n }\r\n const { moduleName, modulePath, componentName, selector } = getComponentDefined(context, defaultSetting);\r\n this._portalService\r\n .getComponent(moduleName, modulePath, componentName, selector, this._injector)\r\n .pipe(\r\n takeUntil(this._onDestroy$),\r\n delay(0),\r\n tap((component) => {\r\n component.instance.id = getUniqueId(4);\r\n component.instance.context = context;\r\n context.controlUi = component.instance;\r\n this.component = component;\r\n this._vcr.insert(component.hostView);\r\n this._cdr.detectChanges();\r\n })\r\n )\r\n .subscribe();\r\n }\r\n }\r\n}\r\n","import {\n ChangeDetectorRef,\n ComponentRef,\n Directive,\n ElementRef,\n EventEmitter,\n Injector,\n Input,\n OnDestroy,\n OnInit,\n Output,\n SimpleChanges,\n ViewContainerRef\n} from '@angular/core';\nimport { delay, takeUntil, tap } from 'rxjs/operators';\n\nimport { BaseDirective } from './base.directive';\nimport { getComponentDefined, getUniqueId } from '../constants';\nimport { PortalService } from '../services/portal.service';\nimport { BarsaApi, PagingSetting } from '../abstract-classes';\n\n@Directive({\n selector: '[renderUlvPaging]'\n})\nexport class RenderUlvPaginDirective extends BaseDirective implements OnInit, OnDestroy {\n @Output() pageChange = new EventEmitter<number>();\n @Input() mask: boolean;\n @Input() pagingSetting: PagingSetting;\n @Input('renderUlvPaging') context;\n component: ComponentRef<any>;\n constructor(\n private _injector: Injector,\n private _portalService: PortalService,\n private _vcr: ViewContainerRef,\n private _cdr: ChangeDetectorRef,\n protected _el: ElementRef\n ) {\n super(_el);\n }\n async ngOnInit(): Promise<void> {\n super.ngOnInit();\n this._render();\n }\n ngOnDestroy(): void {\n super.ngOnDestroy();\n this.component?.destroy();\n }\n ngOnChanges(changes: SimpleChanges): void {\n super.ngOnChanges(changes);\n if (this.component) {\n Object.keys(changes).forEach((key) => {\n if (!changes[key].firstChange) {\n this.component.instance[key] = changes[key].currentValue;\n }\n });\n this.component.instance.ngOnChanges(changes);\n }\n }\n async _render(): Promise<void> {\n const context = this.context;\n if (context) {\n const customUiSetting = BarsaApi.Common.Util.TryGetValue(context.Setting, 'ClassNames.CustomUi', null);\n const {\n moduleName,\n modulePath\n // componentName,\n // selector\n } = getComponentDefined(context, customUiSetting);\n\n this._portalService\n .getComponent(moduleName, modulePath, 'UlvPaging', 'bsu-ulv-paging', this._injector)\n .pipe(\n takeUntil(this._onDestroy$),\n delay(0),\n tap((component) => {\n const instance: any = component.instance;\n instance.id = getUniqueId(4);\n instance.context = context;\n instance.pagingSetting = this.pagingSetting;\n instance.pageChange?.pipe(takeUntil(this._onDestroy$)).subscribe((e) => {\n this.pageChange.emit(e);\n });\n this.component = component;\n this._vcr.insert(component.hostView);\n this._cdr.detectChanges();\n })\n )\n .subscribe();\n }\n }\n}\n","import {\n Directive,\n ElementRef,\n Input,\n Renderer2,\n HostListener,\n SimpleChanges,\n OnInit,\n OnDestroy,\n AfterViewInit,\n OnChanges,\n EventEmitter,\n Output\n} from '@angular/core';\nimport { fromEvent } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { ColumnResizedArgs } from '../abstract-classes';\nimport { BaseDirective } from './base.directive';\nconst enum Resizer {\n Row = 'Row',\n Column = 'Column'\n}\n\n@Directive({\n selector: '[tableResizer]'\n})\nexport class TableResizerDirective extends BaseDirective implements OnInit, OnDestroy, AfterViewInit, OnChanges {\n @Input() fitWidth: boolean;\n @Input() minWidth;\n @Input() minHeight;\n @Input() containerWidth: number;\n @Input() rowResizer: boolean;\n @Input() enableResizing: boolean;\n @Output() columnResized = new EventEmitter<Array<ColumnResizedArgs>>();\n private _currentCell: HTMLTableCellElement;\n private _sideCell;\n private _startX;\n private _startY;\n private _currentColumnWidth;\n private _sideColumnWidth;\n private _currentRowHeight;\n private _currentResizer: Resizer | null;\n private _isInitTable: boolean;\n constructor(protected _el: ElementRef, private renderer: Renderer2) {\n super(_el);\n fromEvent(document, 'mouseup')\n .pipe(takeUntil(this._onDestroy$))\n .subscribe(() => {\n this._mouseUp();\n });\n fromEvent(document, 'mousemove')\n .pipe(takeUntil(this._onDestroy$))\n .subscribe((e) => {\n this._mouseMove(e);\n });\n }\n private get _table(): HTMLTableElement {\n return this._el.nativeElement as HTMLTableElement;\n }\n\n @HostListener('mousedown', ['$event'])\n moseDown(e): void {\n this._mouseDown(e);\n }\n\n @HostListener('mousemove', ['$event'])\n moseMove(e): void {\n this._mouseMove(e);\n }\n\n ngAfterViewInit(): void {\n if (this.rowResizer) {\n this._putBodyCellsContentIntoDiv();\n }\n if (this.rowResizer) {\n this._addRowsResizer();\n }\n this._setTableMode(this.fitWidth);\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n super.ngOnChanges(changes);\n const { fitWidth } = changes;\n if (this.enableResizing && fitWidth && !fitWidth.firstChange) {\n const newFitWidth = fitWidth.currentValue;\n this._setTableMode(newFitWidth);\n }\n }\n private _initializeTable(): void {\n this._initTable();\n this._setTableMode(this.fitWidth);\n }\n private _resizeRow(event): void {\n this._currentResizer = Resizer.Row;\n const elementFromPoint = document.elementFromPoint(event.pageX, event.pageY);\n this._currentCell = elementFromPoint?.closest('td') as HTMLTableCellElement;\n this._startY = event.pageY;\n this._currentRowHeight = this._currentCell?.clientHeight || 0;\n }\n\n private _resizeColumn(event): void {\n if (!this.fitWidth) {\n this._setTableFreeSize();\n }\n this._currentResizer = Resizer.Column;\n const elementFromPoint = document.elementFromPoint(event.pageX, event.pageY);\n this._currentCell = elementFromPoint?.closest('th') as HTMLTableCellElement;\n this._startX = event.pageX;\n this._currentColumnWidth = this._currentCell?.clientWidth || 0;\n this._sideCell = this._getSideCell(this._currentCell);\n this._sideColumnWidth = this._sideCell?.clientWidth;\n }\n\n private _addRowsResizer(): void {\n const table = this._table;\n const rowsLabel = table.querySelectorAll('.vertical-label');\n rowsLabel.forEach((cell) => {\n const rowResizer = this.renderer.createElement('div');\n\n this.renderer.appendChild(cell, rowResizer);\n\n rowResizer.setAttribute('class', 'row-resizer');\n this.renderer.setStyle(cell, 'height', 'inherit');\n this.renderer.setStyle(cell, 'position', 'relative');\n this.renderer.setAttribute(\n rowResizer,\n 'style',\n 'cursor: row-resize; height:8px; position:absolute;bottom:0;left:0;right:0'\n );\n });\n }\n\n private _putBodyCellsContentIntoDiv(): void {\n const table = this._table as any;\n const bodyCells = table.querySelectorAll('body td:not(.vertical-label)');\n bodyCells.forEach((cell) => {\n const contentContainer = this.renderer.createElement('div');\n cell.children.forEach((child) => {\n contentContainer.appendChild(child);\n });\n this.renderer.setStyle(cell, 'overflow', 'hidden');\n this.renderer.setStyle(cell, 'height', 'inherit');\n this.renderer.setStyle(contentContainer, 'height', 'inherit');\n this.renderer.setStyle(contentContainer, 'display', 'block');\n\n cell.appendChild(contentContainer);\n });\n }\n\n private _getSideCell(currentCell): Element | null {\n const currentRow = this._currentCell.parentNode?.children;\n if (currentRow) {\n const cellIndexInRow = Array.from(currentRow).indexOf(currentCell);\n return Array.from(currentRow)[cellIndexInRow + 1];\n }\n return null;\n }\n\n private _changeWidth(\n fitWidth: boolean,\n sideCell,\n currentCell,\n changedCurrentCellWidth,\n changedSideCellWidth\n ): void {\n if (fitWidth) {\n if (sideCell && changedCurrentCellWidth >= this.minWidth && changedSideCellWidth >= this.minWidth) {\n this.renderer.setStyle(sideCell, 'width', changedSideCellWidth + 'px');\n this.renderer.setStyle(sideCell, 'min-width', changedSideCellWidth + 'px');\n this.renderer.setStyle(currentCell, 'width', changedCurrentCellWidth + 'px');\n this.renderer.setStyle(currentCell, 'min-width', changedCurrentCellWidth + 'px');\n }\n } else if (changedCurrentCellWidth >= this.minWidth) {\n this.renderer.setStyle(currentCell, 'width', changedCurrentCellWidth + 'px');\n this.renderer.setStyle(currentCell, 'min-width', changedCurrentCellWidth + 'px');\n }\n }\n\n private _changeHeight(currentCell, changedHeight, minHeight): void {\n if (changedHeight > minHeight) {\n this.renderer.setStyle(currentCell.closest('tr'), 'height', changedHeight + 'px');\n }\n }\n private _initTable(): void {\n if (this._isInitTable) {\n return;\n }\n this._isInitTable = true;\n const table: HTMLTableElement = this._table;\n const parent = table.parentElement;\n this.renderer.setStyle(parent, 'overflow-x', this.fitWidth ? 'hidden' : 'auto');\n // this.renderer.setStyle(parent, 'overflow-y', 'auto');\n this.renderer.setStyle(parent, 'width', '100%');\n }\n\n private _setTableMode(isFitWidth): void {\n if (isFitWidth) {\n this._setTableFitSize();\n }\n }\n\n private _setTableFreeSize(): void {\n const table = this._table;\n this.renderer.setStyle(table, 'width', this.containerWidth + 'px');\n this.renderer.setStyle(table, 'max-width', 'unset');\n this.renderer.setStyle(table, 'min-width', this.containerWidth + 'px');\n const headCells = table.querySelectorAll('th');\n headCells.forEach((cell) => {\n const width = cell.offsetWidth;\n this.renderer.setStyle(cell, 'width', width + 'px');\n this.renderer.setStyle(cell, 'min-width', width + 'px');\n });\n }\n\n private _setTableFitSize(): void {\n const table = this._table;\n this.renderer.setStyle(table, 'width', '100%');\n this.renderer.setStyle(table, 'max-width', '100%');\n }\n\n private _mouseDown(e): void {\n if (e.srcElement.className === 'row-resizer') {\n this._resizeRow(e);\n this.renderer.setStyle(this._el.nativeElement, 'cursor', 'row-resize');\n } else if (e.srcElement.className === 'column-resizer') {\n this._resizeColumn(e);\n this.renderer.setStyle(this._el.nativeElement, 'cursor', 'col-resize');\n }\n }\n\n private _mouseMove(e): void {\n if (e.buttons !== 0) {\n if (this._currentResizer === Resizer.Column) {\n if (!this._isInitTable) {\n this._initializeTable();\n }\n const endX = e.pageX;\n const dx = endX - this._startX;\n const changedCurrentCellWidth = this._currentColumnWidth - dx;\n const changedSideCellWidth = this._sideColumnWidth + dx;\n this._changeWidth(\n this.fitWidth,\n this._sideCell,\n this._currentCell,\n changedCurrentCellWidth,\n changedSideCellWidth\n );\n } else if (this._currentResizer === Resizer.Row) {\n const endY = e.pageY;\n const dy = endY - this._startY;\n const changedCurrentRowHeight = this._currentRowHeight + dy;\n this._changeHeight(this._currentCell, changedCurrentRowHeight, this.minHeight);\n }\n }\n }\n\n private _mouseUp(): void {\n if (this._currentResizer) {\n const table = this._el.nativeElement;\n const headers = table.querySelectorAll('th');\n const columnResized: ColumnResizedArgs[] = [];\n for (let i = 0; i < headers.length; i++) {\n const header = headers[i];\n const columnName = header.attributes['columnname']?.value;\n if (typeof columnName !== 'undefined') {\n columnResized.push({ name: columnName, width: header.offsetWidth });\n }\n }\n this.columnResized.emit(columnResized);\n }\n this._currentResizer = null;\n this.renderer.setStyle(this._el.nativeElement, 'cursor', 'default');\n }\n}\n","import { Directive, EventEmitter, HostListener, Input, Output } from '@angular/core';\nimport { BaseDirective } from './base.directive';\nimport { executeUlvCommandHandler } from '../constants';\n\n@Directive({\n selector: '[ulvCommandHandler]'\n})\nexport class UlvCommandDirective extends BaseDirective {\n @Input() ulvCommandHandler: any;\n @Output() commandClick = new EventEmitter();\n @HostListener('click', ['$event'])\n onClick(event: any): boolean {\n const button = this.ulvCommandHandler;\n event.stopPropagation();\n event.preventDefault();\n this.commandClick.emit(button);\n setTimeout(() => {\n // add settimeout because we need select row before execute row\n executeUlvCommandHandler(button);\n });\n\n return false;\n }\n}\n","import {\r\n ChangeDetectorRef,\r\n Directive,\r\n ElementRef,\r\n Input,\r\n OnDestroy,\r\n OnInit,\r\n TemplateRef,\r\n ViewContainerRef\r\n} from '@angular/core';\r\nimport { Subject } from 'rxjs';\r\nimport { takeUntil } from 'rxjs/operators';\r\n\r\nimport { BaseDirective } from './base.directive';\r\nimport { fromIntersectionObserver } from '../from-intersection-observer';\r\n\r\n@Directive({\r\n selector: '[untilInView]'\r\n})\r\nexport class UntilInViewDirective extends BaseDirective implements OnInit, OnDestroy {\r\n @Input() untilInView: ElementRef;\r\n @Input() intersectionDebounce = 100;\r\n private viewed$ = new Subject<void>();\r\n constructor(\r\n private _templateRef: TemplateRef<any>,\r\n private _vcr: ViewContainerRef,\r\n private _cdr: ChangeDetectorRef,\r\n protected _el: ElementRef\r\n ) {\r\n super(_el);\r\n }\r\n\r\n public viewed(): void {\r\n this.viewed$.next();\r\n this._vcr.createEmbeddedView(this._templateRef);\r\n this._cdr.detectChanges();\r\n }\r\n\r\n ngOnInit(): void {\r\n super.ngOnInit();\r\n const element = this.untilInView.nativeElement;\r\n const config = {\r\n root: null,\r\n rootMargin: '0px',\r\n threshold: 0\r\n };\r\n fromIntersectionObserver(element, config, this.intersectionDebounce)\r\n .pipe(takeUntil(this.viewed$), takeUntil(this._onDestroy$))\r\n .subscribe(() => {\r\n this.viewed();\r\n });\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this._onDestroy$.next();\r\n }\r\n}\r\n","import { Directive, EventEmitter, HostListener, Input, Output } from '@angular/core';\r\nimport { ChoiceDef, MetaobjectDataModel, WorkflowExecuteChoiceStatus } from '../abstract-classes';\r\nimport { ExecuteWorkflowChoiceDef } from '../constants';\r\n\r\n@Directive({\r\n selector: '[wfChoice]'\r\n})\r\nexport class WorfkflowwChoiceCommandDirective {\r\n @Input() wfChoice: ChoiceDef;\r\n @Input() mo: MetaobjectDataModel;\r\n @Input() enableCommand;\r\n @Output() commandClick = new EventEmitter();\r\n @Output() workflowExecuteChoiceStatusChanged = new EventEmitter<WorkflowExecuteChoiceStatus>();\r\n status: WorkflowExecuteChoiceStatus = {\r\n loading: false,\r\n result: null,\r\n error: null\r\n };\r\n @HostListener('click', ['$event'])\r\n onClick(event: any): boolean {\r\n if (typeof this.enableCommand === typeof undefined) {\r\n this.enableCommand = true;\r\n }\r\n if (!this.enableCommand) {\r\n return true;\r\n }\r\n event.stopPropagation();\r\n event.preventDefault();\r\n const choice = this.wfChoice;\r\n const param = {\r\n mo: this.mo,\r\n choiceDef: { ...choice }\r\n };\r\n this.status = { choice, loading: true, result: null, error: null };\r\n this.workflowExecuteChoiceStatusChanged.emit(this.status);\r\n ExecuteWorkflowChoiceDef(\r\n this,\r\n param,\r\n (result) => {\r\n this.workflowExecuteChoiceStatusChanged.emit({ ...this.status, loading: false, result, error: null });\r\n },\r\n (error) => {\r\n this.workflowExecuteChoiceStatusChanged.emit({ ...this.status, loading: false, result: null, error });\r\n }\r\n );\r\n this.commandClick.emit();\r\n return false;\r\n }\r\n}\r\n","import { Directive, ElementRef, HostListener, Input, OnInit, Optional, Inject, Renderer2 } from '@angular/core';\nimport { BaseDirective } from './base.directive';\nimport { TOAST_SERVICE } from '../injdection-tokens';\nimport { ToastService } from '../services/toast.service';\n\n@Directive({\n selector: '[copy]'\n})\nexport class CopyDirective extends BaseDirective implements OnInit {\n @Input() copy: string;\n _inputEl: HTMLInputElement;\n /**\n *\n */\n constructor(\n @Optional() @Inject(TOAST_SERVICE) protected _toastService: ToastService,\n protected _el: ElementRef,\n protected _renderer2: Renderer2\n ) {\n super(_el);\n if (!navigator.clipboard) {\n this._renderer2.addClass(this._el.nativeElement, 'hide');\n }\n }\n\n @HostListener('click')\n doCopy(): void {\n const inputEl = this._inputEl;\n inputEl.value = this.copy;\n const copyText = inputEl;\n /* Select the text field */\n copyText.select();\n copyText.setSelectionRange(0, inputEl.value.length); /* For mobile devices */\n /* Copy the text inside the text field */\n navigator.clipboard.writeText(copyText.value);\n if (this._toastService) {\n this._toastService.open(` ${this.copy} copied. `, { duration: 5000 });\n }\n }\n ngOnInit(): void {\n super.ngOnInit();\n const dom = this._el.nativeElement as HTMLElement;\n const inputEl = document.createElement('input');\n inputEl.style.display = 'none';\n dom.appendChild(inputEl);\n this._inputEl = inputEl;\n }\n}\n","import { Directive, ElementRef, Input, OnInit, Renderer2 } from '@angular/core';\nimport { BaseDirective } from './base.directive';\n\n@Directive({\n selector: '[ellapsisText]'\n})\nexport class EllapsisTextDirective extends BaseDirective implements OnInit {\n @Input() ellapsisText: string;\n @Input() maxWidth: number;\n\n /**\n *\n */\n constructor(protected _el: ElementRef, protected _renderer2: Renderer2) {\n super(_el);\n }\n ngOnInit(): void {\n super.ngOnInit();\n const measureTextDom = document.getElementById('measureText') as HTMLCanvasElement;\n if (!measureTextDom) {\n return;\n }\n const ctx = measureTextDom.getContext('2d') as any;\n\n ctx.font = 'normal 0.885rem IRANYekanDigits';\n\n const labelCaption = this.ellapsisText;\n\n const labelWidth = ctx.measureText(labelCaption).width;\n const labelWithPadding = labelWidth + 10;\n const textWidth = Math.ceil(labelWithPadding);\n if (this.maxWidth > 0 && textWidth > this.maxWidth) {\n this._renderer2.setStyle(this._el.nativeElement, 'width', `${this.maxWidth}px`);\n }\n }\n}\n","import { Injectable } from '@angular/core';\r\nimport { ActivatedRouteSnapshot, Resolve } from '@angular/router';\r\nimport { Observable } from 'rxjs';\r\n\r\nimport { PageDataModel } from '../abstract-classes';\r\nimport { PortalService } from '../services/portal.service';\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class PortalDynamicPageResolver implements Resolve<PageDataModel | null> {\r\n constructor(private portalService: PortalService) {}\r\n\r\n resolve(\r\n route: ActivatedRouteSnapshot\r\n // state: RouterStateSnapshot\r\n ): Observable<PageDataModel | null> {\r\n // const url = decodeURI(route['_routerState'].url);\r\n // let url2=route.routeConfig?.path;\r\n // if(route.params.path)\r\n // url2=route.params.path;\r\n\r\n // if(route.url.length==0)\r\n // return of(null);\r\n // if(route.routeConfig?.path=='')\r\n // {\r\n // url2 = url.split('/').find((c) => c && !c.startsWith('(')) ?? '';\r\n // }\r\n // else if(url2=='**'){\r\n // url2=route.url[0].path;\r\n // }\r\n // url2 = '/' + url2;\r\n // const url=route.params.path;\r\n const _route: any = route;\r\n let pageData = route.data?.pageData;\r\n // if (!pageData && url) {\r\n // pageData = this.portalService.pages.find((c) => c.Route == '/' + url);\r\n // }\r\n const urlSegments = _route._urlSegment.segments;\r\n const lastUrlSegment = urlSegments[urlSegments.length - 1];\r\n if (urlSegments.length === 1) {\r\n pageData = this.portalService.pages.find(\r\n (c) => c.ParentRoute === '/' + lastUrlSegment.path && c.IsDefaultRoute\r\n );\r\n } else {\r\n pageData = this.portalService.pages.find((c) => c.Route === '/' + lastUrlSegment.path);\r\n }\r\n\r\n // }\r\n return this.portalService.resolveData(pageData);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { ActivatedRouteSnapshot, Resolve } from '@angular/router';\r\n@Injectable({ providedIn: 'root' })\r\nexport class PortalFormPageResolver implements Resolve<string> {\r\n constructor() {}\r\n resolve(\r\n route: ActivatedRouteSnapshot\r\n // state: RouterStateSnapshot\r\n ): string {\r\n const breadcrumb = route.params.bc; // means breadCrumb\r\n return breadcrumb;\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { ActivatedRouteSnapshot, Resolve } from '@angular/router';\r\nimport { Observable } from 'rxjs';\r\nimport { map } from 'rxjs/operators';\r\n\r\nimport { PageDataModel } from '../abstract-classes';\r\nimport { PortalService } from '../services/portal.service';\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class PortalReportPageResolver implements Resolve<PageDataModel | null> {\r\n constructor(private portalService: PortalService) {}\r\n\r\n resolve(\r\n route: ActivatedRouteSnapshot\r\n // state: RouterStateSnapshot\r\n ): Observable<PageDataModel | null> {\r\n // const url = decodeURI(route['_routerState'].url);\r\n // let url2=route.routeConfig?.path;\r\n // if(route.routeConfig?.path=='')\r\n // {\r\n // url2 = url.split('/').find((c) => c && !c.startsWith('(')) ?? '';\r\n // }\r\n // if(url2=='**'){\r\n // url2=route.url[0].path;\r\n // }\r\n // url2 = '/' + url2;\r\n const caption = route.params.id.split('__')[1];\r\n return this.portalService.resolveData(route.data.pageData).pipe(\r\n map((pageData) => {\r\n if (pageData) {\r\n pageData.BreadCrumb = caption;\r\n }\r\n return pageData;\r\n })\r\n );\r\n }\r\n}\r\n","import { ChangeDetectionStrategy, Component, Input, OnInit } from '@angular/core';\nimport { MetaobjectDataModel } from '../abstract-classes/models';\nimport { BaseComponent } from '../abstract-classes/base.component';\nimport { getUniqueId } from '../constants';\n\ninterface FormNewSetting {\n MetaTypeDef: MetaobjectDataModel;\n MetaView: MetaobjectDataModel;\n DisableGenerateId: boolean;\n}\n@Component({\n selector: 'bnrc-form-new',\n template: '<bnrc-form [params]=\"params\"></bnrc-form>',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class FormNewComponent extends BaseComponent implements OnInit {\n @Input() settings: FormNewSetting;\n newId: string;\n params: { moId: string; typeDefId: string; viewId: string };\n constructor() {\n super();\n }\n ngOnInit(): void {\n super.ngOnInit();\n const moId = this.settings.DisableGenerateId ? '0' : getUniqueId(4);\n const typeDefId = this.settings?.MetaTypeDef?.Id;\n const viewId = this.settings?.MetaView?.Id;\n this.params = { moId, typeDefId, viewId };\n }\n}\n","import { ChangeDetectionStrategy, Component, Injector, Input, OnInit, ViewContainerRef } from '@angular/core';\nimport { Observable, Subject, throwError } from 'rxjs';\nimport { catchError, debounceTime, finalize, takeUntil } from 'rxjs/operators';\n\nimport { MetaobjectDataModel } from '../abstract-classes/models';\nimport { BaseComponent } from '../abstract-classes/base.component';\nimport { PortalService } from '../services/portal.service';\ninterface ReportSetting extends MetaobjectDataModel {\n RelatedReport: MetaobjectDataModel;\n RowClick: string;\n DataOnly: boolean;\n}\n@Component({\n selector: 'bnrc-report-container',\n templateUrl: './report-container.component.html',\n styleUrls: ['./report-container.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class ReportContainerComponent extends BaseComponent implements OnInit {\n @Input() settings: ReportSetting;\n loading$: Observable<boolean>;\n private _loadingSource = new Subject<boolean>();\n constructor(private portalService: PortalService, private injector: Injector, private vcr: ViewContainerRef) {\n super();\n this.loading$ = this._loadingSource.asObservable().pipe(takeUntil(this._onDestroy$), debounceTime(200));\n }\n\n ngOnInit(): void {\n super.ngOnInit();\n let ulvParam;\n if (this.settings.DataOnly) {\n ulvParam = {\n Flags: {\n Data: 'True',\n Extra: 'False',\n Search: 'False',\n View: 'False'\n // General:\"False\", // ulvmainctrl does not craete ui control raise error\n }\n };\n ulvParam.ReportId = this.settings.RelatedReport.Id;\n ulvParam.UsageEnum = 'SystemContainer';\n }\n this._loadingSource.next(true);\n this.portalService\n .renderUlvMainUi(\n {\n Id: null,\n ReportId: this.settings.RelatedReport.Id,\n UlvParams: ulvParam\n },\n this.vcr,\n this.injector\n )\n .pipe(\n takeUntil(this._onDestroy$),\n catchError((err) => throwError(err)),\n finalize(() => this._loadingSource.next(false))\n )\n .subscribe();\n }\n}\n","<bsu-mask *ngIf=\"(loading$ | async)!!\"></bsu-mask>\r\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ComponentRef,\n ElementRef,\n HostBinding,\n Injector,\n Input,\n OnChanges,\n OnInit,\n SimpleChanges,\n ViewChild,\n ViewContainerRef\n} from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { mergeWith, takeUntil, tap } from 'rxjs/operators';\n\nimport { BarsaApi } from '../abstract-classes';\n\nimport { BaseComponent } from '../abstract-classes/base.component';\nimport { getComponentDefined, getUniqueId } from '../constants';\nimport { PortalService } from '../services/portal.service';\n\n@Component({\n selector: 'bnrc-field-ui',\n template: '<ng-container #placeholder></ng-container>',\n styleUrls: ['./field-ui.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class FieldUiComponent extends BaseComponent implements OnInit, OnChanges {\n @Input() isSearchPanel: boolean;\n @Input() customField: any;\n @Input() layoutInfo: any;\n @Input() inlineEdit: boolean;\n @Input() focusControl: boolean;\n @Input() formHeight: number;\n @HostBinding('style.width') width = '100%';\n @ViewChild('placeholder', { read: ViewContainerRef, static: true })\n vcr: ViewContainerRef;\n uniquId: any;\n private _component: ComponentRef<any>;\n private _customFieldChange$ = new Subject<void>();\n constructor(\n el: ElementRef,\n private _portalService: PortalService,\n private _injector: Injector,\n private _cdr: ChangeDetectorRef\n ) {\n super();\n el.nativeElement.id = this.uniquId = getUniqueId(4);\n }\n async ngOnInit(): Promise<void> {\n super.ngOnInit();\n if (this.customField.originalXtype === 'Ui.CheckBox') {\n // this.width = 'auto';\n }\n // if (this.isSearchPanel) {\n // this.width = '320px';\n // }\n this.inserFieldToContainer();\n }\n async ngOnChanges(changes: SimpleChanges): Promise<void> {\n super.ngOnChanges(changes);\n const { customField } = changes;\n if (this._component) {\n if (customField && !customField.firstChange) {\n this._customFieldChange$.next();\n this._setContext(this._component.instance, customField.currentValue);\n } else {\n Object.keys(changes).forEach((key) => {\n if (!changes[key].firstChange) {\n this._component.instance[key] = changes[key].currentValue;\n }\n });\n this._component.instance.ngOnChanges(changes);\n }\n }\n }\n ngOnDestroy(): void {\n super.ngOnDestroy();\n if (this._component) {\n this._component.destroy();\n }\n }\n async inserFieldToContainer(): Promise<void> {\n const customField = this.customField;\n if (!customField) {\n console.error('item does not exist.');\n return;\n }\n let customUiSetting = BarsaApi.Common.Util.TryGetValue(customField.Setting, 'CustomUi', null);\n if (customField._innerControl) {\n customUiSetting = null;\n }\n const { moduleName, modulePath, componentName, selector } = getComponentDefined(customField, customUiSetting);\n this._portalService\n .getComponent(moduleName, modulePath, componentName, selector, this._injector)\n .pipe(\n takeUntil(this._onDestroy$),\n tap((component) => {\n const componentInstance = component.instance;\n componentInstance.id = getUniqueId(4);\n componentInstance.layoutInfo = this.layoutInfo;\n componentInstance.inlineEdit = this.inlineEdit;\n if (customUiSetting) {\n componentInstance.parameters = customUiSetting.Parameters;\n }\n this._setContext(componentInstance, customField);\n componentInstance.focusControl = this.focusControl;\n this._component = component;\n this.vcr.insert(component.hostView);\n this._cdr.detectChanges();\n })\n )\n .subscribe();\n }\n\n private _setContext(componentInstance: any, customField: any): void {\n componentInstance.context = customField;\n componentInstance.value = customField.value;\n componentInstance.disable = customField.disable;\n componentInstance.readonly = customField.readonly;\n componentInstance.formHeight = this.formHeight;\n\n customField.controlUi = componentInstance;\n if (componentInstance.valueChange) {\n componentInstance.valueChange\n .pipe(\n takeUntil(this._onDestroy$.pipe(mergeWith(this._customFieldChange$)))\n // distinctUntilChanged((oldVal, newVal) => customField.value != newVal)\n )\n .subscribe((value) => {\n customField.value = value;\n customField.caption = componentInstance.caption;\n customField.fireEvent('change', value);\n });\n }\n if (componentInstance.formmatedValue) {\n componentInstance.formmatedValue\n .pipe(\n takeUntil(this._onDestroy$.pipe(mergeWith(this._customFieldChange$)))\n // distinctUntilChanged((oldVal, newVal) => customField.value != newVal)\n )\n .subscribe((formmatedValue) => {\n customField.formmatedValue = formmatedValue; // this event call from number base\n });\n }\n }\n}\n","import { ChangeDetectionStrategy, Component, HostBinding, OnInit } from '@angular/core';\n\nimport { GridSetting, ReportViewColumn, SortSetting } from './abstract-classes';\nimport { BarsaApi } from './abstract-classes/barsa-api';\nimport { BaseComponent } from './abstract-classes/base.component';\nimport { getGridSettings, GetAllColumnsSorted } from './constants';\nimport { isMobile } from './device';\n\n@Component({\n selector: 'bnrc-base-ulv-setting',\n template: '',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport abstract class BaseUlvSettingComponent extends BaseComponent implements OnInit {\n @HostBinding('class.mobile') mobile = isMobile();\n context: any;\n originalSetting: any;\n allColumns: ReportViewColumn[];\n sortSettings: SortSetting[];\n ngOnInit(): void {\n super.ngOnInit();\n this.originalSetting = BarsaApi.Common.Util.TryGetValue(this.context, 'Setting.View.GridSetting', null);\n this.allColumns = GetAllColumnsSorted(this.context);\n\n this.sortSettings = BarsaApi.Common.Util.TryGetValue(\n this.context,\n 'Setting.View.GridSetting.SortSettingList',\n []\n );\n }\n\n onCancelSettings(): void {\n this.close(null);\n }\n onOkClick(): void {\n const setting = this.getSettings();\n this.close(setting);\n }\n onClose(): void {\n this.close(null);\n }\n protected getSettings(): GridSetting {\n return getGridSettings(this.context);\n }\n protected abstract close(setting: any): void;\n}\n","import { RouteReuseStrategy, ActivatedRouteSnapshot, DetachedRouteHandle } from '@angular/router';\r\n\r\nexport class CustomRouteReuseStategy implements RouteReuseStrategy {\r\n handlers: { [key: string]: DetachedRouteHandle } = {};\r\n\r\n shouldDetach(route: ActivatedRouteSnapshot): boolean {\r\n return route.data.shouldReuse || false;\r\n }\r\n\r\n store(route: ActivatedRouteSnapshot, handle: Record<string, unknown>): void {\r\n if (route.data.shouldReuse && route?.routeConfig?.path) {\r\n this.handlers[route.routeConfig.path] = handle;\r\n }\r\n }\r\n\r\n shouldAttach(route: ActivatedRouteSnapshot): boolean {\r\n if (route.routeConfig?.path) {\r\n return !!this.handlers[route.routeConfig.path];\r\n }\r\n // return !!route.routeConfig && !!this.handlers[route.routeConfig.path];\r\n return false;\r\n }\r\n\r\n retrieve(route: ActivatedRouteSnapshot): Record<string, unknown> | null {\r\n if (!route.routeConfig?.path) {\r\n return null;\r\n }\r\n return this.handlers[route.routeConfig.path];\r\n }\r\n\r\n shouldReuseRoute(\r\n future: ActivatedRouteSnapshot\r\n // curr: ActivatedRouteSnapshot\r\n ): boolean {\r\n return future.data.shouldReuse || false;\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { CanActivate, Router, UrlTree } from '@angular/router';\r\nimport { Observable, of } from 'rxjs';\r\nimport { map, tap, withLatestFrom } from 'rxjs/operators';\r\n\r\nimport { BarsaApi } from './abstract-classes';\r\nimport { PortalService } from './services/portal.service';\r\n\r\n@Injectable()\r\nexport class RedirectHomeGuard implements CanActivate {\r\n constructor(private router: Router, protected portalService: PortalService) {}\r\n\r\n canActivate(): // activatedRouteSnapshot: ActivatedRouteSnapshot,\r\n // state: RouterStateSnapshot\r\n Observable<boolean | UrlTree> | Promise<boolean | UrlTree> | boolean | UrlTree {\r\n return of(!BarsaApi.LoginFormData.IsAnonymous && BarsaApi.LoginFormData.IsUserLoggedIn).pipe(\r\n withLatestFrom(this.portalService.portalData$),\r\n tap(([hasAuthorized, portalData]) => {\r\n if (hasAuthorized) {\r\n const homePage = portalData?.ChildPageList.MoDataList.find((c) => c.IsDefaultRoute === true);\r\n const homeRoute = homePage?.Route || 'home';\r\n this.router.navigate([homeRoute]);\r\n }\r\n }),\r\n map(([hasAuthorized]) => !hasAuthorized)\r\n );\r\n }\r\n}\r\n","import { Component, ViewContainerRef, HostBinding, ChangeDetectionStrategy } from '@angular/core';\nimport { BaseComponent } from '../abstract-classes/base.component';\n\n@Component({\n selector: 'bnrc-root-page',\n templateUrl: './root-page.component.html',\n styleUrls: ['./root-page.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class RootPageComponent extends BaseComponent {\n @HostBinding('class.page-content') _pageContent = true;\n constructor(protected viewContainerRef: ViewContainerRef) {\n super();\n }\n}\n","<router-outlet></router-outlet>\r\n<router-outlet name=\"main\"></router-outlet>\r\n","import { ComponentFactory, ComponentFactoryResolver, Type } from '@angular/core';\r\nimport { DynamicComponentService } from './services/dynamic-component.service';\r\n\r\nexport abstract class BaseModule {\r\n private selectorToFactoryMap: { [key: string]: ComponentFactory<any> } = {};\r\n private isInitialize = false;\r\n protected abstract dynamicComponents: Type<any>[]; // similar to entryComponents\r\n\r\n constructor(\r\n protected dcm: DynamicComponentService,\r\n protected componentFactoryResolver: ComponentFactoryResolver,\r\n protected moduleName: string\r\n ) {\r\n dcm?.addModuleWithComponents(moduleName, this);\r\n }\r\n\r\n public getComponentFactory(componentName: string): ComponentFactory<any> {\r\n if (!this.isInitialize) {\r\n // lazy initialisation\r\n this.populateRegistry();\r\n }\r\n return this.selectorToFactoryMap[componentName];\r\n }\r\n\r\n private populateRegistry(): void {\r\n this.selectorToFactoryMap = {};\r\n this.isInitialize = true;\r\n if (Array.isArray(this.dynamicComponents) && this.dynamicComponents.length > 0) {\r\n this.dynamicComponents.forEach((compType) => {\r\n const componentFactory: ComponentFactory<any> =\r\n this.componentFactoryResolver.resolveComponentFactory(compType);\r\n this.selectorToFactoryMap[componentFactory.selector] = componentFactory;\r\n });\r\n }\r\n }\r\n}\r\n","import { AuthGuard } from '../auth-guard';\r\n\r\nexport function formRoutes(authGuard: boolean = false): any {\r\n return {\r\n path: 'form',\r\n canActivate: authGuard ? [AuthGuard] : [],\r\n loadChildren: () => import('./barsa-sap-ui-form-page.module').then((m) => m.BarsaSapUiFormPageModule)\r\n };\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { Routes, RouterModule } from '@angular/router'; // CLI imports router\r\nimport { EmptyPageWithRouterAndRouterOutletComponent } from '../empty-page-with-router-and-router-outlet/empty-page-with-router-and-router-outlet.component';\r\nimport { PortalFormPageResolver } from '../resolvers';\r\nimport { FormPageComponent } from '../abstract-classes/form-page.component';\r\n\r\nconst routes: Routes = [\r\n {\r\n path: '',\r\n component: EmptyPageWithRouterAndRouterOutletComponent,\r\n children: [\r\n {\r\n path: 'show',\r\n outlet: 'main',\r\n component: FormPageComponent,\r\n data: { breadcrumb: (data: any) => `${data.breadcrumb}` }, // dynamic\r\n resolve: { breadcrumb: PortalFormPageResolver },\r\n children: [\r\n {\r\n path: 'popup',\r\n loadChildren: () =>\r\n import('./barsa-sap-ui-form-page.module').then((c) => c.BarsaSapUiFormPageModule)\r\n }\r\n ]\r\n }\r\n ]\r\n }\r\n];\r\n\r\n@NgModule({\r\n imports: [RouterModule.forChild(routes)],\r\n exports: [RouterModule]\r\n})\r\nexport class BarsaSapUiFormPageRoutingModule {}\r\n","import { ComponentFactoryResolver, CUSTOM_ELEMENTS_SCHEMA, NgModule, NO_ERRORS_SCHEMA } from '@angular/core';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { CommonModule } from '@angular/common';\r\n\r\nimport { BarsaSapUiFormPageRoutingModule } from './barsa-sap-ui-form-page-routing.module';\r\n\r\nimport { BaseModule } from '../base.module';\r\nimport { DynamicComponentService } from '../services';\r\nconst components = [];\r\n@NgModule({\r\n imports: [CommonModule, FormsModule, BarsaSapUiFormPageRoutingModule],\r\n declarations: [...components],\r\n exports: [...components],\r\n schemas: [NO_ERRORS_SCHEMA, CUSTOM_ELEMENTS_SCHEMA]\r\n})\r\nexport class BarsaSapUiFormPageModule extends BaseModule {\r\n protected dynamicComponents = [...components];\r\n constructor(protected dcm: DynamicComponentService, protected cfr: ComponentFactoryResolver) {\r\n super(dcm, cfr, 'BarsaSapUiFormPageModule');\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { Routes, RouterModule } from '@angular/router';\r\nimport { BarsaApi } from './abstract-classes';\r\nimport { AuthGuard } from './auth-guard';\r\nimport { EmptyPageComponent } from './empty-page/empty-page.component';\r\nimport { formRoutes } from './form-page-routing';\r\nimport { PortalPageComponent } from './portal-page/portal-page.component';\r\nimport { RedirectHomeGuard } from './redirect-home-guard';\r\nimport { PortalPageResolver, PortalReportPageResolver } from './resolvers';\r\nimport { RootPageComponent } from './root-page/root-page.component';\r\n\r\nconst routesDefault: Routes = [\r\n {\r\n path: 'login',\r\n component: EmptyPageComponent,\r\n data: { pageData: { Route: '/login', Module: 'BarsaLoginPage' } },\r\n resolve: { pageData: PortalPageResolver },\r\n canActivate: [RedirectHomeGuard],\r\n children: []\r\n },\r\n {\r\n path: 'resetpassword',\r\n component: EmptyPageComponent,\r\n data: {\r\n pageData: { Route: '/resetpassword', Module: 'BarsaResetPasswordPage' }\r\n },\r\n resolve: { pageData: PortalPageResolver },\r\n canActivate: [RedirectHomeGuard],\r\n children: []\r\n },\r\n {\r\n path: 'recoverpassword',\r\n component: EmptyPageComponent,\r\n data: {\r\n pageData: {\r\n Route: '/recoverpassword',\r\n Module: 'BarsaRecoverPasswordPage'\r\n }\r\n },\r\n resolve: { pageData: PortalPageResolver },\r\n canActivate: [RedirectHomeGuard],\r\n children: []\r\n },\r\n {\r\n path: 'signup',\r\n component: EmptyPageComponent,\r\n data: {\r\n pageData: { Route: '/signup', Module: 'BarsaUserRegisterPage' }\r\n },\r\n resolve: { pageData: PortalPageResolver },\r\n canActivate: [RedirectHomeGuard],\r\n children: []\r\n },\r\n {\r\n path: 'landingpage',\r\n component: EmptyPageComponent,\r\n data: {\r\n pageData: {\r\n HasAuthorize: false,\r\n Module: 'BarsaLandingPage',\r\n Route: '/landingpage'\r\n }\r\n },\r\n resolve: { pageData: PortalPageResolver },\r\n children: [\r\n formRoutes(true),\r\n {\r\n path: '',\r\n redirectTo: 'query',\r\n pathMatch: 'full'\r\n },\r\n {\r\n path: 'query',\r\n component: EmptyPageComponent,\r\n data: {\r\n pageData: {\r\n HasAuthorize: true,\r\n Module: 'BarsaQueryPage',\r\n Route: '/query'\r\n }\r\n },\r\n resolve: { pageData: PortalPageResolver },\r\n children: [formRoutes(true)]\r\n }\r\n ]\r\n }\r\n];\r\n\r\nconst commonRoutes = [\r\n {\r\n path: 'search',\r\n component: EmptyPageComponent,\r\n data: {\r\n pageData: {\r\n HasAuthorize: false,\r\n Module: 'BarsaSearchPage',\r\n Route: '/search'\r\n }\r\n },\r\n resolve: { pageData: PortalPageResolver },\r\n children: [formRoutes()]\r\n },\r\n {\r\n path: 'report/:id',\r\n component: EmptyPageComponent,\r\n resolve: { pageData: PortalReportPageResolver },\r\n data: {\r\n pageData: {\r\n HasAuthorize: false,\r\n Route: '/report',\r\n Module: 'BarsaReportPage'\r\n }\r\n },\r\n children: [formRoutes(true)]\r\n }\r\n];\r\nconst mainRoutes: Routes = [\r\n {\r\n path: 'home',\r\n component: PortalPageComponent,\r\n canActivate: [AuthGuard],\r\n data: {\r\n pageData: {\r\n Module: 'BarsaHomePage',\r\n HasAuthorize: true,\r\n Route: '/home'\r\n }\r\n },\r\n resolve: { pageData: PortalPageResolver },\r\n children: [\r\n {\r\n path: '',\r\n component: EmptyPageComponent,\r\n data: {\r\n pageData: {\r\n HasAuthorize: false,\r\n Module: 'BarsaLaunchPadPage',\r\n Route: '/launchpad'\r\n }\r\n },\r\n resolve: { pageData: PortalPageResolver },\r\n children: [formRoutes()]\r\n },\r\n {\r\n path: 'appfinder',\r\n component: RootPageComponent,\r\n resolve: { pageData: PortalPageResolver },\r\n data: {\r\n pageData: {\r\n HasAuthorize: true,\r\n Route: '/appfinder',\r\n Module: 'BarsaAppFinderPage'\r\n }\r\n },\r\n children: [{ path: '', component: EmptyPageComponent }, formRoutes()]\r\n },\r\n ...commonRoutes\r\n ]\r\n }\r\n];\r\n\r\nconst routesServiceDesk: Routes = [\r\n {\r\n path: 'home',\r\n component: EmptyPageComponent,\r\n canActivate: [AuthGuard],\r\n data: {\r\n pageData: {\r\n Module: 'BarsaHomePage',\r\n HasAuthorize: true,\r\n Route: '/home'\r\n }\r\n },\r\n resolve: { pageData: PortalPageResolver },\r\n children: [formRoutes(true), ...commonRoutes]\r\n }\r\n];\r\nconst isServiceDesk = BarsaApi.LoginFormData.IsServiceDesk; // eslint-disable-line\r\nconst routesHome = isServiceDesk ? routesServiceDesk : mainRoutes;\r\nconst routes = [...routesDefault, ...routesHome];\r\n@NgModule({\r\n imports: [RouterModule.forChild(routes)],\r\n exports: [RouterModule]\r\n})\r\nexport class BarsaNovinRayCoreRoutingModule {}\r\n","import { ErrorHandler, Injectable } from '@angular/core';\r\nimport * as _ from 'lodash';\r\n\r\n@Injectable()\r\nexport class GlobalErrorHandler implements ErrorHandler {\r\n constructor() {}\r\n handleError(error): void {\r\n // if (environment.production)\r\n {\r\n console.group();\r\n console.error('global error handler error', error);\r\n console.error('global error handler stack', _.get(error, 'stack', ''));\r\n console.groupEnd();\r\n if (error.Execute) {\r\n error.Execute();\r\n }\r\n }\r\n // IMPORTANT: Rethrow the error otherwise it gets swallowed\r\n // throw error;\r\n }\r\n}\r\n","import {\n APP_INITIALIZER,\n ComponentFactoryResolver,\n ErrorHandler,\n ModuleWithProviders,\n NgModule,\n NO_ERRORS_SCHEMA\n} from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { HttpClientModule } from '@angular/common/http';\nimport { Title } from '@angular/platform-browser';\n\nimport { FormComponent } from './form/form.component';\nimport { FieldUiComponent } from './field-ui/field-ui.component';\n\nimport { ReportContainerComponent } from './report-container/report-container.component';\nimport { AnchorScrollDirective } from './directives/anchor-scroll.directive';\nimport { BarsaNovinRayCoreRoutingModule } from './barsa-novin-ray-core-routing.module';\nimport { ModalRootComponent } from './modal-root.component';\nimport { FormNewComponent } from './form-new/form-new.component';\nimport { RootPortalComponent } from './root-portal/root-portal.component';\nimport { AuthGuard } from './auth-guard';\n\nimport {\n DynamicFormComponent,\n DynamicItemComponent,\n BaseDynamicComponent,\n DynamicFormToolbaritemComponent,\n DynamicLayoutComponent\n} from './dynamic-component';\nimport { RedirectHomeGuard } from './redirect-home-guard';\nimport { NotFoundComponent } from './not-found/not-found.component';\nimport { RootPageComponent } from './root-page/root-page.component';\nimport { BaseModule } from './base.module';\nimport { PortalPageComponent } from './portal-page/portal-page.component';\nimport { GlobalErrorHandler } from './global-error-handler';\n\nimport { RedirectReportNavigatorCommandComponent } from './redirect-report-navigator-command/redirect-report-navigator-command.component';\nimport { EmptyPageWithRouterAndRouterOutletComponent } from './empty-page-with-router-and-router-outlet/empty-page-with-router-and-router-outlet.component';\nimport { EmptyPageComponent } from './empty-page/empty-page.component';\nimport { BarsaApi } from './abstract-classes/barsa-api';\nimport { FormPageComponent } from './abstract-classes/form-page.component';\n\nimport {\n BreadcrumbService,\n UploadService,\n ApiService,\n LogService,\n BarsaDialogService,\n PortalService,\n UiService,\n LayoutService,\n DynamicComponentService,\n NetworkStatusService,\n AudioRecordingService,\n VideoRecordingService,\n PromptUpdateService,\n BarsaStorageService,\n LocalStorageService,\n IndexedDbService,\n NotificationService,\n ServiceWorkerNotificationService,\n ServiceWorkerCommuncationService\n} from './services';\nimport {\n DynamicCommandDirective,\n ItemsRendererDirective,\n NumbersOnlyInputDirective,\n PlaceHolderDirective,\n RenderUlvPaginDirective,\n ImageLazyDirective,\n UntilInViewDirective,\n IntersectionObserverDirective,\n EllipsifyDirective,\n TableResizerDirective,\n ColumnResizerDirective,\n AttrRtlDirective,\n RenderUlvViewerDirective,\n UlvCommandDirective,\n WorfkflowwChoiceCommandDirective,\n CopyDirective,\n EllapsisTextDirective\n} from './directives';\nimport {\n NumeralPipe,\n CanUploadFilePipe,\n RemoveNewlinePipe,\n ConvertToStylePipe,\n FilterPipe,\n FilterTabPipe,\n FilterStringPipe,\n FioriIconPipe,\n SortPipe,\n GroupByPipe,\n MultipleGroupByPipe,\n MoValuePipe,\n MoReportValuePipe,\n HeaderFacetValuePipe,\n PictureFieldSourcePipe,\n TlbButtonsPipe,\n SeperatorFixPipe,\n MoReportValueConcatPipe,\n ContextMenuPipe,\n BbbTranslatePipe,\n BarsaIconDictPipe,\n FileInfoCountPipe,\n ControlUiPipe,\n VisibleValuePipe,\n DateTimeToCaptionPipe,\n FilterToolbarControlPipe,\n ListCountPipe,\n TotalSummaryPipe,\n MergeFieldsToColumnsPipe,\n FindColumnByDbNamePipe,\n FilterColumnsByDetailsPipe,\n MoInfoUlvMoListPipe,\n MoInfoUlvPagingPipe,\n ReversePipe,\n ColumnCustomUiPipe,\n SanitizeTextPipe,\n ColumnCustomComponentPipe,\n ColumnIconPipe,\n ColumnValuePipe\n} from './pipes';\nimport { BarsaSapUiFormPageModule } from './form-page-routing';\n\n// eslint-disable-next-line no-var\ndeclare var BBB: any;\n\nconst components = [\n FormComponent,\n FieldUiComponent,\n NotFoundComponent,\n RootPageComponent,\n RootPortalComponent,\n ReportContainerComponent,\n FormNewComponent,\n ModalRootComponent,\n PortalPageComponent,\n RedirectReportNavigatorCommandComponent,\n EmptyPageWithRouterAndRouterOutletComponent,\n DynamicItemComponent,\n DynamicFormComponent,\n BaseDynamicComponent,\n DynamicFormToolbaritemComponent,\n DynamicLayoutComponent,\n EmptyPageComponent,\n FormPageComponent\n];\nconst directives = [\n PlaceHolderDirective,\n NumbersOnlyInputDirective,\n RenderUlvViewerDirective,\n RenderUlvPaginDirective,\n AnchorScrollDirective,\n ItemsRendererDirective,\n UlvCommandDirective,\n DynamicCommandDirective,\n WorfkflowwChoiceCommandDirective,\n ImageLazyDirective,\n UntilInViewDirective,\n IntersectionObserverDirective,\n EllipsifyDirective,\n TableResizerDirective,\n ColumnResizerDirective,\n AttrRtlDirective,\n CopyDirective,\n EllapsisTextDirective\n];\nconst pipes = [\n NumeralPipe,\n CanUploadFilePipe,\n RemoveNewlinePipe,\n ConvertToStylePipe,\n FilterPipe,\n FilterTabPipe,\n FilterStringPipe,\n FioriIconPipe,\n SortPipe,\n GroupByPipe,\n MultipleGroupByPipe,\n MoValuePipe,\n MoReportValuePipe,\n HeaderFacetValuePipe,\n PictureFieldSourcePipe,\n TlbButtonsPipe,\n SeperatorFixPipe,\n MoReportValueConcatPipe,\n ContextMenuPipe,\n BbbTranslatePipe,\n BarsaIconDictPipe,\n FileInfoCountPipe,\n ControlUiPipe,\n VisibleValuePipe,\n DateTimeToCaptionPipe,\n FilterToolbarControlPipe,\n ListCountPipe,\n TotalSummaryPipe,\n MergeFieldsToColumnsPipe,\n FindColumnByDbNamePipe,\n FilterColumnsByDetailsPipe,\n MoInfoUlvMoListPipe,\n MoInfoUlvPagingPipe,\n ReversePipe,\n ColumnCustomUiPipe,\n SanitizeTextPipe,\n ColumnCustomComponentPipe,\n ColumnIconPipe,\n ColumnValuePipe\n];\n@NgModule({\n declarations: [...components, ...pipes, ...directives],\n imports: [CommonModule, HttpClientModule, BarsaNovinRayCoreRoutingModule, BarsaSapUiFormPageModule],\n exports: [...components, ...pipes, ...directives],\n schemas: [NO_ERRORS_SCHEMA]\n})\nexport class BarsaNovinRayCoreModule extends BaseModule {\n protected dynamicComponents = [...components];\n constructor(protected dcm: DynamicComponentService, protected componentFactoryResolver: ComponentFactoryResolver) {\n super(dcm, componentFactoryResolver, 'BarsaNovinRayCoreModule');\n }\n static forRoot(): ModuleWithProviders<BarsaNovinRayCoreModule> {\n return {\n ngModule: BarsaNovinRayCoreModule,\n providers: [\n ...pipes,\n UploadService,\n ApiService,\n LogService,\n BarsaDialogService,\n PortalService,\n UiService,\n LayoutService,\n DynamicComponentService,\n BreadcrumbService,\n AuthGuard,\n NetworkStatusService,\n AudioRecordingService,\n VideoRecordingService,\n RedirectHomeGuard,\n PromptUpdateService,\n NotificationService,\n ServiceWorkerNotificationService,\n LocalStorageService,\n IndexedDbService,\n BbbTranslatePipe,\n BarsaStorageService,\n ServiceWorkerCommuncationService,\n {\n provide: ErrorHandler,\n useClass: GlobalErrorHandler\n },\n {\n provide: APP_INITIALIZER,\n useFactory: (notificationService: NotificationService) => () => {\n BarsaApi.Ul.NotificationManager.on({\n ShowPopup: notificationService.addNotification.bind(notificationService),\n PublishEvent: notificationService.handleTopic.bind(notificationService)\n });\n },\n deps: [NotificationService],\n multi: true\n },\n {\n provide: APP_INITIALIZER,\n useFactory:\n (\n promptUpdateService: PromptUpdateService,\n barsaStorageService: BarsaStorageService,\n swCommunication\n ) =>\n () => {\n promptUpdateService.checkForUpdate();\n barsaStorageService.init();\n swCommunication.init();\n },\n deps: [PromptUpdateService, BarsaStorageService, ServiceWorkerCommuncationService],\n multi: true\n },\n {\n provide: APP_INITIALIZER,\n useFactory: () => () => {\n if (BarsaApi.LoginFormData.Culture === 'fa-IR') {\n return Promise.resolve();\n }\n return fetch(`/Localization/Translation/data_${BarsaApi.LoginFormData.Culture}.json`)\n .then(function (res) {\n return res.json();\n })\n .then(function (res) {\n if (BBB) {\n // eslint-disable\n BBB = { ...BarsaApi.BBB, ...res };\n }\n });\n },\n deps: [],\n multi: true\n },\n {\n provide: APP_INITIALIZER,\n useFactory: (portalService: PortalService, titleService: Title) => () => {\n portalService.loadUserPortalSetting();\n portalService.loadPortalDataSync();\n if (portalService.portalData?.Title) {\n titleService.setTitle(portalService.portalData?.Title);\n }\n if (BarsaApi.LoginFormData.IsAnonymous && !BarsaApi.LoginFormData.IsServiceDesk) {\n return portalService.loadSystem(BarsaApi.LoginFormData.PortalSystemId); // login form need just portal system\n } else {\n return portalService.loadSystem(); // load all systems if user is logged in\n }\n },\n deps: [PortalService, Title],\n multi: true\n }\n ]\n };\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.LogService","moment","Device.isPhone","Device.isTablet","i1","i1.PortalService","i2.PortalService","i1.DynamicComponentService","i2.ApiService","i3.LogService","i4.BarsaDialogService","i5","i6","i1.BbbTranslatePipe","i2.VisibleValuePipe","i1.MoInfoUlvPagingPipe","i1.FindColumnByDbNamePipe","i2.LocalStorageService","i3.IndexedDbService","filter","i2","tap","i3.PortalService","i3.BbbTranslatePipe","i5.ServiceWorkerNotificationService","i1.LocalStorageService","i2.LogService","i1.UploadService","i5.DateService","i1.AudioRecordingService","i1.VideoRecordingService","i1.ColumnService","merge","i1.BreadcrumbService","i3.ControlUiPipe","i4.FormPanelService","i2.UlvMainService","i1.FormPanelService","i2.LayoutService","i2.UploadService","i1.ControlUiPipe","i2.FormPanelService","i3","i2.FormComponent","takeUntil","switchMap","catchError","i2.MoReportValuePipe","i3.FormPanelService","i3.UlvMainService","i1.MoReportValuePipe","i1.FormComponent","routes","components"],"mappings":"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"}