@annalib/anna-core 7.2.2 → 7.2.4

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 (156) hide show
  1. package/.browserslistrc +16 -0
  2. package/karma.conf.js +44 -0
  3. package/ng-package.json +14 -0
  4. package/package.json +19 -39
  5. package/src/lib/anna-core-shared-lib/components/anna-buyer-approval-icon-template/anna-buyer-approval-icon-template.component.html +22 -0
  6. package/src/lib/anna-core-shared-lib/components/anna-buyer-approval-icon-template/anna-buyer-approval-icon-template.component.scss +0 -0
  7. package/src/lib/anna-core-shared-lib/components/anna-buyer-approval-icon-template/anna-buyer-approval-icon-template.component.spec.ts +25 -0
  8. package/src/lib/anna-core-shared-lib/components/anna-buyer-approval-icon-template/anna-buyer-approval-icon-template.component.ts +16 -0
  9. package/src/lib/anna-core-shared-lib/components/anna-icon-column/anna-icon-column.component.html +33 -0
  10. package/src/lib/anna-core-shared-lib/components/anna-icon-column/anna-icon-column.component.scss +0 -0
  11. package/src/lib/anna-core-shared-lib/components/anna-icon-column/anna-icon-column.component.spec.ts +25 -0
  12. package/src/lib/anna-core-shared-lib/components/anna-icon-column/anna-icon-column.component.ts +28 -0
  13. package/src/lib/anna-core-shared-lib/components/anna-live-icon-template/anna-live-icon-template.component.html +20 -0
  14. package/src/lib/anna-core-shared-lib/components/anna-live-icon-template/anna-live-icon-template.component.scss +0 -0
  15. package/src/lib/anna-core-shared-lib/components/anna-live-icon-template/anna-live-icon-template.component.spec.ts +25 -0
  16. package/src/lib/anna-core-shared-lib/components/anna-live-icon-template/anna-live-icon-template.component.ts +16 -0
  17. package/src/lib/anna-core-shared-lib/components/anna-no-data/anna-no-data.component.html +3 -0
  18. package/src/lib/anna-core-shared-lib/components/anna-no-data/anna-no-data.component.scss +17 -0
  19. package/src/lib/anna-core-shared-lib/components/anna-no-data/anna-no-data.component.spec.ts +24 -0
  20. package/src/lib/anna-core-shared-lib/components/anna-no-data/anna-no-data.component.ts +20 -0
  21. package/src/lib/anna-core-shared-lib/components/anna-notify-icon-template/anna-notify-icon-template.component.html +23 -0
  22. package/src/lib/anna-core-shared-lib/components/anna-notify-icon-template/anna-notify-icon-template.component.scss +0 -0
  23. package/src/lib/anna-core-shared-lib/components/anna-notify-icon-template/anna-notify-icon-template.component.spec.ts +25 -0
  24. package/src/lib/anna-core-shared-lib/components/anna-notify-icon-template/anna-notify-icon-template.component.ts +16 -0
  25. package/src/lib/anna-core-shared-lib/components/anna-pay-for-performance-icon-template/anna-pay-for-performance-icon-template.component.html +15 -0
  26. package/src/lib/anna-core-shared-lib/components/anna-pay-for-performance-icon-template/anna-pay-for-performance-icon-template.component.scss +0 -0
  27. package/src/lib/anna-core-shared-lib/components/anna-pay-for-performance-icon-template/anna-pay-for-performance-icon-template.component.spec.ts +25 -0
  28. package/src/lib/anna-core-shared-lib/components/anna-pay-for-performance-icon-template/anna-pay-for-performance-icon-template.component.ts +19 -0
  29. package/src/lib/anna-core-shared-lib/components/anna-rejected-icon-template/anna-rejected-icon-template.component.html +14 -0
  30. package/src/lib/anna-core-shared-lib/components/anna-rejected-icon-template/anna-rejected-icon-template.component.scss +0 -0
  31. package/src/lib/anna-core-shared-lib/components/anna-rejected-icon-template/anna-rejected-icon-template.component.spec.ts +25 -0
  32. package/src/lib/anna-core-shared-lib/components/anna-rejected-icon-template/anna-rejected-icon-template.component.ts +16 -0
  33. package/src/lib/anna-core-shared-lib/constants/shared.constant.ts +35 -0
  34. package/src/lib/anna-core-shared-lib/directives/digits-only/digits-only.directive.ts +307 -0
  35. package/src/lib/anna-core-shared-lib/directives/show-ellipsis-text/show-ellipsis-text.directive.ts +19 -0
  36. package/src/lib/anna-core-shared-lib/models/anna-generic-data-type.model.ts +19 -0
  37. package/{lib/anna-core-shared-lib/models/anna-global-dropdown-config.model.d.ts → src/lib/anna-core-shared-lib/models/anna-global-dropdown-config.model.ts} +21 -9
  38. package/src/lib/anna-core-shared-lib/models/anna-manage-users.model.ts +6 -0
  39. package/{lib/anna-core-shared-lib/models/anna-non-editable-gt-models.d.ts → src/lib/anna-core-shared-lib/models/anna-non-editable-gt-models.ts} +28 -17
  40. package/src/lib/anna-core-shared-lib/models/anna-sort.model.ts +13 -0
  41. package/src/lib/anna-core-shared-lib/models/anna-tooltip.model.ts +44 -0
  42. package/src/lib/anna-core-shared-lib/pipes/annaConvertZeroOrNullOrUndefined.pipe.ts +20 -0
  43. package/src/lib/anna-core-shared-lib/pipes/annaFilterSearchedText.pipe.ts +43 -0
  44. package/src/lib/anna-core-shared-lib/pipes/annaReplaceChar.pipe.ts +19 -0
  45. package/src/lib/anna-core-shared-lib/pipes/annaTypeOfData.pipe.ts +12 -0
  46. package/src/lib/anna-core-shared-lib/services/anna-date-time-format.service.ts +219 -0
  47. package/src/lib/anna-core-shared-lib/services/anna-filter.service.ts +563 -0
  48. package/src/lib/anna-core-shared-lib/services/anna-generic-table.service.ts +136 -0
  49. package/src/lib/anna-core-shared-lib/services/anna-global-config.service.ts +170 -0
  50. package/src/lib/anna-core-shared-lib/services/anna-number-format.service.ts +43 -0
  51. package/src/lib/anna-core-shared-lib/services/anna-sort.service.ts +179 -0
  52. package/src/lib/anna-core.module.ts +112 -0
  53. package/src/lib/anna-dropdown-lib/components/anna-calendar-filter/anna-calendar-filter.component.html +46 -0
  54. package/src/lib/anna-dropdown-lib/components/anna-calendar-filter/anna-calendar-filter.component.scss +153 -0
  55. package/src/lib/anna-dropdown-lib/components/anna-calendar-filter/anna-calendar-filter.component.spec.ts +24 -0
  56. package/src/lib/anna-dropdown-lib/components/anna-calendar-filter/anna-calendar-filter.component.ts +106 -0
  57. package/src/lib/anna-dropdown-lib/components/anna-week-calendar-filter/anna-week-calendar-filter.component.html +129 -0
  58. package/src/lib/anna-dropdown-lib/components/anna-week-calendar-filter/anna-week-calendar-filter.component.scss +275 -0
  59. package/src/lib/anna-dropdown-lib/components/anna-week-calendar-filter/anna-week-calendar-filter.component.spec.ts +24 -0
  60. package/src/lib/anna-dropdown-lib/components/anna-week-calendar-filter/anna-week-calendar-filter.component.ts +414 -0
  61. package/src/lib/anna-generic-table-lib/components/anna-non-editable-generic-table/anna-non-editable-generic-table.component.html +1080 -0
  62. package/src/lib/anna-generic-table-lib/components/anna-non-editable-generic-table/anna-non-editable-generic-table.component.scss +668 -0
  63. package/src/lib/anna-generic-table-lib/components/anna-non-editable-generic-table/anna-non-editable-generic-table.component.spec.ts +25 -0
  64. package/src/lib/anna-generic-table-lib/components/anna-non-editable-generic-table/anna-non-editable-generic-table.component.ts +2186 -0
  65. package/src/lib/anna-generic-table-lib/components/anna-sort/anna-sort.component.html +10 -0
  66. package/src/lib/anna-generic-table-lib/components/anna-sort/anna-sort.component.scss +1 -0
  67. package/src/lib/anna-generic-table-lib/components/anna-sort/anna-sort.component.spec.ts +24 -0
  68. package/src/lib/anna-generic-table-lib/components/anna-sort/anna-sort.component.ts +69 -0
  69. package/src/lib/anna-generic-table-lib/components/anna-table-virtual-scroll-viewport/anna-table-virtual-scroll-viewport.component.html +13 -0
  70. package/src/lib/anna-generic-table-lib/components/anna-table-virtual-scroll-viewport/anna-table-virtual-scroll-viewport.component.scss +88 -0
  71. package/src/lib/anna-generic-table-lib/components/anna-table-virtual-scroll-viewport/anna-table-virtual-scroll-viewport.component.spec.ts +25 -0
  72. package/src/lib/anna-generic-table-lib/components/anna-table-virtual-scroll-viewport/anna-table-virtual-scroll-viewport.component.ts +460 -0
  73. package/src/lib/anna-generic-table-lib/directives/anna-fixed-row-size-table-virtual-scroll-strategy/anna-fixed-row-size-table-virtual-scroll-strategy.directive.ts +237 -0
  74. package/{lib/anna-generic-table-lib/directives/anna-fixed-row-size-table-virtual-scroll-strategy/index.d.ts → src/lib/anna-generic-table-lib/directives/anna-fixed-row-size-table-virtual-scroll-strategy/index.ts} +0 -0
  75. package/src/lib/anna-generic-table-lib/directives/anna-virtual-table/anna-virtual-table.directive.ts +204 -0
  76. package/{lib/anna-generic-table-lib/directives/anna-virtual-table/index.d.ts → src/lib/anna-generic-table-lib/directives/anna-virtual-table/index.ts} +0 -0
  77. package/{public-api.d.ts → src/public-api.ts} +28 -0
  78. package/src/test.ts +27 -0
  79. package/tsconfig.lib.json +19 -0
  80. package/tsconfig.lib.prod.json +10 -0
  81. package/tsconfig.spec.json +17 -0
  82. package/annalib-anna-core.d.ts +0 -5
  83. package/esm2020/annalib-anna-core.mjs +0 -5
  84. package/esm2020/lib/anna-core-shared-lib/components/anna-buyer-approval-icon-template/anna-buyer-approval-icon-template.component.mjs +0 -15
  85. package/esm2020/lib/anna-core-shared-lib/components/anna-icon-column/anna-icon-column.component.mjs +0 -35
  86. package/esm2020/lib/anna-core-shared-lib/components/anna-live-icon-template/anna-live-icon-template.component.mjs +0 -15
  87. package/esm2020/lib/anna-core-shared-lib/components/anna-no-data/anna-no-data.component.mjs +0 -22
  88. package/esm2020/lib/anna-core-shared-lib/components/anna-notify-icon-template/anna-notify-icon-template.component.mjs +0 -15
  89. package/esm2020/lib/anna-core-shared-lib/components/anna-pay-for-performance-icon-template/anna-pay-for-performance-icon-template.component.mjs +0 -21
  90. package/esm2020/lib/anna-core-shared-lib/components/anna-rejected-icon-template/anna-rejected-icon-template.component.mjs +0 -15
  91. package/esm2020/lib/anna-core-shared-lib/constants/shared.constant.mjs +0 -35
  92. package/esm2020/lib/anna-core-shared-lib/directives/digits-only/digits-only.directive.mjs +0 -282
  93. package/esm2020/lib/anna-core-shared-lib/directives/show-ellipsis-text/show-ellipsis-text.directive.mjs +0 -27
  94. package/esm2020/lib/anna-core-shared-lib/models/anna-generic-data-type.model.mjs +0 -2
  95. package/esm2020/lib/anna-core-shared-lib/models/anna-global-dropdown-config.model.mjs +0 -2
  96. package/esm2020/lib/anna-core-shared-lib/models/anna-manage-users.model.mjs +0 -8
  97. package/esm2020/lib/anna-core-shared-lib/models/anna-non-editable-gt-models.mjs +0 -2
  98. package/esm2020/lib/anna-core-shared-lib/models/anna-sort.model.mjs +0 -7
  99. package/esm2020/lib/anna-core-shared-lib/models/anna-tooltip.model.mjs +0 -30
  100. package/esm2020/lib/anna-core-shared-lib/pipes/annaConvertZeroOrNullOrUndefined.pipe.mjs +0 -26
  101. package/esm2020/lib/anna-core-shared-lib/pipes/annaFilterSearchedText.pipe.mjs +0 -46
  102. package/esm2020/lib/anna-core-shared-lib/pipes/annaReplaceChar.pipe.mjs +0 -25
  103. package/esm2020/lib/anna-core-shared-lib/pipes/annaTypeOfData.pipe.mjs +0 -16
  104. package/esm2020/lib/anna-core-shared-lib/services/anna-date-time-format.service.mjs +0 -199
  105. package/esm2020/lib/anna-core-shared-lib/services/anna-filter.service.mjs +0 -469
  106. package/esm2020/lib/anna-core-shared-lib/services/anna-generic-table.service.mjs +0 -124
  107. package/esm2020/lib/anna-core-shared-lib/services/anna-global-config.service.mjs +0 -133
  108. package/esm2020/lib/anna-core-shared-lib/services/anna-number-format.service.mjs +0 -41
  109. package/esm2020/lib/anna-core-shared-lib/services/anna-sort.service.mjs +0 -147
  110. package/esm2020/lib/anna-core.module.mjs +0 -180
  111. package/esm2020/lib/anna-dropdown-lib/components/anna-calendar-filter/anna-calendar-filter.component.mjs +0 -101
  112. package/esm2020/lib/anna-dropdown-lib/components/anna-week-calendar-filter/anna-week-calendar-filter.component.mjs +0 -364
  113. package/esm2020/lib/anna-generic-table-lib/components/anna-non-editable-generic-table/anna-non-editable-generic-table.component.mjs +0 -1834
  114. package/esm2020/lib/anna-generic-table-lib/components/anna-sort/anna-sort.component.mjs +0 -69
  115. package/esm2020/lib/anna-generic-table-lib/components/anna-table-virtual-scroll-viewport/anna-table-virtual-scroll-viewport.component.mjs +0 -357
  116. package/esm2020/lib/anna-generic-table-lib/directives/anna-fixed-row-size-table-virtual-scroll-strategy/anna-fixed-row-size-table-virtual-scroll-strategy.directive.mjs +0 -189
  117. package/esm2020/lib/anna-generic-table-lib/directives/anna-fixed-row-size-table-virtual-scroll-strategy/index.mjs +0 -2
  118. package/esm2020/lib/anna-generic-table-lib/directives/anna-virtual-table/anna-virtual-table.directive.mjs +0 -178
  119. package/esm2020/lib/anna-generic-table-lib/directives/anna-virtual-table/index.mjs +0 -2
  120. package/esm2020/public-api.mjs +0 -50
  121. package/fesm2015/annalib-anna-core.mjs +0 -4875
  122. package/fesm2015/annalib-anna-core.mjs.map +0 -1
  123. package/fesm2020/annalib-anna-core.mjs +0 -4868
  124. package/fesm2020/annalib-anna-core.mjs.map +0 -1
  125. package/lib/anna-core-shared-lib/components/anna-buyer-approval-icon-template/anna-buyer-approval-icon-template.component.d.ts +0 -8
  126. package/lib/anna-core-shared-lib/components/anna-icon-column/anna-icon-column.component.d.ts +0 -16
  127. package/lib/anna-core-shared-lib/components/anna-live-icon-template/anna-live-icon-template.component.d.ts +0 -8
  128. package/lib/anna-core-shared-lib/components/anna-no-data/anna-no-data.component.d.ts +0 -11
  129. package/lib/anna-core-shared-lib/components/anna-notify-icon-template/anna-notify-icon-template.component.d.ts +0 -8
  130. package/lib/anna-core-shared-lib/components/anna-pay-for-performance-icon-template/anna-pay-for-performance-icon-template.component.d.ts +0 -11
  131. package/lib/anna-core-shared-lib/components/anna-rejected-icon-template/anna-rejected-icon-template.component.d.ts +0 -8
  132. package/lib/anna-core-shared-lib/constants/shared.constant.d.ts +0 -33
  133. package/lib/anna-core-shared-lib/directives/digits-only/digits-only.directive.d.ts +0 -34
  134. package/lib/anna-core-shared-lib/directives/show-ellipsis-text/show-ellipsis-text.directive.d.ts +0 -9
  135. package/lib/anna-core-shared-lib/models/anna-generic-data-type.model.d.ts +0 -16
  136. package/lib/anna-core-shared-lib/models/anna-manage-users.model.d.ts +0 -6
  137. package/lib/anna-core-shared-lib/models/anna-sort.model.d.ts +0 -11
  138. package/lib/anna-core-shared-lib/models/anna-tooltip.model.d.ts +0 -25
  139. package/lib/anna-core-shared-lib/pipes/annaConvertZeroOrNullOrUndefined.pipe.d.ts +0 -9
  140. package/lib/anna-core-shared-lib/pipes/annaFilterSearchedText.pipe.d.ts +0 -9
  141. package/lib/anna-core-shared-lib/pipes/annaReplaceChar.pipe.d.ts +0 -9
  142. package/lib/anna-core-shared-lib/pipes/annaTypeOfData.pipe.d.ts +0 -7
  143. package/lib/anna-core-shared-lib/services/anna-date-time-format.service.d.ts +0 -27
  144. package/lib/anna-core-shared-lib/services/anna-filter.service.d.ts +0 -74
  145. package/lib/anna-core-shared-lib/services/anna-generic-table.service.d.ts +0 -28
  146. package/lib/anna-core-shared-lib/services/anna-global-config.service.d.ts +0 -21
  147. package/lib/anna-core-shared-lib/services/anna-number-format.service.d.ts +0 -7
  148. package/lib/anna-core-shared-lib/services/anna-sort.service.d.ts +0 -16
  149. package/lib/anna-core.module.d.ts +0 -36
  150. package/lib/anna-dropdown-lib/components/anna-calendar-filter/anna-calendar-filter.component.d.ts +0 -34
  151. package/lib/anna-dropdown-lib/components/anna-week-calendar-filter/anna-week-calendar-filter.component.d.ts +0 -70
  152. package/lib/anna-generic-table-lib/components/anna-non-editable-generic-table/anna-non-editable-generic-table.component.d.ts +0 -283
  153. package/lib/anna-generic-table-lib/components/anna-sort/anna-sort.component.d.ts +0 -17
  154. package/lib/anna-generic-table-lib/components/anna-table-virtual-scroll-viewport/anna-table-virtual-scroll-viewport.component.d.ts +0 -141
  155. package/lib/anna-generic-table-lib/directives/anna-fixed-row-size-table-virtual-scroll-strategy/anna-fixed-row-size-table-virtual-scroll-strategy.directive.d.ts +0 -89
  156. package/lib/anna-generic-table-lib/directives/anna-virtual-table/anna-virtual-table.directive.d.ts +0 -45
