barsa-novin-ray-core 2.3.102 → 2.3.104

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,8 +1,8 @@
1
1
  import * as i0 from '@angular/core';
2
- import { Injectable, inject, ElementRef, Input, ChangeDetectionStrategy, Component, Pipe, ComponentFactoryResolver, Injector, ApplicationRef, Compiler, DOCUMENT, NgModuleFactory, InjectionToken, NgZone, signal, EventEmitter, ChangeDetectorRef, Renderer2, HostBinding, Output, HostListener, ViewContainerRef, ViewChild, Directive, TemplateRef, input, NgModule, NO_ERRORS_SCHEMA, CUSTOM_ELEMENTS_SCHEMA, provideAppInitializer, ErrorHandler } from '@angular/core';
3
- import { Subject, from, BehaviorSubject, of, exhaustMap, map as map$1, combineLatest, withLatestFrom as withLatestFrom$1, fromEvent, forkJoin, takeUntil as takeUntil$1, filter as filter$1, throwError, merge, interval, lastValueFrom, timeout, catchError as catchError$1, take, debounceTime as debounceTime$1, skip, Observable, tap as tap$1, timer, mergeWith, Subscription } from 'rxjs';
2
+ import { Injectable, inject, ElementRef, Input, ChangeDetectionStrategy, Component, Pipe, ComponentFactoryResolver, Injector, ApplicationRef, Compiler, DOCUMENT, NgModuleFactory, InjectionToken, NgZone, signal, ViewContainerRef, EventEmitter, ChangeDetectorRef, Renderer2, HostBinding, Output, HostListener, ViewChild, Directive, TemplateRef, input, NgModule, NO_ERRORS_SCHEMA, CUSTOM_ELEMENTS_SCHEMA, provideAppInitializer, ErrorHandler } from '@angular/core';
3
+ import { Subject, from, BehaviorSubject, of, exhaustMap, map as map$1, combineLatest, withLatestFrom as withLatestFrom$1, fromEvent, forkJoin, throwError, merge, interval, filter as filter$1, lastValueFrom, timeout, catchError as catchError$1, takeUntil as takeUntil$1, take, debounceTime as debounceTime$1, skip, Observable, tap as tap$1, timer, mergeWith, Subscription } from 'rxjs';
4
4
  import * as i1 from '@angular/router';
5
- import { Router, NavigationEnd, ActivatedRoute, RouterEvent, NavigationStart, RouterModule } from '@angular/router';
5
+ import { Router, NavigationEnd, ActivatedRoute, RouterEvent, NavigationStart, RouterModule, RouteReuseStrategy } from '@angular/router';
6
6
  import { DomSanitizer, Title } from '@angular/platform-browser';
7
7
  import { filter, startWith, map, tap, takeUntil, withLatestFrom, delay, debounceTime, distinctUntilChanged, exhaustMap as exhaustMap$1, concatMap, finalize, publishReplay, refCount, shareReplay, switchMap, catchError, merge as merge$1, pluck, mergeWith as mergeWith$1 } from 'rxjs/operators';
8
8
  import moment from 'moment';
@@ -1344,6 +1344,7 @@ const _getSystem = () => {
1344
1344
  oSystem.desktop = !!((!oSystem.tablet && !oSystem.phone) || isWin8Upwards);
1345
1345
  oSystem.combi = oSystem.desktop && oSystem.tablet;
1346
1346
  oSystem.SYSTEMTYPE = SYSTEMTYPE;
1347
+ oSystem.phone = oSystem.phone && window.innerWidth < 768;
1347
1348
  return oSystem;
1348
1349
  };
1349
1350
  const _setSystem = () => {
@@ -1531,6 +1532,36 @@ function calcContextMenuWidth(contextMenuItems, disableContextMenuOverflow) {
1531
1532
  }
1532
1533
  return contextMenuWidth;
1533
1534
  }
1535
+ function RotateImage(imgEl, media, renderer2) {
1536
+ const direction = 1;
1537
+ const angle = 90 * direction;
1538
+ if (media.RotationAngle) {
1539
+ media.RotationAngle = (media.RotationAngle + angle) % 360;
1540
+ }
1541
+ else {
1542
+ media.RotationAngle = angle;
1543
+ }
1544
+ const w = imgEl.offsetWidth;
1545
+ const h = imgEl.offsetHeight;
1546
+ let margin = (w - h) / 2;
1547
+ let scaleFactor = w / h;
1548
+ if (media.scaleFactor) {
1549
+ scaleFactor = 1;
1550
+ media.scaleFactor = null;
1551
+ margin = 0;
1552
+ }
1553
+ else {
1554
+ media.scaleFactor = scaleFactor;
1555
+ }
1556
+ if (scaleFactor < 1) {
1557
+ renderer2.setStyle(imgEl, 'transform', `rotate(${media.RotationAngle}deg) scale(${scaleFactor})`);
1558
+ }
1559
+ else {
1560
+ renderer2.setStyle(imgEl, 'transform', `rotate(${media.RotationAngle}deg)`);
1561
+ }
1562
+ renderer2.setStyle(imgEl, 'margin-bottom', margin + 'px');
1563
+ renderer2.setStyle(imgEl, 'margin-top', margin + 'px');
1564
+ }
1534
1565
  function isInLocalMode() {
1535
1566
  const offlinceActive = BarsaApi.Common.Util.TryGetValue(BarsaApi.Offline, 'Settings.IsActive', false);
1536
1567
  const offlineTrue = BarsaApi.Common.Util.TryGetValue(BarsaApi.Offline, 'Settings.IsOffline', false);
@@ -4904,6 +4935,128 @@ class FormService {
4904
4935
  }
4905
4936
  }
4906
4937
 
4938
+ class ContainerService {
4939
+ constructor() {
4940
+ this.detachParent = true;
4941
+ this.state = 'attach';
4942
+ this.addModules = new Subject();
4943
+ this._onDestroy$ = new Subject();
4944
+ this._parentService = inject(ContainerService, { skipSelf: true, optional: true });
4945
+ this._scrollTop = 0;
4946
+ this._el = inject(ElementRef);
4947
+ }
4948
+ /** Inserted by Angular inject() migration for backwards compatibility */
4949
+ ngOnDestroy() {
4950
+ this._onDestroy$.next();
4951
+ this._onDestroy$.complete();
4952
+ if (this._parentService && this.detachParent) {
4953
+ this._parentService.insert();
4954
+ }
4955
+ }
4956
+ setViewContainerRef(viewContainerRef) {
4957
+ this._viewContainerRef = viewContainerRef;
4958
+ this.state = 'attach';
4959
+ if (this._parentService && this.detachParent) {
4960
+ this._parentService.detach();
4961
+ }
4962
+ }
4963
+ detach() {
4964
+ this._setScrollPosition();
4965
+ this.state = 'detach';
4966
+ this._viewRef = this._viewContainerRef.detach();
4967
+ }
4968
+ _setScrollPosition() {
4969
+ const elDom = this._el.nativeElement;
4970
+ if (elDom) {
4971
+ const x1 = elDom.querySelector('fd-dynamic-page-content');
4972
+ const x2 = elDom.querySelector('.fd-scrollbar[fd-scrollbar]');
4973
+ const scrollTopPage = x1?.scrollTop;
4974
+ const scrollTopScrollbar = x2?.scrollTop;
4975
+ if (scrollTopPage && scrollTopPage > 0) {
4976
+ this._scrollTop = scrollTopPage;
4977
+ this._elDomScrollbar = x1;
4978
+ }
4979
+ else if (scrollTopScrollbar && scrollTopScrollbar > 0) {
4980
+ this._scrollTop = scrollTopScrollbar;
4981
+ this._elDomScrollbar = x2;
4982
+ }
4983
+ }
4984
+ }
4985
+ _restoreScrollPostion() {
4986
+ if (this._scrollTop && this._scrollTop > 0) {
4987
+ if (this._elDomScrollbar) {
4988
+ this._elDomScrollbar.scrollTop = this._scrollTop;
4989
+ }
4990
+ }
4991
+ }
4992
+ insert() {
4993
+ if (this._viewRef) {
4994
+ this._viewContainerRef.insert(this._viewRef);
4995
+ this._restoreScrollPostion();
4996
+ }
4997
+ else {
4998
+ this.addModules.next();
4999
+ }
5000
+ }
5001
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: ContainerService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
5002
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: ContainerService }); }
5003
+ }
5004
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: ContainerService, decorators: [{
5005
+ type: Injectable
5006
+ }] });
5007
+
5008
+ class HorizontalLayoutService {
5009
+ constructor() {
5010
+ this.controlFlexColumnSource = new BehaviorSubject({});
5011
+ this.displayTextFlexColumn$ = this.controlFlexColumnSource
5012
+ .asObservable()
5013
+ .pipe(map((controlFlexColumn) => Object.keys(controlFlexColumn).some((c) => controlFlexColumn[c])));
5014
+ }
5015
+ setFlexColumn(id, val) {
5016
+ const flexColumn = this.controlFlexColumnSource.getValue();
5017
+ flexColumn[id] = val;
5018
+ this.controlFlexColumnSource.next(flexColumn);
5019
+ }
5020
+ }
5021
+
5022
+ class LayoutService {
5023
+ constructor() {
5024
+ this.rendered = new BehaviorSubject(false);
5025
+ this.maxWidth = new BehaviorSubject(0);
5026
+ this.refreshLayoutSource = new Subject();
5027
+ this.horizontalSource = new Subject();
5028
+ this._listOfHorizontal = [];
5029
+ this.rootRendered$ = this.rendered.asObservable();
5030
+ this.maxWidth$ = this.maxWidth.asObservable();
5031
+ this.refreshLayout$ = this.refreshLayoutSource.asObservable();
5032
+ this.horizontal$ = this.horizontalSource.asObservable().pipe(distinctUntilChanged((a, b) => a === b));
5033
+ }
5034
+ setRendered(val) {
5035
+ this.rendered.next(val);
5036
+ }
5037
+ setMaxWidth(val) {
5038
+ if (this.maxWidth.value < val) {
5039
+ this.maxWidth.next(val);
5040
+ }
5041
+ }
5042
+ refreshLayout() {
5043
+ this.refreshLayoutSource.next();
5044
+ }
5045
+ addHorizontal(id) {
5046
+ this._listOfHorizontal = [...this._listOfHorizontal, id];
5047
+ this.horizontalSource.next(this._listOfHorizontal);
5048
+ }
5049
+ removeHorizontal(id) {
5050
+ this._listOfHorizontal = this._listOfHorizontal.filter((c) => c !== id);
5051
+ this.horizontalSource.next(this._listOfHorizontal);
5052
+ }
5053
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: LayoutService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
5054
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: LayoutService }); }
5055
+ }
5056
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: LayoutService, decorators: [{
5057
+ type: Injectable
5058
+ }], ctorParameters: () => [] });
5059
+
4907
5060
  class PortalPageResolver {
4908
5061
  /** Inserted by Angular inject() migration for backwards compatibility */
4909
5062
  constructor() {
@@ -5238,19 +5391,11 @@ class ApplicationCtrlrService {
5238
5391
  });
5239
5392
  this._appMenuItems$.next([...items]);
5240
5393
  }
5241
- _addSystemUi(_systemUi) {
5242
- // this._selectedSystemId$.next(systemUi.SystemData.Id);
5243
- // console.log('_addSystemUi', systemUi);
5244
- }
5245
- _addToMainTabPanel(_customSystemUi) {
5246
- // console.log('AddToMainTabPanel', customSystemUi);
5247
- }
5394
+ _addSystemUi(_systemUi) { }
5395
+ _addToMainTabPanel(_customSystemUi) { }
5248
5396
  _selectedSystemChanged(systemId, _forceRelayout = false) {
5249
5397
  const x = this._customApplicationUi._systemsUi.find((c) => c.SystemData.Id === systemId);
5250
5398
  this._selectSystem(x);
5251
- // console.log('SelectedSystemChanged', systemId, forceRelayout);
5252
- // console.log('selected navgroup ', this._selectedNavGroupId$.getValue());
5253
- // console.log('selected navgroup Item ', this._selectedNavGroupItemId$.getValue());
5254
5399
  }
5255
5400
  _selectSystem(system) {
5256
5401
  if (!system) {
@@ -5259,12 +5404,8 @@ class ApplicationCtrlrService {
5259
5404
  this.selectedSystem(system.SystemData.Id);
5260
5405
  this._selectedSystemNavUi$.next(system.SystemNavUi);
5261
5406
  }
5262
- _setStatusBarValues(_statusbarValues) {
5263
- // console.log('SetStatusBarValues', statusbarValues);
5264
- }
5265
- _showReleaseNoteWindow(_releaseNoteData) {
5266
- // console.log('ShowReleaseNoteWindow', releaseNoteData);
5267
- }
5407
+ _setStatusBarValues(_statusbarValues) { }
5408
+ _showReleaseNoteWindow(_releaseNoteData) { }
5268
5409
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: ApplicationCtrlrService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
5269
5410
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: ApplicationCtrlrService, providedIn: 'root' }); }
5270
5411
  }
@@ -5319,6 +5460,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.6", ngImpor
5319
5460
  type: Injectable
5320
5461
  }] });
5321
5462
 
