{"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/services/log.service.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/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/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/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/pipes/rownumber.pipe.ts","../../../projects/barsa-novin-ray-core/src/lib/pipes/combo-row-img.pipe.ts","../../../projects/barsa-novin-ray-core/src/lib/pipes/tree-item-isexpanded.pipe.ts","../../../projects/barsa-novin-ray-core/src/lib/pipes/th-image-icon.pipe.ts","../../../projects/barsa-novin-ray-core/src/lib/pipes/find-preview-column.pipe.ts","../../../projects/barsa-novin-ray-core/src/lib/pipes/replace.pipe.ts","../../../projects/barsa-novin-ray-core/src/lib/pipes/filter-workflow-mobile.pipe.ts","../../../projects/barsa-novin-ray-core/src/lib/pipes/hide-columns-inmobile.pipe.ts","../../../projects/barsa-novin-ray-core/src/lib/pipes/string-to-number.pipe.ts","../../../projects/barsa-novin-ray-core/src/lib/pipes/column-valueof-parameters.pipe.ts","../../../projects/barsa-novin-ray-core/src/lib/pipes/hide-accept-cancel-buttons.pipe.ts","../../../projects/barsa-novin-ray-core/src/lib/pipes/filter-inline-action-list.pipe.ts","../../../projects/barsa-novin-ray-core/src/lib/pipes/isimage.pipe.ts","../../../projects/barsa-novin-ray-core/src/lib/pipes/toolbar-settings.pipe.ts","../../../projects/barsa-novin-ray-core/src/lib/pipes/card-media-size.pipe.ts","../../../projects/barsa-novin-ray-core/src/lib/pipes/label-star-trim.pipe.ts","../../../projects/barsa-novin-ray-core/src/lib/pipes/split.pipe.ts","../../../projects/barsa-novin-ray-core/src/lib/pipes/dynamic-dark-color.pipe.ts","../../../projects/barsa-novin-ray-core/src/lib/pipes/chunk-array.pipe.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/local-storage.service.ts","../../../projects/barsa-novin-ray-core/src/lib/form-page-routing/constants.ts","../../../projects/barsa-novin-ray-core/src/lib/services/application-ctrlr.service.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/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/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/injdection-tokens.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/services/save-scoll-position.service.ts","../../../projects/barsa-novin-ray-core/src/lib/services/routing.service.ts","../../../projects/barsa-novin-ray-core/src/lib/services/groupby.service.ts","../../../projects/barsa-novin-ray-core/src/lib/services/layout-main-content.service.ts","../../../projects/barsa-novin-ray-core/src/lib/services/tabpage.service.ts","../../../projects/barsa-novin-ray-core/src/lib/services/inmemory-storage.service.ts","../../../projects/barsa-novin-ray-core/src/lib/services/shellbar-height.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/directives/base.directive.ts","../../../projects/barsa-novin-ray-core/src/lib/directives/form-close.directive.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/abstract-classes/form-field-report-page.component.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/directives/fill-empty-space.ts","../../../projects/barsa-novin-ray-core/src/lib/portal-page/portal-sidebar.component.ts","../../../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/dynamic-component/dynamic-tile-group.component.ts","../../../projects/barsa-novin-ray-core/src/lib/unlimit-session/unlimit-session.component.ts","../../../projects/barsa-novin-ray-core/src/lib/unlimit-session/unlimit-session.component.html","../../../projects/barsa-novin-ray-core/src/lib/directives/load-external-files.directive.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/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/directives/mobile.directive.ts","../../../projects/barsa-novin-ray-core/src/lib/directives/body-click.directive.ts","../../../projects/barsa-novin-ray-core/src/lib/directives/prevent-default.directive.ts","../../../projects/barsa-novin-ray-core/src/lib/directives/stop-propagation.directive.ts","../../../projects/barsa-novin-ray-core/src/lib/directives/count-down.directive.ts","../../../projects/barsa-novin-ray-core/src/lib/directives/route-form-change.directive.ts","../../../projects/barsa-novin-ray-core/src/lib/directives/dynamic-style.directive.ts","../../../projects/barsa-novin-ray-core/src/lib/directives/nowraptext.directive.ts","../../../projects/barsa-novin-ray-core/src/lib/directives/label-mandatory.directive.ts","../../../projects/barsa-novin-ray-core/src/lib/directives/absolute-div-body.directive.ts","../../../projects/barsa-novin-ray-core/src/lib/directives/render-ulv.directive.ts","../../../projects/barsa-novin-ray-core/src/lib/directives/print-files.directive.ts","../../../projects/barsa-novin-ray-core/src/lib/directives/save-image.directive.ts","../../../projects/barsa-novin-ray-core/src/lib/directives/webotp.directive.ts","../../../projects/barsa-novin-ray-core/src/lib/directives/splide-slider.directive.ts","../../../projects/barsa-novin-ray-core/src/lib/directives/dynamic-root-variable.directive.ts","../../../projects/barsa-novin-ray-core/src/lib/directives/horizontal-responsive.directive.ts","../../../projects/barsa-novin-ray-core/src/lib/directives/measure-form-title-width.directive.ts","../../../projects/barsa-novin-ray-core/src/lib/directives/overflow-text.directive.ts","../../../projects/barsa-novin-ray-core/src/lib/directives/shortcut-register.directive.ts","../../../projects/barsa-novin-ray-core/src/lib/directives/shortcut-handler.directive.ts","../../../projects/barsa-novin-ray-core/src/lib/directives/barsa-readonly.directive.ts","../../../projects/barsa-novin-ray-core/src/lib/directives/resize-observer.directive.ts","../../../projects/barsa-novin-ray-core/src/lib/directives/column-value.directive.ts","../../../projects/barsa-novin-ray-core/src/lib/directives/scroll-to-selected.directive.ts","../../../projects/barsa-novin-ray-core/src/lib/directives/scroll-persist.directive.ts","../../../projects/barsa-novin-ray-core/src/lib/directives/tooltip.directive.ts","../../../projects/barsa-novin-ray-core/src/lib/directives/simplebar.directive.ts","../../../projects/barsa-novin-ray-core/src/lib/directives/leaflet-longpress.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/resolvers/tile-group-breadcrumb.resolver.ts","../../../projects/barsa-novin-ray-core/src/lib/resolvers/login-settings.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/form-page-routing/barsa-sap-ui-form-page-routing.module.ts","../../../projects/barsa-novin-ray-core/src/lib/base.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/controllers/base-controller.ts","../../../projects/barsa-novin-ray-core/src/lib/controllers/base-view.ts","../../../projects/barsa-novin-ray-core/src/lib/button-loading/button-loading.component.ts","../../../projects/barsa-novin-ray-core/src/lib/button-loading/button-loading.component.html","../../../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/resizable-module/resizable.directive.ts","../../../projects/barsa-novin-ray-core/src/lib/resizable-module/resizable.component.ts","../../../projects/barsa-novin-ray-core/src/lib/resizable-module/resizable.component.html","../../../projects/barsa-novin-ray-core/src/lib/resizable-module/resizable.module.ts","../../../projects/barsa-novin-ray-core/src/lib/not-internet/not-internet.component.ts","../../../projects/barsa-novin-ray-core/src/lib/not-internet/not-internet.component.html","../../../projects/barsa-novin-ray-core/src/lib/server-connection-error/server-connection-error.component.ts","../../../projects/barsa-novin-ray-core/src/lib/server-connection-error/server-connection-error.component.html","../../../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 Offline: 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 Offline(): any {\r\n        return Offline;\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","// 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 {\r\n    OnInit,\r\n    AfterViewInit,\r\n    Component,\r\n    OnDestroy,\r\n    OnChanges,\r\n    SimpleChanges,\r\n    AfterContentInit,\r\n    Input,\r\n    ChangeDetectionStrategy,\r\n    inject,\r\n    ElementRef\r\n} from '@angular/core';\r\nimport { Subject } from 'rxjs';\r\nimport { BarsaApi } from './barsa-api';\r\nimport { LogService } from '../services/log.service';\r\n\r\n@Component({\r\n    selector: 'bnrc-base',\r\n    template: '',\r\n    changeDetection: ChangeDetectionStrategy.OnPush,\r\n    standalone: false\r\n})\r\nexport abstract class BaseComponent implements OnInit, AfterViewInit, AfterContentInit, OnDestroy, OnChanges {\r\n    // @Input() settings: any;\r\n    @Input() rendered;\r\n    protected _el = inject(ElementRef);\r\n    protected _log = inject(LogService);\r\n    protected readonly _onDestroy$: Subject<void> = new Subject<void>();\r\n    get el(): ElementRef {\r\n        return this._el;\r\n    }\r\n    ngAfterContentInit(): void {\r\n        if (!BarsaApi.Common.Debug?.Data?.CustomUi) {\r\n            return;\r\n        }\r\n        console.log('ngAfterContentInit');\r\n        console.log(this);\r\n    }\r\n    ngOnChanges(changes: SimpleChanges): void {\r\n        if (!BarsaApi.Common.Debug?.Data?.CustomUi) {\r\n            return;\r\n        }\r\n        console.log(changes);\r\n    }\r\n    ngOnInit(): void {\r\n        this.rendered = true;\r\n        if (!BarsaApi.Common.Debug?.Data?.CustomUi) {\r\n            return;\r\n        }\r\n        console.log('ngOnInit');\r\n        console.log(this);\r\n    }\r\n    ngAfterViewInit(): void {\r\n        if (!BarsaApi.Common.Debug?.Data?.CustomUi) {\r\n            return;\r\n        }\r\n        console.log('ngAfterViewInit');\r\n        console.log(this);\r\n    }\r\n    ngOnDestroy(): void {\r\n        this._onDestroy$.next();\r\n        this._onDestroy$.complete();\r\n        if (!BarsaApi.Common.Debug?.Data?.CustomUi) {\r\n            return;\r\n        }\r\n        console.log('ngOnDestroy');\r\n        console.log(this);\r\n    }\r\n}\r\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\r\nimport { BaseComponent } from '../abstract-classes/base.component';\r\n@Component({\r\n    selector: 'bnrc-empty-page-with-router-and-router-outlet',\r\n    templateUrl: './empty-page-with-router-and-router-outlet.component.html',\r\n    styleUrls: ['./empty-page-with-router-and-router-outlet.component.scss'],\r\n    changeDetection: ChangeDetectionStrategy.OnPush,\r\n    standalone: false\r\n})\r\nexport class EmptyPageWithRouterAndRouterOutletComponent extends BaseComponent {\r\n    constructor() {\r\n        super();\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 { Injectable } 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 logService = new LogService();\n    protected abstract locale: string;\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, _?: 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\n","import { Injectable } from '@angular/core';\n\nimport moment from 'moment-hijri';\nimport { DateInfo } from './date-info';\nimport { DateService } from './date.service';\nimport 'moment/locale/ar';\n@Injectable()\nexport class DateHijriService extends DateService {\n    protected locale = 'ar';\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\n","import { Injectable } from '@angular/core';\r\n\r\nimport moment from 'moment';\r\n\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\r\n    constructor() {\r\n        super();\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 } from '@angular/core';\n\nimport moment from 'moment-jalaali';\nimport { DateInfo } from './date-info';\nimport { DateService } from './date.service';\nimport 'moment/locale/fa';\n@Injectable()\nexport class DateShamsiService extends DateService {\n    protected locale = 'fa';\n\n    constructor() {\n        super();\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        format = this.convertFormatToJalali(format);\n        return moment(str, format, true);\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 = this.convertFormatToJalali(format);\n        return m.format(format);\n    }\n    convertFormatToJalali(format: string): string {\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 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\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 */\r\nimport { _isNumberValue } from '@angular/cdk/coercion';\r\nimport { BarsaApi } from './abstract-classes/barsa-api';\r\nimport {\r\n    AbbrevationDeviceSize,\r\n    ColSetting,\r\n    CultureTypes,\r\n    EjrayOlgo,\r\n    FormSetting,\r\n    GeneralControlInfoModel,\r\n    GridSetting,\r\n    LayoutSetting,\r\n    MenuItem,\r\n    MetaobjectDataModel,\r\n    ReportViewColumn,\r\n    SortSetting,\r\n    TreeNodeObj\r\n} from './abstract-classes/models';\r\nimport { DateHijriService, DateMiladiService, DateService, DateShamsiService } from './date-services';\r\nimport * as Device from './device';\r\nimport { LogService } from './services/log.service';\r\nimport { Renderer2 } from '@angular/core';\r\nimport { AbstractControl, FormControl, FormGroup, ValidationErrors, ValidatorFn } from '@angular/forms';\r\n\r\nexport enum TableHeaderWidthMode {\r\n    FitToRowContent = 1,\r\n    FitToContainer = 2,\r\n    FreeColumnSize = 3,\r\n    ColumnWidth = 4\r\n}\r\nexport function setTableThWidth(\r\n    tableHeaderMode: TableHeaderWidthMode,\r\n    columns: ReportViewColumn[],\r\n    thList: HTMLTableCellElement[],\r\n    renderer2: Renderer2\r\n): void {\r\n    let propName = '';\r\n    switch (tableHeaderMode) {\r\n        case TableHeaderWidthMode.FitToRowContent:\r\n            propName = '$FitToContent';\r\n            break;\r\n        case TableHeaderWidthMode.FitToContainer:\r\n            propName = '$FitContainerWidth';\r\n            break;\r\n        case TableHeaderWidthMode.FreeColumnSize:\r\n            propName = '$Width';\r\n            break;\r\n        case TableHeaderWidthMode.ColumnWidth:\r\n            propName = '$ColumnWidth';\r\n            break;\r\n    }\r\n    thList.forEach((c, i) => {\r\n        const wx = _calcWidthOfTh(columns[i], i, propName, thList);\r\n        wx && renderer2.setStyle(c, 'width', wx);\r\n    });\r\n}\r\nfunction _calcWidthOfTh(column: ReportViewColumn, i: number, propName: string, thList): string {\r\n    if (!column) {\r\n        return '';\r\n    }\r\n    if (column.$IsImageOricon && i < thList.length - 1) {\r\n        const fieldTypeId = +column.FieldTypeId;\r\n        if (fieldTypeId === 6 || fieldTypeId === 5 || fieldTypeId === 42) {\r\n            return '32px';\r\n        }\r\n        debugger;\r\n    }\r\n    return column.$IsImageOricon && i < thList.length - 1 ? '42px' : column[propName];\r\n}\r\nexport function calculateColumnContent(columns: ReportViewColumn[], moDataList: MetaobjectDataModel[]): void {\r\n    columns.forEach((column) => {\r\n        setColumnWidthByMaxMoContentWidth(moDataList, column);\r\n    });\r\n}\r\nexport function calculateColumnWidth(\r\n    container: HTMLElement,\r\n    columns: ReportViewColumn[],\r\n    moDataList: MetaobjectDataModel[],\r\n    disableContextMenuOverflow: boolean,\r\n    contextMenuItems: MenuItem[]\r\n): { columns: ReportViewColumn[]; contextMenuWidth: number } {\r\n    columns\r\n        .filter((c) => !c.Hidden)\r\n        .forEach((column) => {\r\n            setColumnCaptionWidth(column);\r\n        });\r\n    const contextMenuWidth = calcContextMenuWidth(contextMenuItems, disableContextMenuOverflow);\r\n    return { columns: [...columns], contextMenuWidth };\r\n}\r\nfunction setColumnCaptionWidth(column: ReportViewColumn): number {\r\n    if (column.$ColumnWidthNum) {\r\n        return column.$ColumnWidthNum;\r\n    }\r\n    const colCaptionWidth = measureText(column.Alias) + 16 + 10;\r\n    column.$ColumnWidthNum = Math.ceil(colCaptionWidth);\r\n    column.$ColumnWidth = `${column.$ColumnWidthNum}px`;\r\n    return colCaptionWidth;\r\n}\r\nexport function setColumnWidthByMaxMoContentWidth(moDataList: MetaobjectDataModel[], column: ReportViewColumn) {\r\n    const width = calculateMoDataListContentWidthByColumnName(moDataList, column);\r\n    column.$ContentWidth = `${Math.ceil(width)}px`;\r\n}\r\n\r\nexport function calculateMoDataListContentWidthByColumnName(\r\n    moDataList: MetaobjectDataModel[],\r\n    column: ReportViewColumn\r\n): number {\r\n    let maxWidth = 0;\r\n    moDataList.forEach((c, index) => {\r\n        const caption = getColumnValueOfMoDataList(column.Name, c, undefined, true);\r\n        const captionWidth = measureText(caption) + 16;\r\n        if (maxWidth < captionWidth) {\r\n            maxWidth = captionWidth;\r\n        }\r\n    });\r\n    return Math.ceil(maxWidth);\r\n}\r\nexport function calculateFreeColumnSize(columns: ReportViewColumn[]): ReportViewColumn[] {\r\n    let allColWidth = 0;\r\n    const visibleColumns = columns.filter((c) => !c.Hidden);\r\n\r\n    visibleColumns.forEach((col, index) => {\r\n        const x = setColumnCaptionWidth(col);\r\n        const w = col.Width && col.Width > 0 ? col.Width : x;\r\n        allColWidth += w;\r\n        col.$Width = index === visibleColumns.length - 1 ? '100%' : `${w}px`;\r\n    });\r\n    return [...columns];\r\n}\r\nexport function calculateColumnWidthFitToContainer(\r\n    container: HTMLElement,\r\n    canView: boolean,\r\n    disableContextMenuOverflow: boolean,\r\n    contextMenuItems: MenuItem[],\r\n    columns: ReportViewColumn[]\r\n): { columns: ReportViewColumn[]; contextMenuWidth: number } {\r\n    let hasDefinedWidth = true;\r\n    let containerWidth = columns.map((c) => c.Width).reduce((a, b) => a + b, 0);\r\n    if (containerWidth === 0) {\r\n        containerWidth = container.clientWidth;\r\n        hasDefinedWidth = false;\r\n    }\r\n    let allColWidth = 0;\r\n    const isMobile = getDeviceIsMobile();\r\n    let remainPercent = 0;\r\n    const lCols = columns.filter((c, i) => !c.Hidden && !(i === 0 && c.FieldTypeId === 41));\r\n    lCols.forEach((col, index) => {\r\n        // اگر فیلد از نوع رنگ نبود و ستون اول هم نبود\r\n        const x = setColumnCaptionWidth(col);\r\n        const w = col.Width && col.Width > 0 ? col.Width : x;\r\n        allColWidth += w;\r\n        const percent = (w / containerWidth) * 100;\r\n        col.$FitContainerWidth = isMobile || col.Width === 0 ? '100%' : `${percent}%`;\r\n\r\n        if (index === lCols.length - 1 && !hasDefinedWidth) {\r\n            col.$FitContainerWidth = 100 - remainPercent + '%';\r\n        } else {\r\n            remainPercent += percent;\r\n        }\r\n    });\r\n    // const canViewButtonWidth = canView ? 40 : 0;\r\n    // const selectionWidth = 30;\r\n\r\n    const contextMenuWidth = calcContextMenuWidth(contextMenuItems, disableContextMenuOverflow);\r\n    // const containerWidthAllColumns = containerWidth - selectionWidth - canViewButtonWidth - contextMenuWidth - 12;\r\n    // allColWidth += containerWidthAllColumns - allColWidth;// محاسبه آخرین ستون.چون width مشخصی ندارد\r\n    // columns\r\n    //     .filter((c) => !c.Hidden)\r\n    //     .forEach((col) => {\r\n    //         const newWidth = Math.ceil((containerWidthAllColumns * col.Width) / allColWidth);\r\n    //         col.Width = newWidth;\r\n    //         col.$FitContainerWidth = `${newWidth}px`;\r\n    //     });\r\n    return { columns: [...columns], contextMenuWidth };\r\n}\r\nexport function calcContextMenuWidth(contextMenuItems: MenuItem[], disableContextMenuOverflow: boolean): number {\r\n    let contextMenuWidth = contextMenuItems.length > 1 ? 40 : 0;\r\n    const btnPadding = 14 + 2 + 10; // padding + border + if text is overflowed then add 5 pixel.so we always 5 px to it.\r\n    const tdPadding = 15 + 1; // padding + border\r\n    const buttonIconWidth = 16 + 6; // size + margin\r\n    if (disableContextMenuOverflow || contextMenuItems.length === 1) {\r\n        contextMenuWidth = 0;\r\n        contextMenuItems.forEach((c) => {\r\n            contextMenuWidth += measureText(c.text) + btnPadding + tdPadding;\r\n            contextMenuWidth += c.icon ? buttonIconWidth : 0;\r\n        });\r\n    }\r\n    return contextMenuWidth;\r\n}\r\nexport function isInLocalMode(): boolean {\r\n    const offlinceActive = BarsaApi.Common.Util.TryGetValue(BarsaApi.Offline, 'Settings.IsActive', false);\r\n    const offlineTrue = BarsaApi.Common.Util.TryGetValue(BarsaApi.Offline, 'Settings.IsOffline', false);\r\n    return offlinceActive && offlineTrue;\r\n}\r\nexport function getLabelWidth(item: any): number | undefined {\r\n    const fieldXtype = item.FieldUi?.originalXtype;\r\n    if (\r\n        fieldXtype === 'Ui.Button' ||\r\n        fieldXtype === 'Ui.CheckBox' ||\r\n        !item.TextVisible ||\r\n        item.CaptionSetting?.AlignMode === 'AutoSize'\r\n    ) {\r\n        return;\r\n    }\r\n    let labelCaption = item.Caption;\r\n    if (labelCaption === '&zwnj;') {\r\n        labelCaption = '';\r\n    }\r\n    labelCaption = labelCaption + ' * ';\r\n    // if (item.FieldUi?.Setting?.IsMandatory) {\r\n    //     if (labelCaption.indexOf('*') < 0) {\r\n    //     }\r\n    // } else {\r\n    //     labelCaption = labelCaption.replace('*', '');\r\n    // }\r\n    labelCaption += ':';\r\n    const labelWidth = measureText(labelCaption);\r\n    let labelWithPadding = labelWidth + 10;\r\n    if (item.FieldUi?.Setting?.FieldIcon) {\r\n        labelWithPadding += 24;\r\n    }\r\n    if (item.FieldUi?.Setting?.HelpDescription) {\r\n        labelWithPadding += 24;\r\n    }\r\n\r\n    const controlWidth = Math.ceil(labelWithPadding);\r\n    return controlWidth;\r\n}\r\nexport function getColumnValueOfMoDataList(\r\n    name: string,\r\n    mo: MetaobjectDataModel,\r\n    Columns?: { [key: string]: any; Name: string; Caption: string }[],\r\n    caption?: boolean\r\n): any {\r\n    let fieldName = Columns ? Columns.find((c) => c.Name === name || c.Alias === name)?.Name : name;\r\n    if (!fieldName) {\r\n        fieldName = name;\r\n    }\r\n    let val = fieldName ? mo[fieldName] : undefined;\r\n    if (caption) {\r\n        let captionVal = fieldName ? mo[fieldName]?.$Caption : undefined;\r\n        if (typeof captionVal === 'undefined' && fieldName) {\r\n            captionVal = mo[fieldName + '$Caption'];\r\n        }\r\n        if (typeof captionVal === 'undefined') {\r\n            captionVal = val;\r\n        }\r\n        val = captionVal;\r\n    }\r\n    return val;\r\n}\r\nexport function throwIfAlreadyLoaded(parentModule: any, moduleName: string): void {\r\n    if (parentModule) {\r\n        throw new Error(`${moduleName} has already been loaded. Import ${moduleName} in the AppModule only.`);\r\n    }\r\n}\r\nconst measureTextValues: Record<string, number> = {};\r\nexport function measureText2(text: string, fontSize?: string, fontName?: string): number {\r\n    const key = `${text}${fontSize}${fontName}`;\r\n    if (measureTextValues[key]) {\r\n        return measureTextValues[key];\r\n    }\r\n\r\n    const measureTextDom = document.getElementById('measureText') as HTMLCanvasElement;\r\n    if (!measureTextDom) {\r\n        return -1;\r\n    }\r\n\r\n    const ctx = measureTextDom.getContext('2d') as any;\r\n    fontSize = fontSize ? fontSize : '0.885rem';\r\n    fontName = fontName ? fontName : 'B-Font';\r\n    ctx.font = `normal ${fontSize} ${fontName}`;\r\n    const x = ctx.measureText(text).width;\r\n    measureTextValues[key] = x;\r\n    return x;\r\n}\r\nexport function measureText(text: string, fontSize?: string): number {\r\n    return measureText2(text, fontSize, 'IRANYekanDigits');\r\n}\r\nexport function measureTextBy(text: string, fontSize?: string, fontName?: string): number {\r\n    return measureText2(text, fontSize, fontName || 'B-Font');\r\n}\r\nexport function genrateInlineMoId() {\r\n    return (BarsaApi.idGenerator--).toString();\r\n}\r\nexport function enumValueToStringSize(value: string, defaultValue: string): string {\r\n    switch (value) {\r\n        case '1':\r\n            return 's';\r\n        case '2':\r\n            return 'm';\r\n        case '3':\r\n            return 'l';\r\n        default:\r\n            return defaultValue;\r\n    }\r\n}\r\nexport function executeUlvCommandHandler(button, options?): void {\r\n    if (button.Command && button.Command.Handler) {\r\n        button.Command.Handler(button, options);\r\n    } else if (button.handler) {\r\n        button.handler.bind(button.scope)(button, options);\r\n    }\r\n}\r\nexport function getUniqueId(parts: number): string {\r\n    const stringArr: string[] = [];\r\n    for (let i = 0; i < parts; i++) {\r\n        const S4 = (((1 + Math.random()) * 0x10000) | 0).toString(16);\r\n        const S4_: string = S4.length > 0 ? S4.substring(1) : '';\r\n        stringArr.push(S4_);\r\n    }\r\n    return stringArr.join('-');\r\n}\r\n\r\nexport function getDateService(logService: LogService, culture?: CultureTypes): DateService {\r\n    const defaultCulture = culture ?? BarsaApi.LoginFormData.Culture;\r\n    switch (defaultCulture) {\r\n        case 'fa-IR':\r\n            return new DateShamsiService();\r\n        case 'ar-AE':\r\n            return new DateHijriService();\r\n        default:\r\n            return new DateMiladiService();\r\n    }\r\n}\r\nexport function getAllItemsPerChildren(\r\n    item: TreeNodeObj,\r\n    level: number,\r\n    array: MetaobjectDataModel[],\r\n    parentNode: TreeNodeObj,\r\n    autoOpenLevels: number\r\n): any {\r\n    let newItem: any = item;\r\n    if (level > 0) {\r\n        item.parentNode = parentNode;\r\n        item.level = level;\r\n        item.isExpand = item.isExpand ?? autoOpenLevels > level;\r\n        item.visibility = item.parentNode.isExpand;\r\n        array.push(newItem);\r\n    } else {\r\n        newItem = item;\r\n        newItem.isExpand = true;\r\n    }\r\n\r\n    if (item.children) {\r\n        item.children.forEach((child) => setOneDepthLevel(child));\r\n        return item.children.map((i) => getAllItemsPerChildren(i, level + 1, array, newItem, autoOpenLevels));\r\n    }\r\n}\r\nexport function setOneDepthLevel(node): void {\r\n    let hasOneDepth = true;\r\n    node.children?.forEach((child) => {\r\n        if (child.Data?.$HasChildren) {\r\n            hasOneDepth = false;\r\n            return;\r\n        }\r\n    });\r\n    node.hasOneDepthLevel = hasOneDepth;\r\n}\r\nexport function isFirefox(): boolean {\r\n    return navigator.userAgent.toLowerCase().indexOf('firefox') > -1;\r\n}\r\nexport function getImagePath(\r\n    type: string,\r\n    moId: string | null,\r\n    fileId: string,\r\n    fieldDefId?: string,\r\n    size?: number,\r\n    sizeH?: number\r\n): string {\r\n    moId = moId == null ? '' : encodeURIComponent(moId);\r\n    fileId = fileId == null ? '' : encodeURIComponent(fileId);\r\n    fieldDefId = fieldDefId == null ? '' : encodeURIComponent(fieldDefId);\r\n    size = size === null ? 128 : size;\r\n    sizeH = sizeH === null ? size : sizeH;\r\n    const url = `/IH.ashx?ty=${type}&moId=${moId}&id=${fileId}&fdId=${fieldDefId}&si=${size}&siH=${sizeH}`;\r\n    return url;\r\n}\r\n\r\nexport function isFunction(functionToCheck): boolean {\r\n    return functionToCheck && {}.toString.call(functionToCheck) === '[object Function]';\r\n}\r\nexport function DeviceWidth(): number {\r\n    return window.innerWidth > 0 ? window.innerWidth : screen.width;\r\n}\r\nexport function getHeaderValue(fieldValue, returnValue?: true): any {\r\n    if (typeof fieldValue !== 'object') {\r\n        return fieldValue;\r\n    }\r\n    const value = fieldValue.Value;\r\n    const valueCaption: string = fieldValue.Value$Caption;\r\n    let valueObjectCaption = null;\r\n    if (typeof value === 'object') {\r\n        valueObjectCaption = fieldValue.Value.$Caption;\r\n    }\r\n    if (valueObjectCaption && !returnValue) {\r\n        return valueObjectCaption;\r\n    }\r\n    if (valueCaption && !valueCaption.startsWith('tmp') && !returnValue) {\r\n        return valueCaption;\r\n    }\r\n    return value;\r\n}\r\nexport function elementInViewport2(el: any): boolean {\r\n    let top = el.offsetTop;\r\n    let left = el.offsetLeft;\r\n    const width = el.offsetWidth;\r\n    const height = el.offsetHeight;\r\n\r\n    while (el.offsetParent) {\r\n        el = el.offsetParent;\r\n        top += el.offsetTop;\r\n        left += el.offsetLeft;\r\n    }\r\n\r\n    return (\r\n        top < window.pageYOffset + window.innerHeight &&\r\n        left < window.pageXOffset + window.innerWidth &&\r\n        top + height > window.pageYOffset &&\r\n        left + width > window.pageXOffset\r\n    );\r\n}\r\nexport function PreventDefaulEvent(e, propagationDisable = true): void {\r\n    if (propagationDisable) {\r\n        stopPropagation(e);\r\n    }\r\n    e.preventDefault();\r\n}\r\nexport function stopPropagation(e): void {\r\n    e.stopPropagation();\r\n}\r\nexport function getParentHeight(elDom: HTMLElement): number {\r\n    let parentDom = elDom.parentElement;\r\n    let parentHeight = parentDom?.clientHeight ?? 0;\r\n    while (parentDom != null && parentHeight < 40) {\r\n        parentDom = parentDom.parentElement;\r\n        parentHeight = parentDom?.clientHeight ?? 0;\r\n    }\r\n    return parentHeight;\r\n}\r\n\r\nexport function getComponentDefined(\r\n    controlUi: { originalXtype: string },\r\n    customUiSetting: { Module: string; Name: string; Selector: string }\r\n): {\r\n    moduleName: string;\r\n    modulePath: string;\r\n    componentName: string;\r\n    selector: string;\r\n} {\r\n    let moduleName = BarsaApi.LoginFormData.DefaultUiModule;\r\n    let moduleKebabName = BarsaApi.Common.Util.GetKebabCase(moduleName);\r\n    let componentName = controlUi.originalXtype.replace('.', '').replace('_', '');\r\n    let selector: string = BarsaApi.Common.Util.GetKebabCase(componentName);\r\n    selector = selector.substring(1, selector.length);\r\n    selector = BarsaApi.LoginFormData.CustomUiPrefix + '-' + selector;\r\n    if (customUiSetting && customUiSetting.Module) {\r\n        moduleName = customUiSetting.Module;\r\n        moduleKebabName = BarsaApi.Common.Util.GetKebabCase(moduleName);\r\n        componentName = customUiSetting.Name;\r\n        selector = customUiSetting.Selector;\r\n    }\r\n    const modulePath = moduleKebabName.slice(1, moduleKebabName.length);\r\n    return { moduleName, modulePath, componentName, selector };\r\n}\r\nexport function isSafari(): boolean {\r\n    return Device.isSafari();\r\n}\r\nexport function isFF(): boolean {\r\n    return Device.isFF();\r\n}\r\nexport function getDeviceIsPhone(): boolean {\r\n    return Device.isPhone();\r\n}\r\nexport function getDeviceIsDesktop(): boolean {\r\n    return Device.isDesktop();\r\n}\r\nexport function getDeviceIsTablet(): boolean {\r\n    return Device.isTablet();\r\n}\r\nexport function getDeviceIsMobile(): boolean {\r\n    return navigator.userAgent.indexOf('mobi') > 0 || getDeviceIsPhone();\r\n}\r\n\r\nexport function getControlSizeMode(el: HTMLElement, deviceSize: 's' | 'm' | 'l' | 'xl' = 'l'): AbbrevationDeviceSize {\r\n    const containerWidth = el.offsetWidth;\r\n    if (containerWidth === 0) {\r\n        return deviceSize;\r\n    }\r\n    if (deviceSize === 's' || containerWidth < 600) {\r\n        deviceSize = 's';\r\n    } else if (deviceSize === 'm' || (containerWidth > 600 && containerWidth < 1200)) {\r\n        deviceSize = 'm';\r\n    }\r\n    return deviceSize;\r\n}\r\n\r\nexport function formatBytes(\r\n    bytes,\r\n    decimals = 2,\r\n    size: 'Bytes' | 'KB' | 'MB' | 'GB' | 'TB' | 'PB' | 'EB' | 'ZB' | 'YB'\r\n): string {\r\n    if (bytes === 0) {\r\n        return '0 Bytes';\r\n    }\r\n\r\n    const k = 1024;\r\n    const dm = decimals < 0 ? 0 : decimals;\r\n    const sizes = ['Bytes', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'];\r\n    const i = sizes.findIndex((c) => c === size);\r\n    return parseFloat((bytes / Math.pow(k, i)).toFixed(dm)) + ' ' + sizes[i];\r\n}\r\nexport function getValidExtension(validExtensions): string {\r\n    let _validExtensions = '';\r\n    if (Array.isArray(validExtensions)) {\r\n        _validExtensions = validExtensions.map((c) => '.' + c.Extension).join(',');\r\n    }\r\n    return _validExtensions;\r\n}\r\nexport function getIcon(type: string): string {\r\n    return BarsaApi.Common.File.FileIconDict128[type];\r\n}\r\nexport function isImage(type): boolean {\r\n    if (!type) {\r\n        return false;\r\n    }\r\n    type = type.toLowerCase();\r\n    return ['img', 'png', 'jpeg', 'jpg', 'gif', 'bmp', 'tiff', 'image', 'jfif'].indexOf(type) > -1;\r\n}\r\n\r\nexport function GetAllColumnsSorted(context): Array<ReportViewColumn> {\r\n    const allColumns = BarsaApi.Common.Util.TryGetValue(context, 'Setting.View.Columns', []).filter(\r\n        (c) => c.Name !== 'Id' && c.Name !== '$StyleIndex' && !c.Hidden\r\n    );\r\n\r\n    const colList: ColSetting[] = BarsaApi.Common.Util.TryGetValue(\r\n        context,\r\n        'Setting.View.GridSetting.ColSettingList',\r\n        []\r\n    );\r\n    const columns = new Array<ReportViewColumn>();\r\n    colList.forEach((colS) => {\r\n        const columnOfColList = allColumns.find((c) => c.Name === colS.Name);\r\n        if (columnOfColList) {\r\n            columns.push({ ...columnOfColList, Hidden: colS.IsHidden, Width: colS.Width });\r\n        }\r\n    });\r\n    allColumns.forEach((column, index) => {\r\n        const colSetting = colList.find((c) => c.Name === column.Name);\r\n        if (!colSetting) {\r\n            columns.splice(index, 0, { ...column, Hidden: colList.length > 0 ? true : false });\r\n        }\r\n    });\r\n\r\n    return columns;\r\n}\r\nexport function GetVisibleValue(object, field): string {\r\n    let outputValue;\r\n    if (object[field]?.$Caption !== undefined) {\r\n        outputValue = object[field].$Caption;\r\n    } else {\r\n        outputValue = object[field + '$Caption'] !== undefined ? object[field + '$Caption'] : object[field];\r\n    }\r\n    return outputValue;\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\r\nexport function GroupBy(collection: any[], sortSettings: SortSetting[]): { grouped: Group; groups: any[] } {\r\n    const grouped: any = {};\r\n\r\n    const groups = sortSettings.map((c) => c.Name);\r\n    const getTitle = (mo, fieldName): string => GetVisibleValue(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 = 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    return { grouped, groups };\r\n}\r\n\r\nexport function 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 FindGroup(groupTitle, a.$Parent);\r\n    }\r\n}\r\nexport function FillAllLayoutControls(item: LayoutSetting, layoutControls: LayoutSetting[]): void {\r\n    if (item.xtype === 'Ly.LayoutControl') {\r\n        layoutControls.push(item);\r\n        return;\r\n    }\r\n    if (!item.items?.length) {\r\n        return;\r\n    }\r\n    item.items.forEach((c) => FillAllLayoutControls(c, layoutControls));\r\n}\r\nexport function FindToolbarItem(toolbarItems: MenuItem[], value: string, prop: string = 'text'): MenuItem | null {\r\n    if (!toolbarItems?.length) {\r\n        return null;\r\n    }\r\n    const findInArray = (toolbarItems: MenuItem[], value: string) => {\r\n        let item: MenuItem | null = null;\r\n        toolbarItems.forEach((c) => {\r\n            if (typeof c === 'object' && !item) {\r\n                if (c[prop] === value) {\r\n                    item = c;\r\n                    return;\r\n                } else if (c.menu?.items?.length) {\r\n                    item = findInArray(c.menu.items, value);\r\n                }\r\n            }\r\n        });\r\n        return item;\r\n    };\r\n    return findInArray(toolbarItems, value);\r\n}\r\nexport function FindLayoutSettingFromLayout94(layout94: LayoutSetting, layoutTitle: string): LayoutSetting | null {\r\n    if (!layoutTitle) {\r\n        return null;\r\n    }\r\n    if (layout94.Caption === layoutTitle || layout94.Title === layoutTitle || layout94.ControlId === layoutTitle) {\r\n        return layout94;\r\n    }\r\n    let tempLayout94: LayoutSetting | null = null;\r\n    if (layout94.items?.length) {\r\n        for (let i = 0; i < layout94.items.length; i++) {\r\n            if (!tempLayout94) {\r\n                tempLayout94 = FindLayoutSettingFromLayout94(layout94.items[i], layoutTitle);\r\n            }\r\n        }\r\n    }\r\n    return tempLayout94;\r\n}\r\nexport function GetAllHorizontalFromLayout94(layout94: LayoutSetting): LayoutSetting[] {\r\n    const result: LayoutSetting[] = [];\r\n    const tempFn = function (layout94: LayoutSetting, result: LayoutSetting[]): void {\r\n        if (layout94.Type?.indexOf('Horizontal') > -1) {\r\n            result.push(layout94);\r\n        }\r\n        if (layout94.items?.length) {\r\n            for (let i = 0; i < layout94.items.length; i++) {\r\n                tempFn(layout94.items[i], result);\r\n            }\r\n        }\r\n    };\r\n    tempFn(layout94, result);\r\n    return result;\r\n}\r\nexport function getGridSettings(context): GridSetting {\r\n    const gridSetting = BarsaApi.Common.Util.TryGetValue(context, 'Setting.View.GridSetting', null);\r\n    return {\r\n        ColSettingList: gridSetting?.ColSettingList ?? null,\r\n        SortSettingList: gridSetting?.SortSettingList ?? [],\r\n        AutoSizeColumns: gridSetting?.AutoSizeColumns ?? false\r\n    };\r\n}\r\nexport function getResetGridSettings(columns: ReportViewColumn[] | any[], context: any): GridSetting {\r\n    const colList = columns;\r\n    const settings = getGridSettings(context);\r\n    settings.ColSettingList = colList.map((c) => ({\r\n        IsHidden: c.Hidden,\r\n        Name: c.Name,\r\n        Width: c.Width,\r\n        Caption: c.Caption\r\n    }));\r\n    return settings;\r\n}\r\n\r\nexport function GetDefaultMoObjectInfo(typeDefId: string): MetaobjectDataModel {\r\n    return {\r\n        Id: '0',\r\n        $Caption: '',\r\n        $TypeDefId: typeDefId,\r\n        $State: 'New',\r\n        $Type: 'Common.MetaObjectWeb',\r\n        $FieldDict: {}\r\n    };\r\n}\r\nexport function getLayout94ObjectInfo(): LayoutSetting {\r\n    return {\r\n        Type: 'Root',\r\n        ControlId: 'ریشه',\r\n        xtype: 'Ly.LayoutContainer',\r\n        Bounds: { x: 0, y: 0, width: 432, height: 24 },\r\n        items: [\r\n            {\r\n                Type: 'VerticalJoin',\r\n                xtype: 'Ly.LayoutJoin',\r\n                IsVertical: true,\r\n                Bounds: { x: 0, y: 0, width: 432, height: 82 },\r\n                items: []\r\n            }\r\n        ]\r\n    };\r\n}\r\nexport function getFormSettings(typeDefId: string): FormSetting {\r\n    const mo = GetDefaultMoObjectInfo(typeDefId);\r\n\r\n    const formPanelSettings: FormSetting = {\r\n        View: {\r\n            Layout94: getLayout94ObjectInfo,\r\n            ControlInfo: [],\r\n            TypeDefId: typeDefId\r\n        },\r\n        IsSearchPanel: true,\r\n        Data: {\r\n            Mo: mo\r\n        }\r\n    };\r\n    return formPanelSettings;\r\n}\r\nexport function createFormPanelMetaConditions(\r\n    typeDefId: string,\r\n    controlsInfo: GeneralControlInfoModel[],\r\n    controlName: string,\r\n    value: any\r\n): any {\r\n    const formSettings = getFormSettings(typeDefId);\r\n    formSettings.View.ControlInfo = JSON.parse(JSON.stringify(controlsInfo));\r\n\r\n    formSettings.View.Layout94.items[0].items.push(...controlsInfo.map((c) => getLayoutControl(c.ControlName)));\r\n    formSettings.Data.Mo[controlName] = value;\r\n    const formPanelCtrlr = new BarsaApi.Ul.FormPanelCtrlr({\r\n        Setting: formSettings,\r\n        Features: {\r\n            Workflow: false,\r\n            Toolbar: false,\r\n            InfoBar: false\r\n        }\r\n    });\r\n    return formPanelCtrlr;\r\n}\r\nexport function getNewMoGridEditor(formSettings: FormSetting, typedefId: string): Partial<FormSetting> {\r\n    const newFormSettings: FormSetting = JSON.parse(JSON.stringify(formSettings));\r\n    return { ...newFormSettings.Data.Mo, $TypeDefId: typedefId };\r\n}\r\nexport function createGridEditorFormPanel(\r\n    formSettings: FormSetting,\r\n    mo: MetaobjectDataModel,\r\n    typedef: string,\r\n    relation: any,\r\n    rewriteLayout: boolean = true,\r\n    UlvMainCtrlr: any = null\r\n): any {\r\n    let newFormSettings: FormSetting | null = null;\r\n    if (formSettings) {\r\n        newFormSettings = JSON.parse(JSON.stringify(formSettings));\r\n        if (newFormSettings) {\r\n            newFormSettings.Data.Mo = { ...mo, $TypeDefId: typedef };\r\n            if (rewriteLayout) {\r\n                newFormSettings.View.Layout94 = getLayout94ObjectInfo();\r\n                newFormSettings.View.Layout94.items[0].items.push(\r\n                    ...newFormSettings.View.ControlInfo.map((c) =>\r\n                        getLayoutControl(c.ControlName, c.ControlFieldCaptionTranslated, false)\r\n                    )\r\n                );\r\n            }\r\n        }\r\n    }\r\n    const formRequestParams = new BarsaApi.Ul.FormRequestParams({\r\n        MoId: !newFormSettings ? mo?.Id : newFormSettings?.Data.Mo.Id,\r\n        TypeDefId: typedef,\r\n        Relation: relation\r\n        // MoContext: {\r\n        //     ReportId: '',\r\n        //     ViewId: '',\r\n        //     ViewName: '',\r\n        //     CondFormating: '',\r\n        //     IncludeInReport: ''\r\n        // }\r\n    });\r\n    const formPanelCtrlr = new BarsaApi.Ul.FormPanelCtrlr({\r\n        Setting: newFormSettings,\r\n        Relation: relation,\r\n        UlvMainCtrlr: UlvMainCtrlr,\r\n        Features: {\r\n            Workflow: false,\r\n            Toolbar: false,\r\n            InfoBar: false\r\n        },\r\n        FormRequestParams: formRequestParams\r\n    });\r\n    return formPanelCtrlr;\r\n}\r\n\r\nexport function getLayoutControl(\r\n    controlName: string,\r\n    controlCaption: string = '',\r\n    hide: boolean = true\r\n): Partial<GeneralControlInfoModel> {\r\n    return {\r\n        xtype: 'Ly.LayoutControl',\r\n        Type: 'LayoutControlItem',\r\n        ControlId: controlName,\r\n        IsVertical: false,\r\n        TextLocation: 'Right',\r\n        TextVisible: false,\r\n        Visible: !hide,\r\n        hide,\r\n        UseLayoutItemTextForControl: false,\r\n        Caption: controlCaption,\r\n        AccessibleName: '',\r\n        Bounds: { x: 0, y: 0, width: 432, height: 24 },\r\n        MinSize: { width: 89, height: 24 },\r\n        MaxSize: { width: 0, height: 24 },\r\n        ControlBounds: { width: 388, height: 20 },\r\n        ControlMinSize: { width: 45, height: 20 },\r\n        ControlMaxSize: { width: 0, height: 20 },\r\n        Padding: [2, 2, 2, 2],\r\n        LabelSize: { width: 35, height: 13 },\r\n        originalXtype: ''\r\n    };\r\n}\r\n\r\nexport function getControlList(\r\n    mo: MetaobjectDataModel,\r\n    controlDbNames: string[],\r\n    isSearchPanel: boolean,\r\n    isGridEditor: boolean\r\n): Promise<GeneralControlInfoModel[]> {\r\n    return new Promise<GeneralControlInfoModel[]>((resolve, reject) => {\r\n        BarsaApi.Common.Ajax.GetServerData(\r\n            'Form94.GetControlInfos',\r\n            {\r\n                controlInfoParameter: {\r\n                    FieldDbNames: controlDbNames,\r\n                    Mo: new BarsaApi.Common.MetaObjectWeb(mo),\r\n                    IsSearchPanel: isSearchPanel,\r\n                    IsGridEditor: isGridEditor\r\n                }\r\n            },\r\n            (m) => {\r\n                resolve(m);\r\n            },\r\n            (err) => {\r\n                reject(err);\r\n            }\r\n        );\r\n    });\r\n}\r\n\r\nexport type NzSafeAny = any;\r\nexport type NumberInput = number | string | undefined | null;\r\nexport interface NgStyleInterface {\r\n    [klass: string]: NzSafeAny;\r\n}\r\n\r\nexport interface IndexableObject {\r\n    [key: string]: NzSafeAny;\r\n}\r\nexport function shallowEqual(objA?: IndexableObject, objB?: IndexableObject): boolean {\r\n    if (objA === objB) {\r\n        return true;\r\n    }\r\n\r\n    if (typeof objA !== 'object' || !objA || typeof objB !== 'object' || !objB) {\r\n        return false;\r\n    }\r\n\r\n    const keysA = Object.keys(objA);\r\n    const keysB = Object.keys(objB);\r\n\r\n    if (keysA.length !== keysB.length) {\r\n        return false;\r\n    }\r\n\r\n    const bHasOwnProperty = Object.prototype.hasOwnProperty.bind(objB);\r\n\r\n    for (let idx = 0; idx < keysA.length; idx++) {\r\n        const key = keysA[idx];\r\n        if (!bHasOwnProperty(key)) {\r\n            return false;\r\n        }\r\n        if (objA[key] !== objB[key]) {\r\n            return false;\r\n        }\r\n    }\r\n\r\n    return true;\r\n}\r\nexport function toNumber(value: number | string): number;\r\nexport function toNumber<D>(value: number | string, fallback: D): number | D;\r\nexport function toNumber(value: number | string, fallbackValue: number = 0): number {\r\n    return _isNumberValue(value) ? Number(value) : fallbackValue;\r\n}\r\nfunction propDecoratorFactory<T, D>(\r\n    name: string,\r\n    fallback: (v: T) => D\r\n): (target: NzSafeAny, propName: string) => void {\r\n    function propDecorator(\r\n        target: NzSafeAny,\r\n        propName: string,\r\n        originalDescriptor?: TypedPropertyDescriptor<NzSafeAny>\r\n    ): NzSafeAny {\r\n        const privatePropName = `$$__zorroPropDecorator__${propName}`;\r\n\r\n        if (Object.prototype.hasOwnProperty.call(target, privatePropName)) {\r\n            // warn(`The prop \"${privatePropName}\" is already exist, it will be overrided by ${name} decorator.`);\r\n        }\r\n\r\n        Object.defineProperty(target, privatePropName, {\r\n            configurable: true,\r\n            writable: true\r\n        });\r\n\r\n        return {\r\n            get(): string {\r\n                return originalDescriptor && originalDescriptor.get\r\n                    ? originalDescriptor.get.bind(this)()\r\n                    : this[privatePropName];\r\n            },\r\n            set(value: T): void {\r\n                if (originalDescriptor && originalDescriptor.set) {\r\n                    originalDescriptor.set.bind(this)(fallback(value));\r\n                }\r\n                this[privatePropName] = fallback(value);\r\n            }\r\n        };\r\n    }\r\n\r\n    return propDecorator;\r\n}\r\nexport function InputNumber(fallbackValue?: NzSafeAny): NzSafeAny {\r\n    return propDecoratorFactory('InputNumber', (value: string | number) => toNumber(value, fallbackValue));\r\n}\r\nexport enum AffixRespondEvents {\r\n    resize = 'resize',\r\n    scroll = 'scroll',\r\n    touchstart = 'touchstart',\r\n    touchmove = 'touchmove',\r\n    touchend = 'touchend',\r\n    pageshow = 'pageshow',\r\n    load = 'LOAD'\r\n}\r\nexport interface SimpleRect {\r\n    top: number;\r\n    left: number;\r\n    width?: number;\r\n    height?: number;\r\n    bottom?: number;\r\n}\r\n\r\nexport function isTargetWindow(target: Element | Window): target is Window {\r\n    return typeof window !== 'undefined' && target === window;\r\n}\r\n\r\nexport function getTargetRect(target: Element | Window): SimpleRect {\r\n    return !isTargetWindow(target)\r\n        ? target.getBoundingClientRect()\r\n        : {\r\n              top: 0,\r\n              left: 0,\r\n              bottom: 0\r\n          };\r\n}\r\n\r\nexport function getFieldValue(name: string, mo: MetaobjectDataModel, caption?: boolean): string {\r\n    if (mo.GetFValueByCaption) {\r\n        let result = mo.GetFValue(name);\r\n        if (caption) {\r\n            result = mo.GetFCaption(name);\r\n        }\r\n        if (typeof caption === 'undefined' && mo.InheritanceInfo && !(mo.$FieldDict && mo.$FieldDict[name])) {\r\n            const { ParentFieldName } = mo.InheritanceInfo;\r\n            const moParent = mo.GetFValue(ParentFieldName);\r\n            let result = moParent.GetFValue(name);\r\n            if (caption) {\r\n                result = moParent.GetFCaption(name);\r\n            }\r\n        }\r\n        return result;\r\n    }\r\n    const fieldName = mo.$FieldDict && mo.$FieldDict[name] ? mo.$FieldDict[name] : name;\r\n    let val = mo[fieldName];\r\n    if (caption) {\r\n        let captionVal = mo[fieldName]?.$Caption;\r\n        if (typeof captionVal !== 'string') {\r\n            if (!captionVal) {\r\n                captionVal = mo[fieldName + '$Caption'];\r\n            }\r\n            if (!captionVal) {\r\n                captionVal = val;\r\n            }\r\n        }\r\n        val = captionVal;\r\n    }\r\n    return val;\r\n}\r\n\r\nexport const availablePrefixes = ['moz', 'ms', 'webkit'];\r\n\r\nexport function requestAnimationFramePolyfill(): typeof requestAnimationFrame {\r\n    let lastTime = 0;\r\n    return function (callback: FrameRequestCallback): any {\r\n        const currTime = new Date().getTime();\r\n        const timeToCall = Math.max(0, 16 - (currTime - lastTime));\r\n        const id = setTimeout(() => {\r\n            callback(currTime + timeToCall);\r\n        }, timeToCall);\r\n        lastTime = currTime + timeToCall;\r\n        return id;\r\n    };\r\n}\r\nexport function ExecuteDynamicCommand(command: { Id: string }, mo: MetaobjectDataModel | null = null): void {\r\n    const e = { command, DynamicSetting: mo, Mo: mo };\r\n    BarsaApi.Common.CustomCodeManager.RunDynamicCommand(command.Id, e);\r\n}\r\nexport function ExecuteWorkflowChoiceDef(scope, param, success: (result) => void, failed: (error) => void): void {\r\n    BarsaApi.Common.Ajax.GetServerData(\r\n        'Workflow94.ChoiceSelect',\r\n        param,\r\n        (result) => {\r\n            success(result);\r\n        }, // success\r\n        (error) => {\r\n            failed(error);\r\n        }, //  error\r\n        () => {}, // doReturn\r\n        scope,\r\n        true\r\n    );\r\n}\r\nexport function getRequestAnimationFrame(): typeof requestAnimationFrame {\r\n    if (typeof window === 'undefined') {\r\n        return () => 0;\r\n    }\r\n    if (window.requestAnimationFrame) {\r\n        // https://github.com/vuejs/vue/issues/4465\r\n        return window.requestAnimationFrame.bind(window);\r\n    }\r\n\r\n    const prefix = availablePrefixes.filter((key) => `${key}RequestAnimationFrame` in window)[0];\r\n\r\n    return prefix ? (window as NzSafeAny)[`${prefix}RequestAnimationFrame`] : requestAnimationFramePolyfill();\r\n}\r\nexport function cancelRequestAnimationFrame(id: number): NzSafeAny {\r\n    if (typeof window === 'undefined') {\r\n        return null;\r\n    }\r\n    if (window.cancelAnimationFrame) {\r\n        return window.cancelAnimationFrame(id);\r\n    }\r\n    const prefix = availablePrefixes.filter(\r\n        (key) => `${key}CancelAnimationFrame` in window || `${key}CancelRequestAnimationFrame` in window\r\n    )[0];\r\n\r\n    return prefix\r\n        ? (\r\n              (window as NzSafeAny)[`${prefix}CancelAnimationFrame`] ||\r\n              (window as NzSafeAny)[`${prefix}CancelRequestAnimationFrame`]\r\n          )\r\n              // @ts-ignore\r\n              .call(this, id)\r\n        : clearTimeout(id);\r\n}\r\n\r\nexport type EasyingFn = (t: number, b: number, c: number, d: number) => number;\r\n\r\nexport function easeInOutCubic(t: number, b: number, c: number, d: number): number {\r\n    const cc = c - b;\r\n    let tt = t / (d / 2);\r\n    if (tt < 1) {\r\n        return (cc / 2) * tt * tt * tt + b;\r\n    } else {\r\n        return (cc / 2) * ((tt -= 2) * tt * tt + 2) + b;\r\n    }\r\n}\r\n\r\nexport interface NzScrollToOptions {\r\n    /** Animation duration, default as 450 */\r\n    duration?: number;\r\n    /** Scroll container, default as window */\r\n    easing?: EasyingFn;\r\n    /** Scroll end callback */\r\n    callback?(): void;\r\n}\r\nexport const WordMimeType =\r\n    '.doc,.docx,application/msword,application/vnd.openxmlformats-officedocument.wordprocessingml.document';\r\nexport const ImageMimeType = '.jpeg,.jpg,.gif,.png,.bmp,.tif,image/*';\r\nexport const PdfMimeType = '.pdf';\r\nexport const AllFilesMimeType = '.txt,.ppt,.pdf,.*';\r\nexport const VideoMimeType = 'video/*';\r\nexport const AudioMimeType = 'audio/*';\r\n\r\nexport function ChangeLayoutInfoCustomUi(layoutInfo: LayoutSetting, componentUi: EjrayOlgo): void {\r\n    layoutInfo.FieldUi.Setting.CustomUi = componentUi;\r\n}\r\nexport const mobile_regex = new RegExp('^(\\\\+98|0)?9\\\\d{9}$');\r\nexport const number_only = new RegExp('^[0-9]+$');\r\nexport function forbiddenValidator(nameRe: RegExp): ValidatorFn {\r\n    return (control: AbstractControl): ValidationErrors | null => {\r\n        const forbidden = nameRe.test(control.value);\r\n        return !forbidden ? { forbiddenName: { value: control.value } } : null;\r\n    };\r\n}\r\nexport function GetImgTags(setting) {\r\n    let str = '';\r\n    for (let i = 0; i < setting.sources.length; i++) {\r\n        str +=\r\n            \"<img src='\" +\r\n            setting.sources[i] +\r\n            \"'  class='\" +\r\n            getCenter(setting.isCenter) +\r\n            \"'  style='\" +\r\n            setting.customCss +\r\n            \"' /> \";\r\n    }\r\n    return str;\r\n}\r\n\r\nexport function ImagetoPrint(setting) {\r\n    return (\r\n        '<html><head>' +\r\n        '<script src=\"/Lib/scripts/jquery-x.min.js\"></script><script src=\"Lib/ImagePrint/ImagePrintInternal.js\"></script>' +\r\n        '</head><body style=\"margin : 0 1 0 1\">' +\r\n        GetImgTags(setting) +\r\n        '</body></html>'\r\n    );\r\n}\r\n\r\nexport function PrintImage(setting) {\r\n    let pageLink = 'about:blank';\r\n    let pwa = window.open(pageLink, '_new');\r\n    pwa?.document.open();\r\n    let imageToPrint = ImagetoPrint(setting);\r\n    pwa?.document.write(imageToPrint);\r\n    pwa?.document.close();\r\n}\r\n\r\nfunction getCenter(isCenter) {\r\n    if (isCenter) return 'center';\r\n    return '';\r\n}\r\nexport function SaveImageToFile(name: string, src: string) {\r\n    const t = getUniqueId(4);\r\n    var link = document.createElement('a');\r\n    link.href = src;\r\n    link.download = name;\r\n    document.body.appendChild(link);\r\n    link.click();\r\n    setTimeout(function () {\r\n        link.parentNode?.removeChild(link);\r\n    }, 10);\r\n}\r\nexport function validateAllFormFields(formGroup: FormGroup) {\r\n    //{1}\r\n    Object.keys(formGroup.controls).forEach((field) => {\r\n        //{2}\r\n        const control = formGroup.get(field); //{3}\r\n        if (control instanceof FormControl) {\r\n            //{4}\r\n            control.markAsTouched({ onlySelf: true });\r\n        } else if (control instanceof FormGroup) {\r\n            //{5}\r\n            validateAllFormFields(control); //{6}\r\n        }\r\n    });\r\n}\r\nexport function getFocusableTagNames(): string {\r\n    return `button,button:not([disabled]),[href],input:not([disabled]),input,\r\n                select,select:not([disabled]),textarea,textarea:not([disabled]),[tabindex]:not([tabindex=\"-1\"])`;\r\n}\r\nexport function addCssVariableToRoot(variableName: string, variableValue: string): void {\r\n    const root = document.documentElement;\r\n    root.style.setProperty(variableName, variableValue);\r\n}\r\nexport function flattenTree(root: Record<string, any>, prop: string): Record<string, any>[] {\r\n    const result: Record<string, any>[] = [];\r\n\r\n    function traverse(node: Record<string, any>) {\r\n        result.push(node);\r\n        if (node[prop]) {\r\n            node[prop].forEach(traverse);\r\n        }\r\n    }\r\n\r\n    traverse(root);\r\n    return result;\r\n}\r\nexport function IsDarkMode(): boolean {\r\n    const x = document.documentElement.getAttribute('data-mode')?.includes('dark') || false;\r\n    return x || Array.from(document.body.classList).some((className) => className.toLowerCase().includes('dark'));\r\n}\r\nexport function nullOrUndefinedString(param): string {\r\n    return `${param} can not be null or undefined.`;\r\n}\r\nexport function fromEntries<K extends string, V>(entries: [K, V][]): Record<K, V> {\r\n  const result = {} as Record<K, V>;\r\n  for (const [key, value] of entries) {\r\n    result[key] = value;\r\n  }\r\n  return result;\r\n}","import { PipeTransform, Pipe } from '@angular/core';\r\nimport { MetaobjectDataModel } from '../abstract-classes/models';\r\nimport { getColumnValueOfMoDataList } from '../constants';\r\n\r\n@Pipe({\r\n    name: 'rval',\r\n    standalone: false\r\n})\r\nexport class MoReportValuePipe implements PipeTransform {\r\n    transform(\r\n        name: string,\r\n        mo: MetaobjectDataModel,\r\n        Columns?: { [key: string]: any; Name: string; Caption: string }[],\r\n        caption?: boolean\r\n    ): any {\r\n        return getColumnValueOfMoDataList(name, mo, Columns, caption);\r\n    }\r\n}\r\n","import { PipeTransform, Pipe } from '@angular/core';\r\ndeclare const BigNumber: any;\r\n@Pipe({\r\n    name: 'numeral',\r\n    standalone: false\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 this._getReturnaValue(newVal, decimalPrecision);\r\n        } else if (!showThousandSeperator) {\r\n            return value;\r\n        }\r\n        return this._getReturnaValue(newVal, 0);\r\n    }\r\n    _getReturnaValue(newVal: string, decimal: number): string {\r\n        return newVal === '-' ? '-' : new BigNumber(newVal).toFormat(decimal);\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    standalone: false\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?.length) {\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';\r\nimport { BarsaApi } from '../abstract-classes';\r\n\r\n@Pipe({\r\n    name: 'bbbTranslate',\r\n    standalone: false\r\n})\r\nexport class BbbTranslatePipe implements PipeTransform {\r\n    transform(key: string | null, addText?: string): string {\r\n        if (!key) {\r\n            return '';\r\n        }\r\n\r\n        if (!key.replace) {\r\n            return key;\r\n        }\r\n        let result = BarsaApi.BBB[key] ?? key;      \r\n        if (addText) {\r\n            result += ' ' + this.transform(addText);\r\n        }\r\n        return result;\r\n    }\r\n}\r\n","import { PipeTransform, Pipe, inject } from '@angular/core';\r\nimport { MenuItem } from '../abstract-classes';\r\nimport { BbbTranslatePipe } from './bbb-translate.pipe';\r\n\r\n@Pipe({\r\n    name: 'contextMenu',\r\n    standalone: false\r\n})\r\nexport class ContextMenuPipe implements PipeTransform {\r\n    private bbbPipe = inject(BbbTranslatePipe);\r\n\r\n    /** Inserted by Angular inject() migration for backwards compatibility */\r\n    \r\n\r\n    constructor() {}\r\n    transform(commands: MenuItem[] | null, checkList: boolean = false): any[] {\r\n        if (!commands) {\r\n            return [];\r\n        }\r\n        return commands.filter((c) => {\r\n            const isObject = typeof c === 'object';\r\n            if (!isObject) {\r\n                return false;\r\n            }\r\n            const EditText = this.bbbPipe.transform('Edit');\r\n            if (c.text === EditText && c.Command?.IsBuiltin) {\r\n                return false;\r\n            }\r\n            const DeleteText = this.bbbPipe.transform('Delete');\r\n            if (checkList && c.text === DeleteText && c.Command?.IsBuiltin) {\r\n                return false;\r\n            }\r\n            if (c.Command._isVisible === false) {\r\n                return false;\r\n            }\r\n            return true;\r\n        });\r\n    }\r\n}\r\n","import { PipeTransform, Pipe } from '@angular/core';\r\nimport { getHeaderValue } from '../constants';\r\n\r\n@Pipe({\r\n    name: 'facetValue',\r\n    standalone: false\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    standalone: false\r\n})\r\nexport class SeperatorFixPipe implements PipeTransform {\r\n    transform(buttons: any[], removeSeperator = false): 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 !removeSeperator ? buttons : buttons.filter((c) => typeof c === 'object' && c.cls);\r\n    }\r\n}\r\n","import { PipeTransform, Pipe } from '@angular/core';\r\n\r\n@Pipe({\r\n    name: 'convertToStyle',\r\n    standalone: false\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';\r\nimport { BarsaApi } from '../abstract-classes';\r\n\r\n@Pipe({\r\n    name: 'tlbButtons',\r\n    standalone: false\r\n})\r\nexport class TlbButtonsPipe implements PipeTransform {\r\n    constructor() {}\r\n    transform(\r\n        buttons: any[] | null,\r\n        property: string | string[],\r\n        value?: any | any[],\r\n        hideMoveButtons: boolean = false\r\n    ): any[] {\r\n        if (!buttons) {\r\n            return [];\r\n        }\r\n        let lastIsString = false;\r\n        const btns = buttons.filter((btn) => {\r\n            let filter = false;\r\n            if (typeof btn === 'string') {\r\n                if (lastIsString) {\r\n                    filter = false;\r\n                } else {\r\n                    filter = true;\r\n                    lastIsString = true;\r\n                }\r\n            } else if (typeof property === 'string') {\r\n                filter = this.filterBtn(btn, property, value, hideMoveButtons);\r\n                if (lastIsString && filter) {\r\n                    lastIsString = false;\r\n                }\r\n            } else if (Array.isArray(property)) {\r\n                property.forEach((prop, i) => {\r\n                    if (!filter) {\r\n                        filter = this.filterBtn(btn, prop, value[i], hideMoveButtons);\r\n                    }\r\n                });\r\n                if (filter && lastIsString) {\r\n                    lastIsString = false;\r\n                }\r\n            }\r\n\r\n            return filter;\r\n        });\r\n        return btns.length && typeof btns[0] === 'string' ? btns.filter((_c, index) => index > 0) : btns;\r\n    }\r\n    filterBtn(btn, property, value, hideMoveButtons): boolean {\r\n        const val = BarsaApi.Common.Util.TryGetValue(btn, property);\r\n        if (hideMoveButtons) {\r\n            const itemId = BarsaApi.Common.Util.TryGetValue(btn, 'itemId');\r\n            if (itemId === 'MoveNext' || itemId === 'MovePrev') {\r\n                return false;\r\n            }\r\n        }\r\n        if (\r\n            (val === null && (typeof value === 'undefined' || value === null)) ||\r\n            (val === null && typeof value === typeof false && !value)\r\n        ) {\r\n            return !btn.hidden && !btn.Command?.hide;\r\n        }\r\n\r\n        return value === val && !btn.hidden && !btn.Command?.hide;\r\n    }\r\n}\r\n","import { PipeTransform, Pipe } from '@angular/core';\r\n\r\n@Pipe({\r\n    name: 'removeNewline',\r\n    standalone: false\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';\r\nimport { MetaobjectDataModel } from '../abstract-classes/models';\r\nimport { getFieldValue } from '../constants';\r\n\r\n@Pipe({\r\n    name: 'val',\r\n    standalone: false\r\n})\r\nexport class MoValuePipe implements PipeTransform {\r\n    constructor() {}\r\n    transform(name: string, mo: MetaobjectDataModel, caption?: boolean): string {\r\n        return getFieldValue(name, mo, caption);\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: 'filter',\r\n    standalone: false\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    standalone: false\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    standalone: false\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    standalone: false\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    standalone: false\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    standalone: false\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    standalone: false\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    standalone: false\r\n})\r\nexport class ControlUiPipe implements PipeTransform {\r\n    transform(caption: string, layout94: LayoutSetting, columnName?: string): LayoutSetting | null {\r\n        return this.findLayoutItem(caption, layout94, columnName);\r\n    }\r\n    findLayoutItem(caption, layoutItem, columnName?: string): LayoutSetting | null {\r\n        if (!layoutItem) {\r\n            return null;\r\n        }\r\n        if (layoutItem.Caption === caption || (columnName && layoutItem.ControlId === columnName)) {\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, columnName);\r\n            }\r\n        });\r\n        return finded;\r\n    }\r\n}\r\n","import { PipeTransform, Pipe } from '@angular/core';\r\nimport { GetVisibleValue } from '../constants';\r\n\r\n@Pipe({\r\n    name: 'barsaVisibleValue',\r\n    standalone: false\r\n})\r\nexport class VisibleValuePipe implements PipeTransform {\r\n    constructor() {}\r\n\r\n    transform(object, field): string {\r\n        return GetVisibleValue(object, field);\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    standalone: false\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, inject } 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\nimport { Group, GroupBy } from '../constants';\r\n\r\n@Pipe({\r\n    name: 'multipleGroupBy',\r\n    standalone: false\r\n})\r\nexport class MultipleGroupByPipe implements PipeTransform {\r\n    private bbbPipe = inject(BbbTranslatePipe);\r\n    private visibleValuePipe = inject(VisibleValuePipe);\r\n\r\n    /** Inserted by Angular inject() migration for backwards compatibility */\r\n    \r\n\r\n    constructor() {}\r\n\r\n    transform(collection: any[], sortSettings: SortSetting[]): 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 { grouped, groups } = GroupBy(collection, sortSettings);\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, i) => {\r\n                        c.$Parent = newRow;\r\n                        c.$Visibility = true;\r\n                        c.$IsLastChildGroup = i === row.length - 1;\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","import { PipeTransform, Pipe } from '@angular/core';\r\nimport { getImagePath } from '../constants';\r\n@Pipe({\r\n    name: 'picFieldSrc',\r\n    standalone: false\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    standalone: false\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    standalone: false\r\n})\r\nexport class CanUploadFilePipe implements PipeTransform {\r\n    constructor() {}\r\n    transform(\r\n        fileCount: number | null,\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        if (maxFileCount !== 0 && fileCount && maxFileCount <= fileCount) {\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    standalone: false\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    standalone: false\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    standalone: false\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';\r\nimport { ReportViewColumn } from '../abstract-classes';\r\n\r\n@Pipe({\r\n    name: 'findColumnByDbName',\r\n    pure: true,\r\n    standalone: false\r\n})\r\nexport class FindColumnByDbNamePipe implements PipeTransform {\r\n    transform(\r\n        columns: ReportViewColumn[],\r\n        name: string,\r\n        secondaryColumns: ReportViewColumn[] = []\r\n    ): ReportViewColumn | undefined {\r\n        return this.findColumn(columns, name, secondaryColumns);\r\n    }\r\n    private findColumn(\r\n        columns: ReportViewColumn[],\r\n        column: string,\r\n        secondaryColumns: ReportViewColumn[]\r\n    ): ReportViewColumn | undefined {\r\n        let columnFound = this._findColumn(columns, column);\r\n        if (!columnFound && secondaryColumns.length) {\r\n            columnFound = this._findColumn(secondaryColumns, column);\r\n        }\r\n        return columnFound;\r\n    }\r\n    private _findColumn(columns: ReportViewColumn[], name: string): ReportViewColumn | undefined {\r\n        return columns.find((column) => column.Name === name || column.Caption === name || column.Alias === name);\r\n    }\r\n}\r\n","import { PipeTransform, Pipe } from '@angular/core';\r\nimport { ReportViewColumn } from '../abstract-classes';\r\n\r\n@Pipe({\r\n    name: 'filterColumnsByDetails',\r\n    standalone: false\r\n})\r\nexport class FilterColumnsByDetailsPipe implements PipeTransform {\r\n    transform(\r\n        columns: ReportViewColumn[],\r\n        detailsColumns: ReportViewColumn[],\r\n        rowIndicator: boolean\r\n    ): ReportViewColumn[] {\r\n        if (!columns?.length) {\r\n            return columns;\r\n        }\r\n        const x = columns.filter(\r\n            (column, i) =>\r\n                (rowIndicator ? i > 0 : true) &&\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        return x;\r\n    }\r\n}\r\n","import { PipeTransform, Pipe } from '@angular/core';\r\nimport { PagingSetting } from '../abstract-classes';\r\n@Pipe({\r\n    name: 'moInfoUlvPaging',\r\n    standalone: false\r\n})\r\nexport class MoInfoUlvPagingPipe implements PipeTransform {\r\n    transform(ulvAdapterPaging?: PagingSetting, ulvUiPaging?: PagingSetting): PagingSetting | undefined {\r\n        return ulvAdapterPaging ? ulvAdapterPaging : ulvUiPaging;\r\n    }\r\n}\r\n","import { PipeTransform, Pipe, inject } from '@angular/core';\r\nimport { MoInfoUlvPagingPipe } from './mo-info-ulv-paging.pipe';\r\nimport { MetaobjectDataModel, PagingSetting } from '../abstract-classes';\r\n@Pipe({\r\n    name: 'moInfoUlvMoList',\r\n    standalone: false\r\n})\r\nexport class MoInfoUlvMoListPipe implements PipeTransform {\r\n    private _moInfoUlvPaging = inject(MoInfoUlvPagingPipe);\r\n\r\n    /** Inserted by Angular inject() migration for backwards compatibility */\r\n    \r\n\r\n    constructor() {}\r\n    transform(\r\n        loading: boolean,\r\n        isDataLoadedFirstTime: boolean,\r\n        ulvAdapterMoDataList: MetaobjectDataModel[] | undefined,\r\n        ulvUiMoDataList: MetaobjectDataModel[] | undefined,\r\n        ulvAdapterPaging: PagingSetting | undefined,\r\n        ulvUiPaging: PagingSetting | undefined\r\n    ): any {\r\n        const result: MetaobjectDataModel[] =\r\n            loading && !isDataLoadedFirstTime\r\n                ? [{ Id: '-1', $Caption: '', $isLoading: true }]\r\n                : ulvAdapterMoDataList\r\n                ? ulvAdapterMoDataList?.length === 0\r\n                    ? [{ Id: '-1', $Caption: '', isEmpty: true }]\r\n                    : ulvAdapterMoDataList\r\n                : ulvUiMoDataList\r\n                ? ulvUiMoDataList\r\n                : [];\r\n        if (result.length > 0) {\r\n            const paging = ulvAdapterPaging ? ulvAdapterPaging : ulvUiPaging;\r\n            result.forEach((c) => {\r\n                c.$__Index = undefined;\r\n                c.$__IsFirst = undefined;\r\n                c.$__IsLast = undefined;\r\n            });\r\n            result.forEach((c, index) => {\r\n                c.$__Index = index;\r\n                if (index === 0) {\r\n                    c.$__IsFirst = true;\r\n                    c.$IsChecked = true;\r\n                }\r\n                if (index === result.length - 1) {\r\n                    c.$__IsLast = true;\r\n                }\r\n            });\r\n            if (paging?.HasPaging) {\r\n                // if (paging.Page + 1 < paging.TotalPages) {\r\n                if (!result[result.length - 1].$LoadMore) {\r\n                    result.push({ $Caption: 'More', $LoadMore: true, Id: '-1' });\r\n                }\r\n                // } else {\r\n                //     if (result[result.length - 1].$LoadMore) {\r\n                //         result.splice(result.length - 1, 1);\r\n                //     }\r\n                // }\r\n            }\r\n        }\r\n        return result;\r\n    }\r\n}\r\n","import { PipeTransform, Pipe } from '@angular/core';\r\n@Pipe({\r\n    name: 'reverse',\r\n    standalone: false\r\n})\r\nexport class ReversePipe implements PipeTransform {\r\n    transform(value, doReverse: boolean = true): any[] {\r\n        if (!doReverse) {\r\n            return value;\r\n        }\r\n        if (!value) {\r\n            return [];\r\n        }\r\n        return value.reverse();\r\n    }\r\n}\r\n","import { PipeTransform, Pipe, inject } from '@angular/core';\r\nimport { EjrayOlgo, MetaobjectDataModel, MoForReportModel, ReportViewColumn } from '../abstract-classes/models';\r\nimport { FindColumnByDbNamePipe } from './find-column-by-db-name.pipe';\r\n\r\n@Pipe({\r\n    name: 'columnCustomUi',\r\n    standalone: false\r\n})\r\nexport class ColumnCustomUiPipe implements PipeTransform {\r\n    private _findColumnByDbNamePipe = inject(FindColumnByDbNamePipe);\r\n\r\n    /** Inserted by Angular inject() migration for backwards compatibility */\r\n    \r\n\r\n    constructor() {}\r\n    transform(column: ReportViewColumn, columnComponents: MoForReportModel | null): EjrayOlgo | null {\r\n        if (!columnComponents) {\r\n            return null;\r\n        }\r\n        let component = null;\r\n        columnComponents.MoDataList.forEach((c: MetaobjectDataModel) => {\r\n            if (!component) {\r\n                const columnItem = this._findColumnByDbNamePipe.transform([column], c.Title);\r\n                if (columnItem) {\r\n                    component = c.Component;\r\n                }\r\n            }\r\n        });\r\n        return component;\r\n    }\r\n}\r\n","import { PipeTransform, Pipe, inject } from '@angular/core';\r\nimport { DomSanitizer, SafeHtml } from '@angular/platform-browser';\r\n\r\n@Pipe({\r\n    name: 'sanitizeText',\r\n    standalone: false\r\n})\r\nexport class SanitizeTextPipe implements PipeTransform {\r\n    private _domSanitizer = inject(DomSanitizer);\r\n\r\n    /** Inserted by Angular inject() migration for backwards compatibility */\r\n    \r\n\r\n    constructor() {}\r\n    transform(text: string): SafeHtml {\r\n        return this._domSanitizer.bypassSecurityTrustHtml(text);\r\n    }\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: 'columnCustomComponent',\r\n    standalone: false\r\n})\r\nexport class ColumnCustomComponentPipe implements PipeTransform {\r\n    transform(\r\n        columns: ReportViewColumn[],\r\n        customComponentMoDataList: MetaobjectDataModel[] | undefined\r\n    ): ReportViewColumn[] {\r\n        if (!customComponentMoDataList || !customComponentMoDataList.length) {\r\n            return columns;\r\n        }\r\n        return this._setCustomComponentToColumns(columns, customComponentMoDataList);\r\n    }\r\n    protected _setCustomComponentToColumns(\r\n        columns: ReportViewColumn[],\r\n        customComponentMoDataList: MetaobjectDataModel[] | undefined\r\n    ): ReportViewColumn[] {\r\n        let allCustomComponents;\r\n        if (customComponentMoDataList) {\r\n            allCustomComponents = {};\r\n            customComponentMoDataList\r\n                .map((c) => c as MergeCell)\r\n                .forEach((c) => (allCustomComponents[c.Title] = { ...c, ...c.Component }));\r\n        }\r\n        if (allCustomComponents) {\r\n            columns.forEach((c) => {\r\n                const customComponent = allCustomComponents[c.Alias];\r\n                if (customComponent) {\r\n                    c.$CustomComponent = customComponent;\r\n                }\r\n            });\r\n        }\r\n        return columns;\r\n    }\r\n}\r\ninterface MergeCell extends MetaobjectDataModel {\r\n    Title: string;\r\n    Component: MetaobjectDataModel;\r\n}\r\n","import { PipeTransform, Pipe } from '@angular/core';\r\nimport { MetaobjectDataModel, ReportViewColumn } from '../abstract-classes/models';\r\n\r\n@Pipe({\r\n    name: 'columnValue',\r\n    standalone: false\r\n})\r\nexport class ColumnValuePipe implements PipeTransform {\r\n    transform(column: ReportViewColumn, mo: MetaobjectDataModel): any {\r\n        const colName = column.Name;\r\n        const data = mo[colName];\r\n        let caption = mo[colName + '$Caption'];\r\n\r\n        if (typeof data === 'object' && data) {\r\n            if (data.$Caption) {\r\n                caption = data.$Caption;\r\n            }\r\n            if (column.FieldTypeId.toString() === '6' && column.Tag === 'Image') {\r\n                // Column is enum with image\r\n                caption = '';\r\n            }\r\n        }\r\n        if (!caption && typeof data !== 'object') {\r\n            caption = data;\r\n        }\r\n\r\n        if (column.OnlyImage || (column.FieldTypeId.toString() === '6' && column.Tag === 'Image')) {\r\n            caption = '';\r\n        }\r\n        return caption || '';\r\n    }\r\n}\r\n","import { PipeTransform, Pipe } from '@angular/core';\r\nimport { MetaobjectDataModel, ReportViewColumn } from '../abstract-classes/models';\r\n\r\n@Pipe({\r\n    name: 'columnIcon',\r\n    standalone: false\r\n})\r\nexport class ColumnIconPipe implements PipeTransform {\r\n    transform(column: ReportViewColumn, mo: MetaobjectDataModel): any {\r\n        const colName = column.Name;\r\n        const data = mo[colName];\r\n        let icon = mo[colName + '$Icon'];\r\n\r\n        if (typeof data === 'object' && data) {\r\n            icon = data.$Icon;\r\n        }\r\n        return icon;\r\n    }\r\n}\r\n","import { Injectable, Pipe, PipeTransform } from '@angular/core';\r\nimport { BarsaApi, MetaobjectDataModel, PagingSetting } from '../abstract-classes';\r\n\r\n@Injectable()\r\n@Pipe({\r\n    name: 'rowNumber',\r\n    standalone: false\r\n})\r\nexport class RowNumberPipe implements PipeTransform {\r\n    transform(moId: string, setting: PagingSetting, moDataList: MetaobjectDataModel[]): any {\r\n        if (!moId) {\r\n            return;\r\n        }\r\n        const rowIndex = moDataList.findIndex((c) => c.Id === moId);\r\n        const firstRow = BarsaApi.Common.Util.TryGetValue(setting, 'StartIndex', 0);\r\n        return rowIndex + Number(firstRow) + 1;\r\n    }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n    name: 'comboRowImg',\r\n    standalone: false\r\n})\r\nexport class ComboRowImagePipe implements PipeTransform {\r\n    transform(value: string, data: any[]): number {\r\n        return data.find((c) => c.id === value).url;\r\n    }\r\n    // Number('') == 0\r\n    // Number('a') == NaN it will never be happen because value of\r\n}\r\n","import { PipeTransform, Pipe } from '@angular/core';\r\nimport { TreeNodeObj } from '../abstract-classes';\r\n@Pipe({\r\n    name: 'isExpandedNode',\r\n    standalone: false\r\n})\r\nexport class IsExpandedNodePipe implements PipeTransform {\r\n    transform(value: TreeNodeObj): boolean {\r\n        return this._isExpanded(value);\r\n    }\r\n    _isExpanded(value: TreeNodeObj | null): boolean {\r\n        if (!value || !value.isExpand) {\r\n            return false;\r\n        }\r\n        if (value.isExpand && !value.parentNode) {\r\n            return true;\r\n        }\r\n        return this._isExpanded(value.parentNode);\r\n    }\r\n}\r\n","import { PipeTransform, Pipe } from '@angular/core';\r\nimport { ReportViewColumn } from '../abstract-classes/models';\r\n\r\n@Pipe({\r\n    name: 'thImageOrIcon',\r\n    standalone: false\r\n})\r\nexport class ThImageOrIconePipe implements PipeTransform {\r\n    transform(column: ReportViewColumn): boolean {\r\n        const fieldTypeId = +column.FieldTypeId;\r\n        const displayType = column.Extra?.IconDisplayTypeEnum;\r\n        const x =\r\n            fieldTypeId === 42 ||\r\n            ((fieldTypeId === 6 || fieldTypeId === 5) && displayType === 'Image');\r\n        column.$IsImageOricon = x;\r\n        return x;\r\n    }\r\n}\r\n","import { PipeTransform, Pipe } from '@angular/core';\r\nimport { ReportViewColumn } from '../abstract-classes';\r\n\r\n@Pipe({\r\n    name: 'findPreviewColumn',\r\n    standalone: false\r\n})\r\nexport class FindPreviewColumnPipe implements PipeTransform {\r\n    transform(columns: ReportViewColumn[]): ReportViewColumn | undefined {\r\n        if (!columns?.length) {\r\n            return;\r\n        }\r\n        return columns.find((column) => column.IsPreview);\r\n    }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n    name: 'replace',\r\n    standalone: false\r\n})\r\nexport class ReplacePipe implements PipeTransform {\r\n    transform(value: string, regexValue: string, replaceValue: string): any {\r\n        const regex = new RegExp(regexValue, 'g');\r\n        return value.replace(regex, replaceValue);\r\n    }\r\n}\r\n","import { PipeTransform, Pipe } from '@angular/core';\r\nimport { getDeviceIsMobile } from '../constants';\r\n\r\n@Pipe({\r\n    name: 'filterWorkflowInMobile',\r\n    standalone: false\r\n})\r\nexport class FilterWorkflowInMobilePipe implements PipeTransform {\r\n    constructor() {}\r\n    transform(\r\n        buttons: any[],\r\n        worfklowButtonsOnFooter = false\r\n        // fileCount: number\r\n    ): any[] {\r\n        const isMobileOrTablet = getDeviceIsMobile() || worfklowButtonsOnFooter;\r\n        if (!isMobileOrTablet) {\r\n            return buttons;\r\n        }\r\n        return buttons.filter((button) => !button.isWorkflow);\r\n    }\r\n}\r\n","import { PipeTransform, Pipe } from '@angular/core';\r\nimport { ReportViewColumn } from '../abstract-classes';\r\nimport { getDeviceIsMobile } from '../constants';\r\n\r\n@Pipe({\r\n    name: 'hideColumnsInmobile',\r\n    standalone: false\r\n})\r\nexport class HideColumnsInmobilePipe implements PipeTransform {\r\n    transform(columns: ReportViewColumn[], hideColumnsInMobile: string): ReportViewColumn[] {\r\n        if (!columns?.length || !hideColumnsInMobile || !getDeviceIsMobile()) {\r\n            return columns;\r\n        }\r\n        const arrOfColumns = hideColumnsInMobile.split(',');\r\n        const x = columns.filter(\r\n            (column, _i) => arrOfColumns.indexOf(column.Caption) === -1 && arrOfColumns.indexOf(column.Name) === -1\r\n        );\r\n\r\n        return x;\r\n    }\r\n}\r\n","import { PipeTransform, Pipe } from '@angular/core';\r\n\r\n@Pipe({\r\n    name: 'strToNum',\r\n    standalone: false\r\n})\r\nexport class StringToNumberPipe implements PipeTransform {\r\n    transform(val: string): number {\r\n        let tvalue = NaN;\r\n        if (typeof val === 'string') {\r\n            if (isNaN(+val[0])) {\r\n                tvalue = +val.substring(1, val.length);\r\n            } else {\r\n                tvalue = +val;\r\n            }\r\n        }\r\n        return tvalue;\r\n    }\r\n}\r\n","import { PipeTransform, Pipe, inject } from '@angular/core';\r\nimport { MetaobjectDataModel, ReportViewColumn } from '../abstract-classes/models';\r\nimport { ColumnValuePipe } from './column-value.pipe';\r\nimport { FindColumnByDbNamePipe } from './find-column-by-db-name.pipe';\r\nimport { MoValuePipe } from './mo-value.pipe';\r\n\r\n@Pipe({\r\n    name: 'columnValueOfParameters',\r\n    standalone: false\r\n})\r\nexport class ColumnValueOfParametersPipe implements PipeTransform {\r\n    _findColumnByDbName = inject(FindColumnByDbNamePipe);\r\n    _columnValuePipe = inject(ColumnValuePipe);\r\n    _moValuePipe = inject(MoValuePipe);\r\n    transform(\r\n        allColumns: ReportViewColumn[],\r\n        mo: MetaobjectDataModel,\r\n        fieldname: string,\r\n        defaultValue: any,\r\n        caption?: boolean\r\n    ): any {\r\n        if (fieldname) {\r\n            const column = this._findColumnByDbName.transform(allColumns, fieldname, []);\r\n            if (column) {\r\n                return this._columnValuePipe.transform(column, mo);\r\n            } else {\r\n                return this._moValuePipe.transform(fieldname, mo, caption);\r\n            }\r\n        }\r\n        return defaultValue;\r\n    }\r\n}\r\n","import { PipeTransform, Pipe } from '@angular/core';\r\n\r\n@Pipe({\r\n    name: 'hideAcceptCancel',\r\n    standalone: false\r\n})\r\nexport class HideAcceptCancelButtonsPipe implements PipeTransform {\r\n    constructor() {}\r\n    transform(buttons: any[] | null, hideAcceptCancel: boolean): any[] {\r\n        if (!buttons) {\r\n            return [];\r\n        }\r\n        if (!hideAcceptCancel) {\r\n            return buttons;\r\n        }\r\n        return buttons.filter((c) => c.itemId !== 'Ok' && c.itemId !== 'Cancel');\r\n    }\r\n}\r\n","import { PipeTransform, Pipe } from '@angular/core';\r\n\r\n@Pipe({\r\n    name: 'filterInlineActionList',\r\n    standalone: false\r\n})\r\nexport class FilterInlineActionListPipe implements PipeTransform {\r\n    transform(actionList: any[], hideDeleteButton: boolean, hideEditButton: boolean, hideShowButton: boolean): any[] {\r\n        return actionList.filter(\r\n            (action) =>\r\n                (action.itemId === 'Delete' && !hideDeleteButton) ||\r\n                (action.itemId === 'Edit' && !hideEditButton) ||\r\n                (action.itemId === 'Show' && !hideShowButton)\r\n        );\r\n    }\r\n}\r\n","import { PipeTransform, Pipe } from '@angular/core';\r\nimport { isImage } from '../constants';\r\n@Pipe({\r\n    name: 'isImageType',\r\n    standalone: false\r\n})\r\nexport class IsImagePipe implements PipeTransform {    \r\n    transform(\r\n        type: string\r\n        // fileCount: number\r\n    ): boolean {\r\n        return isImage(type);\r\n    }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { MetaobjectDataModel, MoForReportModel } from '../abstract-classes/models';\r\n\r\n@Pipe({\r\n    name: 'ulvToolbarSettings',\r\n    standalone: false\r\n})\r\nexport class ToolbarSettingsPipe implements PipeTransform {\r\n    transform(toolbarButtons: any[], toolbarSettings: MoForReportModel): any[] {\r\n        if (!toolbarSettings?.MoDataList?.length || !toolbarButtons?.length) {\r\n            return toolbarButtons;\r\n        }\r\n        const x: UiToolbarButtonSettings[] = toolbarSettings.MoDataList as UiToolbarButtonSettings[];\r\n        x.forEach((c) => {\r\n            const indexOfItem = toolbarButtons.findIndex((d) => d.itemId === c.ItemId$Caption);\r\n            if (indexOfItem > -1) {\r\n                toolbarButtons[indexOfItem] = { ...toolbarButtons[indexOfItem], ...c, isCustom: true };\r\n            }\r\n        });\r\n        return [...toolbarButtons.filter((c) => !c.HideButton)];\r\n    }\r\n}\r\ninterface UiToolbarButtonSettings extends MetaobjectDataModel {\r\n    ItemId$Caption: string;\r\n    HideButton: boolean;\r\n    HideIcon: boolean;\r\n    ShowText: boolean;\r\n    Caption: string;\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { CardMediaSize } from '../abstract-classes';\r\n\r\n@Pipe({\r\n    name: 'cardMediaSize',\r\n    standalone: false\r\n})\r\nexport class CardMediaSizePipe implements PipeTransform {\r\n    transform(cardMediaSize: CardMediaSize | undefined, defaultValue: number): [number, number] {\r\n        if (!cardMediaSize) {\r\n            return [+defaultValue, +defaultValue];\r\n        }\r\n        const x = cardMediaSize.split('x');\r\n        return [+x[0], +x[1]];\r\n    }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n    name: 'lableStartTrim',\r\n    standalone: false\r\n})\r\nexport class LabelStarTrimPipe implements PipeTransform {\r\n    transform(key: string | null): string {\r\n        if (!key) {\r\n            return '';\r\n        }\r\n\r\n        if (!key.replace) {\r\n            return key;\r\n        }\r\n        let hasStar = false;\r\n        if (typeof key === 'string' && key.indexOf('*') > 0) {\r\n            hasStar = true;\r\n        }\r\n        const key2 = !hasStar ? key.trim() : key.replace('*', '').trim();\r\n\r\n        return key2;\r\n    }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n    name: 'split',\r\n    standalone: false\r\n})\r\nexport class SplitPipe implements PipeTransform {\r\n    transform(value: string, delimiter: string = ','): string[] {\r\n        return value ? value.split(delimiter).map((s) => s.trim()) : [];\r\n    }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { IsDarkMode } from '../constants';\r\n\r\n@Pipe({\r\n    name: 'dynamicDarkColor',\r\n    standalone: false\r\n})\r\nexport class DynamicDarkColorPipe implements PipeTransform {\r\n    transform(styleStr: string): string {\r\n        const prefersDark = IsDarkMode() || window.matchMedia('(prefers-color-scheme: dark)').matches;\r\n\r\n        if (!prefersDark || !styleStr) {\r\n            return styleStr;\r\n        }\r\n\r\n        // پیدا کردن رنگ در استرینگ\r\n        const regex = /color\\s*:\\s*([^;!]+)[;!]/i;\r\n        const match = styleStr.match(regex);\r\n        if (!match) {\r\n            return styleStr;\r\n        }\r\n\r\n        const originalColor = match[1].trim();\r\n        const rgb = this.parseColor(originalColor);\r\n        if (!rgb) {\r\n            return styleStr;\r\n        }\r\n\r\n        // تنظیم روشنایی برای حالت دارک\r\n\r\n        const hexColor = this.rgbToHex(rgb);\r\n\r\n        const newColor = this.toDarkModeHSL(hexColor);\r\n\r\n        // جایگزینی رنگ در استرینگ\r\n        const newStyleStr = styleStr.replace(regex, `color: ${newColor};`);\r\n        return newStyleStr;\r\n    }\r\n    private toDarkModeHSL(hexColor): string {\r\n        // Convert HEX to HSL\r\n        const r = parseInt(hexColor.substring(1, 3), 16) / 255;\r\n        const g = parseInt(hexColor.substring(3, 5), 16) / 255;\r\n        const b = parseInt(hexColor.substring(5, 7), 16) / 255;\r\n\r\n        const max = Math.max(r, g, b);\r\n        const min = Math.min(r, g, b);\r\n        let h,\r\n            s,\r\n            l = (max + min) / 2;\r\n\r\n        if (max === min) {\r\n            h = s = 0; // achromatic\r\n        } else {\r\n            const d = max - min;\r\n            s = l > 0.5 ? d / (2 - max - min) : d / (max + min);\r\n            switch (max) {\r\n                case r:\r\n                    h = (g - b) / d + (g < b ? 6 : 0);\r\n                    break;\r\n                case g:\r\n                    h = (b - r) / d + 2;\r\n                    break;\r\n                case b:\r\n                    h = (r - g) / d + 4;\r\n                    break;\r\n            }\r\n            h /= 6;\r\n        }\r\n\r\n        // Adjust lightness for dark mode (e.g., reduce lightness for darker colors, increase for lighter ones)\r\n        // This is a simplified example; more complex logic might be needed for optimal results.\r\n        l = 1 - l; // Invert lightness\r\n        l = Math.min(0.8, Math.max(0.2, l)); // Clamp lightness to a reasonable range for dark mode\r\n\r\n        // Convert HSL back to HEX\r\n        const c = (1 - Math.abs(2 * l - 1)) * s;\r\n        const x = c * (1 - Math.abs(((h * 6) % 2) - 1));\r\n        const m = l - c / 2;\r\n        let r_prime, g_prime, b_prime;\r\n\r\n        if (0 <= h * 6 && h * 6 < 1) {\r\n            r_prime = c;\r\n            g_prime = x;\r\n            b_prime = 0;\r\n        } else if (1 <= h * 6 && h * 6 < 2) {\r\n            r_prime = x;\r\n            g_prime = c;\r\n            b_prime = 0;\r\n        } else if (2 <= h * 6 && h * 6 < 3) {\r\n            r_prime = 0;\r\n            g_prime = c;\r\n            b_prime = x;\r\n        } else if (3 <= h * 6 && h * 6 < 4) {\r\n            r_prime = 0;\r\n            g_prime = x;\r\n            b_prime = c;\r\n        } else if (4 <= h * 6 && h * 6 < 5) {\r\n            r_prime = x;\r\n            g_prime = 0;\r\n            b_prime = c;\r\n        } else if (5 <= h * 6 && h * 6 < 6) {\r\n            r_prime = c;\r\n            g_prime = 0;\r\n            b_prime = x;\r\n        }\r\n\r\n        const finalR = Math.round((r_prime + m) * 255);\r\n        const finalG = Math.round((g_prime + m) * 255);\r\n        const finalB = Math.round((b_prime + m) * 255);\r\n\r\n        return '#' + ((1 << 24) + (finalR << 16) + (finalG << 8) + finalB).toString(16).slice(1); // eslint-disable-line no-bitwise\r\n    }\r\n    private rgbToHex(rgb: number[]): string | null {\r\n        if (!rgb || rgb.length < 3) {\r\n            return null;\r\n        }\r\n        const r = rgb[0];\r\n        const g = rgb[1];\r\n        const b = rgb[2];\r\n\r\n        const toHex = (c): string => {\r\n            const hex = c.toString(16);\r\n            return hex.length === 1 ? '0' + hex : hex;\r\n        };\r\n\r\n        return `#${toHex(r)}${toHex(g)}${toHex(b)}`;\r\n    }\r\n    private parseColor(color: string): number[] | null {\r\n        const temp = document.createElement('div');\r\n        temp.style.color = color;\r\n        document.body.appendChild(temp);\r\n        const computed = getComputedStyle(temp).color;\r\n        document.body.removeChild(temp);\r\n\r\n        const match = computed.match(/^rgb\\((\\d+),\\s*(\\d+),\\s*(\\d+)\\)$/);\r\n        return match ? [parseInt(match[1], 10), parseInt(match[2], 10), parseInt(match[3], 10)] : null;\r\n    }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n    name: 'chunkArray',\r\n    pure: true,\r\n    standalone: false\r\n})\r\nexport class ChunkArrayPipe implements PipeTransform {\r\n    transform<T>(arr: T[] | null | undefined, size = 2): T[][] {\r\n        if (!arr || !Array.isArray(arr) || size <= 0) {\r\n            return [];\r\n        }\r\n        const out: T[][] = [];\r\n        for (let i = 0; i < arr.length; i += size) {\r\n            out.push(arr.slice(i, i + size));\r\n        }\r\n        return out;\r\n    }\r\n}\r\n","import { Injectable, inject } 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    private httpClient = inject(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, inject } 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    readonly breadcrumbs$: Observable<BreadCrumbInfo[]>;\r\n        \r\n    private router = inject(Router);    \r\n    private readonly _breadcrumbs$ = new BehaviorSubject<BreadCrumbInfo[]>([]);\r\n\r\n    constructor() {\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\r\n                    .map(\r\n                        (segment) =>\r\n                            `${segment.path}${\r\n                                segment.parameters\r\n                                    ? `;${Object.keys(segment.parameters).map((c) => `${c}=${segment.parameters[c]}`)}`\r\n                                    : ''\r\n                            }`\r\n                    )\r\n                    .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 {\r\n    AfterViewInit,\r\n    ApplicationRef,\r\n    Component,\r\n    ComponentFactoryResolver,\r\n    ComponentRef,\r\n    Injector,\r\n    OnInit,\r\n    Type,\r\n    inject\r\n} from '@angular/core';\r\nimport { BaseComponent } from './abstract-classes/base.component';\r\n\r\n@Component({\r\n    template: ``,\r\n    standalone: false\r\n})\r\nexport class ModalRootComponent extends BaseComponent implements OnInit, AfterViewInit {\r\n    componentType: Type<any>;\r\n    componentInstance: ComponentRef<any>;\r\n    \r\n    private factoryResolver = inject(ComponentFactoryResolver);\r\n    private injector = inject(Injector);\r\n    private _appRef = inject(ApplicationRef);\r\n\r\n    ngOnInit(): void {\r\n        super.ngOnInit();\r\n        // this.insertComponent();\r\n    }\r\n    close(): void {\r\n        this._appRef.detachView(this.componentInstance.hostView);\r\n    }\r\n    insertComponent(): void {\r\n        const factoryResolver = this.factoryResolver.resolveComponentFactory(this.componentType);\r\n        this.componentInstance = factoryResolver.create(this.injector);\r\n\r\n        this._appRef.attachView(this.componentInstance.hostView);\r\n    }\r\n}\r\n","import { Injectable, InjectOptions, Injector, OnDestroy, ProviderToken, Type, ViewContainerRef, inject } from '@angular/core';\r\nimport { Observable, Subject } from 'rxjs';\r\nimport { ContainerComponent } from '../container.component';\r\n\r\nimport { ModalRootComponent } from '../modal-root.component';\r\nimport { ActivatedRoute } from '@angular/router';\r\n\r\nexport class CustomInjector implements Injector {\r\n    constructor(\r\n        private parentInjector: Injector,\r\n        private additionalTokens: WeakMap<any, any>,\r\n        private activatedRoute?: ActivatedRoute\r\n    ) {}\r\n    get<T>(token: ProviderToken<T>, notFoundValue?: T, options?: InjectOptions ): T;\r\n\r\n    get(token: any, notFoundValue?: any): any {\r\n        if (token === ActivatedRoute && this.activatedRoute) {\r\n            return this.activatedRoute;\r\n        }\r\n        const value = this.additionalTokens.get(token);\r\n        if (value) {\r\n            return value;\r\n        }\r\n        return this.parentInjector.get<any>(token, notFoundValue);\r\n    }\r\n}\r\n@Injectable() // check it later\r\nexport class DialogParams implements OnDestroy {\r\n    context: any;\r\n    afterClosed$: Observable<any>;\r\n    private afterClosed: Subject<any> = new Subject<any>();\r\n    constructor() {\r\n        this.afterClosed$ = this.afterClosed?.asObservable();\r\n    }\r\n    close(result?: any): void {\r\n        if (this.afterClosed != null) {\r\n            this.afterClosed.next(result);\r\n        }\r\n    }\r\n\r\n    ngOnDestroy(): void {\r\n        this.afterClosed.unsubscribe();\r\n    }\r\n}\r\n\r\n@Injectable({\r\n    providedIn: 'root'\r\n})\r\nexport class BarsaDialogService {\r\n    containerComponent: ContainerComponent;\r\n    protected injector = inject(Injector);\r\n\r\n    showForm(component: Type<any>, context: any, container: ViewContainerRef): Observable<any> {\r\n        const weakMap = new WeakMap();\r\n\r\n        const dialogParams = new DialogParams();\r\n        dialogParams.context = context;\r\n        weakMap.set(DialogParams, dialogParams);\r\n\r\n        const viewContainerRef = container ?? this.containerComponent.vcr;\r\n        const modalRootComponentRef = container.createComponent(ModalRootComponent, {\r\n            injector: new CustomInjector(viewContainerRef.injector, weakMap)\r\n        });\r\n\r\n        modalRootComponentRef.instance.componentType = component;\r\n        modalRootComponentRef.instance.insertComponent();\r\n        if (!context.inDialog) {\r\n            // viewContainerRef.element.nativeElement.classList.add('deactive');\r\n        }\r\n        viewContainerRef.insert(modalRootComponentRef.hostView, 0);\r\n        this.containerComponent.cdr.detectChanges();\r\n        const sub = dialogParams.afterClosed$?.subscribe(() => {\r\n            modalRootComponentRef.instance.close();\r\n            viewContainerRef.remove(0);\r\n            sub?.unsubscribe();\r\n            // viewContainerRef.element.nativeElement.classList.remove('deactive');\r\n        });\r\n        // this.modalRootComponentRef.instance.navigate();\r\n        return dialogParams.afterClosed$;\r\n    }\r\n}\r\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\r\nimport { BaseComponent } from '../abstract-classes/base.component';\r\n\r\n@Component({\r\n    selector: 'bnrc-not-found',\r\n    templateUrl: './not-found.component.html',\r\n    styleUrls: ['./not-found.component.scss'],\r\n    changeDetection: ChangeDetectionStrategy.OnPush,\r\n    standalone: false\r\n})\r\nexport class NotFoundComponent extends BaseComponent {\r\n    @Input() componentName: string;\r\n    @Input() moduleName: string;\r\n}\r\n","<div fd-form-control>{{ moduleName + ' ' + componentName }}</div>\r\n","import { Injectable, Injector, ComponentRef, ComponentFactoryResolver, Type, inject, Compiler } from '@angular/core';\r\nimport { from, Observable, of, map, exhaustMap } 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    requires: Record<string,any>;\r\n\r\n    private cfr = inject(ComponentFactoryResolver);\r\n    private _injector = inject(Injector);\r\n\r\n    private _dynamicModuleWithComponents: {\r\n        [key: string]: {\r\n            ngModuleRef: any;\r\n        };\r\n    } = {};\r\n    private _compiler = inject(Compiler);\r\n    /** Inserted by Angular inject() migration for backwards compatibility */\r\n    constructor() {}\r\n    addDynamicModuleResolver(modules: { [key: string]: () => Promise<any> }): Promise<Record<string, any>> {\r\n        this.requires = { ...this.requires, ...modules };\r\n        return Promise.resolve(this.requires);\r\n    }\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    getComponentType(componentSelector: string, componentName: string, moduleName: string): Type<any> | undefined {\r\n        const moName = `${moduleName}Module`;\r\n        const module = this._dynamicModuleWithComponents[moName];\r\n        const cmpName = `${componentName}Component`;\r\n        if (!module) {\r\n            return;\r\n        }\r\n        let x = module.ngModuleRef.dynamicComponents.find((c) => c.name.includes(cmpName));\r\n        if (!x) {\r\n            module.ngModuleRef.dynamicComponents.forEach((c) => {\r\n                if (!x) {\r\n                    const cmp = c['ɵcmp'];\r\n                    cmp?.selectors?.length && (x = cmp.selectors[0].includes(componentSelector) ? c : null);\r\n                }\r\n            });\r\n        }\r\n        return x;\r\n    }\r\n    getComponentBySelector(\r\n        selector: string,\r\n        componentName: 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) {\r\n            \r\n            const componentFactory = module.ngModuleRef.getComponentFactory(selector);\r\n            if (componentFactory) {\r\n                return of(componentFactory.create(injector));\r\n            }\r\n        } else {\r\n            if (this.requires[moduleName]) {\r\n                return from(this.requires[moduleName]()).pipe(\r\n                    exhaustMap((m:any) => this._compiler.compileModuleAsync(m[moName])),\r\n                    map((c) => c.create(this._injector)),\r\n                    map((c) =>\r\n                        c.componentFactoryResolver\r\n                            .resolveComponentFactory(this.getComponentType(selector, componentName, moduleName) as any)\r\n                            .create(injector)\r\n                    )\r\n                );\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';\r\nimport { debounceTime, delay, distinctUntilChanged, filter, map, takeUntil, tap, withLatestFrom } from 'rxjs/operators';\r\nimport {\r\n    FormViewSetting,\r\n    IHeaderLayout,\r\n    InfoBarType,\r\n    LayoutSetting,\r\n    MetaobjectDataModel\r\n} from '../abstract-classes/models';\r\nimport { BarsaApi } from '../abstract-classes/barsa-api';\r\nimport { BaseComponent } from '../abstract-classes/base.component';\r\nimport {\r\n    DeviceWidth,\r\n    FindLayoutSettingFromLayout94,\r\n    getDeviceIsMobile,\r\n    getHeaderValue,\r\n    getDeviceIsTablet\r\n} from '../constants';\r\n\r\nexport class FormPanelService extends BaseComponent {\r\n    context$: Observable<any>;\r\n    searchPanelIsObject$: Observable<boolean>;\r\n    isSearchPanel$: Observable<boolean>;\r\n    isSearcPanelInSideContent$: Observable<boolean>;\r\n    workflowPanelUi$: Observable<any>;\r\n    mo$: Observable<MetaobjectDataModel>;\r\n    view$: Observable<any>;\r\n    toolbarItems$: Observable<any[]>;\r\n    workflowButtons$: Observable<any[]>;\r\n    maxContentWidth$: Observable<string>;\r\n    wizardNextStep$: Observable<void>;\r\n    wizardPreviousStep$: Observable<void>;\r\n    layout$: Observable<any>;\r\n    forceClose$: Observable<void>;\r\n    groupLayout$: Observable<LayoutSetting>;\r\n    isSimpleForm$: Observable<boolean>;\r\n    formWidth$: Observable<string>;\r\n    toolbarVisible$: Observable<boolean>;\r\n    headerLayout$: Observable<IHeaderLayout>;\r\n    _hideClose$ = new BehaviorSubject<boolean>(false);\r\n    _hideTitle$ = new BehaviorSubject<boolean>(false);\r\n    _hidePin$ = new BehaviorSubject<boolean>(false);\r\n    title$: Observable<string>;\r\n    headerDescription$: Observable<string>;\r\n    headerRemoveContentPadding$: Observable<boolean>;\r\n    headerSubtitle$: Observable<string>;\r\n    avatar$: Observable<any>;\r\n    circleAvatar$: Observable<boolean>;\r\n    mask$: Observable<boolean>;\r\n    formHeight$: Observable<number>;\r\n    fieldDict$: Observable<{ [key: string]: string } | undefined>;\r\n    formContainerDom: HTMLElement;\r\n    ColonInLabel = true;\r\n    private _context;\r\n    private _contextSource = new BehaviorSubject<any>(null);\r\n    private _formHeightSource = new BehaviorSubject<number>(0);\r\n    private _searchPanelIsObjectSource = new BehaviorSubject<boolean>(false);\r\n    private _isSearchPanelSource = new BehaviorSubject<boolean>(false);\r\n    private _isSearcPanelInSideContent = new BehaviorSubject<boolean>(false);\r\n    private _workflowPanelUiSource = new BehaviorSubject<any>(null);\r\n    private _infobars$ = new BehaviorSubject<Array<InfoBarType>>([]);\r\n    private _moSource = new BehaviorSubject<any>(null);\r\n    private _viewSource = new BehaviorSubject<any>(null);\r\n    private _sidebarState$ = new BehaviorSubject<'close' | 'open'>('close');\r\n    private _toolbarItemsSource = new BehaviorSubject<any[]>([]);\r\n    private _titleSource = new BehaviorSubject<string>('');\r\n    private _maxContentWidthSource = new BehaviorSubject<string>('auto');\r\n    private _wizardNextStepSource = new Subject<void>();\r\n    private _wizardPreviousStepSource = new Subject<void>();\r\n    private _layoutSource = new BehaviorSubject<any>(null);\r\n    private _forceCloseSource = new Subject<void>();\r\n    private _groupBRuleSource = new Subject<LayoutSetting>();\r\n    private _isSimpleFormSource = new BehaviorSubject<boolean>(false);\r\n    private _formWidthSource = new BehaviorSubject<string>('100%');\r\n    private _toolbarVisibleSource = new BehaviorSubject<boolean>(true);\r\n    private _headerLayoutSource = new BehaviorSubject<any>(null);\r\n    private _headerTitleSource = new BehaviorSubject<string>('');\r\n    private _maskSource = new BehaviorSubject<boolean>(false);\r\n    private _headerRemoveContentPaddingSource = new BehaviorSubject<boolean>(false);\r\n    private _hideBreadCrumbSource = new BehaviorSubject<boolean>(false);\r\n    private _headerDescriptionSource = new BehaviorSubject<string>('');\r\n    private _hideFooter$ = new BehaviorSubject<boolean>(false);\r\n    private _canSend$ = new BehaviorSubject<boolean>(false);\r\n\r\n    constructor() {\r\n        super();\r\n        this.context$ = this._contextSource.asObservable().pipe(\r\n            tap((context) => this._prepareContext(context)),\r\n            takeUntil(this._onDestroy$)\r\n        );\r\n\r\n        this.searchPanelIsObject$ = this._searchPanelIsObjectSource.asObservable().pipe(takeUntil(this._onDestroy$));\r\n        this.isSearchPanel$ = this._isSearchPanelSource.asObservable().pipe(takeUntil(this._onDestroy$));\r\n        this.isSearcPanelInSideContent$ = this._isSearcPanelInSideContent\r\n            .asObservable()\r\n            .pipe(takeUntil(this._onDestroy$));\r\n        this.workflowPanelUi$ = this._workflowPanelUiSource.asObservable().pipe(takeUntil(this._onDestroy$));\r\n        this.formHeight$ = this._formHeightSource.asObservable();\r\n        this.mo$ = this._moSource.asObservable().pipe(takeUntil(this._onDestroy$));\r\n        this.fieldDict$ = this.mo$.pipe(\r\n            map((c) => c.$FieldDict),\r\n            takeUntil(this._onDestroy$)\r\n        );\r\n\r\n        this.view$ = this._viewSource.asObservable().pipe(\r\n            tap((view) => this._prepareView(view)),\r\n            takeUntil(this._onDestroy$)\r\n        );\r\n\r\n        this.toolbarItems$ = this._toolbarItemsSource.asObservable().pipe(\r\n            map((items) => this._filterToolbarItems(items)),\r\n            takeUntil(this._onDestroy$)\r\n        );\r\n\r\n        this.workflowButtons$ = this.workflowPanelUi$.pipe(\r\n            map((c) => c?.buttonList || []),\r\n            withLatestFrom(\r\n                this._toolbarItemsSource.asObservable().pipe(\r\n                    map((items) => this._filterToolbarItems(items)),\r\n                    map((items) => items.filter((c) => c.isWorkflow))\r\n                )\r\n            ),\r\n            map(([items1, items2]) => [...items2, ...items1]),\r\n            takeUntil(this._onDestroy$)\r\n        );\r\n\r\n        // this._toolbarItemsSource.asObservable().pipe(\r\n        //     map((items) => this._filterToolbarItems(items)),\r\n        //     map((items) => items.filter((c) => c.isWorkflow)),\r\n        //     withLatestFrom(this.workflowPanelUi$.pipe(map((c) => c?.buttonList || []))),\r\n        //     map(([items1, items2]) => (items1.length > 0 ? items1 : items2)),\r\n        //     takeUntil(this._onDestroy$)\r\n        // );\r\n\r\n        this.maxContentWidth$ = this._maxContentWidthSource.asObservable().pipe(\r\n            map((width) => (width ? width + 'px' : 'auto')),\r\n            takeUntil(this._onDestroy$)\r\n        );\r\n\r\n        this.wizardNextStep$ = this._wizardNextStepSource.asObservable().pipe(takeUntil(this._onDestroy$));\r\n        this.wizardPreviousStep$ = this._wizardPreviousStepSource.asObservable().pipe(takeUntil(this._onDestroy$));\r\n        this.layout$ = this._layoutSource.asObservable().pipe(\r\n            map((layout) => {\r\n                if (!layout) {\r\n                    return layout;\r\n                }\r\n                const deviceWidth = DeviceWidth();\r\n                if (deviceWidth < layout.Bounds.width) {\r\n                    layout.Bounds.width = deviceWidth;\r\n                }\r\n                return { ...layout };\r\n            }),\r\n            takeUntil(this._onDestroy$)\r\n        );\r\n\r\n        this.forceClose$ = this._forceCloseSource.asObservable().pipe(takeUntil(this._onDestroy$));\r\n\r\n        this.groupLayout$ = this._groupBRuleSource.asObservable().pipe(takeUntil(this._onDestroy$));\r\n\r\n        this.isSimpleForm$ = this._isSimpleFormSource.asObservable().pipe(takeUntil(this._onDestroy$));\r\n\r\n        this.formWidth$ = this._formWidthSource.asObservable().pipe(takeUntil(this._onDestroy$));\r\n\r\n        this.toolbarVisible$ = this._toolbarVisibleSource.asObservable().pipe(takeUntil(this._onDestroy$));\r\n        this.title$ = combineLatest([this._headerTitleSource.asObservable(), this._titleSource.asObservable()]).pipe(\r\n            map(([headerTitle, title]) => (headerTitle ? headerTitle : title)),\r\n            takeUntil(this._onDestroy$)\r\n        );\r\n        this.headerLayout$ = this._headerLayoutSource.asObservable().pipe(\r\n            filter((headerLayout) => !!headerLayout),\r\n            tap((headerLayout) => this._headerTitleSource.next(getHeaderValue(headerLayout?.Title))),\r\n            tap((headerLayout) => this._hideClose$.next(headerLayout?.HideClose)),\r\n            tap((headerLayout) => this._hideTitle$.next(headerLayout?.HideTitle)),\r\n            tap((headerLayout) => this._hidePin$.next(headerLayout?.HidePin)),\r\n            tap((headerLayout) => this._headerDescriptionSource.next(getHeaderValue(headerLayout?.Description))),\r\n            tap((headerLayout) =>\r\n                this._headerRemoveContentPaddingSource.next(getHeaderValue(headerLayout?.RemoveContentPadding))\r\n            ),\r\n            tap((headerLayout) => this._hideBreadCrumbSource.next(getHeaderValue(headerLayout?.HideBreadCrumb))),\r\n            takeUntil(this._onDestroy$)\r\n        );\r\n\r\n        this.headerDescription$ = this._headerDescriptionSource.asObservable().pipe(takeUntil(this._onDestroy$));\r\n\r\n        this.headerRemoveContentPadding$ = this._headerRemoveContentPaddingSource\r\n            .asObservable()\r\n            .pipe(delay(0), takeUntil(this._onDestroy$));\r\n\r\n        this.headerSubtitle$ = this.headerLayout$.pipe(\r\n            map((headerLayout) => getHeaderValue(headerLayout?.SubTitle)),\r\n            takeUntil(this._onDestroy$)\r\n        );\r\n\r\n        this.avatar$ = this.headerLayout$.pipe(\r\n            map((headerLayout) => getHeaderValue(headerLayout?.Avatar, true)),\r\n            takeUntil(this._onDestroy$)\r\n        );\r\n\r\n        this.circleAvatar$ = this.headerLayout$.pipe(\r\n            map((headerLayout) => getHeaderValue(headerLayout?.CircleAvatar)),\r\n            takeUntil(this._onDestroy$)\r\n        );\r\n        this.mask$ = this._maskSource.asObservable().pipe(debounceTime(200), takeUntil(this._onDestroy$));\r\n    }\r\n    get infobars$(): Observable<Array<InfoBarType>> {\r\n        return this._infobars$.asObservable().pipe(distinctUntilChanged());\r\n    }\r\n    get hideFooter$(): Observable<boolean> {\r\n        return this._hideFooter$.asObservable().pipe(distinctUntilChanged());\r\n    }\r\n    get sidebarState$(): Observable<'open' | 'close'> {\r\n        return this._sidebarState$.asObservable();\r\n    }\r\n    get hideBreadCrumb$(): Observable<boolean> {\r\n        return this._hideBreadCrumbSource.asObservable();\r\n    }\r\n    get hidePin$(): Observable<boolean> {\r\n        return this._hidePin$.asObservable();\r\n    }\r\n    get hideClose$(): Observable<boolean> {\r\n        return this._hideClose$.asObservable();\r\n    }\r\n    get hideTitle$(): Observable<boolean> {\r\n        return this._hideTitle$.asObservable();\r\n    }\r\n    get canSend$(): Observable<boolean> {\r\n        return this._canSend$.asObservable();\r\n    }\r\n    get mo(): MetaobjectDataModel {\r\n        return this._moSource.getValue();\r\n    }\r\n    set context(val: any) {\r\n        if (this._context) {\r\n            this.destroy();\r\n        }\r\n        this._contextSource.next(val);\r\n    }\r\n    hideFooter(hideFooter: boolean): void {\r\n        this._hideFooter$.next(hideFooter);\r\n    }\r\n    setFormHeight(val: number): void {\r\n        this._formHeightSource.next(val);\r\n    }\r\n    destroy(): void {\r\n        if (!this._context) {\r\n            return;\r\n        }\r\n        this._context.un('CloseSideNavigator', this._closeSideNavigator);\r\n        this._context.un('GroupBRuleChanged', this._groupBRuleChanged);\r\n        this._context.un('TitleChanged', this._titleChanged);\r\n        this._context.un('WizardNextStep', this._wizardNextStep);\r\n        this._context.un('WizardPreviousStep', this._wizardPreviousStep);\r\n        this._context.un('DoLayout', this._doLayout);\r\n        this._context.un('MaskChanged', this._maskChanged);\r\n        this._context.un('ForceClose', this._forceClose);\r\n        this._context.toolbar.un('ToolbarItemsChanged', this._toolbarItemsChanged);\r\n        this._context = null;\r\n        this._layoutSource.next(null);\r\n        // this._onDestroy$.next();\r\n    }\r\n\r\n    toolbarClick(btn): void {\r\n        btn.handler(btn, this._context);\r\n    }\r\n    wfChoice(btn): void {\r\n        this._context.fireEvent('TransitionSelect', this._context, btn);\r\n    }\r\n    changeSidebarState(state: 'open' | 'close'): void {\r\n        this._sidebarState$.next(state);\r\n    }\r\n    hideInfoBar(id): void {\r\n        const x = this._infobars$.getValue();\r\n        const t = x.filter((c) => c.id !== id);\r\n        this._infobars$.next(t);\r\n    }\r\n    protected _initialize(context: any): void {\r\n        this._workflowPanelUiSource.next(context?.WorkflowPanelUi);\r\n        this._isSearchPanelSource.next(context?.Setting?.IsSearchPanel);\r\n        this._isSearcPanelInSideContent.next(context?.Setting?.IsSearcPanelInSideContent);\r\n        this._canSend$.next(context?.Setting?.CanSend);\r\n        this._searchPanelIsObjectSource.next(context?.Setting?.ParameterTypeIsObject);\r\n        this._moSource.next(context?.Mo);\r\n        this._viewSource.next(context?.Setting?.View);\r\n        this._toolbarItemsSource.next(context?.toolbar?.items);\r\n        if (context?.toolbar) {\r\n            context.toolbar.on({\r\n                ToolbarItemsChanged: this._toolbarItemsChanged.bind(this)\r\n            });\r\n        }\r\n        this._titleSource?.next(context?.title);\r\n        this._toolbarVisibleSource.next(this._getToolbarVisibility(context));\r\n    }\r\n\r\n    protected _prepareView(view): void {\r\n        this._layoutSource.next(view?.Layout94);\r\n        this._prepareLayoutComponent(view);\r\n        this._maxContentWidthSource.next(this._getMaxContentWidth(view));\r\n        this._isSimpleFormSource.next(this._getIsSimpleForm(view));\r\n        this._headerLayoutSource.next(this._getHeaderLayout(view));\r\n        if (view) {\r\n            this.ColonInLabel = view.ColonInLabel !== false;\r\n        }\r\n        this._formWidthSource.next(view?.inDialog ? view.Layout94.Bounds.width + 'px' : '100%');\r\n    }\r\n    protected _filterToolbarItems(items: Array<any>): Array<any> {\r\n        if (!items) {\r\n            return [];\r\n        }\r\n        // در صورتی که در موبایل باشد دو دکمه نمایش داده شود از دکمه های کاربر و فرآیندی\r\n        // در صورتی که دکمه ی وجود نداشت فقط دکمه ذخیره نمایش داده شود\r\n        // در حالتهای دیگر ابتدا دکمه های کاربری و فرآیندی و بعد دکمه های تعریف شده سیستم نمایش داده میشود.\r\n        const isMobile = getDeviceIsMobile();\r\n        const isTablet = getDeviceIsTablet();\r\n        let newItems = items.filter(\r\n            (c) =>\r\n                !c.hidden &&\r\n                !(\r\n                    (isMobile || isTablet || BarsaApi.LoginFormData.IsServiceDesk) &&\r\n                    (c.itemId === 'Next' ||\r\n                        c.itemId === 'Previous' ||\r\n                        c.itemId === 'MoveNext' ||\r\n                        c.itemId === 'MovePrev' ||\r\n                        c.itemId === 'MovePrevious')\r\n                )\r\n        );\r\n\r\n        newItems.sort((c, d): number => (Number(c?.Data?.TabOrderNumber) < Number(d?.Data?.TabOrderNumber) ? 1 : -1));\r\n        const nonStringItems = newItems.filter((c) => typeof c !== 'string');\r\n\r\n        const t = nonStringItems.find((c) => !c.isBuiltin && !c.IAmMenu);\r\n        if (t) {\r\n            t.priority = 'high';\r\n        }\r\n        // let nonBuiltinCount = 0;\r\n        // nonStringItems.forEach((item) => {\r\n        //     if (typeof item === 'string') {\r\n        //         return;\r\n        //     }\r\n        //     const inFooter = BarsaApi.Common.Util.TryGetValue(item, 'Data.CustomUi.Parameters.InFooter', false);\r\n        //     if (item.isBuiltin || inFooter) {\r\n        //         // سیستمی\r\n        //         item.priority = 'always';\r\n        //     } else {\r\n        //         if (nonBuiltinCount > 1) {\r\n        //             // دکمه های کاربری که بیشتر از دو هستند\r\n        //             item.priority = 'low';\r\n        //         } else {\r\n        //             item.priority = 'low';\r\n        //         }\r\n        //         nonBuiltinCount++;\r\n        //     }\r\n        // });\r\n        const noBuiltinItems = nonStringItems.filter(\r\n            (c) =>\r\n                typeof c === 'object' &&\r\n                !c.isBuiltin &&\r\n                BarsaApi.Common.Util.TryGetValue(c, 'Data.CustomUi.Parameters.InFooter', false) !== true\r\n        );\r\n        noBuiltinItems.forEach((item, index) => {\r\n            index === 0 ? (item.priority = 'hight') : (item.priority = 'low');\r\n        });\r\n        const nonBuiltinCount = noBuiltinItems.length;\r\n        if (nonBuiltinCount === 0) {\r\n            // اگر هیچ دکمه کاربری وجود نداشت\r\n            nonStringItems.forEach((item, _) => {\r\n                if (item.itemId === 'Save') {\r\n                    item.priority = 'never';\r\n                }\r\n            });\r\n        }\r\n        const saveAndNew = newItems.find((c) => c.itemId === 'SaveAndNew');\r\n        const saveAndClose = newItems.find((c) => c.itemId === 'SaveAndClose');\r\n        if (saveAndClose && saveAndClose.menu) {\r\n            const save = saveAndClose.menu.items[0];\r\n            if (save) {\r\n                save.isBuiltin = true;\r\n                save.priority = nonBuiltinCount === 0 ? 'never' : 'always';\r\n\r\n                newItems.push(save);\r\n                if (saveAndNew) {\r\n                    save.IAmMenu = true;\r\n                    save.menu = { items: [{ ...saveAndNew }] };\r\n                    newItems = newItems.filter((c) => c.itemId !== 'SaveAndNew');\r\n                }\r\n            }\r\n        }\r\n        newItems.forEach((item) => {\r\n            if (item.menu) {\r\n                item.menu.items = item.menu.items.filter((c) => !c.hidden);\r\n            }\r\n        });\r\n        const builtinsButtons = newItems.filter((c) => c?.isBuiltin);\r\n        newItems = [\r\n            ...builtinsButtons,\r\n            ...newItems.filter((c) => !c?.isBuiltin && !c?.isWorkflow),\r\n            ...newItems.filter((c) => c?.isWorkflow)\r\n        ];\r\n        const moveNextIndex = newItems.findIndex((c) => c.itemId === 'MoveNext');\r\n        if (moveNextIndex > -1) {\r\n            newItems[moveNextIndex].priority = 'always';\r\n            const mos = newItems.splice(moveNextIndex - 1, 2);\r\n            newItems = [...mos, ...newItems];\r\n        }\r\n        const movePrevIndex = newItems.findIndex((c) => c.itemId === 'MovePrev');\r\n        if (movePrevIndex > -1) {\r\n            newItems[movePrevIndex].priority = 'always';\r\n        }\r\n        // check toolbaritems in footer property\r\n        newItems.forEach((c) => {\r\n            const inFooter = BarsaApi.Common.Util.TryGetValue(c, 'Data.CustomUi.Parameters.InFooter', false);\r\n            if (inFooter) {\r\n                c.inFooter = true;\r\n            }\r\n        });\r\n\r\n        return newItems.reverse();\r\n        // return newItems.sort((a): number => (typeof a == 'string' ? 0 : a.IAmMenu ? 1 : -1));\r\n    }\r\n    protected _getHeaderLayout(view): IHeaderLayout {\r\n        const headerLayout = BarsaApi.Common.Util.TryGetValue(view, 'HeaderLayout', null);\r\n\r\n        if (headerLayout) {\r\n            // this.setHeaderTitleAndSubtitleAndAvatar(headerLayout);\r\n            const t: any[] = [];\r\n            headerLayout.FacetList.MoDataList.forEach((facetColumn) => {\r\n                t.push({\r\n                    type: facetColumn.ColumnSettings.$FormPanelSetting.Data.Mo.Type,\r\n                    mo: facetColumn.ColumnSettings.$FormPanelSetting.Data.Mo\r\n                });\r\n            });\r\n            headerLayout.FacetList2 = t;\r\n        }\r\n        return headerLayout;\r\n    }\r\n    protected _prepareLayoutComponent(view: FormViewSetting): void {\r\n        if (!view) {\r\n            return;\r\n        }\r\n        const layoutComponents = BarsaApi.Common.Util.TryGetValue(view, 'ExtraJsonProp.Components', null);\r\n        if (!layoutComponents) {\r\n            return;\r\n        }\r\n        if (!Array.isArray(layoutComponents)) {\r\n            return;\r\n        }\r\n        layoutComponents.forEach((layoutComponent) => {\r\n            const layoutSetting = FindLayoutSettingFromLayout94(view.Layout94, layoutComponent.LayoutTitle);\r\n            if (layoutSetting == null) {\r\n                return;\r\n            }\r\n            layoutSetting.component = { ...layoutComponent };\r\n        });\r\n    }\r\n    protected _getIsSimpleForm(view: FormViewSetting): boolean {\r\n        const isSimple = BarsaApi.Common.Util.TryGetValue(view, 'ExtraJsonProp.IsSimple', false);\r\n        return isSimple;\r\n    }\r\n    protected _getToolbarVisibility(context): boolean {\r\n        if (!context) {\r\n            return false;\r\n        }\r\n        const hideToolbar = BarsaApi.Common.Util.TryGetValue(context, 'toolbar.hideToolbar', false);\r\n        if (hideToolbar) {\r\n            return false;\r\n        }\r\n        const { FormSettings } = context.Setting.View;\r\n        if (FormSettings) {\r\n            const showToolbar = FormSettings.ShowToolbar === false ? false : true;\r\n            const featureToolbar = BarsaApi.Common.Util.TryGetValue(context, 'Features.Toolbar', false);\r\n\r\n            const visible = (featureToolbar && showToolbar) !== false;\r\n            return visible;\r\n        }\r\n        return true;\r\n    }\r\n    protected _getMaxContentWidth(view): string {\r\n        const maxContentWidth = BarsaApi.Common.Util.TryGetValue(view, 'ExtraJsonProp.MaxWidth', '0');\r\n        return maxContentWidth;\r\n    }\r\n    protected _addListener(context): void {\r\n        if (!context) {\r\n            return;\r\n        }\r\n        context.on({\r\n            CloseSideNavigator: this._closeSideNavigator.bind(this),\r\n            GroupBRuleChanged: this._groupBRuleChanged.bind(this),\r\n            TitleChanged: this._titleChanged.bind(this),\r\n            WizardNextStep: this._wizardNextStep.bind(this),\r\n            WizardPreviousStep: this._wizardPreviousStep.bind(this),\r\n            DoLayout: this._doLayout.bind(this),\r\n            MaskChanged: this._maskChanged.bind(this),\r\n            ForceClose: this._forceClose.bind(this),\r\n            Refresh: this._refresh.bind(this),\r\n            ShowInfoBar: this._showInfobar.bind(this),\r\n            HideInfoBar: this.hideInfoBar.bind(this)\r\n        });\r\n        context.toolbar.on({\r\n            ToolbarItemsChanged: this._toolbarItemsChanged.bind(this)\r\n        });\r\n    }\r\n\r\n    protected _showInfobar(id, text, type, buttons, handler, icon): void {\r\n        const x = this._infobars$.getValue();\r\n        this._infobars$.next([\r\n            ...x,\r\n            {\r\n                id,\r\n                text,\r\n                type,\r\n                buttons,\r\n                handler,\r\n                icon: !icon ? `/assets/Images/InfoBar/${type}_24.png` : icon\r\n            }\r\n        ]);\r\n    }\r\n    protected _refresh(): void {\r\n        this._initialize(this._context);\r\n        // this._prepareView(this._context.Setting.View);\r\n    }\r\n    protected _forceClose(): void {\r\n        this._forceCloseSource.next();\r\n    }\r\n    protected _maskChanged(mask): void {\r\n        this._maskSource.next(mask);\r\n    }\r\n    protected _toolbarItemsChanged(items): void {\r\n        this._toolbarItemsSource.next(items);\r\n    }\r\n    protected _titleChanged(title): void {\r\n        this._titleSource.next(title);\r\n    }\r\n    protected _wizardNextStep(): void {\r\n        this._wizardNextStepSource.next();\r\n    }\r\n    protected _wizardPreviousStep(): void {\r\n        this._wizardPreviousStepSource.next();\r\n    }\r\n    protected _doLayout(context): void {\r\n        const view = context.Setting.View;\r\n        this._viewSource.next(view);\r\n    }\r\n    protected _closeSideNavigator(): void {\r\n        this._sidebarState$.next('close');\r\n    }\r\n    protected _groupBRuleChanged(groupItem: LayoutSetting): void {\r\n        this._groupBRuleSource.next(groupItem);\r\n    }\r\n    protected _prepareContext(context): void {\r\n        this._addListener(context);\r\n        this._initialize(context);\r\n        this._context = context;\r\n    }\r\n}\r\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 { inject, Injectable, OnDestroy, ViewContainerRef, ViewRef, ElementRef } from '@angular/core';\r\nimport { ActivatedRoute } from '@angular/router';\r\n@Injectable()\r\nexport class ContainerService implements OnDestroy {\r\n    public oldActiveSystem: any | null = null;\r\n    public detachParent = true;\r\n\r\n\r\n    protected _activatedRoute = inject(ActivatedRoute);\r\n    private _parentService = inject(ContainerService, { skipSelf: true, optional: true });\r\n    private _viewContainerRef: ViewContainerRef;\r\n    private _viewRef: ViewRef | null;\r\n    private _scrollTop: number | undefined = 0;\r\n    private _elDomScrollbar: any;\r\n    private _el = inject(ElementRef);\r\n    /** Inserted by Angular inject() migration for backwards compatibility */\r\n\r\n    constructor() {\r\n        // console.log(this);\r\n    }\r\n    ngOnDestroy(): void {\r\n        if (this._parentService && this.detachParent) {\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 && this.detachParent) {\r\n            this._parentService.detach();\r\n        }\r\n    }\r\n    private detach(): void {\r\n        this._setScrollPosition();\r\n        this._viewRef = this._viewContainerRef.detach();\r\n    }\r\n   private _setScrollPosition(): void {\r\n        const elDom = this._el.nativeElement;\r\n        if (elDom) {\r\n            const x1 = elDom.querySelector('fd-dynamic-page-content');\r\n            const x2 = elDom.querySelector('.fd-scrollbar[fd-scrollbar]');\r\n            const scrollTopPage = x1?.scrollTop;\r\n            const scrollTopScrollbar = x2?.scrollTop;\r\n            if (scrollTopPage && scrollTopPage > 0) {\r\n                this._scrollTop = scrollTopPage;\r\n                this._elDomScrollbar = x1;\r\n            } else if (scrollTopScrollbar && scrollTopScrollbar > 0) {\r\n                this._scrollTop = scrollTopScrollbar;\r\n                this._elDomScrollbar = x2;\r\n            }\r\n        }\r\n    }\r\n   private _restoreScrollPostion(): void {\r\n        if (this._scrollTop && this._scrollTop > 0) {\r\n            if (this._elDomScrollbar) {\r\n                this._elDomScrollbar.scrollTop = this._scrollTop;\r\n            }\r\n        }\r\n    }\r\n    private insert(): void {\r\n        if (this._viewRef) {\r\n            this._viewContainerRef.insert(this._viewRef);\r\n            this._restoreScrollPostion();\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, inject } from '@angular/core';\r\nimport { ActivatedRouteSnapshot } 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 {\r\n    private portalService = inject(PortalService);\r\n\r\n    /** Inserted by Angular inject() migration for backwards compatibility */\r\n    \r\n\r\n    constructor() {}\r\n\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, inject } from '@angular/core';\r\nimport { ActivatedRouteSnapshot, CanActivate, Router, UrlTree } from '@angular/router';\r\nimport { Observable } from 'rxjs';\r\nimport { map, tap, withLatestFrom } from 'rxjs/operators';\r\n\r\nimport { BarsaApi } from './abstract-classes/barsa-api';\r\nimport { PortalService } from './services/portal.service';\r\n\r\n@Injectable()\r\nexport class AuthGuard implements CanActivate {\r\n    protected portalService = inject(PortalService);\r\n    private router = inject(Router);\r\n\r\n    canActivate(\r\n        activatedRouteSnapshot: ActivatedRouteSnapshot\r\n\r\n        //    state: RouterStateSnapshot\r\n    ): Observable<boolean | UrlTree> | Promise<boolean | UrlTree> | boolean | UrlTree {\r\n        const url = decodeURI((activatedRouteSnapshot as any)._routerState.url);\r\n        let url2 = url.split('/').find((c) => c && !c.startsWith('(')) ?? '';\r\n        url2 = '/' + url2;\r\n        return this.portalService.getPageData(url2, false).pipe(\r\n            map((pageData) => {\r\n                const pageNeedAuthorize = pageData?.HasAuthorize || pageData == null ? true : false;\r\n                const hasAuthorized: boolean =\r\n                    (!BarsaApi.LoginFormData.IsAnonymous && BarsaApi.LoginFormData.IsUserLoggedIn) ||\r\n                    !pageNeedAuthorize;\r\n                return { hasAuthorized, pageData };\r\n            }),\r\n            withLatestFrom(this.portalService.loginRoute$),\r\n            tap(([pageInfo, loginRoute]) => {\r\n                if (!pageInfo.hasAuthorized) {\r\n                    this.router.navigate([loginRoute]);\r\n                }\r\n            }),\r\n            tap(([pageInfo, _]) => {\r\n                if (pageInfo.hasAuthorized) {\r\n                    const needChangePassword = BarsaApi.Ul.ApplicationCtrlr.AdvancedSecurityLogin?.NeedChangePassword;\r\n                    const changepasswordRoute =\r\n                        pageInfo.pageData?.ChildPageList.MoDataList.find(\r\n                            (c) => c.IsChangePasswordRoute || c.IsChangePasswordRoute === 'True'\r\n                        )?.Route || 'changepassword';\r\n                    const path = activatedRouteSnapshot.routeConfig?.path;\r\n                    if (\r\n                        changepasswordRoute &&\r\n                        path &&\r\n                        path?.indexOf(changepasswordRoute.replace('/', '')) < 0 &&\r\n                        needChangePassword &&\r\n                        !BarsaApi.LoginFormData.IsAnonymous\r\n                    ) {\r\n                        this.router.navigate([changepasswordRoute]);\r\n                    }\r\n                }\r\n            }),\r\n            map(([pageInfo]) => pageInfo.hasAuthorized)\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 { 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 { DOCUMENT, inject, Injectable, signal } from '@angular/core';\r\nimport { BehaviorSubject, Observable } from 'rxjs';\r\nimport { LogService } from './log.service';\r\nimport { AppMenu, CustomApplicationMenuBodyUi, CustomApplicationUi, CustomSystemUi } from '../abstract-classes/models';\r\nimport { BarsaApi } from '../abstract-classes/barsa-api';\r\n\r\n@Injectable({\r\n    providedIn: 'root'\r\n})\r\nexport class ApplicationCtrlrService {\r\n    sidebarToggle = signal(false);\r\n    private _appMenuItems$ = new BehaviorSubject<Array<AppMenu>>([]);\r\n    private _systemsUi$ = new BehaviorSubject<Array<CustomSystemUi>>([]);\r\n    private _selectedSystem$ = new BehaviorSubject<CustomSystemUi | null>(null);\r\n    private _customApplicationUi: CustomApplicationUi;\r\n    private _customApplicationMenuBodyUi: CustomApplicationMenuBodyUi;\r\n    private _log = inject(LogService);\r\n    private _document = inject(DOCUMENT);\r\n    get appMenuItems$(): Observable<AppMenu[]> {\r\n        return this._appMenuItems$.asObservable();\r\n    }\r\n    get selectedSystem$(): Observable<CustomSystemUi | null> {\r\n        return this._selectedSystem$.asObservable();\r\n    }\r\n    initialize(callback): void {\r\n        BarsaApi.Ul.ApplicationCtrlr.Initialize(() => {\r\n            this._handleEvents();\r\n            callback && callback();\r\n        });\r\n        this._document.documentElement.setAttribute('data-layout', 'vertical');\r\n    }\r\n    systemChange(appMenuItem: AppMenu): void {\r\n        this._customApplicationMenuBodyUi.fireEvent(\r\n            'SelectedSystemChanged',\r\n            this._customApplicationMenuBodyUi,\r\n            appMenuItem.SystemData\r\n        );\r\n    }\r\n    sidebarToggled(sidebarToggle: boolean): void {\r\n        this.sidebarToggle.set(sidebarToggle);\r\n        if (sidebarToggle) {\r\n            // [data-layout=vertical] [data-sidebartype=mini-sidebar]\r\n            this._document.body.removeAttribute('data-sidebartype');\r\n        } else {\r\n            this._document.body.setAttribute('data-sidebartype', 'mini-sidebar');\r\n        }\r\n    }\r\n    _loadSystem(id, resolve, reject): void {\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    _handleEvents(): void {\r\n        const context: CustomApplicationUi = BarsaApi.Ul.ApplicationCtrlr.Adapter.Control;\r\n        context.on({\r\n            AddSystemUi: this._addSystemUi.bind(this),\r\n            AddToMainTabPanel: this._addToMainTabPanel.bind(this),\r\n            SystemChanged: this._selectedSystemChanged.bind(this),\r\n            SetStatusBarValues: this._setStatusBarValues.bind(this),\r\n            ShowReleaseNoteWindow: this._showReleaseNoteWindow.bind(this)\r\n        });\r\n        const appMenuBodyUi = context._appMenuBody;\r\n        appMenuBodyUi.on({\r\n            ButtonListChanged: this._appMenuBodyUi_itemsChanged.bind(this)\r\n        });\r\n        this._appMenuBodyUi_itemsChanged(appMenuBodyUi.items);\r\n        this._customApplicationUi = context;\r\n        if (context._systemsUi?.length) {\r\n            this._selectedSystemChanged(context._selectedSystemId);\r\n        }\r\n        this._addSystemUi(context._systemsUi);\r\n        this._customApplicationMenuBodyUi = appMenuBodyUi;\r\n    }\r\n    _appMenuBodyUi_itemsChanged(items: AppMenu[]):void {\r\n        this._appMenuItems$.next([...items]);\r\n    }\r\n    _addSystemUi(systemUi): void {\r\n        // this._selectedSystem$.next(systemUi);\r\n        console.log('_addSystemUi', systemUi);\r\n    }\r\n    _addToMainTabPanel(customSystemUi): void {\r\n        console.log('AddToMainTabPanel', customSystemUi);\r\n    }\r\n    _selectedSystemChanged(systemId, forceRelayout = false): void {\r\n        const x = this._customApplicationUi._systemsUi.find((c) => c.SystemData.Id === systemId);\r\n        if (x) {\r\n            this._selectedSystem$.next(x);\r\n        }\r\n        this._log.error('SelectedSystemChanged', systemId, forceRelayout);\r\n    }\r\n    _setStatusBarValues(statusbarValues): void {\r\n        console.log('SetStatusBarValues', statusbarValues);\r\n    }\r\n    _showReleaseNoteWindow(releaseNoteData): void {\r\n        console.log('ShowReleaseNoteWindow', releaseNoteData);\r\n    }\r\n}\r\n","import {\r\n    Compiler,\r\n    ComponentRef,\r\n    Injectable,\r\n    Injector,\r\n    NgModuleFactory,\r\n    Type,\r\n    ViewContainerRef,\r\n    DOCUMENT,\r\n    inject\r\n} from '@angular/core';\r\nimport { Location } from '@angular/common';\r\nimport { ActivatedRoute, NavigationEnd, NavigationStart, Route, Router, Routes } from '@angular/router';\r\nimport { Observable, BehaviorSubject, of, from, forkJoin, fromEvent, Subject, combineLatest } 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    filter\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    UlvParamType\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    nullOrUndefinedString\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\nimport { LocalStorageService } from './local-storage.service';\r\nimport { formRoutes } from '../form-page-routing/constants';\r\nimport { ApplicationCtrlrService } from './application-ctrlr.service';\r\n\r\ndeclare let AjaxHelper: any;\r\ndeclare let AjaxHelper2: 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    imageUrl: string;\r\n    backgroundColor: string;\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>(true);\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    openForm$ = new Subject<void>();\r\n    _isAnonumousSource = new BehaviorSubject<boolean>(true);\r\n    _pushAction$ = new BehaviorSubject<{ notificationTag: string; action: string; moid: string; tpid: string } | null>(\r\n        null\r\n    );\r\n    DefaultPage: PageDataModel | null | undefined;\r\n\r\n    private dcm = inject(DynamicComponentService);\r\n    private apiService = inject(ApiService);\r\n    private _log = inject(LogService);\r\n    private dialogService = inject(BarsaDialogService);\r\n    private compiler = inject(Compiler);\r\n    private _router = inject(Router);\r\n    private _location = inject(Location);\r\n    private _localStorage = inject(LocalStorageService);\r\n    private _document = inject<Document>(DOCUMENT);\r\n    private _applicationCtrlrService = inject(ApplicationCtrlrService);\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<Record<string, MetaobjectDataModel>>({});\r\n    private _cssUrlSource = new BehaviorSubject<SafeResourceUrl | null>(null);\r\n    private _cssVariableUrlSource = 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    private _documentVisibilitychange$ = new Subject<boolean>();\r\n\r\n    constructor() {\r\n        this.initialize();\r\n        this._initLandscape();\r\n        this._initStandalone();\r\n        this._initVisibilityChange();\r\n        this._initPushActions();\r\n    }\r\n    get isRtl(): boolean {\r\n        return this.rtlSource.getValue();\r\n    }\r\n    get userLoggedIn(): boolean {\r\n        return this._loggedInSource.getValue();\r\n    }\r\n    get pushAction$(): Observable<{ notificationTag: string; moid: string; tpid: string; action: string } | null> {\r\n        return this._pushAction$.asObservable().pipe();\r\n    }\r\n    get documentVisibilitychange$(): Observable<boolean> {\r\n        return this._documentVisibilitychange$.asObservable();\r\n    }\r\n    get isStandalone(): boolean {\r\n        return this._standalone$.getValue();\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(100));\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().pipe(distinctUntilChanged());\r\n    }\r\n    get cssVariableUrl$(): Observable<SafeResourceUrl | null> {\r\n        return this._cssVariableUrlSource.asObservable().pipe(distinctUntilChanged());\r\n    }\r\n    get cssCustomUrl$(): Observable<SafeResourceUrl | null> {\r\n        return this._cssCustomUrlSource.asObservable();\r\n    }\r\n    get userPortalSettings(): Record<string, MetaobjectDataModel> {\r\n        return this._userPortalSettings$.getValue();\r\n    }\r\n    get userPortalSettings$(): Observable<Record<string, MetaobjectDataModel>> {\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    setSiteImageUrl(backgroundColor: string, imageUrl: string): void {\r\n        this.imageUrl = imageUrl;\r\n        this.backgroundColor = backgroundColor;\r\n    }\r\n    pushActionNext(pushAction: { notificationTag; moid; tpid; action }): void {\r\n        this._localStorage.setItem('pushAction', JSON.stringify(pushAction));\r\n        this._pushAction$.next(pushAction);\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        const value = this._userPortalSettings$.getValue();\r\n        if (userPortalSettings.$TypeDefName) {\r\n            value[userPortalSettings.$TypeDefName] = userPortalSettings;\r\n            this._userPortalSettings$.next({ ...value });\r\n        }\r\n    }\r\n    setCssUrlTheme(themeUrl: SafeResourceUrl, cssVariableUrl?: SafeResourceUrl): void {\r\n        this._cssUrlSource.next(themeUrl);\r\n        this._cssCustomUrlSource.next(themeUrl);\r\n        if (cssVariableUrl) {\r\n            this._cssVariableUrlSource.next(cssVariableUrl);\r\n        }\r\n    }\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();\r\n        this.portalData$ = this.portalDataSource.asObservable();\r\n        this.rtl$ = this.rtlSource.asObservable();\r\n        this.userLoggedIn$ = this._loggedInSource.asObservable().pipe(\r\n            map((isLoggedIn) => isLoggedIn && BarsaApi.LoginFormData.IsAnonymous === false),\r\n            tap((isloggedIn) => isloggedIn && this._document.body.classList.add('loggedIn'))\r\n        );\r\n        this.dirValue$ = this.rtl$.pipe(map((isRtl) => (isRtl ? 'rtl' : 'ltr')));\r\n        this.routeInitialized$ = this.routeInitializedSource.asObservable().pipe(distinctUntilChanged());\r\n        this._standalone$.asObservable().subscribe((c) => {\r\n            if (c) {\r\n                this._document.body.classList.add('standalone');\r\n            } else {\r\n                this._document.body.classList.add('noStandalone');\r\n            }\r\n        });\r\n\r\n        this._deviceLandscape$.asObservable().subscribe((c) => {\r\n            if (c) {\r\n                this._document.body.classList.add('landscape');\r\n            }\r\n        });\r\n        this._deviceSizeSource.asObservable().subscribe((c) => {\r\n            if (c === 's') {\r\n                this._document.body.classList.add('smalldevice');\r\n            }\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(startWith(null), debounceTime(1000))\r\n            .subscribe((_c) => {\r\n                this._windowResize$.next();\r\n                this._setDeviceSize();\r\n            });\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        if (_ismobile) {\r\n            BarsaApi.Bw.IsMobile = true;\r\n        }\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 && _windoWSize !== 'l' && _windoWSize !== 'xl' && _windoWSize !== 'm') {\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    getComponentType(moduleName: string, componentName: string, selector: string): Type<any> | undefined {\r\n        return this.dcm.getComponentType(selector, componentName, moduleName);\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, componentName, moduleName, parentInjector);\r\n    }\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    ReportExecuteById(reportId: string): Observable<MoForReportModel> {\r\n        const ulvParams = this._getUlvParamsBy('', reportId);\r\n        return from(this._reportExecutePromise(ulvParams));\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 = this._getUlvParamsBy(reportName);\r\n        return this._reportExecutePromise(ulvParams);\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 || pageData.IsDefaultRoute === 'True') {\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._log.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\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        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\r\n        this.dateTextSource.next(BarsaApi.LoginFormData.DateText);\r\n    }\r\n    private _getDefaultPage(c: PageDataModel[]): PageDataModel | null | undefined {\r\n        if (!c || !c.length) {\r\n            return null;\r\n        }\r\n        let x = c.find((c) => c.IsDefaultRoute === 'True');\r\n        if (x) {\r\n            return x;\r\n        }\r\n        let x2: any = null;\r\n        c.forEach((element) => {\r\n            if (x2) {\r\n                return;\r\n            }\r\n            x2 = this._getDefaultPage(element.ChildPageList?.MoDataList);\r\n        });\r\n        return x2;\r\n    }\r\n    private _addPage(routes: Route[], page: PageDataModel): void {\r\n        const portalService = this;\r\n        function traverse(children: Route[], cpage: PageDataModel) {\r\n            const path = cpage.RoutePath;\r\n\r\n            const pageComponent = portalService.getComponentType(\r\n                cpage.Module,\r\n                cpage.ComponentName,\r\n                cpage.ComponentSelector\r\n            );\r\n            const newRoute = {\r\n                path:\r\n                    (cpage.IsDefaultRoute === 'True' && path === '') || (path !== '' && typeof path !== 'undefined')\r\n                        ? path\r\n                        : cpage.Route.replace('/', ''),\r\n                canActivate: cpage.HasAuthorize !== 'True' ? [] : [AuthGuard],\r\n                resolve: { pageData: PortalPageResolver },\r\n                component: pageComponent,\r\n                outlet: cpage.Outlet,\r\n                data: {\r\n                    pageData: {\r\n                        Module: cpage.Module,\r\n                        HasAuthorize: cpage.HasAuthorize === 'True',\r\n                        Route: cpage.Route\r\n                    }\r\n                },\r\n                children: [formRoutes()]\r\n            };\r\n            children.push(newRoute);\r\n            // Recursively process each MetaObjectModel inside MoDataList\r\n            cpage.ChildPageList.MoDataList.forEach((c) => traverse(newRoute.children, c as PortalDataModel));\r\n        }\r\n        traverse(routes, page);\r\n    }\r\n\r\n    public loadPortalDataSync(): void {\r\n        if (BarsaApi.LoginFormData?.error?.userMessage) {\r\n            return;\r\n        }\r\n        const portalSettingStr = BarsaApi.Bw.RunBlMethod('GetPortal', BarsaApi.LoginFormData.PortalId);\r\n        const portalSetting = BarsaApi.Ext.decode(portalSettingStr);\r\n        const portalData: PageDataModel = portalSetting;\r\n        if (portalData) {\r\n            const defaultPage = this._getDefaultPage(portalData.ChildPageList.MoDataList);\r\n            const isdynamicroute = portalData.IsDynamicRoute === 'True';\r\n            this.DefaultPage = defaultPage;\r\n            let configRoute = this._router.config;\r\n\r\n            const removePaged: Route[] = [];\r\n            configRoute.forEach((c, index) => {\r\n                const route = '/' + c.path;\r\n                if (c.path !== '' && portalData.ChildPageList.MoDataList.findIndex((d) => d.Route === route) === -1) {\r\n                    removePaged.push(c);\r\n                }\r\n            });\r\n            const pathToRemove = removePaged.map((d) => d.path);\r\n            configRoute = configRoute.filter((c) => pathToRemove.indexOf(c.path) === -1);\r\n            const newConfigRoutes: Routes = [];\r\n            portalData.ChildPageList.MoDataList.forEach((c) => {\r\n                this._addPage(newConfigRoutes, c);\r\n            });\r\n            if (defaultPage != null) {\r\n                const defaultPageRoute = defaultPage.Route.replace('/', '');\r\n                if (isdynamicroute) {\r\n                    const defaultPath = newConfigRoutes.find((c) => c.path === '');\r\n                    defaultPath && (defaultPath.redirectTo = defaultPageRoute);\r\n                    newConfigRoutes.push({ path: '**', redirectTo: defaultPageRoute });\r\n                } else {\r\n                    const defaultPath = configRoute.find((c) => c.path === '');\r\n                    defaultPath && (defaultPath.redirectTo = defaultPageRoute);\r\n                    configRoute.push({ path: '**', redirectTo: defaultPageRoute });\r\n                }\r\n                // const notFoundPath = configRoute.find((c) => c.path === '**');\r\n                // notFoundPath && (notFoundPath.redirectTo = defaultPage.Route.replace('/', ''));\r\n\r\n                this._router.resetConfig(isdynamicroute ? newConfigRoutes : configRoute);\r\n            }\r\n        }\r\n        this.extractAllPages(portalData as PortalDataModel);\r\n\r\n        this.portalDataSource.next(portalData as PortalDataModel);\r\n\r\n        this.dateTextSource.next(BarsaApi.LoginFormData.DateText);\r\n    }\r\n    public ShowForm(e: { mo: MetaobjectDataModel; nama: string; afterReady?: (e: any) => void }): void {\r\n        BarsaApi.Bw.Form.Show({\r\n            Mo: e.mo,\r\n            MoContext: {\r\n                ViewName: e.nama\r\n            },\r\n            EventHandlers: {\r\n                AfterReady: function (sender, ee) {\r\n                    //do something here\r\n                    e.afterReady?.(ee);\r\n                }\r\n            }\r\n        });\r\n    }\r\n    public get loginRoute$(): Observable<string> {\r\n        return this.portalData$.pipe(\r\n            map((portalData) => {\r\n                const loginPage = portalData?.ChildPageList.MoDataList.find((c) => c.IsLoginRoute === 'True');\r\n                return loginPage?.Route || 'login';\r\n            })\r\n        );\r\n    }\r\n    public RunBlMethodAsync<T>(methodName: string, parameters: any[]): Promise<any> {\r\n        return new Promise((resolve, reject) => {\r\n            BarsaApi.Bw.RunBlMethodAsync({\r\n                Parameters: parameters,\r\n                Method: methodName,\r\n                SuccessFn: (data: T) => {\r\n                    resolve(data);\r\n                },\r\n                FailFn: (err) => {\r\n                    reject(err);\r\n                }\r\n            });\r\n        });\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: {\r\n                Mo: MetaobjectDataModel;\r\n                DynamicCommandId: string;\r\n                ShowFormSetting: { MoId: string; ViewName: string };\r\n            }) => {\r\n                this._removePushAction();\r\n                if (e.DynamicCommandId) {\r\n                    ExecuteDynamicCommand({ Id: e.DynamicCommandId }, e.Mo);\r\n                } else if (e.ShowFormSetting) {\r\n                    const { MoId, ViewName } = e.ShowFormSetting;\r\n                    setTimeout(() => BarsaApi.Bw.Form.Show({ MoId, MoContext: { ViewName } }), 500);\r\n                }\r\n            },\r\n            FailFn: (e) => {\r\n                this._removePushAction();\r\n                this._log.error(e);\r\n            }\r\n        });\r\n    }\r\n    public loadUserPortalSetting(): void {\r\n        if (BarsaApi.LoginFormData?.error?.userMessage) {\r\n            return;\r\n        }\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: '_تنظيمات_پايه_پورتال',\r\n            UsageEnum: 'SystemContainer'\r\n        };\r\n        BarsaApi.Bw.ExecuteReport(\r\n            { ulvParams },\r\n            (result: ReportModel) => {\r\n                const molist = result.Data.MoDataList;\r\n                const userPortalSetting: Record<string, MetaobjectDataModel> = {};\r\n                molist.forEach((mo) => {\r\n                    if (mo.Inheritance && mo.Inheritance.$TypeDefName) {\r\n                        userPortalSetting[mo.Inheritance.$TypeDefName] = mo.Inheritance;\r\n                    }\r\n                });\r\n                this._userPortalSettings$.next(userPortalSetting);\r\n            },\r\n            (err) => {\r\n                this._log.error(err);\r\n            }\r\n        );\r\n        // BarsaApi.Bw.RunBlMethodAsync({\r\n        //     Parameters: [],\r\n        //     Method: 'GetUserPortalSettings',\r\n        //     SuccessFn: (userPortalSetting: MetaobjectDataModel) => {\r\n        //     },\r\n        //     FailFn: (e) => {\r\n        //         this.logService.error(e);\r\n        //     }\r\n        // });\r\n    }\r\n    loadServerStartupData(): Promise<Record<string, any>> {\r\n        return new Promise<Record<string, any>>((resolve, reject) => {\r\n            if (!BarsaApi.Offline.hasInit) {\r\n                BarsaApi.Offline.afterInitCallback = () => {\r\n                    this._loadServerStartupData(resolve, reject);\r\n                };\r\n            } else this._loadServerStartupData(resolve, reject);\r\n        });\r\n    }\r\n    _loadServerStartupData(resolve, reject): void {\r\n        const ajaxHelper = typeof AjaxHelper2 === 'undefined' ? AjaxHelper : AjaxHelper2;\r\n        ajaxHelper.AjaxRequest(\r\n            '/api/base/ServerStartupData',\r\n            {},\r\n            false,\r\n            (response) => {\r\n                let dataText = response.responseText;\r\n                dataText = dataText.replace(/'/g, '\"');\r\n                dataText = BarsaApi.Common.Util.ReplaceArabicCharchter(dataText);\r\n                BarsaApi.LoginForm.PortalInitialize(dataText);\r\n                if (typeof BarsaApi.LoginFormData.IsAnonymous === 'undefined') {\r\n                    if (BarsaApi.LoginFormData?.error?.userMessage) {\r\n                        BarsaApi.Bw.Msg.Error(BarsaApi.LoginFormData?.error?.userMessage);\r\n                    } else {\r\n                        BarsaApi.Bw.Msg.Error('امکان ورود با کاربر پورتال وجود ندارد.');\r\n                    }\r\n                }\r\n\r\n                if (BarsaApi.LoginFormData.IsServiceDesk) {\r\n                    const config = this._router.config;\r\n                    config[0].redirectTo = 'servicedesk';\r\n\r\n                    this._router.resetConfig(config);\r\n                }\r\n                this._initAfterLoginFormData();\r\n                resolve(BarsaApi.LoginFormData);\r\n            },\r\n            () => {\r\n                alert('error in get server startup data.');\r\n                reject('error in get server startup data.');\r\n            },\r\n            null\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> | null,\r\n        isPage: boolean,\r\n        vcr: ViewContainerRef,\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        isModal =\r\n            isModal ||\r\n            BarsaApi.Common.Util.TryGetValue(formpanelCtrlr, 'Setting.View.CustomUi.Parameters.IsModal', 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        this.openForm$.next(); // event emit for other components to know form open\r\n        if (isModal) {\r\n            if (dialogComponent) {\r\n                this.dialogService.showForm(\r\n                    dialogComponent,\r\n                    {\r\n                        ...queryParams,\r\n                        formpanelCtrlr\r\n                    },\r\n                    vcr\r\n                );\r\n            } else {\r\n                this._log.error(nullOrUndefinedString('portelService => dialogComponent'));\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    private _getUlvParamsBy(reportName: string, reportId?: string): UlvParamType {\r\n        return {\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            ReportId: reportId,\r\n            UsageEnum: 'SystemContainer'\r\n        };\r\n    }\r\n\r\n    private _reportExecutePromise(ulvParams: UlvParamType): Promise<MoForReportModel> {\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    public loadSystem(id: number = 0): Promise<PortalDataModel> {\r\n        if (BarsaApi.LoginFormData?.error?.userMessage) {\r\n            return Promise.reject(BarsaApi.LoginFormData?.error?.userMessage);\r\n        }\r\n        if (id === 0) {\r\n            BarsaApi.Ul.ApplicationCtrlr.DefaultSystemId = null;\r\n        }\r\n        return new Promise((resolve, reject) => {\r\n            this._applicationCtrlrService._loadSystem(\r\n                id,\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\r\n    private _removePushAction(): void {\r\n        const pushActionStr = this._localStorage.getItem('pushAction');\r\n        if (pushActionStr) {\r\n            this._localStorage.remove('pushAction');\r\n            const pushAction = JSON.parse(pushActionStr);\r\n            this._pushAction$.next(pushAction);\r\n        }\r\n    }\r\n    private _checkLocalStoragePushAction(): void {\r\n        const pushActionStr = this._localStorage.getItem('pushAction');\r\n        if (pushActionStr) {\r\n            this._localStorage.remove('pushAction');\r\n            const pushAction = JSON.parse(pushActionStr);\r\n            this._pushAction$.next(pushAction);\r\n        }\r\n    }\r\n    private _initAfterLoginFormData(): void {\r\n        this._setRtl(BarsaApi.LoginFormData.IsRtl);\r\n        this._isAnonumousSource.next(BarsaApi.LoginFormData.IsAnonymous);\r\n        this.setUserLoginStatus(BarsaApi.LoginFormData.IsUserLoggedIn);\r\n        this._loggedInSource.next(this._loggedInSource.getValue() && BarsaApi.LoginFormData.IsAnonymous === false);\r\n    }\r\n    private _setRtl(isRtl: boolean) {\r\n        this.rtlSource.next(isRtl);\r\n        this._document.documentElement.setAttribute('dir', isRtl ? 'rtl' : 'ltr');\r\n    }\r\n    private _initVisibilityChange(): void {\r\n        document.addEventListener('visibilitychange', () => {\r\n            if (document.visibilityState === 'visible') {\r\n                this._documentVisibilitychange$.next(false);\r\n            } else {\r\n                this._documentVisibilitychange$.next(true);\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 _initPushActions(): void {\r\n        this._checkLocalStoragePushAction();\r\n        combineLatest([this.userLoggedIn$, this.pushAction$])\r\n            .pipe(\r\n                // withLatestFrom(this._portalService.pushAction$),\r\n                // filter(([userLoggedin, action]) => userLoggedin)\r\n                filter(([userLoggedin, pushAction]) => userLoggedin)\r\n            )\r\n            .subscribe(([userLoggedin, pushAction]) => {\r\n                if (pushAction != null) {\r\n                    if (!pushAction.notificationTag) {\r\n                        if (pushAction.moid && pushAction.tpid && pushAction.action == 'show') {\r\n                            setTimeout(() => BarsaApi.Bw.Form.Show({ MoId: pushAction.moid }), 500);\r\n                        }\r\n                    } else {\r\n                        this.ExecuteNotificationAction(pushAction.notificationTag, pushAction.action);\r\n                    }\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 { Injectable, inject } from '@angular/core';\r\nimport { BehaviorSubject, combineLatest, Observable, of, Subject, Subscription } from 'rxjs';\r\nimport { delay, distinctUntilChanged, filter, map, shareReplay, switchMap, takeUntil, tap } from 'rxjs/operators';\r\nimport {\r\n    BarsaApi,\r\n    MenuItem,\r\n    MetaobjectDataModel,\r\n    PagingSetting,\r\n    SearchPanelSettings,\r\n    GeneralControlInfoModel,\r\n    ColumnInfoType,\r\n    FormSetting,\r\n    ShareButtonsChoiceDef,\r\n    CartableTemplateKey,\r\n    CssBackground,\r\n    ShortCuts\r\n} from '../abstract-classes';\r\nimport {\r\n    executeUlvCommandHandler,\r\n    genrateInlineMoId,\r\n    getControlList,\r\n    GetDefaultMoObjectInfo,\r\n    getNewMoGridEditor\r\n} from '../constants';\r\nimport { BbbTranslatePipe } from '../pipes';\r\nimport { ApiService } from './api.service';\r\n@Injectable()\r\nexport class UlvMainService {\r\n    moDataListSource = new BehaviorSubject<MetaobjectDataModel[]>([]);\r\n    context$: Subscription;\r\n    viewer$: Observable<any>;\r\n    conditionalFormats$: Observable<any>;\r\n    hideToolbar$: Observable<boolean>;\r\n    mask$: Observable<boolean>;\r\n    viwerMask$: Observable<boolean>;\r\n    visible$: Observable<boolean>;\r\n    enable$: Observable<boolean>;\r\n    readonly$: Observable<boolean>;\r\n    menuItems$: Observable<MenuItem[]>;\r\n    title$: Observable<{ text: string; image: string }>;\r\n\r\n    searchPanelUi$: Observable<any>;\r\n    pagingSetting$: Observable<PagingSetting | null>;\r\n    toolbarButtons$: Observable<any[]>;\r\n    destroy$: Observable<void>;\r\n    moDataList$: Observable<MetaobjectDataModel[]>;\r\n    reportId$: Observable<string>;\r\n    allowInlineEdit$: Observable<boolean>;\r\n    inlineEditMode$: Observable<boolean>;\r\n    onlyInlineEdit$: Observable<boolean>;\r\n    context: any;\r\n    openSearchPanelHiddenSettings$: Observable<void>;\r\n    openSearchFilesManage$: Observable<void>;\r\n    searchPanelMoChanged$: Observable<boolean>;\r\n    allSearchPanelSettings$: Observable<SearchPanelSettings[]>;\r\n    layoutInfo$: Observable<any>;\r\n    selectedSearchPanelSettingsId$: Observable<string>;\r\n    selectedSearchPanelSettings$: Observable<SearchPanelSettings | undefined>;\r\n    newInlineEditMo$: Observable<MetaobjectDataModel | null>;\r\n    _cartableTemplates$ = new BehaviorSubject<{ [key: string]: FormSetting }>({});\r\n    _cartableChildsMo$ = new BehaviorSubject<{ [key: string]: MetaobjectDataModel } | null>({});\r\n    selectedCount$: Observable<number>;\r\n    hideUlvPageTitle$: Observable<boolean>;\r\n    uiViewerSelector$: Observable<string>;\r\n\r\n    private _bbbPipe = inject(BbbTranslatePipe);\r\n    private _apiService = inject(ApiService);\r\n    private _setUiViewerSelector$ = new Subject<string>();\r\n    private _gridFreeColumnSizing$ = new BehaviorSubject<boolean>(false);\r\n    private _layoutInfoSource = new Subject<any>();\r\n    private _contextSource = new Subject<any>();\r\n    private _canSaveGridSetting$ = new BehaviorSubject<boolean>(false);\r\n    private _inDialog$ = new BehaviorSubject<boolean>(false);\r\n    private _isMultiSelect$ = new BehaviorSubject<boolean>(false);\r\n    private _fullscreen$ = new BehaviorSubject<boolean>(false);\r\n    private _conditionalFormatsSource = new BehaviorSubject<any[]>([]);\r\n    private _reportSource = new BehaviorSubject<any>(null);\r\n    private _viewerControlSource = new BehaviorSubject<any>(null);\r\n    private _hideToolbarSource = new BehaviorSubject<boolean>(true);\r\n    private _onDestroy$ = new Subject<void>();\r\n    private _maskSource = new BehaviorSubject<boolean>(false);\r\n    private _showContextMenuSource = new Subject<void>();\r\n    private _viewerMaskSource = new BehaviorSubject<boolean>(false);\r\n    private _visibleSource = new BehaviorSubject<boolean>(true);\r\n    private _enableSource = new BehaviorSubject<boolean>(true);\r\n    private _readonlySource = new BehaviorSubject<boolean>(false);\r\n    private _menuItemsSource = new BehaviorSubject<MenuItem[]>([]);\r\n    private _onlyInlineEditSource = new BehaviorSubject<boolean>(false);\r\n    private _inlineEditModeSource = new BehaviorSubject<boolean>(false);\r\n    private _allowInlineEditSource = new BehaviorSubject<boolean>(false);\r\n    private _cartableKeySeperator = '@';\r\n    private _titleSource = new BehaviorSubject<{ text: string; image: string }>({\r\n        text: '',\r\n        image: ''\r\n    });\r\n    private _hideUlvPageTitle$ = new BehaviorSubject<boolean>(false);\r\n\r\n    private _searchPanelUiSource = new BehaviorSubject<any>(null);\r\n\r\n    private _pagingSettingSource = new BehaviorSubject<PagingSetting | null>(null);\r\n    private _toolbarButtonsSource = new BehaviorSubject<any[]>([]);\r\n    private _toolbarButtonsWorkflowButtons = new BehaviorSubject<any[]>([]);\r\n    private _destroySource = new Subject<void>();\r\n    private _firstApplyAutomatically = true;\r\n    private _controlInfosMetaobject: GeneralControlInfoModel[] = [];\r\n    private _selectedSearchPanelSettingsIdSource = new BehaviorSubject<string>('');\r\n    private _defaultSearchPanelSettingsSource = new Subject<SearchPanelSettings>();\r\n    private _allSearchPanelSettingsSource = new BehaviorSubject<SearchPanelSettings[]>([]);\r\n    private _cssBackgroundSource = new BehaviorSubject<CssBackground | null>(null);\r\n    private _shortCutsSource = new BehaviorSubject<ShortCuts>({});\r\n    private _hidePagingSource = new BehaviorSubject<boolean>(false);\r\n    private _openSearchPanelHiddenSettingsSource = new Subject<void>();\r\n    private _openSearchFilesManageSource = new Subject<void>();\r\n    private _searchPanelMoChangedSource = new BehaviorSubject<boolean>(false);\r\n    private _newInlineEditMoSource = new BehaviorSubject<MetaobjectDataModel | null>(null);\r\n    private _hideSearchapanelSource = new BehaviorSubject<boolean>(false);\r\n    private _workflowShareButtons: ShareButtonsChoiceDef[] = [];\r\n    private _prepareMoForNewForm$ = new Subject<MetaobjectDataModel>();\r\n    /** Inserted by Angular inject() migration for backwards compatibility */\r\n\r\n    constructor() {\r\n        this.context$ = this._contextSource\r\n            .asObservable()\r\n            .pipe(\r\n                takeUntil(this._onDestroy$),\r\n                tap((context) => (this.context = context)),\r\n                tap((context) => this._initialize(context)),\r\n                tap((context) => this._addEventListener(context))\r\n            )\r\n            .subscribe();\r\n        this.newInlineEditMo$ = this._newInlineEditMoSource.asObservable().pipe(takeUntil(this._onDestroy$));\r\n        this.viewer$ = this._viewerControlSource.asObservable().pipe(takeUntil(this._onDestroy$));\r\n        this.conditionalFormats$ = this._conditionalFormatsSource.asObservable().pipe(takeUntil(this._onDestroy$));\r\n        this.hideToolbar$ = this._hideToolbarSource.asObservable().pipe(takeUntil(this._onDestroy$));\r\n        this.mask$ = this._maskSource.asObservable().pipe(takeUntil(this._onDestroy$));\r\n        this.viwerMask$ = this._viewerMaskSource.asObservable().pipe(takeUntil(this._onDestroy$));\r\n        this.visible$ = this._visibleSource.asObservable().pipe(takeUntil(this._onDestroy$));\r\n        this.enable$ = this._enableSource.asObservable().pipe(takeUntil(this._onDestroy$));\r\n        this.readonly$ = this._readonlySource.asObservable().pipe(takeUntil(this._onDestroy$));\r\n        this.hideUlvPageTitle$ = this._hideUlvPageTitle$.asObservable().pipe(takeUntil(this._onDestroy$));\r\n        this.uiViewerSelector$ = this._setUiViewerSelector$.asObservable();\r\n        this.menuItems$ = this._menuItemsSource.asObservable().pipe(\r\n            takeUntil(this._onDestroy$),\r\n            filter((items) => items?.length > 0),\r\n            map((items) => items.filter((c) => c.itemId !== 'ExportToExcel' && c.itemId !== 'Delete'))\r\n        );\r\n        this.title$ = this._titleSource.asObservable().pipe(takeUntil(this._onDestroy$));\r\n\r\n        this.searchPanelUi$ = this._searchPanelUiSource.asObservable().pipe(\r\n            takeUntil(this._onDestroy$),\r\n            tap((searchPanel) => this._addDefaultSearchPanelSettings(searchPanel))\r\n        );\r\n        this.openSearchPanelHiddenSettings$ = this._openSearchPanelHiddenSettingsSource.asObservable();\r\n        this.pagingSetting$ = this._pagingSettingSource.asObservable().pipe(takeUntil(this._onDestroy$));\r\n        this.toolbarButtons$ = combineLatest([\r\n            this._toolbarButtonsWorkflowButtons.asObservable(),\r\n            this._toolbarButtonsSource.asObservable()\r\n        ]).pipe(\r\n            takeUntil(this._onDestroy$),\r\n            map(([wfBtns, c]) =>\r\n                !c\r\n                    ? []\r\n                    : [\r\n                          ...wfBtns,\r\n                          ...c.map((d) => ({\r\n                              ...d,\r\n                              hideText: d.Command?.IsBuiltin && d.itemId !== 'New' ? true : false\r\n                          }))\r\n                      ]\r\n            ),\r\n            map((c) =>\r\n                !c ? [] : [...c.filter((d) => !d.Command?.IsBuiltin), ...c.filter((d) => d.Command?.IsBuiltin)]\r\n            ),\r\n            map((c) =>\r\n                c.reduce((acc, b) => (acc.length > 0 && acc[acc.length - 1]['0'] && b['0'] ? acc : [...acc, b]), [])\r\n            )\r\n        );\r\n        this.destroy$ = this._destroySource.asObservable().pipe(tap(() => this._unscubscribeContext()));\r\n        this.moDataList$ = this.moDataListSource.asObservable().pipe();\r\n        this.selectedCount$ = this.moDataList$.pipe(map((items) => items.filter((d) => d.$IsChecked).length));\r\n        this.reportId$ = this._reportSource.asObservable().pipe(map((report) => report?.Id));\r\n\r\n        this.allowInlineEdit$ = this._allowInlineEditSource.asObservable();\r\n        this.inlineEditMode$ = this._inlineEditModeSource.asObservable();\r\n        this.onlyInlineEdit$ = this._onlyInlineEditSource.asObservable();\r\n        this.openSearchFilesManage$ = this._openSearchFilesManageSource.asObservable();\r\n        this.searchPanelMoChanged$ = this._searchPanelMoChangedSource.asObservable().pipe(distinctUntilChanged());\r\n        this.layoutInfo$ = this._layoutInfoSource.asObservable().pipe(shareReplay(1));\r\n        this.allSearchPanelSettings$ = combineLatest([\r\n            this._allSearchPanelSettingsSource.asObservable(),\r\n            this._defaultSearchPanelSettingsSource.asObservable()\r\n        ]).pipe(\r\n            map(([allSettings, defaultSettings]) => {\r\n                if (defaultSettings && allSettings) {\r\n                    defaultSettings.IsDefault = !allSettings.some((c) => c.IsDefault);\r\n                    allSettings = [defaultSettings, ...allSettings];\r\n                }\r\n                return allSettings;\r\n            }),\r\n            delay(0),\r\n            shareReplay(1)\r\n        );\r\n        this.selectedSearchPanelSettingsId$ = this._selectedSearchPanelSettingsIdSource\r\n            .asObservable()\r\n            .pipe(distinctUntilChanged());\r\n        this.selectedSearchPanelSettings$ = combineLatest([\r\n            this.selectedSearchPanelSettingsId$,\r\n            this.allSearchPanelSettings$\r\n        ]).pipe(\r\n            map(([id, settings]) => settings?.find((c) => c.Id === id)),\r\n            shareReplay(1)\r\n        );\r\n    }\r\n    get hidePaging$(): Observable<boolean> {\r\n        return this._hidePagingSource.asObservable();\r\n    }\r\n    get prepareMoForNewForm$(): Observable<MetaobjectDataModel> {\r\n        return this._prepareMoForNewForm$.asObservable();\r\n    }\r\n    get showContextMenu$(): Observable<void> {\r\n        return this._showContextMenuSource.asObservable();\r\n    }\r\n    get gridFreeColumnSizing$(): Observable<boolean> {\r\n        return this._gridFreeColumnSizing$.asObservable();\r\n    }\r\n    get canSaveGridSetting$(): Observable<boolean> {\r\n        return this._canSaveGridSetting$.asObservable();\r\n    }\r\n    get inDialog$(): Observable<boolean> {\r\n        return this._inDialog$.asObservable();\r\n    }\r\n    get isMultiSelect$(): Observable<boolean> {\r\n        return this._isMultiSelect$.asObservable();\r\n    }\r\n    get fullscreen$(): Observable<boolean> {\r\n        return this._fullscreen$.asObservable();\r\n    }\r\n    get cartableChildsMo$(): Observable<{ [key: string]: MetaobjectDataModel } | null> {\r\n        return this._cartableChildsMo$.asObservable();\r\n    }\r\n    get cartableTemplates$(): Observable<{ [key: string]: FormSetting } | null> {\r\n        return this._cartableTemplates$.asObservable();\r\n    }\r\n    get searchPanelUi(): any {\r\n        return this._searchPanelUiSource.getValue();\r\n    }\r\n    get reportId(): string | undefined {\r\n        return this._reportSource.getValue()?.Id;\r\n    }\r\n    get allSearchPanelSettings(): SearchPanelSettings[] {\r\n        return this._allSearchPanelSettingsSource.getValue();\r\n    }\r\n    get hideSearchpanel$(): Observable<boolean> {\r\n        return this._hideSearchapanelSource.asObservable().pipe(distinctUntilChanged());\r\n    }\r\n    get hideSearchpanel(): boolean {\r\n        return this._hideSearchapanelSource.getValue();\r\n    }\r\n    get cssBackground$(): Observable<CssBackground | null> {\r\n        return this._cssBackgroundSource.asObservable();\r\n    }\r\n    get shortCuts$(): Observable<ShortCuts> {\r\n        return this._shortCutsSource.asObservable();\r\n    }\r\n    prepareMoForNewForm(mo: MetaobjectDataModel): void {\r\n        this._prepareMoForNewForm$.next(mo);\r\n    }\r\n    setShortCuts(shortCuts: ShortCuts): void {\r\n        this._shortCutsSource.next(shortCuts);\r\n    }\r\n    setBackground(cssBackground: CssBackground): void {\r\n        return this._cssBackgroundSource.next(cssBackground);\r\n    }\r\n    hidePaging(hide: boolean): void {\r\n        this._hidePagingSource.next(hide);\r\n    }\r\n    setUiViewerClass(selector: string): void {\r\n        this._setUiViewerSelector$.next(selector);\r\n    }\r\n    hideUlvTitlePage(): void {\r\n        this._hideUlvPageTitle$.next(true);\r\n    }\r\n    setCanSaveGridSettings(val: boolean): void {\r\n        this._canSaveGridSetting$.next(val);\r\n    }\r\n    executeToolbarButton(itemId: string, options?: any): void {\r\n        const buttons = this._toolbarButtonsSource.getValue();\r\n        if (!buttons.length) {\r\n            return;\r\n        }\r\n        const btn = buttons.find((c) => c.itemId === itemId);\r\n        if (btn) {\r\n            executeUlvCommandHandler(btn, options);\r\n        }\r\n    }\r\n    addWorkflowButtonsInToolbar(e: ShareButtonsChoiceDef): void {\r\n        const arrOfShareButtons = this._createWorkflowShareButtons(e);\r\n        const value = arrOfShareButtons.map((c) => ({\r\n            icon: '',\r\n            text: c,\r\n            itemId: c,\r\n            Data: null,\r\n            $ShareWorkflowButtons: true,\r\n            Command: { _isVisible: true, _isEnable: true, JsonExtraProp: { Design: 'attention' } },\r\n            handler: (d) => this.onWorkflowButtonInToolbarClick(d),\r\n            IsBuiltin: false\r\n        }));\r\n        this._toolbarButtonsWorkflowButtons.next(value);\r\n    }\r\n    _excludeWrapperFromMo(mo: MetaobjectDataModel): MetaobjectDataModel {\r\n        /* eslint-disable no-unused-vars */\r\n        const { $Wrapper, ...newMo } = mo;\r\n        return newMo;\r\n    }\r\n    onWorkflowButtonInToolbarClick(shareButton: { text: string }): void {\r\n        BarsaApi.Bw.Msg.OKCancel('آیا از تایید موارد کارتابل مطمئن هستید؟', 'تایید', (res) => {\r\n            if (res === 'ok') {\r\n                this._workflowShareButtons.forEach((c) => {\r\n                    const choiceDef = c.choiceList.find((d) => d.Title === shareButton.text);\r\n                    if (choiceDef) {\r\n                        c.formPanelCtrlr.WorkflowTransition(choiceDef, () => {\r\n                            // this._setWorkflowState('Finish', [c.mo]);\r\n                        });\r\n                    }\r\n                });\r\n                // this._setWorkflowState(\r\n                //     'Pending',\r\n                //     this._workflowShareButtons.map((c) => c.mo)\r\n                // );\r\n                // const params = this._workflowShareButtons.map((c) => ({\r\n                //     mo: this._excludeWrapperFromMo(c.mo.RelatedMo),\r\n                //     choiceDef: c.choiceList.find((d) => d.Title === shareButton.text)\r\n                // }));\r\n                // this._setWorkflowState('Pending', params);\r\n\r\n                // BarsaApi.Common.Ajax.GetServerData(\r\n                //     'Workflow94.OnGroupOfChoiceDefsSelect',\r\n                //     { parameter: { DataList: params } },\r\n                //     () => {\r\n                //         this._setWorkflowState('Success', params);\r\n                //     }, // success\r\n                //     () => {\r\n                //         this._setWorkflowState('Failed', params, 'متاسفانه عملیات ناموفق بود.');\r\n                //     }, // failure\r\n                //     null,\r\n                //     this\r\n                // );\r\n            }\r\n        });\r\n    }\r\n\r\n    setTitle(title: string): void {\r\n        this._titleSource.next({ text: title, image: '' });\r\n    }\r\n    toggleHideSearchpanel(val?: boolean): void {\r\n        this._hideSearchapanelSource.next(typeof val !== 'undefined' ? val : !this._hideSearchapanelSource.getValue());\r\n    }\r\n    setContext(context): void {\r\n        this._contextSource.next(context);\r\n    }\r\n    setInDialog(val: boolean): void {\r\n        this._inDialog$.next(val);\r\n    }\r\n    setIsMultiSelect(val: boolean): void {\r\n        this._isMultiSelect$.next(val);\r\n    }\r\n    setFullscreen(val: boolean): void {\r\n        this._fullscreen$.next(val);\r\n    }\r\n\r\n    createNewInlineMo(isChecked: boolean): MetaobjectDataModel {\r\n        const context = this.context;\r\n        const formSetting = context.Setting.FormTemplate;\r\n        const typeDefId = context.Setting.Extra.Report.TypeDefId;\r\n        const newMo = getNewMoGridEditor(formSetting, typeDefId) as MetaobjectDataModel;\r\n        newMo.Id = genrateInlineMoId();\r\n        newMo.$IsChecked = isChecked;\r\n        newMo.$NewInlineMo = true;\r\n        if (this._isComposite(context)) {\r\n            const relation = BarsaApi.Common.Util.TryGetValue(this.context.Setting, 'Extra.Relation');\r\n            newMo[relation.ParentFdName] = relation.ParentMoId;\r\n        }\r\n        //  this._newInlineEditMoSource.next(newMo);\r\n        return newMo;\r\n    }\r\n    setLayoutInfo(layoutInfo): void {\r\n        this._layoutInfoSource.next(layoutInfo);\r\n    }\r\n\r\n    destroy(): void {\r\n        this._onDestroy$.next();\r\n        this._unscubscribeContext();\r\n    }\r\n\r\n    pageSizeChanged(pageIndex): void {\r\n        this.context.fireEvent('PageChange', this.context, pageIndex);\r\n    }\r\n\r\n    pageChanged(pageIndex): void {\r\n        this.context.currentPage = pageIndex;\r\n        this.context.fireEvent('PageChange', this.context, pageIndex);\r\n    }\r\n\r\n    reSetMoDataList(moDataList?: MetaobjectDataModel[]): void {\r\n        const newMoDataList = moDataList ?? this.moDataListSource.getValue();\r\n        this._moDataListChanged([...newMoDataList]);\r\n        if (!this.context.Setting?.IsCartableReport) {\r\n            return;\r\n        }\r\n        const keyOfCatableTemplates = new Set<string>();\r\n        newMoDataList.forEach((c) => {\r\n            const tpdfId = c.RelatedMo?.$TypeDefId;\r\n            if (tpdfId) {\r\n                const key = `${tpdfId}${this._cartableKeySeperator}${c.CartableSettings?.Id || '0'}`;\r\n                keyOfCatableTemplates.add(key);\r\n            }\r\n        });\r\n        if (keyOfCatableTemplates.size > 0) {\r\n            this._loadCartableTemplate(keyOfCatableTemplates);\r\n        }\r\n    }\r\n    // Search Setting Manager\r\n    clearSearch(): void {\r\n        const searchPanelUi = this.searchPanelUi;\r\n        if (!searchPanelUi) {\r\n            return;\r\n        }\r\n        const fieldUi = searchPanelUi._dictFieldUi.$Search ?? searchPanelUi._dictFieldUi.جستجو;\r\n        fieldUi.fireEvent('ClearClick');\r\n    }\r\n    search(): void {\r\n        const searchPanelUi = this.searchPanelUi;\r\n        if (!searchPanelUi) {\r\n            return;\r\n        }\r\n        let fieldUi = searchPanelUi._dictFieldUi.$Search ?? searchPanelUi._dictFieldUi.جستجو;\r\n        if (!fieldUi) {\r\n            Object.keys(searchPanelUi._dictFieldUi).forEach((c) => {\r\n                const e = searchPanelUi._dictFieldUi[c];\r\n                if (e.originalXtype === 'Ui.SearchCommandInfoUi') {\r\n                    fieldUi = e;\r\n                }\r\n            });\r\n        }\r\n        if (fieldUi) {\r\n            fieldUi.fireEvent('SearchClick');\r\n        }\r\n    }\r\n\r\n    getValueInlineEdit(): boolean {\r\n        return this._inlineEditModeSource.getValue();\r\n    }\r\n\r\n    getAllowInlineEdit(): boolean {\r\n        return this._allowInlineEditSource.getValue();\r\n    }\r\n    setInlineEdit(value: boolean): void {\r\n        this._inlineEditModeSource.next(value);\r\n    }\r\n\r\n    openSearchFieldsHiddenSettings(): void {\r\n        this._openSearchPanelHiddenSettingsSource.next();\r\n    }\r\n\r\n    openSearchFilesManage(): void {\r\n        this._openSearchFilesManageSource.next();\r\n    }\r\n\r\n    searchPanelMoChanged(change: boolean): void {\r\n        this._searchPanelMoChangedSource.next(change);\r\n    }\r\n\r\n    loadSearchPanelSettings(): void {\r\n        if (this.context.FormPanelUi || !this._canSaveGridSetting$.getValue()) {\r\n            return;\r\n        }\r\n        this.reportId$\r\n            .pipe(\r\n                takeUntil(this._onDestroy$),\r\n                tap((reportId) => this._loadSearchPanelSettings(reportId))\r\n            )\r\n            .subscribe();\r\n    }\r\n\r\n    addSearchPanelSettings(searchPanelSettings: SearchPanelSettings): void {\r\n        const allSearchPanelSettings = this._allSearchPanelSettingsSource.getValue();\r\n        allSearchPanelSettings.push(searchPanelSettings);\r\n        this._allSearchPanelSettingsSource.next(allSearchPanelSettings);\r\n    }\r\n    saveSearchPanelSetting(selectedSearchPanelSettings: SearchPanelSettings): void {\r\n        const searchMo = this.getSearchPanelMo();\r\n        const fieldsSetting = this.getSearchPanelFieldsSetting();\r\n        if (!selectedSearchPanelSettings) {\r\n            return;\r\n        }\r\n        selectedSearchPanelSettings.SearchMo = JSON.stringify(searchMo);\r\n        selectedSearchPanelSettings.FieldsSetting = JSON.stringify(fieldsSetting);\r\n        BarsaApi.Bw.RunBlMethod(\r\n            'SaveSearchPanelSettings',\r\n            new BarsaApi.Common.MetaObjectWeb({\r\n                Id: selectedSearchPanelSettings.Id,\r\n                $Caption: selectedSearchPanelSettings.Title,\r\n                ReportId: selectedSearchPanelSettings.Report?.Id,\r\n                Title: selectedSearchPanelSettings.Title,\r\n                IsDefault: selectedSearchPanelSettings.IsDefault,\r\n                IsPublic: selectedSearchPanelSettings.IsPublic,\r\n                ApplyAutomatically: selectedSearchPanelSettings.ApplyAutomatically,\r\n                HideSearchPanel: selectedSearchPanelSettings.HideSearchPanel,\r\n                SearchMo: selectedSearchPanelSettings.SearchMo,\r\n                FieldsSetting: selectedSearchPanelSettings.FieldsSetting\r\n            }),\r\n            true\r\n        );\r\n        this.searchPanelMoChanged(false);\r\n    }\r\n\r\n    applySearchPanelSettings(searchPanelSettings: SearchPanelSettings | undefined): void {\r\n        const searchPanelUi = this.searchPanelUi;\r\n        if (!searchPanelSettings) {\r\n            return;\r\n        }\r\n        if (this._firstApplyAutomatically && searchPanelSettings.IsPrimary) {\r\n            this._firstApplyAutomatically = false;\r\n            return;\r\n        }\r\n        this._firstApplyAutomatically = false;\r\n\r\n        this.resetSearchPanelSettings(searchPanelUi);\r\n        if (searchPanelSettings.SearchMo) {\r\n            const searchMo = JSON.parse(searchPanelSettings.SearchMo);\r\n            Object.keys(searchMo).forEach((c) => {\r\n                const field = searchPanelUi._dictFieldUi[c];\r\n                if (field && c.indexOf('$') === -1) {\r\n                    field.SetValue(searchMo[c]);\r\n                    searchPanelUi.Mo.SetFValue(c, searchMo[c]);\r\n                }\r\n            });\r\n            if (searchPanelSettings.IsPrimary && !searchPanelUi.Setting.ImmediateExecute) {\r\n                this.searchPanelMoChanged(false);\r\n                return;\r\n            }\r\n            if (searchPanelSettings.ApplyAutomatically) {\r\n                this.search();\r\n            }\r\n        }\r\n        // TODO set hidden fields\r\n        if (searchPanelSettings.FieldsSetting) {\r\n            const settings = JSON.parse(searchPanelSettings.FieldsSetting);\r\n            this.setAndApplySearchPanelSettingFieldsSetting(\r\n                typeof settings === 'string' ? JSON.parse(settings) : settings\r\n            );\r\n        }\r\n        this.searchPanelMoChanged(false);\r\n    }\r\n    getSearchPanelMo(): MetaobjectDataModel {\r\n        return this.searchPanelUi.Mo;\r\n    }\r\n    getSearchPanelFieldsSetting(): Array<Partial<GeneralControlInfoModel>> {\r\n        const searchPanelUi = this.searchPanelUi;\r\n        const fields: Array<GeneralControlInfoModel> = searchPanelUi.Setting.View.ControlInfo.filter(\r\n            (c) => c.ControlName !== '$Search' && c.ControlName !== 'جستجو'\r\n        );\r\n        const fieldsSetting = fields.map((c) => ({\r\n            Name: c.ControlName,\r\n            Caption: c.ControlFieldCaptionTranslated,\r\n            Hidden: searchPanelUi._dictFieldUi[c.ControlName].Setting.IsVisible === false ? true : false,\r\n            IsMandatory: c.IsMandatory\r\n        }));\r\n        return fieldsSetting;\r\n    }\r\n    setAndApplySearchPanelSettingFieldsSetting(fieldsSetting: ColumnInfoType[]): void {\r\n        const searchPanelUi = this.searchPanelUi;\r\n        fieldsSetting.forEach((c) => {\r\n            const field = searchPanelUi._dictFieldUi[c.Name];\r\n            if (field) {\r\n                searchPanelUi.fireEvent('ChangeFieldVisible', field.Setting.ControlFieldCaption, !c.Hidden);\r\n            }\r\n        });\r\n    }\r\n    updateSearchPanelSettings(allSearchPanelSettings: SearchPanelSettings[]): void {\r\n        allSearchPanelSettings = allSearchPanelSettings.filter((c) => !c.IsPrimary && !c.IsDeleted);\r\n        this._allSearchPanelSettingsSource.next(allSearchPanelSettings);\r\n    }\r\n\r\n    removeSearchPanelSettings(searchPanelSettingsId: string): void {\r\n        const allSearchPanelSettings = this._allSearchPanelSettingsSource.getValue();\r\n        allSearchPanelSettings.filter((c) => c.Id !== searchPanelSettingsId);\r\n        this._allSearchPanelSettingsSource.next(allSearchPanelSettings);\r\n    }\r\n\r\n    changeSelectedSearchPanel(selectedSearchPanelSettingsId: string): void {\r\n        this._selectedSearchPanelSettingsIdSource.next(selectedSearchPanelSettingsId);\r\n    }\r\n\r\n    loadMetaConditionsControlInfos(typeDefId: string, fieldDbNames: string[]): Observable<GeneralControlInfoModel[]> {\r\n        const mo = GetDefaultMoObjectInfo(typeDefId);\r\n        return of(this._controlInfosMetaobject).pipe(\r\n            switchMap((controlsInfo) => {\r\n                if (controlsInfo.length > 0) {\r\n                    return of(controlsInfo);\r\n                }\r\n                return getControlList(mo, fieldDbNames, true, false);\r\n            }),\r\n            tap((controlsInfo: GeneralControlInfoModel[]) => (this._controlInfosMetaobject = controlsInfo))\r\n        );\r\n    }\r\n    protected _createWorkflowShareButtons(e: ShareButtonsChoiceDef): string[] {\r\n        let shareButtons: string[] = [];\r\n        if (e.add) {\r\n            this._workflowShareButtons.push(e);\r\n        } else {\r\n            this._workflowShareButtons = this._workflowShareButtons.filter((c) => c.mo.Id !== e.mo.Id);\r\n        }\r\n        if (!this._workflowShareButtons.length) {\r\n            return [];\r\n        }\r\n        // this._workflowShareButtons = this._workflowShareButtons.filter((c) => c.mo?.$IsChecked);\r\n        if (this._workflowShareButtons.length > 0) {\r\n            shareButtons = this._workflowShareButtons[0].choiceList.map((d) => d.Title);\r\n            const unShareButtons: string[] = [];\r\n            for (let i = 1; i < this._workflowShareButtons.length; i++) {\r\n                const item = this._workflowShareButtons[i];\r\n                for (let j = 0; j < shareButtons.length; j++) {\r\n                    if (item.choiceList.map((d) => d.Title).indexOf(shareButtons[j]) < 0) {\r\n                        unShareButtons.push(shareButtons[j]);\r\n                    }\r\n                }\r\n            }\r\n            shareButtons = shareButtons.filter((c) => unShareButtons.indexOf(c) === -1);\r\n        }\r\n        return shareButtons;\r\n    }\r\n    protected _initCreateNewInlineMo(context): void {\r\n        if (!context) {\r\n            return;\r\n        }\r\n        const formSetting = context.Setting.FormTemplate;\r\n        if (formSetting) {\r\n            this.createNewInlineMo(false);\r\n        }\r\n    }\r\n\r\n    protected _isComposite(context): boolean {\r\n        const relationType = BarsaApi.Common.Util.TryGetValue(context.Setting, 'Extra.Relation.RelationType');\r\n        return relationType === BarsaApi.Common.Enums.RelationType.Composition;\r\n    }\r\n    protected _addEventListener(context: any): void {\r\n        context.on({\r\n            scope: this,\r\n            ShowContextMenu: this._showContextMenu,\r\n            MaskChanged: this._maskChanged,\r\n            ViewerMaskChanged: this._viewerMaskChanged,\r\n            ViewerControlChanged: this._viewerControlChanged,\r\n            VisibleChanged: this._visibleChanged,\r\n            ReadonlyChanged: this._readonlyChanged,\r\n            MenuItemsChanged: this._menuItemsChanged,\r\n            TitleChanged: this._titleChanged,\r\n            SearchPanelChanged: this._searchPanelChanged,\r\n            PagingSettingChanged: this._pagingSettingChanged,\r\n            ToolbarButtonsChanged: this._toolbarButtonsChanged,\r\n            EnableChanged: this._enableChanged,\r\n            Destroy: this._destroyChanged,\r\n            ExitInlineEdit: this._existInlineEdit\r\n        });\r\n    }\r\n\r\n    protected _initialize(context: any): void {\r\n        this._initCartablesFormTemplate(context);\r\n        this._initConditionalFormats(context);\r\n        this._initAllowInlineEdit(context);\r\n        this._initOnlyInlineEdit(context);\r\n        this._initInlineEditMode(context);\r\n        this._initReport(context);\r\n        this._initViewerControl(context);\r\n        this._initHideToolbar(context);\r\n        this._initToolbarButtons(context);\r\n        this._initVisible(context);\r\n        this._initEnable(context);\r\n        this._initTitle(context);\r\n        this._initReadonly(context);\r\n        this._initMoDataList(context);\r\n        this._initPagingSetting(context);\r\n        this._initMenuItems(context);\r\n        this._initSearchpanel(context);\r\n        this._initCreateNewInlineMo(context);\r\n        this._initGridFreeColumnSizing(context);\r\n    }\r\n    protected _initGridFreeColumnSizing(context): void {\r\n        if (context && context.Setting.View?.Grid_FreeColumnSizing) {\r\n            this._gridFreeColumnSizing$.next(context.Setting.View?.Grid_FreeColumnSizing);\r\n        }\r\n    }\r\n    protected _initCartablesFormTemplate(context): void {\r\n        const cartableTemplates = context.Setting.CartableTemplates;\r\n        if (cartableTemplates) {\r\n            const keys = Object.keys(cartableTemplates);\r\n            keys.forEach((key) => {\r\n                if (typeof cartableTemplates[key] === 'string') {\r\n                    cartableTemplates[key] = BarsaApi.Ext.decode(cartableTemplates[key]);\r\n                }\r\n            });\r\n            this._cartableTemplates$.next(cartableTemplates);\r\n        }\r\n        this._cartableChildsMo(context);\r\n    }\r\n    protected _initSearchpanel(context): void {\r\n        if (context && context._searchPanelControl) {\r\n            this._searchPanelChanged(context._searchPanelControl);\r\n        }\r\n    }\r\n\r\n    protected _initConditionalFormats(context): void {\r\n        if (context && context.Setting.View?.ConditionalFormats) {\r\n            this._conditionalFormatsChanged(context.Setting.View?.ConditionalFormats);\r\n        }\r\n    }\r\n\r\n    protected _initMenuItems(context): void {\r\n        if (context && context.menuItems) {\r\n            // const newItems = context.menuItems;\r\n            this._menuItemsChanged(context.menuItems);\r\n        }\r\n    }\r\n\r\n    protected _initReport(context): void {\r\n        const report = BarsaApi.Common.Util.TryGetValue(context, 'Setting.Extra.Report', []);\r\n        this._reportSource.next(report);\r\n    }\r\n\r\n    protected _initMoDataList(context): void {\r\n        const moDataList = BarsaApi.Common.Util.TryGetValue(context, 'Setting.Data.MoDataList', []);\r\n        this._moDataListChanged(moDataList);\r\n    }\r\n    protected _cartableChildsMo(context): void {\r\n        if (context.Setting.CartableChildsMo) {\r\n            this._cartableChildsMo$.next(context.Setting.CartableChildsMo);\r\n        }\r\n    }\r\n\r\n    protected _initPagingSetting(context): void {\r\n        const pagingSetting = BarsaApi.Common.Util.TryGetValue(context, 'Setting.Data.Paging', null);\r\n        this._pagingSettingChanged(pagingSetting);\r\n    }\r\n\r\n    protected _initTitle(context): void {\r\n        let title = BarsaApi.Common.Util.TryGetValue(context, 'title', null);\r\n        if (title === null) {\r\n            title = BarsaApi.Common.Util.TryGetValue(context, 'Setting.Extra.Report.Caption', '');\r\n        }\r\n        this._titleChanged({ text: title, image: '' });\r\n    }\r\n\r\n    protected _initReadonly(context): void {\r\n        const readonly = context.readonly === true ? true : false;\r\n        this._readonlyChanged(readonly);\r\n    }\r\n\r\n    protected _initEnable(context): void {\r\n        const enable = context.enable === false ? false : true;\r\n        this._enableChanged(enable);\r\n    }\r\n\r\n    protected _initVisible(context): void {\r\n        const visible = context.Setting.IsVisible === false ? false : true;\r\n        this._visibleChanged(visible);\r\n    }\r\n\r\n    protected _initToolbarButtons(context): void {\r\n        const buttons = context.tlbButtons;\r\n        if (Array.isArray(buttons)) {\r\n            this._toolbarButtonsChanged(buttons);\r\n        }\r\n    }\r\n\r\n    protected _initInlineEditMode(context): void {\r\n        const inlineEditMode: boolean = context.Setting?.View?.AutoInlineEdit;\r\n        this._inlineEditModeSource.next(inlineEditMode);\r\n    }\r\n\r\n    protected _initAllowInlineEdit(context): void {\r\n        const allowInlineEdit: boolean = context.Setting?.View?.AllowInlineEdit;\r\n        const allowEdit = context.Setting.Extra?.DefaultCommandsAccess?.Edit;\r\n        this._allowInlineEditSource.next(allowInlineEdit && allowEdit);\r\n    }\r\n\r\n    protected _initOnlyInlineEdit(context): void {\r\n        const onlyInlineEdit: boolean = context.Setting?.View?.OnlyInlineEdit;\r\n        this._onlyInlineEditSource.next(onlyInlineEdit);\r\n    }\r\n\r\n    protected _initViewerControl(context): void {\r\n        const viewerControl = context.viewerControl;\r\n        if (viewerControl) {\r\n            this._viewerControlChanged(viewerControl);\r\n        }\r\n    }\r\n\r\n    protected _initHideToolbar(context): void {\r\n        const hideToolbar = BarsaApi.Common.Util.TryGetValue(context, 'Setting.Extra.Report.HideToolbar', false);\r\n        this._hideToolbarSource.next(hideToolbar);\r\n    }\r\n\r\n    protected _unscubscribeContext(): void {\r\n        this.context.un('ShowContextMenu', this._showContextMenu);\r\n        this.context.un('MaskChanged', this._maskChanged);\r\n        this.context.un('ViewerControlChanged', this._viewerControlChanged);\r\n        this.context.un('ViewerMaskChanged', this._viewerMaskChanged);\r\n        this.context.un('VisibleChanged', this._visibleChanged);\r\n        this.context.un('ReadonlyChanged', this._readonlyChanged);\r\n        this.context.un('MenuItemsChanged', this._menuItemsChanged);\r\n        this.context.un('TitleChanged', this._titleChanged);\r\n        this.context.un('PagingSettingChanged', this._pagingSettingChanged);\r\n        this.context.un('ToolbarButtonsChanged', this._toolbarButtonsChanged);\r\n        this.context.un('EnableChanged', this._enableChanged);\r\n        this.context.un('Destroy', this._destroyChanged);\r\n        this.context.un('ExitInlineEdit', this._existInlineEdit);\r\n    }\r\n    protected _conditionalFormatsChanged(conditionalFormats: any): void {\r\n        this._conditionalFormatsSource.next(conditionalFormats);\r\n    }\r\n    protected _moDataListChanged(moDataList): void {\r\n        this.moDataListSource.next(moDataList);\r\n        if (this.context) {\r\n            this._cartableChildsMo(this.context);\r\n            this._initCartablesFormTemplate(this.context);\r\n            this._checkCartableWorkflowShareButtons(moDataList);\r\n        }\r\n    }\r\n    protected _checkCartableWorkflowShareButtons(moDataList: MetaobjectDataModel[]): void {\r\n        const hasSelected = moDataList.some((c) => c.$IsChecked);\r\n        const moIds = moDataList.map((c) => c.Id);\r\n        this._workflowShareButtons = this._workflowShareButtons.filter((c) => moIds.indexOf(c.mo.Id) > -1);\r\n        if (!hasSelected) {\r\n            this._toolbarButtonsWorkflowButtons.next([]);\r\n        }\r\n    }\r\n\r\n    protected _viewerControlChanged(viewerControl): void {\r\n        this._viewerControlSource.next(viewerControl);\r\n        this._initConditionalFormats(this.context);\r\n        this._initInlineEditMode(this.context);\r\n        this._initAllowInlineEdit(this.context);\r\n        this._initOnlyInlineEdit(this.context);\r\n    }\r\n\r\n    protected _maskChanged(mask: boolean): void {\r\n        this._maskSource.next(mask);\r\n    }\r\n    protected _showContextMenu(xy): void {\r\n        this._showContextMenuSource.next(xy);\r\n    }\r\n    protected _viewerMaskChanged(viewerMask: boolean): void {\r\n        this._viewerMaskSource.next(viewerMask);\r\n    }\r\n\r\n    protected _readonlyChanged(readonly: boolean): void {\r\n        this._readonlySource.next(readonly);\r\n    }\r\n\r\n    protected _visibleChanged(viewerMask: boolean): void {\r\n        this._visibleSource.next(viewerMask);\r\n    }\r\n    protected _removeExtraMenuItems(menuItems: MenuItem[]): MenuItem[] {\r\n        if (!menuItems) {\r\n            return [];\r\n        }\r\n        const newItems = menuItems.filter(\r\n            (c) => c.itemId !== 'Delete' && c.itemId !== 'AddToList' && c.itemId !== 'RemoveFromList'\r\n        );\r\n        return newItems;\r\n    }\r\n    protected _menuItemsChanged(menuItems: any[]): void {\r\n        const newMenuItems = this._removeExtraMenuItems(menuItems);\r\n        this._menuItemsSource.next(newMenuItems);\r\n    }\r\n\r\n    protected _titleChanged(titleObj: { text: string; image: string }): void {\r\n        this._titleSource.next(titleObj);\r\n    }\r\n\r\n    protected _searchPanelChanged(searchPanel: any): void {\r\n        this._searchPanelUiSource.next(searchPanel);\r\n    }\r\n\r\n    protected _pagingSettingChanged(pageingSetting: any): void {\r\n        this._pagingSettingSource.next(pageingSetting);\r\n    }\r\n\r\n    protected _toolbarButtonsChanged(buttons: any[]): void {\r\n        this._toolbarButtonsSource.next(buttons);\r\n    }\r\n\r\n    protected _enableChanged(enable: boolean): void {\r\n        this._enableSource.next(enable);\r\n    }\r\n\r\n    protected _destroyChanged(): void {\r\n        this._destroySource.next();\r\n    }\r\n    protected _existInlineEdit(): void {\r\n        this._inlineEditModeSource.next(false);\r\n    }\r\n\r\n    protected _addDefaultSearchPanelSettings(searchPanel: any): void {\r\n        const searchMo = JSON.stringify(searchPanel?.Mo ?? new MetaobjectDataModel());\r\n        const StandardText = this._bbbPipe.transform('Standard');\r\n        const standardSettings = {\r\n            Id: '',\r\n            $Caption: StandardText,\r\n            IsStandard: true,\r\n            IsDefault: true,\r\n            IsPublic: true,\r\n            IsPrimary: true,\r\n            ApplyAutomatically: true,\r\n            HideSearchPanel: false,\r\n            Title: StandardText,\r\n            SearchMo: searchMo,\r\n            ReportId: ''\r\n        };\r\n        this._defaultSearchPanelSettingsSource.next(standardSettings);\r\n    }\r\n\r\n    protected _loadSearchPanelSettings(reportId): void {\r\n        BarsaApi.Bw.RunBlMethodAsync({\r\n            Parameters: [reportId],\r\n            Method: 'LoadAllUserSearchPanelSettings',\r\n            SuccessFn: (allSearchPanelSettings) => {\r\n                if (Array.isArray(allSearchPanelSettings)) {\r\n                    allSearchPanelSettings = BarsaApi.Bw._unwrap(allSearchPanelSettings);\r\n                    this._allSearchPanelSettingsSource.next(allSearchPanelSettings);\r\n                    const defaultSearch = allSearchPanelSettings.find((c) => c.IsDefault);\r\n                    if (defaultSearch) {\r\n                        this._selectedSearchPanelSettingsIdSource.next(defaultSearch.Id);\r\n                    }\r\n                }\r\n            },\r\n            FailFn: () => {}\r\n        });\r\n    }\r\n    protected resetSearchPanelSettings(searchPanelUi): void {\r\n        this.clearSearch();\r\n        const fieldUi = searchPanelUi._dictFieldUi;\r\n        const changed = searchPanelUi.Mo.GetChangedObject();\r\n        Object.keys(changed).forEach((c) => {\r\n            const field = searchPanelUi._dictFieldUi[c];\r\n            if (field) {\r\n                field.SetValue(null);\r\n                searchPanelUi.Mo.SetFValue(c, null);\r\n            }\r\n            searchPanelUi.Mo.SetState('New');\r\n        });\r\n        Object.keys(fieldUi).forEach((c) => {\r\n            if (c !== '$Search' && fieldUi[c].LayoutControl) {\r\n                searchPanelUi.fireEvent('ChangeFieldVisible', fieldUi[c].Setting.ControlFieldCaption, true);\r\n            }\r\n        });\r\n    }\r\n    protected _loadCartableTemplate(keyOfCartableTemplates: Set<string>): void {\r\n        let cartableTemplates = this._cartableTemplates$.getValue();\r\n        if (!cartableTemplates) {\r\n            return;\r\n        }\r\n        const keys: CartableTemplateKey[] = [];\r\n\r\n        keyOfCartableTemplates.forEach((key) => {\r\n            const values = key.split(this._cartableKeySeperator);\r\n            if (!cartableTemplates[key]) {\r\n                keys.push({ TypeDefId: values[0], SettingsId: values[1] });\r\n            }\r\n        });\r\n        if (keys.length === 0) {\r\n            return;\r\n        }\r\n        this._apiService.GetCartableTemplate(keys).subscribe((c) => {\r\n            if (!c) {\r\n                return;\r\n            }\r\n            const templates: { [key: string]: FormSetting } = {};\r\n            Object.keys(c).forEach((cId) => {\r\n                templates[cId] = BarsaApi.Ext.decode(c[cId]);\r\n            });\r\n            cartableTemplates = { ...cartableTemplates, ...templates };\r\n            this._cartableTemplates$.next(cartableTemplates);\r\n        });\r\n    }\r\n}\r\n","import { Injectable, inject } from '@angular/core';\r\nimport { HttpClient, HttpErrorResponse, HttpEventType } from '@angular/common/http';\r\n\r\nimport { Subject, Observable, throwError, from } from 'rxjs';\r\nimport { catchError, finalize, map, takeUntil } from 'rxjs/operators';\r\nimport { BarsaApi, IUploadingState } from '../abstract-classes';\r\n\r\n@Injectable({\r\n    providedIn: 'root'\r\n})\r\nexport class UploadService {\r\n    uploadingState$: Observable<IUploadingState>;\r\n    cancelation$ = new Subject<void>();\r\n    uploadURL = `/Fields/File/Base/FileUploadFormMulti.ashx`;\r\n    private httpClient = inject(HttpClient);\r\n    private _uploadingStateSource = new Subject<IUploadingState>();\r\n\r\n    constructor() {\r\n        this.uploadingState$ = this._uploadingStateSource.asObservable();\r\n    }\r\n\r\n    public upload(data: FormData, fdId: string, key: string = ''): Observable<IUploadingState> {\r\n        let state: IUploadingState = {\r\n            key,\r\n            progress: 0,\r\n            state: 'Start',\r\n            uploading: false\r\n        };\r\n        this._setUploadingStatus(state);\r\n        return this.httpClient\r\n            .post<any>(this.uploadURL, data, {\r\n                reportProgress: true,\r\n                observe: 'events',\r\n                headers: { fdId, IsPortal: 'true' }\r\n            })\r\n            .pipe(\r\n                map((event) => {\r\n                    switch (event.type) {\r\n                        case HttpEventType.UploadProgress: {\r\n                            const total = event.total || 0;\r\n                            const progress = Math.round((100 * event.loaded) / total);\r\n                            return { status: 'progress', message: progress };\r\n                        }\r\n                        case HttpEventType.Response:\r\n                            return event.body;\r\n                        default:\r\n                            return `Unhandled event: ${event.type}`;\r\n                    }\r\n                }),\r\n                map((res) => {\r\n                    if (Array.isArray(res)) {\r\n                        state = this._setUploadingStatus({ ...state, state: 'Complete', uploading: false });\r\n                    } else if (res !== null && typeof res === 'object') {\r\n                        if (res.status === 'error') {\r\n                            state = this._setUploadingStatus({ ...state, state: 'Error', uploading: false });\r\n                        } else if (res.status === 'progress') {\r\n                            state = this._setUploadingStatus({\r\n                                ...state,\r\n                                state: 'Uploading',\r\n                                uploading: true,\r\n                                progress: res.message\r\n                            });\r\n                        }\r\n                    }\r\n                    return res;\r\n                }),\r\n                takeUntil(this.cancelation$.asObservable()),\r\n                catchError((err) => {\r\n                    if (err instanceof HttpErrorResponse) {\r\n                        BarsaApi.Bw.Toast.Error(`${err.status} : ${err.message}`);\r\n                    }\r\n\r\n                    return throwError(() => new Error(err));\r\n                }),\r\n                finalize(() => {\r\n                    state = this._setUploadingStatus({\r\n                        ...state,\r\n                        uploading: false\r\n                    });\r\n                })\r\n            );\r\n    }\r\n\r\n    public compressFiles$(files: File[]): Observable<FormData> {\r\n        return from(this.compressFiles(files));\r\n    }\r\n    private _setUploadingStatus(state: IUploadingState): IUploadingState {\r\n        if (state.state === 'Start') {\r\n            state.uploading = true;\r\n        }\r\n        this._uploadingStateSource.next(state);\r\n        return state;\r\n    }\r\n    private compressFiles(files: File[]): Promise<FormData> {\r\n        const formData = new FormData();\r\n        return new Promise((resolve, _reject) => {\r\n            files.forEach((file, _index) => {\r\n                formData.append('file', file, file.name);\r\n            });\r\n            resolve(formData);\r\n            //     const file2 = file; // get the file\r\n            //     const blobURL = URL.createObjectURL(file2);\r\n            //     const img = new Image();\r\n            //     img.src = blobURL;\r\n            //     const biggerThan1MB = file.size / 1024 > 1000;\r\n            //     const mimeTypeJpg = 'image/jpeg';\r\n            //     const MAX_WIDTH = 1920;\r\n            //     const MAX_HEIGHT = 1080;\r\n            //     const MIME_TYPE = biggerThan1MB ? mimeTypeJpg : file.type;\r\n            //     const QUALITY = biggerThan1MB && file.type === mimeTypeJpg ? 0.5 : 1;\r\n            //     if (MIME_TYPE === file.type && QUALITY === 1) {\r\n            //         formData.append('file', file, file.name);\r\n            //         if (index === files.length - 1) {\r\n            //             resolve(formData);\r\n            //         }\r\n            //     }\r\n            //     img.onerror = function (): void {\r\n            //         URL.revokeObjectURL(img.src);\r\n            //         // Handle the failure properly\r\n            //         console.log('Cannot load image');\r\n            //         reject(new Error('Cannot load image'));\r\n            //     };\r\n            //     img.onload = function (): void {\r\n            //         URL.revokeObjectURL(img.src);\r\n            //         const [newWidth, newHeight] = calculateSize(img, MAX_WIDTH, MAX_HEIGHT);\r\n            //         const canvas = document.createElement('canvas');\r\n            //         canvas.width = newWidth;\r\n            //         canvas.height = newHeight;\r\n            //         const ctx = canvas.getContext('2d');\r\n            //         ctx?.drawImage(img, 0, 0, newWidth, newHeight);\r\n            //         canvas.toBlob(\r\n            //             (blob) => {\r\n            //                 // Handle the compressed image. es. upload or save in local state\r\n            //                 if (blob) {\r\n            //                     // formData.append(\r\n            //                     //     'unicFileName',\r\n            //                     //     'x' + BarsaApi.Common.Util.GetNewMetaGuid() + ';;;' + file.name\r\n            //                     // );\r\n            //                     formData.append('file', blob, file.name);\r\n            //                 }\r\n            //                 if (index === files.length - 1) {\r\n            //                     resolve(formData);\r\n            //                 }\r\n            //             },\r\n            //             MIME_TYPE,\r\n            //             QUALITY\r\n            //         );\r\n            //     };\r\n            //     function calculateSize(img1, maxWidth, maxHeight): number[] {\r\n            //         let width = img1.width;\r\n            //         let height = img1.height;\r\n\r\n            //         // calculate the width and height, constraining the proportions\r\n            //         if (width > height) {\r\n            //             if (width > maxWidth) {\r\n            //                 height = Math.round((height * maxWidth) / width);\r\n            //                 width = maxWidth;\r\n            //             }\r\n            //         } else {\r\n            //             if (height > maxHeight) {\r\n            //                 width = Math.round((width * maxHeight) / height);\r\n            //                 height = maxHeight;\r\n            //             }\r\n            //         }\r\n            //         return [width, height];\r\n            //     }\r\n            // });\r\n        });\r\n    }\r\n}\r\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    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    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    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 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, inject } 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    private _logService = inject(LogService);\r\n    private _localStorageService = inject(LocalStorageService);\r\n    private _indexedDbService = inject(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        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, inject } 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    private _logService = inject(LogService);\r\n    private swUpdate = inject(SwUpdate);\r\n\r\n    /** Inserted by Angular inject() migration for backwards compatibility */\r\n    \r\n\r\n    constructor() {\r\n        const _logService = this._logService;\r\n        const swUpdate = this.swUpdate;\r\n\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        setTimeout(() => {\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        }, 1000);\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 { InjectionToken } from '@angular/core';\r\nimport { NotificationPopupService } from './services/notification-popup.service';\r\nimport { ToastService } from './services/toast.service';\r\n\r\nexport const APP_VERSION = new InjectionToken<string>('AppVersion');\r\nexport const DIALOG_SERVICE = new InjectionToken<string>('DIALOG_SERVICE');\r\nexport const FORM_DIALOG_COMPONENT = new InjectionToken<string>('FORM_DIALOG_COMPONENT');\r\nexport const NOTIFICATAION_POPUP_SERVER = new InjectionToken<NotificationPopupService>('NOTIFICATAION_POPUP_SERVER');\r\nexport const TOAST_SERVICE = new InjectionToken<ToastService>('TOAST_SERVICE');\r\n\r\nexport const NOTIFICATION_WEBWORKER_FACTORY = new InjectionToken<() => Worker>('notificaion-worker');\r\n","import { Injectable, inject } 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    hasRegistration = false;\r\n\r\n    private _logService = inject(LogService);\r\n    private _swPush = inject(SwPush);\r\n    private _portalService = inject(PortalService);\r\n    private _notificationPermissionAllowed = true;\r\n\r\n    constructor() {\r\n        const _logService = this._logService;\r\n        const _swPush = this._swPush;\r\n\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\r\n            this.closeNotifications([e.notification.tag]);\r\n\r\n            let actionTitle = e.action;\r\n            if (actionTitle === '') {\r\n                actionTitle = 'show';\r\n            }\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        this.getSw().then((c) => (this.hasRegistration = !!c));\r\n        this.handlePermission();\r\n    }\r\n    public get isEnabled(): boolean {\r\n        return this._swPush.isEnabled && this.hasRegistration && this._notificationPermissionAllowed;\r\n    }\r\n    public async closeNotifications(tags: string[]): Promise<void> {\r\n        const sw = await this.getSw();\r\n        if (!sw) {\r\n            return;\r\n        }\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    public async showNotification(payload: ExNotificationPayload): Promise<void> {\r\n        const sw = await this.getSw();\r\n        if (!sw) {\r\n            return;\r\n        }\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 moInfo = !tag ? `&moid=${notificationItem.Id}&tpid=${notificationItem.$TypeDefId}` : ``;\r\n        const data = {\r\n            onActionClick: {\r\n                default: { operation: 'openWindow', url: `#/login?notificationTag=${tag}&action=show${moInfo}` }\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\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 ? notificationItem.Icon : '/notif.png',\r\n            badge: '/notif.png',\r\n            lang,\r\n            actions,\r\n            data\r\n        } as any);\r\n    }\r\n    private handlePermission(): any {\r\n        if (!navigator?.permissions?.query) {\r\n            return;\r\n        }\r\n        return navigator.permissions\r\n            .query({ name: 'notifications' })\r\n            .then(this.permissionQuery.bind(this))\r\n            .catch(this.permissionError.bind(this));\r\n    }\r\n\r\n    private permissionQuery(result): any {\r\n        let newPrompt;\r\n\r\n        if (result.state === 'granted') {\r\n            // notifications allowed, go wild\r\n        } else if (result.state === 'prompt') {\r\n            // we can ask the user\r\n            newPrompt = Notification.requestPermission();\r\n        } else if (result.state === 'denied') {\r\n            // notifications were disabled\r\n            this._notificationPermissionAllowed = false;\r\n        }\r\n\r\n        result.onchange = () => console.log({ updatedPermission: result });\r\n\r\n        return newPrompt || result;\r\n    }\r\n    private permissionError(error): any {\r\n        this._notificationPermissionAllowed = false;\r\n        console.error(error);\r\n    }\r\n    private async getSw(): Promise<ServiceWorkerRegistration | undefined> {\r\n        if (!navigator.serviceWorker) {\r\n            this.hasRegistration = false;\r\n            return undefined;\r\n        }\r\n        const x = await navigator.serviceWorker.getRegistration('custom-ngsw-worker.js');\r\n        this.hasRegistration = !!x;\r\n        return x;\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}\r\n","import { Injectable, NgZone, inject } 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, MoForReportModel, 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\nimport { PortalService } from './portal.service';\r\n\r\n@Injectable()\r\nexport class NotificationService {\r\n    pageCount = 1;\r\n    pageIndex = 0;\r\n    userNotificationSettings: UserNotificationSetting;\r\n\r\n    protected _popupService = inject<NotificationPopupService>(NOTIFICATAION_POPUP_SERVER);\r\n    private _logService = inject(LogService);\r\n    private _bbbTranslate = inject(BbbTranslatePipe);\r\n    private _domSanitizer = inject(DomSanitizer);\r\n    private _serviceWorkerNotification = inject(ServiceWorkerNotificationService);\r\n    private _portalService = inject(PortalService);\r\n    private _ngZone = inject(NgZone);\r\n\r\n    private _notifications$ = new BehaviorSubject<MetaobjectDataModel[]>([]);\r\n    private _notificationUnreadCount$ = new BehaviorSubject<number>(0);\r\n    private _notificationLoading$ = new BehaviorSubject<boolean>(false);\r\n    private _notifiationCountLoaded$ = new BehaviorSubject<boolean>(false);\r\n\r\n    /** Inserted by Angular inject() migration for backwards compatibility */\r\n\r\n    constructor() {\r\n        this._portalService.userPortalSettings$.pipe().subscribe((userPortalSettings) => {\r\n            this.userNotificationSettings = <UserNotificationSetting>userPortalSettings['UserNotificationSetting'];\r\n        });\r\n    }\r\n    get notificationCountLoaded$(): Observable<boolean> {\r\n        return this._notifiationCountLoaded$.asObservable();\r\n    }\r\n    get notificationUnreadCount$(): Observable<number> {\r\n        return this._notificationUnreadCount$.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 ShowNotificationRelatedMo(e: { tag: string; mo: MetaobjectDataModel; nama: string }): void {\r\n        const ee = {\r\n            ...e,\r\n            afterReady: (_e2: any) => {\r\n                BarsaApi.Bw.RunBlMethodAsync({\r\n                    Parameters: [e.tag],\r\n                    Method: 'Barsa_SetReadRadifCartableByTag',\r\n                    FailFn: (err) => {\r\n                        this._logService.error(err);\r\n                    }\r\n                });\r\n            }\r\n        };\r\n        this._portalService.ShowForm(ee);\r\n    }\r\n    public handleTopic(eventTopic, _content, _ownerKey): void {\r\n        if (eventTopic === 'RefreshNotificationUnreadCount') {\r\n            setTimeout(() => {\r\n                this.LoadUnreadNotificationCount();\r\n            }, 1000);\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                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                    $SafeContent: this._domSanitizer.bypassSecurityTrustHtml(msg),\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                }\r\n                this.showNotification(newNotification, parsedMo, uiOptions, otherOptions);\r\n            }\r\n        });\r\n    }\r\n\r\n    public LoadUnreadNotificationCount(): void {\r\n        BarsaApi.Bw.RunBlMethodAsync({\r\n            Parameters: [BarsaApi.LoginFormData.PortalId],\r\n            Method: 'GetShellbarNotificationUnreadCountByPortalId',\r\n            SuccessFn: (e: number) => {\r\n                this._notifiationCountLoaded$.next(true);\r\n                this._notificationUnreadCount$.next(e);\r\n            },\r\n            FailFn: (e) => {\r\n                this._logService.error(e);\r\n            }\r\n        });\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 (notificationItem.Title && notificationItem.Title.startsWith('[') && notificationItem.Title.endsWith(']')) {\r\n            return;\r\n        }\r\n        if (notificationItem.Title && notificationItem.Title.startsWith('{') && notificationItem.Title.endsWith('}')) {\r\n            return;\r\n        }\r\n        if (mo && !mo.ShowPopup) {\r\n            return;\r\n        }\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\r\ninterface UserNotificationSetting extends MetaobjectDataModel {\r\n    DisableCartableGroups: MoForReportModel;\r\n    Enable: boolean;\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, inject } from '@angular/core';\r\nimport { LogService } from './log.service';\r\nimport { PortalService } from './portal.service';\r\nimport { BarsaApi } from '../abstract-classes';\r\nimport { LocalStorageService } from './local-storage.service';\r\nimport { SwPush } from '@angular/service-worker';\r\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\r\nimport { catchError, concatMap, finalize, from, throwError } from 'rxjs';\r\n\r\n@Injectable()\r\nexport class ServiceWorkerCommuncationService {\r\n    _serviceWorker: ServiceWorker;\r\n    _hidden: boolean;\r\n    operationName: string;\r\n    \r\n    private _localStorage = inject(LocalStorageService);\r\n    private _logService = inject(LogService);\r\n    private _portalService = inject(PortalService);\r\n    private _swPush = inject(SwPush);\r\n    private _httpClient = inject(HttpClient);\r\n    private _subscription: PushSubscription | null;\r\n    \r\n    public get token2(): string {\r\n        return this._localStorage.getItem(BarsaApi.LoginAction.token2StorageKey) ?? '';\r\n    }\r\n    public get httpOptions(): any {\r\n        return {\r\n            headers: new HttpHeaders({\r\n                'Content-Type': 'application/json',\r\n                sth: this.token2\r\n            })\r\n        };\r\n    }\r\n    public init(): void {\r\n        BarsaApi.Ul.ApplicationCtrlr.on({\r\n            UserLoggedout: (_, doReturn) => {\r\n                this._handlePushUnSubscription(doReturn);\r\n            }\r\n        });\r\n        if (!navigator.serviceWorker) {\r\n            return;\r\n        }\r\n        navigator.serviceWorker.ready.then((registration) => {\r\n            if (registration.active) {\r\n                this._serviceWorker = registration.active;\r\n                this._subscribe();\r\n            }\r\n        });\r\n    }\r\n    protected _handlePushSubscirption(): void {\r\n        this._swPush.subscription.subscribe((subscription) => {\r\n            this._subscription = subscription;\r\n            this.operationName = this._subscription === null ? 'Subscribe' : 'Unsubscribe';\r\n        });\r\n    }\r\n    protected _subscribe(): void {\r\n        this._portalService.userLoggedIn$.pipe().subscribe((isLoggedIn) => this._isLoggedIn(isLoggedIn));\r\n        this._portalService.documentVisibilitychange$\r\n            .pipe()\r\n            .subscribe((visibilitychange) => this._visibilitychange(visibilitychange));\r\n        this._handlePushSubscirption();\r\n    }\r\n\r\n    protected _setDefaultOptions(): void {\r\n        const token2 = this.token2;\r\n        const lang = BarsaApi.LoginFormData.Culture;\r\n        const dir = BarsaApi.LoginFormData.IsRtl ? 'rtl' : 'ltr';\r\n\r\n        this._postServiceWorker({ event: 'setOptions', options: { token2, lang, dir } });\r\n    }\r\n    protected _isLoggedIn(isLoggedIn: boolean): void {\r\n        this._postServiceWorker({ event: 'isLoggedInChange', options: { isLoggedIn } });\r\n        if (isLoggedIn) {\r\n            this._setDefaultOptions();\r\n            this._initPushSubscription();\r\n        }\r\n    }\r\n    protected _visibilitychange(documentIsHidden: boolean): void {\r\n        this._postServiceWorker({ event: 'visibilitychange', options: { documentIsHidden } });\r\n    }\r\n    protected _postServiceWorker(message): void {\r\n        // console.log(`post message to sw ${JSON.stringify(message, null, 2)}`);\r\n        if (!this._serviceWorker) {\r\n            this._logService.warn(`service worker is undefined.`);\r\n            return;\r\n        }\r\n        this._serviceWorker.postMessage(message);\r\n    }\r\n      private _testSend(subscription): void {\r\n        setTimeout(() => {\r\n            this._httpClient.post('/api/pushnotification/send', subscription, this.httpOptions).subscribe();\r\n        }, 5000);\r\n    }\r\n\r\n    private _initPushSubscription(): void {\r\n        this._httpClient\r\n            .get('/api/pushnotification/publickey', { responseType: 'text' })\r\n            .pipe(\r\n                concatMap((publicKey) =>\r\n                    from(\r\n                        this._swPush.requestSubscription({\r\n                            serverPublicKey: publicKey\r\n                        })\r\n                    )\r\n                ),\r\n                concatMap((subscription) =>\r\n                    this._httpClient.post('/api/pushnotification/add', subscription, this.httpOptions)\r\n                ),\r\n                catchError((err) => {\r\n                    this._logService.error(err);\r\n                    return throwError(() => err);\r\n                })\r\n            )\r\n            .subscribe();\r\n    }\r\n    private _handlePushUnSubscription(doReturn?): void {\r\n        if (!this._subscription) {\r\n            return doReturn && doReturn();\r\n        }\r\n        this._httpClient\r\n            .post('/api/pushnotification/delete', this._subscription, this.httpOptions)\r\n            .pipe(\r\n                concatMap(() => from(this._swPush.unsubscribe())),\r\n                catchError((err) => {\r\n                    this._logService.error(err);\r\n                    doReturn && doReturn();\r\n                    return throwError(() => new Error(err));\r\n                }),\r\n                finalize(() => {\r\n                    doReturn && doReturn();\r\n                })\r\n            )\r\n            .subscribe();\r\n    }\r\n}\r\n","import { Injectable } from '@angular/core';\n\nimport { BehaviorSubject, Observable } from 'rxjs';\n\n@Injectable()\nexport class SaveScrollPositionService {\n    private _scrollPositionSource = new BehaviorSubject<{ key: string; scrollTop: number }>({\n        key: 'body',\n        scrollTop: 0\n    });\n    get scrollPosition$(): Observable<{ key: string; scrollTop: number }> {\n        return this._scrollPositionSource.asObservable();\n    }\n    getScrollPosition(key: string): number {\n        const val = this._scrollPositionSource.getValue();\n        return val[key];\n    }\n    setScrollPosition(key: string, scrollTop: number): void {\n        const value = this._scrollPositionSource.getValue();\n        value[key] = scrollTop;\n        this._scrollPositionSource.next(value);\n    }\n}\n","import { inject, Injectable, OnDestroy } from '@angular/core';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { BarsaApi } from '../abstract-classes';\r\n@Injectable()\r\nexport class RoutingService implements OnDestroy {\r\n    oldActiveSystem: any | null = null;\r\n    _activatedRoute = inject(ActivatedRoute);\r\n    router = inject(Router);\r\n    isSidebar = false;\r\n    handleReport: (repId: string, navId: string) => boolean;\r\n    _Object = {\r\n        ShowSystemContainerPage: (navItem) => {\r\n            if (navItem.DynamicCommand) {\r\n                const logParams = { CommandId: navItem.FolderId };\r\n                const finish = BarsaApi.Common.LogManager.StartLog('Navigator.Command', logParams);\r\n                const e = { Command: navItem, DynamicSetting: navItem.DynamicCommand };\r\n                BarsaApi.Common.CustomCodeManager.RunDynamicCommand(navItem.Id, e, finish);\r\n                BarsaApi.Common.LogManager.EndLog();\r\n            } else {\r\n                const repId = navItem.ReportId ? `__${navItem.ReportId}` : '';\r\n                if (this.handleReport) {\r\n                    const skip = this.handleReport(repId, navItem.Id);\r\n                    if (skip) {\r\n                        return;\r\n                    }\r\n                }\r\n                if (this.isSidebar) {\r\n                    this.router.navigate(\r\n                        [\r\n                            {\r\n                                outlets: {\r\n                                    mainside: ['report', `${navItem.Id}__${navItem.Caption}${repId}__null__false`]\r\n                                }\r\n                            }\r\n                        ],\r\n                        { relativeTo: this._activatedRoute }\r\n                    );\r\n                    return;\r\n                }\r\n                this.router.navigate(['report', `${navItem.Id}__${navItem.Caption}${repId}`], {\r\n                    relativeTo: this._activatedRoute\r\n                });\r\n            }\r\n        }\r\n    };\r\n\r\n    /** Inserted by Angular inject() migration for backwards compatibility */\r\n    \r\n    constructor() {\r\n        this.oldActiveSystem = BarsaApi.Bw.App.GetActiveSystem;\r\n        BarsaApi.Bw.App.GetActiveSystem = () => this;\r\n    }\r\n    ngOnDestroy(): void {\r\n        BarsaApi.Bw.App.GetActiveSystem = this.oldActiveSystem;\r\n    }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { SortSetting } from '../abstract-classes/models';\r\nimport { BehaviorSubject, Observable } from 'rxjs';\r\n@Injectable({\r\n    providedIn: 'root'\r\n})\r\nexport class GroupByService {\r\n    groupBy$: Observable<SortSetting[]>;\r\n    private _groupBy = new BehaviorSubject<SortSetting[]>([]);\r\n    constructor() {\r\n        this.groupBy$ = this._groupBy.asObservable();\r\n    }\r\n    setGroupBy(groupBy: SortSetting[]): void {\r\n        this._groupBy.next(groupBy);\r\n    }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { BehaviorSubject, Observable } from 'rxjs';\r\nimport { distinctUntilChanged } from 'rxjs/operators';\r\n\r\n@Injectable()\r\nexport class LayoutMainContentService {\r\n    mainContentHeight$: Observable<number>;\r\n    id: string;\r\n\r\n    private mainContentHeightSource = new BehaviorSubject<number>(0);\r\n\r\n    constructor() {\r\n        this.mainContentHeight$ = this.mainContentHeightSource.asObservable().pipe(distinctUntilChanged());\r\n    }\r\n    setMainContentHeight(height: number): void {\r\n        this.mainContentHeightSource.next(height);\r\n    }\r\n}\r\n","import { Injectable } from '@angular/core';\r\n\r\n@Injectable()\r\nexport class TabpageService {\r\n    itemCount: number;\r\n    setItemCount(itemCount): void {\r\n        this.itemCount = itemCount;\r\n    }\r\n}\r\n","import { Injectable } from '@angular/core';\n\n@Injectable({ providedIn: 'root' })\nexport class InMemoryStorageService {\n    private _dictionary = new Map<string, any>();\n    setItem(key: string, value: any): void {\n        this._dictionary.set(key, value);\n    }\n    getItem(key: string): any {\n        return this._dictionary.get(key);\n    }\n    remove(key: string): void {\n        this._dictionary.delete(key);\n    }\n    clear(): void {\n        this._dictionary.clear();\n    }\n}\n\n","import { Injectable } from '@angular/core';\nimport { BehaviorSubject, Observable, map } from 'rxjs';\n\n@Injectable({ providedIn: 'root' })\nexport class ShellbarHeightService {\n    shellbarHeight$: Observable<string>;\n    private _dict = new BehaviorSubject<string[]>(['']);\n    constructor() {\n        this.shellbarHeight$ = this._dict\n            .asObservable()\n            .pipe(\n                map((x) =>\n                    !x.length ? '' : 'calc(' + x.reduce((prev, curr) => (prev ? `${prev} + ${curr}` : `${curr}`)) + ')'\n                )\n            );\n    }\n    add(variableValue: string): void {\n        const x = this._dict.getValue();\n        if (!x.includes(variableValue)) {\n            x.push(variableValue);\n        }\n        this._dict.next([...x]);\n    }\n}\n\n","import {\r\n    Input,\r\n    Output,\r\n    EventEmitter,\r\n    Component,\r\n    ChangeDetectorRef,\r\n    OnInit,\r\n    OnDestroy,\r\n    AfterViewInit,\r\n    ChangeDetectionStrategy,\r\n    Renderer2,\r\n    HostBinding,\r\n    SimpleChanges,\r\n    inject\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 { 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, getDeviceIsTablet, getFocusableTagNames } 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    DontShowRecalculateButton?: 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    standalone: false\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() cellEdit: boolean;\r\n    @Input() formContainer: HTMLElement;\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    @HostBinding('class.isTablet') isTablet = getDeviceIsTablet();\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    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\r\n    protected _portalService = inject(PortalService);\r\n    protected _bbbPipe = inject(BbbTranslatePipe);\r\n    protected _picFieldSrc = inject(PictureFieldSourcePipe);\r\n    protected _numeralPipe = inject(NumeralPipe);    \r\n    protected _cdr = inject(ChangeDetectorRef);\r\n    protected _renderer2 = inject(Renderer2);\r\n    protected _activatedRoute = inject(ActivatedRoute);\r\n    protected _domSanitizer = inject(DomSanitizer);\r\n    protected _dialogService: any;\r\n    protected _uploadService = inject(UploadService, { self: true, optional: true });\r\n    protected _dateService = inject(DateService, { self: true, optional: true });\r\n    protected _audioRecorder = inject(AudioRecordingService, { self: true, optional: true });\r\n    protected _videoRecoder = inject(VideoRecordingService, { self: true, optional: true });\r\n    protected _columnService = inject(ColumnService, { optional: true });\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        super();\r\n\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    }\r\n\r\n    ngOnInit(): void {\r\n        super.ngOnInit();\r\n        if (this.context) {\r\n            const elDom = this._el.nativeElement;\r\n            this.context._el = elDom;\r\n            !this.context.getEl && (this.context.getEl = (): any => ({ dom: elDom }));\r\n            this.context.dom = this.el.nativeElement;\r\n            this.context.id = this.id;\r\n\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            // if (!this.parameters) {\r\n            //     this.parameters = BarsaApi.Common.Util.TryGetValue(this.context, 'Setting.CustomUi.Settings', null);\r\n            // }\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    ngOnChanges(changes: SimpleChanges): void {\r\n        const { cellEdit } = changes;\r\n        if (cellEdit && !cellEdit.firstChange && cellEdit.currentValue) {\r\n            this._focusToFirstFocusableElement();\r\n        }\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        if (this.context) {\r\n            this.context.rendered = true;\r\n        }\r\n        this._columnService?.controlRendered();\r\n        if (this.focusControl) {\r\n            this._focusToFirstFocusableElement();\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 _focusToFirstFocusableElement(): void {\r\n        const elDom = this._el.nativeElement as HTMLElement;\r\n        const focusableNodeList: NodeListOf<HTMLElement> = elDom.querySelectorAll(getFocusableTagNames());\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    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                ConfigChanged: this._configChaned.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            this.context.un('ConfigChanged', this._configChaned);\r\n        }\r\n    }\r\n    protected _configChaned(_): void {\r\n        // implemented by child components\r\n        this._cdr.detectChanges();\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';\r\nimport { debounceTime, filter } from 'rxjs/operators';\r\n\r\nexport enum IntersectionStatus {\r\n    Visible = 'Visible',\r\n    Pending = 'Pending',\r\n    NotVisible = 'NotVisible'\r\n}\r\n/* eslint-disable */\r\nexport const fromIntersectionObserver = (\r\n    element: HTMLElement,\r\n    config: IntersectionObserverInit,\r\n    debounce = 0,\r\n    autoStop = true\r\n) =>\r\n    new Observable<IntersectionStatus>((subscriber) => {\r\n        const subject$ = new Subject<{\r\n            entry: IntersectionObserverEntry;\r\n            observer: IntersectionObserver;\r\n        }>();\r\n\r\n        const intersectionObserver = new IntersectionObserver((entries, observer) => {\r\n            entries.forEach((entry) => {\r\n                if (isIntersecting(entry)) {\r\n                    subject$.next({ entry, observer });\r\n                }\r\n            });\r\n        }, config);\r\n\r\n        subject$.subscribe(() => {\r\n            subscriber.next(IntersectionStatus.Pending);\r\n        });\r\n\r\n        subject$.pipe(debounceTime(debounce), filter(Boolean)).subscribe(async (x: any) => {\r\n            const { entry, observer } = x;\r\n            const isEntryVisible = await isVisible(entry.target as HTMLElement);\r\n\r\n            if (isEntryVisible) {\r\n                subscriber.next(IntersectionStatus.Visible);\r\n                autoStop && observer.unobserve(entry.target);\r\n            } else {\r\n                subscriber.next(IntersectionStatus.NotVisible);\r\n            }\r\n        });\r\n\r\n        intersectionObserver.observe(element);\r\n\r\n        return {\r\n            unsubscribe(): void {\r\n                intersectionObserver.disconnect();\r\n                subject$.unsubscribe();\r\n            }\r\n        };\r\n    });\r\n\r\nasync function isVisible(element: HTMLElement): Promise<boolean> {\r\n    return new Promise((resolve) => {\r\n        const observer = new IntersectionObserver(([entry]) => {\r\n            resolve(entry.isIntersecting);\r\n            observer.disconnect();\r\n        });\r\n\r\n        observer.observe(element);\r\n    });\r\n}\r\n\r\nfunction isIntersecting(entry: IntersectionObserverEntry): boolean {\r\n    return true; // entry.isIntersecting || entry.intersectionRatio > 0;\r\n}\r\n","import {\r\n    Input,\r\n    Component,\r\n    Output,\r\n    EventEmitter,\r\n    OnInit,\r\n    OnDestroy,\r\n    ChangeDetectionStrategy,\r\n    ElementRef,\r\n    ChangeDetectorRef,\r\n    HostBinding,\r\n    inject\r\n} from '@angular/core';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { Observable } from 'rxjs';\r\nimport { filter, map, takeUntil, merge } from 'rxjs/operators';\r\n\r\nimport {\r\n    EjrayOlgo,\r\n    FormSetting,\r\n    FormViewSetting,\r\n    FormVisibilityStatus,\r\n    IHeaderLayout,\r\n    InfoBarType,\r\n    LayoutSetting,\r\n    MetaobjectDataModel\r\n} from './models';\r\nimport { BaseComponent } from './base.component';\r\nimport { getDeviceIsMobile, getParentHeight, getUniqueId } from '../constants';\r\nimport { FormPanelService } from '../services/form-panel.service';\r\nimport { BarsaApi } from './barsa-api';\r\nimport { ControlUiPipe } from '../pipes';\r\nimport { fromIntersectionObserver } from '../from-intersection-observer';\r\nimport { BreadCrumbInfo, BreadcrumbService, PortalService } from '../services';\r\n\r\n@Component({\r\n    selector: 'bnrc-form-base',\r\n    template: '',\r\n    changeDetection: ChangeDetectionStrategy.OnPush,\r\n    standalone: false\r\n})\r\nexport class FormBaseComponent extends BaseComponent implements OnInit, OnDestroy {\r\n    @HostBinding('attr.id') id = `form_${getUniqueId(4)}`;\r\n    @HostBinding('class.fullscreen') fullscreen = false;\r\n    @HostBinding('attr.typeDefName') _typeDefName = '';\r\n    @HostBinding('attr.viewName') _viewName = '';\r\n    @Input() context: {\r\n        [key: string]: any;\r\n        config: any;\r\n        Setting: FormSetting;\r\n    };\r\n    @Output() formClose = new EventEmitter();\r\n    listFieldUi: any;\r\n    isWizard: boolean;\r\n    parameters: MetaobjectDataModel;\r\n    isMobile: boolean;\r\n    deviceSize$: Observable<'s' | 'm' | 'l' | 'xl'>;\r\n    dirValue$: Observable<'rtl' | 'ltr'>;\r\n    rtl$: Observable<boolean>;\r\n    toolbarVisible$: Observable<boolean>;\r\n    hideClose$: Observable<boolean>;\r\n    hideTitle$: Observable<boolean>;\r\n    hidePin$: Observable<boolean>;\r\n    title$: Observable<string>;\r\n    toolbarItems$: Observable<any[]>;\r\n    workflowButtons$: Observable<any[]>;\r\n    infobars$: Observable<InfoBarType[]>;\r\n    headerLayout$: Observable<IHeaderLayout | null>;\r\n    layout94$: Observable<any>;\r\n    layout94: any;\r\n    maxContentWidth$: Observable<string>;\r\n    formWidth$: Observable<string>;\r\n    headerDescription$: Observable<string>;\r\n    headerRemoveContentPadding$: Observable<boolean>;\r\n    headerSubtitle$: Observable<string>;\r\n    avatar$: Observable<any>;\r\n    circleAvatar$: Observable<boolean>;\r\n    extendToolbarItems$: Observable<any[]>;\r\n    workflowPanelUi$: Observable<any>;\r\n    view$: Observable<FormViewSetting>;\r\n    mo$: Observable<MetaobjectDataModel | null>;\r\n    isSimple$: Observable<boolean>;\r\n    fieldDict$: Observable<{ [key: string]: string } | undefined>;\r\n    mask$: Observable<boolean>;\r\n    isSearchPanel: boolean;\r\n    isModal: boolean;\r\n    isSubForm: boolean;\r\n    modernTabs$: Observable<LayoutSetting[]>;\r\n    modernTabContainerComponent: EjrayOlgo;\r\n    isFormReport: boolean;\r\n    landscape$: Observable<boolean>;\r\n    standalone$: Observable<boolean>;\r\n    hideBreadCrumb$: Observable<boolean>;\r\n    breadCrumbs$: Observable<BreadCrumbInfo[]>;\r\n    canSend$: Observable<boolean>;\r\n    formVisibilityStatus: FormVisibilityStatus;\r\n    protected _breadcrumbService = inject(BreadcrumbService);\r\n    protected _portalService = inject(PortalService);\r\n    protected _router = inject(Router);\r\n    protected _el = inject(ElementRef);\r\n    protected _controlUiPipe = inject(ControlUiPipe);\r\n    protected _formPanelService = inject(FormPanelService, { self: true });\r\n    protected _activatedRoute = inject(ActivatedRoute);\r\n    protected _cdr = inject(ChangeDetectorRef);\r\n    protected _style: HTMLStyleElement;\r\n    protected _standalone: boolean;\r\n    private _formIntersection: any;\r\n\r\n    constructor() {\r\n        super();\r\n        this._formPanelService.isSearchPanel$.subscribe((isSearchPanel) => {\r\n            this.isSearchPanel = isSearchPanel;\r\n        });\r\n        this.breadCrumbs$ = this._breadcrumbService.breadcrumbs$;\r\n        this.infobars$ = this._formPanelService.infobars$;\r\n        this.canSend$ = this._formPanelService.canSend$;\r\n        this.hideBreadCrumb$ = this._formPanelService.hideBreadCrumb$;\r\n        this.hideClose$ = this._formPanelService.hideClose$;\r\n        this.hideTitle$ = this._formPanelService.hideTitle$;\r\n        this.hidePin$ = this._formPanelService.hidePin$;\r\n        this.toolbarVisible$ = this._formPanelService.toolbarVisible$;\r\n        this.title$ = this._formPanelService.title$.pipe(\r\n            map((title) => (!title ? '' : getDeviceIsMobile() ? title.split(':')[0] : title))\r\n        );\r\n        this.toolbarItems$ = this._formPanelService.toolbarItems$;\r\n        this.workflowButtons$ = this._formPanelService.workflowButtons$;\r\n        this.headerLayout$ = this._formPanelService.headerLayout$;\r\n        this.layout94$ = this._formPanelService.layout$;\r\n        this.maxContentWidth$ = this._formPanelService.maxContentWidth$;\r\n        this.formWidth$ = this._formPanelService.formWidth$;\r\n        this.headerSubtitle$ = this._formPanelService.headerSubtitle$;\r\n        this.avatar$ = this._formPanelService.avatar$;\r\n        this.circleAvatar$ = this._formPanelService.circleAvatar$;\r\n        this.workflowPanelUi$ = this._formPanelService.workflowPanelUi$;\r\n        this.view$ = this._formPanelService.view$;\r\n        this.mo$ = this._formPanelService.mo$;\r\n        this.fieldDict$ = this._formPanelService.fieldDict$;\r\n        this.isSimple$ = this._formPanelService.isSimpleForm$;\r\n        this.mask$ = this._formPanelService.mask$;\r\n        this.headerDescription$ = this._formPanelService.headerDescription$;\r\n        this.headerRemoveContentPadding$ = this._formPanelService.headerRemoveContentPadding$;\r\n        this.standalone$ = this._portalService.standalone$;\r\n        this.landscape$ = this._portalService.landscape$;\r\n        this.deviceSize$ = this._portalService.deviceSize$;\r\n        this.dirValue$ = this._portalService.dirValue$;\r\n        this.rtl$ = this._portalService.rtl$;\r\n        this._formPanelService.context$.pipe(takeUntil(this._onDestroy$)).subscribe();\r\n        this._formPanelService.view$.pipe(takeUntil(this._onDestroy$)).subscribe();\r\n        this._portalService.standalone$.pipe(takeUntil(this._onDestroy$)).subscribe((c) => (this._standalone = c));\r\n        this._formPanelService.mo$.subscribe((c) => (this._typeDefName = c?.$TypeDefName ?? ''));\r\n        this._formPanelService.view$.subscribe((c) => (this._viewName = c?.TypeViewName ?? ''));\r\n    }\r\n    get forceClose$(): Observable<void> {\r\n        return this._formPanelService.forceClose$;\r\n    }\r\n\r\n    ngOnInit(): void {\r\n        super.ngOnInit();\r\n        this._formPanelService.context = this.context;\r\n        this.isMobile = getDeviceIsMobile();\r\n        this.listFieldUi = this.context._dictFieldUi;\r\n\r\n        this.isModal = this.context.Setting?.IsModal;\r\n        this.isSubForm = this.context.IsSubForm;\r\n        this.isFormReport = this.context.IsFormReport;\r\n        this._setParamters();\r\n        this.modernTabs$ = this.layout94$.pipe(\r\n            filter((c) => c),\r\n            map((layout94) => (this.layout94 = layout94)),\r\n            merge(this._formPanelService.groupLayout$),\r\n            map((_) => {\r\n                if (this.layout94.items[0].xtype !== 'Ly.LayoutTabPanel') {\r\n                    return [];\r\n                }\r\n                const x = this.layout94.items[0];\r\n                this.modernTabContainerComponent = x.CustomUi;\r\n                const tabs: LayoutSetting[] = x.items;\r\n                return tabs.filter((c) => c.Visible !== false);\r\n            })\r\n        );\r\n        setTimeout(() => {\r\n            this.obtainHeight();\r\n        }, 0);\r\n        this._portalService.windowResize$.subscribe((_) => {\r\n            this.obtainHeight();\r\n        });\r\n    }\r\n    ngAfterViewInit(): void {\r\n        super.ngAfterViewInit();\r\n        if (this.isMobile) {\r\n            this._formIntersection = fromIntersectionObserver(\r\n                this._el.nativeElement,\r\n                {\r\n                    root: null,\r\n                    rootMargin: '0px',\r\n                    threshold: 0\r\n                },\r\n                100,\r\n                false\r\n            )\r\n                .pipe(takeUntil(this._onDestroy$))\r\n                .subscribe((e) => {\r\n                    this._onInView(e);\r\n                });\r\n        }\r\n    }\r\n\r\n    ngOnDestroy(): void {\r\n        super.ngOnDestroy();\r\n        if (this._formIntersection) {\r\n            this._formIntersection.unsubscribe();\r\n        }\r\n        this._formPanelService.destroy();\r\n    }\r\n    onDismissInfobar(id: string): void {\r\n        this._formPanelService.hideInfoBar(id);\r\n    }\r\n    onClose(): void {\r\n        this.context.fireEvent('RequestForClose', this.context);\r\n    }\r\n    onFullscreen(): void {\r\n        this.fullscreen = !this.fullscreen;\r\n    }\r\n    onToolbarClick(btn): void {\r\n        this._formPanelService.toolbarClick(btn);\r\n    }\r\n    onWorkflowChoiceClick(wfChoice): void {\r\n        this._formPanelService.wfChoice(wfChoice);\r\n    }\r\n    fieldChange(fieldName, value): void {\r\n        const fieldUi = this.context._listFieldUi.find((c) => c.Setting.ControlName === fieldName);\r\n        fieldUi.value = value;\r\n        fieldUi.fireEvent('change', fieldUi);\r\n    }\r\n    searchClick(): void {\r\n        const fieldUi = this.context._listFieldUi.find((c) => c.originalXtype === 'Ui.SearchCommandInfoUi');\r\n\r\n        fieldUi.fireEvent(BarsaApi.Ul.FormPanelCtrlr.EventEnum.SearchClick, fieldUi);\r\n    }\r\n    protected _onInView(e): void {\r\n        if (this.isMobile) {\r\n            this.formVisibilityStatus = e;\r\n            this._cdr.detectChanges();\r\n        }\r\n    }\r\n\r\n    protected obtainHeight(): void {\r\n        const parentHeight = getParentHeight(this._el.nativeElement as HTMLElement);\r\n        this._formPanelService.setFormHeight(parentHeight);\r\n    }\r\n    private _setParamters(): void {\r\n        this.parameters = BarsaApi.Common.Util.TryGetValue(this.context, 'Setting.View.CustomUi.Parameters', null);\r\n    }\r\n}\r\n","import {\r\n    Input,\r\n    Component,\r\n    EventEmitter,\r\n    Output,\r\n    HostBinding,\r\n    OnInit,\r\n    ChangeDetectionStrategy,\r\n    ChangeDetectorRef,\r\n    inject\r\n} from '@angular/core';\r\nimport { BaseComponent } from './base.component';\r\nimport { Direction } from '@angular/cdk/bidi';\r\n@Component({\r\n    selector: 'bnrc-form-toolbar-base',\r\n    template: '',\r\n    changeDetection: ChangeDetectionStrategy.OnPush,\r\n    standalone: false\r\n})\r\nexport class FormToolbarBaseComponent extends BaseComponent implements OnInit {\r\n    @Input() buttons: any[];\r\n    @Input() visible = true;\r\n    @Input() size: any;\r\n    @Input() device: any;\r\n    @Input() deviceSize: any;\r\n    @Input() rtl: boolean;\r\n    @Input() landscape: boolean;\r\n    @Input() standalone: boolean;\r\n    @Input() shouldOverflow: boolean;\r\n    @Input() toolbarVisible: boolean;\r\n    @Input() isFirefox: boolean;\r\n    @Input() dirValue: 'auto' | Direction;\r\n    @Input() width: string | null = null;\r\n    @Output() toolClick = new EventEmitter<any>();\r\n    @HostBinding('attr.rtl') _rtl;\r\n    protected _cdr = inject(ChangeDetectorRef);\r\n    ngOnInit(): void {\r\n        super.ngOnInit();\r\n        this._rtl = this.rtl;\r\n    }\r\n\r\n    onToolClick(btn): void {\r\n        this.toolClick.emit(btn);\r\n    }\r\n}\r\n","import { Input, Component, ChangeDetectionStrategy } from '@angular/core';\r\nimport { BaseComponent } from './base.component';\r\n\r\nexport interface NavigatorItem {\r\n    [key: string]: any;\r\n    Caption: string;\r\n    FolderId: string;\r\n    IconUrl: string;\r\n    Id: string;\r\n    IsRoot: boolean;\r\n    IsTab: boolean;\r\n    Name: string;\r\n    NotLoaded: boolean;\r\n    ReportId: string;\r\n    Parent?: NavigatorItem;\r\n    Items: NavigatorItem[];\r\n}\r\nexport interface SystemSetting {\r\n    Id: string;\r\n    Name: string;\r\n    Caption: string;\r\n    IconName: string;\r\n    RootFolderId: string;\r\n    IsLoaded: boolean;\r\n    IsUiCreated: boolean;\r\n    IsActive: boolean;\r\n    FormSetting: string;\r\n    CustomCodeError: string;\r\n    HasVerifyPassword: boolean;\r\n    Navigator: {\r\n        Root: NavigatorItem;\r\n    };\r\n    /// <summary>\r\n    /// ExtraData is an inline object consisting some complementary properties like Navigator, Commands and Workflow list\r\n    /// </summary>\r\n    ExtraData: any;\r\n}\r\n@Component({\r\n    selector: 'bnrc-system-base',\r\n    template: '',\r\n    changeDetection: ChangeDetectionStrategy.OnPush,\r\n    standalone: false\r\n})\r\nexport class SystemBaseComponent extends BaseComponent {\r\n    @Input() context: {\r\n        [key: string]: any;\r\n        SystemData: SystemSetting;\r\n        SystemNavUi: any;\r\n        SystemContainerUi: any;\r\n    };\r\n    constructor() {\r\n        super();\r\n    }\r\n    @Input() showFormPanel = (): void => {};\r\n}\r\n","import {\r\n    Input,\r\n    Component,\r\n    EventEmitter,\r\n    Output,\r\n    OnInit,\r\n    AfterViewInit,\r\n    OnDestroy,\r\n    ChangeDetectionStrategy,\r\n    inject\r\n} from '@angular/core';\r\n\r\nimport { BehaviorSubject, Observable } from 'rxjs';\r\nimport { debounceTime, map, pluck, takeUntil, tap } from 'rxjs/operators';\r\n\r\nimport { BaseComponent } from './base.component';\r\nimport { GetAllColumnsSorted, getResetGridSettings, getUniqueId } from '../constants';\r\nimport { PortalService } from '../services/portal.service';\r\nimport { UlvMainService } from '../services/ulvmain.service';\r\nimport { BarsaApi } from './barsa-api';\r\nimport {\r\n    MetaobjectDataModel,\r\n    GridSetting,\r\n    ColSetting,\r\n    ReportViewColumn,\r\n    SortSetting,\r\n    MenuItem,\r\n    PagingSetting,\r\n    AbbrevationDeviceSize,\r\n    columnsResizedEventArgs,\r\n    FormSetting,\r\n    ColumnSummaryType,\r\n    CssBackground\r\n} from './models';\r\n\r\nexport interface ReportSetting {\r\n    [key: string]: any;\r\n    Id: string;\r\n    Extra: any;\r\n}\r\n@Component({\r\n    selector: 'bnrc-report-base',\r\n    template: '',\r\n    changeDetection: ChangeDetectionStrategy.OnPush,\r\n    standalone: false\r\n})\r\nexport class ReportBaseComponent extends BaseComponent implements OnInit, AfterViewInit, OnDestroy {\r\n    @Input() context: {\r\n        [key: string]: any;\r\n        Setting: ReportSetting;\r\n    };\r\n    @Input() currentPage: number;\r\n\r\n    @Output() pageChange = new EventEmitter<number>();\r\n    @Output() pageSizeChange = new EventEmitter<number>();\r\n\r\n    defaultGridSetting = {\r\n        ColSettingList: [],\r\n        AutoSizeColumns: false,\r\n        SortSettingList: [],\r\n        Hidden: true\r\n    };\r\n    itemSelector: string;\r\n    allColumns: ReportViewColumn[];\r\n    id: string;\r\n\r\n    sortSettings: { IsGrouped: boolean; Name: string; SortDirection: string }[] | null = null;\r\n    parameters: any;\r\n    fields: any;\r\n\r\n    cssBackground$: Observable<CssBackground | null>;\r\n    visibleColumns$: Observable<ReportViewColumn[]>;\r\n    searchTerm$: Observable<string>;\r\n    moDataList$: Observable<MetaobjectDataModel[]>;\r\n    gridSetting$: Observable<GridSetting>;\r\n    groupby$: Observable<SortSetting[]>;\r\n    allChecked$: Observable<boolean>;\r\n    pagingSetting$: Observable<PagingSetting | null>;\r\n    deviceSize$: Observable<AbbrevationDeviceSize>;\r\n    mask$: Observable<boolean>;\r\n    title$: Observable<string>;\r\n    inDialog$: Observable<boolean>;\r\n    isMultiSelect$: Observable<boolean>;\r\n    fullscreen$: Observable<boolean>;\r\n    menuItems$: Observable<MenuItem[]>;\r\n    toolbarButtons$: Observable<any[]>;\r\n    toolbarEnable$: Observable<boolean>;\r\n    hideToolbar$: Observable<boolean>;\r\n    hideSearchpanel$: Observable<boolean>;\r\n    selectedMo$: Observable<MetaobjectDataModel | undefined>;\r\n    conditionalFormats$: Observable<any[]>;\r\n    newInlineEditMo$: Observable<MetaobjectDataModel | null>;\r\n    cartableTemplates$: Observable<{ [key: string]: FormSetting } | null>;\r\n    cartableChildsMo$: Observable<{ [key: string]: MetaobjectDataModel } | null>;\r\n    selectedCount$: Observable<number>;\r\n    gridFreeColumnSizing$: Observable<boolean>;\r\n\r\n    protected _portalService = inject(PortalService);\r\n    protected _ulvMainService = inject(UlvMainService);\r\n    protected _visibleColumnsSource = new BehaviorSubject<ReportViewColumn[]>([]);\r\n    protected searchTermSource = new BehaviorSubject<string>('');\r\n    protected gridSettingSource = new BehaviorSubject<GridSetting>(this.defaultGridSetting);\r\n    protected groupbySource = new BehaviorSubject<SortSetting[]>([]);\r\n    private _allCheckedSource = new BehaviorSubject<boolean>(false);\r\n\r\n    /** Inserted by Angular inject() migration for backwards compatibility */\r\n\r\n    constructor() {\r\n        super();\r\n        this.visibleColumns$ = this._visibleColumnsSource.asObservable();\r\n        this.searchTerm$ = this.searchTermSource.asObservable();\r\n        this.gridSetting$ = this.gridSettingSource.asObservable();\r\n        this.groupby$ = this.groupbySource.asObservable();\r\n        this.allChecked$ = this._allCheckedSource.asObservable();\r\n        this.fields = {};\r\n        this.toolbarButtons$ = this._ulvMainService.toolbarButtons$;\r\n    }\r\n    get moDataList(): MetaobjectDataModel[] {\r\n        return this._ulvMainService.moDataListSource.getValue();\r\n    }\r\n\r\n    ngOnInit(): void {\r\n        super.ngOnInit();\r\n        this.rendered = true;\r\n        this.context.rendered = true;\r\n        this.inDialog$ = this._ulvMainService.inDialog$;\r\n        this.cssBackground$ = this._ulvMainService.cssBackground$;\r\n        this.isMultiSelect$ = this._ulvMainService.isMultiSelect$;\r\n        this.fullscreen$ = this._ulvMainService.fullscreen$;\r\n        this.hideSearchpanel$ = this._ulvMainService.hideSearchpanel$;\r\n        this.deviceSize$ = this._portalService.deviceSize$;\r\n        this.hideToolbar$ = this._ulvMainService.hideToolbar$;\r\n        this.newInlineEditMo$ = this._ulvMainService.newInlineEditMo$;\r\n        this.conditionalFormats$ = this._ulvMainService.conditionalFormats$;\r\n        this.cartableTemplates$ = this._ulvMainService.cartableTemplates$;\r\n        this.cartableChildsMo$ = this._ulvMainService.cartableChildsMo$;\r\n        this.title$ = this._ulvMainService.title$.pipe(pluck('text'));\r\n        this.menuItems$ = this._ulvMainService.menuItems$;\r\n        this.pagingSetting$ = this._ulvMainService.pagingSetting$;\r\n        this.toolbarEnable$ = this._ulvMainService.enable$;\r\n        this.gridFreeColumnSizing$ = this._ulvMainService.gridFreeColumnSizing$;\r\n        this.mask$ = this._ulvMainService.viwerMask$.pipe(debounceTime(200));\r\n        this.selectedMo$ = this._ulvMainService.moDataList$.pipe(map((items) => items.find((c) => c.$IsChecked)));\r\n        this.moDataList$ = this._ulvMainService.moDataList$.pipe(tap((items) => this._setAllChecked(items)));\r\n        this.selectedCount$ = this._ulvMainService.selectedCount$;\r\n\r\n        this.context.on({\r\n            scope: this,\r\n            MoDataListChanged: this._moDataListChanged,\r\n            GridSettingChanged: this._gridSettingChanged,\r\n            PrepareMoForNewForm: this._prepareMoForNewForm\r\n        });\r\n        // in gheire faal bood chon moshkel eijad mikard\r\n        // va dar ulv event baiad raise shavad\r\n        // ke data amade shode va ulvmainservice an ra begirad.gozaresh mortabet\r\n        this._ulvMainService.reSetMoDataList(this.context.moDataList);\r\n\r\n        let gridSetting = this.defaultGridSetting;\r\n        if (this.context.GetGridSetting) {\r\n            gridSetting = this.context.GetGridSetting() || this.defaultGridSetting;\r\n        }\r\n\r\n        this._setVisibleColumns();\r\n\r\n        gridSetting.SortSettingList ||= [];\r\n        this.allColumns = this.context.allColumns || [];\r\n        this.updateGridSetting(gridSetting, false, false);\r\n        this.parameters = BarsaApi.Common.Util.TryGetValue(\r\n            this.context,\r\n            'Setting.ClassNames.CustomUi.Parameters',\r\n            null\r\n        );\r\n        this.id = getUniqueId(4);\r\n\r\n        this.itemSelector = BarsaApi.Common.Util.TryGetValue(this.context, 'Setting.ClassNames.CustomUiRow.Selector');\r\n\r\n        this.parameters = BarsaApi.Common.Util.TryGetValue(this.context, 'Setting.ClassNames.CustomUi.Parameters');\r\n        const fieldSettings = BarsaApi.Common.Util.TryGetValue(this.parameters, 'FieldSettings.MoDataList', []);\r\n\r\n        fieldSettings.forEach((c) => {\r\n            this.fields[c.ComponentParameter.$Caption] = c.$Caption;\r\n        });\r\n        this._ulvMainService.context.RefreshAllCmdUi();\r\n    }\r\n\r\n    ngAfterViewInit(): void {\r\n        super.ngAfterViewInit();\r\n\r\n        this.deviceSize$\r\n            .pipe(\r\n                takeUntil(this._onDestroy$),\r\n                tap((deviceSize) => this._deviceSizeChanged(deviceSize))\r\n            )\r\n            .subscribe();\r\n        this._portalService.windowResize$.pipe(takeUntil(this._onDestroy$)).subscribe(() => this._windowResized());\r\n        this.context?.fireEvent('afterrender', this);\r\n    }\r\n    ngOnDestroy(): void {\r\n        super.ngOnDestroy();\r\n        this.context.un('MoDataListChanged', this._moDataListChanged);\r\n        this.context.un('GridSettingChanged', this._gridSettingChanged);\r\n    }\r\n    onResetGridSettings(): void {\r\n        const allColumns = this.allColumns.map((c) => ({\r\n            ...c,\r\n            Hidden: false,\r\n            Width: 0,\r\n            $Width: undefined,\r\n            $Width2: undefined\r\n        }));\r\n        const gridSettings = getResetGridSettings(allColumns, this.context);\r\n        this.updateGridSetting(gridSettings, false, true);\r\n    }\r\n    protected _columnSummary(e: ColumnSummaryType): void {\r\n        this.context.fireEvent(\r\n            'columnSummary',\r\n            this.context,\r\n            e.moArr,\r\n            e.column,\r\n            e.groupLevel,\r\n            e.groupName,\r\n            e.summaryFn\r\n        );\r\n    }\r\n    protected _gridSettingChanged(setting): void {\r\n        this.gridSettingSource.next(setting);\r\n    }\r\n    protected _prepareMoForNewForm(_context,mo): void {\r\n        mo && this._ulvMainService.prepareMoForNewForm(mo);\r\n    }\r\n    protected _moDataListChanged(moDataList): void {\r\n        this._ulvMainService.reSetMoDataList(moDataList);\r\n    }\r\n    protected _setAllChecked(items: MetaobjectDataModel[]): void {\r\n        this._allCheckedSource.next(items.length > 0 && !items.some((c) => !c.$IsChecked));\r\n    }\r\n\r\n    protected _handleColumnsResized(e: columnsResizedEventArgs): void {\r\n        const gridSetting: GridSetting = this.gridSettingSource.getValue();\r\n        const { columns, resized } = e;\r\n        const colList: ColSetting[] = gridSetting.ColSettingList;\r\n        resized.forEach((column1) => {\r\n            const resizedColumn = columns.find((c) => c.Name === column1.name);\r\n            if (!colList) {\r\n                return;\r\n            }\r\n            const column = colList.find((c) => c.Name === resizedColumn?.Name);\r\n            if (column) {\r\n                column.Width = column1.width;\r\n            } else if (resizedColumn) {\r\n                colList.push({ IsHidden: resizedColumn.Hidden, Name: resizedColumn.Name, Width: column1.width });\r\n            }\r\n        });\r\n        this._raiseEventUserSettingChanged(gridSetting);\r\n    }\r\n    protected _setVisibleColumns(): void {\r\n        const columns = GetAllColumnsSorted(this.context);\r\n        this._visibleColumnsSource.next(columns.filter((c) => !c.Hidden));\r\n    }\r\n    protected applyGroupby(): void {\r\n        const sortList: SortSetting[] = BarsaApi.Common.Util.TryGetValue(\r\n            this.context,\r\n            'Setting.View.GridSetting.SortSettingList',\r\n            []\r\n        );\r\n        this.groupbySource.next(sortList.filter((c) => c.IsGrouped));\r\n    }\r\n    protected _raiseRowClick(index, mo): void {\r\n        this.context?.fireEvent('rowdblclick', this.context, index, mo);\r\n    }\r\n    protected _deviceSizeChanged(_: string): void {}\r\n    protected _windowResized(): void {}\r\n\r\n    protected _openMo(mo, i): void {\r\n        this._raiseRowClick(i, mo);\r\n    }\r\n\r\n    protected updateGridSetting(setting, isSort = false, raiseEvent = true): void {\r\n        if (!setting) {\r\n            return;\r\n        }\r\n        this.context.Setting.View.GridSetting = setting;\r\n        this.gridSettingSource.next(setting);\r\n        this.applyGroupby();\r\n        if (isSort) {\r\n            setting.Event = 'SortChange';\r\n        } else {\r\n            setting.Event = '';\r\n        }\r\n        this._setVisibleColumns();\r\n        this._deviceSizeChanged(this._portalService.deviceSize);\r\n        if (raiseEvent) {\r\n            this._raiseEventUserSettingChanged(setting);\r\n        }\r\n    }\r\n    protected updateSortSettings(sortSettings, raiseEvent = true): void {\r\n        const gridSettings = this.context.Setting.View.GridSetting;\r\n        gridSettings.SortSettingList = sortSettings;\r\n        this.gridSettingSource.next(gridSettings);\r\n        this.applyGroupby();\r\n        gridSettings.Event = 'SortChange';\r\n        if (raiseEvent) {\r\n            this._raiseEventUserSettingChanged(gridSettings);\r\n        }\r\n    }\r\n    protected _raiseEventUserSettingChanged(gridSetting: GridSetting): void {\r\n        this.context.fireEvent('UserSettingChange', this.context, gridSetting);\r\n    }\r\n    protected _ulvCommandClicked(mo, index): void {\r\n        this._removeCheckedAll();\r\n        this._select(mo, index);\r\n    }\r\n    protected _checkedAll(): void {\r\n        const moDataList = this.moDataList;\r\n        moDataList.forEach((mo) => (mo.$IsChecked = true));\r\n        this._ulvMainService.reSetMoDataList();\r\n        this.context.fireEvent('rowSelectAll', this.context);\r\n    }\r\n    protected _removeCheckedAll(): void {\r\n        this._deselctAll();\r\n        // this.context.fireEvent('rowDeselectAll', this.context);\r\n    }\r\n\r\n    protected _deselctAll(): void {\r\n        const moDataList = this.moDataList;\r\n        moDataList.forEach((mo) => (mo.$IsChecked = false));\r\n        this._ulvMainService.reSetMoDataList();\r\n        this.context.fireEvent('rowselect', this.context, -1, null);\r\n    }\r\n    protected _deselect(mo, index): MetaobjectDataModel {\r\n        mo.$IsChecked = false;\r\n        this._ulvMainService.reSetMoDataList();\r\n        this.context.fireEvent('rowdeselect', this.context, index, mo);\r\n        return mo;\r\n    }\r\n\r\n    protected _select(mo, index): MetaobjectDataModel {\r\n        //    this._deselctAll();\r\n        mo.$IsChecked = true;\r\n        this._ulvMainService.reSetMoDataList();\r\n        this.context.fireEvent('rowselect', this.context, index, mo);\r\n        return mo;\r\n    }\r\n\r\n    protected _doCheckedAll(checked): void {\r\n        if (checked) {\r\n            this._checkedAll();\r\n        } else {\r\n            this._removeCheckedAll();\r\n        }\r\n    }\r\n\r\n    protected _getSelected(): MetaobjectDataModel | null {\r\n        const selectedMo = this.moDataList.find((mo) => mo.$IsChecked);\r\n        if (!selectedMo) {\r\n            return null;\r\n        }\r\n        selectedMo.json = selectedMo;\r\n        return selectedMo;\r\n    }\r\n    protected refreshContextMoDataList(moDataList): void {\r\n        this.context.fireEvent('RefreshContextMoDataList', moDataList);\r\n    }\r\n}\r\n","import {\r\n    Input,\r\n    Component,\r\n    HostBinding,\r\n    HostListener,\r\n    Output,\r\n    EventEmitter,\r\n    OnInit,\r\n    ChangeDetectionStrategy\r\n} from '@angular/core';\r\nimport { BaseComponent } from './base.component';\r\nimport { BarsaApi } from './barsa-api';\r\nimport { MetaobjectDataModel } from './models';\r\nimport { ReportSetting } from './report-base';\r\n\r\nexport interface FieldSettings extends MetaobjectDataModel {\r\n    ComponentParameter: MetaobjectDataModel;\r\n    RelatedField: string;\r\n}\r\nexport interface ReportItemSetting extends MetaobjectDataModel {\r\n    FieldSettings: {\r\n        MoDataList: Array<FieldSettings>;\r\n    };\r\n}\r\n\r\n@Component({\r\n    selector: 'bnrc-report-item-base',\r\n    template: '',\r\n    changeDetection: ChangeDetectionStrategy.OnPush,\r\n    standalone: false\r\n})\r\nexport class ReportItemBaseComponent extends BaseComponent implements OnInit {\r\n    @Output() itemClick = new EventEmitter();\r\n    @HostBinding('class') classNames2: string;\r\n    @Input() classNames: string;\r\n    @Input() context: {\r\n        [key: string]: any;\r\n        Setting: ReportSetting;\r\n    } | null;\r\n    @Input() mo: MetaobjectDataModel;\r\n    @Input() allColumns: any[];\r\n    @Input() index = -1;\r\n    fields: any;\r\n    parameters: ReportItemSetting | null;\r\n    constructor() {\r\n        super();\r\n        this.fields = {};\r\n    }\r\n\r\n    @HostListener('click', ['$event.target'])\r\n    onClick(): void {\r\n        this.itemClick.emit({ index: this.index, mo: this.mo });\r\n    }\r\n\r\n    ngOnInit(): void {\r\n        super.ngOnInit();\r\n        this.classNames2 = this.classNames;\r\n        this.parameters = BarsaApi.Common.Util.TryGetValue(this.context, 'Setting.ClassNames.CustomUiRow.Parameters');\r\n        const fieldSettings = BarsaApi.Common.Util.TryGetValue(this.parameters, 'FieldSettings.MoDataList', []);\r\n\r\n        fieldSettings.forEach((c) => {\r\n            this.fields[c.ComponentParameter.$Caption] = c.$Caption;\r\n        });\r\n    }\r\n}\r\n","import { Input, Component, ChangeDetectionStrategy } from '@angular/core';\r\nimport { BaseComponent } from './base.component';\r\nimport { SystemSetting } from './system-base';\r\n\r\nexport interface ApplicationSetting {\r\n    [key: string]: any;\r\n    ConnectionInfo: string;\r\n    AllowManagementWindow: boolean;\r\n    DefaultSystemId: string;\r\n    EnableCompactArray: boolean;\r\n    EnableNotification: boolean;\r\n    EnableScanner: boolean;\r\n    ForceFormHelpButton: boolean;\r\n    HideDeleteInForms: boolean;\r\n    HideThemeButton: boolean;\r\n    IsAdmin: boolean;\r\n    IsInitializing: boolean;\r\n    IsOnActivityDirectory: boolean;\r\n    IsUser: boolean;\r\n    MaxExcelExportRows: number;\r\n    NewDateFix: boolean;\r\n    NoLogout: boolean;\r\n    ScannerAgentValidVersion: string;\r\n    SecurityType: string;\r\n    ShowDebugToolbar: boolean;\r\n    ShowNextPrivious: boolean;\r\n    SystemDict: { [key: string]: SystemSetting };\r\n    Version: string;\r\n    VersionSpl: string;\r\n    User: {\r\n        DispalyName: string;\r\n        Id: string;\r\n        Name: string;\r\n    };\r\n    WebConfig: {\r\n        Workflow: {\r\n            ShowInfoBar: true;\r\n            ShowToolbar: true;\r\n            ShowUserMsg: true;\r\n        };\r\n    };\r\n}\r\n@Component({\r\n    selector: 'bnrc-application-base',\r\n    template: '',\r\n    changeDetection: ChangeDetectionStrategy.OnPush,\r\n    standalone: false\r\n})\r\nexport class ApplicationBaseComponent extends BaseComponent {\r\n    // @ViewChildren(PlaceHolderDirective) placeHoldersRef: QueryList<\r\n    //   PlaceHolderDirective\r\n    // >;\r\n    @Input() context: {\r\n        [key: string]: any;\r\n        Setting: ApplicationSetting;\r\n    };\r\n    @Input() selectedSystemId: string;\r\n    systemList: any[] = [];\r\n}\r\n","import { Input, Component, ChangeDetectionStrategy, ChangeDetectorRef, SimpleChanges, inject } from '@angular/core';\r\nimport { BaseComponent } from './base.component';\r\nimport { getUniqueId } from '../constants';\r\nimport { FormPanelService } from '../services/form-panel.service';\r\nimport { LayoutSetting } from './models';\r\n\r\n@Component({\r\n    selector: 'bnrc-layout-item-base',\r\n    template: '',\r\n    changeDetection: ChangeDetectionStrategy.OnPush,\r\n    standalone: false\r\n})\r\nexport class LayoutItemBaseComponent extends BaseComponent {\r\n    @Input() config: LayoutSetting;\r\n    @Input() isPanel: boolean;\r\n    @Input() maxLabelWidth: number;\r\n    @Input() rtl: boolean;\r\n    isSearchPanel: boolean;\r\n    isSearcPanelInSideContent: boolean;\r\n    searchPanelIsObject: boolean;\r\n    id: string;\r\n    protected formPanelService = inject(FormPanelService);\r\n    protected _cdr = inject(ChangeDetectorRef);\r\n\r\n    constructor() {\r\n        super();\r\n\r\n        this.id = getUniqueId(4);\r\n        this.formPanelService.isSearchPanel$.subscribe((isSearchPanel) => {\r\n            this.isSearchPanel = isSearchPanel;\r\n        });\r\n        this.formPanelService.isSearcPanelInSideContent$.subscribe((isSearcPanelInSideContent) => {\r\n            this.isSearcPanelInSideContent = isSearcPanelInSideContent;\r\n        });\r\n        this.formPanelService.searchPanelIsObject$.subscribe((searchPanelIsObject) => {\r\n            this.searchPanelIsObject = searchPanelIsObject;\r\n        });\r\n    }\r\n    ngOnChanges(changes: SimpleChanges): void {\r\n        super.ngOnChanges(changes);\r\n        const { maxLabelWidth } = changes;\r\n        if (maxLabelWidth && !maxLabelWidth.firstChange) {\r\n            this.maxLabelWidth = maxLabelWidth.currentValue;\r\n        }\r\n    }\r\n}\r\n","import { Input, Component, OnInit, ChangeDetectionStrategy, inject } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { getLabelWidth, getUniqueId } from '../constants';\r\nimport { LayoutService } from '../services/layout.service';\r\nimport { LayoutItemBaseComponent } from './layout-item-base';\r\nimport { LayoutSetting } from './models';\r\nimport { PortalService } from '../services/portal.service';\r\n\r\n@Component({\r\n    selector: 'bnrc-layout-panel-base',\r\n    template: '',\r\n    changeDetection: ChangeDetectionStrategy.OnPush,\r\n    standalone: false\r\n})\r\nexport class LayoutPanelBaseComponent extends LayoutItemBaseComponent implements OnInit {\r\n    @Input() parentDom: HTMLElement;\r\n    @Input() isPanel: boolean;\r\n    @Input() config: LayoutSetting;    \r\n    maxLabelWidth$: Observable<number>;\r\n    isSearchPanel: boolean;\r\n    id: string;\r\n    layoutControlCount = 0;\r\n    protected portalService = inject(PortalService);\r\n    protected layoutService = inject(LayoutService, { self: true });\r\n    constructor() {\r\n        super();\r\n        const layoutService = this.layoutService;\r\n        this.id = getUniqueId(4);\r\n        layoutService.id = 'panel' + this.id;\r\n        this.formPanelService.isSearchPanel$.subscribe((isSearchPanel) => {\r\n            this.isSearchPanel = isSearchPanel;\r\n        });\r\n    }\r\n    ngOnInit(): void {\r\n        super.ngOnInit();\r\n        this.formPanelService.formContainerDom = this.parentDom;\r\n        this.maxLabelWidth$ = this.layoutService.maxWidth$;\r\n        this._calcWidth(this.config);\r\n    }\r\n    protected _calcWidth(config): void {\r\n        config.items.forEach((item) => {\r\n            switch (item.xtype) {\r\n                case 'Ly.LayoutJoin':\r\n                    this._calcWidth(item);\r\n                    break;\r\n                case 'Ly.LayoutControl':\r\n                    this.layoutControlCount++;\r\n                    this._setLabelWidth(item);\r\n                    break;\r\n            }\r\n        });\r\n    }\r\n    protected _setLabelWidth(item: any): void {\r\n        const controlWidth = getLabelWidth(item);\r\n        if (controlWidth) {\r\n            this.layoutService.setMaxWidth(controlWidth);\r\n        }\r\n    }\r\n}\r\n","import {\r\n    AfterViewInit,\r\n    ChangeDetectionStrategy,\r\n    ChangeDetectorRef,\r\n    Component,\r\n    Injector,\r\n    OnDestroy,\r\n    OnInit,\r\n    Renderer2,\r\n    Type,\r\n    ViewChild,\r\n    ViewContainerRef,\r\n    ViewRef,\r\n    inject\r\n} from '@angular/core';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { BarsaApi } from './abstract-classes/barsa-api';\r\nimport { BaseComponent } from './abstract-classes/base.component';\r\nimport { getUniqueId } from './constants';\r\nimport { DIALOG_SERVICE, FORM_DIALOG_COMPONENT } from './injdection-tokens';\r\nimport { BarsaDialogService } from './services/barsa-dialog.service';\r\nimport { ContainerService } from './services/container.service';\r\nimport { PortalService } from './services/portal.service';\r\n@Component({\r\n    selector: 'bnrc-container',\r\n    template: '',\r\n    changeDetection: ChangeDetectionStrategy.OnPush,\r\n    standalone: false\r\n})\r\nexport abstract class ContainerComponent extends BaseComponent implements OnInit, AfterViewInit, OnDestroy {\r\n    @ViewChild('containerRef', { static: true, read: ViewContainerRef })\r\n    containerRef: ViewContainerRef;\r\n    oldContainerContainer: ContainerComponent;\r\n    oldNavigation: any;\r\n    parentContainer: any;\r\n    detachParent: any;\r\n    public id = getUniqueId(6);\r\n    \r\n    protected _activatedRoute = inject(ActivatedRoute);\r\n    protected _portalService = inject(PortalService);\r\n    protected _vcr = inject(ViewContainerRef);\r\n    protected _barsaDialogService = inject(BarsaDialogService);\r\n    protected _injector = inject(Injector);\r\n    protected _router = inject(Router);\r\n    protected _cdr = inject(ChangeDetectorRef);\r\n    protected _renderer2 = inject(Renderer2);\r\n    protected _dialogService = inject(DIALOG_SERVICE, { optional: true });\r\n    protected _containerService = inject(ContainerService, { self: true, optional: true });\r\n    protected _formDialogComponent = inject<Type<any>>(FORM_DIALOG_COMPONENT, { optional: true });\r\n    private _viewRef: ViewRef | null;\r\n\r\n    constructor() {\r\n        super();\r\n        this.oldContainerContainer = this._barsaDialogService.containerComponent;\r\n        this._barsaDialogService.containerComponent = this;\r\n    }\r\n    get injector(): Injector {\r\n        return this._injector;\r\n    }\r\n    get cdr(): ChangeDetectorRef {\r\n        return this._cdr;\r\n    }\r\n    get vcr(): ViewContainerRef {\r\n        return this.containerRef;\r\n    }\r\n    ngOnInit(): void {\r\n        this.parentContainer = BarsaApi.Ul.ApplicationCtrlr.CurrentSystemAdapter;\r\n        BarsaApi.Ul.ApplicationCtrlr.CurrentSystemAdapter = this;\r\n\r\n        this.oldNavigation = BarsaApi.Bw.Navigate;\r\n        BarsaApi.Bw.Navigate = (navigation: any[], isRelative, queryParams) => {\r\n            this._router.navigate(navigation, {\r\n                relativeTo: isRelative ? this._activatedRoute : null,\r\n                queryParams,\r\n                preserveFragment: true\r\n            });\r\n        };\r\n        super.ngOnInit();\r\n        if (this._containerService) {\r\n            this._containerService.setViewContainerRef(this.containerRef);\r\n        }\r\n    }\r\n    ngOnDestroy(): void {\r\n        BarsaApi.Ul.ApplicationCtrlr.CurrentSystemAdapter = this.parentContainer;\r\n        super.ngOnDestroy();\r\n        this._barsaDialogService.containerComponent = this.oldContainerContainer;\r\n        BarsaApi.Bw.Navigate = this.oldNavigation;\r\n    }\r\n    detach(): void {\r\n        this._viewRef = this.containerRef.detach();\r\n        this._cdr.detectChanges();\r\n    }\r\n    reAttach(): void {\r\n        if (this._viewRef) {\r\n            this.containerRef.insert(this._viewRef);\r\n            this._cdr.detectChanges();\r\n        }\r\n    }\r\n}\r\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    standalone: false\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';\r\n\r\nimport { FieldBaseComponent } from './field-base';\r\nimport { BarsaApi } from './barsa-api';\r\n@Component({\r\n    selector: 'bnrc-number-base',\r\n    template: '',\r\n    changeDetection: ChangeDetectionStrategy.OnPush,\r\n    standalone: false\r\n})\r\nexport class NumberBaseComponent extends FieldBaseComponent implements OnInit, OnDestroy {\r\n    hasMask: boolean;\r\n    tickRef: any;\r\n    protected inputElement: HTMLInputElement | null | undefined;\r\n    get decimalPrecision(): number {\r\n        const decimalPrecision = Number(this.Setting.DecimalPrecision);\r\n        if (isNaN(decimalPrecision)) {\r\n            return 0;\r\n        }\r\n        return decimalPrecision;\r\n    }\r\n    ngOnInit(): void {\r\n        super.ngOnInit();\r\n\r\n        this._updateBySetting();\r\n    }\r\n\r\n    ngOnDestroy(): void {\r\n        this._clearInterval();\r\n        super.ngOnDestroy();\r\n    }\r\n    onKeyDown(e): void {\r\n        const isCharacter = this._isCharacter(e);\r\n        if (!isCharacter) {\r\n            return;\r\n        }\r\n        const isValid = new RegExp('^[0-9,.,-]*$').test(e.currentTarget.value + e.key);\r\n        if (!isValid || e.key === '.') {\r\n            if (e.key === '.' && this.inputElement && this.decimalPrecision > 0) {\r\n                const cursorPosition = this.inputElement.value.indexOf('.');\r\n                this._setCursorPosition(cursorPosition + 1);\r\n            }\r\n            e.preventDefault();\r\n            e.stopPropagation();\r\n        } else if (isValid && this.inputElement) {\r\n            // در صورتی که عدد قبل از منفی قرار گیرد\r\n            const cursorPosition = this.inputElement.value.indexOf('-');\r\n            if (cursorPosition > -1 && this.inputElement.selectionStart === 0 && this.inputElement.selectionEnd === 0) {\r\n                e.preventDefault();\r\n                e.stopPropagation();\r\n            }\r\n        }\r\n        if (e.key === '-' && this.inputElement) {\r\n            const cursorPosition = this.inputElement.value.indexOf('-');\r\n            if (cursorPosition < 0 && this.inputElement.selectionStart === 0) {\r\n                return;\r\n            }\r\n            this._setCursorPosition(cursorPosition + 1);\r\n            e.preventDefault();\r\n            e.stopPropagation();\r\n        }\r\n    }\r\n    onValueChange(e): void {\r\n        const text: string = e.currentTarget?.value || '';\r\n        this.reFormatValue(text, e);\r\n    }\r\n\r\n    protected _updateBySetting(): void {\r\n        if (this.inputElement) {\r\n            const formated = this._getFormated(this.value).toString();\r\n            this.inputElement.value = formated;\r\n        }\r\n        this.hasMask =\r\n            BarsaApi.Common.Util.TryGetValue(this.context, 'Setting.ShowThousandSeperator', false) ||\r\n            BarsaApi.Common.Util.TryGetValue(this.context, 'Setting.DecimalPrecision', 0) > 0;\r\n    }\r\n    protected _configChaned(_): void {\r\n        // implemented by child components\r\n        this._updateBySetting();\r\n        this._cdr.detectChanges();\r\n    }\r\n    protected _setValue(value): void {\r\n        super._setValue(value);\r\n        this.reFormatValue(this.value, { target: this.inputElement });\r\n    }\r\n    protected _clearInterval(): void {\r\n        if (this.tickRef) {\r\n            clearInterval(this.tickRef);\r\n            this.tickRef = null;\r\n        }\r\n    }\r\n    protected _isCharacter(evt): boolean {\r\n        if (typeof evt.which === 'undefined') {\r\n            return true;\r\n        } else if (typeof evt.which === 'number' && evt.which > 0) {\r\n            return !evt.ctrlKey && !evt.metaKey && !evt.altKey && evt.which !== 8 && evt.key.length === 1;\r\n        }\r\n        return false;\r\n    }\r\n\r\n    protected _getFormated(val): string {\r\n        return this._numeralPipe.transform(val, this.decimalPrecision, this.Setting.ShowThousandSeperator).toString();\r\n    }\r\n    protected _setCursorPosition(cursorPosition): void {\r\n        if (this.inputElement) {\r\n            if (cursorPosition > this.inputElement.value.length && this.decimalPrecision) {\r\n                cursorPosition = this.inputElement.value.length;\r\n            }\r\n\r\n            this.inputElement.setSelectionRange(cursorPosition, cursorPosition);\r\n        }\r\n    }\r\n    protected _getMinusValue(isMinus: boolean, newVal: string | undefined): string {\r\n        let val2 = typeof newVal == 'undefined' ? '' : newVal;\r\n        val2 = isMinus ? `-${val2}` : val2;\r\n        return val2;\r\n    }\r\n    protected _syncInputElementValue(value: number, e: { target: any }): void {\r\n        const elValue = this._numeralPipe.getValue(e.target.value);\r\n        if (value === +elValue) {\r\n            return;\r\n        }\r\n        const formated = this._getFormated(value);\r\n        e.target.value = formated;\r\n    }\r\n    private reFormatValue(text: string | number, e: any): void {\r\n        let newVal: string | undefined;\r\n        if (typeof text === 'number') {\r\n            if (text === this.value) {\r\n                this._syncInputElementValue(this.value, e);\r\n                return;\r\n            }\r\n            text = text.toString();\r\n        }\r\n        if (typeof text === 'undefined' && typeof this.value === 'undefined') {\r\n            return;\r\n        }\r\n        const isMinus = text?.startsWith('-');\r\n        text = isMinus ? text?.substring(1, text.length) : text;\r\n\r\n        if (text) {\r\n            let indexofDot = text.indexOf('.');\r\n            const selectionStart = this.inputElement?.selectionStart;\r\n\r\n            const decimalPersicion = this.decimalPrecision;\r\n            if (decimalPersicion) {\r\n                const t = text.length - (indexofDot + 1);\r\n                if (t > decimalPersicion) {\r\n                    const diff = t - decimalPersicion;\r\n                    if (selectionStart && selectionStart < text.length) {\r\n                        // text = text.substring(0, text.length - diff);\r\n                        text =\r\n                            text.substring(0, selectionStart) +\r\n                            text.substring(selectionStart + 1, selectionStart + 1 + text.length - diff);\r\n                    } else {\r\n                        text = text.substring(0, text.length - 1);\r\n                    }\r\n                }\r\n            }\r\n            let formated: string = this._getFormated(text).toString();\r\n            newVal = this._numeralPipe.getValue(formated);\r\n\r\n            let indexOfDotFormated = formated.indexOf('.');\r\n\r\n            if (decimalPersicion === 0) {\r\n                indexofDot = text.length;\r\n                indexOfDotFormated = formated.length;\r\n            }\r\n            if (this.hasMask) {\r\n                let cursorPosition = this.inputElement?.selectionStart;\r\n                let diff = 0;\r\n                if (indexofDot < 0 && decimalPersicion > 0) {\r\n                    formated = this._getFormated(text);\r\n                    newVal = this._numeralPipe.getValue(formated);\r\n                } else if (cursorPosition != null && cursorPosition <= indexofDot) {\r\n                    diff = indexOfDotFormated - indexofDot;\r\n                    cursorPosition += diff;\r\n                }\r\n                if (this.inputElement && this.inputElement.value !== formated) {\r\n                    this.inputElement.value = this._getMinusValue(isMinus, formated);\r\n                }\r\n                if (e.target.value !== formated) {\r\n                    e.target.value = this._getMinusValue(isMinus, formated);\r\n                }\r\n                this._setCursorPosition(cursorPosition);\r\n            } else {\r\n                if (this.inputElement) {\r\n                    this.inputElement.value = this._getMinusValue(isMinus, newVal);\r\n                }\r\n            }\r\n        } else if (this.inputElement) {\r\n            this.inputElement.value = this._getMinusValue(isMinus, '');\r\n        }\r\n        if (newVal && +newVal === this.value) {\r\n            return;\r\n        }\r\n\r\n        this.value = this._getMinusValue(isMinus, newVal);\r\n        this.formmatedValue.emit(this.inputElement?.value);\r\n        this.valueChange.emit(this.value);\r\n    }\r\n}\r\n","import { SafeHtml } from '@angular/platform-browser';\r\nimport { DateInfo as DateInfoService } from '../date-services';\r\nexport interface ShortCutData extends MetaobjectDataModel {\r\n    [key: string]: any;\r\n    DynamicCommand: MetaobjectDataModel;\r\n}\r\nexport type ShortCuts = {\r\n    [key: string]: ShortCutData;\r\n};\r\nexport type UlvParamType = {\r\n    Flags: { Data: string; Extra: string; Search: string; View: string };\r\n    ReportName: string;\r\n    ReportId?: string;\r\n    UsageEnum: string;\r\n};\r\nexport class GeneralControlInfoModel {\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 = true;\r\n    IsReadOnly: boolean;\r\n    IsEnabled: boolean;\r\n    IsBold: boolean;\r\n    IsAutomatic: boolean;\r\n    JsonExtraProp: any | null;\r\n    Component: string;\r\n    Info: ControlInfoTypes;\r\n    FieldIcon: string;\r\n    IsLtr: boolean;\r\n    DisplayType: string;\r\n}\r\nexport interface FileAttachmentInfo {\r\n    [key: string]: any;\r\n    Id: string;\r\n    IsNew: boolean;\r\n    IsDeleted: boolean;\r\n    Type: string;\r\n    FileName?: string;\r\n}\r\nexport class StringControlInfoModel extends GeneralControlInfoModel {\r\n    MaxLength: number;\r\n    MinLength: number;\r\n    RegularExpression: string;\r\n    IsPassword: boolean;\r\n    IsMultiLine: boolean;\r\n    NullText: string;\r\n    AllowedStringChars: string;\r\n    OnlyAcceptCurrentCulture: boolean;\r\n}\r\nexport class RichStringControlInfoModel extends StringControlInfoModel {\r\n    IsHtmlViewer: boolean;\r\n}\r\nexport class NumberControlInfoModel extends GeneralControlInfoModel {\r\n    MinValue: number;\r\n    MaxValue: number;\r\n    DecimalPrecision: number;\r\n    ShowThousandSeperator: boolean;\r\n    NumberType: string;\r\n    CurrencySymbol: string;\r\n}\r\nexport class FilePictureInfoModel extends GeneralControlInfoModel {\r\n    Ext: string;\r\n    FileId: string;\r\n    IsDeleted: boolean;\r\n}\r\nexport class FileControlInfoModel extends GeneralControlInfoModel {\r\n    CanDelete: boolean;\r\n    CanSave: boolean;\r\n    CanView: boolean;\r\n    IsMultiSelect: boolean;\r\n    MaxFileCount: number;\r\n    MaxFileSizeKb: number;\r\n    OfficeOnline: boolean;\r\n    ValidExtensions: string;\r\n    ViewType: string;\r\n}\r\nexport class CommandControlInfoModel extends GeneralControlInfoModel {\r\n    MenuName: string;\r\n    DisableWhenReadonly: boolean;\r\n    DisplayType: string;\r\n    DynamicCommand: string;\r\n}\r\nexport class IconControlInfoModel extends GeneralControlInfoModel {}\r\nexport class PictureFileControlInfoModel extends GeneralControlInfoModel {\r\n    SizeMode: number;\r\n    MaxFileSizeKb: number;\r\n    ValidExtensions: string;\r\n}\r\nexport class GaugeControlInfoModel extends GeneralControlInfoModel {\r\n    IsAutomatic: boolean;\r\n    MaxValue: number;\r\n    MaxValue2: number;\r\n    MinValue: number;\r\n    MinValue2: number;\r\n    Value: number;\r\n}\r\nexport type RelationListTypes =\r\n    | RelationListControlInfoModel\r\n    | HistoryControlInfoModel\r\n    | RabetehAkseTakiListiControlInfoModel\r\n    | SingleRelationControlInfoModel;\r\nexport class RelationListControlInfoModel extends GeneralControlInfoModel {\r\n    RelationViewType: string;\r\n    UlvSetting: ReportModel;\r\n}\r\nexport class HistoryControlInfoModel extends RelationListControlInfoModel {\r\n    HasExternalParameter: boolean;\r\n    ParamName1: string;\r\n}\r\nexport class RabetehAkseTakiListiControlInfoModel extends RelationListControlInfoModel {\r\n    AutoSave;\r\n}\r\nexport class RelatedReportControlInfoModel extends GeneralControlInfoModel {\r\n    HasExternalParameter: boolean;\r\n    ParamName1: string;\r\n    UlvSetting: ReportModel;\r\n}\r\nexport class CodeEditorControlInfoModel extends GeneralControlInfoModel {\r\n    ExtraText: string;\r\n    Suggestions: string;\r\n}\r\nexport class EnumControlInfoModel extends GeneralControlInfoModel {\r\n    IsMultiSelect: boolean;\r\n    ShowAsRadioButton: boolean;\r\n    IconDisplayType: string;\r\n    DataSource: {\r\n        Rows: RowDataOption[];\r\n    };\r\n    EmptyRowData: RowDataOption;\r\n}\r\nexport class RowDataOption {\r\n    id: string;\r\n    IsEmpty: boolean;\r\n    txt: string;\r\n    txt_safe?: string;\r\n    url: string;\r\n}\r\nexport class DateTimeControlInfoModel extends GeneralControlInfoModel {\r\n    CalendarType: string;\r\n    DateFormat: string;\r\n    ShowDate1: boolean;\r\n    ShowTime1: boolean;\r\n    TimeFormat: string;\r\n}\r\nexport class BoolControlInfoModel extends GeneralControlInfoModel {\r\n    FalseCaption: string;\r\n    TrueCaption: string;\r\n    TrueIcon: string;\r\n    ViewType: string;\r\n    FalseIcon: string;\r\n}\r\nexport class CalculateControlInfoModel extends GeneralControlInfoModel {\r\n    InnerCtrlr: ControlInfoTypes;\r\n    ExecutaionTime: string;\r\n    EditType: string;\r\n    DontShowRecalculateButton: boolean;\r\n}\r\nexport class SubformControlInfoModel extends GeneralControlInfoModel {\r\n    TypeDefId: any;\r\n    TypeDefIcon: string;\r\n    IsComposedRelation: string;\r\n    DropDownReportId: string;\r\n    TypeViewId: string;\r\n    FormPanelSetting: FormSetting;\r\n}\r\nexport interface DownloadFileInfo {\r\n    fileId: string;\r\n    fileUrl: string;\r\n    viewInBrowser: boolean;\r\n    convertTo: string;\r\n    isOfficeOnline: boolean;\r\n    forOcx: boolean;\r\n}\r\nexport interface DownloadFileInfoResult {\r\n    filename: string;\r\n    content: string;\r\n    contentType: string;\r\n    succeed: boolean;\r\n}\r\nexport class LinearListControlInfoModel extends GeneralControlInfoModel {\r\n    DefaultField: string;\r\n    ExtraJsonPropField: string;\r\n    FillBeforeDropDown: boolean;\r\n    IsGeneralInfo: boolean;\r\n    IsMultiSelect: boolean;\r\n    Relation: ListRelationModel;\r\n    RelationViewType: string;\r\n    RowIcon: string;\r\n    TargetTypeDefId: string;\r\n}\r\nexport class ListRelationModel {\r\n    [key: string]: any;\r\n    ChildFdId: string;\r\n    ChildFdName: string;\r\n    IsAutoSave: boolean;\r\n    ParentMoId: string;\r\n    RelationType: string;\r\n}\r\nexport class SingleRelationControlInfoModel extends GeneralControlInfoModel {\r\n    ColumnRequestEnum: string;\r\n    DropDownReportId: string;\r\n    FillBeforeDropDown: boolean;\r\n    HideCombo: boolean;\r\n    RelationViewType: string;\r\n    PassParentForm: boolean;\r\n    ShowNewButton: boolean;\r\n    ShowOkCancel: boolean;\r\n    ViewRelatedFormType: string;\r\n    TargetTypeDefId: string;\r\n    DataSource: {\r\n        Rows: RowDataOption[];\r\n    };\r\n    PreviewFieldCaption: string;\r\n    PreviewFieldId: string;\r\n    PreviewFieldName: string;\r\n}\r\n\r\nexport type ControlInfoTypes =\r\n    | SubformControlInfoModel\r\n    | CalculateControlInfoModel\r\n    | BoolControlInfoModel\r\n    | EnumControlInfoModel\r\n    | IconControlInfoModel\r\n    | FileControlInfoModel\r\n    | DateTimeControlInfoModel\r\n    | NumberControlInfoModel\r\n    | StringControlInfoModel\r\n    | PictureFileControlInfoModel\r\n    | GaugeControlInfoModel\r\n    | CommandControlInfoModel\r\n    | CodeEditorControlInfoModel;\r\n\r\nexport interface FormViewSetting {\r\n    [key: string]: any;\r\n    Layout94: any;\r\n    ControlInfo: GeneralControlInfoModel[];\r\n}\r\nexport interface FormSetting {\r\n    [key: string]: any;\r\n    Data: {\r\n        [key: string]: any;\r\n        Mo: MetaobjectDataModel;\r\n    };\r\n    View: FormViewSetting;\r\n}\r\n\r\nexport class MetaobjectDataModel {\r\n    [key: string]: any;\r\n    $FieldDict?: { [key: string]: string };\r\n    $ReportId?: string;\r\n    $Type?: string;\r\n    $StyleIndex?: number[];\r\n    $Caption: string;\r\n    $Icon?: string;\r\n    $State?: string;\r\n    $TypeDefId?: string;\r\n    $TypeDefName?: string;\r\n    $Children?: MetaobjectDataModel[];\r\n    Inheritance?: MetaobjectDataModel;\r\n    InheritanceInfo?: {\r\n        ChildFieldName: string;\r\n        ParentFieldName: string;\r\n    };\r\n    Id: string;\r\n}\r\nexport declare class CalendarMetaobjectDataModel extends MetaobjectDataModel {\r\n    $Color: string;\r\n    $MomentStartDate: string;\r\n    $MomentEndDate: string;\r\n    $StartTimes: string;\r\n    $EndTimes: string;\r\n    $Title: string;\r\n    $Notes: string;\r\n    $StartDateInfo?: DateInfoService;\r\n    $EndDateInfo?: DateInfoService;\r\n}\r\n\r\nexport class MoForReportModel {\r\n    $Type?: string;\r\n    TypeDefId: string;\r\n    ReportId: string;\r\n    Icon?: string;\r\n    MoDataList: Array<MetaobjectDataModel>;\r\n    DeletedList: Array<{ Id: string; TypeDefId: string }>;\r\n    AddedList: Array<{ Id: string; TypeDefId: string }>;\r\n    Paging: PagingSetting;\r\n    Relation?: {\r\n        RelationType: string;\r\n        ParentMoId: string;\r\n        ParentFdId: string;\r\n        ChildFdId: string;\r\n        ParentFdName: string;\r\n        ChildFdName: string;\r\n        PassParentMoField: string;\r\n        IsAutoSave: boolean;\r\n        IsAutoSave_ReloadParentForms: boolean;\r\n        IsAutoSave_ReloadRootParentList: boolean;\r\n    };\r\n    constructor() {\r\n        this.DeletedList = this.AddedList = this.MoDataList = [];\r\n    }\r\n}\r\nexport class ReportBaseInfo {\r\n    Id: string;\r\n    Caption: string;\r\n    FolderId: string;\r\n    IconUrl: string;\r\n    Name: string;\r\n    ReportId: string;\r\n}\r\nexport class ReportExtraInfo extends ReportBaseInfo {\r\n    TypeDefId: string;\r\n    TypeDefCaption: string;\r\n    ReportType: string;\r\n    HideToolbar: boolean;\r\n}\r\n\r\nexport class MetaobjectRelationModel extends ListRelationModel {\r\n    ParentFdId: string;\r\n    PassParentMoField: string;\r\n}\r\n\r\nexport enum FieldInfoTypeEnum {\r\n    IntInfo = 0,\r\n    StringInfo = 2,\r\n    DateInfo = 3,\r\n    BoolInfo = 5,\r\n    EnumInfo = 6,\r\n    UserInfo = 7,\r\n    CategoryInfo = 8,\r\n    MetaObjectInfo = 9,\r\n    CommandInfo = 10, // 0x0000000A\r\n    PicturesInfo = 11, // 0x0000000B\r\n    RelationInfo = 12, // 0x0000000C\r\n    HistoryInfo = 13, // 0x0000000D\r\n    RelationInfoReverse_AksListi = 14, // 0x0000000E\r\n    CreatorUserInfo = 15, // 0x0000000F\r\n    CreationDateInfo = 16, // 0x00000010\r\n    LastUpdateDateInfo = 17, // 0x00000011\r\n    ReminderInfo = 18, // 0x00000012\r\n    RichStringInfo = 19, // 0x00000013\r\n    ConvertCommandInfo = 20, // 0x00000014\r\n    RelationInfoSingleReverse_AksTakiListi = 21, // 0x00000015\r\n    DialCommandInfo = 22, // 0x00000016\r\n    FindContactCommandInfo = 23, // 0x00000017\r\n    SequenceCommandInfo = 24, // 0x00000018\r\n    CurrencyInfo = 25, // 0x00000019\r\n    SinglePictureInfo = 26, // 0x0000001A\r\n    WordReportCommandInfo = 27, // 0x0000001B\r\n    HierarchicalInfo = 28, // 0x0000001C\r\n    TimeSpanInfo = 29, // 0x0000001D\r\n    ReportInfo = 30, // 0x0000001E\r\n    FileInfo = 31, // 0x0000001F\r\n    WordFileInfo = 32, // 0x00000020\r\n    PictureFileInfo = 33, // 0x00000021\r\n    GaugeInfo = 34, // 0x00000022\r\n    CodeInfo = 35, // 0x00000023\r\n    WorkCenterInfo = 36, // 0x00000024\r\n    IsDeletedInfo = 37, // 0x00000025\r\n    RowNumberInfo = 38, // 0x00000026\r\n    BinaryInfo = 39, // 0x00000027\r\n    ReverseMetaObjectInfo_AksTakiTaki = 40, // 0x00000028\r\n    ColorInfo = 41, // 0x00000029\r\n    IconInfo = 42, // 0x0000002A\r\n    RefreshFieldCommandInfo = 43, // 0x0000002B\r\n    ReferenceFieldInfo = 44, // 0x0000002C\r\n    SearchCommandInfo = 45, // 0x0000002D\r\n    OrderInfo = 46 // 0x0000002E\r\n}\r\nexport interface ClassNamesModel {\r\n    CommandBarClass: string;\r\n    DataClass: string;\r\n    SelectionClass: string;\r\n    ViewerClass: string;\r\n}\r\nexport interface ExtraModel {\r\n    CustomCommands?: CustomCommand[];\r\n    DefaultCommandsAccess?: DefaultCommandsAccess;\r\n    ParentUlvConfig?: any;\r\n    Relation?: MetaobjectRelationModel;\r\n    Report?: ReportExtraInfo;\r\n    ExtraJsonPropReport?: any;\r\n}\r\n\r\nexport class BaseReportModel {\r\n    ClassNames: ClassNamesModel;\r\n    Extra: ExtraModel;\r\n    View: ViewTypes;\r\n    SearchPanel: any;\r\n    DefaultItemComponent = 'ReportDefaultItemComponent';\r\n}\r\nexport interface DefaultCommandsAccess {\r\n    Add: boolean;\r\n    AddToList: boolean;\r\n    Delete: boolean;\r\n    Edit: boolean;\r\n    Export: boolean;\r\n    Print: boolean;\r\n    Refresh: boolean;\r\n    RemoveFromList: boolean;\r\n    View: boolean;\r\n}\r\nexport class CustomCommand {\r\n    Data: any;\r\n    DisableWhenReadonly: boolean;\r\n    HideDisable: boolean;\r\n    IconUrl: string;\r\n    IsLarge: boolean;\r\n    Mytype: string;\r\n    Order: number;\r\n    ShowOnContext: boolean;\r\n    ShowOnToolbar: boolean;\r\n    Text: string;\r\n    UseAlways: boolean;\r\n    UseForMulti: boolean;\r\n    UseForSingle: boolean;\r\n}\r\nexport class ReportModel extends BaseReportModel {\r\n    Data: MoForReportModel;\r\n    constructor() {\r\n        super();\r\n    }\r\n}\r\nexport class ReportListModel extends BaseReportModel {\r\n    View: GridView;\r\n}\r\nexport class ReportFormModel extends BaseReportModel {\r\n    View: FormView;\r\n}\r\nexport interface TreeView {\r\n    ConditionalFormats: [];\r\n    ParentIdDbName: string;\r\n    ShowSelectionChecks: boolean;\r\n    TreeAutoOpenLevels: number;\r\n}\r\n\r\nexport interface GridView {\r\n    AllowGridColumnSort: boolean;\r\n    AutoInlineEdit: boolean;\r\n    ColumnRequestEnum: string;\r\n    Columns: Array<ReportViewColumn>;\r\n    ConditionalFormats: [];\r\n    DisableRowReload: boolean;\r\n    GridSetting: GridSetting;\r\n    Grid_FreeColumnSizing: boolean;\r\n    Grid_GridLines: string;\r\n    Grid_HideHeader: boolean;\r\n    Grid_ShowRowNumber: boolean;\r\n    HasConditionalFormat: boolean;\r\n    HasSummaryRow: boolean;\r\n    HideIcon: boolean;\r\n    IsCheckList: boolean;\r\n}\r\nexport interface CalendarView {\r\n    CalendarFields: CalendarFields;\r\n}\r\nexport interface FormView {\r\n    FormPanelSetting: any;\r\n}\r\nexport type ViewTypes = GridView | CalendarView | TreeView | FormView;\r\n\r\nexport type ReportModelTypes = ReportListModel | ReportCalendarModel | ReportFormModel | ReportTreeModel;\r\n\r\nexport class ReportCalendarModel extends BaseReportModel {\r\n    View: CalendarView;\r\n}\r\nexport class ReportTreeModel extends BaseReportModel {\r\n    View: TreeView;\r\n}\r\nexport interface CalendarFields {\r\n    EndDate: string;\r\n    Notes: string;\r\n    StartDate: string;\r\n    Title: string;\r\n    Color: string;\r\n}\r\n\r\nexport class ReportViewColumn {\r\n    Alias: string;\r\n    Caption: string;\r\n    FieldDefId: string;\r\n    FieldTypeId: number | string;\r\n    FieldType: string;\r\n    HasSummary: boolean;\r\n    Hidden: boolean;\r\n    IsLtr: boolean;\r\n    IsPreview: boolean;\r\n    MetaFieldTypeId: string;\r\n    Name: string;\r\n    Width: number;\r\n    Tag?: string;\r\n    Icon: string;\r\n    OnlyImage?: boolean;\r\n    Extra?: any;\r\n    $ContentWidth?: string;\r\n    $Width?: string;\r\n    $ColumnWidthNum?: number;\r\n    $ColumnWidth?: string;\r\n    $FitContainerWidth?: string;\r\n    $MergedFieldsToColumn?: string[];\r\n    $CSSClassName?: string;\r\n    $CustomComponent?: EjrayOlgo;\r\n    $TextWidth?: number;\r\n    $IsImageOricon?: boolean;\r\n}\r\n\r\nexport class GridSetting {\r\n    ColSettingList: Array<ColSetting>;\r\n    SortSettingList: Array<SortSetting>;\r\n    AutoSizeColumns: boolean;\r\n}\r\nexport class ColSetting {\r\n    Name: string;\r\n    Width: number;\r\n    IsHidden: boolean;\r\n}\r\nexport class SortSetting {\r\n    Name: string;\r\n    SortDirection: string;\r\n    IsGrouped: boolean;\r\n}\r\n\r\nexport class ReportField {\r\n    public key: string;\r\n    public value: string;\r\n    public caption: string;\r\n    constructor(public column: ReportViewColumn, public item: any) {\r\n        const name = column.Name;\r\n        this.caption = column.Caption;\r\n        this.value = this.item[name];\r\n        if (Number(column.FieldTypeId) === FieldInfoTypeEnum.DateInfo) {\r\n            this.value = this.item[name + '$Caption'];\r\n        }\r\n        if (Number(column.FieldTypeId) === FieldInfoTypeEnum.IconInfo) {\r\n            this.value = this.item[name].Url;\r\n        }\r\n    }\r\n}\r\n\r\nexport interface LoginResult {\r\n    data: { sth: string };\r\n}\r\nexport interface ComponentSettingsDataModel extends MetaobjectDataModel {\r\n    PlaceHolders?: PlaceHolderDataModel[];\r\n}\r\nexport interface ComponentDataModel extends MetaobjectDataModel {\r\n    Selector: string;\r\n    Settings: ComponentSettingsDataModel;\r\n}\r\nexport interface PlaceHolderDataModel extends MetaobjectDataModel {\r\n    Name: string;\r\n    Title: string;\r\n    IsPage: boolean;\r\n    OrderNumber: string;\r\n}\r\n\r\nexport interface ModuleDataModel extends MetaobjectDataModel {\r\n    Title: string;\r\n    PlaceHolder: PlaceHolderDataModel;\r\n    Component: ComponentDataModel;\r\n}\r\nexport interface PageListReportModel extends MoForReportModel {\r\n    MoDataList: Array<PageDataModel>;\r\n}\r\nexport interface ModuleListReportModel extends MoForReportModel {\r\n    MoDataList: Array<ModuleDataModel>;\r\n}\r\nexport interface PageDataModel extends MetaobjectDataModel {\r\n    Component: ComponentDataModel;\r\n    ModuleList: ModuleListReportModel;\r\n    ChildPageList: PageListReportModel;\r\n    Title: string;\r\n    Route: string;\r\n    IsDefaultRoute: string;\r\n    IsLoginRoute: string;\r\n    ComponentName: string;\r\n    ComponentSelector: string;\r\n}\r\n\r\nexport interface PortalDataModel extends PageDataModel {\r\n    IsActive: boolean;\r\n    IsPwa: boolean;\r\n    PortalSettings: MetaobjectDataModel;\r\n}\r\nexport interface GroupVisibility {\r\n    enable: boolean;\r\n    visible: boolean;\r\n    readonly: boolean;\r\n}\r\n\r\nexport interface IHeaderLayout {\r\n    [key: string]: any;\r\n    Title: string;\r\n    Subtitle: string;\r\n    Avatar: any;\r\n    FacetList: { MoDataList: MetaobjectDataModel[] };\r\n}\r\n\r\nexport interface MenuItem {\r\n    icon: string;\r\n    text: string;\r\n    itemId: string;\r\n    Data: any;\r\n    Command: any;\r\n    handler: () => void;\r\n    IsBuiltin?: boolean;\r\n    menu?: { items: MenuItem[] };\r\n}\r\nexport interface PagingSetting {\r\n    EndIndex: number;\r\n    HasPaging: boolean;\r\n    Page: number;\r\n    PageSize: number;\r\n    RowCount: number;\r\n    StartIndex: number;\r\n    TotalPages: number;\r\n    TotalRows: number;\r\n}\r\nexport interface ColumnInfoType {\r\n    Name: string;\r\n    Hidden: boolean;\r\n    Caption: string;\r\n    IsMandatory?: boolean;\r\n    Width: number;\r\n}\r\nexport interface SearchPanelSettings extends MetaobjectDataModel {\r\n    Title: string;\r\n    ReportId: string;\r\n    IsDefault: boolean;\r\n    IsPublic: boolean;\r\n    ApplyAutomatically: boolean;\r\n    SearchMo?: string;\r\n    FieldsSetting?: string;\r\n}\r\nexport declare type DeviceSize = 'desktop' | 'mobile' | 'tablet';\r\nexport const DateRanges = [\r\n    'DateR_None',\r\n    'DateR_SpecificRange',\r\n    'DateR_Today',\r\n    'DateR_ThisWeek',\r\n    'DateR_ThisMonth',\r\n    'DateR_ThisYear',\r\n    'DateR_DaysBefore',\r\n    'DateR_PrevWeek',\r\n    'DateR_PrevMonth',\r\n    'DateR_PrevYear',\r\n    'DateR_DaysAfter',\r\n    'DateR_NextWeek',\r\n    'DateR_NextMonth',\r\n    'DateR_NextYear'\r\n];\r\n\r\nexport interface UiReportViewBase {\r\n    UiComponent: {\r\n        Component: boolean;\r\n        Module: string;\r\n        ModuleFileName: string;\r\n        Name: string;\r\n        Selector: string;\r\n        Settings: UiReportViewBaseSetting;\r\n    };\r\n}\r\nexport interface UiReportViewBaseSetting {\r\n    [key: string]: any;\r\n    Type: string;\r\n    Icon: string;\r\n    IsDefault: boolean;\r\n    Hidden: boolean;\r\n    EnableSearch: boolean;\r\n    DisableResponsive?: boolean;\r\n    DisableOverflowContextMenu?: boolean;\r\n    HorizontalGroupBy: boolean;\r\n    BackgroundImage: FileAttachmentInfo;\r\n    BackgroundColor: string;\r\n}\r\n\r\nexport interface LayoutSetting {\r\n    [key: string]: any;\r\n    Title?: string;\r\n    xtype: string;\r\n    TextVisible?: boolean;\r\n    items: LayoutSetting[];\r\n    IsRoot?: boolean;\r\n    SelectedTabPageName?: string;\r\n}\r\nexport declare type AbbrevationDeviceSize = 's' | 'm' | 'l' | 'xl';\r\nexport declare type CardMediaSize = '32x32' | '64x64' | '128x128' | '256x256';\r\nexport interface TreeNodeObj {\r\n    isExpand: boolean;\r\n    visibility: boolean;\r\n    expand: () => void;\r\n    collapse: () => void;\r\n    Data: MetaobjectDataModel;\r\n    children: TreeNodeObj[];\r\n    icon: string;\r\n    key: string;\r\n    leaf: boolean;\r\n    text: string;\r\n    level: number;\r\n    loading?: boolean;\r\n    hasOneDepthLevel?: boolean;\r\n    parentNode: TreeNodeObj | null;\r\n    firstChild: TreeNodeObj | null;\r\n    lastChild: TreeNodeObj | null;\r\n    previousSibling: TreeNodeObj | null;\r\n    nextSibling: TreeNodeObj | null;\r\n    attributes: { Data: MetaobjectDataModel | null };\r\n    hasChildNodes: () => boolean;\r\n    noDrop: boolean;\r\n    $Children?: TreeNodeObj[];\r\n}\r\n\r\nexport interface ColumnResizedArgs {\r\n    name: string;\r\n    width: number;\r\n    thDom: HTMLTableCellElement;\r\n}\r\nexport type columnsResizedEventArgs = { columns: Array<ReportViewColumn>; resized: Array<ColumnResizedArgs> };\r\nexport type RelationItemType = {\r\n    Id: string;\r\n    SourceTypeDefId: string;\r\n    ObjectInRelationName: string;\r\n    GroupCaption: string;\r\n};\r\n\r\nexport interface EjrayOlgo extends MetaobjectDataModel {\r\n    Module: string;\r\n    ModuleFileName: string;\r\n    Name: string;\r\n    Selector: string;\r\n    Parameters?: MetaobjectDataModel;\r\n    Settings?: MetaobjectDataModel;\r\n}\r\n\r\nexport interface IUploadingState {\r\n    key: string;\r\n    uploading: boolean;\r\n    state: 'Uploading' | 'Error' | 'Complete' | 'Start';\r\n    progress: any;\r\n}\r\nexport type GroupByItem = { [key: string]: any; id: string; key: string; value: any[] };\r\nexport type NotifyOptions = {\r\n    Sound: boolean; // Sound of notification. Set this false to disable sound.\r\n    Image: string | null; // Image source string\r\n    Title: string | null; // Title of notification. If you do not include the title in options it will automatically takes its value\r\n    Icon: boolean; // Icon of notification. Leave as is for default icon or set custom string\r\n    Delay: number; // Hide notification after this time (in miliseconds)\r\n    Closable: boolean; // Make notifications closable\r\n    DelayIndicator: boolean; // Show timer indicator\r\n    CloseOnClick: boolean; // Close notifications by clicking on them\r\n    IsRtl: boolean;\r\n    Position: string | object; // Available options: \"top left\", \"top right\", \"bottom left\", \"bottom right\", \"center top\", \"center bottom\"\r\n    SoundPath: string; // The folder path where sounds are located\r\n    Size: string; // normal, mini, large\r\n    ContinueDelayOnInactiveTab: boolean; // Continue delay when browser tab is inactive\r\n    Width: number; // Width of notification box\r\n    MessageHeight: number; // Notification message maximum height.\r\n    NotificationItem?: NotificationItem;\r\n};\r\nexport type ShareButtonsChoiceDef = {\r\n    formPanelCtrlr: any;\r\n    mo: MetaobjectDataModel;\r\n    choiceList: ChoiceDef[];\r\n    add: boolean;\r\n};\r\nexport type ChoiceDef = {\r\n    ActivityDefId: string;\r\n    ActivityRunId: string;\r\n    ChoiceDefId: string;\r\n    ChoiceName?: string;\r\n    Title: string;\r\n    Icon?: string;\r\n    HasBar?: boolean;\r\n};\r\nexport type WorkflowExecuteChoiceStatus = {\r\n    loading: boolean;\r\n    result: any;\r\n    error: any;\r\n    choice?: ChoiceDef;\r\n};\r\nexport type NotificationPayload = {\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};\r\nexport type NotificationAction = {\r\n    Title: string;\r\n    Id: string;\r\n    Icon: string;\r\n    Status: string | any;\r\n};\r\nexport type NotificationItem = MetaobjectDataModel & {\r\n    Title: string;\r\n    Unread: boolean;\r\n    Content: string;\r\n    $SafeContent?: SafeHtml;\r\n    Priority: number;\r\n    Subject: string;\r\n    Tag: string;\r\n    Icon: string;\r\n    Image: string;\r\n    CreationDate: Date;\r\n    CreationDate$Caption: string;\r\n    UiActions?: NotificationAction[];\r\n    $ChoiceDefStatus?: WorkflowExecuteChoiceStatus;\r\n};\r\n\r\nexport type ExNotificationPayload = {\r\n    lang: string;\r\n    isRtl: boolean;\r\n    notificationItem: NotificationItem;\r\n};\r\nexport type FormVisibilityStatus = 'Pending' | 'Visible';\r\nexport type CartableTemplateKey = { TypeDefId: string; SettingsId: string };\r\nexport enum SortDirection {\r\n    NONE = 'none',\r\n    ASC = 'asc',\r\n    DESC = 'desc'\r\n}\r\nexport interface CollectionSort {\r\n    field: string | null;\r\n    direction: SortDirection;\r\n    isNumber?: boolean;\r\n}\r\nexport interface SearchInput {\r\n    text: string;\r\n    category: string | null;\r\n}\r\nexport interface CollectionGroup {\r\n    field: string;\r\n    direction: SortDirection;\r\n    showAsColumn: boolean;\r\n}\r\n\r\nexport interface CollectionPage {\r\n    pageSize: number;\r\n    currentPage: number;\r\n}\r\n\r\nexport interface CollectionState {\r\n    sortBy: CollectionSort[];\r\n    groupBy: CollectionGroup[];\r\n    page: CollectionPage;\r\n    searchInput: SearchInput;\r\n}\r\n\r\nexport interface TableState extends CollectionState {\r\n    columns: string[];\r\n    columnKeys: string[];\r\n    freezeToColumn: string | null;\r\n}\r\nexport enum SelectionMode {\r\n    SINGLE = 'single',\r\n    MULTIPLE = 'multiple',\r\n    NONE = 'none'\r\n}\r\nexport interface TypeUlvMainCtrlr {\r\n    Adapter: any;\r\n    Setting: any;\r\n    System: any;\r\n    UlvParams: any;\r\n    Features: any;\r\n    UiOverride: any;\r\n    SearchPanelCtrlr: any;\r\n    SelectionAdapter: any;\r\n    DataCtrlr: TypeUlvDataCtrlr;\r\n    CommandBarCtrlr: any;\r\n    ViewerAdapter: any;\r\n    ParentMo: any;\r\n    FieldCtrlr: any;\r\n    isMandatory: boolean; // portal use it. component madarek\r\n    /// Related field of Ulv\r\n    // ParentFieldInfoCtrlr: null,\r\n    IsPreviewSourceField: boolean;\r\n    /// Indicate whether this Ulv is used as relation field that is PreviewSource for a subform\r\n    ShowOkCancelButtons: boolean;\r\n    _isEnable: boolean;\r\n    _isReadOnly: boolean;\r\n    _isVisible: boolean;\r\n    FootterButtons: boolean;\r\n    RefreshRowsByMosNoSelectionChange(\r\n        edidedMos: MetaobjectDataModel[],\r\n        addedMos: MetaobjectDataModel[],\r\n        deletedMos: MetaobjectDataModel[]\r\n    ): void;\r\n    RefreshRowsByMos(\r\n        edidedMos: MetaobjectDataModel[],\r\n        addedMos: MetaobjectDataModel[],\r\n        deletedMos: MetaobjectDataModel[]\r\n    ): void;\r\n}\r\n\r\nexport interface TypeUlvDataCtrlr {\r\n    GetEditFormParams(mo, isReadOnly, isNew, inheritanceChildTypeDef, doReturn): Record<string, any>;\r\n}\r\nexport interface FormComponentParams {\r\n    formSetting?: FormSetting;\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    isSimple?: boolean;\r\n    loadActivityView?: boolean;\r\n}\r\nexport interface BruleActionMessage {\r\n    MessageType: number;\r\n    EscapeCharacters: boolean;\r\n    MessageExpression: string;\r\n    MessageExpressionHtml: SafeHtml;\r\n}\r\nexport type ColumnSummaryType = {\r\n    moArr: MetaobjectDataModel[];\r\n    column: ReportViewColumn;\r\n    groupName: string;\r\n    groupLevel: number;\r\n    summaryFn: (val) => void;\r\n};\r\nexport interface ContainerReportSetting {\r\n    RelatedReport: MetaobjectDataModel;\r\n    RowClick: string;\r\n    DataOnly: boolean;\r\n}\r\nexport type CssBackground = {\r\n    color: string;\r\n    url: string;\r\n    repeat: boolean;\r\n};\r\nexport interface UiResponsiveSettings {\r\n    IsActive: boolean;\r\n    XxlColumns: number;\r\n    XlColumns: number;\r\n    LColumns: number;\r\n    MdColumns: number;\r\n    SmColumns: number;\r\n}\r\nexport type CultureTypes = 'fa-IR' | 'ar-AE' | 'en-US';\r\nexport interface ISystemData {\r\n    Id: string;\r\n    Name: string;\r\n    Caption: string;\r\n    IconName: string;\r\n    RootFolderId: string;\r\n    IsLoaded: boolean;\r\n    IsUiCreated: boolean;\r\n    IsActive: boolean;\r\n    CustomCodeList: any;\r\n    OnlyCode: boolean;\r\n    NoUi: boolean;\r\n    HasVerifyPassword: boolean;\r\n    ExtraData: any;\r\n    Navigator: Navigator;\r\n    Modules: Modules;\r\n    ShowRibbon: boolean;\r\n    JsonExtraProp: Record<string, any>;\r\n    CommandGroups: CommandGroup[];\r\n    UseTreeNavigator: boolean;\r\n}\r\nexport interface CommandGroup {\r\n    Caption: string;\r\n    Name: string;\r\n    Key: string;\r\n    Order: number;\r\n    Commands: Command[];\r\n}\r\n\r\nexport interface Command {\r\n    Caption: string;\r\n    Name: string;\r\n    Key: string;\r\n    Size: string;\r\n    IconSize: number;\r\n    Alignment: string;\r\n    Icon: string;\r\n    Menu: Menu[];\r\n    IsGlobal: boolean;\r\n    Order?: number;\r\n}\r\n\r\nexport interface Menu {\r\n    Caption: string;\r\n    Name: string;\r\n    Key: string;\r\n    CommandId: string;\r\n    DynamicCommand?: MetaobjectDataModel;\r\n    Size: string;\r\n    IconSize: number;\r\n    Alignment: string;\r\n    Icon: string;\r\n    Order?: number;\r\n    IsGlobal: boolean;\r\n}\r\nexport interface Navigator {\r\n    Root: NavigatorRoot;\r\n    Width: number;\r\n}\r\nexport interface NavigatorRoot {\r\n    IsRoot: boolean;\r\n    IsTab: boolean;\r\n    Id: string;\r\n    FolderId: string;\r\n    ReportId: string;\r\n    Name: string;\r\n    Caption: string;\r\n    ReportCountExtension: boolean;\r\n    NotLoaded: boolean;\r\n    IconUrl: string;\r\n    Items: NavigatorRootItem[];\r\n}\r\nexport interface NavigatorRootItem {\r\n    IsRoot: boolean;\r\n    IsTab: boolean;\r\n    Id: string;\r\n    FolderId: string;\r\n    ReportId: string;\r\n    Name: string;\r\n    Caption: string;\r\n    ReportCountExtension: boolean;\r\n    NotLoaded: boolean;\r\n    IconUrl: string;\r\n    Items: NavigatorFolder[];\r\n}\r\nexport interface NavigatorFolder {\r\n    IsRoot: boolean;\r\n    IsTab: boolean;\r\n    Id: string;\r\n    FolderId: string;\r\n    ReportId: string;\r\n    Name: string;\r\n    Caption: string;\r\n    ReportCountExtension: boolean;\r\n    NotLoaded: boolean;\r\n    IconUrl: string;\r\n    Items: NavigatorFolderItem[];\r\n    FolderJsonExtraProp?: Record<string, any>;\r\n}\r\nexport interface NavigatorFolderItem {\r\n    IsRoot: boolean;\r\n    IsTab: boolean;\r\n    Id: string;\r\n    FolderId: string;\r\n    ReportId: string;\r\n    Name: string;\r\n    Caption: string;\r\n    ReportCountExtension: boolean;\r\n    NotLoaded: boolean;\r\n    ShowReportInNavigator?: boolean;\r\n    InsideView_Height?: number;\r\n    InsideView_RelatedFieldName?: string;\r\n    InsideView_RelatedFieldId?: string;\r\n    InsideView_ReportName?: string;\r\n    IconUrl?: string;\r\n    DynamicCommand?: MetaobjectDataModel;\r\n}\r\nexport interface Modules {\r\n    GetListMethod: string;\r\n    AddToFavoriteMethod: string;\r\n    RemoveFromFavoriteMethod: string;\r\n}\r\nexport interface ISystem {\r\n    Caption: string;\r\n    Id: string;\r\n    Name: string;\r\n    SystemData: ISystemData;\r\n}\r\nexport type CommonObservable = {\r\n    on: (args: any) => void;\r\n    events: Record<string, any>;\r\n    fireEvent: (...args: any[]) => void;\r\n};\r\nexport type NavData = {\r\n    Caption: string;\r\n    FolderId: string;\r\n    IconUrl: string;\r\n    Id: string;\r\n    IsRoot: boolean;\r\n    IsTab: boolean;\r\n    Items: Array<any>;\r\n    Name: string;\r\n    NotLoaded: boolean;\r\n    Parent: NavData;\r\n    ReportCountExtension: boolean;\r\n    selected: boolean;\r\n    ReportId: string;\r\n    childControl: {\r\n        controlItems: Array<CustomNavPageUi>;\r\n    };\r\n};\r\nexport type NavChildData = {\r\n    Caption: string;\r\n    FolderId: string;\r\n    IconUrl: string;\r\n    Id: string;\r\n    IsRoot: boolean;\r\n    IsTab: boolean;\r\n    Name: string;\r\n    NotLoaded: boolean;\r\n    ReportCountExtension: boolean;\r\n    ReportId: string;\r\n};\r\nexport type NavGroupNode = {\r\n    cls: string;\r\n    data: NavChildData;\r\n    icon: string;\r\n    fontIcon: string;\r\n    fontName: any;\r\n    id: string;\r\n    isDynCommand: boolean;\r\n    leaf: boolean;\r\n    text: string;\r\n    children: NavGroupNode[];\r\n};\r\n\r\nexport type CustomNavGroupUi = CommonObservable & {\r\n    Caption: string;\r\n    FolderId: string;\r\n    IconUrl: string;\r\n    fontIcon: string;\r\n    fontName: any;\r\n    Id: string;\r\n    IsRoot: boolean;\r\n    IsTab: boolean;\r\n    Name: string;\r\n    NotLoaded: boolean;\r\n    ShowReportInNavigator: boolean;\r\n    ReportId: string;\r\n    InsideView_Height: number;\r\n    InsideView_RelatedFieldId: string;\r\n    InsideView_RelatedFieldName: string;\r\n    InsideView_ReportName: string;\r\n};\r\nexport type CustomNavGroupsUi = CommonObservable & {\r\n    Caption: string;\r\n    FolderId: string;\r\n    IconUrl: string;\r\n    fontIcon: string;\r\n    fontName: any;\r\n    Id: string;\r\n    IsRoot: boolean;\r\n    IsTab: boolean;\r\n    Items: Array<CustomNavGroupUi>;\r\n    Name: string;\r\n    NotLoaded: boolean;\r\n    Parent: CustomNavPageUi;\r\n    ShowReportInNavigator: boolean;\r\n    ReportId: string;\r\n};\r\nexport type CustomNavPageUi = CommonObservable & {\r\n    Data: NavData;\r\n    JsonExtraProp: Record<string, any>;\r\n    cls: string;\r\n    controlItems: Array<CustomNavGroupUi>;\r\n    events: Record<string, any>;\r\n    itemId: string;\r\n    title: string;\r\n    selected: boolean;\r\n    icon: string;\r\n};\r\nexport type CustomSystemNavUi = CommonObservable & {\r\n    itemId: string;\r\n    title: string;\r\n    FastSearchNavItemList: Array<any>;\r\n    JsonExtraProp: Record<string, any>;\r\n    SystemData: ISystemData;\r\n    childControl: { controlItems: Array<CustomNavPageUi> };\r\n};\r\nexport type CustomSystemContainerUi = CommonObservable & {\r\n    SystemData: ISystemData;\r\n};\r\nexport type CustomSystemUi = CommonObservable & {\r\n    SystemNavUi: CustomSystemNavUi;\r\n    SystemData: ISystemData;\r\n    SystemContainerUi: CustomSystemContainerUi;\r\n    Ribbon: CustomRibbon;\r\n};\r\nexport type CustomApplicationUi = CommonObservable & {\r\n    _selectedSystemId: string;\r\n    _systemsUi: Array<CustomSystemUi>;\r\n    _appMenuBody: CustomApplicationMenuBodyUi;\r\n};\r\nexport type CustomApplicationMenuBodyUi = CommonObservable & {\r\n    SystemDataDict: Record<string, ISystemData>;\r\n    items: Array<AppMenu>;\r\n};\r\nexport type CustomRibbon = CommonObservable;\r\n\r\nexport type AppMenu = {\r\n    id: string;\r\n    title: string;\r\n    subtitle?: string;\r\n    callback?: (event: MouseEvent) => void;\r\n    icon?: string;\r\n    iconImage?: string;\r\n    font?: string;\r\n    selected?: boolean;\r\n    disabledDragAndDrop?: boolean;\r\n    stickToPosition?: boolean;\r\n    SystemData: ISystemData;\r\n};\r\nexport type ShellbarSetting = MetaobjectDataModel & {\r\n    CssStyles: string;\r\n    subtitle: string;\r\n    calcSubtitle: string;\r\n    logo: FilePictureInfoModel;\r\n    ProductSwitchItems: MoForReportModel;\r\n    ProductMenuItems: MoForReportModel;\r\n    UserMenuItems: MoForReportModel;\r\n    ActionItems: MoForReportModel;\r\n    SidebarReport: MetaobjectDataModel;\r\n    ProfileImageReport: MetaobjectDataModel;\r\n};\r\nexport type InfoBarType = {\r\n    id: string;\r\n    text: string;\r\n    type: any;\r\n    buttons: Array<string>;\r\n    handler?: (x) => void;\r\n    icon: string;\r\n};\r\n","import { formatBytes } from '../constants';\nimport { BarsaApi } from './barsa-api';\n\nexport class FilesValidationHelper {\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        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\n","import {\r\n    ChangeDetectionStrategy,\r\n    ChangeDetectorRef,\r\n    Component,\r\n    ElementRef,\r\n    EventEmitter,\r\n    Input,\r\n    OnInit,\r\n    Output,\r\n    Renderer2,\r\n    SimpleChanges,\r\n    TemplateRef,\r\n    HostBinding,\r\n    inject\r\n} from '@angular/core';\r\nimport { ContentDensity } from '@fundamental-ngx/core';\r\nimport { BaseComponent } from './base.component';\r\nimport { BbbTranslatePipe, FindColumnByDbNamePipe } from '../pipes';\r\nimport { GroupByService, PortalService, UlvMainService, UploadService } from '../services';\r\nimport {\r\n    AbbrevationDeviceSize,\r\n    columnsResizedEventArgs,\r\n    DefaultCommandsAccess,\r\n    DeviceSize,\r\n    FormSetting,\r\n    MetaobjectDataModel,\r\n    RelationItemType,\r\n    ReportViewColumn,\r\n    UiReportViewBaseSetting,\r\n    ShareButtonsChoiceDef,\r\n    TypeUlvMainCtrlr,\r\n    PagingSetting,\r\n    MenuItem,\r\n    ColumnSummaryType,\r\n    EjrayOlgo,\r\n    SortSetting,\r\n    LayoutSetting\r\n} from './models';\r\nimport { TitleCasePipe } from '@angular/common';\r\n\r\n@Component({\r\n    selector: 'bnrc-report-view-base',\r\n    template: '',\r\n    changeDetection: ChangeDetectionStrategy.OnPush,\r\n    standalone: false\r\n})\r\nexport class ReportViewBaseComponent<T extends UiReportViewBaseSetting> extends BaseComponent implements OnInit {\r\n    @HostBinding('class.report-view') _reportView = true;\r\n    @Input() contextView: any;\r\n    @Input() viewSetting: T;\r\n    @Input() allColumns: any;\r\n    @Input() isCheckList: boolean;\r\n    @Input() simpleInlineEdit: boolean;\r\n    @Input() inlineEditWithoutSelection: boolean;\r\n    @Input() hideToolbar: boolean;\r\n    @Input() hideTitle: boolean;\r\n    @Input() toolbarButtons: MenuItem[];\r\n    @Input() allChecked: boolean;\r\n    @Input() moDataList: any;\r\n    @Input() UlvMainCtrlr: TypeUlvMainCtrlr;\r\n    @Input() access: DefaultCommandsAccess;\r\n    @Input() groupby: any;\r\n    @Input() selectedCount: any;\r\n    @Input() conditionalFormats: any;\r\n    @Input() parentHeight: number;\r\n    @Input() deviceName: DeviceSize;\r\n    @Input() deviceSize: AbbrevationDeviceSize;\r\n    @Input() contextMenuItems: any[];\r\n    @Input() columns: any;\r\n    @Input() allowInlineEdit: any;\r\n    @Input() secondaryColumns: any;\r\n    @Input() popin: boolean;\r\n    @Input() customFieldInfo: MetaobjectDataModel | any;\r\n    @Input() hasSummary: boolean;\r\n    @Input() layoutInfo: LayoutSetting;\r\n    @Input() hasSelected: boolean;\r\n    @Input() hideIcon: boolean;\r\n    @Input() columnsCount: any;\r\n    @Input() hideOpenIcon: boolean;\r\n    @Input() openOnClick: boolean;\r\n    @Input() typeDefId: string;\r\n    @Input() reportId: string;\r\n    @Input() listEditViewId: string;\r\n    @Input() typeViewId: string;\r\n    @Input() extraRelation: any;\r\n    @Input() relationList: Array<RelationItemType>;\r\n    @Input() disableResponsive: boolean;\r\n    @Input() rowItem: TemplateRef<any>;\r\n    @Input() mobileOrTablet: boolean;\r\n    @Input() inDialog: boolean;\r\n    @Input() isMultiSelect: boolean;\r\n    @Input() fullscreen: boolean;\r\n    @Input() hideSearchpanel: boolean;\r\n    @Input() newInlineEditMo: MetaobjectDataModel | null;\r\n    @Input() selectedMo: MetaobjectDataModel;\r\n    @Input() inlineEditMode: boolean;\r\n    @Input() onlyInlineEdit: boolean;\r\n    @Input() rowHoverable: boolean;\r\n    @Input() groupSummary: boolean;\r\n    @Input() tlbButtons: any[];\r\n    @Input() formSetting: FormSetting;\r\n    @Input() disableOverflowContextMenu: boolean;\r\n    @Input() rowActivable = true;\r\n    @Input() contentDensity: ContentDensity;\r\n    @Input() rtl;\r\n    @Input() showOkCancelButtons;\r\n    @Input() title;\r\n    @Input() hasInlineDeleteButton: boolean;\r\n    @Input() hasInlineEditButton: boolean;\r\n    @Input() contextSetting;\r\n    @Input() gridFreeColumnSizing: boolean;\r\n    @Input() navigationArrow: string;\r\n    @Input() cartableTemplates: { [key: string]: FormSetting };\r\n    @Input() cartableChildsMo: { [key: string]: MetaobjectDataModel };\r\n    @Input() pagingSetting: PagingSetting;\r\n    @Output() columnSummary = new EventEmitter<ColumnSummaryType>();\r\n    @Output() escapeKey = new EventEmitter<MetaobjectDataModel>();\r\n    @Output() resetWorkflowState = new EventEmitter<void>();\r\n    @Output() deselectAll = new EventEmitter<void>();\r\n    @Output() editFormPanelCancel = new EventEmitter<MetaobjectDataModel>();\r\n    @Output() editFormPanelSave = new EventEmitter<MetaobjectDataModel>();\r\n    @Output() selectNextInlineRecord = new EventEmitter<MetaobjectDataModel>();\r\n    @Output() editFormPanelValueChange = new EventEmitter<{ mo: MetaobjectDataModel; fieldDbName?: string }>();\r\n    @Output() ulvCommandClick = new EventEmitter<any>();\r\n    @Output() sortAscending = new EventEmitter<any>();\r\n    @Output() workflowShareButtons = new EventEmitter<ShareButtonsChoiceDef>();\r\n    @Output() sortDescending = new EventEmitter<any>();\r\n    @Output() filter = new EventEmitter<any>();\r\n    @Output() executeToolbarButton = new EventEmitter<{ itemId: string; options?: any }>();\r\n    @Output() resetGridSettings = new EventEmitter<void>();\r\n    @Output() sortSettingsChange = new EventEmitter<SortSetting[]>();\r\n    @Output() rowCheck = new EventEmitter<{ mo; index; cause?; onlyCheck?: boolean }>();\r\n    @Output() rowClick = new EventEmitter<{ mo; index }>();\r\n    @Output() cartableFormClosed = new EventEmitter<{ mo; index }>();\r\n    @Output() createNewMo = new EventEmitter<void>();\r\n    @Output() updateMo = new EventEmitter<MetaobjectDataModel>();\r\n    @Output() expandClick = new EventEmitter<MetaobjectDataModel>();\r\n    @Output() trackBySelectedFn = new EventEmitter<{ index; record }>();\r\n    @Output() allCheckbox = new EventEmitter<boolean>();\r\n    @Output() mandatory = new EventEmitter<boolean>();\r\n    @Output() columnResized = new EventEmitter<columnsResizedEventArgs>();\r\n    @Output() hasDetailsInRow = new EventEmitter<boolean>();\r\n    @Input() set containerWidth(val: number) {\r\n        this._containerWidth = val;\r\n        this._containerWidthChanged(val);\r\n    }\r\n    resizedByUser: boolean;\r\n    elWidth: number;\r\n    canView = false;\r\n    fitWidth: boolean;\r\n    firstSelectedMetaobject: MetaobjectDataModel;\r\n    contextMenuWidth = 0;\r\n    fieldDict: Record<string, string>;\r\n    actionList: any[];\r\n    detailsColumns: ReportViewColumn[] = [];\r\n    detailsComponent: EjrayOlgo;\r\n    rowIndicator: boolean;\r\n    protected _titleCase = inject(TitleCasePipe);\r\n    protected _bbbTranslate = inject(BbbTranslatePipe);\r\n    protected _el = inject(ElementRef);\r\n    protected _cdr = inject(ChangeDetectorRef);\r\n    protected _renderer2 = inject(Renderer2);\r\n    protected _findColumnByDbName = inject(FindColumnByDbNamePipe);\r\n    protected _ulvMainService = inject(UlvMainService);\r\n    protected _portalService = inject(PortalService);    \r\n    protected _uploadService? = inject(UploadService, { optional: true });\r\n    protected _groupByService? = inject(GroupByService, { skipSelf: true, optional: true });\r\n    protected _containerWidth = 0;\r\n\r\n    private _singleClicked: boolean;\r\n    get showViewButton(): boolean {\r\n        return this.canView && !this.inlineEditMode && !this.hideOpenIcon;\r\n    }\r\n    ngOnInit(): void {\r\n        super.ngOnInit();\r\n        if (this.access.View && !this.showOkCancelButtons) {\r\n            this.canView = true;\r\n        }\r\n        this.actionList = this._createActionButtons();\r\n        this.elWidth = this._el.nativeElement.clientWidth;\r\n        this.fitWidth = this.viewSetting?.FitWidth === true ? true : false;\r\n        if (this.columns) {\r\n            const fieldDict = {};\r\n            this.columns.forEach((c) => (fieldDict[c.Caption] = c.Name));\r\n            this.fieldDict = fieldDict;\r\n        }\r\n        const detailsSetting = this.viewSetting?.DetailsSetting;\r\n        if (detailsSetting) {\r\n            this.detailsComponent = detailsSetting.Component;\r\n            detailsSetting.Columns.split(',').forEach((columnName: string) => {\r\n                const column = this._findColumnByDbName.transform(this.allColumns, columnName, this.secondaryColumns);\r\n                if (column) {\r\n                    this.detailsColumns.push(column);\r\n                }\r\n            });\r\n        }\r\n        this._setRowIndicator(this.columns);\r\n    }\r\n    ngOnChanges(changes: SimpleChanges): void {\r\n        super.ngOnChanges(changes);\r\n        let detectChanges = false;\r\n        Object.keys(changes).forEach((key) => {\r\n            if (!changes[key].firstChange) {\r\n                this[key] = changes[key].currentValue;\r\n                detectChanges = true;\r\n            }\r\n        });\r\n        if (detectChanges) {\r\n            this.detectChanges();\r\n        }\r\n    }\r\n    onDeselectAll(): void {\r\n        this.deselectAll.emit();\r\n    }\r\n    onRowCheck(e: { mo: MetaobjectDataModel; index: number; onlyCheck?: boolean }): void {\r\n        // this._singleClicked = true;\r\n        // setTimeout(() => {\r\n        //   if (this._singleClicked) {\r\n        //     this.rowCheck.emit({ mo, index });\r\n        //   }\r\n        // }, 30);\r\n        // this.rowCheck.emit({ mo, index, cause });\r\n        const { mo, index, onlyCheck } = e;\r\n        this.rowCheck.emit({ mo, index, onlyCheck });\r\n    }\r\n    onWorkflowShareButtons(e: ShareButtonsChoiceDef): void {\r\n        this.workflowShareButtons.emit(e);\r\n    }\r\n    onOlgoEvents(e: { title: string; data?: any }): void {\r\n        this[e.title].emit(e.data);\r\n    }\r\n    onRowClick({ mo, index }): void {\r\n        this._singleClicked = false;\r\n        this.rowClick.emit({ mo, index });\r\n    }\r\n    onCartableFormClosed({ mo, index }): void {\r\n        this.cartableFormClosed.emit({ mo, index });\r\n    }\r\n    onExpandClick(mo: MetaobjectDataModel): void {\r\n        this.expandClick.emit(mo);\r\n    }\r\n    onAllCheckbox(checked): void {\r\n        this.allCheckbox.emit(checked);\r\n    }\r\n    onClearCheckbox(): void {\r\n        this.allCheckbox.emit(false);\r\n    }\r\n    onSelectNextInlineRecord(mo): void {\r\n        this.selectNextInlineRecord.emit(mo);\r\n    }\r\n    onEditFormPanelSave(mo): void {\r\n        this.editFormPanelSave.emit(mo);\r\n    }\r\n    onEditFormPanelCancel(mo: MetaobjectDataModel): void {\r\n        this.editFormPanelCancel.emit(mo);\r\n    }\r\n    onEscapeKey(mo: MetaobjectDataModel): void {\r\n        this.escapeKey.emit(mo);\r\n    }\r\n    onEditFormPanelValueChange(e: { mo: MetaobjectDataModel; fieldDbName?: string }): void {\r\n        this.editFormPanelValueChange.emit(e);\r\n    }\r\n    onUlvCommand({ mo, index }): void {\r\n        this.ulvCommandClick.emit({ mo, index });\r\n    }\r\n    onSortAscending(column): void {\r\n        this.sortAscending.emit(column);\r\n    }\r\n    onSortDescending(column): void {\r\n        this.sortDescending.emit(column);\r\n    }\r\n    onFilter(column): void {\r\n        this.filter.emit(column);\r\n    }\r\n    onAction(commandBody: string): void {\r\n        const command = new Function(commandBody);\r\n        command();\r\n    }\r\n    onDynamicComponentEvents(e: { title: string; data?: any }, mo: MetaobjectDataModel, index: number): void {\r\n        switch (e.title) {\r\n            case 'rowCheck':\r\n                this.onRowCheck({ mo, index });\r\n                break;\r\n            case 'rowClick':\r\n                this.onRowClick({ mo, index });\r\n                break;\r\n            case 'ulvCommand':\r\n                this.onUlvCommand({ mo, index });\r\n                break;\r\n        }\r\n    }\r\n    detectChanges(): void {\r\n        this._cdr.detectChanges();\r\n    }\r\n    _trackBySelectedFn(index, record): void {\r\n        this.trackBySelectedFn?.emit({ index, record });\r\n    }\r\n    _trackByColumn(index: number, column: ReportViewColumn): string {\r\n        return `${column.Name}${index}`;\r\n    }\r\n    _trackByRow(index: number, row: MetaobjectDataModel): string {\r\n        return `${row.$Group ? row.$Group : row.Id}${index}`;\r\n    }\r\n    protected onActionListClick(mo: MetaobjectDataModel, index: number, itemId: string): void {\r\n        if (itemId === 'Show') {\r\n            this.onRowClick({ mo, index });\r\n            return;\r\n        }\r\n        this.onRowCheck({ mo, index });\r\n        const btn = this.toolbarButtons.find((tb) => tb?.itemId === itemId);\r\n        if (btn) {\r\n            (btn as any).handler(btn);\r\n        }\r\n    }\r\n    protected _createActionButtons(): any[] {\r\n        const buttons: any[] = [];\r\n        if (this.hasInlineEditButton) {\r\n            buttons.push({\r\n                glyph: 'edit',\r\n                itemId: 'Edit',\r\n                navigation: false,\r\n                role: 'presentation',\r\n                closeOnClick: true\r\n            });\r\n        }\r\n        if (this.hasInlineDeleteButton) {\r\n            buttons.push({\r\n                glyph: 'delete',\r\n                navigation: false,\r\n                itemId: 'Delete',\r\n                role: 'presentation',\r\n                closeOnClick: true\r\n            });\r\n        }\r\n        if (this.showViewButton) {\r\n            buttons.push({\r\n                glyph: this.navigationArrow,\r\n                navigation: true,\r\n                role: 'presentation',\r\n                itemId: 'Show',\r\n                closeOnClick: true\r\n            });\r\n        }\r\n        return buttons;\r\n    }\r\n    protected _containerWidthChanged(_: number): void {}\r\n    protected _setRowIndicator(columns: ReportViewColumn[]): void {\r\n        if (!columns?.length) {\r\n            return;\r\n        }\r\n        this.rowIndicator = Number(columns[0].MetaFieldTypeId) === 41;\r\n    }\r\n}\r\n","import {\r\n    ChangeDetectionStrategy,\r\n    ChangeDetectorRef,\r\n    Component,\r\n    ComponentFactoryResolver,\r\n    EventEmitter,\r\n    Input,\r\n    OnInit,\r\n    Output,\r\n    Renderer2,\r\n    ViewContainerRef,\r\n    TemplateRef,\r\n    inject\r\n} from '@angular/core';\r\nimport { DomSanitizer } from '@angular/platform-browser';\r\nimport { BaseComponent } from './base.component';\r\n\r\nimport { ControlUiPipe } from '../pipes';\r\nimport { BreadCrumbInfo, FormPanelService } from '../services';\r\nimport { LayoutSetting, MetaobjectDataModel } from './models';\r\n\r\n@Component({\r\n    selector: 'bnrc-form-props-base',\r\n    template: '',\r\n    changeDetection: ChangeDetectionStrategy.OnPush,\r\n    standalone: false\r\n})\r\nexport class FormPropsBaseComponent extends BaseComponent implements OnInit {\r\n    @Input() breadCrumbs: BreadCrumbInfo[] | null;\r\n    @Input() toolbarVisible: boolean;\r\n    @Input() toolbarItems: any[];\r\n    @Input() layoutActions: any[];\r\n    @Input() layoutActionsTemplateRef: TemplateRef<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() canSend: boolean;\r\n    @Input() landscape: boolean;\r\n    @Input() standalone: boolean;\r\n    @Input() footerDesign: any;\r\n    @Input() workflowButtons: any[];\r\n    @Input() workflowButtonsComboMode: any;\r\n    @Input() fieldDict: { [key: string]: string } | undefined;\r\n    @Input() contentDensity: any;\r\n    @Input() deviceSize: 's' | 'm' | 'l' | 'xl';\r\n    @Input() dirValue: 'rtl' | 'ltr';\r\n    @Input() modernTabs: LayoutSetting[];\r\n    @Input() mo: MetaobjectDataModel;\r\n    @Output() events = new EventEmitter<{ title: string; data?: any }>();\r\n    \r\n    protected _controlUiPipe = inject(ControlUiPipe);\r\n    protected _formPanelService = inject(FormPanelService);\r\n    protected _sanitizer = inject(DomSanitizer);\r\n    protected _cdr = inject(ChangeDetectorRef);\r\n    protected _renderer2 = inject(Renderer2);\r\n    protected _vcr = inject(ViewContainerRef);\r\n    protected _factoryResolver = inject(ComponentFactoryResolver);\r\n\r\n    ngOnInit(): void {\r\n        // this.mo = this._formPanelService.mo;\r\n        super.ngOnInit();\r\n    }\r\n    onEvents(title: string, data?: any): void {\r\n        this.events.emit({ title, data });\r\n    }\r\n}\r\n","import { BehaviorSubject, forkJoin, Observable, Subject } from 'rxjs';\r\nimport { takeUntil, tap } from 'rxjs/operators';\r\nimport { getIcon, getImagePath, isImage, getUniqueId } from '../constants';\r\nimport { UploadService } from '../services/upload.service';\r\nimport { BarsaApi } from './barsa-api';\r\nimport { FilesValidationHelper } from './files-validation-helper';\r\nimport { FileAttachmentInfo, IUploadingState } from './models';\r\n\r\nexport class LinearListHelper {\r\n    uploading$ = new Observable<IUploadingState>();\r\n\r\n    protected readonly _onDestroy$: Subject<void> = new Subject<void>();\r\n    private _valueExtra$ = new BehaviorSubject<ValueExtraType>({});\r\n    private _loading$ = new Subject<boolean>();\r\n    private _delete$ = new Subject<FileAttachmentInfo>();\r\n    private _newFileUploaded$ = new Subject<FileAttachmentInfo>();\r\n    constructor(\r\n        private _uploadService: UploadService,\r\n        private _filesValidationHelper: FilesValidationHelper,\r\n        private _fieldDefId: string\r\n    ) {\r\n        this._uploadService.uploadingState$.pipe(takeUntil(this._onDestroy$)).subscribe((uploadState) => {\r\n            const uploadStateValue = this._getFileValueExtra(uploadState.key);\r\n            uploadStateValue.Progress = uploadState.progress;\r\n            uploadStateValue.UploadState = uploadState.state;\r\n            this._valueExtra[uploadState.key] = uploadStateValue;\r\n            this._valueExtra$.next({ ...this._valueExtra });\r\n        });\r\n    }\r\n    public get loading$(): Observable<boolean> {\r\n        return this._loading$.asObservable();\r\n    }\r\n    public get valueExtra$(): Observable<ValueExtraType> {\r\n        return this._valueExtra$.asObservable();\r\n    }\r\n    public get delete$(): Observable<FileAttachmentInfo> {\r\n        return this._delete$.asObservable();\r\n    }\r\n    public get newFileUploaded$(): Observable<FileAttachmentInfo> {\r\n        return this._newFileUploaded$.asObservable();\r\n    }\r\n    init(fileAttachmentInfo: FileAttachmentInfo): void {\r\n        const fileValueExtra = this._getFileValueExtra(fileAttachmentInfo.Id);\r\n        this._setIconAndImage(fileAttachmentInfo, fileValueExtra);\r\n    }\r\n    cancel(fileAttachment: FileAttachmentInfo): void {\r\n        this._valueExtra[fileAttachment.Id].cancelation$?.next();\r\n    }\r\n    retry(fileAttachment: FileAttachmentInfo): void {\r\n        this.uploadFile(fileAttachment).subscribe();\r\n    }\r\n    uploadToServer(files: File[], key: string = ''): void {\r\n        const isValid = this._filesValidationHelper.validateFiles(files);\r\n        if (!isValid) {\r\n            return;\r\n        }\r\n        const fileAttachments = files.map((c) => this._createFileAttachment(c));\r\n        forkJoin(\r\n            fileAttachments.map((fileAttachment) => this.uploadFile(fileAttachment, key ? key : fileAttachment.Id))\r\n        ).subscribe();\r\n    }\r\n    destroy(): void {\r\n        this._onDestroy$.next();\r\n    }\r\n    protected get _valueExtra(): ValueExtraType {\r\n        return this._valueExtra$.getValue();\r\n    }\r\n\r\n    protected _getFileValueExtra(fileId): UploadFileProps {\r\n        const valueExtra = this._valueExtra;\r\n        const fileValueExtra = valueExtra[fileId];\r\n        if (!fileValueExtra) {\r\n            valueExtra[fileId] = {};\r\n            this._valueExtra$.next({ ...valueExtra });\r\n        }\r\n        return valueExtra[fileId];\r\n    }\r\n    protected _setIconAndImage(fileAttachment: FileAttachmentInfo, fileValueExtra: UploadFileProps): void {\r\n        const fileType = fileAttachment.Type;\r\n        const fileId = fileAttachment.Id;\r\n        if (fileAttachment.IsNew && !fileValueExtra.UploadState) {\r\n            fileValueExtra.FileUrl = 'document';\r\n            fileValueExtra.IsIcon = true;\r\n        } else if (isImage(fileType)) {\r\n            fileValueExtra.FileUrl = getImagePath('ID', '', fileId);\r\n            fileValueExtra.IsIcon = false;\r\n        } else {\r\n            fileValueExtra.FileUrl = getIcon(fileType);\r\n            fileValueExtra.IsIcon = true;\r\n        }\r\n    }\r\n\r\n    protected _setLoading(loading: boolean): void {\r\n        this._loading$.next(loading);\r\n    }\r\n    protected _createFileAttachment(file: File, key: string | null = null): any {\r\n        const id: string = key ?? getUniqueId(4);\r\n        const temp: string[] = file.name.split('.');\r\n        const ext = temp[temp.length - 1];\r\n        const newFileAttachment = {\r\n            FileName: file.name,\r\n            Id: id,\r\n            FileId: id,\r\n            IsDeleted: false,\r\n            IsNew: true,\r\n            Type: ext\r\n        };\r\n        const fileValueExtra = this._getFileValueExtra(newFileAttachment.Id);\r\n        this._setIconAndImage(newFileAttachment, fileValueExtra);\r\n        fileValueExtra.UploadState = 'Ready';\r\n        fileValueExtra.binary = file;\r\n        fileValueExtra.cancelation$ = new Subject<void>();\r\n        return newFileAttachment;\r\n    }\r\n    protected uploadFile(fileAttachment: FileAttachmentInfo, key: string = ''): Observable<any> {\r\n        const formData = new FormData();\r\n        formData.append('unicFileName', 'x' + BarsaApi.Common.Util.GetNewMetaGuid() + ';;;' + fileAttachment.FileName);\r\n        formData.append('file', this._valueExtra[fileAttachment.Id].binary);\r\n\r\n        return this._uploadService.upload(formData, this._fieldDefId, key).pipe(\r\n            tap((res) => {\r\n                if (Array.isArray(res)) {\r\n                    this._updateValue(fileAttachment, res);\r\n                }\r\n            })\r\n        );\r\n    }\r\n\r\n    protected _updateValue(fileAttachment: FileAttachmentInfo, res: any[]): void {\r\n        this._delete$.next(fileAttachment);\r\n        // this._deleteFileAttachment(fileAttachment);\r\n        const id = res[0].FileId;\r\n        const newFileAttachment = {\r\n            ...fileAttachment,\r\n            Id: id,\r\n            FileId: id,\r\n            FileName: res[0].FileName,\r\n            IsDeleted: false\r\n        };\r\n        const fileValueExtra = this._getFileValueExtra(id);\r\n        fileValueExtra.binary = null;\r\n        this._setIconAndImage(newFileAttachment, fileValueExtra);\r\n        this._newFileUploaded$.next(newFileAttachment);\r\n    }\r\n}\r\n\r\ninterface UploadFileProps {\r\n    FileUrl?: string;\r\n    cancelation$?: Subject<void>;\r\n    binary?: any;\r\n    UploadState?: string;\r\n    Progress?: number;\r\n    IsIcon?: boolean;\r\n}\r\ntype ValueExtraType = { [key: string]: UploadFileProps };\r\n","import { Component, Input } from '@angular/core';\r\nimport { PageBaseComponent } from './page-base';\r\n\r\n@Component({\r\n    template: '',\r\n    standalone: false\r\n})\r\nexport class PageWithFormHandlerBaseComponent extends PageBaseComponent {\r\n    formpanelCtrlr: any;\r\n    isFirstPage = true;\r\n    /* eslint-disable */\r\n    @Input() ShowFormPanelControl = (formpanelCtrlr) => {\r\n        this.formpanelCtrlr = formpanelCtrlr;\r\n        this._showFormPanel();\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._showFormPanel(true);\r\n    };\r\n    private _showFormPanel(refreshOnly: boolean = false): void {\r\n        this._portalService.ShowFormPanelControl(\r\n            this.formpanelCtrlr,\r\n            this._router,\r\n            this._activatedRoute,\r\n            this._formDialogComponent,\r\n            this.isFirstPage,\r\n            this._vcr,\r\n            refreshOnly\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    standalone: false\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('.absolute-page');\r\n        pages?.forEach((pageEl) => {\r\n            if (pageEl !== this._el.nativeElement) {\r\n                (pageEl as HTMLElement).classList.remove('absolute-page');\r\n                (pageEl as HTMLElement).classList.add('absolute-page-removed');\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('.absolute-page-removed');\r\n        if (pages && pages.length > 0) {\r\n            const last: null | Element = pages[pages.length - 1];\r\n            last?.classList?.add('absolute-page');\r\n            last?.classList?.remove('absolute-page-removed');\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            this._vcr\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    signal,\r\n    WritableSignal,\r\n    inject\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 {\r\n    BruleActionMessage,\r\n    FormComponentParams,\r\n    MetaobjectDataModel,\r\n    TypeUlvMainCtrlr\r\n} 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    standalone: false\r\n})\r\nexport class FormComponent extends BaseComponent implements OnInit, OnChanges, OnDestroy {\r\n    @Input() params: FormComponentParams;\r\n    @Input() customFormPanelUi;\r\n    @Input() formPanelCtrl;\r\n    @Input() UlvMainCtrlr: TypeUlvMainCtrlr;\r\n    @Input() formPanelCtrlId: string;\r\n    @Input() saveOnChange: boolean;\r\n    @Input() inlineEditInReport: boolean;\r\n    @Output() titleChanged = new EventEmitter<string>();\r\n    @Output() moChanged = new EventEmitter<MetaobjectDataModel>();\r\n    @Output() formClose = new EventEmitter();\r\n    @Output() uiComponent = new EventEmitter<any>();\r\n    @Output() formRendered = new EventEmitter();\r\n    @Output() bruleAction = new EventEmitter<BruleActionMessage>();\r\n    @Output() beforeTransition = new EventEmitter();\r\n    @Output() afterTransition = new EventEmitter<{ error: any; result: any }>();\r\n    @ViewChild('placeholder', { read: ViewContainerRef, static: true })\r\n    vcr: ViewContainerRef;\r\n    uniqueId: string;\r\n    uiFormComponent: WritableSignal<ComponentRef<any> | undefined> = signal(undefined);\r\n\r\n    protected cdr = inject(ChangeDetectorRef);\r\n    private portalService = inject(PortalService);\r\n    private injector = inject(Injector);\r\n    constructor() {\r\n        const el = inject(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.vcr.clear();\r\n                this.appendForm(currVal);\r\n            }\r\n        }\r\n    }\r\n    ngOnDestroy(): void {\r\n        super.ngOnDestroy();\r\n        const x = this.uiFormComponent();\r\n        if (x) {\r\n            x.destroy();\r\n            this.uiFormComponent.set(undefined);\r\n        }\r\n    }\r\n    _handleSaveOnFieldValueChange(): void {\r\n        if (!this.formPanelCtrl) {\r\n            return;\r\n        }\r\n        this.formPanelCtrl.on({\r\n            ValueChange: (fpctrlr) => {\r\n                if (this.saveOnChange) {\r\n                    fpctrlr.Save();\r\n                }\r\n            }\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._handleSaveOnFieldValueChange();\r\n            this._renderFormPanelUi(customFromPanelUi);\r\n            return;\r\n        }\r\n\r\n        const { formSetting, moId, typeDefId, reportId, viewId, viewName, loadActivityView } = 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 frmParams = new BarsaApi.Ul.FormRequestParams(options);\r\n        if (loadActivityView) {\r\n            frmParams.LoadActivityView = true;\r\n        }\r\n        const formpanelCtrlr = new BarsaApi.Ul.FormPanelCtrlr({\r\n            FormRequestParams: frmParams\r\n        });\r\n        formpanelCtrlr.inDialog = this.params.inDialog;\r\n        formpanelCtrlr.UlvMainCtrlr = this.UlvMainCtrlr;\r\n        formpanelCtrlr.Setting = formSetting;\r\n        formpanelCtrlr.InlineEditInReport = this.inlineEditInReport;\r\n        formpanelCtrlr.on({\r\n            BeforeTransition: () => this.beforeTransition.emit(),\r\n            AfterTransition: (_sender, e) => this.afterTransition.emit(e),\r\n            bruleShowMessageAction: this._handleBruleShowMessageAction.bind(this),\r\n            ValueChange: (fpctrlr) => {\r\n                this.moChanged.emit(fpctrlr.Mo);\r\n            }\r\n        });\r\n        this.formPanelCtrl = formpanelCtrlr;\r\n        this._handleSaveOnFieldValueChange();\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, frmParams, 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    protected _handleBruleShowMessageAction(action: BruleActionMessage): void {\r\n        this.bruleAction.emit(action);\r\n    }\r\n    private async _renderFormPanelUi(customFormPanelUi: any): Promise<void> {\r\n        if (this.params?.isSimple) {\r\n            if (!customFormPanelUi.Setting.View.ExtraJsonProp) {\r\n                customFormPanelUi.Setting.View.ExtraJsonProp = {};\r\n            }\r\n            customFormPanelUi.Setting.View.ExtraJsonProp.IsSimple = this.params.isSimple;\r\n        }\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                    componentInstance.forceClose$.pipe(takeUntil(this._onDestroy$)).subscribe(() => {\r\n                        this.formClose.emit();\r\n                    });\r\n\r\n                    // this.formPanelCtrl.on('ValueChange', () => this.moChanged.emit(this.formPanelCtrl.Mo));\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.set(component);\r\n                this.uiComponent.emit(component.instance);\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    inject,\n    Renderer2\n} from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { BarsaApi } from '../abstract-classes/barsa-api';\nimport { PortalService } from '../services/portal.service';\n\n@Directive()\nexport abstract class BaseDirective implements OnInit, AfterViewInit, AfterContentInit, OnDestroy, OnChanges {\n    protected _el = inject(ElementRef);\n    protected _portalService = inject(PortalService);\n    protected _renderer2 = inject(Renderer2);\n    protected readonly _onDestroy$: Subject<void> = new Subject<void>();\n    get renderer2(): Renderer2 {\n        return this._renderer2;\n    }\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\n","import { AfterViewInit, Directive, Input } from '@angular/core';\r\nimport { BaseDirective } from './base.directive';\r\n\r\n@Directive({\r\n    selector: '[formClose]',\r\n    standalone: false\r\n})\r\nexport class FormCloseDirective extends BaseDirective implements AfterViewInit {\r\n    @Input() isMobile: boolean;\r\n\r\n    ngAfterViewInit(): void {\r\n        super.ngAfterViewInit();\r\n        if (!this.isMobile) {\r\n            return;\r\n        }\r\n        const formDom = this._el.nativeElement as HTMLElement;\r\n        const titleContainerDom = formDom.querySelector('.fd-dynamic-page__title-container');\r\n        const closeButton = formDom.querySelector('button[title=\"Close\"');\r\n        if (closeButton && titleContainerDom) {\r\n            titleContainerDom?.insertAdjacentElement('afterbegin', closeButton);\r\n        }\r\n    }\r\n}\r\n","import { ChangeDetectionStrategy, Component, HostBinding, Input, ViewChild } from '@angular/core';\r\nimport { FormPageBaseComponent } from '../abstract-classes/form-page-base';\r\nimport { FormComponent } from '../form/form.component';\r\nimport { FormService } from '../services/form.service';\r\nimport { ContainerService } from '../services/container.service';\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    standalone: false\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 {\r\n    AfterViewInit,\r\n    ChangeDetectionStrategy,\r\n    Component,\r\n    EventEmitter,\r\n    Input,\r\n    OnChanges,\r\n    Output,\r\n    inject\r\n} from '@angular/core';\r\n\r\nimport {\r\n    MetaobjectDataModel,\r\n    LayoutSetting,\r\n    AbbrevationDeviceSize,\r\n    EjrayOlgo,\r\n    ReportViewColumn,\r\n    UiReportViewBaseSetting,\r\n    DeviceSize\r\n} from '../abstract-classes';\r\nimport { BaseComponent } from './base.component';\r\nimport { ColumnService } from '../services';\r\nimport { takeUntil } from 'rxjs';\r\nimport { nullOrUndefinedString } from '../constants';\r\n@Component({\r\n    selector: 'bnrc-base-column-props',\r\n    template: ``,\r\n    changeDetection: ChangeDetectionStrategy.OnPush,\r\n    standalone: false\r\n})\r\nexport class BaseColumnPropsComponent extends BaseComponent implements AfterViewInit, OnChanges {\r\n    @Output() save = new EventEmitter<any>();\r\n    // eslint-disable-next-line\r\n    @Output() cancel = new EventEmitter<any>();\r\n    @Output() tab = new EventEmitter<any>();\r\n    @Output() changeToEditMode = new EventEmitter<any>();\r\n    @Input() allColumns: ReportViewColumn[];\r\n    @Input() column: any;\r\n    @Input() attachmentViewType: number;\r\n    @Input() mo: MetaobjectDataModel;\r\n    @Input() index: any;\r\n    @Input() editMode: boolean;\r\n    @Input() isMobile: boolean;\r\n    @Input() customRowHeight: any;\r\n    @Input() controlUi: LayoutSetting | null;\r\n    @Input() formLayoutShowLabel: boolean;\r\n    @Input() isChecked: boolean;\r\n    @Input() isdirty: boolean;\r\n    @Input() isNewInlineMo: boolean;\r\n    @Input() layout94: LayoutSetting;\r\n    @Input() detailsComponentSetting: UiReportViewBaseSetting;\r\n\r\n    @Input() value: any;\r\n    @Input() icon: any;\r\n    @Input() rtl: boolean;\r\n    @Input() cellEdit: boolean;\r\n    @Input() deviceName: DeviceSize;\r\n    @Input() deviceSize: AbbrevationDeviceSize;\r\n    @Input() customComponent: EjrayOlgo | null;\r\n    private _columnService = inject(ColumnService, { optional: true, self: true });\r\n\r\n    constructor() {\r\n        super();\r\n        if (this._columnService) {\r\n            this._columnService.uiControlRendered.pipe(takeUntil(this._onDestroy$)).subscribe(() => {\r\n                this._callChangeToEditMode();\r\n            });\r\n        } else {\r\n            this._log.error(nullOrUndefinedString('BaseColumnPropsComponent=> _columnService'));\r\n        }\r\n    }\r\n\r\n    _callChangeToEditMode(): void {\r\n        this.changeToEditMode.emit(this._el.nativeElement);\r\n    }\r\n}\r\n","import {\r\n    OnInit,\r\n    Component,\r\n    ChangeDetectionStrategy,\r\n    Input,\r\n    EventEmitter,\r\n    Output,    \r\n    Renderer2,\r\n    ChangeDetectorRef,\r\n    inject\r\n} from '@angular/core';\r\nimport { AbbrevationDeviceSize, LayoutSetting, MetaobjectDataModel } from './models';\r\n\r\nimport { BaseComponent } from './base.component';\r\nimport { FieldSetting } from './field-base';\r\n@Component({\r\n    selector: 'bnrc-tile-base',\r\n    template: '',\r\n    changeDetection: ChangeDetectionStrategy.OnPush,\r\n    standalone: false\r\n})\r\nexport class TilePropsComponent extends BaseComponent implements OnInit {\r\n    @Input() parameters: MetaobjectDataModel;\r\n    @Input() data: MetaobjectDataModel;\r\n    @Input() context: FieldSetting;\r\n    @Input() edit: boolean;\r\n    @Input() deviceSize: AbbrevationDeviceSize;\r\n    @Input() setToStorage: boolean;\r\n    @Input() listMode: boolean;\r\n    @Input() navigateBackOnClick: boolean;\r\n    @Input() groupType: string;\r\n    @Input() layoutInfo: LayoutSetting;\r\n    @Output() hideClick = new EventEmitter();\r\n    @Output() renameClick = new EventEmitter();    \r\n    protected _renderer2 = inject(Renderer2);\r\n    protected _cdr = inject(ChangeDetectorRef);\r\n}\r\n","import {\r\n    ChangeDetectionStrategy,\r\n    ChangeDetectorRef,\r\n    Component,\r\n    HostBinding,\r\n    Injector,\r\n    OnDestroy,\r\n    OnInit,\r\n    ViewChild,\r\n    ViewContainerRef,\r\n    inject\r\n} from '@angular/core';\r\nimport { ActivatedRoute, Params } from '@angular/router';\r\nimport { BehaviorSubject, Observable } from 'rxjs';\r\nimport { debounceTime, map, switchMap, takeUntil, tap } from 'rxjs/operators';\r\nimport { BaseComponent } from './base.component';\r\nimport { PortalService } from '../services';\r\n\r\n@Component({\r\n    selector: 'bnrc-form-field-report-page.component',\r\n    template: `<ng-container #containerRef></ng-container><router-outlet></router-outlet>`,\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    changeDetection: ChangeDetectionStrategy.OnPush,\r\n    standalone: false\r\n})\r\nexport class FormFieldReportPageComponent extends BaseComponent implements OnInit, OnDestroy {\r\n    @ViewChild('containerRef', { static: true, read: ViewContainerRef }) containerRef: ViewContainerRef;\r\n    @HostBinding('class.section') sectionClass = true;\r\n    @HostBinding('class.absolute-page') absolutePageClass = true;\r\n    // @HostBinding('class.section') sectionClass = true;\r\n    // @HostBinding('class.absolute-page') absolutePageClass = true;\r\n    loading$: Observable<boolean>;\r\n    private _activatedRoute = inject(ActivatedRoute);\r\n    private _portalService = inject(PortalService);\r\n    private _injector = inject(Injector);\r\n    private _cdr = inject(ChangeDetectorRef);\r\n    private _loadingSource = new BehaviorSubject<boolean>(false);\r\n\r\n    constructor() {\r\n        super();\r\n        this.loading$ = this._loadingSource.asObservable().pipe(takeUntil(this._onDestroy$), debounceTime(200));\r\n    }\r\n\r\n    ngOnInit(): void {\r\n        super.ngOnInit();\r\n        this._activatedRoute.params\r\n            .pipe(\r\n                takeUntil(this._onDestroy$),\r\n                tap(() => this._setLoading(true)),\r\n                map((params: Params) => ({\r\n                    Id: 0,\r\n                    ReportId: params.id\r\n                })),\r\n                switchMap((navItem) =>\r\n                    this._portalService.renderUlvMainUi(navItem, this.containerRef, this._injector, true)\r\n                )\r\n            )\r\n            .subscribe(() => {\r\n                this._setLoading(false);\r\n            });\r\n    }\r\n    ngOnDestroy(): void {\r\n        super.ngOnDestroy();\r\n    }\r\n    private _setLoading(val: boolean): void {\r\n        this._loadingSource.next(val);\r\n        this._cdr.detectChanges();\r\n    }\r\n}\r\n","import { ChangeDetectionStrategy, Component, HostBinding, OnInit } from '@angular/core';\r\nimport { BarsaApi, MetaobjectDataModel, PageWithFormHandlerBaseComponent } from '../abstract-classes';\r\n\r\nimport { ContainerService } from '../services/container.service';\r\nimport { nullOrUndefinedString } from '../constants';\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    standalone: false\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    @HostBinding('class.modal') ismodal = false;\r\n    settings: MetaobjectDataModel;\r\n\r\n    ngOnInit(): void {\r\n        this.settings = BarsaApi.Common.Util.TryGetValue(\r\n            this._activatedRoute,\r\n            'data._value.pageData.Component.Settings',\r\n            null\r\n        );\r\n        const isModal = this.settings?.IsModal;\r\n        if (isModal) {\r\n            if (this._containerService) {\r\n                this._containerService.detachParent = false;\r\n            } else {\r\n                this._log.error(nullOrUndefinedString('EmptyPageComponent=> _containerService'));\r\n            }\r\n            this._position = 'absolute';\r\n            this.ismodal = true;\r\n        }\r\n        super.ngOnInit();\r\n        // if (!BarsaApi.LoginFormData.IsServiceDesk && !isModal) {\r\n        //     this._position = 'initial';\r\n        // }\r\n        if (this._activatedRoute.snapshot.data?.pageData?.Component?.Settings?.IsRelativePage && !isModal) {\r\n            this._position = 'initial';\r\n        }\r\n    }\r\n}\r\n","<ng-container #containerRef></ng-container>\r\n<router-outlet></router-outlet>\r\n<router-outlet name=\"dialog\"></router-outlet>\r\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\r\n\r\nimport { MetaobjectDataModel } from '../abstract-classes';\r\nimport { BaseComponent } from '../abstract-classes/base.component';\r\n@Component({\r\n    selector: 'bnrc-redirect-report-navigator-command',\r\n    templateUrl: './redirect-report-navigator-command.component.html',\r\n    styleUrls: ['./redirect-report-navigator-command.component.scss'],\r\n    changeDetection: ChangeDetectionStrategy.OnPush,\r\n    standalone: false\r\n})\r\nexport class RedirectReportNavigatorCommandComponent extends BaseComponent {\r\n    settings: MetaobjectDataModel;\r\n}\r\n","","import { ChangeDetectionStrategy, Component, inject } from '@angular/core';\r\n\r\nimport { PageWithFormHandlerBaseComponent } from '../abstract-classes/page-with-form-handler-base';\r\nimport { RoutingService } from '../services/routing.service';\r\n\r\n@Component({\r\n    selector: 'bnrc-portal-page',\r\n    template: `<ng-container #containerRef></ng-container> <router-outlet></router-outlet><router-outlet name=\"dialog\"></router-outlet>`,\r\n    changeDetection: ChangeDetectionStrategy.OnPush,\r\n    providers: [RoutingService],\r\n    standalone: false\r\n})\r\nexport class PortalPageComponent extends PageWithFormHandlerBaseComponent {\r\n    _routingService = inject(RoutingService);\r\n}\r\n","import { AfterViewInit, Directive, Input, Output, EventEmitter } from '@angular/core';\r\nimport { BaseDirective } from './base.directive';\r\n\r\n@Directive({\r\n    selector: '[fillEmptySpace]',\r\n    exportAs: 'fillEmptySpace',\r\n    standalone: false\r\n})\r\nexport class FillEmptySpaceDirective extends BaseDirective implements AfterViewInit {\r\n    @Input() containerDom: HTMLElement;\r\n    @Input() decrement: string;\r\n    @Input() disable: boolean;\r\n    @Input() height?: number;\r\n    @Input() dontUseTopBound: boolean;\r\n    @Input() setMinHeight: boolean;\r\n    @Output() heightChanged = new EventEmitter();\r\n\r\n    _height = '100svh';\r\n    topBound = '';\r\n    oldTopBound = '';\r\n\r\n    ngAfterViewInit(): void {\r\n        super.ngAfterViewInit();\r\n        if (this.disable) {\r\n            return;\r\n        }\r\n        setTimeout(() => {\r\n            this._setHeightOfFormContent();\r\n            if (this.topBound === '0px') {\r\n                setTimeout(() => {\r\n                    this._setHeightOfFormContent();\r\n                }, 1000);\r\n            }\r\n        });\r\n    }\r\n    public Refresh(): void {\r\n        this._setHeightOfFormContent();\r\n    }\r\n    private _setHeightOfFormContent(): void {\r\n        const dom = this._el.nativeElement as HTMLElement;\r\n        const bound = dom.getBoundingClientRect();\r\n        this.topBound = `${bound.top}px`;\r\n        if (this.oldTopBound && this.oldTopBound === this.topBound) {\r\n            return;\r\n        }\r\n        if (this.setMinHeight) {\r\n            this._renderer2.setStyle(dom, 'height', `auto`);\r\n        }\r\n        if (this.height) {\r\n            this._renderer2.setStyle(dom, this.setMinHeight ? 'min-height' : 'height', `${this.height}px`);\r\n            this.heightChanged.emit();\r\n            return;\r\n        }\r\n        if (this.containerDom) {\r\n            this._height = `${this.containerDom.getBoundingClientRect().height}px`;\r\n        }\r\n        if (this.decrement) {\r\n            this.decrement = ` - ${this.decrement}`;\r\n        } else {\r\n            this.decrement = '';\r\n        }\r\n        if (this.dontUseTopBound) {\r\n            this.topBound = '0px';\r\n        }\r\n        this.oldTopBound = this.topBound;\r\n        if (bound) {\r\n            this._renderer2.setStyle(\r\n                dom,\r\n                this.setMinHeight ? 'min-height' : 'height',\r\n                `calc(${this._height} - ${this.topBound}${this.decrement})`\r\n            );\r\n        }\r\n        this.heightChanged.emit();\r\n    }\r\n}\r\n","import { ChangeDetectionStrategy, Component, inject } from '@angular/core';\r\n\r\nimport { PageBaseComponent } from '../abstract-classes';\r\nimport { RoutingService } from '../services';\r\n\r\n@Component({\r\n    selector: 'bnrc-portal-page-sidebar',\r\n    template: `<div class=\"page-sidebar-wrapper\">\r\n            <div class=\"sidebar\" fillEmptySpace><ng-container #containerRef></ng-container></div>\r\n            <div class=\"mainside\"><router-outlet name=\"mainside\"></router-outlet></div>\r\n        </div>\r\n        <router-outlet></router-outlet>`,\r\n    changeDetection: ChangeDetectionStrategy.OnPush,\r\n    providers: [RoutingService],\r\n    standalone: false\r\n})\r\nexport class PortalPageSidebarComponent extends PageBaseComponent {\r\n    _routingService = inject(RoutingService);\r\n    ngOnInit(): void {\r\n        super.ngOnInit();\r\n        this._routingService.isSidebar = true;\r\n    }\r\n}\r\n","import {\r\n    ChangeDetectionStrategy,\r\n    ChangeDetectorRef,\r\n    Component,\r\n    ComponentRef,\r\n    EventEmitter,\r\n    Injector,\r\n    Input,\r\n    OnChanges,\r\n    OnDestroy,\r\n    OnInit,\r\n    Output,\r\n    SimpleChanges,\r\n    ViewChild,\r\n    ViewContainerRef,\r\n    inject\r\n} from '@angular/core';\r\nimport { takeUntil, tap } from 'rxjs';\r\nimport { EjrayOlgo } from '../abstract-classes';\r\nimport { BaseComponent } from '../abstract-classes/base.component';\r\nimport { PortalService } from '../services';\r\n\r\n@Component({\r\n    selector: 'bnrc-dynamic-component',\r\n    template: `<ng-container #componentContainer></ng-container>`,\r\n    changeDetection: ChangeDetectionStrategy.OnPush,\r\n    standalone: false\r\n})\r\nexport class BaseDynamicComponent extends BaseComponent implements OnInit, OnDestroy, OnChanges {\r\n    @ViewChild('componentContainer', { read: ViewContainerRef, static: true })\r\n    _container: ViewContainerRef;\r\n    @Input() component: EjrayOlgo;\r\n    @Input() value: any;\r\n    @Output() events = new EventEmitter<{ title: string; data?: any }>();\r\n    public _component: ComponentRef<any>;\r\n\r\n    protected _vcr = inject(ViewContainerRef);\r\n    protected _cdr = inject(ChangeDetectorRef);\r\n    protected _portalService = inject(PortalService);\r\n    protected _injector = inject(Injector);\r\n\r\n    async ngOnInit(): Promise<void> {\r\n        super.ngOnInit();\r\n        if (!this._container) {\r\n            this._container = this._vcr;\r\n        }\r\n        this._renderComponentInstance();\r\n    }\r\n    ngOnChanges(changes: SimpleChanges): void {\r\n        if (!this._component?.instance) {\r\n            return;\r\n        }\r\n        // const changesKey = Object.keys(changes);\r\n        // changesKey\r\n        //     .filter((c) => !changes[c].firstChange)\r\n        //     .forEach((c) => (this._component.instance[c] = changes[c].currentValue));\r\n\r\n        this._component.instance.ngOnChanges(changes);\r\n    }\r\n    ngOnDestroy(): void {\r\n        this._destroyComponentInstance();\r\n    }\r\n\r\n    protected async _renderComponentInstance(): Promise<void> {\r\n        this._destroyComponentInstance();\r\n        if (!this.component) {\r\n            return;\r\n        }\r\n        const { Module, ModuleFileName, Name, Selector } = this.component;\r\n        this._portalService\r\n            .getComponent(Module, ModuleFileName, Name, Selector, this._injector)\r\n            .pipe(takeUntil(this._onDestroy$))\r\n            .subscribe((componentRef: ComponentRef<any>) => {\r\n                this._component = componentRef;\r\n                if (this.component.Parameters) {\r\n                    this._component.instance.parameters = this.component.Parameters;\r\n                    this._component.instance.settings = this.component.Parameters;\r\n                } else if (this.component.Settings) {\r\n                    this._component.instance.parameters = this.component.Settings;\r\n                    this._component.instance.settings = this.component.Settings;\r\n                }\r\n                if (this.value) {\r\n                    this._component.instance.value = this.value;\r\n                }\r\n                this.setComponentInputs();\r\n                const events = this._component.instance.events as EventEmitter<{ title: string; data?: any }>;\r\n                if (events) {\r\n                    events\r\n                        .pipe(\r\n                            takeUntil(this._onDestroy$),\r\n                            tap((c) => this.events.emit(c))\r\n                        )\r\n                        .subscribe();\r\n                }\r\n                this._container.insert(componentRef.hostView);\r\n                this._cdr.detectChanges();\r\n            });\r\n        // this.setComponentInputs();\r\n    }\r\n\r\n    protected setComponentInputs(): void {\r\n        const inputProperties = Object.keys(this).filter((c) => !c.startsWith('_') && c !== 'events');\r\n        inputProperties.forEach((key) => {\r\n            const property = this._component.instance[key];\r\n            if (property instanceof EventEmitter) {\r\n                property.pipe(takeUntil(this._onDestroy$)).subscribe((e) => {\r\n                    this[key].emit(e);\r\n                });\r\n            } else {\r\n                this._component.instance[key] = this[key];\r\n            }\r\n        });\r\n    }\r\n\r\n    protected _destroyComponentInstance(): void {\r\n        if (this._component) {\r\n            this._component.destroy();\r\n        }\r\n    }\r\n}\r\n","import { ChangeDetectionStrategy, Component, Input, TemplateRef } 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    standalone: false\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() layoutActionsTemplateRef: TemplateRef<any>;\r\n    @Input() workflowButtons: any[];\r\n    @Input() layout94;\r\n    @Input() footerDesign;\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';\r\nimport { Observable } from 'rxjs';\r\nimport {\r\n    AbbrevationDeviceSize,\r\n    DeviceSize,\r\n    FormSetting,\r\n    MetaobjectDataModel,\r\n    ReportViewColumn,\r\n    TypeUlvMainCtrlr,\r\n    UiReportViewBaseSetting\r\n} from '../abstract-classes';\r\nimport { BaseDynamicComponent } from './base-dynamic.component';\r\n\r\n@Component({\r\n    selector: 'bnrc-dynamic-item-component',\r\n    template: `<ng-container #componentContainer></ng-container>`,\r\n    styles: [\r\n        `\r\n            :host {\r\n                display: contents;\r\n            }\r\n        `\r\n    ],\r\n    changeDetection: ChangeDetectionStrategy.OnPush,\r\n    standalone: false\r\n})\r\nexport class DynamicItemComponent extends BaseDynamicComponent {\r\n    @Input() mo: MetaobjectDataModel;\r\n    @Input() allColumns: ReportViewColumn[];\r\n    @Input() moDataList: MetaobjectDataModel[];\r\n    @Input() columns: ReportViewColumn[];\r\n    @Input() column: ReportViewColumn;\r\n    @Input() index: number;\r\n    @Input() last: boolean;\r\n    @Input() hideOpenIcon: boolean;\r\n    @Input() deviceName: DeviceSize;\r\n    @Input() deviceSize: AbbrevationDeviceSize;\r\n    @Input() rtl: boolean;\r\n    @Input() editMode: boolean;\r\n    @Input() setting: UiReportViewBaseSetting;\r\n    @Input() parameters?: MetaobjectDataModel;\r\n    @Input() contextMenuItems: any[];\r\n    @Input() canView: boolean;\r\n    @Input() showRowNumber: boolean;\r\n    @Input() rowNumber: string;\r\n    @Input() formSetting: FormSetting;\r\n    @Input() conditionalFormats: any;\r\n    @Input() disableOverflowContextMenu: boolean;\r\n    @Input() navigationArrow: string;\r\n    @Input() isCheckList: boolean;\r\n\r\n    @Input() fields: MetaobjectDataModel;\r\n    @Input() isChecked: boolean;\r\n    @Input() layout94$: Observable<any>;\r\n    @Input() inlineEditMode: boolean;\r\n    @Input() isNewInlineMo: boolean;\r\n    @Input() allowInlineEdit: boolean;\r\n    @Input() typeDefId: string;\r\n    @Input() rowIndicator: boolean;\r\n    @Input() rowIndicatorColor: string;\r\n    @Input() UlvMainCtrlr: TypeUlvMainCtrlr;\r\n}\r\n","import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from '@angular/core';\r\n\r\nimport {\r\n    AbbrevationDeviceSize,\r\n    DefaultCommandsAccess,\r\n    DeviceSize,\r\n    EjrayOlgo,\r\n    MetaobjectDataModel,\r\n    ReportViewColumn,\r\n    ShareButtonsChoiceDef\r\n} from '../abstract-classes';\r\nimport { BaseComponent } from '../abstract-classes/base.component';\r\n\r\n@Component({\r\n    selector: 'bnrc-base-view-props',\r\n    template: ``,\r\n    changeDetection: ChangeDetectionStrategy.OnPush,\r\n    standalone: false\r\n})\r\nexport class BaseViewPropsComponent extends BaseComponent {\r\n    @Input() detailsComponent?: EjrayOlgo;\r\n    @Input() detailsColumns: ReportViewColumn[];\r\n    @Input() detailsText: string;\r\n    @Input() detailsTextFunction: string;\r\n    @Input() moDataList: MetaobjectDataModel[];\r\n    @Input() reportId: string;\r\n    @Input() allColumns: any;\r\n    @Input() hideOpenIcon: boolean;\r\n    @Input() isCheckList: boolean;\r\n    @Input() allChecked: boolean;\r\n    @Input() canView: boolean;\r\n    @Input() visibility: boolean;\r\n    @Input() level: number;\r\n    @Input() expanded: boolean;\r\n    @Input() styleIndex: number[];\r\n    @Input() parentExpanded: boolean;\r\n    @Input() access: DefaultCommandsAccess;\r\n    @Input() groupby: any;\r\n    @Input() UlvMainCtrlr: any;\r\n    @Input() conditionalFormats: any;\r\n    @Input() deviceName: DeviceSize;\r\n    @Input() deviceSize: AbbrevationDeviceSize;\r\n    @Input() contextMenuItems: any[];\r\n    @Input() columns: any;\r\n    @Input() allowInlineEdit: any;\r\n    @Input() secondaryColumns: any;\r\n    @Input() popin: boolean;\r\n    @Input() typeDefId: string;\r\n    @Input() columnsCount: any;\r\n    @Input() mobileOrTablet: boolean;\r\n    @Input() containerWidth: number;\r\n    @Input() newInlineEditMo: MetaobjectDataModel | null;\r\n    @Input() inlineEditMode: boolean;\r\n    @Input() onlyInlineEdit: boolean;\r\n    @Input() rowHoverable: boolean;\r\n    @Input() openOnClick: boolean;\r\n    @Input() tlbButtons: any[];\r\n    @Input() setting: any | null | undefined;\r\n    @Input() parameters: MetaobjectDataModel;\r\n    @Input() formSetting: any;\r\n    @Input() disableOverflowContextMenu: boolean;\r\n    @Input() rowActivable = true;\r\n    @Input() contentDensity: any;\r\n    @Input() rtl = true;\r\n    @Input() showOkCancelButtons;\r\n    @Input() title;\r\n    @Input() isChecked;\r\n    @Input() navigationArrow: string;\r\n    @Output() resetWorkflowState = new EventEmitter<void>();\r\n    @Output() deselectAll = new EventEmitter<void>();\r\n    @Output() escapeKey = new EventEmitter<MetaobjectDataModel>();\r\n    @Output() rowCheck = new EventEmitter<{ mo: MetaobjectDataModel; index: number; onlyCheck?: boolean }>();\r\n    @Output() workflowShareButtons = new EventEmitter<ShareButtonsChoiceDef>();\r\n    @Output() rowClick = new EventEmitter<{ mo: MetaobjectDataModel; index: number }>();\r\n    @Output() ulvCommand = new EventEmitter<{ mo: MetaobjectDataModel; index: number }>();\r\n    @Output() editFormPanelCancel = new EventEmitter<MetaobjectDataModel>();\r\n    @Output() editFormPanelSave = new EventEmitter<MetaobjectDataModel>();\r\n    @Output() selectNextInlineRecord = new EventEmitter<MetaobjectDataModel>();\r\n    @Output() action = new EventEmitter<string>();\r\n    @Output() expandClick = new EventEmitter<MetaobjectDataModel>();\r\n    @Output() editFormPanelValueChange = new EventEmitter<{ mo: MetaobjectDataModel; fieldDbName?: string }>();\r\n    @Output() cartableFormClosed = new EventEmitter<{ mo: MetaobjectDataModel; index: number }>();\r\n    _trackByRow(index: number, row: MetaobjectDataModel): string {\r\n        return `${row.$Group ? row.$Group : row.Id}${index}`;\r\n    }\r\n}\r\n","import { ChangeDetectionStrategy, Component, Input, Output, EventEmitter } from '@angular/core';\r\nimport { MetaobjectDataModel, UiReportViewBaseSetting } from '../abstract-classes';\r\nimport { BaseViewPropsComponent } from './base-view-props';\r\n\r\n@Component({\r\n    selector: 'bnrc-base-view-content-props',\r\n    template: ``,\r\n    changeDetection: ChangeDetectionStrategy.OnPush,\r\n    standalone: false\r\n})\r\nexport class BaseViewContentPropsComponent<T extends UiReportViewBaseSetting> extends BaseViewPropsComponent {\r\n    @Input() moDataList: MetaobjectDataModel[];\r\n    @Input() setting: T;\r\n    @Output() actionListClick = new EventEmitter<string>();\r\n}\r\n","import {\r\n    ChangeDetectionStrategy,\r\n    ChangeDetectorRef,\r\n    Component,\r\n    EventEmitter,\r\n    Input,\r\n    OnChanges,\r\n    OnInit,\r\n    Output,\r\n    SimpleChanges,\r\n    ViewChild,\r\n    WritableSignal,\r\n    signal,\r\n    inject\r\n} from '@angular/core';\r\nimport { DomSanitizer } from '@angular/platform-browser';\r\nimport { catchError, from, tap, Observable, Subject, exhaustMap, takeUntil, throwError } from 'rxjs';\r\n\r\nimport {\r\n    MetaobjectDataModel,\r\n    ReportViewColumn,\r\n    FormSetting,\r\n    BarsaApi,\r\n    ChoiceDef,\r\n    TypeUlvMainCtrlr,\r\n    BruleActionMessage,\r\n    EjrayOlgo\r\n} from '../abstract-classes';\r\nimport {\r\n    PreventDefaulEvent,\r\n    createGridEditorFormPanel,\r\n    getFocusableTagNames,\r\n    nullOrUndefinedString\r\n} from '../constants';\r\nimport { FormPanelService, UlvMainService } from '../services';\r\nimport { BaseViewPropsComponent } from './base-view-props';\r\nimport { MoReportValuePipe } from '../pipes';\r\nimport { FormComponent } from '../form/form.component';\r\ntype ReasonToSave = 'TAB' | 'CTRL+ENTER' | 'CHECK_CHANGED' | 'ESC' | 'MOUSEDOWN_OUTSIDE' | 'NONE';\r\n@Component({\r\n    selector: 'bnrc-base-view-item-props',\r\n    template: ``,\r\n    changeDetection: ChangeDetectionStrategy.OnPush,\r\n    standalone: false\r\n})\r\nexport class BaseViewItemPropsComponent extends BaseViewPropsComponent implements OnInit, OnChanges {\r\n    @Output() actionListClick = new EventEmitter<string>();\r\n    @Output() events = new EventEmitter<{ title: string; data?: any }>();\r\n    @ViewChild('cartableFormRef', { static: false }) _cartableFormRef: FormComponent;\r\n    @Input() checkboxComponent: EjrayOlgo;\r\n    @Input() disableEllapsis: boolean;\r\n    @Input() isslider: boolean;\r\n    @Input() attachmentViewType: number;\r\n    @Input() contextMenuOverflowText: string;\r\n    @Input() detailsComponent?: EjrayOlgo;\r\n    @Input() detailsColumns: ReportViewColumn[];\r\n    @Input() detailsText: string;\r\n    @Input() mo: MetaobjectDataModel;\r\n    @Input() moDataListCount: number;\r\n    @Input() index: number;\r\n    @Input() last: boolean;\r\n    @Input() isdirty: boolean;\r\n    @Input() isChecked: boolean;\r\n    @Input() hideDetailsText: boolean;\r\n    @Input() showViewButton: boolean;\r\n    @Input() isNewInlineMo: boolean;\r\n    @Input() extraRelation: any;\r\n    @Input() hideOpenIcon: boolean;\r\n    @Input() inlineEditWithoutSelection: boolean;\r\n    @Input() inDialog: boolean;\r\n    @Input() isMobile: boolean;\r\n    @Input() isMultiSelect: boolean;\r\n    @Input() rowIndicator: boolean;\r\n    @Input() groupSummary: boolean;\r\n    @Input() isLastChildGroup: boolean;\r\n    @Input() showRowNumber: boolean;\r\n    @Input() rowNumber: string;\r\n    @Input() coloringRow: boolean;\r\n    @Input() noSaveInlineEditInServer: boolean;\r\n    @Input() rowIndicatorColor: string;\r\n    @Input() UlvMainCtrlr: TypeUlvMainCtrlr;\r\n    @Input() fieldDict: Record<string, string>;\r\n    @Input() actionList: any[];\r\n\r\n    @Input() set serializedRelatedMo(val: string) {\r\n        this._serializedRelatedMo = val;\r\n        this._updateCartableMo(val);\r\n        this._createCartableParams();\r\n    }\r\n    @Input() set cartableTemplate(val: FormSetting) {\r\n        this._cartableTemplate = val;\r\n        this._createCartableParams();\r\n    }\r\n    @Input() set cartableMo(val: MetaobjectDataModel) {\r\n        this._cartableMo = val;\r\n        this._updateCartableMo(this._serializedRelatedMo);\r\n\r\n        this._createCartableParams();\r\n    }\r\n    @Input() set cartableWorkflowData(val: string) {\r\n        this._cartableWorkflowData = val;\r\n        this._createCartableParams();\r\n    }\r\n    hasError = false;\r\n    _focusToFirstEidtableColumn = false;\r\n    _lastEditableColumnIndex: number;\r\n    inlineEditInReport = true;\r\n    layout$: Observable<any>;\r\n    formPanelCtrlr: any;\r\n    saving: boolean;\r\n    saved: boolean;\r\n    rewriteLayout = true;\r\n    hasCartableTemplate = false;\r\n    cartableParams: {\r\n        formSetting: FormSetting;\r\n        moId: string;\r\n        typeDefId: string | undefined;\r\n        viewId: any;\r\n        inDialog: boolean;\r\n        loadActivityView: boolean;\r\n    };\r\n    workflowState: WritableSignal<{ error: any; state: 'Pending' | 'Finish' | '' } | null> = signal(null);\r\n    bruleActionMessage: WritableSignal<BruleActionMessage | null> = signal(null);\r\n\r\n    protected _domSanitizer = inject(DomSanitizer);\r\n    protected _cdr = inject(ChangeDetectorRef);\r\n    protected _reportValuePipe = inject(MoReportValuePipe);\r\n    protected _parentFormPanelService = inject(FormPanelService, { optional: true, skipSelf: true });\r\n    protected _formPanelService = inject(FormPanelService, { optional: true, self: true });\r\n    protected _ulvMainService = inject(UlvMainService, { optional: true });\r\n    private _saveEditedMo$ = new Subject<ReasonToSave>();\r\n    private _formpanelValueChanged$ = new Subject<string>();\r\n    private _formPanelLoaded: boolean;\r\n    private _cartableMo: MetaobjectDataModel;\r\n    private _cartableTemplate: FormSetting;\r\n    private _cartableWorkflowData: string;\r\n    private _serializedRelatedMo: string;\r\n\r\n    constructor() {\r\n        super();\r\n        this._saveEditedMo$\r\n            .asObservable()\r\n            .pipe(\r\n                takeUntil(this._onDestroy$),\r\n                // debounceTime(500),\r\n                exhaustMap((reason: ReasonToSave) => this._inlineEditSaveFormPanel(reason)),\r\n                catchError((err) => throwError(() => err))\r\n            )\r\n            .subscribe((res: { reason: ReasonToSave; succeed: boolean; saved: boolean }) => {\r\n                if (res.saved) {\r\n                    this.mo.$IsChecked = false;\r\n                    this._formpanelValueChanged$.next('');\r\n                    this._cdr.markForCheck();\r\n                }\r\n                if (res.reason === 'TAB' || res.reason === 'CTRL+ENTER') {\r\n                    this.selectNextInlineRecord.emit(this.mo);\r\n                } else if (res.reason === 'ESC') {\r\n                    this.editFormPanelCancel.emit(this.mo);\r\n                }\r\n            });\r\n        this._formpanelValueChanged$\r\n            .asObservable()\r\n            .pipe(\r\n                takeUntil(this._onDestroy$),\r\n                // switchMap(() => this._syncMo()),\r\n                tap((_) => this._syncMo()),\r\n                tap((_) => {\r\n                    if (typeof this.mo.$InlineMoChanged === 'undefined') {\r\n                        this.mo.$InlineMoChanged = true;\r\n                    }\r\n                })\r\n            )\r\n            .subscribe((c) => {\r\n                this.editFormPanelValueChange.emit({ mo: this.mo, fieldDbName: c });\r\n            });\r\n    }\r\n    private get _hasFormPanelService(): boolean {\r\n        return this._formPanelService !== null && this.formSetting;\r\n    }\r\n\r\n    ngOnInit(): void {\r\n        super.ngOnInit();\r\n\r\n        if (this._hasFormPanelService) {\r\n            if (this._formPanelService) {\r\n                this._formPanelService.context$.pipe(takeUntil(this._onDestroy$)).subscribe();\r\n                this._formPanelService.view$.pipe(takeUntil(this._onDestroy$)).subscribe();\r\n                this.layout$ = this._formPanelService.layout$;\r\n                if (this.inlineEditWithoutSelection) {\r\n                    this._loadAndCreateFormPanelCtrlr();\r\n                }\r\n            } else {\r\n                this._log.error(nullOrUndefinedString('BaseViewItemPropsComponent=> _formPanelService'));\r\n            }\r\n        }\r\n    }\r\n    ngOnChanges(changes: SimpleChanges): void {\r\n        super.ngOnChanges(changes);\r\n        const { isChecked, inlineEditMode } = changes;\r\n        let needToLoadForm = false;\r\n        if (this.inlineEditMode) {\r\n            if (isChecked) {\r\n                if (!isChecked.currentValue && isChecked.previousValue) {\r\n                    if (this._needToSave()) {\r\n                        this._saveEditedMo$.next('CHECK_CHANGED');\r\n                    }\r\n                } else if (isChecked.currentValue) {\r\n                    needToLoadForm = true;\r\n                }\r\n            }\r\n        }\r\n        if (isChecked && !isChecked.firstChange) {\r\n            this._raiseWorkflowShareButtons(isChecked.currentValue);\r\n        }\r\n        if (inlineEditMode?.currentValue && !inlineEditMode?.previousValue && this.isChecked) {\r\n            needToLoadForm = true;\r\n        } else if (!inlineEditMode?.currentValue && inlineEditMode?.previousValue && this.isChecked) {\r\n            this._saveEditedMo$.next('ESC');\r\n        }\r\n        if (needToLoadForm && !this.inlineEditWithoutSelection) {\r\n            this._loadAndCreateFormPanelCtrlr();\r\n        }\r\n        if (changes.mo && !changes.mo.firstChange && this.inlineEditMode) {\r\n            if (this._formPanelLoaded) {\r\n                this.formPanelCtrlr.SetValue(changes.mo.currentValue);\r\n            }\r\n        }\r\n        // if (mo && !mo.firstChange && this._hasFormPanelService && this.isChecked && this.inlineEditMode) {\r\n        //     //this.formPanelCtrlr.SetValue(changes.mo.currentValue);\r\n        // }\r\n    }\r\n    ngOnDestroy(): void {\r\n        super.ngOnDestroy();\r\n        if (this.formPanelCtrlr) {\r\n            this.formPanelCtrlr.un('bruleShowMessageAction', this._handleBruleShowMessageAction);\r\n        }\r\n    }\r\n    OnCartableFormClick(e): void {\r\n        if (this.isChecked) {\r\n            e.preventDefault();\r\n            e.stopPropagation();\r\n        }\r\n    }\r\n\r\n    onRowCheck(onlyCheck?: boolean): void {\r\n        this._rowCheck(onlyCheck);\r\n    }\r\n    onRowClick(): void {\r\n        this.rowClick.emit({ mo: this.mo, index: this.index });\r\n    }\r\n    onColumnChangeToEditMode(elDom: HTMLElement, index: number): void {\r\n        const focusables = elDom.querySelectorAll(getFocusableTagNames());\r\n        this._lastEditableColumnIndex = index;\r\n        if (!focusables.length || this._focusToFirstEidtableColumn) {\r\n            return;\r\n        }\r\n        this._focusToFirstEidtableColumn = true;\r\n        const lastFocusable = focusables[0];\r\n        setTimeout(() => {\r\n            (lastFocusable as HTMLElement)?.focus();\r\n        }, 0);\r\n    }\r\n    onTabKeyDown(e, index): void {\r\n        if (index === this._lastEditableColumnIndex) {\r\n            if (this.index === this.moDataList.length - 1) {\r\n                PreventDefaulEvent(e);\r\n            }\r\n            this._saveEditedMo$.next('TAB');\r\n        }\r\n    }\r\n    onEditFormPanelSave(_): void {\r\n        this._saveEditedMo$.next('CTRL+ENTER');\r\n    }\r\n    onEditFormPanelCancel(_): void {\r\n        this.escapeKey.emit(this.mo);\r\n    }\r\n    onUlvCommand(): void {\r\n        this.ulvCommand.emit({ mo: this.mo, index: this.index });\r\n    }\r\n    onAction(commandBody: string): void {\r\n        this.action.emit(commandBody);\r\n    }\r\n    onExpandClick(): void {\r\n        this.expandClick.emit(this.mo);\r\n    }\r\n    onDynamicComponentEvents(e: { title: string; data?: any }): void {\r\n        switch (e.title) {\r\n            case 'rowCheck':\r\n                this.onRowCheck();\r\n                break;\r\n            case 'rowClick':\r\n                this.onRowClick();\r\n                break;\r\n            case 'ulvCommand':\r\n                this.onUlvCommand();\r\n                break;\r\n        }\r\n    }\r\n\r\n    onCartableFormClosed(): void {\r\n        this.cartableFormClosed.emit({ mo: this.mo, index: this.index });\r\n    }\r\n\r\n    onCartableBruleAction(bruleAction: BruleActionMessage): void {\r\n        this._handleBruleShowMessageAction(bruleAction);\r\n    }\r\n    onCartableAfterTansition(e): void {\r\n        this.workflowState.set({\r\n            error: this.bruleActionMessage() ? this.bruleActionMessage() : e.error,\r\n            state: 'Finish'\r\n        });\r\n    }\r\n    onCartableBeforeTansition(): void {\r\n        this.workflowState.set({ state: 'Pending', error: null });\r\n    }\r\n    onResetWorkflowState(): void {\r\n        this._handleResetWorkflowState();\r\n    }\r\n    _trackByColumn(index: number, column: ReportViewColumn): string {\r\n        return `${column.Name}${index}`;\r\n    }\r\n    protected _handleResetWorkflowState(): void {\r\n        this._resetBruleActionMessage();\r\n        this.workflowState.set({ state: '', error: null });\r\n    }\r\n    protected _resetBruleActionMessage(): void {\r\n        this.bruleActionMessage.set(null);\r\n    }\r\n    protected _updateCartableMo(serializeMo: string): void {\r\n        if (serializeMo && this._cartableMo) {\r\n            serializeMo = `${serializeMo}`;\r\n            const mo = BarsaApi.Ext.decode(serializeMo);\r\n            this._cartableMo = { ...this._cartableMo, ...mo };\r\n        }\r\n    }\r\n    protected _createCartableParams(): void {\r\n        let cartableTemplate = this._cartableTemplate;\r\n        const cartableMo = this._cartableMo;\r\n        const cartableWorkflowData = this._cartableWorkflowData;\r\n        if (this.hasCartableTemplate) {\r\n            // TODO update cartable mo;\r\n            return;\r\n        }\r\n        if (\r\n            cartableTemplate &&\r\n            cartableMo &&\r\n            typeof cartableWorkflowData !== 'undefined' &&\r\n            this._serializedRelatedMo\r\n        ) {\r\n            cartableTemplate = JSON.parse(JSON.stringify(cartableTemplate));\r\n            const view = cartableTemplate.View;\r\n            cartableTemplate.Data = { Mo: { ...cartableMo } };\r\n            cartableTemplate.Workflow = cartableWorkflowData === '' ? null : JSON.parse(cartableWorkflowData);\r\n            if (!view.ExtraJsonProp) {\r\n                view.ExtraJsonProp = {};\r\n            }\r\n            view.ExtraJsonProp.IsSimple = true;\r\n\r\n            this.cartableParams = {\r\n                formSetting: cartableTemplate,\r\n                moId: cartableMo.Id,\r\n                typeDefId: cartableMo.$TypeDefId,\r\n                viewId: view.TypeViewId,\r\n                inDialog: false,\r\n                loadActivityView: true\r\n            };\r\n            this.hasCartableTemplate = true;\r\n            this._cdr.markForCheck();\r\n        }\r\n    }\r\n    protected _needToSave(): boolean {\r\n        // if (!this.isChecked) {\r\n        //     return false;\r\n        // }\r\n        // const isChildNode = (this._el.nativeElement as HTMLElement).contains(e.target);\r\n        // if (isChildNode) {\r\n        //     return false;\r\n        // }\r\n        const t = this.inlineEditMode && this._hasFormPanelService;\r\n        if (!t) {\r\n            return false;\r\n        }\r\n\r\n        return this.formPanelCtrlr && this.formPanelCtrlr.IsMoChanged();\r\n    }\r\n\r\n    protected _checkfocusOutFromRow(_target): void {\r\n        // const focusable: NodeList = this._focusableControls;\r\n        // let foundInFocusable = false;\r\n        // focusable.forEach((c) => {\r\n        //     if (c === target) {\r\n        //         foundInFocusable = true;\r\n        //     }\r\n        // });\r\n        // if (!foundInFocusable) {\r\n        //     this._saveEditedMo$.next('TAB');\r\n        // }\r\n    }\r\n    protected _rowCheck(onlyCheck?: boolean): void {\r\n        this.rowCheck.emit({ mo: this.mo, index: this.index, onlyCheck });\r\n    }\r\n\r\n    protected _raiseWorkflowShareButtons(isChecked: boolean): void {\r\n        if (this.cartableParams) {\r\n            const choiceList: ChoiceDef[] = this.cartableParams.formSetting?.Workflow?.ChoiceList;\r\n            if (choiceList?.length) {\r\n                setTimeout(() => {\r\n                    this.workflowShareButtons.emit({\r\n                        formPanelCtrlr: this._cartableFormRef.formPanelCtrl,\r\n                        mo: this.mo,\r\n                        choiceList,\r\n                        add: isChecked\r\n                    });\r\n                });\r\n            }\r\n        }\r\n    }\r\n\r\n    protected _handleValueChange(_formPanelCtrl, fieldCtrlr): void {\r\n        if (!this.isChecked) {\r\n            this.onRowCheck();\r\n        }\r\n        this._formpanelValueChanged$.next(fieldCtrlr?.Setting?.ControlName);\r\n    }\r\n    protected _syncMo(): Observable<void> {\r\n        const syncWithFormpanelMo = this.mo;\r\n        const _isChecked = this.mo.$IsChecked;\r\n        const formPanelCtrlrMo = this.formPanelCtrlr.Mo;\r\n        this._updateWithOriginalValues(formPanelCtrlrMo, syncWithFormpanelMo);\r\n        syncWithFormpanelMo['$OriginalValues'] = formPanelCtrlrMo['$OriginalValues'];\r\n        syncWithFormpanelMo['$FieldDict'] = formPanelCtrlrMo['$FieldDict'];\r\n        syncWithFormpanelMo['$State'] = formPanelCtrlrMo['$State']; // this add because if we edit unchanged mo it does not reflect to mo of ulv.\r\n        this.mo = this._getMoWithoutWrapper(syncWithFormpanelMo);\r\n\r\n        this.mo.$IsChecked = _isChecked;\r\n        return from(Promise.resolve());\r\n    }\r\n\r\n    protected _getMoWithoutWrapper(syncWithFormpanelMo: MetaobjectDataModel): MetaobjectDataModel {\r\n        // eslint-disable-next-line no-unused-vars\r\n        const { $Wrapper: _Wrapper, ...x } = syncWithFormpanelMo;\r\n        return x;\r\n    }\r\n\r\n    protected _updateWithOriginalValues(source: MetaobjectDataModel, dest: MetaobjectDataModel): void {\r\n        Object.keys(source.$OriginalValues).forEach((c: any) => {\r\n            dest[c] = source[c];\r\n            if (source[c + '$Caption']) {\r\n                dest[c + '$Caption'] = source[c + '$Caption'];\r\n            }\r\n            if (source[c + '$Icon']) {\r\n                dest[c + '$Icon'] = source[c + '$Icon'];\r\n            }\r\n        });\r\n    }\r\n\r\n    protected _raiseFormPanelValueChanged(): void {\r\n        this.editFormPanelValueChange.emit({ mo: this.mo });\r\n    }\r\n\r\n    protected _handleBruleShowMessageAction(action: BruleActionMessage): void {\r\n        action.MessageExpressionHtml = this._domSanitizer.bypassSecurityTrustHtml(action.MessageExpression);\r\n        this.bruleActionMessage.set(action);\r\n    }\r\n    protected _createFormPanelCtrlr(mo: MetaobjectDataModel, typeDefId: string): any {\r\n        if (!this.formPanelCtrlr) {\r\n            this.formPanelCtrlr = createGridEditorFormPanel(\r\n                this.formSetting,\r\n                { ...this._getMoWithoutWrapper(mo) },\r\n                typeDefId,\r\n                this.extraRelation,\r\n                this.rewriteLayout,\r\n                this.UlvMainCtrlr\r\n                // BarsaApi.Common.Util.TryGetValue(this.context.Setting, 'Extra.Relation')\r\n            );\r\n        }\r\n        this.formPanelCtrlr.InlineEditInReport = true;\r\n        this.formPanelCtrlr.on({\r\n            bruleShowMessageAction: this._handleBruleShowMessageAction.bind(this),\r\n            valueChange: this._handleValueChange.bind(this)\r\n        });\r\n\r\n        return this.formPanelCtrlr;\r\n    }\r\n\r\n    protected _loadAndCreateFormPanelCtrlr(): void {\r\n        const formSettingData = this.formSetting.Data;\r\n        const formMo = {\r\n            ...this.mo,\r\n            $FieldDict: formSettingData.Mo.$FieldDict,\r\n            $TypeDefId: formSettingData.Mo.$TypeDefId,\r\n            $OriginalValues: this.extraRelation?.RelationType === 'Composition' ? this.mo.$OriginalValues || {} : {}\r\n        };\r\n        if (this._formPanelLoaded) {\r\n            this.formPanelCtrlr.SetValue(formMo);\r\n            return;\r\n        }\r\n\r\n        this._createFormPanelCtrlr(formMo, this.typeDefId);\r\n        this._formPanelLoaded = true;\r\n        const formPanelCtrlr = this.formPanelCtrlr;\r\n        this.formPanelCtrlr.UlvMoDataListCount = this.moDataListCount - 1;\r\n        formPanelCtrlr.LoadAndCreate(null, false, false, () => {\r\n            const customFormPanelUi = formPanelCtrlr.Adapter.Control;\r\n            const parentMo = this._parentFormPanelService ? this._parentFormPanelService.mo : null;\r\n            if (this.extraRelation && parentMo && this.extraRelation.RelationType === 'Composition') {\r\n                formPanelCtrlr.Mo.SetFValue(this.extraRelation.ParentFdName, parentMo);\r\n                // newFormSettings.Data.Mo[relation.ParentFdName] = parentMo.GetChangedObject();\r\n                // newFormSettings.Data.Mo[relation.ParentFdName].$State = parentMo.$State;\r\n            }\r\n            customFormPanelUi.Refresh = () => {};\r\n            if (this._formPanelService) {\r\n                this._formPanelService.context = formPanelCtrlr.Adapter.Control;\r\n            } else {\r\n                this._log.error(nullOrUndefinedString('BaseViewItemPropsComponent=> _formPanelService'));\r\n            }\r\n        });\r\n    }\r\n    protected _resetSavingStates(): void {\r\n        this.hasError = false;\r\n        this._resetBruleActionMessage();\r\n        this.saved = false;\r\n        this._cdr.markForCheck();\r\n    }\r\n    protected _setSavingState(err): void {\r\n        if (err) {\r\n            this.hasError = true;\r\n            return;\r\n        }\r\n        this.hasError = false;\r\n        this.saved = true;\r\n    }\r\n    protected _inlineEditSaveFormPanel(reason): Promise<{ reason: ReasonToSave; succeed: boolean; saved: boolean }> {\r\n        return new Promise<{ reason: ReasonToSave; succeed: boolean; saved: boolean }>((resolve, _reject) => {\r\n            if (!this.formPanelCtrlr.IsMoChanged() && this.formPanelCtrlr.Mo.GetState() !== 'New') {\r\n                // if state of mo is new or modidfied then it needs to update\r\n                resolve({ reason, succeed: true, saved: false });\r\n                return;\r\n            }\r\n            const formPanelCtrlrMo = this.formPanelCtrlr.Mo;\r\n            delete formPanelCtrlrMo.json;\r\n            // this.saving = true;\r\n\r\n            this.mo.$InlineMoChanged = false;\r\n            this.editFormPanelSave.emit(this.mo);\r\n            this._resetBruleActionMessage();\r\n            if (this.noSaveInlineEditInServer) {\r\n                resolve({ reason, succeed: true, saved: true });\r\n                return;\r\n            }\r\n            this.formPanelCtrlr.Save(false, (err) => {\r\n                // this.saving = false;\r\n                if (err instanceof BarsaApi.Common.SilentException) {\r\n                    resolve({ reason: 'NONE', succeed: true, saved: true });\r\n                    return;\r\n                }\r\n                this.formPanelCtrlr.SetIsChanged(false);\r\n                this._setSavingState(err);\r\n                resolve({ reason, succeed: true, saved: true });\r\n            });\r\n        });\r\n    }\r\n}\r\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, EventEmitter, Input, Output, Renderer2, inject } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport {\r\n    AbbrevationDeviceSize,\r\n    DeviceSize,\r\n    MetaobjectDataModel,\r\n    ReportViewColumn,\r\n    UiReportViewBaseSetting,\r\n    FormSetting,\r\n    TypeUlvMainCtrlr\r\n} from '../abstract-classes';\r\nimport { BaseComponent } from '../abstract-classes/base.component';\r\nimport { FindColumnByDbNamePipe, MoReportValuePipe } from '../pipes';\r\n\r\n@Component({\r\n    selector: 'bnrc-base-item-content-props',\r\n    template: ``,\r\n    changeDetection: ChangeDetectionStrategy.OnPush,\r\n    standalone: false\r\n})\r\nexport class BaseItemContentPropsComponent<T extends UiReportViewBaseSetting> extends BaseComponent {\r\n\r\n    @Output() events = new EventEmitter<{ title: string; data?: any }>();\r\n    @Input() mo: MetaobjectDataModel;\r\n    @Input() allColumns: ReportViewColumn[];\r\n    @Input() column: ReportViewColumn;\r\n    @Input() index: number;\r\n    @Input() styleIndex: number[];\r\n    @Input() deviceName: DeviceSize;\r\n    @Input() deviceSize: AbbrevationDeviceSize;\r\n    @Input() rtl: boolean;\r\n    @Input() editMode: boolean;\r\n    @Input() setting: T;\r\n    @Input() parameters: MetaobjectDataModel;\r\n    @Input() contextMenuItems: any[];\r\n    @Input() canView: boolean;\r\n    @Input() conditionalFormats: any;\r\n    @Input() disableOverflowContextMenu: boolean;\r\n    @Input() navigationArrow: string;\r\n    @Input() isCheckList: boolean;\r\n    @Input() fields: MetaobjectDataModel;\r\n    @Input() isChecked: boolean;\r\n    @Input() hideOpenIcon: boolean;\r\n    @Input() layout94$: Observable<any>;\r\n    @Input() inlineEditMode: boolean;\r\n    @Input() allowInlineEdit: boolean;\r\n    @Input() isNewInlineMo: boolean;\r\n    @Input() formSetting: FormSetting;\r\n    @Input() typeDefId: string;\r\n    @Input() UlvMainCtrlr: TypeUlvMainCtrlr;\r\n    protected _rval = inject(MoReportValuePipe);\r\n    protected _findColumnPipe = inject(FindColumnByDbNamePipe);\r\n    protected _cdr = inject(ChangeDetectorRef);\r\n    protected _el = inject(ElementRef);\r\n    protected _renderer2 = inject(Renderer2);\r\n\r\n}\r\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, EventEmitter, Input, Output, inject } from '@angular/core';\r\nimport { AbbrevationDeviceSize, DeviceSize, MetaobjectDataModel, ReportViewColumn } from '../abstract-classes';\r\nimport { BaseComponent } from '../abstract-classes/base.component';\r\nimport { MoReportValuePipe } from '../pipes';\r\n\r\n@Component({\r\n    selector: 'bnrc-form-toolbaritem-props',\r\n    template: ``,\r\n    changeDetection: ChangeDetectionStrategy.OnPush,\r\n    standalone: false\r\n})\r\nexport class BaseFormToolbaritemPropsComponent extends BaseComponent {\r\n    @Input() deviceName: DeviceSize;\r\n    @Input() deviceSize: AbbrevationDeviceSize;\r\n    @Input() btn: any;\r\n    @Input() context: any;\r\n    @Input() isEnable: boolean;\r\n    @Input() inlineEditMode: boolean;\r\n    @Input() parameters: MetaobjectDataModel;\r\n    @Output() ulvClick = new EventEmitter<{ title: string; data?: any }>();\r\n    @Input() mo: MetaobjectDataModel;\r\n    @Input() allColumns: ReportViewColumn[];\r\n    @Input() index: number;\r\n    @Input() showText: boolean;\r\n    @Input() conditionalFormats: any;\r\n    @Output() commandClick = new EventEmitter<any>();\r\n    protected _reportValuePipe = inject(MoReportValuePipe);\r\n    protected _cdr = inject(ChangeDetectorRef);\r\n\r\n}\r\n","import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from '@angular/core';\r\nimport { AbbrevationDeviceSize, 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;width: min-content;}'],\r\n    changeDetection: ChangeDetectionStrategy.OnPush,\r\n    standalone: false\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() deviceSize: AbbrevationDeviceSize;\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';\r\nimport { LayoutSetting, MetaobjectDataModel } from '../abstract-classes';\r\nimport { BaseDynamicComponent } from './base-dynamic.component';\r\nimport { getUniqueId } from '../constants';\r\n\r\n@Component({\r\n    selector: 'bnrc-dynamic-layout',\r\n    template: ``,\r\n    changeDetection: ChangeDetectionStrategy.OnPush,\r\n    styles: [\r\n        `\r\n            :host {\r\n                display: none;\r\n            }\r\n        `\r\n    ],\r\n    standalone: false\r\n})\r\nexport class DynamicLayoutComponent extends BaseDynamicComponent {\r\n    @Input() selector: string;\r\n    @Input() module: string;\r\n    @Input() name: string;\r\n    @Input() parameters: MetaobjectDataModel;\r\n    @Input() moduleFileName: string;\r\n    @Input() flex: string;\r\n    @Input() config: LayoutSetting;\r\n    @Input() maxLabelWidth: number;\r\n    @Input() hasHorizontalText: boolean;\r\n    @Input() isSearchPanel: boolean;\r\n\r\n    async ngOnInit(): Promise<void> {\r\n        if (this.config.CustomUi) {\r\n            const { Module, ModuleFileName, Name, Selector, Parameters, Settings } = this.config.CustomUi;\r\n            this.component = {\r\n                Id: getUniqueId(3),\r\n                $Caption: getUniqueId(3),\r\n                Module,\r\n                ModuleFileName,\r\n                Name,\r\n                Selector,\r\n                Parameters: Parameters || Settings\r\n            };\r\n        } else {\r\n            this.component = {\r\n                Id: getUniqueId(3),\r\n                $Caption: getUniqueId(3),\r\n                Module: this.module,\r\n                ModuleFileName: this.moduleFileName,\r\n                Name: this.name,\r\n                Selector: this.selector,\r\n                Parameters: this.parameters\r\n            };\r\n        }\r\n        super.ngOnInit();\r\n    }\r\n}\r\n","import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from '@angular/core';\r\nimport { CdkDragDrop } from '@angular/cdk/drag-drop';\r\n\r\nimport { AbbrevationDeviceSize, MetaobjectDataModel } from '../abstract-classes';\r\nimport { BaseDynamicComponent } from './base-dynamic.component';\r\n\r\n@Component({\r\n    selector: 'bnrc-dynamic-tile-group,[dynamictilegroup]',\r\n    template: `<ng-container #componentContainer></ng-container>`,\r\n    changeDetection: ChangeDetectionStrategy.OnPush,\r\n    standalone: false\r\n})\r\nexport class DynamicTileGroupComponent extends BaseDynamicComponent {\r\n    @Input() appTileGroup: MetaobjectDataModel;\r\n    @Input() tabRef: any;\r\n\r\n    @Input() stackContent: boolean;\r\n    @Input() cssStyles: string;\r\n    @Input() edit: boolean;\r\n    @Input() rtl: boolean;\r\n    @Input() isAppTileSubGroup: boolean | undefined;\r\n    @Input() deviceSize: AbbrevationDeviceSize;\r\n    @Input() isLast: boolean;\r\n\r\n    @Output() tilesDropped = new EventEmitter<{\r\n        appTileGroup: MetaobjectDataModel;\r\n        event: CdkDragDrop<{ isTile: boolean; items: MetaobjectDataModel[] }>;\r\n    }>();\r\n    @Output() hideAppTileClick = new EventEmitter<MetaobjectDataModel>();\r\n    @Output() renameAppTileClick = new EventEmitter<MetaobjectDataModel>();\r\n    @Output() toggleGroup = new EventEmitter<MetaobjectDataModel>();\r\n    @Output() resetGroup = new EventEmitter<MetaobjectDataModel>();\r\n    @Output() deleteGroup = new EventEmitter<MetaobjectDataModel>();\r\n}\r\n","import { ChangeDetectionStrategy, Component, inject } from '@angular/core';\r\nimport { combineLatest } from 'rxjs';\r\n\r\nimport { BaseComponent } from '../abstract-classes/base.component';\r\nimport { LocalStorageService, PortalService } from '../services';\r\nimport { BarsaApi } from '../abstract-classes';\r\n\r\n@Component({\r\n    selector: 'bnrc-unlimit-session',\r\n    templateUrl: './unlimit-session.component.html',\r\n    styleUrls: ['./unlimit-session.component.scss'],\r\n    changeDetection: ChangeDetectionStrategy.OnPush,\r\n    standalone: false\r\n})\r\nexport class UnlimitSessionComponent extends BaseComponent {\r\n    private _portalService = inject(PortalService);\r\n    private _storageService = inject(LocalStorageService);\r\n    private _Key = 'S_S_Ex';\r\n    ngOnInit(): void {\r\n        super.ngOnInit();\r\n        combineLatest([this._portalService.userLoggedIn$, this._portalService.standalone$]).subscribe(\r\n            ([isLoggedIn, standalone]) => {\r\n                const key = this._Key;\r\n                if (isLoggedIn && standalone && !this._storageService.getItem(key)) {\r\n                    try {\r\n                        this._setStandaloneApp();\r\n                    } catch {}\r\n                    this._storageService.setItem(key, 'true');\r\n                }\r\n                if (!isLoggedIn) {\r\n                    this._storageService.remove(key);\r\n                }\r\n            }\r\n        );\r\n    }\r\n    private _setStandaloneApp(): void {\r\n        this._portalService.RunBlMethodAsync('BarsaSetStandAloneApp', [BarsaApi.LoginFormData.PortalId]).catch((_) => {});\r\n    }\r\n}\r\n","","import { Directive, OnInit, Renderer2, inject } from '@angular/core';\r\nimport { BarsaApi } from '../abstract-classes';\r\ndeclare const head: any;\r\n@Directive({\r\n    selector: '[loadExternalFiles]',\r\n    standalone: false\r\n})\r\nexport class LoadExternalFilesDirective implements OnInit {\r\n    _renderer2 = inject(Renderer2);\r\n    ngOnInit(): void {\r\n        const jsfiles: string[] = [];\r\n        const cssfiles: string[] = [];\r\n        Object.keys(BarsaApi.LoginFormData).forEach((key) => {\r\n            if (key.startsWith('JSFile')) {\r\n                jsfiles.push(BarsaApi.LoginFormData[key]);\r\n            }\r\n            if (key.startsWith('CSSFile')) {\r\n                cssfiles.push(BarsaApi.LoginFormData[key]);\r\n            }\r\n        });\r\n        if (jsfiles.length > 0) {\r\n            head.load(jsfiles);\r\n        }\r\n        if (cssfiles.length > 0) {\r\n            cssfiles.forEach((c) => {\r\n                document.head.insertAdjacentHTML('beforeend', ` <link href=\"${c}\" rel=\"stylesheet\" noportal />`);\r\n            });\r\n        }\r\n    }\r\n}\r\n","import {\r\n    ChangeDetectionStrategy,\r\n    Component,\r\n    ElementRef,\r\n    HostBinding,\r\n    OnInit,\r\n    ViewChild,\r\n    ViewContainerRef\r\n} from '@angular/core';\r\n\r\nimport { NavigationEnd, NavigationStart, RouterEvent } from '@angular/router';\r\nimport { Observable, takeUntil, tap } from 'rxjs';\r\n\r\nimport { BarsaApi, PageBaseComponent, PageDataModel } from '../abstract-classes';\r\nimport { isInLocalMode } from '../constants';\r\ndeclare const BigNumber: any;\r\n\r\n@Component({\r\n    selector: 'bnrc-root-portal',\r\n    template: `\r\n        <div\r\n            class=\"tw-hidden grid-cols-0 tw-grid-cols-1 tw-grid-cols-2 tw-grid-cols-3 tw-grid-cols-4 tw-grid-cols-5 \r\n            tw-grid-cols-6 tw-grid-cols-7 tw-grid-cols-8 tw-grid-cols-9 tw-grid-cols-10 tw-grid-cols-11 tw-grid-cols-12\"\r\n        ></div>\r\n        <div\r\n            class=\"tw-hidden md:grid-cols-0 md:tw-grid-cols-1 md:tw-grid-cols-2 md:tw-grid-cols-3 md:tw-grid-cols-4 \r\n            md:tw-grid-cols-5 md:tw-grid-cols-6 md:tw-grid-cols-7 md:tw-grid-cols-8 md:tw-grid-cols-9 md:tw-grid-cols-10 md:tw-grid-cols-11 md:tw-grid-cols-12\"\r\n        ></div>\r\n        <div\r\n            class=\"tw-hidden lg:grid-cols-0 lg:tw-grid-cols-1 lg:tw-grid-cols-2 lg:tw-grid-cols-3 \r\n            lg:tw-grid-cols-4 lg:tw-grid-cols-5 lg:tw-grid-cols-6 lg:tw-grid-cols-7 lg:tw-grid-cols-8 lg:tw-grid-cols-9 \r\n            lg:tw-grid-cols-10 lg:tw-grid-cols-11 lg:tw-grid-cols-12\"\r\n        ></div>\r\n        <div\r\n            class=\"tw-hidden xl:grid-cols-0 xl:tw-grid-cols-1 xl:tw-grid-cols-2 xl:tw-grid-cols-3 \r\n            xl:tw-grid-cols-4 xl:tw-grid-cols-5 xl:tw-grid-cols-6 xl:tw-grid-cols-7 xl:tw-grid-cols-8 \r\n            xl:tw-grid-cols-9 xl:tw-grid-cols-10 xl:tw-grid-cols-11 xl:tw-grid-cols-12\"\r\n        ></div>\r\n        <div\r\n            class=\"tw-hidden 2xl:grid-cols-0 2xl:tw-grid-cols-1 2xl:tw-grid-cols-2 2xl:tw-grid-cols-3 \r\n            2xl:tw-grid-cols-4 2xl:tw-grid-cols-5 2xl:tw-grid-cols-6 2xl:tw-grid-cols-7 2xl:tw-grid-cols-8 2xl:tw-grid-cols-9 \r\n            2xl:tw-grid-cols-10 2xl:tw-grid-cols-11 2xl:tw-grid-cols-12\"\r\n        ></div>\r\n        @if(inLocalMode){\r\n        <div class=\"fd-toolbar\" style=\"flex-wrap:wrap;padding:0.5rem;height:auto\">\r\n            <button class=\"fd-button fd-button--attention is-compact\" (click)=\"onRemoveOfflineData()\">\r\n                حذف اطلاعات آفلاین\r\n            </button>\r\n            <button class=\"fd-button fd-button--negative is-compact\" (click)=\"onRemoveOfflineDataAndReturnToOnline()\">\r\n                حذف اطلاعات آفلاین و برگشت به حالت آنلاین\r\n            </button>\r\n            <button class=\"fd-button fd-button--positive is-compact\" (click)=\"onSendOfflineDataToServer()\">\r\n                ارسال اطلاعات آفلاین به سرور\r\n            </button>\r\n        </div>\r\n        } @if (imageUrl) {\r\n        <div id=\"headerSpaceHolder\" #headerSpaceHolder>\r\n            <div id=\"bgOuterHolder\" #bgOuterHolder>\r\n                <div id=\"bgInnerHolder\" style=\"height: 100vh\">\r\n                    <div\r\n                        class=\"backgroundImage\"\r\n                        id=\"backgroundImage\"\r\n                        [style.background-color]=\"backgroundColor\"\r\n                        [style.background-image]=\"'url(' + imageUrl + ')'\"\r\n                    >\r\n                        <!-- <img class=\"picture\" [src]=\"imageUrl\" loading=\"lazy\" /> -->\r\n                        @if(hasOverlay){\r\n                        <span id=\"backgroundImageOverlay\" class=\"overlay\"></span>\r\n                        }\r\n                    </div>\r\n                </div>\r\n            </div>\r\n        </div>\r\n        }\r\n        <section loadExternalFiles 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        <ng-container #footerRef></ng-container>\r\n        @if(pageData?.UnlimitSession==='True'){\r\n        <bnrc-unlimit-session></bnrc-unlimit-session>\r\n        }\r\n    `,\r\n    changeDetection: ChangeDetectionStrategy.OnPush,\r\n    standalone: false\r\n})\r\nexport class RootPortalComponent extends PageBaseComponent implements OnInit {\r\n    @ViewChild('sectionRef') sectionRef: ElementRef;\r\n    @ViewChild('footerRef', { read: ViewContainerRef }) footerRefVcr: ViewContainerRef;\r\n    @HostBinding('attr.dir') _dir = 'ltr';\r\n    portalLoading$: Observable<boolean>;\r\n    modules: any;\r\n    isRoot = true;\r\n    inLocalMode = true;\r\n    hasOverlay: boolean;\r\n    imageUrl: string;\r\n    backgroundColor: string;\r\n    shellbarHeight$: Observable<string>;\r\n    ngOnInit(): void {\r\n        super.ngOnInit();\r\n        this.inLocalMode = isInLocalMode();\r\n        this._portalService.rtl$.subscribe((c) => {\r\n            this._dir = c ? 'rtl' : 'ltr';\r\n        });\r\n        // this.inLocalMode = true;\r\n\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    protected onSendOfflineDataToServer(): void {\r\n        BarsaApi.Bw.Msg.YesNo(BarsaApi.BBB.OfflineGoOnline, BarsaApi.BBB.Delete, function (buttonId) {\r\n            if (buttonId === 'yes') {\r\n                BarsaApi.Bw.Msg.Wait(0, BarsaApi.BBB.LoadingMaskMsg, 'wait');\r\n                BarsaApi.Offline.GoOnline(function () {\r\n                    window.location.reload();\r\n                });\r\n            }\r\n        });\r\n    }\r\n    protected onRemoveOfflineDataAndReturnToOnline(): void {\r\n        BarsaApi.Bw.Msg.YesNo(BarsaApi.BBB.OfflineClearAll, BarsaApi.BBB.Delete, function (buttonId) {\r\n            if (buttonId === 'yes') {\r\n                BarsaApi.Offline.ClearAll();\r\n                window.location.reload();\r\n            }\r\n        });\r\n    }\r\n    protected onRemoveOfflineData(): void {\r\n        BarsaApi.Bw.Msg.YesNo(BarsaApi.BBB.OfflineClearUnsavedData, BarsaApi.BBB.Delete, function (buttonId) {\r\n            if (buttonId === 'yes') {\r\n                BarsaApi.Offline.CachedData.UnsavedData = {};\r\n                BarsaApi.Offline.CachedData.save();\r\n                BarsaApi.Bw.Toast.Success(BarsaApi.BBB.Action + BarsaApi.BBB.JobCompleted);\r\n            }\r\n        });\r\n    }\r\n    protected addFooter(pageData: PageDataModel | null): void {\r\n        if (!pageData?.Footer) {\r\n            return;\r\n        }\r\n        const footerComponent = pageData.Footer.Component;\r\n        this.getComponentFactory(footerComponent)\r\n            .pipe(\r\n                takeUntil(this._onDestroy$),\r\n                tap((controlUi) => {\r\n                    controlUi.instance.settings = footerComponent.Settings;\r\n                    controlUi.instance.activatedRoute = this._activatedRoute;\r\n                    if (this.footerRefVcr) {\r\n                        this.footerRefVcr.insert(controlUi.hostView);\r\n                    }\r\n                })\r\n            )\r\n            .subscribe();\r\n    }\r\n    protected renderPlaceHolders(pageData: PageDataModel | null): void {\r\n        super.renderPlaceHolders(pageData);\r\n        this.addFooter(pageData);\r\n        BigNumber.prototype.subtract = BigNumber.prototype.minus;\r\n        BigNumber.prototype.add = BigNumber.prototype.plus;\r\n        const { BackgroundId, BackgroundColor, HasOverlay, BackgroundSize } = this.pageData as any;\r\n\r\n        if (BackgroundId) {\r\n            this.backgroundColor = BackgroundColor;\r\n            this.hasOverlay = HasOverlay !== 'False';\r\n            this._renderer2.addClass(this._el.nativeElement, 'root-custom-background');\r\n            this.hasOverlay && this._renderer2.addClass(this._el.nativeElement, 'root-background-overlay');\r\n            BackgroundSize && this._renderer2.addClass(this._el.nativeElement, 'size-' + BackgroundSize);\r\n            this.imageUrl = `/IH.ashx?ty=ID&moId=&id=${BackgroundId}`;\r\n            this._portalService.setSiteImageUrl(BackgroundColor, this.imageUrl);\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    standalone: false\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 { Directive, Input } from '@angular/core';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { BaseDirective } from './base.directive';\r\n\r\n@Directive({\r\n    selector: '[attrRtl]',\r\n    standalone: false\r\n})\r\nexport class AttrRtlDirective extends BaseDirective {\r\n    @Input('attrRtl') rtl: boolean | undefined;    \r\n    constructor() {        \r\n        super();        \r\n\r\n        const rtl = this.rtl;\r\n        if (rtl === false) {\r\n            this._setRtlAttribute(rtl);\r\n            return;\r\n        }\r\n        this._portalService.rtl$.pipe(takeUntil(this._onDestroy$)).subscribe((rtlValue) => {\r\n            this._setRtlAttribute(rtlValue);\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, Input, OnInit, Renderer2, inject } from '@angular/core';\r\nimport { BaseDirective } from './base.directive';\r\n\r\n@Directive({\r\n    selector: '[columnResizer]',\r\n    standalone: false\r\n})\r\nexport class ColumnResizerDirective extends BaseDirective implements OnInit {\r\n    @Input() disableResizer: boolean;\r\n    private renderer = inject(Renderer2);\r\n\r\n    ngOnInit(): void {\r\n        super.ngOnInit();\r\n        if (!this.disableResizer) {\r\n            this._addColumnsResizer();\r\n        }\r\n    }\r\n\r\n    private _addColumnsResizer(): void {\r\n        const cell: HTMLTableCellElement = this._el.nativeElement;\r\n        if (cell.hasAttribute('NoResizable')) {\r\n            return;\r\n        }\r\n        const columnResizer = this.renderer.createElement('div');\r\n\r\n        this.renderer.appendChild(cell, columnResizer);\r\n        columnResizer.setAttribute('class', 'column-resizer');\r\n        this.renderer.setAttribute(\r\n            columnResizer,\r\n            'style',\r\n            'cursor: col-resize; width: 8px;position: absolute;left:0; top:0; bottom:0'\r\n        );\r\n        this.renderer.setStyle(cell, 'padding-left', 0);\r\n        this.renderer.setStyle(cell, 'position', 'relative');\r\n    }\r\n}\r\n","import { Directive, EventEmitter, HostListener, Input, Output } from '@angular/core';\r\nimport { MetaobjectDataModel } from '../abstract-classes';\r\nimport { ExecuteDynamicCommand } from '../constants';\r\n\r\n@Directive({\r\n    selector: '[dynCommand]',\r\n    standalone: false\r\n})\r\nexport class DynamicCommandDirective {\r\n    @Input() dynCommand: MetaobjectDataModel;\r\n    @Input() mo: MetaobjectDataModel;\r\n    @Input() enableCommand;\r\n    @Output() commandClick = new EventEmitter();\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 || !this.dynCommand) {\r\n            return true;\r\n        }\r\n        const command = this.dynCommand;\r\n        event.stopPropagation();\r\n        event.preventDefault();\r\n        ExecuteDynamicCommand(command, this.mo);\r\n        this.commandClick.emit();\r\n        return false;\r\n    }\r\n}\r\n","import { AfterViewInit, Directive, ElementRef, HostListener, Input, Renderer2, inject } from '@angular/core';\r\nimport { BaseDirective } from './base.directive';\r\n\r\n@Directive({\r\n    selector: '[ellipsify]',\r\n    standalone: false\r\n})\r\nexport class EllipsifyDirective extends BaseDirective implements AfterViewInit {\r\n    @Input() limitLine;\r\n    childes: ElementRef[];\r\n\r\n    protected renderer = inject(Renderer2);\r\n\r\n    @HostListener('mousemove', ['$event'])\r\n    moseMove(e): void {\r\n        if (e.buttons) {\r\n            this._heightChange();\r\n        }\r\n    }\r\n\r\n    ngAfterViewInit(): void {\r\n        super.ngAfterViewInit();\r\n        setTimeout(() => {\r\n            this.childes = this._el.nativeElement.querySelectorAll('span, h5, p');\r\n            this._initStyle();\r\n            this._handleNoEllipsis();\r\n            this._heightChange();\r\n        }, 100);\r\n    }\r\n\r\n    private _heightChange(): void {\r\n        this.childes.forEach((child: any) => {\r\n            if (child.childElementCount === 0) {\r\n                const height = child.clientHeight;\r\n                const lineHeightStr = getComputedStyle(child).lineHeight.replace('px', '');\r\n                const lineHeight = Number(lineHeightStr);\r\n                let limitLine = this.limitLine ? this.limitLine : Math.round(height / lineHeight);\r\n                limitLine = limitLine && limitLine !== 0 ? limitLine : 1;\r\n                this.renderer.setStyle(child, '-webkit-line-clamp', limitLine.toString());\r\n            }\r\n        });\r\n    }\r\n\r\n    private _initStyle(): void {\r\n        this.childes.forEach((child: any) => {\r\n            if (child.childElementCount === 0) {\r\n                this.renderer.setStyle(child, 'height', 'inherit');\r\n                this.renderer.setStyle(child, 'overflow', 'hidden');\r\n                this.renderer.setStyle(child, '-webkit-box-orient', 'vertical');\r\n                this.renderer.setStyle(child, 'display', '-webkit-box');\r\n                this.renderer.setStyle(child, 'width', 'fit-content');\r\n            }\r\n        });\r\n    }\r\n\r\n    private _handleNoEllipsis(): void {\r\n        const noEllipsisEls = this._el.nativeElement.querySelectorAll('[ellipsis=no-ellipsis]');\r\n        noEllipsisEls.forEach((el: any) => {\r\n            const all = el.querySelectorAll('span, h5, p');\r\n            all.forEach((el2) => {\r\n                if (el2.childElementCount === 0) {\r\n                    this.renderer.setStyle(el2, 'white-space', 'break-spaces');\r\n                }\r\n            });\r\n        });\r\n    }\r\n}\r\n","import { Directive, Input } from '@angular/core';\r\n\r\n@Directive({\r\n    selector: '[field]',\r\n    standalone: false\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, inject } from '@angular/core';\r\nimport { fromEvent, timer, Subject, merge } from 'rxjs';\r\nimport { debounceTime, filter, takeUntil, tap } from 'rxjs/operators';\r\n\r\nimport { BaseDirective } from './base.directive';\r\nimport { PortalService } from '../services/portal.service';\r\n\r\n@Directive({\r\n    selector: '[imgLazy]',\r\n    standalone: false\r\n})\r\nexport class ImageLazyDirective extends BaseDirective implements OnInit {\r\n    @Input() auto = true;\r\n    @Input() threshold = 20;\r\n    @Output() imageLoaded = new EventEmitter();\r\n    @Input() imgLazy: string;\r\n\r\n    protected _el: ElementRef;\r\n    private portalService = inject(PortalService);\r\n    private _imgEl: HTMLImageElement;\r\n    private _imageViewed$ = new Subject<void>();\r\n    \r\n    constructor() {\r\n        super();\r\n        this._imgEl = this._el.nativeElement as HTMLImageElement;\r\n    }\r\n    ngOnInit(): void {\r\n        super.ngOnInit();\r\n        const supports = 'loading' in HTMLImageElement.prototype;\r\n\r\n        if (supports) {\r\n            this._imgEl.src = this.imgLazy;\r\n            this._imgEl.setAttribute('loading', 'lazy');\r\n            this.handleLoadEvent(this._imgEl);\r\n            return;\r\n        }\r\n        const timer1 = timer(1000);\r\n        if (this.auto) {\r\n            const isCached = this.portalService.cachedImages[this.imgLazy];\r\n            if (isCached) {\r\n                this._imgEl.src = this.imgLazy;\r\n                return;\r\n            }\r\n            merge([timer1, fromEvent(window, 'scroll')])\r\n                .pipe(\r\n                    takeUntil(this._imageViewed$),\r\n                    takeUntil(this._onDestroy$),\r\n                    debounceTime(20),\r\n                    filter(() => this.isInViewport()),\r\n                    tap(() => this.showImage())\r\n                )\r\n                .subscribe();\r\n        }\r\n    }\r\n    public showImage(): void {\r\n        const imgEl = this._imgEl;\r\n        if (this.imgLazy === this._imgEl.src) {\r\n            imgEl.parentElement?.setAttribute('imgLoaded', 'true');\r\n            return;\r\n        }\r\n        this.portalService.cachedImages[this.imgLazy] = true;\r\n        imgEl.src = this.imgLazy;\r\n        this.handleLoadEvent(imgEl);\r\n        this._imageViewed$.next();\r\n    }\r\n    private handleLoadEvent(imgEl: HTMLImageElement): void {\r\n        imgEl.addEventListener('load', () => {\r\n            imgEl.parentElement?.setAttribute('imgLoaded', 'true');\r\n            this.imageLoaded.emit();\r\n        });\r\n    }\r\n    private isInViewport(): boolean {\r\n        const rect = this._imgEl.getBoundingClientRect();\r\n        const isInViewport =\r\n            rect.top >= 0 &&\r\n            rect.left >= 0 &&\r\n            rect.bottom - this.threshold <= (window.innerHeight || document.documentElement.clientHeight) &&\r\n            rect.right <= (window.innerWidth || document.documentElement.clientWidth);\r\n        return isInViewport;\r\n    }\r\n}\r\n","import { Directive, ElementRef, EventEmitter, Input, OnInit, OnDestroy, Output, inject } 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    standalone: false\r\n})\r\nexport class IntersectionObserverDirective implements OnInit, OnDestroy {\r\n    \r\n    @Input() intersectionDebounce = 0;\r\n    @Input() intersectionRootMargin = '';\r\n    @Input() intersectionRoot: HTMLElement;\r\n    @Input() intersectionThreshold: number | number[];    \r\n    @Output() visibilityChange = new EventEmitter<IntersectionStatus>();\r\n    \r\n    private element = inject(ElementRef);\r\n    private destroy$ = new Subject<void>();\r\n\r\n    ngOnInit(): void {\r\n        const element = this.element.nativeElement;\r\n        this.intersectionDebounce = this.intersectionDebounce || 0;\r\n        this.intersectionRootMargin = this.intersectionRootMargin || '0px';\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, false)\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, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\n\r\nimport { MetaobjectDataModel } from '../abstract-classes/models';\r\nimport { BaseDirective } from './base.directive';\r\n\r\n@Directive({\r\n    selector: '[itemsRenderer]',\r\n    standalone: false\r\n})\r\nexport class ItemsRendererDirective extends BaseDirective implements OnInit {    \r\n    @Input() itemsRenderer: any;\r\n    @Input() moDataList: MetaobjectDataModel[];\r\n    @Input() itemClass: string;\r\n    @Output() itemClick = new EventEmitter();\r\n    @Input() handleClick = false;\r\n    private _fragmentDoc: DocumentFragment;\r\n\r\n    ngOnInit(): void {\r\n        super.ngOnInit();\r\n        const context = this.itemsRenderer.context;\r\n        const { itemSelector } = this.itemsRenderer;\r\n        const fragmentDoc = document.createDocumentFragment();\r\n        if (!this.moDataList) {\r\n            this.moDataList = this.itemsRenderer.moDataList;\r\n        }\r\n\r\n        this.moDataList.forEach((mo, index) => {\r\n            const itemComponentElement = document.createElement(itemSelector);\r\n            itemComponentElement.addEventListener('itemClick', (e) => {\r\n                if (this.handleClick) {\r\n                    this.itemClick.emit(e.detail);\r\n                } else {\r\n                    mo.$IsChecked = true;\r\n                    context?.fireEvent('rowdblclick', context, index, mo);\r\n                }\r\n            });\r\n            itemComponentElement.context = context;\r\n            itemComponentElement.mo = mo;\r\n            itemComponentElement.index = index;\r\n            itemComponentElement.classNames = this.itemClass;\r\n            itemComponentElement.allColumns = this.itemsRenderer.allColumns;\r\n            fragmentDoc.appendChild(itemComponentElement);\r\n        });\r\n        this._el.nativeElement.appendChild(fragmentDoc);\r\n        this._fragmentDoc = fragmentDoc;\r\n    }\r\n}\r\n","import { Directive, ElementRef, HostListener, inject } from '@angular/core';\r\n\r\n@Directive({\r\n    selector: 'input[type=number], input[numbersOnly]',\r\n    standalone: false\r\n})\r\nexport class NumbersOnlyInputDirective {\r\n    private elRef = inject(ElementRef);\r\n\r\n    /** Inserted by Angular inject() migration for backwards compatibility */\r\n    \r\n\r\n    constructor() {}\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    standalone: false\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    Injector,\r\n    Input,\r\n    OnDestroy,\r\n    SimpleChanges,\r\n    ViewContainerRef,\r\n    inject\r\n} from '@angular/core';\r\nimport { delay, takeUntil, tap } from 'rxjs/operators';\r\nimport { BarsaApi, LayoutSetting } from '../abstract-classes';\r\n\r\nimport { BaseDirective } from './base.directive';\r\nimport { getComponentDefined, getUniqueId } from '../constants';\r\n\r\n@Directive({\r\n    selector: '[renderUlvViewer]',\r\n    standalone: false\r\n})\r\nexport class RenderUlvViewerDirective extends BaseDirective implements AfterViewInit, OnDestroy {\r\n    @Input() mask: boolean;\r\n    @Input() isReportPage: boolean;\r\n    @Input() layoutInfo: LayoutSetting;\r\n    @Input('renderUlvViewer') viewer;\r\n    component: ComponentRef<any>;\r\n\r\n    private _injector = inject(Injector);    \r\n    private _vcr = inject(ViewContainerRef);\r\n    private _cdr = inject(ChangeDetectorRef);\r\n\r\n    ngAfterViewInit(): void {\r\n        super.ngAfterViewInit();\r\n        this._render();\r\n    }\r\n    ngOnChanges(changes: SimpleChanges): void {\r\n        if (changes.viewer && !changes.viewer.firstChange) {\r\n            this._vcr.clear();\r\n            this._render();\r\n        }\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                        component.instance.isReportPage = this.isReportPage;\r\n                        component.instance.layoutInfo = this.layoutInfo;\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 {\r\n    ChangeDetectorRef,\r\n    ComponentRef,\r\n    Directive,\r\n    EventEmitter,\r\n    Injector,\r\n    Input,\r\n    OnDestroy,\r\n    OnInit,\r\n    Output,\r\n    SimpleChanges,\r\n    ViewContainerRef,\r\n    inject\r\n} from '@angular/core';\r\nimport { delay, takeUntil, tap } from 'rxjs/operators';\r\n\r\nimport { BaseDirective } from './base.directive';\r\nimport { getComponentDefined, getUniqueId } from '../constants';\r\nimport { BarsaApi, PagingSetting } from '../abstract-classes';\r\n\r\n@Directive({\r\n    selector: '[renderUlvPaging]',\r\n    standalone: false\r\n})\r\nexport class RenderUlvPaginDirective extends BaseDirective implements OnInit, OnDestroy {\r\n    @Output() pageChange = new EventEmitter<number>();\r\n    @Input() mask: boolean;\r\n    @Input() pagingSetting: PagingSetting;\r\n    @Input('renderUlvPaging') context;\r\n    component: ComponentRef<any>;\r\n\r\n    private _injector = inject(Injector);    \r\n    private _vcr = inject(ViewContainerRef);\r\n    private _cdr = inject(ChangeDetectorRef);    \r\n\r\n    async ngOnInit(): Promise<void> {\r\n        super.ngOnInit();\r\n        this._render();\r\n    }\r\n    ngOnDestroy(): void {\r\n        super.ngOnDestroy();\r\n        this.component?.destroy();\r\n    }\r\n    ngOnChanges(changes: SimpleChanges): void {\r\n        super.ngOnChanges(changes);\r\n        if (this.component) {\r\n            Object.keys(changes).forEach((key) => {\r\n                if (!changes[key].firstChange) {\r\n                    this.component.instance[key] = changes[key].currentValue;\r\n                }\r\n            });\r\n            this.component.instance.ngOnChanges(changes);\r\n        }\r\n    }\r\n    async _render(): Promise<void> {\r\n        const context = this.context;\r\n        if (context) {\r\n            const customUiSetting = BarsaApi.Common.Util.TryGetValue(context.Setting, 'ClassNames.CustomUi', null);\r\n            const {\r\n                moduleName,\r\n                modulePath\r\n                // componentName,\r\n                // selector\r\n            } = getComponentDefined(context, customUiSetting);\r\n\r\n            this._portalService\r\n                .getComponent(moduleName, modulePath, 'UlvPaging', 'bsu-ulv-paging', this._injector)\r\n                .pipe(\r\n                    takeUntil(this._onDestroy$),\r\n                    delay(0),\r\n                    tap((component) => {\r\n                        const instance: any = component.instance;\r\n                        instance.id = getUniqueId(4);\r\n                        instance.context = context;\r\n                        instance.pagingSetting = this.pagingSetting;\r\n                        instance.pageChange?.pipe(takeUntil(this._onDestroy$)).subscribe((e) => {\r\n                            this.pageChange.emit(e);\r\n                        });\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 {\r\n    Directive,\r\n    Input,\r\n    Renderer2,\r\n    HostListener,\r\n    SimpleChanges,\r\n    OnInit,\r\n    OnDestroy,\r\n    AfterViewInit,\r\n    OnChanges,\r\n    EventEmitter,\r\n    Output,\r\n    inject\r\n} from '@angular/core';\r\nimport { fromEvent } from 'rxjs';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { ColumnResizedArgs } from '../abstract-classes';\r\nimport { BaseDirective } from './base.directive';\r\nconst enum Resizer {\r\n    Row = 'Row',\r\n    Column = 'Column'\r\n}\r\n\r\n@Directive({\r\n    selector: '[tableResizer]',\r\n    standalone: false\r\n})\r\nexport class TableResizerDirective extends BaseDirective implements OnInit, OnDestroy, AfterViewInit, OnChanges {\r\n\r\n\r\n    @Input() fitWidth: boolean;\r\n    @Input() minWidth;\r\n    @Input() minHeight;\r\n    @Input() containerWidth: number;\r\n    @Input() rowResizer: boolean;\r\n    @Input() enableResizing: boolean;\r\n    @Output() columnResized = new EventEmitter<Array<ColumnResizedArgs>>();        \r\n    private renderer = inject(Renderer2);\r\n    private _currentCell: HTMLTableCellElement;\r\n    private _sideCell;\r\n    private _startX;\r\n    private _startY;\r\n    private _currentColumnWidth;\r\n    private _sideColumnWidth;\r\n    private _currentRowHeight;\r\n    private _currentResizer: Resizer | null;\r\n    private _isInitTable: boolean;\r\n\r\n    /** Inserted by Angular inject() migration for backwards compatibility */\r\n\r\n    constructor() {\r\n        super();\r\n\r\n        fromEvent(document, 'mouseup')\r\n            .pipe(takeUntil(this._onDestroy$))\r\n            .subscribe(() => {\r\n                this._mouseUp();\r\n            });\r\n        fromEvent(document, 'mousemove')\r\n            .pipe(takeUntil(this._onDestroy$))\r\n            .subscribe((e) => {\r\n                this._mouseMove(e);\r\n            });\r\n    }\r\n    private get _table(): HTMLTableElement {\r\n        return this._el.nativeElement as HTMLTableElement;\r\n    }\r\n\r\n    @HostListener('mousedown', ['$event'])\r\n    moseDown(e): void {\r\n        this._mouseDown(e);\r\n    }\r\n\r\n    @HostListener('mousemove', ['$event'])\r\n    moseMove(e): void {\r\n        this._mouseMove(e);\r\n    }\r\n\r\n    ngAfterViewInit(): void {\r\n        if (this.rowResizer) {\r\n            this._putBodyCellsContentIntoDiv();\r\n        }\r\n        if (this.rowResizer) {\r\n            this._addRowsResizer();\r\n        }\r\n        this._setTableMode(this.fitWidth);\r\n    }\r\n\r\n    ngOnChanges(changes: SimpleChanges): void {\r\n        super.ngOnChanges(changes);\r\n        const { fitWidth } = changes;\r\n        if (this.enableResizing && fitWidth && !fitWidth.firstChange) {\r\n            const newFitWidth = fitWidth.currentValue;\r\n            this._setTableMode(newFitWidth);\r\n        }\r\n    }\r\n    private _initializeTable(): void {\r\n        this._initTable();\r\n        this._setTableMode(this.fitWidth);\r\n    }\r\n    private _resizeRow(event): void {\r\n        this._currentResizer = Resizer.Row;\r\n        const elementFromPoint = document.elementFromPoint(event.pageX, event.pageY);\r\n        this._currentCell = elementFromPoint?.closest('td') as HTMLTableCellElement;\r\n        this._startY = event.pageY;\r\n        this._currentRowHeight = this._currentCell?.clientHeight || 0;\r\n    }\r\n\r\n    private _resizeColumn(event): void {\r\n        if (!this.fitWidth) {\r\n            this._setTableFreeSize();\r\n        }\r\n        this._currentResizer = Resizer.Column;\r\n        const elementFromPoint = document.elementFromPoint(event.pageX, event.pageY);\r\n        this._currentCell = elementFromPoint?.closest('th') as HTMLTableCellElement;\r\n        this._startX = event.pageX;\r\n        this._currentColumnWidth = this._currentCell?.clientWidth || 0;\r\n        this._sideCell = this._getSideCell(this._currentCell);\r\n        this._sideColumnWidth = this._sideCell?.clientWidth;\r\n    }\r\n\r\n    private _addRowsResizer(): void {\r\n        const table = this._table;\r\n        const rowsLabel = table.querySelectorAll('.vertical-label');\r\n        rowsLabel.forEach((cell) => {\r\n            const rowResizer = this.renderer.createElement('div');\r\n\r\n            this.renderer.appendChild(cell, rowResizer);\r\n\r\n            rowResizer.setAttribute('class', 'row-resizer');\r\n            this.renderer.setStyle(cell, 'height', 'inherit');\r\n            this.renderer.setStyle(cell, 'position', 'relative');\r\n            this.renderer.setAttribute(\r\n                rowResizer,\r\n                'style',\r\n                'cursor: row-resize; height:8px; position:absolute;bottom:0;left:0;right:0'\r\n            );\r\n        });\r\n    }\r\n\r\n    private _putBodyCellsContentIntoDiv(): void {\r\n        const table = this._table as any;\r\n        const bodyCells = table.querySelectorAll('body td:not(.vertical-label)');\r\n        bodyCells.forEach((cell) => {\r\n            const contentContainer = this.renderer.createElement('div');\r\n            cell.children.forEach((child) => {\r\n                contentContainer.appendChild(child);\r\n            });\r\n            this.renderer.setStyle(cell, 'overflow', 'hidden');\r\n            this.renderer.setStyle(cell, 'height', 'inherit');\r\n            this.renderer.setStyle(contentContainer, 'height', 'inherit');\r\n            this.renderer.setStyle(contentContainer, 'display', 'block');\r\n\r\n            cell.appendChild(contentContainer);\r\n        });\r\n    }\r\n\r\n    private _getSideCell(currentCell): Element | null {\r\n        const currentRow = this._currentCell.parentNode?.children;\r\n        if (currentRow) {\r\n            const cellIndexInRow = Array.from(currentRow).indexOf(currentCell);\r\n            return Array.from(currentRow)[cellIndexInRow + 1];\r\n        }\r\n        return null;\r\n    }\r\n\r\n    private _changeWidth(\r\n        fitWidth: boolean,\r\n        sideCell,\r\n        currentCell,\r\n        changedCurrentCellWidth,\r\n        changedSideCellWidth\r\n    ): void {\r\n        if (fitWidth) {\r\n            if (sideCell && changedCurrentCellWidth >= this.minWidth && changedSideCellWidth >= this.minWidth) {\r\n                this.renderer.setStyle(sideCell, 'width', changedSideCellWidth + 'px');\r\n                this.renderer.setStyle(sideCell, 'min-width', changedSideCellWidth + 'px');\r\n                this.renderer.setStyle(currentCell, 'width', changedCurrentCellWidth + 'px');\r\n                this.renderer.setStyle(currentCell, 'min-width', changedCurrentCellWidth + 'px');\r\n            }\r\n        } else if (changedCurrentCellWidth >= this.minWidth) {\r\n            this.renderer.setStyle(currentCell, 'width', changedCurrentCellWidth + 'px');\r\n            this.renderer.setStyle(currentCell, 'min-width', changedCurrentCellWidth + 'px');\r\n        }\r\n    }\r\n\r\n    private _changeHeight(currentCell, changedHeight, minHeight): void {\r\n        if (changedHeight > minHeight) {\r\n            this.renderer.setStyle(currentCell.closest('tr'), 'height', changedHeight + 'px');\r\n        }\r\n    }\r\n    private _initTable(): void {\r\n        if (this._isInitTable) {\r\n            return;\r\n        }\r\n        this._isInitTable = true;\r\n        const table: HTMLTableElement = this._table;\r\n        const parent = table.parentElement;\r\n        this.renderer.setStyle(parent, 'overflow-x', this.fitWidth ? 'hidden' : 'auto');\r\n        // this.renderer.setStyle(parent, 'overflow-y', 'auto');\r\n        this.renderer.setStyle(parent, 'width', '100%');\r\n    }\r\n\r\n    private _setTableMode(isFitWidth): void {\r\n        if (isFitWidth) {\r\n            this._setTableFitSize();\r\n        }\r\n    }\r\n\r\n    private _setTableFreeSize(): void {\r\n        const table = this._table;\r\n        this.renderer.setStyle(table, 'width', this.containerWidth + 'px');\r\n        this.renderer.setStyle(table, 'max-width', 'unset');\r\n        this.renderer.setStyle(table, 'min-width', this.containerWidth + 'px');\r\n        const headCells = table.querySelectorAll('th');\r\n        headCells.forEach((cell) => {\r\n            const width = cell.offsetWidth;\r\n            this.renderer.setStyle(cell, 'width', width + 'px');\r\n            this.renderer.setStyle(cell, 'min-width', width + 'px');\r\n        });\r\n    }\r\n\r\n    private _setTableFitSize(): void {\r\n        const table = this._table;\r\n        this.renderer.setStyle(table, 'width', '100%');\r\n        this.renderer.setStyle(table, 'max-width', '100%');\r\n    }\r\n\r\n    private _mouseDown(e): void {\r\n        if (e.srcElement.className === 'row-resizer') {\r\n            this._resizeRow(e);\r\n            this.renderer.setStyle(this._el.nativeElement, 'cursor', 'row-resize');\r\n        } else if (e.srcElement.className === 'column-resizer') {\r\n            this._resizeColumn(e);\r\n            this.renderer.setStyle(this._el.nativeElement, 'cursor', 'col-resize');\r\n        }\r\n    }\r\n\r\n    private _mouseMove(e): void {\r\n        if (e.buttons !== 0) {\r\n            if (this._currentResizer === Resizer.Column) {\r\n                if (!this._isInitTable) {\r\n                    this._initializeTable();\r\n                }\r\n                const endX = e.pageX;\r\n                const dx = endX - this._startX;\r\n                const changedCurrentCellWidth = this._currentColumnWidth - dx;\r\n                const changedSideCellWidth = this._sideColumnWidth + dx;\r\n                this._changeWidth(\r\n                    this.fitWidth,\r\n                    this._sideCell,\r\n                    this._currentCell,\r\n                    changedCurrentCellWidth,\r\n                    changedSideCellWidth\r\n                );\r\n            } else if (this._currentResizer === Resizer.Row) {\r\n                const endY = e.pageY;\r\n                const dy = endY - this._startY;\r\n                const changedCurrentRowHeight = this._currentRowHeight + dy;\r\n                this._changeHeight(this._currentCell, changedCurrentRowHeight, this.minHeight);\r\n            }\r\n        }\r\n    }\r\n\r\n    private _mouseUp(): void {\r\n        if (this._currentResizer) {\r\n            const table = this._el.nativeElement;\r\n            const headers = table.querySelectorAll('th');\r\n            const columnResized: ColumnResizedArgs[] = [];\r\n            for (let i = 0; i < headers.length; i++) {\r\n                const header = headers[i];\r\n                const columnName = header.attributes['columnname']?.value;\r\n                if (typeof columnName !== 'undefined') {\r\n                    columnResized.push({ name: columnName, width: header.offsetWidth, thDom: header });\r\n                }\r\n            }\r\n            this.columnResized.emit(columnResized);\r\n        }\r\n        this._currentResizer = null;\r\n        this.renderer.setStyle(this._el.nativeElement, 'cursor', 'default');\r\n    }\r\n}\r\n","import { Directive, EventEmitter, HostListener, Input, Output } from '@angular/core';\r\nimport { BaseDirective } from './base.directive';\r\nimport { executeUlvCommandHandler } from '../constants';\r\n\r\n@Directive({\r\n    selector: '[ulvCommandHandler]',\r\n    standalone: false\r\n})\r\nexport class UlvCommandDirective extends BaseDirective {\r\n    @Input() ulvCommandHandler: any;\r\n    @Input() disable: boolean;\r\n    @Output() commandClick = new EventEmitter();\r\n    @HostListener('click', ['$event'])\r\n    onClick(event: any): boolean {\r\n        if (this.disable) {\r\n            return false;\r\n        }\r\n        const button = this.ulvCommandHandler;\r\n\r\n        event.stopPropagation();\r\n        event.preventDefault();\r\n        this.commandClick.emit(button);\r\n        setTimeout(() => {\r\n            // add settimeout because we need select row before execute row\r\n            executeUlvCommandHandler(button);\r\n        });\r\n\r\n        return false;\r\n    }\r\n}\r\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    inject\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    standalone: false\r\n})\r\nexport class UntilInViewDirective extends BaseDirective implements OnInit, OnDestroy {\r\n    @Input() untilInView: ElementRef;\r\n    @Input() intersectionDebounce = 100;\r\n    \r\n    private _templateRef = inject<TemplateRef<any>>(TemplateRef);\r\n    private _vcr = inject(ViewContainerRef);\r\n    private _cdr = inject(ChangeDetectorRef);\r\n    private viewed$ = new Subject<void>();\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    standalone: false\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, HostListener, Input, OnInit, inject } from '@angular/core';\r\nimport { BaseDirective } from './base.directive';\r\nimport { TOAST_SERVICE } from '../injdection-tokens';\r\nimport { ToastService } from '../services/toast.service';\r\n\r\n@Directive({\r\n    selector: '[copy]',\r\n    standalone: false\r\n})\r\nexport class CopyDirective extends BaseDirective implements OnInit {\r\n    @Input() copy: string;\r\n    _inputEl: HTMLInputElement;\r\n    protected _toastService = inject<ToastService>(TOAST_SERVICE, { optional: true });    \r\n    /**\r\n     *\r\n     */\r\n    constructor() {\r\n        super();\r\n\r\n        if (!navigator.clipboard) {\r\n            this._renderer2.addClass(this._el.nativeElement, 'hide');\r\n        }\r\n    }\r\n\r\n    @HostListener('click')\r\n    doCopy(): void {\r\n        const inputEl = this._inputEl;\r\n        inputEl.value = this.copy;\r\n        const copyText = inputEl;\r\n        /* Select the text field */\r\n        copyText.select();\r\n        copyText.setSelectionRange(0, inputEl.value.length); /* For mobile devices */\r\n        /* Copy the text inside the text field */\r\n        navigator.clipboard.writeText(copyText.value);\r\n        if (this._toastService) {\r\n            const texttoCopy = this.copy.length > 40 ? this.copy.substring(0, 40) + ' ...' : this.copy;\r\n            this._toastService.open(` ${texttoCopy} copied. `, { duration: 5000 });\r\n        }\r\n    }\r\n    ngOnInit(): void {\r\n        super.ngOnInit();\r\n        const dom = this._el.nativeElement as HTMLElement;\r\n        const inputEl = document.createElement('input');\r\n        inputEl.style.display = 'none';\r\n        dom.appendChild(inputEl);\r\n        this._inputEl = inputEl;\r\n    }\r\n}\r\n","import { Directive, Input, AfterViewInit, EventEmitter, Output } from '@angular/core';\r\nimport { BaseDirective } from './base.directive';\r\nimport { measureText } from '../constants';\r\nimport { Subject, debounceTime, takeUntil } from 'rxjs';\r\n\r\n@Directive({\r\n    selector: '[ellapsisText]',\r\n    standalone: false\r\n})\r\nexport class EllapsisTextDirective extends BaseDirective implements AfterViewInit {\r\n    @Input() ellapsisText: string;\r\n    @Input() fontSize: string;\r\n    @Input() disableEllapsis: boolean;\r\n    @Output() ellapsised = new EventEmitter<boolean>();\r\n\r\n    _widthChange$ = new Subject<number>();\r\n    myObserver: ResizeObserver;\r\n\r\n    constructor() {\r\n        super();\r\n\r\n        this.myObserver = new ResizeObserver((entries) => {\r\n            entries.forEach((entry) => {\r\n                if (entry.target === this._el.nativeElement) {\r\n                    this._widthChange$.next((entry.target as HTMLElement).offsetWidth);\r\n                    //  console.log('width', entry);\r\n                    // console.log('height', entry.contentRect.height);\r\n                }\r\n            });\r\n        });\r\n        this.myObserver.observe(this._el.nativeElement);\r\n        this._widthChange$\r\n            .asObservable()\r\n            .pipe(takeUntil(this._onDestroy$), debounceTime(500))\r\n            .subscribe((_) => this._checkEllapsised());\r\n    }\r\n    ngAfterViewInit(): void {\r\n        super.ngAfterViewInit();\r\n    }\r\n    ngOnDestroy(): void {\r\n        this._onDestroy$.next();\r\n        this.myObserver.disconnect();\r\n        this.myObserver.unobserve(this._el.nativeElement);\r\n    }\r\n    protected _checkEllapsised(): void {\r\n        if (this.disableEllapsis) {\r\n            return;\r\n        }\r\n        const labelWidth = measureText(this.ellapsisText, this.fontSize);\r\n        if (labelWidth < 1) {\r\n            return;\r\n        }\r\n\r\n        this.ellapsised.emit(this._isEllipsisActive(this._el.nativeElement));\r\n    }\r\n    protected _isEllipsisActive(element: HTMLElement): boolean {\r\n        return element.scrollWidth > element.clientWidth;\r\n    }\r\n}\r\n","import { Directive, OnInit } from '@angular/core';\r\nimport { BaseDirective } from './base.directive';\r\nimport { getDeviceIsMobile } from '../constants';\r\n\r\n@Directive({\r\n    selector: '[mobile]',\r\n    standalone: false\r\n})\r\nexport class MobileDirective extends BaseDirective implements OnInit {\r\n    ngOnInit(): void {\r\n        super.ngOnInit();\r\n        const isMobile = getDeviceIsMobile();\r\n        if (!isMobile) {\r\n            return;\r\n        }\r\n        const dom = this._el.nativeElement as HTMLElement;\r\n        this._renderer2.addClass(dom, 'mobile');\r\n    }\r\n}\r\n","import { Directive, HostListener, Input, DOCUMENT, inject } from '@angular/core';\r\n\r\nimport { BaseDirective } from './base.directive';\r\n\r\n@Directive({\r\n    selector: '[bodyClick]',\r\n    standalone: false\r\n})\r\nexport class BodyClickDirective extends BaseDirective {\r\n    @Input() disableBodyClick: boolean;\r\n\r\n    protected _document = inject(DOCUMENT);\r\n    @HostListener('click')\r\n    onClick(): void {\r\n        if (this.disableBodyClick) {\r\n            return;\r\n        }\r\n        this._document?.body?.click();\r\n        this._el.nativeElement.blur();\r\n    }\r\n}\r\n","import { Directive, HostListener } from '@angular/core';\r\nimport { BaseDirective } from './base.directive';\r\n\r\n@Directive({\r\n    selector: '[preventDefault]',\r\n    standalone: false\r\n})\r\nexport class PreventDefaultDirective extends BaseDirective {\r\n    @HostListener('click', ['$event'])\r\n    onClick(e): void {\r\n        e.preventDefault();\r\n    }\r\n}\r\n","import { Directive, HostListener } from '@angular/core';\r\nimport { BaseDirective } from './base.directive';\r\n\r\n@Directive({\r\n    selector: '[stopPropagation]',\r\n    standalone: false\r\n})\r\nexport class StopPropagationDirective extends BaseDirective {\r\n    @HostListener('click', ['$event'])\r\n    onClick(e): void {\r\n        e.stopPropagation();\r\n    }\r\n}\r\n","import { Directive, EventEmitter, Input, Output, SimpleChanges, inject } from '@angular/core';\r\nimport { BaseDirective } from './base.directive';\r\nimport { DateService } from '../date-services';\r\nimport { getDateService } from '../constants';\r\nimport { LogService } from '../services';\r\n\r\n@Directive({\r\n    selector: '[countDown]',\r\n    providers: [\r\n        {\r\n            provide: DateService,\r\n            useFactory: getDateService,\r\n            deps: [LogService]\r\n        }\r\n    ],\r\n    standalone: false\r\n})\r\nexport class CountDownDirective extends BaseDirective {\r\n    @Input('countDown') value: Date;\r\n    @Input() includeMonth: boolean;\r\n    @Input() includeDay: boolean;\r\n    @Input() includeHour: boolean;\r\n    @Input() includeMinute: boolean;\r\n    @Output() expired = new EventEmitter<void>();\r\n    countDownText: string;\r\n    _interval: any;\r\n    protected _dateService = inject(DateService);\r\n\r\n    ngOnInit(): void {\r\n        super.ngOnInit();\r\n        this._setCountDown(this.value);\r\n    }\r\n\r\n    ngOnChanges(changes: SimpleChanges): void {\r\n        super.ngOnChanges(changes);\r\n        const { value } = changes;\r\n        value && !value.firstChange && this._setCountDown(value.currentValue);\r\n    }\r\n\r\n    protected _setCountDown(value: Date): void {\r\n        const _tempValue = value;\r\n        const exp = this._dateService.getMoment(_tempValue);\r\n        this.clearInterval();\r\n        this._interval = setInterval((): void => {\r\n            const now = this._dateService.getMoment(new Date());\r\n            const diffDuration = this._dateService.duration(exp.diff(now));\r\n            const month = diffDuration.months();\r\n            const days = diffDuration.days();\r\n            const hours = diffDuration.hours().toLocaleString('en-US', {\r\n                minimumIntegerDigits: 2,\r\n                useGrouping: false\r\n            });\r\n            const minutes = diffDuration.minutes().toLocaleString('en-US', {\r\n                minimumIntegerDigits: 2,\r\n                useGrouping: false\r\n            });\r\n            const seconds = diffDuration.seconds().toLocaleString('en-US', {\r\n                minimumIntegerDigits: 2,\r\n                useGrouping: false\r\n            });\r\n            this.countDownText = `\r\n            ${this.includeMonth ? this._getMonthText(month) : ''} \r\n            ${this.includeDay ? this._daysText(days) : ''} \r\n            ${this._getTimeText(hours, minutes, seconds)}`;\r\n            (this._el.nativeElement as HTMLElement).innerHTML = this.countDownText;\r\n        }, 1000);\r\n    }\r\n    private clearInterval(): void {\r\n        if (this._interval) {\r\n            clearInterval(this._interval);\r\n            this._interval = null;\r\n        }\r\n    }\r\n\r\n    private _getMonthText(month): string {\r\n        return month > 0 ? `${month} ماه` : '';\r\n    }\r\n    private _daysText(days): string {\r\n        return days > 0 ? `${days} روز` : '';\r\n    }\r\n    private _getTimeText(hours, minutes, seconds): string {\r\n        if (hours < 0 || minutes < 0 || seconds < 0) {\r\n            this.clearInterval();\r\n            this.expired.emit();\r\n            return `${this.includeHour ? '00:' : ''}${this.includeMinute ? '00:' : ''}00`;\r\n        }\r\n        return `${this.includeHour ? hours + ':' : ''}${this.includeMinute ? minutes + ':' : ''}${seconds}`;\r\n    }\r\n}\r\n","import { Directive, EventEmitter, Input, Output, inject } from '@angular/core';\r\nimport { BaseDirective } from './base.directive';\r\nimport { NavigationStart, Router, RouterEvent } from '@angular/router';\r\nimport { filter, fromEvent, mergeWith, of, takeUntil } from 'rxjs';\r\n\r\n@Directive({\r\n    selector: '[routeFormChange]',\r\n    standalone: false\r\n})\r\nexport class RouteFormChangeDirective extends BaseDirective {\r\n    @Input() handleBodyClick: boolean;\r\n    @Output() stateChanged = new EventEmitter();\r\n\r\n    private _router = inject(Router);\r\n\r\n    ngOnInit(): void {\r\n        super.ngOnInit();\r\n        this._router.events\r\n            .pipe(\r\n                takeUntil(this._onDestroy$),\r\n                filter((event) => event instanceof NavigationStart && event instanceof RouterEvent),\r\n                mergeWith(this._portalService.openForm$),\r\n                mergeWith(this.handleBodyClick ? fromEvent(document.body, 'click') : of(null))\r\n            )\r\n            .subscribe((_event) => {\r\n                this.stateChanged.emit();\r\n            });\r\n    }\r\n}\r\n","import { Directive, HostBinding, Input, SimpleChanges } from '@angular/core';\r\nimport { BaseDirective } from './base.directive';\r\nimport { getUniqueId } from '../constants';\r\n\r\n@Directive({\r\n    selector: '[cssStyle]',\r\n    standalone: false\r\n})\r\nexport class DynamicStyleDirective extends BaseDirective {\r\n    @Input() cssStyle: string | undefined;\r\n    @HostBinding('attr.id') id = `form_${getUniqueId(4)}`;\r\n    private _style: any;\r\n\r\n    ngOnInit(): void {\r\n        super.ngOnInit();\r\n        this._addDynamicFormStyles(this.cssStyle);\r\n    }\r\n    ngOnChanges(changes: SimpleChanges): void {\r\n        super.ngOnChanges(changes);\r\n        const { cssStyle } = changes;\r\n        if (cssStyle && !cssStyle.firstChange) {\r\n            this._removeDynamicFormStyles();\r\n            this._addDynamicFormStyles(cssStyle.currentValue);\r\n        }\r\n    }\r\n    ngOnDestroy(): void {\r\n        super.ngOnDestroy();\r\n        this._removeDynamicFormStyles();\r\n    }\r\n    protected _addDynamicFormStyles(cssStyles: string | undefined): void {\r\n        if (!cssStyles) {\r\n            return;\r\n        }\r\n        cssStyles = cssStyles.replace(/:root/gi, `#${this.id}`);\r\n        cssStyles = cssStyles.replace(/:html/gi, `:root`);\r\n        const head = document.head || document.getElementsByTagName('head')[0];\r\n        const style: any = document.createElement('style');\r\n\r\n        head.appendChild(style);\r\n\r\n        style.type = 'text/css';\r\n        if (style.styleSheet) {\r\n            // This is required for IE8 and below.\r\n            style.styleSheet.cssText = cssStyles;\r\n        } else {\r\n            style.appendChild(document.createTextNode(cssStyles));\r\n        }\r\n        this._style = style;\r\n    }\r\n    protected _removeDynamicFormStyles(): void {\r\n        if (!this._style) {\r\n            return;\r\n        }\r\n        const head = document.head || document.getElementsByTagName('head')[0];\r\n        head.removeChild(this._style);\r\n    }\r\n}\r\n","import { Directive, inject, Input, Renderer2 } from '@angular/core';\r\nimport { BaseDirective } from './base.directive';\r\n\r\n@Directive({\r\n    selector: '[nowraptext]',\r\n    standalone: false\r\n})\r\nexport class NowraptextDirective extends BaseDirective {\r\n    @Input() width: string;\r\n    _renderer2 = inject(Renderer2);\r\n    ngOnInit(): void {\r\n        const dom = this._el.nativeElement;\r\n        this._renderer2.addClass(dom, 'ellapsis');\r\n        this._renderer2.setStyle(dom, 'width', this.width);\r\n        this._renderer2.setStyle(dom, 'display', 'block');\r\n    }\r\n}\r\n","import { Directive, ElementRef, Input, SimpleChanges, DOCUMENT, inject } from '@angular/core';\r\n\r\nimport { BaseDirective } from './base.directive';\r\n\r\n@Directive({\r\n    selector: '[lblMandatory]',\r\n    standalone: false\r\n})\r\nexport class LabelmandatoryDirective extends BaseDirective {\r\n    \r\n    @Input() lblMandatory: boolean;\r\n    @Input() mandatoryStyle: string;\r\n    \r\n    protected _el: ElementRef;\r\n    protected _document = inject(DOCUMENT);\r\n\r\n    ngOnInit(): void {\r\n        super.ngOnInit();\r\n        this._checkStar(this.lblMandatory);\r\n    }\r\n    ngOnChanges(changes: SimpleChanges): void {\r\n        super.ngOnChanges(changes);\r\n        const { lblMandatory } = changes;\r\n        if (lblMandatory && !lblMandatory.firstChange) {\r\n            this._checkStar(lblMandatory.currentValue);\r\n        }\r\n    }\r\n    _checkStar(mandatory: boolean): void {\r\n        const dom = this._el.nativeElement as HTMLElement;\r\n        let style = '';\r\n        if (this.mandatoryStyle) {\r\n            style = `style='${this.mandatoryStyle}'`;\r\n        }\r\n        if (mandatory) {\r\n            dom.innerHTML += `<strong ${style}>*</strong>`;\r\n        }\r\n    }\r\n}\r\n","import { AfterViewInit, Directive, EventEmitter, Output } from '@angular/core';\r\nimport { BaseDirective } from './base.directive';\r\nimport { getUniqueId } from '../constants';\r\n\r\n@Directive({\r\n    selector: '[absDiv]',\r\n    standalone: false\r\n})\r\nexport class AbsoluteDivBodyDirective extends BaseDirective implements AfterViewInit {\r\n    @Output() elemCreated = new EventEmitter();\r\n    id = '_' + getUniqueId(4);\r\n    elem: HTMLDivElement;    \r\n\r\n    ngOnInit(): void {\r\n        super.ngOnInit();\r\n        this._appendDivToBody();\r\n    }\r\n    _appendDivToBody(): void {\r\n        const elemDiv = document.createElement('div');\r\n        elemDiv.id = this.id;\r\n        elemDiv.style.cssText = 'position:absolute;opacity:0;visibility:hidden;';\r\n        document.body.appendChild(elemDiv);\r\n        this.elem = elemDiv;\r\n        this.elemCreated.emit(elemDiv);\r\n    }\r\n    _getEl(): HTMLElement | null {\r\n        const x = document.querySelector('#' + this.id) as HTMLElement;\r\n        return x;\r\n    }\r\n    ngOnDestroy(): void {\r\n        super.ngOnDestroy();\r\n        this.elem?.remove();\r\n    }\r\n}\r\n","import {\r\n    AfterViewInit,\r\n    ComponentRef,\r\n    Directive,\r\n    OnDestroy,\r\n    Injector,\r\n    inject,\r\n    input,\r\n    ViewContainerRef\r\n} from '@angular/core';\r\n\r\nimport { BaseDirective } from './base.directive';\r\nimport { LogService } from '../services';\r\n\r\n@Directive({\r\n    selector: '[renderUlv]',\r\n    standalone: false\r\n})\r\nexport class RenderUlvDirective extends BaseDirective implements AfterViewInit, OnDestroy {\r\n    \r\n    reportId = input<string>();\r\n    component: ComponentRef<any>;\r\n        \r\n    private _logService = inject(LogService);\r\n    private _injector = inject(Injector);\r\n    private _vcr = inject(ViewContainerRef);\r\n\r\n    \r\n    ngOnInit(): void {\r\n        super.ngOnInit();\r\n    }\r\n    ngAfterViewInit(): void {\r\n        super.ngAfterViewInit();\r\n        this._render();\r\n    }\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        if (!this.reportId()) {\r\n            this._logService.error(`reportId not produced to render ulv in renderulv directive.`);\r\n            return;\r\n        }\r\n        this._portalService\r\n            .renderUlvMainUi(\r\n                {\r\n                    Id: 0,\r\n                    ReportId: this.reportId(),\r\n                    isReportPage: false\r\n                },\r\n                this._vcr,\r\n                this._injector,\r\n                false\r\n            )\r\n            .subscribe();\r\n    }\r\n}\r\n","import { Directive, HostListener, Input, Type } from '@angular/core';\r\nimport { FileAttachmentInfo } from '../abstract-classes/models';\r\nimport { PrintImage } from '../constants';\r\n\r\n\r\n\r\n@Directive({\r\n    selector: '[printFiles]',\r\n    standalone: false\r\n})\r\nexport class PrintFilesDirective {\r\n    @Input() files: FileAttachmentInfo[];        \r\n    @Input() file: FileAttachmentInfo;        \r\n    @Input() isImageGallery: boolean;\r\n    @Input() component: Type<any>;\r\n    constructor() {}\r\n    @HostListener('click') _handleClick(): void {\r\n        const fullImageList = this.files?.map(function (record) {\r\n            return record.mediaUrl;\r\n        });\r\n        const setting = {\r\n            sources: fullImageList,\r\n            customCss: \"width:100%;margin-top:10px;\",\r\n            isCenter: true,\r\n            header: 'لیست تصاویر',\r\n\r\n        };\r\n        PrintImage(setting);\r\n    }\r\n}\r\n","import { Directive, HostListener, Input } from '@angular/core';\r\nimport { SaveImageToFile } from '../constants';\r\n\r\n@Directive({\r\n    selector: '[saveImage]',\r\n    standalone: false\r\n})\r\nexport class SaveImageDirective {\r\n    @Input() name: string;\r\n    @Input() src: string;\r\n    @HostListener('click') _handleClick(): void {\r\n        if (!this.src || !this.name) {\r\n            return;\r\n        }\r\n        SaveImageToFile(this.name, this.src);\r\n    }\r\n}\r\n","import { Directive, ElementRef, EventEmitter, Input, OnDestroy, Output, Renderer2, inject } from '@angular/core';\r\n\r\n@Directive({\r\n    selector: '[appWebotp]',\r\n    standalone: false\r\n})\r\nexport class WebOtpDirective implements OnDestroy {\r\n    @Output() otpRecieved = new EventEmitter<string>();\r\n    @Input() autoUpdate: boolean;\r\n    private _ac!: AbortController;\r\n\r\n    /** Inserted by Angular inject() migration for backwards compatibility */\r\n    \r\n    constructor() {\r\n        const _el = inject(ElementRef);\r\n        const _renderer2 = inject(Renderer2);\r\n\r\n        const input = _el.nativeElement as HTMLInputElement;\r\n        _renderer2.setAttribute(input, 'autocomplete', 'one-time-code');\r\n\r\n        if ('OTPCredential' in window) {\r\n            if (!input) {\r\n                return;\r\n            }\r\n            this._ac = new AbortController();\r\n            const x = navigator.credentials as any;\r\n            x.get({\r\n                otp: { transport: ['sms'] },\r\n                signal: this._ac.signal\r\n            })\r\n                .then((otp: any) => {\r\n                    console.log(otp);\r\n                    if (otp) {\r\n                        this.autoUpdate && (input.value = otp.code);\r\n                        this.otpRecieved.emit(otp.code);\r\n                    }\r\n                })\r\n                .catch((err: any) => {\r\n                    console.error(err);\r\n                });\r\n        }\r\n    }\r\n    ngOnDestroy(): void {\r\n        if (this._ac) {\r\n            this._ac.abort();\r\n        }\r\n    }\r\n}\r\n","import { Input, Renderer2, inject, ElementRef, Directive, HostBinding, SimpleChanges } from '@angular/core';\r\nimport { takeUntil, debounceTime } from 'rxjs';\r\n\r\nimport Splide from '@splidejs/splide';\r\nimport { BaseDirective } from './base.directive';\r\nimport { BarsaApi, MetaobjectDataModel } from '../abstract-classes';\r\nimport { MoReportValuePipe } from '../pipes/mo-report-value.pipe';\r\nimport { PictureFieldSourcePipe } from '../pipes/picture-field-source.pipe';\r\nimport { PortalService } from '../services';\r\n\r\n@Directive({\r\n    selector: '[splideSlider]',\r\n    standalone: false\r\n})\r\nexport class SplideSliderDirective extends BaseDirective {\r\n    @HostBinding('style.width') _width;\r\n\r\n    @Input() moDataList: MetaobjectDataModel[];\r\n    @Input() type: SliderType = 'small';\r\n    @Input() breakpoint991: number;\r\n    @Input() breakpoint768: number;\r\n    @Input() breakpoint480: number;\r\n    @Input() breakpoint1279: number;\r\n    @Input() sliderPerPage: number;\r\n    @Input() sliderGap: number;\r\n    @Input() sliderPadding: number;\r\n    @Input() width = '100%';\r\n\r\n    carouselCls = 'carousel-full';\r\n\r\n    numWidth = window.innerWidth;\r\n    height = this.numWidth / 2;\r\n    get dom(): HTMLElement {\r\n        return this._el.nativeElement;\r\n    }\r\n    _splide: undefined | any;\r\n    rval = inject(MoReportValuePipe);\r\n    protected readonly _picFieldSrc = inject(PictureFieldSourcePipe);\r\n    protected readonly _renderer2 = inject(Renderer2);\r\n    protected readonly _el = inject(ElementRef);\r\n    protected readonly _portalService = inject(PortalService);\r\n    ngOnInit(): void {\r\n        super.ngOnInit();\r\n        this.type = this.type || 'full';\r\n        this._width = this.width;\r\n        this._portalService.landscape$\r\n            .pipe(takeUntil(this._onDestroy$), debounceTime(100))\r\n            .subscribe((_c) => this._refreshSplide());\r\n    }\r\n    ngAfterViewInit(): void {\r\n        this._init();\r\n        setTimeout(() => {\r\n            this._refreshSplide();\r\n        }, 200);\r\n    }\r\n    ngOnChanges(changes: SimpleChanges): void {\r\n        super.ngOnChanges(changes);\r\n        const { moDataList } = changes;\r\n        if (moDataList && moDataList.currentValue) {\r\n            this._refreshSplide();\r\n        }\r\n    }\r\n    onRefresh(): void {\r\n        this._refreshSplide();\r\n    }\r\n    _refreshSplide(): void {\r\n        this._splide && this._splide.refresh();\r\n        this._splide && this._splide.length < this._splide.options.perPage && this._splide.Components.Arrows.destroy();\r\n    }\r\n    _init(): void {\r\n        this._renderer2.setAttribute(this.dom, 'data-splide', `{\"direction\":\"${this.direction}\"}`);\r\n        this._splide = new Splide(this.dom, {\r\n            ...this._getCommonOptions,\r\n            gap: +this.sliderGap,\r\n            padding: +this.sliderPadding,\r\n            perPage: +this.sliderPerPage,\r\n            breakpoints: {\r\n                480: {\r\n                    perPage: +this.breakpoint480\r\n                },\r\n                768: {\r\n                    perPage: +this.breakpoint768\r\n                },\r\n                991: {\r\n                    perPage: +this.breakpoint991\r\n                },\r\n                1279: {\r\n                    perPage: +this.breakpoint1279\r\n                }\r\n            }\r\n        }).mount();\r\n    }\r\n    get _getCommonOptions(): Record<string, any> {\r\n        return {\r\n            rewind: true,\r\n            arrows: this.moDataList?.length > 1,\r\n            type: 'slide',\r\n            direction: this.direction,\r\n            pagination: false\r\n        };\r\n    }\r\n    get direction(): string {\r\n        return BarsaApi.LoginFormData.IsRtl ? 'rtl' : 'ltr';\r\n    }\r\n}\r\ntype SliderType = 'full' | 'multiple' | 'single' | 'small' | undefined;\r\n","import { Directive, Input, SimpleChanges } from '@angular/core';\r\nimport { BaseDirective } from './base.directive';\r\n\r\n@Directive({\r\n    selector: '[cssRootVariable]',\r\n    exportAs: 'cssRootVariable',\r\n    standalone: false\r\n})\r\nexport class DynamicRootVariableDirective extends BaseDirective {\r\n    @Input() cssVariableName: string;\r\n    @Input() cssVariableValue: string | undefined;\r\n    @Input() disable: boolean | undefined;\r\n\r\n    private _style: any;\r\n\r\n    ngOnInit(): void {\r\n        super.ngOnInit();\r\n        this._addDynamicFormStyles(this.cssVariableName, this.cssVariableValue);\r\n    }\r\n    ngOnChanges(changes: SimpleChanges): void {\r\n        super.ngOnChanges(changes);\r\n        const { cssVariableName, cssVariableValue } = changes;\r\n        if (cssVariableName && !cssVariableName.firstChange) {\r\n            this._removeDynamicFormStyles();\r\n            this._addDynamicFormStyles(cssVariableName.currentValue, this.cssVariableValue);\r\n        } else if (cssVariableValue && !cssVariableValue.firstChange) {\r\n            this._removeDynamicFormStyles();\r\n            this._addDynamicFormStyles(this.cssVariableName, cssVariableValue.currentValue);\r\n        }\r\n    }\r\n    ngOnDestroy(): void {\r\n        super.ngOnDestroy();\r\n        this._removeDynamicFormStyles();\r\n    }\r\n    refresh(): void {\r\n        this._removeDynamicFormStyles();\r\n        this._addDynamicFormStyles(this.cssVariableName, this.cssVariableValue);\r\n    }\r\n    protected _addDynamicFormStyles(cssVariableName: string, cssVariableValue): void {\r\n        if (!cssVariableName || this.disable) {\r\n            return;\r\n        }\r\n\r\n        const head = document.head || document.getElementsByTagName('head')[0];\r\n        const style: any = document.createElement('style');\r\n\r\n        head.appendChild(style);\r\n        const cssStyles = `:root{${cssVariableName}:${cssVariableValue}}`;\r\n        style.type = 'text/css';\r\n        if (style.styleSheet) {\r\n            // This is required for IE8 and below.\r\n            style.styleSheet.cssText = `:root{${cssVariableName}:${cssVariableValue}}`;\r\n        } else {\r\n            style.appendChild(document.createTextNode(cssStyles));\r\n        }\r\n        this._style = style;\r\n    }\r\n    protected _removeDynamicFormStyles(): void {\r\n        if (!this._style) {\r\n            return;\r\n        }\r\n        const head = document.head || document.getElementsByTagName('head')[0];\r\n        head.removeChild(this._style);\r\n    }\r\n}\r\n","import { Directive, Input, SimpleChanges } from '@angular/core';\r\nimport { BaseDirective } from './base.directive';\r\nimport { UiResponsiveSettings, LayoutSetting } from '../abstract-classes';\r\n\r\n@Directive({\r\n    selector: '[hrResponsive]',\r\n    standalone: false\r\n})\r\nexport class HorizontalResponsiveDirective extends BaseDirective {\r\n    @Input() disable: boolean;\r\n    @Input() config: LayoutSetting;\r\n    @Input() hrResponsive: UiResponsiveSettings | undefined;\r\n\r\n    ngOnInit(): void {\r\n        super.ngOnInit();\r\n        this._addDynamicFormStyles(this.hrResponsive);\r\n    }\r\n    ngOnChanges(changes: SimpleChanges): void {\r\n        super.ngOnChanges(changes);\r\n        const { hrResponsive } = changes;\r\n        if (hrResponsive && !hrResponsive.firstChange) {\r\n            this._addDynamicFormStyles(hrResponsive.currentValue);\r\n        }\r\n    }\r\n    protected _addDynamicFormStyles(hResponsive: UiResponsiveSettings | undefined): void {\r\n        if (!hResponsive || !hResponsive?.IsActive) {\r\n            return;\r\n        }\r\n        const { XxlColumns, XlColumns, LColumns, MdColumns, SmColumns } = hResponsive;\r\n        const root = this._el.nativeElement;\r\n        root.style.setProperty('--horizontal-display', 'grid');\r\n        root.style.setProperty('--horizontal-grid-templateXxl', `repeat(${XxlColumns},1fr)`);\r\n        root.style.setProperty('--horizontal-grid-templateXl', `repeat(${XlColumns},1fr)`);\r\n        root.style.setProperty('--horizontal-grid-templateL', `repeat(${LColumns},1fr)`);\r\n        root.style.setProperty('--horizontal-grid-templateMd', `repeat(${MdColumns},1fr)`);\r\n        root.style.setProperty('--horizontal-grid-templateSm', `repeat(${SmColumns},1fr)`);\r\n    }\r\n}\r\n","import { Directive, Input, OnInit, SimpleChanges } from '@angular/core';\r\nimport { BaseDirective } from './base.directive';\r\nimport { measureText, getDeviceIsMobile } from '../constants';\r\n\r\n@Directive({\r\n    selector: '[mWidthTitle]',\r\n    standalone: false\r\n})\r\nexport class MeasureFormTitleWidthDirective extends BaseDirective implements OnInit {\r\n    @Input() mWidthTitle: string;    \r\n    private ismobile = getDeviceIsMobile();    \r\n \r\n    ngOnInit(): void {\r\n        super.ngOnInit();\r\n        this._addClass(this.mWidthTitle);\r\n    }\r\n    ngOnChanges(changes: SimpleChanges): void {\r\n        super.ngOnChanges(changes);\r\n        changes.mWidthTitle && !changes.mWidthTitle.firstChange && this._addClass(changes.mWidthTitle.currentValue);\r\n    }\r\n    _addClass(title: string): void {\r\n        if (!this.ismobile) {\r\n            return;\r\n        }\r\n        this._renderer2.removeClass(this._el.nativeElement, 'title-auto');\r\n        const x = measureText(title);\r\n        const w = this._el.nativeElement.offsetWidth;\r\n        x > w / 2\r\n            ? this._renderer2.addClass(this._el.nativeElement, 'overflow-toolbar')\r\n            : this._renderer2.addClass(this._el.nativeElement, 'title-auto');\r\n    }\r\n}\r\n","import { Directive } from '@angular/core';\r\nimport { BaseDirective } from './base.directive';\r\nimport { debounceTime, Subject, takeUntil } from 'rxjs';\r\n\r\n@Directive({\r\n    selector: '[overflowText]',\r\n    standalone: false,\r\n    exportAs: 'overflowText'\r\n})\r\nexport class OverflowTextDirective extends BaseDirective {\r\n    private _checkText$ = new Subject<void>();    \r\n    private resizeObserver: ResizeObserver;\r\n    ngAfterViewInit(): void {\r\n        super.ngAfterViewInit();\r\n        this._checkText$.pipe(takeUntil(this._onDestroy$), debounceTime(500)).subscribe(() => this._checkOverflow());\r\n\r\n        const handleResize = (entries: ResizeObserverEntry[]): void => {\r\n            if (entries.length) {\r\n                this._checkText$.next();\r\n            }\r\n        };\r\n\r\n        const resizeObserver = new ResizeObserver(handleResize);\r\n\r\n        // Observe an element\r\n        resizeObserver.observe(this._el.nativeElement);\r\n        this.resizeObserver = resizeObserver;\r\n    }\r\n    ngOnDestroy(): void {\r\n        super.ngOnDestroy();\r\n        this.resizeObserver.disconnect();\r\n    }\r\n    isTextOverflowing(element): boolean {\r\n        return element.scrollWidth > element.clientWidth;\r\n    }\r\n    _checkOverflow(): void {\r\n        if (this.isTextOverflowing(this._el.nativeElement)) {\r\n            this._addOverflowTextClass();\r\n        }\r\n    }\r\n    _addOverflowTextClass(): void {\r\n        this._renderer2.removeClass(this._el.nativeElement, 'overflow-text-in');\r\n        this._renderer2.addClass(this._el.nativeElement, 'overflow-text-in');\r\n        this._renderer2.addClass(this._el.nativeElement.parentNode, 'child-has-overflow-text');\r\n    }\r\n}\r\n","import { Directive, inject, Input } from '@angular/core';\r\nimport { BaseDirective } from './base.directive';\r\nimport { ShortCuts, ShortCutData } from '../abstract-classes';\r\nimport { UlvMainService } from '../services';\r\n\r\n@Directive({\r\n    selector: '[shortcutRegister]',\r\n    standalone: false\r\n})\r\nexport class ShortcutRegisterDirective extends BaseDirective {\r\n    @Input() shortcutRegister: ShortCutData[];\r\n    shortcuts: ShortCuts;\r\n    private _ulvMainService = inject(UlvMainService);\r\n    ngOnInit(): void {\r\n        super.ngOnInit();\r\n        this._initShortCuts();\r\n    }\r\n    private _initShortCuts(): void {\r\n        const shortcutList = this.shortcutRegister;\r\n        if (!shortcutList) {\r\n            return;\r\n        }\r\n        const moDataList: Array<ShortCutData> = shortcutList;\r\n        if (!moDataList?.length) {\r\n            return;\r\n        }\r\n        const shortcuts: ShortCuts = {};\r\n        moDataList.forEach((curr) => {\r\n            shortcuts[curr.CustomShortcutKey || curr.ShortcutKey$Caption] = { ...curr };\r\n        });\r\n        this._ulvMainService.setShortCuts(shortcuts);\r\n    }\r\n}\r\n","import { Directive, EventEmitter, HostListener, Input, Output } from '@angular/core';\r\nimport { BaseDirective } from './base.directive';\r\nimport { ShortCuts, ShortCutData } from '../abstract-classes';\r\n\r\n@Directive({\r\n    selector: '[shortcutHandler]',\r\n    standalone: false\r\n})\r\nexport class ShortcutHandlerDirective extends BaseDirective {\r\n    @Input() shortcutHandler: ShortCuts | null;\r\n    @Output() shortCutCommand = new EventEmitter<ShortCutData>();\r\n    @HostListener('keydown', ['$event'])\r\n    onKeyEnter = (_: KeyboardEvent): void => {\r\n        if (!this.shortcutHandler) {\r\n            return;\r\n        }\r\n        const x = this.shortcutHandler[_.key];\r\n        if (x) {\r\n            this.shortCutCommand.emit(x);\r\n        }\r\n    };\r\n}\r\n","import { AfterViewInit, Directive, Input } from '@angular/core';\r\nimport { BaseDirective } from './base.directive';\r\nimport { FieldSetting } from '../abstract-classes';\r\n\r\n@Directive({\r\n    selector: '[barsaReadonly]',\r\n    standalone: false\r\n})\r\nexport class BarsaReadonlyDirective extends BaseDirective implements AfterViewInit {\r\n    @Input() barsaReadonly: FieldSetting;\r\n    ngOnInit(): void {\r\n        super.ngOnInit();\r\n        const settings = this.barsaReadonly;\r\n        const { DontShowRecalculateButton } = settings;\r\n        if (DontShowRecalculateButton === true || typeof DontShowRecalculateButton === 'undefined') {\r\n            this._renderer2.addClass(this._el.nativeElement, 'barsa-readonly');\r\n        }\r\n    }\r\n}\r\n","import { Directive, ElementRef, EventEmitter, NgZone, OnDestroy, OnInit, Output, inject } from '@angular/core';\r\n\r\n@Directive({\r\n    selector: '[resizeObserver]',\r\n    standalone: false\r\n})\r\nexport class ResizeObserverDirective implements OnInit, OnDestroy {\r\n    @Output() elResized = new EventEmitter<DOMRectReadOnly>();\r\n    private el = inject(ElementRef);\r\n    private zone = inject(NgZone);\r\n    private observer!: ResizeObserver;\r\n    ngOnInit(): void {\r\n        this.observer = new ResizeObserver((entries) => {\r\n            this.zone.run(() => {\r\n                const entry = entries[0];\r\n                this.elResized.emit(entry.contentRect);\r\n            });\r\n        });\r\n\r\n        this.observer.observe(this.el.nativeElement);\r\n    }\r\n\r\n    ngOnDestroy(): void {\r\n        this.observer.unobserve(this.el.nativeElement);\r\n        this.observer.disconnect();\r\n    }\r\n}\r\n","import { AfterViewInit, Directive, Input, SimpleChanges } from '@angular/core';\r\nimport { BaseDirective } from './base.directive';\r\n\r\n@Directive({\r\n    selector: '[columnValue]',\r\n    standalone: false\r\n})\r\nexport class ColumnValueDirective extends BaseDirective implements AfterViewInit {\r\n    @Input() columnValue: string;\r\n    ngOnChanges(changes: SimpleChanges): void {\r\n        super.ngOnChanges(changes);\r\n        const { columnValue } = changes;\r\n        if (columnValue) {\r\n            this._setInnerHtml(columnValue.currentValue);\r\n        }\r\n    }\r\n    _setInnerHtml(value): void {\r\n        if (value) {\r\n            this._renderer2.setProperty(this._el.nativeElement, 'innerHTML', `<span>&#x202B;${value}&#x202C;</span>`);\r\n        }\r\n    }\r\n}\r\n","import { Directive, Input, OnChanges, SimpleChanges } from '@angular/core';\r\nimport { BaseDirective } from './base.directive';\r\n\r\n@Directive({\r\n    selector: '[scrollToSelected]',\r\n    standalone: false\r\n})\r\nexport class ScrollToSelectedDirective extends BaseDirective implements OnChanges {\r\n    @Input() scrollToSelected = false;\r\n\r\n    ngAfterViewInit(): void {\r\n        super.ngAfterViewInit();\r\n        this._scrollIntoView(this.scrollToSelected);\r\n    }\r\n    ngOnChanges(changes: SimpleChanges): void {\r\n        const { scrollToSelected } = changes;\r\n        if (scrollToSelected && !scrollToSelected.firstChange) {\r\n            this._scrollIntoView(scrollToSelected.currentValue);\r\n        }\r\n    }\r\n    private _scrollIntoView(scrollToSelected: boolean): void {\r\n        if (!scrollToSelected) {\r\n            return;\r\n        }\r\n\r\n        this._el.nativeElement.scrollIntoView({\r\n            behavior: 'auto',\r\n            block: 'center'\r\n        });\r\n    }\r\n}\r\n","import { Directive, ElementRef, Input, AfterViewInit, OnDestroy, HostListener, inject } from '@angular/core';\r\nimport { InMemoryStorageService } from '../services';\r\n\r\n@Directive({\r\n    selector: '[scrollPersist]',\r\n    standalone: false\r\n})\r\nexport class ScrollPersistDirective implements AfterViewInit, OnDestroy {\r\n    @Input('scrollPersist') key!: string;\r\n\r\n    private observer!: IntersectionObserver;\r\n    private el = inject(ElementRef);\r\n    private _inMemoryService = inject(InMemoryStorageService);\r\n\r\n    ngAfterViewInit(): void {\r\n        this.observer = new IntersectionObserver((entries) => {\r\n            const entry = entries[0];\r\n            if (entry.isIntersecting) {\r\n                const prevScroll = this._inMemoryService.getItem(this.key);\r\n                if (prevScroll) {\r\n                    (this.el.nativeElement as HTMLElement).scrollTop = +prevScroll;\r\n                }\r\n                this.observer.disconnect();\r\n            }\r\n        });\r\n\r\n        this.observer.observe(this.el.nativeElement);\r\n    }\r\n\r\n    @HostListener('scroll')\r\n    onScroll(): void {\r\n        const scrollTop = (this.el.nativeElement as HTMLElement).scrollTop;\r\n        this._inMemoryService.setItem(this.key, scrollTop);\r\n    }\r\n\r\n    ngOnDestroy(): void {\r\n        if (this.observer) {\r\n            this.observer.disconnect();\r\n        }\r\n    }\r\n}\r\n","import { Directive, ElementRef, Renderer2, HostListener, OnDestroy, input, inject, DOCUMENT } from '@angular/core';\r\n\r\n@Directive({\r\n    selector: '[bnrcTooltip]',\r\n    standalone: false\r\n})\r\nexport class TooltipDirective implements OnDestroy {\r\n    bnrcTooltip = input.required<string>();\r\n\r\n    private hostRef = inject(ElementRef);\r\n    private renderer = inject(Renderer2);\r\n    private document = inject(DOCUMENT);\r\n\r\n    private tooltipEl: HTMLElement | null = null;\r\n\r\n    ngOnDestroy(): void {\r\n        this.removeTooltip();\r\n    }\r\n    @HostListener('mouseenter')\r\n    onMouseEnter(): void {\r\n        const { dir } = this.document.body;\r\n        const isRtl = dir === 'rtl';\r\n        this.tooltipEl = this.renderer.createElement('div');\r\n        this.renderer.appendChild(document.body, this.tooltipEl);\r\n        this.renderer.addClass(this.tooltipEl, 'bnrc-tooltip');\r\n        this.tooltipEl!.textContent = this.bnrcTooltip();\r\n\r\n        const hostPosistion = this.hostRef.nativeElement.getBoundingClientRect();\r\n        const tooltipPosistion = this.tooltipEl!.getBoundingClientRect();\r\n\r\n        const top = hostPosistion.top + hostPosistion.height / 2 - 12;\r\n        let left = 0;\r\n        if (isRtl) {\r\n            left = hostPosistion.left - tooltipPosistion.width - 12;\r\n        } else {\r\n            left = hostPosistion.left + hostPosistion.width + 12;\r\n        }\r\n\r\n        this.renderer.setStyle(this.tooltipEl, 'top', `${top}px`);\r\n        this.renderer.setStyle(this.tooltipEl, 'left', `${left}px`);\r\n    }\r\n\r\n    @HostListener('mouseleave')\r\n    onMouseLeave(): void {\r\n        this.removeTooltip();\r\n    }\r\n\r\n    private removeTooltip(): void {\r\n        if (this.tooltipEl) {\r\n            this.renderer.removeChild(document.body, this.tooltipEl);\r\n            this.tooltipEl = null;\r\n        }\r\n    }\r\n\r\n}\r\n","import { Directive } from '@angular/core';\r\nimport { BaseDirective } from './base.directive';\r\n\r\n@Directive({\r\n    selector: '[simplebar]',\r\n    standalone: false\r\n})\r\nexport class SimplebarDirective extends BaseDirective {\r\n    async ngAfterViewInit(): Promise<void> {\r\n        if (typeof window === 'undefined') {\r\n            return;\r\n        } // برای SSR\r\n\r\n        // CSS را فقط یکبار ایمپورت کن\r\n        if (!(window as any)._simplebarCssLoaded) {\r\n            const linkEl = this._renderer2.createElement('link');\r\n            linkEl.rel = 'stylesheet';\r\n            linkEl.href = 'assets/simplebar/simplebar.min.css'; // مسیر فایل CSS\r\n            this._renderer2.appendChild(document.head, linkEl);\r\n            (window as any)._simplebarCssLoaded = true;\r\n        }\r\n\r\n        // JS را lazy-load کن\r\n        const SimpleBar = (await import('simplebar')).default;\r\n        new SimpleBar(this._el.nativeElement, { autoHide: true });\r\n    }\r\n}\r\n","import { Directive, EventEmitter, Input, OnChanges, OnDestroy, OnInit, Output, SimpleChanges } from '@angular/core';\r\nimport { fromEvent, merge, timer, Subscription } from 'rxjs';\r\nimport { switchMap, takeUntil, map, filter } from 'rxjs/operators';\r\ndeclare const L: any;\r\n@Directive({\r\n    selector: '[leafletLongPress]',\r\n    standalone: false\r\n})\r\nexport class LeafletLongPressDirective implements OnInit, OnDestroy, OnChanges {\r\n    @Input('leafletLongPress') map!: any; // نقشه از بیرون، بدون type وابسته به Leaflet\r\n    @Input() longPressDuration = 600; // زمان نگه داشتن (ms)\r\n\r\n    @Output() longPress = new EventEmitter<any>(); // latlng رو به بیرون می‌ده\r\n\r\n    private sub = new Subscription();\r\n\r\n    ngOnInit(): void {}\r\n    ngOnChanges(changes: SimpleChanges): void {\r\n        const { map } = changes;\r\n        if (map && map.currentValue) {\r\n            this._initMap();\r\n        }\r\n    }\r\n    _initMap(): void {\r\n        if (!this.map) {\r\n            console.error('LeafletLongPressDirective: No map instance provided.');\r\n            return;\r\n        }\r\n\r\n        const container = this.map.getContainer();\r\n\r\n        const mousedown$ = merge(\r\n            fromEvent(container, 'mousedown'),\r\n            fromEvent(container, 'touchstart', { passive: false })\r\n        );\r\n\r\n        const mouseup$ = merge(fromEvent(container, 'mouseup'), fromEvent(container, 'touchend'));\r\n\r\n        const move$ = merge(fromEvent(container, 'mousemove'), fromEvent(container, 'touchmove'));\r\n\r\n        const cancelInteraction$ = merge(\r\n            fromEvent(this.map, 'dragstart'),\r\n            fromEvent(this.map, 'zoomstart'),\r\n            fromEvent(this.map, 'movestart')\r\n        );\r\n\r\n        const longPress$ = mousedown$.pipe(\r\n            switchMap((startEvent: any) =>\r\n                timer(this.longPressDuration).pipe(\r\n                    takeUntil(merge(mouseup$, move$, cancelInteraction$)),\r\n                    map(() => startEvent)\r\n                )\r\n            ),\r\n            filter((e) => !!e)\r\n        );\r\n\r\n        this.sub.add(\r\n            longPress$.subscribe((startEvent: any) => {\r\n                const originalEvent =\r\n                    startEvent instanceof MouseEvent ? startEvent : startEvent.touches?.[0] || startEvent;\r\n\r\n                const latlng = this.map.mouseEventToLatLng(originalEvent);\r\n                const point = this.map.mouseEventToContainerPoint(originalEvent);\r\n\r\n                let markerData: any = null;\r\n                let targetMarker: any = null;\r\n\r\n                // پیدا کردن مارکری که این نقطه داخلش باشه\r\n                this.map.eachLayer((layer: any) => {\r\n                    if (layer instanceof L.Marker) {\r\n                        const iconEl = layer.getElement();\r\n                        if (iconEl && iconEl.contains(originalEvent.target as Node)) {\r\n                            targetMarker = layer;\r\n                            markerData = layer.options?.data ?? null;\r\n                        }\r\n                    }\r\n                });\r\n\r\n                this.longPress.emit({\r\n                    latlng, // مختصات جغرافیایی\r\n                    point, // مختصات پیکسلی داخل کانتینر\r\n                    x: point.x,\r\n                    y: point.y,\r\n                    marker: targetMarker || null,\r\n                    data: markerData\r\n                });\r\n            })\r\n        );\r\n\r\n        // جلوگیری از contextmenu پیش‌فرض موبایل (اختیاری)\r\n        container.addEventListener('contextmenu', (evt) => evt.preventDefault());\r\n    }\r\n\r\n    ngOnDestroy(): void {\r\n        this.sub.unsubscribe();\r\n    }\r\n}\r\n","import { Injectable, inject } from '@angular/core';\r\nimport { ActivatedRouteSnapshot } 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 {\r\n    private portalService = inject(PortalService);\r\n\r\n    /** Inserted by Angular inject() migration for backwards compatibility */\r\n    \r\n\r\n    constructor() {}\r\n\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 || c.IsDefaultRoute === 'True')\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 } from '@angular/router';\r\n@Injectable({ providedIn: 'root' })\r\nexport class PortalFormPageResolver {\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, inject } from '@angular/core';\r\nimport { ActivatedRouteSnapshot } 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 {\r\n    private portalService = inject(PortalService);\r\n\r\n    /** Inserted by Angular inject() migration for backwards compatibility */\r\n    \r\n\r\n    constructor() {}\r\n\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 { Injectable, inject } from '@angular/core';\r\nimport { ActivatedRouteSnapshot } from '@angular/router';\r\n\r\nimport { LocalStorageService } from '../services/local-storage.service';\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class TileGroupBreadcrumResolver {\r\n    private _localStorage = inject(LocalStorageService);\r\n\r\n    /** Inserted by Angular inject() migration for backwards compatibility */\r\n    \r\n\r\n    constructor() {}\r\n\r\n    resolve(\r\n        _route: ActivatedRouteSnapshot\r\n        // state: RouterStateSnapshot\r\n    ): string | 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._localStorage.getItem('ActiveTile');\r\n    }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { ActivatedRouteSnapshot } from '@angular/router';\r\nimport { BarsaApi, FilePictureInfoModel } from '../abstract-classes';\r\n\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class LoginSettingsResolver {\r\n    constructor() {}\r\n    resolve(_route: ActivatedRouteSnapshot): Promise<ILoginSettings> {\r\n        return fetch(`/assets/app-settings.json?x=${BarsaApi.LoginFormData.ChangeKeyVersion}`).then(function (res) {\r\n            return res.text().then((c) => BarsaApi.Ext.decode(BarsaApi.Common.Util.ReplaceArabicCharchter(c))?.LoginSettings);\r\n        });\r\n    }\r\n}\r\ninterface ILoginSettings {\r\n    Title: string;\r\n    Subtitle: string;\r\n    Section1Title: string;\r\n    Section1Description: string;\r\n    HideGovSso: boolean;\r\n    LogoOnTop: boolean;\r\n    UserPassEnable: boolean;\r\n    GovSSOHref: string;\r\n    DefaultState: string;\r\n    OtpProvider: string;\r\n    BackgroundPicture?: FilePictureInfoModel;\r\n    HeightOfBackground?: number;\r\n    HeightOfLogo?: number;\r\n    LoginType: number;\r\n    Logo: FilePictureInfoModel | null;\r\n    WidthOfBackground?: number;\r\n    WidthOfLogo?: number;\r\n}\r\n","import { ChangeDetectionStrategy, Component, Input, OnInit } from '@angular/core';\r\nimport { MetaobjectDataModel } from '../abstract-classes/models';\r\nimport { BaseComponent } from '../abstract-classes/base.component';\r\nimport { getUniqueId } from '../constants';\r\n\r\ninterface FormNewSetting {\r\n    MetaTypeDef: MetaobjectDataModel;\r\n    MetaView: MetaobjectDataModel;\r\n    DisableGenerateId: boolean;\r\n}\r\n@Component({\r\n    selector: 'bnrc-form-new',\r\n    template: '<bnrc-form [params]=\"params\"></bnrc-form>',\r\n    changeDetection: ChangeDetectionStrategy.OnPush,\r\n    standalone: false\r\n})\r\nexport class FormNewComponent extends BaseComponent implements OnInit {\r\n    @Input() settings: FormNewSetting;\r\n    newId: string;\r\n    params: { moId: string; typeDefId: string; viewId: string };\r\n    constructor() {\r\n        super();\r\n    }\r\n    ngOnInit(): void {\r\n        super.ngOnInit();\r\n        const moId = this.settings.DisableGenerateId ? '0' : getUniqueId(4);\r\n        const typeDefId = this.settings?.MetaTypeDef?.Id;\r\n        const viewId = this.settings?.MetaView?.Id;\r\n        this.params = { moId, typeDefId, viewId };\r\n    }\r\n}\r\n","import { ChangeDetectionStrategy, Component, inject, Injector, Input, OnInit, ViewContainerRef } from '@angular/core';\r\nimport { Observable, Subject, throwError } from 'rxjs';\r\nimport { catchError, debounceTime, finalize, takeUntil } from 'rxjs/operators';\r\n\r\nimport { BaseComponent } from '../abstract-classes/base.component';\r\nimport { PortalService } from '../services/portal.service';\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { ContainerReportSetting } from '../abstract-classes/models';\r\n\r\n@Component({\r\n    selector: 'bnrc-report-container',\r\n    templateUrl: './report-container.component.html',\r\n    styleUrls: ['./report-container.component.scss'],\r\n    changeDetection: ChangeDetectionStrategy.OnPush,\r\n    standalone: false\r\n})\r\nexport class ReportContainerComponent extends BaseComponent implements OnInit {\r\n    @Input() settings: ContainerReportSetting;\r\n    loading$: Observable<boolean>;\r\n    private _activatedRoute = inject(ActivatedRoute);\r\n    private portalService = inject(PortalService);\r\n    private injector = inject(Injector);\r\n    private vcr = inject(ViewContainerRef);\r\n    private _loadingSource = new Subject<boolean>();\r\n\r\n    constructor() {\r\n        super();\r\n        this.loading$ = this._loadingSource.asObservable().pipe(takeUntil(this._onDestroy$), debounceTime(200));\r\n    }\r\n\r\n    ngOnInit(): void {\r\n        super.ngOnInit();\r\n        let ulvParam;\r\n        if (!this.settings.RelatedReport) {\r\n            const id = this._activatedRoute.snapshot.params['id'];\r\n            this.settings.RelatedReport = {\r\n                Id: id,\r\n                $Caption: ''\r\n            };\r\n        } else {\r\n            if (this.settings.DataOnly) {\r\n                ulvParam = {\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                };\r\n                ulvParam.ReportId = this.settings.RelatedReport.Id;\r\n                ulvParam.UsageEnum = 'SystemContainer';\r\n            }\r\n        }\r\n        this._loadingSource.next(true);\r\n        this.portalService\r\n            .renderUlvMainUi(\r\n                {\r\n                    Id: null,\r\n                    ReportId: this.settings.RelatedReport.Id,\r\n                    UlvParams: ulvParam\r\n                },\r\n                this.vcr,\r\n                this.injector\r\n            )\r\n            .pipe(\r\n                takeUntil(this._onDestroy$),\r\n                catchError((err) => throwError(err)),\r\n                finalize(() => this._loadingSource.next(false))\r\n            )\r\n            .subscribe();\r\n    }\r\n}\r\n","@if ((loading$ | async)!!) {\r\n<bsu-mask></bsu-mask>\r\n}\r\n","import {\r\n    ChangeDetectionStrategy,\r\n    ChangeDetectorRef,\r\n    Component,\r\n    ComponentRef,\r\n    ElementRef,\r\n    HostBinding,\r\n    Injector,\r\n    Input,\r\n    OnChanges,\r\n    OnInit,\r\n    SimpleChanges,\r\n    ViewChild,\r\n    ViewContainerRef,\r\n    inject\r\n} from '@angular/core';\r\nimport { Subject } from 'rxjs';\r\nimport { mergeWith, takeUntil, tap } from 'rxjs/operators';\r\n\r\nimport { BarsaApi, EjrayOlgo, FieldBaseComponent, LayoutSetting } from '../abstract-classes';\r\n\r\nimport { BaseComponent } from '../abstract-classes/base.component';\r\nimport { getComponentDefined, getUniqueId } from '../constants';\r\nimport { PortalService } from '../services/portal.service';\r\nimport { FormPanelService } from '../services';\r\n\r\n@Component({\r\n    selector: 'bnrc-field-ui',\r\n    template: '<ng-container #placeholder></ng-container>',\r\n    styleUrls: ['./field-ui.component.scss'],\r\n    changeDetection: ChangeDetectionStrategy.OnPush,\r\n    standalone: false\r\n})\r\nexport class FieldUiComponent extends BaseComponent implements OnInit, OnChanges {\r\n    @Input() isSearchPanel: boolean;\r\n    @Input() customField: any;\r\n    @Input() componentUi: EjrayOlgo;\r\n    @Input() layoutInfo: LayoutSetting;\r\n    @Input() inlineEdit: boolean;\r\n    @Input() focusControl: boolean;\r\n    @Input() cellEdit: boolean;\r\n    @Input() formHeight: number;\r\n    @HostBinding('style.width') width = '100%';\r\n    @ViewChild('placeholder', { read: ViewContainerRef, static: true })\r\n    vcr: ViewContainerRef;\r\n    uniquId: any;\r\n    private _formPanelService = inject(FormPanelService);\r\n    private _portalService = inject(PortalService);\r\n    private _injector = inject(Injector);\r\n    private _cdr = inject(ChangeDetectorRef);\r\n\r\n    private _component: ComponentRef<any>;\r\n    private _customFieldChange$ = new Subject<void>();\r\n\r\n    /** Inserted by Angular inject() migration for backwards compatibility */\r\n\r\n    constructor() {\r\n        const el = inject(ElementRef);\r\n\r\n        super();\r\n        el.nativeElement.id = this.uniquId = `_${getUniqueId(4)}`;\r\n    }\r\n    async ngOnInit(): Promise<void> {\r\n        super.ngOnInit();\r\n        if (this.customField.originalXtype === 'Ui.CheckBox') {\r\n            // this.width = 'auto';\r\n        }\r\n        // if (this.isSearchPanel) {\r\n        //   this.width = '320px';\r\n        // }\r\n        this.inserFieldToContainer();\r\n    }\r\n    async ngOnChanges(changes: SimpleChanges): Promise<void> {\r\n        super.ngOnChanges(changes);\r\n        const { customField } = changes;\r\n        if (this._component) {\r\n            if (customField && !customField.firstChange) {\r\n                this._customFieldChange$.next();\r\n                this._setContext(this._component.instance, customField.currentValue);\r\n            } else {\r\n                Object.keys(changes).forEach((key) => {\r\n                    if (!changes[key].firstChange) {\r\n                        this._component.instance[key] = changes[key].currentValue;\r\n                    }\r\n                });\r\n                this._component.instance.ngOnChanges(changes);\r\n            }\r\n        }\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    async inserFieldToContainer(): Promise<void> {\r\n        const customField = this.customField;\r\n        if (!customField) {\r\n            console.error('item does not exist.');\r\n            return;\r\n        }\r\n        let customUiSetting = BarsaApi.Common.Util.TryGetValue(customField.Setting, 'CustomUi', null);\r\n        if (customField._innerControl) {\r\n            customUiSetting = null;\r\n        }\r\n        if (this.componentUi) {\r\n            customUiSetting = this.componentUi;\r\n        }\r\n        const { moduleName, modulePath, componentName, selector } = getComponentDefined(customField, customUiSetting);\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: ComponentRef<FieldBaseComponent>) => {\r\n                    const componentInstance = component.instance;\r\n                    componentInstance.id = `_${getUniqueId(4)}`;\r\n                    componentInstance.layoutInfo = this.layoutInfo;\r\n                    componentInstance.inlineEdit = this.inlineEdit;\r\n                    componentInstance.cellEdit = this.cellEdit;\r\n                    componentInstance.formContainer = this._formPanelService.formContainerDom;\r\n                    if (customUiSetting) {\r\n                        componentInstance.parameters = customUiSetting.Parameters;\r\n                        if (!componentInstance.parameters) {\r\n                            componentInstance.parameters = customUiSetting.Settings;\r\n                        }\r\n                    }\r\n                    this._setContext(componentInstance, customField);\r\n                    componentInstance.focusControl = this.focusControl;\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    private _setContext(componentInstance: any, customField: any): void {\r\n        componentInstance.context = customField;\r\n        componentInstance.value = customField.value;\r\n        componentInstance.disable = customField.disable;\r\n        componentInstance.readonly = customField.readonly;\r\n        componentInstance.formHeight = this.formHeight;\r\n\r\n        customField.controlUi = componentInstance;\r\n        if (componentInstance.valueChange) {\r\n            componentInstance.valueChange\r\n                .pipe(\r\n                    takeUntil(this._onDestroy$.pipe(mergeWith(this._customFieldChange$)))\r\n                    // distinctUntilChanged((oldVal, newVal) => customField.value != newVal)\r\n                )\r\n                .subscribe((value) => {\r\n                    customField.value = value;\r\n                    customField.caption = componentInstance.caption;\r\n                    customField.fireEvent('change', value);\r\n                });\r\n        }\r\n        if (componentInstance.formmatedValue) {\r\n            componentInstance.formmatedValue\r\n                .pipe(\r\n                    takeUntil(this._onDestroy$.pipe(mergeWith(this._customFieldChange$)))\r\n                    // distinctUntilChanged((oldVal, newVal) => customField.value != newVal)\r\n                )\r\n                .subscribe((formmatedValue) => {\r\n                    customField.formmatedValue = formmatedValue; // this event call from number base\r\n                });\r\n        }\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\nimport { FormFieldReportPageComponent } from '../abstract-classes/form-field-report-page.component';\r\n\r\nconst children = [\r\n    {\r\n        path: 'popup',\r\n        loadChildren: () => import('./barsa-sap-ui-form-page.module').then((c) => c.BarsaSapUiFormPageModule)\r\n    },\r\n    {\r\n        path: 'formfieldshow',\r\n        loadChildren: () => import('./barsa-sap-ui-form-page.module').then((c) => c.BarsaSapUiFormPageModule)\r\n    }\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: [...children]\r\n            },\r\n            {\r\n                path: 'fieldshow',\r\n                outlet: 'main',\r\n                component: FormFieldReportPageComponent,\r\n                data: { breadcrumb: (data: any) => `${data.breadcrumb}` }, // dynamic\r\n                children: [...children]\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 { 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 { ComponentFactoryResolver, CUSTOM_ELEMENTS_SCHEMA, NgModule, NO_ERRORS_SCHEMA, inject } 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 dcm: DynamicComponentService;\r\n    protected cfr: ComponentFactoryResolver;\r\n\r\n    protected dynamicComponents = [...components];\r\n\r\n    /** Inserted by Angular inject() migration for backwards compatibility */\r\n    \r\n    constructor() {\r\n        const dcm = inject(DynamicComponentService);\r\n        const cfr = inject(ComponentFactoryResolver);\r\n\r\n        super(dcm, cfr, 'BarsaSapUiFormPageModule');\r\n    \r\n        this.dcm = dcm;\r\n        this.cfr = cfr;\r\n    }\r\n}\r\n","export interface IBaseController {\r\n    init: () => void;\r\n}\r\nexport abstract class BaseController<T> implements IBaseController {\r\n    view: T;\r\n    /**\r\n     *\r\n     */\r\n    setView(view: T): void {\r\n        this.view = view;\r\n    }\r\n    abstract init(): void;\r\n}\r\n","import { WritableSignal } from '@angular/core';\r\nimport { IBaseController } from './base-controller';\r\n\r\nimport { Directive, OnInit, signal } from '@angular/core';\r\n\r\nexport interface IViewBase {\r\n    controller: IBaseController;\r\n    errorMessage: WritableSignal<string>;\r\n    errorCode: WritableSignal<number>;\r\n    ngOnInit: () => void;\r\n    showError: (message: string, code: number) => void;\r\n}\r\n\r\n\r\n@Directive({\r\n    standalone: false\r\n})\r\nexport class ViewBase<T extends IBaseController> implements IViewBase, OnInit {\r\n    controller: T;\r\n    errorMessage = signal('');\r\n    errorCode = signal(-1);\r\n\r\n    ngOnInit(): void {\r\n        this.controller.init();\r\n    }\r\n    showError(message: string, code: number): void {\r\n        this.errorMessage.set(message);\r\n        this.errorCode.set(code);\r\n    }\r\n}\r\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\r\n\r\n@Component({\r\n    selector: 'bnrc-button-loading',\r\n    templateUrl: './button-loading.component.html',\r\n    styleUrl: './button-loading.component.scss',\r\n    changeDetection: ChangeDetectionStrategy.OnPush,\r\n    standalone: false\r\n})\r\nexport class ButtonLoadingComponent {\r\n    @Input() valid: boolean;\r\n    @Input() loading: boolean;\r\n    @Input() text: string;\r\n    @Input() transparent: boolean;\r\n}\r\n","<!-- <button class=\"button\" [disabled]=\"loading\">\r\n    <i [class.!tw-hidden]=\"!loading\" class=\"fa fa-circle-o-notch fa-spin\"></i\r\n    >{{ (loading ? 'Wait' : text) | bbbTranslate }}\r\n</button> -->\r\n<button\r\n    type=\"button\"\r\n    class=\"tw-bg-(--primaryColor) tw-bg-blue-500 tw-w-full hover:tw-bg-blue-700 tw-text-white tw-font-bold tw-py-2 tw-px-4 tw-rounded dark:tw-bg-blue-700 dark:hover:tw-bg-blue-900\"\r\n    [disabled]=\"loading || !valid\"\r\n    [class.transparent]=\"transparent\"\r\n>\r\n    @if(loading){\r\n    <div role=\"status\" class=\"tw-w-full tw-flex tw-justify-center\">\r\n        <svg\r\n            class=\"tw-mr-3 tw--ml-1 tw-size-5 tw-animate-spin tw-text-white\"\r\n            xmlns=\"http://www.w3.org/2000/svg\"\r\n            fill=\"none\"\r\n            viewBox=\"0 0 24 24\"\r\n        >\r\n            <circle class=\"tw-opacity-25\" cx=\"12\" cy=\"12\" r=\"10\" stroke=\"currentColor\" stroke-width=\"4\"></circle>\r\n            <path\r\n                class=\"tw-opacity-75\"\r\n                fill=\"currentColor\"\r\n                d=\"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z\"\r\n            ></path>\r\n        </svg>\r\n        <span class=\"tw-sr-only\">{{ 'Loading' | bbbTranslate }}...</span>\r\n    </div>\r\n    }@else{\r\n    <span class=\"button__text\">{{ text | bbbTranslate }}</span>\r\n    }\r\n</button>\r\n","import { ChangeDetectionStrategy, Component, HostBinding, OnInit } from '@angular/core';\r\n\r\nimport { GridSetting, ReportViewColumn, SortSetting } from './abstract-classes';\r\nimport { BarsaApi } from './abstract-classes/barsa-api';\r\nimport { BaseComponent } from './abstract-classes/base.component';\r\nimport { getGridSettings, GetAllColumnsSorted } from './constants';\r\nimport { isMobile } from './device';\r\n\r\n@Component({\r\n    selector: 'bnrc-base-ulv-setting',\r\n    template: '',\r\n    changeDetection: ChangeDetectionStrategy.OnPush,\r\n    standalone: false\r\n})\r\nexport abstract class BaseUlvSettingComponent extends BaseComponent implements OnInit {\r\n    @HostBinding('class.mobile') mobile = isMobile();\r\n    context: any;\r\n    originalSetting: any;\r\n    allColumns: ReportViewColumn[];\r\n    sortSettings: SortSetting[];\r\n    ngOnInit(): void {\r\n        super.ngOnInit();\r\n        this.originalSetting = BarsaApi.Common.Util.TryGetValue(this.context, 'Setting.View.GridSetting', null);\r\n        this.allColumns = GetAllColumnsSorted(this.context);\r\n\r\n        this.sortSettings = BarsaApi.Common.Util.TryGetValue(\r\n            this.context,\r\n            'Setting.View.GridSetting.SortSettingList',\r\n            []\r\n        );\r\n    }\r\n\r\n    onCancelSettings(): void {\r\n        this.close(null);\r\n    }\r\n    onOkClick(): void {\r\n        const setting = this.getSettings();\r\n        this.close(setting);\r\n    }\r\n    onClose(): void {\r\n        this.close(null);\r\n    }\r\n    protected getSettings(): GridSetting {\r\n        return getGridSettings(this.context);\r\n    }\r\n    protected abstract close(setting: any): void;\r\n}\r\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, inject } from '@angular/core';\r\nimport { ActivatedRouteSnapshot, CanActivate, Params, 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@Injectable()\r\nexport class RedirectHomeGuard implements CanActivate {\r\n    protected _portalService = inject(PortalService);\r\n    private router = inject(Router);\r\n\r\n    canActivate(\r\n        route: ActivatedRouteSnapshot\r\n    ): Observable<boolean | UrlTree> | Promise<boolean | UrlTree> | boolean | UrlTree {\r\n        this._handle(route.queryParams);\r\n\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 =\r\n                        this._portalService.DefaultPage ||\r\n                        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    private _handle(params: Params): void {\r\n        const { notificationTag, action, moid, tpid } = params;\r\n        if (typeof notificationTag !== 'undefined' && action) {\r\n            const pushAction = {\r\n                notificationTag,\r\n                action,\r\n                moid,\r\n                tpid\r\n            };\r\n            // if (notificationTag === '' && action === 'show') {\r\n            //     setTimeout(() => {\r\n            //         BarsaApi.Bw.Form.Show({\r\n            //             MoId: params.moid,\r\n            //             TypeDefId: params.tpid\r\n            //         });\r\n            //     }, 1000);\r\n            //     return;\r\n            // }\r\n            this._portalService.pushActionNext(pushAction);\r\n        }\r\n    }\r\n}\r\n","import { Component, ViewContainerRef, HostBinding, ChangeDetectionStrategy, inject } from '@angular/core';\r\nimport { BaseComponent } from '../abstract-classes/base.component';\r\n\r\n@Component({\r\n    selector: 'bnrc-root-page',\r\n    templateUrl: './root-page.component.html',\r\n    styleUrls: ['./root-page.component.scss'],\r\n    changeDetection: ChangeDetectionStrategy.OnPush,\r\n    standalone: false\r\n})\r\nexport class RootPageComponent extends BaseComponent {\r\n    @HostBinding('class.page-content') _pageContent = true;\r\n\r\n    protected viewContainerRef = inject(ViewContainerRef);\r\n}\r\n","<router-outlet></router-outlet>\r\n<router-outlet name=\"main\"></router-outlet>\r\n","import { Directive, ElementRef, EventEmitter, Input, Output, DOCUMENT, inject } from '@angular/core';\r\nimport { distinctUntilChanged, map, switchMap, takeUntil, tap } from 'rxjs/operators';\r\nimport { fromEvent, Observable } from 'rxjs';\r\n\r\n@Directive({\r\n    selector: '[resizable]',\r\n    standalone: false\r\n})\r\nexport class ResizableDirective {\r\n    @Input() rtl: boolean;\r\n    @Output() resizableComplete = new EventEmitter<void>();\r\n    @Output()\r\n    readonly resizable: Observable<number>;\r\n\r\n    private readonly documentRef = inject<Document>(DOCUMENT);\r\n    private readonly elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\r\n    /**\r\n     *\r\n     */\r\n    constructor() {\r\n        this.resizable = fromEvent<MouseEvent>(this.elementRef.nativeElement, 'mousedown').pipe(\r\n            tap((e) => e.preventDefault()),\r\n            switchMap(() => {\r\n                const elDom = this.elementRef.nativeElement as any;\r\n                const { width, right, left } = elDom.closest('th').getBoundingClientRect();\r\n\r\n                return fromEvent<MouseEvent>(this.documentRef, 'mousemove').pipe(\r\n                    // tap(({ clientX }) => console.log(width, clientX, left, width + left - clientX)),\r\n                    // tap(({ clientX }) => console.log('rtl', this.rtl)),\r\n                    map(({ clientX }) => (this.rtl ? width + left - clientX : width + clientX - right)),\r\n                    distinctUntilChanged(),\r\n                    takeUntil(fromEvent(this.documentRef, 'mouseup').pipe(tap((_c) => this.resizableComplete.emit())))\r\n                );\r\n            })\r\n        );\r\n    }\r\n}\r\n","import { Component, ElementRef, EventEmitter, Input, Output, Renderer2, inject } from '@angular/core';\r\n\r\n@Component({\r\n    selector: 'th[resizable]',\r\n    templateUrl: './resizable.component.html',\r\n    styleUrls: ['./resizable.component.scss'],\r\n    standalone: false\r\n})\r\nexport class ResizableComponent {\r\n\r\n\r\n    @Input() disableResize: boolean;\r\n    @Input() rtl: boolean;\r\n\r\n    @Output() widthChange = new EventEmitter<void>();\r\n    @Output() widthChanging = new EventEmitter<number>();\r\n\r\n    private _el = inject(ElementRef);\r\n    private _renderer2 = inject(Renderer2);    \r\n    \r\n    onResize(width: number): void {\r\n        this._renderer2.setStyle(this._el.nativeElement, 'width', width + 'px');\r\n        this.widthChanging.emit(width);\r\n    }\r\n}\r\n","<div class=\"wrapper\" [style.justify-content]=\"disableResize ? 'center' : 'flex-end'\">\r\n    <div class=\"content tw-flex\">\r\n        <ng-content></ng-content>\r\n    </div>\r\n    <div\r\n        [style.pointer-events]=\"disableResize ? 'none' : 'auto'\"\r\n        class=\"bar\"\r\n        [class.rtl]=\"rtl\"\r\n        (resizable)=\"onResize($event)\"\r\n        [rtl]=\"rtl\"\r\n        (resizableComplete)=\"widthChange.emit()\"\r\n    ></div>\r\n</div>\r\n","import { NgModule } from '@angular/core';\nimport { ResizableComponent } from './resizable.component';\nimport { ResizableDirective } from './resizable.directive';\n\n@NgModule({\n    declarations: [ResizableComponent, ResizableDirective],\n    exports: [ResizableComponent]\n})\nexport class ResizableModule {}\n","import { ChangeDetectionStrategy, Component, inject } from '@angular/core';\r\nimport { BaseComponent } from '../abstract-classes/base.component';\r\nimport { NetworkStatusService } from '../services/network-status.service';\r\n\r\n@Component({\r\n    selector: 'bnrc-not-internet',\r\n    templateUrl: './not-internet.component.html',\r\n    styleUrls: ['./not-internet.component.scss'],\r\n    changeDetection: ChangeDetectionStrategy.OnPush,\r\n    standalone: false\r\n})\r\nexport class NoInternetComponent extends BaseComponent {\r\n\r\n    /** Inserted by Angular inject() migration for backwards compatibility */\r\n    \r\n\r\n    constructor() {\r\n        const _networkStatusService = inject(NetworkStatusService);\r\n\r\n        super();\r\n\r\n        _networkStatusService.networkStatus$.subscribe((status) => {\r\n            if (status) {\r\n                window.location.reload();\r\n            }\r\n        });\r\n    }\r\n}\r\n","<h1>⚠</h1>\r\n<h2>No connection to the internet</h2>\r\n<p>This Display has a connection to your network but no connection to the internet.</p>\r\n<p class=\"desc\">The connection to the outside world is needed for updates and keeping the time.</p>\r\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\r\nimport { BaseComponent } from '../abstract-classes/base.component';\r\n\r\n@Component({\r\n    selector: 'bnrc-server-connection-error',\r\n    templateUrl: './server-connection-error.component.html',\r\n    styleUrls: ['./server-connection-error.component.scss'],\r\n    changeDetection: ChangeDetectionStrategy.OnPush,\r\n    standalone: false\r\n})\r\nexport class ServerConnectionErrorComponent extends BaseComponent {\r\n\r\n    onReload(): void {\r\n        window.location.reload();\r\n    }\r\n}\r\n","<div class=\"container\">\r\n    <span></span>\r\n    <div class=\"middle\">\r\n        <h1>502</h1>\r\n        <p>ارتباط با سرور دیتا قطع می باشد.</p>\r\n    </div>\r\n    <div>\r\n        <button class=\"fd-button fd-button--transparent\" (click)=\"onReload()\">Reload</button>\r\n    </div>\r\n</div>\r\n","import { NgModule } from '@angular/core';\r\nimport { Routes, RouterModule } from '@angular/router';\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 { TileGroupBreadcrumResolver } from './resolvers/tile-group-breadcrumb.resolver';\r\nimport { NoInternetComponent } from './not-internet/not-internet.component';\r\nimport { ServerConnectionErrorComponent } from './server-connection-error/server-connection-error.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: [formRoutes(true)]\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: [formRoutes(true)]\r\n    },\r\n    {\r\n        path: 'changepassword',\r\n        component: EmptyPageComponent,\r\n        data: {\r\n            pageData: { Route: '/changepassword', Module: 'BarsaChangePasswordPage' }\r\n        },\r\n        resolve: { pageData: PortalPageResolver },\r\n        canActivate: [AuthGuard],\r\n        children: [formRoutes(true)]\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: [formRoutes(true)]\r\n    },\r\n    {\r\n        path: 'server-connection-error',\r\n        component: ServerConnectionErrorComponent\r\n    },\r\n    {\r\n        path: 'no-internet',\r\n        component: NoInternetComponent\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: [formRoutes(true)]\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\n        path: 'appgroup',\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: '/appgroup'\r\n            }\r\n        },\r\n        resolve: { pageData: PortalPageResolver, breadcrumb: TileGroupBreadcrumResolver },\r\n        children: [\r\n            formRoutes(),\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\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: 'BarsaUserWorkspaceModule',\r\n            //             Route: '/myworkspace'\r\n            //         }\r\n            //     },\r\n            //     resolve: { pageData: PortalPageResolver },\r\n            //     children: [formRoutes()]\r\n            // },\r\n            // {\r\n            //     path: 'myworkspace-edit',\r\n            //     component: EmptyPageComponent,\r\n            //     data: {\r\n            //         pageData: {\r\n            //             Module: 'BarsaUserWorkspaceModule',\r\n            //             HasAuthorize: true,\r\n            //             Route: '/myworkspace-edit'\r\n            //         }\r\n            //     },\r\n            //     resolve: { pageData: PortalPageResolver, breadcrumb: TileGroupBreadcrumResolver },\r\n            //     children: [formRoutes()]\r\n            // },\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: [\r\n                    formRoutes(),\r\n                    {\r\n                        path: 'appgroupdialog/:id',\r\n                        outlet: 'dialog',\r\n                        component: EmptyPageComponent,\r\n                        data: {\r\n                            pageData: {\r\n                                Module: 'BarsaHomePage',\r\n                                HasAuthorize: true,\r\n                                Route: '/appgroupdialog/:id'\r\n                            }\r\n                        },\r\n                        resolve: { pageData: PortalPageResolver, breadcrumb: TileGroupBreadcrumResolver }\r\n                    }\r\n                ]\r\n            },\r\n            {\r\n                path: 'appfinder',\r\n                component: EmptyPageComponent,\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        path: 'chat',\r\n        component: PortalPageComponent,\r\n        data: {\r\n            pageData: {\r\n                HasAuthorize: true,\r\n                Route: '/chat',\r\n                Module: 'BarsaAppFinderPage'\r\n            }\r\n        },\r\n        resolve: { pageData: PortalPageResolver }\r\n    }\r\n];\r\n\r\nconst routesServiceDesk: Routes = [\r\n    {\r\n        path: 'servicedesk',\r\n        component: PortalPageComponent,\r\n        canActivate: [AuthGuard],\r\n        data: {\r\n            pageData: {\r\n                Module: 'BarsaDeskHelpPage',\r\n                HasAuthorize: false,\r\n                Route: '/servicedesk'\r\n            }\r\n        },\r\n        resolve: { pageData: PortalPageResolver },\r\n        children: [\r\n            formRoutes(true),\r\n            ...commonRoutes,\r\n            {\r\n                path: 'appgroupdialog/:id',\r\n                outlet: 'dialog',\r\n                component: EmptyPageComponent,\r\n                data: {\r\n                    pageData: {\r\n                        Module: 'BarsaHomePage',\r\n                        HasAuthorize: false,\r\n                        Route: '/appgroupdialog/:id'\r\n                    }\r\n                },\r\n                resolve: { pageData: PortalPageResolver, breadcrumb: TileGroupBreadcrumResolver }\r\n            }\r\n        ]\r\n    }\r\n];\r\n// const isServiceDesk = BarsaApi.LoginFormData.IsServiceDesk; // eslint-disable-line\r\n// const routesHome = isServiceDesk ? routesServiceDesk : mainRoutes;\r\nexport const routes = [...routesDefault, ...mainRoutes, ...routesServiceDesk];\r\n// export const routesServiceDesk2 = [...routesDefault, ...routesServiceDesk];\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';\nimport { BarsaApi } from './abstract-classes';\n\n@Injectable()\nexport class GlobalErrorHandler implements ErrorHandler {\n    constructor() {}\n    handleError(error): void {\n        // if (environment.production)\n        {\n            console.group();\n            console.error('global error handler error', error);\n            console.error('global error handler stack', BarsaApi.Common.Util.TryGetValue(error, 'stack', ''));\n            console.groupEnd();\n            if (error.Execute) {\n                error.Execute();\n            }\n        }\n        // IMPORTANT: Rethrow the error otherwise it gets swallowed\n        // throw error;\n    }\n}\n","import {\r\n    ComponentFactoryResolver,\r\n    ErrorHandler,\r\n    ModuleWithProviders,\r\n    NgModule,\r\n    NO_ERRORS_SCHEMA,\r\n    inject,\r\n    provideAppInitializer\r\n} from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { provideHttpClient, withInterceptorsFromDi } from '@angular/common/http';\r\nimport { Title } from '@angular/platform-browser';\r\nimport { isInLocalMode } from './constants';\r\nimport { Router } from '@angular/router';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\n\r\nimport { FormComponent } from './form/form.component';\r\nimport { FieldUiComponent } from './field-ui/field-ui.component';\r\nimport { ReportContainerComponent } from './report-container/report-container.component';\r\nimport { AnchorScrollDirective } from './directives/anchor-scroll.directive';\r\nimport { BarsaNovinRayCoreRoutingModule } from './barsa-novin-ray-core-routing.module';\r\nimport { ModalRootComponent } from './modal-root.component';\r\nimport { FormNewComponent } from './form-new/form-new.component';\r\nimport { RootPortalComponent } from './root-portal/root-portal.component';\r\nimport { AuthGuard } from './auth-guard';\r\n\r\nimport {\r\n    DynamicFormComponent,\r\n    DynamicItemComponent,\r\n    BaseDynamicComponent,\r\n    DynamicFormToolbaritemComponent,\r\n    DynamicLayoutComponent,\r\n    DynamicTileGroupComponent\r\n} from './dynamic-component';\r\nimport { RedirectHomeGuard } from './redirect-home-guard';\r\nimport { NotFoundComponent } from './not-found/not-found.component';\r\nimport { RootPageComponent } from './root-page/root-page.component';\r\nimport { BaseModule } from './base.module';\r\nimport { PortalPageComponent } from './portal-page/portal-page.component';\r\nimport { GlobalErrorHandler } from './global-error-handler';\r\n\r\nimport { RedirectReportNavigatorCommandComponent } from './redirect-report-navigator-command/redirect-report-navigator-command.component';\r\nimport { EmptyPageWithRouterAndRouterOutletComponent } from './empty-page-with-router-and-router-outlet/empty-page-with-router-and-router-outlet.component';\r\nimport { ButtonLoadingComponent } from './button-loading/button-loading.component';\r\nimport { UnlimitSessionComponent } from './unlimit-session/unlimit-session.component';\r\n\r\nimport { EmptyPageComponent } from './empty-page/empty-page.component';\r\nimport { BarsaApi } from './abstract-classes/barsa-api';\r\nimport { FormPageComponent } from './abstract-classes/form-page.component';\r\nimport { FormFieldReportPageComponent } from './abstract-classes';\r\nimport { PortalPageSidebarComponent } from './portal-page/portal-sidebar.component';\r\nimport { BarsaSapUiFormPageModule } from './form-page-routing';\r\nimport { ResizableModule } from './resizable-module/resizable.module';\r\nimport {\r\n    BreadcrumbService,\r\n    UploadService,\r\n    ApiService,\r\n    LogService,\r\n    BarsaDialogService,\r\n    PortalService,\r\n    UiService,\r\n    LayoutService,\r\n    TabpageService,\r\n    DynamicComponentService,\r\n    NetworkStatusService,\r\n    AudioRecordingService,\r\n    VideoRecordingService,\r\n    PromptUpdateService,\r\n    BarsaStorageService,\r\n    LocalStorageService,\r\n    IndexedDbService,\r\n    NotificationService,\r\n    ServiceWorkerNotificationService,\r\n    ServiceWorkerCommuncationService,\r\n    SaveScrollPositionService,\r\n    InMemoryStorageService,\r\n    ApplicationCtrlrService\r\n} from './services';\r\nimport {\r\n    DynamicCommandDirective,\r\n    ItemsRendererDirective,\r\n    NumbersOnlyInputDirective,\r\n    PlaceHolderDirective,\r\n    RenderUlvPaginDirective,\r\n    ImageLazyDirective,\r\n    UntilInViewDirective,\r\n    IntersectionObserverDirective,\r\n    EllipsifyDirective,\r\n    TableResizerDirective,\r\n    ColumnResizerDirective,\r\n    AttrRtlDirective,\r\n    RenderUlvViewerDirective,\r\n    UlvCommandDirective,\r\n    WorfkflowwChoiceCommandDirective,\r\n    CopyDirective,\r\n    EllapsisTextDirective,\r\n    FillEmptySpaceDirective,\r\n    FormCloseDirective,\r\n    MobileDirective,\r\n    BodyClickDirective,\r\n    CountDownDirective,\r\n    RouteFormChangeDirective,\r\n    DynamicStyleDirective,\r\n    NowraptextDirective,\r\n    LabelmandatoryDirective,\r\n    AbsoluteDivBodyDirective,\r\n    LoadExternalFilesDirective,\r\n    StopPropagationDirective,\r\n    PreventDefaultDirective,\r\n    RenderUlvDirective,\r\n    PrintFilesDirective,\r\n    SaveImageDirective,\r\n    WebOtpDirective,\r\n    SplideSliderDirective,\r\n    DynamicRootVariableDirective,\r\n    HorizontalResponsiveDirective,\r\n    MeasureFormTitleWidthDirective,\r\n    OverflowTextDirective,\r\n    ShortcutRegisterDirective,\r\n    ShortcutHandlerDirective,\r\n    BarsaReadonlyDirective,\r\n    ResizeObserverDirective,\r\n    ColumnValueDirective,\r\n    ScrollToSelectedDirective,\r\n    ScrollPersistDirective,\r\n    TooltipDirective,\r\n    SimplebarDirective,\r\n    LeafletLongPressDirective\r\n} from './directives';\r\nimport {\r\n    NumeralPipe,\r\n    CanUploadFilePipe,\r\n    RemoveNewlinePipe,\r\n    ConvertToStylePipe,\r\n    FilterPipe,\r\n    FilterTabPipe,\r\n    FilterStringPipe,\r\n    FioriIconPipe,\r\n    SortPipe,\r\n    GroupByPipe,\r\n    MultipleGroupByPipe,\r\n    MoValuePipe,\r\n    MoReportValuePipe,\r\n    HeaderFacetValuePipe,\r\n    PictureFieldSourcePipe,\r\n    TlbButtonsPipe,\r\n    SeperatorFixPipe,\r\n    MoReportValueConcatPipe,\r\n    ContextMenuPipe,\r\n    BbbTranslatePipe,\r\n    BarsaIconDictPipe,\r\n    FileInfoCountPipe,\r\n    ControlUiPipe,\r\n    VisibleValuePipe,\r\n    FilterToolbarControlPipe,\r\n    ListCountPipe,\r\n    TotalSummaryPipe,\r\n    MergeFieldsToColumnsPipe,\r\n    FindColumnByDbNamePipe,\r\n    FilterColumnsByDetailsPipe,\r\n    MoInfoUlvMoListPipe,\r\n    MoInfoUlvPagingPipe,\r\n    ReversePipe,\r\n    ColumnCustomUiPipe,\r\n    SanitizeTextPipe,\r\n    ColumnCustomComponentPipe,\r\n    ColumnIconPipe,\r\n    ColumnValuePipe,\r\n    RowNumberPipe,\r\n    ComboRowImagePipe,\r\n    IsExpandedNodePipe,\r\n    ThImageOrIconePipe,\r\n    FindPreviewColumnPipe,\r\n    ReplacePipe,\r\n    FilterWorkflowInMobilePipe,\r\n    HideColumnsInmobilePipe,\r\n    StringToNumberPipe,\r\n    ColumnValueOfParametersPipe,\r\n    HideAcceptCancelButtonsPipe,\r\n    FilterInlineActionListPipe,\r\n    IsImagePipe,\r\n    ToolbarSettingsPipe,\r\n    CardMediaSizePipe,\r\n    LabelStarTrimPipe,\r\n    SplitPipe,\r\n    DynamicDarkColorPipe,\r\n    ChunkArrayPipe\r\n} from './pipes';\r\n\r\n// eslint-disable-next-line no-var\r\ndeclare var BBB: any;\r\n\r\nconst components = [\r\n    FormComponent,\r\n    FieldUiComponent,\r\n    NotFoundComponent,\r\n    RootPageComponent,\r\n    RootPortalComponent,\r\n    ReportContainerComponent,\r\n    FormNewComponent,\r\n    ModalRootComponent,\r\n    PortalPageComponent,\r\n    PortalPageSidebarComponent,\r\n    RedirectReportNavigatorCommandComponent,\r\n    EmptyPageWithRouterAndRouterOutletComponent,\r\n    DynamicItemComponent,\r\n    DynamicFormComponent,\r\n    BaseDynamicComponent,\r\n    DynamicFormToolbaritemComponent,\r\n    DynamicLayoutComponent,\r\n    EmptyPageComponent,\r\n    FormPageComponent,\r\n    FormFieldReportPageComponent,\r\n    ButtonLoadingComponent,\r\n    UnlimitSessionComponent,\r\n    DynamicTileGroupComponent\r\n];\r\nconst directives = [\r\n    PlaceHolderDirective,\r\n    NumbersOnlyInputDirective,\r\n    RenderUlvViewerDirective,\r\n    RenderUlvPaginDirective,\r\n    AnchorScrollDirective,\r\n    ItemsRendererDirective,\r\n    UlvCommandDirective,\r\n    DynamicCommandDirective,\r\n    WorfkflowwChoiceCommandDirective,\r\n    ImageLazyDirective,\r\n    UntilInViewDirective,\r\n    IntersectionObserverDirective,\r\n    EllipsifyDirective,\r\n    TableResizerDirective,\r\n    ColumnResizerDirective,\r\n    AttrRtlDirective,\r\n    CopyDirective,\r\n    EllapsisTextDirective,\r\n    FillEmptySpaceDirective,\r\n    FormCloseDirective,\r\n    MobileDirective,\r\n    BodyClickDirective,\r\n    CountDownDirective,\r\n    RouteFormChangeDirective,\r\n    DynamicStyleDirective,\r\n    NowraptextDirective,\r\n    LabelmandatoryDirective,\r\n    AbsoluteDivBodyDirective,\r\n    LoadExternalFilesDirective,\r\n    StopPropagationDirective,\r\n    PreventDefaultDirective,\r\n    RenderUlvDirective,\r\n    PrintFilesDirective,\r\n    SaveImageDirective,\r\n    WebOtpDirective,\r\n    SplideSliderDirective,\r\n    DynamicRootVariableDirective,\r\n    HorizontalResponsiveDirective,\r\n    MeasureFormTitleWidthDirective,\r\n    OverflowTextDirective,\r\n    ShortcutRegisterDirective,\r\n    ShortcutHandlerDirective,\r\n    BarsaReadonlyDirective,\r\n    ResizeObserverDirective,\r\n    ColumnValueDirective,\r\n    ScrollToSelectedDirective,\r\n    ScrollPersistDirective,\r\n    TooltipDirective,\r\n    SimplebarDirective,\r\n    LeafletLongPressDirective\r\n];\r\nconst services = [\r\n    PortalService,\r\n    UploadService,\r\n    ApiService,\r\n    LogService,\r\n    BarsaDialogService,\r\n    UiService,\r\n    LayoutService,\r\n    TabpageService,\r\n    DynamicComponentService,\r\n    BreadcrumbService,\r\n    AuthGuard,\r\n    NetworkStatusService,\r\n    AudioRecordingService,\r\n    VideoRecordingService,\r\n    RedirectHomeGuard,\r\n    PromptUpdateService,\r\n    NotificationService,\r\n    ServiceWorkerNotificationService,\r\n    SaveScrollPositionService,\r\n    LocalStorageService,\r\n    InMemoryStorageService,\r\n    IndexedDbService,\r\n    BbbTranslatePipe,\r\n    BarsaStorageService,\r\n    ServiceWorkerCommuncationService,\r\n    ApplicationCtrlrService\r\n];\r\nconst pipes = [\r\n    NumeralPipe,\r\n    CanUploadFilePipe,\r\n    RemoveNewlinePipe,\r\n    ConvertToStylePipe,\r\n    FilterPipe,\r\n    FilterTabPipe,\r\n    FilterStringPipe,\r\n    FioriIconPipe,\r\n    SortPipe,\r\n    GroupByPipe,\r\n    MultipleGroupByPipe,\r\n    MoValuePipe,\r\n    MoReportValuePipe,\r\n    HeaderFacetValuePipe,\r\n    PictureFieldSourcePipe,\r\n    TlbButtonsPipe,\r\n    SeperatorFixPipe,\r\n    MoReportValueConcatPipe,\r\n    ContextMenuPipe,\r\n    BbbTranslatePipe,\r\n    BarsaIconDictPipe,\r\n    FileInfoCountPipe,\r\n    ControlUiPipe,\r\n    VisibleValuePipe,\r\n    FilterToolbarControlPipe,\r\n    ListCountPipe,\r\n    TotalSummaryPipe,\r\n    MergeFieldsToColumnsPipe,\r\n    FindColumnByDbNamePipe,\r\n    FilterColumnsByDetailsPipe,\r\n    MoInfoUlvMoListPipe,\r\n    MoInfoUlvPagingPipe,\r\n    ReversePipe,\r\n    ColumnCustomUiPipe,\r\n    SanitizeTextPipe,\r\n    ColumnCustomComponentPipe,\r\n    ColumnIconPipe,\r\n    ColumnValuePipe,\r\n    RowNumberPipe,\r\n    ComboRowImagePipe,\r\n    IsExpandedNodePipe,\r\n    ThImageOrIconePipe,\r\n    FindPreviewColumnPipe,\r\n    ReplacePipe,\r\n    FilterWorkflowInMobilePipe,\r\n    HideColumnsInmobilePipe,\r\n    StringToNumberPipe,\r\n    ColumnValueOfParametersPipe,\r\n    HideAcceptCancelButtonsPipe,\r\n    FilterInlineActionListPipe,\r\n    IsImagePipe,\r\n    ToolbarSettingsPipe,\r\n    CardMediaSizePipe,\r\n    LabelStarTrimPipe,\r\n    SplitPipe,\r\n    DynamicDarkColorPipe,\r\n    ChunkArrayPipe\r\n];\r\n\r\nconst functionL1 = async function (): Promise<void> {\r\n    if (BarsaApi.LoginFormData.Culture === 'fa-IR') {\r\n        return Promise.resolve();\r\n    }\r\n\r\n    return fetch(`/Localization/Translation/data_${BarsaApi.LoginFormData.Culture}.json`)\r\n        .then(function (res) {\r\n            return res.json();\r\n        })\r\n        .then(function (res) {\r\n            if (BBB) {\r\n                // eslint-disable\r\n                BBB = { ...BarsaApi.BBB, ...res };\r\n            }\r\n        });\r\n};\r\nconst functionL2 = function (\r\n    portalService: PortalService,\r\n    applicationCtrlrService: ApplicationCtrlrService,\r\n    titleService: Title\r\n): Promise<any> {\r\n    portalService.loadUserPortalSetting();\r\n    portalService.loadPortalDataSync();\r\n    if (portalService.portalData?.Title) {\r\n        titleService.setTitle(portalService.portalData?.Title);\r\n    }\r\n    if (BarsaApi.LoginFormData.IsAnonymous && !BarsaApi.LoginFormData.IsServiceDesk) {\r\n        return portalService.loadSystem(BarsaApi.LoginFormData.PortalSystemId); // login form need just portal system\r\n    } else {\r\n        return new Promise((resolve, _reject) => {\r\n            applicationCtrlrService.initialize(resolve);\r\n        }); // load all systems if user is logged in\r\n    }\r\n};\r\n@NgModule({\r\n    declarations: [...components, ...pipes, ...directives],\r\n    exports: [...components, ...pipes, ...directives],\r\n    schemas: [NO_ERRORS_SCHEMA],\r\n    imports: [\r\n        CommonModule,\r\n        BarsaNovinRayCoreRoutingModule,\r\n        BarsaSapUiFormPageModule,\r\n        ResizableModule,\r\n        FormsModule,\r\n        ReactiveFormsModule\r\n    ],\r\n    providers: [provideHttpClient(withInterceptorsFromDi())]\r\n})\r\nexport class BarsaNovinRayCoreModule extends BaseModule {\r\n    protected dcm: DynamicComponentService;\r\n    protected componentFactoryResolver: ComponentFactoryResolver;\r\n\r\n    protected dynamicComponents = [...components];\r\n\r\n    /** Inserted by Angular inject() migration for backwards compatibility */\r\n\r\n    constructor() {\r\n        const dcm = inject(DynamicComponentService);\r\n        const componentFactoryResolver = inject(ComponentFactoryResolver);\r\n\r\n        super(dcm, componentFactoryResolver, 'BarsaNovinRayCoreModule');\r\n\r\n        this.dcm = dcm;\r\n        this.componentFactoryResolver = componentFactoryResolver;\r\n    }\r\n    static forRoot(): ModuleWithProviders<BarsaNovinRayCoreModule> {\r\n        return {\r\n            ngModule: BarsaNovinRayCoreModule,\r\n            providers: [\r\n                provideAppInitializer(() => {\r\n                    const initializerFn = (\r\n                        (\r\n                            portalService: PortalService,\r\n                            applicationCtrlrService: ApplicationCtrlrService,\r\n                            titleService: Title,\r\n                            promptUpdateService: PromptUpdateService,\r\n                            barsaStorageService: BarsaStorageService,\r\n                            swCommunication: ServiceWorkerCommuncationService,\r\n                            _: NetworkStatusService,\r\n                            router: Router\r\n                        ) =>\r\n                        () => {\r\n                            const inLocalMode = isInLocalMode();\r\n\r\n                            return portalService\r\n                                .loadServerStartupData()\r\n                                .then(() =>\r\n                                    Promise.all([\r\n                                        functionL1(),\r\n                                        functionL2(portalService, applicationCtrlrService, titleService)\r\n                                    ]).finally(() => {\r\n                                        promptUpdateService.checkForUpdate();\r\n                                        barsaStorageService.init();\r\n                                        swCommunication.init();\r\n                                    })\r\n                                )\r\n                                .catch((_) => {\r\n                                    if (!inLocalMode && !navigator.onLine) {\r\n                                        console.log('no-internet');\r\n                                        router.navigate(['no-internet']);\r\n                                    } else {\r\n                                        router.navigate(['server-connection-error']);\r\n                                    }\r\n                                    return Promise.resolve();\r\n                                });\r\n                        }\r\n                    )(\r\n                        inject(PortalService),\r\n                        inject(ApplicationCtrlrService),\r\n                        inject(Title),\r\n                        inject(PromptUpdateService),\r\n                        inject(BarsaStorageService),\r\n                        inject(ServiceWorkerCommuncationService),\r\n                        inject(NetworkStatusService),\r\n                        inject(Router)\r\n                    );\r\n                    return initializerFn();\r\n                }),\r\n                {\r\n                    provide: ErrorHandler,\r\n                    useClass: GlobalErrorHandler\r\n                },\r\n                provideAppInitializer(() => {\r\n                    const initializerFn = ((notificationService: NotificationService) => () => {\r\n                        BarsaApi.Ul.NotificationManager.on({\r\n                            ShowPopup: notificationService.addNotification.bind(notificationService),\r\n                            PublishEvent: notificationService.handleTopic.bind(notificationService)\r\n                        });\r\n                    })(inject(NotificationService));\r\n                    return initializerFn();\r\n                }),\r\n                ...pipes,\r\n                ...services\r\n            ]\r\n        };\r\n    }\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["moment","isFF","isSafari","Device.isSafari","Device.isFF","Device.isPhone","Device.isDesktop","Device.isTablet","map","exhaustMap","filter","tap","concatMap","catchError","finalize","merge","i2.FormComponent","i3.FormCloseDirective","takeUntil","i2.FillEmptySpaceDirective","i2.UnlimitSessionComponent","i3.LoadExternalFilesDirective","debounceTime","i1.FormComponent","i1","mergeWith","routes","components","i1.BbbTranslatePipe","i1.ResizableDirective"],"mappings":"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"}