@@ -0,0 +1,1080 @@
1
+ <div class="table-container {{gtGeneralConfig?.tableOuterContainerName}}" [ngClass]="{ 'scroll-left-shadow-effect': isScrolledLeft, 'clickable-row': clickableRow }" (scroll)="onTableContainerScroll($event)">
2
+ <div
3
+ [class]="gtGeneralConfig.tableContainerName"
4
+ class="horizontal-scroll-for-table-container"
5
+ [ngStyle]="{
6
+ height:
7
+ tableData.length < maximumRowsWhichCanBeRenderedWithoutScroll
8
+ ? 'calc(' +
9
+ ((gtDimension.rowHeight + (includeBorderInTableHeight ? rowBorderWidth : 0)) * tableData.length +
10
+ (!tableData.length || !gtGeneralConfig.totalRow
11
+ ? gtDimension.headerHeight
12
+ : gtDimension.headerHeight + gtDimension.rowHeight + ( includeBorderInTableHeight ? (2 * rowBorderWidth) : 0))) +
13
+ 'px)'
14
+ : gtDimension.tableHeight
15
+ }"
16
+ >
17
+ <table class="gt" [ngClass]="tableClass" mat-table [dataSource]="renderedData">
18
+ <tr
19
+ class="header-row"
20
+ mat-header-row
21
+ *matHeaderRowDef="tableColumns; sticky: true"
22
+ [style.height.px]="gtDimension.headerHeight"
23
+ ></tr>
24
+ <tr
25
+ class="total-row"
26
+ mat-header-row
27
+ [style.height.px]="gtDimension.rowHeight"
28
+ *matHeaderRowDef="totalRowColumns; sticky: true"
29
+ [class.hidden]="
30
+ showSkeletonLoading ||
31
+ (!showSkeletonLoading && !tableData.length ) ||
32
+ (isNoDataToDisplaySubject$ | async) ||
33
+ (!showSkeletonLoading && !gtGeneralConfig.totalRow)
34
+ "
35
+ ></tr>
36
+ <tr
37
+ [class]="rowData.gtClass"
38
+ [ngClass]="{'no-border-tr': (isNoDataToDisplaySubject$ | async)}"
39
+ mat-row
40
+ *matRowDef="let rowData; columns: tableColumns"
41
+ [style.height.px]="gtDimension.rowHeight"(click)="dataRowClicked(rowData)"
42
+ ></tr>
43
+
44
+ <!-- TOTAL ROW -->
45
+ <ng-container [matColumnDef]="column.colName" *ngFor="let column of totalRowInfo; trackBy: trackByFn">
46
+ <td mat-header-cell *matHeaderCellDef [attr.colspan]="column.colspan" class="{{column.class}}">
47
+ <strong>{{ column.data }}</strong>
48
+ <ng-container *ngIf="column.lowerData">
49
+ <br>
50
+ <span
51
+ *ngIf="column.colName == 'total-potential-booked-unit' && gtGeneralConfig.component == 'RATING';
52
+ else columnLowerData"
53
+ class="clickable-data"
54
+ (click)="spotDetailsDownloadClicked('TOTALROW')"
55
+ [ngClass]="{ 'disabled-clickable-data': downloadInProgress }"
56
+ >{{ column.lowerData }}
57
+ <span class="material-icons spot-details-download-icons">get_app</span>
58
+ <ng-container *ngIf="downloadInProgress
59
+ && selectedRowTypeForDownload == 'TOTALROW' ">
60
+ <ng-container [ngTemplateOutlet]="circularProgressBar"></ng-container>
61
+ </ng-container>
62
+ </span>
63
+ <ng-template #columnLowerData>
64
+ <span>{{ column.lowerData }}</span>
65
+ </ng-template>
66
+ </ng-container>
67
+ <ng-container *ngIf="column.tooltipMessage">
68
+ <i class="mi mdi-info-outline info-label" container="body"
69
+ [ngbTooltip]="column.tooltipMessage"
70
+ tooltipClass="gt-total-row-tooltip" placement="bottom"></i>
71
+ </ng-container>
72
+ </td>
73
+ </ng-container>
74
+
75
+ <!-- MAIN ROW -->
76
+ <ng-container [matColumnDef]="columnDef.headerInfo[0].objectKey" *ngFor="let columnDef of tableHeaders; trackBy: trackByFn">
77
+ <th #tableHeader nowrap mat-header-cell *matHeaderCellDef [style.width]="columnDef.width">
78
+ <div class="row mx-0" *ngFor="let header of columnDef.headerInfo; let j = index;">
79
+ <p
80
+ *ngIf="header.typeOfHeaderData === 'STRING'"
81
+ [ngClass]="{ 'upper-label': j === 0, 'lower-label': j === 1 }"
82
+ >
83
+ {{ header.name }}
84
+ <i *ngIf="header.tooltip && header.tooltip.name == 'impsInfoTooltip'" class="{{header['tooltip'].iconClass}}"
85
+ [ngStyle]="{'float': header['tooltip'].iconPosition}"
86
+ #t="ngbTooltip"
87
+ [ngbTooltip]="impsInfoTooltip"
88
+ placement="{{ header['tooltip'].tooltipPosition }}"
89
+ tooltipClass="{{ header['tooltip'].tooltipClass }}"
90
+ >
91
+ </i>
92
+ <i *ngIf="header.tooltip && header.tooltip.name == 'spotsColumnEquivalizationMessageTooltip'" class="{{header['tooltip'].iconClass}}"
93
+ [ngStyle]="{'float': header['tooltip'].iconPosition}"
94
+ #t="ngbTooltip"
95
+ [ngbTooltip]="spotsColumnEquivalizationMessageTooltip"
96
+ placement="{{ header['tooltip'].tooltipPosition }}"
97
+ tooltipClass="{{ header['tooltip'].tooltipClass }}"
98
+ >
99
+ </i>
100
+ <i *ngIf="header.tooltip && header.tooltip.name == 'ratingInfoTooltip'" class="{{header['tooltip'].iconClass}}"
101
+ [ngStyle]="{'float': header['tooltip'].iconPosition}"
102
+ #t="ngbTooltip"
103
+ [ngbTooltip]="ratingInfoTooltip"
104
+ placement="{{ header['tooltip'].tooltipPosition }}"
105
+ tooltipClass="{{ header['tooltip'].tooltipClass }}"
106
+ >
107
+ </i>
108
+ <i *ngIf="header.tooltip && header.tooltip.name == 'rateInfoTooltip'" class="{{header['tooltip'].iconClass}}"
109
+ [ngStyle]="{'float': header['tooltip'].iconPosition}"
110
+ #t="ngbTooltip"
111
+ [ngbTooltip]="rateInfoTooltip"
112
+ placement="{{ header['tooltip'].tooltipPosition }}"
113
+ tooltipClass="{{ header['tooltip'].tooltipClass }}"
114
+ >
115
+ </i>
116
+ <i *ngIf="header.tooltip && header.tooltip.name == 'ongoingRevBookedColumnTooltip'" class="{{header['tooltip'].iconClass}}"
117
+ [ngStyle]="{'float': header['tooltip'].iconPosition}"
118
+ #t="ngbTooltip"
119
+ [ngbTooltip]="ongoingRevBookedColumnTooltip"
120
+ placement="{{ header['tooltip'].tooltipPosition }}"
121
+ tooltipClass="{{ header['tooltip'].tooltipClass }}"
122
+ >
123
+ </i>
124
+ <i *ngIf="header.tooltip && header.tooltip.name == 'completedRevBookedColumnTooltip'" class="{{header['tooltip'].iconClass}}"
125
+ [ngStyle]="{'float': header['tooltip'].iconPosition}"
126
+ #t="ngbTooltip"
127
+ [ngbTooltip]="completedRevBookedColumnTooltip"
128
+ placement="{{ header['tooltip'].tooltipPosition }}"
129
+ tooltipClass="{{ header['tooltip'].tooltipClass }}"
130
+ >
131
+ </i>
132
+ </p>
133
+
134
+ <ng-container *ngIf="header.typeOfHeaderData === 'CHECKBOX'">
135
+ <span
136
+ *ngIf="gtGeneralConfig.isHeaderChecked"
137
+ class="material-icons custom-column-checkbox-checked"
138
+ (click)="selectUnselectAllRows()"
139
+ >
140
+ check_box
141
+ </span>
142
+ <span
143
+ *ngIf="!gtGeneralConfig.isHeaderChecked"
144
+ class="material-icons custom-column-checkbox-unchecked"
145
+ [ngClass]="{ 'disable-checkbox': gtGeneralConfig.disableHeaderCheckbox }"
146
+ (click)="selectUnselectAllRows()"
147
+ >
148
+ check_box_outline_blank
149
+ </span>
150
+ </ng-container>
151
+
152
+ <div *ngIf="gtGeneralConfig.showAllColumnFilter" class="sort-filter-container">
153
+ <ng-container *ngIf="header.showTooltipIcon">
154
+ <!-- Active tooltip Functionality -->
155
+ <ng-container *ngIf="header.filter === 'CHECKBOX'">
156
+ <span
157
+ class="mdi mdi-filter-variant"
158
+ [ngClass]="{
159
+ active: annaFilterService.isFilterSortActive && annaFilterService.isFilterSortActive[header.joinedFilterSortObjectKeys],
160
+ disabled: header.disableTooltipIcon
161
+ }"
162
+ [ngbTooltip]="filterTooltip"
163
+ placement="bottom left-top auto"
164
+ container="body"
165
+ tooltipClass="non-edit-checkbox-tooltip"
166
+ [autoClose]="'outside'"
167
+ triggers="manual"
168
+ #t="ngbTooltip"
169
+ (click)="bindTheValueToToolTip(t, header)"
170
+ (hidden)="closeTooltip()"
171
+ >
172
+ </span
173
+ ><br />
174
+ </ng-container>
175
+ <ng-container *ngIf="header.filter === 'SLIDER'">
176
+ <span
177
+ class="mdi mdi-filter-variant"
178
+ [ngClass]="{
179
+ active: annaFilterService.isFilterSortActive && annaFilterService.isFilterSortActive[header.joinedFilterSortObjectKeys],
180
+ disabled: header.disableTooltipIcon
181
+ }"
182
+ [ngbTooltip]="sliderToolTip"
183
+ placement="bottom left-top"
184
+ container="body"
185
+ tooltipClass="non-edit-slider-tooltip"
186
+ [autoClose]="'outside'"
187
+ triggers="manual"
188
+ #t1="ngbTooltip"
189
+ (click)="bindTheValueToToolTip(t1, header)"
190
+ (hidden)="closeTooltip()"
191
+ >
192
+ </span
193
+ ><br />
194
+ </ng-container>
195
+ <ng-container *ngIf="header.filter === 'DATE'">
196
+ <span
197
+ class="mdi mdi-filter-variant"
198
+ [ngClass]="{
199
+ active: annaFilterService.isFilterSortActive && annaFilterService.isFilterSortActive[header.joinedFilterSortObjectKeys],
200
+ disabled: header.disableTooltipIcon
201
+ }"
202
+ [ngbTooltip]="datePickerTooltip"
203
+ placement="bottom auto"
204
+ container="body"
205
+ tooltipClass="non-edit-datepicker-tooltip"
206
+ [autoClose]="'outside'"
207
+ triggers="manual"
208
+ #t2="ngbTooltip"
209
+ (click)="bindTheValueToToolTip(t2, header)"
210
+ (hidden)="closeTooltip()"
211
+ >
212
+ </span
213
+ ><br />
214
+ </ng-container>
215
+ <ng-container *ngIf="header.filter === 'WEEK'">
216
+ <span
217
+ class="mdi mdi-filter-variant"
218
+ [ngClass]="{
219
+ active: annaFilterService.isFilterSortActive && annaFilterService.isFilterSortActive[header.joinedFilterSortObjectKeys],
220
+ disabled: header.disableTooltipIcon
221
+ }"
222
+ [ngbTooltip]="weekPickerToolTip"
223
+ placement="bottom left-top"
224
+ container="body"
225
+ [autoClose]="'outside'"
226
+ triggers="manual"
227
+ #t3="ngbTooltip"
228
+ (click)="bindTheValueToToolTip(t3, header)"
229
+ (hidden)="closeTooltip()"
230
+ >
231
+ </span
232
+ ><br />
233
+ </ng-container>
234
+ <ng-container *ngIf="header.filter === 'TIME'">
235
+ <span
236
+ class="mdi mdi-filter-variant"
237
+ [ngClass]="{
238
+ active: annaFilterService.isFilterSortActive && annaFilterService.isFilterSortActive[header.joinedFilterSortObjectKeys],
239
+ disabled: header.disableTooltipIcon
240
+ }"
241
+ [ngbTooltip]="timeFilterToolTip"
242
+ placement="bottom left-top"
243
+ container="body"
244
+ tooltipClass="non-edit-time-tooltip"
245
+ [autoClose]="'outside'"
246
+ triggers="manual"
247
+ #t4="ngbTooltip"
248
+ (click)="bindTheValueToToolTip(t4, header)"
249
+ (hidden)="closeTooltip()"
250
+ >
251
+ </span
252
+ ><br />
253
+ </ng-container>
254
+ </ng-container>
255
+ <ng-container *ngIf="!header.showTooltipIcon">
256
+ <span id="no-filter-space"></span><br />
257
+ </ng-container>
258
+ <i *ngIf="header.tooltip && header.tooltip.name == 'lurViolationInfoTooltip'" class="{{header['tooltip'].iconClass}}"
259
+ [ngStyle]="{'float': header['tooltip'].iconPosition}"
260
+ #t="ngbTooltip"
261
+ [ngbTooltip]="lurViolationInfoTooltip"
262
+ placement="{{ header['tooltip'].tooltipPosition }}"
263
+ tooltipClass="{{ header['tooltip'].tooltipClass }}"
264
+ >
265
+ </i>
266
+
267
+ </div>
268
+ </div>
269
+ </th>
270
+
271
+ <ng-container *ngIf="gtGeneralConfig.component == 'DRR'">
272
+ <ng-container *matCellDef="let ROW_DATA">
273
+ <ng-container *ngIf="showSkeletonLoading">
274
+ <td mat-cell>
275
+ <ngx-skeleton-loader count="1" [theme]="{ height: '10px', display: 'block' }">
276
+ </ngx-skeleton-loader>
277
+ </td>
278
+ </ng-container>
279
+
280
+ <ng-container *ngIf="!showSkeletonLoading">
281
+ <td
282
+ mat-cell
283
+ *ngIf="!ROW_DATA['hide' + columnDef.headerInfo[0].objectKey + 'Td']"
284
+ [attr.rowspan]="ROW_DATA[columnDef.headerInfo[0].objectKey + 'Rowspan']">
285
+ <ng-container
286
+ *ngFor="let subline of columnDef.headerInfo; let sublineIndex = index; trackBy: trackByFn"
287
+ >
288
+ <ng-container [ngSwitch]="subline.typeOfBodyData">
289
+ <ng-container *ngSwitchCase="'ICON'">
290
+ <i [class]="ROW_DATA.iconClass"></i>
291
+ </ng-container>
292
+
293
+ <ng-container *ngSwitchCase="'CHECKBOX'">
294
+ <span
295
+ *ngIf="ROW_DATA[subline.objectKey]"
296
+ [ngClass]="{ 'disable-checkbox': ROW_DATA[subline.isDisabledKey] }"
297
+ class="material-icons custom-column-checkbox-checked"
298
+ (click)="selectUnselectRow(ROW_DATA)"
299
+ >
300
+ check_box
301
+ </span>
302
+ <span
303
+ *ngIf="!ROW_DATA[subline.objectKey]"
304
+ class="material-icons custom-column-checkbox-unchecked"
305
+ [ngClass]="{ 'disable-checkbox': ROW_DATA[subline.isDisabledKey] }"
306
+ (click)="selectUnselectRow(ROW_DATA)"
307
+ >
308
+ check_box_outline_blank
309
+ </span>
310
+ </ng-container>
311
+
312
+ <ng-container *ngSwitchCase="'RADIO'">
313
+ <mat-radio-group
314
+ *ngIf="ROW_DATA['RadioButtonConfig']"
315
+ [ngModel]="ROW_DATA[subline.objectKey]"
316
+ [disabled]="ROW_DATA['RadioButtonConfig'][0].isDisabled"
317
+ >
318
+ <ng-container
319
+ *ngFor="let radioButton of ROW_DATA['RadioButtonConfig']; let last = last"
320
+ >
321
+ <mat-radio-button
322
+ value="{{ radioButton.value }}"
323
+ class="{{ radioButton.class }}"
324
+ (click)="
325
+ radioButtonClicked(
326
+ ROW_DATA,
327
+ radioButton.value,
328
+ ROW_DATA['RadioButtonConfig'][0].isDisabled
329
+ )
330
+ "
331
+ >{{ radioButton.label }}</mat-radio-button
332
+ ><br *ngIf="!last" />
333
+ </ng-container>
334
+ </mat-radio-group>
335
+ </ng-container>
336
+
337
+ <div *ngSwitchDefault>
338
+ {{ ROW_DATA[subline.objectKey] }}
339
+
340
+ <ng-container
341
+ *ngIf="
342
+ subline.objectKey == 'Status' && (ROW_DATA['Remarks'] !== null)
343
+ "
344
+ >
345
+ <i
346
+ class="mi mdi-info-outline remarks-tooltip"
347
+ [ngbTooltip]="columnInfoTooltip"
348
+ placement="bottom"
349
+ container="body"
350
+ tooltipClass="remarks-info-tooltip"
351
+ #t="ngbTooltip"
352
+ ></i>
353
+ </ng-container>
354
+ </div>
355
+ </ng-container>
356
+ </ng-container>
357
+ </td>
358
+ </ng-container>
359
+ </ng-container>
360
+ </ng-container>
361
+
362
+ <ng-container *ngIf="gtGeneralConfig.component != 'DRR'">
363
+ <td mat-cell *matCellDef="let ROW_DATA" [style.background]="ROW_DATA.backgroundColor"
364
+ [style.border]="ROW_DATA.border"
365
+ class="{{ROW_DATA.rowClass}}"
366
+ >
367
+ <ngx-skeleton-loader *ngIf="showSkeletonLoading" count="1" [theme]="{ height: '10px', display: 'block' }">
368
+ </ngx-skeleton-loader>
369
+
370
+ <ng-container *ngIf="!showSkeletonLoading">
371
+ <ng-container *ngIf="tableData.length > 0 && !(isNoDataToDisplaySubject$ | async)">
372
+ <div showEllipsisTextOnHover *ngFor="let subline of columnDef.headerInfo; let subLineIndex = index; trackBy: trackByFn">
373
+ <ng-container [ngSwitch]="columnDef.headerInfo[subLineIndex].typeOfBodyData">
374
+ <ng-container *ngSwitchCase="'ICON'">
375
+ <i *ngIf="!(starredInProgress && ROW_DATA.orderId == selectedStarredOrderId)" [class]="ROW_DATA.iconClass" (click)="iconClicked(ROW_DATA,ROW_DATA.iconClass)"
376
+ ngbTooltip="{{ ROW_DATA.iconTitleText }}" placement="bottom" container="body"
377
+ tooltipClass="gt-icon-column-tooltip remove-on-scroll-class"
378
+ ></i>
379
+ <ng-container *ngIf="starredInProgress && ROW_DATA.orderId == selectedStarredOrderId">
380
+ <div class="spinner-for-button-directive"></div>
381
+ </ng-container>
382
+
383
+
384
+ </ng-container>
385
+
386
+ <ng-container *ngSwitchCase="'SVG_ICON'">
387
+ <anna-core-anna-icon-column [componentName]="gtGeneralConfig.component" [objectKey]="subline.objectKey" [dataObject]="ROW_DATA" (onColumnIconClicked)="svgIconClicked($event)"></anna-core-anna-icon-column>
388
+ </ng-container>
389
+
390
+ <ng-container *ngSwitchCase="'TEXT_ACTIONS'">
391
+ <button *ngFor="let text of ROW_DATA.textActions" (click)="textActionClicked(ROW_DATA,text.id)" [disabled]="text.isDisabled" class="{{text.class}}">{{text.name}}</button>
392
+ </ng-container>
393
+
394
+ <ng-container *ngSwitchCase="'CHECKBOX'">
395
+ <span
396
+ *ngIf="ROW_DATA[columnDef.headerInfo[subLineIndex].objectKey]"
397
+ [ngClass]="{
398
+ 'disable-checkbox': ROW_DATA[columnDef.headerInfo[subLineIndex].isDisabledKey]
399
+ }"
400
+ class="material-icons custom-column-checkbox-checked"
401
+ (click)="
402
+ selectOrUnselectCheckbox(
403
+ ROW_DATA,
404
+ columnDef.headerInfo[subLineIndex].objectKey,
405
+ false
406
+ )
407
+ "
408
+ >
409
+ check_box
410
+ </span>
411
+ <span
412
+ *ngIf="!ROW_DATA[columnDef.headerInfo[subLineIndex].objectKey]"
413
+ class="material-icons custom-column-checkbox-unchecked"
414
+ [ngClass]="{
415
+ 'disable-checkbox': ROW_DATA[columnDef.headerInfo[subLineIndex].isDisabledKey]
416
+ }"
417
+ (click)="
418
+ selectOrUnselectCheckbox(
419
+ ROW_DATA,
420
+ columnDef.headerInfo[subLineIndex].objectKey,
421
+ true
422
+ )
423
+ "
424
+ >
425
+ check_box_outline_blank
426
+ </span>
427
+ </ng-container>
428
+
429
+ <ng-container *ngSwitchCase="'CLICKABLE_DATA'">
430
+ <a
431
+ *ngFor="let text of ROW_DATA.clickableItem"
432
+ [ngClass]="{'disabled': text.isDisabled}"
433
+ (click)="onClickableDataClicked(ROW_DATA, text.id)">
434
+ {{ text.name }}
435
+ </a>
436
+ <span
437
+ *ngIf="subline.objectKey == 'displayBookedUnits' && gtGeneralConfig.component == 'RATING'"
438
+ class="clickable-data"
439
+ (click)="spotDetailsDownloadClicked('DATAROW', ROW_DATA)"
440
+ [ngClass]="{ 'disabled-clickable-data': downloadInProgress }"
441
+ >{{ ROW_DATA.displayBookedUnits}}
442
+ <span class="material-icons spot-details-download-icons">get_app</span>
443
+ <ng-container *ngIf="downloadInProgress
444
+ && ROW_DATA.inventoryCodeId == selectedInventoryIdForDownload
445
+ && ROW_DATA.demographic == selectedDemographicForDownload ">
446
+ <ng-container [ngTemplateOutlet]="circularProgressBar"></ng-container>
447
+ </ng-container>
448
+ </span>
449
+ </ng-container>
450
+
451
+ <ng-container *ngSwitchCase="'CLICKABLE_DATA_2'">
452
+ <a
453
+ *ngFor="let text of ROW_DATA.clickableItem2"
454
+ [ngClass]="{'disabled': text.isDisabled}"
455
+ (click)="onClickableDataClicked(ROW_DATA, text.id)">
456
+ {{ text.name }}
457
+ </a>
458
+ <span
459
+ *ngIf="subline.objectKey == 'displayBookedUnits' && gtGeneralConfig.component == 'RATING'"
460
+ class="clickable-data"
461
+ (click)="spotDetailsDownloadClicked('DATAROW', ROW_DATA)"
462
+ [ngClass]="{ 'disabled-clickable-data': downloadInProgress }"
463
+ >{{ ROW_DATA.displayBookedUnits}}
464
+ <span class="material-icons spot-details-download-icons">get_app</span>
465
+ <ng-container *ngIf="downloadInProgress
466
+ && ROW_DATA.inventoryCodeId == selectedInventoryIdForDownload
467
+ && ROW_DATA.demographic == selectedDemographicForDownload ">
468
+ <ng-container [ngTemplateOutlet]="circularProgressBar"></ng-container>
469
+ </ng-container>
470
+ </span>
471
+ </ng-container>
472
+
473
+ <ng-container *ngSwitchCase="'STRING___ICON_OR_TEXT_ACTION_1'">
474
+ <ng-container *ngFor="let action of ROW_DATA.actions1">
475
+
476
+ <span ngbTooltip="{{ action.additionalTextBeforeLink }}" placement="bottom" container="body"
477
+ tooltipClass="gt-icon-column-tooltip remove-on-scroll-class" [disableTooltip]="action.disableTooltip">
478
+ {{ action.additionalTextBeforeLink }}
479
+ </span>
480
+
481
+ <ng-container *ngIf="action && action.typeOfData== 'STRING'">
482
+ {{ action.data }}
483
+ </ng-container>
484
+
485
+ <a appHasPrivilege [id]="action.id" *ngIf="action.showLink" (click)="textActionClicked(ROW_DATA, action.id)" [class]="action.linkClass"
486
+ [ngClass]="{'disabled': action.disabledLink}">{{action.data}}
487
+ </a>
488
+
489
+ <ng-container *ngIf="action.showTooltip">
490
+ <i appHasPrivilege [id]="action.id" *ngIf="action.showIcon" [class]="action.iconClass" [ngClass]="{'disabled': action.disabledIcon}"
491
+ (mouseenter)="mouseEnterOnStringTextActionType(ROW_DATA)" placement="bottom auto" container="body"
492
+ [autoClose]="true" tooltipClass="team-user-tooltip" [ngbTooltip]="userLoggedInDetails">
493
+ </i>
494
+ </ng-container>
495
+
496
+ <ng-container *ngIf="!action.showTooltip">
497
+ <i appHasPrivilege [id]="action.id" *ngIf="action.showIcon" [class]="action.iconClass" [ngClass]="{'disabled': action.disabledIcon}"
498
+ (click)="iconClickedOnStringIconActionType(ROW_DATA, action.id)">
499
+ </i>
500
+ </ng-container>
501
+
502
+ </ng-container>
503
+ </ng-container>
504
+
505
+ <ng-container *ngSwitchCase="'STRING___ICON_OR_TEXT_ACTION_2'">
506
+ <ng-container *ngFor="let action of ROW_DATA.actions2">
507
+
508
+ <span ngbTooltip="{{ action.additionalTextBeforeLink }}" placement="bottom" container="body" tooltipClass="gt-icon-column-tooltip remove-on-scroll-class" [disableTooltip]="action.disableTooltip">
509
+ {{ action.additionalTextBeforeLink }}
510
+ </span>
511
+
512
+ <ng-container *ngIf="action && action.typeOfData== 'STRING'">
513
+ {{ action.data }}
514
+ </ng-container>
515
+
516
+ <a *ngIf="action.showLink" (click)="textActionClicked(ROW_DATA, action.id)" [class]="action.linkClass"
517
+ [ngClass]="{'disabled': action.disabledLink}">{{action.data }}
518
+ </a>
519
+
520
+ <ng-container *ngIf="action.showTooltip">
521
+ <i *ngIf="action.showIcon" [class]="action.iconClass" [ngClass]="{'disabled': action.disabledIcon}"
522
+ (mouseenter)="mouseEnterOnStringTextActionType(ROW_DATA)" placement="bottom auto" container="body"
523
+ [autoClose]="true" tooltipClass="team-user-tooltip" [ngbTooltip]="userLoggedInDetails">
524
+ </i>
525
+ </ng-container>
526
+
527
+ <ng-container *ngIf="!action.showTooltip">
528
+ <i *ngIf="action.showIcon" [class]="action.iconClass" [ngClass]="{'disabled': action.disabledIcon}"
529
+ (click)="iconClickedOnStringIconActionType(ROW_DATA, action.id)">
530
+ </i>
531
+ </ng-container>
532
+
533
+ </ng-container>
534
+ </ng-container>
535
+
536
+ <ng-container *ngSwitchCase="'STRING___ICON_OR_TEXT_ACTION_3'">
537
+ <ng-container *ngFor="let action of ROW_DATA.actions3">
538
+
539
+ <!-- <ng-container *ngIf="action.additionalTextBeforeLink == '-'">
540
+ <span>
541
+ {{ action.additionalTextBeforeLink }}
542
+ </span>
543
+ </ng-container> -->
544
+
545
+ <span ngbTooltip="{{ action.additionalTextBeforeLink }}" placement="bottom" container="body"
546
+ tooltipClass="gt-icon-column-tooltip remove-on-scroll-class" [disableTooltip]="action.disableTooltip">
547
+ {{ action.additionalTextBeforeLink }}
548
+ </span>
549
+
550
+ <!-- <ng-container *ngIf="action.additionalTextBeforeLink != '-'">
551
+ <span title = "{{ action.additionalTextBeforeLink }}">
552
+ {{ action.additionalTextBeforeLink }}
553
+ </span>
554
+ </ng-container> -->
555
+
556
+ <ng-container *ngIf="action && action.typeOfData== 'STRING'">
557
+ {{ action.data }}
558
+ </ng-container>
559
+
560
+ <a *ngIf="action.showLink" (click)="textActionClicked(ROW_DATA, action.id)" [class]="action.linkClass"
561
+ [ngClass]="{'disabled': action.disabledLink}">{{action.data}}
562
+ </a>
563
+
564
+ <ng-container *ngIf="action.showTooltip">
565
+ <i *ngIf="action.showIcon" [class]="action.iconClass" [ngClass]="{'disabled': action.disabledIcon}"
566
+ (mouseenter)="mouseEnterOnStringTextActionType(ROW_DATA)" placement="bottom auto" container="body"
567
+ [autoClose]="true" tooltipClass="team-user-tooltip" [ngbTooltip]="userLoggedInDetails">
568
+ </i>
569
+ </ng-container>
570
+
571
+ <ng-container *ngIf="!action.showTooltip">
572
+ <i *ngIf="action.showIcon" [class]="action.iconClass" [ngClass]="{'disabled': action.disabledIcon}"
573
+ (click)="iconClickedOnStringIconActionType(ROW_DATA, action.id)">
574
+ </i>
575
+ </ng-container>
576
+
577
+ </ng-container>
578
+ </ng-container>
579
+
580
+ <ng-container *ngSwitchDefault>
581
+ <ng-container *ngIf="subline.objectKey != 'description'">
582
+ <span>{{ ROW_DATA[columnDef.headerInfo[subLineIndex].objectKey] }}</span>
583
+ <i
584
+ *ngIf="subline.objectKey == 'inventoryCode' && ROW_DATA['isSellerGroup'] && gtGeneralConfig.component == 'RATING' "
585
+ class="mi mdi-info-outline seller-tooltip"
586
+ [ngbTooltip]="sellerHierarchyTooltip"
587
+ placement="bottom auto"
588
+ container="body"
589
+ [autoClose]="true"
590
+ triggers="manual"
591
+ (hidden)="closeTooltip()"
592
+ #info="ngbTooltip"
593
+ tooltipClass="hierarchy-tooltip"
594
+ (mouseenter)="bindTheValueToSellerGroupTooltip(ROW_DATA.sellerGroupHierarchy, info)">
595
+ </i>
596
+
597
+ <i *ngIf="subline.objectKey == 'displayBookedAverageRating' && gtGeneralConfig.component == 'RATING' && ROW_DATA['showRatingAverageIcon'] "
598
+ class="mi mdi-info-outline seller-tooltip"
599
+ placement="bottom auto"
600
+ container="body"
601
+ [autoClose]="true"
602
+ (mouseenter)="setIsDifference(ROW_DATA.isDifferenceLessThan25Percent)"
603
+ tooltipClass="posted-avg-tooltip"
604
+ [ngbTooltip]="postedRatingDifference"
605
+ >
606
+ </i>
607
+
608
+ <i *ngIf="subline.objectKey == 'displayBookedAverageImpression' && gtGeneralConfig.component == 'RATING' && ROW_DATA['showImpressionAverageIcon'] "
609
+ class="mi mdi-info-outline seller-tooltip"
610
+ placement="bottom auto"
611
+ container="body"
612
+ [autoClose]="true"
613
+ (mouseenter)="setIsDifference(ROW_DATA.isDifferenceLessThan25Percent)"
614
+ tooltipClass="posted-avg-tooltip"
615
+ [ngbTooltip]="postedImpDifference"
616
+ >
617
+ </i>
618
+
619
+ </ng-container>
620
+ <ng-container *ngIf="subline.objectKey == 'description'">
621
+ <p *ngIf="ROW_DATA.descriptionMessage || ROW_DATA.descriptionEmailReferenceNum">
622
+ <ng-container *ngIf="ROW_DATA.descriptionMessage">
623
+ {{ ROW_DATA.descriptionMessage }}
624
+ <br />
625
+ </ng-container>
626
+ <ng-container *ngIf="ROW_DATA.descriptionEmailReferenceNum">
627
+ Email Ref: {{ ROW_DATA.descriptionEmailReferenceNum }}
628
+ <br />
629
+ </ng-container>
630
+ </p>
631
+ <a
632
+ href="{{ ROW_DATA.descriptionDetailsUrl }}"
633
+ target="_blank"
634
+ *ngIf="ROW_DATA.descriptionDetailsUrlType === 'PDF' || ROW_DATA.descriptionDetailsUrlType === 'EXCEL'"
635
+ >
636
+ <button class="btn viewDetailsAndEmailBtn">Download</button>
637
+ </a>
638
+ <ng-container *ngIf="ROW_DATA.activityname.toLowerCase() == 'order onboarded'">
639
+ <a *ngIf="ROW_DATA.descriptionDetailsUrlType === 'LINK'" (click)="viewDetailsClicked(ROW_DATA)">
640
+ <button class="btn viewDetailsAndEmailBtn order-onboarded">View details</button>
641
+ </a>
642
+ </ng-container>
643
+
644
+ <a href="{{ ROW_DATA.descriptionEmailUrl }}" target="_blank" *ngIf="ROW_DATA.descriptionEmailUrl">
645
+ <button class="btn viewDetailsAndEmailBtn">View email</button>
646
+ </a>
647
+ </ng-container>
648
+ </ng-container>
649
+ </ng-container>
650
+
651
+ </div>
652
+ </ng-container>
653
+ <ng-container *ngIf="(isNoDataToDisplaySubject$ | async)">
654
+ <div>
655
+ {{null}}
656
+ </div>
657
+ </ng-container>
658
+ </ng-container>
659
+ </td>
660
+ </ng-container>
661
+ </ng-container>
662
+ </table>
663
+ </div>
664
+ <anna-core-no-data-lib [width]="noDataWidth" [marginTop]="marginTop" *ngIf="(isNoDataToDisplaySubject$ | async)"> </anna-core-no-data-lib>
665
+ </div>
666
+
667
+ <!-- Checkbox template -->
668
+ <ng-template #filterTooltip>
669
+
670
+ <div class="radio-container" *ngIf="showFilterTooltipTabs">
671
+ <div [ngClass]="{'full-width': filterTabObjects.length == 1}" *ngFor="let data of filterTabObjects">
672
+ <p class="filter-tab" [title]="data.label" (click)="populateTooltipDataBasedOnSelectedRadio(data)" [ngClass]="{'active': annaFilterService.selectedRadio == data.key}" *ngIf="filterTabObjects.length > 0">{{ data.label }}</p>
673
+ </div>
674
+ </div>
675
+
676
+ <div class="checkbox-sort" *ngIf="showSortComponent">
677
+ <anna-core-sort-lib [ngClass]="{'no-bottom-border': !showFilterComponent}"
678
+ (sortOptionClicked)="storeSortTypeInTempVariable($event)" [sortObjectKey]="annaFilterService.selectedRadio"></anna-core-sort-lib>
679
+ </div>
680
+
681
+ <ng-container *ngIf="showFilterComponent">
682
+ <p class="d-flex justify-content-between">
683
+ <button class="filter-text-btn" [disabled]="disableClearAll" (click)="unCheckAllCheckbox()">Clear all</button>
684
+ <button class="filter-text-btn" [disabled]="disableSelectAll" (click)="selectAllCheckbox()">Select all</button>
685
+ </p>
686
+ <p class="search-box">
687
+ <i class="mi mdi-search search-icon search-icon-position"></i>
688
+ <input
689
+ type="text"
690
+ placeholder="Search"
691
+ class="search-input"
692
+ style="margin-left: 2px; border: none; padding: 0px"
693
+ [(ngModel)]="searchItem"
694
+ (ngModelChange)="searchForTheItem($event)"
695
+ />
696
+ <i class="mdi mdi-close search-bar-close" [ngClass]="{'disable-close-icon': (!searchItem || searchItem.length == 0) }"
697
+ (click)="clearSearchedItem()"></i>
698
+
699
+ </p>
700
+ <div style="position:relative">
701
+ <!-- Track By func -->
702
+ <cdk-virtual-scroll-viewport itemSize="18" [style.height.px]="heightOfCheckboxTooltipFilter" class="dropdown-data-container">
703
+ <p *cdkVirtualFor="let option of tooltipOptions" class="input example-item" (click)="selectUnselectCheckbox(option)">
704
+ <span *ngIf="option.isSelected" role="button" class="mi mdi-check-box check-box"></span>
705
+ <span *ngIf="!option.isSelected" role="button" class="mi mdi-check-box-outline-blank check-box unchecked"></span>
706
+ <span class="data" title="{{ option.value }}" [innerHTML]="option.label"></span>
707
+ </p>
708
+ </cdk-virtual-scroll-viewport>
709
+ <div style="position: absolute; top:0; left:0; width:100%; height:100%; pointer-events:none"></div>
710
+ </div>
711
+ </ng-container>
712
+
713
+ <div class="buttons-container">
714
+ <button class="button" (click)="closeCheckboxFilter()">Cancel</button>
715
+ <button
716
+ class="button"
717
+ [ngClass]="{ disabled: disableCheckboxApply }"
718
+ (click)="applyFilters()"
719
+ [disabled]="disableCheckboxApply"
720
+ >
721
+ Apply
722
+ <span *ngIf="showFilterComponent">{{ selectedCheckboxOptionsCount == tooltipOptions.length && tooltipOptions.length != 0 && !searchItem? 'All ('+ selectedCheckboxOptionsCount + ')': '(' + selectedCheckboxOptionsCount + ')' }}</span>
723
+ </button>
724
+ </div>
725
+ </ng-template>
726
+
727
+ <!-- Slider template -->
728
+ <ng-template #sliderToolTip>
729
+
730
+ <div class="radio-container" *ngIf="showFilterTooltipTabs">
731
+ <div *ngFor="let data of filterTabObjects">
732
+ <p class="filter-tab" [title]="data.label" (click)="populateTooltipDataBasedOnSelectedRadio(data)" [ngClass]="{'active': annaFilterService.selectedRadio == data.key}" *ngIf="filterTabObjects.length > 0">{{ data.label }}</p>
733
+ </div>
734
+ </div>
735
+ <!-- <button class="column-clear-all align-center" [disabled]="disableColumnClearAllBtn" (click)="clearColumnFilter()">
736
+ Clear filter
737
+ </button> -->
738
+
739
+ <anna-core-sort-lib *ngIf="showSortComponent" [ngClass]="{'no-bottom-border': !showFilterComponent}"
740
+ (sortOptionClicked)="storeSortTypeInTempVariable($event)" [sortObjectKey]="annaFilterService.selectedRadio"></anna-core-sort-lib>
741
+
742
+ <ng-container *ngIf="showFilterComponent">
743
+ <button class="column-clear-all" [disabled]="disableColumnClearAllBtn" (click)="clearColumnFilter()">Clear filter</button>
744
+ <section class="min-maxContainer">
745
+ <input
746
+ type="number"
747
+ class="slider-text"
748
+ step="{{ sliderFilterTextBoxStep }}"
749
+ [(ngModel)]="sliderMinValue"
750
+ (ngModelChange)="minValueChanged($event)"
751
+ [ngClass]="{'red-border': showSliderMinValueError}"
752
+ placeholder="Min"
753
+ />
754
+ <span>To</span>
755
+ <input
756
+ type="number"
757
+ class="slider-text"
758
+ step="{{ sliderFilterTextBoxStep }}"
759
+ [(ngModel)]="sliderMaxValue"
760
+ (ngModelChange)="maxValueChanged($event)"
761
+ [ngClass]="{'red-border': showSliderMaxValueError}"
762
+ placeholder="Max"
763
+ />
764
+ </section>
765
+ <div class="sidebar-slider">
766
+ <ngx-slider
767
+ [ngClass]="{'show-min': sliderMinValue != options.floor, 'show-max': sliderMaxValue != options.ceil}"
768
+ class="filter-slider"
769
+ [value]="sliderMinValue"
770
+ [highValue]="sliderMaxValue"
771
+ [options]="options"
772
+ ></ngx-slider>
773
+ </div>
774
+ </ng-container>
775
+
776
+ <div class="buttons-container">
777
+ <button class="button" (click)="cancelSliderFilter()">Cancel</button>
778
+ <button
779
+ class="button"
780
+ [ngClass]="{ disabled: disableSliderApplyButton }"
781
+ (click)="applySliderFilter()"
782
+ [disabled]="disableSliderApplyButton"
783
+ >
784
+ Apply
785
+ </button>
786
+ </div>
787
+ </ng-template>
788
+
789
+ <!-- Date Picker Template -->
790
+ <ng-template #datePickerTooltip>
791
+ <div class="radio-container" *ngIf="showFilterTooltipTabs">
792
+ <div *ngFor="let data of filterTabObjects">
793
+ <p class="filter-tab" [title]="data.label" (click)="populateTooltipDataBasedOnSelectedRadio(data)" [ngClass]="{'active': annaFilterService.selectedRadio == data.key}" *ngIf="filterTabObjects.length > 0">{{ data.label }}</p>
794
+ </div>
795
+ </div>
796
+
797
+ <anna-core-sort-lib *ngIf="showSortComponent" [ngClass]="{'no-bottom-border': !showFilterComponent}"
798
+ (sortOptionClicked)="storeSortTypeInTempVariable($event)" [sortObjectKey]="annaFilterService.selectedRadio"></anna-core-sort-lib>
799
+
800
+ <ng-container *ngIf="showFilterComponent">
801
+ <div class="datepicker-container">
802
+ <button class="column-clear-all" [disabled]="disableColumnClearAllBtn" (click)="clearColumnFilter()">
803
+ Clear filter
804
+ </button>
805
+ <anna-core-calendar-filter-lib
806
+ [minDate]="calendarMinEnabledDate"
807
+ [maxDate]="calendarMaxEnabledDate"
808
+ [selectedFromDate]="selectedMinDate"
809
+ [selectedToDate]="selectedMaxDate"
810
+ (selectedDate) = "calendarDateChanged($event)"
811
+ [label]="selectedLabel"
812
+ >
813
+ </anna-core-calendar-filter-lib>
814
+ </div>
815
+ </ng-container>
816
+
817
+ <div class="buttons-container">
818
+ <button class="button" (click)="cancelInDateFilter()">Cancel</button>
819
+ <button class="button" (click)="applyDateFilter()" [ngClass]="{ disabled: disableCalendarApplyBtn }"
820
+ [disabled]="disableCalendarApplyBtn">Apply</button>
821
+ </div>
822
+
823
+ </ng-template>
824
+
825
+ <!-- Week Picker Template -->
826
+ <ng-template #weekPickerToolTip>
827
+ <div class="weekpicker-container">
828
+ <anna-core-week-calendar-filter-lib
829
+ [week-calendar-config]="gtGeneralConfig.multiWeekPickerConfig"
830
+ (apply)="applyWeekFilter($event)"
831
+ [from-date]="calendarMinEnabledDate"
832
+ [to-date]="calendarMaxEnabledDate"
833
+ >
834
+ </anna-core-week-calendar-filter-lib>
835
+ </div>
836
+ </ng-template>
837
+
838
+ <!-- Time Filter Template -->
839
+ <ng-template #timeFilterToolTip>
840
+
841
+ <div class="radio-container" *ngIf="showFilterTooltipTabs">
842
+ <div *ngFor="let data of filterTabObjects">
843
+ <p class="filter-tab" [title]="data.label" (click)="populateTooltipDataBasedOnSelectedRadio(data)" [ngClass]="{'active': annaFilterService.selectedRadio == data.key}" *ngIf="filterTabObjects.length > 0">{{ data.label }}</p>
844
+ </div>
845
+ </div>
846
+
847
+ <anna-core-sort-lib *ngIf="showSortComponent" [ngClass]="{'no-bottom-border': !showFilterComponent}"
848
+ (sortOptionClicked)="storeSortTypeInTempVariable($event)" [sortObjectKey]="annaFilterService.selectedRadio"></anna-core-sort-lib>
849
+
850
+ <ng-container *ngIf="showFilterComponent">
851
+ <button class="column-clear-all" [disabled]="disableColumnClearAllBtn" (click)="clearColumnFilter()">Clear filter</button>
852
+ <div
853
+ class="time-filter-checkboxes"
854
+ *ngIf="gtGeneralConfig.component == 'SPOTDETAILS' || gtGeneralConfig.component == 'EXCLUDEINVENTORYPOPUP' || gtGeneralConfig.component == 'RATING'"
855
+ >
856
+ <!-- Multi time option checkbox -->
857
+ <div class="d-flex align-items-center" style="padding: 0.5rem 0 0.5rem 0.5rem" *ngIf="showMultiTimeCheckbox">
858
+ <span
859
+ *ngIf="multiTimeCheckboxChecked"
860
+ class="material-icons custom-column-checkbox-checked"
861
+ (click)="selectOrUnselectMultiTimeCheckbox()"
862
+ >
863
+ check_box
864
+ </span>
865
+ <span
866
+ *ngIf="!multiTimeCheckboxChecked"
867
+ class="material-icons custom-column-checkbox-unchecked"
868
+ (click)="selectOrUnselectMultiTimeCheckbox()"
869
+ >
870
+ check_box_outline_blank
871
+ </span>
872
+ <p style="margin-left: 2px">Include Multi</p>
873
+ </div>
874
+ <!-- Zero time option checkbox -->
875
+ <div class="d-flex align-items-center" style="padding: 0.5rem 0 0.5rem 0.5rem" *ngIf="showZeroTimeCheckbox">
876
+ <span
877
+ *ngIf="zeroTimeCheckboxChecked"
878
+ class="material-icons custom-column-checkbox-checked"
879
+ (click)="selectOrUnselectZeroTimeCheckbox()"
880
+ >
881
+ check_box
882
+ </span>
883
+ <span
884
+ *ngIf="!zeroTimeCheckboxChecked"
885
+ class="material-icons custom-column-checkbox-unchecked"
886
+ (click)="selectOrUnselectZeroTimeCheckbox()"
887
+ >
888
+ check_box_outline_blank
889
+ </span>
890
+ <p style="margin-left: 2px">Include Zero</p>
891
+ </div>
892
+ <!-- Enter time range option checkbox -->
893
+ <div class="d-flex align-items-center" style="padding: 0.5rem 0 0.5rem 0.5rem" *ngIf="showEnterTimeCheckbox">
894
+ <span
895
+ *ngIf="enterTimeCheckboxChecked"
896
+ class="material-icons custom-column-checkbox-checked"
897
+ (click)="selectOrUnselectEnterTimeCheckbox()"
898
+ >
899
+ check_box
900
+ </span>
901
+ <span
902
+ *ngIf="!enterTimeCheckboxChecked"
903
+ class="material-icons custom-column-checkbox-unchecked"
904
+ (click)="selectOrUnselectEnterTimeCheckbox()"
905
+ >
906
+ check_box_outline_blank
907
+ </span>
908
+ <p style="margin-left: 2px">Enter time range</p>
909
+ </div>
910
+ </div>
911
+ <div class="time-label-container">
912
+ <label>From</label>
913
+ </div>
914
+ <div class="time-container">
915
+ <input class="form-control numberInput" [ngClass]="{'error-border': startTimeHourErr}" [(ngModel)]="selectedFromTime[0]" type="text" (ngModelChange)="startTimeHourChange($event)" />
916
+ <div class="arrow-container">
917
+ <i class="mdi mdi-triangle upward" (click)="changeStartTimeHour(true)"></i>
918
+ <i class="mdi mdi-triangle downward" (click)="changeStartTimeHour(false)"></i>
919
+ </div>
920
+ <span class="dot">:</span>
921
+ <input class="form-control numberInput" [ngClass]="{'error-border': startTimeMinErr}" [(ngModel)]="selectedFromTime[1]" type="text" (ngModelChange)="startTimeMinChange($event)"/>
922
+ <div class="arrow-container">
923
+ <i class="mdi mdi-triangle upward" (click)="changeStartTimeMinute(true)"></i>
924
+ <i class="mdi mdi-triangle downward" (click)="changeStartTimeMinute(false)"></i>
925
+ </div>
926
+ <div>
927
+ <mat-button-toggle-group [(ngModel)]="selectedFromTime[2]" (ngModelChange)="disableTimeFilterApplyButton()">
928
+ <mat-button-toggle value="AM">
929
+ <span>AM</span>
930
+ </mat-button-toggle>
931
+ <mat-button-toggle value="PM">
932
+ <span>PM</span>
933
+ </mat-button-toggle>
934
+ </mat-button-toggle-group>
935
+ </div>
936
+ </div>
937
+
938
+ <div class="time-label-container">
939
+ <label>To</label>
940
+ </div>
941
+ <div class="time-container">
942
+ <input class="form-control numberInput" [(ngModel)]="selectedToTime[0]" [ngClass]="{'error-border': endTimeHourErr}" (ngModelChange)="endTimeHourChange($event)" type="text" />
943
+ <div class="arrow-container">
944
+ <i class="mdi mdi-triangle upward" (click)="changeEndTimeHour(true)"></i>
945
+ <i class="mdi mdi-triangle downward" (click)="changeEndTimeHour(false)"></i>
946
+ </div>
947
+ <span class="dot">:</span>
948
+ <input class="form-control numberInput" [ngClass]="{'error-border': endTimeMinErr}" [(ngModel)]="selectedToTime[1]" (ngModelChange)="endTimeMinChange($event)" type="text" />
949
+ <div class="arrow-container">
950
+ <i class="mdi mdi-triangle upward" (click)="changeEndTimeMinute(true)"></i>
951
+ <i class="mdi mdi-triangle downward" (click)="changeEndTimeMinute(false)"></i>
952
+ </div>
953
+ <div>
954
+ <mat-button-toggle-group [(ngModel)]="selectedToTime[2]" (ngModelChange)="disableTimeFilterApplyButton()">
955
+ <mat-button-toggle value="AM">
956
+ <span>AM</span>
957
+ </mat-button-toggle>
958
+ <mat-button-toggle value="PM">
959
+ <span>PM</span>
960
+ </mat-button-toggle>
961
+ </mat-button-toggle-group>
962
+ </div>
963
+ </div>
964
+ </ng-container>
965
+
966
+ <div class="buttons-container">
967
+ <button class="button" (click)="closeTimeFilter()">Cancel</button>
968
+ <button
969
+ class="button"
970
+ [ngClass]="{ disabled: disableTimeFilterApplyBtn }"
971
+ (click)="applyTimeFilters()"
972
+ [disabled]="disableTimeFilterApplyBtn"
973
+ >
974
+ Apply
975
+ </button>
976
+ </div>
977
+ </ng-template>
978
+
979
+ <ng-template #columnInfoTooltip>
980
+ <p style="padding: 0.5rem; color: black;white-space: nowrap;">This preemption is rejected and not marked for credit.</p>
981
+ </ng-template>
982
+
983
+ <ng-template #ratingInfoTooltip>
984
+ <p class="first-row">Shows 'Booked Rating' for Preemptions & MakeGood Offered spot(s).</p>
985
+ <p class="second-row">Shows 'Projected Rating' for ADU Offered spot(s).</p>
986
+ </ng-template>
987
+
988
+ <ng-template #impsInfoTooltip>
989
+ <p class ="first-row" >Shows 'Booked IMPS' for Preemptions & MakeGood Offered spot(s).</p>
990
+ <p class="second-row" >Shows 'Projected IMPS' for ADU Offered spot(s).</p>
991
+ </ng-template>
992
+
993
+ <ng-template #spotsColumnEquivalizationMessageTooltip>
994
+ <p class="spot-column-tooltip-message" >This consists of equivalized spots and un-equivalized Paid Programs & un-equivalized Non-spots.</p>
995
+ </ng-template>
996
+
997
+ <ng-template #rateInfoTooltip>
998
+ <p class ="first-row" >Shows 'Booked Rate' for Preemptions & MakeGood Offered spot(s).</p>
999
+ <p class="second-row" >Shows 'Projected $ Value' for ADU Offered spot(s).</p>
1000
+ </ng-template>
1001
+
1002
+ <ng-template #sellerHierarchyTooltip>
1003
+ <ng-container *ngIf="sellerGroupHierarchy.length > 0">
1004
+ <section class = "hierarchy-table-container">
1005
+ <table class="seller-hierarchy-table">
1006
+ <thead>
1007
+ <tr>
1008
+ <th>#</th>
1009
+ <th>Inventory Codes</th>
1010
+ <th>Program/Description</th>
1011
+ </tr>
1012
+ </thead>
1013
+ <tbody>
1014
+ <tr *ngFor="let data of sellerGroupHierarchy; let tooltipIndex = index">
1015
+ <td>{{ tooltipIndex + 1 }}</td>
1016
+ <td>
1017
+ <span>{{ data.InventoryCode }}</span>
1018
+ </td>
1019
+ <td>
1020
+ <span>{{ data.Program }}</span>
1021
+ </td>
1022
+ </tr>
1023
+ </tbody>
1024
+ </table>
1025
+ </section>
1026
+ </ng-container>
1027
+ <ng-container *ngIf="sellerGroupHierarchy.length == 0">
1028
+ <span style="color: #000">Seller group not available for this inventory code</span>
1029
+ </ng-container>
1030
+ </ng-template>
1031
+
1032
+ <ng-template #lurViolationInfoTooltip>
1033
+ <p class ="first-row" >The values are for the entire week.</p>
1034
+ </ng-template>
1035
+
1036
+ <ng-template #postedRatingDifference>
1037
+ <p class="difference-text">The difference between posted and booked average rating is {{isDifferenceLessThan25Percent ? 'less' : 'more'}} than 25%.</p>
1038
+ </ng-template>
1039
+
1040
+ <ng-template #postedImpDifference>
1041
+ <p class="difference-text">The difference between posted and booked average impression is {{isDifferenceLessThan25Percent ? 'less' : 'more'}} than 25%.</p>
1042
+ </ng-template>
1043
+
1044
+ <ng-template #ongoingRevBookedColumnTooltip>
1045
+ <p>The Booked $ value, Spots, GRP, CPP, IMPS, CPM corresponds on the last permanent revision generated</p>
1046
+ </ng-template>
1047
+
1048
+ <ng-template #completedRevBookedColumnTooltip>
1049
+ <p>The Booked $ value corresponds on the last permanent revision generated</p>
1050
+ </ng-template>
1051
+
1052
+ <ng-template #circularProgressBar>
1053
+ <circle-progress
1054
+ [percent]="percentDone"
1055
+ [radius]="5"
1056
+ [showTitle]="false"
1057
+ [showUnits]="false"
1058
+ [showSubtitle]="false"
1059
+ [outerStrokeWidth]="3"
1060
+ [innerStrokeWidth]="3"
1061
+ [space]="-3"
1062
+ [outerStrokeColor]="'#268bff'"
1063
+ [innerStrokeColor]="'#d5d5d5'"
1064
+ [animationDuration]="10"
1065
+ ></circle-progress>
1066
+ </ng-template>
1067
+
1068
+ <ng-template #userLoggedInDetails>
1069
+ <div class="user-action-tooltip-container">
1070
+ {{
1071
+ userActionTableMetaData.status === UserActivationStatus.activationEmailSent ?
1072
+ 'Email sent at: ':
1073
+ 'Last email resent at: '
1074
+ }}
1075
+ <b> {{ userActionTableMetaData.lastEmailResentAt }} </b> |
1076
+
1077
+ Password valid until:
1078
+ <b> {{ userActionTableMetaData.passwordValidity }} </b>
1079
+ </div>
1080
+ </ng-template>