barsa-novin-ray-core 2.3.114 → 2.3.120
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/fesm2022/barsa-novin-ray-core-barsa-novin-ray-core-g1_aRXQb.mjs +18768 -0
- package/fesm2022/barsa-novin-ray-core-barsa-novin-ray-core-g1_aRXQb.mjs.map +1 -0
- package/fesm2022/{barsa-novin-ray-core-barsa-report-page.module-52O0tR5U.mjs → barsa-novin-ray-core-barsa-report-page.module-CZm3CHdl.mjs} +3 -3
- package/fesm2022/barsa-novin-ray-core-barsa-report-page.module-CZm3CHdl.mjs.map +1 -0
- package/fesm2022/barsa-novin-ray-core.mjs +1 -18570
- package/fesm2022/barsa-novin-ray-core.mjs.map +1 -1
- package/index.d.ts +107 -11
- package/package.json +1 -1
- package/fesm2022/barsa-novin-ray-core-barsa-report-page.module-52O0tR5U.mjs.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"barsa-novin-ray-core-barsa-novin-ray-core-g1_aRXQb.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/pipes/map-to-chat-message.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/search-navigator/multi-app-command-search-provider.ts","../../../projects/barsa-novin-ray-core/src/lib/search-navigator/multi-app-navigator-search-provider.ts","../../../projects/barsa-novin-ray-core/src/lib/search-navigator/search.service.ts","../../../projects/barsa-novin-ray-core/src/lib/services/application-ctrlr.service.ts","../../../projects/barsa-novin-ray-core/src/lib/redirect-home-guard.ts","../../../projects/barsa-novin-ray-core/src/lib/resolvers/report-breadcrumb-resolver.ts","../../../projects/barsa-novin-ray-core/src/lib/report-page-routing/constants.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/idb.service.ts","../../../projects/barsa-novin-ray-core/src/lib/services/pushnotification.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/services/push-check.service.ts","../../../projects/barsa-novin-ray-core/src/lib/services/card-view.service.ts","../../../projects/barsa-novin-ray-core/src/lib/abstract-classes/field-base.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/splitter/splitter.component.ts","../../../projects/barsa-novin-ray-core/src/lib/master-details-page/master-details-page.component.ts","../../../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/card-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/card-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/dynamic-component/dynamic-ulv-toolbar.component.ts","../../../projects/barsa-novin-ray-core/src/lib/dynamic-component/dynamic-ulv-paging.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/push-banner/push-banner.component.ts","../../../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/from-intersection-observer.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/directives/resize-handler.directive.ts","../../../projects/barsa-novin-ray-core/src/lib/directives/safe-bottom.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/report-navigator/report-navigator.component.ts","../../../projects/barsa-novin-ray-core/src/lib/report-empty-page/report-empty-page.component.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/root-page/root-page.component.ts","../../../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 oSystem.phone=oSystem.phone && window.innerWidth<768;\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 const isPicture = fieldTypeId === 42;\r\n if (fieldTypeId === 6 || fieldTypeId === 5 || isPicture) {\r\n return isPicture ? '48px' : '32px';\r\n }\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 RotateImage(\r\n imgEl: HTMLElement,\r\n media: { FileId: string; RotationAngle: number; scaleFactor: null | number },\r\n renderer2: Renderer2\r\n): void {\r\n const direction = 1;\r\n const angle = 90 * direction;\r\n if (media.RotationAngle) {\r\n media.RotationAngle = (media.RotationAngle + angle) % 360;\r\n } else {\r\n media.RotationAngle = angle;\r\n }\r\n\r\n const w = imgEl.offsetWidth;\r\n const h = imgEl.offsetHeight;\r\n let margin = (w - h) / 2;\r\n let scaleFactor = w / h;\r\n if (media.scaleFactor) {\r\n scaleFactor = 1;\r\n media.scaleFactor = null;\r\n margin = 0;\r\n } else {\r\n media.scaleFactor = scaleFactor;\r\n }\r\n\r\n if (scaleFactor < 1) {\r\n renderer2.setStyle(imgEl, 'transform', `rotate(${media.RotationAngle}deg) scale(${scaleFactor})`);\r\n } else {\r\n renderer2.setStyle(imgEl, 'transform', `rotate(${media.RotationAngle}deg)`);\r\n }\r\n renderer2.setStyle(imgEl, 'margin-bottom', margin + 'px');\r\n renderer2.setStyle(imgEl, 'margin-top', margin + 'px');\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 === '‌') {\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 isVersionBiggerThan(inputVersion: string): boolean {\r\n const result = compareVersions(inputVersion, BarsaApi.LoginFormData.Version);\r\n\r\n if (result > 0) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n}\r\n\r\nexport function compareVersions(v1: string, v2: string): number {\r\n // ۱. تابع کمکی برای تبدیل رشته به عدد نهایی بر اساس فرمول شما\r\n const getVersionScore = (v: string): number => {\r\n const parts = v\r\n .split('.')\r\n .filter((x) => x !== '')\r\n .map(Number);\r\n\r\n const major = (parts[0] || 0) * 1000; // بخش اول * 1000\r\n const minor = (parts[1] || 0) * 100; // بخش دوم * 100\r\n\r\n // بخشهای باقیمانده (بخش سوم به بعد) با هم جمع میشوند\r\n const remaining = parts.slice(2).reduce((sum, current) => sum + current, 0);\r\n\r\n return major + minor + remaining;\r\n };\r\n\r\n // ۲. محاسبه امتیاز برای هر دو نسخه\r\n const score1 = getVersionScore(v1);\r\n const score2 = getVersionScore(v2);\r\n\r\n // ۳. مقایسه اعداد نهایی\r\n if (score1 < score2) return 1;\r\n if (score1 > score2) return -1;\r\n return 0;\r\n}\r\nexport function scrollToElement(target): void {\r\n if (!target) return;\r\n const rect = target.getBoundingClientRect();\r\n\r\n // بررسی اینکه آیا المنت در محدوده پنجره مرورگر قرار دارد\r\n const isVisible =\r\n rect.top >= 0 &&\r\n rect.left >= 0 &&\r\n rect.bottom <= (window.innerHeight || document.documentElement.clientHeight) &&\r\n rect.right <= (window.innerWidth || document.documentElement.clientWidth);\r\n\r\n if (!isVisible) {\r\n // اگر قابل مشاهده نبود، به سمت آن اسکرول کن\r\n target.scrollIntoView({ behavior: 'smooth', block: 'center' });\r\n } else {\r\n console.log('المنت همین الان هم قابل مشاهده است.');\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\nexport function checkPermission(): NotificationPermission {\r\n const windowRef = window as any;\r\n // ابتدا چک میکنیم که آیا کلاً این قابلیت در این مرورگر وجود دارد یا خیر\r\n if ('Notification' in windowRef) {\r\n return windowRef.Notification.permission;\r\n }\r\n // اگر نبود (مثل سفاری موبایل)، مقدار default یا denied برمیگردانیم\r\n return 'denied';\r\n}\r\nexport function fixUnclosedParentheses(url) {\r\n const openCount = (url.match(/\\(/g) || []).length;\r\n const closeCount = (url.match(/\\)/g) || []).length;\r\n\r\n if (openCount > closeCount) {\r\n // به تعداد اختلاف، پرانتز بسته اضافه میکند\r\n return url + ')'.repeat(openCount - closeCount);\r\n }\r\n\r\n return url;\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\nexport const MimeTypes = {\r\n // اسناد متنی و وب\r\n \"html\": \"text/html\",\r\n \"htm\": \"text/html\",\r\n \"txt\": \"text/plain\",\r\n \"text\": \"text/plain\",\r\n \"log\": \"text/plain\",\r\n \"conf\": \"text/plain\",\r\n \"css\": \"text/css\",\r\n \"js\": \"application/javascript\",\r\n \"json\": \"application/json\",\r\n \"xml\": \"application/xml\",\r\n\r\n // تصاویر\r\n \"jpg\": \"image/jpeg\",\r\n \"jpeg\": \"image/jpeg\",\r\n \"png\": \"image/png\",\r\n \"gif\": \"image/gif\",\r\n \"svg\": \"image/svg+xml\",\r\n \"webp\": \"image/webp\",\r\n \"bmp\": \"image/bmp\",\r\n \"ico\": \"image/x-icon\",\r\n\r\n // اسناد کاربردی\r\n \"pdf\": \"application/pdf\",\r\n \"rtf\": \"application/rtf\",\r\n \r\n // مایکروسافت آفیس\r\n \"doc\": \"application/msword\",\r\n \"docx\": \"application/vnd.openxmlformats-officedocument.wordprocessingml.document\",\r\n \"xls\": \"application/vnd.ms-excel\",\r\n \"xlsx\": \"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet\",\r\n \"ppt\": \"application/vnd.ms-powerpoint\",\r\n \"pptx\": \"application/vnd.openxmlformats-officedocument.presentationml.presentation\",\r\n\r\n // چندرسانهای (صوت و ویدیو)\r\n \"mp4\": \"video/mp4\",\r\n \"webm\": \"video/webm\",\r\n \"ogg\": \"video/ogg\",\r\n \"mp3\": \"audio/mpeg\",\r\n \"wav\": \"audio/wav\"\r\n};\r\nexport function GetContentType(fileName) {\r\n const ext = fileName.substring(fileName.lastIndexOf('.')).toLowerCase();\r\n return MimeTypes[ext] || \"application/octet-stream\";\r\n}\r\nexport function GetViewableExtensions() { \r\n return Object.keys(MimeTypes);\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 ? name.split('.')[0] : '';\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}\r\nexport function bodyClick(document, el): void {\r\n document?.body?.click();\r\n el.nativeElement.blur();\r\n}\r\nexport function removeDynamicStyle(style: any): void {\r\n if (!style) {\r\n return;\r\n }\r\n const head = document.head || document.getElementsByTagName('head')[0];\r\n head.removeChild(style);\r\n}\r\nexport function addDynamicVariableTo(cssVariableName: string, cssVariableValue: string, id: string = ':root'): any {\r\n if (!cssVariableName) {\r\n return null;\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 = `${id}{${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 = `${id}{${cssVariableName}:${cssVariableValue}}`;\r\n } else {\r\n style.appendChild(document.createTextNode(cssStyles));\r\n }\r\n return style;\r\n}\r\nexport function AddDynamicFormStyles(id: string, cssStyles: string | undefined): HTMLStyleElement | null {\r\n if (!cssStyles) {\r\n return null;\r\n }\r\n cssStyles = cssStyles.replace(/:root/gi, `#${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 return style;\r\n}\r\nexport function RemoveDynamicFormStyles(style: HTMLStyleElement | null): void {\r\n if (!style) {\r\n return;\r\n }\r\n const head = document.head || document.getElementsByTagName('head')[0];\r\n head.removeChild(style);\r\n}\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 const x = this._getReturnaValue(newVal, decimalPrecision);\r\n if (showThousandSeperator) {\r\n return x;\r\n }\r\n const reg = new RegExp(',', 'g');\r\n const v = x.replace(reg, '');\r\n return v;\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];\r\n if (!result) {\r\n const tKey = key.trimStart().trimEnd();\r\n result = BarsaApi.BBB[tKey] ?? key;\r\n }\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 { 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\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\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 (!worfklowButtonsOnFooter) {\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 | null): 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();\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 { Pipe, PipeTransform } from '@angular/core';\r\nimport { BarsaApi } from '../abstract-classes';\r\nimport jmoment from 'moment-jalaali';\r\n\r\n@Pipe({\r\n name: 'mapToChatMessage',\r\n standalone: false\r\n})\r\nexport class MapToChatMessagePipe implements PipeTransform {\r\n transform(message: Message, index: number, messages: Message[]): any {\r\n if (!message || !messages?.length) {\r\n return [];\r\n }\r\n return {\r\n ...message,\r\n nextIsSame: messages?.[index + 1]?.owner?.id === message.owner.id,\r\n pervIsSame: messages?.[index - 1]?.owner?.id === message.owner.id,\r\n badge:\r\n !messages?.[index - 1] ||\r\n jmoment(message.createdAt).jDayOfYear() !== jmoment(messages?.[index - 1]?.createdAt).jDayOfYear(),\r\n nextHasBadge:\r\n !!messages?.[index + 1] &&\r\n jmoment(message.createdAt).jDayOfYear() !== jmoment(messages?.[index + 1]?.createdAt).jDayOfYear() &&\r\n message.owner.id === messages?.[index + 1]?.owner?.id,\r\n badgeLabel: jmoment(message.createdAt).format('jYYYY/jMM/jDD')\r\n };\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\ntype Message = {\r\n id: string;\r\n owner: User;\r\n createdAt: Date;\r\n deliveredAt: Date;\r\n readAt: Date;\r\n};\r\nexport type User = {\r\n id: string;\r\n avatar: string;\r\n name: string;\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\nimport { BarsaApi } from '../abstract-classes/barsa-api';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BreadcrumbService {\r\n readonly breadcrumbs$: Observable<BreadCrumbInfo[]>;\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\r\n this.ReBuild(root);\r\n\r\n // Emit the new hierarchy\r\n });\r\n }\r\n\r\n public ReBuild(route: ActivatedRoute | null): void {\r\n const breadcrumbs: BreadCrumbInfo[] = [];\r\n this.addBreadcrumb('', route, breadcrumbs);\r\n this._breadcrumbs$.next(breadcrumbs);\r\n }\r\n private addBreadcrumb(\r\n lastPathWidthoutUrl: string,\r\n route: ActivatedRoute | null,\r\n breadcrumbs: BreadCrumbInfo[]\r\n ): void {\r\n if (route) {\r\n // Add an element for the current route part\r\n if (\r\n route.snapshot.data?.hideBreadCrumb !== true &&\r\n (route.snapshot.data?.breadcrumb ||\r\n (typeof route.snapshot.data?.pageData?.BreadCrumb !== 'undefined' && route.snapshot.url.length))\r\n ) {\r\n let url = '';\r\n let routeURL: string = route.snapshot.url\r\n .map(\r\n (segment) =>\r\n `${segment.path}${\r\n Object.keys(segment.parameters).length\r\n ? ';' +\r\n Object.keys(segment.parameters)\r\n .map((c) => `${c}=${segment.parameters[c]}`)\r\n .join(';')\r\n : ''\r\n }`\r\n )\r\n .join('/');\r\n if (route.snapshot.routeConfig?.outlet) {\r\n routeURL = `${lastPathWidthoutUrl}(${route.snapshot.routeConfig?.outlet}:${routeURL} ${\r\n !route.firstChild ? ')' : ''\r\n }`;\r\n }\r\n if (routeURL !== '') {\r\n url += `/${routeURL}`;\r\n }\r\n const params2 =\r\n routeURL !== ''\r\n ? ''\r\n : Object.keys(route.snapshot.params).map((c) => '/' + route.snapshot.params[c]);\r\n const label = this.getLabel(route.snapshot.data);\r\n const breadcrumb = {\r\n label,\r\n url: url + params2,\r\n route\r\n };\r\n breadcrumbs.push(breadcrumb);\r\n lastPathWidthoutUrl = '';\r\n } else if (route.snapshot.url.length && route.snapshot.routeConfig?.path) {\r\n lastPathWidthoutUrl = !lastPathWidthoutUrl\r\n ? `${route.snapshot.routeConfig?.path}/`\r\n : `${lastPathWidthoutUrl}${route.snapshot.routeConfig?.path}/`;\r\n }\r\n // Add another element for the next route part\r\n this.addBreadcrumb(lastPathWidthoutUrl, 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 || BarsaApi.Common.Util.TryGetValue(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 { inject } from '@angular/core';\r\n\r\nimport { 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\nimport { ActivatedRoute, Router } from '@angular/router';\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 private _router = inject(Router);\r\n private _activatedRoute = inject(ActivatedRoute);\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.length > 0 ? [...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 if (!context.Setting.View) {\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 if (this._context?.IsSubForm) {\r\n return;\r\n }\r\n const mo = this._moSource.getValue();\r\n if (!mo) {\r\n return;\r\n }\r\n const breadCrumb = this._headerLayoutSource.getValue();\r\n\r\n const mainChild = this._activatedRoute.children.find((c) => c.outlet === 'main');\r\n const currentParams = mainChild?.snapshot.params ?? {};\r\n const queryParamsToUpdate = {\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: this._viewSource.getValue()?.TypeViewId,\r\n bc: breadCrumb ? breadCrumb : mo.$State === 'New' ? mo.$TypeDefName : mo.$Caption\r\n };\r\n if (\r\n currentParams.id === queryParamsToUpdate.id &&\r\n currentParams.tyid === queryParamsToUpdate.tyid &&\r\n currentParams.repid === queryParamsToUpdate.repid &&\r\n currentParams.vid === queryParamsToUpdate.vid\r\n ) {\r\n return;\r\n }\r\n const newParams = {\r\n ...currentParams,\r\n ...queryParamsToUpdate // پارامترهایی که میخواهی تغییر دهی\r\n };\r\n\r\n this._router.navigate(\r\n [\r\n {\r\n outlets: {\r\n main: ['show', newParams]\r\n }\r\n }\r\n ],\r\n { relativeTo: this._activatedRoute.parent, skipLocationChange: false }\r\n );\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 { Subject } from 'rxjs';\r\n\r\n@Injectable()\r\nexport class ContainerService implements OnDestroy {\r\n public detachParent = true;\r\n public state: 'attach' | 'detach' = 'attach';\r\n public FormPanelCtrlr: any;\r\n public addModules = new Subject<void>();\r\n\r\n protected readonly _onDestroy$: Subject<void> = new Subject<void>();\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\r\n /** Inserted by Angular inject() migration for backwards compatibility */\r\n ngOnDestroy(): void {\r\n this._onDestroy$.next();\r\n this._onDestroy$.complete();\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 this.state = 'attach';\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.state = 'detach';\r\n this._viewRef = this._viewContainerRef.detach();\r\n }\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 } else {\r\n this.addModules.next();\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 this._portalService.getListOfChildPage(pageInfo.pageData).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 { Observable, of } from 'rxjs';\r\nimport { SearchProvider } from './search-provider';\r\nimport { SearchResultItem } from './search-result-item';\r\n\r\nexport class MultiAppCommandSearchProvider implements SearchProvider {\r\n key = 'command';\r\n priority = 5;\r\n\r\n constructor(private apps: any[]) {}\r\n\r\n search(term: string): Observable<SearchResultItem[]> {\r\n return of(!this.apps ? [] : Object.values(this.apps).flatMap((app) => searchCommandsInApp(app, term)));\r\n }\r\n}\r\n\r\nfunction searchCommandsInApp(app: any, keyword: string): SearchResultItem[] {\r\n const results: SearchResultItem[] = [];\r\n const term = keyword.toLowerCase();\r\n\r\n const groups = app?.ExtraData?.CommandGroups || [];\r\n const appTitle = app.ExtraData?.Navigator?.Root?.Caption;\r\n\r\n for (const group of groups) {\r\n for (const command of group.Commands || []) {\r\n if (command.Caption && command.Caption.toLowerCase().includes(term)) {\r\n results.push({\r\n appId: app.Id,\r\n appTitle,\r\n source: 'Command',\r\n id: command.Name || command.Key,\r\n caption: command.Caption,\r\n path: `${group.Caption || group.Name}`,\r\n original: command,\r\n hidden: false,\r\n depth: 0\r\n });\r\n }\r\n\r\n for (const menu of command.Menu || []) {\r\n if (menu.Caption && menu.Caption.toLowerCase().includes(term)) {\r\n results.push({\r\n appId: app.Id,\r\n appTitle,\r\n source: 'Command',\r\n id: menu.CommandId,\r\n caption: menu.Caption,\r\n path: `${group.Caption || group.Name} > ${command.Caption}`,\r\n original: menu,\r\n hidden: false,\r\n depth: 0\r\n });\r\n }\r\n }\r\n }\r\n }\r\n\r\n return results;\r\n}\r\n","import { Observable, of } from 'rxjs';\r\nimport { SearchProvider } from './search-provider';\r\nimport { SearchResultItem } from './search-result-item';\r\n\r\nexport class MultiAppNavigatorSearchProvider implements SearchProvider {\r\n key = 'navigator';\r\n priority = 10;\r\n\r\n constructor(private apps: any[]) {}\r\n\r\n search(term: string): Observable<SearchResultItem[]> {\r\n return of(!this.apps ? [] : Object.values(this.apps).flatMap((app) => searchNavigatorInApp(app, term)));\r\n }\r\n}\r\nfunction searchNavigatorInApp(app: any, keyword: string): SearchResultItem[] {\r\n const results: SearchResultItem[] = [];\r\n\r\n const root = app?.ExtraData?.Navigator?.Root;\r\n if (!root) {\r\n return results;\r\n }\r\n\r\n function walk(node: any, path: string, depth: number = 0): void {\r\n const currentPath = path ? `${path} > ${node.Caption || node.Name}` : node.Caption || node.Name || '';\r\n\r\n if (node.Caption && node.Caption.toLowerCase().includes(keyword.toLowerCase())) {\r\n let url = '';\r\n\r\n if (!node.IsRoot && node.ReportId && node.ReportId !== '0') {\r\n url = `#/application/report/${node.FolderId}__${node.Caption}__${node.ReportId}`;\r\n } else if (node.IsRoot) {\r\n url = `#/application/${app.Id}`;\r\n }\r\n results.push({\r\n appId: app.Id,\r\n appTitle: root.Caption,\r\n source: 'Navigator',\r\n id: node.Id,\r\n url,\r\n caption: node.Caption,\r\n path: currentPath,\r\n original: node,\r\n hidden: depth === 1,\r\n depth\r\n });\r\n }\r\n\r\n node.Items?.forEach((child: any) => walk(child, currentPath, depth + 1));\r\n }\r\n\r\n walk(root, '');\r\n return results;\r\n}\r\n","import {\r\n Subject,\r\n debounceTime,\r\n Observable,\r\n distinctUntilChanged,\r\n switchMap,\r\n forkJoin,\r\n map,\r\n shareReplay,\r\n of\r\n} from 'rxjs';\r\nimport { SearchProvider } from './search-provider';\r\nimport { SearchResultItem } from './search-result-item';\r\nimport { Injectable } from '@angular/core';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class SearchService {\r\n results$: Observable<SearchResultItem[]>;\r\n private providers: SearchProvider[] = [];\r\n private search$ = new Subject<string>();\r\n /**\r\n *\r\n */\r\n constructor() {\r\n this.results$ = this.search$.pipe(\r\n debounceTime(250),\r\n distinctUntilChanged(),\r\n switchMap((term) => {\r\n if (!term || term.length < 2) {\r\n return of([]);\r\n }\r\n return forkJoin(this.providers.map((p) => p.search(term))).pipe(map((groups) => groups.flat()));\r\n }),\r\n shareReplay(1)\r\n );\r\n }\r\n\r\n register(provider: SearchProvider): void {\r\n this.providers.push(provider);\r\n this.providers.sort((a, b) => (b.priority ?? 0) - (a.priority ?? 0));\r\n }\r\n\r\n search(term: string): void {\r\n this.search$.next(term);\r\n }\r\n}\r\n","import { DOCUMENT, inject, Injectable } from '@angular/core';\r\nimport { BehaviorSubject, Observable, withLatestFrom, map, combineLatest, Subject, tap } from 'rxjs';\r\nimport { Router, ActivatedRoute } from '@angular/router';\r\nimport {\r\n AppMenu,\r\n CustomApplicationMenuBodyUi,\r\n CustomApplicationUi,\r\n CustomSystemUi,\r\n CustomSystemNavUi,\r\n CommandGroup,\r\n WorkflowItem,\r\n Command,\r\n AbbrevationDeviceSize,\r\n ISystemData,\r\n SearchInput\r\n} from '../abstract-classes/models';\r\nimport { BarsaApi } from '../abstract-classes/barsa-api';\r\nimport { getDeviceIsMobile, isVersionBiggerThan } from '../constants';\r\nimport {\r\n MultiAppCommandSearchProvider,\r\n MultiAppNavigatorSearchProvider,\r\n SearchService,\r\n SearchResultItem\r\n} from '../search-navigator';\r\nimport { Title } from '@angular/platform-browser';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ApplicationCtrlrService {\r\n public deviceSize: AbbrevationDeviceSize;\r\n private _selectedNavGroupItemId$ = new BehaviorSubject<Record<string, string>>({});\r\n private _selectedReportId$ = new BehaviorSubject<Record<string, string>>({});\r\n private _selectedReportCaption$ = new BehaviorSubject<Record<string, string>>({});\r\n private _selectedNavGroupId$ = new BehaviorSubject<Record<string, string>>({});\r\n private _sidebarToggle$ = new BehaviorSubject<boolean>(false);\r\n private _selectedAppTileGroup$ = new BehaviorSubject<string>('');\r\n private _appMenuItems$ = new BehaviorSubject<Array<AppMenu>>([]);\r\n private _systemsUi$ = new BehaviorSubject<Array<CustomSystemUi>>([]);\r\n private _selectedSystemId$ = new BehaviorSubject<string>('');\r\n private _selectedSystemNavUi$ = new BehaviorSubject<CustomSystemNavUi | null>(null);\r\n private _selectedCommandId$ = new BehaviorSubject<Record<string, string>>({});\r\n private _isCommandGroupsSelected$ = new BehaviorSubject<Record<string, boolean>>({});\r\n private _searchNavigators$ = new BehaviorSubject<Record<string, ISystemData>>({});\r\n private _customApplicationUi: CustomApplicationUi;\r\n private _customApplicationMenuBodyUi: CustomApplicationMenuBodyUi;\r\n private _selectedSystemTitle$ = new Subject<string>();\r\n\r\n private _isMobile = getDeviceIsMobile();\r\n private _document = inject(DOCUMENT);\r\n private _router = inject(Router);\r\n private _searchService = inject(SearchService);\r\n private _titleService = inject(Title);\r\n get appMenuItems$(): Observable<AppMenu[]> {\r\n return this._appMenuItems$.asObservable();\r\n }\r\n get systemCommandGroups$(): Observable<Array<CommandGroup>> {\r\n return this._selectedSystemNavUi$\r\n .asObservable()\r\n .pipe(map((c) => (!c ? [] : this._mergeToSystemGroup(c.SystemData.CommandGroups) || [])));\r\n }\r\n get selectedCommand$(): Observable<string> {\r\n return combineLatest([this._selectedCommandId$, this._selectedSystemId$]).pipe(\r\n map(([selectedCommand, systemId]) => selectedCommand[systemId])\r\n );\r\n }\r\n get systemWorkflowList$(): Observable<Array<WorkflowItem>> {\r\n return this._selectedSystemNavUi$.asObservable().pipe(map((c) => (!c ? [] : c.SystemData.WorkflowList || [])));\r\n }\r\n get selectedSystemNavUi$(): Observable<CustomSystemNavUi | null> {\r\n return this._selectedSystemNavUi$.asObservable();\r\n }\r\n get isCommandGroupsSelected$(): Observable<boolean> {\r\n return combineLatest([this._isCommandGroupsSelected$, this._selectedSystemId$]).pipe(\r\n map(([isSelectedGroups, systemId]) => isSelectedGroups[systemId])\r\n );\r\n }\r\n get selectedSystemId$(): Observable<string> {\r\n return this._selectedSystemId$\r\n .asObservable()\r\n .pipe(map((c) => c || BarsaApi.Ul.ApplicationCtrlr.DefaultSystemId));\r\n }\r\n get selectedAppTileGroup$(): Observable<string> {\r\n return this._selectedAppTileGroup$.asObservable();\r\n }\r\n get sidebarToggle$(): Observable<boolean> {\r\n return this._sidebarToggle$.asObservable();\r\n }\r\n get sidebarToggle(): boolean {\r\n return this._sidebarToggle$.getValue();\r\n }\r\n get selectedNavGroupId$(): Observable<string> {\r\n return combineLatest([this._selectedNavGroupId$, this._selectedSystemId$]).pipe(\r\n map(([selectedNavGroupsId, systemId]) => selectedNavGroupsId[systemId])\r\n );\r\n }\r\n get selectedNavGroupItemId$(): Observable<string> {\r\n return this._selectedNavGroupItemId$.pipe(\r\n withLatestFrom(this._selectedSystemId$),\r\n map(([selectedNavGroupId, systemId]) => selectedNavGroupId[systemId])\r\n );\r\n }\r\n get selectedReportId$(): Observable<string> {\r\n return this._selectedReportId$.pipe(\r\n withLatestFrom(this._selectedSystemId$),\r\n map(([selectedNavGroupId, systemId]) => selectedNavGroupId[systemId])\r\n );\r\n }\r\n get selectedSystemId(): string {\r\n return this._selectedSystemId$.getValue();\r\n }\r\n get searchResults$(): Observable<SearchResultItem[]> {\r\n return this._searchService.results$;\r\n }\r\n get systemCaption$(): Observable<string> {\r\n return this._selectedSystemTitle$.asObservable();\r\n }\r\n getSelectedNavGroupItemId(systemId: string): string {\r\n return this._selectedNavGroupItemId$.getValue()[systemId];\r\n }\r\n getSelectedReportId(systemId: string): string {\r\n return this._selectedReportId$.getValue()[systemId];\r\n }\r\n getSelectedReportCaption(systemId: string): string {\r\n return this._selectedReportCaption$.getValue()[systemId];\r\n }\r\n initialize(callback): void {\r\n BarsaApi.Ul.ApplicationCtrlr.on({\r\n 'MetaEventTopics.System_BeforeApplicationStart': () => {\r\n BarsaApi.Ul.ApplicationCtrlr.DefaultSystemId = this.selectedSystemId || 0;\r\n }\r\n });\r\n\r\n BarsaApi.Ul.ApplicationCtrlr.Initialize(() => {\r\n this._handleEvents();\r\n const selectedSystem = BarsaApi.Ul.ApplicationCtrlr.GetSelectedSystem();\r\n this.systemChange(selectedSystem.Id);\r\n\r\n callback && callback(true);\r\n });\r\n this._document.documentElement.setAttribute('data-layout', 'vertical');\r\n this._selectedSystemTitle$\r\n .asObservable()\r\n .pipe(tap((c) => this._titleService.setTitle(c)))\r\n .subscribe();\r\n }\r\n\r\n systemChange(systemId: string): void {\r\n const systemData = BarsaApi.Ul.ApplicationCtrlr.SystemDict[systemId]?.SystemData;\r\n this.selectedSystem(systemId);\r\n if (!systemData) {\r\n // console.error(`system data for systemid ${systemId} not found.`);\r\n return;\r\n }\r\n if (this.deviceSize !== 's' && this.deviceSize !== 'm' && this.deviceSize !== 'l') {\r\n this.sidebarToggled(true);\r\n }\r\n this._selectedSystemTitle$.next(systemData.Caption);\r\n this._customApplicationMenuBodyUi.fireEvent(\r\n 'SelectedSystemChanged',\r\n this._customApplicationMenuBodyUi,\r\n systemData\r\n );\r\n }\r\n selectAppTileGroup(id: string): void {\r\n this._selectedAppTileGroup$.next(id);\r\n }\r\n setCommandGroupsSelected(isSelected: boolean): void {\r\n const groupsSelected = this._isCommandGroupsSelected$.getValue();\r\n const selectedSystemId = this._selectedSystemId$.getValue();\r\n const systemId = selectedSystemId;\r\n groupsSelected[systemId] = isSelected;\r\n this._isCommandGroupsSelected$.next(groupsSelected);\r\n }\r\n selectedSystem(systemId: string): void {\r\n this._selectedSystemId$.next(systemId);\r\n const selectedNavGroupId = this._selectedNavGroupId$.getValue()[systemId];\r\n const selectedNavGroupItemId = this._selectedNavGroupItemId$.getValue()[systemId];\r\n this.selectNavGroup(selectedNavGroupId, false);\r\n this.selectNavGroupItem(selectedNavGroupItemId);\r\n }\r\n selectSystemCommand(command: Command): void {\r\n this.selectSystemCommandId(command.Key);\r\n new Promise((resolve, _reject) => {\r\n // this._routeToSystem(this._selectedSystemId$.getValue());\r\n if (command.DynamicCommand) {\r\n BarsaApi.Common.CustomCodeManager.RunDynamicCommand(command.Key, {}, resolve);\r\n } else {\r\n const key = `${this._selectedSystemId$.getValue()}:${command.Caption}`;\r\n BarsaApi.Common.CustomCodeManager.ExecFunctions(\r\n key,\r\n 'click',\r\n [\r\n { Id: command.CommandId, Caption: command.Caption },\r\n { System: BarsaApi.Bw._wrap(BarsaApi.Ul.ApplicationCtrlr.GetSelectedSystem()), E: command }\r\n ],\r\n resolve\r\n );\r\n }\r\n });\r\n }\r\n selectSystemCommandId(id: string): void {\r\n const selectedCommandId = this._selectedCommandId$.getValue();\r\n const selectedSystemId = this._selectedSystemId$.getValue();\r\n const systemId = selectedSystemId;\r\n selectedCommandId[systemId] = id;\r\n this._selectedCommandId$.next(selectedCommandId);\r\n }\r\n selectNavGroupItem(navGroupItemId: string): void {\r\n const selectedNavGroupItem = this._selectedNavGroupItemId$.getValue();\r\n const selectedSystemId = this._selectedSystemId$.getValue();\r\n const systemId = selectedSystemId;\r\n selectedNavGroupItem[systemId] = navGroupItemId;\r\n this._selectedNavGroupItemId$.next(selectedNavGroupItem);\r\n }\r\n selectNavGroup(navGroupId: string, toggle = true): void {\r\n const selectedNavGroup = this._selectedNavGroupId$.getValue();\r\n const selectedSystemId = this._selectedSystemId$.getValue();\r\n\r\n const systemId = selectedSystemId;\r\n if (selectedNavGroup[systemId] === navGroupId) {\r\n toggle && (selectedNavGroup[systemId] = '');\r\n } else {\r\n selectedNavGroup[systemId] = navGroupId;\r\n }\r\n this._selectedNavGroupId$.next(selectedNavGroup);\r\n }\r\n sidebarToggled(value: boolean): void {\r\n this._sidebarToggle$.next(value);\r\n }\r\n selectReportCaption(caption: string): void {\r\n const selectedReportCaption = this._selectedReportCaption$.getValue();\r\n const selectedSystemId = this._selectedSystemId$.getValue();\r\n const systemId = selectedSystemId;\r\n selectedReportCaption[systemId] = caption;\r\n this._selectedReportCaption$.next(selectedReportCaption);\r\n }\r\n selectedReportId(reportId: string): void {\r\n const selectedReport = this._selectedReportId$.getValue();\r\n const selectedSystemId = this._selectedSystemId$.getValue();\r\n const systemId = selectedSystemId;\r\n selectedReport[systemId] = reportId;\r\n this._selectedReportId$.next(selectedReport);\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 loadSearchNavigators(): void {\r\n let canSupport = false;\r\n if (BarsaApi.LoginFormData.Version.startsWith('5')) {\r\n canSupport = isVersionBiggerThan('5.1.37');\r\n } else {\r\n canSupport = isVersionBiggerThan('4.1.178');\r\n }\r\n if (!canSupport) {\r\n return;\r\n }\r\n if (Object.keys(this._searchNavigators$.getValue()).length) {\r\n return;\r\n }\r\n BarsaApi.Common.Ajax.GetServerData(\r\n 'System94.Search',\r\n { term: '' },\r\n (e) => {\r\n this._searchService.register(new MultiAppNavigatorSearchProvider(e));\r\n\r\n this._searchService.register(new MultiAppCommandSearchProvider(e));\r\n },\r\n (e) => console.error(e),\r\n null,\r\n this\r\n );\r\n }\r\n search(e: SearchInput): void {\r\n this._searchService.search(e.text);\r\n }\r\n searchItemClick(data: SearchResultItem): void {\r\n if (data.original.IsRoot) {\r\n this._routeToSystem(data.appId);\r\n this.sidebarToggled(true);\r\n } else if (data.source === 'Command') {\r\n this.selectSystemCommand(data.original);\r\n } else if (data.source === 'Navigator') {\r\n if (data.original.ReportId === '0') {\r\n this._routeToSystem(data.appId);\r\n this.sidebarToggled(true);\r\n this.selectNavGroup(data.id, false);\r\n } else {\r\n this._routeToReport(data.id, data.original.Caption, data.original.ReportId);\r\n }\r\n }\r\n }\r\n protected _routeToSystem(systemId: string): void {\r\n this.systemChange(systemId);\r\n }\r\n protected getLastActivatedRoute(): ActivatedRoute | null {\r\n let route = this._router.routerState.root;\r\n\r\n while (route.firstChild) {\r\n route = route.firstChild;\r\n }\r\n\r\n return route;\r\n }\r\n protected _routeToReport(navGroupId: string, caption: string, reportId: string): void {\r\n this._router.navigate(['application', 'report', navGroupId + '__' + caption + '__' + reportId]);\r\n }\r\n protected flattenLeafCommands(commands: Command[]): Command[] {\r\n const result: Command[] = [];\r\n\r\n for (const cmd of commands) {\r\n if (cmd.Menu && cmd.Menu.length > 0) {\r\n // خودش حذف میشه، فقط بچههاش بررسی میشن\r\n result.push(...this.flattenLeafCommands(cmd.Menu));\r\n } else {\r\n result.push(cmd);\r\n }\r\n }\r\n\r\n return result;\r\n }\r\n\r\n // ساخت یک CommandGroup به نام System\r\n protected _mergeToSystemGroup(commandGroups: CommandGroup[]): CommandGroup[] {\r\n const allCommands: Command[] = [];\r\n\r\n for (const group of commandGroups) {\r\n allCommands.push(...this.flattenLeafCommands(group.Commands));\r\n }\r\n\r\n const systemGroup: CommandGroup = {\r\n Caption: 'All',\r\n Name: 'All',\r\n Key: 'All',\r\n Order: 0,\r\n Commands: allCommands\r\n };\r\n\r\n return systemGroup.Commands.length > 0 ? [systemGroup] : [];\r\n }\r\n protected _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 protected _appMenuBodyUi_itemsChanged(items: AppMenu[]): void {\r\n items.forEach((c) => {\r\n const x = c.callback;\r\n c.callback = (e) => {\r\n x && x(e);\r\n this._document?.body?.click();\r\n this.sidebarToggled(true);\r\n };\r\n });\r\n this._appMenuItems$.next([...items]);\r\n }\r\n protected _addSystemUi(_systemUi): void {}\r\n protected _addToMainTabPanel(_customSystemUi): void {}\r\n protected _selectedSystemChanged(systemId, _forceRelayout = false): void {\r\n const x = this._customApplicationUi._systemsUi.find((c) => c.SystemData.Id === systemId);\r\n this._selectSystem(x);\r\n }\r\n protected _selectSystem(system: CustomSystemUi | undefined): void {\r\n if (!system) {\r\n return;\r\n }\r\n this.selectedSystem(system.SystemData.Id);\r\n this._selectedSystemNavUi$.next(system.SystemNavUi);\r\n }\r\n protected _setStatusBarValues(_statusbarValues): void {}\r\n protected _showReleaseNoteWindow(_releaseNoteData): void {}\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/barsa-api';\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 this._portalService.getListOfChildPage (portalData).find((c) => c.IsDefaultRoute === 'True');\r\n const homeRoute = homePage?.Route || '/';\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 { Injectable } from '@angular/core';\r\nimport { ActivatedRouteSnapshot, Resolve } from '@angular/router';\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class ReportBreadcrumbResolver implements Resolve<any> {\r\n resolve(route: ActivatedRouteSnapshot): string {\r\n const x = this._extractIds(route.params);\r\n // برگرداندن شیء مورد نظر شما\r\n return x.ReportId2;\r\n }\r\n protected _extractIds(params): { Id: string; ReportId: string; ReportId2: string; isReportPage: string } {\r\n return {\r\n Id: params.id.split('__')[0],\r\n ReportId: params.id.split('__').length > 2 ? params.id.split('__')[2] : '',\r\n ReportId2: params.id.split('__').length > 1 ? params.id.split('__')[1] : '',\r\n isReportPage: params.id.split('__').length > 3 ? params.id.split('__')[3] : null\r\n };\r\n }\r\n}\r\n","import { AuthGuard } from '../auth-guard';\r\nimport { ReportBreadcrumbResolver } from '../resolvers/report-breadcrumb-resolver';\r\n\r\nexport function reportRoutes(authGuard: boolean = false): any {\r\n return {\r\n path: 'report/:id',\r\n canActivate: authGuard ? [AuthGuard] : [],\r\n loadChildren: () => import('./barsa-report-page.module').then((m) => m.BarsaReportPageModule),\r\n resolve: {\r\n breadcrumb: ReportBreadcrumbResolver\r\n }\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\nimport { RedirectHomeGuard } from '../redirect-home-guard';\r\nimport { reportRoutes } from '../report-page-routing/constants';\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._applicationCtrlrService.deviceSize = deviceSize;\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 this._document.body.classList.add('mobile');\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 <= 1300) {\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 getListOfChildPage(model: PortalDataModel | PageDataModel | null): PageDataModel[] {\r\n return !model\r\n ? []\r\n : model.ChildPageList2?.MoDataList.length\r\n ? model.ChildPageList2.MoDataList\r\n : model.ChildPageList?.MoDataList || [];\r\n }\r\n extractAllPages(portalData: PortalDataModel | null): void {\r\n if (!portalData) {\r\n return;\r\n }\r\n this.getListOfChildPage(portalData).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 this.getListOfChildPage(portalData).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 () => {\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 () => {\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 (!this.getListOfChildPage(pageData).length) {\r\n return;\r\n }\r\n this.getListOfChildPage(pageData).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 this._addToCachePageData(pageData, url);\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\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._addToCachePageData(pageData, id);\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(this.getListOfChildPage(element));\r\n });\r\n return x2;\r\n }\r\n private _addPage(routes: Route[], page: PageDataModel): void {\r\n const portalService = this;\r\n const traverse = (children: Route[] | undefined, cpage: PageDataModel) => {\r\n if (!children) {\r\n return;\r\n }\r\n const path = cpage.RoutePath;\r\n const x = this.getListOfChildPage(cpage);\r\n const pageComponent = portalService.getComponentType(\r\n cpage.Module,\r\n cpage.ComponentName,\r\n cpage.ComponentSelector\r\n );\r\n const newRoute: Route = {\r\n path:\r\n (cpage.IsDefaultRoute === 'True' && path === '') || (path !== '' && typeof path !== 'undefined')\r\n ? path\r\n : cpage.Route.replace('/', ''),\r\n canActivate:\r\n cpage.HasAuthorize === 'True'\r\n ? [AuthGuard]\r\n : cpage.IsLoginRoute === 'True'\r\n ? [RedirectHomeGuard]\r\n : [],\r\n resolve: { pageData: PortalPageResolver },\r\n component: pageComponent,\r\n outlet: cpage.Outlet ? cpage.Outlet : undefined,\r\n data: {\r\n pageData: {\r\n ...cpage\r\n }\r\n },\r\n children: []\r\n };\r\n const constChildRoutes: Route[] = [reportRoutes(), formRoutes()];\r\n if (!x.length || x.find((c) => c.IsDefaultRoute !== 'True')) {\r\n newRoute.children = constChildRoutes;\r\n }\r\n children.push(newRoute);\r\n // Recursively process each MetaObjectModel inside MoDataList\r\n x.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(this.getListOfChildPage(portalData));\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 !== '' && this.getListOfChildPage(portalData).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 this.getListOfChildPage(portalData).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 newConfigRoutes.push({ path: '', redirectTo: defaultPageRoute, pathMatch: 'full' });\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 = this.getListOfChildPage(portalData).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 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 private _addToCachePageData(pageData, url: string): void {\r\n const x = this.portalDataSource.getValue();\r\n const typedefIdX = x?.ChildPageList?.TypeDefId || x?.ChildPageList2?.TypeDefId;\r\n this.cachedPageData[url] = this.apiService.loadPortalPageData(pageData?.Id, typedefIdX).pipe(\r\n map((pageMo) => pageMo.Data.Mo),\r\n tap((pageMo) => {\r\n this.addChildPages(pageMo);\r\n }),\r\n publishReplay(1),\r\n refCount()\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\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 GridSetting,\r\n DefaultGridSetting,\r\n DefaultCommandsAccess,\r\n DefaultCommandsAccessValue,\r\n UiReportViewBase,\r\n SortSetting,\r\n ToolbarButtonReportViewType,\r\n UlvHeightSizeType,\r\n MoForReportModel\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 openOneClick = false;\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 _gridSettingSource = new BehaviorSubject<GridSetting>(DefaultGridSetting);\r\n private _gridAllowSortSource = new BehaviorSubject<boolean>(false);\r\n private _contentHeightSource = new BehaviorSubject<number>(0);\r\n private _hiddenOverflowContentSource = new BehaviorSubject<boolean>(false);\r\n\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 _toolbarButtonsReportViewSource = new BehaviorSubject<ToolbarButtonReportViewType[]>([]);\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 private _hideViewerLoadingSource = new BehaviorSubject<boolean>(false);\r\n private _commandsAccessSource = new BehaviorSubject<DefaultCommandsAccess>(DefaultCommandsAccessValue);\r\n private _viewCollectionSource = new BehaviorSubject<UiReportViewBase[]>([]);\r\n private _useLayoutItemTextForControlSource = new BehaviorSubject<boolean>(false);\r\n private _hideTitleSource = new BehaviorSubject<boolean>(true);\r\n private _createNewInlineMo$ = new Subject<boolean>();\r\n private _sortSettingChanged$ = new Subject<SortSetting[]>();\r\n private _updateGridSettingByUser$ = new Subject<{ setting: any; isSort: boolean; raiseEvent: boolean }>();\r\n private _selectedView$ = new BehaviorSubject<UiReportViewBase | null>(null);\r\n private _ulvHeightSizeTypeSource = new BehaviorSubject<UlvHeightSizeType>(UlvHeightSizeType.Default);\r\n private _ulvHeightSizeSource = new BehaviorSubject<number>(0);\r\n private _toolbarSettingsSource = new BehaviorSubject<MoForReportModel | null>(null);\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\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:\r\n !d.Command?.IsBuiltin ||\r\n d.itemId === 'New' ||\r\n d.itemId === 'AddToList' ||\r\n d.itemId === 'RemoveFromList'\r\n ? false\r\n : true\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 map((c) => this._setPriorityAndPriorityGroup(c))\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 _setPriorityAndPriorityGroup(toolbarButtons: any[]): any[] {\r\n let counter = 10;\r\n toolbarButtons.forEach((btn) => {\r\n if (btn.Command?.IsBuiltin) {\r\n switch (btn.itemId) {\r\n case 'AddToList': {\r\n btn.priorityGroup = 1;\r\n btn.priority = 'never';\r\n break;\r\n }\r\n case 'RemoveFromList': {\r\n btn.priorityGroup = 1;\r\n btn.priority = 'never';\r\n break;\r\n }\r\n case 'New': {\r\n btn.priorityGroup = 2;\r\n btn.priority = 'high';\r\n break;\r\n }\r\n case 'Edit': {\r\n btn.priorityGroup = 3;\r\n btn.priority = 'low';\r\n break;\r\n }\r\n case 'Delete': {\r\n btn.priorityGroup = 4;\r\n btn.priority = 'low';\r\n break;\r\n }\r\n case 'InlineEdit': {\r\n btn.priorityGroup = 5;\r\n btn.priority = 'low';\r\n break;\r\n }\r\n case 'ExportToExcel': {\r\n btn.priorityGroup = 6;\r\n btn.priority = 'low';\r\n break;\r\n }\r\n case 'WorkflowHistory': {\r\n btn.priorityGroup = 7;\r\n btn.priority = 'low';\r\n break;\r\n }\r\n case 'RefreshReport': {\r\n btn.priorityGroup = 7;\r\n btn.priority = 'low';\r\n break;\r\n }\r\n case 'MoveUp': {\r\n btn.priorityGroup = 7;\r\n btn.priority = 'low';\r\n break;\r\n }\r\n case 'MoveDown': {\r\n btn.priorityGroup = 7;\r\n btn.priority = 'low';\r\n break;\r\n }\r\n }\r\n } else {\r\n btn.priorityGroup = ++counter;\r\n btn.priority = 'high';\r\n }\r\n });\r\n return toolbarButtons;\r\n }\r\n get toolbarSettings$(): Observable<MoForReportModel | null> {\r\n return this._toolbarSettingsSource.asObservable();\r\n }\r\n get ulvHeightSizeType$(): Observable<UlvHeightSizeType> {\r\n return this._ulvHeightSizeTypeSource.asObservable();\r\n }\r\n get ulvHeightSize$(): Observable<number> {\r\n return this._ulvHeightSizeSource.asObservable();\r\n }\r\n get hiddenOverflowContent$(): Observable<boolean> {\r\n return this._hiddenOverflowContentSource.asObservable();\r\n }\r\n get contentHeight$(): Observable<number> {\r\n return this._contentHeightSource.asObservable();\r\n }\r\n get toolbarButtonsReportView$(): Observable<ToolbarButtonReportViewType[]> {\r\n return this._toolbarButtonsReportViewSource.asObservable();\r\n }\r\n get selectedView$(): Observable<UiReportViewBase | null> {\r\n return this._selectedView$.asObservable();\r\n }\r\n get inlineEditMode(): boolean {\r\n return this._inlineEditModeSource.getValue();\r\n }\r\n get gridSettingChangedByUser$(): Observable<{ setting: any; isSort: boolean; raiseEvent: boolean }> {\r\n return this._updateGridSettingByUser$.asObservable();\r\n }\r\n get sortSettingChanged$(): Observable<SortSetting[]> {\r\n return this._sortSettingChanged$.asObservable();\r\n }\r\n get createNewInlineMo$(): Observable<boolean> {\r\n return this._createNewInlineMo$.asObservable();\r\n }\r\n get hideTitle$(): Observable<boolean> {\r\n return this._hideTitleSource.asObservable();\r\n }\r\n get useLayoutItemTextForControl$(): Observable<boolean> {\r\n return this._useLayoutItemTextForControlSource.asObservable();\r\n }\r\n get viewCollection$(): Observable<UiReportViewBase[]> {\r\n return this._viewCollectionSource.asObservable();\r\n }\r\n get commandsAccess(): DefaultCommandsAccess {\r\n return this._commandsAccessSource.getValue();\r\n }\r\n get commandsAccess$(): Observable<DefaultCommandsAccess> {\r\n return this._commandsAccessSource.asObservable();\r\n }\r\n get hasSelected$(): Observable<boolean> {\r\n return this.moDataList$.pipe(map((moList) => moList.some((c) => c.$IsChecked)));\r\n }\r\n get gridAllowSort$(): Observable<boolean> {\r\n return this._gridAllowSortSource.asObservable();\r\n }\r\n get gridSetting(): GridSetting {\r\n return this._gridSettingSource.getValue();\r\n }\r\n get gridSetting$(): Observable<GridSetting> {\r\n return this._gridSettingSource.asObservable();\r\n }\r\n get hideViewerLoading$(): Observable<boolean> {\r\n return this._hideViewerLoadingSource.asObservable();\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(): boolean {\r\n return this._isMultiSelect$.getValue();\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 setToolbarSettings(toolbarSettings: MoForReportModel): void {\r\n this._toolbarSettingsSource.next(toolbarSettings);\r\n }\r\n setUlvHeightSize(ulvHeightSize: number): void {\r\n this._ulvHeightSizeSource.next(ulvHeightSize);\r\n }\r\n setUlvHeightSizeType(ulvSizeType: UlvHeightSizeType): void {\r\n this._ulvHeightSizeTypeSource.next(ulvSizeType);\r\n }\r\n setHiddenOverflowContent(hiddenOverflow: boolean): void {\r\n this._hiddenOverflowContentSource.next(hiddenOverflow);\r\n }\r\n setSelectedView(selectedView: UiReportViewBase): void {\r\n this._selectedView$.next(selectedView);\r\n }\r\n userChangeGridSetting(setting, isSort = false, raiseEvent = true): void {\r\n this._updateGridSettingByUser$.next({ setting, isSort, raiseEvent });\r\n }\r\n sortSettingChange(gridSetting: SortSetting[]): void {\r\n this._sortSettingChanged$.next(gridSetting);\r\n }\r\n newInlineMo(checked: boolean): void {\r\n this._createNewInlineMo$.next(checked);\r\n }\r\n setHideTitle(hideTitle: boolean): void {\r\n this._hideTitleSource.next(hideTitle);\r\n }\r\n setUseLayoutItemTextForControl(useLayoutItemTextForControl: boolean): void {\r\n this._useLayoutItemTextForControlSource.next(useLayoutItemTextForControl);\r\n }\r\n setViewCollection(collection: UiReportViewBase[]): void {\r\n this._viewCollectionSource.next(collection);\r\n }\r\n setAccess(access: DefaultCommandsAccess): void {\r\n this._commandsAccessSource.next(access);\r\n }\r\n setAllowGridColumnSort(allow: boolean): void {\r\n this._gridAllowSortSource.next(allow);\r\n }\r\n setGridSetting(gridSetting): void {\r\n this._gridSettingSource.next(gridSetting);\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 ulvSetHideViewerLoading(hideViewerLoading: boolean): void {\r\n this._hideViewerLoadingSource.next(hideViewerLoading);\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 setOpenOneClick(val: boolean): void {\r\n this.openOneClick = val;\r\n }\r\n setFullscreen(val: boolean): void {\r\n this._fullscreen$.next(val);\r\n }\r\n setContentHeight(height: number): void {\r\n this._contentHeightSource.next(height);\r\n }\r\n addUlvButtons(e: ToolbarButtonReportViewType[]): void {\r\n const tlbButtons = this._toolbarButtonsReportViewSource.getValue();\r\n this._toolbarButtonsReportViewSource.next([...tlbButtons, ...e]);\r\n }\r\n enableUlvButtonsReportView(id: string, isEnable: boolean): void {\r\n const tlbButtons = this._toolbarButtonsReportViewSource.getValue();\r\n const x = tlbButtons.find((c) => c.id === id);\r\n x && (x.isEnable = isEnable);\r\n this._toolbarButtonsReportViewSource.next(tlbButtons);\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 = '', tagId: 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, tagId, 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 { PortalService } from './portal.service';\r\nimport { BarsaApi, ExNotificationPayload, NotificationItem } from '../abstract-classes';\r\n\r\n@Injectable()\r\nexport class ServiceWorkerNotificationService {\r\n hasRegistration = false;\r\n private _swPush = inject(SwPush);\r\n private _portalService = inject(PortalService);\r\n \r\n\r\n constructor() {\r\n this.init();\r\n }\r\n\r\n // بررسی وضعیت فعلی\r\n public get isEnabled(): boolean {\r\n return this._swPush.isEnabled && this.hasRegistration;\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 async init(): Promise<void> {\r\n console.log(`SwPush enabled: ${this._swPush.isEnabled}`); \r\n // مدیریت کلیک روی نوتیفیکیشنها\r\n this._swPush.notificationClicks.subscribe((e) => {\r\n if (!e.notification.tag) {\r\n return;\r\n }\r\n\r\n const actionTitle = e.action || 'show';\r\n if (!BarsaApi?.LoginFormData?.IsUserLoggedIn) {\r\n return;\r\n }\r\n this._portalService.ExecuteNotificationAction(e.notification.tag, actionTitle);\r\n });\r\n\r\n // بررسی مجوز و ثبت سرویسورکر\r\n await this.registerServiceWorker();\r\n }\r\n \r\n private async registerServiceWorker(): Promise<void> {\r\n if (!('serviceWorker' in navigator)) {\r\n return;\r\n }\r\n const reg = await navigator.serviceWorker.getRegistration();\r\n this.hasRegistration = !!reg;\r\n }\r\n private async getSw(): Promise<ServiceWorkerRegistration | undefined> {\r\n const reg = await navigator.serviceWorker.getRegistration();\r\n this.hasRegistration = !!reg;\r\n return reg;\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","// src/app/services/idb.service.ts\nimport { Injectable } from '@angular/core';\nimport { openDB, IDBPDatabase, DBSchema } from 'idb';\n\ninterface AppDB extends DBSchema {\n subscription: {\n key: string;\n value: any;\n };\n settings: {\n key: string;\n value: any;\n };\n}\n\n@Injectable({ providedIn: 'root' })\nexport class IdbService {\n private dbPromise: Promise<IDBPDatabase<AppDB>>;\n\n constructor() {\n this.dbPromise = openDB<AppDB>('my-app-db', 1, {\n upgrade(db) {\n if (!db.objectStoreNames.contains('subscription')) {\n db.createObjectStore('subscription');\n }\n if (!db.objectStoreNames.contains('settings')) {\n db.createObjectStore('settings');\n }\n }\n });\n }\n\n async get<T = any>(store: keyof AppDB, key: string): Promise<T | null> { \n const db = await this.dbPromise;\n const v = await db.get(store as any, key);\n return (v === undefined ? null : (v as T));\n }\n\n async set<T = any>(store: keyof AppDB, key: string, value: T): Promise<void> {\n const db = await this.dbPromise;\n await db.put(store as any, value, key);\n }\n\n async delete(store: keyof AppDB, key: string): Promise<void> {\n const db = await this.dbPromise;\n await db.delete(store as any, key);\n }\n}\n","import { Injectable, inject, signal, Signal } from '@angular/core';\r\nimport { SwPush } from '@angular/service-worker';\r\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\r\nimport { lastValueFrom, of, catchError, timeout } from 'rxjs';\r\nimport { IdbService } from './idb.service';\r\nimport { LocalStorageService } from './local-storage.service';\r\nimport { BarsaApi } from '../abstract-classes/barsa-api';\r\nimport { checkPermission } from '../constants';\r\n\r\nexport interface PushState {\r\n bannerVisible: boolean;\r\n isSubscribed: boolean;\r\n permission: NotificationPermission;\r\n errorMessage: string | null;\r\n}\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class PushNotificationService {\r\n private readonly BANNER_DISMISS_KEY = 'push_banner_dismissed_until';\r\n private swPush = inject(SwPush);\r\n private http = inject(HttpClient);\r\n private idb = inject(IdbService);\r\n private local = inject(LocalStorageService);\r\n\r\n // یک سیگنال واحد\r\n private _push = signal<PushState>({\r\n bannerVisible: false,\r\n isSubscribed: false,\r\n permission: checkPermission(),\r\n errorMessage: null\r\n });\r\n\r\n get push(): Signal<PushState> {\r\n return this._push.asReadonly();\r\n }\r\n public hideBanner(): void {\r\n // ۲. ذخیره زمان فعلی + ۲۴ ساعت (یا هر بازه مد نظر) در LocalStorage\r\n const tomorrow = Date.now() + 24 * 60 * 60 * 1000;\r\n this.local.setItem(this.BANNER_DISMISS_KEY, tomorrow.toString());\r\n this.update({ bannerVisible: false });\r\n }\r\n public async setup(): Promise<void> {\r\n // Load subscription status\r\n await this.initPushBanner();\r\n\r\n // Listen for subscription updates\r\n this.swPush.subscription.subscribe((sub) => {\r\n this.update({\r\n isSubscribed: !!sub,\r\n permission: checkPermission()\r\n });\r\n\r\n if (sub) {\r\n const json = (sub as any).toJSON?.() ?? sub;\r\n this.handleNewSubscription(json);\r\n }\r\n });\r\n\r\n // Listen for SW messages\r\n navigator.serviceWorker?.addEventListener('message', (event) => {\r\n if (event.data?.event === 'subscriptionChanged') {\r\n this.handleNewSubscription(event.data.subscription);\r\n }\r\n });\r\n }\r\n public async subscribe(): Promise<PushSubscription> {\r\n this.update({\r\n bannerVisible: false\r\n });\r\n try {\r\n const publicKey = await lastValueFrom(\r\n this.http.get('/api/pushnotification/publickey', { responseType: 'text' })\r\n );\r\n\r\n await this.idb.set('settings', 'vapid-public-key', publicKey);\r\n\r\n const sub = await this.swPush.requestSubscription({ serverPublicKey: publicKey });\r\n\r\n await lastValueFrom(this.http.post('/api/pushnotification/add', sub, this.httpOptions()));\r\n\r\n await this.idb.set('subscription', 'push-subscription', sub.toJSON());\r\n\r\n this.update({\r\n isSubscribed: true,\r\n permission: checkPermission(),\r\n bannerVisible: false,\r\n errorMessage: null\r\n });\r\n\r\n return sub;\r\n } catch (err: any) {\r\n this.update({ errorMessage: err.message ?? 'خطا در فعالسازی اعلان', bannerVisible: true });\r\n throw err;\r\n }\r\n }\r\n public async unsubscribe(): Promise<void> {\r\n try {\r\n const sub = await lastValueFrom(\r\n this.swPush.subscription.pipe(\r\n timeout(500), // اگر در 500ms چیزی نداد\r\n catchError(() => of(null)) // مقدار null برگردان\r\n )\r\n );\r\n if (!sub) {\r\n return;\r\n }\r\n\r\n const json = sub.toJSON();\r\n await lastValueFrom(this.http.post('/api/pushnotification/delete', json, this.httpOptions()));\r\n\r\n await sub.unsubscribe();\r\n await this.deleteSubscription();\r\n\r\n this.update({ isSubscribed: false, errorMessage: null });\r\n } catch (err: any) {\r\n this.update({ errorMessage: err.message ?? 'خطا در لغو اشتراک' });\r\n }\r\n }\r\n\r\n public async handleNewSubscription(subData: any): Promise<void> {\r\n const saved = await this.idb.get('subscription', 'push-subscription');\r\n\r\n if (!saved || saved.endpoint !== subData.endpoint) {\r\n if (saved) {\r\n await lastValueFrom(this.http.post('/api/pushnotification/delete', saved, this.httpOptions()));\r\n }\r\n\r\n await lastValueFrom(this.http.post('/api/pushnotification/add', subData, this.httpOptions()));\r\n await this.idb.set('subscription', 'push-subscription', subData);\r\n }\r\n\r\n this.update({\r\n isSubscribed: true,\r\n permission: checkPermission(),\r\n errorMessage: null\r\n });\r\n }\r\n private update(values: Partial<PushState>): void {\r\n this._push.update((prev) => ({ ...prev, ...values }));\r\n }\r\n\r\n private async loadSubscription(): Promise<null | any> {\r\n return await this.idb.get('subscription', 'push-subscription');\r\n }\r\n private async loadPublicKey(): Promise<null | any> {\r\n return await this.idb.get('settings', 'vapid-public-key');\r\n }\r\n private async initPushBanner(): Promise<void> {\r\n let saved = await this.loadSubscription();\r\n const perm = checkPermission();\r\n\r\n // ۳. بررسی امن بودن پروتکل (HTTPS یا Localhost)\r\n const isActuallyHttps = window.location.protocol === 'https:';\r\n // const isLocal = window.location.hostname === 'localhost' || window.location.hostname === '127.0.0.1';\r\n const isSecureContext = window.isSecureContext && isActuallyHttps;\r\n\r\n this.update({ permission: perm });\r\n\r\n if (saved) {\r\n if (perm === 'default' || perm === 'denied') {\r\n await this.deleteSubscription();\r\n saved = null;\r\n }\r\n }\r\n\r\n if (saved) {\r\n this.update({ isSubscribed: true, bannerVisible: false });\r\n } else {\r\n // ۴. منطق جدید برای نمایش بنر\r\n const dismissUntil = Number(this.local.getItem(this.BANNER_DISMISS_KEY) || 0);\r\n const isWaitPeriodOver = Date.now() > dismissUntil;\r\n\r\n const shouldShow =\r\n isSecureContext && // حتما HTTPS باشد\r\n perm !== 'denied' && // قبلا بلاک نکرده باشد\r\n perm !== 'granted' && // قبلا اکسپت نکرده باشد (اگر saved نال بود)\r\n isWaitPeriodOver && // زمان انتظار تمام شده باشد\r\n 'PushManager' in window; // مرورگر پشتیبانی کند\r\n\r\n this.update({\r\n isSubscribed: false,\r\n bannerVisible: shouldShow\r\n });\r\n }\r\n\r\n // بقیه کدها...\r\n this.registerServiceWorkerMessageListener();\r\n const publicKey = await this.loadPublicKey();\r\n if (publicKey) {\r\n const reg = await navigator.serviceWorker.ready;\r\n reg.active?.postMessage({ event: 'setVapidKey', publicKey });\r\n }\r\n }\r\n\r\n private registerServiceWorkerMessageListener = (): void => {\r\n // avoid adding multiple listeners (idempotent)\r\n const onMessage = (event: MessageEvent): void => {\r\n const data = event.data;\r\n if (!data) {\r\n return;\r\n }\r\n if (data.event === 'subscriptionChanged' && data.subscription) {\r\n // run async handler but don't await here\r\n (async () => {\r\n await this.handleNewSubscription(data.subscription);\r\n })().catch(console.error);\r\n }\r\n };\r\n\r\n // addEventListener is idempotent-ish but let's guard by setting property\r\n // we attach once on navigator.serviceWorker (not to window)\r\n (navigator.serviceWorker as any)?.addEventListener('message', onMessage as EventListener);\r\n };\r\n\r\n private async deleteSubscription(): Promise<void> {\r\n await this.idb.delete('subscription', 'push-subscription');\r\n }\r\n\r\n private httpOptions(): any {\r\n const token2 = this.local.getItem(BarsaApi.LoginAction.token2StorageKey) ?? '';\r\n return { headers: new HttpHeaders({ 'Content-Type': 'application/json', sth: token2 }) };\r\n }\r\n}\r\n","import { Injectable, inject } from '@angular/core';\r\nimport { PortalService } from './portal.service';\r\nimport { BarsaApi } from '../abstract-classes';\r\nimport { LocalStorageService } from './local-storage.service';\r\nimport { ToastService } from './toast.service';\r\nimport { TOAST_SERVICE } from '../injdection-tokens';\r\nimport { PushNotificationService } from '../services/pushnotification.service';\r\n\r\n@Injectable()\r\nexport class ServiceWorkerCommuncationService {\r\n private _toastService = inject<ToastService>(TOAST_SERVICE, { optional: true });\r\n private _localStorage = inject(LocalStorageService);\r\n private _portalService = inject(PortalService);\r\n public get token2(): string {\r\n return this._localStorage.getItem(BarsaApi.LoginAction.token2StorageKey) ?? '';\r\n }\r\n private _pushNotificatioService = inject(PushNotificationService);\r\n private _serviceWorker: ServiceWorker;\r\n\r\n public init(): void {\r\n this._subscribe();\r\n BarsaApi.Ul.ApplicationCtrlr.on({\r\n UserLoggedout: (_, doReturn) => this._handlePushUnSubscription(doReturn)\r\n });\r\n // register SW\r\n if (!navigator.serviceWorker) {\r\n return;\r\n }\r\n navigator.serviceWorker.ready.then((reg) => {\r\n if (reg.active) {\r\n this._serviceWorker = reg.active;\r\n navigator.serviceWorker.addEventListener('message', (event) => {\r\n if (event.data?.event === 'subscriptionChanged') {\r\n this._pushNotificatioService.handleNewSubscription(event.data.subscription);\r\n }\r\n });\r\n }\r\n });\r\n\r\n // user logout\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 }\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 setTimeout(() => {\r\n this._pushNotificatioService.setup();\r\n }, 5000);\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 console.warn(`service worker is undefined.`);\r\n return;\r\n }\r\n this._serviceWorker.postMessage(message);\r\n }\r\n // لغو push (هر زمان امکانپذیر است)\r\n private _handlePushUnSubscription(doReturn?): void {\r\n if (!navigator.serviceWorker) {\r\n doReturn();\r\n return;\r\n }\r\n this._pushNotificatioService.unsubscribe().finally(() => doReturn && doReturn());\r\n }\r\n\r\n private toast(msg: string): void {\r\n if (!this._toastService) {\r\n return console.log(msg);\r\n }\r\n this._toastService.open(msg, { duration: 5000 });\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, Type, ViewContainerRef } from '@angular/core';\r\nimport { ActivatedRoute, NavigationEnd, ParamMap, Router, RouterEvent } from '@angular/router';\r\nimport { BarsaApi } from '../abstract-classes/barsa-api';\r\nimport { PortalService } from './portal.service';\r\nimport { filter, Observable, Subject, takeUntil } from 'rxjs';\r\nimport { getDeviceIsMobile } from '../constants';\r\nimport { DIALOG_SERVICE, FORM_DIALOG_COMPONENT } from '../injdection-tokens';\r\n@Injectable()\r\nexport class RoutingService implements OnDestroy {\r\n oldActiveSystem: any | null = null;\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 parentContainer: any;\r\n oldNavigation: any;\r\n formpanelCtrlr: any;\r\n isFirstPage = true;\r\n /** Inserted by Angular inject() migration for backwards compatibility */\r\n public paramId$: Observable<ParamMap>;\r\n public routeEvents$: Observable<RouterEvent>;\r\n public masterDetails = false;\r\n public isMobile = getDeviceIsMobile();\r\n public FormPanelCtrlr: any;\r\n protected readonly _activatedRoute = inject(ActivatedRoute);\r\n protected readonly _router = inject(Router);\r\n protected readonly _portalService = inject(PortalService);\r\n protected readonly _parentRoutingService = inject(RoutingService, { skipSelf: true, optional: true });\r\n protected readonly _onDestroy$: Subject<void> = new Subject<void>();\r\n protected _formDialogComponent = inject<Type<any>>(FORM_DIALOG_COMPONENT, { optional: true });\r\n protected _dialogService = inject(DIALOG_SERVICE, { optional: true });\r\n protected _vcr = inject(ViewContainerRef);\r\n protected formpanelCtrlrId: string;\r\n constructor() {\r\n this.oldActiveSystem = BarsaApi.Bw.App.GetActiveSystem;\r\n this._activatedRoute.params.pipe(takeUntil(this._onDestroy$)).subscribe((_params) => {\r\n const state = this._router.getCurrentNavigation()?.extras.state;\r\n this.formpanelCtrlrId = state?.formPanelCtrlrId;\r\n });\r\n this.paramId$ = this._activatedRoute.paramMap.pipe(takeUntil(this._onDestroy$));\r\n this.routeEvents$ = this._router.events.pipe(\r\n takeUntil(this._onDestroy$),\r\n filter((event) => event instanceof NavigationEnd && event instanceof RouterEvent)\r\n );\r\n\r\n BarsaApi.Bw.App.GetActiveSystem = () => this;\r\n\r\n this.parentContainer = BarsaApi.Bw.FormHandler;\r\n BarsaApi.Bw.FormHandler = this;\r\n\r\n this.oldNavigation = BarsaApi.Bw.Navigate;\r\n BarsaApi.Bw.Navigate = (navigation: any[], isRelative, queryParams, data) => {\r\n this._parentRoutingService?.navigate(navigation, isRelative, queryParams, data);\r\n };\r\n }\r\n ngOnDestroy(): void {\r\n BarsaApi.Bw.App.GetActiveSystem = this.oldActiveSystem;\r\n BarsaApi.Bw.Navigate = this.oldNavigation;\r\n BarsaApi.Bw.FormHandler = this.parentContainer;\r\n }\r\n\r\n /* eslint-disable */\r\n\r\n public ForceClose = () => {\r\n this.parentContainer.ForceCloseChild();\r\n };\r\n public ShowFormPanelControl = (formpanelCtrlr) => {\r\n this.formpanelCtrlr = formpanelCtrlr;\r\n this._showFormPanel();\r\n };\r\n /* eslint-disable */\r\n public ForceCloseChild = () => {\r\n this._router.navigate(['../'], { relativeTo: this._activatedRoute });\r\n };\r\n /* eslint-disable */\r\n public RefreshFormPanelControl = (formpanelCtrlr) => {\r\n if (!this.formpanelCtrlr) {\r\n this.formpanelCtrlr = formpanelCtrlr;\r\n } else {\r\n formpanelCtrlr = this._portalService.formPanels[this.formpanelCtrlrId];\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 public navigate(navigation: any[], isRelative, queryParams, state): void {\r\n if (this.masterDetails && !this.isMobile) {\r\n this.navigateMasterDetails(navigation, isRelative, queryParams, state);\r\n return;\r\n }\r\n this._router.navigate(navigation, {\r\n relativeTo: isRelative ? this._activatedRoute : null,\r\n queryParams,\r\n preserveFragment: true,\r\n state\r\n });\r\n }\r\n public navigateMasterDetails(navigation: any[], isRelative, queryParams, data): void {\r\n if (this._portalService.deviceSize !== 's') {\r\n navigation = [{ outlets: { details: [...navigation.filter((_c, index) => index > 0)] } }];\r\n }\r\n this._router.navigate(navigation, {\r\n relativeTo: isRelative ? this._activatedRoute : null,\r\n queryParams,\r\n preserveFragment: true,\r\n state: { ...data }\r\n });\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 { Injectable } from '@angular/core';\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class PushCheckService {\r\n async checkPushReady(): Promise<true | string> {\r\n if (!this.baseSupport()) {\r\n return 'مرورگر شما Push API را پشتیبانی نمیکند';\r\n }\r\n\r\n const iosCheck = this.iosSupport();\r\n if (iosCheck !== true) {\r\n return iosCheck;\r\n }\r\n\r\n if (Notification.permission === 'denied') {\r\n return 'شما قبلاً اجازه نوتیفیکیشن را رد کردهاید. از تنظیمات مرورگر آن را فعال کنید';\r\n }\r\n\r\n const regs = await navigator.serviceWorker.getRegistrations();\r\n if (!regs.length) {\r\n return 'Service Worker ثبت نشده است';\r\n }\r\n\r\n return true;\r\n }\r\n private getIosVersion(): number | null {\r\n const ua = navigator.userAgent;\r\n if (/iP(hone|od|ad)/.test(ua)) {\r\n const v = ua.match(/OS (\\d+)_/);\r\n return v ? parseInt(v[1], 10) : null;\r\n }\r\n return null;\r\n }\r\n\r\n private isIosStandalone(): boolean {\r\n return 'standalone' in navigator && (navigator as any).standalone === true;\r\n }\r\n\r\n private isSafari(): boolean {\r\n const ua = navigator.userAgent.toLowerCase();\r\n return ua.includes('safari') && !ua.includes('chrome');\r\n }\r\n\r\n private baseSupport(): boolean {\r\n return 'Notification' in window && 'serviceWorker' in navigator && 'PushManager' in window;\r\n }\r\n\r\n private iosSupport(): string | true {\r\n const v = this.getIosVersion();\r\n\r\n if (v && v < 16) {\r\n return 'نسخه iOS کمتر از 16 است (Push پشتیبانی نمیشود)';\r\n }\r\n if (v && v < 16.4) {\r\n return 'iOS باید حداقل نسخه 16.4 باشد تا Push فعال شود';\r\n }\r\n\r\n if (v && !this.isSafari()) {\r\n return 'Push فقط در Safari iOS پشتیبانی میشود';\r\n }\r\n\r\n if (v && !this.isIosStandalone()) {\r\n return 'برای فعال شدن Push، برنامه را با Add to Home Screen نصب کنید';\r\n }\r\n\r\n return true;\r\n }\r\n}\r\n","import { Injectable, inject } from '@angular/core';\r\nimport { BehaviorSubject, Observable } from 'rxjs';\r\n\r\nimport { UlvMainService } from './ulvmain.service';\r\n@Injectable()\r\nexport class CardViewService {\r\n private _maxHeaderTitleHeight$ = new BehaviorSubject<number>(0);\r\n private _ulvMainService = inject(UlvMainService);\r\n get maxHeaderTitleHeight$(): Observable<number> {\r\n return this._maxHeaderTitleHeight$.asObservable();\r\n }\r\n public setHeaderHeight(height: number): void {\r\n const currHeight = this._maxHeaderTitleHeight$.getValue();\r\n if (currHeight < height) {\r\n this._maxHeaderTitleHeight$.next(height);\r\n }\r\n }\r\n}\r\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 @HostBinding('class.rtl') _rlt = true;\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 this._portalService.rtl$.pipe(takeUntil(this._onDestroy$)).subscribe((c) => (this._rlt = c));\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 {\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 { BehaviorSubject, 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 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 { 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 selectedTabPageName$: Observable<string>;\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 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 private _selectedTabPageName$ = new BehaviorSubject('');\r\n\r\n constructor() {\r\n super();\r\n this.selectedTabPageName$ = this._selectedTabPageName$.asObservable();\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 this._selectedTabPageName$.next(x.SelectedTabPageName);\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\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\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 UlvHeightSizeType\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 isReportPage: boolean;\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 contentHeight$: Observable<number>;\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 ulvHeightSizeType$: Observable<UlvHeightSizeType>;\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\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._ulvMainService.gridSetting$;\r\n this.contentHeight$ = this._ulvMainService.contentHeight$;\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 this.ulvHeightSizeType$ = this._ulvMainService.ulvHeightSizeType$;\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 this._ulvMainService.setAllowGridColumnSort(this.context.ViewSetting?.AllowGridColumnSort);\r\n this._ulvMainService.setAccess(this.context.Setting.Extra?.DefaultCommandsAccess);\r\n this._ulvMainService.gridSettingChangedByUser$.pipe(takeUntil(this._onDestroy$)).subscribe((c) => {\r\n const { setting, isSort, raiseEvent } = c;\r\n this.updateGridSetting(setting, isSort, raiseEvent);\r\n });\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._ulvMainService.setGridSetting(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._ulvMainService.gridSetting;\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._ulvMainService.setGridSetting(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._ulvMainService.setGridSetting(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('rowDeselectAll', this.context);\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 {\r\n Input,\r\n Component,\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n SimpleChanges,\r\n inject,\r\n HostBinding\r\n} from '@angular/core';\r\nimport { BaseComponent } from './base.component';\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 @HostBinding('attr.id') id: string;\r\n\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 protected formPanelService = inject(FormPanelService);\r\n protected _cdr = inject(ChangeDetectorRef);\r\n\r\n constructor() {\r\n super();\r\n\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 ngOnInit(): void {\r\n super.ngOnInit();\r\n this.id = this.config.id;\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, Renderer2 } from '@angular/core';\r\nimport { filter, Observable, takeUntil } 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 visible = true;\r\n enable: boolean;\r\n readonly: boolean;\r\n protected _renderer2 = inject(Renderer2);\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 this.formPanelService.groupLayout$\r\n .pipe(\r\n takeUntil(this._onDestroy$),\r\n filter((c) => c.ControlId === this.config.ControlId)\r\n )\r\n .subscribe((_groupItem: LayoutSetting) => {\r\n this._setBRule();\r\n });\r\n }\r\n ngOnInit(): void {\r\n super.ngOnInit();\r\n this._setBRule();\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 _setBRule(): void {\r\n this.visible = this.config.Visible === false ? false : true;\r\n this.readonly = this.config.Readonly === false ? false : true;\r\n this.enable = this.config.Enable === false ? false : true;\r\n if (this.enable) {\r\n this._renderer2.removeClass(this._el.nativeElement, 'control-disabled');\r\n } else {\r\n this._renderer2.addClass(this._el.nativeElement, 'control-disabled');\r\n } \r\n }\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 { takeUntil } from 'rxjs';\r\n\r\nimport { DIALOG_SERVICE, FORM_DIALOG_COMPONENT } from './injdection-tokens';\r\nimport { getDeviceIsMobile, getUniqueId } from './constants';\r\nimport { BarsaDialogService } from './services/barsa-dialog.service';\r\nimport { ContainerService } from './services/container.service';\r\nimport { PortalService } from './services/portal.service';\r\nimport { BaseComponent } from './abstract-classes/base.component';\r\nimport { AbbrevationDeviceSize } from './abstract-classes/models';\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 @ViewChild('containerBottomRef', { static: true, read: ViewContainerRef })\r\n containerBottomRef: ViewContainerRef;\r\n oldContainerContainer: ContainerComponent;\r\n detachParent: any;\r\n deviceSize: AbbrevationDeviceSize;\r\n isMobile = getDeviceIsMobile();\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 _parentContainerService = inject(ContainerService, { self: false, 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 this._portalService.deviceSize$.pipe(takeUntil(this._onDestroy$)).subscribe((c) => (this.deviceSize = c));\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 super.ngOnInit();\r\n this._containerService?.setViewContainerRef(this.containerRef);\r\n }\r\n ngOnDestroy(): void { \r\n super.ngOnDestroy();\r\n this._barsaDialogService.containerComponent = this.oldContainerContainer;\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, inject } 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\nimport { RoutingService } from '../services/routing.service';\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 componentsAddedToPage = false;\r\n protected _parentRoutingService = inject(RoutingService, { skipSelf: true, optional: true });\r\n protected _routingService = inject(RoutingService, { self: true, optional: true });\r\n ngAfterViewInit(): void {\r\n super.ngAfterViewInit();\r\n this._containerService?.state === 'attach' && this.addModulesToDom();\r\n this._containerService?.addModules.pipe(takeUntil(this._onDestroy$)).subscribe(() => 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 if (this.componentsAddedToPage) {\r\n return;\r\n }\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 let containerRef = this.containerRef;\r\n if (module.PlaceholderName && this[module.PlaceholderName]) {\r\n containerRef = this[module.PlaceholderName];\r\n } // توسط ماژول مشخص شده کامپوننت در کدام کانتینر پیج قرار گیرد\r\n if (containerRef) {\r\n 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(() => {\r\n this.componentsAddedToPage = true;\r\n this._cdr.detectChanges();\r\n });\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 const x = BarsaApi.Common.Util.TryGetValue(pageData, 'ModuleList.MoDataList', []);\r\n const x2 = BarsaApi.Common.Util.TryGetValue(pageData, 'ModuleList2.MoDataList', []);\r\n return x2.length ? x2 : x;\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 indexOfDot = this.inputElement.value.indexOf('.');\r\n if (indexOfDot > -1) {\r\n this._setCursorPosition(indexOfDot + 1);\r\n e.preventDefault();\r\n e.stopPropagation();\r\n return;\r\n }\r\n } else {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n return;\r\n }\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()).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): string {\r\n if (typeof val === 'undefined') {\r\n return '';\r\n }\r\n let decimalPersicion = 0;\r\n const indexOfDot = val.indexOf('.');\r\n if (indexOfDot > 0 && this.decimalPrecision) {\r\n decimalPersicion = val.length - indexOfDot - 1;\r\n decimalPersicion = decimalPersicion > this.decimalPrecision ? this.decimalPrecision : decimalPersicion;\r\n }\r\n\r\n let newVal = this._numeralPipe.transform(val, decimalPersicion, this.Setting.ShowThousandSeperator).toString();\r\n if (this.decimalPrecision && decimalPersicion === 0 && val.endsWith('.') && !newVal.endsWith('.')) {\r\n newVal += '.';\r\n }\r\n return newVal;\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.toString());\r\n e.target.value = formated;\r\n }\r\n protected _setTargetToFormatedValue(target: any, formated: string, isMinus): number {\r\n if (!target) {\r\n return 0;\r\n }\r\n const oldVal = target.value;\r\n if (target.value !== formated) {\r\n target.value = this._getMinusValue(isMinus, formated);\r\n }\r\n return formated.length > oldVal.length ? formated.length - oldVal.length : oldVal.length - target.value.length;\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 && indexofDot > 0) {\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 if (decimalPersicion === 0) {\r\n indexofDot = text.length;\r\n }\r\n if (this.hasMask) {\r\n let cursorPosition = this.inputElement?.selectionStart; \r\n if (indexofDot < 0 && decimalPersicion > 0) {\r\n formated = this._getFormated(text);\r\n newVal = this._numeralPipe.getValue(formated);\r\n }\r\n\r\n if (this.inputElement && this.inputElement.value.length > formated.length) {\r\n this.inputElement.value = this.inputElement.value.substring(0, formated.length);\r\n }\r\n const diff1 = this._setTargetToFormatedValue(this.inputElement, formated, isMinus);\r\n const diff2 = this._setTargetToFormatedValue(e.traget, formated, isMinus);\r\n cursorPosition && (cursorPosition += diff1);\r\n cursorPosition && (cursorPosition += diff2);\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\nexport abstract class MoForReportModelBase<T extends MetaobjectDataModel> {\r\n $Type?: string;\r\n TypeDefId: string;\r\n ReportId: string;\r\n Icon?: string;\r\n MoDataList: Array<T>;\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}\r\nexport class MoForReportModel extends MoForReportModelBase<MetaobjectDataModel> {\r\n constructor() {\r\n super();\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 const DefaultCommandsAccessValue: DefaultCommandsAccess = {\r\n Add: false,\r\n AddToList: false,\r\n Delete: false,\r\n Edit: false,\r\n Export: false,\r\n Print: false,\r\n Refresh: false,\r\n RemoveFromList: false,\r\n View: false\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\nexport const DefaultGridSetting = {\r\n ColSettingList: [],\r\n AutoSizeColumns: false,\r\n SortSettingList: [],\r\n Hidden: true\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 ChildPageList2: PageListReportModel;\r\n Title: string;\r\n IconName: string;\r\n IconFontName: any;\r\n RoutePath: 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 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 IsReportPage?: 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 WorkflowList: WorkflowItem[];\r\n UseTreeNavigator: boolean;\r\n}\r\nexport type WorkflowItem = {\r\n Id: string;\r\n Caption: string;\r\n Name: string;\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 CommandId: string;\r\n DynamicCommand?: MetaobjectDataModel;\r\n IconSize: number;\r\n Alignment: string;\r\n Icon: string;\r\n Menu: Command[];\r\n IsGlobal: boolean;\r\n Order?: number;\r\n}\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 NavGroupItem = {\r\n icon: string;\r\n id: string;\r\n isDynCommand: boolean;\r\n leaf: boolean;\r\n text: string;\r\n data: NavGroupItemData;\r\n routeId: string;\r\n};\r\nexport type NavGroupItemData = {\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 DynamicCommand: MetaobjectDataModel;\r\n ReportCountExtension: boolean;\r\n ReportId: string;\r\n fontIcon: string;\r\n fontName: any;\r\n ShowReportInNavigator: boolean;\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 CustomNavGroupUi = CommonObservable & {\r\n cls: string;\r\n Data: NavGroupItemData;\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 root: { children: NavGroupItem[] };\r\n ulvUi: any;\r\n _onBeforeClick: (data) => void;\r\n};\r\n\r\nexport type CustomNavPageUi = CommonObservable & {\r\n Data: NavGroupItemData;\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\r\nexport interface AppTileGroup extends MetaobjectDataModel {\r\n Title: string;\r\n Visible: boolean;\r\n Visible$Caption: string;\r\n Locked: boolean;\r\n Locked$Caption: string;\r\n OrderNumber: string;\r\n OrderNumber$Caption: string;\r\n Predefined: boolean;\r\n Predefined$Caption: string;\r\n TileGroupType: string;\r\n TileGroupType$Caption: string;\r\n CssStyles: string;\r\n ItemCount2XL: string;\r\n ItemCount2XL$Caption: string;\r\n ItemCountXL: string;\r\n ItemCountXL$Caption: string;\r\n ItemCountL: string;\r\n ItemCountL$Caption: string;\r\n ItemCountMD: string;\r\n ItemCountMD$Caption: string;\r\n ItemCountSM: string;\r\n ItemCountSM$Caption: string;\r\n HideHeader: boolean;\r\n HideHeader$Caption: string;\r\n BackgroundColor: string;\r\n IconFont: string;\r\n IconFontName: any;\r\n Icon: string;\r\n IconImage: FilePictureInfoModel;\r\n RoutePath: string;\r\n $TypeDefCaption: string;\r\n $HasChildren: boolean;\r\n $Children: AppTileGroup[];\r\n $TileSettingChanged: boolean;\r\n $Disabledpin: boolean;\r\n navigatorTitle: string;\r\n navigatorVisible: boolean;\r\n navigatorTiles: MetaobjectDataModel[];\r\n navigatorActionLinks: any[];\r\n $TilesLoaded: boolean;\r\n AppTiles: MoForReportModelBase<AppTile>;\r\n}\r\n\r\nexport interface AppTile extends MetaobjectDataModel {\r\n Visible: boolean;\r\n Visible$Caption: string;\r\n Locked: boolean;\r\n Locked$Caption: string;\r\n OrderNumber: string;\r\n OrderNumber$Caption: string;\r\n IsActionLink: boolean;\r\n IsActionLink$Caption: string;\r\n AppTileGroup: MetaobjectDataModel;\r\n A_App_Component: EjrayOlgo;\r\n A_App_DynamicCommand: MetaobjectDataModel;\r\n A_App_AppKey: string;\r\n Predefined: boolean;\r\n Predefined$Caption: string;\r\n App: MetaobjectDataModel;\r\n Component: MetaobjectDataModel;\r\n DynamicCommand: MetaobjectDataModel;\r\n TileTitle: any;\r\n Subtitle: any;\r\n}\r\nexport type ToolbarButtonReportViewType = {\r\n id: string;\r\n text: string;\r\n icon: string;\r\n hideText?: boolean;\r\n handler: () => void;\r\n isEnable: boolean;\r\n};\r\nexport enum UlvHeightSizeType {\r\n Default = 0,\r\n FillPage = 1,\r\n DesignSize = 2,\r\n CustomSize = 3\r\n}\r\nexport type PictureGroupItem = { Id: string; Name: string };\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(filesCount: number, files: File[]): boolean {\n return this._validateSize(filesCount, files);\n }\n\n private _validateSize(filesCount: number, 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 (filesCount + files.length > this.maxFileCount + 1 && this.maxFileCount > 0) {\n errorMsg = `<span dir=ltr>${maxFilesExceeded} </span>` + `(${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_ShowHtml(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 UlvHeightSizeType\r\n} from './models';\r\nimport { TitleCasePipe } from '@angular/common';\r\nimport { debounceTime, fromEvent, skip, Subject, take, takeUntil } from 'rxjs';\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 @HostBinding('style.visibility') _visibility: string | null = 'hidden';\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() isReportPage: boolean;\r\n @Input() ulvHeightSizeType: UlvHeightSizeType;\r\n @Input() contentHeight: number;\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 protected _firstVisible = false;\r\n protected _onVisible$ = new Subject<void>();\r\n protected $resize = new Subject<void>();\r\n protected _ro: ResizeObserver;\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 this._handleResize();\r\n\r\n this.$resize\r\n .asObservable()\r\n .pipe(takeUntil(this._onDestroy$), take(1), debounceTime(50))\r\n .subscribe(() => this.onVisible());\r\n\r\n this.$resize\r\n .asObservable()\r\n .pipe(takeUntil(this._onDestroy$), skip(1), debounceTime(50))\r\n .subscribe(() => this.onResize());\r\n }\r\n ngOnDestroy(): void {\r\n if (this._ro) {\r\n this._ro.disconnect();\r\n }\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\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 onVisible(): void {\r\n this._visibility = 'visible';\r\n this._renderer2.setStyle(this._el.nativeElement, 'visibility', 'visible');\r\n this._onVisible$.next();\r\n }\r\n\r\n protected onResize(): void {}\r\n protected _handleResize(): void {\r\n fromEvent(window, 'resize')\r\n .pipe(takeUntil(this._onDestroy$))\r\n .subscribe(() => {\r\n this.$resize.next();\r\n });\r\n // اگر container تغییر اندازه پیدا کرد (مثلاً parent تغییر کنه)\r\n try {\r\n this._ro = new ResizeObserver(() => {\r\n requestAnimationFrame(() => {\r\n this.$resize.next();\r\n });\r\n });\r\n if (this._el?.nativeElement) {\r\n this._ro.observe(this._el.nativeElement);\r\n }\r\n } catch {\r\n // مرورگرهای خیلی قدیمی ممکنه ResizeObserver نداشته باشند\r\n // در آنصورت rely به window resize میکنیم\r\n // no-op\r\n }\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(0,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 {\r\n Input,\r\n Component,\r\n OnInit,\r\n AfterViewInit,\r\n OnChanges,\r\n OnDestroy,\r\n ChangeDetectionStrategy,\r\n inject\r\n} from '@angular/core';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { ContainerComponent } from '../container.component';\r\nimport { BarsaApi } from './barsa-api';\r\nimport { ContainerService } from '../services/container.service';\r\nimport { RoutingService } from '../services/routing.service';\r\nimport { fixUnclosedParentheses } from '../constants';\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 protected _routingService = inject(RoutingService, { self: true, optional: true });\r\n protected _containerServiceParent = inject(ContainerService, { skipSelf: true, optional: true });\r\n ngOnInit(): void {\r\n super.ngOnInit();\r\n this._routingService && (this._routingService.isFirstPage = false);\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 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 }\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 let parentUrl = this._router.url.split('/form/')[0];\r\n parentUrl = fixUnclosedParentheses(parentUrl);\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 }\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\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { ContainerService } from '../services/container.service';\r\nimport { RoutingService } from '../services/routing.service';\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 protected portalService = inject(PortalService);\r\n protected injector = inject(Injector);\r\n protected _activatedRoute = inject(ActivatedRoute);\r\n protected _router = inject(Router);\r\n protected _containerService = inject(ContainerService, { self: false, optional: true });\r\n protected _routingService = inject(RoutingService, { skipSelf: true, optional: true });\r\n\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 urlparams = this._activatedRoute.snapshot.params;\r\n urlparams && urlparams.moid && (frmParams.MoId = urlparams.moid);\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\r\n if (this._routingService) {\r\n this._routingService.FormPanelCtrlr = formpanelCtrlr;\r\n formpanelCtrlr.Page = this._routingService;\r\n }\r\n\r\n const nav = this._router.getCurrentNavigation();\r\n formpanelCtrlr.FormRequestParams.state = nav?.extras.state;\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\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, TemplateRef, ViewChild } from '@angular/core';\r\nimport { FormPageBaseComponent } from '../abstract-classes/form-page-base';\r\nimport { FormService } from '../services/form.service';\r\nimport { ContainerService } from '../services/container.service';\r\nimport { RoutingService } from '../services/routing.service';\r\n\r\n@Component({\r\n selector: 'bnrc-form-page',\r\n template: `\r\n <ng-template #placeHolderTemplate>\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 </ng-template>\r\n <ng-container #containerRef> </ng-container>\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, RoutingService, ContainerService],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n standalone: false\r\n})\r\nexport class FormPageComponent extends FormPageBaseComponent {\r\n @ViewChild('placeHolderTemplate', { static: true }) _placeHolderTemplate: TemplateRef<any>;\r\n\r\n @Input() formPanelCtrlr: any;\r\n @HostBinding('class.section') sectionClass = true;\r\n @HostBinding('class.absolute-page') absolutePageClass = false;\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.insert(this._placeHolderTemplate.createEmbeddedView(this, this._injector));\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 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\nimport { RoutingService } from '../services/routing.service';\r\n@Component({\r\n selector: 'bnrc-empty-page',\r\n template: `<ng-container #containerRef></ng-container>\r\n <router-outlet></router-outlet>\r\n <router-outlet name=\"dialog\"></router-outlet>`,\r\n providers: [RoutingService,ContainerService],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n styles: [\r\n `\r\n :host {\r\n display: block;\r\n }\r\n `\r\n ],\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 const isRelativePage = this._activatedRoute.snapshot.data?.pageData?.Component?.Settings?.IsRelativePage;\r\n if (isRelativePage || isModal) {\r\n if (this._parentContainerService) {\r\n this._parentContainerService.detachParent = false;\r\n } else {\r\n this._log.error(nullOrUndefinedString('EmptyPageComponent=> _containerService'));\r\n }\r\n }\r\n if (isModal) {\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 (isRelativePage && !isModal) {\r\n this._position = 'initial';\r\n }\r\n }\r\n}\r\n","import { Component, Input, Renderer2, inject, HostBinding } from '@angular/core';\r\nimport { fromEvent, switchMap, takeUntil, tap } from 'rxjs';\r\nimport { PortalService } from '../services/portal.service';\r\nimport { BaseComponent } from '../abstract-classes/base.component';\r\n\r\n@Component({\r\n selector: 'bnrc-splitter',\r\n standalone: false,\r\n template: `<div class=\"splitter-container\">\r\n <div class=\"splitter-line\"></div>\r\n <div class=\"grip-handle\">\r\n <svg viewBox=\"0 0 24 24\" fill=\"currentColor\">\r\n <circle cx=\"9\" cy=\"8\" r=\"1.5\" />\r\n <circle cx=\"15\" cy=\"8\" r=\"1.5\" />\r\n <circle cx=\"9\" cy=\"12\" r=\"1.5\" />\r\n <circle cx=\"15\" cy=\"12\" r=\"1.5\" />\r\n <circle cx=\"9\" cy=\"16\" r=\"1.5\" />\r\n <circle cx=\"15\" cy=\"16\" r=\"1.5\" />\r\n </svg>\r\n </div>\r\n </div>`,\r\n styles: [\r\n `\r\n :host {\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n width: 12px; /* فضای کلیک کمی بزرگتر برای راحتی کاربر */\r\n cursor: col-resize;\r\n z-index: 50;\r\n user-select: none;\r\n position: relative;\r\n }\r\n\r\n .splitter-container {\r\n height: 100%;\r\n width: 100%;\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n position: relative;\r\n }\r\n\r\n /* افکت محو شدن بالا و پایین خط */\r\n .splitter-line {\r\n width: 1px;\r\n height: 90%;\r\n background: linear-gradient(\r\n to bottom,\r\n transparent 0%,\r\n rgba(203, 213, 225, 1) 15%,\r\n rgba(203, 213, 225, 1) 85%,\r\n transparent 100%\r\n );\r\n transition: all 0.2s;\r\n }\r\n\r\n /* دکمه مرکزی */\r\n .grip-handle {\r\n position: absolute;\r\n width: 24px;\r\n height: 32px;\r\n background: white;\r\n border: 1px solid #e2e8f0;\r\n border-radius: 6px;\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n box-shadow: 0 2px 4px rgba(0, 0, 0, 0.05);\r\n transition: all 0.2s;\r\n color: #94a3b8;\r\n }\r\n\r\n .grip-handle svg {\r\n width: 14px;\r\n height: 14px;\r\n }\r\n\r\n /* تغییر ظاهر هنگام هاور یا در حال کشیدن */\r\n :host:hover .splitter-line,\r\n .is-resizing .splitter-line {\r\n background: linear-gradient(to bottom, transparent 0%, #3b82f6 15%, #3b82f6 85%, transparent 100%);\r\n width: 2px;\r\n }\r\n\r\n :host:hover .grip-handle,\r\n .is-resizing .grip-handle {\r\n border-color: #3b82f6;\r\n color: #3b82f6;\r\n box-shadow: 0 4px 6px -1px rgba(59, 130, 246, 0.2);\r\n transform: scale(1.05);\r\n }\r\n `\r\n ]\r\n})\r\nexport class SplitterComponent extends BaseComponent {\r\n @HostBinding('class.empty-space') emptyClass = true;\r\n @HostBinding('class.big') isBig = false;\r\n @HostBinding('style.flex') flex;\r\n @HostBinding('style.max-width.px') elMaxWidth;\r\n @HostBinding('style.height.px') elHeight;\r\n\r\n @Input() minWidth;\r\n @Input() maxWidth;\r\n @Input() config;\r\n height;\r\n private _renderer = inject(Renderer2);\r\n private _portalService = inject(PortalService);\r\n\r\n ngOnInit(): void {\r\n super.ngOnInit();\r\n if (this.config) {\r\n const { Bounds, MaxSize } = this.config;\r\n this.elHeight = Bounds.height;\r\n if (this.elHeight > 30) {\r\n this.isBig = true;\r\n }\r\n\r\n this.flex = Bounds.width;\r\n if (MaxSize.width > 0) {\r\n this.elMaxWidth = MaxSize.width;\r\n }\r\n }\r\n const mousedown$ = fromEvent<MouseEvent>(this.el.nativeElement, 'mousedown');\r\n const mousemove$ = fromEvent<MouseEvent>(document, 'mousemove');\r\n const mouseup$ = fromEvent<MouseEvent>(document, 'mouseup');\r\n\r\n mousedown$\r\n .pipe(\r\n tap((event) => {\r\n event.preventDefault();\r\n let nextElementSibling: HTMLElement = this.el.nativeElement.nextElementSibling;\r\n while (\r\n nextElementSibling &&\r\n nextElementSibling.tagName.toLocaleLowerCase() === 'bnrc-dynamic-layout'\r\n ) {\r\n nextElementSibling &&\r\n nextElementSibling.nextElementSibling &&\r\n (nextElementSibling = nextElementSibling.nextElementSibling as HTMLElement);\r\n }\r\n this.toggleResizingState(true, nextElementSibling);\r\n }),\r\n switchMap(() => {\r\n // تشخیص جهت در لحظه شروع درگ\r\n const isRtl = getComputedStyle(this.el.nativeElement).direction === 'rtl';\r\n let previousElementSibling: HTMLElement = this.el.nativeElement.previousElementSibling;\r\n while (\r\n previousElementSibling &&\r\n previousElementSibling.tagName.toLocaleLowerCase() === 'bnrc-dynamic-layout'\r\n ) {\r\n previousElementSibling &&\r\n previousElementSibling.previousElementSibling &&\r\n (previousElementSibling = previousElementSibling.previousElementSibling as HTMLElement);\r\n }\r\n let nextElementSibling: HTMLElement = this.el.nativeElement.nextElementSibling;\r\n while (\r\n nextElementSibling &&\r\n nextElementSibling.tagName.toLocaleLowerCase() === 'bnrc-dynamic-layout'\r\n ) {\r\n nextElementSibling &&\r\n nextElementSibling.nextElementSibling &&\r\n (nextElementSibling = nextElementSibling.nextElementSibling as HTMLElement);\r\n }\r\n\r\n const initialRect = previousElementSibling?.getBoundingClientRect();\r\n\r\n return mousemove$.pipe(\r\n tap((event) => {\r\n if (previousElementSibling && initialRect) {\r\n this.calculateAndSetWidth(\r\n event,\r\n previousElementSibling,\r\n nextElementSibling,\r\n initialRect,\r\n isRtl\r\n );\r\n }\r\n }),\r\n takeUntil(mouseup$.pipe(tap(() => this.toggleResizingState(false, nextElementSibling))))\r\n );\r\n }),\r\n takeUntil(this._onDestroy$)\r\n )\r\n .subscribe();\r\n }\r\n\r\n private calculateAndSetWidth(\r\n event: MouseEvent,\r\n sibling: HTMLElement,\r\n nextSibling: HTMLElement,\r\n rect: DOMRect,\r\n isRtl: boolean\r\n ): void {\r\n let newWidth: number;\r\n\r\n if (isRtl) {\r\n // در RTL: فاصله لبه راستِ المنت تا موقعیت ماوس\r\n newWidth = rect.right - event.clientX;\r\n } else {\r\n // در LTR: فاصله موقعیت ماوس تا لبه چپِ المنت\r\n newWidth = event.clientX - rect.left;\r\n }\r\n\r\n if ((!this.minWidth || newWidth >= this.minWidth) && (!this.maxWidth || newWidth <= this.maxWidth)) {\r\n this._renderer.setStyle(nextSibling, 'overflow', `hidden`);\r\n this._renderer.setStyle(sibling, 'width', `${newWidth}px`);\r\n this._renderer.setStyle(sibling, 'flex', 'none');\r\n }\r\n }\r\n\r\n private toggleResizingState(isResizing: boolean, nextSibling: HTMLElement): void {\r\n const action = isResizing ? 'addClass' : 'removeClass';\r\n this._renderer[action](document.body, 'resizing-active');\r\n this._renderer[action](this.el.nativeElement, 'is-resizing');\r\n if (!isResizing) {\r\n this._renderer.removeClass(nextSibling, 'tw-overflow-hidden');\r\n this._portalService.windowResize();\r\n } else {\r\n this._renderer.addClass(nextSibling, 'tw-overflow-hidden');\r\n }\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\nimport { RoutingService } from '../services/routing.service';\r\n@Component({\r\n selector: 'bnrc-master-details-page',\r\n template: `\r\n <div class=\"tw-flex tw-h-full tw-w-full tw-flex-col md:tw-flex-row\">\r\n <!-- لیست -->\r\n <div class=\"tw-w-full md:tw-w-96 master\">\r\n <ng-container #containerRef></ng-container>\r\n </div>\r\n <bnrc-splitter ></bnrc-splitter>\r\n <!-- جزئیات -->\r\n <div class=\"tw-w-full md:tw-flex-1 tw-overflow-hidden details tw-min-w-0\">\r\n <router-outlet name=\"details\"></router-outlet>\r\n </div>\r\n </div>\r\n <router-outlet></router-outlet>\r\n <router-outlet name=\"dialog\"></router-outlet>\r\n `,\r\n providers: [RoutingService, ContainerService],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n styles: [\r\n `\r\n :host {\r\n display: block;\r\n }\r\n `\r\n ],\r\n standalone: false\r\n})\r\nexport class MasterDetailsPageComponent extends PageWithFormHandlerBaseComponent implements OnInit {\r\n @HostBinding('style.position') _position: string | null = null;\r\n @HostBinding('class.section') sectionClass = true; \r\n @HostBinding('class.modal') ismodal = false; \r\n settings: UiMasterDetailsPageSettings;\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._parentContainerService) {\r\n this._parentContainerService.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 this._routingService && (this._routingService.masterDetails = true);\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\ninterface UiMasterDetailsPageSettings extends MetaobjectDataModel {\r\n DesktopDetailsRoute: MetaobjectDataModel;\r\n MobileDetailsRoute: MetaobjectDataModel;\r\n}\r\n","import { ChangeDetectionStrategy, Component } 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\r\n ><router-outlet name=\"dialog\"></router-outlet>\r\n <ng-container #containerBottomRef></ng-container> `,\r\n styles: `:host{min-height:100svh}`,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n providers: [RoutingService],\r\n standalone: false\r\n})\r\nexport class PortalPageComponent extends PageWithFormHandlerBaseComponent {\r\n ngOnInit(): void {\r\n super.ngOnInit();\r\n this.addModulesToDom();\r\n }\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 @Input() setMaxHeight: 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.setMaxHeight) {\r\n this._renderer2.setStyle(dom, 'height', `auto`);\r\n }\r\n if (this.height) {\r\n let prop = 'height';\r\n this.setMinHeight && (prop = 'min-height');\r\n this.setMaxHeight && (prop = 'max-height');\r\n this._renderer2.setStyle(dom,prop, `${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() FnHandleEvents: (c) => void;\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 if (typeof this.FnHandleEvents === 'function') {\r\n this.FnHandleEvents(this._component.instance);\r\n }\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 protected setOutput(): void {}\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 @Input() maxHeightHeader:number;\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, Input, TemplateRef } from '@angular/core';\r\nimport { DynamicItemComponent } from './dynamic-item.component';\r\n\r\n@Component({\r\n selector: 'bnrc-card-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 CardDynamicItemComponent extends DynamicItemComponent {\r\n @Input() columnTemplate: TemplateRef<any>;\r\n @Input() extendedHeaderTemplate: TemplateRef<any>;\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() maxHeightHeader:number;\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() maxHeightHeader: number;\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 onLongPress(): void {\r\n if (this.inlineEditMode && this.allowInlineEdit) {\r\n return;\r\n }\r\n if (!this._ulvMainService?.openOneClick) {\r\n this._ulvMainService?.setIsMultiSelect(true);\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 this._handleBruleShowMessageAction({\r\n MessageExpression: err.Text,\r\n MessageType: 2,\r\n MessageExpressionHtml: err.Text,\r\n EscapeCharacters: true\r\n });\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 {\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n Component,\r\n ElementRef,\r\n EventEmitter,\r\n Input,\r\n Output,\r\n Renderer2,\r\n SimpleChanges,\r\n inject\r\n} 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\nimport { UlvMainService } from '../services/ulvmain.service';\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 @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() maxHeightHeader: number;\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 protected _ulvMainService = inject(UlvMainService);\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 protected detectChanges(): void {\r\n this._cdr.detectChanges();\r\n }\r\n}\r\n","import { ChangeDetectionStrategy, Component, Input, TemplateRef } from '@angular/core';\r\nimport { UiReportViewBaseSetting } from '../abstract-classes';\r\n\r\nimport { BaseItemContentPropsComponent } from './base-item-content-props';\r\n\r\n@Component({\r\n selector: 'bnrc-card-base-item-content-props',\r\n template: ``,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n standalone: false\r\n})\r\nexport class CardBaseItemContentPropsComponent<T extends UiReportViewBaseSetting> extends BaseItemContentPropsComponent<T> {\r\n @Input() columnTemplate: TemplateRef<any>;\r\n @Input() extendedHeaderTemplate: TemplateRef<any>;\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, SimpleChanges } 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 ngOnChanges(changes: SimpleChanges): void {\r\n super.ngOnChanges(changes);\r\n const { appTileGroup } = changes;\r\n if (appTileGroup && !appTileGroup.firstChange) {\r\n this._renderComponentInstance();\r\n }\r\n }\r\n}\r\n","import { ChangeDetectionStrategy, Component, Input, SimpleChanges } from '@angular/core';\r\nimport {\r\n AbbrevationDeviceSize,\r\n DefaultCommandsAccess,\r\n DeviceSize,\r\n UiReportViewBase,\r\n ToolbarButtonReportViewType\r\n} from '../abstract-classes';\r\n\r\nimport { BaseDynamicComponent } from './base-dynamic.component';\r\nimport { ContentDensity } from '@fundamental-ngx/core';\r\n\r\n@Component({\r\n selector: 'bnrc-dynamic-ulv-toolbar-component',\r\n template: `<ng-container #componentContainer></ng-container>`,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n standalone: false\r\n})\r\nexport class DynamicUlvToolbarComponent extends BaseDynamicComponent {\r\n @Input() allowGridColumnSort: boolean;\r\n @Input() useLayoutItemTextForControl: boolean;\r\n @Input() enableSearch: boolean;\r\n @Input() hideTitle = false;\r\n @Input() title: string;\r\n @Input() icon: string;\r\n @Input() deviceName: DeviceSize;\r\n @Input() deviceSize: AbbrevationDeviceSize;\r\n @Input() access: DefaultCommandsAccess;\r\n @Input() hideToolbar: boolean;\r\n @Input() toolbarButtons: any[];\r\n @Input() contentDensity: ContentDensity;\r\n @Input() inlineEditMode: boolean;\r\n @Input() allowInlineEdit: boolean;\r\n @Input() gridSetting: any;\r\n @Input() viewCollection: any[];\r\n @Input() toolbarButtonsReportView: ToolbarButtonReportViewType[];\r\n @Input() reportView: UiReportViewBase;\r\n @Input() inDialog: boolean;\r\n @Input() isMultiSelect: boolean;\r\n @Input() cls: any;\r\n @Input() hasSelected: boolean;\r\n @Input() config: any;\r\n @Input() hidden: boolean;\r\n @Input() buttons: any[];\r\n @Input() moDataListCount: number;\r\n ngOnChanges(changes: SimpleChanges): void {\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 this._component.instance.changeDetect && this._component.instance.changeDetect();\r\n }\r\n }\r\n}\r\n","import { ChangeDetectionStrategy, Component, Input, SimpleChanges } from '@angular/core';\r\nimport { PagingSetting } from '../abstract-classes';\r\n\r\nimport { BaseDynamicComponent } from './base-dynamic.component';\r\n\r\n@Component({\r\n selector: 'bnrc-dynamic-ulv-paging-component',\r\n template: `<ng-container #componentContainer></ng-container>`,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n standalone: false\r\n})\r\nexport class DynamicUlvPagingComponent extends BaseDynamicComponent {\r\n @Input() pagingSetting: PagingSetting;\r\n @Input() context: any;\r\n ngOnChanges(changes: SimpleChanges): void {\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 this._component.instance.changeDetect && this._component.instance.changeDetect();\r\n }\r\n }\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 { ChangeDetectionStrategy, Component, inject, Signal } from '@angular/core';\r\nimport { PushNotificationService, PushState } from '../services/pushnotification.service';\r\nimport { BaseComponent } from '../abstract-classes/base.component';\r\n\r\n@Component({\r\n selector: 'bnrc-push-banner',\r\n standalone: false,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n template: `\r\n @if(push().bannerVisible){\r\n <div class=\"push-banner\" [ngClass]=\"bannerPositionClass\">\r\n <div class=\"text\">\r\n <b>فعالسازی اعلانها</b>\r\n <p>برای دریافت پیامها و رویدادهای مهم، اعلانها را فعال کنید.</p>\r\n </div>\r\n <div class=\"actions\">\r\n <button class=\"btn enable\" (click)=\"onEnable()\">فعالسازی</button>\r\n <button class=\"btn later\" (click)=\"onHideBanner()\">بعداً</button>\r\n </div>\r\n @if(push().errorMessage){\r\n <p class=\"error\">{{ push().errorMessage }}</p>\r\n }\r\n </div>\r\n }\r\n `,\r\n styles: [\r\n `\r\n .push-banner {\r\n position: fixed;\r\n left: 0;\r\n right: 0;\r\n font-family: var(--sapFontFamily);\r\n background: #fff;\r\n border-radius: 12px 12px 0 0;\r\n box-shadow: 0 -4px 16px rgba(0, 0, 0, 0.15);\r\n padding: 16px;\r\n display: flex;\r\n flex-direction: column;\r\n gap: 8px;\r\n z-index: 9999;\r\n }\r\n .actions {\r\n display: flex;\r\n gap: 8px;\r\n }\r\n .btn.enable {\r\n background: #25d366;\r\n color: #fff;\r\n border-radius: 8px;\r\n padding: 8px 12px;\r\n border: none;\r\n }\r\n .btn.later {\r\n background: transparent;\r\n color: #666;\r\n border: none;\r\n padding: 8px 12px;\r\n }\r\n .error {\r\n color: red;\r\n font-size: 13px;\r\n }\r\n /* 1. 📱 استاندارد موبایل: iOS (پایین) */\r\n .position-ios-bottom {\r\n bottom: 0; /* در پایین صفحه نمایش داده شود */\r\n top: auto;\r\n border-radius: 12px 12px 0 0; /* گوشههای بالایی گرد */\r\n }\r\n\r\n /* 2. 🤖 استاندارد موبایل: Android (بالا) */\r\n .position-android-top {\r\n top: 0; /* در بالای صفحه نمایش داده شود */\r\n bottom: auto;\r\n border-radius: 0 0 12px 12px; /* گوشههای پایینی گرد */\r\n }\r\n\r\n /* 3. 💻 استاندارد دسکتاپ: گوشه بالا-راست */\r\n .position-desktop {\r\n top: 20px; /* فاصله از بالا */\r\n right: 20px; /* فاصله از راست */\r\n left: auto; /* عدم کشیدگی به سمت چپ */\r\n width: 320px; /* عرض استاندارد برای دسکتاپ */\r\n max-width: 90%;\r\n bottom: auto;\r\n border-radius: 8px; /* گوشههای گرد */\r\n }\r\n `\r\n ]\r\n})\r\nexport class PushBannerComponent extends BaseComponent {\r\n push: Signal<PushState>;\r\n private _pushService = inject(PushNotificationService);\r\n constructor() {\r\n super();\r\n this.push = this._pushService.push;\r\n }\r\n get bannerPositionClass(): string {\r\n const userAgent = navigator.userAgent;\r\n const isMobile = /Android|iPhone|iPad|iPod/i.test(userAgent);\r\n\r\n if (!isMobile) {\r\n // دسکتاپ: بالا، راست/چپ\r\n return 'position-desktop';\r\n }\r\n\r\n const isAndroid = /Android/i.test(userAgent);\r\n const isIOS = /iPhone|iPad|iPod/i.test(userAgent);\r\n\r\n if (isAndroid) {\r\n // موبایل اندروید: بالا\r\n return 'position-android-top';\r\n }\r\n\r\n if (isIOS) {\r\n // موبایل iOS: پایین (برای جلوگیری از تداخل با نوار آدرس Safari/Chrome)\r\n return 'position-ios-bottom';\r\n }\r\n\r\n // پیشفرض برای هر موبایل دیگر\r\n return 'position-ios-bottom';\r\n }\r\n onHideBanner(): void {\r\n this._pushService.hideBanner();\r\n }\r\n onEnable(): void {\r\n this._pushService.subscribe();\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 signal\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=\"tw-invisible 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 <bnrc-push-banner></bnrc-push-banner>\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 @HostBinding('attr.devicesize') _deviceSize;\r\n portalLoading$: Observable<boolean>;\r\n modules: any;\r\n isRoot = true;\r\n inLocalMode = signal(false);\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.addModulesToDom();\r\n this.inLocalMode.set( isInLocalMode());\r\n this._portalService.rtl$.subscribe((c) => {\r\n this._dir = c ? 'rtl' : 'ltr';\r\n });\r\n this._portalService.deviceSize$.subscribe((c) => {\r\n this._deviceSize = c;\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.handleLoadEvent(this._imgEl);\r\n this._imgEl.src = this.imgLazy;\r\n this._imgEl.setAttribute('loading', 'lazy');\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 { 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 { 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 }\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 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\nimport { bodyClick } from '../constants';\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 bodyClick(this._document, this._el);\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, mergeWith, 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 )\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 { AddDynamicFormStyles, getUniqueId, RemoveDynamicFormStyles } 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: HTMLStyleElement | null;\r\n\r\n ngOnInit(): void {\r\n super.ngOnInit();\r\n this._style = AddDynamicFormStyles(this.id, 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 RemoveDynamicFormStyles(this._style);\r\n this._style = AddDynamicFormStyles(this.id, cssStyle.currentValue);\r\n }\r\n }\r\n ngOnDestroy(): void {\r\n super.ngOnDestroy();\r\n RemoveDynamicFormStyles(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\nimport { addDynamicVariableTo, removeDynamicStyle } from '../constants';\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 (this.disable) {\r\n return;\r\n }\r\n this._style = addDynamicVariableTo(cssVariableName, cssVariableValue);\r\n }\r\n protected _removeDynamicFormStyles(): void {\r\n removeDynamicStyle(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 @Input() enableMobile: boolean;\r\n private ismobile = getDeviceIsMobile();\r\n\r\n ngAfterViewInit(): 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 && !this.enableMobile) {\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 const formattedValue = `\\u202B${value}\\u202C`;\r\n\r\n this._renderer2.setProperty(this._el.nativeElement, 'textContent', formattedValue);\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 { AfterViewInit, Directive, Input } from '@angular/core';\r\nimport { BaseDirective } from './base.directive';\r\nimport { debounceTime, fromEvent, takeUntil, Subject } from 'rxjs';\r\n\r\n@Directive({\r\n selector: '[resizeHandler]',\r\n standalone: false\r\n})\r\nexport class ResizeHandlerDirective extends BaseDirective implements AfterViewInit {\r\n @Input() fnResize: () => void;\r\n $resize = new Subject<void>();\r\n private _ro: ResizeObserver;\r\n\r\n ngOnInit(): void {\r\n super.ngOnInit();\r\n this._handleResize();\r\n this.$resize\r\n .asObservable()\r\n .pipe(takeUntil(this._onDestroy$), debounceTime(50))\r\n .subscribe(() => this._resize());\r\n }\r\n ngOnDestroy(): void {\r\n super.ngOnDestroy();\r\n this._ro.disconnect();\r\n }\r\n protected _resize(): void {\r\n if (typeof this.fnResize === 'function') {\r\n this.fnResize();\r\n }\r\n }\r\n protected _handleResize(): void {\r\n fromEvent(window, 'resize')\r\n .pipe(takeUntil(this._onDestroy$))\r\n .subscribe(() => {\r\n this.$resize.next();\r\n });\r\n // اگر container تغییر اندازه پیدا کرد (مثلاً parent تغییر کنه)\r\n try {\r\n this._ro = new ResizeObserver(() => {\r\n requestAnimationFrame(() => {\r\n this.$resize.next();\r\n });\r\n });\r\n if (this._el?.nativeElement) {\r\n this._ro.observe(this._el.nativeElement);\r\n }\r\n } catch {\r\n // مرورگرهای خیلی قدیمی ممکنه ResizeObserver نداشته باشند\r\n // در آنصورت rely به window resize میکنیم\r\n // no-op\r\n }\r\n }\r\n}\r\n","import { Directive, Input } from '@angular/core';\r\nimport { BaseDirective } from './base.directive';\r\nimport { getDeviceIsMobile } from '../constants';\r\n\r\n@Directive({\r\n selector: '[safe-area]',\r\n standalone: false\r\n})\r\nexport class SafeBottomDirective extends BaseDirective {\r\n @Input() applyTop: boolean;\r\n @Input() disableBottom: boolean;\r\n isMobile = getDeviceIsMobile();\r\n ngOnInit(): void {\r\n super.ngOnInit();\r\n if (!this.isMobile) {\r\n return;\r\n }\r\n let cls = this.disableBottom ? '' : 'safe-bottom-area-env';\r\n this.applyTop && (cls += 'safe-top-area-env');\r\n let clsNonStandlalone = this.disableBottom ? '' : 'safe-bottom-padding';\r\n this.applyTop && (clsNonStandlalone += 'safe-top-padding');\r\n\r\n const isStandAlone = !document.body.classList.contains('noStandalone');\r\n if (isStandAlone) {\r\n this._renderer2.addClass(this._el.nativeElement, cls);\r\n } else {\r\n this._renderer2.addClass(this._el.nativeElement, clsNonStandlalone);\r\n }\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, inject } from '@angular/core';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { Subject, debounceTime } from 'rxjs';\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 ResolveMoId?: string;\r\n}\r\n@Component({\r\n selector: 'bnrc-form-new',\r\n template: '<bnrc-form [params]=\"params\" (formClose)=\"onFormClose()\"></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 private _router = inject(Router);\r\n private _activatedRoute = inject(ActivatedRoute);\r\n private _back$ = new Subject<void>();\r\n ngOnInit(): void {\r\n super.ngOnInit();\r\n const moId = this.settings.ResolveMoId || (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 this._back$\r\n .asObservable()\r\n .pipe(debounceTime(100))\r\n .subscribe(() => this._navigateBack());\r\n }\r\n onFormClose(): void {\r\n this._back$.next();\r\n }\r\n protected _navigateBack(): void {\r\n const pathPattern = this._activatedRoute.snapshot.routeConfig?.path || '';\r\n const segmentsCount = pathPattern.split('/').filter((segment) => segment.length > 0).length;\r\n const backSteps = '../'.repeat(segmentsCount);\r\n // const path = this._activatedRoute.snapshot.routeConfig?.path;\r\n\r\n this._router.navigate([backSteps], {\r\n relativeTo: this._activatedRoute,\r\n replaceUrl: true\r\n });\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 this.settings.IsReportPage\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","import {\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n Component,\r\n HostBinding,\r\n inject,\r\n Injector,\r\n OnDestroy,\r\n OnInit,\r\n ViewChild,\r\n ViewContainerRef\r\n} from '@angular/core';\r\nimport { ActivatedRoute, Params } from '@angular/router';\r\nimport { BehaviorSubject, Observable, of } from 'rxjs';\r\nimport { catchError, debounceTime, finalize, map, switchMap, takeUntil, tap } from 'rxjs/operators';\r\nimport { BaseComponent } from '../abstract-classes/base.component';\r\nimport { PortalService } from '../services/portal.service';\r\nimport { ApplicationCtrlrService } from '../services/application-ctrlr.service';\r\nimport { BarsaApi } from '../abstract-classes/barsa-api';\r\nimport { BbbTranslatePipe } from '../pipes';\r\n\r\n@Component({\r\n selector: 'bnrc-report-navigator',\r\n template: `<ng-container #containerRef></ng-container>`,\r\n styles: `:host{display: block;width:100%; \r\n background: var(--sapBaseColor);}`,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n standalone: false\r\n})\r\nexport class ReportNavigatorComponent extends BaseComponent implements OnInit, OnDestroy {\r\n @ViewChild('containerRef', { static: true, read: ViewContainerRef }) containerRef: ViewContainerRef;\r\n @HostBinding('style.min-height') minheight = '100svh';\r\n loading$: Observable<boolean>;\r\n\r\n private _activatedRoute = inject(ActivatedRoute);\r\n private _portalService = inject(PortalService);\r\n private _applicationCtrlService = inject(ApplicationCtrlrService);\r\n private _injector = inject(Injector);\r\n private _cdr = inject(ChangeDetectorRef);\r\n private _bbb = inject(BbbTranslatePipe);\r\n private _loadingSource = new BehaviorSubject<boolean>(false);\r\n /** Inserted by Angular inject() migration for backwards compatibility */\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\r\n this._activatedRoute.params\r\n .pipe(\r\n takeUntil(this._onDestroy$),\r\n tap(() => this._setLoading(true)),\r\n map((params: Params) => this._extractIds(params)),\r\n tap((c) => (c.isReportPage ? (this.minheight = 'auto') : '100vh')),\r\n tap((c) => (c.ReportId = !c.ReportId ? c.ReportId2 : c.ReportId)),\r\n tap((_c) => this.containerRef.clear()),\r\n tap((navItem) => this._applicationCtrlService.selectNavGroupItem(navItem.Id)),\r\n tap((navItem) => this._applicationCtrlService.selectedReportId(navItem.ReportId)),\r\n tap((navItem) => this._applicationCtrlService.selectReportCaption(navItem.ReportId2)),\r\n\r\n switchMap((navItem) =>\r\n this._portalService\r\n .renderUlvMainUi(\r\n navItem,\r\n this.containerRef,\r\n this._injector,\r\n navItem.isReportPage ? false : true\r\n )\r\n .pipe(\r\n catchError((_err) =>\r\n // this._location.back();\r\n // return throwError(() => new Error(err));\r\n of(true)\r\n )\r\n )\r\n ),\r\n tap((ulv: any) => this._setActiveReport(ulv)),\r\n finalize(() => {\r\n this._setLoading(false);\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 // this._applicationCtrlService.selectNavGroupItem('');\r\n this._setActiveReport(null);\r\n }\r\n protected _extractIds(params): { Id: string; ReportId: string; ReportId2: string; isReportPage: string } {\r\n return {\r\n Id: params.id.split('__')[0],\r\n ReportId: params.id.split('__').length > 2 ? params.id.split('__')[2] : '',\r\n ReportId2: params.id.split('__').length > 1 ? params.id.split('__')[1] : '',\r\n isReportPage: params.id.split('__').length > 3 ? params.id.split('__')[3] : null\r\n };\r\n }\r\n private _setLoading(val: boolean): void {\r\n this._loadingSource.next(val);\r\n this._cdr.detectChanges();\r\n }\r\n private _setActiveReport(ulv: unknown): void {\r\n BarsaApi.Bw.App.GetActiveReport = () => {\r\n if (ulv === null) {\r\n return ulv;\r\n }\r\n return BarsaApi.Bw._wrap(ulv);\r\n };\r\n }\r\n}\r\n","import { ChangeDetectionStrategy, Component, OnInit, ViewChild, TemplateRef, inject, Injector } from '@angular/core';\r\n\r\nimport { ContainerService } from '../services/container.service';\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-report-empty-page',\r\n template: `\r\n <ng-template #block>\r\n <bnrc-report-navigator></bnrc-report-navigator>\r\n </ng-template>\r\n <ng-container #containerRef></ng-container>\r\n <router-outlet></router-outlet>\r\n `,\r\n providers: [RoutingService, ContainerService],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n styles: [\r\n `\r\n :host {\r\n display: block;\r\n }\r\n `\r\n ],\r\n standalone: false\r\n})\r\nexport class ReportEmptyPageComponent extends PageWithFormHandlerBaseComponent implements OnInit {\r\n @ViewChild('block', { static: true }) blockTemplate!: TemplateRef<any>;\r\n _injecotr = inject(Injector);\r\n ngOnInit(): void {\r\n this.containerRef.insert(this.blockTemplate.createEmbeddedView(this, this._injecotr));\r\n super.ngOnInit();\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 [class.!tw-bg-gray-200]=\"!valid\"\r\n>\r\n @if(loading && valid){\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\nimport { BarsaApi } from './abstract-classes';\r\n\r\n// دیکشنری برای نگهداری کامپوننتهای Detach شده\r\nconst routeStorage: { [key: string]: DetachedRouteHandle } = {};\r\nconst REUSE_PROPERTY = 'ReuseRoute';\r\n\r\nexport class CustomRouteReuseStrategy implements RouteReuseStrategy {\r\n // تصمیم میگیرد که آیا یک روَت باید Detach و ذخیره شود یا نه.\r\n // ما فقط روَتهایی را که در data مشخص شدهاند، Detach میکنیم.\r\n shouldDetach(route: ActivatedRouteSnapshot): boolean {\r\n // برای روَتهای اصلی که میخواهید حفظ شوند\r\n const isReuse = !!BarsaApi.Common.Util.TryGetValue(route, `data.pageData.${REUSE_PROPERTY}`);\r\n\r\n return isReuse;\r\n }\r\n\r\n // کامپوننت Detach شده را ذخیره میکند.\r\n store(route: ActivatedRouteSnapshot, handle: DetachedRouteHandle): void {\r\n const isReuse = !!BarsaApi.Common.Util.TryGetValue(route, `data.pageData.${REUSE_PROPERTY}`);\r\n if (route.routeConfig && isReuse) {\r\n const keyPath = this._getKeyOfPath(route);\r\n routeStorage[keyPath] = handle;\r\n }\r\n }\r\n\r\n // تصمیم میگیرد که آیا کامپوننت ذخیره شده باید بازیابی (Attach) شود یا نه.\r\n shouldAttach(route: ActivatedRouteSnapshot): boolean {\r\n // اگر روَت در حافظه ذخیره شده و قرار بوده حفظ شود\r\n const keyPath = this._getKeyOfPath(route);\r\n return !!route.routeConfig && !!routeStorage[keyPath];\r\n }\r\n\r\n // کامپوننت ذخیره شده را بازیابی میکند.\r\n retrieve(route: ActivatedRouteSnapshot): DetachedRouteHandle | null {\r\n const isReuse = !!BarsaApi.Common.Util.TryGetValue(route, `data.pageData.${REUSE_PROPERTY}`);\r\n if (!route.routeConfig || !isReuse) {\r\n return null;\r\n }\r\n const keyPath = this._getKeyOfPath(route); \r\n return routeStorage[keyPath] || null;\r\n }\r\n\r\n // مهمترین بخش: تصمیم میگیرد که آیا روَت فعلی باید برای روَت آینده بازاستفاده شود یا نه.\r\n // اگر از یک روَت به روَت دیگری برویم (مثل 'Page1' به 'Page2')، این باید 'false' باشد تا بتواند Detach شود.\r\n // اما اگر پارامترها و Query Params یکسان باشند، شاید بخواهید 'true' باشد.\r\n // برای حالت شما (نویگیشن بین روَتهای اصلی)، معمولاً 'false' است مگر اینکه روَتها کاملاً یکسان باشند.\r\n shouldReuseRoute(future: ActivatedRouteSnapshot, curr: ActivatedRouteSnapshot): boolean {\r\n // این کار باعث میشود روَتهای خواهر (sibling) به عنوان روَتهای جدید در نظر گرفته شوند\r\n // تا بتوانند Detach و Attach شوند.\r\n return future.routeConfig === curr.routeConfig;\r\n }\r\n protected _getKeyOfPath(route: ActivatedRouteSnapshot): string {\r\n const x = BarsaApi.Common.Util.TryGetValue(route, `data.pageData.ParentRoute`);\r\n const y = BarsaApi.Common.Util.TryGetValue(route, `data.pageData.Route`);\r\n const keyPath = `${x}${y}`;\r\n return keyPath;\r\n }\r\n}\r\n","import { Component, ViewContainerRef, HostBinding, ChangeDetectionStrategy, inject } from '@angular/core';\r\nimport { BaseComponent } from '../abstract-classes/base.component';\r\nimport { RoutingService } from '../services/routing.service';\r\n\r\n@Component({\r\n selector: 'bnrc-root-page',\r\n template: `<router-outlet></router-outlet><router-outlet name=\"main\"></router-outlet>`,\r\n styles: `:host {position: relative;display: block;}`,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n providers: [RoutingService],\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","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 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: 'appgroupsidebar',\r\n component: EmptyPageComponent,\r\n canActivate: [AuthGuard],\r\n data: {\r\n pageData: {\r\n Module: 'BarsaNovinRayCore',\r\n HasAuthorize: true,\r\n Route: '/appgroupsidebar/:id'\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\n path: 'appgroup',\r\n component: PortalPageComponent,\r\n canActivate: [AuthGuard],\r\n data: {\r\n pageData: {\r\n Module: 'BarsaNovinRayCore',\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, RouteReuseStrategy } 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\nimport { PushBannerComponent } from './push-banner/push-banner.component';\r\nimport { SplitterComponent } from './splitter/splitter.component';\r\nimport {\r\n DynamicFormComponent,\r\n DynamicItemComponent,\r\n CardDynamicItemComponent,\r\n BaseDynamicComponent,\r\n DynamicFormToolbaritemComponent,\r\n DynamicLayoutComponent,\r\n DynamicTileGroupComponent,\r\n DynamicUlvToolbarComponent,\r\n DynamicUlvPagingComponent\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\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\nimport { ReportEmptyPageComponent } from './report-empty-page/report-empty-page.component';\r\nimport { ReportNavigatorComponent } from './report-navigator/report-navigator.component';\r\n\r\nimport { EmptyPageComponent } from './empty-page/empty-page.component';\r\nimport { MasterDetailsPageComponent } from './master-details-page/master-details-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 PushNotificationService\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 ResizeHandlerDirective,\r\n SafeBottomDirective\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 MapToChatMessagePipe\r\n} from './pipes';\r\nimport { CustomRouteReuseStrategy } from './custom-route-reuse-strategy';\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 EmptyPageWithRouterAndRouterOutletComponent,\r\n DynamicItemComponent,\r\n CardDynamicItemComponent,\r\n DynamicFormComponent,\r\n DynamicUlvToolbarComponent,\r\n DynamicUlvPagingComponent,\r\n BaseDynamicComponent,\r\n DynamicFormToolbaritemComponent,\r\n DynamicLayoutComponent,\r\n EmptyPageComponent,\r\n ReportEmptyPageComponent,\r\n MasterDetailsPageComponent,\r\n FormPageComponent,\r\n FormFieldReportPageComponent,\r\n ButtonLoadingComponent,\r\n UnlimitSessionComponent,\r\n DynamicTileGroupComponent,\r\n PushBannerComponent,\r\n ReportNavigatorComponent,\r\n SplitterComponent\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 ResizeHandlerDirective,\r\n SafeBottomDirective\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 PushNotificationService\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 MapToChatMessagePipe\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 const m = window.location.hash.match(/application\\/([^/?#]+)/i);\r\n const systemId = m?.[1] || ''; // \"344344343\"\r\n applicationCtrlrService.systemChange(systemId);\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.error('internet is not connected.');\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 {\r\n provide: RouteReuseStrategy,\r\n useClass: CustomRouteReuseStrategy\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","jmoment","map","debounceTime","distinctUntilChanged","withLatestFrom","tap","exhaustMap","shareReplay","switchMap","filter","catchError","takeUntil","merge","i2.FormComponent","i3.FormCloseDirective","i2.SplitterComponent","i2.FillEmptySpaceDirective","i1","i2.UnlimitSessionComponent","i3.PushBannerComponent","i4.LoadExternalFilesDirective","i1.FormComponent","i2.FormCloseDirective","mergeWith","routes","components","i2.ReportNavigatorComponent","i1.BbbTranslatePipe","i1.ResizableDirective"],"mappings":"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"}
|