5463
+ function reportRoutes(authGuard = false) {
5464
+ return {
5465
+ path: 'report/:id',
5466
+ canActivate: authGuard ? [AuthGuard] : [],
5467
+ loadChildren: () => import('./barsa-novin-ray-core-barsa-report-page.module-Bml7rVqA.mjs').then((m) => m.BarsaReportPageModule)
5468
+ };
5469
+ }
5470
+
5322
5471
  class PortalService {
5323
5472
  constructor() {
5324
5473
  this.offsetTop = 0;
@@ -5684,16 +5833,12 @@ class PortalService {
5684
5833
  // this.routeInitialized();
5685
5834
  }
5686
5835
  ssoLogin() {
5687
- AjaxHelper.AjaxRequest('/api/base/ssologin', null, false, () => {
5688
- // console.log(response);
5689
- }, () => {
5836
+ AjaxHelper.AjaxRequest('/api/base/ssologin', null, false, () => { }, () => {
5690
5837
  alert('error in sso login.');
5691
5838
  }, null);
5692
5839
  }
5693
5840
  ssoLogout() {
5694
- AjaxHelper.AjaxRequest('/api/base/ssologout', null, false, () => {
5695
- // console.log(response);
5696
- }, () => {
5841
+ AjaxHelper.AjaxRequest('/api/base/ssologout', null, false, () => { }, () => {
5697
5842
  alert('error in sso logout.');
5698
5843
  }, null);
5699
5844
  }
@@ -5883,7 +6028,7 @@ class PortalService {
5883
6028
  ...cpage
5884
6029
  }
5885
6030
  },
5886
- children: cpage.ComponentName !== 'PortalPage' ? [formRoutes()] : []
6031
+ children: [reportRoutes(), formRoutes()]
5887
6032
  };
5888
6033
  children.push(newRoute);
5889
6034
  // Recursively process each MetaObjectModel inside MoDataList
@@ -6276,200 +6421,37 @@ class PortalService {
6276
6421
  else {
6277
6422
  const compiled = this.compiler.compileModuleAndAllComponentsSync(moduleClass);
6278
6423
  moduleFactory = compiled.ngModuleFactory;
6279
- }
6280
- return moduleFactory;
6281
- }
6282
- getRegisteredModules(umd, exportAs, moduleName) {
6283
- let modules;
6284
- if (umd !== '') {
6285
- modules = window;
6286
- umd.split('.').forEach((c) => {
6287
- if (typeof modules !== typeof undefined) {
6288
- modules = modules[c];
6289
- }
6290
- });
6291
- }
6292
- else {
6293
- modules = window[moduleName];
6294
- }
6295
- if (exportAs.length > 0 && modules) {
6296
- exportAs.forEach((c) => {
6297
- this.setValueOnObject(c, 0, modules, window);
6298
- });
6299
- }
6300
- return modules;
6301
- }
6302
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: PortalService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
6303
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: PortalService, providedIn: 'root' }); }
6304
- }
6305
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: PortalService, decorators: [{
6306
- type: Injectable,
6307
- args: [{
6308
- providedIn: 'root'
6309
- }]
6310
- }], ctorParameters: () => [] });
6311
-
6312
- class ContainerService {
6313
- constructor() {
6314
- this.oldActiveSystem = null;
6315
- this.detachParent = true;
6316
- this.masterDetails = false;
6317
- this.state = 'attach';
6318
- this.isMobile = getDeviceIsMobile();
6319
- this.addModules = new Subject();
6320
- this._activatedRoute = inject(ActivatedRoute);
6321
- this._router = inject(Router);
6322
- this._portalService = inject(PortalService);
6323
- this._onDestroy$ = new Subject();
6324
- this._parentService = inject(ContainerService, { skipSelf: true, optional: true });
6325
- this._scrollTop = 0;
6326
- this._el = inject(ElementRef);
6327
- this.paramId$ = this._activatedRoute.paramMap.pipe(takeUntil$1(this._onDestroy$));
6328
- this.routeEvents$ = this._router.events.pipe(takeUntil$1(this._onDestroy$), filter$1((event) => event instanceof NavigationEnd && event instanceof RouterEvent));
6329
- }
6330
- /** Inserted by Angular inject() migration for backwards compatibility */
6331
- ngOnDestroy() {
6332
- this._onDestroy$.next();
6333
- this._onDestroy$.complete();
6334
- if (this._parentService && this.detachParent) {
6335
- this._parentService.insert();
6336
- }
6337
- }
6338
- setViewContainerRef(viewContainerRef) {
6339
- this._viewContainerRef = viewContainerRef;
6340
- this.state = 'attach';
6341
- if (this._parentService && this.detachParent) {
6342
- this._parentService.detach();
6343
- }
6344
- }
6345
- hideFormPage() {
6346
- const pageEl = this._el.nativeElement;
6347
- pageEl.classList.remove('absolute-page');
6348
- pageEl.classList.add('absolute-page-removed');
6349
- }
6350
- showFormPage() {
6351
- const pageEl = this._el.nativeElement;
6352
- pageEl.classList.remove('absolute-page-removed');
6353
- pageEl.classList.add('absolute-page');
6354
- }
6355
- navigate(navigation, isRelative, queryParams, state) {
6356
- if (this.masterDetails && !this.isMobile) {
6357
- this.navigateMasterDetails(navigation, isRelative, queryParams, state);
6358
- return;
6359
- }
6360
- this._router.navigate(navigation, {
6361
- relativeTo: isRelative ? this._activatedRoute : null,
6362
- queryParams,
6363
- preserveFragment: true,
6364
- state
6365
- });
6366
- }
6367
- navigateMasterDetails(navigation, isRelative, queryParams, data) {
6368
- if (this._portalService.deviceSize !== 's') {
6369
- navigation = [{ outlets: { details: [...navigation.filter((_c, index) => index > 0)] } }];
6370
- }
6371
- this._router.navigate(navigation, {
6372
- relativeTo: isRelative ? this._activatedRoute : null,
6373
- queryParams,
6374
- preserveFragment: true,
6375
- state: { ...data }
6376
- });
6377
- }
6378
- detach() {
6379
- this._setScrollPosition();
6380
- this.state = 'detach';
6381
- this._viewRef = this._viewContainerRef.detach();
6382
- }
6383
- _setScrollPosition() {
6384
- const elDom = this._el.nativeElement;
6385
- if (elDom) {
6386
- const x1 = elDom.querySelector('fd-dynamic-page-content');
6387
- const x2 = elDom.querySelector('.fd-scrollbar[fd-scrollbar]');
6388
- const scrollTopPage = x1?.scrollTop;
6389
- const scrollTopScrollbar = x2?.scrollTop;
6390
- if (scrollTopPage && scrollTopPage > 0) {
6391
- this._scrollTop = scrollTopPage;
6392
- this._elDomScrollbar = x1;
6393
- }
6394
- else if (scrollTopScrollbar && scrollTopScrollbar > 0) {
6395
- this._scrollTop = scrollTopScrollbar;
6396
- this._elDomScrollbar = x2;
6397
- }
6398
- }
6399
- }
6400
- _restoreScrollPostion() {
6401
- if (this._scrollTop && this._scrollTop > 0) {
6402
- if (this._elDomScrollbar) {
6403
- this._elDomScrollbar.scrollTop = this._scrollTop;
6404
- }
6405
- }
6406
- }
6407
- insert() {
6408
- if (this._viewRef) {
6409
- this._viewContainerRef.insert(this._viewRef);
6410
- this._restoreScrollPostion();
6411
- }
6412
- else {
6413
- this.addModules.next();
6414
- }
6415
- }
6416
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: ContainerService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
6417
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: ContainerService }); }
6418
- }
6419
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: ContainerService, decorators: [{
6420
- type: Injectable
6421
- }], ctorParameters: () => [] });
6422
-
6423
- class HorizontalLayoutService {
6424
- constructor() {
6425
- this.controlFlexColumnSource = new BehaviorSubject({});
6426
- this.displayTextFlexColumn$ = this.controlFlexColumnSource
6427
- .asObservable()
6428
- .pipe(map((controlFlexColumn) => Object.keys(controlFlexColumn).some((c) => controlFlexColumn[c])));
6429
- }
6430
- setFlexColumn(id, val) {
6431
- const flexColumn = this.controlFlexColumnSource.getValue();
6432
- flexColumn[id] = val;
6433
- this.controlFlexColumnSource.next(flexColumn);
6434
- }
6435
- }
6436
-
6437
- class LayoutService {
6438
- constructor() {
6439
- this.rendered = new BehaviorSubject(false);
6440
- this.maxWidth = new BehaviorSubject(0);
6441
- this.refreshLayoutSource = new Subject();
6442
- this.horizontalSource = new Subject();
6443
- this._listOfHorizontal = [];
6444
- this.rootRendered$ = this.rendered.asObservable();
6445
- this.maxWidth$ = this.maxWidth.asObservable();
6446
- this.refreshLayout$ = this.refreshLayoutSource.asObservable();
6447
- this.horizontal$ = this.horizontalSource.asObservable().pipe(distinctUntilChanged((a, b) => a === b));
6448
- }
6449
- setRendered(val) {
6450
- this.rendered.next(val);
6451
- }
6452
- setMaxWidth(val) {
6453
- if (this.maxWidth.value < val) {
6454
- this.maxWidth.next(val);
6455
- }
6456
- }
6457
- refreshLayout() {
6458
- this.refreshLayoutSource.next();
6459
- }
6460
- addHorizontal(id) {
6461
- this._listOfHorizontal = [...this._listOfHorizontal, id];
6462
- this.horizontalSource.next(this._listOfHorizontal);
6424
+ }
6425
+ return moduleFactory;
6463
6426
  }
6464
- removeHorizontal(id) {
6465
- this._listOfHorizontal = this._listOfHorizontal.filter((c) => c !== id);
6466
- this.horizontalSource.next(this._listOfHorizontal);
6427
+ getRegisteredModules(umd, exportAs, moduleName) {
6428
+ let modules;
6429
+ if (umd !== '') {
6430
+ modules = window;
6431
+ umd.split('.').forEach((c) => {
6432
+ if (typeof modules !== typeof undefined) {
6433
+ modules = modules[c];
6434
+ }
6435
+ });
6436
+ }
6437
+ else {
6438
+ modules = window[moduleName];
6439
+ }
6440
+ if (exportAs.length > 0 && modules) {
6441
+ exportAs.forEach((c) => {
6442
+ this.setValueOnObject(c, 0, modules, window);
6443
+ });
6444
+ }
6445
+ return modules;
6467
6446
  }
6468
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: LayoutService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
6469
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: LayoutService }); }
6447
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: PortalService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
6448
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: PortalService, providedIn: 'root' }); }
6470
6449
  }
6471
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: LayoutService, decorators: [{
6472
- type: Injectable
6450
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: PortalService, decorators: [{
6451
+ type: Injectable,
6452
+ args: [{
6453
+ providedIn: 'root'
6454
+ }]
6473
6455
  }], ctorParameters: () => [] });
6474
6456
 
6475
6457
  class UiService {
@@ -8455,7 +8437,9 @@ class ServiceWorkerCommuncationService {
8455
8437
  this._postServiceWorker({ event: 'isLoggedInChange', options: { isLoggedIn } });
8456
8438
  if (isLoggedIn) {
8457
8439
  this._setDefaultOptions();
8458
- this._pushNotificatioService.setup();
8440
+ setTimeout(() => {
8441
+ this._pushNotificatioService.setup();
8442
+ }, 5000);
8459
8443
  }
8460
8444
  }
8461
8445
  _visibilitychange(documentIsHidden) {
@@ -8513,10 +8497,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.6", ngImpor
8513
8497
  }] });
8514
8498
 
8515
8499
  class RoutingService {
8516
- /** Inserted by Angular inject() migration for backwards compatibility */
8517
8500
  constructor() {
8518
8501
  this.oldActiveSystem = null;
8519
- this._activatedRoute = inject(ActivatedRoute);
8520
8502
  this.router = inject(Router);
8521
8503
  this.isSidebar = false;
8522
8504
  this._Object = {
@@ -8552,11 +8534,84 @@ class RoutingService {
8552
8534
  }
8553
8535
  }
8554
8536
  };
8537
+ this.isFirstPage = true;
8538
+ this.masterDetails = false;
8539
+ this.isMobile = getDeviceIsMobile();
8540
+ this._activatedRoute = inject(ActivatedRoute);
8541
+ this._router = inject(Router);
8542
+ this._portalService = inject(PortalService);
8543
+ this._parentRoutingService = inject(RoutingService, { skipSelf: true, optional: true });
8544
+ this._onDestroy$ = new Subject();
8545
+ this._formDialogComponent = inject(FORM_DIALOG_COMPONENT, { optional: true });
8546
+ this._dialogService = inject(DIALOG_SERVICE, { optional: true });
8547
+ this._vcr = inject(ViewContainerRef);
8548
+ /* eslint-disable */
8549
+ this.ForceClose = () => {
8550
+ this.parentContainer.ForceCloseChild();
8551
+ };
8552
+ this.ShowFormPanelControl = (formpanelCtrlr) => {
8553
+ this.formpanelCtrlr = formpanelCtrlr;
8554
+ this._showFormPanel();
8555
+ };
8556
+ /* eslint-disable */
8557
+ this.ForceCloseChild = () => {
8558
+ this._router.navigate(['../'], { relativeTo: this._activatedRoute });
8559
+ };
8560
+ /* eslint-disable */
8561
+ this.RefreshFormPanelControl = (formpanelCtrlr) => {
8562
+ if (!this.formpanelCtrlr) {
8563
+ this.formpanelCtrlr = formpanelCtrlr;
8564
+ }
8565
+ else {
8566
+ formpanelCtrlr = this._portalService.formPanels[this.formpanelCtrlrId];
8567
+ }
8568
+ this._showFormPanel(true);
8569
+ };
8555
8570
  this.oldActiveSystem = BarsaApi.Bw.App.GetActiveSystem;
8571
+ this._activatedRoute.params.pipe(takeUntil$1(this._onDestroy$)).subscribe((_params) => {
8572
+ const state = this._router.getCurrentNavigation()?.extras.state;
8573
+ this.formpanelCtrlrId = state?.formPanelCtrlrId;
8574
+ });
8575
+ this.paramId$ = this._activatedRoute.paramMap.pipe(takeUntil$1(this._onDestroy$));
8576
+ this.routeEvents$ = this._router.events.pipe(takeUntil$1(this._onDestroy$), filter$1((event) => event instanceof NavigationEnd && event instanceof RouterEvent));
8556
8577
  BarsaApi.Bw.App.GetActiveSystem = () => this;
8578
+ this.parentContainer = BarsaApi.Bw.FormHandler;
8579
+ BarsaApi.Bw.FormHandler = this;
8580
+ this.oldNavigation = BarsaApi.Bw.Navigate;
8581
+ BarsaApi.Bw.Navigate = (navigation, isRelative, queryParams, data) => {
8582
+ this._parentRoutingService?.navigate(navigation, isRelative, queryParams, data);
8583
+ };
8557
8584
  }
