tango-app-ui-shared 3.3.1-beta.9 → 3.3.1-controlcenter.2

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.
Files changed (89) hide show
  1. package/esm2022/lib/guards/auth.guard.mjs +3 -3
  2. package/esm2022/lib/guards/stores.guard.mjs +5 -5
  3. package/esm2022/lib/guards/tickets.guard.mjs +5 -5
  4. package/esm2022/lib/i18n/translation.module.mjs +4 -4
  5. package/esm2022/lib/i18n/translation.service.mjs +3 -3
  6. package/esm2022/lib/interceptors/http-auth-interceptor.mjs +3 -3
  7. package/esm2022/lib/modules/common/common-shared.module.mjs +4 -4
  8. package/esm2022/lib/modules/common/custom-select/custom-select.component.mjs +3 -3
  9. package/esm2022/lib/modules/common/filters/filters.component.mjs +3 -3
  10. package/esm2022/lib/modules/common/pagination/pagination.component.mjs +3 -3
  11. package/esm2022/lib/modules/errors/error403/error403.component.mjs +3 -3
  12. package/esm2022/lib/modules/errors/error404/error404.component.mjs +3 -3
  13. package/esm2022/lib/modules/errors/error500/error500.component.mjs +3 -3
  14. package/esm2022/lib/modules/errors/errors-routing.module.mjs +4 -4
  15. package/esm2022/lib/modules/errors/errors.component.mjs +3 -3
  16. package/esm2022/lib/modules/errors/errors.module.mjs +4 -4
  17. package/esm2022/lib/modules/errors/invalid-ip/invalid-ip.component.mjs +3 -3
  18. package/esm2022/lib/modules/intro/contact-support/contact-support.component.mjs +3 -3
  19. package/esm2022/lib/modules/intro/intro-routing.module.mjs +4 -4
  20. package/esm2022/lib/modules/intro/intro.module.mjs +4 -4
  21. package/esm2022/lib/modules/intro/lead-intro/lead-intro.component.mjs +3 -3
  22. package/esm2022/lib/modules/layout/components/csm-assign-confirmation/csm-assign-confirmation.component.mjs +3 -3
  23. package/esm2022/lib/modules/layout/content/content.component.mjs +3 -3
  24. package/esm2022/lib/modules/layout/footer/footer.component.mjs +3 -3
  25. package/esm2022/lib/modules/layout/header/header-menu/header-menu.component.mjs +3 -3
  26. package/esm2022/lib/modules/layout/header/header.component.mjs +3 -3
  27. package/esm2022/lib/modules/layout/header/navbar/navbar.component.mjs +8 -5
  28. package/esm2022/lib/modules/layout/header/notifications-inner/notifications-inner.component.mjs +3 -3
  29. package/esm2022/lib/modules/layout/header/page-title/page-title.component.mjs +11 -5
  30. package/esm2022/lib/modules/layout/keenicon/keenicon.component.mjs +3 -3
  31. package/esm2022/lib/modules/layout/layout/layout.component.mjs +3 -3
  32. package/esm2022/lib/modules/layout/layout.module.mjs +10 -7
  33. package/esm2022/lib/modules/layout/scripts-init/scripts-init.component.mjs +3 -3
  34. package/esm2022/lib/modules/layout/scroll-top/scroll-top.component.mjs +3 -3
  35. package/esm2022/lib/modules/layout/sidebar/sidebar-footer/sidebar-footer.component.mjs +3 -3
  36. package/esm2022/lib/modules/layout/sidebar/sidebar-logo/sidebar-logo.component.mjs +3 -3
  37. package/esm2022/lib/modules/layout/sidebar/sidebar-menu/sidebar-menu.component.mjs +23 -16
  38. package/esm2022/lib/modules/layout/sidebar/sidebar.component.mjs +3 -3
  39. package/esm2022/lib/modules/layout/toolbar/accounting/accounting.component.mjs +3 -3
  40. package/esm2022/lib/modules/layout/toolbar/classic/classic.component.mjs +3 -3
  41. package/esm2022/lib/modules/layout/toolbar/client-settings/client-settings.component.mjs +6 -5
  42. package/esm2022/lib/modules/layout/toolbar/date-single-select/date-single-select.component.mjs +31 -12
  43. package/esm2022/lib/modules/layout/toolbar/datepicker/datepicker.component.mjs +15 -9
  44. package/esm2022/lib/modules/layout/toolbar/extended/extended.component.mjs +3 -3
  45. package/esm2022/lib/modules/layout/toolbar/reports/reports.component.mjs +3 -3
  46. package/esm2022/lib/modules/layout/toolbar/saas/saas.component.mjs +3 -3
  47. package/esm2022/lib/modules/layout/toolbar/single-store/single-store.component.mjs +10 -7
  48. package/esm2022/lib/modules/layout/toolbar/toolbar.component.mjs +50 -25
  49. package/esm2022/lib/modules/layout/toolbar/traffic-header/traffic-header/traffic-header.component.mjs +158 -72
  50. package/esm2022/lib/modules/layout/toolbar/trax-header/trax-header.component.mjs +785 -0
  51. package/esm2022/lib/modules/notification/notification/notification.component.mjs +127 -19
  52. package/esm2022/lib/modules/notification/notification-routing.module.mjs +9 -5
  53. package/esm2022/lib/modules/notification/notification.module.mjs +6 -6
  54. package/esm2022/lib/pipes/customDate.pipe.mjs +3 -3
  55. package/esm2022/lib/routes/route-wraper-modules/edge-wrapper.module.mjs +4 -4
  56. package/esm2022/lib/routes/route-wraper-modules/manage-wrapper.module.mjs +4 -4
  57. package/esm2022/lib/routes/route-wraper-modules/profile-wrapper.module.mjs +4 -4
  58. package/esm2022/lib/routes/route-wraper-modules/store-wrapper.module.mjs +4 -4
  59. package/esm2022/lib/routes/route-wraper-modules/ticket-wrapper.module.mjs +4 -4
  60. package/esm2022/lib/services/auth.service.mjs +9 -9
  61. package/esm2022/lib/services/notification.service.mjs +9 -4
  62. package/esm2022/lib/services/toast.service.mjs +3 -3
  63. package/fesm2022/{tango-app-ui-shared-edge-wrapper.module-CFDk0tvS.mjs → tango-app-ui-shared-edge-wrapper.module-fMqNK7aH.mjs} +5 -5
  64. package/fesm2022/{tango-app-ui-shared-edge-wrapper.module-CFDk0tvS.mjs.map → tango-app-ui-shared-edge-wrapper.module-fMqNK7aH.mjs.map} +1 -1
  65. package/fesm2022/{tango-app-ui-shared-intro.module-CZdX0CkN.mjs → tango-app-ui-shared-intro.module-DulZR743.mjs} +17 -17
  66. package/fesm2022/{tango-app-ui-shared-intro.module-CZdX0CkN.mjs.map → tango-app-ui-shared-intro.module-DulZR743.mjs.map} +1 -1
  67. package/fesm2022/{tango-app-ui-shared-manage-wrapper.module-BHyh4Njw.mjs → tango-app-ui-shared-manage-wrapper.module-YOr1-p9k.mjs} +5 -5
  68. package/fesm2022/{tango-app-ui-shared-manage-wrapper.module-BHyh4Njw.mjs.map → tango-app-ui-shared-manage-wrapper.module-YOr1-p9k.mjs.map} +1 -1
  69. package/fesm2022/tango-app-ui-shared-notification.module-BXSgtsUu.mjs +350 -0
  70. package/fesm2022/tango-app-ui-shared-notification.module-BXSgtsUu.mjs.map +1 -0
  71. package/fesm2022/{tango-app-ui-shared-profile-wrapper.module-BNC1AGOk.mjs → tango-app-ui-shared-profile-wrapper.module-DAb6dDVZ.mjs} +5 -5
  72. package/fesm2022/{tango-app-ui-shared-profile-wrapper.module-BNC1AGOk.mjs.map → tango-app-ui-shared-profile-wrapper.module-DAb6dDVZ.mjs.map} +1 -1
  73. package/fesm2022/{tango-app-ui-shared-store-wrapper.module-DdaCYHdv.mjs → tango-app-ui-shared-store-wrapper.module-DmkoVJ7n.mjs} +5 -5
  74. package/fesm2022/{tango-app-ui-shared-store-wrapper.module-DdaCYHdv.mjs.map → tango-app-ui-shared-store-wrapper.module-DmkoVJ7n.mjs.map} +1 -1
  75. package/fesm2022/{tango-app-ui-shared-ticket-wrapper.module-r32uKkDO.mjs → tango-app-ui-shared-ticket-wrapper.module-XEAROmQk.mjs} +5 -5
  76. package/fesm2022/{tango-app-ui-shared-ticket-wrapper.module-r32uKkDO.mjs.map → tango-app-ui-shared-ticket-wrapper.module-XEAROmQk.mjs.map} +1 -1
  77. package/fesm2022/tango-app-ui-shared.mjs +1358 -423
  78. package/fesm2022/tango-app-ui-shared.mjs.map +1 -1
  79. package/lib/modules/layout/header/navbar/navbar.component.d.ts +1 -0
  80. package/lib/modules/layout/layout.module.d.ts +11 -10
  81. package/lib/modules/layout/sidebar/sidebar-menu/sidebar-menu.component.d.ts +1 -0
  82. package/lib/modules/layout/toolbar/toolbar.component.d.ts +2 -1
  83. package/lib/modules/layout/toolbar/traffic-header/traffic-header/traffic-header.component.d.ts +4 -1
  84. package/lib/modules/layout/toolbar/trax-header/trax-header.component.d.ts +80 -0
  85. package/lib/modules/notification/notification/notification.component.d.ts +16 -2
  86. package/lib/services/notification.service.d.ts +2 -0
  87. package/package.json +1 -1
  88. package/fesm2022/tango-app-ui-shared-notification.module-CbWXIyly.mjs +0 -238
  89. package/fesm2022/tango-app-ui-shared-notification.module-CbWXIyly.mjs.map +0 -1
