@annalib/anna-core 1.6.0 → 2.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 (257) 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 -62
  5. package/src/lib/anna-core-shared-lib/anna-core-shared-lib.module.ts +47 -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-icon-column/anna-icon-column.component.html +42 -0
  11. package/src/lib/anna-core-shared-lib/components/anna-icon-column/anna-icon-column.component.scss +0 -0
  12. package/src/lib/anna-core-shared-lib/components/anna-icon-column/anna-icon-column.component.spec.ts +25 -0
  13. package/src/lib/anna-core-shared-lib/components/anna-icon-column/anna-icon-column.component.ts +27 -0
  14. package/src/lib/anna-core-shared-lib/components/anna-live-icon-template/anna-live-icon-template.component.html +20 -0
  15. package/src/lib/anna-core-shared-lib/components/anna-live-icon-template/anna-live-icon-template.component.scss +0 -0
  16. package/src/lib/anna-core-shared-lib/components/anna-live-icon-template/anna-live-icon-template.component.spec.ts +25 -0
  17. package/src/lib/anna-core-shared-lib/components/anna-live-icon-template/anna-live-icon-template.component.ts +15 -0
  18. package/src/lib/anna-core-shared-lib/components/anna-no-data/anna-no-data.component.html +3 -0
  19. package/src/lib/anna-core-shared-lib/components/anna-no-data/anna-no-data.component.scss +17 -0
  20. package/src/lib/anna-core-shared-lib/components/anna-no-data/anna-no-data.component.spec.ts +24 -0
  21. package/src/lib/anna-core-shared-lib/components/anna-no-data/anna-no-data.component.ts +20 -0
  22. package/src/lib/anna-core-shared-lib/components/anna-notify-icon-template/anna-notify-icon-template.component.html +23 -0
  23. package/src/lib/anna-core-shared-lib/components/anna-notify-icon-template/anna-notify-icon-template.component.scss +0 -0
  24. package/src/lib/anna-core-shared-lib/components/anna-notify-icon-template/anna-notify-icon-template.component.spec.ts +25 -0
  25. package/src/lib/anna-core-shared-lib/components/anna-notify-icon-template/anna-notify-icon-template.component.ts +15 -0
  26. package/src/lib/anna-core-shared-lib/components/anna-pay-for-performance-icon-template/anna-pay-for-performance-icon-template.component.html +15 -0
  27. package/src/lib/anna-core-shared-lib/components/anna-pay-for-performance-icon-template/anna-pay-for-performance-icon-template.component.scss +0 -0
  28. 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
  29. package/src/lib/anna-core-shared-lib/components/anna-pay-for-performance-icon-template/anna-pay-for-performance-icon-template.component.ts +19 -0
  30. package/src/lib/anna-core-shared-lib/components/anna-rejected-icon-template/anna-rejected-icon-template.component.html +14 -0
  31. package/src/lib/anna-core-shared-lib/components/anna-rejected-icon-template/anna-rejected-icon-template.component.scss +0 -0
  32. package/src/lib/anna-core-shared-lib/components/anna-rejected-icon-template/anna-rejected-icon-template.component.spec.ts +25 -0
  33. package/src/lib/anna-core-shared-lib/components/anna-rejected-icon-template/anna-rejected-icon-template.component.ts +15 -0
  34. package/src/lib/anna-core-shared-lib/constants/shared.constant.ts +34 -0
  35. package/src/lib/anna-core-shared-lib/directives/show-ellipsis-text/show-ellipsis-text.directive.ts +19 -0
  36. package/src/lib/anna-core-shared-lib/index.ts +1 -0
  37. package/src/lib/anna-core-shared-lib/models/anna-generic-data-type.model.ts +15 -0
  38. 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
  39. package/{lib/anna-core-shared-lib/models/anna-non-editable-gt-models.d.ts → src/lib/anna-core-shared-lib/models/anna-non-editable-gt-models.ts} +27 -17
  40. package/src/lib/anna-core-shared-lib/models/anna-sort.model.ts +7 -0
  41. package/src/lib/anna-core-shared-lib/models/anna-tooltip.model.ts +44 -0
  42. package/src/lib/anna-core-shared-lib/ng-package.json +5 -0
  43. package/src/lib/anna-core-shared-lib/pipes/annaFilterSearchedText.pipe.ts +26 -0
  44. package/{lib/anna-core-shared-lib/public-api.d.ts → src/lib/anna-core-shared-lib/public-api.ts} +15 -1
  45. package/src/lib/anna-core-shared-lib/scss/_colors.scss +107 -0
  46. package/src/lib/anna-core-shared-lib/scss/_filters.scss +596 -0
  47. package/src/lib/anna-core-shared-lib/scss/_fonts.scss +86 -0
  48. package/src/lib/anna-core-shared-lib/scss/_sort.scss +30 -0
  49. package/src/lib/anna-core-shared-lib/services/anna-date-time-format.service.ts +197 -0
  50. package/src/lib/anna-core-shared-lib/services/anna-filter.service.ts +507 -0
  51. package/src/lib/anna-core-shared-lib/services/anna-generic-table.service.ts +44 -0
  52. package/src/lib/anna-core-shared-lib/services/anna-global-config.service.ts +170 -0
  53. package/src/lib/anna-core-shared-lib/services/anna-sort.service.ts +179 -0
  54. package/src/lib/anna-dropdown-lib/anna-dropdown-lib.module.ts +31 -0
  55. package/src/lib/anna-dropdown-lib/components/anna-calendar-filter/anna-calendar-filter.component.html +46 -0
  56. package/src/lib/anna-dropdown-lib/components/anna-calendar-filter/anna-calendar-filter.component.scss +153 -0
  57. package/src/lib/anna-dropdown-lib/components/anna-calendar-filter/anna-calendar-filter.component.spec.ts +24 -0
  58. package/src/lib/anna-dropdown-lib/components/anna-calendar-filter/anna-calendar-filter.component.ts +106 -0
  59. package/src/lib/anna-dropdown-lib/components/anna-week-calendar-filter/anna-week-calendar-filter.component.html +129 -0
  60. package/src/lib/anna-dropdown-lib/components/anna-week-calendar-filter/anna-week-calendar-filter.component.scss +275 -0
  61. package/src/lib/anna-dropdown-lib/components/anna-week-calendar-filter/anna-week-calendar-filter.component.spec.ts +24 -0
  62. package/src/lib/anna-dropdown-lib/components/anna-week-calendar-filter/anna-week-calendar-filter.component.ts +410 -0
  63. package/src/lib/anna-dropdown-lib/index.ts +1 -0
  64. package/src/lib/anna-dropdown-lib/ng-package.json +5 -0
  65. package/{lib/anna-dropdown-lib/public-api.d.ts → src/lib/anna-dropdown-lib/public-api.ts} +4 -1
  66. package/src/lib/anna-generic-table-lib/anna-generic-table-lib.module.ts +56 -0
  67. package/src/lib/anna-generic-table-lib/components/anna-non-editable-generic-table/anna-non-editable-generic-table.component.html +875 -0
  68. package/src/lib/anna-generic-table-lib/components/anna-non-editable-generic-table/anna-non-editable-generic-table.component.scss +537 -0
  69. package/src/lib/anna-generic-table-lib/components/anna-non-editable-generic-table/anna-non-editable-generic-table.component.spec.ts +25 -0
  70. package/src/lib/anna-generic-table-lib/components/anna-non-editable-generic-table/anna-non-editable-generic-table.component.ts +1935 -0
  71. package/src/lib/anna-generic-table-lib/components/anna-sort/anna-sort.component.html +10 -0
  72. package/src/lib/anna-generic-table-lib/components/anna-sort/anna-sort.component.scss +1 -0
  73. package/src/lib/anna-generic-table-lib/components/anna-sort/anna-sort.component.spec.ts +24 -0
  74. package/src/lib/anna-generic-table-lib/components/anna-sort/anna-sort.component.ts +76 -0
  75. package/src/lib/anna-generic-table-lib/components/anna-table-virtual-scroll-viewport/anna-table-virtual-scroll-viewport.component.html +13 -0
  76. package/src/lib/anna-generic-table-lib/components/anna-table-virtual-scroll-viewport/anna-table-virtual-scroll-viewport.component.scss +88 -0
  77. package/src/lib/anna-generic-table-lib/components/anna-table-virtual-scroll-viewport/anna-table-virtual-scroll-viewport.component.spec.ts +25 -0
  78. package/src/lib/anna-generic-table-lib/components/anna-table-virtual-scroll-viewport/anna-table-virtual-scroll-viewport.component.ts +460 -0
  79. 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
  80. 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
  81. package/src/lib/anna-generic-table-lib/directives/anna-virtual-table/anna-virtual-table.directive.ts +204 -0
  82. 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
  83. package/src/lib/anna-generic-table-lib/index.ts +1 -0
  84. package/src/lib/anna-generic-table-lib/ng-package.json +5 -0
  85. package/src/lib/anna-generic-table-lib/{public-api.d.ts → public-api.ts} +5 -0
  86. package/{public-api.d.ts → src/public-api.ts} +5 -0
  87. package/src/test.ts +27 -0
  88. package/tsconfig.lib.json +16 -0
  89. package/tsconfig.lib.prod.json +10 -0
  90. package/tsconfig.spec.json +17 -0
  91. package/annalib-anna-core.d.ts +0 -5
  92. package/esm2020/annalib-anna-core.mjs +0 -5
  93. package/esm2020/lib/anna-core-shared-lib/anna-core-shared-lib.module.mjs +0 -69
  94. package/esm2020/lib/anna-core-shared-lib/components/anna-buyer-approval-icon-template/anna-buyer-approval-icon-template.component.mjs +0 -15
  95. package/esm2020/lib/anna-core-shared-lib/components/anna-icon-column/anna-icon-column.component.mjs +0 -35
  96. package/esm2020/lib/anna-core-shared-lib/components/anna-live-icon-template/anna-live-icon-template.component.mjs +0 -15
  97. package/esm2020/lib/anna-core-shared-lib/components/anna-no-data/anna-no-data.component.mjs +0 -22
  98. package/esm2020/lib/anna-core-shared-lib/components/anna-notify-icon-template/anna-notify-icon-template.component.mjs +0 -15
  99. package/esm2020/lib/anna-core-shared-lib/components/anna-pay-for-performance-icon-template/anna-pay-for-performance-icon-template.component.mjs +0 -21
  100. package/esm2020/lib/anna-core-shared-lib/components/anna-rejected-icon-template/anna-rejected-icon-template.component.mjs +0 -15
  101. package/esm2020/lib/anna-core-shared-lib/constants/shared.constant.mjs +0 -34
  102. package/esm2020/lib/anna-core-shared-lib/directives/show-ellipsis-text/show-ellipsis-text.directive.mjs +0 -27
  103. package/esm2020/lib/anna-core-shared-lib/index.mjs +0 -2
  104. package/esm2020/lib/anna-core-shared-lib/models/anna-generic-data-type.model.mjs +0 -2
  105. package/esm2020/lib/anna-core-shared-lib/models/anna-global-dropdown-config.model.mjs +0 -2
  106. package/esm2020/lib/anna-core-shared-lib/models/anna-non-editable-gt-models.mjs +0 -3
  107. package/esm2020/lib/anna-core-shared-lib/models/anna-sort.model.mjs +0 -2
  108. package/esm2020/lib/anna-core-shared-lib/models/anna-tooltip.model.mjs +0 -30
  109. package/esm2020/lib/anna-core-shared-lib/pipes/annaFilterSearchedText.pipe.mjs +0 -31
  110. package/esm2020/lib/anna-core-shared-lib/public-api.mjs +0 -29
  111. package/esm2020/lib/anna-core-shared-lib/services/anna-date-time-format.service.mjs +0 -180
  112. package/esm2020/lib/anna-core-shared-lib/services/anna-filter.service.mjs +0 -419
  113. package/esm2020/lib/anna-core-shared-lib/services/anna-generic-table.service.mjs +0 -48
  114. package/esm2020/lib/anna-core-shared-lib/services/anna-global-config.service.mjs +0 -133
  115. package/esm2020/lib/anna-core-shared-lib/services/anna-sort.service.mjs +0 -147
  116. package/esm2020/lib/anna-dropdown-lib/anna-dropdown-lib.module.mjs +0 -43
  117. package/esm2020/lib/anna-dropdown-lib/components/anna-calendar-filter/anna-calendar-filter.component.mjs +0 -99
  118. package/esm2020/lib/anna-dropdown-lib/components/anna-week-calendar-filter/anna-week-calendar-filter.component.mjs +0 -360
  119. package/esm2020/lib/anna-dropdown-lib/index.mjs +0 -2
  120. package/esm2020/lib/anna-dropdown-lib/public-api.mjs +0 -6
  121. package/esm2020/lib/anna-generic-table-lib/anna-generic-table-lib.module.mjs +0 -104
  122. package/esm2020/lib/anna-generic-table-lib/components/anna-non-editable-generic-table/anna-non-editable-generic-table.component.mjs +0 -1634
  123. package/esm2020/lib/anna-generic-table-lib/components/anna-sort/anna-sort.component.mjs +0 -70
  124. package/esm2020/lib/anna-generic-table-lib/components/anna-table-virtual-scroll-viewport/anna-table-virtual-scroll-viewport.component.mjs +0 -357
  125. 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
  126. package/esm2020/lib/anna-generic-table-lib/directives/anna-fixed-row-size-table-virtual-scroll-strategy/index.mjs +0 -2
  127. package/esm2020/lib/anna-generic-table-lib/directives/anna-virtual-table/anna-virtual-table.directive.mjs +0 -178
  128. package/esm2020/lib/anna-generic-table-lib/directives/anna-virtual-table/index.mjs +0 -2
  129. package/esm2020/lib/anna-generic-table-lib/index.mjs +0 -2
  130. package/esm2020/lib/anna-generic-table-lib/public-api.mjs +0 -10
  131. package/esm2020/public-api.mjs +0 -7
  132. package/esm2020/src/lib/anna-core-shared-lib/anna-core-shared-lib.module.mjs +0 -69
  133. package/esm2020/src/lib/anna-core-shared-lib/annalib-anna-core-src-lib-anna-core-shared-lib.mjs +0 -5
  134. package/esm2020/src/lib/anna-core-shared-lib/components/anna-buyer-approval-icon-template/anna-buyer-approval-icon-template.component.mjs +0 -15
  135. package/esm2020/src/lib/anna-core-shared-lib/components/anna-icon-column/anna-icon-column.component.mjs +0 -35
  136. package/esm2020/src/lib/anna-core-shared-lib/components/anna-live-icon-template/anna-live-icon-template.component.mjs +0 -15
  137. package/esm2020/src/lib/anna-core-shared-lib/components/anna-no-data/anna-no-data.component.mjs +0 -22
  138. package/esm2020/src/lib/anna-core-shared-lib/components/anna-notify-icon-template/anna-notify-icon-template.component.mjs +0 -15
  139. 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
  140. package/esm2020/src/lib/anna-core-shared-lib/components/anna-rejected-icon-template/anna-rejected-icon-template.component.mjs +0 -15
  141. package/esm2020/src/lib/anna-core-shared-lib/constants/shared.constant.mjs +0 -34
  142. package/esm2020/src/lib/anna-core-shared-lib/directives/show-ellipsis-text/show-ellipsis-text.directive.mjs +0 -27
  143. package/esm2020/src/lib/anna-core-shared-lib/models/anna-generic-data-type.model.mjs +0 -2
  144. package/esm2020/src/lib/anna-core-shared-lib/models/anna-global-dropdown-config.model.mjs +0 -2
  145. package/esm2020/src/lib/anna-core-shared-lib/models/anna-non-editable-gt-models.mjs +0 -3
  146. package/esm2020/src/lib/anna-core-shared-lib/models/anna-sort.model.mjs +0 -2
  147. package/esm2020/src/lib/anna-core-shared-lib/models/anna-tooltip.model.mjs +0 -30
  148. package/esm2020/src/lib/anna-core-shared-lib/pipes/annaFilterSearchedText.pipe.mjs +0 -31
  149. package/esm2020/src/lib/anna-core-shared-lib/public-api.mjs +0 -29
  150. package/esm2020/src/lib/anna-core-shared-lib/services/anna-date-time-format.service.mjs +0 -180
  151. package/esm2020/src/lib/anna-core-shared-lib/services/anna-filter.service.mjs +0 -419
  152. package/esm2020/src/lib/anna-core-shared-lib/services/anna-generic-table.service.mjs +0 -48
  153. package/esm2020/src/lib/anna-core-shared-lib/services/anna-global-config.service.mjs +0 -133
  154. package/esm2020/src/lib/anna-core-shared-lib/services/anna-sort.service.mjs +0 -147
  155. package/esm2020/src/lib/anna-dropdown-lib/anna-dropdown-lib.module.mjs +0 -43
  156. package/esm2020/src/lib/anna-dropdown-lib/annalib-anna-core-src-lib-anna-dropdown-lib.mjs +0 -5
  157. package/esm2020/src/lib/anna-dropdown-lib/components/anna-calendar-filter/anna-calendar-filter.component.mjs +0 -99
  158. package/esm2020/src/lib/anna-dropdown-lib/components/anna-week-calendar-filter/anna-week-calendar-filter.component.mjs +0 -360
  159. package/esm2020/src/lib/anna-dropdown-lib/public-api.mjs +0 -6
  160. package/esm2020/src/lib/anna-generic-table-lib/anna-generic-table-lib.module.mjs +0 -104
  161. package/esm2020/src/lib/anna-generic-table-lib/annalib-anna-core-src-lib-anna-generic-table-lib.mjs +0 -5
  162. package/esm2020/src/lib/anna-generic-table-lib/components/anna-non-editable-generic-table/anna-non-editable-generic-table.component.mjs +0 -1634
  163. package/esm2020/src/lib/anna-generic-table-lib/components/anna-sort/anna-sort.component.mjs +0 -70
  164. package/esm2020/src/lib/anna-generic-table-lib/components/anna-table-virtual-scroll-viewport/anna-table-virtual-scroll-viewport.component.mjs +0 -357
  165. 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
  166. package/esm2020/src/lib/anna-generic-table-lib/directives/anna-fixed-row-size-table-virtual-scroll-strategy/index.mjs +0 -2
  167. package/esm2020/src/lib/anna-generic-table-lib/directives/anna-virtual-table/anna-virtual-table.directive.mjs +0 -178
  168. package/esm2020/src/lib/anna-generic-table-lib/directives/anna-virtual-table/index.mjs +0 -2
  169. package/esm2020/src/lib/anna-generic-table-lib/public-api.mjs +0 -10
  170. package/fesm2015/annalib-anna-core-src-lib-anna-core-shared-lib.mjs +0 -1200
  171. package/fesm2015/annalib-anna-core-src-lib-anna-core-shared-lib.mjs.map +0 -1
  172. package/fesm2015/annalib-anna-core-src-lib-anna-dropdown-lib.mjs +0 -493
  173. package/fesm2015/annalib-anna-core-src-lib-anna-dropdown-lib.mjs.map +0 -1
  174. package/fesm2015/annalib-anna-core-src-lib-anna-generic-table-lib.mjs +0 -2498
  175. package/fesm2015/annalib-anna-core-src-lib-anna-generic-table-lib.mjs.map +0 -1
  176. package/fesm2015/annalib-anna-core.mjs +0 -4165
  177. package/fesm2015/annalib-anna-core.mjs.map +0 -1
  178. package/fesm2020/annalib-anna-core-src-lib-anna-core-shared-lib.mjs +0 -1200
  179. package/fesm2020/annalib-anna-core-src-lib-anna-core-shared-lib.mjs.map +0 -1
  180. package/fesm2020/annalib-anna-core-src-lib-anna-dropdown-lib.mjs +0 -491
  181. package/fesm2020/annalib-anna-core-src-lib-anna-dropdown-lib.mjs.map +0 -1
  182. package/fesm2020/annalib-anna-core-src-lib-anna-generic-table-lib.mjs +0 -2497
  183. package/fesm2020/annalib-anna-core-src-lib-anna-generic-table-lib.mjs.map +0 -1
  184. package/fesm2020/annalib-anna-core.mjs +0 -4162
  185. package/fesm2020/annalib-anna-core.mjs.map +0 -1
  186. package/lib/anna-core-shared-lib/anna-core-shared-lib.module.d.ts +0 -16
  187. package/lib/anna-core-shared-lib/components/anna-buyer-approval-icon-template/anna-buyer-approval-icon-template.component.d.ts +0 -8
  188. package/lib/anna-core-shared-lib/components/anna-icon-column/anna-icon-column.component.d.ts +0 -16
  189. package/lib/anna-core-shared-lib/components/anna-live-icon-template/anna-live-icon-template.component.d.ts +0 -8
  190. package/lib/anna-core-shared-lib/components/anna-no-data/anna-no-data.component.d.ts +0 -11
  191. package/lib/anna-core-shared-lib/components/anna-notify-icon-template/anna-notify-icon-template.component.d.ts +0 -8
  192. package/lib/anna-core-shared-lib/components/anna-pay-for-performance-icon-template/anna-pay-for-performance-icon-template.component.d.ts +0 -11
  193. package/lib/anna-core-shared-lib/components/anna-rejected-icon-template/anna-rejected-icon-template.component.d.ts +0 -8
  194. package/lib/anna-core-shared-lib/constants/shared.constant.d.ts +0 -32
  195. package/lib/anna-core-shared-lib/directives/show-ellipsis-text/show-ellipsis-text.directive.d.ts +0 -9
  196. package/lib/anna-core-shared-lib/index.d.ts +0 -1
  197. package/lib/anna-core-shared-lib/models/anna-generic-data-type.model.d.ts +0 -12
  198. package/lib/anna-core-shared-lib/models/anna-sort.model.d.ts +0 -6
  199. package/lib/anna-core-shared-lib/models/anna-tooltip.model.d.ts +0 -25
  200. package/lib/anna-core-shared-lib/pipes/annaFilterSearchedText.pipe.d.ts +0 -9
  201. package/lib/anna-core-shared-lib/services/anna-date-time-format.service.d.ts +0 -25
  202. package/lib/anna-core-shared-lib/services/anna-filter.service.d.ts +0 -73
  203. package/lib/anna-core-shared-lib/services/anna-generic-table.service.d.ts +0 -14
  204. package/lib/anna-core-shared-lib/services/anna-global-config.service.d.ts +0 -21
  205. package/lib/anna-core-shared-lib/services/anna-sort.service.d.ts +0 -16
  206. package/lib/anna-dropdown-lib/anna-dropdown-lib.module.d.ts +0 -11
  207. package/lib/anna-dropdown-lib/components/anna-calendar-filter/anna-calendar-filter.component.d.ts +0 -34
  208. package/lib/anna-dropdown-lib/components/anna-week-calendar-filter/anna-week-calendar-filter.component.d.ts +0 -67
  209. package/lib/anna-dropdown-lib/index.d.ts +0 -1
  210. package/lib/anna-generic-table-lib/anna-generic-table-lib.module.d.ts +0 -22
  211. package/lib/anna-generic-table-lib/components/anna-non-editable-generic-table/anna-non-editable-generic-table.component.d.ts +0 -251
  212. package/lib/anna-generic-table-lib/components/anna-sort/anna-sort.component.d.ts +0 -16
  213. package/lib/anna-generic-table-lib/components/anna-table-virtual-scroll-viewport/anna-table-virtual-scroll-viewport.component.d.ts +0 -141
  214. 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
  215. package/lib/anna-generic-table-lib/directives/anna-virtual-table/anna-virtual-table.directive.d.ts +0 -45
  216. package/lib/anna-generic-table-lib/index.d.ts +0 -1
  217. package/lib/anna-generic-table-lib/public-api.d.ts +0 -6
  218. package/src/lib/anna-core-shared-lib/anna-core-shared-lib.module.d.ts +0 -16
  219. package/src/lib/anna-core-shared-lib/annalib-anna-core-src-lib-anna-core-shared-lib.d.ts +0 -5
  220. package/src/lib/anna-core-shared-lib/components/anna-buyer-approval-icon-template/anna-buyer-approval-icon-template.component.d.ts +0 -8
  221. package/src/lib/anna-core-shared-lib/components/anna-icon-column/anna-icon-column.component.d.ts +0 -16
  222. package/src/lib/anna-core-shared-lib/components/anna-live-icon-template/anna-live-icon-template.component.d.ts +0 -8
  223. package/src/lib/anna-core-shared-lib/components/anna-no-data/anna-no-data.component.d.ts +0 -11
  224. package/src/lib/anna-core-shared-lib/components/anna-notify-icon-template/anna-notify-icon-template.component.d.ts +0 -8
  225. 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
  226. package/src/lib/anna-core-shared-lib/components/anna-rejected-icon-template/anna-rejected-icon-template.component.d.ts +0 -8
  227. package/src/lib/anna-core-shared-lib/constants/shared.constant.d.ts +0 -32
  228. package/src/lib/anna-core-shared-lib/directives/show-ellipsis-text/show-ellipsis-text.directive.d.ts +0 -9
  229. package/src/lib/anna-core-shared-lib/models/anna-generic-data-type.model.d.ts +0 -12
  230. package/src/lib/anna-core-shared-lib/models/anna-global-dropdown-config.model.d.ts +0 -95
  231. package/src/lib/anna-core-shared-lib/models/anna-non-editable-gt-models.d.ts +0 -71
  232. package/src/lib/anna-core-shared-lib/models/anna-sort.model.d.ts +0 -6
  233. package/src/lib/anna-core-shared-lib/models/anna-tooltip.model.d.ts +0 -25
  234. package/src/lib/anna-core-shared-lib/package.json +0 -10
  235. package/src/lib/anna-core-shared-lib/pipes/annaFilterSearchedText.pipe.d.ts +0 -9
  236. package/src/lib/anna-core-shared-lib/public-api.d.ts +0 -21
  237. package/src/lib/anna-core-shared-lib/services/anna-date-time-format.service.d.ts +0 -25
  238. package/src/lib/anna-core-shared-lib/services/anna-filter.service.d.ts +0 -73
  239. package/src/lib/anna-core-shared-lib/services/anna-generic-table.service.d.ts +0 -14
  240. package/src/lib/anna-core-shared-lib/services/anna-global-config.service.d.ts +0 -21
  241. package/src/lib/anna-core-shared-lib/services/anna-sort.service.d.ts +0 -16
  242. package/src/lib/anna-dropdown-lib/anna-dropdown-lib.module.d.ts +0 -11
  243. package/src/lib/anna-dropdown-lib/annalib-anna-core-src-lib-anna-dropdown-lib.d.ts +0 -5
  244. package/src/lib/anna-dropdown-lib/components/anna-calendar-filter/anna-calendar-filter.component.d.ts +0 -34
  245. package/src/lib/anna-dropdown-lib/components/anna-week-calendar-filter/anna-week-calendar-filter.component.d.ts +0 -67
  246. package/src/lib/anna-dropdown-lib/package.json +0 -10
  247. package/src/lib/anna-dropdown-lib/public-api.d.ts +0 -3
  248. package/src/lib/anna-generic-table-lib/anna-generic-table-lib.module.d.ts +0 -22
  249. package/src/lib/anna-generic-table-lib/annalib-anna-core-src-lib-anna-generic-table-lib.d.ts +0 -5
  250. package/src/lib/anna-generic-table-lib/components/anna-non-editable-generic-table/anna-non-editable-generic-table.component.d.ts +0 -251
  251. package/src/lib/anna-generic-table-lib/components/anna-sort/anna-sort.component.d.ts +0 -16
  252. package/src/lib/anna-generic-table-lib/components/anna-table-virtual-scroll-viewport/anna-table-virtual-scroll-viewport.component.d.ts +0 -141
  253. 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
  254. package/src/lib/anna-generic-table-lib/directives/anna-fixed-row-size-table-virtual-scroll-strategy/index.d.ts +0 -1
  255. package/src/lib/anna-generic-table-lib/directives/anna-virtual-table/anna-virtual-table.directive.d.ts +0 -45
  256. package/src/lib/anna-generic-table-lib/directives/anna-virtual-table/index.d.ts +0 -1
  257. package/src/lib/anna-generic-table-lib/package.json +0 -10
