@annalib/anna-core 0.0.4 → 1.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (240) hide show
  1. package/.browserslistrc +16 -0
  2. package/karma.conf.js +44 -0
  3. package/ng-package.json +10 -0
  4. package/package.json +17 -61
  5. package/src/lib/anna-core-shared-lib/anna-core-shared-lib.module.ts +42 -0
  6. package/src/lib/anna-core-shared-lib/components/anna-buyer-approval-icon-template/anna-buyer-approval-icon-template.component.html +22 -0
  7. package/src/lib/anna-core-shared-lib/components/anna-buyer-approval-icon-template/anna-buyer-approval-icon-template.component.scss +0 -0
  8. package/src/lib/anna-core-shared-lib/components/anna-buyer-approval-icon-template/anna-buyer-approval-icon-template.component.spec.ts +25 -0
  9. package/src/lib/anna-core-shared-lib/components/anna-buyer-approval-icon-template/anna-buyer-approval-icon-template.component.ts +15 -0
  10. package/src/lib/anna-core-shared-lib/components/anna-live-icon-template/anna-live-icon-template.component.html +20 -0
  11. package/src/lib/anna-core-shared-lib/components/anna-live-icon-template/anna-live-icon-template.component.scss +0 -0
  12. package/src/lib/anna-core-shared-lib/components/anna-live-icon-template/anna-live-icon-template.component.spec.ts +25 -0
  13. package/src/lib/anna-core-shared-lib/components/anna-live-icon-template/anna-live-icon-template.component.ts +15 -0
  14. package/src/lib/anna-core-shared-lib/components/anna-no-data/anna-no-data.component.html +3 -0
  15. package/src/lib/anna-core-shared-lib/components/anna-no-data/anna-no-data.component.scss +16 -0
  16. package/src/lib/anna-core-shared-lib/components/anna-no-data/anna-no-data.component.spec.ts +24 -0
  17. package/src/lib/anna-core-shared-lib/components/anna-no-data/anna-no-data.component.ts +20 -0
  18. package/src/lib/anna-core-shared-lib/components/anna-notify-icon-template/anna-notify-icon-template.component.html +23 -0
  19. package/src/lib/anna-core-shared-lib/components/anna-notify-icon-template/anna-notify-icon-template.component.scss +0 -0
  20. package/src/lib/anna-core-shared-lib/components/anna-notify-icon-template/anna-notify-icon-template.component.spec.ts +25 -0
  21. package/src/lib/anna-core-shared-lib/components/anna-notify-icon-template/anna-notify-icon-template.component.ts +15 -0
  22. package/src/lib/anna-core-shared-lib/components/anna-pay-for-performance-icon-template/anna-pay-for-performance-icon-template.component.html +15 -0
  23. package/src/lib/anna-core-shared-lib/components/anna-pay-for-performance-icon-template/anna-pay-for-performance-icon-template.component.scss +0 -0
  24. package/src/lib/anna-core-shared-lib/components/anna-pay-for-performance-icon-template/anna-pay-for-performance-icon-template.component.spec.ts +25 -0
  25. package/src/lib/anna-core-shared-lib/components/anna-pay-for-performance-icon-template/anna-pay-for-performance-icon-template.component.ts +19 -0
  26. package/src/lib/anna-core-shared-lib/components/anna-rejected-icon-template/anna-rejected-icon-template.component.html +14 -0
  27. package/src/lib/anna-core-shared-lib/components/anna-rejected-icon-template/anna-rejected-icon-template.component.scss +0 -0
  28. package/src/lib/anna-core-shared-lib/components/anna-rejected-icon-template/anna-rejected-icon-template.component.spec.ts +25 -0
  29. package/src/lib/anna-core-shared-lib/components/anna-rejected-icon-template/anna-rejected-icon-template.component.ts +15 -0
  30. package/src/lib/anna-core-shared-lib/constants/shared.constant.ts +34 -0
  31. package/src/lib/anna-core-shared-lib/index.ts +1 -0
  32. package/src/lib/anna-core-shared-lib/models/anna-generic-data-type.model.ts +10 -0
  33. package/{lib/anna-core-shared-lib/models/anna-global-dropdown-config.model.d.ts → src/lib/anna-core-shared-lib/models/anna-global-dropdown-config.model.ts} +21 -9
  34. package/{lib/anna-core-shared-lib/models/anna-non-editable-gt-models.d.ts → src/lib/anna-core-shared-lib/models/anna-non-editable-gt-models.ts} +34 -24
  35. package/src/lib/anna-core-shared-lib/models/anna-sort.model.ts +7 -0
  36. package/src/lib/anna-core-shared-lib/models/anna-tooltip.model.ts +40 -0
  37. package/src/lib/anna-core-shared-lib/ng-package.json +5 -0
  38. package/src/lib/anna-core-shared-lib/pipes/annaFilterSearchedText.pipe.ts +26 -0
  39. package/{lib/anna-core-shared-lib/public-api.d.ts → src/lib/anna-core-shared-lib/public-api.ts} +12 -0
  40. package/src/lib/anna-core-shared-lib/scss/_colors.scss +107 -0
  41. package/src/lib/anna-core-shared-lib/scss/_filters.scss +577 -0
  42. package/src/lib/anna-core-shared-lib/scss/_fonts.scss +86 -0
  43. package/src/lib/anna-core-shared-lib/scss/_sort.scss +30 -0
  44. package/src/lib/anna-core-shared-lib/services/anna-date-time-format.service.ts +197 -0
  45. package/src/lib/anna-core-shared-lib/services/anna-filter.service.ts +689 -0
  46. package/src/lib/anna-core-shared-lib/services/anna-generic-table.service.ts +44 -0
  47. package/src/lib/anna-core-shared-lib/services/anna-global-config.service.ts +170 -0
  48. package/src/lib/anna-core-shared-lib/services/anna-sort.service.ts +179 -0
  49. package/src/lib/anna-dropdown-lib/anna-dropdown-lib.module.ts +31 -0
  50. package/src/lib/anna-dropdown-lib/components/anna-calendar-filter/anna-calendar-filter.component.html +46 -0
  51. package/src/lib/anna-dropdown-lib/components/anna-calendar-filter/anna-calendar-filter.component.scss +153 -0
  52. package/src/lib/anna-dropdown-lib/components/anna-calendar-filter/anna-calendar-filter.component.spec.ts +24 -0
  53. package/src/lib/anna-dropdown-lib/components/anna-calendar-filter/anna-calendar-filter.component.ts +103 -0
  54. package/src/lib/anna-dropdown-lib/components/anna-week-calendar-filter/anna-week-calendar-filter.component.html +129 -0
  55. package/src/lib/anna-dropdown-lib/components/anna-week-calendar-filter/anna-week-calendar-filter.component.scss +275 -0
  56. package/src/lib/anna-dropdown-lib/components/anna-week-calendar-filter/anna-week-calendar-filter.component.spec.ts +24 -0
  57. package/src/lib/anna-dropdown-lib/components/anna-week-calendar-filter/anna-week-calendar-filter.component.ts +410 -0
  58. package/src/lib/anna-dropdown-lib/index.ts +1 -0
  59. package/src/lib/anna-dropdown-lib/ng-package.json +5 -0
  60. package/{lib/anna-dropdown-lib/public-api.d.ts → src/lib/anna-dropdown-lib/public-api.ts} +4 -1
  61. package/src/lib/anna-generic-table-lib/anna-generic-table-lib.module.ts +56 -0
  62. package/src/lib/anna-generic-table-lib/components/anna-non-editable-generic-table/anna-non-editable-generic-table.component.html +855 -0
  63. package/src/lib/anna-generic-table-lib/components/anna-non-editable-generic-table/anna-non-editable-generic-table.component.scss +488 -0
  64. package/src/lib/anna-generic-table-lib/components/anna-non-editable-generic-table/anna-non-editable-generic-table.component.spec.ts +25 -0
  65. package/src/lib/anna-generic-table-lib/components/anna-non-editable-generic-table/anna-non-editable-generic-table.component.ts +1748 -0
  66. package/src/lib/anna-generic-table-lib/components/anna-sort/anna-sort.component.html +10 -0
  67. package/src/lib/anna-generic-table-lib/components/anna-sort/anna-sort.component.scss +1 -0
  68. package/src/lib/anna-generic-table-lib/components/anna-sort/anna-sort.component.spec.ts +24 -0
  69. package/src/lib/anna-generic-table-lib/components/anna-sort/anna-sort.component.ts +74 -0
  70. package/src/lib/anna-generic-table-lib/components/anna-table-virtual-scroll-viewport/anna-table-virtual-scroll-viewport.component.html +13 -0
  71. package/src/lib/anna-generic-table-lib/components/anna-table-virtual-scroll-viewport/anna-table-virtual-scroll-viewport.component.scss +88 -0
  72. package/src/lib/anna-generic-table-lib/components/anna-table-virtual-scroll-viewport/anna-table-virtual-scroll-viewport.component.spec.ts +25 -0
  73. package/src/lib/anna-generic-table-lib/components/anna-table-virtual-scroll-viewport/anna-table-virtual-scroll-viewport.component.ts +460 -0
  74. package/src/lib/anna-generic-table-lib/directives/anna-fixed-row-size-table-virtual-scroll-strategy/anna-fixed-row-size-table-virtual-scroll-strategy.directive.ts +237 -0
  75. package/{lib/anna-generic-table-lib/directives/anna-fixed-row-size-table-virtual-scroll-strategy/index.d.ts → src/lib/anna-generic-table-lib/directives/anna-fixed-row-size-table-virtual-scroll-strategy/index.ts} +0 -0
  76. package/src/lib/anna-generic-table-lib/directives/anna-virtual-table/anna-virtual-table.directive.ts +204 -0
  77. package/{lib/anna-generic-table-lib/directives/anna-virtual-table/index.d.ts → src/lib/anna-generic-table-lib/directives/anna-virtual-table/index.ts} +0 -0
  78. package/src/lib/anna-generic-table-lib/index.ts +1 -0
  79. package/src/lib/anna-generic-table-lib/ng-package.json +5 -0
  80. package/{lib/anna-generic-table-lib/public-api.d.ts → src/lib/anna-generic-table-lib/public-api.ts} +5 -0
  81. package/{public-api.d.ts → src/public-api.ts} +5 -0
  82. package/src/test.ts +27 -0
  83. package/tsconfig.lib.json +16 -0
  84. package/tsconfig.lib.prod.json +10 -0
  85. package/tsconfig.spec.json +17 -0
  86. package/annalib-anna-core.d.ts +0 -5
  87. package/esm2020/annalib-anna-core.mjs +0 -5
  88. package/esm2020/lib/anna-core-shared-lib/anna-core-shared-lib.module.mjs +0 -59
  89. package/esm2020/lib/anna-core-shared-lib/components/anna-buyer-approval-icon-template/anna-buyer-approval-icon-template.component.mjs +0 -15
  90. package/esm2020/lib/anna-core-shared-lib/components/anna-live-icon-template/anna-live-icon-template.component.mjs +0 -15
  91. package/esm2020/lib/anna-core-shared-lib/components/anna-no-data/anna-no-data.component.mjs +0 -22
  92. package/esm2020/lib/anna-core-shared-lib/components/anna-notify-icon-template/anna-notify-icon-template.component.mjs +0 -15
  93. package/esm2020/lib/anna-core-shared-lib/components/anna-pay-for-performance-icon-template/anna-pay-for-performance-icon-template.component.mjs +0 -21
  94. package/esm2020/lib/anna-core-shared-lib/components/anna-rejected-icon-template/anna-rejected-icon-template.component.mjs +0 -15
  95. package/esm2020/lib/anna-core-shared-lib/constants/shared.constant.mjs +0 -34
  96. package/esm2020/lib/anna-core-shared-lib/index.mjs +0 -2
  97. package/esm2020/lib/anna-core-shared-lib/models/anna-generic-data-type.model.mjs +0 -2
  98. package/esm2020/lib/anna-core-shared-lib/models/anna-global-dropdown-config.model.mjs +0 -2
  99. package/esm2020/lib/anna-core-shared-lib/models/anna-non-editable-gt-models.mjs +0 -3
  100. package/esm2020/lib/anna-core-shared-lib/models/anna-tooltip.model.mjs +0 -26
  101. package/esm2020/lib/anna-core-shared-lib/pipes/annaFilterSearchedText.pipe.mjs +0 -31
  102. package/esm2020/lib/anna-core-shared-lib/public-api.mjs +0 -25
  103. package/esm2020/lib/anna-core-shared-lib/services/anna-date-time-format.service.mjs +0 -180
  104. package/esm2020/lib/anna-core-shared-lib/services/anna-filter.service.mjs +0 -536
  105. package/esm2020/lib/anna-core-shared-lib/services/anna-generic-table.service.mjs +0 -52
  106. package/esm2020/lib/anna-core-shared-lib/services/anna-global-config.service.mjs +0 -133
  107. package/esm2020/lib/anna-core-shared-lib/services/anna-sort.service.mjs +0 -185
  108. package/esm2020/lib/anna-dropdown-lib/anna-dropdown-lib.module.mjs +0 -43
  109. package/esm2020/lib/anna-dropdown-lib/components/anna-calendar-filter/anna-calendar-filter.component.mjs +0 -76
  110. package/esm2020/lib/anna-dropdown-lib/components/anna-week-calendar-filter/anna-week-calendar-filter.component.mjs +0 -360
  111. package/esm2020/lib/anna-dropdown-lib/index.mjs +0 -2
  112. package/esm2020/lib/anna-dropdown-lib/public-api.mjs +0 -6
  113. package/esm2020/lib/anna-generic-table-lib/anna-generic-table-lib.module.mjs +0 -86
  114. package/esm2020/lib/anna-generic-table-lib/components/anna-non-editable-generic-table/anna-non-editable-generic-table.component.mjs +0 -991
  115. package/esm2020/lib/anna-generic-table-lib/components/anna-sort/anna-sort.component.mjs +0 -125
  116. package/esm2020/lib/anna-generic-table-lib/components/anna-table-virtual-scroll-viewport/anna-table-virtual-scroll-viewport.component.mjs +0 -357
  117. package/esm2020/lib/anna-generic-table-lib/directives/anna-fixed-row-size-table-virtual-scroll-strategy/anna-fixed-row-size-table-virtual-scroll-strategy.directive.mjs +0 -189
  118. package/esm2020/lib/anna-generic-table-lib/directives/anna-fixed-row-size-table-virtual-scroll-strategy/index.mjs +0 -2
  119. package/esm2020/lib/anna-generic-table-lib/directives/anna-virtual-table/anna-virtual-table.directive.mjs +0 -178
  120. package/esm2020/lib/anna-generic-table-lib/directives/anna-virtual-table/index.mjs +0 -2
  121. package/esm2020/lib/anna-generic-table-lib/index.mjs +0 -2
  122. package/esm2020/lib/anna-generic-table-lib/public-api.mjs +0 -10
  123. package/esm2020/public-api.mjs +0 -7
  124. package/esm2020/src/lib/anna-core-shared-lib/anna-core-shared-lib.module.mjs +0 -59
  125. package/esm2020/src/lib/anna-core-shared-lib/annalib-anna-core-src-lib-anna-core-shared-lib.mjs +0 -5
  126. package/esm2020/src/lib/anna-core-shared-lib/components/anna-buyer-approval-icon-template/anna-buyer-approval-icon-template.component.mjs +0 -15
  127. package/esm2020/src/lib/anna-core-shared-lib/components/anna-live-icon-template/anna-live-icon-template.component.mjs +0 -15
  128. package/esm2020/src/lib/anna-core-shared-lib/components/anna-no-data/anna-no-data.component.mjs +0 -22
  129. package/esm2020/src/lib/anna-core-shared-lib/components/anna-notify-icon-template/anna-notify-icon-template.component.mjs +0 -15
  130. package/esm2020/src/lib/anna-core-shared-lib/components/anna-pay-for-performance-icon-template/anna-pay-for-performance-icon-template.component.mjs +0 -21
  131. package/esm2020/src/lib/anna-core-shared-lib/components/anna-rejected-icon-template/anna-rejected-icon-template.component.mjs +0 -15
  132. package/esm2020/src/lib/anna-core-shared-lib/constants/shared.constant.mjs +0 -34
  133. package/esm2020/src/lib/anna-core-shared-lib/models/anna-generic-data-type.model.mjs +0 -2
  134. package/esm2020/src/lib/anna-core-shared-lib/models/anna-global-dropdown-config.model.mjs +0 -2
  135. package/esm2020/src/lib/anna-core-shared-lib/models/anna-non-editable-gt-models.mjs +0 -3
  136. package/esm2020/src/lib/anna-core-shared-lib/models/anna-tooltip.model.mjs +0 -26
  137. package/esm2020/src/lib/anna-core-shared-lib/pipes/annaFilterSearchedText.pipe.mjs +0 -31
  138. package/esm2020/src/lib/anna-core-shared-lib/public-api.mjs +0 -25
  139. package/esm2020/src/lib/anna-core-shared-lib/services/anna-date-time-format.service.mjs +0 -180
  140. package/esm2020/src/lib/anna-core-shared-lib/services/anna-filter.service.mjs +0 -536
  141. package/esm2020/src/lib/anna-core-shared-lib/services/anna-generic-table.service.mjs +0 -52
  142. package/esm2020/src/lib/anna-core-shared-lib/services/anna-global-config.service.mjs +0 -133
  143. package/esm2020/src/lib/anna-core-shared-lib/services/anna-sort.service.mjs +0 -185
  144. package/esm2020/src/lib/anna-dropdown-lib/anna-dropdown-lib.module.mjs +0 -43
  145. package/esm2020/src/lib/anna-dropdown-lib/annalib-anna-core-src-lib-anna-dropdown-lib.mjs +0 -5
  146. package/esm2020/src/lib/anna-dropdown-lib/components/anna-calendar-filter/anna-calendar-filter.component.mjs +0 -76
  147. package/esm2020/src/lib/anna-dropdown-lib/components/anna-week-calendar-filter/anna-week-calendar-filter.component.mjs +0 -360
  148. package/esm2020/src/lib/anna-dropdown-lib/public-api.mjs +0 -6
  149. package/esm2020/src/lib/anna-generic-table-lib/anna-generic-table-lib.module.mjs +0 -86
  150. package/esm2020/src/lib/anna-generic-table-lib/annalib-anna-core-src-lib-anna-generic-table-lib.mjs +0 -5
  151. package/esm2020/src/lib/anna-generic-table-lib/components/anna-non-editable-generic-table/anna-non-editable-generic-table.component.mjs +0 -991
  152. package/esm2020/src/lib/anna-generic-table-lib/components/anna-sort/anna-sort.component.mjs +0 -125
  153. package/esm2020/src/lib/anna-generic-table-lib/components/anna-table-virtual-scroll-viewport/anna-table-virtual-scroll-viewport.component.mjs +0 -357
  154. package/esm2020/src/lib/anna-generic-table-lib/directives/anna-fixed-row-size-table-virtual-scroll-strategy/anna-fixed-row-size-table-virtual-scroll-strategy.directive.mjs +0 -189
  155. package/esm2020/src/lib/anna-generic-table-lib/directives/anna-fixed-row-size-table-virtual-scroll-strategy/index.mjs +0 -2
  156. package/esm2020/src/lib/anna-generic-table-lib/directives/anna-virtual-table/anna-virtual-table.directive.mjs +0 -178
  157. package/esm2020/src/lib/anna-generic-table-lib/directives/anna-virtual-table/index.mjs +0 -2
  158. package/esm2020/src/lib/anna-generic-table-lib/public-api.mjs +0 -10
  159. package/fesm2015/annalib-anna-core-src-lib-anna-core-shared-lib.mjs +0 -1294
  160. package/fesm2015/annalib-anna-core-src-lib-anna-core-shared-lib.mjs.map +0 -1
  161. package/fesm2015/annalib-anna-core-src-lib-anna-dropdown-lib.mjs +0 -474
  162. package/fesm2015/annalib-anna-core-src-lib-anna-dropdown-lib.mjs.map +0 -1
  163. package/fesm2015/annalib-anna-core-src-lib-anna-generic-table-lib.mjs +0 -1887
  164. package/fesm2015/annalib-anna-core-src-lib-anna-generic-table-lib.mjs.map +0 -1
  165. package/fesm2015/annalib-anna-core.mjs +0 -3629
  166. package/fesm2015/annalib-anna-core.mjs.map +0 -1
  167. package/fesm2020/annalib-anna-core-src-lib-anna-core-shared-lib.mjs +0 -1294
  168. package/fesm2020/annalib-anna-core-src-lib-anna-core-shared-lib.mjs.map +0 -1
  169. package/fesm2020/annalib-anna-core-src-lib-anna-dropdown-lib.mjs +0 -472
  170. package/fesm2020/annalib-anna-core-src-lib-anna-dropdown-lib.mjs.map +0 -1
  171. package/fesm2020/annalib-anna-core-src-lib-anna-generic-table-lib.mjs +0 -1886
  172. package/fesm2020/annalib-anna-core-src-lib-anna-generic-table-lib.mjs.map +0 -1
  173. package/fesm2020/annalib-anna-core.mjs +0 -3626
  174. package/fesm2020/annalib-anna-core.mjs.map +0 -1
  175. package/lib/anna-core-shared-lib/anna-core-shared-lib.module.d.ts +0 -14
  176. package/lib/anna-core-shared-lib/components/anna-buyer-approval-icon-template/anna-buyer-approval-icon-template.component.d.ts +0 -8
  177. package/lib/anna-core-shared-lib/components/anna-live-icon-template/anna-live-icon-template.component.d.ts +0 -8
  178. package/lib/anna-core-shared-lib/components/anna-no-data/anna-no-data.component.d.ts +0 -11
  179. package/lib/anna-core-shared-lib/components/anna-notify-icon-template/anna-notify-icon-template.component.d.ts +0 -8
  180. package/lib/anna-core-shared-lib/components/anna-pay-for-performance-icon-template/anna-pay-for-performance-icon-template.component.d.ts +0 -11
  181. package/lib/anna-core-shared-lib/components/anna-rejected-icon-template/anna-rejected-icon-template.component.d.ts +0 -8
  182. package/lib/anna-core-shared-lib/constants/shared.constant.d.ts +0 -32
  183. package/lib/anna-core-shared-lib/index.d.ts +0 -1
  184. package/lib/anna-core-shared-lib/models/anna-generic-data-type.model.d.ts +0 -8
  185. package/lib/anna-core-shared-lib/models/anna-tooltip.model.d.ts +0 -21
  186. package/lib/anna-core-shared-lib/pipes/annaFilterSearchedText.pipe.d.ts +0 -9
  187. package/lib/anna-core-shared-lib/services/anna-date-time-format.service.d.ts +0 -25
  188. package/lib/anna-core-shared-lib/services/anna-filter.service.d.ts +0 -68
  189. package/lib/anna-core-shared-lib/services/anna-generic-table.service.d.ts +0 -14
  190. package/lib/anna-core-shared-lib/services/anna-global-config.service.d.ts +0 -21
  191. package/lib/anna-core-shared-lib/services/anna-sort.service.d.ts +0 -23
  192. package/lib/anna-dropdown-lib/anna-dropdown-lib.module.d.ts +0 -11
  193. package/lib/anna-dropdown-lib/components/anna-calendar-filter/anna-calendar-filter.component.d.ts +0 -29
  194. package/lib/anna-dropdown-lib/components/anna-week-calendar-filter/anna-week-calendar-filter.component.d.ts +0 -67
  195. package/lib/anna-dropdown-lib/index.d.ts +0 -1
  196. package/lib/anna-generic-table-lib/anna-generic-table-lib.module.d.ts +0 -21
  197. package/lib/anna-generic-table-lib/components/anna-non-editable-generic-table/anna-non-editable-generic-table.component.d.ts +0 -171
  198. package/lib/anna-generic-table-lib/components/anna-sort/anna-sort.component.d.ts +0 -27
  199. package/lib/anna-generic-table-lib/components/anna-table-virtual-scroll-viewport/anna-table-virtual-scroll-viewport.component.d.ts +0 -141
  200. package/lib/anna-generic-table-lib/directives/anna-fixed-row-size-table-virtual-scroll-strategy/anna-fixed-row-size-table-virtual-scroll-strategy.directive.d.ts +0 -89
  201. package/lib/anna-generic-table-lib/directives/anna-virtual-table/anna-virtual-table.directive.d.ts +0 -45
  202. package/lib/anna-generic-table-lib/index.d.ts +0 -1
  203. package/src/lib/anna-core-shared-lib/anna-core-shared-lib.module.d.ts +0 -14
  204. package/src/lib/anna-core-shared-lib/annalib-anna-core-src-lib-anna-core-shared-lib.d.ts +0 -5
  205. package/src/lib/anna-core-shared-lib/components/anna-buyer-approval-icon-template/anna-buyer-approval-icon-template.component.d.ts +0 -8
  206. package/src/lib/anna-core-shared-lib/components/anna-live-icon-template/anna-live-icon-template.component.d.ts +0 -8
  207. package/src/lib/anna-core-shared-lib/components/anna-no-data/anna-no-data.component.d.ts +0 -11
  208. package/src/lib/anna-core-shared-lib/components/anna-notify-icon-template/anna-notify-icon-template.component.d.ts +0 -8
  209. package/src/lib/anna-core-shared-lib/components/anna-pay-for-performance-icon-template/anna-pay-for-performance-icon-template.component.d.ts +0 -11
  210. package/src/lib/anna-core-shared-lib/components/anna-rejected-icon-template/anna-rejected-icon-template.component.d.ts +0 -8
  211. package/src/lib/anna-core-shared-lib/constants/shared.constant.d.ts +0 -32
  212. package/src/lib/anna-core-shared-lib/models/anna-generic-data-type.model.d.ts +0 -8
  213. package/src/lib/anna-core-shared-lib/models/anna-global-dropdown-config.model.d.ts +0 -95
  214. package/src/lib/anna-core-shared-lib/models/anna-non-editable-gt-models.d.ts +0 -70
  215. package/src/lib/anna-core-shared-lib/models/anna-tooltip.model.d.ts +0 -21
  216. package/src/lib/anna-core-shared-lib/package.json +0 -10
  217. package/src/lib/anna-core-shared-lib/pipes/annaFilterSearchedText.pipe.d.ts +0 -9
  218. package/src/lib/anna-core-shared-lib/public-api.d.ts +0 -18
  219. package/src/lib/anna-core-shared-lib/services/anna-date-time-format.service.d.ts +0 -25
  220. package/src/lib/anna-core-shared-lib/services/anna-filter.service.d.ts +0 -68
  221. package/src/lib/anna-core-shared-lib/services/anna-generic-table.service.d.ts +0 -14
  222. package/src/lib/anna-core-shared-lib/services/anna-global-config.service.d.ts +0 -21
  223. package/src/lib/anna-core-shared-lib/services/anna-sort.service.d.ts +0 -23
  224. package/src/lib/anna-dropdown-lib/anna-dropdown-lib.module.d.ts +0 -11
  225. package/src/lib/anna-dropdown-lib/annalib-anna-core-src-lib-anna-dropdown-lib.d.ts +0 -5
  226. package/src/lib/anna-dropdown-lib/components/anna-calendar-filter/anna-calendar-filter.component.d.ts +0 -29
  227. package/src/lib/anna-dropdown-lib/components/anna-week-calendar-filter/anna-week-calendar-filter.component.d.ts +0 -67
  228. package/src/lib/anna-dropdown-lib/package.json +0 -10
  229. package/src/lib/anna-dropdown-lib/public-api.d.ts +0 -3
  230. package/src/lib/anna-generic-table-lib/anna-generic-table-lib.module.d.ts +0 -21
  231. package/src/lib/anna-generic-table-lib/annalib-anna-core-src-lib-anna-generic-table-lib.d.ts +0 -5
  232. package/src/lib/anna-generic-table-lib/components/anna-non-editable-generic-table/anna-non-editable-generic-table.component.d.ts +0 -171
  233. package/src/lib/anna-generic-table-lib/components/anna-sort/anna-sort.component.d.ts +0 -27
  234. package/src/lib/anna-generic-table-lib/components/anna-table-virtual-scroll-viewport/anna-table-virtual-scroll-viewport.component.d.ts +0 -141
  235. package/src/lib/anna-generic-table-lib/directives/anna-fixed-row-size-table-virtual-scroll-strategy/anna-fixed-row-size-table-virtual-scroll-strategy.directive.d.ts +0 -89
  236. package/src/lib/anna-generic-table-lib/directives/anna-fixed-row-size-table-virtual-scroll-strategy/index.d.ts +0 -1
  237. package/src/lib/anna-generic-table-lib/directives/anna-virtual-table/anna-virtual-table.directive.d.ts +0 -45
  238. package/src/lib/anna-generic-table-lib/directives/anna-virtual-table/index.d.ts +0 -1
  239. package/src/lib/anna-generic-table-lib/package.json +0 -10
  240. package/src/lib/anna-generic-table-lib/public-api.d.ts +0 -6