8558
8585
  ngOnDestroy() {
8559
8586
  BarsaApi.Bw.App.GetActiveSystem = this.oldActiveSystem;
8587
+ BarsaApi.Bw.Navigate = this.oldNavigation;
8588
+ BarsaApi.Bw.FormHandler = this.parentContainer;
8589
+ }
8590
+ _showFormPanel(refreshOnly = false) {
8591
+ this._portalService.ShowFormPanelControl(this.formpanelCtrlr, this._router, this._activatedRoute, this._formDialogComponent, this.isFirstPage, this._vcr, refreshOnly);
8592
+ }
8593
+ navigate(navigation, isRelative, queryParams, state) {
8594
+ if (this.masterDetails && !this.isMobile) {
8595
+ this.navigateMasterDetails(navigation, isRelative, queryParams, state);
8596
+ return;
8597
+ }
8598
+ this._router.navigate(navigation, {
8599
+ relativeTo: isRelative ? this._activatedRoute : null,
8600
+ queryParams,
8601
+ preserveFragment: true,
8602
+ state
8603
+ });
8604
+ }
8605
+ navigateMasterDetails(navigation, isRelative, queryParams, data) {
8606
+ if (this._portalService.deviceSize !== 's') {
8607
+ navigation = [{ outlets: { details: [...navigation.filter((_c, index) => index > 0)] } }];
8608
+ }
8609
+ this._router.navigate(navigation, {
8610
+ relativeTo: isRelative ? this._activatedRoute : null,
8611
+ queryParams,
8612
+ preserveFragment: true,
8613
+ state: { ...data }
8614
+ });
8560
8615
  }
8561
8616
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: RoutingService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
8562
8617
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: RoutingService }); }
@@ -8715,6 +8770,27 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.6", ngImpor
8715
8770
  args: [{ providedIn: 'root' }]
8716
8771
  }] });
8717
8772
 
