@annalib/anna-core 0.0.7 → 1.0.2

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 (199) hide show
  1. package/esm2020/lib/anna-core-shared-lib/components/anna-buyer-approval-icon-template/anna-buyer-approval-icon-template.component.mjs +6 -6
  2. package/esm2020/lib/anna-core-shared-lib/components/anna-icon-column/anna-icon-column.component.mjs +35 -0
  3. package/esm2020/lib/anna-core-shared-lib/components/anna-live-icon-template/anna-live-icon-template.component.mjs +6 -6
  4. package/esm2020/lib/anna-core-shared-lib/components/anna-no-data/anna-no-data.component.mjs +6 -6
  5. package/esm2020/lib/anna-core-shared-lib/components/anna-notify-icon-template/anna-notify-icon-template.component.mjs +6 -6
  6. package/esm2020/lib/anna-core-shared-lib/components/anna-pay-for-performance-icon-template/anna-pay-for-performance-icon-template.component.mjs +4 -4
  7. package/esm2020/lib/anna-core-shared-lib/components/anna-rejected-icon-template/anna-rejected-icon-template.component.mjs +6 -6
  8. package/esm2020/lib/anna-core-shared-lib/constants/shared.constant.mjs +3 -2
  9. package/esm2020/lib/anna-core-shared-lib/directives/digits-only/digits-only.directive.mjs +281 -0
  10. package/esm2020/lib/anna-core-shared-lib/directives/show-ellipsis-text/show-ellipsis-text.directive.mjs +27 -0
  11. package/esm2020/lib/anna-core-shared-lib/models/anna-generic-data-type.model.mjs +1 -1
  12. package/esm2020/lib/anna-core-shared-lib/models/anna-global-dropdown-config.model.mjs +1 -1
  13. package/esm2020/lib/anna-core-shared-lib/models/anna-manage-users.model.mjs +8 -0
  14. package/esm2020/lib/anna-core-shared-lib/models/anna-non-editable-gt-models.mjs +11 -3
  15. package/esm2020/lib/anna-core-shared-lib/models/anna-sort.model.mjs +7 -0
  16. package/esm2020/lib/anna-core-shared-lib/models/anna-tooltip.model.mjs +9 -5
  17. package/esm2020/lib/anna-core-shared-lib/pipes/annaConvertZeroOrNullOrUndefined.pipe.mjs +26 -0
  18. package/esm2020/lib/anna-core-shared-lib/pipes/annaFilterSearchedText.pipe.mjs +23 -8
  19. package/esm2020/lib/anna-core-shared-lib/pipes/annaReplaceChar.pipe.mjs +25 -0
  20. package/esm2020/lib/anna-core-shared-lib/pipes/annaTypeOfData.pipe.mjs +16 -0
  21. package/esm2020/lib/anna-core-shared-lib/services/anna-date-time-format.service.mjs +52 -34
  22. package/esm2020/lib/anna-core-shared-lib/services/anna-filter.service.mjs +238 -281
  23. package/esm2020/lib/anna-core-shared-lib/services/anna-generic-table.service.mjs +98 -15
  24. package/esm2020/lib/anna-core-shared-lib/services/anna-global-config.service.mjs +4 -5
  25. package/esm2020/lib/anna-core-shared-lib/services/anna-number-format.service.mjs +41 -0
  26. package/esm2020/lib/anna-core-shared-lib/services/anna-persisting-filter.service.mjs +60 -0
  27. package/esm2020/lib/anna-core-shared-lib/services/anna-sort.service.mjs +91 -125
  28. package/esm2020/lib/anna-core.module.mjs +178 -0
  29. package/esm2020/lib/anna-dropdown-lib/components/anna-calendar-filter/anna-calendar-filter.component.mjs +38 -13
  30. package/esm2020/lib/anna-dropdown-lib/components/anna-week-calendar-filter/anna-week-calendar-filter.component.mjs +27 -23
  31. package/esm2020/lib/anna-generic-table-lib/components/anna-non-editable-generic-table/anna-non-editable-generic-table.component.mjs +1419 -499
  32. package/esm2020/lib/anna-generic-table-lib/components/anna-sort/anna-sort.component.mjs +46 -107
  33. package/esm2020/lib/anna-generic-table-lib/components/anna-table-virtual-scroll-viewport/anna-table-virtual-scroll-viewport.component.mjs +7 -7
  34. 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 +5 -5
  35. package/esm2020/lib/anna-generic-table-lib/directives/anna-virtual-table/anna-virtual-table.directive.mjs +3 -3
  36. package/esm2020/public-api.mjs +48 -4
  37. package/fesm2015/annalib-anna-core.mjs +4498 -3079
  38. package/fesm2015/annalib-anna-core.mjs.map +1 -1
  39. package/fesm2020/annalib-anna-core.mjs +4694 -3279
  40. package/fesm2020/annalib-anna-core.mjs.map +1 -1
  41. package/lib/anna-core-shared-lib/components/anna-buyer-approval-icon-template/anna-buyer-approval-icon-template.component.d.ts +1 -1
  42. package/lib/anna-core-shared-lib/components/anna-icon-column/anna-icon-column.component.d.ts +16 -0
  43. package/lib/anna-core-shared-lib/components/anna-live-icon-template/anna-live-icon-template.component.d.ts +1 -1
  44. package/lib/anna-core-shared-lib/components/anna-no-data/anna-no-data.component.d.ts +1 -1
  45. package/lib/anna-core-shared-lib/components/anna-notify-icon-template/anna-notify-icon-template.component.d.ts +1 -1
  46. package/lib/anna-core-shared-lib/components/anna-pay-for-performance-icon-template/anna-pay-for-performance-icon-template.component.d.ts +1 -1
  47. package/lib/anna-core-shared-lib/components/anna-rejected-icon-template/anna-rejected-icon-template.component.d.ts +1 -1
  48. package/lib/anna-core-shared-lib/constants/shared.constant.d.ts +2 -1
  49. package/lib/anna-core-shared-lib/directives/digits-only/digits-only.directive.d.ts +34 -0
  50. package/lib/anna-core-shared-lib/directives/show-ellipsis-text/show-ellipsis-text.directive.d.ts +9 -0
  51. package/lib/anna-core-shared-lib/models/anna-generic-data-type.model.d.ts +8 -0
  52. package/lib/anna-core-shared-lib/models/anna-global-dropdown-config.model.d.ts +1 -0
  53. package/lib/anna-core-shared-lib/models/anna-manage-users.model.d.ts +6 -0
  54. package/lib/anna-core-shared-lib/models/anna-non-editable-gt-models.d.ts +52 -10
  55. package/lib/anna-core-shared-lib/models/anna-sort.model.d.ts +11 -0
  56. package/lib/anna-core-shared-lib/models/anna-tooltip.model.d.ts +8 -4
  57. package/lib/anna-core-shared-lib/pipes/annaConvertZeroOrNullOrUndefined.pipe.d.ts +9 -0
  58. package/lib/anna-core-shared-lib/pipes/annaFilterSearchedText.pipe.d.ts +1 -1
  59. package/lib/anna-core-shared-lib/pipes/annaReplaceChar.pipe.d.ts +9 -0
  60. package/lib/anna-core-shared-lib/pipes/annaTypeOfData.pipe.d.ts +7 -0
  61. package/lib/anna-core-shared-lib/services/anna-date-time-format.service.d.ts +2 -0
  62. package/lib/anna-core-shared-lib/services/anna-filter.service.d.ts +26 -20
  63. package/lib/anna-core-shared-lib/services/anna-generic-table.service.d.ts +21 -5
  64. package/lib/anna-core-shared-lib/services/anna-number-format.service.d.ts +7 -0
  65. package/lib/anna-core-shared-lib/services/anna-persisting-filter.service.d.ts +8 -0
  66. package/lib/anna-core-shared-lib/services/anna-sort.service.d.ts +7 -14
  67. package/lib/anna-core.module.d.ts +36 -0
  68. package/lib/anna-dropdown-lib/components/anna-calendar-filter/anna-calendar-filter.component.d.ts +12 -7
  69. package/lib/anna-dropdown-lib/components/anna-week-calendar-filter/anna-week-calendar-filter.component.d.ts +5 -2
  70. package/lib/anna-generic-table-lib/components/anna-non-editable-generic-table/anna-non-editable-generic-table.component.d.ts +165 -40
  71. package/lib/anna-generic-table-lib/components/anna-sort/anna-sort.component.d.ts +12 -22
  72. package/lib/anna-generic-table-lib/components/anna-table-virtual-scroll-viewport/anna-table-virtual-scroll-viewport.component.d.ts +3 -3
  73. 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 +1 -1
  74. package/lib/anna-generic-table-lib/directives/anna-virtual-table/anna-virtual-table.directive.d.ts +1 -1
  75. package/package.json +11 -34
  76. package/public-api.d.ts +35 -3
  77. package/src/lib/anna-assets/images/bg-heads.png +0 -0
  78. package/src/lib/anna-common-scss/_animate.scss +27 -0
  79. package/src/lib/anna-common-scss/_application-spacing.scss +6 -0
  80. package/src/lib/anna-common-scss/_bootstrap-tooltip.scss +25 -0
  81. package/src/lib/anna-common-scss/_colors.scss +107 -0
  82. package/src/lib/anna-common-scss/_customDropdown.scss +129 -0
  83. package/src/lib/anna-common-scss/_dashboard-partials.scss +104 -0
  84. package/src/lib/anna-common-scss/_date-picker-form.scss +87 -0
  85. package/src/lib/anna-common-scss/_filters.scss +641 -0
  86. package/src/lib/anna-common-scss/_font.scss +10 -0
  87. package/src/lib/anna-common-scss/_fonts.scss +86 -0
  88. package/src/lib/anna-common-scss/_generic-table-common.scss +112 -0
  89. package/src/lib/anna-common-scss/_legend.scss +11 -0
  90. package/src/lib/anna-common-scss/_mixins.scss +188 -0
  91. package/src/lib/anna-common-scss/_modal.scss +37 -0
  92. package/src/lib/anna-common-scss/_ng-select.scss +176 -0
  93. package/src/lib/anna-common-scss/_sort.scss +30 -0
  94. package/src/lib/anna-common-scss/_toggle.scss +84 -0
  95. package/src/lib/anna-common-scss/style.scss +1 -0
  96. package/esm2020/lib/anna-core-shared-lib/anna-core-shared-lib.module.mjs +0 -59
  97. package/esm2020/lib/anna-core-shared-lib/index.mjs +0 -2
  98. package/esm2020/lib/anna-core-shared-lib/public-api.mjs +0 -25
  99. package/esm2020/lib/anna-dropdown-lib/anna-dropdown-lib.module.mjs +0 -43
  100. package/esm2020/lib/anna-dropdown-lib/index.mjs +0 -2
  101. package/esm2020/lib/anna-dropdown-lib/public-api.mjs +0 -6
  102. package/esm2020/lib/anna-generic-table-lib/anna-generic-table-lib.module.mjs +0 -86
  103. package/esm2020/lib/anna-generic-table-lib/index.mjs +0 -2
  104. package/esm2020/lib/anna-generic-table-lib/public-api.mjs +0 -10
  105. package/esm2020/src/lib/anna-core-shared-lib/anna-core-shared-lib.module.mjs +0 -59
  106. package/esm2020/src/lib/anna-core-shared-lib/annalib-anna-core-src-lib-anna-core-shared-lib.mjs +0 -5
  107. package/esm2020/src/lib/anna-core-shared-lib/components/anna-buyer-approval-icon-template/anna-buyer-approval-icon-template.component.mjs +0 -15
  108. package/esm2020/src/lib/anna-core-shared-lib/components/anna-live-icon-template/anna-live-icon-template.component.mjs +0 -15
  109. package/esm2020/src/lib/anna-core-shared-lib/components/anna-no-data/anna-no-data.component.mjs +0 -22
  110. package/esm2020/src/lib/anna-core-shared-lib/components/anna-notify-icon-template/anna-notify-icon-template.component.mjs +0 -15
  111. 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
  112. package/esm2020/src/lib/anna-core-shared-lib/components/anna-rejected-icon-template/anna-rejected-icon-template.component.mjs +0 -15
  113. package/esm2020/src/lib/anna-core-shared-lib/constants/shared.constant.mjs +0 -34
  114. package/esm2020/src/lib/anna-core-shared-lib/models/anna-generic-data-type.model.mjs +0 -2
  115. package/esm2020/src/lib/anna-core-shared-lib/models/anna-global-dropdown-config.model.mjs +0 -2
  116. package/esm2020/src/lib/anna-core-shared-lib/models/anna-non-editable-gt-models.mjs +0 -3
  117. package/esm2020/src/lib/anna-core-shared-lib/models/anna-tooltip.model.mjs +0 -26
  118. package/esm2020/src/lib/anna-core-shared-lib/pipes/annaFilterSearchedText.pipe.mjs +0 -31
  119. package/esm2020/src/lib/anna-core-shared-lib/public-api.mjs +0 -25
  120. package/esm2020/src/lib/anna-core-shared-lib/services/anna-date-time-format.service.mjs +0 -180
  121. package/esm2020/src/lib/anna-core-shared-lib/services/anna-filter.service.mjs +0 -536
  122. package/esm2020/src/lib/anna-core-shared-lib/services/anna-generic-table.service.mjs +0 -52
  123. package/esm2020/src/lib/anna-core-shared-lib/services/anna-global-config.service.mjs +0 -133
  124. package/esm2020/src/lib/anna-core-shared-lib/services/anna-sort.service.mjs +0 -185
  125. package/esm2020/src/lib/anna-dropdown-lib/anna-dropdown-lib.module.mjs +0 -43
  126. package/esm2020/src/lib/anna-dropdown-lib/annalib-anna-core-src-lib-anna-dropdown-lib.mjs +0 -5
  127. package/esm2020/src/lib/anna-dropdown-lib/components/anna-calendar-filter/anna-calendar-filter.component.mjs +0 -76
  128. package/esm2020/src/lib/anna-dropdown-lib/components/anna-week-calendar-filter/anna-week-calendar-filter.component.mjs +0 -360
  129. package/esm2020/src/lib/anna-dropdown-lib/public-api.mjs +0 -6
  130. package/esm2020/src/lib/anna-generic-table-lib/anna-generic-table-lib.module.mjs +0 -86
  131. package/esm2020/src/lib/anna-generic-table-lib/annalib-anna-core-src-lib-anna-generic-table-lib.mjs +0 -5
  132. package/esm2020/src/lib/anna-generic-table-lib/components/anna-non-editable-generic-table/anna-non-editable-generic-table.component.mjs +0 -997
  133. package/esm2020/src/lib/anna-generic-table-lib/components/anna-sort/anna-sort.component.mjs +0 -125
  134. package/esm2020/src/lib/anna-generic-table-lib/components/anna-table-virtual-scroll-viewport/anna-table-virtual-scroll-viewport.component.mjs +0 -357
  135. 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
  136. package/esm2020/src/lib/anna-generic-table-lib/directives/anna-fixed-row-size-table-virtual-scroll-strategy/index.mjs +0 -2
  137. package/esm2020/src/lib/anna-generic-table-lib/directives/anna-virtual-table/anna-virtual-table.directive.mjs +0 -178
  138. package/esm2020/src/lib/anna-generic-table-lib/directives/anna-virtual-table/index.mjs +0 -2
  139. package/esm2020/src/lib/anna-generic-table-lib/public-api.mjs +0 -10
  140. package/fesm2015/annalib-anna-core-src-lib-anna-core-shared-lib.mjs +0 -1294
  141. package/fesm2015/annalib-anna-core-src-lib-anna-core-shared-lib.mjs.map +0 -1
  142. package/fesm2015/annalib-anna-core-src-lib-anna-dropdown-lib.mjs +0 -474
  143. package/fesm2015/annalib-anna-core-src-lib-anna-dropdown-lib.mjs.map +0 -1
  144. package/fesm2015/annalib-anna-core-src-lib-anna-generic-table-lib.mjs +0 -1895
  145. package/fesm2015/annalib-anna-core-src-lib-anna-generic-table-lib.mjs.map +0 -1
  146. package/fesm2020/annalib-anna-core-src-lib-anna-core-shared-lib.mjs +0 -1294
  147. package/fesm2020/annalib-anna-core-src-lib-anna-core-shared-lib.mjs.map +0 -1
  148. package/fesm2020/annalib-anna-core-src-lib-anna-dropdown-lib.mjs +0 -472
  149. package/fesm2020/annalib-anna-core-src-lib-anna-dropdown-lib.mjs.map +0 -1
  150. package/fesm2020/annalib-anna-core-src-lib-anna-generic-table-lib.mjs +0 -1894
  151. package/fesm2020/annalib-anna-core-src-lib-anna-generic-table-lib.mjs.map +0 -1
  152. package/lib/anna-core-shared-lib/anna-core-shared-lib.module.d.ts +0 -14
  153. package/lib/anna-core-shared-lib/index.d.ts +0 -1
  154. package/lib/anna-core-shared-lib/public-api.d.ts +0 -18
  155. package/lib/anna-dropdown-lib/anna-dropdown-lib.module.d.ts +0 -11
  156. package/lib/anna-dropdown-lib/index.d.ts +0 -1
  157. package/lib/anna-dropdown-lib/public-api.d.ts +0 -3
  158. package/lib/anna-generic-table-lib/anna-generic-table-lib.module.d.ts +0 -21
  159. package/lib/anna-generic-table-lib/index.d.ts +0 -1
  160. package/lib/anna-generic-table-lib/public-api.d.ts +0 -6
  161. package/src/lib/anna-core-shared-lib/anna-core-shared-lib.module.d.ts +0 -14
  162. package/src/lib/anna-core-shared-lib/annalib-anna-core-src-lib-anna-core-shared-lib.d.ts +0 -5
  163. package/src/lib/anna-core-shared-lib/components/anna-buyer-approval-icon-template/anna-buyer-approval-icon-template.component.d.ts +0 -8
  164. package/src/lib/anna-core-shared-lib/components/anna-live-icon-template/anna-live-icon-template.component.d.ts +0 -8
  165. package/src/lib/anna-core-shared-lib/components/anna-no-data/anna-no-data.component.d.ts +0 -11
  166. package/src/lib/anna-core-shared-lib/components/anna-notify-icon-template/anna-notify-icon-template.component.d.ts +0 -8
  167. 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
  168. package/src/lib/anna-core-shared-lib/components/anna-rejected-icon-template/anna-rejected-icon-template.component.d.ts +0 -8
  169. package/src/lib/anna-core-shared-lib/constants/shared.constant.d.ts +0 -32
  170. package/src/lib/anna-core-shared-lib/models/anna-generic-data-type.model.d.ts +0 -8
  171. package/src/lib/anna-core-shared-lib/models/anna-global-dropdown-config.model.d.ts +0 -95
  172. package/src/lib/anna-core-shared-lib/models/anna-non-editable-gt-models.d.ts +0 -70
  173. package/src/lib/anna-core-shared-lib/models/anna-tooltip.model.d.ts +0 -21
  174. package/src/lib/anna-core-shared-lib/package.json +0 -10
  175. package/src/lib/anna-core-shared-lib/pipes/annaFilterSearchedText.pipe.d.ts +0 -9
  176. package/src/lib/anna-core-shared-lib/public-api.d.ts +0 -18
  177. package/src/lib/anna-core-shared-lib/services/anna-date-time-format.service.d.ts +0 -25
  178. package/src/lib/anna-core-shared-lib/services/anna-filter.service.d.ts +0 -68
  179. package/src/lib/anna-core-shared-lib/services/anna-generic-table.service.d.ts +0 -14
  180. package/src/lib/anna-core-shared-lib/services/anna-global-config.service.d.ts +0 -21
  181. package/src/lib/anna-core-shared-lib/services/anna-sort.service.d.ts +0 -23
  182. package/src/lib/anna-dropdown-lib/anna-dropdown-lib.module.d.ts +0 -11
  183. package/src/lib/anna-dropdown-lib/annalib-anna-core-src-lib-anna-dropdown-lib.d.ts +0 -5
  184. package/src/lib/anna-dropdown-lib/components/anna-calendar-filter/anna-calendar-filter.component.d.ts +0 -29
  185. package/src/lib/anna-dropdown-lib/components/anna-week-calendar-filter/anna-week-calendar-filter.component.d.ts +0 -67
  186. package/src/lib/anna-dropdown-lib/package.json +0 -10
  187. package/src/lib/anna-dropdown-lib/public-api.d.ts +0 -3
  188. package/src/lib/anna-generic-table-lib/anna-generic-table-lib.module.d.ts +0 -21
  189. package/src/lib/anna-generic-table-lib/annalib-anna-core-src-lib-anna-generic-table-lib.d.ts +0 -5
  190. package/src/lib/anna-generic-table-lib/components/anna-non-editable-generic-table/anna-non-editable-generic-table.component.d.ts +0 -173
  191. package/src/lib/anna-generic-table-lib/components/anna-sort/anna-sort.component.d.ts +0 -27
  192. package/src/lib/anna-generic-table-lib/components/anna-table-virtual-scroll-viewport/anna-table-virtual-scroll-viewport.component.d.ts +0 -141
  193. 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
  194. package/src/lib/anna-generic-table-lib/directives/anna-fixed-row-size-table-virtual-scroll-strategy/index.d.ts +0 -1
  195. package/src/lib/anna-generic-table-lib/directives/anna-virtual-table/anna-virtual-table.directive.d.ts +0 -45
  196. package/src/lib/anna-generic-table-lib/directives/anna-virtual-table/index.d.ts +0 -1
  197. package/src/lib/anna-generic-table-lib/package.json +0 -10
  198. package/src/lib/anna-generic-table-lib/public-api.d.ts +0 -6
  199. /package/{annalib-anna-core.d.ts → index.d.ts} +0 -0
