@annalib/anna-core 0.0.4 → 1.2.0

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 (240) hide show
  1. package/.browserslistrc +16 -0
  2. package/karma.conf.js +44 -0
  3. package/ng-package.json +10 -0
  4. package/package.json +17 -61
  5. package/src/lib/anna-core-shared-lib/anna-core-shared-lib.module.ts +42 -0
  6. package/src/lib/anna-core-shared-lib/components/anna-buyer-approval-icon-template/anna-buyer-approval-icon-template.component.html +22 -0
  7. package/src/lib/anna-core-shared-lib/components/anna-buyer-approval-icon-template/anna-buyer-approval-icon-template.component.scss +0 -0
  8. package/src/lib/anna-core-shared-lib/components/anna-buyer-approval-icon-template/anna-buyer-approval-icon-template.component.spec.ts +25 -0
  9. package/src/lib/anna-core-shared-lib/components/anna-buyer-approval-icon-template/anna-buyer-approval-icon-template.component.ts +15 -0
  10. package/src/lib/anna-core-shared-lib/components/anna-live-icon-template/anna-live-icon-template.component.html +20 -0
  11. package/src/lib/anna-core-shared-lib/components/anna-live-icon-template/anna-live-icon-template.component.scss +0 -0
  12. package/src/lib/anna-core-shared-lib/components/anna-live-icon-template/anna-live-icon-template.component.spec.ts +25 -0
  13. package/src/lib/anna-core-shared-lib/components/anna-live-icon-template/anna-live-icon-template.component.ts +15 -0
  14. package/src/lib/anna-core-shared-lib/components/anna-no-data/anna-no-data.component.html +3 -0
  15. package/src/lib/anna-core-shared-lib/components/anna-no-data/anna-no-data.component.scss +16 -0
  16. package/src/lib/anna-core-shared-lib/components/anna-no-data/anna-no-data.component.spec.ts +24 -0
  17. package/src/lib/anna-core-shared-lib/components/anna-no-data/anna-no-data.component.ts +20 -0
  18. package/src/lib/anna-core-shared-lib/components/anna-notify-icon-template/anna-notify-icon-template.component.html +23 -0
  19. package/src/lib/anna-core-shared-lib/components/anna-notify-icon-template/anna-notify-icon-template.component.scss +0 -0
  20. package/src/lib/anna-core-shared-lib/components/anna-notify-icon-template/anna-notify-icon-template.component.spec.ts +25 -0
  21. package/src/lib/anna-core-shared-lib/components/anna-notify-icon-template/anna-notify-icon-template.component.ts +15 -0
  22. package/src/lib/anna-core-shared-lib/components/anna-pay-for-performance-icon-template/anna-pay-for-performance-icon-template.component.html +15 -0
  23. package/src/lib/anna-core-shared-lib/components/anna-pay-for-performance-icon-template/anna-pay-for-performance-icon-template.component.scss +0 -0
  24. 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
  25. package/src/lib/anna-core-shared-lib/components/anna-pay-for-performance-icon-template/anna-pay-for-performance-icon-template.component.ts +19 -0
  26. package/src/lib/anna-core-shared-lib/components/anna-rejected-icon-template/anna-rejected-icon-template.component.html +14 -0
  27. package/src/lib/anna-core-shared-lib/components/anna-rejected-icon-template/anna-rejected-icon-template.component.scss +0 -0
  28. package/src/lib/anna-core-shared-lib/components/anna-rejected-icon-template/anna-rejected-icon-template.component.spec.ts +25 -0
  29. package/src/lib/anna-core-shared-lib/components/anna-rejected-icon-template/anna-rejected-icon-template.component.ts +15 -0
  30. package/src/lib/anna-core-shared-lib/constants/shared.constant.ts +34 -0
  31. package/src/lib/anna-core-shared-lib/index.ts +1 -0
  32. package/src/lib/anna-core-shared-lib/models/anna-generic-data-type.model.ts +10 -0
  33. 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
  34. 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} +34 -24
  35. package/src/lib/anna-core-shared-lib/models/anna-sort.model.ts +7 -0
  36. package/src/lib/anna-core-shared-lib/models/anna-tooltip.model.ts +40 -0
  37. package/src/lib/anna-core-shared-lib/ng-package.json +5 -0
  38. package/src/lib/anna-core-shared-lib/pipes/annaFilterSearchedText.pipe.ts +26 -0
  39. package/{lib/anna-core-shared-lib/public-api.d.ts → src/lib/anna-core-shared-lib/public-api.ts} +12 -0
  40. package/src/lib/anna-core-shared-lib/scss/_colors.scss +107 -0
  41. package/src/lib/anna-core-shared-lib/scss/_filters.scss +577 -0
  42. package/src/lib/anna-core-shared-lib/scss/_fonts.scss +86 -0
  43. package/src/lib/anna-core-shared-lib/scss/_sort.scss +30 -0
  44. package/src/lib/anna-core-shared-lib/services/anna-date-time-format.service.ts +197 -0
  45. package/src/lib/anna-core-shared-lib/services/anna-filter.service.ts +689 -0
  46. package/src/lib/anna-core-shared-lib/services/anna-generic-table.service.ts +44 -0
  47. package/src/lib/anna-core-shared-lib/services/anna-global-config.service.ts +170 -0
  48. package/src/lib/anna-core-shared-lib/services/anna-sort.service.ts +179 -0
  49. package/src/lib/anna-dropdown-lib/anna-dropdown-lib.module.ts +31 -0
  50. package/src/lib/anna-dropdown-lib/components/anna-calendar-filter/anna-calendar-filter.component.html +46 -0
  51. package/src/lib/anna-dropdown-lib/components/anna-calendar-filter/anna-calendar-filter.component.scss +153 -0
  52. package/src/lib/anna-dropdown-lib/components/anna-calendar-filter/anna-calendar-filter.component.spec.ts +24 -0
  53. package/src/lib/anna-dropdown-lib/components/anna-calendar-filter/anna-calendar-filter.component.ts +103 -0
  54. package/src/lib/anna-dropdown-lib/components/anna-week-calendar-filter/anna-week-calendar-filter.component.html +129 -0
  55. package/src/lib/anna-dropdown-lib/components/anna-week-calendar-filter/anna-week-calendar-filter.component.scss +275 -0
  56. package/src/lib/anna-dropdown-lib/components/anna-week-calendar-filter/anna-week-calendar-filter.component.spec.ts +24 -0
  57. package/src/lib/anna-dropdown-lib/components/anna-week-calendar-filter/anna-week-calendar-filter.component.ts +410 -0
  58. package/src/lib/anna-dropdown-lib/index.ts +1 -0
  59. package/src/lib/anna-dropdown-lib/ng-package.json +5 -0
  60. package/{lib/anna-dropdown-lib/public-api.d.ts → src/lib/anna-dropdown-lib/public-api.ts} +4 -1
  61. package/src/lib/anna-generic-table-lib/anna-generic-table-lib.module.ts +56 -0
  62. package/src/lib/anna-generic-table-lib/components/anna-non-editable-generic-table/anna-non-editable-generic-table.component.html +855 -0
  63. package/src/lib/anna-generic-table-lib/components/anna-non-editable-generic-table/anna-non-editable-generic-table.component.scss +488 -0
  64. package/src/lib/anna-generic-table-lib/components/anna-non-editable-generic-table/anna-non-editable-generic-table.component.spec.ts +25 -0
  65. package/src/lib/anna-generic-table-lib/components/anna-non-editable-generic-table/anna-non-editable-generic-table.component.ts +1748 -0
  66. package/src/lib/anna-generic-table-lib/components/anna-sort/anna-sort.component.html +10 -0
  67. package/src/lib/anna-generic-table-lib/components/anna-sort/anna-sort.component.scss +1 -0
  68. package/src/lib/anna-generic-table-lib/components/anna-sort/anna-sort.component.spec.ts +24 -0
  69. package/src/lib/anna-generic-table-lib/components/anna-sort/anna-sort.component.ts +74 -0
  70. package/src/lib/anna-generic-table-lib/components/anna-table-virtual-scroll-viewport/anna-table-virtual-scroll-viewport.component.html +13 -0
  71. package/src/lib/anna-generic-table-lib/components/anna-table-virtual-scroll-viewport/anna-table-virtual-scroll-viewport.component.scss +88 -0
  72. package/src/lib/anna-generic-table-lib/components/anna-table-virtual-scroll-viewport/anna-table-virtual-scroll-viewport.component.spec.ts +25 -0
  73. package/src/lib/anna-generic-table-lib/components/anna-table-virtual-scroll-viewport/anna-table-virtual-scroll-viewport.component.ts +460 -0
  74. 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
  75. 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
  76. package/src/lib/anna-generic-table-lib/directives/anna-virtual-table/anna-virtual-table.directive.ts +204 -0
  77. 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
  78. package/src/lib/anna-generic-table-lib/index.ts +1 -0
  79. package/src/lib/anna-generic-table-lib/ng-package.json +5 -0
  80. package/{lib/anna-generic-table-lib/public-api.d.ts → src/lib/anna-generic-table-lib/public-api.ts} +5 -0
  81. package/{public-api.d.ts → src/public-api.ts} +5 -0
  82. package/src/test.ts +27 -0
  83. package/tsconfig.lib.json +16 -0
  84. package/tsconfig.lib.prod.json +10 -0
  85. package/tsconfig.spec.json +17 -0
  86. package/annalib-anna-core.d.ts +0 -5
  87. package/esm2020/annalib-anna-core.mjs +0 -5
  88. package/esm2020/lib/anna-core-shared-lib/anna-core-shared-lib.module.mjs +0 -59
  89. package/esm2020/lib/anna-core-shared-lib/components/anna-buyer-approval-icon-template/anna-buyer-approval-icon-template.component.mjs +0 -15
  90. package/esm2020/lib/anna-core-shared-lib/components/anna-live-icon-template/anna-live-icon-template.component.mjs +0 -15
  91. package/esm2020/lib/anna-core-shared-lib/components/anna-no-data/anna-no-data.component.mjs +0 -22
  92. package/esm2020/lib/anna-core-shared-lib/components/anna-notify-icon-template/anna-notify-icon-template.component.mjs +0 -15
  93. package/esm2020/lib/anna-core-shared-lib/components/anna-pay-for-performance-icon-template/anna-pay-for-performance-icon-template.component.mjs +0 -21
  94. package/esm2020/lib/anna-core-shared-lib/components/anna-rejected-icon-template/anna-rejected-icon-template.component.mjs +0 -15
  95. package/esm2020/lib/anna-core-shared-lib/constants/shared.constant.mjs +0 -34
  96. package/esm2020/lib/anna-core-shared-lib/index.mjs +0 -2
  97. package/esm2020/lib/anna-core-shared-lib/models/anna-generic-data-type.model.mjs +0 -2
  98. package/esm2020/lib/anna-core-shared-lib/models/anna-global-dropdown-config.model.mjs +0 -2
  99. package/esm2020/lib/anna-core-shared-lib/models/anna-non-editable-gt-models.mjs +0 -3
  100. package/esm2020/lib/anna-core-shared-lib/models/anna-tooltip.model.mjs +0 -26
  101. package/esm2020/lib/anna-core-shared-lib/pipes/annaFilterSearchedText.pipe.mjs +0 -31
  102. package/esm2020/lib/anna-core-shared-lib/public-api.mjs +0 -25
  103. package/esm2020/lib/anna-core-shared-lib/services/anna-date-time-format.service.mjs +0 -180
  104. package/esm2020/lib/anna-core-shared-lib/services/anna-filter.service.mjs +0 -536
  105. package/esm2020/lib/anna-core-shared-lib/services/anna-generic-table.service.mjs +0 -52
  106. package/esm2020/lib/anna-core-shared-lib/services/anna-global-config.service.mjs +0 -133
  107. package/esm2020/lib/anna-core-shared-lib/services/anna-sort.service.mjs +0 -185
  108. package/esm2020/lib/anna-dropdown-lib/anna-dropdown-lib.module.mjs +0 -43
  109. package/esm2020/lib/anna-dropdown-lib/components/anna-calendar-filter/anna-calendar-filter.component.mjs +0 -76
  110. package/esm2020/lib/anna-dropdown-lib/components/anna-week-calendar-filter/anna-week-calendar-filter.component.mjs +0 -360
  111. package/esm2020/lib/anna-dropdown-lib/index.mjs +0 -2
  112. package/esm2020/lib/anna-dropdown-lib/public-api.mjs +0 -6
  113. package/esm2020/lib/anna-generic-table-lib/anna-generic-table-lib.module.mjs +0 -86
  114. package/esm2020/lib/anna-generic-table-lib/components/anna-non-editable-generic-table/anna-non-editable-generic-table.component.mjs +0 -991
  115. package/esm2020/lib/anna-generic-table-lib/components/anna-sort/anna-sort.component.mjs +0 -125
  116. package/esm2020/lib/anna-generic-table-lib/components/anna-table-virtual-scroll-viewport/anna-table-virtual-scroll-viewport.component.mjs +0 -357
  117. 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
  118. package/esm2020/lib/anna-generic-table-lib/directives/anna-fixed-row-size-table-virtual-scroll-strategy/index.mjs +0 -2
  119. package/esm2020/lib/anna-generic-table-lib/directives/anna-virtual-table/anna-virtual-table.directive.mjs +0 -178
  120. package/esm2020/lib/anna-generic-table-lib/directives/anna-virtual-table/index.mjs +0 -2
  121. package/esm2020/lib/anna-generic-table-lib/index.mjs +0 -2
  122. package/esm2020/lib/anna-generic-table-lib/public-api.mjs +0 -10
  123. package/esm2020/public-api.mjs +0 -7
  124. package/esm2020/src/lib/anna-core-shared-lib/anna-core-shared-lib.module.mjs +0 -59
  125. package/esm2020/src/lib/anna-core-shared-lib/annalib-anna-core-src-lib-anna-core-shared-lib.mjs +0 -5
  126. package/esm2020/src/lib/anna-core-shared-lib/components/anna-buyer-approval-icon-template/anna-buyer-approval-icon-template.component.mjs +0 -15
  127. package/esm2020/src/lib/anna-core-shared-lib/components/anna-live-icon-template/anna-live-icon-template.component.mjs +0 -15
  128. package/esm2020/src/lib/anna-core-shared-lib/components/anna-no-data/anna-no-data.component.mjs +0 -22
  129. package/esm2020/src/lib/anna-core-shared-lib/components/anna-notify-icon-template/anna-notify-icon-template.component.mjs +0 -15
  130. package/esm2020/src/lib/anna-core-shared-lib/components/anna-pay-for-performance-icon-template/anna-pay-for-performance-icon-template.component.mjs +0 -21
  131. package/esm2020/src/lib/anna-core-shared-lib/components/anna-rejected-icon-template/anna-rejected-icon-template.component.mjs +0 -15
  132. package/esm2020/src/lib/anna-core-shared-lib/constants/shared.constant.mjs +0 -34
  133. package/esm2020/src/lib/anna-core-shared-lib/models/anna-generic-data-type.model.mjs +0 -2
  134. package/esm2020/src/lib/anna-core-shared-lib/models/anna-global-dropdown-config.model.mjs +0 -2
  135. package/esm2020/src/lib/anna-core-shared-lib/models/anna-non-editable-gt-models.mjs +0 -3
  136. package/esm2020/src/lib/anna-core-shared-lib/models/anna-tooltip.model.mjs +0 -26
  137. package/esm2020/src/lib/anna-core-shared-lib/pipes/annaFilterSearchedText.pipe.mjs +0 -31
  138. package/esm2020/src/lib/anna-core-shared-lib/public-api.mjs +0 -25
  139. package/esm2020/src/lib/anna-core-shared-lib/services/anna-date-time-format.service.mjs +0 -180
  140. package/esm2020/src/lib/anna-core-shared-lib/services/anna-filter.service.mjs +0 -536
  141. package/esm2020/src/lib/anna-core-shared-lib/services/anna-generic-table.service.mjs +0 -52
  142. package/esm2020/src/lib/anna-core-shared-lib/services/anna-global-config.service.mjs +0 -133
  143. package/esm2020/src/lib/anna-core-shared-lib/services/anna-sort.service.mjs +0 -185
  144. package/esm2020/src/lib/anna-dropdown-lib/anna-dropdown-lib.module.mjs +0 -43
  145. package/esm2020/src/lib/anna-dropdown-lib/annalib-anna-core-src-lib-anna-dropdown-lib.mjs +0 -5
  146. package/esm2020/src/lib/anna-dropdown-lib/components/anna-calendar-filter/anna-calendar-filter.component.mjs +0 -76
  147. package/esm2020/src/lib/anna-dropdown-lib/components/anna-week-calendar-filter/anna-week-calendar-filter.component.mjs +0 -360
  148. package/esm2020/src/lib/anna-dropdown-lib/public-api.mjs +0 -6
  149. package/esm2020/src/lib/anna-generic-table-lib/anna-generic-table-lib.module.mjs +0 -86
  150. package/esm2020/src/lib/anna-generic-table-lib/annalib-anna-core-src-lib-anna-generic-table-lib.mjs +0 -5
  151. package/esm2020/src/lib/anna-generic-table-lib/components/anna-non-editable-generic-table/anna-non-editable-generic-table.component.mjs +0 -991
  152. package/esm2020/src/lib/anna-generic-table-lib/components/anna-sort/anna-sort.component.mjs +0 -125
  153. package/esm2020/src/lib/anna-generic-table-lib/components/anna-table-virtual-scroll-viewport/anna-table-virtual-scroll-viewport.component.mjs +0 -357
  154. package/esm2020/src/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
  155. package/esm2020/src/lib/anna-generic-table-lib/directives/anna-fixed-row-size-table-virtual-scroll-strategy/index.mjs +0 -2
  156. package/esm2020/src/lib/anna-generic-table-lib/directives/anna-virtual-table/anna-virtual-table.directive.mjs +0 -178
  157. package/esm2020/src/lib/anna-generic-table-lib/directives/anna-virtual-table/index.mjs +0 -2
  158. package/esm2020/src/lib/anna-generic-table-lib/public-api.mjs +0 -10
  159. package/fesm2015/annalib-anna-core-src-lib-anna-core-shared-lib.mjs +0 -1294
  160. package/fesm2015/annalib-anna-core-src-lib-anna-core-shared-lib.mjs.map +0 -1
  161. package/fesm2015/annalib-anna-core-src-lib-anna-dropdown-lib.mjs +0 -474
  162. package/fesm2015/annalib-anna-core-src-lib-anna-dropdown-lib.mjs.map +0 -1
  163. package/fesm2015/annalib-anna-core-src-lib-anna-generic-table-lib.mjs +0 -1887
  164. package/fesm2015/annalib-anna-core-src-lib-anna-generic-table-lib.mjs.map +0 -1
  165. package/fesm2015/annalib-anna-core.mjs +0 -3629
  166. package/fesm2015/annalib-anna-core.mjs.map +0 -1
  167. package/fesm2020/annalib-anna-core-src-lib-anna-core-shared-lib.mjs +0 -1294
  168. package/fesm2020/annalib-anna-core-src-lib-anna-core-shared-lib.mjs.map +0 -1
  169. package/fesm2020/annalib-anna-core-src-lib-anna-dropdown-lib.mjs +0 -472
  170. package/fesm2020/annalib-anna-core-src-lib-anna-dropdown-lib.mjs.map +0 -1
  171. package/fesm2020/annalib-anna-core-src-lib-anna-generic-table-lib.mjs +0 -1886
  172. package/fesm2020/annalib-anna-core-src-lib-anna-generic-table-lib.mjs.map +0 -1
  173. package/fesm2020/annalib-anna-core.mjs +0 -3626
  174. package/fesm2020/annalib-anna-core.mjs.map +0 -1
  175. package/lib/anna-core-shared-lib/anna-core-shared-lib.module.d.ts +0 -14
  176. package/lib/anna-core-shared-lib/components/anna-buyer-approval-icon-template/anna-buyer-approval-icon-template.component.d.ts +0 -8
  177. package/lib/anna-core-shared-lib/components/anna-live-icon-template/anna-live-icon-template.component.d.ts +0 -8
  178. package/lib/anna-core-shared-lib/components/anna-no-data/anna-no-data.component.d.ts +0 -11
  179. package/lib/anna-core-shared-lib/components/anna-notify-icon-template/anna-notify-icon-template.component.d.ts +0 -8
  180. package/lib/anna-core-shared-lib/components/anna-pay-for-performance-icon-template/anna-pay-for-performance-icon-template.component.d.ts +0 -11
  181. package/lib/anna-core-shared-lib/components/anna-rejected-icon-template/anna-rejected-icon-template.component.d.ts +0 -8
  182. package/lib/anna-core-shared-lib/constants/shared.constant.d.ts +0 -32
  183. package/lib/anna-core-shared-lib/index.d.ts +0 -1
  184. package/lib/anna-core-shared-lib/models/anna-generic-data-type.model.d.ts +0 -8
  185. package/lib/anna-core-shared-lib/models/anna-tooltip.model.d.ts +0 -21
  186. package/lib/anna-core-shared-lib/pipes/annaFilterSearchedText.pipe.d.ts +0 -9
  187. package/lib/anna-core-shared-lib/services/anna-date-time-format.service.d.ts +0 -25
  188. package/lib/anna-core-shared-lib/services/anna-filter.service.d.ts +0 -68
  189. package/lib/anna-core-shared-lib/services/anna-generic-table.service.d.ts +0 -14
  190. package/lib/anna-core-shared-lib/services/anna-global-config.service.d.ts +0 -21
  191. package/lib/anna-core-shared-lib/services/anna-sort.service.d.ts +0 -23
  192. package/lib/anna-dropdown-lib/anna-dropdown-lib.module.d.ts +0 -11
  193. package/lib/anna-dropdown-lib/components/anna-calendar-filter/anna-calendar-filter.component.d.ts +0 -29
  194. package/lib/anna-dropdown-lib/components/anna-week-calendar-filter/anna-week-calendar-filter.component.d.ts +0 -67
  195. package/lib/anna-dropdown-lib/index.d.ts +0 -1
  196. package/lib/anna-generic-table-lib/anna-generic-table-lib.module.d.ts +0 -21
  197. package/lib/anna-generic-table-lib/components/anna-non-editable-generic-table/anna-non-editable-generic-table.component.d.ts +0 -171
  198. package/lib/anna-generic-table-lib/components/anna-sort/anna-sort.component.d.ts +0 -27
  199. package/lib/anna-generic-table-lib/components/anna-table-virtual-scroll-viewport/anna-table-virtual-scroll-viewport.component.d.ts +0 -141
  200. 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
  201. package/lib/anna-generic-table-lib/directives/anna-virtual-table/anna-virtual-table.directive.d.ts +0 -45
  202. package/lib/anna-generic-table-lib/index.d.ts +0 -1
  203. package/src/lib/anna-core-shared-lib/anna-core-shared-lib.module.d.ts +0 -14
  204. package/src/lib/anna-core-shared-lib/annalib-anna-core-src-lib-anna-core-shared-lib.d.ts +0 -5
  205. package/src/lib/anna-core-shared-lib/components/anna-buyer-approval-icon-template/anna-buyer-approval-icon-template.component.d.ts +0 -8
  206. package/src/lib/anna-core-shared-lib/components/anna-live-icon-template/anna-live-icon-template.component.d.ts +0 -8
  207. package/src/lib/anna-core-shared-lib/components/anna-no-data/anna-no-data.component.d.ts +0 -11
  208. package/src/lib/anna-core-shared-lib/components/anna-notify-icon-template/anna-notify-icon-template.component.d.ts +0 -8
  209. package/src/lib/anna-core-shared-lib/components/anna-pay-for-performance-icon-template/anna-pay-for-performance-icon-template.component.d.ts +0 -11
  210. package/src/lib/anna-core-shared-lib/components/anna-rejected-icon-template/anna-rejected-icon-template.component.d.ts +0 -8
  211. package/src/lib/anna-core-shared-lib/constants/shared.constant.d.ts +0 -32
  212. package/src/lib/anna-core-shared-lib/models/anna-generic-data-type.model.d.ts +0 -8
  213. package/src/lib/anna-core-shared-lib/models/anna-global-dropdown-config.model.d.ts +0 -95
  214. package/src/lib/anna-core-shared-lib/models/anna-non-editable-gt-models.d.ts +0 -70
  215. package/src/lib/anna-core-shared-lib/models/anna-tooltip.model.d.ts +0 -21
  216. package/src/lib/anna-core-shared-lib/package.json +0 -10
  217. package/src/lib/anna-core-shared-lib/pipes/annaFilterSearchedText.pipe.d.ts +0 -9
  218. package/src/lib/anna-core-shared-lib/public-api.d.ts +0 -18
  219. package/src/lib/anna-core-shared-lib/services/anna-date-time-format.service.d.ts +0 -25
  220. package/src/lib/anna-core-shared-lib/services/anna-filter.service.d.ts +0 -68
  221. package/src/lib/anna-core-shared-lib/services/anna-generic-table.service.d.ts +0 -14
  222. package/src/lib/anna-core-shared-lib/services/anna-global-config.service.d.ts +0 -21
  223. package/src/lib/anna-core-shared-lib/services/anna-sort.service.d.ts +0 -23
  224. package/src/lib/anna-dropdown-lib/anna-dropdown-lib.module.d.ts +0 -11
  225. package/src/lib/anna-dropdown-lib/annalib-anna-core-src-lib-anna-dropdown-lib.d.ts +0 -5
  226. package/src/lib/anna-dropdown-lib/components/anna-calendar-filter/anna-calendar-filter.component.d.ts +0 -29
  227. package/src/lib/anna-dropdown-lib/components/anna-week-calendar-filter/anna-week-calendar-filter.component.d.ts +0 -67
  228. package/src/lib/anna-dropdown-lib/package.json +0 -10
  229. package/src/lib/anna-dropdown-lib/public-api.d.ts +0 -3
  230. package/src/lib/anna-generic-table-lib/anna-generic-table-lib.module.d.ts +0 -21
  231. package/src/lib/anna-generic-table-lib/annalib-anna-core-src-lib-anna-generic-table-lib.d.ts +0 -5
  232. package/src/lib/anna-generic-table-lib/components/anna-non-editable-generic-table/anna-non-editable-generic-table.component.d.ts +0 -171
  233. package/src/lib/anna-generic-table-lib/components/anna-sort/anna-sort.component.d.ts +0 -27
  234. package/src/lib/anna-generic-table-lib/components/anna-table-virtual-scroll-viewport/anna-table-virtual-scroll-viewport.component.d.ts +0 -141
  235. 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.d.ts +0 -89
  236. package/src/lib/anna-generic-table-lib/directives/anna-fixed-row-size-table-virtual-scroll-strategy/index.d.ts +0 -1
  237. package/src/lib/anna-generic-table-lib/directives/anna-virtual-table/anna-virtual-table.directive.d.ts +0 -45
  238. package/src/lib/anna-generic-table-lib/directives/anna-virtual-table/index.d.ts +0 -1
  239. package/src/lib/anna-generic-table-lib/package.json +0 -10
  240. package/src/lib/anna-generic-table-lib/public-api.d.ts +0 -6