8773
+ class CardViewService {
8774
+ constructor() {
8775
+ this._maxHeaderTitleHeight$ = new BehaviorSubject(0);
8776
+ this._ulvMainService = inject(UlvMainService);
8777
+ }
8778
+ get maxHeaderTitleHeight$() {
8779
+ return this._maxHeaderTitleHeight$.asObservable();
8780
+ }
8781
+ setHeaderHeight(height) {
8782
+ const currHeight = this._maxHeaderTitleHeight$.getValue();
8783
+ if (currHeight < height) {
8784
+ this._maxHeaderTitleHeight$.next(height);
8785
+ }
8786
+ }
8787
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: CardViewService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
8788
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: CardViewService }); }
8789
+ }
8790
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: CardViewService, decorators: [{
8791
+ type: Injectable
8792
+ }] });
8793
+
8718
8794
  class FieldBaseComponent extends BaseComponent {
8719
8795
  get customFieldInfo() {
8720
8796
  return this.context.Setting.CustomFieldInfo;
@@ -9634,7 +9710,7 @@ class ContainerComponent extends BaseComponent {
9634
9710
  this._cdr = inject(ChangeDetectorRef);
9635
9711
  this._renderer2 = inject(Renderer2);
9636
9712
  this._dialogService = inject(DIALOG_SERVICE, { optional: true });
9637
- this._containerServiceParent = inject(ContainerService, { self: false, optional: true });
9713
+ this._parentContainerService = inject(ContainerService, { self: false, optional: true });
9638
9714
  this._containerService = inject(ContainerService, { self: true, optional: true });
9639
9715
  this._formDialogComponent = inject(FORM_DIALOG_COMPONENT, { optional: true });
9640
9716
  this.oldContainerContainer = this._barsaDialogService.containerComponent;
@@ -9651,20 +9727,12 @@ class ContainerComponent extends BaseComponent {
9651
9727
  return this.containerRef;
9652
9728
  }
9653
9729
  ngOnInit() {
9654
- this.parentContainer = BarsaApi.Bw.FormHandler;
9655
- BarsaApi.Bw.FormHandler = this;
9656
- this.oldNavigation = BarsaApi.Bw.Navigate;
9657
- BarsaApi.Bw.Navigate = (navigation, isRelative, queryParams, data) => {
9658
- this._containerServiceParent?.navigate(navigation, isRelative, queryParams, data);
9659
- };
9660
9730
  super.ngOnInit();
9661
9731
  this._containerService?.setViewContainerRef(this.containerRef);
9662
9732
  }
9663
9733
  ngOnDestroy() {
9664
- BarsaApi.Bw.FormHandler = this.parentContainer;
9665
9734
  super.ngOnDestroy();
9666
9735
  this._barsaDialogService.containerComponent = this.oldContainerContainer;
9667
- BarsaApi.Bw.Navigate = this.oldNavigation;
9668
9736
  }
9669
9737
  detach() {
9670
9738
  this._viewRef = this.containerRef.detach();
@@ -9701,6 +9769,8 @@ class PageBaseComponent extends ContainerComponent {
9701
9769
  this.hasRoute = true;
9702
9770
  this.fullscreen = true;
9703
9771
  this.componentsAddedToPage = false;
9772
+ this._parentRoutingService = inject(RoutingService, { skipSelf: true, optional: true });
9773
+ this._routingService = inject(RoutingService, { self: true, optional: true });
9704
9774
  }
9705
9775
  ngAfterViewInit() {
9706
9776
  super.ngAfterViewInit();
@@ -9761,8 +9831,8 @@ class PageBaseComponent extends ContainerComponent {
9761
9831
  controlUi.instance.settings = module.Component.Settings;
9762
9832
  controlUi.instance.activatedRoute = this._activatedRoute;
9763
9833
  let containerRef = this.containerRef;
9764
- if (module.ContainerRef && this[module.ContainerRef]) {
9765
- containerRef = this[module.ContainerRef];
9834
+ if (module.PlaceholderName && this[module.PlaceholderName]) {
9835
+ containerRef = this[module.PlaceholderName];
9766
9836
  } // توسط ماژول مشخص شده کامپوننت در کدام کانتینر پیج قرار گیرد
9767
9837
  if (containerRef) {
9768
9838
  containerRef.insert(controlUi.hostView);
@@ -10230,17 +10300,17 @@ class FilesValidationHelper {
10230
10300
  this.maxFileSize = Number(maxFileSize);
10231
10301
  this.maxTotalFileSize = Number(maxTotalFileSize);
10232
10302
  }
10233
- validateFiles(files) {
10234
- return this._validateSize(files);
10303
+ validateFiles(filesCount, files) {
10304
+ return this._validateSize(filesCount, files);
10235
10305
  }
10236
- _validateSize(files) {
10306
+ _validateSize(filesCount, files) {
10237
10307
  const totalFileSize = files.reduce((accumulator, currFile) => accumulator + currFile.size, 0);
10238
10308
  const uplaodTotalSizeTooBigText = BarsaApi.BBB['Uplaod_TotalSizeTooBig'];
10239
10309
  const uplaodFileTooBigText = BarsaApi.BBB['Uplaod_FileTooBig'];
10240
10310
  const maxFilesExceeded = BarsaApi.BBB['Uplaod_MaxFilesExceeded'];
10241
10311
  let errorMsg = '';
10242
- if (files.length > this.maxFileCount && this.maxFileCount > 0) {
10243
- errorMsg = maxFilesExceeded + `(${this.maxFileCount})`;
10312
+ if (filesCount + files.length > this.maxFileCount + 1 && this.maxFileCount > 0) {
10313
+ errorMsg = `<span dir=ltr>${maxFilesExceeded} </span>` + `(${this.maxFileCount})`;
10244
10314
  }
10245
10315
  const fileReachSize = [];
10246
10316
  files.forEach((file) => {
@@ -10264,7 +10334,7 @@ class FilesValidationHelper {
10264
10334
  .join('<br/>');
10265
10335
  }
10266
10336
  if (errorMsg) {
10267
- BarsaApi.Ul.MsgBox.Error(errorMsg, () => { });
10337
+ BarsaApi.Ul.MsgBox.Error_ShowHtml(errorMsg, () => { });
10268
10338
  return false;
10269
10339
  }
10270
10340
  return true;
@@ -10902,7 +10972,7 @@ class LinearListHelper {
10902
10972
  this.uploadFile(fileAttachment).subscribe();
10903
10973
  }
10904
10974
  uploadToServer(files, key = '') {
10905
- const isValid = this._filesValidationHelper.validateFiles(files);
10975
+ const isValid = this._filesValidationHelper.validateFiles(0, files);
10906
10976
  if (!isValid) {
10907
10977
  return;
10908
10978
  }
@@ -11034,34 +11104,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.6", ngImpor
11034
11104
  class FormPageBaseComponent extends ContainerComponent {
11035
11105
  constructor() {
11036
11106
  super(...arguments);
11107
+ this._routingService = inject(RoutingService, { self: true, optional: true });
11037
11108
  this._containerServiceParent = inject(ContainerService, { skipSelf: true, optional: true });
11038
- /* eslint-disable */
11039
- this.ShowFormPanelControl = (formpanelCtrlr) => {
11040
- this._portalService.ShowFormPanelControl(formpanelCtrlr, this._router, this._activatedRoute, this._formDialogComponent, false, this._vcr);
11041
- };
11042
- /* eslint-disable */
11043
- this.RefreshFormPanelControl = () => {
11044
- const formpanelCtrlr = this._portalService.formPanels[this.formpanelCtrlrId];
11045
- this.parentContainer.RefreshFormPanelControl(formpanelCtrlr);
11046
- };
11047
- /* eslint-disable */
11048
- this.ForceCloseChild = () => {
11049
- this._router.navigate([{ outlets: { popup: null } }], {
11050
- relativeTo: this._activatedRoute
11051
- });
11052
- };
11053
- /* eslint-disable */
11054
- this.ForceClose = () => {
11055
- this.parentContainer.ForceCloseChild();
11056
- };
11057
11109
  }
11058
11110
  ngOnInit() {
11059
11111
  super.ngOnInit();
11112
+ this._routingService && (this._routingService.isFirstPage = false);
11060
11113
  this._activatedRoute.params.pipe(takeUntil(this._onDestroy$)).subscribe((params) => {
11061
11114
  const state = this._router.getCurrentNavigation()?.extras.state;
11062
11115
  this.prepareIds(state?.formPanelCtrlrId, params);
11063
11116
  });
11064
- this.hideAllPageContent();
11065
11117
  }
11066
11118
  ngAfterViewInit() {
11067
11119
  super.ngAfterViewInit();
@@ -11077,16 +11129,6 @@ class FormPageBaseComponent extends ContainerComponent {
11077
11129
  ngOnDestroy() {
11078
11130
  super.ngOnDestroy();
11079
11131
  this._portalService.formPanels[this.formpanelCtrlrId] = null;
11080
- this.removeLastHidePage();
11081
- }
11082
- _resize() {
11083
- this.hideAllPageContent();
11084
- }
11085
- hideAllPageContent() {
11086
- this._containerServiceParent?.hideFormPage();
11087
- }
11088
- removeLastHidePage() {
11089
- this._containerServiceParent?.showFormPage();
11090
11132
  }
11091
11133
  onFormClose() {
11092
11134
  if (this._activatedRoute.snapshot.params.isFirst &&
@@ -11106,12 +11148,6 @@ class FormPageBaseComponent extends ContainerComponent {
11106
11148
  replaceUrl: true
11107
11149
  });
11108
11150
  }
11109
- return;
11110
- const outlet = this._activatedRoute.outlet;
11111
- // let outlets = {};
11112
- // outlets[outlet] = null;
11113
- // if(this.location.getState())
11114
- this._router.navigate([{ outlets: { main: null } }]);
11115
11151
  }
11116
11152
  prepareIds(formpanelCtrlrId, params) {
11117
11153
  this.formpanelCtrlrId = formpanelCtrlrId || params.formPanelCtrlrId;
@@ -11126,7 +11162,7 @@ class FormPageBaseComponent extends ContainerComponent {
11126
11162
  this._cdr.detectChanges();
11127
11163
  }
11128
11164
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: FormPageBaseComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
11129
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.0.6", type: FormPageBaseComponent, isStandalone: false, selector: "bnrc-form-page-base", inputs: { formPanelCtrlr: "formPanelCtrlr", ShowFormPanelControl: "ShowFormPanelControl", RefreshFormPanelControl: "RefreshFormPanelControl", ForceCloseChild: "ForceCloseChild", ForceClose: "ForceClose" }, usesInheritance: true, ngImport: i0, template: '', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
11165
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.0.6", type: FormPageBaseComponent, isStandalone: false, selector: "bnrc-form-page-base", inputs: { formPanelCtrlr: "formPanelCtrlr" }, usesInheritance: true, ngImport: i0, template: '', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
11130
11166
  }
11131
11167
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: FormPageBaseComponent, decorators: [{
11132
11168
  type: Component,
@@ -11138,14 +11174,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.6", ngImpor
11138
11174
  }]
11139
11175
  }], propDecorators: { formPanelCtrlr: [{
11140
11176
  type: Input
11141
- }], ShowFormPanelControl: [{
11142
- type: Input
11143
- }], RefreshFormPanelControl: [{
11144
- type: Input
11145
- }], ForceCloseChild: [{
11146
- type: Input
11147
- }], ForceClose: [{
11148
- type: Input
11149
11177
  }] } });
11150
11178
 
11151
11179
  class FormComponent extends BaseComponent {
@@ -11167,6 +11195,7 @@ class FormComponent extends BaseComponent {
11167
11195
  this._activatedRoute = inject(ActivatedRoute);
11168
11196
  this._router = inject(Router);
11169
11197
  this._containerService = inject(ContainerService, { self: false, optional: true });
11198
+ this._routingService = inject(RoutingService, { skipSelf: true, optional: true });
11170
11199
  el.nativeElement.id = this.uniqueId = getUniqueId(4);
11171
11200
  }
11172
11201
  ngOnInit() {
@@ -11248,9 +11277,9 @@ class FormComponent extends BaseComponent {
11248
11277
  formpanelCtrlr.UlvMainCtrlr = this.UlvMainCtrlr;
11249
11278
  formpanelCtrlr.Setting = formSetting;
11250
11279
  formpanelCtrlr.InlineEditInReport = this.inlineEditInReport;
11251
- if (this._containerService) {
11252
- this._containerService.FormPanelCtrlr = formpanelCtrlr;
11253
- formpanelCtrlr.Page = this._containerService;
11280
+ if (this._routingService) {
11281
+ this._routingService.FormPanelCtrlr = formpanelCtrlr;
11282
+ formpanelCtrlr.Page = this._routingService;
11254
11283
  }
11255
11284
  const nav = this._router.getCurrentNavigation();
11256
11285
  formpanelCtrlr.FormRequestParams.state = nav?.extras.state;
@@ -11455,7 +11484,7 @@ class FormPageComponent extends FormPageBaseComponent {
11455
11484
  super.ngOnInit();
11456
11485
  }
11457
11486
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: FormPageComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
11458
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.0.6", type: FormPageComponent, isStandalone: false, selector: "bnrc-form-page", inputs: { formPanelCtrlr: "formPanelCtrlr" }, host: { properties: { "class.section": "this.sectionClass", "class.absolute-page": "this.absolutePageClass" } }, providers: [FormService, ContainerService], viewQueries: [{ propertyName: "_placeHolderTemplate", first: true, predicate: ["placeHolderTemplate"], descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: `
11487
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.0.6", type: FormPageComponent, isStandalone: false, selector: "bnrc-form-page", inputs: { formPanelCtrlr: "formPanelCtrlr" }, host: { properties: { "class.section": "this.sectionClass", "class.absolute-page": "this.absolutePageClass" } }, providers: [FormService, RoutingService, ContainerService], viewQueries: [{ propertyName: "_placeHolderTemplate", first: true, predicate: ["placeHolderTemplate"], descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: `
11459
11488
  <ng-template #placeHolderTemplate>
11460
11489
  <bnrc-form
11461
11490
  [formPanelCtrl]="formPanelCtrlr"
@@ -11481,7 +11510,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.6", ngImpor
11481
11510
  </ng-template>
11482
11511
  <ng-container #containerRef> </ng-container>
11483
11512
  <router-outlet></router-outlet>
11484
- `, providers: [FormService, ContainerService], changeDetection: ChangeDetectionStrategy.OnPush, standalone: false, styles: [":host{display:block;background:var(--sapBackgroundColor)}\n"] }]
11513
+ `, providers: [FormService, RoutingService, ContainerService], changeDetection: ChangeDetectionStrategy.OnPush, standalone: false, styles: [":host{display:block;background:var(--sapBackgroundColor)}\n"] }]
11485
11514
  }], propDecorators: { _placeHolderTemplate: [{
11486
11515
  type: ViewChild,
11487
11516
  args: ['placeHolderTemplate', { static: true }]
@@ -11686,8 +11715,8 @@ class EmptyPageComponent extends PageWithFormHandlerBaseComponent {
11686
11715
  const isModal = this.settings?.IsModal;
11687
11716
  const isRelativePage = this._activatedRoute.snapshot.data?.pageData?.Component?.Settings?.IsRelativePage;
11688
11717
  if (isRelativePage || isModal) {
11689
- if (this._containerServiceParent) {
11690
- this._containerServiceParent.detachParent = false;
11718
+ if (this._parentContainerService) {
11719
+ this._parentContainerService.detachParent = false;
11691
11720
  }
11692
11721
  else {
11693
11722
  this._log.error(nullOrUndefinedString('EmptyPageComponent=> _containerService'));
@@ -11706,7 +11735,7 @@ class EmptyPageComponent extends PageWithFormHandlerBaseComponent {
11706
11735
  }
11707
11736
  }
11708
11737
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: EmptyPageComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
11709
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.0.6", type: EmptyPageComponent, isStandalone: false, selector: "bnrc-empty-page", host: { properties: { "style.position": "this._position", "class.section": "this.sectionClass", "class.absolute-page": "this.absolutePageClass", "class.modal": "this.ismodal" } }, providers: [ContainerService], usesInheritance: true, ngImport: i0, template: `<ng-container #containerRef></ng-container>
11738
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.0.6", type: EmptyPageComponent, isStandalone: false, selector: "bnrc-empty-page", host: { properties: { "style.position": "this._position", "class.section": "this.sectionClass", "class.absolute-page": "this.absolutePageClass", "class.modal": "this.ismodal" } }, providers: [RoutingService, ContainerService], usesInheritance: true, ngImport: i0, template: `<ng-container #containerRef></ng-container>
11710
11739
  <router-outlet></router-outlet>
11711
11740
  <router-outlet name="dialog"></router-outlet>`, isInline: true, styles: [":host{display:block}\n"], dependencies: [{ kind: "directive", type: i1.RouterOutlet, selector: "router-outlet", inputs: ["name", "routerOutletData"], outputs: ["activate", "deactivate", "attach", "detach"], exportAs: ["outlet"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
11712
11741
  }
@@ -11714,7 +11743,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.6", ngImpor
11714
11743
  type: Component,
11715
11744
  args: [{ selector: 'bnrc-empty-page', template: `<ng-container #containerRef></ng-container>
11716
11745
  <router-outlet></router-outlet>
11717
- <router-outlet name="dialog"></router-outlet>`, providers: [ContainerService], changeDetection: ChangeDetectionStrategy.OnPush, standalone: false, styles: [":host{display:block}\n"] }]
11746
+ <router-outlet name="dialog"></router-outlet>`, providers: [RoutingService, ContainerService], changeDetection: ChangeDetectionStrategy.OnPush, standalone: false, styles: [":host{display:block}\n"] }]
11718
11747
  }], propDecorators: { _position: [{
11719
11748
  type: HostBinding,
11720
11749
  args: ['style.position']
@@ -11741,8 +11770,8 @@ class MasterDetailsPageComponent extends PageWithFormHandlerBaseComponent {
11741
11770
  this.settings = BarsaApi.Common.Util.TryGetValue(this._activatedRoute, 'data._value.pageData.Component.Settings', null);
11742
11771
  const isModal = this.settings?.IsModal;
11743
11772
  if (isModal) {
11744
- if (this._containerServiceParent) {
11745
- this._containerServiceParent.detachParent = false;
11773
+ if (this._parentContainerService) {
11774
+ this._parentContainerService.detachParent = false;
11746
11775
  }
11747
11776
  else {
11748
11777
  this._log.error(nullOrUndefinedString('EmptyPageComponent=> _containerService'));
@@ -11751,7 +11780,7 @@ class MasterDetailsPageComponent extends PageWithFormHandlerBaseComponent {
11751
11780
  this.ismodal = true;
11752
11781
  }
11753
11782
  super.ngOnInit();
11754
- this._containerServiceParent && (this._containerServiceParent.masterDetails = true);
11783
+ this._routingService && (this._routingService.masterDetails = true);
11755
11784
  // if (!BarsaApi.LoginFormData.IsServiceDesk && !isModal) {
11756
11785
  // this._position = 'initial';
11757
11786
  // }
@@ -11760,7 +11789,7 @@ class MasterDetailsPageComponent extends PageWithFormHandlerBaseComponent {
11760
11789
  }
11761
11790
  }
11762
11791
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: MasterDetailsPageComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
11763
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.0.6", type: MasterDetailsPageComponent, isStandalone: false, selector: "bnrc-master-details-page", host: { properties: { "style.position": "this._position", "class.section": "this.sectionClass", "class.absolute-page": "this.absolutePageClass", "class.modal": "this.ismodal" } }, providers: [ContainerService], usesInheritance: true, ngImport: i0, template: `
11792
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.0.6", type: MasterDetailsPageComponent, isStandalone: false, selector: "bnrc-master-details-page", host: { properties: { "style.position": "this._position", "class.section": "this.sectionClass", "class.absolute-page": "this.absolutePageClass", "class.modal": "this.ismodal" } }, providers: [RoutingService, ContainerService], usesInheritance: true, ngImport: i0, template: `
11764
11793
  <div class="tw-flex tw-h-full tw-w-full tw-flex-col md:tw-flex-row">
11765
11794
  <!-- لیست -->
11766
11795
  <div
@@ -11796,7 +11825,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.6", ngImpor
11796
11825
  </div>
11797
11826
  <router-outlet></router-outlet>
11798
11827
  <router-outlet name="dialog"></router-outlet>
11799
- `, providers: [ContainerService], changeDetection: ChangeDetectionStrategy.OnPush, standalone: false, styles: [":host{display:block}\n"] }]
11828
+ `, providers: [RoutingService, ContainerService], changeDetection: ChangeDetectionStrategy.OnPush, standalone: false, styles: [":host{display:block}\n"] }]
11800
11829
  }], propDecorators: { _position: [{
11801
11830
  type: HostBinding,
11802
11831
  args: ['style.position']
@@ -11811,20 +11840,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.6", ngImpor
11811
11840
  args: ['class.modal']
11812
11841
  }] } });
11813
11842
 
11814
- class RedirectReportNavigatorCommandComponent extends BaseComponent {
11815
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: RedirectReportNavigatorCommandComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
11816
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.0.6", type: RedirectReportNavigatorCommandComponent, isStandalone: false, selector: "bnrc-redirect-report-navigator-command", usesInheritance: true, ngImport: i0, template: "", styles: [""], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
11817
- }
11818
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: RedirectReportNavigatorCommandComponent, decorators: [{
11819
- type: Component,
11820
- args: [{ selector: 'bnrc-redirect-report-navigator-command', changeDetection: ChangeDetectionStrategy.OnPush, standalone: false, template: "" }]
11821
- }] });
11822
-
11823
11843
  class PortalPageComponent extends PageWithFormHandlerBaseComponent {
11824
- constructor() {
11825
- super(...arguments);
11826
- this._routingService = inject(RoutingService);
11827
- }
11828
11844
  ngOnInit() {
11829
11845
  super.ngOnInit();
11830
11846
  this.addModulesToDom();
@@ -12128,7 +12144,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.6", ngImpor
12128
12144
 
12129
12145
  class DynamicItemComponent extends BaseDynamicComponent {
12130
12146
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: DynamicItemComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
12131
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.0.6", type: DynamicItemComponent, isStandalone: false, selector: "bnrc-dynamic-item-component", inputs: { mo: "mo", allColumns: "allColumns", moDataList: "moDataList", columns: "columns", column: "column", index: "index", last: "last", hideOpenIcon: "hideOpenIcon", deviceName: "deviceName", deviceSize: "deviceSize", rtl: "rtl", editMode: "editMode", setting: "setting", parameters: "parameters", contextMenuItems: "contextMenuItems", canView: "canView", showRowNumber: "showRowNumber", rowNumber: "rowNumber", formSetting: "formSetting", conditionalFormats: "conditionalFormats", disableOverflowContextMenu: "disableOverflowContextMenu", navigationArrow: "navigationArrow", isCheckList: "isCheckList", fields: "fields", isChecked: "isChecked", layout94$: "layout94$", inlineEditMode: "inlineEditMode", isNewInlineMo: "isNewInlineMo", allowInlineEdit: "allowInlineEdit", typeDefId: "typeDefId", rowIndicator: "rowIndicator", rowIndicatorColor: "rowIndicatorColor", UlvMainCtrlr: "UlvMainCtrlr" }, usesInheritance: true, ngImport: i0, template: `<ng-container #componentContainer></ng-container>`, isInline: true, styles: [":host{display:contents}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
12147
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.0.6", type: DynamicItemComponent, isStandalone: false, selector: "bnrc-dynamic-item-component", inputs: { mo: "mo", allColumns: "allColumns", moDataList: "moDataList", columns: "columns", column: "column", index: "index", last: "last", hideOpenIcon: "hideOpenIcon", deviceName: "deviceName", deviceSize: "deviceSize", rtl: "rtl", editMode: "editMode", setting: "setting", parameters: "parameters", contextMenuItems: "contextMenuItems", canView: "canView", showRowNumber: "showRowNumber", rowNumber: "rowNumber", formSetting: "formSetting", conditionalFormats: "conditionalFormats", disableOverflowContextMenu: "disableOverflowContextMenu", navigationArrow: "navigationArrow", isCheckList: "isCheckList", maxHeightHeader: "maxHeightHeader", fields: "fields", isChecked: "isChecked", layout94$: "layout94$", inlineEditMode: "inlineEditMode", isNewInlineMo: "isNewInlineMo", allowInlineEdit: "allowInlineEdit", typeDefId: "typeDefId", rowIndicator: "rowIndicator", rowIndicatorColor: "rowIndicatorColor", UlvMainCtrlr: "UlvMainCtrlr" }, usesInheritance: true, ngImport: i0, template: `<ng-container #componentContainer></ng-container>`, isInline: true, styles: [":host{display:contents}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
12132
12148
  }
12133
12149
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: DynamicItemComponent, decorators: [{
12134
12150
  type: Component,
@@ -12179,6 +12195,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.6", ngImpor
12179
12195
  type: Input
12180
12196
  }], isCheckList: [{
12181
12197
  type: Input
12198
+ }], maxHeightHeader: [{
12199
+ type: Input
12182
12200
  }], fields: [{
12183
12201
  type: Input
12184
12202
  }], isChecked: [{
@@ -12201,6 +12219,19 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.6", ngImpor
12201
12219
  type: Input
12202
12220
  }] } });
12203
12221
 
12222
+ class CardDynamicItemComponent extends DynamicItemComponent {
12223
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: CardDynamicItemComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
12224
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.0.6", type: CardDynamicItemComponent, isStandalone: false, selector: "bnrc-card-dynamic-item-component", inputs: { columnTemplate: "columnTemplate", extendedHeaderTemplate: "extendedHeaderTemplate" }, usesInheritance: true, ngImport: i0, template: `<ng-container #componentContainer></ng-container>`, isInline: true, styles: [":host{display:contents}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
12225
+ }
12226
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: CardDynamicItemComponent, decorators: [{
12227
+ type: Component,
12228
+ args: [{ selector: 'bnrc-card-dynamic-item-component', template: `<ng-container #componentContainer></ng-container>`, changeDetection: ChangeDetectionStrategy.OnPush, standalone: false, styles: [":host{display:contents}\n"] }]
12229
+ }], propDecorators: { columnTemplate: [{
12230
+ type: Input
12231
+ }], extendedHeaderTemplate: [{
12232
+ type: Input
12233
+ }] } });
12234
+
12204
12235
  class BaseViewPropsComponent extends BaseComponent {
12205
12236
  constructor() {
12206
12237
  super(...arguments);
@@ -12367,7 +12398,7 @@ class BaseViewContentPropsComponent extends BaseViewPropsComponent {
12367
12398
  this.actionListClick = new EventEmitter();
12368
12399
  }
12369
12400
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: BaseViewContentPropsComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
12370
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.0.6", type: BaseViewContentPropsComponent, isStandalone: false, selector: "bnrc-base-view-content-props", inputs: { moDataList: "moDataList", setting: "setting" }, outputs: { actionListClick: "actionListClick" }, usesInheritance: true, ngImport: i0, template: ``, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
12401
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.0.6", type: BaseViewContentPropsComponent, isStandalone: false, selector: "bnrc-base-view-content-props", inputs: { moDataList: "moDataList", maxHeightHeader: "maxHeightHeader", setting: "setting" }, outputs: { actionListClick: "actionListClick" }, usesInheritance: true, ngImport: i0, template: ``, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
12371
12402
  }
12372
12403
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: BaseViewContentPropsComponent, decorators: [{
12373
12404
  type: Component,
@@ -12379,6 +12410,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.6", ngImpor
12379
12410
  }]
12380
12411
  }], propDecorators: { moDataList: [{
12381
12412
  type: Input
12413
+ }], maxHeightHeader: [{
12414
+ type: Input
12382
12415
  }], setting: [{
12383
12416
  type: Input
12384
12417
  }], actionListClick: [{
@@ -12824,7 +12857,7 @@ class BaseViewItemPropsComponent extends BaseViewPropsComponent {
12824
12857
  });
12825
12858
  }
12826
12859
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: BaseViewItemPropsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
12827
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.0.6", type: BaseViewItemPropsComponent, isStandalone: false, selector: "bnrc-base-view-item-props", inputs: { checkboxComponent: "checkboxComponent", disableEllapsis: "disableEllapsis", isslider: "isslider", attachmentViewType: "attachmentViewType", contextMenuOverflowText: "contextMenuOverflowText", detailsComponent: "detailsComponent", detailsColumns: "detailsColumns", detailsText: "detailsText", mo: "mo", moDataListCount: "moDataListCount", index: "index", last: "last", isdirty: "isdirty", isChecked: "isChecked", hideDetailsText: "hideDetailsText", showViewButton: "showViewButton", isNewInlineMo: "isNewInlineMo", extraRelation: "extraRelation", hideOpenIcon: "hideOpenIcon", inlineEditWithoutSelection: "inlineEditWithoutSelection", inDialog: "inDialog", isMobile: "isMobile", isMultiSelect: "isMultiSelect", rowIndicator: "rowIndicator", groupSummary: "groupSummary", isLastChildGroup: "isLastChildGroup", showRowNumber: "showRowNumber", rowNumber: "rowNumber", coloringRow: "coloringRow", noSaveInlineEditInServer: "noSaveInlineEditInServer", rowIndicatorColor: "rowIndicatorColor", UlvMainCtrlr: "UlvMainCtrlr", fieldDict: "fieldDict", actionList: "actionList", serializedRelatedMo: "serializedRelatedMo", cartableTemplate: "cartableTemplate", cartableMo: "cartableMo", cartableWorkflowData: "cartableWorkflowData" }, outputs: { actionListClick: "actionListClick", events: "events" }, viewQueries: [{ propertyName: "_cartableFormRef", first: true, predicate: ["cartableFormRef"], descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: ``, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
12860
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.0.6", type: BaseViewItemPropsComponent, isStandalone: false, selector: "bnrc-base-view-item-props", inputs: { checkboxComponent: "checkboxComponent", disableEllapsis: "disableEllapsis", isslider: "isslider", attachmentViewType: "attachmentViewType", contextMenuOverflowText: "contextMenuOverflowText", detailsComponent: "detailsComponent", detailsColumns: "detailsColumns", detailsText: "detailsText", mo: "mo", moDataListCount: "moDataListCount", index: "index", last: "last", isdirty: "isdirty", isChecked: "isChecked", hideDetailsText: "hideDetailsText", showViewButton: "showViewButton", isNewInlineMo: "isNewInlineMo", extraRelation: "extraRelation", hideOpenIcon: "hideOpenIcon", inlineEditWithoutSelection: "inlineEditWithoutSelection", inDialog: "inDialog", isMobile: "isMobile", isMultiSelect: "isMultiSelect", rowIndicator: "rowIndicator", groupSummary: "groupSummary", isLastChildGroup: "isLastChildGroup", showRowNumber: "showRowNumber", rowNumber: "rowNumber", coloringRow: "coloringRow", noSaveInlineEditInServer: "noSaveInlineEditInServer", rowIndicatorColor: "rowIndicatorColor", maxHeightHeader: "maxHeightHeader", UlvMainCtrlr: "UlvMainCtrlr", fieldDict: "fieldDict", actionList: "actionList", serializedRelatedMo: "serializedRelatedMo", cartableTemplate: "cartableTemplate", cartableMo: "cartableMo", cartableWorkflowData: "cartableWorkflowData" }, outputs: { actionListClick: "actionListClick", events: "events" }, viewQueries: [{ propertyName: "_cartableFormRef", first: true, predicate: ["cartableFormRef"], descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: ``, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
12828
12861
  }
12829
12862
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: BaseViewItemPropsComponent, decorators: [{
12830
12863
  type: Component,
@@ -12903,6 +12936,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.6", ngImpor
12903
12936
  type: Input
12904
12937
  }], rowIndicatorColor: [{
12905
12938
  type: Input
12939
+ }], maxHeightHeader: [{
12940
+ type: Input
12906
12941
  }], UlvMainCtrlr: [{
12907
12942
  type: Input
12908
12943
  }], fieldDict: [{
@@ -12928,9 +12963,26 @@ class BaseItemContentPropsComponent extends BaseComponent {
12928
12963
  this._cdr = inject(ChangeDetectorRef);
12929
12964
  this._el = inject(ElementRef);
12930
12965
  this._renderer2 = inject(Renderer2);
12966
+ this._ulvMainService = inject(UlvMainService);
12967
+ }
12968
+ ngOnChanges(changes) {
12969
+ super.ngOnChanges(changes);
12970
+ let detectChanges = false;
12971
+ Object.keys(changes).forEach((key) => {
12972
+ if (!changes[key].firstChange) {
12973
+ this[key] = changes[key].currentValue;
12974
+ detectChanges = true;
12975
+ }
12976
+ });
12977
+ if (detectChanges) {
12978
+ this.detectChanges();
12979
+ }
12980
+ }
12981
+ detectChanges() {
12982
+ this._cdr.detectChanges();
12931
12983
  }
12932
12984
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: BaseItemContentPropsComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
12933
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.0.6", type: BaseItemContentPropsComponent, isStandalone: false, selector: "bnrc-base-item-content-props", inputs: { mo: "mo", allColumns: "allColumns", column: "column", index: "index", styleIndex: "styleIndex", deviceName: "deviceName", deviceSize: "deviceSize", rtl: "rtl", editMode: "editMode", setting: "setting", parameters: "parameters", contextMenuItems: "contextMenuItems", canView: "canView", conditionalFormats: "conditionalFormats", disableOverflowContextMenu: "disableOverflowContextMenu", navigationArrow: "navigationArrow", isCheckList: "isCheckList", fields: "fields", isChecked: "isChecked", hideOpenIcon: "hideOpenIcon", layout94$: "layout94$", inlineEditMode: "inlineEditMode", allowInlineEdit: "allowInlineEdit", isNewInlineMo: "isNewInlineMo", formSetting: "formSetting", typeDefId: "typeDefId", UlvMainCtrlr: "UlvMainCtrlr" }, outputs: { events: "events" }, usesInheritance: true, ngImport: i0, template: ``, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
12985
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.0.6", type: BaseItemContentPropsComponent, isStandalone: false, selector: "bnrc-base-item-content-props", inputs: { mo: "mo", allColumns: "allColumns", column: "column", index: "index", styleIndex: "styleIndex", deviceName: "deviceName", deviceSize: "deviceSize", rtl: "rtl", editMode: "editMode", setting: "setting", parameters: "parameters", contextMenuItems: "contextMenuItems", canView: "canView", conditionalFormats: "conditionalFormats", disableOverflowContextMenu: "disableOverflowContextMenu", navigationArrow: "navigationArrow", isCheckList: "isCheckList", fields: "fields", isChecked: "isChecked", hideOpenIcon: "hideOpenIcon", layout94$: "layout94$", inlineEditMode: "inlineEditMode", allowInlineEdit: "allowInlineEdit", isNewInlineMo: "isNewInlineMo", formSetting: "formSetting", typeDefId: "typeDefId", maxHeightHeader: "maxHeightHeader", UlvMainCtrlr: "UlvMainCtrlr" }, outputs: { events: "events" }, usesInheritance: true, usesOnChanges: true, ngImport: i0, template: ``, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
12934
12986
  }
12935
12987
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: BaseItemContentPropsComponent, decorators: [{
12936
12988
  type: Component,
@@ -12994,10 +13046,30 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.6", ngImpor
12994
13046
  type: Input
12995
13047
  }], typeDefId: [{
12996
13048
  type: Input
13049
+ }], maxHeightHeader: [{
13050
+ type: Input
12997
13051
  }], UlvMainCtrlr: [{
12998
13052
  type: Input
12999
13053
  }] } });
13000
13054
 
13055
+ class CardBaseItemContentPropsComponent extends BaseItemContentPropsComponent {
13056
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: CardBaseItemContentPropsComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
13057
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.0.6", type: CardBaseItemContentPropsComponent, isStandalone: false, selector: "bnrc-card-base-item-content-props", inputs: { columnTemplate: "columnTemplate", extendedHeaderTemplate: "extendedHeaderTemplate" }, usesInheritance: true, ngImport: i0, template: ``, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
13058
+ }
13059
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: CardBaseItemContentPropsComponent, decorators: [{
13060
+ type: Component,
13061
+ args: [{
13062
+ selector: 'bnrc-card-base-item-content-props',
13063
+ template: ``,
13064
+ changeDetection: ChangeDetectionStrategy.OnPush,
13065
+ standalone: false
13066
+ }]
13067
+ }], propDecorators: { columnTemplate: [{
13068
+ type: Input
13069
+ }], extendedHeaderTemplate: [{
13070
+ type: Input
13071
+ }] } });
13072
+
13001
13073
  class BaseFormToolbaritemPropsComponent extends BaseComponent {
13002
13074
  constructor() {
13003
13075
  super(...arguments);
@@ -13343,11 +13415,12 @@ class RootPortalComponent extends PageBaseComponent {
13343
13415
  super(...arguments);
13344
13416
  this._dir = 'ltr';
13345
13417
  this.isRoot = true;
13346
- this.inLocalMode = true;
13418
+ this.inLocalMode = signal(false);
13347
13419
  }
13348
13420
  ngOnInit() {
13349
13421
  super.ngOnInit();
13350
- this.inLocalMode = isInLocalMode();
13422
+ this.addModulesToDom();
13423
+ this.inLocalMode.set(isInLocalMode());
13351
13424
  this._portalService.rtl$.subscribe((c) => {
13352
13425
  this._dir = c ? 'rtl' : 'ltr';
13353
13426
  });
@@ -13423,7 +13496,7 @@ class RootPortalComponent extends PageBaseComponent {
13423
13496
  }
13424
13497
  }
13425
13498
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: RootPortalComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
13426
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.0.6", type: RootPortalComponent, isStandalone: false, selector: "bnrc-root-portal", host: { properties: { "attr.dir": "this._dir", "attr.devicesize": "this._deviceSize" } }, providers: [ContainerService], viewQueries: [{ propertyName: "sectionRef", first: true, predicate: ["sectionRef"], descendants: true }, { propertyName: "footerRefVcr", first: true, predicate: ["footerRef"], descendants: true, read: ViewContainerRef }], usesInheritance: true, ngImport: i0, template: `
13499
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.0.6", type: RootPortalComponent, isStandalone: false, selector: "bnrc-root-portal", host: { properties: { "attr.dir": "this._dir", "attr.devicesize": "this._deviceSize" } }, viewQueries: [{ propertyName: "sectionRef", first: true, predicate: ["sectionRef"], descendants: true }, { propertyName: "footerRefVcr", first: true, predicate: ["footerRef"], descendants: true, read: ViewContainerRef }], usesInheritance: true, ngImport: i0, template: `
13427
13500
  <div
13428
13501
  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
13429
13502
  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"
@@ -13447,7 +13520,7 @@ class RootPortalComponent extends PageBaseComponent {
13447
13520
  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
13448
13521
  2xl:tw-grid-cols-10 2xl:tw-grid-cols-11 2xl:tw-grid-cols-12"
13449
13522
  ></div>
13450
- @if(inLocalMode){
13523
+ @if(inLocalMode()){
13451
13524
  <div class="fd-toolbar" style="flex-wrap:wrap;padding:0.5rem;height:auto">
13452
13525
  <button class="fd-button fd-button--attention is-compact" (click)="onRemoveOfflineData()">
13453
13526
  حذف اطلاعات آفلاین
@@ -13478,7 +13551,7 @@ class RootPortalComponent extends PageBaseComponent {
13478
13551
  </div>
13479
13552
  </div>
13480
13553
  }
13481
- <section loadExternalFiles class="section" id="mainpage" #sectionRef>
13554
+ <section loadExternalFiles class="tw-invisible section" id="mainpage" #sectionRef>
13482
13555
  <div #containerRef></div>
13483
13556
  </section>
13484
13557
  <div class="page-wrapper">
@@ -13520,7 +13593,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.6", ngImpor
13520
13593
  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
13521
13594
  2xl:tw-grid-cols-10 2xl:tw-grid-cols-11 2xl:tw-grid-cols-12"
13522
13595
  ></div>
13523
- @if(inLocalMode){
13596
+ @if(inLocalMode()){
13524
13597
  <div class="fd-toolbar" style="flex-wrap:wrap;padding:0.5rem;height:auto">
13525
13598
  <button class="fd-button fd-button--attention is-compact" (click)="onRemoveOfflineData()">
13526
13599
  حذف اطلاعات آفلاین
@@ -13551,7 +13624,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.6", ngImpor
13551
13624
  </div>
13552
13625
  </div>
13553
13626
  }
13554
- <section loadExternalFiles class="section" id="mainpage" #sectionRef>
13627
+ <section loadExternalFiles class="tw-invisible section" id="mainpage" #sectionRef>
13555
13628
  <div #containerRef></div>
13556
13629
  </section>
13557
13630
  <div class="page-wrapper">
@@ -13565,7 +13638,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.6", ngImpor
13565
13638
  <bnrc-push-banner></bnrc-push-banner>
13566
13639
  `,
13567
13640
  changeDetection: ChangeDetectionStrategy.OnPush,
13568
- providers: [ContainerService],
13569
13641
  standalone: false
13570
13642
  }]
13571
13643
  }], propDecorators: { sectionRef: [{
@@ -14635,8 +14707,6 @@ class EllapsisTextDirective extends BaseDirective {
14635
14707
  entries.forEach((entry) => {
14636
14708
  if (entry.target === this._el.nativeElement) {
14637
14709
  this._widthChange$.next(entry.target.offsetWidth);
14638
- // console.log('width', entry);
14639
- // console.log('height', entry.contentRect.height);
14640
14710
  }
14641
14711
  });
14642
14712
  });
@@ -16466,6 +16536,102 @@ var barsaSapUiFormPage_module = /*#__PURE__*/Object.freeze({
16466
16536
  BarsaSapUiFormPageModule: BarsaSapUiFormPageModule
16467
16537
  });
16468
16538
 
16539
+ class ReportNavigatorComponent extends BaseComponent {
16540
+ /** Inserted by Angular inject() migration for backwards compatibility */
16541
+ constructor() {
16542
+ super();
16543
+ this.minheight = '100svh';
16544
+ this._activatedRoute = inject(ActivatedRoute);
16545
+ this._portalService = inject(PortalService);
16546
+ this._applicationCtrlService = inject(ApplicationCtrlrService);
16547
+ this._injector = inject(Injector);
16548
+ this._cdr = inject(ChangeDetectorRef);
16549
+ this._loadingSource = new BehaviorSubject(false);
16550
+ this.loading$ = this._loadingSource.asObservable().pipe(takeUntil(this._onDestroy$), debounceTime(200));
16551
+ }
16552
+ ngOnInit() {
16553
+ super.ngOnInit();
16554
+ this._activatedRoute.params
16555
+ .pipe(takeUntil(this._onDestroy$), tap(() => this._setLoading(true)), map((params) => ({
16556
+ Id: params.id.split('__')[0],
16557
+ ReportId: params.id.split('__').length > 2 ? params.id.split('__')[2] : '',
16558
+ ReportId2: params.id.split('__').length > 1 ? params.id.split('__')[1] : '',
16559
+ isReportPage: params.id.split('__').length > 3 ? params.id.split('__')[3] : null
16560
+ })), tap((c) => (c.isReportPage ? (this.minheight = 'auto') : '100vh')), tap((c) => (c.ReportId = !c.ReportId ? c.ReportId2 : c.ReportId)), tap((_c) => this.containerRef.clear()), tap((navItem) => this._applicationCtrlService.selectNavGroupItem(navItem.Id)), tap((navItem) => this._applicationCtrlService.selectedReportId(navItem.ReportId || navItem.ReportId2)), switchMap((navItem) => this._portalService
16561
+ .renderUlvMainUi(navItem, this.containerRef, this._injector, navItem.isReportPage ? false : true)
16562
+ .pipe(catchError((_err) =>
16563
+ // this._location.back();
16564
+ // return throwError(() => new Error(err));
16565
+ of(true)))), tap((ulv) => this._setActiveReport(ulv)), finalize(() => {
16566
+ this._setLoading(false);
16567
+ }))
16568
+ .subscribe(() => {
16569
+ this._setLoading(false);
16570
+ });
16571
+ }
16572
+ ngOnDestroy() {
16573
+ super.ngOnDestroy();
16574
+ // this._applicationCtrlService.selectNavGroupItem('');
16575
+ this._setActiveReport(null);
16576
+ }
16577
+ _setLoading(val) {
16578
+ this._loadingSource.next(val);
16579
+ this._cdr.detectChanges();
16580
+ }
16581
+ _setActiveReport(ulv) {
16582
+ BarsaApi.Bw.App.GetActiveReport = () => {
16583
+ if (ulv === null) {
16584
+ return ulv;
16585
+ }
16586
+ return BarsaApi.Bw._wrap(ulv);
16587
+ };
16588
+ }
16589
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: ReportNavigatorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
16590
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.0.6", type: ReportNavigatorComponent, isStandalone: false, selector: "bnrc-report-navigator", host: { properties: { "style.min-height": "this.minheight" } }, viewQueries: [{ propertyName: "containerRef", first: true, predicate: ["containerRef"], descendants: true, read: ViewContainerRef, static: true }], usesInheritance: true, ngImport: i0, template: `<ng-container #containerRef></ng-container>`, isInline: true, styles: [":host{display:block;width:100%;background:var(--sapBaseColor)}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
16591
+ }
16592
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: ReportNavigatorComponent, decorators: [{
16593
+ type: Component,
16594
+ args: [{ selector: 'bnrc-report-navigator', template: `<ng-container #containerRef></ng-container>`, changeDetection: ChangeDetectionStrategy.OnPush, standalone: false, styles: [":host{display:block;width:100%;background:var(--sapBaseColor)}\n"] }]
16595
+ }], ctorParameters: () => [], propDecorators: { containerRef: [{
16596
+ type: ViewChild,
16597
+ args: ['containerRef', { static: true, read: ViewContainerRef }]
16598
+ }], minheight: [{
16599
+ type: HostBinding,
16600
+ args: ['style.min-height']
16601
+ }] } });
16602
+
16603
+ class ReportEmptyPageComponent extends PageWithFormHandlerBaseComponent {
16604
+ constructor() {
16605
+ super(...arguments);
16606
+ this._injecotr = inject(Injector);
16607
+ }
16608
+ ngOnInit() {
16609
+ this.containerRef.insert(this.blockTemplate.createEmbeddedView(this, this._injecotr));
16610
+ super.ngOnInit();
16611
+ }
16612
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: ReportEmptyPageComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
16613
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.0.6", type: ReportEmptyPageComponent, isStandalone: false, selector: "bnrc-report-empty-page", providers: [RoutingService, ContainerService], viewQueries: [{ propertyName: "blockTemplate", first: true, predicate: ["block"], descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: `
16614
+ <ng-template #block>
16615
+ <bnrc-report-navigator></bnrc-report-navigator>
16616
+ </ng-template>
16617
+ <ng-container #containerRef></ng-container>
16618
+ <router-outlet></router-outlet>
16619
+ `, isInline: true, styles: [":host{display:block}\n"], dependencies: [{ kind: "directive", type: i1.RouterOutlet, selector: "router-outlet", inputs: ["name", "routerOutletData"], outputs: ["activate", "deactivate", "attach", "detach"], exportAs: ["outlet"] }, { kind: "component", type: ReportNavigatorComponent, selector: "bnrc-report-navigator" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
16620
+ }
16621
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: ReportEmptyPageComponent, decorators: [{
16622
+ type: Component,
16623
+ args: [{ selector: 'bnrc-report-empty-page', template: `
16624
+ <ng-template #block>
16625
+ <bnrc-report-navigator></bnrc-report-navigator>
16626
+ </ng-template>
16627
+ <ng-container #containerRef></ng-container>
16628
+ <router-outlet></router-outlet>
16629
+ `, providers: [RoutingService, ContainerService], changeDetection: ChangeDetectionStrategy.OnPush, standalone: false, styles: [":host{display:block}\n"] }]
16630
+ }], propDecorators: { blockTemplate: [{
16631
+ type: ViewChild,
16632
+ args: ['block', { static: true }]
16633
+ }] } });
16634
+
16469
16635
  class BaseController {
16470
16636
  /**
16471
16637
  *
@@ -16554,35 +16720,54 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.6", ngImpor
16554
16720
  args: ['class.mobile']
16555
16721
  }] } });
16556
16722
 
16557
- class CustomRouteReuseStategy {
16558
- constructor() {
16559
- this.handlers = {};
16560
- }
16723
+ // دیکشنری برای نگهداری کامپوننت‌های Detach شده
16724
+ const routeStorage = {};
16725
+ const REUSE_PROPERTY = 'ReuseRoute';
16726
+ class CustomRouteReuseStrategy {
16727
+ // تصمیم می‌گیرد که آیا یک روَت باید Detach و ذخیره شود یا نه.
16728
+ // ما فقط روَت‌هایی را که در data مشخص شده‌اند، Detach می‌کنیم.
16561
16729
  shouldDetach(route) {
16562
- return route.data.shouldReuse || false;
16730
+ // برای روَت‌های اصلی که می‌خواهید حفظ شوند
16731
+ const isReuse = !!BarsaApi.Common.Util.TryGetValue(route, `data.pageData.${REUSE_PROPERTY}`);
16732
+ return isReuse;
16563
16733
  }
16734
+ // کامپوننت Detach شده را ذخیره می‌کند.
16564
16735
  store(route, handle) {
16565
- if (route.data.shouldReuse && route?.routeConfig?.path) {
16566
- this.handlers[route.routeConfig.path] = handle;
16736
+ const isReuse = !!BarsaApi.Common.Util.TryGetValue(route, `data.pageData.${REUSE_PROPERTY}`);
16737
+ if (route.routeConfig && isReuse) {
16738
+ const keyPath = this._getKeyOfPath(route);
16739
+ routeStorage[keyPath] = handle;
16567
16740
  }
16568
16741
  }
16742
+ // تصمیم می‌گیرد که آیا کامپوننت ذخیره شده باید بازیابی (Attach) شود یا نه.
16569
16743
  shouldAttach(route) {
16570
- if (route.routeConfig?.path) {
16571
- return !!this.handlers[route.routeConfig.path];
16572
- }
16573
- // return !!route.routeConfig && !!this.handlers[route.routeConfig.path];
16574
- return false;
16744
+ // اگر روَت در حافظه ذخیره شده و قرار بوده حفظ شود
16745
+ const keyPath = this._getKeyOfPath(route);
16746
+ return !!route.routeConfig && !!routeStorage[keyPath];
16575
16747
  }
16748
+ // کامپوننت ذخیره شده را بازیابی می‌کند.
16576
16749
  retrieve(route) {
16577
- if (!route.routeConfig?.path) {
16750
+ const isReuse = !!BarsaApi.Common.Util.TryGetValue(route, `data.pageData.${REUSE_PROPERTY}`);
16751
+ if (!route.routeConfig || !isReuse) {
16578
16752
  return null;
16579
16753
  }
16580
- return this.handlers[route.routeConfig.path];
16754
+ const keyPath = this._getKeyOfPath(route);
16755
+ return routeStorage[keyPath] || null;
16581
16756
  }
16582
- shouldReuseRoute(future
16583
- // curr: ActivatedRouteSnapshot
16584
- ) {
16585
- return future.data.shouldReuse || false;
16757
+ // مهم‌ترین بخش: تصمیم می‌گیرد که آیا روَت فعلی باید برای روَت آینده بازاستفاده شود یا نه.
16758
+ // اگر از یک روَت به روَت دیگری برویم (مثل 'Page1' به 'Page2')، این باید 'false' باشد تا بتواند Detach شود.
16759
+ // اما اگر پارامترها و Query Params یکسان باشند، شاید بخواهید 'true' باشد.
16760
+ // برای حالت شما (نویگیشن بین روَت‌های اصلی)، معمولاً 'false' است مگر اینکه روَت‌ها کاملاً یکسان باشند.
16761
+ shouldReuseRoute(future, curr) {
16762
+ // این کار باعث می‌شود روَت‌های خواهر (sibling) به عنوان روَت‌های جدید در نظر گرفته شوند
16763
+ // تا بتوانند Detach و Attach شوند.
16764
+ return future.routeConfig === curr.routeConfig;
16765
+ }
16766
+ _getKeyOfPath(route) {
16767
+ const x = BarsaApi.Common.Util.TryGetValue(route, `data.pageData.ParentRoute`);
16768
+ const y = BarsaApi.Common.Util.TryGetValue(route, `data.pageData.Route`);
16769
+ const keyPath = `${x}${y}`;
16770
+ return keyPath;
16586
16771
  }
16587
16772
  }
16588
16773
 
@@ -16593,11 +16778,11 @@ class RootPageComponent extends BaseComponent {
16593
16778
  this.viewContainerRef = inject(ViewContainerRef);
16594
16779
  }
16595
16780
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: RootPageComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
16596
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.0.6", type: RootPageComponent, isStandalone: false, selector: "bnrc-root-page", host: { properties: { "class.page-content": "this._pageContent" } }, usesInheritance: true, ngImport: i0, template: "<router-outlet></router-outlet>\r\n<router-outlet name=\"main\"></router-outlet>\r\n", styles: [":host{position:relative;display:block}\n"], dependencies: [{ kind: "directive", type: i1.RouterOutlet, selector: "router-outlet", inputs: ["name", "routerOutletData"], outputs: ["activate", "deactivate", "attach", "detach"], exportAs: ["outlet"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
16781
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.0.6", type: RootPageComponent, isStandalone: false, selector: "bnrc-root-page", host: { properties: { "class.page-content": "this._pageContent" } }, providers: [RoutingService], usesInheritance: true, ngImport: i0, template: `<router-outlet></router-outlet><router-outlet name="main"></router-outlet>`, isInline: true, styles: [":host{position:relative;display:block}\n"], dependencies: [{ kind: "directive", type: i1.RouterOutlet, selector: "router-outlet", inputs: ["name", "routerOutletData"], outputs: ["activate", "deactivate", "attach", "detach"], exportAs: ["outlet"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
16597
16782
  }
16598
16783
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: RootPageComponent, decorators: [{
16599
16784
  type: Component,
16600
- args: [{ selector: 'bnrc-root-page', changeDetection: ChangeDetectionStrategy.OnPush, standalone: false, template: "<router-outlet></router-outlet>\r\n<router-outlet name=\"main\"></router-outlet>\r\n", styles: [":host{position:relative;display:block}\n"] }]
16785
+ args: [{ selector: 'bnrc-root-page', template: `<router-outlet></router-outlet><router-outlet name="main"></router-outlet>`, changeDetection: ChangeDetectionStrategy.OnPush, providers: [RoutingService], standalone: false, styles: [":host{position:relative;display:block}\n"] }]
16601
16786
  }], propDecorators: { _pageContent: [{
16602
16787
  type: HostBinding,
16603
16788
  args: ['class.page-content']
@@ -16614,10 +16799,7 @@ class ResizableDirective {
16614
16799
  this.resizable = fromEvent(this.elementRef.nativeElement, 'mousedown').pipe(tap((e) => e.preventDefault()), switchMap(() => {
16615
16800
  const elDom = this.elementRef.nativeElement;
16616
16801
  const { width, right, left } = elDom.closest('th').getBoundingClientRect();
16617
- return fromEvent(this.documentRef, 'mousemove').pipe(
16618
- // tap(({ clientX }) => console.log(width, clientX, left, width + left - clientX)),
16619
- // tap(({ clientX }) => console.log('rtl', this.rtl)),
16620
- map(({ clientX }) => (this.rtl ? width + left - clientX : width + clientX - right)), distinctUntilChanged(), takeUntil(fromEvent(this.documentRef, 'mouseup').pipe(tap((_c) => this.resizableComplete.emit()))));
16802
+ return fromEvent(this.documentRef, 'mousemove').pipe(map(({ clientX }) => (this.rtl ? width + left - clientX : width + clientX - right)), distinctUntilChanged(), takeUntil(fromEvent(this.documentRef, 'mouseup').pipe(tap((_c) => this.resizableComplete.emit()))));
16621
16803
  }));
16622
16804
  }
16623
16805
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: ResizableDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
@@ -17068,21 +17250,23 @@ const components = [
17068
17250
  ModalRootComponent,
17069
17251
  PortalPageComponent,
17070
17252
  PortalPageSidebarComponent,
17071
- RedirectReportNavigatorCommandComponent,
17072
17253
  EmptyPageWithRouterAndRouterOutletComponent,
17073
17254
  DynamicItemComponent,
17255
+ CardDynamicItemComponent,
17074
17256
  DynamicFormComponent,
17075
17257
  BaseDynamicComponent,
17076
17258
  DynamicFormToolbaritemComponent,
17077
17259
  DynamicLayoutComponent,
17078
17260
  EmptyPageComponent,
17261
+ ReportEmptyPageComponent,
17079
17262
  MasterDetailsPageComponent,
17080
17263
  FormPageComponent,
17081
17264
  FormFieldReportPageComponent,
17082
17265
  ButtonLoadingComponent,
17083
17266
  UnlimitSessionComponent,
17084
17267
  DynamicTileGroupComponent,
17085
- PushBannerComponent
17268
+ PushBannerComponent,
17269
+ ReportNavigatorComponent
17086
17270
  ];
17087
17271
  const directives = [
17088
17272
  PlaceHolderDirective,
@@ -17289,7 +17473,7 @@ class BarsaNovinRayCoreModule extends BaseModule {
17289
17473
  }))
17290
17474
  .catch((_) => {
17291
17475
  if (!inLocalMode && !navigator.onLine) {
17292
- console.log('no-internet');
17476
+ console.error('internet is not connected.');
17293
17477
  router.navigate(['no-internet']);
17294
17478
  }
17295
17479
  else {
@@ -17313,6 +17497,10 @@ class BarsaNovinRayCoreModule extends BaseModule {
17313
17497
  })(inject(NotificationService));
17314
17498
  return initializerFn();
17315
17499
  }),
17500
+ {
17501
+ provide: RouteReuseStrategy,
17502
+ useClass: CustomRouteReuseStrategy
17503
+ },
17316
17504
  ...pipes,
17317
17505
  ...services
17318
17506
  ]
@@ -17329,21 +17517,23 @@ class BarsaNovinRayCoreModule extends BaseModule {
17329
17517
  ModalRootComponent,
17330
17518
  PortalPageComponent,
17331
17519
  PortalPageSidebarComponent,
17332
- RedirectReportNavigatorCommandComponent,
17333
17520
  EmptyPageWithRouterAndRouterOutletComponent,
17334
17521
  DynamicItemComponent,
17522
+ CardDynamicItemComponent,
17335
17523
  DynamicFormComponent,
17336
17524
  BaseDynamicComponent,
17337
17525
  DynamicFormToolbaritemComponent,
17338
17526
  DynamicLayoutComponent,
17339
17527
  EmptyPageComponent,
17528
+ ReportEmptyPageComponent,
17340
17529
  MasterDetailsPageComponent,
17341
17530
  FormPageComponent,
17342
17531
  FormFieldReportPageComponent,
17343
17532
  ButtonLoadingComponent,
17344
17533
  UnlimitSessionComponent,
17345
17534
  DynamicTileGroupComponent,
17346
- PushBannerComponent, NumeralPipe,
17535
+ PushBannerComponent,
17536
+ ReportNavigatorComponent, NumeralPipe,
17347
17537
  CanUploadFilePipe,
17348
17538
  RemoveNewlinePipe,
17349
17539
  ConvertToStylePipe,
@@ -17466,21 +17656,23 @@ class BarsaNovinRayCoreModule extends BaseModule {
17466
17656
  ModalRootComponent,
17467
17657
  PortalPageComponent,
17468
17658
  PortalPageSidebarComponent,
17469
- RedirectReportNavigatorCommandComponent,
17470
17659
  EmptyPageWithRouterAndRouterOutletComponent,
17471
17660
  DynamicItemComponent,
17661
+ CardDynamicItemComponent,
17472
17662
  DynamicFormComponent,
17473
17663
  BaseDynamicComponent,
17474
17664
  DynamicFormToolbaritemComponent,
17475
17665
  DynamicLayoutComponent,
17476
17666
  EmptyPageComponent,
17667
+ ReportEmptyPageComponent,
17477
17668
  MasterDetailsPageComponent,
17478
17669
  FormPageComponent,
17479
17670
  FormFieldReportPageComponent,
17480
17671
  ButtonLoadingComponent,
17481
17672
  UnlimitSessionComponent,
17482
17673
  DynamicTileGroupComponent,
17483
- PushBannerComponent, NumeralPipe,
17674
+ PushBannerComponent,
17675
+ ReportNavigatorComponent, NumeralPipe,
17484
17676
  CanUploadFilePipe,
17485
17677
  RemoveNewlinePipe,
17486
17678
  ConvertToStylePipe,
@@ -17618,5 +17810,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.6", ngImpor
17618
17810
  * Generated bundle index. Do not edit.
17619
17811
  */
17620
17812
 
17621
- export { APP_VERSION, AbsoluteDivBodyDirective, AddDynamicFormStyles, AffixRespondEvents, AllFilesMimeType, AnchorScrollDirective, ApiService, ApplicationBaseComponent, ApplicationCtrlrService, AttrRtlDirective, AudioMimeType, AudioRecordingService, AuthGuard, BarsaApi, BarsaDialogService, BarsaIconDictPipe, BarsaNovinRayCoreModule, BarsaReadonlyDirective, BarsaSapUiFormPageModule, BarsaStorageService, BaseColumnPropsComponent, BaseComponent, BaseController, BaseDirective, BaseDynamicComponent, BaseFormToolbaritemPropsComponent, BaseItemContentPropsComponent, BaseModule, BaseReportModel, BaseUlvSettingComponent, BaseViewContentPropsComponent, BaseViewItemPropsComponent, BaseViewPropsComponent, BbbTranslatePipe, BodyClickDirective, BoolControlInfoModel, BreadcrumbService, ButtonLoadingComponent, CalculateControlInfoModel, CanUploadFilePipe, CardMediaSizePipe, ChangeLayoutInfoCustomUi, ChunkArrayPipe, CodeEditorControlInfoModel, ColSetting, ColumnCustomComponentPipe, ColumnCustomUiPipe, ColumnIconPipe, ColumnResizerDirective, ColumnService, ColumnValueDirective, ColumnValueOfParametersPipe, ColumnValuePipe, ComboRowImagePipe, CommandControlInfoModel, ContainerComponent, ContainerService, ContextMenuPipe, ControlUiPipe, ConvertToStylePipe, CopyDirective, CountDownDirective, CustomCommand, CustomInjector, CustomRouteReuseStategy, DIALOG_SERVICE, DateHijriService, DateMiladiService, DateRanges, DateService, DateShamsiService, DateTimeControlInfoModel, DeviceWidth, DialogParams, DynamicCommandDirective, DynamicComponentService, DynamicDarkColorPipe, DynamicFormComponent, DynamicFormToolbaritemComponent, DynamicItemComponent, DynamicLayoutComponent, DynamicRootVariableDirective, DynamicStyleDirective, DynamicTileGroupComponent, EllapsisTextDirective, EllipsifyDirective, EmptyPageComponent, EmptyPageWithRouterAndRouterOutletComponent, EnumControlInfoModel, ExecuteDynamicCommand, ExecuteWorkflowChoiceDef, FORM_DIALOG_COMPONENT, FieldBaseComponent, FieldDirective, FieldInfoTypeEnum, FieldUiComponent, FileControlInfoModel, FileInfoCountPipe, FilePictureInfoModel, FilesValidationHelper, FillAllLayoutControls, FillEmptySpaceDirective, FilterColumnsByDetailsPipe, FilterInlineActionListPipe, FilterPipe, FilterStringPipe, FilterTabPipe, FilterToolbarControlPipe, FilterWorkflowInMobilePipe, FindColumnByDbNamePipe, FindGroup, FindLayoutSettingFromLayout94, FindPreviewColumnPipe, FindToolbarItem, FioriIconPipe, FormBaseComponent, FormCloseDirective, FormComponent, FormFieldReportPageComponent, FormNewComponent, FormPageBaseComponent, FormPageComponent, FormPanelService, FormPropsBaseComponent, FormService, FormToolbarBaseComponent, GaugeControlInfoModel, GeneralControlInfoModel, GetAllColumnsSorted, GetAllHorizontalFromLayout94, GetDefaultMoObjectInfo, GetImgTags, GetVisibleValue, GridSetting, GroupBy, GroupByPipe, GroupByService, HeaderFacetValuePipe, HideAcceptCancelButtonsPipe, HideColumnsInmobilePipe, HistoryControlInfoModel, HorizontalLayoutService, HorizontalResponsiveDirective, IconControlInfoModel, IdbService, ImageLazyDirective, ImageMimeType, ImagetoPrint, InMemoryStorageService, IndexedDbService, InputNumber, IntersectionObserverDirective, IntersectionStatus, IsDarkMode, IsExpandedNodePipe, IsImagePipe, ItemsRendererDirective, LabelStarTrimPipe, LabelmandatoryDirective, LayoutItemBaseComponent, LayoutMainContentService, LayoutPanelBaseComponent, LayoutService, LeafletLongPressDirective, LinearListControlInfoModel, LinearListHelper, ListCountPipe, ListRelationModel, LoadExternalFilesDirective, LocalStorageService, LogService, LoginSettingsResolver, MapToChatMessagePipe, MasterDetailsPageComponent, MeasureFormTitleWidthDirective, MergeFieldsToColumnsPipe, MetaobjectDataModel, MetaobjectRelationModel, MoForReportModel, MoForReportModelBase, MoInfoUlvMoListPipe, MoInfoUlvPagingPipe, MoReportValueConcatPipe, MoReportValuePipe, MoValuePipe, MobileDirective, ModalRootComponent, MultipleGroupByPipe, NOTIFICATAION_POPUP_SERVER, NOTIFICATION_WEBWORKER_FACTORY, NetworkStatusService, NotFoundComponent, NotificationService, NowraptextDirective, NumberBaseComponent, NumberControlInfoModel, NumbersOnlyInputDirective, NumeralPipe, OverflowTextDirective, PageBaseComponent, PageWithFormHandlerBaseComponent, PdfMimeType, PictureFieldSourcePipe, PictureFileControlInfoModel, PlaceHolderDirective, PortalDynamicPageResolver, PortalFormPageResolver, PortalPageComponent, PortalPageResolver, PortalPageSidebarComponent, PortalReportPageResolver, PortalService, PreventDefaulEvent, PreventDefaultDirective, PrintFilesDirective, PrintImage, PromptUpdateService, PushBannerComponent, PushCheckService, PushNotificationService, RabetehAkseTakiListiControlInfoModel, RedirectHomeGuard, RedirectReportNavigatorCommandComponent, RelatedReportControlInfoModel, RelationListControlInfoModel, RemoveDynamicFormStyles, RemoveNewlinePipe, RenderUlvDirective, RenderUlvPaginDirective, RenderUlvViewerDirective, ReplacePipe, ReportBaseComponent, ReportBaseInfo, ReportCalendarModel, ReportContainerComponent, ReportExtraInfo, ReportField, ReportFormModel, ReportItemBaseComponent, ReportListModel, ReportModel, ReportTreeModel, ReportViewBaseComponent, ReportViewColumn, ResizableComponent, ResizableDirective, ResizableModule, ResizeHandlerDirective, ResizeObserverDirective, ReversePipe, RichStringControlInfoModel, RootPageComponent, RootPortalComponent, RouteFormChangeDirective, RoutingService, RowDataOption, RowNumberPipe, SafeBottomDirective, SanitizeTextPipe, SaveImageDirective, SaveImageToFile, SaveScrollPositionService, ScrollPersistDirective, ScrollToSelectedDirective, SelectionMode, SeperatorFixPipe, ServiceWorkerCommuncationService, ServiceWorkerNotificationService, ShellbarHeightService, ShortcutHandlerDirective, ShortcutRegisterDirective, SimplebarDirective, SingleRelationControlInfoModel, SortDirection, SortPipe, SortSetting, SplideSliderDirective, SplitPipe, StopPropagationDirective, StringControlInfoModel, StringToNumberPipe, SubformControlInfoModel, SystemBaseComponent, TOAST_SERVICE, TableHeaderWidthMode, TableResizerDirective, TabpageService, ThImageOrIconePipe, TileGroupBreadcrumResolver, TilePropsComponent, TlbButtonsPipe, ToolbarSettingsPipe, TooltipDirective, TotalSummaryPipe, UiService, UlvCommandDirective, UlvMainService, UnlimitSessionComponent, UntilInViewDirective, UploadService, VideoMimeType, VideoRecordingService, ViewBase, VisibleValuePipe, WebOtpDirective, WordMimeType, WorfkflowwChoiceCommandDirective, addCssVariableToRoot, availablePrefixes, calcContextMenuWidth, calculateColumnContent, calculateColumnWidth, calculateColumnWidthFitToContainer, calculateFreeColumnSize, calculateMoDataListContentWidthByColumnName, cancelRequestAnimationFrame, createFormPanelMetaConditions, createGridEditorFormPanel, easeInOutCubic, elementInViewport2, enumValueToStringSize, executeUlvCommandHandler, flattenTree, forbiddenValidator, formRoutes, formatBytes, fromEntries, fromIntersectionObserver, genrateInlineMoId, getAllItemsPerChildren, getColumnValueOfMoDataList, getComponentDefined, getControlList, getControlSizeMode, getDateService, getDeviceIsDesktop, getDeviceIsMobile, getDeviceIsPhone, getDeviceIsTablet, getFieldValue, getFocusableTagNames, getFormSettings, getGridSettings, getHeaderValue, getIcon, getImagePath, getLabelWidth, getLayout94ObjectInfo, getLayoutControl, getNewMoGridEditor, getParentHeight, getRequestAnimationFrame, getResetGridSettings, getTargetRect, getUniqueId, getValidExtension, isFF, isFirefox, isFunction, isImage, isInLocalMode, isSafari, isTargetWindow, measureText, measureText2, measureTextBy, mobile_regex, nullOrUndefinedString, number_only, requestAnimationFramePolyfill, setColumnWidthByMaxMoContentWidth, setOneDepthLevel, setTableThWidth, shallowEqual, stopPropagation, throwIfAlreadyLoaded, toNumber, validateAllFormFields };
17813
+ export { APP_VERSION, AbsoluteDivBodyDirective, AddDynamicFormStyles, AffixRespondEvents, AllFilesMimeType, AnchorScrollDirective, ApiService, ApplicationBaseComponent, ApplicationCtrlrService, AttrRtlDirective, AudioMimeType, AudioRecordingService, AuthGuard, BarsaApi, BarsaDialogService, BarsaIconDictPipe, BarsaNovinRayCoreModule, BarsaReadonlyDirective, BarsaSapUiFormPageModule, BarsaStorageService, BaseColumnPropsComponent, BaseComponent, BaseController, BaseDirective, BaseDynamicComponent, BaseFormToolbaritemPropsComponent, BaseItemContentPropsComponent, BaseModule, BaseReportModel, BaseUlvSettingComponent, BaseViewContentPropsComponent, BaseViewItemPropsComponent, BaseViewPropsComponent, BbbTranslatePipe, BodyClickDirective, BoolControlInfoModel, BreadcrumbService, ButtonLoadingComponent, CalculateControlInfoModel, CanUploadFilePipe, CardBaseItemContentPropsComponent, CardDynamicItemComponent, CardMediaSizePipe, CardViewService, ChangeLayoutInfoCustomUi, ChunkArrayPipe, CodeEditorControlInfoModel, ColSetting, ColumnCustomComponentPipe, ColumnCustomUiPipe, ColumnIconPipe, ColumnResizerDirective, ColumnService, ColumnValueDirective, ColumnValueOfParametersPipe, ColumnValuePipe, ComboRowImagePipe, CommandControlInfoModel, ContainerComponent, ContainerService, ContextMenuPipe, ControlUiPipe, ConvertToStylePipe, CopyDirective, CountDownDirective, CustomCommand, CustomInjector, CustomRouteReuseStrategy, DIALOG_SERVICE, DateHijriService, DateMiladiService, DateRanges, DateService, DateShamsiService, DateTimeControlInfoModel, DeviceWidth, DialogParams, DynamicCommandDirective, DynamicComponentService, DynamicDarkColorPipe, DynamicFormComponent, DynamicFormToolbaritemComponent, DynamicItemComponent, DynamicLayoutComponent, DynamicRootVariableDirective, DynamicStyleDirective, DynamicTileGroupComponent, EllapsisTextDirective, EllipsifyDirective, EmptyPageComponent, EmptyPageWithRouterAndRouterOutletComponent, EnumControlInfoModel, ExecuteDynamicCommand, ExecuteWorkflowChoiceDef, FORM_DIALOG_COMPONENT, FieldBaseComponent, FieldDirective, FieldInfoTypeEnum, FieldUiComponent, FileControlInfoModel, FileInfoCountPipe, FilePictureInfoModel, FilesValidationHelper, FillAllLayoutControls, FillEmptySpaceDirective, FilterColumnsByDetailsPipe, FilterInlineActionListPipe, FilterPipe, FilterStringPipe, FilterTabPipe, FilterToolbarControlPipe, FilterWorkflowInMobilePipe, FindColumnByDbNamePipe, FindGroup, FindLayoutSettingFromLayout94, FindPreviewColumnPipe, FindToolbarItem, FioriIconPipe, FormBaseComponent, FormCloseDirective, FormComponent, FormFieldReportPageComponent, FormNewComponent, FormPageBaseComponent, FormPageComponent, FormPanelService, FormPropsBaseComponent, FormService, FormToolbarBaseComponent, GaugeControlInfoModel, GeneralControlInfoModel, GetAllColumnsSorted, GetAllHorizontalFromLayout94, GetDefaultMoObjectInfo, GetImgTags, GetVisibleValue, GridSetting, GroupBy, GroupByPipe, GroupByService, HeaderFacetValuePipe, HideAcceptCancelButtonsPipe, HideColumnsInmobilePipe, HistoryControlInfoModel, HorizontalLayoutService, HorizontalResponsiveDirective, IconControlInfoModel, IdbService, ImageLazyDirective, ImageMimeType, ImagetoPrint, InMemoryStorageService, IndexedDbService, InputNumber, IntersectionObserverDirective, IntersectionStatus, IsDarkMode, IsExpandedNodePipe, IsImagePipe, ItemsRendererDirective, LabelStarTrimPipe, LabelmandatoryDirective, LayoutItemBaseComponent, LayoutMainContentService, LayoutPanelBaseComponent, LayoutService, LeafletLongPressDirective, LinearListControlInfoModel, LinearListHelper, ListCountPipe, ListRelationModel, LoadExternalFilesDirective, LocalStorageService, LogService, LoginSettingsResolver, MapToChatMessagePipe, MasterDetailsPageComponent, MeasureFormTitleWidthDirective, MergeFieldsToColumnsPipe, MetaobjectDataModel, MetaobjectRelationModel, MoForReportModel, MoForReportModelBase, MoInfoUlvMoListPipe, MoInfoUlvPagingPipe, MoReportValueConcatPipe, MoReportValuePipe, MoValuePipe, MobileDirective, ModalRootComponent, MultipleGroupByPipe, NOTIFICATAION_POPUP_SERVER, NOTIFICATION_WEBWORKER_FACTORY, NetworkStatusService, NotFoundComponent, NotificationService, NowraptextDirective, NumberBaseComponent, NumberControlInfoModel, NumbersOnlyInputDirective, NumeralPipe, OverflowTextDirective, PageBaseComponent, PageWithFormHandlerBaseComponent, PdfMimeType, PictureFieldSourcePipe, PictureFileControlInfoModel, PlaceHolderDirective, PortalDynamicPageResolver, PortalFormPageResolver, PortalPageComponent, PortalPageResolver, PortalPageSidebarComponent, PortalReportPageResolver, PortalService, PreventDefaulEvent, PreventDefaultDirective, PrintFilesDirective, PrintImage, PromptUpdateService, PushBannerComponent, PushCheckService, PushNotificationService, RabetehAkseTakiListiControlInfoModel, RedirectHomeGuard, RelatedReportControlInfoModel, RelationListControlInfoModel, RemoveDynamicFormStyles, RemoveNewlinePipe, RenderUlvDirective, RenderUlvPaginDirective, RenderUlvViewerDirective, ReplacePipe, ReportBaseComponent, ReportBaseInfo, ReportCalendarModel, ReportContainerComponent, ReportEmptyPageComponent, ReportExtraInfo, ReportField, ReportFormModel, ReportItemBaseComponent, ReportListModel, ReportModel, ReportNavigatorComponent, ReportTreeModel, ReportViewBaseComponent, ReportViewColumn, ResizableComponent, ResizableDirective, ResizableModule, ResizeHandlerDirective, ResizeObserverDirective, ReversePipe, RichStringControlInfoModel, RootPageComponent, RootPortalComponent, RotateImage, RouteFormChangeDirective, RoutingService, RowDataOption, RowNumberPipe, SafeBottomDirective, SanitizeTextPipe, SaveImageDirective, SaveImageToFile, SaveScrollPositionService, ScrollPersistDirective, ScrollToSelectedDirective, SelectionMode, SeperatorFixPipe, ServiceWorkerCommuncationService, ServiceWorkerNotificationService, ShellbarHeightService, ShortcutHandlerDirective, ShortcutRegisterDirective, SimplebarDirective, SingleRelationControlInfoModel, SortDirection, SortPipe, SortSetting, SplideSliderDirective, SplitPipe, StopPropagationDirective, StringControlInfoModel, StringToNumberPipe, SubformControlInfoModel, SystemBaseComponent, TOAST_SERVICE, TableHeaderWidthMode, TableResizerDirective, TabpageService, ThImageOrIconePipe, TileGroupBreadcrumResolver, TilePropsComponent, TlbButtonsPipe, ToolbarSettingsPipe, TooltipDirective, TotalSummaryPipe, UiService, UlvCommandDirective, UlvMainService, UnlimitSessionComponent, UntilInViewDirective, UploadService, VideoMimeType, VideoRecordingService, ViewBase, VisibleValuePipe, WebOtpDirective, WordMimeType, WorfkflowwChoiceCommandDirective, addCssVariableToRoot, availablePrefixes, calcContextMenuWidth, calculateColumnContent, calculateColumnWidth, calculateColumnWidthFitToContainer, calculateFreeColumnSize, calculateMoDataListContentWidthByColumnName, cancelRequestAnimationFrame, createFormPanelMetaConditions, createGridEditorFormPanel, easeInOutCubic, elementInViewport2, enumValueToStringSize, executeUlvCommandHandler, flattenTree, forbiddenValidator, formRoutes, formatBytes, fromEntries, fromIntersectionObserver, genrateInlineMoId, getAllItemsPerChildren, getColumnValueOfMoDataList, getComponentDefined, getControlList, getControlSizeMode, getDateService, getDeviceIsDesktop, getDeviceIsMobile, getDeviceIsPhone, getDeviceIsTablet, getFieldValue, getFocusableTagNames, getFormSettings, getGridSettings, getHeaderValue, getIcon, getImagePath, getLabelWidth, getLayout94ObjectInfo, getLayoutControl, getNewMoGridEditor, getParentHeight, getRequestAnimationFrame, getResetGridSettings, getTargetRect, getUniqueId, getValidExtension, isFF, isFirefox, isFunction, isImage, isInLocalMode, isSafari, isTargetWindow, measureText, measureText2, measureTextBy, mobile_regex, nullOrUndefinedString, number_only, requestAnimationFramePolyfill, setColumnWidthByMaxMoContentWidth, setOneDepthLevel, setTableThWidth, shallowEqual, stopPropagation, throwIfAlreadyLoaded, toNumber, validateAllFormFields };
17622
17814
  //# sourceMappingURL=barsa-novin-ray-core.mjs.map