@@ -1,65 +1,61 @@
1
1
  // Angular import statements
2
- import { Injectable } from "@angular/core";
2
+ import { Injectable } from '@angular/core';
3
+ import { Subject } from 'rxjs';
3
4
  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
5
  import * as i0 from "@angular/core";
8
6
  import * as i1 from "./anna-date-time-format.service";
7
+ // Third party import statements
8
+ // User defined import statements
9
9
  export class AnnaSortService {
10
10
  constructor(annaDateTimeFormatService) {
11
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;
12
+ this.updateSortTypeSubject = new Subject();
13
+ this.dateSet = new Set([
14
+ 'endDate',
15
+ 'startDate',
16
+ 'end_date',
17
+ 'start_date',
18
+ 'flightStartDate',
19
+ 'flightEndDate',
20
+ "date"
21
+ ]);
26
22
  }
27
- sort(isAsc, data, sortBy) {
28
- const dataToExclude = [];
29
- const dataToInclude = [];
23
+ sortDataForComponentOtherThanLurAndCsrPage(isAsc, data, key) {
30
24
  let param1;
31
25
  let param2;
32
- if (this.dateSet.has(sortBy)) {
26
+ if (this.dateSet.has(key)) {
33
27
  data.sort((a, b) => {
34
- return this.annaDateTimeFormatService.compareDate(a[sortBy], b[sortBy], isAsc);
28
+ return this.annaDateTimeFormatService.compareDate(a[key], b[key], isAsc);
35
29
  });
36
30
  }
37
- else if (sortBy === "AirDateAndTime") {
31
+ else if (key === 'AirDateAndTime') {
38
32
  data.sort((a, b) => {
39
33
  let first, second;
40
- if (a[sortBy] == "-") {
34
+ if (a[key] == '-') {
41
35
  return 1;
42
36
  }
43
- if (b[sortBy] == "-") {
37
+ if (b[key] == '-') {
44
38
  return -1;
45
39
  }
46
40
  else {
47
- first = this.annaDateTimeFormatService.formatDateAndHHMMATimeToStandardFormat(a[sortBy]);
48
- second = this.annaDateTimeFormatService.formatDateAndHHMMATimeToStandardFormat(b[sortBy]);
41
+ first =
42
+ this.annaDateTimeFormatService.formatDateAndHHMMATimeToStandardFormat(a[key]);
43
+ second =
44
+ this.annaDateTimeFormatService.formatDateAndHHMMATimeToStandardFormat(b[key]);
49
45
  let compareDate = this.annaDateTimeFormatService.compareDate(first, second, isAsc);
50
46
  return compareDate;
51
47
  }
52
48
  });
53
49
  }
54
- else if (sortBy === "startEndTime" || sortBy === "TimeBand") {
50
+ else if (key == 'startEndTime' || key == 'TimeBand') {
55
51
  data.sort((a, b) => {
56
52
  if (isAsc) {
57
- param1 = a[sortBy][1];
58
- param2 = b[sortBy][1];
53
+ param1 = a[key][1];
54
+ param2 = b[key][1];
59
55
  }
60
56
  else {
61
- param1 = a[sortBy][2];
62
- param2 = b[sortBy][2];
57
+ param1 = a[key][2];
58
+ param2 = b[key][2];
63
59
  }
64
60
  let val = isAsc
65
61
  ? this.annaDateTimeFormatService.sortByTimeAscending(param1, param2)
@@ -67,119 +63,89 @@ export class AnnaSortService {
67
63
  return val;
68
64
  });
69
65
  }
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
66
  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);
67
+ let dataWithoutEmptyOrHyphenValues = data.filter(n => n[key] != "-");
68
+ let rowsWithHyphenOrZeroValues = data.filter(n => n[key] == "-");
69
+ dataWithoutEmptyOrHyphenValues.sort((a, b) => {
70
+ param1 = a[key];
71
+ param2 = b[key];
72
+ if (param1 !== param2) {
73
+ return this.annaDateTimeFormatService.compare(param1, param2, isAsc);
88
74
  }
75
+ return 0;
89
76
  });
90
- data = [];
91
- data = dataToInclude;
77
+ data = isAsc ? [...rowsWithHyphenOrZeroValues, ...dataWithoutEmptyOrHyphenValues] :
78
+ [...dataWithoutEmptyOrHyphenValues, ...rowsWithHyphenOrZeroValues];
79
+ }
80
+ return data;
81
+ }
82
+ sortEnterEditLurAndCsrPage(isAsc, data, key) {
83
+ let param1;
84
+ let param2;
85
+ if (key.includes('_')) {
86
+ let keys = key.split('_');
87
+ let weekNumber = keys[0];
88
+ let sortKey = keys[1];
89
+ if (keys.length > 2) {
90
+ sortKey =
91
+ keys[2] == true
92
+ ? 'BookedAurIncludingNoChargeSpots'
93
+ : 'BookedAurExcludingNoChargeSpots';
94
+ }
92
95
  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
- }
96
+ let aInventoryCodeWeekWiseKey = Object.keys(a.WeekWiseInventoryCodeData).filter((key) => key.split('_')[1] == weekNumber);
97
+ let bInventoryCodeWeekWiseKey = Object.keys(b.WeekWiseInventoryCodeData).filter((key) => key.split('_')[1] == weekNumber);
98
+ param1 = null;
99
+ param2 = null;
100
+ if (aInventoryCodeWeekWiseKey.length > 0) {
101
+ param1 =
102
+ a.WeekWiseInventoryCodeData[aInventoryCodeWeekWiseKey[0]][sortKey][1];
100
103
  }
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
- }
104
+ if (bInventoryCodeWeekWiseKey.length > 0) {
105
+ param2 =
106
+ b.WeekWiseInventoryCodeData[bInventoryCodeWeekWiseKey[0]][sortKey][1];
106
107
  }
107
108
  if (param1 !== param2) {
108
109
  return this.annaDateTimeFormatService.compare(param1, param2, isAsc);
109
110
  }
110
- // CHANGES@ANNALIB changed it to from false to 0
111
111
  return 0;
112
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
- });
113
+ }
114
+ else if (key == 'TimeBand') {
115
+ data.sort((a, b) => {
116
+ if (isAsc) {
117
+ param1 = a[key][1];
118
+ param2 = b[key][1];
137
119
  }
138
120
  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;
121
+ param1 = a[key][2];
122
+ param2 = b[key][2];
166
123
  }
124
+ let val = isAsc
125
+ ? this.annaDateTimeFormatService.sortByTimeAscending(param1, param2)
126
+ : this.annaDateTimeFormatService.sortByTimeDescending(param1, param2);
127
+ return val;
167
128
  });
168
129
  }
169
- if (sortBy != null) {
170
- return this.sort(isAsc, data, sortBy).data;
171
- }
172
130
  else {
173
- return data;
131
+ data.sort((a, b) => {
132
+ param1 = a[key];
133
+ param2 = b[key];
134
+ if (param1 !== param2) {
135
+ return this.annaDateTimeFormatService.compare(param1, param2, isAsc);
136
+ }
137
+ return 0;
138
+ });
174
139
  }
140
+ return data;
175
141
  }
176
142
  }
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: [{
143
+ AnnaSortService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: AnnaSortService, deps: [{ token: i1.AnnaDateTimeFormatService }], target: i0.ɵɵFactoryTarget.Injectable });
144
+ AnnaSortService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: AnnaSortService, providedIn: 'root' });
145
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: AnnaSortService, decorators: [{
180
146
  type: Injectable,
181
147
  args: [{
182
- providedIn: "root",
148
+ providedIn: 'root',
183
149
  }]
184
150
  }], ctorParameters: function () { return [{ type: i1.AnnaDateTimeFormatService }]; } });