@@ -0,0 +1,1748 @@
1
+
2
+ // Angular import statements
3
+ import { Component, OnInit, Input, ViewChildren, QueryList, Output, EventEmitter, SimpleChanges, OnChanges, ChangeDetectorRef } from '@angular/core';
4
+
5
+ // Third party import statements
6
+ import moment from "moment";
7
+ import { NgbDate } from '@ng-bootstrap/ng-bootstrap';
8
+ import { Options } from '@angular-slider/ngx-slider';
9
+ import { cloneDeep, isEqual, map, uniq, sortBy } from "lodash-es";
10
+
11
+ // User defined import statements
12
+ import { AnnaSortComponent } from '../anna-sort/anna-sort.component';
13
+
14
+ //sub-entries of anna lib import statement
15
+ import { SellerGroupHierarchy,IWeekCalendar,TooltipModel,AnnaSortService,AnnaDateTimeFormatService, NgbDateType, AnnaFilterService, IGtGeneralConfig, IGtTableHeader, ITotalRowInfo, AnnaGenericTableService, SortType, IHeaderInfo, radioButtonModel } from "@annalib/anna-core/src/lib/anna-core-shared-lib";
16
+
17
+
18
+ @Component({
19
+ selector: 'anna-core-non-editable-generic-table-lib',
20
+ templateUrl: './anna-non-editable-generic-table.component.html',
21
+ styleUrls: ['./anna-non-editable-generic-table.component.scss'],
22
+ })
23
+ export class AnnaNonEditableGenericTableComponent implements OnInit, OnChanges {
24
+
25
+ @Input() showSkeletonLoading: boolean;
26
+ @Input() tableHeaders: IGtTableHeader[];
27
+ @Input() tableData: any[];
28
+ @Input() clonedTableData: any[];
29
+ @Input() numberOfSkeletonRows: number[]; //this is not being used.
30
+ @Input() numberOfSkeletonColumns: number[][];
31
+ @Input() gtGeneralConfig: IGtGeneralConfig;
32
+ @Input() totalRowInfo?: ITotalRowInfo[];
33
+ @Input() gtDimension: { rowHeight: number, tableHeight: string, headerHeight: number };
34
+ @Input() tableClass: string;
35
+ @Input() maximumRowsWhichCanBeRenderedWithoutScroll: number = 5;
36
+
37
+ @Output() toggleCheckbox = new EventEmitter();
38
+ @Output() toggleRowCheckbox = new EventEmitter();
39
+ @Output() toggleHeaderCheckbox = new EventEmitter();
40
+ @Output() undoIconClicked = new EventEmitter();
41
+ @Output() filterAppliedToTable = new EventEmitter();
42
+ @Output() sortingAppliedToTable = new EventEmitter();
43
+ @Output() rowClicked = new EventEmitter();
44
+ @Output() radioButtonSelected = new EventEmitter();
45
+ @Output() columnFilterOpened = new EventEmitter();
46
+ @Output() columnFilterClosed = new EventEmitter();
47
+ @Output() gtIconClicked = new EventEmitter();
48
+ @Output() gtSVGIconClicked = new EventEmitter();
49
+ @Output() gtTextActionClicked = new EventEmitter();
50
+ @Output() gtViewDetailClicked = new EventEmitter();
51
+
52
+
53
+ tableDataWrapper: any[];
54
+ rowChecked: boolean;
55
+ isAllRowsChecked: boolean;
56
+ noDataWidth: string = "55%";
57
+ markedForCreditStatus: string;
58
+ markedForMGStatus: string;
59
+
60
+ //Sort and Filter
61
+ toolTipdata: any;
62
+ tempTooltipData: any;
63
+ tooltipRadioTextMap: Map<any, any>;
64
+ radioButtons: any[];
65
+ tooltip: any;
66
+ clonedTooltipData: any;
67
+ clonedTooltipSelectedMapData: any;
68
+ searchBar: string;
69
+ disableClearAllBtn: boolean = true;
70
+ disableColumnClearAllBtn: boolean = true;
71
+ allSelected = 0;
72
+ showAll: boolean;
73
+ disableCheckboxApply: boolean;
74
+ disableSliderApplyButton: boolean;
75
+ disableTimeApplyButton: boolean;
76
+
77
+ // Slider Filter
78
+ sliderMinValue: number;
79
+ sliderMaxValue: number;
80
+ options: Options = {
81
+ floor: 0,
82
+ ceil: 0,
83
+ step: 0.1
84
+ };
85
+ sliderValue: { min: number, max: number };
86
+ sliderFilterTextBoxStep: string;
87
+
88
+ // Calendar Filter
89
+ calendarMinEnabledDate: NgbDateType;
90
+ calendarMaxEnabledDate: NgbDateType;
91
+ selectedMinDate: NgbDateType;
92
+ selectedMaxDate: NgbDateType;
93
+
94
+ //Week Filter
95
+ multiWeekPickerConfig: IWeekCalendar;
96
+
97
+ //Time Filter
98
+ selectedFromTime: any[];
99
+ selectedToTime: any[];
100
+ clonedSelectedFromTime: any;
101
+ clonedSelectedToTime: any;
102
+ disableTimeFilterApplyBtn: boolean;
103
+ tableColumns: string[] = [];
104
+ totalRowColumns: string[] = null;
105
+ showMultiTimeCheckbox: boolean;
106
+ showZeroTimeCheckbox: boolean;
107
+ showEnterTimeCheckbox: boolean;
108
+ multiTimeCheckboxChecked: boolean;
109
+ zeroTimeCheckboxChecked: boolean;
110
+ enterTimeCheckboxChecked: boolean;
111
+ bindValueFuncCalled: boolean;
112
+
113
+ hierarchyTooltip: { open: () => void; close: () => void; };
114
+ sellerGroupHierarchy: SellerGroupHierarchy[];
115
+ showCheckboxFilterRadioButtons: boolean;
116
+
117
+ @ViewChildren(AnnaSortComponent) sortComponent: QueryList<AnnaSortComponent>;
118
+ isScrolledLeft: boolean = false;
119
+ rowBorderWidth: number = 2;
120
+ PfpIconActiveColor = "#9B1B93"
121
+ PfpIconDisableColor = "rgba(189,189,189,0.5)";
122
+
123
+ showSortComponent: boolean = false;
124
+ showFilterComponent: boolean = false;
125
+ tempSortOrder: SortType = null;
126
+
127
+ tooltipOptions: TooltipModel[];
128
+ clonedTooltipOptions: TooltipModel[];
129
+ disableSelectAll: boolean;
130
+ disableClearAll: boolean;
131
+ searchItem: string;
132
+
133
+ disableCalendarApplyBtn: boolean;
134
+ calendarSelection: any = {fromDate: null , toDate: null};
135
+
136
+ showSliderMinValueError: boolean;
137
+ showSliderMaxValueError: boolean;
138
+ isMinTextBoxEmpty: boolean;
139
+ isMaxTextBoxEmpty: boolean;
140
+ selectedLabel: string;
141
+
142
+ startTimeHourErr: boolean;
143
+ startTimeMinErr: boolean;
144
+ endTimeHourErr: boolean;
145
+ endTimeMinErr: boolean;
146
+
147
+ sameTooltipClicked: boolean;
148
+
149
+ constructor(
150
+ private cdRef: ChangeDetectorRef,
151
+ private annaSortService: AnnaSortService,
152
+ public annaDateTimeFormatService: AnnaDateTimeFormatService,
153
+ public annaFilterService: AnnaFilterService,
154
+ private annaGenericTableService: AnnaGenericTableService
155
+ ) {
156
+ this.setTooltipRadioNames();
157
+ }
158
+
159
+ ngOnInit() {
160
+ // this.tableData = this.numberOfSkeletonColumns;
161
+ }
162
+
163
+ ngOnChanges(changes: SimpleChanges) {
164
+ // console.log("generic");
165
+ // console.log(this.tableHeaders);
166
+ // console.log(JSON.stringify(this.tableData));
167
+ if (this.showSkeletonLoading) {
168
+ this.tableData = this.numberOfSkeletonColumns;
169
+ console.log("initalValueMap set");
170
+ this.annaFilterService.initialValueMap = new Map();
171
+ }
172
+ else {
173
+ console.log("ng on change else condition");
174
+ // this.setInitialValueMapData();
175
+ this.disableEnableEachColumnTooltipIcon();
176
+ this.tableColumns = this.tableHeaders.filter(x => x.visible).map(x => x.headerInfo[0].objectKey);
177
+ this.showSkeletonLoading = false;
178
+ }
179
+
180
+ //setting table column here as well because while showing skeleton loader, we should show table headers.
181
+ if (changes['tableHeaders'] && changes['tableHeaders'].currentValue) {
182
+ this.tableColumns = this.tableHeaders.filter(x => x.visible).map(x => x.headerInfo[0].objectKey);
183
+ this.annaSortService.columnSortState = new Map();
184
+ this.setColumnSortStateMap();
185
+ }
186
+
187
+ if (changes['totalRowInfo'] && changes['totalRowInfo'].currentValue) {
188
+ this.totalRowColumns = this.totalRowInfo.map(x => x.colName);
189
+ }
190
+ this.cdRef.detectChanges();
191
+ }
192
+
193
+
194
+ trackByFn(index: number) {
195
+ return index;
196
+ }
197
+
198
+ setTooltipRadioNames() {
199
+ this.tooltipRadioTextMap = new Map();
200
+ this.tooltipRadioTextMap.set("StartTimeForFilter", "Start Time");
201
+ this.tooltipRadioTextMap.set("EndTimeForFilter", "End Time");
202
+ this.tooltipRadioTextMap.set("start_time_for_filter", "Start Time");
203
+ this.tooltipRadioTextMap.set("end_time_for_filter", "End Time");
204
+ this.tooltipRadioTextMap.set("primaryAEName", "Primary AE");
205
+ this.tooltipRadioTextMap.set("region", "Region");
206
+ this.tooltipRadioTextMap.set("agencyName", "Agency");
207
+ this.tooltipRadioTextMap.set("location", "Location");
208
+ this.tooltipRadioTextMap.set("advertiserName", "Advertiser");
209
+ this.tooltipRadioTextMap.set("productCode", "Product Code");
210
+ this.tooltipRadioTextMap.set("flightStartDate", "Start Date");
211
+ this.tooltipRadioTextMap.set("flightEndDate", "End Date");
212
+ this.tooltipRadioTextMap.set("orderIdAndRevNumber", "STN Order#-Rev#");
213
+ this.tooltipRadioTextMap.set("alternateOrderId", "Buyer Order#");
214
+ this.tooltipRadioTextMap.set("grp", "GRP");
215
+ this.tooltipRadioTextMap.set("cpp", "CPP");
216
+ this.tooltipRadioTextMap.set("imps", "IMPS");
217
+ this.tooltipRadioTextMap.set("cpm", "CPM");
218
+ this.tooltipRadioTextMap.set("offeredMGs", "Offered MG");
219
+ this.tooltipRadioTextMap.set("outstandingPE", "O/S PE");
220
+ this.tooltipRadioTextMap.set("offeredADUs", "Offered ADUs");
221
+ this.tooltipRadioTextMap.set("udDeficitValue", "Pending Audience Delta");
222
+ this.tooltipRadioTextMap.set("startEndTimeMulti", "Time");
223
+ this.tooltipRadioTextMap.set("bookedValue", "Booked");
224
+ this.tooltipRadioTextMap.set("bookedSpots", "Spots");
225
+ this.tooltipRadioTextMap.set("userChanges", "Other changes");
226
+ this.tooltipRadioTextMap.set("inventoryCode", "Inventory Code");
227
+ this.tooltipRadioTextMap.set("program", "Program");
228
+ this.tooltipRadioTextMap.set("agency", "Agency");
229
+ this.tooltipRadioTextMap.set("advertiser", "Advertiser");
230
+ this.tooltipRadioTextMap.set("startDate", "Start Date");
231
+ this.tooltipRadioTextMap.set("endDate", "End Date");
232
+ this.tooltipRadioTextMap.set("rcvPreempt", "Madegood PE");
233
+ this.tooltipRadioTextMap.set("osPreempt", "O/S PE");
234
+ this.tooltipRadioTextMap.set("rcvUnderDly", "Recovered UD");
235
+ this.tooltipRadioTextMap.set("osUnderDly", "O/s Under Dly");
236
+ this.tooltipRadioTextMap.set("primaryAe", "Primary AE");
237
+ this.tooltipRadioTextMap.set("region", "Region");
238
+ this.tooltipRadioTextMap.set("revCode1", "Rev code 1");
239
+ this.tooltipRadioTextMap.set("orderNoRevNo", "STN Order#-Rev#");
240
+ this.tooltipRadioTextMap.set("revCode2", "Rev code 2");
241
+ this.tooltipRadioTextMap.set("revCode3", "Rev code 3");
242
+ this.tooltipRadioTextMap.set("booked", "Booked");
243
+ this.tooltipRadioTextMap.set("spots", "Spots");
244
+ this.tooltipRadioTextMap.set("postedAudPercent", "Posted %");
245
+ this.tooltipRadioTextMap.set("revision", "Revision");
246
+ this.tooltipRadioTextMap.set("productCode", "Product Code");
247
+ this.tooltipRadioTextMap.set("buyerOrderId", "ALT Order#");
248
+ this.tooltipRadioTextMap.set("demo","Demo");
249
+ this.tooltipRadioTextMap.set("postedAdu","Posted ADUs");
250
+ this.tooltipRadioTextMap.set("scheduledAdu","Scheduled ADUs");
251
+ this.tooltipRadioTextMap.set("audienceDeficit","Audience Deficit");
252
+ this.tooltipRadioTextMap.set("postedAudPercent","Posted Audience %");
253
+ this.tooltipRadioTextMap.set("potentialUnitsValue","POT Units");
254
+ this.tooltipRadioTextMap.set("bookedUnitsValue","Booked Units");
255
+ this.tooltipRadioTextMap.set("bookedAmountWithZeroRatingValue","Total $ Booked");
256
+ this.tooltipRadioTextMap.set("bookedAmountPercentageWithZeroRatingValue","% of $ Booked");
257
+ this.tooltipRadioTextMap.set("bookedAmountWithoutZeroRatingValue","$Booked With Imps(’000)");
258
+ this.tooltipRadioTextMap.set("bookedAmountPercentageWithoutZeroRatingValue", "% OF $ Booked");
259
+ }
260
+
261
+ generateTableDataWrapper() {
262
+ this.showSkeletonLoading = true;
263
+ this.tableDataWrapper = [];
264
+ let rowObject: any;
265
+ let columnName: string;
266
+ let columnObject: { [x: string]: any; };
267
+ let columnObjectKey;
268
+ let keysUsedForTableDisplay: string[];
269
+ let keysUsedForColumn: string[];
270
+ let additionalInfoObject: { [x: string]: any; };
271
+ let additionalKeys;
272
+ this.tableData.forEach((obj: { [x: string]: any; }) => {
273
+ rowObject = {};
274
+ keysUsedForTableDisplay = [];
275
+ for (var colNum in this.tableHeaders) {
276
+ columnObject = {};
277
+ if (!this.tableHeaders[colNum].visible) {
278
+ continue;
279
+ }
280
+ columnName = "";
281
+ keysUsedForColumn = [];
282
+ this.tableHeaders[colNum].headerInfo.forEach((header) => {
283
+ if (header.typeOfBodyData === "STRING") {
284
+ columnObjectKey = header.objectKey;
285
+ columnObject[columnObjectKey] = obj[columnObjectKey];
286
+ keysUsedForTableDisplay.push(columnObjectKey);
287
+ keysUsedForColumn.push(columnObjectKey);
288
+ }
289
+ else if (header.typeOfBodyData === "ICON") {
290
+ columnObjectKey = header.typeOfBodyData;
291
+ columnObject[columnObjectKey] = obj[header.objectKey];
292
+ keysUsedForColumn.push(header.objectKey);
293
+ }
294
+ else if (header.typeOfBodyData === "CHECKBOX") {
295
+ columnObjectKey = header.typeOfBodyData;
296
+ columnObject[columnObjectKey] = obj[header.objectKey];
297
+ keysUsedForColumn.push(header.objectKey);
298
+ }
299
+ })
300
+ for (var i = 0; i < keysUsedForColumn.length; i++) {
301
+ columnName += keysUsedForColumn[i];
302
+ if (i !== keysUsedForColumn.length - 1) {
303
+ columnName += ',';
304
+ }
305
+ }
306
+ rowObject[columnName] = columnObject;
307
+ }
308
+ additionalInfoObject = {};
309
+ additionalKeys = Object.keys(obj).filter(key => !keysUsedForTableDisplay.includes(key));
310
+ additionalKeys.forEach(key => {
311
+ additionalInfoObject[key] = obj[key];
312
+ })
313
+ rowObject.AdditionalInfo = additionalInfoObject;
314
+ this.tableDataWrapper.push(rowObject);
315
+ })
316
+ this.tableData = this.tableDataWrapper;
317
+ this.showSkeletonLoading = false;
318
+ // console.log(JSON.stringify(this.tableDataWrapper));
319
+ }
320
+
321
+
322
+ selectOrUnselectCheckbox(rowData: any, columnKeys: any, isCheckboxSelected: any) {
323
+ this.toggleCheckbox.emit({ rowData, columnKeys, isCheckboxSelected });
324
+ }
325
+
326
+ selectUnselectAllRows() {
327
+ this.toggleHeaderCheckbox.emit();
328
+ }
329
+
330
+ selectUnselectRow(rowData: any) {
331
+ this.toggleRowCheckbox.emit(rowData);
332
+ }
333
+
334
+ undoCreditedSpot(data: any) {
335
+ this.undoIconClicked.emit({ data, mgOrCredit: "Credit" });
336
+ }
337
+
338
+ undoMgSpot(data: any) {
339
+ this.undoIconClicked.emit({ data, mgOrCredit: "MakeGood" });
340
+ }
341
+
342
+ //Sort and Filter Logic begins!
343
+ closeTooltip() {
344
+ if (this.tooltip && this.tooltip.isOpen()) {
345
+ this.tooltip.close();
346
+ }
347
+ this.tooltip = null;
348
+ this.disableCheckboxApply = false;
349
+ if (!this.bindValueFuncCalled) {
350
+ this.columnFilterClosed.emit();
351
+ }
352
+ }
353
+
354
+ // closeSortTooltip() {
355
+ // if (this.annaSortService.tooltip && this.annaSortService.tooltip.isOpen()) {
356
+ // this.annaSortService.tooltip.close();
357
+ // }
358
+ // }
359
+
360
+ // initFilters() {
361
+ // this.annaFilterService.tooltipMap = new Map();
362
+ // this.annaFilterService.tooltipSelectedMap = new Map();
363
+ // // this.annaSortService.sortByAsc = new Map();
364
+ // // this.annaSortService.sortByDesc = new Map();
365
+ // this.annaFilterService.selectedRadio = null;
366
+ // this.annaFilterService.appliedFiltersArray = [];
367
+ // //closing the sort tooltip if we route on the same route or if we click dropdown filters
368
+ // // this.closeSortTooltip();
369
+ // // this.annaSortService.tooltip = null;
370
+ // this.disableClearAllBtn = true;
371
+ // this.disableTimeFilterApplyBtn = false;
372
+ // }
373
+
374
+ // setInitialValueMapData() {
375
+ // this.annaFilterService.initialValueMap = new Map();
376
+ // this.tableHeaders.forEach((column) => {
377
+ // column.headerInfo.forEach((header) => {
378
+ // if (header.filter === "SLIDER") {
379
+ // header.filterObjectKeys.forEach((key) => {
380
+ // let min = this.annaFilterService.returnMaxAndMinValue(this.clonedTableData, key, true);
381
+ // let max = this.annaFilterService.returnMaxAndMinValue(this.clonedTableData, key, false);
382
+ // let obj = { min, max };
383
+
384
+ // this.annaFilterService.initialValueMap.set(key, obj);
385
+ // })
386
+ // }
387
+ // else if (header.filter === "DATE") {
388
+ // header.filterObjectKeys.forEach((key) => {
389
+ // if(key == "period"){
390
+ // const minMaxStartDate = this.annaFilterService.returnMinAndMaxDate(this.clonedTableData, "startDate");
391
+ // const minMaxEndDate = this.annaFilterService.returnMinAndMaxDate(this.clonedTableData, "endDate");
392
+ // let dateObj = { minSelectedDate: minMaxStartDate[0], maxSelectedDate: minMaxEndDate[1] };
393
+ // this.annaFilterService.initialValueMap.set(key, dateObj);
394
+ // }
395
+ // else{
396
+ // const minMaxDate = this.annaFilterService.returnMinAndMaxDate(this.clonedTableData, key);
397
+ // let obj = { minSelectedDate: minMaxDate[0], maxSelectedDate: minMaxDate[1] };
398
+ // this.annaFilterService.initialValueMap.set(key, obj);
399
+ // }
400
+ // })
401
+ // }
402
+ // else if (header.filter === "TIME") {
403
+ // header.filterObjectKeys.forEach((key) => {
404
+ // let data = this.clonedTableData.filter((obj: { [x: string]: string; }) => !["", "-", null, "0", "<multi>"].includes(obj[key]));
405
+ // let timeArr = map(data, key);
406
+ // timeArr.sort((a, b) => {
407
+ // return this.annaDateTimeFormatService.sortByTimeAscending(a, b);
408
+ // });
409
+ // let obj = {
410
+ // fromTime: timeArr[0],
411
+ // toTime: timeArr[timeArr.length - 1],
412
+ // };
413
+ // if (this.gtGeneralConfig.component === "SPOTDETAILS" || this.gtGeneralConfig.component === "EXCLUDEINVENTORYPOPUP") {
414
+ // let includeMulti = this.clonedTableData.findIndex((obj: { [x: string]: string; }) => obj[key] == "<multi>") != -1;
415
+ // let includeZero = this.clonedTableData.findIndex((obj: { [x: string]: string; }) => obj[key] == "0") != -1;
416
+ // let includeTimeRange = this.clonedTableData.findIndex((obj: { [x: string]: string; }) => obj[key] != "0" && obj[key] != "<multi>") != -1;
417
+ // let obj = {
418
+ // fromTime: timeArr[0],
419
+ // toTime: timeArr[timeArr.length - 1],
420
+ // includeMulti: includeMulti,
421
+ // includeZero: includeZero,
422
+ // includeTimeRange: includeTimeRange
423
+ // };
424
+ // this.annaFilterService.initialValueMap.set(key, obj);
425
+ // }
426
+ // else if (this.gtGeneralConfig.component === "RATING") {
427
+ // let includeMulti = this.clonedTableData.findIndex((obj: any) => obj[key][0] == "<multi>") != -1;
428
+ // let includeZero = this.clonedTableData.findIndex((obj: { [x: string]: string[]; }) => obj[key][0] == "0") != -1;
429
+ // let includeTimeRange = this.clonedTableData.findIndex((obj: { [x: string]: string[]; }) => obj[key][0] != "0" && obj[key][0] != "<multi>") != -1;
430
+
431
+ // let startTimeArr = map(this.clonedTableData, "startTime");
432
+ // let endTimeArr = map(this.clonedTableData, "endTime");
433
+
434
+ // startTimeArr.sort((a, b) => {
435
+ // return this.annaDateTimeFormatService.sortByTimeAscending(a, b);
436
+ // });
437
+
438
+ // endTimeArr.sort((a, b) => {
439
+ // return this.annaDateTimeFormatService.sortByTimeDescending(a, b);
440
+ // });
441
+
442
+ // let obj = {
443
+ // fromTime: startTimeArr[0],
444
+ // toTime: endTimeArr[0],
445
+ // includeMulti: includeMulti,
446
+ // includeZero: includeZero,
447
+ // includeTimeRange: includeTimeRange
448
+ // };
449
+ // this.annaFilterService.initialValueMap.set(key, obj);
450
+
451
+ // }
452
+ // else {
453
+ // this.annaFilterService.initialValueMap.set(key, obj);
454
+ // }
455
+ // })
456
+ // }
457
+ // })
458
+ // })
459
+ // }
460
+
461
+ isTooltipActive(header: any[]) {
462
+ return this.annaFilterService.isTooltipActive(header,this.annaSortService.columnSortState);
463
+ }
464
+
465
+ bindTheValueToToolTip(tooltip: any, header: IHeaderInfo) {
466
+
467
+ this.bindValueFuncCalled = true;
468
+ let containerToScroll;
469
+ if (this.gtGeneralConfig.component === "SPOTDETAILS" || this.gtGeneralConfig.component === "DRRLISTING") {
470
+ containerToScroll = document.getElementsByClassName("scrollable-container")[0];
471
+ var mediaQuery = window.matchMedia("(max-width: 1366px)");
472
+ if (mediaQuery.matches) {
473
+ containerToScroll.scroll(0, this.gtGeneralConfig.verticalScrollOffsetForFilterTooltip);
474
+ }
475
+ }
476
+
477
+ // if same tooltip opened close it
478
+ //need to change this
479
+ //THe tooltip should not close
480
+ // if (tooltip == this.tooltip) {
481
+ // this.bindValueFuncCalled = false;
482
+ // this.closeTooltip();
483
+ // }
484
+ // else {
485
+ if(tooltip == this.tooltip){
486
+ console.log("inside if");
487
+ this.bindValueFuncCalled = false;
488
+ this.sameTooltipClicked = true;
489
+ }
490
+
491
+ this.searchItem = this.sameTooltipClicked ? this.searchItem : "";
492
+ let enabledHeaders: any[] = [];
493
+ header.filterSortObjectKeys.forEach((item: string | number) => {
494
+ if(item == "period"){
495
+ let uniqStartDate = uniq(this.tableData.map((u: { [x: string]: any; }) => u["startDate"]));
496
+ let uniqEndDate = uniq(this.tableData.map((u:{ [x: string]: any; }) => u["endDate"]));
497
+ if(uniqStartDate.length > 1 || uniqEndDate.length > 1 || this.isTooltipActive([item])){
498
+ enabledHeaders.push(item);
499
+ }
500
+ }
501
+ else if(uniq(this.tableData.map((u:{ [x: string]: any; }) => u[item])).length > 1 || this.isTooltipActive([item])){
502
+ enabledHeaders.push(item);
503
+ }
504
+ });
505
+ this.openTooltip(tooltip, enabledHeaders,header);
506
+ if (window.innerWidth < 1500 && window.innerHeight < 768 && !this.annaFilterService.sliderSet.has(header.filterSortObjectKeys[0])) {
507
+ this.columnFilterOpened.emit();
508
+ }
509
+
510
+ this.showCheckboxFilterRadioButtons = header.filterSortObjectKeys.length > 1;
511
+ let radioButtonData = this.sameTooltipClicked ? this.radioButtons.filter(item => item.key == this.annaFilterService.selectedRadio)[0] : this.radioButtons[0];
512
+ this.populateTooltipDataBasedOnSelectedRadio(radioButtonData);
513
+ this.bindValueFuncCalled = false;
514
+ // }
515
+ }
516
+
517
+ openTooltip(tooltip: any,header: any, columnHeader: IHeaderInfo) {
518
+ this.closeTooltip();
519
+ this.tooltip = tooltip;
520
+ this.tooltip.open();
521
+ //convert key into the header
522
+ this.radioButtons = header.map((key: string,index: number) => {
523
+ let value = this.tooltipRadioTextMap.has(key)
524
+ ? this.tooltipRadioTextMap.get(key)
525
+ : key; //change to display name
526
+ return new radioButtonModel(key, value, columnHeader.isSortRequired[index], columnHeader.isFilterRequired[index]);
527
+ });
528
+ }
529
+
530
+ clearColumnFilter() {
531
+ this.annaFilterService.clearColumnFilter();
532
+ this.closeTooltip();
533
+ this.tableData = cloneDeep(this.annaFilterService.filterData(this.clonedTableData, ""));
534
+ this.annaSortService.noSortingAppliedData = this.tableData;
535
+ this.checkIfSortingIsApplied();
536
+ this.filterAppliedToTable.emit(this.tableData);
537
+ this.disableEnableEachColumnTooltipIcon();
538
+ }
539
+
540
+ populateTooltipDataBasedOnSelectedRadio(radioButtonData: radioButtonModel) {
541
+
542
+ let header = radioButtonData.key;
543
+ this.selectedLabel = radioButtonData.label;
544
+ this.showSortComponent = false;
545
+ this.showFilterComponent = false;
546
+ this.searchItem = this.sameTooltipClicked ? this.searchItem : null;
547
+
548
+ // setTimeout(() => {
549
+ this.showSortComponent = radioButtonData.isSortRequired;
550
+ this.showFilterComponent = radioButtonData.isFilterRequired;
551
+ // }, 0);
552
+ this.tempSortOrder = this.sameTooltipClicked ? this.tempSortOrder : null;
553
+
554
+ if(this.sameTooltipClicked && this.tempSortOrder){
555
+ setTimeout(() => {
556
+ this.annaSortService.updateSortTypeSubject.next(this.tempSortOrder);
557
+ }, 0);
558
+ }
559
+
560
+ if (this.toolTipdata) {
561
+ this.revert();
562
+ }
563
+
564
+ this.annaFilterService.selectedRadio = header;
565
+ let selectedFilterSet = new Set(this.annaFilterService.appliedFiltersArray);
566
+ let isSortPresent = (this.annaSortService.columnSortState.size > 0 && this.annaSortService.columnSortState.get(this.annaFilterService.selectedRadio) != "DEFAULT");
567
+ this.disableColumnClearAllBtn = selectedFilterSet.has(this.annaFilterService.selectedRadio) || isSortPresent ? false : true;
568
+
569
+ if(radioButtonData.isFilterRequired && !this.sameTooltipClicked){
570
+ this.disableSliderApplyButton = false;
571
+ this.disableCheckboxApply = false;
572
+
573
+ if (this.annaFilterService.calendarSet.has(header)) {
574
+ this.getCalendarData();
575
+ } else if (this.annaFilterService.sliderSet.has(header)) {
576
+ this.getSliderData(header);
577
+ } else if (this.annaFilterService.timeSet.has(header)) {
578
+ this.getTimeFilterData(header);
579
+ } else {
580
+ this.getCheckboxData(header);
581
+ }
582
+ }
583
+
584
+ this.sameTooltipClicked = false;
585
+ }
586
+
587
+ getSliderData(header: string) {
588
+
589
+ let translateFunc;
590
+
591
+ if (this.annaFilterService.sliderCurrencySet.has(header)) {
592
+ translateFunc = "currency";
593
+ }
594
+ else if(header == "postedAudPercent"){
595
+ translateFunc = "percent";
596
+ }
597
+ else {
598
+ translateFunc = "normal";
599
+ }
600
+
601
+ let optionsData = this.annaFilterService.getFilterOptionsData(this.tableData, this.clonedTableData);
602
+ let minValue = this.annaFilterService.returnMaxAndMinValue(optionsData, header, true);
603
+ let maxValue = this.annaFilterService.returnMaxAndMinValue(optionsData, header, false);
604
+
605
+ let obj = this.annaFilterService.setOptionValues(minValue,maxValue);
606
+
607
+ if (translateFunc === "normal") {
608
+ obj.translate = this.annaFilterService.normalTranslateFunction;
609
+ } else if (translateFunc === "percent") {
610
+ obj.translate = this.annaFilterService.percentTranslateFunction;
611
+ } else if (translateFunc === "currency") {
612
+ obj.translate = this.annaFilterService.currencyTranslateFunction;
613
+ }
614
+
615
+ this.options = obj;
616
+
617
+ if(this.annaFilterService.tooltipSelectedMap.has(header)){
618
+ let selectedObj = this.annaFilterService.tooltipSelectedMap.get(header);
619
+ this.sliderMinValue = selectedObj.min < this.options.floor ? this.options.floor : selectedObj.min;
620
+ this.sliderMaxValue = selectedObj.max < this.options.ceil ? selectedObj.max : this.options.ceil;
621
+ }
622
+ else{
623
+ this.sliderMinValue = this.options.floor;
624
+ this.sliderMaxValue = this.options.ceil;
625
+ }
626
+
627
+ //default step values
628
+ this.options.step = 1;
629
+ this.sliderFilterTextBoxStep = "1";
630
+ if (header !== "WeekNumber") {
631
+ this.options.step = 0.1;
632
+ this.sliderFilterTextBoxStep = "0.1";
633
+ }
634
+
635
+ }
636
+
637
+ getCheckboxData(header: string) {
638
+
639
+ let optionData = this.annaFilterService.getFilterOptionsData(this.tableData, this.clonedTableData);
640
+ let uniqOptionData = uniq(optionData.map(item => item[header]));
641
+ let tooltipOptions = uniqOptionData.map(item => new TooltipModel(item));
642
+
643
+ if(this.annaFilterService.tooltipSelectedMap.has(header)){
644
+ let selectedValueSet = new Set(this.annaFilterService.tooltipSelectedMap.get(header));
645
+ tooltipOptions.forEach(item => item.isSelected = selectedValueSet.has(item.data) ? true : false);
646
+ }
647
+ else{
648
+ tooltipOptions.forEach(item => item.isSelected = true);
649
+ }
650
+
651
+ let index = tooltipOptions.findIndex(item => item.data == null);
652
+
653
+ if(index != -1){
654
+ tooltipOptions[index].data = "(Blank)";
655
+ }
656
+
657
+ let selectedItems = sortBy(tooltipOptions.filter(item => item.isSelected),"data");
658
+ let unselectedItems = sortBy(tooltipOptions.filter(item => !item.isSelected),"data");
659
+
660
+ this.clonedTooltipOptions = [...selectedItems, ...unselectedItems];
661
+
662
+ this.tooltipOptions = cloneDeep(this.clonedTooltipOptions);
663
+
664
+ this.disableSelectAll = unselectedItems.length == 0;
665
+ this.disableClearAll = selectedItems.length == 0;
666
+
667
+ }
668
+
669
+ getCalendarData() {
670
+
671
+ const parsingFormat = "MM/DD/YYYY";
672
+
673
+ let optionData = this.annaFilterService.getFilterOptionsData(this.tableData, this.clonedTableData);
674
+
675
+ let minMaxDate;
676
+ if(this.annaFilterService.selectedRadio == "period"){
677
+ let minStartDate = this.annaFilterService.returnMinAndMaxDate(optionData, "startDate");
678
+ let maxEndDate = this.annaFilterService.returnMinAndMaxDate(optionData,"endDate");
679
+ minMaxDate = [minStartDate[0],maxEndDate[1]];
680
+ }
681
+ else{
682
+ minMaxDate = this.annaFilterService.returnMinAndMaxDate(optionData, this.annaFilterService.selectedRadio);
683
+ }
684
+ console.log(minMaxDate);
685
+
686
+
687
+ this.calendarMinEnabledDate = this.annaDateTimeFormatService.convertToNgbDate(minMaxDate[0],parsingFormat);
688
+ this.calendarMaxEnabledDate = this.annaDateTimeFormatService.convertToNgbDate(minMaxDate[1],parsingFormat);
689
+
690
+ console.log(this.calendarMinEnabledDate);
691
+ console.log(this.calendarMaxEnabledDate);
692
+
693
+ if(this.annaFilterService.tooltipSelectedMap.has(this.annaFilterService.selectedRadio)){
694
+ let selectedDateObj = this.annaFilterService.tooltipSelectedMap.get(this.annaFilterService.selectedRadio);
695
+
696
+ if(selectedDateObj.fromDate.isAfter(minMaxDate[0])){
697
+ this.selectedMinDate = this.annaDateTimeFormatService.convertToNgbDate(selectedDateObj.fromDate,parsingFormat);
698
+ }
699
+ else{
700
+ this.selectedMinDate = this.annaDateTimeFormatService.convertToNgbDate(minMaxDate[0],parsingFormat);
701
+ }
702
+
703
+ if(selectedDateObj.toDate.isAfter(minMaxDate[1])){
704
+ this.selectedMaxDate = this.annaDateTimeFormatService.convertToNgbDate(minMaxDate[1],parsingFormat);
705
+ }
706
+ else{
707
+ this.selectedMaxDate = this.annaDateTimeFormatService.convertToNgbDate(selectedDateObj.toDate,parsingFormat);
708
+ }
709
+
710
+ }
711
+ else{
712
+ this.selectedMinDate = cloneDeep(this.calendarMinEnabledDate);
713
+ this.selectedMaxDate = cloneDeep(this.calendarMaxEnabledDate);
714
+ }
715
+ console.log(this.selectedMinDate);
716
+ console.log(this.selectedMaxDate);
717
+
718
+ }
719
+
720
+ getTimeFilterData(header: string): void {
721
+
722
+ this.startTimeHourErr = this.startTimeMinErr = this.endTimeHourErr = this.endTimeMinErr = false;
723
+
724
+ if (this.annaFilterService.tooltipSelectedMap.has(header)) {
725
+ this.selectedFromTime = this.annaFilterService.tooltipSelectedMap.get(header).fromTime;
726
+ this.selectedToTime = this.annaFilterService.tooltipSelectedMap.get(header).toTime;
727
+ } else {
728
+ this.setInitialValueMapForTimeFilter(header);
729
+ this.selectedFromTime = this.annaFilterService.initialValueMap.get(header).fromTime;
730
+ this.selectedToTime = this.annaFilterService.initialValueMap.get(header).toTime;
731
+ }
732
+
733
+ if(this.selectedFromTime != undefined || this.selectedToTime != undefined) {
734
+ this.selectedFromTime = this.annaDateTimeFormatService.formatToTwelveHrs(this.selectedFromTime, true);
735
+ this.selectedToTime = this.annaDateTimeFormatService.formatToTwelveHrs(this.selectedToTime, true);
736
+
737
+ this.clonedSelectedFromTime = cloneDeep(this.selectedFromTime);
738
+ this.clonedSelectedToTime = cloneDeep(this.selectedToTime);
739
+ }
740
+ else {
741
+ this.selectedFromTime = ["-", "-", "-"];
742
+ this.selectedToTime = ["-", "-", "-"];
743
+ this.disableTimeFilterApplyBtn = true;
744
+ }
745
+
746
+ if(this.gtGeneralConfig.component === "SPOTDETAILS" || this.gtGeneralConfig.component === "EXCLUDEINVENTORYPOPUP") {
747
+ this.setTimeFilterDataForComponentsOtherThanRatingsPage(header);
748
+ }
749
+ else if(this.gtGeneralConfig.component === "RATING"){
750
+ this.setTimeFilterDataForRatingPageComponent(header);
751
+ }
752
+ }
753
+
754
+ //Need to change this method
755
+ setTimeFilterDataForComponentsOtherThanRatingsPage(header: string){
756
+ this.showMultiTimeCheckbox = false;
757
+ this.showZeroTimeCheckbox = false;
758
+ this.showEnterTimeCheckbox = false;
759
+ this.multiTimeCheckboxChecked = false;
760
+ this.zeroTimeCheckboxChecked = false;
761
+ this.enterTimeCheckboxChecked = false;
762
+
763
+
764
+ let optionsData = this.annaFilterService.getFilterOptionsData(this.tableData, this.clonedTableData);
765
+ let selectedObj;
766
+
767
+ if(this.annaFilterService.tooltipSelectedMap.has(header)){
768
+ selectedObj = this.annaFilterService.tooltipSelectedMap.get(header);
769
+ }
770
+ else{
771
+ selectedObj = this.annaFilterService.initialValueMap.get(header);
772
+ }
773
+
774
+ if(optionsData.findIndex(obj => obj[header] == "0") != -1) {
775
+ this.showZeroTimeCheckbox = true;
776
+ this.zeroTimeCheckboxChecked = selectedObj.includeZeroTime;
777
+ }
778
+
779
+
780
+ if(optionsData.findIndex(obj => obj[header] == "<multi>") != -1) {
781
+ this.showMultiTimeCheckbox = true;
782
+ this.multiTimeCheckboxChecked = selectedObj.includeMulti;
783
+ }
784
+
785
+
786
+ if(this.showZeroTimeCheckbox || this.showMultiTimeCheckbox) {
787
+ this.showEnterTimeCheckbox = true;
788
+ }
789
+
790
+ if(optionsData.findIndex(obj => obj[header] != "<multi>" && obj[header] != "0") != -1) {
791
+ this.enterTimeCheckboxChecked = selectedObj.includeTimeRange;
792
+ }
793
+ }
794
+
795
+ setTimeFilterDataForRatingPageComponent(header: string){
796
+ this.showMultiTimeCheckbox = false;
797
+ this.showZeroTimeCheckbox = false;
798
+ this.showEnterTimeCheckbox = false;
799
+ this.multiTimeCheckboxChecked = false;
800
+ this.zeroTimeCheckboxChecked = false;
801
+ this.enterTimeCheckboxChecked = false;
802
+
803
+ let optionsData = this.annaFilterService.getFilterOptionsData(this.tableData, this.clonedTableData);
804
+ let selectedObj;
805
+
806
+ if(this.annaFilterService.tooltipSelectedMap.has(header)){
807
+ selectedObj = this.annaFilterService.tooltipSelectedMap.get(header);
808
+ }
809
+ else{
810
+ selectedObj = this.annaFilterService.initialValueMap.get(header);
811
+ }
812
+
813
+ if(optionsData.findIndex(obj => obj[header][0] == "0") != -1) {
814
+ this.showZeroTimeCheckbox = true;
815
+ this.zeroTimeCheckboxChecked = selectedObj.includeZeroTime;
816
+ }
817
+
818
+
819
+ if(optionsData.findIndex(obj => obj[header][0] == "<multi>") != -1) {
820
+ this.showMultiTimeCheckbox = true;
821
+ this.multiTimeCheckboxChecked = selectedObj.includeMulti;
822
+ }
823
+
824
+
825
+ if(this.showZeroTimeCheckbox || this.showMultiTimeCheckbox) {
826
+ this.showEnterTimeCheckbox = true;
827
+ }
828
+
829
+ if(optionsData.findIndex(obj => obj[header][0] != "<multi>" && obj[header][0] != "0") != -1) {
830
+ this.enterTimeCheckboxChecked = selectedObj.includeTimeRange;
831
+ }
832
+ }
833
+
834
+ selectOrUnselectMultiTimeCheckbox() {
835
+ this.multiTimeCheckboxChecked = !this.multiTimeCheckboxChecked;
836
+ // this.annaFilterService.includeMultiTime = !this.annaFilterService.includeMultiTime;
837
+ this.disableTimeFilterApplyButton();
838
+ }
839
+
840
+ selectOrUnselectZeroTimeCheckbox() {
841
+ this.zeroTimeCheckboxChecked = !this.zeroTimeCheckboxChecked;
842
+ // this.annaFilterService.includeZeroTime = !this.annaFilterService.includeZeroTime;
843
+ this.disableTimeFilterApplyButton();
844
+ }
845
+
846
+ selectOrUnselectEnterTimeCheckbox() {
847
+ this.enterTimeCheckboxChecked = !this.enterTimeCheckboxChecked;
848
+ // this.annaFilterService.includeTimeRange = !this.annaFilterService.includeTimeRange;
849
+ this.disableTimeFilterApplyButton();
850
+ }
851
+
852
+ disableSliderApplyBtn() {
853
+ return this.options.floor === this.options.ceil;
854
+ }
855
+
856
+ selectUnselectCheckbox(data: TooltipModel) {
857
+ data.isSelected = !data.isSelected;
858
+ let selectedItems = this.tooltipOptions.filter(item => item.isSelected);
859
+ let unselectedItems = this.tooltipOptions.filter(item => !item.isSelected);
860
+
861
+ this.disableCheckboxApply = this.disableClearAll = selectedItems.length == 0;
862
+ this.disableSelectAll = unselectedItems.length == 0;
863
+
864
+ }
865
+
866
+ minValueChanged(value: string) {
867
+ console.log("min Value Changed");
868
+ if (value == null) {
869
+ this.isMinTextBoxEmpty = true;
870
+ this.showSliderMinValueError = false;
871
+ this.showSliderMaxValueError = false;
872
+ this.disableSliderApplyButton = false;
873
+ } else {
874
+ this.isMinTextBoxEmpty = false;
875
+ if (+value > this.sliderMaxValue) {
876
+ if(!this.isMaxTextBoxEmpty){
877
+ this.showSliderMinValueError = true;
878
+ this.disableSliderApplyButton = true;
879
+ }
880
+ } else if (+value < this.options.floor) {
881
+ this.showSliderMinValueError = true;
882
+ this.disableSliderApplyButton = true;
883
+ } else {
884
+ this.sliderMinValue = +value;
885
+ this.showSliderMinValueError = false;
886
+ this.showSliderMaxValueError = false;
887
+ this.disableSliderApplyButton = false;
888
+ }
889
+ }
890
+ this.showErrorForMinAndMaxValue();
891
+ }
892
+
893
+ maxValueChanged(value: string) {
894
+ console.log("max Value Changed");
895
+ if (value == null) {
896
+ this.isMaxTextBoxEmpty = true;
897
+ this.showSliderMaxValueError = false;
898
+ this.showSliderMinValueError = false;
899
+ this.disableSliderApplyButton = false;
900
+ } else {
901
+ this.isMaxTextBoxEmpty = false;
902
+ if (+value < this.sliderMinValue) {
903
+ if(!this.isMinTextBoxEmpty){
904
+ this.showSliderMaxValueError = true;
905
+ this.disableSliderApplyButton = true;
906
+ }
907
+ } else if (+value > this.options.ceil) {
908
+ this.showSliderMaxValueError = true;
909
+ this.disableSliderApplyButton = true;
910
+ } else {
911
+ this.sliderMaxValue = +value;
912
+ this.showSliderMaxValueError = false;
913
+ this.showSliderMinValueError = false;
914
+ this.disableSliderApplyButton = false;
915
+ }
916
+ }
917
+ this.showErrorForMinAndMaxValue();
918
+ }
919
+
920
+ showErrorForMinAndMaxValue(){
921
+ if(this.isMinTextBoxEmpty && this.isMaxTextBoxEmpty){
922
+ this.showSliderMinValueError = true;
923
+ this.showSliderMaxValueError = true;
924
+ this.disableSliderApplyButton = true;
925
+ }
926
+ }
927
+
928
+ sliderValueChange() {
929
+ this.sliderValue = { min: this.sliderMinValue, max: this.sliderMaxValue };
930
+ }
931
+
932
+ cancelSliderFilter() {
933
+ this.sliderValue = null;
934
+ this.closeTooltip();
935
+ }
936
+
937
+ allOptionClicked() {
938
+ if (this.allSelected == 0 || this.allSelected == 2) {
939
+ this.allSelected = 1;
940
+ this.disableCheckboxApply = false;
941
+ } else {
942
+ this.allSelected = 0;
943
+ this.disableCheckboxApply = true;
944
+ }
945
+ this.annaFilterService.allOptionsClicked(this.allSelected);
946
+ }
947
+
948
+ applyFilters() {
949
+
950
+ let isFilterChanged = false;
951
+ let isSortChanged = false;
952
+ if(this.showFilterComponent){
953
+ let currentSelectedValue = [];
954
+ let previousSelectedValue = [];
955
+
956
+ if(this.annaFilterService.tooltipSelectedMap.has(this.annaFilterService.selectedRadio)){
957
+ previousSelectedValue = this.annaFilterService.tooltipSelectedMap.get(this.annaFilterService.selectedRadio);
958
+ }
959
+ else if(this.annaFilterService.initialValueMap.has(this.annaFilterService.selectedRadio)){
960
+ previousSelectedValue = this.annaFilterService.initialValueMap.get(this.annaFilterService.selectedRadio);
961
+ }
962
+ else{
963
+ previousSelectedValue = sortBy(uniq(this.clonedTableData.map(item => item[this.annaFilterService.selectedRadio])));
964
+ this.annaFilterService.initialValueMap.set(this.annaFilterService.selectedRadio,previousSelectedValue);
965
+ }
966
+
967
+ if(this.tooltipOptions){
968
+
969
+ currentSelectedValue = sortBy(this.tooltipOptions.filter(item => item.isSelected).map(item => item.data));
970
+
971
+ if(!this.searchItem && currentSelectedValue.length == this.tooltipOptions.length && this.annaFilterService.initialValueMap.has(this.annaFilterService.selectedRadio)){
972
+ console.log("inside searchItem else condition");
973
+ currentSelectedValue = this.annaFilterService.initialValueMap.get(this.annaFilterService.selectedRadio);
974
+ }
975
+
976
+ }
977
+
978
+ if(this.searchItem){
979
+ currentSelectedValue = currentSelectedValue.map( (item:string) => this.removeBoldElementFromString(item));
980
+ }
981
+
982
+ let blankIndex = currentSelectedValue.findIndex((item: string) => item == "(Blank)");
983
+ if(blankIndex != -1){
984
+ currentSelectedValue[blankIndex] = null;
985
+ currentSelectedValue = sortBy(currentSelectedValue);
986
+ }
987
+
988
+ console.log(currentSelectedValue);
989
+ console.log(previousSelectedValue);
990
+ isFilterChanged = !isEqual(currentSelectedValue,previousSelectedValue);
991
+
992
+ if(isFilterChanged){
993
+ this.annaFilterService.reOrderAppliedFiltersState(this.clonedTableData,currentSelectedValue);
994
+ this.annaFilterService.tooltipSelectedMap.set(this.annaFilterService.selectedRadio, currentSelectedValue);
995
+ this.tableData = this.annaFilterService.filterData(this.clonedTableData, "");
996
+ this.annaSortService.noSortingAppliedData = cloneDeep(this.tableData);
997
+ }
998
+
999
+ }
1000
+
1001
+ if(this.showSortComponent){
1002
+ isSortChanged = (this.tempSortOrder != null && this.tempSortOrder != this.annaSortService.columnSortState.get(this.annaFilterService.selectedRadio));
1003
+ if(isSortChanged){
1004
+ for (let [key, value] of this.annaSortService.columnSortState.entries()) {
1005
+ this.annaSortService.columnSortState.set(key, "DEFAULT");
1006
+ }
1007
+ this.annaSortService.columnSortState.set(this.annaFilterService.selectedRadio, this.tempSortOrder);
1008
+ this.applySorting(this.annaFilterService.selectedRadio);
1009
+ }
1010
+ else if(isFilterChanged){
1011
+ this.checkIfSortingIsApplied();
1012
+ }
1013
+ }
1014
+ else if(isFilterChanged){
1015
+ this.checkIfSortingIsApplied();
1016
+ }
1017
+
1018
+ if(isFilterChanged && isSortChanged){
1019
+ this.filterAppliedToTable.emit(this.tableData);
1020
+ }
1021
+ else if(isFilterChanged){
1022
+ this.filterAppliedToTable.emit(this.tableData);
1023
+ }
1024
+ else if(isSortChanged){
1025
+ this.sortingAppliedToTable.emit(this.tableData);
1026
+ }
1027
+
1028
+ this.disableEnableEachColumnTooltipIcon();
1029
+ this.closeTooltip();
1030
+ }
1031
+
1032
+ applySorting(key: string){
1033
+ if(this.tempSortOrder == "ASC"){
1034
+ this.tableData = cloneDeep(this.annaSortService.sortDataForComponentOtherThanLurAndCsrPage(true,this.tableData,key));
1035
+ }
1036
+ else if(this.tempSortOrder == "DESC"){
1037
+ this.tableData = cloneDeep(this.annaSortService.sortDataForComponentOtherThanLurAndCsrPage(false,this.tableData,key));
1038
+ }
1039
+ else if(this.tempSortOrder == "DEFAULT"){
1040
+ this.tableData = cloneDeep(this.annaSortService.noSortingAppliedData);
1041
+ }
1042
+ }
1043
+
1044
+ revert() {
1045
+ this.tempTooltipData = cloneDeep(this.toolTipdata);
1046
+ this.annaFilterService.tooltipMap.set(this.annaFilterService.selectedRadio, this.tempTooltipData);
1047
+ this.toolTipdata = null;
1048
+ }
1049
+
1050
+ closeCheckboxFilter() {
1051
+ if (this.toolTipdata) {
1052
+ this.revert();
1053
+ }
1054
+ this.closeTooltip();
1055
+ }
1056
+
1057
+ applySliderFilter() {
1058
+
1059
+ let isFilterChanged = false;
1060
+ let isSortChanged = false;
1061
+
1062
+ if(this.showFilterComponent){
1063
+ let currentSliderData: {min:any, max: any} = {min: null , max: null};
1064
+ let previousSliderData: {min:any, max: any} = {min: "", max: ""};
1065
+
1066
+ if(this.isMinTextBoxEmpty){
1067
+ currentSliderData.min = this.options.floor;
1068
+ currentSliderData.max = this.sliderMaxValue;
1069
+ }
1070
+ else if(this.isMaxTextBoxEmpty){
1071
+ currentSliderData.max = this.options.ceil;
1072
+ currentSliderData.min = this.sliderMinValue;
1073
+ }
1074
+ else{
1075
+ currentSliderData.max = this.sliderMaxValue;
1076
+ currentSliderData.min = this.sliderMinValue;
1077
+ }
1078
+
1079
+ if(this.annaFilterService.tooltipSelectedMap.has(this.annaFilterService.selectedRadio)){
1080
+ previousSliderData = this.annaFilterService.tooltipSelectedMap.get(this.annaFilterService.selectedRadio);
1081
+ }
1082
+ else if(this.annaFilterService.initialValueMap.has(this.annaFilterService.selectedRadio)){
1083
+ previousSliderData = this.annaFilterService.initialValueMap.get(this.annaFilterService.selectedRadio);
1084
+ }
1085
+ else{
1086
+ let minValue = this.annaFilterService.returnMaxAndMinValue(this.clonedTableData, this.annaFilterService.selectedRadio, true);
1087
+ let maxValue = this.annaFilterService.returnMaxAndMinValue(this.clonedTableData, this.annaFilterService.selectedRadio, false);
1088
+ previousSliderData = { min: minValue, max: maxValue };
1089
+ this.annaFilterService.initialValueMap.set(this.annaFilterService.selectedRadio, previousSliderData);
1090
+ }
1091
+
1092
+ if(currentSliderData.min == this.options.floor && currentSliderData.max == this.options.ceil && this.annaFilterService.initialValueMap.has(this.annaFilterService.selectedRadio) ){
1093
+ currentSliderData = this.annaFilterService.initialValueMap.get(this.annaFilterService.selectedRadio);
1094
+ }
1095
+
1096
+
1097
+
1098
+ isFilterChanged = !isEqual(previousSliderData,currentSliderData);
1099
+
1100
+ if(isFilterChanged){
1101
+ this.annaFilterService.reOrderAppliedFiltersState(this.clonedTableData,currentSliderData);
1102
+ this.annaFilterService.tooltipSelectedMap.set(this.annaFilterService.selectedRadio,currentSliderData);
1103
+ this.tableData = this.annaFilterService.filterData(this.clonedTableData, "");
1104
+ this.annaSortService.noSortingAppliedData = cloneDeep(this.tableData);
1105
+ this.disableEnableEachColumnTooltipIcon();
1106
+ }
1107
+ }
1108
+
1109
+ if(this.showSortComponent){
1110
+ isSortChanged = (this.tempSortOrder != null && this.tempSortOrder != this.annaSortService.columnSortState.get(this.annaFilterService.selectedRadio));
1111
+ if(isSortChanged){
1112
+ for (let [key, value] of this.annaSortService.columnSortState.entries()) {
1113
+ this.annaSortService.columnSortState.set(key, "DEFAULT");
1114
+ }
1115
+ this.annaSortService.columnSortState.set(this.annaFilterService.selectedRadio, this.tempSortOrder);
1116
+ this.applySorting(this.annaFilterService.selectedRadio);
1117
+ }
1118
+ }
1119
+ else if(isFilterChanged){
1120
+ this.checkIfSortingIsApplied();
1121
+ }
1122
+
1123
+ if(isFilterChanged && isSortChanged){
1124
+ this.filterAppliedToTable.emit(this.tableData);
1125
+ }
1126
+ else if(isFilterChanged){
1127
+ this.filterAppliedToTable.emit(this.tableData);
1128
+ }
1129
+ else if(isSortChanged){
1130
+ this.sortingAppliedToTable.emit(this.tableData);
1131
+ }
1132
+
1133
+ this.closeTooltip();
1134
+ }
1135
+
1136
+ cancelInDateFilter() {
1137
+ this.closeTooltip();
1138
+ }
1139
+
1140
+ applyDateFilter() {
1141
+
1142
+ let isFilterChanged = false;
1143
+ let isSortChanged = false;
1144
+
1145
+ if(this.showFilterComponent){
1146
+ let currentSelectedDate = this.calendarSelection;
1147
+ let previousSelectedDate: {fromDate: any, toDate: any} = {fromDate: null, toDate: null};
1148
+
1149
+ if(this.annaFilterService.tooltipSelectedMap.has(this.annaFilterService.selectedRadio)){
1150
+ previousSelectedDate = this.annaFilterService.tooltipSelectedMap.get(this.annaFilterService.selectedRadio);
1151
+ }
1152
+ else if(this.annaFilterService.initialValueMap.has(this.annaFilterService.selectedRadio)){
1153
+ previousSelectedDate = this.annaFilterService.initialValueMap.get(this.annaFilterService.selectedRadio);
1154
+ }
1155
+ else{
1156
+ let minMaxDate;
1157
+ if(this.annaFilterService.selectedRadio == "period"){
1158
+ let minStartDate = this.annaFilterService.returnMinAndMaxDate(this.clonedTableData, "startDate");
1159
+ let maxEndDate = this.annaFilterService.returnMinAndMaxDate(this.clonedTableData,"endDate");
1160
+ minMaxDate = [minStartDate[0],maxEndDate[1]];
1161
+ }
1162
+ else{
1163
+ minMaxDate = this.annaFilterService.returnMinAndMaxDate(this.clonedTableData,this.annaFilterService.selectedRadio);
1164
+ }
1165
+ previousSelectedDate = {fromDate: minMaxDate[0], toDate: minMaxDate[1]};
1166
+ this.annaFilterService.initialValueMap.set(this.annaFilterService.selectedRadio, previousSelectedDate);
1167
+ }
1168
+
1169
+ if(currentSelectedDate.fromDate && currentSelectedDate.toDate){
1170
+ let fromDate = {year: currentSelectedDate.fromDate.year,month: currentSelectedDate.fromDate.month,day: currentSelectedDate.fromDate.day};
1171
+ let toDate = {year: currentSelectedDate.toDate.year,month: currentSelectedDate.toDate.month,day: currentSelectedDate.toDate.day};
1172
+
1173
+ if(isEqual(this.calendarMinEnabledDate,fromDate) && isEqual(this.calendarMaxEnabledDate,toDate) && this.annaFilterService.initialValueMap.has(this.annaFilterService.selectedRadio)){
1174
+ currentSelectedDate = this.annaFilterService.initialValueMap.get(this.annaFilterService.selectedRadio);
1175
+ }
1176
+ else{
1177
+ currentSelectedDate.fromDate = moment(this.annaDateTimeFormatService.convertNgbDateToMoment(currentSelectedDate.fromDate));
1178
+ currentSelectedDate.toDate = moment(this.annaDateTimeFormatService.convertNgbDateToMoment(currentSelectedDate.toDate));
1179
+ }
1180
+ isFilterChanged = !isEqual(previousSelectedDate,currentSelectedDate);
1181
+
1182
+ if(isFilterChanged){
1183
+
1184
+ this.annaFilterService.reOrderAppliedFiltersState(this.clonedTableData,currentSelectedDate);
1185
+ this.annaFilterService.tooltipSelectedMap.set(this.annaFilterService.selectedRadio,currentSelectedDate);
1186
+ this.tableData = this.annaFilterService.filterData(this.clonedTableData, "");
1187
+ this.annaSortService.noSortingAppliedData = cloneDeep(this.tableData);
1188
+ this.disableEnableEachColumnTooltipIcon();
1189
+ }
1190
+ }
1191
+
1192
+ }
1193
+
1194
+ if(this.showSortComponent){
1195
+ isSortChanged = (this.tempSortOrder != null && this.tempSortOrder != this.annaSortService.columnSortState.get(this.annaFilterService.selectedRadio));
1196
+ if(isSortChanged){
1197
+ for (let [key, value] of this.annaSortService.columnSortState.entries()) {
1198
+ this.annaSortService.columnSortState.set(key, "DEFAULT");
1199
+ }
1200
+ this.annaSortService.columnSortState.set(this.annaFilterService.selectedRadio, this.tempSortOrder);
1201
+ this.applySorting(this.annaFilterService.selectedRadio);
1202
+ }
1203
+ else if(isFilterChanged){
1204
+ this.checkIfSortingIsApplied();
1205
+ }
1206
+ }
1207
+ else if(isFilterChanged){
1208
+ this.checkIfSortingIsApplied();
1209
+ }
1210
+
1211
+ if(isFilterChanged && isSortChanged){
1212
+ this.filterAppliedToTable.emit(this.tableData);
1213
+ }
1214
+ else if(isFilterChanged){
1215
+ this.filterAppliedToTable.emit(this.tableData);
1216
+ }
1217
+ else if(isSortChanged){
1218
+ this.sortingAppliedToTable.emit(this.tableData);
1219
+ }
1220
+
1221
+ this.closeTooltip();
1222
+
1223
+ }
1224
+
1225
+ applyWeekFilter(event: any) {
1226
+
1227
+ }
1228
+
1229
+ incrementHour(arr: any[]) {
1230
+ if (arr[0] == "") {
1231
+ arr[0] = 1;
1232
+ } else if (parseInt(arr[0]) < 12) {
1233
+ arr[0] = parseInt(arr[0]) + 1;
1234
+ } else {
1235
+ arr[0] = 1;
1236
+ }
1237
+ }
1238
+
1239
+ decrementHour(arr: any[]) {
1240
+ if (arr[0] == "") {
1241
+ arr[0] = 12;
1242
+ } else if (parseInt(arr[0]) > 1) {
1243
+ arr[0] = parseInt(arr[0]) - 1;
1244
+ } else {
1245
+ arr[0] = 12;
1246
+ }
1247
+ }
1248
+
1249
+ incrementMinute(arr: any[]) {
1250
+ arr[1] = parseInt(arr[1]) + 15;
1251
+ if (parseInt(arr[1]) == 60) {
1252
+ arr[1] = "00";
1253
+ } else if (parseInt(arr[1]) == 0) {
1254
+ arr[1] = "00";
1255
+ }
1256
+ else if(parseInt(arr[1]) > 60){
1257
+ let res = parseInt(arr[1]) - 60;
1258
+ arr[1] = res < 10 ? `0${res}` : res.toString();
1259
+ }
1260
+ }
1261
+
1262
+ decrementMinute(arr: any) {
1263
+ arr[1] = parseInt(arr[1]) - 15;
1264
+ if (parseInt(arr[1]) < 0) {
1265
+ let res = 60 + parseInt(arr[1]);
1266
+ arr[1] = res;
1267
+ } else if (parseInt(arr[1]) == 0) {
1268
+ arr[1] = "00";
1269
+ }
1270
+ else if(arr[1] < 10){
1271
+ arr[1]= `0${arr[1]}`;
1272
+ }
1273
+ }
1274
+
1275
+ changeStartTimeHour(increment: boolean) {
1276
+ if (increment) {
1277
+ this.incrementHour(this.selectedFromTime);
1278
+ } else {
1279
+ this.decrementHour(this.selectedFromTime);
1280
+ }
1281
+ this.startTimeHourChange(this.selectedFromTime[0].toString());
1282
+ // this.disableTimeFilterApplyButton();
1283
+ }
1284
+
1285
+ changeEndTimeHour(increment: boolean) {
1286
+ if (increment) {
1287
+ this.incrementHour(this.selectedToTime);
1288
+ } else {
1289
+ this.decrementHour(this.selectedToTime);
1290
+ }
1291
+ this.endTimeHourChange(this.selectedToTime[0].toString());
1292
+ // this.disableTimeFilterApplyButton();
1293
+ }
1294
+
1295
+ changeEndTimeMinute(increment: boolean) {
1296
+ if (increment) {
1297
+ this.incrementMinute(this.selectedToTime);
1298
+ } else {
1299
+ this.decrementMinute(this.selectedToTime);
1300
+ }
1301
+ this.endTimeMinChange(this.selectedToTime[1].toString());
1302
+ // this.disableTimeFilterApplyButton();
1303
+ }
1304
+
1305
+ changeStartTimeMinute(increment: boolean) {
1306
+ if (increment) {
1307
+ this.incrementMinute(this.selectedFromTime);
1308
+ } else {
1309
+ this.decrementMinute(this.selectedFromTime);
1310
+ }
1311
+ this.startTimeMinChange(this.selectedFromTime[1].toString());
1312
+ // this.disableTimeFilterApplyButton();
1313
+ }
1314
+
1315
+ applyTimeFilters() {
1316
+
1317
+ let isFilterChanged = false;
1318
+ let isSortChanged = false;
1319
+
1320
+ if(this.showFilterComponent){
1321
+ let currentSelectedTimeFilter: {fromTime: string, toTime:string, includeMulti: boolean, includeZero: boolean, includeTimeRange: boolean} = {
1322
+ fromTime: null,
1323
+ toTime: null,
1324
+ includeMulti: false,
1325
+ includeZero: false,
1326
+ includeTimeRange: false,
1327
+ };
1328
+
1329
+ let previousSelectedTimeFilter;
1330
+
1331
+ if(this.annaFilterService.tooltipSelectedMap.has(this.annaFilterService.selectedRadio)){
1332
+ previousSelectedTimeFilter = this.annaFilterService.tooltipSelectedMap.get(this.annaFilterService.selectedRadio);
1333
+ }
1334
+ else if(this.annaFilterService.initialValueMap.has(this.annaFilterService.selectedRadio)){
1335
+ previousSelectedTimeFilter = this.annaFilterService.initialValueMap.get(this.annaFilterService.selectedRadio);
1336
+ }
1337
+
1338
+ let fromTime24HrFormatArr = this.annaDateTimeFormatService.convertTotwentyFourHrsFormat(
1339
+ this.selectedFromTime[0] + ":" + this.selectedFromTime[1] + " " + this.selectedFromTime[2],
1340
+ true
1341
+ );
1342
+ let fromTime24HrFormat = fromTime24HrFormatArr[0] + ":" + fromTime24HrFormatArr[1] + ":00";
1343
+ let toTime24HrFormatArr = this.annaDateTimeFormatService.convertTotwentyFourHrsFormat(
1344
+ this.selectedToTime[0] + ":" + this.selectedToTime[1] + " " + this.selectedToTime[2],
1345
+ true
1346
+ );
1347
+ let toTime24HrFormat = toTime24HrFormatArr[0] + ":" + toTime24HrFormatArr[1] + ":00";
1348
+
1349
+ currentSelectedTimeFilter = { fromTime: fromTime24HrFormat, toTime: toTime24HrFormat, includeMulti: this.multiTimeCheckboxChecked,
1350
+ includeZero: this.zeroTimeCheckboxChecked, includeTimeRange: this.enterTimeCheckboxChecked};
1351
+
1352
+ isFilterChanged = !isEqual(previousSelectedTimeFilter, currentSelectedTimeFilter);
1353
+
1354
+
1355
+ if(isFilterChanged){
1356
+ let isFiltered = this.annaFilterService.reOrderAppliedFiltersState(this.clonedTableData,currentSelectedTimeFilter);
1357
+ this.annaFilterService.tooltipSelectedMap.set(this.annaFilterService.selectedRadio,currentSelectedTimeFilter);
1358
+ this.tableData = this.annaFilterService.filterData(this.clonedTableData, "");
1359
+
1360
+ if(!isFiltered){
1361
+ this.annaFilterService.tooltipSelectedMap.delete(this.annaFilterService.selectedRadio);
1362
+ }
1363
+ this.annaSortService.noSortingAppliedData = cloneDeep(this.tableData);
1364
+ this.disableEnableEachColumnTooltipIcon();
1365
+ }
1366
+
1367
+
1368
+
1369
+ }
1370
+
1371
+
1372
+ if(this.showSortComponent){
1373
+ isSortChanged = (this.tempSortOrder != null && this.tempSortOrder != this.annaSortService.columnSortState.get(this.annaFilterService.selectedRadio));
1374
+ if(isSortChanged){
1375
+ for (let [key, value] of this.annaSortService.columnSortState.entries()) {
1376
+ this.annaSortService.columnSortState.set(key, "DEFAULT");
1377
+ }
1378
+ this.annaSortService.columnSortState.set(this.annaFilterService.selectedRadio, this.tempSortOrder);
1379
+ this.applySorting(this.annaFilterService.selectedRadio);
1380
+ }
1381
+ else if(isFilterChanged){
1382
+ this.checkIfSortingIsApplied();
1383
+ }
1384
+ }
1385
+ else if(isFilterChanged){
1386
+ this.checkIfSortingIsApplied();
1387
+ }
1388
+
1389
+ if(isFilterChanged && isSortChanged){
1390
+ this.filterAppliedToTable.emit(this.tableData);
1391
+ }
1392
+ else if(isFilterChanged){
1393
+ this.filterAppliedToTable.emit(this.tableData);
1394
+ }
1395
+ else if(isSortChanged){
1396
+ this.sortingAppliedToTable.emit(this.tableData);
1397
+ }
1398
+
1399
+ this.closeTooltip();
1400
+
1401
+ }
1402
+
1403
+ closeTimeFilter() {
1404
+ this.selectedFromTime = cloneDeep(this.clonedSelectedFromTime);
1405
+ this.selectedToTime = cloneDeep(this.clonedSelectedToTime);
1406
+ this.closeTooltip();
1407
+ }
1408
+
1409
+ disableTimeFilterApplyButton() {
1410
+ let timeFormat = "HH:mm:ss";
1411
+
1412
+ let startTime24HrFormatArr = this.annaDateTimeFormatService.convertTotwentyFourHrsFormat(
1413
+ this.selectedFromTime[0] + ":" + this.selectedFromTime[1] + " " + this.selectedFromTime[2],
1414
+ true
1415
+ );
1416
+ let startTime24HrFormat = startTime24HrFormatArr[0] + ":" + startTime24HrFormatArr[1] + ":00";
1417
+ let endTime24HrFormatArr = this.annaDateTimeFormatService.convertTotwentyFourHrsFormat(
1418
+ this.selectedToTime[0] + ":" + this.selectedToTime[1] + " " + this.selectedToTime[2],
1419
+ true
1420
+ );
1421
+ let endTime24HrFormat = endTime24HrFormatArr[0] + ":" + endTime24HrFormatArr[1] + ":00";
1422
+
1423
+ this.disableTimeFilterApplyBtn = moment(startTime24HrFormat, timeFormat).isAfter(moment(endTime24HrFormat, timeFormat));
1424
+
1425
+ if (!this.multiTimeCheckboxChecked && !this.zeroTimeCheckboxChecked && !this.enterTimeCheckboxChecked) {
1426
+ this.disableTimeFilterApplyBtn = true;
1427
+ }
1428
+ }
1429
+
1430
+ sortedData(event: any) {
1431
+ if (event.type == "none") {
1432
+ this.tableData = this.annaFilterService.filterData(this.clonedTableData, "");
1433
+ } else {
1434
+ this.tableData = event.data;
1435
+ }
1436
+ this.sortingAppliedToTable.emit(this.tableData);
1437
+ // this.generateTableDataWrapper();
1438
+ }
1439
+
1440
+ checkIfSortingIsApplied() {
1441
+ for(let [key,value] of this.annaSortService.columnSortState.entries()){
1442
+ if(value == "ASC"){
1443
+ this.tableData = cloneDeep(this.annaSortService.sortDataForComponentOtherThanLurAndCsrPage(true,this.tableData,key));
1444
+ }
1445
+ else if(value == "DESC"){
1446
+ this.tableData = cloneDeep(this.annaSortService.sortDataForComponentOtherThanLurAndCsrPage(false,this.tableData,key));
1447
+ }
1448
+ }
1449
+ }
1450
+
1451
+ // applySorting(sortComponentArr: AnnaSortComponent[], appliedKey: string, isAsc: boolean) {
1452
+ // sortComponentArr.forEach((component) => {
1453
+ // if (component.sortBy === appliedKey) {
1454
+ // this.setSortComponentDataProperty(component);
1455
+ // isAsc ? component.sortByAscending() : component.sortByDescending();
1456
+ // }
1457
+ // });
1458
+ // }
1459
+
1460
+ // setSortComponentDataProperty(sortComponent: AnnaSortComponent) {
1461
+ // sortComponent.data = this.tableData;
1462
+ // sortComponent.clonedData = cloneDeep(this.tableData);
1463
+ // }
1464
+
1465
+ disableEnableEachColumnTooltipIcon() {
1466
+ this.tableHeaders.forEach(header => {
1467
+
1468
+ header.headerInfo.forEach(item => {
1469
+ if (item.showTooltipIcon) {
1470
+
1471
+ let values = [];
1472
+ item.disableTooltipIcon = true;
1473
+
1474
+ item.filterSortObjectKeys.forEach(key => {
1475
+
1476
+ if(key == "period"){
1477
+ let uniqStartDate = uniq(this.tableData.map((u: { [x: string]: any; }) => u["startDate"]));
1478
+ let uniqEndDate = uniq(this.tableData.map((u: { [x: string]: any; }) => u["endDate"]));
1479
+
1480
+ item.disableTooltipIcon = (uniqStartDate.length > 1 || uniqEndDate.length > 1) ? false : true;
1481
+ }
1482
+ else{
1483
+ values = this.tableData.map((u: { [x: string]: any; }) => u[key]);
1484
+ if(uniq(values).filter(n => n!=null).length > 1){
1485
+ item.disableTooltipIcon = false;
1486
+ }
1487
+ }
1488
+
1489
+ })
1490
+ }
1491
+
1492
+ });
1493
+ });
1494
+ }
1495
+
1496
+ ngAfterViewInit() {
1497
+ this.annaGenericTableService.virtualScrollSubject.subscribe((val) =>{
1498
+ this.isScrolledLeft = document.getElementsByClassName("anna-table-virtual-scroll-viewport")[0].scrollLeft > 0;
1499
+ this.cdRef.detectChanges();
1500
+ });
1501
+ }
1502
+
1503
+ dataRowClicked(rowData: any) {
1504
+ this.rowClicked.emit(rowData);
1505
+ }
1506
+
1507
+ radioButtonClicked(data: any, action: string, isDisabled: boolean) {
1508
+ if (!isDisabled) {
1509
+ this.radioButtonSelected.emit({ data, action });
1510
+ }
1511
+ }
1512
+
1513
+ bindTheValueToSellerGroupTooltip(sellerGroupHierarchy: SellerGroupHierarchy[], tooltip: any): void {
1514
+ if (this.hierarchyTooltip && this.hierarchyTooltip.open) {
1515
+ this.hierarchyTooltip.close();
1516
+ }
1517
+ this.sellerGroupHierarchy = sellerGroupHierarchy;
1518
+ this.hierarchyTooltip = tooltip;
1519
+ this.hierarchyTooltip.open();
1520
+ }
1521
+
1522
+ iconClicked(rowData: any,iconClass: string){
1523
+ this.gtIconClicked.emit({data: rowData,iconClass: iconClass});
1524
+ }
1525
+
1526
+ svgIconClicked(rowData: any,key: string){
1527
+ this.gtSVGIconClicked.emit({data: rowData,key: key});
1528
+ }
1529
+
1530
+ textActionClicked(rowData: any,id: number){
1531
+ this.gtTextActionClicked.emit({data:rowData,id});
1532
+ }
1533
+
1534
+ viewDetailsClicked(rowData: any){
1535
+ this.gtViewDetailClicked.emit({data:rowData});
1536
+ }
1537
+
1538
+ setColumnSortStateMap(){
1539
+ console.log("set column sort state map");
1540
+ this.tableHeaders.forEach(column => {
1541
+ column.headerInfo.forEach( (header) => {
1542
+ if(header.showTooltipIcon && header.isSortRequired){
1543
+ header.isSortRequired.forEach( (item,index) => {
1544
+ if(item){
1545
+ this.annaSortService.columnSortState.set(header.filterSortObjectKeys[index], "DEFAULT");
1546
+ }
1547
+ })
1548
+ }
1549
+ })
1550
+ });
1551
+ }
1552
+
1553
+ storeSortTypeInTempVariable(event: SortType){
1554
+ this.tempSortOrder = event;
1555
+ }
1556
+
1557
+ unCheckAllCheckbox(){
1558
+ this.tooltipOptions.forEach(item => item.isSelected = false);
1559
+ this.disableSelectAll = false;
1560
+ this.disableClearAll = true;
1561
+ this.disableCheckboxApply = true;
1562
+ }
1563
+
1564
+ selectAllCheckbox(){
1565
+ this.tooltipOptions.forEach(item => item.isSelected = true);
1566
+ this.disableSelectAll = true;
1567
+ this.disableClearAll = false;
1568
+ this.disableCheckboxApply = false;
1569
+ }
1570
+
1571
+ searchForTheItem(str: string){
1572
+ if(str){
1573
+ this.tooltipOptions = cloneDeep(this.clonedTooltipOptions.filter(item => item.data.toLowerCase().includes(str.toLowerCase())));
1574
+ this.tooltipOptions.forEach(element => {
1575
+ element.data = this.boldString(element.data,str);
1576
+ });
1577
+
1578
+ if(this.tooltipOptions.length > 0){
1579
+ this.tooltipOptions.forEach(item => item.isSelected = true);
1580
+ this.disableSelectAll = true;
1581
+ this.disableClearAll = false;
1582
+ this.disableCheckboxApply = false;
1583
+
1584
+ }
1585
+ else{
1586
+ this.disableCheckboxApply = true;
1587
+ this.disableClearAll = true;
1588
+ this.disableSelectAll = true;
1589
+ }
1590
+ }
1591
+ else{
1592
+ this.tooltipOptions = cloneDeep(this.clonedTooltipOptions);
1593
+ let unselectedItems = this.tooltipOptions.filter(item => !item.isSelected);
1594
+ let selectedItems = this.tooltipOptions.filter(item => item.isSelected);
1595
+ this.disableSelectAll = unselectedItems.length == 0;
1596
+ this.disableClearAll = selectedItems.length == 0;
1597
+ }
1598
+ }
1599
+
1600
+ boldString(str: string, find: string){
1601
+ var re = new RegExp(find, 'g');
1602
+ return str.replace(re, '<b>'+find+'</b>');
1603
+ }
1604
+
1605
+ removeBoldElementFromString(originalString: string){
1606
+ let firstRegExp = new RegExp('<b>','g');
1607
+ let secondRegExp = new RegExp('</b>','g');
1608
+
1609
+ let ret = originalString.replace(firstRegExp,'');
1610
+ console.log(ret);
1611
+ console.log(ret.replace(secondRegExp,''));
1612
+ return ret.replace(secondRegExp,'');
1613
+ }
1614
+
1615
+ clearSearchedItem(){
1616
+ this.searchItem = "";
1617
+ this.searchForTheItem("");
1618
+ }
1619
+
1620
+ calendarDateChanged(event: any){
1621
+ this.calendarSelection = event;
1622
+ this.enableDisableCalendarApplyBtn();
1623
+ }
1624
+
1625
+ enableDisableCalendarApplyBtn() {
1626
+ this.disableCalendarApplyBtn = !(this.calendarSelection.fromDate && this.calendarSelection.toDate);
1627
+ }
1628
+
1629
+ setInitialValueMapForTimeFilter(key: string) {
1630
+ let data = this.clonedTableData.filter(
1631
+ (obj) => !["", "-", null, "0", "<multi>"].includes(obj[key]));
1632
+
1633
+ let timeArr = map(data, key);
1634
+ timeArr.sort((a, b) => {
1635
+ return this.annaDateTimeFormatService.sortByTimeAscending(a, b);
1636
+ });
1637
+
1638
+ let obj = {
1639
+ fromTime: timeArr[0],
1640
+ toTime: timeArr[timeArr.length - 1],
1641
+ includeMulti: false,
1642
+ includeZero: false,
1643
+ includeTimeRange: false
1644
+ };
1645
+
1646
+ if (
1647
+ this.gtGeneralConfig.component === "SPOTDETAILS" ||
1648
+ this.gtGeneralConfig.component === "EXCLUDEINVENTORYPOPUP"
1649
+ ) {
1650
+ let includeMulti =
1651
+ this.clonedTableData.findIndex((obj) => obj[key] == "<multi>") !=
1652
+ -1;
1653
+ let includeZero =
1654
+ this.clonedTableData.findIndex((obj) => obj[key] == "0") != -1;
1655
+ let includeTimeRange =
1656
+ this.clonedTableData.findIndex(
1657
+ (obj) => obj[key] != "0" && obj[key] != "<multi>"
1658
+ ) != -1;
1659
+
1660
+ let obj = {
1661
+ fromTime: timeArr[0],
1662
+ toTime: timeArr[timeArr.length - 1],
1663
+ includeMulti: includeMulti,
1664
+ includeZero: includeZero,
1665
+ includeTimeRange: includeTimeRange,
1666
+ };
1667
+ this.annaFilterService.initialValueMap.set(key, obj);
1668
+ }
1669
+ else if (this.gtGeneralConfig.component === "RATING") {
1670
+ this.setInitialValueMapForRatingPageTimeFilter(key);
1671
+ } else {
1672
+ this.annaFilterService.initialValueMap.set(key, obj);
1673
+ }
1674
+ }
1675
+
1676
+ setInitialValueMapForRatingPageTimeFilter(key: string){
1677
+ let includeMulti =
1678
+ this.clonedTableData.findIndex((obj) => obj[key][0] == "<multi>") !=
1679
+ -1;
1680
+ let includeZero =
1681
+ this.clonedTableData.findIndex((obj) => obj[key][0] == "0") != -1;
1682
+ let includeTimeRange =
1683
+ this.clonedTableData.findIndex(
1684
+ (obj) => obj[key][0] != "0" && obj[key][0] != "<multi>"
1685
+ ) != -1;
1686
+
1687
+ let startTimeArr = map(this.clonedTableData, "startTime");
1688
+ let endTimeArr = map(this.clonedTableData, "endTime");
1689
+
1690
+ startTimeArr.sort((a, b) => {
1691
+ return this.annaDateTimeFormatService.sortByTimeAscending(a, b);
1692
+ });
1693
+
1694
+ endTimeArr.sort((a, b) => {
1695
+ return this.annaDateTimeFormatService.sortByTimeDescending(a, b);
1696
+ });
1697
+
1698
+ let obj = {
1699
+ fromTime: startTimeArr[0],
1700
+ toTime: endTimeArr[0],
1701
+ includeMulti: includeMulti,
1702
+ includeZero: includeZero,
1703
+ includeTimeRange: includeTimeRange,
1704
+ };
1705
+ this.annaFilterService.initialValueMap.set(key, obj);
1706
+ }
1707
+
1708
+ startTimeHourChange(val: string){
1709
+ if(val.length == 0 || 1 > parseInt(val) || parseInt(val) > 12){
1710
+ this.startTimeHourErr = true;
1711
+ }
1712
+ else{
1713
+ this.startTimeHourErr = false;
1714
+ }
1715
+ this.disableTimeFilterApplyButton();
1716
+ }
1717
+
1718
+ startTimeMinChange(val: string){
1719
+ if(val.length != 2 || 0 > parseInt(val) || parseInt(val) > 59){
1720
+ this.startTimeMinErr = true;
1721
+ }
1722
+ else{
1723
+ this.startTimeMinErr = false;
1724
+ }
1725
+ this.disableTimeFilterApplyButton();
1726
+ }
1727
+
1728
+ endTimeHourChange(val: string){
1729
+ if(val.length == 0 || 1 > parseInt(val) || parseInt(val) > 12){
1730
+ this.endTimeHourErr = true;
1731
+ }
1732
+ else{
1733
+ this.endTimeHourErr = false;
1734
+ }
1735
+ this.disableTimeFilterApplyButton();
1736
+ }
1737
+
1738
+ endTimeMinChange(val: string){
1739
+ if(val.length != 2 || 0 > parseInt(val) || parseInt(val) > 59){
1740
+ this.endTimeMinErr = true;
1741
+ }
1742
+ else{
1743
+ this.endTimeMinErr = false;
1744
+ }
1745
+ this.disableTimeFilterApplyButton();
1746
+ }
1747
+
1748
+ }