@@ -38,6 +38,7 @@ export declare class NavbarComponent implements OnInit, OnDestroy {
38
38
  updateNotification(data: any, btnDetails: any): void;
39
39
  handleNotification(): void;
40
40
  viewAll(type: any): void;
41
+ redirecttonotification(): void;
41
42
  onClick(event: MouseEvent): void;
42
43
  static ɵfac: i0.ɵɵFactoryDeclaration<NavbarComponent, never>;
43
44
  static ɵcmp: i0.ɵɵComponentDeclaration<NavbarComponent, "lib-navbar", never, { "appHeaderDefaulMenuDisplay": { "alias": "appHeaderDefaulMenuDisplay"; "required": false; }; "isRtl": { "alias": "isRtl"; "required": false; }; }, {}, never, never, false, never>;
@@ -26,17 +26,18 @@ import * as i24 from "./toolbar/single-store/single-store.component";
26
26
  import * as i25 from "./header/notifications-inner/notifications-inner.component";
27
27
  import * as i26 from "./components/csm-assign-confirmation/csm-assign-confirmation.component";
28
28
  import * as i27 from "./toolbar/traffic-header/traffic-header/traffic-header.component";
29
- import * as i28 from "@angular/common";
30
- import * as i29 from "@angular/router";
31
- import * as i30 from "../../i18n/translation.module";
32
- import * as i31 from "ng-inline-svg-2";
33
- import * as i32 from "@ng-bootstrap/ng-bootstrap";
34
- import * as i33 from "@ngx-translate/core";
35
- import * as i34 from "../common/common-shared.module";
36
- import * as i35 from "@angular/forms";
37
- import * as i36 from "ngx-daterangepicker-material";
29
+ import * as i28 from "./toolbar/trax-header/trax-header.component";
30
+ import * as i29 from "@angular/common";
31
+ import * as i30 from "@angular/router";
32
+ import * as i31 from "../../i18n/translation.module";
33
+ import * as i32 from "ng-inline-svg-2";
34
+ import * as i33 from "@ng-bootstrap/ng-bootstrap";
35
+ import * as i34 from "@ngx-translate/core";
36
+ import * as i35 from "../common/common-shared.module";
37
+ import * as i36 from "@angular/forms";
38
+ import * as i37 from "ngx-daterangepicker-material";
38
39
  export declare class LayoutModule {
39
40
  static ɵfac: i0.ɵɵFactoryDeclaration<LayoutModule, never>;
40
- static ɵmod: i0.ɵɵNgModuleDeclaration<LayoutModule, [typeof i1.LayoutComponent, typeof i2.HeaderComponent, typeof i3.ContentComponent, typeof i4.FooterComponent, typeof i5.ScriptsInitComponent, typeof i6.ToolbarComponent, typeof i7.PageTitleComponent, typeof i8.HeaderMenuComponent, typeof i9.SidebarComponent, typeof i10.SidebarLogoComponent, typeof i11.SidebarMenuComponent, typeof i12.SidebarFooterComponent, typeof i13.NavbarComponent, typeof i14.AccountingComponent, typeof i15.ClassicComponent, typeof i16.ExtendedComponent, typeof i17.ReportsComponent, typeof i18.SaasComponent, typeof i19.KeeniconComponent, typeof i20.LayoutScrollTopComponent, typeof i21.ClientSettingsComponent, typeof i22.DatepickerComponent, typeof i23.DateSingleSelectComponent, typeof i24.SingleStoreComponent, typeof i25.NotificationsInnerComponent, typeof i26.CsmAssignConfirmationComponent, typeof i27.TrafficHeaderComponent], [typeof i28.CommonModule, typeof i29.RouterModule, typeof i30.TranslationModule, typeof i31.InlineSVGModule, typeof i32.NgbDropdownModule, typeof i32.NgbProgressbarModule, typeof i32.NgbTooltipModule, typeof i33.TranslateModule, typeof i34.CommonSharedModule, typeof i35.FormsModule, typeof i36.NgxDaterangepickerMd], [typeof i29.RouterModule]>;
41
+ static ɵmod: i0.ɵɵNgModuleDeclaration<LayoutModule, [typeof i1.LayoutComponent, typeof i2.HeaderComponent, typeof i3.ContentComponent, typeof i4.FooterComponent, typeof i5.ScriptsInitComponent, typeof i6.ToolbarComponent, typeof i7.PageTitleComponent, typeof i8.HeaderMenuComponent, typeof i9.SidebarComponent, typeof i10.SidebarLogoComponent, typeof i11.SidebarMenuComponent, typeof i12.SidebarFooterComponent, typeof i13.NavbarComponent, typeof i14.AccountingComponent, typeof i15.ClassicComponent, typeof i16.ExtendedComponent, typeof i17.ReportsComponent, typeof i18.SaasComponent, typeof i19.KeeniconComponent, typeof i20.LayoutScrollTopComponent, typeof i21.ClientSettingsComponent, typeof i22.DatepickerComponent, typeof i23.DateSingleSelectComponent, typeof i24.SingleStoreComponent, typeof i25.NotificationsInnerComponent, typeof i26.CsmAssignConfirmationComponent, typeof i27.TrafficHeaderComponent, typeof i28.TraxHeaderComponent], [typeof i29.CommonModule, typeof i30.RouterModule, typeof i31.TranslationModule, typeof i32.InlineSVGModule, typeof i33.NgbDropdownModule, typeof i33.NgbProgressbarModule, typeof i33.NgbTooltipModule, typeof i34.TranslateModule, typeof i35.CommonSharedModule, typeof i36.FormsModule, typeof i37.NgxDaterangepickerMd], [typeof i30.RouterModule]>;
41
42
  static ɵinj: i0.ɵɵInjectorDeclaration<LayoutModule>;
42
43
  }
@@ -11,6 +11,7 @@ export declare class SidebarMenuComponent implements OnInit {
11
11
  authlocalStorageToken: string;
12
12
  oldDashboardRoutingUrl: any;
13
13
  clientData: any;
14
+ headerFilters: any;
14
15
  constructor(authService: AuthService, gs: GlobalStateService, router: Router);
15
16
  private readonly destroy$;
16
17
  ngOnInit(): void;
@@ -32,12 +32,13 @@ export declare class ToolbarComponent implements OnInit, OnDestroy {
32
32
  users: any;
33
33
  selectedFilters: any;
34
34
  trafficdatepicker: boolean;
35
+ traxdatepicker: boolean;
35
36
  constructor(layout: LayoutService, router: Router, route: ActivatedRoute, gs: GlobalStateService);
36
37
  ngOnInit(): void;
37
38
  updateProps(config: ILayout): void;
38
39
  ngOnDestroy(): void;
39
40
  showPageTitle(): boolean;
40
- setUIProperties(singleSelect: boolean, multiSelect: boolean, datepicker: boolean, singleStore: boolean, singleSelectdatepicker: boolean, trafficdatepicker: boolean): void;
41
+ setUIProperties(singleSelect: boolean, multiSelect: boolean, datepicker: boolean, singleStore: boolean, singleSelectdatepicker: boolean, trafficdatepicker: boolean, traxdatepicker: boolean): void;
41
42
  static ɵfac: i0.ɵɵFactoryDeclaration<ToolbarComponent, never>;
42
43
  static ɵcmp: i0.ɵɵComponentDeclaration<ToolbarComponent, "lib-toolbar", never, { "currentLayoutType": { "alias": "currentLayoutType"; "required": false; }; "appToolbarLayout": { "alias": "appToolbarLayout"; "required": false; }; }, {}, never, never, false, never>;
43
44
  }
@@ -3,9 +3,11 @@ import dayjs from "dayjs";
3
3
  import "dayjs/locale/en";
4
4
  import { AuthService } from "../../../../../services/auth.service";
5
5
  import { GlobalStateService } from "tango-app-ui-global";
6
+ import { Router } from "@angular/router";
6
7
  import * as i0 from "@angular/core";
7
8
  export declare class TrafficHeaderComponent implements OnInit {
8
9
  private auth;
10
+ private router;
9
11
  gs: GlobalStateService;
10
12
  private cd;
11
13
  dayjs: typeof dayjs;
@@ -28,7 +30,8 @@ export declare class TrafficHeaderComponent implements OnInit {
28
30
  locationLabel: any[];
29
31
  groupLabel: any[];
30
32
  users: any;
31
- constructor(auth: AuthService, gs: GlobalStateService, cd: ChangeDetectorRef);
33
+ url: any;
34
+ constructor(auth: AuthService, router: Router, gs: GlobalStateService, cd: ChangeDetectorRef);
32
35
  onClick(event: MouseEvent): void;
33
36
  closeDropdown1(): void;
34
37
  ngOnInit(): void;
@@ -0,0 +1,80 @@
1
+ import { ChangeDetectorRef, OnInit } from "@angular/core";
2
+ import dayjs from "dayjs";
3
+ import "dayjs/locale/en";
4
+ import { GlobalStateService } from "tango-app-ui-global";
5
+ import { Router } from "@angular/router";
6
+ import { AuthService } from "../../../../services/auth.service";
7
+ import * as i0 from "@angular/core";
8
+ export declare class TraxHeaderComponent implements OnInit {
9
+ private auth;
10
+ private router;
11
+ gs: GlobalStateService;
12
+ private cd;
13
+ dayjs: typeof dayjs;
14
+ isCustomDate: (m: dayjs.Dayjs) => false | "invalid-date";
15
+ selectedDateRange: any;
16
+ selectedFilters: any;
17
+ Opendropdown: boolean;
18
+ dropdownOpen: string | null;
19
+ searchLocationText: string;
20
+ searchGroupText: string;
21
+ locations: any[];
22
+ filteredLocations: any[];
23
+ groupsData: any[];
24
+ filteredGroups: any[];
25
+ filteredStores: any[];
26
+ stores: any[];
27
+ searchStoreText: string;
28
+ clientList: any;
29
+ selectedClient: any;
30
+ locationLabel: any[];
31
+ groupLabel: any[];
32
+ users: any;
33
+ url: any;
34
+ constructor(auth: AuthService, router: Router, gs: GlobalStateService, cd: ChangeDetectorRef);
35
+ onClick(event: MouseEvent): void;
36
+ closeDropdown1(): void;
37
+ ngOnInit(): void;
38
+ private syncWithLocalStorage;
39
+ private emitAndStoreFilters;
40
+ /**
41
+ * Reset selectedFilters and all related arrays to empty states
42
+ */
43
+ private resetFilters;
44
+ getClient(): void;
45
+ onClientSelect(event: any): void;
46
+ ranges: any;
47
+ onStartDateChange(event: any): void;
48
+ datechange(event: any): void;
49
+ opendropdown(e: MouseEvent): void;
50
+ getLocations(): void;
51
+ isAllLocationsSelected(): boolean;
52
+ selectedLocationsLabel(): string;
53
+ removeLocation(): void;
54
+ getGroups(): void;
55
+ toggleDropdown(type: 'location' | 'group' | 'store'): void;
56
+ handleGroupDropdownClick(): void;
57
+ resetSelectedGroups(): void;
58
+ selectedGroupsLabel(): string;
59
+ removeGroup(): void;
60
+ isAllGroupsSelected(): boolean;
61
+ getStore(): void;
62
+ resetSelectedStores(): void;
63
+ selectedStoresLabel(): string;
64
+ isAllStoresSelected(): boolean;
65
+ updateSelectedStores(): void;
66
+ toggleSelectAllLocations(event: any): void;
67
+ toggleSelectAllStores(event: Event): void;
68
+ updateSelectedLocations(): void;
69
+ toggleSelectAllGroups(event: any): void;
70
+ updateSelectedGroups(): void;
71
+ Reset(): void;
72
+ Apply(): void;
73
+ filterLocations(): void;
74
+ filterGroups(): void;
75
+ filterStores(): void;
76
+ closeDropdown(): void;
77
+ clickOutside(event: MouseEvent): void;
78
+ static ɵfac: i0.ɵɵFactoryDeclaration<TraxHeaderComponent, never>;
79
+ static ɵcmp: i0.ɵɵComponentDeclaration<TraxHeaderComponent, "lib-trax-header", never, {}, {}, never, never, false, never>;
80
+ }
@@ -1,10 +1,10 @@
1
- import { ChangeDetectorRef, OnInit } from '@angular/core';
1
+ import { ChangeDetectorRef, OnDestroy, OnInit } from '@angular/core';
2
2
  import { GlobalStateService, PageInfoService } from 'tango-app-ui-global';
3
3
  import { ActivatedRoute, Router } from '@angular/router';
4
4
  import { NotificationService } from '../../../services/notification.service';
5
5
  import { ToastService } from '../../../services/toast.service';
6
6
  import * as i0 from "@angular/core";
7
- export declare class NotificationComponent implements OnInit {
7
+ export declare class NotificationComponent implements OnInit, OnDestroy {
8
8
  private pageInfo;
9
9
  gs: GlobalStateService;
10
10
  private route;
@@ -16,6 +16,8 @@ export declare class NotificationComponent implements OnInit {
16
16
  showdownload: boolean;
17
17
  loading: boolean;
18
18
  noData: boolean;
19
+ downloadloading: boolean;
20
+ downloadnoData: boolean;
19
21
  itemsPerPage: number;
20
22
  currentPage: number;
21
23
  totalItems: number;
@@ -31,15 +33,27 @@ export declare class NotificationComponent implements OnInit {
31
33
  private readonly destroy$;
32
34
  notification: any;
33
35
  total: any;
36
+ downloads: any[];
37
+ headerData: any;
38
+ searchInput: any;
39
+ sortColumName: string;
40
+ sortDirection: any;
41
+ searchValue: string;
42
+ tabtype: any;
43
+ user_id: any;
34
44
  constructor(pageInfo: PageInfoService, gs: GlobalStateService, route: ActivatedRoute, service: NotificationService, cd: ChangeDetectorRef, toast: ToastService, router: Router);
35
45
  ngOnInit(): void;
46
+ ngOnDestroy(): void;
36
47
  setPageData(): void;
37
48
  notificationList(): void;
38
49
  updateNotification(data: any, btnDetails: any): void;
39
50
  chooseManager(type: any): void;
51
+ setPaginationSizes(): void;
40
52
  onPageChange(pageOffset: number): void;
41
53
  onPageSizeChange(pageSize: number): void;
42
54
  paginationSize(): number;
55
+ downloadmanagerList(): void;
56
+ downloadFile(record: any): void;
43
57
  static ɵfac: i0.ɵɵFactoryDeclaration<NotificationComponent, never>;
44
58
  static ɵcmp: i0.ɵɵComponentDeclaration<NotificationComponent, "lib-notification", never, {}, {}, never, never, false, never>;
45
59
  }
@@ -7,6 +7,7 @@ export declare class NotificationService {
7
7
  private gs;
8
8
  paymentSubscriptionApiUrl: any;
9
9
  clientApiUrl: string;
10
+ traxUrl: any;
10
11
  private reloadDataSubject;
11
12
  reloadData$: Observable<boolean>;
12
13
  clientId: BehaviorSubject<string>;
@@ -22,6 +23,7 @@ export declare class NotificationService {
22
23
  updateRemind(_id: any): Observable<any>;
23
24
  updateSubscription(data: any): Observable<any>;
24
25
  trialApproved(data: any): Observable<any>;
26
+ getdownloadlist(data: any): Observable<any>;
25
27
  static ɵfac: i0.ɵɵFactoryDeclaration<NotificationService, never>;
26
28
  static ɵprov: i0.ɵɵInjectableDeclaration<NotificationService>;
27
29
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "tango-app-ui-shared",
3
- "version": "3.3.1-beta.9",
3
+ "version": "3.3.1-controlcenter.2",
4
4
  "peerDependencies": {
5
5
  "@angular/common": "^17.0.0",
6
6
  "@angular/core": "^17.0.0"
@@ -1,238 +0,0 @@
1
- import * as i0 from '@angular/core';
2
- import { Component, NgModule } from '@angular/core';
3
- import * as i3 from '@angular/common';
4
- import { CommonModule } from '@angular/common';
5
- import * as i1$1 from '@angular/router';
6
- import { RouterModule } from '@angular/router';
7
- import { Subject, takeUntil } from 'rxjs';
8
- import * as i1 from 'tango-app-ui-global';
9
- import { NotificationService, ToastService, PaginationComponent, CustomDateFormatPipe, CommonSharedModule } from './tango-app-ui-shared.mjs';
10
- import '@angular/common/http';
11
- import 'sweetalert2';
12
- import '@angular/animations';
13
- import '@ng-bootstrap/ng-bootstrap';
14
- import 'rxjs/operators';
15
- import '@angular/platform-browser';
16
- import 'dayjs';
17
- import 'dayjs/locale/en';
18
- import 'dayjs/plugin/utc';
19
- import 'dayjs/plugin/timezone';
20
- import '@angular/forms';
21
- import 'ngx-daterangepicker-material';
22
- import 'crypto-js';
23
- import 'ngx-pagination';
24
- import '@ngx-translate/core';
25
- import 'ng-inline-svg-2';
26
-
27
- class NotificationComponent {
28
- pageInfo;
29
- gs;
30
- route;
31
- service;
32
- cd;
33
- toast;
34
- router;
35
- showalert = true;
36
- showdownload = false;
37
- loading = true;
38
- noData = false;
39
- itemsPerPage = 10;
40
- currentPage = 1;
41
- totalItems = 0;
42
- paginationSizes = [10, 20, 30];
43
- limit = 10;
44
- offset = 1;
45
- pageSize = 10;
46
- user;
47
- headerFilter;
48
- clientId;
49
- _id;
50
- data;
51
- destroy$ = new Subject();
52
- notification;
53
- total;
54
- constructor(pageInfo, gs, route, service, cd, toast, router) {
55
- this.pageInfo = pageInfo;
56
- this.gs = gs;
57
- this.route = route;
58
- this.service = service;
59
- this.cd = cd;
60
- this.toast = toast;
61
- this.router = router;
62
- }
63
- ngOnInit() {
64
- // this.gs.dataRangeValue.pipe(takeUntil(this.destroy$)).subscribe((data: any) => {
65
- // if (data != null) {
66
- // this.user = JSON.parse(localStorage.getItem('user-info') || "")
67
- // this.headerFilter = data;
68
- // this.clientId = this.headerFilter?.clients
69
- // }
70
- // });
71
- this.notificationList();
72
- this.setPageData();
73
- this.service.reloadData$.subscribe(() => {
74
- this.notificationList();
75
- });
76
- }
77
- setPageData() {
78
- this.pageInfo.setTitle("Alerts");
79
- this.pageInfo.setDescription("Track all your activities and notifications here");
80
- this.pageInfo.setBreadcrumbs([
81
- { title: "", path: "", isActive: false, isSeparator: false },
82
- ]);
83
- }
84
- notificationList() {
85
- this.loading = true;
86
- let data = {
87
- limit: this.limit,
88
- offset: this.offset
89
- };
90
- this.service.notificationList(data)
91
- .pipe(takeUntil(this.destroy$))
92
- .subscribe({
93
- next: (res) => {
94
- if (res && res.code == 200) {
95
- this.total = res.data.count;
96
- this.notification = res.data.result || [];
97
- if (this.total < 10) {
98
- this.paginationSizes = [this.total];
99
- }
100
- else {
101
- this.paginationSizes = [10, 20, 30];
102
- }
103
- this.loading = false;
104
- this.noData = false;
105
- }
106
- else {
107
- this.noData = true;
108
- this.loading = false;
109
- this.notification = [];
110
- }
111
- this.cd.detectChanges();
112
- },
113
- error: (err) => {
114
- this.noData = true;
115
- this.loading = false;
116
- this.notification = [];
117
- }
118
- });
119
- }
120
- updateNotification(data, btnDetails) {
121
- this.loading = true;
122
- this.service.notificationUpdate(data._id).pipe(takeUntil(this.destroy$)).subscribe((res) => {
123
- if (res && res.code == 200) {
124
- if (!btnDetails || btnDetails?.redirectionUrl != 'subscribed')
125
- this.toast.getSuccessToast(res.message);
126
- setTimeout(() => {
127
- this.notificationList();
128
- }, 1000);
129
- if (btnDetails && btnDetails?.redirectionUrl != '' && btnDetails?.redirectionUrl.split('/').length > 1) {
130
- this.router.navigateByUrl(btnDetails.redirectionUrl);
131
- }
132
- if (btnDetails && btnDetails?.redirectionUrl == 'remind') {
133
- this.service.updateRemind(data._id).pipe(takeUntil(this.destroy$)).subscribe(() => { });
134
- }
135
- if (btnDetails && btnDetails?.redirectionUrl == 'trialApproved') {
136
- let params = {
137
- id: btnDetails.id,
138
- type: 'approve'
139
- };
140
- this.service.trialApproved(params).pipe(takeUntil(this.destroy$)).subscribe(() => { });
141
- }
142
- if (btnDetails && btnDetails?.redirectionUrl == 'subscribed') {
143
- let params = {
144
- clientId: btnDetails?.clientId,
145
- products: [
146
- {
147
- name: btnDetails.product,
148
- productName: btnDetails.name,
149
- type: "subscription",
150
- content: "new"
151
- }
152
- ]
153
- };
154
- this.service.updateSubscription(params).pipe(takeUntil(this.destroy$)).subscribe((res) => {
155
- if (res && res.code == 200) {
156
- this.toast.getSuccessToast('Product Subscribed Successfully');
157
- }
158
- });
159
- }
160
- this.cd.detectChanges();
161
- }
162
- }, (error) => {
163
- this.loading = false;
164
- this.noData = true;
165
- });
166
- }
167
- chooseManager(type) {
168
- }
169
- onPageChange(pageOffset) {
170
- this.offset = Number(pageOffset);
171
- this.notificationList();
172
- }
173
- onPageSizeChange(pageSize) {
174
- this.limit = Number(pageSize);
175
- this.offset = 1;
176
- this.notificationList();
177
- }
178
- paginationSize() {
179
- console.log('this.limit', this.limit, this.total);
180
- if (this.total < 10) {
181
- return this.total;
182
- }
183
- else {
184
- return this.limit;
185
- }
186
- }
187
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: NotificationComponent, deps: [{ token: i1.PageInfoService }, { token: i1.GlobalStateService }, { token: i1$1.ActivatedRoute }, { token: NotificationService }, { token: i0.ChangeDetectorRef }, { token: ToastService }, { token: i1$1.Router }], target: i0.ɵɵFactoryTarget.Component });
188
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: NotificationComponent, selector: "lib-notification", ngImport: i0, template: "<!-- <div class=\"row buttonsec mb-10\">\r\n <button [ngClass]=\"showalert?'':'submenu'\" class=\" col-lg-6 btn bg-light-primary text-primary\"\r\n (click)=\"chooseManager('alert')\">Alerts Manager</button>\r\n <button [ngClass]=\"showdownload?'':'submenu'\" class=\"col-lg-6 btn bg-light-primary \"\r\n (click)=\"chooseManager('download')\">Download Manager</button>\r\n</div> -->\r\n\r\n<div class=\"card topbar\">\r\n <div class=\"card-header\">\r\n <h3 class=\"card-title align-items-start flex-column\">\r\n <span class=\"card-label mb-2\">Alerts Manager</span>\r\n </h3>\r\n </div>\r\n <div class=\"card-body\">\r\n <div class=\"d-flex flex-column flex-xl-row p-7 \">\r\n <div class=\"flex-lg-row-fluid mb-20 mb-xl-0\">\r\n <div class=\"mb-0\">\r\n <div>\r\n <ng-container *ngIf=\"loading\">\r\n <div class=\"row loader d-flex justify-content-center align-items-center\">\r\n <div class=\"shimmer\">\r\n <div class=\"wrapper\">\r\n <div class=\"stroke animate title\"></div>\r\n <div class=\"stroke animate link\"></div>\r\n <div class=\"stroke animate description\"></div>\r\n </div>\r\n </div>\r\n <div class=\"shimmer\">\r\n <div class=\"wrapper\">\r\n <div class=\"stroke animate title\"></div>\r\n <div class=\"stroke animate link\"></div>\r\n <div class=\"stroke animate description\"></div>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n </ng-container>\r\n <ng-container *ngIf=\"noData && !loading\">\r\n <div class=\"row\">\r\n <div class=\"col-lg-12 mb-3\">\r\n <div class=\"card-body d-flex justify-content-center align-items-center flex-column\">\r\n <img class=\"img-src w-25\" src=\"./assets/tango/Icons/noNotification.svg\" alt=\"\">\r\n <span class=\"notificationAlign mt-10\">No New Notification</span>\r\n <span class=\"noNotification mt-2\">Any new notification will be shown\r\n here.</span>\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n <div class=\"row w-100\" *ngIf=\"notification?.length && !loading\">\r\n\r\n <div class=\"col-lg-6\" *ngFor=\"let item of notification;let i=index\">\r\n <div class=\"mb-8 border-value w-100\">\r\n <div class=\"flex-grow-1 me-2\">\r\n <div class=\"row mt-4\">\r\n <div class=\"col-lg-11\">\r\n <div class=\"symbol symbol-50px mx-4\">\r\n <span class=\"mt-2\">\r\n <svg width=\"40\" height=\"40\" viewBox=\"0 0 40 40\"\r\n fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <rect width=\"40\" height=\"40\" rx=\"20\"\r\n fill=\"#DAF1FF\" />\r\n <g clip-path=\"url(#clip0_12108_56367)\">\r\n <path\r\n d=\"M19.9993 23.3333V20M19.9993 16.6666H20.0077M28.3327 20C28.3327 24.6023 24.6017 28.3333 19.9993 28.3333C15.397 28.3333 11.666 24.6023 11.666 20C11.666 15.3976 15.397 11.6666 19.9993 11.6666C24.6017 11.6666 28.3327 15.3976 28.3327 20Z\"\r\n stroke=\"#00A3FF\" stroke-width=\"1.66667\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_12108_56367\">\r\n <rect width=\"20\" height=\"20\" fill=\"white\"\r\n transform=\"translate(10 10)\" />\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n </span>\r\n <span class=\"alert-title mx-4\">{{ item._source.title }}<span\r\n class=\"alertdot m-2\">\u2022</span><span\r\n class=\"alertdot\">{{\r\n item._source.date | customDateFormat }} Today</span>\r\n </span>\r\n <div class=\"alt-desc d-block ms-17\">{{\r\n item._source.description\r\n }}</div>\r\n </div>\r\n </div>\r\n <div class=\"col-lg-1\">\r\n <span (click)=\"updateNotification(item,'')\"\r\n class=\"btn btn-sm btn-icon btn-active-color-primary\">\r\n <svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\">\r\n <path d=\"M15 5L5 15M5 5L15 15\" stroke=\"#667085\"\r\n stroke-width=\"1.67\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"ms-20 mt-2\">\r\n <ng-container *ngFor=\"let cta of item._source.alertCta\">\r\n <button *ngIf=\"!['remind','cancel'].includes(cta.redirectionUrl)\"\r\n (click)=\"updateNotification(item,cta)\"\r\n class=\"btn btn-sm btn-primary\">{{ cta.buttonName }}</button>\r\n <span *ngIf=\"['remind','cancel'].includes(cta.redirectionUrl)\"\r\n (click)=\"updateNotification(item,cta)\"\r\n class=\"text-primary mx-6 remindlatertext cursor-pointer\">{{\r\n cta.buttonName }}</span>\r\n </ng-container>\r\n\r\n </div>\r\n <!-- </div> -->\r\n <!-- </div> -->\r\n </div>\r\n </div>\r\n\r\n </div>\r\n <div *ngIf=\"notification?.length && !loading\" class=\"my-3\">\r\n <lib-pagination [itemsPerPage]=\"limit\" [currentPage]=\"offset\" [totalItems]=\"total\"\r\n [paginationSizes]=\"paginationSizes\" [pageSize]=\"paginationSize()\"\r\n (pageChange)=\"onPageChange($event)\"\r\n (pageSizeChange)=\"onPageSizeChange($event)\"></lib-pagination>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n\r\n<!-- <div class=\"col-lg-12 mb-3\">\r\n <div class=\"card-body d-flex justify-content-center align-items-center flex-column\">\r\n <img class=\"img-src\" width=\"200px\" src=\"./assets/tango/Icons/Nodata.svg\" alt=\"\">\r\n </div>\r\n</div> -->", styles: [".border-value{border-radius:12px!important;border:1.095px solid var(--Gray-200, #EAECF0)!important;background:var(--White, #FFF)!important;height:155px}.buttonsec{border-radius:8px;margin:0;background:var(--gray-50, white);width:100%;height:fit-content;padding:5px}.submenu{background:var(--gray-50, white)!important;color:var(--gray-500, #667085)!important;font-size:16px!important;font-weight:500!important;outline:none!important}.text-primary{color:var(--primary-700, #009BF3)!important;font-size:16px;font-weight:500}.alert-title{color:var(--Gray-900, #101828);font-size:18px;font-style:normal;font-weight:600;line-height:28px}.alt-desc{color:var(--Gray-500, #667085)!important;font-size:14px!important;font-weight:400!important;line-height:20px}.alertdot{color:var(--Gray-500, #667085);font-size:12px;font-weight:400;line-height:18px}.remindlatertext{color:var(--Primary-700, #009BF3);font-size:16px;font-weight:600;line-height:24px;text-decoration-line:underline;text-transform:capitalize}.notificationAlign{color:var(--Gray-900, #101828);text-align:center;font-family:Inter;font-size:16px;font-style:normal;font-weight:600;line-height:24px}.noNotification{color:var(--Gray-500, #667085);text-align:center;font-family:Inter;font-size:14px;font-style:normal;font-weight:400;line-height:20px}.loader .title{width:65%}.loader .link{width:85%}.loader .description{width:95%}.loader .shimmer{padding:15px;width:95%;height:120px;margin:10px auto;background:#fff}.loader .shimmer .image-card{height:90px;width:90px;float:right;border-radius:8px}.loader .stroke{height:15px;background:#777;margin-top:20px}.loader .wrapper{width:0px;animation:fullView .5s forwards linear}@keyframes fullView{to{width:100%}}.loader .animate{animation:shimmer 3s;animation-iteration-count:infinite;background:linear-gradient(to right,#e6e6e6 5%,#ccc 25%,#e6e6e6 35%);background-size:1000px 100%}@keyframes shimmer{0%{background-position:-1000px 0}to{background-position:1000px 0}}\n"], dependencies: [{ kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: PaginationComponent, selector: "lib-pagination", inputs: ["collection", "itemsPerPage", "currentPage", "totalItems", "directionLinks", "pageSize", "paginationSizes"], outputs: ["pageChange", "pageSizeChange"] }, { kind: "pipe", type: CustomDateFormatPipe, name: "customDateFormat" }] });
189
- }
190
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: NotificationComponent, decorators: [{
191
- type: Component,
192
- args: [{ selector: 'lib-notification', template: "<!-- <div class=\"row buttonsec mb-10\">\r\n <button [ngClass]=\"showalert?'':'submenu'\" class=\" col-lg-6 btn bg-light-primary text-primary\"\r\n (click)=\"chooseManager('alert')\">Alerts Manager</button>\r\n <button [ngClass]=\"showdownload?'':'submenu'\" class=\"col-lg-6 btn bg-light-primary \"\r\n (click)=\"chooseManager('download')\">Download Manager</button>\r\n</div> -->\r\n\r\n<div class=\"card topbar\">\r\n <div class=\"card-header\">\r\n <h3 class=\"card-title align-items-start flex-column\">\r\n <span class=\"card-label mb-2\">Alerts Manager</span>\r\n </h3>\r\n </div>\r\n <div class=\"card-body\">\r\n <div class=\"d-flex flex-column flex-xl-row p-7 \">\r\n <div class=\"flex-lg-row-fluid mb-20 mb-xl-0\">\r\n <div class=\"mb-0\">\r\n <div>\r\n <ng-container *ngIf=\"loading\">\r\n <div class=\"row loader d-flex justify-content-center align-items-center\">\r\n <div class=\"shimmer\">\r\n <div class=\"wrapper\">\r\n <div class=\"stroke animate title\"></div>\r\n <div class=\"stroke animate link\"></div>\r\n <div class=\"stroke animate description\"></div>\r\n </div>\r\n </div>\r\n <div class=\"shimmer\">\r\n <div class=\"wrapper\">\r\n <div class=\"stroke animate title\"></div>\r\n <div class=\"stroke animate link\"></div>\r\n <div class=\"stroke animate description\"></div>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n </ng-container>\r\n <ng-container *ngIf=\"noData && !loading\">\r\n <div class=\"row\">\r\n <div class=\"col-lg-12 mb-3\">\r\n <div class=\"card-body d-flex justify-content-center align-items-center flex-column\">\r\n <img class=\"img-src w-25\" src=\"./assets/tango/Icons/noNotification.svg\" alt=\"\">\r\n <span class=\"notificationAlign mt-10\">No New Notification</span>\r\n <span class=\"noNotification mt-2\">Any new notification will be shown\r\n here.</span>\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n <div class=\"row w-100\" *ngIf=\"notification?.length && !loading\">\r\n\r\n <div class=\"col-lg-6\" *ngFor=\"let item of notification;let i=index\">\r\n <div class=\"mb-8 border-value w-100\">\r\n <div class=\"flex-grow-1 me-2\">\r\n <div class=\"row mt-4\">\r\n <div class=\"col-lg-11\">\r\n <div class=\"symbol symbol-50px mx-4\">\r\n <span class=\"mt-2\">\r\n <svg width=\"40\" height=\"40\" viewBox=\"0 0 40 40\"\r\n fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <rect width=\"40\" height=\"40\" rx=\"20\"\r\n fill=\"#DAF1FF\" />\r\n <g clip-path=\"url(#clip0_12108_56367)\">\r\n <path\r\n d=\"M19.9993 23.3333V20M19.9993 16.6666H20.0077M28.3327 20C28.3327 24.6023 24.6017 28.3333 19.9993 28.3333C15.397 28.3333 11.666 24.6023 11.666 20C11.666 15.3976 15.397 11.6666 19.9993 11.6666C24.6017 11.6666 28.3327 15.3976 28.3327 20Z\"\r\n stroke=\"#00A3FF\" stroke-width=\"1.66667\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_12108_56367\">\r\n <rect width=\"20\" height=\"20\" fill=\"white\"\r\n transform=\"translate(10 10)\" />\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n </span>\r\n <span class=\"alert-title mx-4\">{{ item._source.title }}<span\r\n class=\"alertdot m-2\">\u2022</span><span\r\n class=\"alertdot\">{{\r\n item._source.date | customDateFormat }} Today</span>\r\n </span>\r\n <div class=\"alt-desc d-block ms-17\">{{\r\n item._source.description\r\n }}</div>\r\n </div>\r\n </div>\r\n <div class=\"col-lg-1\">\r\n <span (click)=\"updateNotification(item,'')\"\r\n class=\"btn btn-sm btn-icon btn-active-color-primary\">\r\n <svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\">\r\n <path d=\"M15 5L5 15M5 5L15 15\" stroke=\"#667085\"\r\n stroke-width=\"1.67\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"ms-20 mt-2\">\r\n <ng-container *ngFor=\"let cta of item._source.alertCta\">\r\n <button *ngIf=\"!['remind','cancel'].includes(cta.redirectionUrl)\"\r\n (click)=\"updateNotification(item,cta)\"\r\n class=\"btn btn-sm btn-primary\">{{ cta.buttonName }}</button>\r\n <span *ngIf=\"['remind','cancel'].includes(cta.redirectionUrl)\"\r\n (click)=\"updateNotification(item,cta)\"\r\n class=\"text-primary mx-6 remindlatertext cursor-pointer\">{{\r\n cta.buttonName }}</span>\r\n </ng-container>\r\n\r\n </div>\r\n <!-- </div> -->\r\n <!-- </div> -->\r\n </div>\r\n </div>\r\n\r\n </div>\r\n <div *ngIf=\"notification?.length && !loading\" class=\"my-3\">\r\n <lib-pagination [itemsPerPage]=\"limit\" [currentPage]=\"offset\" [totalItems]=\"total\"\r\n [paginationSizes]=\"paginationSizes\" [pageSize]=\"paginationSize()\"\r\n (pageChange)=\"onPageChange($event)\"\r\n (pageSizeChange)=\"onPageSizeChange($event)\"></lib-pagination>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n\r\n<!-- <div class=\"col-lg-12 mb-3\">\r\n <div class=\"card-body d-flex justify-content-center align-items-center flex-column\">\r\n <img class=\"img-src\" width=\"200px\" src=\"./assets/tango/Icons/Nodata.svg\" alt=\"\">\r\n </div>\r\n</div> -->", styles: [".border-value{border-radius:12px!important;border:1.095px solid var(--Gray-200, #EAECF0)!important;background:var(--White, #FFF)!important;height:155px}.buttonsec{border-radius:8px;margin:0;background:var(--gray-50, white);width:100%;height:fit-content;padding:5px}.submenu{background:var(--gray-50, white)!important;color:var(--gray-500, #667085)!important;font-size:16px!important;font-weight:500!important;outline:none!important}.text-primary{color:var(--primary-700, #009BF3)!important;font-size:16px;font-weight:500}.alert-title{color:var(--Gray-900, #101828);font-size:18px;font-style:normal;font-weight:600;line-height:28px}.alt-desc{color:var(--Gray-500, #667085)!important;font-size:14px!important;font-weight:400!important;line-height:20px}.alertdot{color:var(--Gray-500, #667085);font-size:12px;font-weight:400;line-height:18px}.remindlatertext{color:var(--Primary-700, #009BF3);font-size:16px;font-weight:600;line-height:24px;text-decoration-line:underline;text-transform:capitalize}.notificationAlign{color:var(--Gray-900, #101828);text-align:center;font-family:Inter;font-size:16px;font-style:normal;font-weight:600;line-height:24px}.noNotification{color:var(--Gray-500, #667085);text-align:center;font-family:Inter;font-size:14px;font-style:normal;font-weight:400;line-height:20px}.loader .title{width:65%}.loader .link{width:85%}.loader .description{width:95%}.loader .shimmer{padding:15px;width:95%;height:120px;margin:10px auto;background:#fff}.loader .shimmer .image-card{height:90px;width:90px;float:right;border-radius:8px}.loader .stroke{height:15px;background:#777;margin-top:20px}.loader .wrapper{width:0px;animation:fullView .5s forwards linear}@keyframes fullView{to{width:100%}}.loader .animate{animation:shimmer 3s;animation-iteration-count:infinite;background:linear-gradient(to right,#e6e6e6 5%,#ccc 25%,#e6e6e6 35%);background-size:1000px 100%}@keyframes shimmer{0%{background-position:-1000px 0}to{background-position:1000px 0}}\n"] }]
193
- }], ctorParameters: () => [{ type: i1.PageInfoService }, { type: i1.GlobalStateService }, { type: i1$1.ActivatedRoute }, { type: NotificationService }, { type: i0.ChangeDetectorRef }, { type: ToastService }, { type: i1$1.Router }] });
194
-
195
- const routes = [
196
- {
197
- path: 'alerts',
198
- component: NotificationComponent
199
- }
200
- ];
201
- class NotificationRoutingModule {
202
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: NotificationRoutingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
203
- static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.12", ngImport: i0, type: NotificationRoutingModule, imports: [i1$1.RouterModule], exports: [RouterModule] });
204
- static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: NotificationRoutingModule, imports: [RouterModule.forChild(routes), RouterModule] });
205
- }
206
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: NotificationRoutingModule, decorators: [{
207
- type: NgModule,
208
- args: [{
209
- imports: [RouterModule.forChild(routes)],
210
- exports: [RouterModule]
211
- }]
212
- }] });
213
-
214
- class NotificationModule {
215
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: NotificationModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
216
- static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.12", ngImport: i0, type: NotificationModule, declarations: [NotificationComponent], imports: [CommonModule,
217
- NotificationRoutingModule,
218
- CommonSharedModule] });
219
- static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: NotificationModule, imports: [CommonModule,
220
- NotificationRoutingModule,
221
- CommonSharedModule] });
222
- }
223
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: NotificationModule, decorators: [{
224
- type: NgModule,
225
- args: [{
226
- declarations: [
227
- NotificationComponent
228
- ],
229
- imports: [
230
- CommonModule,
231
- NotificationRoutingModule,
232
- CommonSharedModule
233
- ]
234
- }]
235
- }] });
236
-
237
- export { NotificationModule };
238
- //# sourceMappingURL=tango-app-ui-shared-notification.module-CbWXIyly.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"tango-app-ui-shared-notification.module-CbWXIyly.mjs","sources":["../../../projects/tango-app-shared/src/lib/modules/notification/notification/notification.component.ts","../../../projects/tango-app-shared/src/lib/modules/notification/notification/notification.component.html","../../../projects/tango-app-shared/src/lib/modules/notification/notification-routing.module.ts","../../../projects/tango-app-shared/src/lib/modules/notification/notification.module.ts"],"sourcesContent":["import { ChangeDetectorRef, Component, OnInit } from '@angular/core';\r\nimport { GlobalStateService, PageInfoService } from 'tango-app-ui-global';\r\nimport { Subject, takeUntil } from \"rxjs\";\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { NotificationService } from '../../../services/notification.service';\r\nimport { ToastService } from '../../../services/toast.service';\r\n\r\n@Component({\r\n selector: 'lib-notification',\r\n templateUrl: './notification.component.html',\r\n styleUrl: './notification.component.scss'\r\n})\r\nexport class NotificationComponent implements OnInit {\r\n showalert:boolean = true;\r\n showdownload:boolean = false;\r\n loading: boolean = true;\r\n noData: boolean = false;\r\n itemsPerPage = 10;\r\n currentPage = 1;\r\n totalItems = 0;\r\n paginationSizes = [10, 20, 30];\r\n limit: number = 10;\r\n offset: number = 1;\r\n pageSize = 10;\r\n user: any;\r\n headerFilter: any;\r\n clientId: any;\r\n _id:any;\r\n data:any\r\n private readonly destroy$ = new Subject();\r\n notification: any;\r\n total:any;\r\n\r\n \r\nconstructor(private pageInfo:PageInfoService,public gs: GlobalStateService, private route: ActivatedRoute, private service:NotificationService,private cd :ChangeDetectorRef,private toast: ToastService, private router:Router){}\r\n ngOnInit(): void {\r\n // this.gs.dataRangeValue.pipe(takeUntil(this.destroy$)).subscribe((data: any) => {\r\n\r\n // if (data != null) {\r\n // this.user = JSON.parse(localStorage.getItem('user-info') || \"\")\r\n // this.headerFilter = data;\r\n // this.clientId = this.headerFilter?.clients \r\n // }\r\n // });\r\n this.notificationList()\r\n this.setPageData();\r\n this.service.reloadData$.subscribe(() => {\r\n this.notificationList()\r\n })\r\n }\r\n setPageData() {\r\n this.pageInfo.setTitle(\"Alerts\");\r\n this.pageInfo.setDescription(\"Track all your activities and notifications here\");\r\n this.pageInfo.setBreadcrumbs([\r\n { title: \"\", path: \"\", isActive: false, isSeparator: false },\r\n ]);\r\n }\r\n notificationList() {\r\n this.loading = true;\r\n let data = {\r\n limit: this.limit,\r\n offset: this.offset\r\n };\r\n this.service.notificationList(data)\r\n .pipe(takeUntil(this.destroy$))\r\n .subscribe({\r\n next: (res: any) => {\r\n if (res && res.code == 200) {\r\n this.total = res.data.count;\r\n this.notification = res.data.result || [];\r\n if(this.total < 10){\r\n this.paginationSizes = [this.total]\r\n }else{\r\n this.paginationSizes = [10, 20, 30];\r\n }\r\n this.loading = false;\r\n this.noData = false;\r\n } else {\r\n this.noData = true;\r\n this.loading = false;\r\n this.notification = []; \r\n }\r\n this.cd.detectChanges();\r\n },\r\n error: (err) => {\r\n this.noData = true;\r\n this.loading = false;\r\n this.notification = [];\r\n }\r\n });\r\n }\r\n\r\n updateNotification(data: any, btnDetails: any): void {\r\n this.loading = true;\r\n this.service.notificationUpdate(data._id).pipe(takeUntil(this.destroy$)).subscribe((res: any) => {\r\n if (res && res.code == 200) {\r\n if(!btnDetails || btnDetails?.redirectionUrl != 'subscribed')\r\n this.toast.getSuccessToast(res.message);\r\n setTimeout(() => {\r\n this.notificationList();\r\n },1000);\r\n if(btnDetails && btnDetails?.redirectionUrl != '' && btnDetails?.redirectionUrl.split('/').length > 1) {\r\n this.router.navigateByUrl(btnDetails.redirectionUrl);\r\n }\r\n if(btnDetails && btnDetails?.redirectionUrl == 'remind') {\r\n this.service.updateRemind(data._id).pipe(takeUntil(this.destroy$)).subscribe(() => {})\r\n }\r\n if(btnDetails && btnDetails?.redirectionUrl == 'trialApproved') {\r\n let params = {\r\n id:btnDetails.id,\r\n type:'approve'\r\n }\r\n this.service.trialApproved(params).pipe(takeUntil(this.destroy$)).subscribe(() => {})\r\n }\r\n if(btnDetails && btnDetails?.redirectionUrl == 'subscribed') {\r\n let params = {\r\n clientId: btnDetails?.clientId,\r\n products: [\r\n {\r\n name: btnDetails.product,\r\n productName: btnDetails.name,\r\n type: \"subscription\",\r\n content: \"new\"\r\n }\r\n ]\r\n }\r\n this.service.updateSubscription(params).pipe(takeUntil(this.destroy$)).subscribe((res:any) => {\r\n if(res && res.code == 200) {\r\n this.toast.getSuccessToast('Product Subscribed Successfully');\r\n }\r\n })\r\n }\r\n this.cd.detectChanges();\r\n }\r\n },(error:any) => {\r\n this.loading = false;\r\n this.noData = true;\r\n })\r\n }\r\n \r\n chooseManager(type:any){\r\n\r\n }\r\n\r\n onPageChange(pageOffset: number) {\r\n this.offset = Number(pageOffset);\r\n this.notificationList();\r\n }\r\n\r\n onPageSizeChange(pageSize: number) {\r\n this.limit = Number(pageSize);\r\n this.offset = 1;\r\n this.notificationList();\r\n }\r\n\r\n paginationSize(): number {\r\n console.log('this.limit',this.limit,this.total)\r\n if (this.total < 10) {\r\n return this.total;\r\n } else {\r\n return this.limit;\r\n }\r\n }\r\n\r\n}\r\n","<!-- <div class=\"row buttonsec mb-10\">\r\n <button [ngClass]=\"showalert?'':'submenu'\" class=\" col-lg-6 btn bg-light-primary text-primary\"\r\n (click)=\"chooseManager('alert')\">Alerts Manager</button>\r\n <button [ngClass]=\"showdownload?'':'submenu'\" class=\"col-lg-6 btn bg-light-primary \"\r\n (click)=\"chooseManager('download')\">Download Manager</button>\r\n</div> -->\r\n\r\n<div class=\"card topbar\">\r\n <div class=\"card-header\">\r\n <h3 class=\"card-title align-items-start flex-column\">\r\n <span class=\"card-label mb-2\">Alerts Manager</span>\r\n </h3>\r\n </div>\r\n <div class=\"card-body\">\r\n <div class=\"d-flex flex-column flex-xl-row p-7 \">\r\n <div class=\"flex-lg-row-fluid mb-20 mb-xl-0\">\r\n <div class=\"mb-0\">\r\n <div>\r\n <ng-container *ngIf=\"loading\">\r\n <div class=\"row loader d-flex justify-content-center align-items-center\">\r\n <div class=\"shimmer\">\r\n <div class=\"wrapper\">\r\n <div class=\"stroke animate title\"></div>\r\n <div class=\"stroke animate link\"></div>\r\n <div class=\"stroke animate description\"></div>\r\n </div>\r\n </div>\r\n <div class=\"shimmer\">\r\n <div class=\"wrapper\">\r\n <div class=\"stroke animate title\"></div>\r\n <div class=\"stroke animate link\"></div>\r\n <div class=\"stroke animate description\"></div>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n </ng-container>\r\n <ng-container *ngIf=\"noData && !loading\">\r\n <div class=\"row\">\r\n <div class=\"col-lg-12 mb-3\">\r\n <div class=\"card-body d-flex justify-content-center align-items-center flex-column\">\r\n <img class=\"img-src w-25\" src=\"./assets/tango/Icons/noNotification.svg\" alt=\"\">\r\n <span class=\"notificationAlign mt-10\">No New Notification</span>\r\n <span class=\"noNotification mt-2\">Any new notification will be shown\r\n here.</span>\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n <div class=\"row w-100\" *ngIf=\"notification?.length && !loading\">\r\n\r\n <div class=\"col-lg-6\" *ngFor=\"let item of notification;let i=index\">\r\n <div class=\"mb-8 border-value w-100\">\r\n <div class=\"flex-grow-1 me-2\">\r\n <div class=\"row mt-4\">\r\n <div class=\"col-lg-11\">\r\n <div class=\"symbol symbol-50px mx-4\">\r\n <span class=\"mt-2\">\r\n <svg width=\"40\" height=\"40\" viewBox=\"0 0 40 40\"\r\n fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <rect width=\"40\" height=\"40\" rx=\"20\"\r\n fill=\"#DAF1FF\" />\r\n <g clip-path=\"url(#clip0_12108_56367)\">\r\n <path\r\n d=\"M19.9993 23.3333V20M19.9993 16.6666H20.0077M28.3327 20C28.3327 24.6023 24.6017 28.3333 19.9993 28.3333C15.397 28.3333 11.666 24.6023 11.666 20C11.666 15.3976 15.397 11.6666 19.9993 11.6666C24.6017 11.6666 28.3327 15.3976 28.3327 20Z\"\r\n stroke=\"#00A3FF\" stroke-width=\"1.66667\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_12108_56367\">\r\n <rect width=\"20\" height=\"20\" fill=\"white\"\r\n transform=\"translate(10 10)\" />\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n </span>\r\n <span class=\"alert-title mx-4\">{{ item._source.title }}<span\r\n class=\"alertdot m-2\">•</span><span\r\n class=\"alertdot\">{{\r\n item._source.date | customDateFormat }} Today</span>\r\n </span>\r\n <div class=\"alt-desc d-block ms-17\">{{\r\n item._source.description\r\n }}</div>\r\n </div>\r\n </div>\r\n <div class=\"col-lg-1\">\r\n <span (click)=\"updateNotification(item,'')\"\r\n class=\"btn btn-sm btn-icon btn-active-color-primary\">\r\n <svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\">\r\n <path d=\"M15 5L5 15M5 5L15 15\" stroke=\"#667085\"\r\n stroke-width=\"1.67\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"ms-20 mt-2\">\r\n <ng-container *ngFor=\"let cta of item._source.alertCta\">\r\n <button *ngIf=\"!['remind','cancel'].includes(cta.redirectionUrl)\"\r\n (click)=\"updateNotification(item,cta)\"\r\n class=\"btn btn-sm btn-primary\">{{ cta.buttonName }}</button>\r\n <span *ngIf=\"['remind','cancel'].includes(cta.redirectionUrl)\"\r\n (click)=\"updateNotification(item,cta)\"\r\n class=\"text-primary mx-6 remindlatertext cursor-pointer\">{{\r\n cta.buttonName }}</span>\r\n </ng-container>\r\n\r\n </div>\r\n <!-- </div> -->\r\n <!-- </div> -->\r\n </div>\r\n </div>\r\n\r\n </div>\r\n <div *ngIf=\"notification?.length && !loading\" class=\"my-3\">\r\n <lib-pagination [itemsPerPage]=\"limit\" [currentPage]=\"offset\" [totalItems]=\"total\"\r\n [paginationSizes]=\"paginationSizes\" [pageSize]=\"paginationSize()\"\r\n (pageChange)=\"onPageChange($event)\"\r\n (pageSizeChange)=\"onPageSizeChange($event)\"></lib-pagination>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n\r\n<!-- <div class=\"col-lg-12 mb-3\">\r\n <div class=\"card-body d-flex justify-content-center align-items-center flex-column\">\r\n <img class=\"img-src\" width=\"200px\" src=\"./assets/tango/Icons/Nodata.svg\" alt=\"\">\r\n </div>\r\n</div> -->","import { NgModule } from '@angular/core';\r\nimport { RouterModule, Routes } from '@angular/router';\r\nimport { NotificationComponent } from './notification/notification.component';\r\n\r\nconst routes: Routes = [\r\n {\r\n path:'alerts',\r\n component:NotificationComponent\r\n }\r\n];\r\n\r\n@NgModule({\r\n imports: [RouterModule.forChild(routes)],\r\n exports: [RouterModule]\r\n})\r\nexport class NotificationRoutingModule { }\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\n\r\nimport { NotificationRoutingModule } from './notification-routing.module';\r\nimport { NotificationComponent } from './notification/notification.component';\r\nimport { CommonSharedModule } from '../common/common-shared.module';\r\n\r\n\r\n@NgModule({\r\n declarations: [\r\n NotificationComponent\r\n ],\r\n imports: [\r\n CommonModule,\r\n NotificationRoutingModule,\r\n CommonSharedModule\r\n ]\r\n})\r\nexport class NotificationModule { }\r\n"],"names":["i2","i3.NotificationService","i4.ToastService","i5","i6.PaginationComponent","i7.CustomDateFormatPipe"],"mappings":"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"}