@annalib/anna-core 3.3.0 → 3.3.1

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 (138) hide show
  1. package/annalib-anna-core.d.ts +5 -0
  2. package/esm2020/annalib-anna-core.mjs +5 -0
  3. package/esm2020/lib/anna-core-shared-lib/components/anna-buyer-approval-icon-template/anna-buyer-approval-icon-template.component.mjs +15 -0
  4. package/esm2020/lib/anna-core-shared-lib/components/anna-icon-column/anna-icon-column.component.mjs +35 -0
  5. package/esm2020/lib/anna-core-shared-lib/components/anna-live-icon-template/anna-live-icon-template.component.mjs +15 -0
  6. package/esm2020/lib/anna-core-shared-lib/components/anna-no-data/anna-no-data.component.mjs +22 -0
  7. package/esm2020/lib/anna-core-shared-lib/components/anna-notify-icon-template/anna-notify-icon-template.component.mjs +15 -0
  8. package/esm2020/lib/anna-core-shared-lib/components/anna-pay-for-performance-icon-template/anna-pay-for-performance-icon-template.component.mjs +21 -0
  9. package/esm2020/lib/anna-core-shared-lib/components/anna-rejected-icon-template/anna-rejected-icon-template.component.mjs +15 -0
  10. package/esm2020/lib/anna-core-shared-lib/constants/shared.constant.mjs +34 -0
  11. package/esm2020/lib/anna-core-shared-lib/directives/show-ellipsis-text/show-ellipsis-text.directive.mjs +27 -0
  12. package/esm2020/lib/anna-core-shared-lib/models/anna-generic-data-type.model.mjs +2 -0
  13. package/esm2020/lib/anna-core-shared-lib/models/anna-global-dropdown-config.model.mjs +2 -0
  14. package/esm2020/lib/anna-core-shared-lib/models/anna-non-editable-gt-models.mjs +3 -0
  15. package/esm2020/lib/anna-core-shared-lib/models/anna-sort.model.mjs +2 -0
  16. package/esm2020/lib/anna-core-shared-lib/models/anna-tooltip.model.mjs +30 -0
  17. package/esm2020/lib/anna-core-shared-lib/pipes/annaFilterSearchedText.pipe.mjs +31 -0
  18. package/esm2020/lib/anna-core-shared-lib/services/anna-date-time-format.service.mjs +184 -0
  19. package/esm2020/lib/anna-core-shared-lib/services/anna-filter.service.mjs +419 -0
  20. package/esm2020/lib/anna-core-shared-lib/services/anna-generic-table.service.mjs +48 -0
  21. package/esm2020/lib/anna-core-shared-lib/services/anna-global-config.service.mjs +133 -0
  22. package/esm2020/lib/anna-core-shared-lib/services/anna-sort.service.mjs +147 -0
  23. package/esm2020/lib/anna-core.module.mjs +156 -0
  24. package/esm2020/lib/anna-dropdown-lib/components/anna-calendar-filter/anna-calendar-filter.component.mjs +100 -0
  25. package/esm2020/lib/anna-dropdown-lib/components/anna-week-calendar-filter/anna-week-calendar-filter.component.mjs +362 -0
  26. package/esm2020/lib/anna-generic-table-lib/components/anna-non-editable-generic-table/anna-non-editable-generic-table.component.mjs +1684 -0
  27. package/esm2020/lib/anna-generic-table-lib/components/anna-sort/anna-sort.component.mjs +67 -0
  28. package/esm2020/lib/anna-generic-table-lib/components/anna-table-virtual-scroll-viewport/anna-table-virtual-scroll-viewport.component.mjs +357 -0
  29. 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 +189 -0
  30. package/esm2020/lib/anna-generic-table-lib/directives/anna-fixed-row-size-table-virtual-scroll-strategy/index.mjs +2 -0
  31. package/esm2020/lib/anna-generic-table-lib/directives/anna-virtual-table/anna-virtual-table.directive.mjs +178 -0
  32. package/esm2020/lib/anna-generic-table-lib/directives/anna-virtual-table/index.mjs +2 -0
  33. package/esm2020/public-api.mjs +44 -0
  34. package/fesm2015/annalib-anna-core.mjs +4154 -0
  35. package/fesm2015/annalib-anna-core.mjs.map +1 -0
  36. package/fesm2020/annalib-anna-core.mjs +4151 -0
  37. package/fesm2020/annalib-anna-core.mjs.map +1 -0
  38. package/lib/anna-core-shared-lib/components/anna-buyer-approval-icon-template/anna-buyer-approval-icon-template.component.d.ts +8 -0
  39. package/lib/anna-core-shared-lib/components/anna-icon-column/anna-icon-column.component.d.ts +16 -0
  40. package/lib/anna-core-shared-lib/components/anna-live-icon-template/anna-live-icon-template.component.d.ts +8 -0
  41. package/lib/anna-core-shared-lib/components/anna-no-data/anna-no-data.component.d.ts +11 -0
  42. package/lib/anna-core-shared-lib/components/anna-notify-icon-template/anna-notify-icon-template.component.d.ts +8 -0
  43. package/lib/anna-core-shared-lib/components/anna-pay-for-performance-icon-template/anna-pay-for-performance-icon-template.component.d.ts +11 -0
  44. package/lib/anna-core-shared-lib/components/anna-rejected-icon-template/anna-rejected-icon-template.component.d.ts +8 -0
  45. package/lib/anna-core-shared-lib/constants/shared.constant.d.ts +32 -0
  46. package/lib/anna-core-shared-lib/directives/show-ellipsis-text/show-ellipsis-text.directive.d.ts +9 -0
  47. package/lib/anna-core-shared-lib/models/anna-generic-data-type.model.d.ts +12 -0
  48. package/{src/lib/anna-core-shared-lib/models/anna-global-dropdown-config.model.ts → lib/anna-core-shared-lib/models/anna-global-dropdown-config.model.d.ts} +9 -21
  49. package/{src/lib/anna-core-shared-lib/models/anna-non-editable-gt-models.ts → lib/anna-core-shared-lib/models/anna-non-editable-gt-models.d.ts} +17 -27
  50. package/lib/anna-core-shared-lib/models/anna-sort.model.d.ts +6 -0
  51. package/lib/anna-core-shared-lib/models/anna-tooltip.model.d.ts +25 -0
  52. package/lib/anna-core-shared-lib/pipes/annaFilterSearchedText.pipe.d.ts +9 -0
  53. package/lib/anna-core-shared-lib/services/anna-date-time-format.service.d.ts +25 -0
  54. package/lib/anna-core-shared-lib/services/anna-filter.service.d.ts +73 -0
  55. package/lib/anna-core-shared-lib/services/anna-generic-table.service.d.ts +14 -0
  56. package/lib/anna-core-shared-lib/services/anna-global-config.service.d.ts +21 -0
  57. package/lib/anna-core-shared-lib/services/anna-sort.service.d.ts +16 -0
  58. package/lib/anna-core.module.d.ts +32 -0
  59. package/lib/anna-dropdown-lib/components/anna-calendar-filter/anna-calendar-filter.component.d.ts +34 -0
  60. package/lib/anna-dropdown-lib/components/anna-week-calendar-filter/anna-week-calendar-filter.component.d.ts +70 -0
  61. package/lib/anna-generic-table-lib/components/anna-non-editable-generic-table/anna-non-editable-generic-table.component.d.ts +267 -0
  62. package/lib/anna-generic-table-lib/components/anna-sort/anna-sort.component.d.ts +17 -0
  63. package/lib/anna-generic-table-lib/components/anna-table-virtual-scroll-viewport/anna-table-virtual-scroll-viewport.component.d.ts +141 -0
  64. 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 +89 -0
  65. package/{src/lib/anna-generic-table-lib/directives/anna-fixed-row-size-table-virtual-scroll-strategy/index.ts → lib/anna-generic-table-lib/directives/anna-fixed-row-size-table-virtual-scroll-strategy/index.d.ts} +0 -0
  66. package/lib/anna-generic-table-lib/directives/anna-virtual-table/anna-virtual-table.directive.d.ts +45 -0
  67. package/{src/lib/anna-generic-table-lib/directives/anna-virtual-table/index.ts → lib/anna-generic-table-lib/directives/anna-virtual-table/index.d.ts} +0 -0
  68. package/package.json +38 -18
  69. package/{src/public-api.ts → public-api.d.ts} +0 -28
  70. package/.browserslistrc +0 -16
  71. package/karma.conf.js +0 -44
  72. package/ng-package.json +0 -14
  73. package/src/lib/anna-core-shared-lib/components/anna-buyer-approval-icon-template/anna-buyer-approval-icon-template.component.html +0 -22
  74. package/src/lib/anna-core-shared-lib/components/anna-buyer-approval-icon-template/anna-buyer-approval-icon-template.component.scss +0 -0
  75. package/src/lib/anna-core-shared-lib/components/anna-buyer-approval-icon-template/anna-buyer-approval-icon-template.component.spec.ts +0 -25
  76. package/src/lib/anna-core-shared-lib/components/anna-buyer-approval-icon-template/anna-buyer-approval-icon-template.component.ts +0 -16
  77. package/src/lib/anna-core-shared-lib/components/anna-icon-column/anna-icon-column.component.html +0 -33
  78. package/src/lib/anna-core-shared-lib/components/anna-icon-column/anna-icon-column.component.scss +0 -0
  79. package/src/lib/anna-core-shared-lib/components/anna-icon-column/anna-icon-column.component.spec.ts +0 -25
  80. package/src/lib/anna-core-shared-lib/components/anna-icon-column/anna-icon-column.component.ts +0 -28
  81. package/src/lib/anna-core-shared-lib/components/anna-live-icon-template/anna-live-icon-template.component.html +0 -20
  82. package/src/lib/anna-core-shared-lib/components/anna-live-icon-template/anna-live-icon-template.component.scss +0 -0
  83. package/src/lib/anna-core-shared-lib/components/anna-live-icon-template/anna-live-icon-template.component.spec.ts +0 -25
  84. package/src/lib/anna-core-shared-lib/components/anna-live-icon-template/anna-live-icon-template.component.ts +0 -16
  85. package/src/lib/anna-core-shared-lib/components/anna-no-data/anna-no-data.component.html +0 -3
  86. package/src/lib/anna-core-shared-lib/components/anna-no-data/anna-no-data.component.scss +0 -17
  87. package/src/lib/anna-core-shared-lib/components/anna-no-data/anna-no-data.component.spec.ts +0 -24
  88. package/src/lib/anna-core-shared-lib/components/anna-no-data/anna-no-data.component.ts +0 -20
  89. package/src/lib/anna-core-shared-lib/components/anna-notify-icon-template/anna-notify-icon-template.component.html +0 -23
  90. package/src/lib/anna-core-shared-lib/components/anna-notify-icon-template/anna-notify-icon-template.component.scss +0 -0
  91. package/src/lib/anna-core-shared-lib/components/anna-notify-icon-template/anna-notify-icon-template.component.spec.ts +0 -25
  92. package/src/lib/anna-core-shared-lib/components/anna-notify-icon-template/anna-notify-icon-template.component.ts +0 -16
  93. package/src/lib/anna-core-shared-lib/components/anna-pay-for-performance-icon-template/anna-pay-for-performance-icon-template.component.html +0 -15
  94. package/src/lib/anna-core-shared-lib/components/anna-pay-for-performance-icon-template/anna-pay-for-performance-icon-template.component.scss +0 -0
  95. package/src/lib/anna-core-shared-lib/components/anna-pay-for-performance-icon-template/anna-pay-for-performance-icon-template.component.spec.ts +0 -25
  96. package/src/lib/anna-core-shared-lib/components/anna-pay-for-performance-icon-template/anna-pay-for-performance-icon-template.component.ts +0 -19
  97. package/src/lib/anna-core-shared-lib/components/anna-rejected-icon-template/anna-rejected-icon-template.component.html +0 -14
  98. package/src/lib/anna-core-shared-lib/components/anna-rejected-icon-template/anna-rejected-icon-template.component.scss +0 -0
  99. package/src/lib/anna-core-shared-lib/components/anna-rejected-icon-template/anna-rejected-icon-template.component.spec.ts +0 -25
  100. package/src/lib/anna-core-shared-lib/components/anna-rejected-icon-template/anna-rejected-icon-template.component.ts +0 -16
  101. package/src/lib/anna-core-shared-lib/constants/shared.constant.ts +0 -34
  102. package/src/lib/anna-core-shared-lib/directives/show-ellipsis-text/show-ellipsis-text.directive.ts +0 -19
  103. package/src/lib/anna-core-shared-lib/models/anna-generic-data-type.model.ts +0 -15
  104. package/src/lib/anna-core-shared-lib/models/anna-sort.model.ts +0 -7
  105. package/src/lib/anna-core-shared-lib/models/anna-tooltip.model.ts +0 -44
  106. package/src/lib/anna-core-shared-lib/pipes/annaFilterSearchedText.pipe.ts +0 -26
  107. package/src/lib/anna-core-shared-lib/services/anna-date-time-format.service.ts +0 -202
  108. package/src/lib/anna-core-shared-lib/services/anna-filter.service.ts +0 -507
  109. package/src/lib/anna-core-shared-lib/services/anna-generic-table.service.ts +0 -44
  110. package/src/lib/anna-core-shared-lib/services/anna-global-config.service.ts +0 -170
  111. package/src/lib/anna-core-shared-lib/services/anna-sort.service.ts +0 -179
  112. package/src/lib/anna-core.module.ts +0 -99
  113. package/src/lib/anna-dropdown-lib/components/anna-calendar-filter/anna-calendar-filter.component.html +0 -46
  114. package/src/lib/anna-dropdown-lib/components/anna-calendar-filter/anna-calendar-filter.component.scss +0 -153
  115. package/src/lib/anna-dropdown-lib/components/anna-calendar-filter/anna-calendar-filter.component.spec.ts +0 -24
  116. package/src/lib/anna-dropdown-lib/components/anna-calendar-filter/anna-calendar-filter.component.ts +0 -106
  117. package/src/lib/anna-dropdown-lib/components/anna-week-calendar-filter/anna-week-calendar-filter.component.html +0 -129
  118. package/src/lib/anna-dropdown-lib/components/anna-week-calendar-filter/anna-week-calendar-filter.component.scss +0 -275
  119. package/src/lib/anna-dropdown-lib/components/anna-week-calendar-filter/anna-week-calendar-filter.component.spec.ts +0 -24
  120. package/src/lib/anna-dropdown-lib/components/anna-week-calendar-filter/anna-week-calendar-filter.component.ts +0 -412
  121. package/src/lib/anna-generic-table-lib/components/anna-non-editable-generic-table/anna-non-editable-generic-table.component.html +0 -920
  122. package/src/lib/anna-generic-table-lib/components/anna-non-editable-generic-table/anna-non-editable-generic-table.component.scss +0 -596
  123. package/src/lib/anna-generic-table-lib/components/anna-non-editable-generic-table/anna-non-editable-generic-table.component.spec.ts +0 -25
  124. package/src/lib/anna-generic-table-lib/components/anna-non-editable-generic-table/anna-non-editable-generic-table.component.ts +0 -2012
  125. package/src/lib/anna-generic-table-lib/components/anna-sort/anna-sort.component.html +0 -10
  126. package/src/lib/anna-generic-table-lib/components/anna-sort/anna-sort.component.scss +0 -1
  127. package/src/lib/anna-generic-table-lib/components/anna-sort/anna-sort.component.spec.ts +0 -24
  128. package/src/lib/anna-generic-table-lib/components/anna-sort/anna-sort.component.ts +0 -70
  129. package/src/lib/anna-generic-table-lib/components/anna-table-virtual-scroll-viewport/anna-table-virtual-scroll-viewport.component.html +0 -13
  130. package/src/lib/anna-generic-table-lib/components/anna-table-virtual-scroll-viewport/anna-table-virtual-scroll-viewport.component.scss +0 -88
  131. package/src/lib/anna-generic-table-lib/components/anna-table-virtual-scroll-viewport/anna-table-virtual-scroll-viewport.component.spec.ts +0 -25
  132. package/src/lib/anna-generic-table-lib/components/anna-table-virtual-scroll-viewport/anna-table-virtual-scroll-viewport.component.ts +0 -460
  133. 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 +0 -237
  134. package/src/lib/anna-generic-table-lib/directives/anna-virtual-table/anna-virtual-table.directive.ts +0 -204
  135. package/src/test.ts +0 -27
  136. package/tsconfig.lib.json +0 -19
  137. package/tsconfig.lib.prod.json +0 -10
  138. package/tsconfig.spec.json +0 -17