185
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5uYS1zb3J0LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbm5hLWNvcmUvc3JjL2xpYi9hbm5hLWNvcmUtc2hhcmVkLWxpYi9zZXJ2aWNlcy9hbm5hLXNvcnQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSw0QkFBNEI7QUFDNUIsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUU1RSxnQ0FBZ0M7QUFFaEMsaUNBQWlDO0FBQ2pDLE9BQU8sRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFDLE1BQU0sOEJBQThCLENBQUM7OztBQUs5RCxNQUFNLE9BQU8sZUFBZTtJQVExQixZQUFvQix5QkFBb0Q7UUFBcEQsOEJBQXlCLEdBQXpCLHlCQUF5QixDQUEyQjtRQVB4RSxjQUFTLEdBQXlCLElBQUksR0FBRyxFQUFFLENBQUM7UUFDNUMsZUFBVSxHQUF5QixJQUFJLEdBQUcsRUFBRSxDQUFDO1FBQzdDLFlBQU8sR0FBRyxJQUFJLEdBQUcsQ0FBQyxDQUFDLFNBQVMsRUFBRSxXQUFXLEVBQUUsVUFBVSxFQUFFLFlBQVksRUFBRSxpQkFBaUIsRUFBRSxlQUFlLENBQUMsQ0FBQyxDQUFDO1FBTXhHLE9BQU8sQ0FBQyxHQUFHLENBQUMsNENBQTRDLENBQUMsQ0FBQTtJQUMxRCxDQUFDO0lBRUYsdUJBQXVCLENBQUMsT0FBNkIsRUFBRSxVQUFtQjtRQUN4RSxJQUFJLEdBQUcsR0FBcUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLFVBQVUsRUFBRSxJQUFJLEVBQUUsQ0FBQztRQUUxRSxLQUFLLElBQUksQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLElBQUksT0FBTyxDQUFDLE9BQU8sRUFBRSxFQUFFO1lBQzFDLElBQUksS0FBSyxFQUFFO2dCQUNULEdBQUcsR0FBRyxFQUFFLEdB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QUksRUFBRSxLQUFLLEVBQUUsQ0FBQztJQUM1RCxDQUFDO0lBRUQsUUFBUSxDQUFDLElBQVc7UUFDbEIsSUFBSSxNQUFNLEdBQUcsSUFBSSxDQUFDO1FBQ2xCLElBQUksS0FBYyxDQUFDO1FBQ25CLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLENBQUMsS0FBSyxFQUFFLEdBQUcsRUFBRSxFQUFFO1lBQ2xDLElBQUksS0FBSyxLQUFLLElBQUksRUFBRTtnQkFDaEIsTUFBTSxHQUFHLEdBQUcsQ0FBQztnQkFDYixLQUFLLEdBQUcsSUFBSSxDQUFDO2FBQ2hCO1FBQ0wsQ0FBQyxDQUFDLENBQUM7UUFDSCxJQUFJLE1BQU0sSUFBSSxJQUFJLEVBQUU7WUFDaEIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxLQUFLLEVBQUUsR0FBRyxFQUFFLEVBQUU7Z0JBQ25DLElBQUksS0FBSyxLQUFLLElBQUksRUFBRTtvQkFDaEIsTUFBTSxHQUFHLEdBQUcsQ0FBQztvQkFDYixLQUFLLEdBQUcsS0FBSyxDQUFDO2lCQUNqQjtZQUNMLENBQUMsQ0FBQyxDQUFDO1NBQ047UUFDRCxJQUFJLE1BQU0sSUFBSSxJQUFJLEVBQUU7WUFDaEIsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxJQUFJLEVBQUUsTUFBTSxDQUFDLENBQUMsSUFBSSxDQUFDO1NBQzlDO2FBQU07WUFDSCxPQUFPLElBQUksQ0FBQztTQUNmO0lBQ0wsQ0FBQzs7NEdBeExZLGVBQWU7Z0hBQWYsZUFBZSxjQUZkLE1BQU07MkZBRVAsZUFBZTtrQkFIM0IsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBBbmd1bGFyIGltcG9ydCBzdGF0ZW1lbnRzXHJcbmltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBBbm5hRGF0ZVRpbWVGb3JtYXRTZXJ2aWNlIH0gZnJvbSAnLi9hbm5hLWRhdGUtdGltZS1mb3JtYXQuc2VydmljZSc7XHJcblxyXG4vLyBUaGlyZCBwYXJ0eSBpbXBvcnQgc3RhdGVtZW50c1xyXG5cclxuLy8gVXNlciBkZWZpbmVkIGltcG9ydCBzdGF0ZW1lbnRzXHJcbmltcG9ydCB7IERheXMsIENvbnN0YW50c30gZnJvbSBcIi4uL2NvbnN0YW50cy9zaGFyZWQuY29uc3RhbnRcIjtcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiBcInJvb3RcIixcclxufSlcclxuZXhwb3J0IGNsYXNzIEFubmFTb3J0U2VydmljZSB7XHJcbiAgc29ydEJ5QXNjOiBNYXA8c3RyaW5nLCBib29sZWFuPiA9IG5ldyBNYXAoKTtcclxuICBzb3J0QnlEZXNjOiBNYXA8c3RyaW5nLCBib29sZWFuPiA9IG5ldyBNYXAoKTtcclxuICBkYXRlU2V0ID0gbmV3IFNldChbXCJlbmREYXRlXCIsIFwic3RhcnREYXRlXCIsIFwiZW5kX2RhdGVcIiwgXCJzdGFydF9kYXRlXCIsIFwiZmxpZ2h0U3RhcnREYXRlXCIsIFwiZmxpZ2h0RW5kRGF0ZVwiXSk7XHJcbiAgdG9vbHRpcDogYW55O1xyXG4gIGtleVNvcnRlZDogc3RyaW5nO1xyXG4gIGlzQXNjOiBib29sZWFuO1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGFubmFEYXRlVGltZUZvcm1hdFNlcnZpY2U6IEFubmFEYXRlVGltZUZvcm1hdFNlcnZpY2UpIHtcclxuICAgIGNvbnNvbGUubG9nKFwiQW5uYVRhYmxlQ29sdW1uU29ydFNlcnZpY2Ugc2V2aWNlIGNyZWF0ZWQuXCIpXHJcbiAgIH1cclxuXHJcbiAgY2hlY2tJZlNvcnRpbmdJc0FwcGxpZWQoc29ydE1hcDogTWFwPHN0cmluZywgYm9vbGVhbj4sIHNldFZhbHVlVG86IGJvb2xlYW4pIHtcclxuICAgIGxldCBvYmo6IHsga2V5OiBzdHJpbmcsIHNldFZhbHVlVG86IGFueSB9ID0geyBrZXk6IFwiXCIsIHNldFZhbHVlVG86IG51bGwgfTtcclxuXHJcbiAgICBmb3IgKGxldCBba2V5LCB2YWx1ZV0gb2Ygc29ydE1hcC5lbnRyaWVzKCkpIHtcclxuICAgICAgaWYgKHZhbHVlKSB7XHJcbiAgICAgICAgb2JqID0geyBrZXksIHNldFZhbHVlVG8gfTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIG9iajtcclxuICB9XHJcblxyXG4gIHNvcnQoaXNBc2M6IGJvb2xlYW4sIGRhdGE6IGFueVtdLCBzb3J0Qnk6IHN0cmluZykge1xyXG4gICAgY29uc3QgZGF0YVRvRXhjbHVkZTogYW55W10gPSBbXTtcclxuICAgIGNvbnN0IGRhdGFUb0luY2x1ZGU6IGFueVtdID0gW107XHJcbiAgICBsZXQgcGFyYW0xOiBzdHJpbmcgfCBudW1iZXI7XHJcbiAgICBsZXQgcGFyYW0yOiBzdHJpbmcgfCBudW1iZXI7XHJcbiAgICBpZiAodGhpcy5kYXRlU2V0Lmhhcyhzb3J0QnkpKSB7XHJcbiAgICAgIGRhdGEuc29ydCgoYSwgYikgPT4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmFubmFEYXRlVGltZUZvcm1hdFNlcnZpY2UuY29tcGFyZURhdGUoYVtzb3J0QnldLCBiW3NvcnRCeV0sIGlzQXNjKTtcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgICBlbHNlIGlmIChzb3J0QnkgPT09IFwiQWlyRGF0ZUFuZFRpbWVcIikge1xyXG4gICAgICBkYXRhLnNvcnQoKGEsIGIpID0+IHtcclxuICAgICAgICBsZXQgZmlyc3QsIHNlY29uZDtcclxuICAgICAgICBpZiAoYVtzb3J0QnldID09IFwiLVwiKSB7XHJcbiAgICAgICAgICByZXR1cm4gMTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKGJbc29ydEJ5XSA9PSBcIi1cIikge1xyXG4gICAgICAgICAgcmV0dXJuIC0xO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgIGZpcnN0ID0gdGhpcy5hbm5hRGF0ZVRpbWVGb3JtYXRTZXJ2aWNlLmZvcm1hdERhdGVBbmRISE1NQVRpbWVUb1N0YW5kYXJkRm9ybWF0KGFbc29ydEJ5XSk7XHJcbiAgICAgICAgICBzZWNvbmQgPSB0aGlzLmFubmFEYXRlVGltZUZvcm1hdFNlcnZpY2UuZm9ybWF0RGF0ZUFuZEhITU1BVGltZVRvU3RhbmRhcmRGb3JtYXQoYltzb3J0QnldKTtcclxuICAgICAgICAgIGxldCBjb21wYXJlRGF0ZSA9IHRoaXMuYW5uYURhdGVUaW1lRm9ybWF0U2VydmljZS5jb21wYXJlRGF0ZShmaXJzdCwgc2Vjb25kLCBpc0FzYylcclxuICAgICAgICAgIHJldHVybiBjb21wYXJlRGF0ZTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gICAgZWxzZSBpZiAoc29ydEJ5ID09PSBcInN0YXJ0RW5kVGltZVwiIHx8IHNvcnRCeSA9PT0gXCJUaW1lQmFuZFwiKSB7XHJcbiAgICAgIGRhdGEuc29ydCgoYSwgYikgPT4ge1xyXG4gICAgICAgIGlmIChpc0FzYykge1xyXG4gICAgICAgICAgcGFyYW0xID0gYVtzb3J0QnldWzFdO1xyXG4gICAgICAgICAgcGFyYW0yID0gYltzb3J0QnldWzFdO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBwYXJhbTEgPSBhW3NvcnRCeV1bMl07XHJcbiAgICAgICAgICBwYXJhbTIgPSBiW3NvcnRCeV1bMl07XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGxldCB2YWwgPSBpc0FzY1xyXG4gICAgICAgICAgPyB0aGlzLmFubmFEYXRlVGltZUZvcm1hdFNlcnZpY2Uuc29ydEJ5VGltZUFzY2VuZGluZyhwYXJhbTEsIHBhcmFtMilcclxuICAgICAgICAgIDogdGhpcy5hbm5hRGF0ZVRpbWVGb3JtYXRTZXJ2aWNlLnNvcnRCeVRpbWVEZXNjZW5kaW5nKHBhcmFtMSwgcGFyYW0yKTtcclxuICAgICAgICByZXR1cm4gdmFsO1xyXG4gICAgICB9KTtcclxuICAgIH0gZWxzZSBpZiAoc29ydEJ5ID09PSBcImRheXNcIikge1xyXG4gICAgICBkYXRhLnNvcnQoKGEsIGIpID0+IHtcclxuICAgICAgICBwYXJhbTEgPSBhW3NvcnRCeV0uaW5jbHVkZXMoXCItXCIpID8gRGF5c1thW3NvcnRCeV0uc3BsaXQoXCItXCIpWzBdXSA6IERheXNbYVtzb3J0QnldXTtcclxuICAgICAgICBwYXJhbTIgPSBiW3NvcnRCeV0uaW5jbHVkZXMoXCItXCIpID8gRGF5c1tiW3NvcnRCeV0uc3BsaXQoXCItXCIpWzBdXSA6IERheXNbYltzb3J0QnldXTtcclxuICAgICAgICByZXR1cm4gdGhpcy5hbm5hRGF0ZVRpbWVGb3JtYXRTZXJ2aWNlLmNvbXBhcmUocGFyYW0xLCBwYXJhbTIsIGlzQXNjKTtcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgICAvL3NvcnQgYnkgc3RyaW5nIG9yIG51bWJlclxyXG4gICAgZWxzZSB7XHJcbiAgICAgIGRhdGEuZm9yRWFjaCgoYSkgPT4ge1xyXG4gICAgICAgIC8vIGlmKGFbJ3NvcnQnXSA9PSB1bmRlZmluZWQpIC8vXHJcbiAgICAgICAgLy9mb3IgY29tcG9uZW50IG90aGVyIHRoYW4gZW50ZXIvZWRpdCBsdXIgcGFnZVxyXG4gICAgICAgIGlmICghKFwic29ydFwiIGluIGEpKSB7XHJcbiAgICAgICAgICBkYXRhVG9JbmNsdWRlLnB1c2goYSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC8vZm9yIGVudGVyL2VkaXQgbHVyIHBhZ2VcclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgIGRhdGFUb0V4Y2x1ZGUucHVzaChhKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG5cclxuICAgICAgZGF0YSA9IFtdO1xyXG4gICAgICBkYXRhID0gZGF0YVRvSW5jbHVkZTtcclxuICAgICAgZGF0YS5zb3J0KChhLCBiKTogbnVtYmVyID0+IHtcclxuICAgICAgICBwYXJhbTEgPSBhW3NvcnRCeV07XHJcbiAgICAgICAgcGFyYW0yID0gYltzb3J0QnldO1xyXG5cclxuICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShhW3NvcnRCeV0pKSB7XHJcbiAgICAgICAgICBwYXJhbTEgPSBhW3NvcnRCeV1bMF0gPT09IFwiLVwiID8gMCA6IGFbc29ydEJ5XVswXTtcclxuICAgICAgICAgIGlmIChhW3NvcnRCeV1bMF0uaW5jbHVkZXMoQ29uc3RhbnRzLmRvbGxhcnMpKSB7XHJcbiAgICAgICAgICAgIHBhcmFtMSA9ICthW3NvcnRCeV1bMF0uc3BsaXQoQ29uc3RhbnRzLmRvbGxhcnMpWzFdO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkoYltzb3J0QnldKSkge1xyXG4gICAgICAgICAgcGFyYW0yID0gYltzb3J0QnldWzBdID09IFwiLVwiID8gMCA6IGJbc29ydEJ5XVswXTtcclxuICAgICAgICAgIGlmIChiW3NvcnRCeV1bMF0uaW5jbHVkZXMoQ29uc3RhbnRzLmRvbGxhcnMpKSB7XHJcbiAgICAgICAgICAgIHBhcmFtMiA9ICtiW3NvcnRCeV1bMF0uc3BsaXQoQ29uc3RhbnRzLmRvbGxhcnMpWzFdO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKHBhcmFtMSAhPT0gcGFyYW0yKSB7XHJcbiAgICAgICAgICByZXR1cm4gdGhpcy5hbm5hRGF0ZVRpbWVGb3JtYXRTZXJ2aWNlLmNvbXBhcmUocGFyYW0xLCBwYXJhbTIsIGlzQXNjKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgLy8gQ0hBTkdFU0BBTk5BTElCIGNoYW5nZWQgaXQgdG8gZnJvbSBmYWxzZSB0byAwXHJcbiAgICAgICAgcmV0dXJuIDA7XHJcbiAgICAgIH0pO1xyXG5cclxuICAgICAgaWYgKGRhdGFUb0V4Y2x1ZGUubGVuZ3RoID4gMCkge1xyXG4gICAgICAgIGlmIChzb3J0QnkuaW5jbHVkZXMoXCJfXCIpKSB7XHJcbiAgICAgICAgICBsZXQga2V5czogYW55ID0gc29ydEJ5LnNwbGl0KFwiX1wiKTtcclxuICAgICAgICAgIGxldCB3ZWVrTnVtYmVyID0ga2V5c1swXTtcclxuICAgICAgICAgIGxldCBzb3J0S2V5ID0ga2V5c1sxXTtcclxuICAgICAgICAgIGlmIChrZXlzLmxlbmd0aCA+IDIpIHtcclxuICAgICAgICAgICAgc29ydEtleSA9IGtleXNbMl0gPT0gdHJ1ZSA/IFwiQm9va2VkQXVySW5jbHVkaW5nTm9DaGFyZ2VTcG90c1wiIDogXCJCb29rZWRBdXJFeGNsdWRpbmdOb0NoYXJnZVNwb3RzXCI7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBkYXRhVG9FeGNsdWRlLnNvcnQoKGEsIGIpID0+IHtcclxuICAgICAgICAgICAgbGV0IGFJbnZlbnRvcnlDb2RlV2Vla1dpc2VLZXkgPSBPYmplY3Qua2V5cyhhLldlZWtXaXNlSW52ZW50b3J5Q29kZURhdGEpLmZpbHRlcihcclxuICAgICAgICAgICAgICAoa2V5KSA9PiBrZXkuc3BsaXQoXCJfXCIpWzFdID09IHdlZWtOdW1iZXJcclxuICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgbGV0IGJJbnZlbnRvcnlDb2RlV2Vla1dpc2VLZXkgPSBPYmplY3Qua2V5cyhiLldlZWtXaXNlSW52ZW50b3J5Q29kZURhdGEpLmZpbHRlcihcclxuICAgICAgICAgICAgICAoa2V5KSA9PiBrZXkuc3BsaXQoXCJfXCIpWzFdID09IHdlZWtOdW1iZXJcclxuICAgICAgICAgICAgKTtcclxuXHJcbiAgICAgICAgICAgIHBhcmFtMSA9IG51bGw7XHJcbiAgICAgICAgICAgIHBhcmFtMiA9IG51bGw7XHJcbiAgICAgICAgICAgIGlmIChhSW52ZW50b3J5Q29kZVdlZWtXaXNlS2V5Lmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgICAgICBwYXJhbTEgPSBhLldlZWtXaXNlSW52ZW50b3J5Q29kZURhdGFbYUludmVudG9yeUNvZGVXZWVrV2lzZUtleVswXV1bc29ydEtleV1bMV07XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIGlmIChiSW52ZW50b3J5Q29kZVdlZWtXaXNlS2V5Lmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgICAgICBwYXJhbTIgPSBiLldlZWtXaXNlSW52ZW50b3J5Q29kZURhdGFbYkludmVudG9yeUNvZGVXZWVrV2lzZUtleVswXV1bc29ydEtleV1bMV07XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIGlmIChwYXJhbTEgIT09IHBhcmFtMikge1xyXG4gICAgICAgICAgICAgIHJldHVybiB0aGlzLmFubmFEYXRlVGltZUZvcm1hdFNlcnZpY2UuY29tcGFyZShwYXJhbTEsIHBhcmFtMiwgaXNBc2MpO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICByZXR1cm4gMDtcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBkYXRhVG9FeGNsdWRlLnNvcnQoKGEsIGIpID0+IHtcclxuICAgICAgICAgICAgcGFyYW0xID0gYVtzb3J0QnldO1xyXG4gICAgICAgICAgICBwYXJhbTIgPSBiW3NvcnRCeV07XHJcblxyXG4gICAgICAgICAgICBpZiAocGFyYW0xICE9PSBwYXJhbTIpIHtcclxuICAgICAgICAgICAgICByZXR1cm4gdGhpcy5hbm5hRGF0ZVRpbWVGb3JtYXRTZXJ2aWNlLmNvbXBhcmUocGFyYW0xLCBwYXJhbTIsIGlzQXNjKTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgcmV0dXJuIDA7XHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiB7IGRhdGE6IFsuLi5kYXRhLCAuLi5kYXRhVG9FeGNsdWRlXSwgdHlwZTogaXNBc2MgfTtcclxuICB9XHJcblxyXG4gIGNhbGxTb3J0KGRhdGE6IGFueVtdKSB7XHJcbiAgICBsZXQgc29ydEJ5ID0gbnVsbDtcclxuICAgIGxldCBpc0FzYzogYm9vbGVhbjtcclxuICAgIHRoaXMuc29ydEJ5QXNjLmZvckVhY2goKHZhbHVlLCBrZXkpID0+IHtcclxuICAgICAgICBpZiAodmFsdWUgPT09IHRydWUpIHtcclxuICAgICAgICAgICAgc29ydEJ5ID0ga2V5O1xyXG4gICAgICAgICAgICBpc0FzYyA9IHRydWU7XHJcbiAgICAgICAgfVxyXG4gICAgfSk7XHJcbiAgICBpZiAoc29ydEJ5ID09IG51bGwpIHtcclxuICAgICAgICB0aGlzLnNvcnRCeURlc2MuZm9yRWFjaCgodmFsdWUsIGtleSkgPT4ge1xyXG4gICAgICAgICAgICBpZiAodmFsdWUgPT09IHRydWUpIHtcclxuICAgICAgICAgICAgICAgIHNvcnRCeSA9IGtleTtcclxuICAgICAgICAgICAgICAgIGlzQXNjID0gZmFsc2U7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgIH1cclxuICAgIGlmIChzb3J0QnkgIT0gbnVsbCkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLnNvcnQoaXNBc2MsIGRhdGEsIHNvcnRCeSkuZGF0YTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgICAgcmV0dXJuIGRhdGE7XHJcbiAgICB9XHJcbn1cclxuXHJcblxyXG59XHJcbiJdfQ==
151
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5uYS1zb3J0LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbm5hLWNvcmUvc3JjL2xpYi9hbm5hLWNvcmUtc2hhcmVkLWxpYi9zZXJ2aWNlcy9hbm5hLXNvcnQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSw0QkFBNEI7QUFDNUIsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRS9CLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLGlDQUFpQyxDQUFDOzs7QUFFNUUsZ0NBQWdDO0FBRWhDLGlDQUFpQztBQUtqQyxNQUFNLE9BQU8sZUFBZTtJQWUxQixZQUFvQix5QkFBb0Q7UUFBcEQsOEJBQXlCLEdBQXpCLHlCQUF5QixDQUEyQjtRQVp4RSwwQkFBcUIsR0FBb0IsSUFBSSxPQUFPLEVBQUUsQ0FBQztRQUV2RCxZQUFPLEdBQUcsSUFBSSxHQUFHLENBQUM7WUFDaEIsU0FBUztZQUNULFdBQVc7WUFDWCxVQUFVO1lBQ1YsWUFBWTtZQUNaLGlCQUFpQjtZQUNqQixlQUFlO1lBQ2YsTUFBTTtTQUNQLENBQUMsQ0FBQztJQUdILENBQUM7SUFFRCwwQ0FBMEMsQ0FDeEMsS0FBYyxFQUNkLElBQVcsRUFDWCxHQUFXO1FBRVgsSUFBSSxNQUF1QixDQUFDO1FBQzVCLElBQUksTUFBdUIsQ0FBQztRQUU1QixJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFO1lBQ3pCLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUU7Z0JBQ2pCLE9BQU8sSUFBSSxDQUFDLHlCQUF5QixDQUFDLFdBQVcsQ0FDL0MsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUNOLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFDTixLQUFLLENB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RCxJQUFJLEdBQUcsR0FBRyxLQUFLO29CQUNiLENBQUMsQ0FBQyxJQUFJLENBQUMseUJBQXlCLENBQUMsbUJBQW1CLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQztvQkFDcEUsQ0FBQyxDQUFDLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxvQkFBb0IsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUM7Z0JBQ3hFLE9BQU8sR0FBRyxDQUFDO1lBQ2IsQ0FBQyxDQUFDLENBQUM7U0FDSjthQUFNO1lBQ0wsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRTtnQkFDakIsTUFBTSxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQztnQkFDaEIsTUFBTSxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQztnQkFFaEIsSUFBSSxNQUFNLEtBQUssTUFBTSxFQUFFO29CQUNyQixPQUFPLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLE1BQU0sRUFBRSxLQUFLLENBQUMsQ0FBQztpQkFDdEU7Z0JBRUQsT0FBTyxDQUFDLENBQUM7WUFDWCxDQUFDLENBQUMsQ0FBQztTQUNKO1FBRUQsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDOzs0R0ExS1UsZUFBZTtnSEFBZixlQUFlLGNBRmQsTUFBTTsyRkFFUCxlQUFlO2tCQUgzQixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbIi8vIEFuZ3VsYXIgaW1wb3J0IHN0YXRlbWVudHNcclxuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IFNvcnRUeXBlIH0gZnJvbSAnLi4vbW9kZWxzL2FubmEtc29ydC5tb2RlbCc7XHJcbmltcG9ydCB7IEFubmFEYXRlVGltZUZvcm1hdFNlcnZpY2UgfSBmcm9tICcuL2FubmEtZGF0ZS10aW1lLWZvcm1hdC5zZXJ2aWNlJztcclxuXHJcbi8vIFRoaXJkIHBhcnR5IGltcG9ydCBzdGF0ZW1lbnRzXHJcblxyXG4vLyBVc2VyIGRlZmluZWQgaW1wb3J0IHN0YXRlbWVudHNcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCcsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBbm5hU29ydFNlcnZpY2Uge1xyXG4gIGNvbHVtblNvcnRTdGF0ZTogTWFwPHN0cmluZywgU29ydFR5cGU+O1xyXG4gIG5vU29ydGluZ0FwcGxpZWREYXRhOiBhbnlbXTtcclxuICB1cGRhdGVTb3J0VHlwZVN1YmplY3Q6IFN1YmplY3Q8c3RyaW5nPiA9IG5ldyBTdWJqZWN0KCk7XHJcblxyXG4gIGRhdGVTZXQgPSBuZXcgU2V0KFtcclxuICAgICdlbmREYXRlJyxcclxuICAgICdzdGFydERhdGUnLFxyXG4gICAgJ2VuZF9kYXRlJyxcclxuICAgICdzdGFydF9kYXRlJyxcclxuICAgICdmbGlnaHRTdGFydERhdGUnLFxyXG4gICAgJ2ZsaWdodEVuZERhdGUnLFxyXG4gICAgXCJkYXRlXCJcclxuICBdKTtcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBhbm5hRGF0ZVRpbWVGb3JtYXRTZXJ2aWNlOiBBbm5hRGF0ZVRpbWVGb3JtYXRTZXJ2aWNlKSB7XHJcbiAgfVxyXG5cclxuICBzb3J0RGF0YUZvckNvbXBvbmVudE90aGVyVGhhbkx1ckFuZENzclBhZ2UoXHJcbiAgICBpc0FzYzogYm9vbGVhbixcclxuICAgIGRhdGE6IGFueVtdLFxyXG4gICAga2V5OiBzdHJpbmdcclxuICApIHtcclxuICAgIGxldCBwYXJhbTE6IHN0cmluZyB8IG51bWJlcjtcclxuICAgIGxldCBwYXJhbTI6IHN0cmluZyB8IG51bWJlcjtcclxuXHJcbiAgICBpZiAodGhpcy5kYXRlU2V0LmhhcyhrZXkpKSB7XHJcbiAgICAgIGRhdGEuc29ydCgoYSwgYikgPT4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmFubmFEYXRlVGltZUZvcm1hdFNlcnZpY2UuY29tcGFyZURhdGUoXHJcbiAgICAgICAgICBhW2tleV0sXHJcbiAgICAgICAgICBiW2tleV0sXHJcbiAgICAgICAgICBpc0FzY1xyXG4gICAgICAgICk7XHJcbiAgICAgIH0pO1xyXG4gICAgfSBlbHNlIGlmIChrZXkgPT09ICdBaXJEYXRlQW5kVGltZScpIHtcclxuICAgICAgZGF0YS5zb3J0KChhLCBiKSA9PiB7XHJcbiAgICAgICAgbGV0IGZpcnN0LCBzZWNvbmQ7XHJcbiAgICAgICAgaWYgKGFba2V5XSA9PSAnLScpIHtcclxuICAgICAgICAgIHJldHVybiAxO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKGJba2V5XSA9PSAnLScpIHtcclxuICAgICAgICAgIHJldHVybiAtMTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgZmlyc3QgPVxyXG4gICAgICAgICAgICB0aGlzLmFubmFEYXRlVGltZUZvcm1hdFNlcnZpY2UuZm9ybWF0RGF0ZUFuZEhITU1BVGltZVRvU3RhbmRhcmRGb3JtYXQoXHJcbiAgICAgICAgICAgICAgYVtrZXldXHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgICBzZWNvbmQgPVxyXG4gICAgICAgICAgICB0aGlzLmFubmFEYXRlVGltZUZvcm1hdFNlcnZpY2UuZm9ybWF0RGF0ZUFuZEhITU1BVGltZVRvU3RhbmRhcmRGb3JtYXQoXHJcbiAgICAgICAgICAgICAgYltrZXldXHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgICBsZXQgY29tcGFyZURhdGUgPSB0aGlzLmFubmFEYXRlVGltZUZvcm1hdFNlcnZpY2UuY29tcGFyZURhdGUoXHJcbiAgICAgICAgICAgIGZpcnN0LFxyXG4gICAgICAgICAgICBzZWNvbmQsXHJcbiAgICAgICAgICAgIGlzQXNjXHJcbiAgICAgICAgICApO1xyXG4gICAgICAgICAgcmV0dXJuIGNvbXBhcmVEYXRlO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICB9IGVsc2UgaWYgKGtleSA9PSAnc3RhcnRFbmRUaW1lJyB8fCBrZXkgPT0gJ1RpbWVCYW5kJykge1xyXG4gICAgICBkYXRhLnNvcnQoKGEsIGIpID0+IHtcclxuICAgICAgICBpZiAoaXNBc2MpIHtcclxuICAgICAgICAgIHBhcmFtMSA9IGFba2V5XVsxXTtcclxuICAgICAgICAgIHBhcmFtMiA9IGJba2V5XVsxXTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgcGFyYW0xID0gYVtrZXldWzJdO1xyXG4gICAgICAgICAgcGFyYW0yID0gYltrZXldWzJdO1xyXG4gICAgICAgIH1cclxuICAgICAgICBsZXQgdmFsID0gaXNBc2NcclxuICAgICAgICAgID8gdGhpcy5hbm5hRGF0ZVRpbWVGb3JtYXRTZXJ2aWNlLnNvcnRCeVRpbWVBc2NlbmRpbmcocGFyYW0xLCBwYXJhbTIpXHJcbiAgICAgICAgICA6IHRoaXMuYW5uYURhdGVUaW1lRm9ybWF0U2VydmljZS5zb3J0QnlUaW1lRGVzY2VuZGluZyhwYXJhbTEsIHBhcmFtMik7XHJcbiAgICAgICAgcmV0dXJuIHZhbDtcclxuICAgICAgfSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBsZXQgZGF0YVdpdGhvdXRFbXB0eU9ySHlwaGVuVmFsdWVzID0gZGF0YS5maWx0ZXIobiA9PiBuW2tleV0gIT0gXCItXCIpO1xyXG4gICAgICBsZXQgcm93c1dpdGhIeXBoZW5Pclplcm9WYWx1ZXMgPSBkYXRhLmZpbHRlcihuID0+IG5ba2V5XSA9PSBcIi1cIik7XHJcblxyXG4gICAgICBkYXRhV2l0aG91dEVtcHR5T3JIeXBoZW5WYWx1ZXMuc29ydCgoYSwgYikgPT4ge1xyXG4gICAgICAgIHBhcmFtMSA9IGFba2V5XTtcclxuICAgICAgICBwYXJhbTIgPSBiW2tleV07XHJcblxyXG4gICAgICAgIGlmIChwYXJhbTEgIT09IHBhcmFtMikge1xyXG4gICAgICAgICAgcmV0dXJuIHRoaXMuYW5uYURhdGVUaW1lRm9ybWF0U2VydmljZS5jb21wYXJlKHBhcmFtMSwgcGFyYW0yLCBpc0FzYyk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gMDtcclxuICAgICAgfSk7XHJcblxyXG4gICAgICBkYXRhID0gaXNBc2MgPyBbLi4ucm93c1dpdGhIeXBoZW5Pclplcm9WYWx1ZXMsIC4uLmRhdGFXaXRob3V0RW1wdHlPckh5cGhlblZhbHVlc10gOlxyXG4gICAgICAgIFsuLi5kYXRhV2l0aG91dEVtcHR5T3JIeXBoZW5WYWx1ZXMsIC4uLnJvd3NXaXRoSHlwaGVuT3JaZXJvVmFsdWVzXTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gZGF0YTtcclxuICB9XHJcblxyXG4gIHNvcnRFbnRlckVkaXRMdXJBbmRDc3JQYWdlKGlzQXNjOiBib29sZWFuLCBkYXRhOiBhbnlbXSwga2V5OiBhbnkpIHtcclxuICAgIGxldCBwYXJhbTE6IHN0cmluZyB8IG51bWJlcjtcclxuICAgIGxldCBwYXJhbTI6IHN0cmluZyB8IG51bWJlcjtcclxuXHJcbiAgICBpZiAoa2V5LmluY2x1ZGVzKCdfJykpIHtcclxuICAgICAgbGV0IGtleXMgPSBrZXkuc3BsaXQoJ18nKTtcclxuICAgICAgbGV0IHdlZWtOdW1iZXIgPSBrZXlzWzBdO1xyXG4gICAgICBsZXQgc29ydEtleSA9IGtleXNbMV07XHJcblxyXG4gICAgICBpZiAoa2V5cy5sZW5ndGggPiAyKSB7XHJcbiAgICAgICAgc29ydEtleSA9XHJcbiAgICAgICAgICBrZXlzWzJdID09IHRydWVcclxuICAgICAgICAgICAgPyAnQm9va2VkQXVySW5jbHVkaW5nTm9DaGFyZ2VTcG90cydcclxuICAgICAgICAgICAgOiAnQm9va2VkQXVyRXhjbHVkaW5nTm9DaGFyZ2VTcG90cyc7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGRhdGEuc29ydCgoYSwgYikgPT4ge1xyXG4gICAgICAgIGxldCBhSW52ZW50b3J5Q29kZVdlZWtXaXNlS2V5ID0gT2JqZWN0LmtleXMoXHJcbiAgICAgICAgICBhLldlZWtXaXNlSW52ZW50b3J5Q29kZURhdGFcclxuICAgICAgICApLmZpbHRlcigoa2V5KSA9PiBrZXkuc3BsaXQoJ18nKVsxXSA9PSB3ZWVrTnVtYmVyKTtcclxuICAgICAgICBsZXQgYkludmVudG9yeUNvZGVXZWVrV2lzZUtleSA9IE9iamVjdC5rZXlzKFxyXG4gICAgICAgICAgYi5XZWVrV2lzZUludmVudG9yeUNvZGVEYXRhXHJcbiAgICAgICAgKS5maWx0ZXIoKGtleSkgPT4ga2V5LnNwbGl0KCdfJylbMV0gPT0gd2Vla051bWJlcik7XHJcblxyXG4gICAgICAgIHBhcmFtMSA9IG51bGw7XHJcbiAgICAgICAgcGFyYW0yID0gbnVsbDtcclxuICAgICAgICBpZiAoYUludmVudG9yeUNvZGVXZWVrV2lzZUtleS5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICBwYXJhbTEgPVxyXG4gICAgICAgICAgICBhLldlZWtXaXNlSW52ZW50b3J5Q29kZURhdGFbYUludmVudG9yeUNvZGVXZWVrV2lzZUtleVswXV1bXHJcbiAgICAgICAgICAgIHNvcnRLZXlcclxuICAgICAgICAgICAgXVsxXTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmIChiSW52ZW50b3J5Q29kZVdlZWtXaXNlS2V5Lmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgIHBhcmFtMiA9XHJcbiAgICAgICAgICAgIGIuV2Vla1dpc2VJbnZlbnRvcnlDb2RlRGF0YVtiSW52ZW50b3J5Q29kZVdlZWtXaXNlS2V5WzBdXVtcclxuICAgICAgICAgICAgc29ydEtleVxyXG4gICAgICAgICAgICBdWzFdO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKHBhcmFtMSAhPT0gcGFyYW0yKSB7XHJcbiAgICAgICAgICByZXR1cm4gdGhpcy5hbm5hRGF0ZVRpbWVGb3JtYXRTZXJ2aWNlLmNvbXBhcmUocGFyYW0xLCBwYXJhbTIsIGlzQXNjKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiAwO1xyXG4gICAgICB9KTtcclxuICAgIH0gZWxzZSBpZiAoa2V5ID09ICdUaW1lQmFuZCcpIHtcclxuICAgICAgZGF0YS5zb3J0KChhLCBiKSA9PiB7XHJcbiAgICAgICAgaWYgKGlzQXNjKSB7XHJcbiAgICAgICAgICBwYXJhbTEgPSBhW2tleV1bMV07XHJcbiAgICAgICAgICBwYXJhbTIgPSBiW2tleV1bMV07XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHBhcmFtMSA9IGFba2V5XVsyXTtcclxuICAgICAgICAgIHBhcmFtMiA9IGJba2V5XVsyXTtcclxuICAgICAgICB9XHJcbiAgICAgICAgbGV0IHZhbCA9IGlzQXNjXHJcbiAgICAgICAgICA/IHRoaXMuYW5uYURhdGVUaW1lRm9ybWF0U2VydmljZS5zb3J0QnlUaW1lQXNjZW5kaW5nKHBhcmFtMSwgcGFyYW0yKVxyXG4gICAgICAgICAgOiB0aGlzLmFubmFEYXRlVGltZUZvcm1hdFNlcnZpY2Uuc29ydEJ5VGltZURlc2NlbmRpbmcocGFyYW0xLCBwYXJhbTIpO1xyXG4gICAgICAgIHJldHVybiB2YWw7XHJcbiAgICAgIH0pO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgZGF0YS5zb3J0KChhLCBiKSA9PiB7XHJcbiAgICAgICAgcGFyYW0xID0gYVtrZXldO1xyXG4gICAgICAgIHBhcmFtMiA9IGJba2V5XTtcclxuXHJcbiAgICAgICAgaWYgKHBhcmFtMSAhPT0gcGFyYW0yKSB7XHJcbiAgICAgICAgICByZXR1cm4gdGhpcy5hbm5hRGF0ZVRpbWVGb3JtYXRTZXJ2aWNlLmNvbXBhcmUocGFyYW0xLCBwYXJhbTIsIGlzQXNjKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiAwO1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gZGF0YTtcclxuICB9XHJcbn1cclxuIl19
@@ -0,0 +1,178 @@
1
+ // Angular import statements
2
+ import { NgModule } from '@angular/core';
3
+ import { CommonModule } from '@angular/common';
4
+ import { FormsModule } from '@angular/forms';
5
+ import { MatRadioModule } from "@angular/material/radio";
6
+ import { MatButtonToggleModule } from '@angular/material/button-toggle';
7
+ import { MatTableModule } from '@angular/material/table';
8
+ import { ScrollingModule } from '@angular/cdk/scrolling';
9
+ // Third party import statements
10
+ import { NgbModule } from '@ng-bootstrap/ng-bootstrap';
11
+ import { NgxSliderModule } from '@angular-slider/ngx-slider';
12
+ import { NgxSkeletonLoaderModule } from 'ngx-skeleton-loader';
13
+ import { NgCircleProgressModule } from 'ng-circle-progress';
14
+ //Anna-core User defined import statements
15
+ import { AnnaFilterSearchedTextPipe } from './anna-core-shared-lib/pipes/annaFilterSearchedText.pipe';
16
+ import { AnnaNoDataComponent } from './anna-core-shared-lib/components/anna-no-data/anna-no-data.component';
17
+ import { AnnaIconColumnComponent } from './anna-core-shared-lib/components/anna-icon-column/anna-icon-column.component';
18
+ import { AnnaBuyerApprovalIconTemplateComponent } from './anna-core-shared-lib/components/anna-buyer-approval-icon-template/anna-buyer-approval-icon-template.component';
19
+ import { AnnaLiveIconTemplateComponent } from './anna-core-shared-lib/components/anna-live-icon-template/anna-live-icon-template.component';
20
+ import { AnnaNotifyIconTemplateComponent } from './anna-core-shared-lib/components/anna-notify-icon-template/anna-notify-icon-template.component';
21
+ import { AnnaPayForPerformanceIconTemplateComponent } from './anna-core-shared-lib/components/anna-pay-for-performance-icon-template/anna-pay-for-performance-icon-template.component';
22
+ import { AnnaRejectedIconTemplateComponent } from './anna-core-shared-lib/components/anna-rejected-icon-template/anna-rejected-icon-template.component';
23
+ import { showEllipsisTextOnHoverDirective } from './anna-core-shared-lib/directives/show-ellipsis-text/show-ellipsis-text.directive';
24
+ import { AnnaConvertZeroOrNullOrUndefinedPipe } from './anna-core-shared-lib/pipes/annaConvertZeroOrNullOrUndefined.pipe';
25
+ //Anna-dropdown-lib User defined import statements
26
+ import { AnnaWeekCalendarComponent } from './anna-dropdown-lib/components/anna-week-calendar-filter/anna-week-calendar-filter.component';
27
+ import { AnnaCalendarFilterComponent } from './anna-dropdown-lib/components/anna-calendar-filter/anna-calendar-filter.component';
28
+ //Anna-generic-table User defined import statements
29
+ import { AnnaNonEditableGenericTableComponent } from './anna-generic-table-lib/components/anna-non-editable-generic-table/anna-non-editable-generic-table.component';
30
+ import { AnnaSortComponent } from './anna-generic-table-lib/components/anna-sort/anna-sort.component';
31
+ import { AnnaTableVirtualScrollViewportComponent } from './anna-generic-table-lib/components/anna-table-virtual-scroll-viewport/anna-table-virtual-scroll-viewport.component';
32
+ import { AnnaFixedRowSizeTableVirtualScrollStrategyDirective } from './anna-generic-table-lib/directives/anna-fixed-row-size-table-virtual-scroll-strategy';
33
+ import { AnnaVirtualTableDirective } from './anna-generic-table-lib/directives/anna-virtual-table';
34
+ import { AnnaTypeofDataPipe } from './anna-core-shared-lib/pipes/annaTypeOfData.pipe';
35
+ import { AnnaReplaceCharPipe } from './anna-core-shared-lib/pipes/annaReplaceChar.pipe';
36
+ import { DigitOnlyDirective } from './anna-core-shared-lib/directives/digits-only/digits-only.directive';
37
+ import * as i0 from "@angular/core";
38
+ import * as i1 from "ng-circle-progress";
39
+ export class AnnaCoreModule {
40
+ }
41
+ AnnaCoreModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: AnnaCoreModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
42
+ AnnaCoreModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.3.0", ngImport: i0, type: AnnaCoreModule, declarations: [AnnaNoDataComponent,
43
+ AnnaFilterSearchedTextPipe,
44
+ AnnaConvertZeroOrNullOrUndefinedPipe,
45
+ AnnaTypeofDataPipe,
46
+ AnnaFilterSearchedTextPipe,
47
+ AnnaReplaceCharPipe,
48
+ AnnaBuyerApprovalIconTemplateComponent,
49
+ AnnaLiveIconTemplateComponent,
50
+ AnnaNotifyIconTemplateComponent,
51
+ AnnaPayForPerformanceIconTemplateComponent,
52
+ AnnaRejectedIconTemplateComponent,
53
+ showEllipsisTextOnHoverDirective,
54
+ AnnaIconColumnComponent,
55
+ AnnaWeekCalendarComponent,
56
+ AnnaCalendarFilterComponent,
57
+ AnnaSortComponent,
58
+ AnnaVirtualTableDirective,
59
+ AnnaNonEditableGenericTableComponent,
60
+ AnnaTableVirtualScrollViewportComponent,
61
+ AnnaFixedRowSizeTableVirtualScrollStrategyDirective,
62
+ DigitOnlyDirective], imports: [CommonModule,
63
+ NgbModule,
64
+ FormsModule,
65
+ MatRadioModule,
66
+ MatButtonToggleModule,
67
+ MatTableModule,
68
+ NgxSliderModule,
69
+ NgxSkeletonLoaderModule,
70
+ ScrollingModule, i1.NgCircleProgressModule], exports: [AnnaNoDataComponent,
71
+ AnnaFilterSearchedTextPipe,
72
+ AnnaConvertZeroOrNullOrUndefinedPipe,
73
+ AnnaTypeofDataPipe,
74
+ AnnaReplaceCharPipe,
75
+ AnnaFilterSearchedTextPipe,
76
+ AnnaBuyerApprovalIconTemplateComponent,
77
+ AnnaLiveIconTemplateComponent,
78
+ AnnaNotifyIconTemplateComponent,
79
+ AnnaPayForPerformanceIconTemplateComponent,
80
+ AnnaRejectedIconTemplateComponent,
81
+ showEllipsisTextOnHoverDirective,
82
+ AnnaIconColumnComponent,
83
+ AnnaWeekCalendarComponent,
84
+ AnnaCalendarFilterComponent,
85
+ AnnaSortComponent,
86
+ AnnaVirtualTableDirective,
87
+ AnnaNonEditableGenericTableComponent,
88
+ AnnaTableVirtualScrollViewportComponent,
89
+ AnnaFixedRowSizeTableVirtualScrollStrategyDirective,
90
+ DigitOnlyDirective] });
91
+ AnnaCoreModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: AnnaCoreModule, imports: [CommonModule,
92
+ NgbModule,
93
+ FormsModule,
94
+ MatRadioModule,
95
+ MatButtonToggleModule,
96
+ MatTableModule,
97
+ NgxSliderModule,
98
+ NgxSkeletonLoaderModule,
99
+ ScrollingModule,
100
+ NgCircleProgressModule.forRoot({
101
+ radius: 100,
102
+ outerStrokeWidth: 16,
103
+ innerStrokeWidth: 8,
104
+ outerStrokeColor: '#78C000',
105
+ innerStrokeColor: '#C7E596',
106
+ animationDuration: 300,
107
+ })] });
108
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: AnnaCoreModule, decorators: [{
109
+ type: NgModule,
110
+ args: [{
111
+ declarations: [
112
+ AnnaNoDataComponent,
113
+ AnnaFilterSearchedTextPipe,
114
+ AnnaConvertZeroOrNullOrUndefinedPipe,
115
+ AnnaTypeofDataPipe,
116
+ AnnaFilterSearchedTextPipe,
117
+ AnnaReplaceCharPipe,
118
+ AnnaBuyerApprovalIconTemplateComponent,
119
+ AnnaLiveIconTemplateComponent,
120
+ AnnaNotifyIconTemplateComponent,
121
+ AnnaPayForPerformanceIconTemplateComponent,
122
+ AnnaRejectedIconTemplateComponent,
123
+ showEllipsisTextOnHoverDirective,
124
+ AnnaIconColumnComponent,
125
+ AnnaWeekCalendarComponent,
126
+ AnnaCalendarFilterComponent,
127
+ AnnaSortComponent,
128
+ AnnaVirtualTableDirective,
129
+ AnnaNonEditableGenericTableComponent,
130
+ AnnaTableVirtualScrollViewportComponent,
131
+ AnnaFixedRowSizeTableVirtualScrollStrategyDirective,
132
+ DigitOnlyDirective
133
+ ],
134
+ imports: [
135
+ CommonModule,
136
+ NgbModule,
137
+ FormsModule,
138
+ MatRadioModule,
139
+ MatButtonToggleModule,
140
+ MatTableModule,
141
+ NgxSliderModule,
142
+ NgxSkeletonLoaderModule,
143
+ ScrollingModule,
144
+ NgCircleProgressModule.forRoot({
145
+ radius: 100,
146
+ outerStrokeWidth: 16,
147
+ innerStrokeWidth: 8,
148
+ outerStrokeColor: '#78C000',
149
+ innerStrokeColor: '#C7E596',
150
+ animationDuration: 300,
151
+ }),
152
+ ],
153
+ exports: [
154
+ AnnaNoDataComponent,
155
+ AnnaFilterSearchedTextPipe,
156
+ AnnaConvertZeroOrNullOrUndefinedPipe,
157
+ AnnaTypeofDataPipe,
158
+ AnnaReplaceCharPipe,
159
+ AnnaFilterSearchedTextPipe,
160
+ AnnaBuyerApprovalIconTemplateComponent,
161
+ AnnaLiveIconTemplateComponent,
162
+ AnnaNotifyIconTemplateComponent,
163
+ AnnaPayForPerformanceIconTemplateComponent,
164
+ AnnaRejectedIconTemplateComponent,
165
+ showEllipsisTextOnHoverDirective,
166
+ AnnaIconColumnComponent,
167
+ AnnaWeekCalendarComponent,
168
+ AnnaCalendarFilterComponent,
169
+ AnnaSortComponent,
170
+ AnnaVirtualTableDirective,
171
+ AnnaNonEditableGenericTableComponent,
172
+ AnnaTableVirtualScrollViewportComponent,
173
+ AnnaFixedRowSizeTableVirtualScrollStrategyDirective,
174
+ DigitOnlyDirective
175
+ ]
176
+ }]
177
+ }] });
178
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5uYS1jb3JlLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2FubmEtY29yZS9zcmMvbGliL2FubmEtY29yZS5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsNEJBQTRCO0FBQzVCLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDekQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDeEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUV6RCxnQ0FBZ0M7QUFDaEMsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUU1RCwwQ0FBMEM7QUFDMUMsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sMERBQTBELENBQUM7QUFDdEcsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sdUVBQXVFLENBQUM7QUFDNUcsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sK0VBQStFLENBQUM7QUFDeEgsT0FBTyxFQUFFLHNDQUFzQyxFQUFFLE1BQU0saUhBQWlILENBQUM7QUFDekssT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0sNkZBQTZGLENBQUM7QUFDNUks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dHNcclxuaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IE1hdFJhZGlvTW9kdWxlIH0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL3JhZGlvXCI7XHJcbmltcG9ydCB7IE1hdEJ1dHRvblRvZ2dsZU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2J1dHRvbi10b2dnbGUnO1xyXG5pbXBvcnQgeyBNYXRUYWJsZU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3RhYmxlJztcclxuaW1wb3J0IHsgU2Nyb2xsaW5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3Njcm9sbGluZyc7XHJcblxyXG4vLyBUaGlyZCBwYXJ0eSBpbXBvcnQgc3RhdGVtZW50c1xyXG5pbXBvcnQgeyBOZ2JNb2R1bGUgfSBmcm9tICdAbmctYm9vdHN0cmFwL25nLWJvb3RzdHJhcCc7XHJcbmltcG9ydCB7IE5neFNsaWRlck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyLXNsaWRlci9uZ3gtc2xpZGVyJztcclxuaW1wb3J0IHsgTmd4U2tlbGV0b25Mb2FkZXJNb2R1bGUgfSBmcm9tICduZ3gtc2tlbGV0b24tbG9hZGVyJztcclxuaW1wb3J0IHsgTmdDaXJjbGVQcm9ncmVzc01vZHVsZSB9IGZyb20gJ25nLWNpcmNsZS1wcm9ncmVzcyc7XHJcblxyXG4vL0FubmEtY29yZSBVc2VyIGRlZmluZWQgaW1wb3J0IHN0YXRlbWVudHNcclxuaW1wb3J0IHsgQW5uYUZpbHRlclNlYXJjaGVkVGV4dFBpcGUgfSBmcm9tICcuL2FubmEtY29yZS1zaGFyZWQtbGliL3BpcGVzL2FubmFGaWx0ZXJTZWFyY2hlZFRleHQucGlwZSc7XHJcbmltcG9ydCB7IEFubmFOb0RhdGFDb21wb25lbnQgfSBmcm9tICcuL2FubmEtY29yZS1zaGFyZWQtbGliL2NvbXBvbmVudHMvYW5uYS1uby1kYXRhL2FubmEtbm8tZGF0YS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBBbm5hSWNvbkNvbHVtbkNvbXBvbmVudCB9IGZyb20gJy4vYW5uYS1jb3JlLXNoYXJlZC1saWIvY29tcG9uZW50cy9hbm5hLWljb24tY29sdW1uL2FubmEtaWNvbi1jb2x1bW4uY29tcG9uZW50JztcclxuaW1wb3J0IHsgQW5uYUJ1eWVyQXBwcm92YWxJY29uVGVtcGxhdGVDb21wb25lbnQgfSBmcm9tICcuL2FubmEtY29yZS1zaGFyZWQtbGliL2NvbXBvbmVudHMvYW5uYS1idXllci1hcHByb3ZhbC1pY29uLXRlbXBsYXRlL2FubmEtYnV5ZXItYXBwcm92YWwtaWNvbi10ZW1wbGF0ZS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBBbm5hTGl2ZUljb25UZW1wbGF0ZUNvbXBvbmVudCB9IGZyb20gJy4vYW5uYS1jb3JlLXNoYXJlZC1saWIvY29tcG9uZW50cy9hbm5hLWxpdmUtaWNvbi10ZW1wbGF0ZS9hbm5hLWxpdmUtaWNvbi10ZW1wbGF0ZS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBBbm5hTm90aWZ5SWNvblRlbXBsYXRlQ29tcG9uZW50IH0gZnJvbSAnLi9hbm5hLWNvcmUtc2hhcmVkLWxpYi9jb21wb25lbnRzL2FubmEtbm90aWZ5LWljb24tdGVtcGxhdGUvYW5uYS1ub3RpZnktaWNvbi10ZW1wbGF0ZS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBBbm5hUGF5Rm9yUGVyZm9ybWFuY2VJY29uVGVtcGxhdGVDb21wb25lbnQgfSBmcm9tICcuL2FubmEtY29yZS1zaGFyZWQtbGliL2NvbXBvbmVudHMvYW5uYS1wYXktZm9yLXBlcmZvcm1hbmNlLWljb24tdGVtcGxhdGUvYW5uYS1wYXktZm9yLXBlcmZvcm1hbmNlLWljb24tdGVtcGxhdGUuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQW5uYVJlamVjdGVkSWNvblRlbXBsYXRlQ29tcG9uZW50IH0gZnJvbSAnLi9hbm5hLWNvcmUtc2hhcmVkLWxpYi9jb21wb25lbnRzL2FubmEtcmVqZWN0ZWQtaWNvbi10ZW1wbGF0ZS9hbm5hLXJlamVjdGVkLWljb24tdGVtcGxhdGUuY29tcG9uZW50JztcclxuaW1wb3J0IHsgc2hvd0VsbGlwc2lzVGV4dE9uSG92ZXJEaXJlY3RpdmUgfSBmcm9tICcuL2FubmEtY29yZS1zaGFyZWQtbGliL2RpcmVjdGl2ZXMvc2hvdy1lbGxpcHNpcy10ZXh0L3Nob3ctZWxsaXBzaXMtdGV4dC5kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBBbm5hQ29udmVydFplcm9Pck51bGxPclVuZGVmaW5lZFBpcGUgfSBmcm9tICcuL2FubmEtY29yZS1zaGFyZWQtbGliL3BpcGVzL2FubmFDb252ZXJ0WmVyb09yTnVsbE9yVW5kZWZpbmVkLnBpcGUnO1xyXG5cclxuLy9Bbm5hLWRyb3Bkb3duLWxpYiBVc2VyIGRlZmluZWQgaW1wb3J0IHN0YXRlbWVudHMgXHJcbmltcG9ydCB7IEFubmFXZWVrQ2FsZW5kYXJDb21wb25lbnQgIH0gZnJvbSAnLi9hbm5hLWRyb3Bkb3duLWxpYi9jb21wb25lbnRzL2FubmEtd2Vlay1jYWxlbmRhci1maWx0ZXIvYW5uYS13ZWVrLWNhbGVuZGFyLWZpbHRlci5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBBbm5hQ2FsZW5kYXJGaWx0ZXJDb21wb25lbnQgfSBmcm9tICcuL2FubmEtZHJvcGRvd24tbGliL2NvbXBvbmVudHMvYW5uYS1jYWxlbmRhci1maWx0ZXIvYW5uYS1jYWxlbmRhci1maWx0ZXIuY29tcG9uZW50JztcclxuXHJcblxyXG4vL0FubmEtZ2VuZXJpYy10YWJsZSBVc2VyIGRlZmluZWQgaW1wb3J0IHN0YXRlbWVudHNcclxuaW1wb3J0IHsgQW5uYU5vbkVkaXRhYmxlR2VuZXJpY1RhYmxlQ29tcG9uZW50IH0gZnJvbSAnLi9hbm5hLWdlbmVyaWMtdGFibGUtbGliL2NvbXBvbmVudHMvYW5uYS1ub24tZWRpdGFibGUtZ2VuZXJpYy10YWJsZS9hbm5hLW5vbi1lZGl0YWJsZS1nZW5lcmljLXRhYmxlLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEFubmFTb3J0Q29tcG9uZW50IH0gZnJvbSAnLi9hbm5hLWdlbmVyaWMtdGFibGUtbGliL2NvbXBvbmVudHMvYW5uYS1zb3J0L2FubmEtc29ydC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBBbm5hVGFibGVWaXJ0dWFsU2Nyb2xsVmlld3BvcnRDb21wb25lbnQgfSBmcm9tICcuL2FubmEtZ2VuZXJpYy10YWJsZS1saWIvY29tcG9uZW50cy9hbm5hLXRhYmxlLXZpcnR1YWwtc2Nyb2xsLXZpZXdwb3J0L2FubmEtdGFibGUtdmlydHVhbC1zY3JvbGwtdmlld3BvcnQuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQW5uYUZpeGVkUm93U2l6ZVRhYmxlVmlydHVhbFNjcm9sbFN0cmF0ZWd5RGlyZWN0aXZlIH0gZnJvbSAnLi9hbm5hLWdlbmVyaWMtdGFibGUtbGliL2RpcmVjdGl2ZXMvYW5uYS1maXhlZC1yb3ctc2l6ZS10YWJsZS12aXJ0dWFsLXNjcm9sbC1zdHJhdGVneSc7XHJcbmltcG9ydCB7IEFubmFWaXJ0dWFsVGFibGVEaXJlY3RpdmUgfSBmcm9tICcuL2FubmEtZ2VuZXJpYy10YWJsZS1saWIvZGlyZWN0aXZlcy9hbm5hLXZpcnR1YWwtdGFibGUnO1xyXG5pbXBvcnQgeyBBbm5hVHlwZW9mRGF0YVBpcGUgfSBmcm9tICcuL2FubmEtY29yZS1zaGFyZWQtbGliL3BpcGVzL2FubmFUeXBlT2ZEYXRhLnBpcGUnO1xyXG5pbXBvcnQgeyBBbm5hUmVwbGFjZUNoYXJQaXBlIH0gZnJvbSAnLi9hbm5hLWNvcmUtc2hhcmVkLWxpYi9waXBlcy9hbm5hUmVwbGFjZUNoYXIucGlwZSc7XHJcbmltcG9ydCB7IERpZ2l0T25seURpcmVjdGl2ZSB9IGZyb20gJy4vYW5uYS1jb3JlLXNoYXJlZC1saWIvZGlyZWN0aXZlcy9kaWdpdHMtb25seS9kaWdpdHMtb25seS5kaXJlY3RpdmUnO1xyXG5cclxuQE5nTW9kdWxlKHtcclxuICBkZWNsYXJhdGlvbnM6IFtcclxuICAgIEFubmFOb0RhdGFDb21wb25lbnQsXHJcbiAgICBBbm5hRmlsdGVyU2VhcmNoZWRUZXh0UGlwZSxcclxuICAgIEFubmFDb252ZXJ0WmVyb09yTnVsbE9yVW5kZWZpbmVkUGlwZSxcclxuICAgIEFubmFUeXBlb2ZEYXRhUGlwZSxcclxuICAgIEFubmFGaWx0ZXJTZWFyY2hlZFRleHRQaXBlLFxyXG4gICAgQW5uYVJlcGxhY2VDaGFyUGlwZSxcclxuICAgIEFubmFCdXllckFwcHJvdmFsSWNvblRlbXBsYXRlQ29tcG9uZW50LFxyXG4gICAgQW5uYUxpdmVJY29uVGVtcGxhdGVDb21wb25lbnQsXHJcbiAgICBBbm5hTm90aWZ5SWNvblRlbXBsYXRlQ29tcG9uZW50LFxyXG4gICAgQW5uYVBheUZvclBlcmZvcm1hbmNlSWNvblRlbXBsYXRlQ29tcG9uZW50LFxyXG4gICAgQW5uYVJlamVjdGVkSWNvblRlbXBsYXRlQ29tcG9uZW50LFxyXG4gICAgc2hvd0VsbGlwc2lzVGV4dE9uSG92ZXJEaXJlY3RpdmUsXHJcbiAgICBBbm5hSWNvbkNvbHVtbkNvbXBvbmVudCxcclxuICAgIEFubmFXZWVrQ2FsZW5kYXJDb21wb25lbnQsXHJcbiAgICBBbm5hQ2FsZW5kYXJGaWx0ZXJDb21wb25lbnQsXHJcbiAgICBBbm5hU29ydENvbXBvbmVudCxcclxuICAgIEFubmFWaXJ0dWFsVGFibGVEaXJlY3RpdmUsXHJcbiAgICBBbm5hTm9uRWRpdGFibGVHZW5lcmljVGFibGVDb21wb25lbnQsXHJcbiAgICBBbm5hVGFibGVWaXJ0dWFsU2Nyb2xsVmlld3BvcnRDb21wb25lbnQsXHJcbiAgICBBbm5hRml4ZWRSb3dTaXplVGFibGVWaXJ0dWFsU2Nyb2xsU3RyYXRlZ3lEaXJlY3RpdmUsXHJcbiAgICBEaWdpdE9ubHlEaXJlY3RpdmVcclxuICBdLFxyXG4gIGltcG9ydHM6IFtcclxuICAgIENvbW1vbk1vZHVsZSxcclxuICAgIE5nYk1vZHVsZSxcclxuICAgIEZvcm1zTW9kdWxlLFxyXG4gICAgTWF0UmFkaW9Nb2R1bGUsXHJcbiAgICBNYXRCdXR0b25Ub2dnbGVNb2R1bGUsXHJcbiAgICBNYXRUYWJsZU1vZHVsZSxcclxuICAgIE5neFNsaWRlck1vZHVsZSxcclxuICAgIE5neFNrZWxldG9uTG9hZGVyTW9kdWxlLFxyXG4gICAgU2Nyb2xsaW5nTW9kdWxlLFxyXG4gICAgTmdDaXJjbGVQcm9ncmVzc01vZHVsZS5mb3JSb290KHtcclxuICAgICAgcmFkaXVzOiAxMDAsXHJcbiAgICAgIG91dGVyU3Ryb2tlV2lkdGg6IDE2LFxyXG4gICAgICBpbm5lclN0cm9rZVdpZHRoOiA4LFxyXG4gICAgICBvdXRlclN0cm9rZUNvbG9yOiAnIzc4QzAwMCcsXHJcbiAgICAgIGlubmVyU3Ryb2tlQ29sb3I6ICcjQzdFNTk2JyxcclxuICAgICAgYW5pbWF0aW9uRHVyYXRpb246IDMwMCxcclxuICAgIH0pLFxyXG4gIF0sXHJcbiAgZXhwb3J0cyA6IFtcclxuICAgIEFubmFOb0RhdGFDb21wb25lbnQsXHJcbiAgICBBbm5hRmlsdGVyU2VhcmNoZWRUZXh0UGlwZSxcclxuICAgIEFubmFDb252ZXJ0WmVyb09yTnVsbE9yVW5kZWZpbmVkUGlwZSxcclxuICAgIEFubmFUeXBlb2ZEYXRhUGlwZSxcclxuICAgIEFubmFSZXBsYWNlQ2hhclBpcGUsXHJcbiAgICBBbm5hRmlsdGVyU2VhcmNoZWRUZXh0UGlwZSxcclxuICAgIEFubmFCdXllckFwcHJvdmFsSWNvblRlbXBsYXRlQ29tcG9uZW50LFxyXG4gICAgQW5uYUxpdmVJY29uVGVtcGxhdGVDb21wb25lbnQsXHJcbiAgICBBbm5hTm90aWZ5SWNvblRlbXBsYXRlQ29tcG9uZW50LFxyXG4gICAgQW5uYVBheUZvclBlcmZvcm1hbmNlSWNvblRlbXBsYXRlQ29tcG9uZW50LFxyXG4gICAgQW5uYVJlamVjdGVkSWNvblRlbXBsYXRlQ29tcG9uZW50LFxyXG4gICAgc2hvd0VsbGlwc2lzVGV4dE9uSG92ZXJEaXJlY3RpdmUsXHJcbiAgICBBbm5hSWNvbkNvbHVtbkNvbXBvbmVudCxcclxuICAgIEFubmFXZWVrQ2FsZW5kYXJDb21wb25lbnQsXHJcbiAgICBBbm5hQ2FsZW5kYXJGaWx0ZXJDb21wb25lbnQsXHJcbiAgICBBbm5hU29ydENvbXBvbmVudCxcclxuICAgIEFubmFWaXJ0dWFsVGFibGVEaXJlY3RpdmUsXHJcbiAgICBBbm5hTm9uRWRpdGFibGVHZW5lcmljVGFibGVDb21wb25lbnQsXHJcbiAgICBBbm5hVGFibGVWaXJ0dWFsU2Nyb2xsVmlld3BvcnRDb21wb25lbnQsXHJcbiAgICBBbm5hRml4ZWRSb3dTaXplVGFibGVWaXJ0dWFsU2Nyb2xsU3RyYXRlZ3lEaXJlY3RpdmUsXHJcbiAgICBEaWdpdE9ubHlEaXJlY3RpdmVcclxuICBdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBbm5hQ29yZU1vZHVsZSB7IH1cclxuIl19