@annalib/anna-core 0.0.2 → 0.0.3

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