@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,689 @@
1
+ // Angular import statements
2
+ import { Options } from '@angular-slider/ngx-slider';
3
+ import { Injectable } from "@angular/core";
4
+
5
+ // Third party import statements
6
+ import { min, max, map, sortBy, uniq, cloneDeep, isEqual } from "lodash-es";
7
+ import moment from "moment";
8
+
9
+ // User defined import statements
10
+ import { AllSelectedStatus, tooltipModelForColumnLevelFiltering } from "../models/anna-tooltip.model";
11
+ import { SortType } from '../public-api';
12
+ import { AnnaDateTimeFormatService, NgbDateType } from './anna-date-time-format.service';
13
+ import { AnnaSortService } from './anna-sort.service';
14
+
15
+ @Injectable({
16
+ providedIn: 'root'
17
+ })
18
+ export class AnnaFilterService {
19
+
20
+ tooltipMap = new Map();
21
+ tooltipSelectedMap = new Map();
22
+ initialValueMap: Map<string, any>;
23
+ translateFunc: string;
24
+ selectedRadio: string;
25
+ subRadioButton: string;
26
+
27
+ calendarSet: Set<string>;
28
+ sliderSet: Set<string>;
29
+ timeSet: Set<string>;
30
+
31
+ includeMultiTime: boolean;
32
+ includeZeroTime: boolean;
33
+ includeTimeRange: boolean;
34
+
35
+ appliedFiltersArray: string[] = [];
36
+ flightDateRange: { minSelectedDate: any, maxSelectedDate: any };
37
+ sliderData: { min: any, max: any };
38
+ ngxSliderObj: Options;
39
+ sliderCurrencySet = new Set(["booked","cpp","cpm","rcvPreempt","osPreempt","postedAdu","scheduledAdu","audienceDeficit","Rate"]);
40
+
41
+
42
+ public static bufferSize = 20;
43
+
44
+ constructor(private dateTimeFormatService: AnnaDateTimeFormatService, private annaSortService: AnnaSortService) {
45
+ console.log("AnnaFilterService service created.")
46
+ const sliderArr = [
47
+ "rcvPreempt",
48
+ "osPreempt",
49
+ "rcvUnderDly",
50
+ "postedAudPercent",
51
+ "booked",
52
+ "spots",
53
+ "grp",
54
+ "cpp",
55
+ "imps",
56
+ "cpm",
57
+ "osUnderDly",
58
+ "totalWeeks",
59
+ "WeekNumber",
60
+ "Rate",
61
+ "OrderedRatingsOrImpressions",
62
+ "PostedRatingsOrImpressions", ,
63
+ "postedAudPercent",
64
+ "postedAdu",
65
+ "scheduledAdu",
66
+ "audienceDeficit",
67
+ "offeredMGs",
68
+ "outstandingPE",
69
+ "offeredADUs",
70
+ "udDeficitValue",
71
+ "bookedValue",
72
+ "bookedSpots",
73
+ "userChanges"
74
+ ];
75
+ const calendarArr = ["period", "AirDate", "flightStartDate", "flightEndDate","date", "startDate", "endDate"];
76
+ const timeArr = ["StartTimeForFilter", "EndTimeForFilter",
77
+ "start_time_for_filter", "end_time_for_filter", "startEndTimeMulti", "startEndTime"];
78
+ this.sliderSet = new Set(sliderArr);
79
+ this.calendarSet = new Set(calendarArr);
80
+ this.timeSet = new Set(timeArr);
81
+ }
82
+
83
+ returnMaxAndMinValue(data: any[], key: string, isMin: boolean) {
84
+ data = data.filter((obj) => !["", "-", null].includes(obj[key]));
85
+ const values = data.map((x) => x[key]);
86
+ let valueToReturn = isMin ? min(values) : max(values);
87
+ return valueToReturn;
88
+ }
89
+
90
+ returnMinAndMaxDate(data: any[], key: string) {
91
+ data = data.filter((obj) => !["", "-", null].includes(obj[key]));
92
+ let DateArr = data.map((obj) => moment(obj[key]));
93
+ let minDate = moment.min(DateArr);
94
+ let maxDate = moment.max(DateArr);
95
+ return [minDate, maxDate];
96
+ }
97
+
98
+ isTooltipActive(header: string[], sortMap: Map<string, SortType>): boolean {
99
+ let set: Set<string> = new Set(this.appliedFiltersArray);
100
+ if(header.length == 1){
101
+ return ( (sortMap.size > 0 && sortMap.get(header[0]) != "DEFAULT") || set.has(header[0]));
102
+ }
103
+ return ( (sortMap.size > 0 && sortMap.get(header[0]) != "DEFAULT") || (sortMap.size > 0 && sortMap.get(header[1]) != "DEFAULT") || set.has(header[0]) || set.has(header[1]));
104
+
105
+ }
106
+
107
+ clearColumnFilter() {
108
+ if(this.tooltipSelectedMap.has(this.selectedRadio)){
109
+ this.tooltipSelectedMap.delete(this.selectedRadio);
110
+ let appliedFilterSet: Set<string> = new Set(this.appliedFiltersArray);
111
+ appliedFilterSet.delete(this.selectedRadio);
112
+ this.appliedFiltersArray = [...appliedFilterSet];
113
+ }
114
+
115
+ if(this.annaSortService.columnSortState.has(this.selectedRadio)){
116
+ this.annaSortService.columnSortState.set(this.selectedRadio,"DEFAULT");
117
+ }
118
+
119
+ }
120
+
121
+ populateSliderTooltip(completeData: any[], filteredData: any[]) {
122
+ let minValue;
123
+ let maxValue;
124
+ if (
125
+ this.appliedFiltersArray.length > 0 &&
126
+ this.appliedFiltersArray[this.appliedFiltersArray.length - 1] === this.selectedRadio
127
+ ) {
128
+ let subsetData;
129
+ let subfilterApplied = false;
130
+ //applying all filterexcept the current filter
131
+ if (this.selectedRadio === "postedAdu" && this.tooltipSelectedMap.has("isAudRequired")) {
132
+ this.tooltipSelectedMap.delete("isAudRequired");
133
+ subfilterApplied = true;
134
+ }
135
+ subsetData = this.filterData(completeData, this.selectedRadio);
136
+ //need to find min and max value for
137
+ minValue = this.returnMaxAndMinValue(subsetData, this.selectedRadio, true);
138
+ maxValue = this.returnMaxAndMinValue(subsetData, this.selectedRadio, false);
139
+ if (this.selectedRadio === "postedAdu" && subfilterApplied) {
140
+ this.tooltipSelectedMap.set("isAudRequired", [false]);
141
+ }
142
+ } else {
143
+ minValue = this.returnMaxAndMinValue(filteredData, this.selectedRadio, true);
144
+ maxValue = this.returnMaxAndMinValue(filteredData, this.selectedRadio, false);
145
+ }
146
+ this.ngxSliderObj = this.setOptionValues(minValue, maxValue);
147
+ if (this.translateFunc === "normal") {
148
+ this.ngxSliderObj.translate = this.normalTranslateFunction;
149
+ } else if (this.translateFunc === "percent") {
150
+ this.ngxSliderObj.translate = this.percentTranslateFunction;
151
+ } else if (this.translateFunc === "currency") {
152
+ this.ngxSliderObj.translate = this.currencyTranslateFunction;
153
+ }
154
+ return this.ngxSliderObj;
155
+ }
156
+
157
+ setOptionValues(minValue: number, maxValue: number) {
158
+ return {
159
+ floor: minValue,
160
+ ceil: maxValue,
161
+ disabled: true,
162
+ translate: this.normalTranslateFunction
163
+ };
164
+ }
165
+
166
+ percentTranslateFunction = (data: number): string => {
167
+ const val = data.toFixed(1) + "%";
168
+ return val;
169
+ };
170
+
171
+ currencyTranslateFunction = (data: number): string => {
172
+ if (data >= 1000) {
173
+ const val = (data / 1000).toFixed(1) + "k";
174
+ return "$" + val;
175
+ } else if (data != Math.floor(data)) {
176
+ return data.toFixed(1).toString();
177
+ }
178
+ return "$" + data;
179
+ };
180
+
181
+ normalTranslateFunction = (data: number): string => {
182
+ if (data >= 1000) {
183
+ const val = (data / 1000).toFixed(1) + "k";
184
+ return val;
185
+ } else if (data != Math.floor(data)) {
186
+ return data.toFixed(1).toString();
187
+ }
188
+ return data.toString();
189
+ };
190
+
191
+ populateTooltip(selectedColumnName: string, completeData: any[], filteredData: any[]) {
192
+ let tooltipData;
193
+
194
+ if (this.appliedFiltersArray.length === 0) {
195
+ tooltipData = this.populateTooltipDataBasedOnSelectedRadio([selectedColumnName], completeData);
196
+ tooltipData.forEach((item: { isHidden: boolean }) => (item.isHidden = false));
197
+ } else if (selectedColumnName === this.appliedFiltersArray[this.appliedFiltersArray.length - 1]) {
198
+ let subsetData = this.filterData(completeData, selectedColumnName); //filter the data without applying the latest filter
199
+ tooltipData = this.showHideFilterCheckbox(subsetData, selectedColumnName);
200
+ } else {
201
+ //if it is not the latest filter
202
+ //then filtered Data will be used
203
+ //create the option data
204
+ if (!this.tooltipMap.has(selectedColumnName)) {
205
+ this.populateTooltipDataBasedOnSelectedRadio([selectedColumnName], completeData);
206
+ }
207
+
208
+ tooltipData = this.showHideFilterCheckbox(filteredData, selectedColumnName);
209
+ }
210
+ return tooltipData;
211
+ }
212
+
213
+ populateTooltipDataBasedOnSelectedRadio(value: string[], originalData: any) {
214
+ //if the initial tooltip data is already present fetch from the map
215
+ if (this.tooltipMap.has(value[0])) {
216
+ return this.tooltipMap.get(value[0]);
217
+ } else {
218
+ //get the unique values from the column and save it in the map
219
+ this.selectedRadio = value[0];
220
+ const data = sortBy(originalData.map((u: any) => u[this.selectedRadio])).filter((n:any) => n !== null); //sorting the data in alphabetical order
221
+ const dataSet = new Set(data); //created a set from the data
222
+ const toolTipdata = [...dataSet].map((x: string) => new tooltipModelForColumnLevelFiltering(x));
223
+ this.tooltipMap.set(value[0], toolTipdata); //setting the key value pair in the tooltipMap
224
+ this.tooltipSelectedMap.set(value[0], map(toolTipdata, "data")); //setting the key value pair in tooltipSelectedMap
225
+ return toolTipdata;
226
+ }
227
+ }
228
+
229
+ showHideFilterCheckbox(arr: any[], selectedColumnName: string) {
230
+ let currentSubsetData = uniq(arr.map((u) => u[selectedColumnName]));
231
+
232
+ //get the initial tooltip Data
233
+ let tooltipData = this.tooltipMap.get(selectedColumnName);
234
+
235
+ //show or hide the value
236
+ tooltipData.forEach((value: { data: string | number; isHidden: boolean; }) => {
237
+ //if the element is not present then hide the element
238
+ let elementToFindIndex = currentSubsetData.findIndex((n: string | number) => n === value.data);
239
+ if (elementToFindIndex === -1) {
240
+ value.isHidden = true;
241
+ } else {
242
+ //show the element
243
+ value.isHidden = false;
244
+ }
245
+ });
246
+
247
+ return tooltipData;
248
+ }
249
+
250
+ isAllOptionsSelected() {
251
+ let allSelected;
252
+ let totalOptionsCount = this.tooltipMap.get(this.selectedRadio).filter((x: any) => !x.isHidden).length;
253
+ let selectedOptionsCount = this.tooltipMap.get(this.selectedRadio).filter((x: any) => !x.isHidden && x.isSelected).length;
254
+ if (selectedOptionsCount === 0) {
255
+ allSelected = AllSelectedStatus.none;
256
+ } else if (selectedOptionsCount > 0 && selectedOptionsCount < totalOptionsCount) {
257
+ allSelected = AllSelectedStatus.fewSelected;
258
+ } else {
259
+ allSelected = AllSelectedStatus.allSelected;
260
+ }
261
+ return allSelected;
262
+ }
263
+
264
+ populateDatePickerTooltipWithData(completeData: any[], filteredData: any[]) {
265
+ let enabledDates;
266
+ //some filter is applied and the latest filter is the date filter
267
+ if (
268
+ this.appliedFiltersArray.length > 0 &&
269
+ this.appliedFiltersArray[this.appliedFiltersArray.length - 1] === this.selectedRadio
270
+ ) {
271
+ let subsetData;
272
+ //applying all filterexcept thec current filter
273
+ if (this.selectedRadio === "period") {
274
+ subsetData = this.filterData(completeData, "period");
275
+ let minStartDate = this.returnMinAndMaxDate(subsetData, "startDate");
276
+ let maxEndDate = this.returnMinAndMaxDate(subsetData, "endDate");
277
+ enabledDates = { minStartDate: minStartDate[0], maxEndDate: maxEndDate[1] };
278
+ } else if (this.selectedRadio === "AirDate" || this.selectedRadio === "flightStartDate" ||
279
+ this.selectedRadio === "flightEndDate" || this.selectedRadio == "date") {
280
+ subsetData = this.filterData(completeData, this.selectedRadio);
281
+ let minAndMaxDate = this.returnMinAndMaxDate(subsetData, this.selectedRadio);
282
+ enabledDates = { minStartDate: minAndMaxDate[0], maxEndDate: minAndMaxDate[1] };
283
+ } else {
284
+ subsetData = this.filterData(completeData, this.selectedRadio);
285
+ //need to find min and max date for start and end date
286
+ //enabledDates is an arr of minDate and maxDate
287
+ enabledDates = this.returnMinAndMaxDate(subsetData, this.selectedRadio);
288
+ }
289
+ } else {
290
+ if (this.selectedRadio === "period") {
291
+ let minStartDate = this.returnMinAndMaxDate(filteredData, "startDate");
292
+ let maxEndDate = this.returnMinAndMaxDate(filteredData, "endDate");
293
+ enabledDates = { minStartDate: minStartDate[0], maxEndDate: maxEndDate[1] };
294
+ } else if (this.selectedRadio === "AirDate" || this.selectedRadio === "flightStartDate" ||
295
+ this.selectedRadio === "flightEndDate" || this.selectedRadio == "date") {
296
+ let minAndMaxDate = this.returnMinAndMaxDate(filteredData, this.selectedRadio);
297
+ enabledDates = { minStartDate: minAndMaxDate[0], maxEndDate: minAndMaxDate[1] };
298
+ } else {
299
+ //need to find min and max date for start and end date.
300
+ // enabledDates is an arr of minDate and maxDate
301
+ enabledDates = this.returnMinAndMaxDate(filteredData, this.selectedRadio);
302
+ }
303
+ }
304
+ return enabledDates;
305
+ }
306
+
307
+ findUniqueDatesWithData(data: any[]) {
308
+ let uniqueDates = uniq(data.map((u) => u["date"]));
309
+ let uniqueDatesInNgbDateFormat: NgbDateType[] = [];
310
+ uniqueDates.forEach((date: any) => {
311
+ uniqueDatesInNgbDateFormat.push(
312
+ this.dateTimeFormatService.convertToNgbDateStandardFormat(moment(date, "MM/DD/YY").format("MM/DD/YYYY"))
313
+ );
314
+ });
315
+ return uniqueDatesInNgbDateFormat;
316
+ }
317
+
318
+ isCheckboxSelected(selectedData: any) {
319
+ selectedData.isSelected = !selectedData.isSelected;
320
+ let allSelected = this.isAllOptionsSelected();
321
+ return allSelected;
322
+ }
323
+
324
+ allOptionsClicked(status: number) {
325
+ let header = this.selectedRadio;
326
+ if (status === 1) {
327
+ this.tooltipMap.get(header).forEach((item: any) => {
328
+ if (!item.isHidden) {
329
+ item.isSelected = true;
330
+ }
331
+ });
332
+ this.tooltipSelectedMap.set(
333
+ header,
334
+ this.tooltipMap
335
+ .get(header)
336
+ .filter((x: any) => x.isSelected)
337
+ .map((x: any) => x.data)
338
+ );
339
+ } else {
340
+ this.tooltipMap.get(header).forEach((item: any) => {
341
+ if (!item.isHidden) {
342
+ item.isSelected = false;
343
+ }
344
+ });
345
+ this.tooltipSelectedMap.delete(header);
346
+ }
347
+ }
348
+
349
+ reOrderAppliedFiltersArray(isHierarchialUserFiltered: boolean, date?: any) {
350
+ let isFiltered = true;
351
+ isFiltered = this.checkIfDataIsFiltered(isFiltered, isHierarchialUserFiltered, date);
352
+ this.removeOrChangeLatestFilterIndex(isFiltered);
353
+ }
354
+
355
+ checkIfDataIsFiltered(isFiltered: boolean, isHierarchialUserFiltered: boolean, date?: any) {
356
+ if (this.selectedRadio == "user" && !this.tooltipMap.has("user")) {
357
+ isFiltered = cloneDeep(isHierarchialUserFiltered);
358
+ } else if (this.selectedRadio == "StartTimeForFilter" || this.selectedRadio == "EndTimeForFilter"
359
+ || this.selectedRadio == "start_time_for_filter" || this.selectedRadio == "end_time_for_filter" || this.selectedRadio == "startEndTimeMulti") {
360
+ isFiltered = !isEqual(
361
+ this.initialValueMap.get(this.selectedRadio),
362
+ this.tooltipSelectedMap.get(this.selectedRadio)
363
+ ) || !this.includeZeroTime || !this.includeMultiTime;
364
+ }
365
+ else if (this.selectedRadio == "startEndTime" || this.selectedRadio == "TimeBand") {
366
+ isFiltered = !isEqual(this.initialValueMap.get(this.selectedRadio), this.tooltipSelectedMap.get(this.selectedRadio)) || !this.includeZeroTime || !this.includeMultiTime;
367
+ }
368
+ else if (this.sliderSet.has(this.selectedRadio)) {
369
+ isFiltered = !isEqual(this.initialValueMap.get(this.selectedRadio), this.tooltipSelectedMap.get(this.selectedRadio)) && !isEqual(this.tooltipSelectedMap.get(this.selectedRadio), this.sliderData);
370
+ if (this.selectedRadio == "postedAdu" && this.subRadioButton == "notRequired") {
371
+ isFiltered = true;
372
+ }
373
+ if (!isFiltered && this.tooltipSelectedMap.has(this.selectedRadio)) {
374
+ this.tooltipSelectedMap.delete(this.selectedRadio);
375
+ }
376
+ } else if (
377
+ this.selectedRadio == "startDate" ||
378
+ this.selectedRadio == "endDate" ||
379
+ this.selectedRadio == "period" ||
380
+ this.selectedRadio == "AirDate" ||
381
+ this.selectedRadio === "flightStartDate" ||
382
+ this.selectedRadio === "flightEndDate" ||
383
+ this.selectedRadio == "date"
384
+ ) {
385
+ isFiltered =
386
+ !isEqual(this.initialValueMap.get(this.selectedRadio), this.tooltipSelectedMap.get(this.selectedRadio)) &&
387
+ !isEqual(this.tooltipSelectedMap.get(this.selectedRadio), this.flightDateRange);
388
+ if (!isFiltered && this.tooltipSelectedMap.has(this.selectedRadio)) {
389
+ this.tooltipSelectedMap.delete(this.selectedRadio);
390
+ }
391
+ } else {
392
+ let totalOptionsCount = this.tooltipMap.get(this.selectedRadio).filter((x: any) => !x.isHidden).length;
393
+ let selectedOptionsCount = this.tooltipMap.get(this.selectedRadio).filter((x: any) => !x.isHidden && x.isSelected).length;
394
+ isFiltered = selectedOptionsCount > 0 && selectedOptionsCount != totalOptionsCount ? true : false;
395
+ }
396
+ return isFiltered;
397
+ }
398
+
399
+ removeOrChangeLatestFilterIndex(isFiltered: boolean) {
400
+ let set = new Set(this.appliedFiltersArray);
401
+
402
+ if (isFiltered && !set.has(this.selectedRadio)) {
403
+ set.add(this.selectedRadio);
404
+ } else if (isFiltered && set.has(this.selectedRadio)) {
405
+ set.delete(this.selectedRadio);
406
+ set.add(this.selectedRadio);
407
+ } else {
408
+ set.delete(this.selectedRadio);
409
+ }
410
+ this.appliedFiltersArray = [...set];
411
+ }
412
+
413
+ filterData(originalData: any[], keyToSkip: string) {
414
+ let filteredData = [...originalData];
415
+
416
+ this.tooltipSelectedMap.forEach((value, key) => {
417
+ if (key != keyToSkip) {
418
+ if (this.sliderSet.has(key)) {
419
+ filteredData = filteredData.filter((obj) => obj[key] >= value.min && obj[key] <= value.max);
420
+ }
421
+ else if (key === "startDate" || key === "endDate" || key === "AirDate" || key === "flightStartDate" || key === "flightEndDate" || key == "date") {
422
+ filteredData = filteredData.filter((obj) => this.isObjectInTheRange(obj, value, key));
423
+ } else if (key === "period" ) {
424
+ filteredData = filteredData.filter((obj) => this.getDataInTheDateRange(obj, value, key));
425
+ }
426
+ else if (key === "StartTimeForFilter" || key === "EndTimeForFilter"
427
+ || key === "start_time_for_filter" || key === "end_time_for_filter") {
428
+ filteredData = filteredData.filter((obj) => this.returnDataForFromAndToTimeRange(obj, value, key));
429
+ }
430
+ else if (key === "startEndTimeMulti" || key == "startEndTime" || key === "TimeBand") {
431
+ filteredData = filteredData.filter((obj) => this.returnDataForStartAndEndTimeRange(obj, value, key));
432
+ }
433
+ else if (value.length > 0) {
434
+ filteredData = filteredData.filter((u) => value.includes(u[key]));
435
+ }
436
+ }
437
+ });
438
+ return filteredData;
439
+ }
440
+
441
+ returnOrdersInTheRange(order: any, range: any, key: any) {
442
+ let isDateBetweenTheSelectedRange = moment(order[key]).isBetween(range.minSelectedDate, range.maxSelectedDate);
443
+ let isDateSameAsTheMinSelectedDate = moment(order[key]).isSame(range.minSelectedDate);
444
+ let isDateSameAsTheMaxSelectedDate = moment(order[key]).isSame(range.maxSelectedDate);
445
+ return isDateBetweenTheSelectedRange || isDateSameAsTheMinSelectedDate || isDateSameAsTheMaxSelectedDate;
446
+ }
447
+
448
+ returnDataForTimeRange(obj: any, selectedData: any) {
449
+ let format = "HH:mm:ss";
450
+ let selectedStartDate = moment(selectedData.startTime, format);
451
+ let selectedEndDate = moment(selectedData.endTime, format);
452
+ let startTime = moment(obj.startTime, format);
453
+ let endTime = moment(obj.endTime, format);
454
+
455
+ let isStartTimeSameAsSelectedStartTime = startTime.isSame(selectedStartDate);
456
+ let isStartTimeBetweenSelectedStartAndEndTime = startTime.isBetween(selectedStartDate, selectedEndDate);
457
+ let isEndTimeSameAsSelectedEndTime = endTime.isSame(selectedEndDate);
458
+ let isEndTimeBetweenSelectedStartAndEndTime = endTime.isBetween(selectedStartDate, selectedEndDate);
459
+
460
+ return (
461
+ (isStartTimeBetweenSelectedStartAndEndTime && isEndTimeBetweenSelectedStartAndEndTime) ||
462
+ (isStartTimeSameAsSelectedStartTime && isEndTimeSameAsSelectedEndTime) ||
463
+ (isStartTimeSameAsSelectedStartTime && isEndTimeBetweenSelectedStartAndEndTime) ||
464
+ (isStartTimeBetweenSelectedStartAndEndTime && isEndTimeSameAsSelectedEndTime)
465
+ );
466
+ }
467
+
468
+ returnDataForFromAndToTimeRange(obj: any, selectedData: any, key: any) {
469
+ let format = "HH:mm:ss";
470
+ let selectedFromTime = moment(selectedData.fromTime, format);
471
+ let selectedToTime = moment(selectedData.toTime, format);
472
+ let objTime = obj[key];
473
+
474
+ if (["", "-", null].includes(objTime)) {
475
+ return false;
476
+ }
477
+ if (selectedData.includeMulti && obj[key] == "<multi>") {
478
+ return true;
479
+ }
480
+ if (!selectedData.includeMulti && obj[key] == "<multi>") {
481
+ return false;
482
+ }
483
+ if (selectedData.includeZero && obj[key] == "0") {
484
+ return true;
485
+ }
486
+ if (!selectedData.includeZero && obj[key] == "0") {
487
+ return false;
488
+ }
489
+ if (!selectedData.includeTimeRange) {
490
+ return false;
491
+ }
492
+
493
+
494
+ // objTime = this.dateTimeFormatService.formatToTwelveHrs(objTime, true);
495
+
496
+ // objTime = this.dateTimeFormatService.convertTotwentyFourHrsFormat(
497
+ // objTime[0] + ":" + objTime[1] + " " + objTime[2],
498
+ // true
499
+ // );
500
+ // objTime = objTime[0] + ":" + objTime[1] + ":00";
501
+
502
+ // objTime = moment(objTime, format);
503
+ let momentTime = moment(objTime,format);
504
+ console.log(momentTime);
505
+ console.log(selectedFromTime);
506
+ console.log(selectedToTime);
507
+
508
+ let isObjTimeSameAsSelectedFromTime = momentTime.isSame(selectedFromTime);
509
+ let isObjTimeSameAsSelectedToTime = momentTime.isSame(selectedToTime);
510
+ let isObjTimeBetweenSelectedFromTimeAndToTime = momentTime.isBetween(selectedFromTime, selectedToTime);
511
+
512
+ return (
513
+ isObjTimeSameAsSelectedFromTime ||
514
+ isObjTimeSameAsSelectedToTime ||
515
+ isObjTimeBetweenSelectedFromTimeAndToTime
516
+ );
517
+ }
518
+
519
+ returnDataForStartAndEndTimeRange(obj: any, selectedData:any, key: string) {
520
+ let format = "HH:mm:ss";
521
+ let selectedFromTime = moment(selectedData.fromTime, format);
522
+ let selectedToTime = moment(selectedData.toTime, format);
523
+
524
+ if(selectedData.includeMulti && obj[key][0] == "<multi>") {
525
+ return true;
526
+ }
527
+
528
+ if(!selectedData.includeMulti && obj[key][0] == "<multi>") {
529
+ return false;
530
+ }
531
+
532
+ if(selectedData.includeZero && obj[key][0] == "0") {
533
+ return true;
534
+ }
535
+
536
+ if(!selectedData.includeZero && obj[key][0] == "0") {
537
+ return false;
538
+ }
539
+
540
+ if(!selectedData.includeTimeRange) {
541
+ return false;
542
+ }
543
+
544
+ let startTime = moment(obj[key][1], format);
545
+ let endTime = moment(obj[key][2], format);
546
+
547
+ let isStartTimeSameAsSelectedStartTime = startTime.isSame(selectedFromTime);
548
+ let isStartTimeBetweenSelectedStartAndEndTime = startTime.isBetween(selectedFromTime, selectedToTime);
549
+ let isEndTimeSameAsSelectedEndTime = endTime.isSame(selectedToTime);
550
+ let isEndTimeBetweenSelectedStartAndEndTime = endTime.isBetween(selectedFromTime, selectedToTime);
551
+
552
+ return (
553
+ (isStartTimeBetweenSelectedStartAndEndTime && isEndTimeBetweenSelectedStartAndEndTime) ||
554
+ (isStartTimeSameAsSelectedStartTime && isEndTimeSameAsSelectedEndTime) ||
555
+ (isStartTimeSameAsSelectedStartTime && isEndTimeBetweenSelectedStartAndEndTime) ||
556
+ (isStartTimeBetweenSelectedStartAndEndTime && isEndTimeSameAsSelectedEndTime)
557
+ );
558
+
559
+ }
560
+
561
+ getDataInTheDateRange(obj: any, value: any, key: any) {
562
+ let parsingFormat: string;
563
+ if (key === "period") {
564
+ parsingFormat = "YYYY-MM-DD";
565
+
566
+ let momentStartDate = moment(obj.startDate);
567
+ let momentEndDate = moment(obj.endDate);
568
+
569
+ let startDateIsBetweenSelDate = momentStartDate.isBetween(
570
+ value.fromDate,
571
+ value.toDate
572
+ );
573
+ let endDateIsBetweenSelDate = momentEndDate.isBetween(
574
+ value.fromDate,
575
+ value.toDate
576
+ );
577
+
578
+
579
+ console.log(moment(obj.startDate, parsingFormat));
580
+ let startDateIsSameAsSelStartDate = value.fromDate.isSame(momentStartDate);
581
+ let endDateIsSameAsSelEndDate = value.toDate.isSame(momentEndDate);
582
+
583
+ return (
584
+ (startDateIsBetweenSelDate || startDateIsSameAsSelStartDate) &&
585
+ (endDateIsBetweenSelDate || endDateIsSameAsSelEndDate)
586
+ );
587
+ } else if (key === "AirDate" || key === "flightStartDate" || key === "flightEndDate") {
588
+ parsingFormat = "MM/DD/YYYY";
589
+ let dateIsBetweenSelDate = moment(obj[key], parsingFormat).isBetween(value.minSelectedDate, value.maxSelectedDate);
590
+
591
+ let dateIsSameAsSelStartDate = moment(obj[key], parsingFormat).isSame(value.minSelectedDate);
592
+ let dateIsSameAsSelEndDate = moment(obj[key], parsingFormat).isSame(value.maxSelectedDate);
593
+
594
+ return dateIsBetweenSelDate || dateIsSameAsSelStartDate || dateIsSameAsSelEndDate;
595
+ }
596
+ }
597
+
598
+
599
+ public initializeTimeFilterData(clonedData: any[], key = "startEndTime") {
600
+ let startTimeArr = map(clonedData, "startTime");
601
+ let endTimeArr = map(clonedData, "endTime");
602
+
603
+ startTimeArr.sort((a: any, b: any) => {
604
+ return this.dateTimeFormatService.sortByTimeAscending(a, b);
605
+ });
606
+
607
+ endTimeArr.sort((a: any, b: any) => {
608
+ return this.dateTimeFormatService.sortByTimeDescending(a, b);
609
+ });
610
+
611
+ let initialStartEndTime = {
612
+ startTime: startTimeArr[0],
613
+ endTime: endTimeArr[0],
614
+ };
615
+ this.initialValueMap.set(key, initialStartEndTime);
616
+ }
617
+
618
+ returnColumnFilterStatus(data: any[], headerName: string | number) {
619
+
620
+ if(headerName == "startEndTime"){
621
+ let time = data.map(u => u[headerName][0]);
622
+ let uniqTime = uniq(time);
623
+ return uniqTime.length == 0;
624
+ }
625
+
626
+ return uniq(data.map((u) => u[headerName])).length > 1 ? false : true;
627
+ }
628
+
629
+ getFilterOptionsData(data: any[], clonedData: any[]){
630
+ let appliedFilterSet = new Set(this.appliedFiltersArray);
631
+ console.log("appliedFilterSet");
632
+ console.log(appliedFilterSet);
633
+ if(appliedFilterSet.has(this.selectedRadio)){
634
+ return this.filterData(clonedData, this.selectedRadio);
635
+ }
636
+ else{
637
+ return data;
638
+ }
639
+ }
640
+
641
+ reOrderAppliedFiltersState(clonedData: any[], value: any){
642
+ let isFiltered = true;
643
+ isFiltered = this.checkIfFilterIsApplied(clonedData,value);
644
+ this.removeOrChangeLatestFilterIndex(isFiltered);
645
+ return isFiltered;
646
+ }
647
+
648
+ checkIfFilterIsApplied(clonedData: any[],value: any){
649
+ let initialValueOfColumn = sortBy(clonedData.map(item => item[this.selectedRadio]));
650
+ let currentValueOfColumn = sortBy(this.applyFilter(clonedData,value).map(item => item[this.selectedRadio]));
651
+ return !isEqual(initialValueOfColumn, currentValueOfColumn);
652
+ }
653
+
654
+ applyFilter(data: any[],value: any){
655
+ let filteredData = data;
656
+ let key = this.selectedRadio;
657
+ if (this.sliderSet.has(key)) {
658
+ filteredData = filteredData.filter((obj) => obj[key] >= value.min && obj[key] <= value.max);
659
+ }
660
+ else if (key === "startDate" || key === "endDate" || key === "AirDate" || key === "flightStartDate" || key === "flightEndDate" || key == "date") {
661
+ filteredData = filteredData.filter((obj) => this.isObjectInTheRange(obj, value, key));
662
+ } else if (key === "period" ) {
663
+ filteredData = filteredData.filter((obj) => this.getDataInTheDateRange(obj, value, key));
664
+ }
665
+ else if (key === "StartTimeForFilter" || key === "EndTimeForFilter"
666
+ || key === "start_time_for_filter" || key === "end_time_for_filter") {
667
+ filteredData = filteredData.filter((obj) => this.returnDataForFromAndToTimeRange(obj, value, key));
668
+ }
669
+ else if (key === "startEndTimeMulti" || key == "startEndTime" || key === "TimeBand") {
670
+ filteredData = filteredData.filter((obj) => this.returnDataForStartAndEndTimeRange(obj, value, key));
671
+ }
672
+ else if (value.length > 0) {
673
+ filteredData = filteredData.filter((u) => value.includes(u[key]));
674
+ }
675
+ return filteredData;
676
+ }
677
+
678
+ isObjectInTheRange(obj: any, value: {fromDate: moment.Moment, toDate: moment.Moment},key:string){
679
+ let objVal = obj[key];
680
+ let momentDate = moment(objVal);
681
+ console.log(objVal);
682
+ console.log(value.fromDate);
683
+ let isDateSameAsStartOfTheRange = value.fromDate.isSame(objVal);
684
+ let isDateSameAsEndOfTheRange = value.toDate.isSame(objVal);
685
+ let isDateBetweenTheStartAndEndOfRange = momentDate.isBetween(value.fromDate,value.toDate);
686
+ return isDateSameAsStartOfTheRange || isDateSameAsEndOfTheRange || isDateBetweenTheStartAndEndOfRange;
687
+ }
688
+
689
+ }