@@ -1,920 +0,0 @@
1
- <div class="table-container {{gtGeneralConfig.tableOuterContainerName}}" [ngClass]="{ 'scroll-left-shadow-effect': isScrolledLeft }" (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
- (showNoDataToDisplay) ||
33
- (!showSkeletonLoading && !gtGeneralConfig.totalRow)
34
- "
35
- ></tr>
36
- <tr
37
- [class]="rowData.gtClass"
38
- [ngClass]="{'no-border-tr': showNoDataToDisplay}"
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 && !(annaFilterService.isFilterSortActive && annaFilterService.isFilterSortActive[header.joinedFilterSortObjectKeys])
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 && !(annaFilterService.isFilterSortActive && annaFilterService.isFilterSortActive[header.joinedFilterSortObjectKeys])
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 && !(annaFilterService.isFilterSortActive && annaFilterService.isFilterSortActive[header.joinedFilterSortObjectKeys])
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 && !(annaFilterService.isFilterSortActive && annaFilterService.isFilterSortActive[header.joinedFilterSortObjectKeys])
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 && !(annaFilterService.isFilterSortActive && annaFilterService.isFilterSortActive[header.joinedFilterSortObjectKeys])
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 && !showNoDataToDisplay">
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 [class]="ROW_DATA.iconClass" (click)="iconClicked(ROW_DATA,ROW_DATA.iconClass)"></i>
376
- </ng-container>
377
-
378
- <ng-container *ngSwitchCase="'SVG_ICON'">
379
- <anna-core-anna-icon-column [componentName]="gtGeneralConfig.component" [objectKey]="subline.objectKey" [dataObject]="ROW_DATA" (onColumnIconClicked)="svgIconClicked($event)"></anna-core-anna-icon-column>
380
- </ng-container>
381
-
382
- <ng-container *ngSwitchCase="'TEXT_ACTIONS'">
383
- <button *ngFor="let text of ROW_DATA.textActions" (click)="textActionClicked(ROW_DATA,text.id)" [disabled]="text.isDisabled" class="{{text.class}}">{{text.name}}</button>
384
- </ng-container>
385
-
386
- <ng-container *ngSwitchCase="'CHECKBOX'">
387
- <span
388
- *ngIf="ROW_DATA[columnDef.headerInfo[subLineIndex].objectKey]"
389
- [ngClass]="{
390
- 'disable-checkbox': ROW_DATA[columnDef.headerInfo[subLineIndex].isDisabledKey]
391
- }"
392
- class="material-icons custom-column-checkbox-checked"
393
- (click)="
394
- selectOrUnselectCheckbox(
395
- ROW_DATA,
396
- columnDef.headerInfo[subLineIndex].objectKey,
397
- false
398
- )
399
- "
400
- >
401
- check_box
402
- </span>
403
- <span
404
- *ngIf="!ROW_DATA[columnDef.headerInfo[subLineIndex].objectKey]"
405
- class="material-icons custom-column-checkbox-unchecked"
406
- [ngClass]="{
407
- 'disable-checkbox': ROW_DATA[columnDef.headerInfo[subLineIndex].isDisabledKey]
408
- }"
409
- (click)="
410
- selectOrUnselectCheckbox(
411
- ROW_DATA,
412
- columnDef.headerInfo[subLineIndex].objectKey,
413
- true
414
- )
415
- "
416
- >
417
- check_box_outline_blank
418
- </span>
419
- </ng-container>
420
-
421
- <ng-container *ngSwitchCase="'CLICKABLE_DATA'">
422
- <span
423
- *ngIf="subline.objectKey == 'displayBookedUnits' && gtGeneralConfig.component == 'RATING'"
424
- class="clickable-data"
425
- (click)="spotDetailsDownloadClicked('DATAROW', ROW_DATA)"
426
- [ngClass]="{ 'disabled-clickable-data': downloadInProgress }"
427
- >{{ ROW_DATA.displayBookedUnits}}
428
- <span class="material-icons spot-details-download-icons">get_app</span>
429
- <ng-container *ngIf="downloadInProgress
430
- && ROW_DATA.inventoryCodeId == selectedInventoryIdForDownload
431
- && ROW_DATA.demographic == selectedDemographicForDownload ">
432
- <ng-container [ngTemplateOutlet]="circularProgressBar"></ng-container>
433
- </ng-container>
434
- </span>
435
- </ng-container>
436
-
437
- <ng-container *ngSwitchDefault>
438
- <ng-container *ngIf="subline.objectKey != 'description'">
439
- <span>{{ ROW_DATA[columnDef.headerInfo[subLineIndex].objectKey] }}</span>
440
- <i
441
- *ngIf="subline.objectKey == 'inventoryCode' && ROW_DATA['isSellerGroup'] && gtGeneralConfig.component == 'RATING' "
442
- class="mi mdi-info-outline seller-tooltip"
443
- [ngbTooltip]="sellerHierarchyTooltip"
444
- placement="bottom auto"
445
- container="body"
446
- [autoClose]="true"
447
- triggers="manual"
448
- (hidden)="closeTooltip()"
449
- #info="ngbTooltip"
450
- tooltipClass="hierarchy-tooltip"
451
- (mouseenter)="bindTheValueToSellerGroupTooltip(ROW_DATA.sellerGroupHierarchy, info)">
452
- </i>
453
-
454
- <i *ngIf="subline.objectKey == 'displayBookedAverageRating' && gtGeneralConfig.component == 'RATING' && ROW_DATA['showRatingAverageIcon'] "
455
- class="mi mdi-info-outline seller-tooltip"
456
- placement="bottom auto"
457
- container="body"
458
- [autoClose]="true"
459
- (mouseenter)="setIsDifference(ROW_DATA.isDifferenceLessThan25Percent)"
460
- tooltipClass="posted-avg-tooltip"
461
- [ngbTooltip]="postedRatingDifference"
462
- >
463
- </i>
464
-
465
- <i *ngIf="subline.objectKey == 'displayBookedAverageImpression' && gtGeneralConfig.component == 'RATING' && ROW_DATA['showImpressionAverageIcon'] "
466
- class="mi mdi-info-outline seller-tooltip"
467
- placement="bottom auto"
468
- container="body"
469
- [autoClose]="true"
470
- (mouseenter)="setIsDifference(ROW_DATA.isDifferenceLessThan25Percent)"
471
- tooltipClass="posted-avg-tooltip"
472
- [ngbTooltip]="postedImpDifference"
473
- >
474
- </i>
475
-
476
- </ng-container>
477
- <ng-container *ngIf="subline.objectKey == 'description'">
478
- <p *ngIf="ROW_DATA.descriptionMessage || ROW_DATA.descriptionEmailReferenceNum">
479
- <ng-container *ngIf="ROW_DATA.descriptionMessage">
480
- {{ ROW_DATA.descriptionMessage }}
481
- <br />
482
- </ng-container>
483
- <ng-container *ngIf="ROW_DATA.descriptionEmailReferenceNum">
484
- Email Ref: {{ ROW_DATA.descriptionEmailReferenceNum }}
485
- <br />
486
- </ng-container>
487
- </p>
488
- <a
489
- href="{{ ROW_DATA.descriptionDetailsUrl }}"
490
- target="_blank"
491
- *ngIf="ROW_DATA.descriptionDetailsUrlType === 'PDF' || ROW_DATA.descriptionDetailsUrlType === 'EXCEL'"
492
- >
493
- <button class="btn viewDetailsAndEmailBtn">Download</button>
494
- </a>
495
- <ng-container *ngIf="ROW_DATA.activityname.toLowerCase() == 'order onboarded'">
496
- <a *ngIf="ROW_DATA.descriptionDetailsUrlType === 'LINK'" (click)="viewDetailsClicked(ROW_DATA)">
497
- <button class="btn viewDetailsAndEmailBtn">View details</button>
498
- </a>
499
- </ng-container>
500
-
501
- <a href="{{ ROW_DATA.descriptionEmailUrl }}" target="_blank" *ngIf="ROW_DATA.descriptionEmailUrl">
502
- <button class="btn viewDetailsAndEmailBtn">View email</button>
503
- </a>
504
- </ng-container>
505
- </ng-container>
506
- </ng-container>
507
-
508
- </div>
509
- </ng-container>
510
- <ng-container *ngIf="showNoDataToDisplay">
511
- <div>
512
- {{null}}
513
- </div>
514
- </ng-container>
515
- </ng-container>
516
- </td>
517
- </ng-container>
518
- </ng-container>
519
- </table>
520
- </div>
521
- <anna-core-no-data-lib [width]="noDataWidth" [marginTop]="marginTop" *ngIf="!showSkeletonLoading && showNoDataToDisplay"> </anna-core-no-data-lib>
522
- </div>
523
-
524
- <!-- Checkbox template -->
525
- <ng-template #filterTooltip>
526
-
527
- <div class="radio-container" *ngIf="showFilterTooltipTabs">
528
- <div [ngClass]="{'full-width': filterTabObjects.length == 1}" *ngFor="let data of filterTabObjects">
529
- <p class="filter-tab" [title]="data.label" (click)="populateTooltipDataBasedOnSelectedRadio(data)" [ngClass]="{'active': annaFilterService.selectedRadio == data.key}" *ngIf="filterTabObjects.length > 0">{{ data.label }}</p>
530
- </div>
531
- </div>
532
-
533
- <div class="checkbox-sort" *ngIf="showSortComponent">
534
- <anna-core-sort-lib [ngClass]="{'no-bottom-border': !showFilterComponent}"
535
- (sortOptionClicked)="storeSortTypeInTempVariable($event)" [sortObjectKey]="annaFilterService.selectedRadio"></anna-core-sort-lib>
536
- </div>
537
-
538
- <ng-container *ngIf="showFilterComponent">
539
- <p class="d-flex justify-content-between">
540
- <button class="filter-text-btn" [disabled]="disableClearAll" (click)="unCheckAllCheckbox()">Clear all</button>
541
- <button class="filter-text-btn" [disabled]="disableSelectAll" (click)="selectAllCheckbox()">Select all</button>
542
- </p>
543
- <p class="search-box">
544
- <i class="mi mdi-search search-icon search-icon-position"></i>
545
- <input
546
- type="text"
547
- placeholder="Search"
548
- class="search-input"
549
- style="margin-left: 2px; border: none; padding: 0px"
550
- [(ngModel)]="searchItem"
551
- (ngModelChange)="searchForTheItem($event)"
552
- />
553
- <i class="mdi mdi-close search-bar-close" [ngClass]="{'disable-close-icon': (!searchItem || searchItem.length == 0) }"
554
- (click)="clearSearchedItem()"></i>
555
-
556
- </p>
557
- <div style="position:relative">
558
- <!-- Track By func -->
559
- <cdk-virtual-scroll-viewport itemSize="18" [style.height.px]="heightOfCheckboxTooltipFilter" class="dropdown-data-container">
560
- <p *cdkVirtualFor="let option of tooltipOptions" class="input example-item" (click)="selectUnselectCheckbox(option)">
561
- <span *ngIf="option.isSelected" role="button" class="mi mdi-check-box check-box"></span>
562
- <span *ngIf="!option.isSelected" role="button" class="mi mdi-check-box-outline-blank check-box unchecked"></span>
563
- <span class="data" title="{{ option.value }}" [innerHTML]="option.label"></span>
564
- </p>
565
- </cdk-virtual-scroll-viewport>
566
- <div style="position: absolute; top:0; left:0; width:100%; height:100%; pointer-events:none"></div>
567
- </div>
568
- </ng-container>
569
-
570
- <div class="buttons-container">
571
- <button class="button" (click)="closeCheckboxFilter()">Cancel</button>
572
- <button
573
- class="button"
574
- [ngClass]="{ disabled: disableCheckboxApply }"
575
- (click)="applyFilters()"
576
- [disabled]="disableCheckboxApply"
577
- >
578
- Apply
579
- <span *ngIf="showFilterComponent">({{ selectedCheckboxOptionsCount == tooltipOptions.length && tooltipOptions.length != 0 && !searchItem? 'All': selectedCheckboxOptionsCount }})</span>
580
- </button>
581
- </div>
582
- </ng-template>
583
-
584
- <!-- Slider template -->
585
- <ng-template #sliderToolTip>
586
-
587
- <div class="radio-container" *ngIf="showFilterTooltipTabs">
588
- <div *ngFor="let data of filterTabObjects">
589
- <p class="filter-tab" [title]="data.label" (click)="populateTooltipDataBasedOnSelectedRadio(data)" [ngClass]="{'active': annaFilterService.selectedRadio == data.key}" *ngIf="filterTabObjects.length > 0">{{ data.label }}</p>
590
- </div>
591
- </div>
592
- <!-- <button class="column-clear-all align-center" [disabled]="disableColumnClearAllBtn" (click)="clearColumnFilter()">
593
- Clear filter
594
- </button> -->
595
-
596
- <anna-core-sort-lib *ngIf="showSortComponent" [ngClass]="{'no-bottom-border': !showFilterComponent}"
597
- (sortOptionClicked)="storeSortTypeInTempVariable($event)" [sortObjectKey]="annaFilterService.selectedRadio"></anna-core-sort-lib>
598
-
599
- <ng-container *ngIf="showFilterComponent">
600
- <button class="column-clear-all" [disabled]="disableColumnClearAllBtn" (click)="clearColumnFilter()">Clear filter</button>
601
- <section class="min-maxContainer">
602
- <input
603
- type="number"
604
- class="slider-text"
605
- step="{{ sliderFilterTextBoxStep }}"
606
- [(ngModel)]="sliderMinValue"
607
- (ngModelChange)="minValueChanged($event)"
608
- [ngClass]="{'red-border': showSliderMinValueError}"
609
- placeholder="Min"
610
- />
611
- <span>To</span>
612
- <input
613
- type="number"
614
- class="slider-text"
615
- step="{{ sliderFilterTextBoxStep }}"
616
- [(ngModel)]="sliderMaxValue"
617
- (ngModelChange)="maxValueChanged($event)"
618
- [ngClass]="{'red-border': showSliderMaxValueError}"
619
- placeholder="Max"
620
- />
621
- </section>
622
- <div class="sidebar-slider">
623
- <ngx-slider
624
- class="filter-slider"
625
- [value]="sliderMinValue"
626
- [highValue]="sliderMaxValue"
627
- [options]="options"
628
- ></ngx-slider>
629
- </div>
630
- </ng-container>
631
-
632
- <div class="buttons-container">
633
- <button class="button" (click)="cancelSliderFilter()">Cancel</button>
634
- <button
635
- class="button"
636
- [ngClass]="{ disabled: disableSliderApplyButton }"
637
- (click)="applySliderFilter()"
638
- [disabled]="disableSliderApplyButton"
639
- >
640
- Apply
641
- </button>
642
- </div>
643
- </ng-template>
644
-
645
- <!-- Date Picker Template -->
646
- <ng-template #datePickerTooltip>
647
- <div class="radio-container" *ngIf="showFilterTooltipTabs">
648
- <div *ngFor="let data of filterTabObjects">
649
- <p class="filter-tab" [title]="data.label" (click)="populateTooltipDataBasedOnSelectedRadio(data)" [ngClass]="{'active': annaFilterService.selectedRadio == data.key}" *ngIf="filterTabObjects.length > 0">{{ data.label }}</p>
650
- </div>
651
- </div>
652
-
653
- <anna-core-sort-lib *ngIf="showSortComponent" [ngClass]="{'no-bottom-border': !showFilterComponent}"
654
- (sortOptionClicked)="storeSortTypeInTempVariable($event)" [sortObjectKey]="annaFilterService.selectedRadio"></anna-core-sort-lib>
655
-
656
- <ng-container *ngIf="showFilterComponent">
657
- <div class="datepicker-container">
658
- <button class="column-clear-all" [disabled]="disableColumnClearAllBtn" (click)="clearColumnFilter()">
659
- Clear filter
660
- </button>
661
- <anna-core-calendar-filter-lib
662
- [minDate]="calendarMinEnabledDate"
663
- [maxDate]="calendarMaxEnabledDate"
664
- [selectedFromDate]="selectedMinDate"
665
- [selectedToDate]="selectedMaxDate"
666
- (selectedDate) = "calendarDateChanged($event)"
667
- [label]="selectedLabel"
668
- >
669
- </anna-core-calendar-filter-lib>
670
- </div>
671
- </ng-container>
672
-
673
- <div class="buttons-container">
674
- <button class="button" (click)="cancelInDateFilter()">Cancel</button>
675
- <button class="button" (click)="applyDateFilter()" [ngClass]="{ disabled: disableCalendarApplyBtn }"
676
- [disabled]="disableCalendarApplyBtn">Apply</button>
677
- </div>
678
-
679
- </ng-template>
680
-
681
- <!-- Week Picker Template -->
682
- <ng-template #weekPickerToolTip>
683
- <div class="weekpicker-container">
684
- <anna-core-week-calendar-filter-lib
685
- [week-calendar-config]="gtGeneralConfig.multiWeekPickerConfig"
686
- (apply)="applyWeekFilter($event)"
687
- [from-date]="calendarMinEnabledDate"
688
- [to-date]="calendarMaxEnabledDate"
689
- >
690
- </anna-core-week-calendar-filter-lib>
691
- </div>
692
- </ng-template>
693
-
694
- <!-- Time Filter Template -->
695
- <ng-template #timeFilterToolTip>
696
-
697
- <div class="radio-container" *ngIf="showFilterTooltipTabs">
698
- <div *ngFor="let data of filterTabObjects">
699
- <p class="filter-tab" [title]="data.label" (click)="populateTooltipDataBasedOnSelectedRadio(data)" [ngClass]="{'active': annaFilterService.selectedRadio == data.key}" *ngIf="filterTabObjects.length > 0">{{ data.label }}</p>
700
- </div>
701
- </div>
702
-
703
- <anna-core-sort-lib *ngIf="showSortComponent" [ngClass]="{'no-bottom-border': !showFilterComponent}"
704
- (sortOptionClicked)="storeSortTypeInTempVariable($event)" [sortObjectKey]="annaFilterService.selectedRadio"></anna-core-sort-lib>
705
-
706
- <ng-container *ngIf="showFilterComponent">
707
- <button class="column-clear-all" [disabled]="disableColumnClearAllBtn" (click)="clearColumnFilter()">Clear filter</button>
708
- <div
709
- class="time-filter-checkboxes"
710
- *ngIf="gtGeneralConfig.component == 'SPOTDETAILS' || gtGeneralConfig.component == 'EXCLUDEINVENTORYPOPUP' || gtGeneralConfig.component == 'RATING'"
711
- >
712
- <!-- Multi time option checkbox -->
713
- <div class="d-flex align-items-center" style="padding: 0.5rem 0 0.5rem 0.5rem" *ngIf="showMultiTimeCheckbox">
714
- <span
715
- *ngIf="multiTimeCheckboxChecked"
716
- class="material-icons custom-column-checkbox-checked"
717
- (click)="selectOrUnselectMultiTimeCheckbox()"
718
- >
719
- check_box
720
- </span>
721
- <span
722
- *ngIf="!multiTimeCheckboxChecked"
723
- class="material-icons custom-column-checkbox-unchecked"
724
- (click)="selectOrUnselectMultiTimeCheckbox()"
725
- >
726
- check_box_outline_blank
727
- </span>
728
- <p style="margin-left: 2px">Include Multi</p>
729
- </div>
730
- <!-- Zero time option checkbox -->
731
- <div class="d-flex align-items-center" style="padding: 0.5rem 0 0.5rem 0.5rem" *ngIf="showZeroTimeCheckbox">
732
- <span
733
- *ngIf="zeroTimeCheckboxChecked"
734
- class="material-icons custom-column-checkbox-checked"
735
- (click)="selectOrUnselectZeroTimeCheckbox()"
736
- >
737
- check_box
738
- </span>
739
- <span
740
- *ngIf="!zeroTimeCheckboxChecked"
741
- class="material-icons custom-column-checkbox-unchecked"
742
- (click)="selectOrUnselectZeroTimeCheckbox()"
743
- >
744
- check_box_outline_blank
745
- </span>
746
- <p style="margin-left: 2px">Include Zero</p>
747
- </div>
748
- <!-- Enter time range option checkbox -->
749
- <div class="d-flex align-items-center" style="padding: 0.5rem 0 0.5rem 0.5rem" *ngIf="showEnterTimeCheckbox">
750
- <span
751
- *ngIf="enterTimeCheckboxChecked"
752
- class="material-icons custom-column-checkbox-checked"
753
- (click)="selectOrUnselectEnterTimeCheckbox()"
754
- >
755
- check_box
756
- </span>
757
- <span
758
- *ngIf="!enterTimeCheckboxChecked"
759
- class="material-icons custom-column-checkbox-unchecked"
760
- (click)="selectOrUnselectEnterTimeCheckbox()"
761
- >
762
- check_box_outline_blank
763
- </span>
764
- <p style="margin-left: 2px">Enter time range</p>
765
- </div>
766
- </div>
767
- <div class="time-label-container">
768
- <label>From</label>
769
- </div>
770
- <div class="time-container">
771
- <input class="form-control numberInput" [ngClass]="{'error-border': startTimeHourErr}" [(ngModel)]="selectedFromTime[0]" type="text" (ngModelChange)="startTimeHourChange($event)" />
772
- <div class="arrow-container">
773
- <i class="mdi mdi-triangle upward" (click)="changeStartTimeHour(true)"></i>
774
- <i class="mdi mdi-triangle downward" (click)="changeStartTimeHour(false)"></i>
775
- </div>
776
- <span class="dot">:</span>
777
- <input class="form-control numberInput" [ngClass]="{'error-border': startTimeMinErr}" [(ngModel)]="selectedFromTime[1]" type="text" (ngModelChange)="startTimeMinChange($event)"/>
778
- <div class="arrow-container">
779
- <i class="mdi mdi-triangle upward" (click)="changeStartTimeMinute(true)"></i>
780
- <i class="mdi mdi-triangle downward" (click)="changeStartTimeMinute(false)"></i>
781
- </div>
782
- <div>
783
- <mat-button-toggle-group [(ngModel)]="selectedFromTime[2]" (ngModelChange)="disableTimeFilterApplyButton()">
784
- <mat-button-toggle value="AM">
785
- <span>AM</span>
786
- </mat-button-toggle>
787
- <mat-button-toggle value="PM">
788
- <span>PM</span>
789
- </mat-button-toggle>
790
- </mat-button-toggle-group>
791
- </div>
792
- </div>
793
-
794
- <div class="time-label-container">
795
- <label>To</label>
796
- </div>
797
- <div class="time-container">
798
- <input class="form-control numberInput" [(ngModel)]="selectedToTime[0]" [ngClass]="{'error-border': endTimeHourErr}" (ngModelChange)="endTimeHourChange($event)" type="text" />
799
- <div class="arrow-container">
800
- <i class="mdi mdi-triangle upward" (click)="changeEndTimeHour(true)"></i>
801
- <i class="mdi mdi-triangle downward" (click)="changeEndTimeHour(false)"></i>
802
- </div>
803
- <span class="dot">:</span>
804
- <input class="form-control numberInput" [ngClass]="{'error-border': endTimeMinErr}" [(ngModel)]="selectedToTime[1]" (ngModelChange)="endTimeMinChange($event)" type="text" />
805
- <div class="arrow-container">
806
- <i class="mdi mdi-triangle upward" (click)="changeEndTimeMinute(true)"></i>
807
- <i class="mdi mdi-triangle downward" (click)="changeEndTimeMinute(false)"></i>
808
- </div>
809
- <div>
810
- <mat-button-toggle-group [(ngModel)]="selectedToTime[2]" (ngModelChange)="disableTimeFilterApplyButton()">
811
- <mat-button-toggle value="AM">
812
- <span>AM</span>
813
- </mat-button-toggle>
814
- <mat-button-toggle value="PM">
815
- <span>PM</span>
816
- </mat-button-toggle>
817
- </mat-button-toggle-group>
818
- </div>
819
- </div>
820
- </ng-container>
821
-
822
- <div class="buttons-container">
823
- <button class="button" (click)="closeTimeFilter()">Cancel</button>
824
- <button
825
- class="button"
826
- [ngClass]="{ disabled: disableTimeFilterApplyBtn }"
827
- (click)="applyTimeFilters()"
828
- [disabled]="disableTimeFilterApplyBtn"
829
- >
830
- Apply
831
- </button>
832
- </div>
833
- </ng-template>
834
-
835
- <ng-template #columnInfoTooltip>
836
- <p style="padding: 0.5rem; color: black;white-space: nowrap;">This preemption is rejected and not marked for credit.</p>
837
- </ng-template>
838
-
839
- <ng-template #ratingInfoTooltip>
840
- <p class="first-row">Shows 'Booked Rating' for Preemptions & MakeGood Offered spot(s).</p>
841
- <p class="second-row">Shows 'Projected Rating' for ADU Offered spot(s).</p>
842
- </ng-template>
843
-
844
- <ng-template #impsInfoTooltip>
845
- <p class ="first-row" >Shows 'Booked IMPS' for Preemptions & MakeGood Offered spot(s).</p>
846
- <p class="second-row" >Shows 'Projected IMPS' for ADU Offered spot(s).</p>
847
- </ng-template>
848
-
849
- <ng-template #spotsColumnEquivalizationMessageTooltip>
850
- <p class="spot-column-tooltip-message" >This consists of equivalized spots and un-equivalized Paid Programs & un-equivalized Non-spots.</p>
851
- </ng-template>
852
-
853
- <ng-template #rateInfoTooltip>
854
- <p class ="first-row" >Shows 'Booked Rate' for Preemptions & MakeGood Offered spot(s).</p>
855
- <p class="second-row" >Shows 'Projected $ Value' for ADU Offered spot(s).</p>
856
- </ng-template>
857
-
858
- <ng-template #sellerHierarchyTooltip>
859
- <ng-container *ngIf="sellerGroupHierarchy.length > 0">
860
- <table class="seller-hierarchy-table">
861
- <thead>
862
- <tr>
863
- <th>#</th>
864
- <th>Inventory Codes</th>
865
- <th>Program/Description</th>
866
- </tr>
867
- </thead>
868
- <tbody>
869
- <tr *ngFor="let data of sellerGroupHierarchy; let tooltipIndex = index">
870
- <td>{{ tooltipIndex + 1 }}</td>
871
- <td>
872
- <span>{{ data.inventoryCode }}</span>
873
- </td>
874
- <td>
875
- <span>{{ data.program }}</span>
876
- </td>
877
- </tr>
878
- </tbody>
879
- </table>
880
- </ng-container>
881
- <ng-container *ngIf="sellerGroupHierarchy.length == 0">
882
- <span style="color: #000">Seller group not available for this inventory code</span>
883
- </ng-container>
884
- </ng-template>
885
-
886
- <ng-template #lurViolationInfoTooltip>
887
- <p class ="first-row" >The values are for the entire week.</p>
888
- </ng-template>
889
-
890
- <ng-template #postedRatingDifference>
891
- <p class="difference-text">The difference between posted and booked average rating is {{isDifferenceLessThan25Percent ? 'less' : 'more'}} than 25%.</p>
892
- </ng-template>
893
-
894
- <ng-template #postedImpDifference>
895
- <p class="difference-text">The difference between posted and booked average impression is {{isDifferenceLessThan25Percent ? 'less' : 'more'}} than 25%.</p>
896
- </ng-template>
897
-
898
- <ng-template #ongoingRevBookedColumnTooltip>
899
- <p>The Booked $ value, Spots, GRP, CPP, IMPS, CPM corresponds on the last permanent revision generated</p>
900
- </ng-template>
901
-
902
- <ng-template #completedRevBookedColumnTooltip>
903
- <p>The Booked $ value corresponds on the last permanent revision generated</p>
904
- </ng-template>
905
-
906
- <ng-template #circularProgressBar>
907
- <circle-progress
908
- [percent]="percentDone"
909
- [radius]="5"
910
- [showTitle]="false"
911
- [showUnits]="false"
912
- [showSubtitle]="false"
913
- [outerStrokeWidth]="3"
914
- [innerStrokeWidth]="3"
915
- [space]="-3"
916
- [outerStrokeColor]="'#268bff'"
917
- [innerStrokeColor]="'#d5d5d5'"
918
- [animationDuration]="10"
919
- ></circle-progress>
920
- </ng-template>