@@ -1,52 +0,0 @@
1
- // Angular import statements
2
- import { Injectable } from "@angular/core";
3
- // Third party import statements
4
- import { Subject } from "rxjs";
5
- //sub-entries of anna lib import statement
6
- import { AnnaSortService } from './anna-sort.service';
7
- import { AnnaFilterService } from "./anna-filter.service";
8
- import * as i0 from "@angular/core";
9
- import * as i1 from "./anna-filter.service";
10
- import * as i2 from "./anna-sort.service";
11
- export class AnnaGenericTableService {
12
- constructor(annaFilterService, annaSortService) {
13
- this.annaFilterService = annaFilterService;
14
- this.annaSortService = annaSortService;
15
- this.virtualScrollSubject = new Subject();
16
- }
17
- calculateNumberOfSkeletonColumnsForTable(tableHeaders) {
18
- let numberOfSkeletonColumns = [];
19
- var headersInEachColumn = 0;
20
- tableHeaders.forEach((column) => {
21
- if (column.visible) {
22
- headersInEachColumn = 0;
23
- column.headerInfo.forEach(() => {
24
- headersInEachColumn++;
25
- });
26
- numberOfSkeletonColumns.push(Array(headersInEachColumn).fill(0));
27
- }
28
- });
29
- return numberOfSkeletonColumns;
30
- }
31
- initColumnFilterAndSorting() {
32
- this.annaFilterService.tooltipMap = new Map();
33
- this.annaFilterService.tooltipSelectedMap = new Map();
34
- this.annaFilterService.selectedRadio = null;
35
- this.annaFilterService.appliedFiltersArray = [];
36
- this.annaFilterService.initialValueMap = new Map();
37
- this.annaSortService.tooltip = null;
38
- this.annaSortService.sortByAsc = new Map();
39
- this.annaSortService.sortByDesc = new Map();
40
- this.annaSortService.keySorted = null;
41
- this.annaSortService.isAsc = false;
42
- }
43
- }
44
- AnnaGenericTableService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: AnnaGenericTableService, deps: [{ token: i1.AnnaFilterService }, { token: i2.AnnaSortService }], target: i0.ɵɵFactoryTarget.Injectable });
45
- AnnaGenericTableService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: AnnaGenericTableService, providedIn: "root" });
46
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: AnnaGenericTableService, decorators: [{
47
- type: Injectable,
48
- args: [{
49
- providedIn: "root",
50
- }]
51
- }], ctorParameters: function () { return [{ type: i1.AnnaFilterService }, { type: i2.AnnaSortService }]; } });
52
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5uYS1nZW5lcmljLXRhYmxlLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbm5hLWNvcmUvc3JjL2xpYi9hbm5hLWNvcmUtc2hhcmVkLWxpYi9zZXJ2aWNlcy9hbm5hLWdlbmVyaWMtdGFibGUuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSw0QkFBNEI7QUFDNUIsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUzQyxnQ0FBZ0M7QUFDaEMsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUUvQiwwQ0FBMEM7QUFDMUMsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDOzs7O0FBSzFELE1BQU0sT0FBTyx1QkFBdUI7SUFHbEMsWUFBb0IsaUJBQW9DLEVBQzlDLGVBQWdDO1FBRHRCLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBbUI7UUFDOUMsb0JBQWUsR0FBZixlQUFlLENBQWlCO1FBRjFDLHlCQUFvQixHQUFHLElBQUksT0FBTyxFQUFFLENBQUM7SUFFTyxDQUFDO0lBRTdDLHdDQUF3QyxDQUFDLFlBQW1CO1FBQzFELElBQUksdUJBQXVCLEdBQVksRUFBRSxDQUFDO1FBQzFDLElBQUksbUJBQW1CLEdBQUcsQ0FBQyxDQUFDO1FBQzVCLFlBQVksQ0FBQyxPQUFPLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRTtZQUM1QixJQUFJLE1BQU0sQ0FBQyxPQUFPLEVBQUU7Z0JBQ2hCLG1CQUFtQixHQUFHLENBQUMsQ0FBQztnQkFDeEIsTUFBTSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFO29CQUMvQixtQkFBbUIsRUFBRSxDQUFDO2dCQUN0QixDQUFDLENBQUMsQ0FBQTtnQkFDRix1QkFBdUIsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLG1CQUFtQixDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7YUFDcEU7UUFDTCxDQUFDLENBQUMsQ0FBQTtRQUNGLE9BQU8sdUJBQXVCLENBQUM7SUFDakMsQ0FBQztJQUVELDBCQUEwQjtRQUN4QixJQUFJLENBQUMsaUJBQWlCLENBQUMsVUFBVSxHQUFHLElBQUksR0FBRyxFQUFFLENBQUM7UUFDOUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLGtCQUFrQixHQUFHLElBQUksR0FBRyxFQUFFLENBQUM7UUFDdEQsSUFBSSxDQUFDLGlCQUFpQixDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUM7UUFDNUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLG1CQUFtQixHQUFHLEVBQUUsQ0FBQztRQUNoRCxJQUFJLENBQUMsaUJBQWlCLENBQUMsZUFBZSxHQUFHLElBQUksR0FBRyxFQUFFLENBQUM7UUFFbkQsSUFBSSxDQUFDLGVBQWUsQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDO1FBQ3BDLElBQUksQ0FBQyxlQUFlLENBQUMsU0FBUyxHQUFHLElBQUksR0FBRyxFQUFFLENBQUM7UUFDM0MsSUFBSSxDQUFDLGVBQWUsQ0FBQyxVQUFVLEdBQUcsSUFBSSxHQUFHLEVBQUUsQ0FBQztRQUM1QyxJQUFJLENBQUMsZUFBZSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUM7UUFDdEMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO0lBQ3JDLENBQUM7O29IQWpDVSx1QkFBdUI7d0hBQXZCLHVCQUF1QixjQUZ0QixNQUFNOzJGQUVQLHVCQUF1QjtrQkFIbkMsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBBbmd1bGFyIGltcG9ydCBzdGF0ZW1lbnRzXHJcbmltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5cclxuLy8gVGhpcmQgcGFydHkgaW1wb3J0IHN0YXRlbWVudHNcclxuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gXCJyeGpzXCI7XHJcblxyXG4vL3N1Yi1lbnRyaWVzIG9mIGFubmEgbGliIGltcG9ydCBzdGF0ZW1lbnRcclxuaW1wb3J0IHsgQW5uYVNvcnRTZXJ2aWNlIH0gZnJvbSAnLi9hbm5hLXNvcnQuc2VydmljZSc7XHJcbmltcG9ydCB7IEFubmFGaWx0ZXJTZXJ2aWNlIH0gZnJvbSBcIi4vYW5uYS1maWx0ZXIuc2VydmljZVwiO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46IFwicm9vdFwiLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgQW5uYUdlbmVyaWNUYWJsZVNlcnZpY2Uge1xyXG5cclxuICB2aXJ0dWFsU2Nyb2xsU3ViamVjdCA9IG5ldyBTdWJqZWN0KCk7XHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBhbm5hRmlsdGVyU2VydmljZTogQW5uYUZpbHRlclNlcnZpY2UsIFxyXG4gICAgcHJpdmF0ZSBhbm5hU29ydFNlcnZpY2U6IEFubmFTb3J0U2VydmljZSl7fVxyXG5cclxuICBjYWxjdWxhdGVOdW1iZXJPZlNrZWxldG9uQ29sdW1uc0ZvclRhYmxlKHRhYmxlSGVhZGVyczogYW55W10pOiBudW1iZXJbXVtdIHtcclxuICAgIGxldCBudW1iZXJPZlNrZWxldG9uQ29sdW1uczogYW55W11bXSA9IFtdO1xyXG4gICAgdmFyIGhlYWRlcnNJbkVhY2hDb2x1bW4gPSAwO1xyXG4gICAgdGFibGVIZWFkZXJzLmZvckVhY2goKGNvbHVtbikgPT4ge1xyXG4gICAgICAgIGlmIChjb2x1bW4udmlzaWJsZSkge1xyXG4gICAgICAgICAgICBoZWFkZXJzSW5FYWNoQ29sdW1uID0gMDtcclxuICAgICAgICAgICAgY29sdW1uLmhlYWRlckluZm8uZm9yRWFjaCgoKSA9PiB7XHJcbiAgICAgICAgICAgIGhlYWRlcnNJbkVhY2hDb2x1bW4rKztcclxuICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgbnVtYmVyT2ZTa2VsZXRvbkNvbHVtbnMucHVzaChBcnJheShoZWFkZXJzSW5FYWNoQ29sdW1uKS5maWxsKDApKTtcclxuICAgICAgICB9XHJcbiAgICB9KVxyXG4gICAgcmV0dXJuIG51bWJlck9mU2tlbGV0b25Db2x1bW5zO1xyXG4gIH1cclxuXHJcbiAgaW5pdENvbHVtbkZpbHRlckFuZFNvcnRpbmcoKSB7XHJcbiAgICB0aGlzLmFubmFGaWx0ZXJTZXJ2aWNlLnRvb2x0aXBNYXAgPSBuZXcgTWFwKCk7XHJcbiAgICB0aGlzLmFubmFGaWx0ZXJTZXJ2aWNlLnRvb2x0aXBTZWxlY3RlZE1hcCA9IG5ldyBNYXAoKTtcclxuICAgIHRoaXMuYW5uYUZpbHRlclNlcnZpY2Uuc2VsZWN0ZWRSYWRpbyA9IG51bGw7XHJcbiAgICB0aGlzLmFubmFGaWx0ZXJTZXJ2aWNlLmFwcGxpZWRGaWx0ZXJzQXJyYXkgPSBbXTtcclxuICAgIHRoaXMuYW5uYUZpbHRlclNlcnZpY2UuaW5pdGlhbFZhbHVlTWFwID0gbmV3IE1hcCgpO1xyXG5cclxuICAgIHRoaXMuYW5uYVNvcnRTZXJ2aWNlLnRvb2x0aXAgPSBudWxsO1xyXG4gICAgdGhpcy5hbm5hU29ydFNlcnZpY2Uuc29ydEJ5QXNjID0gbmV3IE1hcCgpO1xyXG4gICAgdGhpcy5hbm5hU29ydFNlcnZpY2Uuc29ydEJ5RGVzYyA9IG5ldyBNYXAoKTtcclxuICAgIHRoaXMuYW5uYVNvcnRTZXJ2aWNlLmtleVNvcnRlZCA9IG51bGw7XHJcbiAgICB0aGlzLmFubmFTb3J0U2VydmljZS5pc0FzYyA9IGZhbHNlO1xyXG4gIH1cclxuXHJcblxyXG59XHJcbiJdfQ==
@@ -1,133 +0,0 @@
1
- import { Injectable } from "@angular/core";
2
- import * as i0 from "@angular/core";
3
- export class AnnaGlobalConfigService {
4
- /*
5
- Initializing all default settings
6
- */
7
- constructor() {
8
- console.log("AnnaGlobalConfigService service created.");
9
- this.defaultAngular2MultiSelectSettings = {
10
- text: "Select option",
11
- selectAllText: "Select All",
12
- unSelectAllText: "UnSelect All",
13
- badgeShowLimit: 1,
14
- singleSelection: false,
15
- classes: "filter-dropdowns",
16
- enableSearchFilter: true,
17
- enableCheckAll: true,
18
- autoPosition: false,
19
- disabled: false,
20
- position: "bottom",
21
- lazyLoading: false,
22
- showCheckbox: true,
23
- maxHeight: 300,
24
- enableFilterSelectAll: true,
25
- };
26
- this.defaultNgxAsideSettings = {
27
- title: '"Filters"',
28
- cancelButtonTitle: '"Cancel"',
29
- submitButtonTitle: '"Apply"',
30
- closeOnEscape: false,
31
- showOverlay: false,
32
- showDefaultFooter: false,
33
- showDefaultHeader: false,
34
- };
35
- this.defaultNgbDatePickerSettings = {
36
- autoClose: false,
37
- placeholder: "mm-dd-yyyy",
38
- displayMonths: 1,
39
- firstDayOfWeek: 1,
40
- showWeekNumbers: false,
41
- readonly: true,
42
- };
43
- this.defaultNgSelectSettings = {
44
- allowClear: false,
45
- placeholder: "Select",
46
- };
47
- this.defaultNgxInfiniteScrollSettings = {
48
- infiniteScrollDistance: 1,
49
- infiniteScrollUpDistance: 2,
50
- infiniteScrollThrottle: 300,
51
- scrollWindow: false,
52
- };
53
- this.defaultNgxSkeletonLoaderSettings = {
54
- numberOfSkeletonRows: Array(6).fill(0),
55
- };
56
- this.defaultRadioButtonsComponentConfig = {
57
- heading: "Select Option",
58
- radioButtons: [
59
- {
60
- value: "Yes",
61
- isDisabled: false,
62
- label: "Yes",
63
- class: "",
64
- },
65
- {
66
- value: "No",
67
- isDisabled: false,
68
- label: "No",
69
- class: "",
70
- },
71
- ],
72
- };
73
- this.defaultConfirmationPopupConfig = {
74
- showCancelButton: true,
75
- title: "Are you sure ?",
76
- showConfirmButton: true,
77
- cancelButtonLabel: "No",
78
- confirmButtonLabel: "Yes",
79
- showCloseIcon: true,
80
- backdrop: "static",
81
- windowClass: "",
82
- size: "sm",
83
- keyboard: false,
84
- };
85
- this.defaultWeekCalendarConfig = {
86
- firstDayOfWeek: 1,
87
- showWeekNumbers: true,
88
- dateFormatToDisplay: "d MMM y",
89
- dateFormatForRequest: "y-MM-dd",
90
- maxWeeksToShowWithRemainingCount: 2,
91
- numberOfMonthsToEnableInPast: 1,
92
- selectMultipleWeeks: false,
93
- customClass: "",
94
- emitMultipleWeekObjects: true,
95
- maxWeeksToSelect: 0,
96
- showAsDropdown: true,
97
- selectCurrentWeek: true,
98
- };
99
- this.defaultGtHeaderConfig = {
100
- iconColumn: false,
101
- checkboxColumn: false,
102
- lastColumnKeys: []
103
- };
104
- this.defaultGtGeneralConfig = {
105
- component: "",
106
- totalRow: false,
107
- isHeaderChecked: false,
108
- disableHeaderCheckbox: false,
109
- verticalScrollOffsetForFilterTooltip: 0,
110
- isGrouped: false,
111
- showAllColumnFilter: true,
112
- bufferSize: 20,
113
- page: ""
114
- };
115
- this.defaultSingleSelectConfig = {
116
- showSearchBar: false,
117
- placeholder: "Select",
118
- classes: "",
119
- position: "BOTTOM",
120
- maxHeightOfList: 200
121
- };
122
- this.defaultMultiSelectConfig = { ...this.defaultSingleSelectConfig, ...{ showErrorWhenNoOptionSelected: true } };
123
- }
124
- }
125
- AnnaGlobalConfigService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: AnnaGlobalConfigService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
126
- AnnaGlobalConfigService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: AnnaGlobalConfigService, providedIn: "root" });
127
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: AnnaGlobalConfigService, decorators: [{
128
- type: Injectable,
129
- args: [{
130
- providedIn: "root",
131
- }]
132
- }], ctorParameters: function () { return []; } });
133
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5uYS1nbG9iYWwtY29uZmlnLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbm5hLWNvcmUvc3JjL2xpYi9hbm5hLWNvcmUtc2hhcmVkLWxpYi9zZXJ2aWNlcy9hbm5hLWdsb2JhbC1jb25maWcuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQXNCM0MsTUFBTSxPQUFPLHVCQUF1QjtJQWVoQzs7TUFFRTtJQUNGO1FBQ0ksT0FBTyxDQUFDLEdBQUcsQ0FBQywwQ0FBMEMsQ0FBQyxDQUFDO1FBQ3hELElBQUksQ0FBQyxrQ0FBa0MsR0FBRztZQUN0QyxJQUFJLEVBQUUsZUFBZTtZQUNyQixhQUFhLEVBQUUsWUFBWTtZQUMzQixlQUFlLEVBQUUsY0FBYztZQUMvQixjQUFjLEVBQUUsQ0FBQztZQUNqQixlQUFlLEVBQUUsS0FBSztZQUN0QixPQUFPLEVBQUUsa0JBQWtCO1lBQzNCLGtCQUFrQixFQUFFLElBQUk7WUFDeEIsY0FBYyxFQUFFLElBQUk7WUFDcEIsWUFBWSxFQUFFLEtBQUs7WUFDbkIsUUFBUSxFQUFFLEtBQUs7WUFDZixRQUFRLEVBQUUsUUFBUTtZQUNsQixXQUFXLEVBQUUsS0FBSztZQUNsQixZQUFZLEVBQUUsSUFBSTtZQUNsQixTQUFTLEVBQUUsR0FBRztZQUNkLHFCQUFxQixFQUFFLElBQUk7U0FDOUIsQ0FBQztRQUVGLElBQUksQ0FBQyx1QkFBdUIsR0FBRztZQUMzQixLQUFLLEVBQUUsV0FBVztZQUNsQixpQkFBaUIsRUFBRSxVQUFVO1lBQzdCLGlCQUFpQixFQUFFLFNBQVM7WUFDNUIsYUFBYSxFQUFFLEtBQUs7WUFDcEIsV0FBVyxFQUFFLEtBQUs7WUFDbEIsaUJBQWlCLEVBQUUsS0FBSztZQUN4QixpQkFBaUIsRUFBRSxLQUFLO1NBQzNCLENBQUM7UUFFRixJQUFJLENB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QUFHLElBQUksQ0FBQyx5QkFBeUIsRUFBRSxHQUFHLEVBQUMsNkJBQTZCLEVBQUUsSUFBSSxFQUFDLEVBQUMsQ0FBQztJQUNsSCxDQUFDOztvSEFsSlEsdUJBQXVCO3dIQUF2Qix1QkFBdUIsY0FGcEIsTUFBTTsyRkFFVCx1QkFBdUI7a0JBSG5DLFVBQVU7bUJBQUM7b0JBQ1IsVUFBVSxFQUFFLE1BQU07aUJBQ3JCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7XHJcbiAgICBJQW5ndWxhcjJNdWx0aVNlbGVjdFNldHRpbmdzLFxyXG4gICAgSU5neEFzaWRlU2V0dGluZ3MsXHJcbiAgICBJTmdiRGF0ZVBpY2tlclNldHRpbmdzLFxyXG4gICAgSU5nU2VsZWN0U2V0dGluZ3MsXHJcbiAgICBJTmd4SW5maW5pdGVTY3JvbGxTZXR0aW5ncyxcclxuICAgIElOZ3hTa2VsZXRvbkxvYWRlclNldHRpbmdzLFxyXG4gICAgSVJhZGlvQnV0dG9uQ29tcG9uZW50Q29uZmlnLFxyXG4gICAgSUNvbmZpcm1hdGlvblBvcHVwQ29uZmlnLFxyXG4gICAgSVdlZWtDYWxlbmRhcixcclxuICAgIElDdXN0b21TaW5nbGVTZWxlY3QsXHJcbiAgICBJQ3VzdG9tTXVsdGlTZWxlY3QsXHJcbn0gZnJvbSBcIi4uL21vZGVscy9hbm5hLWdsb2JhbC1kcm9wZG93bi1jb25maWcubW9kZWxcIjtcclxuaW1wb3J0IHtcclxuICAgIElHdEhlYWRlckNvbmZpZyxcclxuICAgIElHdEdlbmVyYWxDb25maWdcclxufSBmcm9tIFwiLi4vbW9kZWxzL2FubmEtbm9uLWVkaXRhYmxlLWd0LW1vZGVsc1wiO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gICAgcHJvdmlkZWRJbjogXCJyb290XCIsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBbm5hR2xvYmFsQ29uZmlnU2VydmljZSB7XHJcbiAgICByZWFkb25seSBkZWZhdWx0QW5ndWxhcjJNdWx0aVNlbGVjdFNldHRpbmdzOiBJQW5ndWxhcjJNdWx0aVNlbGVjdFNldHRpbmdzO1xyXG4gICAgcmVhZG9ubHkgZGVmYXVsdE5neEFzaWRlU2V0dGluZ3M6IElOZ3hBc2lkZVNldHRpbmdzO1xyXG4gICAgcmVhZG9ubHkgZGVmYXVsdE5nYkRhdGVQaWNrZXJTZXR0aW5nczogSU5nYkRhdGVQaWNrZXJTZXR0aW5ncztcclxuICAgIHJlYWRvbmx5IGRlZmF1bHROZ1NlbGVjdFNldHRpbmdzOiBJTmdTZWxlY3RTZXR0aW5ncztcclxuICAgIHJlYWRvbmx5IGRlZmF1bHROZ3hJbmZpbml0ZVNjcm9sbFNldHRpbmdzOiBJTmd4SW5maW5pdGVTY3JvbGxTZXR0aW5ncztcclxuICAgIHJlYWRvbmx5IGRlZmF1bHROZ3hTa2VsZXRvbkxvYWRlclNldHRpbmdzOiBJTmd4U2tlbGV0b25Mb2FkZXJTZXR0aW5ncztcclxuICAgIHJlYWRvbmx5IGRlZmF1bHRSYWRpb0J1dHRvbnNDb21wb25lbnRDb25maWc6IElSYWRpb0J1dHRvbkNvbXBvbmVudENvbmZpZztcclxuICAgIHJlYWRvbmx5IGRlZmF1bHRDb25maXJtYXRpb25Qb3B1cENvbmZpZzogSUNvbmZpcm1hdGlvblBvcHVwQ29uZmlnO1xyXG4gICAgcmVhZG9ubHkgZGVmYXVsdFdlZWtDYWxlbmRhckNvbmZpZzogSVdlZWtDYWxlbmRhcjtcclxuICAgIHJlYWRvbmx5IGRlZmF1bHRHdEhlYWRlckNvbmZpZzogSUd0SGVhZGVyQ29uZmlnO1xyXG4gICAgcmVhZG9ubHkgZGVmYXVsdEd0R2VuZXJhbENvbmZpZzogSUd0R2VuZXJhbENvbmZpZztcclxuICAgIHJlYWRvbmx5IGRlZmF1bHRTaW5nbGVTZWxlY3RDb25maWc6IElDdXN0b21TaW5nbGVTZWxlY3Q7XHJcbiAgICByZWFkb25seSBkZWZhdWx0TXVsdGlTZWxlY3RDb25maWc6IElDdXN0b21NdWx0aVNlbGVjdDtcclxuXHJcbiAgICAvKlxyXG4gICAgIEluaXRpYWxpemluZyBhbGwgZGVmYXVsdCBzZXR0aW5nc1xyXG4gICAgKi9cclxuICAgIGNvbnN0cnVjdG9yKCkge1xyXG4gICAgICAgIGNvbnNvbGUubG9nKFwiQW5uYUdsb2JhbENvbmZpZ1NlcnZpY2Ugc2VydmljZSBjcmVhdGVkLlwiKTtcclxuICAgICAgICB0aGlzLmRlZmF1bHRBbmd1bGFyMk11bHRpU2VsZWN0U2V0dGluZ3MgPSB7XHJcbiAgICAgICAgICAgIHRleHQ6IFwiU2VsZWN0IG9wdGlvblwiLFxyXG4gICAgICAgICAgICBzZWxlY3RBbGxUZXh0OiBcIlNlbGVjdCBBbGxcIixcclxuICAgICAgICAgICAgdW5TZWxlY3RBbGxUZXh0OiBcIlVuU2VsZWN0IEFsbFwiLFxyXG4gICAgICAgICAgICBiYWRnZVNob3dMaW1pdDogMSxcclxuICAgICAgICAgICAgc2luZ2xlU2VsZWN0aW9uOiBmYWxzZSxcclxuICAgICAgICAgICAgY2xhc3NlczogXCJmaWx0ZXItZHJvcGRvd25zXCIsXHJcbiAgICAgICAgICAgIGVuYWJsZVNlYXJjaEZpbHRlcjogdHJ1ZSxcclxuICAgICAgICAgICAgZW5hYmxlQ2hlY2tBbGw6IHRydWUsXHJcbiAgICAgICAgICAgIGF1dG9Qb3NpdGlvbjogZmFsc2UsXHJcbiAgICAgICAgICAgIGRpc2FibGVkOiBmYWxzZSxcclxuICAgICAgICAgICAgcG9zaXRpb246IFwiYm90dG9tXCIsXHJcbiAgICAgICAgICAgIGxhenlMb2FkaW5nOiBmYWxzZSxcclxuICAgICAgICAgICAgc2hvd0NoZWNrYm94OiB0cnVlLFxyXG4gICAgICAgICAgICBtYXhIZWlnaHQ6IDMwMCxcclxuICAgICAgICAgICAgZW5hYmxlRmlsdGVyU2VsZWN0QWxsOiB0cnVlLFxyXG4gICAgICAgIH07XHJcblxyXG4gICAgICAgIHRoaXMuZGVmYXVsdE5neEFzaWRlU2V0dGluZ3MgPSB7XHJcbiAgICAgICAgICAgIHRpdGxlOiAnXCJGaWx0ZXJzXCInLFxyXG4gICAgICAgICAgICBjYW5jZWxCdXR0b25UaXRsZTogJ1wiQ2FuY2VsXCInLFxyXG4gICAgICAgICAgICBzdWJtaXRCdXR0b25UaXRsZTogJ1wiQXBwbHlcIicsXHJcbiAgICAgICAgICAgIGNsb3NlT25Fc2NhcGU6IGZhbHNlLFxyXG4gICAgICAgICAgICBzaG93T3ZlcmxheTogZmFsc2UsXHJcbiAgICAgICAgICAgIHNob3dEZWZhdWx0Rm9vdGVyOiBmYWxzZSxcclxuICAgICAgICAgICAgc2hvd0RlZmF1bHRIZWFkZXI6IGZhbHNlLFxyXG4gICAgICAgIH07XHJcblxyXG4gICAgICAgIHRoaXMuZGVmYXVsdE5nYkRhdGVQaWNrZXJTZXR0aW5ncyA9IHtcclxuICAgICAgICAgICAgYXV0b0Nsb3NlOiBmYWxzZSxcclxuICAgICAgICAgICAgcGxhY2Vob2xkZXI6IFwibW0tZGQteXl5eVwiLFxyXG4gICAgICAgICAgICBkaXNwbGF5TW9udGhzOiAxLFxyXG4gICAgICAgICAgICBmaXJzdERheU9mV2VlazogMSxcclxuICAgICAgICAgICAgc2hvd1dlZWtOdW1iZXJzOiBmYWxzZSxcclxuICAgICAgICAgICAgcmVhZG9ubHk6IHRydWUsXHJcbiAgICAgICAgfTtcclxuXHJcbiAgICAgICAgdGhpcy5kZWZhdWx0TmdTZWxlY3RTZXR0aW5ncyA9IHtcclxuICAgICAgICAgICAgYWxsb3dDbGVhcjogZmFsc2UsXHJcbiAgICAgICAgICAgIHBsYWNlaG9sZGVyOiBcIlNlbGVjdFwiLFxyXG4gICAgICAgIH07XHJcblxyXG4gICAgICAgIHRoaXMuZGVmYXVsdE5neEluZmluaXRlU2Nyb2xsU2V0dGluZ3MgPSB7XHJcbiAgICAgICAgICAgIGluZmluaXRlU2Nyb2xsRGlzdGFuY2U6IDEsXHJcbiAgICAgICAgICAgIGluZmluaXRlU2Nyb2xsVXBEaXN0YW5jZTogMixcclxuICAgICAgICAgICAgaW5maW5pdGVTY3JvbGxUaHJvdHRsZTogMzAwLFxyXG4gICAgICAgICAgICBzY3JvbGxXaW5kb3c6IGZhbHNlLFxyXG4gICAgICAgIH07XHJcblxyXG4gICAgICAgIHRoaXMuZGVmYXVsdE5neFNrZWxldG9uTG9hZGVyU2V0dGluZ3MgPSB7XHJcbiAgICAgICAgICAgIG51bWJlck9mU2tlbGV0b25Sb3dzOiBBcnJheSg2KS5maWxsKDApLFxyXG4gICAgICAgIH07XHJcblxyXG4gICAgICAgIHRoaXMuZGVmYXVsdFJhZGlvQnV0dG9uc0NvbXBvbmVudENvbmZpZyA9IHtcclxuICAgICAgICAgICAgaGVhZGluZzogXCJTZWxlY3QgT3B0aW9uXCIsXHJcbiAgICAgICAgICAgIHJhZGlvQnV0dG9uczogW1xyXG4gICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICAgIHZhbHVlOiBcIlllc1wiLFxyXG4gICAgICAgICAgICAgICAgICAgIGlzRGlzYWJsZWQ6IGZhbHNlLFxyXG4gICAgICAgICAgICAgICAgICAgIGxhYmVsOiBcIlllc1wiLFxyXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzOiBcIlwiLFxyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICAgICB2YWx1ZTogXCJOb1wiLFxyXG4gICAgICAgICAgICAgICAgICAgIGlzRGlzYWJsZWQ6IGZhbHNlLFxyXG4gICAgICAgICAgICAgICAgICAgIGxhYmVsOiBcIk5vXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M6IFwiXCIsXHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICBdLFxyXG4gICAgICAgIH07XHJcblxyXG4gICAgICAgIHRoaXMuZGVmYXVsdENvbmZpcm1hdGlvblBvcHVwQ29uZmlnID0ge1xyXG4gICAgICAgICAgICBzaG93Q2FuY2VsQnV0dG9uOiB0cnVlLFxyXG4gICAgICAgICAgICB0aXRsZTogXCJBcmUgeW91IHN1cmUgP1wiLFxyXG4gICAgICAgICAgICBzaG93Q29uZmlybUJ1dHRvbjogdHJ1ZSxcclxuICAgICAgICAgICAgY2FuY2VsQnV0dG9uTGFiZWw6IFwiTm9cIixcclxuICAgICAgICAgICAgY29uZmlybUJ1dHRvbkxhYmVsOiBcIlllc1wiLFxyXG4gICAgICAgICAgICBzaG93Q2xvc2VJY29uOiB0cnVlLFxyXG4gICAgICAgICAgICBiYWNrZHJvcDogXCJzdGF0aWNcIixcclxuICAgICAgICAgICAgd2luZG93Q2xhc3M6IFwiXCIsXHJcbiAgICAgICAgICAgIHNpemU6IFwic21cIixcclxuICAgICAgICAgICAga2V5Ym9hcmQ6IGZhbHNlLFxyXG4gICAgICAgIH07XHJcblxyXG4gICAgICAgIHRoaXMuZGVmYXVsdFdlZWtDYWxlbmRhckNvbmZpZyA9IHtcclxuICAgICAgICAgICAgZmlyc3REYXlPZldlZWs6IDEsXHJcbiAgICAgICAgICAgIHNob3dXZWVrTnVtYmVyczogdHJ1ZSxcclxuICAgICAgICAgICAgZGF0ZUZvcm1hdFRvRGlzcGxheTogXCJkIE1NTSB5XCIsXHJcbiAgICAgICAgICAgIGRhdGVGb3JtYXRGb3JSZXF1ZXN0OiBcInktTU0tZGRcIixcclxuICAgICAgICAgICAgbWF4V2Vla3NUb1Nob3dXaXRoUmVtYWluaW5nQ291bnQ6IDIsXHJcbiAgICAgICAgICAgIG51bWJlck9mTW9udGhzVG9FbmFibGVJblBhc3Q6IDEsXHJcbiAgICAgICAgICAgIHNlbGVjdE11bHRpcGxlV2Vla3M6IGZhbHNlLFxyXG4gICAgICAgICAgICBjdXN0b21DbGFzczogXCJcIixcclxuICAgICAgICAgICAgZW1pdE11bHRpcGxlV2Vla09iamVjdHM6IHRydWUsXHJcbiAgICAgICAgICAgIG1heFdlZWtzVG9TZWxlY3Q6IDAsXHJcbiAgICAgICAgICAgIHNob3dBc0Ryb3Bkb3duOiB0cnVlLFxyXG4gICAgICAgICAgICBzZWxlY3RDdXJyZW50V2VlazogdHJ1ZSxcclxuICAgICAgICB9O1xyXG5cclxuICAgICAgICB0aGlzLmRlZmF1bHRHdEhlYWRlckNvbmZpZyA9IHtcclxuICAgICAgICAgICAgaWNvbkNvbHVtbjogZmFsc2UsXHJcbiAgICAgICAgICAgIGNoZWNrYm94Q29sdW1uOiBmYWxzZSxcclxuICAgICAgICAgICAgbGFzdENvbHVtbktleXM6IFtdXHJcbiAgICAgICAgfTtcclxuXHJcbiAgICAgICAgdGhpcy5kZWZhdWx0R3RHZW5lcmFsQ29uZmlnID0ge1xyXG4gICAgICAgICAgICBjb21wb25lbnQ6IFwiXCIsXHJcbiAgICAgICAgICAgIHRvdGFsUm93OiBmYWxzZSxcclxuICAgICAgICAgICAgaXNIZWFkZXJDaGVja2VkOiBmYWxzZSxcclxuICAgICAgICAgICAgZGlzYWJsZUhlYWRlckNoZWNrYm94OiBmYWxzZSxcclxuICAgICAgICAgICAgdmVydGljYWxTY3JvbGxPZmZzZXRGb3JGaWx0ZXJUb29sdGlwOiAwLFxyXG4gICAgICAgICAgICBpc0dyb3VwZWQ6IGZhbHNlLFxyXG4gICAgICAgICAgICBzaG93QWxsQ29sdW1uRmlsdGVyOiB0cnVlLFxyXG4gICAgICAgICAgICBidWZmZXJTaXplOiAyMCxcclxuICAgICAgICAgICAgcGFnZTogXCJcIlxyXG4gICAgICAgIH07XHJcblxyXG4gICAgICAgIHRoaXMuZGVmYXVsdFNpbmdsZVNlbGVjdENvbmZpZyA9IHtcclxuICAgICAgICAgICAgc2hvd1NlYXJjaEJhcjogZmFsc2UsXHJcbiAgICAgICAgICAgIHBsYWNlaG9sZGVyOiAgXCJTZWxlY3RcIixcclxuICAgICAgICAgICAgY2xhc3NlczogXCJcIixcclxuICAgICAgICAgICAgcG9zaXRpb246IFwiQk9UVE9NXCIsXHJcbiAgICAgICAgICAgIG1heEhlaWdodE9mTGlzdDogMjAwXHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLmRlZmF1bHRNdWx0aVNlbGVjdENvbmZpZyA9IHsuLi50aGlzLmRlZmF1bHRTaW5nbGVTZWxlY3RDb25maWcsIC4uLntzaG93RXJyb3JXaGVuTm9PcHRpb25TZWxlY3RlZDogdHJ1ZX19O1xyXG4gICAgfVxyXG59XHJcbiJdfQ==
@@ -1,185 +0,0 @@
1
- // Angular import statements
2
- import { Injectable } from "@angular/core";
3
- import { AnnaDateTimeFormatService } from './anna-date-time-format.service';
4
- // Third party import statements
5
- // User defined import statements
6
- import { Days, Constants } from "../constants/shared.constant";
7
- import * as i0 from "@angular/core";
8
- import * as i1 from "./anna-date-time-format.service";
9
- export class AnnaSortService {
10
- constructor(annaDateTimeFormatService) {
11
- this.annaDateTimeFormatService = annaDateTimeFormatService;
12
- this.sortByAsc = new Map();
13
- this.sortByDesc = new Map();
14
- this.dateSet = new Set(["endDate", "startDate", "end_date", "start_date", "flightStartDate", "flightEndDate"]);
15
- console.log("AnnaTableColumnSortService sevice created.");
16
- }
17
- checkIfSortingIsApplied(sortMap, setValueTo) {
18
- let obj = { key: "", setValueTo: null };
19
- for (let [key, value] of sortMap.entries()) {
20
- if (value) {
21
- obj = { key, setValueTo };
22
- break;
23
- }
24
- }
25
- return obj;
26
- }
27
- sort(isAsc, data, sortBy) {
28
- const dataToExclude = [];
29
- const dataToInclude = [];
30
- let param1;
31
- let param2;
32
- if (this.dateSet.has(sortBy)) {
33
- data.sort((a, b) => {
34
- return this.annaDateTimeFormatService.compareDate(a[sortBy], b[sortBy], isAsc);
35
- });
36
- }
37
- else if (sortBy === "AirDateAndTime") {
38
- data.sort((a, b) => {
39
- let first, second;
40
- if (a[sortBy] == "-") {
41
- return 1;
42
- }
43
- if (b[sortBy] == "-") {
44
- return -1;
45
- }
46
- else {
47
- first = this.annaDateTimeFormatService.formatDateAndHHMMATimeToStandardFormat(a[sortBy]);
48
- second = this.annaDateTimeFormatService.formatDateAndHHMMATimeToStandardFormat(b[sortBy]);
49
- let compareDate = this.annaDateTimeFormatService.compareDate(first, second, isAsc);
50
- return compareDate;
51
- }
52
- });
53
- }
54
- else if (sortBy === "startEndTime" || sortBy === "TimeBand") {
55
- data.sort((a, b) => {
56
- if (isAsc) {
57
- param1 = a[sortBy][1];
58
- param2 = b[sortBy][1];
59
- }
60
- else {
61
- param1 = a[sortBy][2];
62
- param2 = b[sortBy][2];
63
- }
64
- let val = isAsc
65
- ? this.annaDateTimeFormatService.sortByTimeAscending(param1, param2)
66
- : this.annaDateTimeFormatService.sortByTimeDescending(param1, param2);
67
- return val;
68
- });
69
- }
70
- else if (sortBy === "days") {
71
- data.sort((a, b) => {
72
- param1 = a[sortBy].includes("-") ? Days[a[sortBy].split("-")[0]] : Days[a[sortBy]];
73
- param2 = b[sortBy].includes("-") ? Days[b[sortBy].split("-")[0]] : Days[b[sortBy]];
74
- return this.annaDateTimeFormatService.compare(param1, param2, isAsc);
75
- });
76
- }
77
- //sort by string or number
78
- else {
79
- data.forEach((a) => {
80
- // if(a['sort'] == undefined) //
81
- //for component other than enter/edit lur page
82
- if (!("sort" in a)) {
83
- dataToInclude.push(a);
84
- }
85
- //for enter/edit lur page
86
- else {
87
- dataToExclude.push(a);
88
- }
89
- });
90
- data = [];
91
- data = dataToInclude;
92
- data.sort((a, b) => {
93
- param1 = a[sortBy];
94
- param2 = b[sortBy];
95
- if (Array.isArray(a[sortBy])) {
96
- param1 = a[sortBy][0] === "-" ? 0 : a[sortBy][0];
97
- if (a[sortBy][0].includes(Constants.dollars)) {
98
- param1 = +a[sortBy][0].split(Constants.dollars)[1];
99
- }
100
- }
101
- if (Array.isArray(b[sortBy])) {
102
- param2 = b[sortBy][0] == "-" ? 0 : b[sortBy][0];
103
- if (b[sortBy][0].includes(Constants.dollars)) {
104
- param2 = +b[sortBy][0].split(Constants.dollars)[1];
105
- }
106
- }
107
- if (param1 !== param2) {
108
- return this.annaDateTimeFormatService.compare(param1, param2, isAsc);
109
- }
110
- // CHANGES@ANNALIB changed it to from false to 0
111
- return 0;
112
- });
113
- if (dataToExclude.length > 0) {
114
- if (sortBy.includes("_")) {
115
- let keys = sortBy.split("_");
116
- let weekNumber = keys[0];
117
- let sortKey = keys[1];
118
- if (keys.length > 2) {
119
- sortKey = keys[2] == true ? "BookedAurIncludingNoChargeSpots" : "BookedAurExcludingNoChargeSpots";
120
- }
121
- dataToExclude.sort((a, b) => {
122
- let aInventoryCodeWeekWiseKey = Object.keys(a.WeekWiseInventoryCodeData).filter((key) => key.split("_")[1] == weekNumber);
123
- let bInventoryCodeWeekWiseKey = Object.keys(b.WeekWiseInventoryCodeData).filter((key) => key.split("_")[1] == weekNumber);
124
- param1 = null;
125
- param2 = null;
126
- if (aInventoryCodeWeekWiseKey.length > 0) {
127
- param1 = a.WeekWiseInventoryCodeData[aInventoryCodeWeekWiseKey[0]][sortKey][1];
128
- }
129
- if (bInventoryCodeWeekWiseKey.length > 0) {
130
- param2 = b.WeekWiseInventoryCodeData[bInventoryCodeWeekWiseKey[0]][sortKey][1];
131
- }
132
- if (param1 !== param2) {
133
- return this.annaDateTimeFormatService.compare(param1, param2, isAsc);
134
- }
135
- return 0;
136
- });
137
- }
138
- else {
139
- dataToExclude.sort((a, b) => {
140
- param1 = a[sortBy];
141
- param2 = b[sortBy];
142
- if (param1 !== param2) {
143
- return this.annaDateTimeFormatService.compare(param1, param2, isAsc);
144
- }
145
- return 0;
146
- });
147
- }
148
- }
149
- }
150
- return { data: [...data, ...dataToExclude], type: isAsc };
151
- }
152
- callSort(data) {
153
- let sortBy = null;
154
- let isAsc;
155
- this.sortByAsc.forEach((value, key) => {
156
- if (value === true) {
157
- sortBy = key;
158
- isAsc = true;
159
- }
160
- });
161
- if (sortBy == null) {
162
- this.sortByDesc.forEach((value, key) => {
163
- if (value === true) {
164
- sortBy = key;
165
- isAsc = false;
166
- }
167
- });
168
- }
169
- if (sortBy != null) {
170
- return this.sort(isAsc, data, sortBy).data;
171
- }
172
- else {
173
- return data;
174
- }
175
- }
176
- }
177
- AnnaSortService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: AnnaSortService, deps: [{ token: i1.AnnaDateTimeFormatService }], target: i0.ɵɵFactoryTarget.Injectable });
178
- AnnaSortService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: AnnaSortService, providedIn: "root" });
179
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: AnnaSortService, decorators: [{
180
- type: Injectable,
181
- args: [{
182
- providedIn: "root",
183
- }]
184
- }], ctorParameters: function () { return [{ type: i1.AnnaDateTimeFormatService }]; } });
185
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5uYS1zb3J0LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbm5hLWNvcmUvc3JjL2xpYi9hbm5hLWNvcmUtc2hhcmVkLWxpYi9zZXJ2aWNlcy9hbm5hLXNvcnQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSw0QkFBNEI7QUFDNUIsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUU1RSxnQ0FBZ0M7QUFFaEMsaUNBQWlDO0FBQ2pDLE9BQU8sRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFDLE1BQU0sOEJBQThCLENBQUM7OztBQUs5RCxNQUFNLE9BQU8sZUFBZTtJQVExQixZQUFvQix5QkFBb0Q7UUFBcEQsOEJBQXlCLEdBQXpCLHlCQUF5QixDQUEyQjtRQVB4RSxjQUFTLEdBQXlCLElBQUksR0FBRyxFQUFFLENBQUM7UUFDNUMsZUFBVSxHQUF5QixJQUFJLEdBQUcsRUFBRSxDQUFDO1FBQzdDLFlBQU8sR0FBRyxJQUFJLEdBQUcsQ0FBQyxDQUFDLFNBQVMsRUFBRSxXQUFXLEVBQUUsVUFBVSxFQUFFLFlBQVksRUFBRSxpQkFBaUIsRUFBRSxlQUFlLENBQUMsQ0FBQyxDQUFDO1FBTXhHLE9BQU8sQ0FBQyxHQUFHLENBQUMsNENBQTRDLENBQUMsQ0FBQTtJQUMxRCxDQUFDO0lBRUYsdUJBQXVCLENBQUMsT0FBNkIsRUFBRSxVQUFtQjtRQUN4RSxJQUFJLEdBQUcsR0FBcUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLFVBQVUsRUFBRSxJQUFJLEVBQUUsQ0FBQztRQUUxRSxLQUFLLElBQUksQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLElBQUksT0FBTyxDQUFDLE9BQU8sRUFBRSxFQUFFO1lBQzFDLElBQUksS0FBSyxFQUFFO2dCQUNULEdBQUcsR0FBRyxFQUFF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LElBQUksRUFBRSxLQUFLLEVBQUUsQ0FBQztJQUM1RCxDQUFDO0lBRUQsUUFBUSxDQUFDLElBQVc7UUFDbEIsSUFBSSxNQUFNLEdBQUcsSUFBSSxDQUFDO1FBQ2xCLElBQUksS0FBYyxDQUFDO1FBQ25CLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLENBQUMsS0FBSyxFQUFFLEdBQUcsRUFBRSxFQUFFO1lBQ2xDLElBQUksS0FBSyxLQUFLLElBQUksRUFBRTtnQkFDaEIsTUFBTSxHQUFHLEdBQUcsQ0FBQztnQkFDYixLQUFLLEdBQUcsSUFBSSxDQUFDO2FBQ2hCO1FBQ0wsQ0FBQyxDQUFDLENBQUM7UUFDSCxJQUFJLE1BQU0sSUFBSSxJQUFJLEVBQUU7WUFDaEIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxLQUFLLEVBQUUsR0FBRyxFQUFFLEVBQUU7Z0JBQ25DLElBQUksS0FBSyxLQUFLLElBQUksRUFBRTtvQkFDaEIsTUFBTSxHQUFHLEdBQUcsQ0FBQztvQkFDYixLQUFLLEdBQUcsS0FBSyxDQUFDO2lCQUNqQjtZQUNMLENBQUMsQ0FBQyxDQUFDO1NBQ047UUFDRCxJQUFJLE1BQU0sSUFBSSxJQUFJLEVBQUU7WUFDaEIsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxJQUFJLEVBQUUsTUFBTSxDQUFDLENBQUMsSUFBSSxDQUFDO1NBQzlDO2FBQU07WUFDSCxPQUFPLElBQUksQ0FBQztTQUNmO0lBQ0wsQ0FBQzs7NEdBeExZLGVBQWU7Z0hBQWYsZUFBZSxjQUZkLE1BQU07MkZBRVAsZUFBZTtrQkFIM0IsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBBbmd1bGFyIGltcG9ydCBzdGF0ZW1lbnRzXHJcbmltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBBbm5hRGF0ZVRpbWVGb3JtYXRTZXJ2aWNlIH0gZnJvbSAnLi9hbm5hLWRhdGUtdGltZS1mb3JtYXQuc2VydmljZSc7XHJcblxyXG4vLyBUaGlyZCBwYXJ0eSBpbXBvcnQgc3RhdGVtZW50c1xyXG5cclxuLy8gVXNlciBkZWZpbmVkIGltcG9ydCBzdGF0ZW1lbnRzXHJcbmltcG9ydCB7IERheXMsIENvbnN0YW50c30gZnJvbSBcIi4uL2NvbnN0YW50cy9zaGFyZWQuY29uc3RhbnRcIjtcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiBcInJvb3RcIixcclxufSlcclxuZXhwb3J0IGNsYXNzIEFubmFTb3J0U2VydmljZSB7XHJcbiAgc29ydEJ5QXNjOiBNYXA8c3RyaW5nLCBib29sZWFuPiA9IG5ldyBNYXAoKTtcclxuICBzb3J0QnlEZXNjOiBNYXA8c3RyaW5nLCBib29sZWFuPiA9IG5ldyBNYXAoKTtcclxuICBkYXRlU2V0ID0gbmV3IFNldChbXCJlbmREYXRlXCIsIFwic3RhcnREYXRlXCIsIFwiZW5kX2RhdGVcIiwgXCJzdGFydF9kYXRlXCIsIFwiZmxpZ2h0U3RhcnREYXRlXCIsIFwiZmxpZ2h0RW5kRGF0ZVwiXSk7XHJcbiAgdG9vbHRpcDogYW55O1xyXG4gIGtleVNvcnRlZDogc3RyaW5nO1xyXG4gIGlzQXNjOiBib29sZWFuO1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGFubmFEYXRlVGltZUZvcm1hdFNlcnZpY2U6IEFubmFEYXRlVGltZUZvcm1hdFNlcnZpY2UpIHtcclxuICAgIGNvbnNvbGUubG9nKFwiQW5uYVRhYmxlQ29sdW1uU29ydFNlcnZpY2Ugc2V2aWNlIGNyZWF0ZWQuXCIpXHJcbiAgIH1cclxuXHJcbiAgY2hlY2tJZlNvcnRpbmdJc0FwcGxpZWQoc29ydE1hcDogTWFwPHN0cmluZywgYm9vbGVhbj4sIHNldFZhbHVlVG86IGJvb2xlYW4pIHtcclxuICAgIGxldCBvYmo6IHsga2V5OiBzdHJpbmcsIHNldFZhbHVlVG86IGFueSB9ID0geyBrZXk6IFwiXCIsIHNldFZhbHVlVG86IG51bGwgfTtcclxuXHJcbiAgICBmb3IgKGxldCBba2V5LCB2YWx1ZV0gb2Ygc29ydE1hcC5lbnRyaWVzKCkpIHtcclxuICAgICAgaWYgKHZhbHVlKSB7XHJcbiAgICAgICAgb2JqID0geyBrZXksIHNldFZhbHVlVG8gfTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIG9iajtcclxuICB9XHJcblxyXG4gIHNvcnQoaXNBc2M6IGJvb2xlYW4sIGRhdGE6IGFueVtdLCBzb3J0Qnk6IHN0cmluZykge1xyXG4gICAgY29uc3QgZGF0YVRvRXhjbHVkZTogYW55W10gPSBbXTtcclxuICAgIGNvbnN0IGRhdGFUb0luY2x1ZGU6IGFueVtdID0gW107XHJcbiAgICBsZXQgcGFyYW0xOiBzdHJpbmcgfCBudW1iZXI7XHJcbiAgICBsZXQgcGFyYW0yOiBzdHJpbmcgfCBudW1iZXI7XHJcbiAgICBpZiAodGhpcy5kYXRlU2V0Lmhhcyhzb3J0QnkpKSB7XHJcbiAgICAgIGRhdGEuc29ydCgoYSwgYikgPT4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmFubmFEYXRlVGltZUZvcm1hdFNlcnZpY2UuY29tcGFyZURhdGUoYVtzb3J0QnldLCBiW3NvcnRCeV0sIGlzQXNjKTtcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgICBlbHNlIGlmIChzb3J0QnkgPT09IFwiQWlyRGF0ZUFuZFRpbWVcIikge1xyXG4gICAgICBkYXRhLnNvcnQoKGEsIGIpID0+IHtcclxuICAgICAgICBsZXQgZmlyc3QsIHNlY29uZDtcclxuICAgICAgICBpZiAoYVtzb3J0QnldID09IFwiLVwiKSB7XHJcbiAgICAgICAgICByZXR1cm4gMTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKGJbc29ydEJ5XSA9PSBcIi1cIikge1xyXG4gICAgICAgICAgcmV0dXJuIC0xO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgIGZpcnN0ID0gdGhpcy5hbm5hRGF0ZVRpbWVGb3JtYXRTZXJ2aWNlLmZvcm1hdERhdGVBbmRISE1NQVRpbWVUb1N0YW5kYXJkRm9ybWF0KGFbc29ydEJ5XSk7XHJcbiAgICAgICAgICBzZWNvbmQgPSB0aGlzLmFubmFEYXRlVGltZUZvcm1hdFNlcnZpY2UuZm9ybWF0RGF0ZUFuZEhITU1BVGltZVRvU3RhbmRhcmRGb3JtYXQoYltzb3J0QnldKTtcclxuICAgICAgICAgIGxldCBjb21wYXJlRGF0ZSA9IHRoaXMuYW5uYURhdGVUaW1lRm9ybWF0U2VydmljZS5jb21wYXJlRGF0ZShmaXJzdCwgc2Vjb25kLCBpc0FzYylcclxuICAgICAgICAgIHJldHVybiBjb21wYXJlRGF0ZTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gICAgZWxzZSBpZiAoc29ydEJ5ID09PSBcInN0YXJ0RW5kVGltZVwiIHx8IHNvcnRCeSA9PT0gXCJUaW1lQmFuZFwiKSB7XHJcbiAgICAgIGRhdGEuc29ydCgoYSwgYikgPT4ge1xyXG4gICAgICAgIGlmIChpc0FzYykge1xyXG4gICAgICAgICAgcGFyYW0xID0gYVtzb3J0QnldWzFdO1xyXG4gICAgICAgICAgcGFyYW0yID0gYltzb3J0QnldWzFdO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBwYXJhbTEgPSBhW3NvcnRCeV1bMl07XHJcbiAgICAgICAgICBwYXJhbTIgPSBiW3NvcnRCeV1bMl07XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGxldCB2YWwgPSBpc0FzY1xyXG4gICAgICAgICAgPyB0aGlzLmFubmFEYXRlVGltZUZvcm1hdFNlcnZpY2Uuc29ydEJ5VGltZUFzY2VuZGluZyhwYXJhbTEsIHBhcmFtMilcclxuICAgICAgICAgIDogdGhpcy5hbm5hRGF0ZVRpbWVGb3JtYXRTZXJ2aWNlLnNvcnRCeVRpbWVEZXNjZW5kaW5nKHBhcmFtMSwgcGFyYW0yKTtcclxuICAgICAgICByZXR1cm4gdmFsO1xyXG4gICAgICB9KTtcclxuICAgIH0gZWxzZSBpZiAoc29ydEJ5ID09PSBcImRheXNcIikge1xyXG4gICAgICBkYXRhLnNvcnQoKGEsIGIpID0+IHtcclxuICAgICAgICBwYXJhbTEgPSBhW3NvcnRCeV0uaW5jbHVkZXMoXCItXCIpID8gRGF5c1thW3NvcnRCeV0uc3BsaXQoXCItXCIpWzBdXSA6IERheXNbYVtzb3J0QnldXTtcclxuICAgICAgICBwYXJhbTIgPSBiW3NvcnRCeV0uaW5jbHVkZXMoXCItXCIpID8gRGF5c1tiW3NvcnRCeV0uc3BsaXQoXCItXCIpWzBdXSA6IERheXNbYltzb3J0QnldXTtcclxuICAgICAgICByZXR1cm4gdGhpcy5hbm5hRGF0ZVRpbWVGb3JtYXRTZXJ2aWNlLmNvbXBhcmUocGFyYW0xLCBwYXJhbTIsIGlzQXNjKTtcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgICAvL3NvcnQgYnkgc3RyaW5nIG9yIG51bWJlclxyXG4gICAgZWxzZSB7XHJcbiAgICAgIGRhdGEuZm9yRWFjaCgoYSkgPT4ge1xyXG4gICAgICAgIC8vIGlmKGFbJ3NvcnQnXSA9PSB1bmRlZmluZWQpIC8vXHJcbiAgICAgICAgLy9mb3IgY29tcG9uZW50IG90aGVyIHRoYW4gZW50ZXIvZWRpdCBsdXIgcGFnZVxyXG4gICAgICAgIGlmICghKFwic29ydFwiIGluIGEpKSB7XHJcbiAgICAgICAgICBkYXRhVG9JbmNsdWRlLnB1c2goYSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC8vZm9yIGVudGVyL2VkaXQgbHVyIHBhZ2VcclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgIGRhdGFUb0V4Y2x1ZGUucHVzaChhKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG5cclxuICAgICAgZGF0YSA9IFtdO1xyXG4gICAgICBkYXRhID0gZGF0YVRvSW5jbHVkZTtcclxuICAgICAgZGF0YS5zb3J0KChhLCBiKTogbnVtYmVyID0+IHtcclxuICAgICAgICBwYXJhbTEgPSBhW3NvcnRCeV07XHJcbiAgICAgICAgcGFyYW0yID0gYltzb3J0QnldO1xyXG5cclxuICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShhW3NvcnRCeV0pKSB7XHJcbiAgICAgICAgICBwYXJhbTEgPSBhW3NvcnRCeV1bMF0gPT09IFwiLVwiID8gMCA6IGFbc29ydEJ5XVswXTtcclxuICAgICAgICAgIGlmIChhW3NvcnRCeV1bMF0uaW5jbHVkZXMoQ29uc3RhbnRzLmRvbGxhcnMpKSB7XHJcbiAgICAgICAgICAgIHBhcmFtMSA9ICthW3NvcnRCeV1bMF0uc3BsaXQoQ29uc3RhbnRzLmRvbGxhcnMpWzFdO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkoYltzb3J0QnldKSkge1xyXG4gICAgICAgICAgcGFyYW0yID0gYltzb3J0QnldWzBdID09IFwiLVwiID8gMCA6IGJbc29ydEJ5XVswXTtcclxuICAgICAgICAgIGlmIChiW3NvcnRCeV1bMF0uaW5jbHVkZXMoQ29uc3RhbnRzLmRvbGxhcnMpKSB7XHJcbiAgICAgICAgICAgIHBhcmFtMiA9ICtiW3NvcnRCeV1bMF0uc3BsaXQoQ29uc3RhbnRzLmRvbGxhcnMpWzFdO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKHBhcmFtMSAhPT0gcGFyYW0yKSB7XHJcbiAgICAgICAgICByZXR1cm4gdGhpcy5hbm5hRGF0ZVRpbWVGb3JtYXRTZXJ2aWNlLmNvbXBhcmUocGFyYW0xLCBwYXJhbTIsIGlzQXNjKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgLy8gQ0hBTkdFU0BBTk5BTElCIGNoYW5nZWQgaXQgdG8gZnJvbSBmYWxzZSB0byAwXHJcbiAgICAgICAgcmV0dXJuIDA7XHJcbiAgICAgIH0pO1xyXG5cclxuICAgICAgaWYgKGRhdGFUb0V4Y2x1ZGUubGVuZ3RoID4gMCkge1xyXG4gICAgICAgIGlmIChzb3J0QnkuaW5jbHVkZXMoXCJfXCIpKSB7XHJcbiAgICAgICAgICBsZXQga2V5czogYW55ID0gc29ydEJ5LnNwbGl0KFwiX1wiKTtcclxuICAgICAgICAgIGxldCB3ZWVrTnVtYmVyID0ga2V5c1swXTtcclxuICAgICAgICAgIGxldCBzb3J0S2V5ID0ga2V5c1sxXTtcclxuICAgICAgICAgIGlmIChrZXlzLmxlbmd0aCA+IDIpIHtcclxuICAgICAgICAgICAgc29ydEtleSA9IGtleXNbMl0gPT0gdHJ1ZSA/IFwiQm9va2VkQXVySW5jbHVkaW5nTm9DaGFyZ2VTcG90c1wiIDogXCJCb29rZWRBdXJFeGNsdWRpbmdOb0NoYXJnZVNwb3RzXCI7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBkYXRhVG9FeGNsdWRlLnNvcnQoKGEsIGIpID0+IHtcclxuICAgICAgICAgICAgbGV0IGFJbnZlbnRvcnlDb2RlV2Vla1dpc2VLZXkgPSBPYmplY3Qua2V5cyhhLldlZWtXaXNlSW52ZW50b3J5Q29kZURhdGEpLmZpbHRlcihcclxuICAgICAgICAgICAgICAoa2V5KSA9PiBrZXkuc3BsaXQoXCJfXCIpWzFdID09IHdlZWtOdW1iZXJcclxuICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgbGV0IGJJbnZlbnRvcnlDb2RlV2Vla1dpc2VLZXkgPSBPYmplY3Qua2V5cyhiLldlZWtXaXNlSW52ZW50b3J5Q29kZURhdGEpLmZpbHRlcihcclxuICAgICAgICAgICAgICAoa2V5KSA9PiBrZXkuc3BsaXQoXCJfXCIpWzFdID09IHdlZWtOdW1iZXJcclxuICAgICAgICAgICAgKTtcclxuXHJcbiAgICAgICAgICAgIHBhcmFtMSA9IG51bGw7XHJcbiAgICAgICAgICAgIHBhcmFtMiA9IG51bGw7XHJcbiAgICAgICAgICAgIGlmIChhSW52ZW50b3J5Q29kZVdlZWtXaXNlS2V5Lmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgICAgICBwYXJhbTEgPSBhLldlZWtXaXNlSW52ZW50b3J5Q29kZURhdGFbYUludmVudG9yeUNvZGVXZWVrV2lzZUtleVswXV1bc29ydEtleV1bMV07XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIGlmIChiSW52ZW50b3J5Q29kZVdlZWtXaXNlS2V5Lmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgICAgICBwYXJhbTIgPSBiLldlZWtXaXNlSW52ZW50b3J5Q29kZURhdGFbYkludmVudG9yeUNvZGVXZWVrV2lzZUtleVswXV1bc29ydEtleV1bMV07XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIGlmIChwYXJhbTEgIT09IHBhcmFtMikge1xyXG4gICAgICAgICAgICAgIHJldHVybiB0aGlzLmFubmFEYXRlVGltZUZvcm1hdFNlcnZpY2UuY29tcGFyZShwYXJhbTEsIHBhcmFtMiwgaXNBc2MpO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICByZXR1cm4gMDtcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBkYXRhVG9FeGNsdWRlLnNvcnQoKGEsIGIpID0+IHtcclxuICAgICAgICAgICAgcGFyYW0xID0gYVtzb3J0QnldO1xyXG4gICAgICAgICAgICBwYXJhbTIgPSBiW3NvcnRCeV07XHJcblxyXG4gICAgICAgICAgICBpZiAocGFyYW0xICE9PSBwYXJhbTIpIHtcclxuICAgICAgICAgICAgICByZXR1cm4gdGhpcy5hbm5hRGF0ZVRpbWVGb3JtYXRTZXJ2aWNlLmNvbXBhcmUocGFyYW0xLCBwYXJhbTIsIGlzQXNjKTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgcmV0dXJuIDA7XHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiB7IGRhdGE6IFsuLi5kYXRhLCAuLi5kYXRhVG9FeGNsdWRlXSwgdHlwZTogaXNBc2MgfTtcclxuICB9XHJcblxyXG4gIGNhbGxTb3J0KGRhdGE6IGFueVtdKSB7XHJcbiAgICBsZXQgc29ydEJ5ID0gbnVsbDtcclxuICAgIGxldCBpc0FzYzogYm9vbGVhbjtcclxuICAgIHRoaXMuc29ydEJ5QXNjLmZvckVhY2goKHZhbHVlLCBrZXkpID0+IHtcclxuICAgICAgICBpZiAodmFsdWUgPT09IHRydWUpIHtcclxuICAgICAgICAgICAgc29ydEJ5ID0ga2V5O1xyXG4gICAgICAgICAgICBpc0FzYyA9IHRydWU7XHJcbiAgICAgICAgfVxyXG4gICAgfSk7XHJcbiAgICBpZiAoc29ydEJ5ID09IG51bGwpIHtcclxuICAgICAgICB0aGlzLnNvcnRCeURlc2MuZm9yRWFjaCgodmFsdWUsIGtleSkgPT4ge1xyXG4gICAgICAgICAgICBpZiAodmFsdWUgPT09IHRydWUpIHtcclxuICAgICAgICAgICAgICAgIHNvcnRCeSA9IGtleTtcclxuICAgICAgICAgICAgICAgIGlzQXNjID0gZmFsc2U7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgIH1cclxuICAgIGlmIChzb3J0QnkgIT0gbnVsbCkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLnNvcnQoaXNBc2MsIGRhdGEsIHNvcnRCeSkuZGF0YTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgICAgcmV0dXJuIGRhdGE7XHJcbiAgICB9XHJcbn1cclxuXHJcblxyXG59XHJcbiJdfQ==
@@ -1,43 +0,0 @@
1
- // Angular import statements
2
- import { NgModule } from '@angular/core';
3
- import { CommonModule } from '@angular/common';
4
- // Third party import statements
5
- import { NgbModule } from '@ng-bootstrap/ng-bootstrap';
6
- // User defined import statements
7
- import { AnnaWeekCalendarComponent } from './components/anna-week-calendar-filter/anna-week-calendar-filter.component';
8
- import { AnnaCalendarFilterComponent } from './components/anna-calendar-filter/anna-calendar-filter.component';
9
- //sub-entries of anna lib import statement
10
- import { AnnaCoreSharedLibModule } from '@annalib/anna-core/src/lib/anna-core-shared-lib';
11
- import * as i0 from "@angular/core";
12
- export class AnnaDropdownLibModule {
13
- }
14
- AnnaDropdownLibModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: AnnaDropdownLibModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
15
- AnnaDropdownLibModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: AnnaDropdownLibModule, declarations: [AnnaWeekCalendarComponent,
16
- AnnaCalendarFilterComponent], imports: [CommonModule,
17
- NgbModule,
18
- AnnaCoreSharedLibModule], exports: [AnnaWeekCalendarComponent,
19
- AnnaCalendarFilterComponent] });
20
- AnnaDropdownLibModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: AnnaDropdownLibModule, imports: [[
21
- CommonModule,
22
- NgbModule,
23
- AnnaCoreSharedLibModule
24
- ]] });
25
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: AnnaDropdownLibModule, decorators: [{
26
- type: NgModule,
27
- args: [{
28
- declarations: [
29
- AnnaWeekCalendarComponent,
30
- AnnaCalendarFilterComponent
31
- ],
32
- imports: [
33
- CommonModule,
34
- NgbModule,
35
- AnnaCoreSharedLibModule
36
- ],
37
- exports: [
38
- AnnaWeekCalendarComponent,
39
- AnnaCalendarFilterComponent
40
- ]
41
- }]
42
- }] });
43
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5uYS1kcm9wZG93bi1saWIubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5uYS1jb3JlL3NyYy9saWIvYW5uYS1kcm9wZG93bi1saWIvYW5uYS1kcm9wZG93bi1saWIubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLDRCQUE0QjtBQUM1QixPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUUvQyxnQ0FBZ0M7QUFDaEMsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBRXZELGlDQUFpQztBQUNqQyxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSw0RUFBNEUsQ0FBQztBQUN2SCxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxrRUFBa0UsQ0FBQztBQUUvRywwQ0FBMEM7QUFDMUMsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0saURBQWlELENBQUM7O0FBa0IxRixNQUFNLE9BQU8scUJBQXFCOztrSEFBckIscUJBQXFCO21IQUFyQixxQkFBcUIsaUJBZDlCLHlCQUF5QjtRQUN6QiwyQkFBMkIsYUFHM0IsWUFBWTtRQUNaLFNBQVM7UUFDVCx1QkFBdUIsYUFHdkIseUJBQXlCO1FBQ3pCLDJCQUEyQjttSEFJbEIscUJBQXFCLFlBWHZCO1lBQ1AsWUFBWTtZQUNaLFNBQVM7WUFDVCx1QkFBdUI7U0FDeEI7MkZBT1UscUJBQXFCO2tCQWhCakMsUUFBUTttQkFBQztvQkFDUixZQUFZLEVBQUU7d0JBQ1oseUJBQXlCO3dCQUN6QiwyQkFBMkI7cUJBQzVCO29CQUNELE9BQU8sRUFBRTt3QkFDUCxZQUFZO3dCQUNaLFNBQVM7d0JBQ1QsdUJBQXVCO3FCQUN4QjtvQkFDRCxPQUFPLEVBQUU7d0JBQ1AseUJBQXlCO3dCQUN6QiwyQkFBMkI7cUJBQzVCO2lCQUVGIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQW5ndWxhciBpbXBvcnQgc3RhdGVtZW50c1xyXG5pbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5cclxuLy8gVGhpcmQgcGFydHkgaW1wb3J0IHN0YXRlbWVudHNcclxuaW1wb3J0IHsgTmdiTW9kdWxlIH0gZnJvbSAnQG5nLWJvb3RzdHJhcC9uZy1ib290c3RyYXAnO1xyXG5cclxuLy8gVXNlciBkZWZpbmVkIGltcG9ydCBzdGF0ZW1lbnRzXHJcbmltcG9ydCB7IEFubmFXZWVrQ2FsZW5kYXJDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvYW5uYS13ZWVrLWNhbGVuZGFyLWZpbHRlci9hbm5hLXdlZWstY2FsZW5kYXItZmlsdGVyLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEFubmFDYWxlbmRhckZpbHRlckNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9hbm5hLWNhbGVuZGFyLWZpbHRlci9hbm5hLWNhbGVuZGFyLWZpbHRlci5jb21wb25lbnQnO1xyXG5cclxuLy9zdWItZW50cmllcyBvZiBhbm5hIGxpYiBpbXBvcnQgc3RhdGVtZW50XHJcbmltcG9ydCB7IEFubmFDb3JlU2hhcmVkTGliTW9kdWxlIH0gZnJvbSAnQGFubmFsaWIvYW5uYS1jb3JlL3NyYy9saWIvYW5uYS1jb3JlLXNoYXJlZC1saWInO1xyXG5cclxuQE5nTW9kdWxlKHtcclxuICBkZWNsYXJhdGlvbnM6IFtcclxuICAgIEFubmFXZWVrQ2FsZW5kYXJDb21wb25lbnQsXHJcbiAgICBBbm5hQ2FsZW5kYXJGaWx0ZXJDb21wb25lbnRcclxuICBdLFxyXG4gIGltcG9ydHM6IFtcclxuICAgIENvbW1vbk1vZHVsZSxcclxuICAgIE5nYk1vZHVsZSxcclxuICAgIEFubmFDb3JlU2hhcmVkTGliTW9kdWxlXHJcbiAgXSxcclxuICBleHBvcnRzOiBbXHJcbiAgICBBbm5hV2Vla0NhbGVuZGFyQ29tcG9uZW50LFxyXG4gICAgQW5uYUNhbGVuZGFyRmlsdGVyQ29tcG9uZW50XHJcbiAgXVxyXG5cclxufSlcclxuZXhwb3J0IGNsYXNzIEFubmFEcm9wZG93bkxpYk1vZHVsZSB7IH1cclxuIl19
@@ -1,5 +0,0 @@
1
- /**
2
- * Generated bundle index. Do not edit.
3
- */
4
- export * from './public-api';
5
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5uYWxpYi1hbm5hLWNvcmUtc3JjLWxpYi1hbm5hLWRyb3Bkb3duLWxpYi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FubmEtY29yZS9zcmMvbGliL2FubmEtZHJvcGRvd24tbGliL2FubmFsaWItYW5uYS1jb3JlLXNyYy1saWItYW5uYS1kcm9wZG93bi1saWIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLGNBQWMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9wdWJsaWMtYXBpJztcbiJdfQ==
@@ -1,76 +0,0 @@
1
- // Angular import statements
2
- import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from "@angular/core";
3
- import * as i0 from "@angular/core";
4
- import * as i1 from "@ng-bootstrap/ng-bootstrap";
5
- export class AnnaCalendarFilterComponent {
6
- constructor() {
7
- this.selectedDate = new EventEmitter();
8
- this.apply = new EventEmitter();
9
- this.cancel = new EventEmitter();
10
- this.disableApplyBtn = false;
11
- }
12
- ngOnInit() {
13
- this.fromDate = this.selectedFromDate;
14
- this.toDate = this.selectedToDate;
15
- }
16
- dateSelected(event) {
17
- this.selectedDate.emit(event);
18
- }
19
- onDateSelection(date) {
20
- if (!this.fromDate && !this.toDate) {
21
- this.fromDate = date;
22
- }
23
- else if (this.fromDate && !this.toDate && (date.after(this.fromDate) || date.equals(this.fromDate))) {
24
- this.toDate = date;
25
- }
26
- else {
27
- this.toDate = null;
28
- this.fromDate = date;
29
- }
30
- this.disableCalendarApplyBtn();
31
- }
32
- isHovered(date) {
33
- return this.fromDate && !this.toDate && this.hoveredDate && date.after(this.fromDate) && date.before(this.hoveredDate);
34
- }
35
- isInside(date) {
36
- return this.toDate && date.after(this.fromDate) && date.before(this.toDate);
37
- }
38
- isRange(date) {
39
- return (date.equals(this.fromDate) || (this.toDate && date.equals(this.toDate)) || this.isInside(date) || this.isHovered(date));
40
- }
41
- cancelSelection() {
42
- this.cancel.emit();
43
- }
44
- applySelection() {
45
- if (this.fromDate && this.toDate) {
46
- let dateObj = { fromDate: this.fromDate, toDate: this.toDate };
47
- this.apply.emit(dateObj);
48
- }
49
- }
50
- disableCalendarApplyBtn() {
51
- this.disableApplyBtn = !(this.fromDate && this.toDate);
52
- }
53
- }
54
- AnnaCalendarFilterComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: AnnaCalendarFilterComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
55
- AnnaCalendarFilterComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.7", type: AnnaCalendarFilterComponent, selector: "anna-core-calendar-filter-lib", inputs: { maxDate: "maxDate", minDate: "minDate", showDate: "showDate", selectedFromDate: "selectedFromDate", selectedToDate: "selectedToDate" }, outputs: { selectedDate: "selectedDate", apply: "apply", cancel: "cancel" }, ngImport: i0, template: "<ngb-datepicker\r\n class=\"custom-datepicker\"\r\n #dp\r\n [maxDate]=\"maxDate\"\r\n [minDate]=\"minDate\"\r\n [displayMonths]=\"1\"\r\n [dayTemplate]=\"t\"\r\n [startDate]=\"fromDate\"\r\n (dateSelect)=\"onDateSelection($event)\"\r\n navigation=\"select\"\r\n>\r\n</ngb-datepicker>\r\n<div class=\"buttons\">\r\n <button class=\"btn\" (click)=\"cancelSelection()\">Cancel</button>\r\n <button class=\"btn\" (click)=\"applySelection()\" [disabled]=\"disableApplyBtn\">Apply</button>\r\n</div>\r\n\r\n<ng-template #t let-date let-focused=\"focused\">\r\n <span\r\n class=\"custom-day\"\r\n [class.focused]=\"focused\"\r\n [class.range]=\"isRange(date)\"\r\n [class.faded]=\"isHovered(date) || isInside(date)\"\r\n (mouseenter)=\"hoveredDate = date\"\r\n (mouseleave)=\"hoveredDate = null\"\r\n >\r\n {{ date.day }}\r\n </span>\r\n</ng-template>\r\n", styles: [":host::ng-deep div.ngb-dp-arrow.right{width:2.4375rem!important;background-color:#fff!important}:host::ng-deep div.ngb-dp-weekday{color:#8bac2a;border-top:1px solid rgba(183,183,183,.6);margin-top:.5rem;font-family:Roboto;font-size:.8125rem;font-weight:700;font-stretch:normal;font-style:normal;line-height:2.6;letter-spacing:normal}:host::ng-deep div.ngb-dp-week{background-color:#fff!important}:host::ng-deep div.ngb-dp-header{background-color:#fff!important}:host::ng-deep div.bg-primary{background-color:#d9e1e6!important;border-radius:.25rem}:host::ng-deep .ngb-dp-arrow-btn:focus{outline-width:0px}:host::ng-deep .right .ngb-dp-navigation-chevron,:host::ng-deep .ngb-dp-navigation-chevron{color:#000}:host::ng-deep .custom-select{border:1px solid rgba(183,183,183,.6);box-shadow:none}:host::ng-deep .btn:focus{box-shadow:none}div{margin:0 .3125rem}.custom-day{text-align:center;padding:.185rem .25rem;color:#000;display:inline-block;height:2rem;width:2rem}.custom-day.focused{background-color:#e6e6e6}.custom-day.range{background-color:#268bff;color:#fff}.custom-day:hover{background-color:#d9e1e6;border-radius:.25rem;color:#bdbdbd}:host::ng-deep div.ngb-dp-day.disabled{cursor:not-allowed}.custom-day.faded{background-color:#268bff33;color:#000;font-weight:600}:host::ng-deep div.ngb-dp-week div.ngb-dp-day.disabled .custom-day{color:#bdbdbd;opacity:50%}.buttons{display:flex;margin:0px auto .4375rem;margin-bottom:0;justify-content:center}.buttons button.btn:disabled{background:#bdbdbd;opacity:.5;color:#4a4a4a}.buttons .btn{display:inline-block;margin:8px 4px 0 8px;padding:5px 16px;text-align:center;outline:none;font-family:Roboto;font-size:.875rem;font-weight:400;font-stretch:normal;font-style:normal;line-height:1.14;letter-spacing:normal;border:none;color:#268bff;background-color:#e5f1ff}.buttons .btn:last-of-type{background-color:#268bff;color:#fff}:host::ng-deep .ngb-dp-day{font-weight:700}\n"], components: [{ type: i1.NgbDatepicker, selector: "ngb-datepicker", inputs: ["dayTemplate", "dayTemplateData", "displayMonths", "firstDayOfWeek", "footerTemplate", "markDisabled", "maxDate", "minDate", "navigation", "outsideDays", "showWeekdays", "showWeekNumbers", "startDate"], outputs: ["navigate", "dateSelect"], exportAs: ["ngbDatepicker"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
56
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: AnnaCalendarFilterComponent, decorators: [{
57
- type: Component,
58
- args: [{ selector: "anna-core-calendar-filter-lib", changeDetection: ChangeDetectionStrategy.OnPush, template: "<ngb-datepicker\r\n class=\"custom-datepicker\"\r\n #dp\r\n [maxDate]=\"maxDate\"\r\n [minDate]=\"minDate\"\r\n [displayMonths]=\"1\"\r\n [dayTemplate]=\"t\"\r\n [startDate]=\"fromDate\"\r\n (dateSelect)=\"onDateSelection($event)\"\r\n navigation=\"select\"\r\n>\r\n</ngb-datepicker>\r\n<div class=\"buttons\">\r\n <button class=\"btn\" (click)=\"cancelSelection()\">Cancel</button>\r\n <button class=\"btn\" (click)=\"applySelection()\" [disabled]=\"disableApplyBtn\">Apply</button>\r\n</div>\r\n\r\n<ng-template #t let-date let-focused=\"focused\">\r\n <span\r\n class=\"custom-day\"\r\n [class.focused]=\"focused\"\r\n [class.range]=\"isRange(date)\"\r\n [class.faded]=\"isHovered(date) || isInside(date)\"\r\n (mouseenter)=\"hoveredDate = date\"\r\n (mouseleave)=\"hoveredDate = null\"\r\n >\r\n {{ date.day }}\r\n </span>\r\n</ng-template>\r\n", styles: [":host::ng-deep div.ngb-dp-arrow.right{width:2.4375rem!important;background-color:#fff!important}:host::ng-deep div.ngb-dp-weekday{color:#8bac2a;border-top:1px solid rgba(183,183,183,.6);margin-top:.5rem;font-family:Roboto;font-size:.8125rem;font-weight:700;font-stretch:normal;font-style:normal;line-height:2.6;letter-spacing:normal}:host::ng-deep div.ngb-dp-week{background-color:#fff!important}:host::ng-deep div.ngb-dp-header{background-color:#fff!important}:host::ng-deep div.bg-primary{background-color:#d9e1e6!important;border-radius:.25rem}:host::ng-deep .ngb-dp-arrow-btn:focus{outline-width:0px}:host::ng-deep .right .ngb-dp-navigation-chevron,:host::ng-deep .ngb-dp-navigation-chevron{color:#000}:host::ng-deep .custom-select{border:1px solid rgba(183,183,183,.6);box-shadow:none}:host::ng-deep .btn:focus{box-shadow:none}div{margin:0 .3125rem}.custom-day{text-align:center;padding:.185rem .25rem;color:#000;display:inline-block;height:2rem;width:2rem}.custom-day.focused{background-color:#e6e6e6}.custom-day.range{background-color:#268bff;color:#fff}.custom-day:hover{background-color:#d9e1e6;border-radius:.25rem;color:#bdbdbd}:host::ng-deep div.ngb-dp-day.disabled{cursor:not-allowed}.custom-day.faded{background-color:#268bff33;color:#000;font-weight:600}:host::ng-deep div.ngb-dp-week div.ngb-dp-day.disabled .custom-day{color:#bdbdbd;opacity:50%}.buttons{display:flex;margin:0px auto .4375rem;margin-bottom:0;justify-content:center}.buttons button.btn:disabled{background:#bdbdbd;opacity:.5;color:#4a4a4a}.buttons .btn{display:inline-block;margin:8px 4px 0 8px;padding:5px 16px;text-align:center;outline:none;font-family:Roboto;font-size:.875rem;font-weight:400;font-stretch:normal;font-style:normal;line-height:1.14;letter-spacing:normal;border:none;color:#268bff;background-color:#e5f1ff}.buttons .btn:last-of-type{background-color:#268bff;color:#fff}:host::ng-deep .ngb-dp-day{font-weight:700}\n"] }]
59
- }], ctorParameters: function () { return []; }, propDecorators: { maxDate: [{
60
- type: Input
61
- }], minDate: [{
62
- type: Input
63
- }], showDate: [{
64
- type: Input
65
- }], selectedDate: [{
66
- type: Output
67
- }], selectedFromDate: [{
68
- type: Input
69
- }], selectedToDate: [{
70
- type: Input
71
- }], apply: [{
72
- type: Output
73
- }], cancel: [{
74
- type: Output
75
- }] } });
76
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5uYS1jYWxlbmRhci1maWx0ZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5uYS1jb3JlL3NyYy9saWIvYW5uYS1kcm9wZG93bi1saWIvY29tcG9uZW50cy9hbm5hLWNhbGVuZGFyLWZpbHRlci9hbm5hLWNhbGVuZGFyLWZpbHRlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbm5hLWNvcmUvc3JjL2xpYi9hbm5hLWRyb3Bkb3duLWxpYi9jb21wb25lbnRzL2FubmEtY2FsZW5kYXItZmlsdGVyL2FubmEtY2FsZW5kYXItZmlsdGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLDRCQUE0QjtBQUM1QixPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7QUFTeEcsTUFBTSxPQUFPLDJCQUEyQjtJQWNwQztRQVRVLGlCQUFZLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUdsQyxVQUFLLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUMzQixXQUFNLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUl0QyxvQkFBZSxHQUFZLEtBQUssQ0FBQztJQUNsQixDQUFDO0lBRWhCLFFBQVE7UUFDSixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQztRQUN0QyxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUM7SUFDdEMsQ0FBQztJQUVELFlBQVksQ0FBQyxLQUFVO1FBQ25CLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2xDLENBQUM7SUFFRCxlQUFlLENBQUMsSUFBYTtRQUN6QixJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUU7WUFDaEMsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUM7U0FDeEI7YUFBTSxJQUFJLElBQUksQ0FBQyxRQUFRLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsRUFBRTtZQUNuRyxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQztTQUN0QjthQUFNO1lBQ0gsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUM7WUFDbkIsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUM7U0FDeEI7UUFDRCxJQUFJLENBQUMsdUJBQXVCLEVBQUUsQ0FBQztJQUNuQyxDQUFDO0lBRUQsU0FBUyxDQUFDLElBQWE7UUFDbkIsT0FBTyxJQUFJLENBQUMsUUFBUSxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sSUFBSSxJQUFJLENBQUMsV0FBVyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQzNILENBQUM7SUFFRCxRQUFRLENBQUMsSUFBYTtRQUNsQixPQUFPLElBQUksQ0FBQyxNQUFNLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDaEYsQ0FBQztJQUVELE9BQU8sQ0FBQyxJQUFhO1FBQ2pCLE9BQU8sQ0FDSCxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQ3pILENBQUM7SUFDTixDQUFDO0lBRUQsZUFBZTtRQUNYLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDdkIsQ0FBQztJQUVELGNBQWM7UUFDVixJQUFJLElBQUksQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFDLE1BQU0sRUFBRTtZQUM5QixJQUFJLE9BQU8sR0FBRyxFQUFFLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUSxFQUFFLE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDL0QsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7U0FDNUI7SUFDTCxDQUFDO0lBRUQsdUJBQXVCO1FBQ25CLElBQUksQ0FBQyxlQUFlLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQzNELENBQUM7O3dIQWhFUSwyQkFBMkI7NEdBQTNCLDJCQUEyQixvU0NWeEMsNjZCQTZCQTsyRkRuQmEsMkJBQTJCO2tCQU52QyxTQUFTOytCQUNJLCtCQUErQixtQkFHeEIsdUJBQXVCLENBQUMsTUFBTTswRUFJdEMsT0FBTztzQkFBZixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNJLFlBQVk7c0JBQXJCLE1BQU07Z0JBQ0UsZ0JBQWdCO3NCQUF4QixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0ksS0FBSztzQkFBZCxNQUFNO2dCQUNHLE1BQU07c0JBQWYsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbIi8vIEFuZ3VsYXIgaW1wb3J0IHN0YXRlbWVudHNcclxuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBOZ2JEYXRlIH0gZnJvbSBcIkBuZy1ib290c3RyYXAvbmctYm9vdHN0cmFwXCI7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiBcImFubmEtY29yZS1jYWxlbmRhci1maWx0ZXItbGliXCIsXHJcbiAgICB0ZW1wbGF0ZVVybDogXCIuL2FubmEtY2FsZW5kYXItZmlsdGVyLmNvbXBvbmVudC5odG1sXCIsXHJcbiAgICBzdHlsZVVybHM6IFtcIi4vYW5uYS1jYWxlbmRhci1maWx0ZXIuY29tcG9uZW50LnNjc3NcIl0sXHJcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxufSlcclxuZXhwb3J0IGNsYXNzIEFubmFDYWxlbmRhckZpbHRlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgICAvLyBAVmlld0NoaWxkKE5nYkRhdGVwaWNrZXIpIGRhdGVwaWNrZXI6IE5nYkRhdGVwaWNrZXI7XHJcbiAgICBASW5wdXQoKSBtYXhEYXRlOiBhbnk7XHJcbiAgICBASW5wdXQoKSBtaW5EYXRlOiBhbnk7XHJcbiAgICBASW5wdXQoKSBzaG93RGF0ZTogYW55O1xyXG4gICAgQE91dHB1dCgpIHNlbGVjdGVkRGF0ZSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICAgIEBJbnB1dCgpIHNlbGVjdGVkRnJvbURhdGU6IGFueTtcclxuICAgIEBJbnB1dCgpIHNlbGVjdGVkVG9EYXRlOiBhbnk7XHJcbiAgICBAT3V0cHV0KCkgYXBwbHkgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgICBAT3V0cHV0KCkgY2FuY2VsID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gICAgZnJvbURhdGU6IGFueTtcclxuICAgIHRvRGF0ZTogYW55O1xyXG4gICAgaG92ZXJlZERhdGU6IGFueTtcclxuICAgIGRpc2FibGVBcHBseUJ0bjogYm9vbGVhbiA9IGZhbHNlO1xyXG4gICAgY29uc3RydWN0b3IoKSB7fVxyXG5cclxuICAgIG5nT25Jbml0KCkge1xyXG4gICAgICAgIHRoaXMuZnJvbURhdGUgPSB0aGlzLnNlbGVjdGVkRnJvbURhdGU7XHJcbiAgICAgICAgdGhpcy50b0RhdGUgPSB0aGlzLnNlbGVjdGVkVG9EYXRlO1xyXG4gICAgfVxyXG5cclxuICAgIGRhdGVTZWxlY3RlZChldmVudDogYW55KSB7XHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZERhdGUuZW1pdChldmVudCk7XHJcbiAgICB9XHJcblxyXG4gICAgb25EYXRlU2VsZWN0aW9uKGRhdGU6IE5nYkRhdGUpIHtcclxuICAgICAgICBpZiAoIXRoaXMuZnJvbURhdGUgJiYgIXRoaXMudG9EYXRlKSB7XHJcbiAgICAgICAgICAgIHRoaXMuZnJvbURhdGUgPSBkYXRlO1xyXG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy5mcm9tRGF0ZSAmJiAhdGhpcy50b0RhdGUgJiYgKGRhdGUuYWZ0ZXIodGhpcy5mcm9tRGF0ZSkgfHwgZGF0ZS5lcXVhbHModGhpcy5mcm9tRGF0ZSkpKSB7XHJcbiAgICAgICAgICAgIHRoaXMudG9EYXRlID0gZGF0ZTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLnRvRGF0ZSA9IG51bGw7XHJcbiAgICAgICAgICAgIHRoaXMuZnJvbURhdGUgPSBkYXRlO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLmRpc2FibGVDYWxlbmRhckFwcGx5QnRuKCk7XHJcbiAgICB9XHJcblxyXG4gICAgaXNIb3ZlcmVkKGRhdGU6IE5nYkRhdGUpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5mcm9tRGF0ZSAmJiAhdGhpcy50b0RhdGUgJiYgdGhpcy5ob3ZlcmVkRGF0ZSAmJiBkYXRlLmFmdGVyKHRoaXMuZnJvbURhdGUpICYmIGRhdGUuYmVmb3JlKHRoaXMuaG92ZXJlZERhdGUpO1xyXG4gICAgfVxyXG5cclxuICAgIGlzSW5zaWRlKGRhdGU6IE5nYkRhdGUpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy50b0RhdGUgJiYgZGF0ZS5hZnRlcih0aGlzLmZyb21EYXRlKSAmJiBkYXRlLmJlZm9yZSh0aGlzLnRvRGF0ZSk7XHJcbiAgICB9XHJcblxyXG4gICAgaXNSYW5nZShkYXRlOiBOZ2JEYXRlKSB7XHJcbiAgICAgICAgcmV0dXJuIChcclxuICAgICAgICAgICAgZGF0ZS5lcXVhbHModGhpcy5mcm9tRGF0ZSkgfHwgKHRoaXMudG9EYXRlICYmIGRhdGUuZXF1YWxzKHRoaXMudG9EYXRlKSkgfHwgdGhpcy5pc0luc2lkZShkYXRlKSB8fCB0aGlzLmlzSG92ZXJlZChkYXRlKVxyXG4gICAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgY2FuY2VsU2VsZWN0aW9uKCkge1xyXG4gICAgICAgIHRoaXMuY2FuY2VsLmVtaXQoKTtcclxuICAgIH1cclxuXHJcbiAgICBhcHBseVNlbGVjdGlvbigpIHtcclxuICAgICAgICBpZiAodGhpcy5mcm9tRGF0ZSAmJiB0aGlzLnRvRGF0ZSkge1xyXG4gICAgICAgICAgICBsZXQgZGF0ZU9iaiA9IHsgZnJvbURhdGU6IHRoaXMuZnJvbURhdGUsIHRvRGF0ZTogdGhpcy50b0RhdGUgfTtcclxuICAgICAgICAgICAgdGhpcy5hcHBseS5lbWl0KGRhdGVPYmopO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBkaXNhYmxlQ2FsZW5kYXJBcHBseUJ0bigpIHtcclxuICAgICAgICB0aGlzLmRpc2FibGVBcHBseUJ0biA9ICEodGhpcy5mcm9tRGF0ZSAmJiB0aGlzLnRvRGF0ZSk7XHJcbiAgICB9XHJcbn1cclxuIiwiPG5nYi1kYXRlcGlja2VyXHJcbiAgICBjbGFzcz1cImN1c3RvbS1kYXRlcGlja2VyXCJcclxuICAgICNkcFxyXG4gICAgW21heERhdGVdPVwibWF4RGF0ZVwiXHJcbiAgICBbbWluRGF0ZV09XCJtaW5EYXRlXCJcclxuICAgIFtkaXNwbGF5TW9udGhzXT1cIjFcIlxyXG4gICAgW2RheVRlbXBsYXRlXT1cInRcIlxyXG4gICAgW3N0YXJ0RGF0ZV09XCJmcm9tRGF0ZVwiXHJcbiAgICAoZGF0ZVNlbGVjdCk9XCJvbkRhdGVTZWxlY3Rpb24oJGV2ZW50KVwiXHJcbiAgICBuYXZpZ2F0aW9uPVwic2VsZWN0XCJcclxuPlxyXG48L25nYi1kYXRlcGlja2VyPlxyXG48ZGl2IGNsYXNzPVwiYnV0dG9uc1wiPlxyXG4gICAgPGJ1dHRvbiBjbGFzcz1cImJ0blwiIChjbGljayk9XCJjYW5jZWxTZWxlY3Rpb24oKVwiPkNhbmNlbDwvYnV0dG9uPlxyXG4gICAgPGJ1dHRvbiBjbGFzcz1cImJ0blwiIChjbGljayk9XCJhcHBseVNlbGVjdGlvbigpXCIgW2Rpc2FibGVkXT1cImRpc2FibGVBcHBseUJ0blwiPkFwcGx5PC9idXR0b24+XHJcbjwvZGl2PlxyXG5cclxuPG5nLXRlbXBsYXRlICN0IGxldC1kYXRlIGxldC1mb2N1c2VkPVwiZm9jdXNlZFwiPlxyXG4gICAgPHNwYW5cclxuICAgICAgICBjbGFzcz1cImN1c3RvbS1kYXlcIlxyXG4gICAgICAgIFtjbGFzcy5mb2N1c2VkXT1cImZvY3VzZWRcIlxyXG4gICAgICAgIFtjbGFzcy5yYW5nZV09XCJpc1JhbmdlKGRhdGUpXCJcclxuICAgICAgICBbY2xhc3MuZmFkZWRdPVwiaXNIb3ZlcmVkKGRhdGUpIHx8IGlzSW5zaWRlKGRhdGUpXCJcclxuICAgICAgICAobW91c2VlbnRlcik9XCJob3ZlcmVkRGF0ZSA9IGRhdGVcIlxyXG4gICAgICAgIChtb3VzZWxlYXZlKT1cImhvdmVyZWREYXRlID0gbnVsbFwiXHJcbiAgICA+XHJcbiAgICAgICAge3sgZGF0ZS5kYXkgfX1cclxuICAgIDwvc3Bhbj5cclxuPC9uZy10ZW1wbGF0ZT5cclxuIl19