@@ -0,0 +1,197 @@
1
+ // Angular import statements
2
+ import { Injectable } from '@angular/core';
3
+ import { NgbDate } from '@ng-bootstrap/ng-bootstrap';
4
+
5
+ // Third party import statements
6
+ import moment from "moment";
7
+
8
+ // User defined import statements
9
+ export type NgbDateType = { year: number, month: number, day: number };
10
+
11
+ @Injectable({
12
+ providedIn: 'root'
13
+ })
14
+ export class AnnaDateTimeFormatService {
15
+
16
+ constructor() {
17
+ console.log("AnnaDateTimeFormatService service created.")
18
+ }
19
+
20
+ convertToNgbDateStandardFormat(date: any): NgbDateType | NgbDate {
21
+ return {
22
+ year: parseInt(moment(date, "MM/DD/YYYY").format("YYYY")),
23
+ month: parseInt(moment(date, "MM/DD/YYYY").format("M")),
24
+ day: parseInt(moment(date, "MM/DD/YYYY").format("D")),
25
+ };
26
+ }
27
+
28
+ convertToNgbDate(date: any, parseFormat: any): NgbDateType | NgbDate {
29
+ return {
30
+ year: parseInt(moment(date, parseFormat).format("YYYY")),
31
+ month: parseInt(moment(date, parseFormat).format("M")),
32
+ day: parseInt(moment(date, parseFormat).format("D")),
33
+ };
34
+ }
35
+
36
+ formatToTwelveHrs(time: any, callRemoveZero: boolean) {
37
+ if (time.endsWith('A') || time.endsWith('P')) {
38
+ time = time.substring(0, time.length - 1);
39
+ }
40
+ let tmp = time.split(":");
41
+ let formattedTime = [];
42
+ if (+tmp[0] > 12) {
43
+ formattedTime[0] = (+tmp[0] - 12).toString();
44
+ if (+tmp[0] == 24) formattedTime[2] = "AM";
45
+ else formattedTime[2] = "PM";
46
+ } else if (tmp[0] == "12") {
47
+ formattedTime[0] = tmp[0];
48
+ formattedTime[2] = "PM";
49
+ } else if (tmp[0] == "00") {
50
+ formattedTime[0] = "12"
51
+ formattedTime[2] = "AM";
52
+ } else {
53
+ formattedTime[0] = tmp[0];
54
+ formattedTime[2] = "AM";
55
+ }
56
+ formattedTime[1] = tmp[1];
57
+ if (callRemoveZero) formattedTime = this.removeZero(formattedTime);
58
+ return formattedTime;
59
+ }
60
+
61
+ convertTotwentyFourHrsFormat(time: any, callAddZero: any) {
62
+ let tmp = time.split(/[ :]+/);
63
+ let formattedTime = [];
64
+ if (tmp[0] != "12" && tmp[2] == "PM") {
65
+ formattedTime[0] = (+tmp[0] + 12).toString();
66
+ } else if (tmp[0] == "12" && tmp[2] == "AM") {
67
+ formattedTime[0] = "00";
68
+ } else formattedTime[0] = tmp[0].toString();
69
+ formattedTime[1] = tmp[1].toString();
70
+ if (callAddZero) formattedTime = this.addZero(formattedTime);
71
+ return formattedTime;
72
+ }
73
+
74
+ removeZero(time: any) {
75
+ let removedZero;
76
+ let formattedTime = time;
77
+ if (
78
+ time[0] == "01" ||
79
+ time[0] == "02" ||
80
+ time[0] == "03" ||
81
+ time[0] == "04" ||
82
+ time[0] == "05" ||
83
+ time[0] == "06" ||
84
+ time[0] == "07" ||
85
+ time[0] == "08" ||
86
+ time[0] == "09"
87
+ ) {
88
+ removedZero = time[0].toString();
89
+ formattedTime[0] = removedZero.charAt(1);
90
+ formattedTime[1] = time[1];
91
+ formattedTime[2] = time[2];
92
+ }
93
+ return formattedTime;
94
+ }
95
+
96
+ addZero(time: any) {
97
+ let addedZero;
98
+ let formattedTime = time;
99
+ if (time[1] == "0") time[1] = "0" + time[1];
100
+ if (
101
+ time[0] == "0" ||
102
+ time[0] == "1" ||
103
+ time[0] == "2" ||
104
+ time[0] == "3" ||
105
+ time[0] == "4" ||
106
+ time[0] == "5" ||
107
+ time[0] == "6" ||
108
+ time[0] == "7" ||
109
+ time[0] == "8" ||
110
+ time[0] == "9"
111
+ ) {
112
+ addedZero = "0" + time[0];
113
+ formattedTime[0] = addedZero;
114
+ formattedTime[1] = time[1];
115
+ }
116
+ return formattedTime;
117
+ }
118
+
119
+ sortByTimeAscending(a: any, b: any) {
120
+ let format = "HH:mm:ss";
121
+ a = moment(a, format);
122
+ b = moment(b, format);
123
+
124
+ let results;
125
+
126
+ results = a.hours() > b.hours() ? 1 : a.hours() < b.hours() ? -1 : 0;
127
+
128
+ if (results === 0) results = a.minutes() > b.minutes() ? 1 : a.minutes() < b.minutes() ? -1 : 0;
129
+
130
+ if (results === 0) results = a.seconds() > b.seconds() ? 1 : a.seconds() < b.seconds() ? -1 : 0;
131
+
132
+ return results;
133
+ }
134
+
135
+ sortByTimeDescending(a: any, b: any) {
136
+ let format = "HH:mm:ss";
137
+ a = moment(a, format);
138
+ b = moment(b, format);
139
+
140
+ let results;
141
+
142
+ results = a.hours() < b.hours() ? 1 : a.hours() > b.hours() ? -1 : 0;
143
+
144
+ if (results === 0) results = a.minutes() < b.minutes() ? 1 : a.minutes() > b.minutes() ? -1 : 0;
145
+
146
+ if (results === 0) results = a.seconds() < b.seconds() ? 1 : a.seconds() > b.seconds() ? -1 : 0;
147
+ return results;
148
+ }
149
+
150
+ convertNgbDateToMoment(ngbDate: NgbDate | NgbDateType): string {
151
+ let converted = moment();
152
+ converted.month(ngbDate.month - 1);
153
+ converted.date(ngbDate.day);
154
+ converted.year(ngbDate.year);
155
+ return converted.format("MM/DD/YYYY");
156
+ }
157
+
158
+ compareDate(a: string, b: string, isAsc: boolean) {
159
+ return isAsc ? moment(a).diff(b) : moment(b).diff(a);
160
+ }
161
+
162
+ formatDateAndHHMMATimeToStandardFormat(dateAndTime: any) {
163
+ let standardFormat, date, time;
164
+ if (dateAndTime.includes("|")) {
165
+ date = dateAndTime.slice(0, dateAndTime.indexOf("|"));
166
+ time = dateAndTime.slice(dateAndTime.indexOf('|') + 1, dateAndTime.length).trim();
167
+
168
+ time = time.slice(0, 2) + ":" + time.slice(2, 4) + " " + time.slice(4, 5);
169
+ time = time + "M";
170
+ standardFormat = date + time;
171
+ }
172
+ else {
173
+ standardFormat = dateAndTime + " 00:00 AM"
174
+ }
175
+ return moment(standardFormat).format("MM/DD/YYYY hh:mm A");
176
+ }
177
+
178
+ compare(a: number | string, b: number | string, isAsc: boolean) {
179
+ return (a < b ? -1 : 1) * (isAsc ? 1 : -1);
180
+ }
181
+
182
+ sortDataByBroadcastTimeAsc(firstParamTime: string, secondParamTime: string, broadcastTime: string) {
183
+ let format = "HH:mm:ss";
184
+
185
+ let a = moment(firstParamTime, format);
186
+ let b = moment(secondParamTime, format);
187
+
188
+ let broadcastMomentDateTime = moment(broadcastTime, "HH:mm:ss");
189
+
190
+ a = a.isBefore(broadcastMomentDateTime) ? a.add(1, "d") : a;
191
+ b = b.isBefore(broadcastMomentDateTime) ? b.add(1, "d") : b;
192
+
193
+ let result = a.isBefore(b) ? -1 : a.isAfter(b) ? 1 : 0;
194
+ return result;
195
+ }
196
+
197
+ }
@@ -0,0 +1,507 @@
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
+ import { SortType } from '../models/anna-sort.model';
9
+
10
+ // User defined import statements
11
+ import { AnnaDateTimeFormatService, NgbDateType } from './anna-date-time-format.service';
12
+ import { AnnaSortService } from './anna-sort.service';
13
+
14
+ @Injectable({
15
+ providedIn: 'root'
16
+ })
17
+ export class AnnaFilterService {
18
+
19
+ tooltipMap = new Map();
20
+ tooltipSelectedMap = new Map();
21
+ initialValueMap: Map<string, any>;
22
+ translateFunc: string;
23
+ selectedRadio: string;
24
+ subRadioButton: string;
25
+
26
+ calendarSet: Set<string>;
27
+ sliderSet: Set<string>;
28
+ timeSet: Set<string>;
29
+
30
+ includeMultiTime: boolean;
31
+ includeZeroTime: boolean;
32
+ includeTimeRange: boolean;
33
+
34
+ appliedFiltersArray: string[] = [];
35
+ flightDateRange: { minSelectedDate: any, maxSelectedDate: any };
36
+ sliderData: { min: any, max: any };
37
+ ngxSliderObj: Options;
38
+ sliderCurrencySet = new Set(["booked","cpp","cpm","rcvPreempt","osPreempt","postedAdu","scheduledAdu","audienceDeficit","Rate"]);
39
+
40
+ public static bufferSize = 20;
41
+ isFilterSortActive: any = null;
42
+
43
+ constructor(private dateTimeFormatService: AnnaDateTimeFormatService, private annaSortService: AnnaSortService) {
44
+ console.log("AnnaFilterService service created.")
45
+ const sliderArr = [
46
+ "rcvPreempt",
47
+ "osPreempt",
48
+ "rcvUnderDly",
49
+ "postedAudPercent",
50
+ "booked",
51
+ "spots",
52
+ "grp",
53
+ "cpp",
54
+ "imps",
55
+ "cpm",
56
+ "osUnderDly",
57
+ "totalWeeks",
58
+ "WeekNumber",
59
+ "Rate",
60
+ "OrderedRatingsOrImpressions",
61
+ "PostedRatingsOrImpressions", ,
62
+ "postedAudPercent",
63
+ "postedAdu",
64
+ "scheduledAdu",
65
+ "audienceDeficit",
66
+ "offeredMGs",
67
+ "outstandingPE",
68
+ "offeredADUs",
69
+ "udDeficitValue",
70
+ "bookedValue",
71
+ "bookedSpots",
72
+ "userChanges"
73
+ ];
74
+ const calendarArr = ["period", "AirDate", "flightStartDate", "flightEndDate","date", "startDate", "endDate"];
75
+ const timeArr = ["StartTimeForFilter", "EndTimeForFilter",
76
+ "start_time_for_filter", "end_time_for_filter", "startEndTimeMulti", "startEndTime"];
77
+ this.sliderSet = new Set(sliderArr);
78
+ this.calendarSet = new Set(calendarArr);
79
+ this.timeSet = new Set(timeArr);
80
+ }
81
+
82
+ returnMaxAndMinValue(data: any[], key: string, isMin: boolean) {
83
+ data = data.filter((obj) => !["", "-", null].includes(obj[key]));
84
+ const values = data.map((x) => x[key]);
85
+ let valueToReturn = isMin ? min(values) : max(values);
86
+ return valueToReturn;
87
+ }
88
+
89
+ returnMinAndMaxDate(data: any[], key: string) {
90
+ data = data.filter((obj) => !["", "-", null].includes(obj[key]));
91
+ let DateArr = data.map((obj) => moment(obj[key]));
92
+ let minDate = moment.min(DateArr);
93
+ let maxDate = moment.max(DateArr);
94
+ return [minDate, maxDate];
95
+ }
96
+
97
+ isTooltipActive(header: string[], sortMap: Map<string, SortType>): boolean {
98
+ let set: Set<string> = new Set(this.appliedFiltersArray);
99
+ if(header.length == 1){
100
+ return ( (sortMap.size > 0 && sortMap.get(header[0]) != "DEFAULT") || set.has(header[0]));
101
+ }
102
+ 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]));
103
+
104
+ }
105
+
106
+ clearColumnFilter() {
107
+ if(this.tooltipSelectedMap.has(this.selectedRadio)){
108
+ this.tooltipSelectedMap.delete(this.selectedRadio);
109
+ let appliedFilterSet: Set<string> = new Set(this.appliedFiltersArray);
110
+ appliedFilterSet.delete(this.selectedRadio);
111
+ this.appliedFiltersArray = [...appliedFilterSet];
112
+ }
113
+
114
+ if(this.annaSortService.columnSortState.has(this.selectedRadio)){
115
+ this.annaSortService.columnSortState.set(this.selectedRadio,"DEFAULT");
116
+ }
117
+
118
+ }
119
+
120
+ setOptionValues(minValue: number, maxValue: number) {
121
+ return {
122
+ floor: minValue,
123
+ ceil: maxValue,
124
+ disabled: true,
125
+ translate: this.normalTranslateFunction
126
+ };
127
+ }
128
+
129
+ percentTranslateFunction = (data: number): string => {
130
+ const val = data.toFixed(1) + "%";
131
+ return val;
132
+ };
133
+
134
+ currencyTranslateFunction = (data: number): string => {
135
+ if (data >= 1000) {
136
+ const val = (data / 1000).toFixed(1) + "k";
137
+ return "$" + val;
138
+ } else if (data != Math.floor(data)) {
139
+ return data.toFixed(1).toString();
140
+ }
141
+ return "$" + data;
142
+ };
143
+
144
+ normalTranslateFunction = (data: number): string => {
145
+ if (data >= 1000) {
146
+ const val = (data / 1000).toFixed(1) + "k";
147
+ return val;
148
+ } else if (data != Math.floor(data)) {
149
+ return data.toFixed(1).toString();
150
+ }
151
+ return data.toString();
152
+ };
153
+
154
+ findUniqueDatesWithData(data: any[]) {
155
+ let uniqueDates = uniq(data.map((u) => u["date"]));
156
+ let uniqueDatesInNgbDateFormat: NgbDateType[] = [];
157
+ uniqueDates.forEach((date: any) => {
158
+ uniqueDatesInNgbDateFormat.push(
159
+ this.dateTimeFormatService.convertToNgbDateStandardFormat(moment(date, "MM/DD/YY").format("MM/DD/YYYY"))
160
+ );
161
+ });
162
+ return uniqueDatesInNgbDateFormat;
163
+ }
164
+
165
+ reOrderAppliedFiltersArray(isHierarchialUserFiltered: boolean, date?: any) {
166
+ let isFiltered = true;
167
+ isFiltered = this.checkIfDataIsFiltered(isFiltered, isHierarchialUserFiltered, date);
168
+ this.removeOrChangeLatestFilterIndex(isFiltered);
169
+ }
170
+
171
+ checkIfDataIsFiltered(isFiltered: boolean, isHierarchialUserFiltered: boolean, date?: any) {
172
+ if (this.selectedRadio == "user" && !this.tooltipMap.has("user")) {
173
+ isFiltered = cloneDeep(isHierarchialUserFiltered);
174
+ } else if (this.selectedRadio == "StartTimeForFilter" || this.selectedRadio == "EndTimeForFilter"
175
+ || this.selectedRadio == "start_time_for_filter" || this.selectedRadio == "end_time_for_filter" || this.selectedRadio == "startEndTimeMulti") {
176
+ isFiltered = !isEqual(
177
+ this.initialValueMap.get(this.selectedRadio),
178
+ this.tooltipSelectedMap.get(this.selectedRadio)
179
+ ) || !this.includeZeroTime || !this.includeMultiTime;
180
+ }
181
+ else if (this.selectedRadio == "startEndTime" || this.selectedRadio == "TimeBand") {
182
+ isFiltered = !isEqual(this.initialValueMap.get(this.selectedRadio), this.tooltipSelectedMap.get(this.selectedRadio)) || !this.includeZeroTime || !this.includeMultiTime;
183
+ }
184
+ else if (this.sliderSet.has(this.selectedRadio)) {
185
+ isFiltered = !isEqual(this.initialValueMap.get(this.selectedRadio), this.tooltipSelectedMap.get(this.selectedRadio)) && !isEqual(this.tooltipSelectedMap.get(this.selectedRadio), this.sliderData);
186
+ if (this.selectedRadio == "postedAdu" && this.subRadioButton == "notRequired") {
187
+ isFiltered = true;
188
+ }
189
+ if (!isFiltered && this.tooltipSelectedMap.has(this.selectedRadio)) {
190
+ this.tooltipSelectedMap.delete(this.selectedRadio);
191
+ }
192
+ } else if (
193
+ this.selectedRadio == "startDate" ||
194
+ this.selectedRadio == "endDate" ||
195
+ this.selectedRadio == "period" ||
196
+ this.selectedRadio == "AirDate" ||
197
+ this.selectedRadio === "flightStartDate" ||
198
+ this.selectedRadio === "flightEndDate" ||
199
+ this.selectedRadio == "date"
200
+ ) {
201
+ isFiltered =
202
+ !isEqual(this.initialValueMap.get(this.selectedRadio), this.tooltipSelectedMap.get(this.selectedRadio)) &&
203
+ !isEqual(this.tooltipSelectedMap.get(this.selectedRadio), this.flightDateRange);
204
+ if (!isFiltered && this.tooltipSelectedMap.has(this.selectedRadio)) {
205
+ this.tooltipSelectedMap.delete(this.selectedRadio);
206
+ }
207
+ } else {
208
+ let totalOptionsCount = this.tooltipMap.get(this.selectedRadio).filter((x: any) => !x.isHidden).length;
209
+ let selectedOptionsCount = this.tooltipMap.get(this.selectedRadio).filter((x: any) => !x.isHidden && x.isSelected).length;
210
+ isFiltered = selectedOptionsCount > 0 && selectedOptionsCount != totalOptionsCount ? true : false;
211
+ }
212
+ return isFiltered;
213
+ }
214
+
215
+ removeOrChangeLatestFilterIndex(isFiltered: boolean) {
216
+ let set = new Set(this.appliedFiltersArray);
217
+
218
+ if (isFiltered && !set.has(this.selectedRadio)) {
219
+ set.add(this.selectedRadio);
220
+ } else if (isFiltered && set.has(this.selectedRadio)) {
221
+ set.delete(this.selectedRadio);
222
+ set.add(this.selectedRadio);
223
+ } else {
224
+ set.delete(this.selectedRadio);
225
+ }
226
+ this.appliedFiltersArray = [...set];
227
+ }
228
+
229
+ filterData(originalData: any[], keyToSkip: string) {
230
+ let filteredData = [...originalData];
231
+
232
+ this.tooltipSelectedMap.forEach((value, key) => {
233
+ if (key != keyToSkip) {
234
+ if (this.sliderSet.has(key)) {
235
+ filteredData = filteredData.filter((obj) => obj[key] >= value.min && obj[key] <= value.max);
236
+ }
237
+ else if (key === "startDate" || key === "endDate" || key === "AirDate" || key === "flightStartDate" || key === "flightEndDate" || key == "date") {
238
+ filteredData = filteredData.filter((obj) => this.isObjectInTheRange(obj, value, key));
239
+ } else if (key === "period" ) {
240
+ filteredData = filteredData.filter((obj) => this.getDataInTheDateRange(obj, value, key));
241
+ }
242
+ else if (key === "StartTimeForFilter" || key === "EndTimeForFilter"
243
+ || key === "start_time_for_filter" || key === "end_time_for_filter") {
244
+ filteredData = filteredData.filter((obj) => this.returnDataForFromAndToTimeRange(obj, value, key));
245
+ }
246
+ else if (key === "startEndTimeMulti" || key == "startEndTime" || key === "TimeBand") {
247
+ filteredData = filteredData.filter((obj) => this.returnDataForStartAndEndTimeRange(obj, value, key));
248
+ }
249
+ else if (value.length > 0) {
250
+ filteredData = filteredData.filter((u) => value.includes(u[key]));
251
+ }
252
+ }
253
+ });
254
+ return filteredData;
255
+ }
256
+
257
+ returnOrdersInTheRange(order: any, range: any, key: any) {
258
+ let isDateBetweenTheSelectedRange = moment(order[key]).isBetween(range.minSelectedDate, range.maxSelectedDate);
259
+ let isDateSameAsTheMinSelectedDate = moment(order[key]).isSame(range.minSelectedDate);
260
+ let isDateSameAsTheMaxSelectedDate = moment(order[key]).isSame(range.maxSelectedDate);
261
+ return isDateBetweenTheSelectedRange || isDateSameAsTheMinSelectedDate || isDateSameAsTheMaxSelectedDate;
262
+ }
263
+
264
+ returnDataForTimeRange(obj: any, selectedData: any) {
265
+ let format = "HH:mm:ss";
266
+ let selectedStartDate = moment(selectedData.startTime, format);
267
+ let selectedEndDate = moment(selectedData.endTime, format);
268
+ let startTime = moment(obj.startTime, format);
269
+ let endTime = moment(obj.endTime, format);
270
+
271
+ let isStartTimeSameAsSelectedStartTime = startTime.isSame(selectedStartDate);
272
+ let isStartTimeBetweenSelectedStartAndEndTime = startTime.isBetween(selectedStartDate, selectedEndDate);
273
+ let isEndTimeSameAsSelectedEndTime = endTime.isSame(selectedEndDate);
274
+ let isEndTimeBetweenSelectedStartAndEndTime = endTime.isBetween(selectedStartDate, selectedEndDate);
275
+
276
+ return (
277
+ (isStartTimeBetweenSelectedStartAndEndTime && isEndTimeBetweenSelectedStartAndEndTime) ||
278
+ (isStartTimeSameAsSelectedStartTime && isEndTimeSameAsSelectedEndTime) ||
279
+ (isStartTimeSameAsSelectedStartTime && isEndTimeBetweenSelectedStartAndEndTime) ||
280
+ (isStartTimeBetweenSelectedStartAndEndTime && isEndTimeSameAsSelectedEndTime)
281
+ );
282
+ }
283
+
284
+ returnDataForFromAndToTimeRange(obj: any, selectedData: any, key: any) {
285
+ let format = "HH:mm:ss";
286
+ let selectedFromTime = moment(selectedData.fromTime, format);
287
+ let selectedToTime = moment(selectedData.toTime, format);
288
+ let objTime = obj[key];
289
+
290
+ if (["", "-", null].includes(objTime)) {
291
+ return false;
292
+ }
293
+ if (selectedData.includeMulti && obj[key] == "<multi>") {
294
+ return true;
295
+ }
296
+ if (!selectedData.includeMulti && obj[key] == "<multi>") {
297
+ return false;
298
+ }
299
+ if (selectedData.includeZero && obj[key] == "0") {
300
+ return true;
301
+ }
302
+ if (!selectedData.includeZero && obj[key] == "0") {
303
+ return false;
304
+ }
305
+ if (!selectedData.includeTimeRange) {
306
+ return false;
307
+ }
308
+
309
+
310
+ let momentTime = moment(objTime,format);
311
+
312
+ let isObjTimeSameAsSelectedFromTime = momentTime.isSame(selectedFromTime);
313
+ let isObjTimeSameAsSelectedToTime = momentTime.isSame(selectedToTime);
314
+ let isObjTimeBetweenSelectedFromTimeAndToTime = momentTime.isBetween(selectedFromTime, selectedToTime);
315
+
316
+ return (
317
+ isObjTimeSameAsSelectedFromTime ||
318
+ isObjTimeSameAsSelectedToTime ||
319
+ isObjTimeBetweenSelectedFromTimeAndToTime
320
+ );
321
+ }
322
+
323
+ returnDataForStartAndEndTimeRange(obj: any, selectedData:any, key: string) {
324
+ let format = "HH:mm:ss";
325
+ let selectedFromTime = moment(selectedData.fromTime, format);
326
+ let selectedToTime = moment(selectedData.toTime, format);
327
+
328
+ if(selectedData.includeMulti && obj[key][0] == "<multi>") {
329
+ return true;
330
+ }
331
+
332
+ if(!selectedData.includeMulti && obj[key][0] == "<multi>") {
333
+ return false;
334
+ }
335
+
336
+ if(selectedData.includeZero && obj[key][0] == "0") {
337
+ return true;
338
+ }
339
+
340
+ if(!selectedData.includeZero && obj[key][0] == "0") {
341
+ return false;
342
+ }
343
+
344
+ if(!selectedData.includeTimeRange) {
345
+ return false;
346
+ }
347
+
348
+ let startTime = moment(obj[key][1], format);
349
+ let endTime = moment(obj[key][2], format);
350
+
351
+ let isStartTimeSameAsSelectedStartTime = startTime.isSame(selectedFromTime);
352
+ let isStartTimeBetweenSelectedStartAndEndTime = startTime.isBetween(selectedFromTime, selectedToTime);
353
+ let isEndTimeSameAsSelectedEndTime = endTime.isSame(selectedToTime);
354
+ let isEndTimeBetweenSelectedStartAndEndTime = endTime.isBetween(selectedFromTime, selectedToTime);
355
+
356
+ return (
357
+ (isStartTimeBetweenSelectedStartAndEndTime && isEndTimeBetweenSelectedStartAndEndTime) ||
358
+ (isStartTimeSameAsSelectedStartTime && isEndTimeSameAsSelectedEndTime) ||
359
+ (isStartTimeSameAsSelectedStartTime && isEndTimeBetweenSelectedStartAndEndTime) ||
360
+ (isStartTimeBetweenSelectedStartAndEndTime && isEndTimeSameAsSelectedEndTime)
361
+ );
362
+
363
+ }
364
+
365
+ getDataInTheDateRange(obj: any, value: any, key: any) {
366
+ let parsingFormat: string;
367
+ if (key === "period") {
368
+ parsingFormat = "YYYY-MM-DD";
369
+
370
+ let momentStartDate = moment(obj.startDate);
371
+ let momentEndDate = moment(obj.endDate);
372
+
373
+ let startDateIsBetweenSelDate = momentStartDate.isBetween(
374
+ value.fromDate,
375
+ value.toDate
376
+ );
377
+ let endDateIsBetweenSelDate = momentEndDate.isBetween(
378
+ value.fromDate,
379
+ value.toDate
380
+ );
381
+
382
+
383
+ let startDateIsSameAsSelStartDate = value.fromDate.isSame(momentStartDate);
384
+ let endDateIsSameAsSelEndDate = value.toDate.isSame(momentEndDate);
385
+
386
+ return (
387
+ (startDateIsBetweenSelDate || startDateIsSameAsSelStartDate) &&
388
+ (endDateIsBetweenSelDate || endDateIsSameAsSelEndDate)
389
+ );
390
+ } else if (key === "AirDate" || key === "flightStartDate" || key === "flightEndDate") {
391
+ parsingFormat = "MM/DD/YYYY";
392
+ let dateIsBetweenSelDate = moment(obj[key], parsingFormat).isBetween(value.minSelectedDate, value.maxSelectedDate);
393
+
394
+ let dateIsSameAsSelStartDate = moment(obj[key], parsingFormat).isSame(value.minSelectedDate);
395
+ let dateIsSameAsSelEndDate = moment(obj[key], parsingFormat).isSame(value.maxSelectedDate);
396
+
397
+ return dateIsBetweenSelDate || dateIsSameAsSelStartDate || dateIsSameAsSelEndDate;
398
+ }
399
+ }
400
+
401
+
402
+ public initializeTimeFilterData(clonedData: any[], key = "startEndTime") {
403
+ let startTimeArr = map(clonedData, "startTime");
404
+ let endTimeArr = map(clonedData, "endTime");
405
+
406
+ startTimeArr.sort((a: any, b: any) => {
407
+ return this.dateTimeFormatService.sortByTimeAscending(a, b);
408
+ });
409
+
410
+ endTimeArr.sort((a: any, b: any) => {
411
+ return this.dateTimeFormatService.sortByTimeDescending(a, b);
412
+ });
413
+
414
+ let initialStartEndTime = {
415
+ startTime: startTimeArr[0],
416
+ endTime: endTimeArr[0],
417
+ };
418
+ this.initialValueMap.set(key, initialStartEndTime);
419
+ }
420
+
421
+ returnColumnFilterStatus(data: any[], headerName: string | number) {
422
+
423
+ if(headerName == "startEndTime"){
424
+ let time = data.map(u => u[headerName][0]);
425
+ let uniqTime = uniq(time);
426
+ return uniqTime.length == 0;
427
+ }
428
+
429
+ return uniq(data.map((u) => u[headerName])).length > 1 ? false : true;
430
+ }
431
+
432
+ getFilterOptionsData(data: any[], clonedData: any[]){
433
+ let appliedFilterSet = new Set(this.appliedFiltersArray);
434
+ if(appliedFilterSet.has(this.selectedRadio)){
435
+ return this.filterData(clonedData, this.selectedRadio);
436
+ }
437
+ else{
438
+ return data;
439
+ }
440
+ }
441
+
442
+ reOrderAppliedFiltersState(clonedData: any[], value: any){
443
+ let isFiltered = true;
444
+ isFiltered = this.checkIfFilterIsApplied(clonedData,value);
445
+ this.removeOrChangeLatestFilterIndex(isFiltered);
446
+ return isFiltered;
447
+ }
448
+
449
+ checkIfFilterIsApplied(clonedData: any[],value: any){
450
+ let initialValueOfColumn = sortBy(clonedData.map(item => item[this.selectedRadio]));
451
+ let currentValueOfColumn = sortBy(this.applyFilter(clonedData,value).map(item => item[this.selectedRadio]));
452
+ return !isEqual(initialValueOfColumn, currentValueOfColumn);
453
+ }
454
+
455
+ applyFilter(data: any[],value: any){
456
+ let filteredData = data;
457
+ let key = this.selectedRadio;
458
+ if (this.sliderSet.has(key)) {
459
+ filteredData = filteredData.filter((obj) => obj[key] >= value.min && obj[key] <= value.max);
460
+ }
461
+ else if (key === "startDate" || key === "endDate" || key === "AirDate" || key === "flightStartDate" || key === "flightEndDate" || key == "date") {
462
+ filteredData = filteredData.filter((obj) => this.isObjectInTheRange(obj, value, key));
463
+ } else if (key === "period" ) {
464
+ filteredData = filteredData.filter((obj) => this.getDataInTheDateRange(obj, value, key));
465
+ }
466
+ else if (key === "StartTimeForFilter" || key === "EndTimeForFilter"
467
+ || key === "start_time_for_filter" || key === "end_time_for_filter") {
468
+ filteredData = filteredData.filter((obj) => this.returnDataForFromAndToTimeRange(obj, value, key));
469
+ }
470
+ else if (key === "startEndTimeMulti" || key == "startEndTime" || key === "TimeBand") {
471
+ filteredData = filteredData.filter((obj) => this.returnDataForStartAndEndTimeRange(obj, value, key));
472
+ }
473
+ else if (value.length > 0) {
474
+ filteredData = filteredData.filter((u) => value.includes(u[key]));
475
+ }
476
+ return filteredData;
477
+ }
478
+
479
+ isObjectInTheRange(obj: any, value: {fromDate: moment.Moment, toDate: moment.Moment},key:string){
480
+ let objVal = obj[key];
481
+ let momentDate = moment(objVal);
482
+ let isDateSameAsStartOfTheRange = value.fromDate.isSame(objVal);
483
+ let isDateSameAsEndOfTheRange = value.toDate.isSame(objVal);
484
+ let isDateBetweenTheStartAndEndOfRange = momentDate.isBetween(value.fromDate,value.toDate);
485
+ return isDateSameAsStartOfTheRange || isDateSameAsEndOfTheRange || isDateBetweenTheStartAndEndOfRange;
486
+ }
487
+
488
+ updateStateOfTheCurrentFilterTab(sortMap: Map<string, SortType>){
489
+ let activeKey = this.selectedRadio;
490
+ let keyArr: string[] = [];
491
+ Object.keys(this.isFilterSortActive).forEach(key => {
492
+ if(key.includes(activeKey)){
493
+ keyArr = key.split(",");
494
+ this.isFilterSortActive[key] = this.isTooltipActive(keyArr, sortMap);
495
+ }
496
+ });
497
+
498
+ }
499
+
500
+ updateStateOfAllTheKeys(sortMap: Map<string, SortType>){
501
+ Object.keys(this.isFilterSortActive).forEach(key => {
502
+ let keyArr = key.split(",");
503
+ this.isFilterSortActive[key] = this.isTooltipActive(keyArr,sortMap);
504
+ })
505
+ }
506
+
507
+ }