@annalib/anna-core 20.2.19 → 20.2.21

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 (160) hide show
  1. package/README.md +28 -28
  2. package/{esm2020 → esm2022}/annalib-anna-core.mjs +4 -4
  3. package/esm2022/lib/anna-core-shared-lib/components/anna-buyer-approval-icon-template/anna-buyer-approval-icon-template.component.mjs +14 -0
  4. package/esm2022/lib/anna-core-shared-lib/components/anna-deleted-order-icon-template/anna-deleted-order-icon-template.component.mjs +13 -0
  5. package/esm2022/lib/anna-core-shared-lib/components/anna-est-icon-template/anna-est-icon-template.component.mjs +11 -0
  6. package/esm2022/lib/anna-core-shared-lib/components/anna-icon-column/anna-icon-column.component.mjs +43 -0
  7. package/esm2022/lib/anna-core-shared-lib/components/anna-live-icon-template/anna-live-icon-template.component.mjs +14 -0
  8. package/esm2022/lib/anna-core-shared-lib/components/anna-no-data/anna-no-data.component.mjs +22 -0
  9. package/esm2022/lib/anna-core-shared-lib/components/anna-notify-icon-template/anna-notify-icon-template.component.mjs +13 -0
  10. package/esm2022/lib/anna-core-shared-lib/components/anna-pay-for-performance-icon-template/anna-pay-for-performance-icon-template.component.mjs +22 -0
  11. package/esm2022/lib/anna-core-shared-lib/components/anna-rejected-icon-template/anna-rejected-icon-template.component.mjs +14 -0
  12. package/esm2022/lib/anna-core-shared-lib/constants/shared.constant.mjs +44 -0
  13. package/{esm2020 → esm2022}/lib/anna-core-shared-lib/directives/digits-only/digits-only.directive.mjs +273 -273
  14. package/{esm2020 → esm2022}/lib/anna-core-shared-lib/directives/fixed-rows-popup-table/fixed-rows-popup-table.directive.mjs +46 -46
  15. package/{esm2020 → esm2022}/lib/anna-core-shared-lib/directives/show-ellipsis-text/show-ellipsis-text.directive.mjs +39 -39
  16. package/esm2022/lib/anna-core-shared-lib/models/anna-generic-data-type.model.mjs +2 -0
  17. package/esm2022/lib/anna-core-shared-lib/models/anna-global-dropdown-config.model.mjs +2 -0
  18. package/esm2022/lib/anna-core-shared-lib/models/anna-non-editable-gt-models.mjs +11 -0
  19. package/{esm2020 → esm2022}/lib/anna-core-shared-lib/models/anna-sort.model.mjs +7 -7
  20. package/{esm2020 → esm2022}/lib/anna-core-shared-lib/models/anna-tooltip.model.mjs +30 -30
  21. package/{esm2020 → esm2022}/lib/anna-core-shared-lib/pipes/annaConvertArrayToCommaSeperatedValue.pipe.mjs +39 -39
  22. package/{esm2020 → esm2022}/lib/anna-core-shared-lib/pipes/annaConvertZeroOrNullOrUndefined.pipe.mjs +27 -27
  23. package/{esm2020 → esm2022}/lib/anna-core-shared-lib/pipes/annaDateFormatter.pipe.mjs +22 -22
  24. package/{esm2020 → esm2022}/lib/anna-core-shared-lib/pipes/annaFilterSearchedText.pipe.mjs +55 -55
  25. package/{esm2020 → esm2022}/lib/anna-core-shared-lib/pipes/annaReplaceChar.pipe.mjs +26 -26
  26. package/{esm2020 → esm2022}/lib/anna-core-shared-lib/pipes/annaTypeOfData.pipe.mjs +17 -17
  27. package/{esm2020 → esm2022}/lib/anna-core-shared-lib/services/anna-date-time-format.service.mjs +208 -208
  28. package/esm2022/lib/anna-core-shared-lib/services/anna-filter.service.mjs +1259 -0
  29. package/{esm2020 → esm2022}/lib/anna-core-shared-lib/services/anna-generic-table.service.mjs +151 -151
  30. package/esm2022/lib/anna-core-shared-lib/services/anna-global-config.service.mjs +135 -0
  31. package/{esm2020 → esm2022}/lib/anna-core-shared-lib/services/anna-number-format.service.mjs +53 -53
  32. package/{esm2020 → esm2022}/lib/anna-core-shared-lib/services/anna-persisting-filter.service.mjs +65 -65
  33. package/{esm2020 → esm2022}/lib/anna-core-shared-lib/services/anna-sort.service.mjs +178 -178
  34. package/esm2022/lib/anna-core.module.mjs +226 -0
  35. package/esm2022/lib/anna-dropdown-lib/components/anna-calendar-filter/anna-calendar-filter.component.mjs +160 -0
  36. package/esm2022/lib/anna-dropdown-lib/components/anna-week-calendar-filter/anna-week-calendar-filter.component.mjs +371 -0
  37. package/esm2022/lib/anna-generic-table-lib/components/anna-column-filters/anna-column-checkbox-filter/anna-column-checkbox-filter.component.mjs +252 -0
  38. package/esm2022/lib/anna-generic-table-lib/components/anna-column-filters/anna-column-date-range-filter/anna-column-date-range-filter.component.mjs +185 -0
  39. package/esm2022/lib/anna-generic-table-lib/components/anna-column-filters/anna-column-slider-filter/anna-column-slider-filter.component.mjs +312 -0
  40. package/esm2022/lib/anna-generic-table-lib/components/anna-column-filters/anna-column-time-filter/anna-column-time-filter.component.mjs +298 -0
  41. package/esm2022/lib/anna-generic-table-lib/components/anna-non-editable-generic-table/anna-non-editable-generic-table.component.mjs +845 -0
  42. package/esm2022/lib/anna-generic-table-lib/components/anna-sort/anna-sort.component.mjs +64 -0
  43. package/esm2022/lib/anna-generic-table-lib/components/anna-table-virtual-scroll-viewport/anna-table-virtual-scroll-viewport.component.mjs +352 -0
  44. package/esm2022/lib/anna-generic-table-lib/directives/anna-fixed-row-size-table-virtual-scroll-strategy/anna-fixed-row-size-table-virtual-scroll-strategy.directive.mjs +204 -0
  45. package/{esm2020 → esm2022}/lib/anna-generic-table-lib/directives/anna-fixed-row-size-table-virtual-scroll-strategy/index.mjs +2 -2
  46. package/esm2022/lib/anna-generic-table-lib/directives/anna-virtual-table/anna-virtual-table.directive.mjs +180 -0
  47. package/{esm2020 → esm2022}/lib/anna-generic-table-lib/directives/anna-virtual-table/index.mjs +2 -2
  48. package/{esm2020 → esm2022}/public-api.mjs +58 -58
  49. package/fesm2022/annalib-anna-core.mjs +6063 -0
  50. package/fesm2022/annalib-anna-core.mjs.map +1 -0
  51. package/index.d.ts +5 -5
  52. package/lib/anna-core-shared-lib/components/anna-buyer-approval-icon-template/anna-buyer-approval-icon-template.component.d.ts +8 -8
  53. package/lib/anna-core-shared-lib/components/anna-deleted-order-icon-template/anna-deleted-order-icon-template.component.d.ts +8 -8
  54. package/lib/anna-core-shared-lib/components/anna-est-icon-template/anna-est-icon-template.component.d.ts +5 -5
  55. package/lib/anna-core-shared-lib/components/anna-icon-column/anna-icon-column.component.d.ts +17 -17
  56. package/lib/anna-core-shared-lib/components/anna-live-icon-template/anna-live-icon-template.component.d.ts +8 -8
  57. package/lib/anna-core-shared-lib/components/anna-no-data/anna-no-data.component.d.ts +11 -11
  58. package/lib/anna-core-shared-lib/components/anna-notify-icon-template/anna-notify-icon-template.component.d.ts +8 -8
  59. package/lib/anna-core-shared-lib/components/anna-pay-for-performance-icon-template/anna-pay-for-performance-icon-template.component.d.ts +12 -12
  60. package/lib/anna-core-shared-lib/components/anna-rejected-icon-template/anna-rejected-icon-template.component.d.ts +8 -8
  61. package/lib/anna-core-shared-lib/constants/shared.constant.d.ts +42 -41
  62. package/lib/anna-core-shared-lib/directives/digits-only/digits-only.directive.d.ts +34 -34
  63. package/lib/anna-core-shared-lib/directives/fixed-rows-popup-table/fixed-rows-popup-table.directive.d.ts +16 -16
  64. package/lib/anna-core-shared-lib/directives/show-ellipsis-text/show-ellipsis-text.directive.d.ts +10 -10
  65. package/lib/anna-core-shared-lib/models/anna-generic-data-type.model.d.ts +16 -16
  66. package/lib/anna-core-shared-lib/models/anna-global-dropdown-config.model.d.ts +97 -97
  67. package/lib/anna-core-shared-lib/models/anna-non-editable-gt-models.d.ts +118 -118
  68. package/lib/anna-core-shared-lib/models/anna-sort.model.d.ts +11 -11
  69. package/lib/anna-core-shared-lib/models/anna-tooltip.model.d.ts +25 -25
  70. package/lib/anna-core-shared-lib/pipes/annaConvertArrayToCommaSeperatedValue.pipe.d.ts +9 -9
  71. package/lib/anna-core-shared-lib/pipes/annaConvertZeroOrNullOrUndefined.pipe.d.ts +9 -9
  72. package/lib/anna-core-shared-lib/pipes/annaDateFormatter.pipe.d.ts +8 -8
  73. package/lib/anna-core-shared-lib/pipes/annaFilterSearchedText.pipe.d.ts +9 -9
  74. package/lib/anna-core-shared-lib/pipes/annaReplaceChar.pipe.d.ts +9 -9
  75. package/lib/anna-core-shared-lib/pipes/annaTypeOfData.pipe.d.ts +7 -7
  76. package/lib/anna-core-shared-lib/services/anna-date-time-format.service.d.ts +28 -28
  77. package/lib/anna-core-shared-lib/services/anna-filter.service.d.ts +154 -154
  78. package/lib/anna-core-shared-lib/services/anna-generic-table.service.d.ts +27 -27
  79. package/lib/anna-core-shared-lib/services/anna-global-config.service.d.ts +21 -21
  80. package/lib/anna-core-shared-lib/services/anna-number-format.service.d.ts +8 -8
  81. package/lib/anna-core-shared-lib/services/anna-persisting-filter.service.d.ts +9 -9
  82. package/lib/anna-core-shared-lib/services/anna-sort.service.d.ts +18 -18
  83. package/lib/anna-core.module.d.ts +45 -45
  84. package/lib/anna-dropdown-lib/components/anna-calendar-filter/anna-calendar-filter.component.d.ts +45 -45
  85. package/lib/anna-dropdown-lib/components/anna-week-calendar-filter/anna-week-calendar-filter.component.d.ts +70 -70
  86. package/lib/anna-generic-table-lib/components/anna-column-filters/anna-column-checkbox-filter/anna-column-checkbox-filter.component.d.ts +60 -60
  87. package/lib/anna-generic-table-lib/components/anna-column-filters/anna-column-date-range-filter/anna-column-date-range-filter.component.d.ts +53 -53
  88. package/lib/anna-generic-table-lib/components/anna-column-filters/anna-column-slider-filter/anna-column-slider-filter.component.d.ts +65 -65
  89. package/lib/anna-generic-table-lib/components/anna-column-filters/anna-column-time-filter/anna-column-time-filter.component.d.ts +83 -83
  90. package/lib/anna-generic-table-lib/components/anna-non-editable-generic-table/anna-non-editable-generic-table.component.d.ts +174 -174
  91. package/lib/anna-generic-table-lib/components/anna-sort/anna-sort.component.d.ts +17 -17
  92. package/lib/anna-generic-table-lib/components/anna-table-virtual-scroll-viewport/anna-table-virtual-scroll-viewport.component.d.ts +141 -141
  93. 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 +89 -89
  94. package/lib/anna-generic-table-lib/directives/anna-fixed-row-size-table-virtual-scroll-strategy/index.d.ts +1 -1
  95. package/lib/anna-generic-table-lib/directives/anna-virtual-table/anna-virtual-table.directive.d.ts +45 -45
  96. package/lib/anna-generic-table-lib/directives/anna-virtual-table/index.d.ts +1 -1
  97. package/package.json +5 -11
  98. package/public-api.d.ts +42 -42
  99. package/src/lib/anna-common-scss/_animate.scss +27 -27
  100. package/src/lib/anna-common-scss/_application-spacing.scss +7 -7
  101. package/src/lib/anna-common-scss/_bootstrap-tooltip.scss +27 -27
  102. package/src/lib/anna-common-scss/_button.scss +18 -18
  103. package/src/lib/anna-common-scss/_colors.scss +107 -107
  104. package/src/lib/anna-common-scss/_common-order-listing-table.scss +172 -172
  105. package/src/lib/anna-common-scss/_custom-anna-datepicker.scss +14 -14
  106. package/src/lib/anna-common-scss/_customDropdown.scss +123 -123
  107. package/src/lib/anna-common-scss/_dashboard-partials.scss +106 -106
  108. package/src/lib/anna-common-scss/_date-picker-form.scss +87 -87
  109. package/src/lib/anna-common-scss/_easy-filter.scss +138 -138
  110. package/src/lib/anna-common-scss/_edit-filter-popup.scss +70 -70
  111. package/src/lib/anna-common-scss/_filters.scss +712 -712
  112. package/src/lib/anna-common-scss/_font.scss +9 -9
  113. package/src/lib/anna-common-scss/_fonts.scss +86 -86
  114. package/src/lib/anna-common-scss/_generic-modal.scss +63 -63
  115. package/src/lib/anna-common-scss/_generic-table-common.scss +198 -198
  116. package/src/lib/anna-common-scss/_gt-table.scss +425 -425
  117. package/src/lib/anna-common-scss/_legend.scss +11 -11
  118. package/src/lib/anna-common-scss/_mat-button-toggle.scss +38 -38
  119. package/src/lib/anna-common-scss/_mat-menu.scss +17 -17
  120. package/src/lib/anna-common-scss/_mixins.scss +187 -187
  121. package/src/lib/anna-common-scss/_modal.scss +37 -37
  122. package/src/lib/anna-common-scss/_popup-filter-toggle-button.scss +36 -36
  123. package/src/lib/anna-common-scss/_scrollbar.scss +14 -14
  124. package/src/lib/anna-common-scss/_sort.scss +30 -30
  125. package/src/lib/anna-common-scss/_toggle.scss +86 -86
  126. package/src/lib/anna-common-scss/style.scss +1 -1
  127. package/src/lib/anna-common-scss/third-party-lib/_angular-material-mat-radio.scss +25 -25
  128. package/src/lib/anna-common-scss/third-party-lib/_anna-mat-button-toggle-group-size-lg.scss +34 -34
  129. package/src/lib/anna-common-scss/third-party-lib/_mat-autocomplete.scss +31 -31
  130. package/esm2020/lib/anna-core-shared-lib/components/anna-buyer-approval-icon-template/anna-buyer-approval-icon-template.component.mjs +0 -14
  131. package/esm2020/lib/anna-core-shared-lib/components/anna-deleted-order-icon-template/anna-deleted-order-icon-template.component.mjs +0 -13
  132. package/esm2020/lib/anna-core-shared-lib/components/anna-est-icon-template/anna-est-icon-template.component.mjs +0 -11
  133. package/esm2020/lib/anna-core-shared-lib/components/anna-icon-column/anna-icon-column.component.mjs +0 -43
  134. package/esm2020/lib/anna-core-shared-lib/components/anna-live-icon-template/anna-live-icon-template.component.mjs +0 -14
  135. package/esm2020/lib/anna-core-shared-lib/components/anna-no-data/anna-no-data.component.mjs +0 -22
  136. package/esm2020/lib/anna-core-shared-lib/components/anna-notify-icon-template/anna-notify-icon-template.component.mjs +0 -13
  137. package/esm2020/lib/anna-core-shared-lib/components/anna-pay-for-performance-icon-template/anna-pay-for-performance-icon-template.component.mjs +0 -22
  138. package/esm2020/lib/anna-core-shared-lib/components/anna-rejected-icon-template/anna-rejected-icon-template.component.mjs +0 -14
  139. package/esm2020/lib/anna-core-shared-lib/constants/shared.constant.mjs +0 -43
  140. package/esm2020/lib/anna-core-shared-lib/models/anna-generic-data-type.model.mjs +0 -2
  141. package/esm2020/lib/anna-core-shared-lib/models/anna-global-dropdown-config.model.mjs +0 -2
  142. package/esm2020/lib/anna-core-shared-lib/models/anna-non-editable-gt-models.mjs +0 -11
  143. package/esm2020/lib/anna-core-shared-lib/services/anna-filter.service.mjs +0 -1259
  144. package/esm2020/lib/anna-core-shared-lib/services/anna-global-config.service.mjs +0 -135
  145. package/esm2020/lib/anna-core.module.mjs +0 -237
  146. package/esm2020/lib/anna-dropdown-lib/components/anna-calendar-filter/anna-calendar-filter.component.mjs +0 -160
  147. package/esm2020/lib/anna-dropdown-lib/components/anna-week-calendar-filter/anna-week-calendar-filter.component.mjs +0 -371
  148. package/esm2020/lib/anna-generic-table-lib/components/anna-column-filters/anna-column-checkbox-filter/anna-column-checkbox-filter.component.mjs +0 -252
  149. package/esm2020/lib/anna-generic-table-lib/components/anna-column-filters/anna-column-date-range-filter/anna-column-date-range-filter.component.mjs +0 -185
  150. package/esm2020/lib/anna-generic-table-lib/components/anna-column-filters/anna-column-slider-filter/anna-column-slider-filter.component.mjs +0 -312
  151. package/esm2020/lib/anna-generic-table-lib/components/anna-column-filters/anna-column-time-filter/anna-column-time-filter.component.mjs +0 -298
  152. package/esm2020/lib/anna-generic-table-lib/components/anna-non-editable-generic-table/anna-non-editable-generic-table.component.mjs +0 -840
  153. package/esm2020/lib/anna-generic-table-lib/components/anna-sort/anna-sort.component.mjs +0 -64
  154. package/esm2020/lib/anna-generic-table-lib/components/anna-table-virtual-scroll-viewport/anna-table-virtual-scroll-viewport.component.mjs +0 -352
  155. 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 -204
  156. package/esm2020/lib/anna-generic-table-lib/directives/anna-virtual-table/anna-virtual-table.directive.mjs +0 -180
  157. package/fesm2015/annalib-anna-core.mjs +0 -6076
  158. package/fesm2015/annalib-anna-core.mjs.map +0 -1
  159. package/fesm2020/annalib-anna-core.mjs +0 -6068
  160. package/fesm2020/annalib-anna-core.mjs.map +0 -1
@@ -1,53 +1,53 @@
1
- import { Injectable } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- export class AnnaNumberFormatService {
4
- static GetRoundedValueWithUnits(inputValue, digitsToRoundDecimalPoint = 2) {
5
- let [value, unit] = AnnaNumberFormatService.GetValueInUnits(Math.abs(inputValue));
6
- value = +(+value).toFixed(digitsToRoundDecimalPoint);
7
- if (inputValue < 0) {
8
- value = value * -1;
9
- }
10
- return value.toString() + unit;
11
- // return (Math.Round(value, digitsToRoundDecimalPoint, MidpointRounding.AwayFromZero) + unit);
12
- }
13
- static GetRoundedImpressionsWithUnits(inputValue, digitsToRoundDecimalPoint = 0) {
14
- let [value, unit] = this.GetValueInUnits(Math.abs(inputValue));
15
- value = +value;
16
- if (inputValue < 0) {
17
- value = value * -1;
18
- }
19
- if (digitsToRoundDecimalPoint == 0 && (unit == 'M' || unit == 'B' || unit == 'K')) {
20
- digitsToRoundDecimalPoint = 2;
21
- }
22
- return Number.isInteger(value) ? value.toString() + unit : value.toFixed(digitsToRoundDecimalPoint) + unit;
23
- // return (Math.round(value, digitsToRoundDecimalPoint, MidpointRounding.AwayFromZero) + unit);
24
- }
25
- static GetValueInUnits(inputValue) {
26
- let unit = '';
27
- let thousand = 1000;
28
- let million = 1000000;
29
- let billion = 1000000000;
30
- if (inputValue >= thousand && inputValue < million) {
31
- inputValue = inputValue / thousand;
32
- unit = 'K';
33
- }
34
- else if (inputValue >= million && inputValue < billion) {
35
- inputValue = inputValue / million;
36
- unit = 'M';
37
- }
38
- else if (inputValue >= billion) {
39
- inputValue = inputValue / billion;
40
- unit = 'B';
41
- }
42
- return [inputValue, unit];
43
- }
44
- }
45
- AnnaNumberFormatServicefac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: AnnaNumberFormatService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
46
- AnnaNumberFormatService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: AnnaNumberFormatService, providedIn: 'root' });
47
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: AnnaNumberFormatService, decorators: [{
48
- type: Injectable,
49
- args: [{
50
- providedIn: 'root',
51
- }]
52
- }] });
53
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5uYS1udW1iZXItZm9ybWF0LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbm5hLWNvcmUvc3JjL2xpYi9hbm5hLWNvcmUtc2hhcmVkLWxpYi9zZXJ2aWNlcy9hbm5hLW51bWJlci1mb3JtYXQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUszQyxNQUFNLE9BQU8sdUJBQXVCO0lBQ3pCLE1BQU0sQ0FBQyx3QkFBd0IsQ0FBQyxVQUFrQixFQUFFLHlCQUF5QixHQUFHLENBQUM7UUFDcEYsSUFBSSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsR0FBRyx1QkFBdUIsQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDO1FBQ2xGLEtBQUssR0FBRyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxPQUFPLENBQUMseUJBQXlCLENBQUMsQ0FBQztRQUNyRCxJQUFJLFVBQVUsR0FBRyxDQUFDLEVBQUU7WUFDaEIsS0FBSyxHQUFHLEtBQUssR0FBRyxDQUFDLENBQUMsQ0FBQztTQUN0QjtRQUNELE9BQU8sS0FBSyxDQUFDLFFBQVEsRUFBRSxHQUFHLElBQUksQ0FBQztRQUMvQixpR0FBaUc7SUFDckcsQ0FBQztJQUVNLE1BQU0sQ0FBQyw4QkFBOEIsQ0FBQyxVQUFrQixFQUFFLDRCQUFvQyxDQUFDO1FBQ2xHLElBQUksQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUM7UUFDL0QsS0FBSyxHQUFHLENBQUMsS0FBSyxDQUFDO1FBQ2YsSUFBSSxVQUFVLEdBQUcsQ0FBQyxFQUFFO1lBQ2hCLEtBQUssR0FBRyxLQUFLLEdBQUcsQ0FBQyxDQUFDLENBQUM7U0FDdEI7UUFDRCxJQUFJLHlCQUF5QixJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksSUFBSSxHQUFHLElBQUksSUFBSSxJQUFJLEdBQUcsSUFBSSxJQUFJLElBQUksR0FBRyxDQUFDLEVBQUU7WUFDL0UseUJBQXlCLEdBQUcsQ0FBQyxDQUFDO1NBQ2pDO1FBQ0QsT0FBTyxNQUFNLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLHlCQUF5QixDQUFDLEdBQUcsSUFBSSxDQUFDO1FBQzNHLCtGQUErRjtJQUNuRyxDQUFDO0lBRU0sTUFBTSxDQUFDLGVBQWUsQ0FBQyxVQUFrQjtRQUM1QyxJQUFJLElBQUksR0FBRyxFQUFFLENBQUM7UUFDZCxJQUFJLFFBQVEsR0FBRyxJQUFJLENBQUM7UUFDcEIsSUFBSSxPQUFPLEdBQUcsT0FBTyxDQUFDO1FBQ3RCLElBQUksT0FBTyxHQUFHLFVBQVUsQ0FBQztRQUV6QixJQUFJLFVBQVUsSUFBSSxRQUFRLElBQUksVUFBVSxHQUFHLE9BQU8sRUFBRTtZQUNoRCxVQUFVLEdBQUcsVUFBVSxHQUFHLFFBQVEsQ0FBQztZQUNuQyxJQUFJLEdBQUcsR0FBRyxDQUFDO1NBQ2Q7YUFBTSxJQUFJLFVBQVUsSUFBSSxPQUFPLElBQUksVUFBVSxHQUFHLE9BQU8sRUFBRTtZQUN0RCxVQUFVLEdBQUcsVUFBVSxHQUFHLE9BQU8sQ0FBQztZQUNsQyxJQUFJLEdBQUcsR0FBRyxDQUFDO1NBQ2Q7YUFBTSxJQUFJLFVBQVUsSUFBSSxPQUFPLEVBQUU7WUFDOUIsVUFBVSxHQUFHLFVBQVUsR0FBRyxPQUFPLENBQUM7WUFDbEMsSUFBSSxHQUFHLEdBQUcsQ0FBQztTQUNkO1FBRUQsT0FBTyxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUM5QixDQUFDOztxSEExQ1EsdUJBQXVCO3lIQUF2Qix1QkFBdUIsY0FGcEIsTUFBTTs0RkFFVCx1QkFBdUI7a0JBSG5DLFVBQVU7bUJBQUM7b0JBQ1IsVUFBVSxFQUFFLE1BQU07aUJBQ3JCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgQW5uYU51bWJlckZvcm1hdFNlcnZpY2Uge1xyXG4gICAgcHVibGljIHN0YXRpYyBHZXRSb3VuZGVkVmFsdWVXaXRoVW5pdHMoaW5wdXRWYWx1ZTogbnVtYmVyLCBkaWdpdHNUb1JvdW5kRGVjaW1hbFBvaW50ID0gMikge1xyXG4gICAgICAgIGxldCBbdmFsdWUsIHVuaXRdID0gQW5uYU51bWJlckZvcm1hdFNlcnZpY2UuR2V0VmFsdWVJblVuaXRzKE1hdGguYWJzKGlucHV0VmFsdWUpKTtcclxuICAgICAgICB2YWx1ZSA9ICsoK3ZhbHVlKS50b0ZpeGVkKGRpZ2l0c1RvUm91bmREZWNpbWFsUG9pbnQpO1xyXG4gICAgICAgIGlmIChpbnB1dFZhbHVlIDwgMCkge1xyXG4gICAgICAgICAgICB2YWx1ZSA9IHZhbHVlICogLTE7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiB2YWx1ZS50b1N0cmluZygpICsgdW5pdDtcclxuICAgICAgICAvLyAgIHJldHVybiAoTWF0aC5Sb3VuZCh2YWx1ZSwgZGlnaXRzVG9Sb3VuZERlY2ltYWxQb2ludCwgTWlkcG9pbnRSb3VuZGluZy5Bd2F5RnJvbVplcm8pICsgdW5pdCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHN0YXRpYyBHZXRSb3VuZGVkSW1wcmVzc2lvbnNXaXRoVW5pdHMoaW5wdXRWYWx1ZTogbnVtYmVyLCBkaWdpdHNUb1JvdW5kRGVjaW1hbFBvaW50OiBudW1iZXIgPSAwKSB7XHJcbiAgICAgICAgbGV0IFt2YWx1ZSwgdW5pdF0gPSB0aGlzLkdldFZhbHVlSW5Vbml0cyhNYXRoLmFicyhpbnB1dFZhbHVlKSk7XHJcbiAgICAgICAgdmFsdWUgPSArdmFsdWU7XHJcbiAgICAgICAgaWYgKGlucHV0VmFsdWUgPCAwKSB7XHJcbiAgICAgICAgICAgIHZhbHVlID0gdmFsdWUgKiAtMTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKGRpZ2l0c1RvUm91bmREZWNpbWFsUG9pbnQgPT0gMCAmJiAodW5pdCA9PSAnTScgfHwgdW5pdCA9PSAnQicgfHwgdW5pdCA9PSAnSycpKSB7XHJcbiAgICAgICAgICAgIGRpZ2l0c1RvUm91bmREZWNpbWFsUG9pbnQgPSAyO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gTnVtYmVyLmlzSW50ZWdlcih2YWx1ZSkgPyB2YWx1ZS50b1N0cmluZygpICsgdW5pdCA6IHZhbHVlLnRvRml4ZWQoZGlnaXRzVG9Sb3VuZERlY2ltYWxQb2ludCkgKyB1bml0O1xyXG4gICAgICAgIC8vIHJldHVybiAoTWF0aC5yb3VuZCh2YWx1ZSwgZGlnaXRzVG9Sb3VuZERlY2ltYWxQb2ludCwgTWlkcG9pbnRSb3VuZGluZy5Bd2F5RnJvbVplcm8pICsgdW5pdCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHN0YXRpYyBHZXRWYWx1ZUluVW5pdHMoaW5wdXRWYWx1ZTogbnVtYmVyKSB7XHJcbiAgICAgICAgbGV0IHVuaXQgPSAnJztcclxuICAgICAgICBsZXQgdGhvdXNhbmQgPSAxMDAwO1xyXG4gICAgICAgIGxldCBtaWxsaW9uID0gMTAwMDAwMDtcclxuICAgICAgICBsZXQgYmlsbGlvbiA9IDEwMDAwMDAwMDA7XHJcblxyXG4gICAgICAgIGlmIChpbnB1dFZhbHVlID49IHRob3VzYW5kICYmIGlucHV0VmFsdWUgPCBtaWxsaW9uKSB7XHJcbiAgICAgICAgICAgIGlucHV0VmFsdWUgPSBpbnB1dFZhbHVlIC8gdGhvdXNhbmQ7XHJcbiAgICAgICAgICAgIHVuaXQgPSAnSyc7XHJcbiAgICAgICAgfSBlbHNlIGlmIChpbnB1dFZhbHVlID49IG1pbGxpb24gJiYgaW5wdXRWYWx1ZSA8IGJpbGxpb24pIHtcclxuICAgICAgICAgICAgaW5wdXRWYWx1ZSA9IGlucHV0VmFsdWUgLyBtaWxsaW9uO1xyXG4gICAgICAgICAgICB1bml0ID0gJ00nO1xyXG4gICAgICAgIH0gZWxzZSBpZiAoaW5wdXRWYWx1ZSA+PSBiaWxsaW9uKSB7XHJcbiAgICAgICAgICAgIGlucHV0VmFsdWUgPSBpbnB1dFZhbHVlIC8gYmlsbGlvbjtcclxuICAgICAgICAgICAgdW5pdCA9ICdCJztcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiBbaW5wdXRWYWx1ZSwgdW5pdF07XHJcbiAgICB9XHJcbn1cclxuIl19
1
+ import { Injectable } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export class AnnaNumberFormatService {
4
+ static GetRoundedValueWithUnits(inputValue, digitsToRoundDecimalPoint = 2) {
5
+ let [value, unit] = AnnaNumberFormatService.GetValueInUnits(Math.abs(inputValue));
6
+ value = +(+value).toFixed(digitsToRoundDecimalPoint);
7
+ if (inputValue < 0) {
8
+ value = value * -1;
9
+ }
10
+ return value.toString() + unit;
11
+ // return (Math.Round(value, digitsToRoundDecimalPoint, MidpointRounding.AwayFromZero) + unit);
12
+ }
13
+ static GetRoundedImpressionsWithUnits(inputValue, digitsToRoundDecimalPoint = 0) {
14
+ let [value, unit] = this.GetValueInUnits(Math.abs(inputValue));
15
+ value = +value;
16
+ if (inputValue < 0) {
17
+ value = value * -1;
18
+ }
19
+ if (digitsToRoundDecimalPoint == 0 && (unit == 'M' || unit == 'B' || unit == 'K')) {
20
+ digitsToRoundDecimalPoint = 2;
21
+ }
22
+ return Number.isInteger(value) ? value.toString() + unit : value.toFixed(digitsToRoundDecimalPoint) + unit;
23
+ // return (Math.round(value, digitsToRoundDecimalPoint, MidpointRounding.AwayFromZero) + unit);
24
+ }
25
+ static GetValueInUnits(inputValue) {
26
+ let unit = '';
27
+ let thousand = 1000;
28
+ let million = 1000000;
29
+ let billion = 1000000000;
30
+ if (inputValue >= thousand && inputValue < million) {
31
+ inputValue = inputValue / thousand;
32
+ unit = 'K';
33
+ }
34
+ else if (inputValue >= million && inputValue < billion) {
35
+ inputValue = inputValue / million;
36
+ unit = 'M';
37
+ }
38
+ else if (inputValue >= billion) {
39
+ inputValue = inputValue / billion;
40
+ unit = 'B';
41
+ }
42
+ return [inputValue, unit];
43
+ }
44
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AnnaNumberFormatService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
45
+ static { thisprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AnnaNumberFormatService, providedIn: 'root' }); }
46
+ }
47
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AnnaNumberFormatService, decorators: [{
48
+ type: Injectable,
49
+ args: [{
50
+ providedIn: 'root',
51
+ }]
52
+ }] });
53
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5uYS1udW1iZXItZm9ybWF0LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbm5hLWNvcmUvc3JjL2xpYi9hbm5hLWNvcmUtc2hhcmVkLWxpYi9zZXJ2aWNlcy9hbm5hLW51bWJlci1mb3JtYXQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUszQyxNQUFNLE9BQU8sdUJBQXVCO0lBQ3pCLE1BQU0sQ0FBQyx3QkFBd0IsQ0FBQyxVQUFrQixFQUFFLHlCQUF5QixHQUFHLENBQUM7UUFDcEYsSUFBSSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsR0FBRyx1QkFBdUIsQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDO1FBQ2xGLEtBQUssR0FBRyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxPQUFPLENBQUMseUJBQXlCLENBQUMsQ0FBQztRQUNyRCxJQUFJLFVBQVUsR0FBRyxDQUFDLEVBQUU7WUFDaEIsS0FBSyxHQUFHLEtBQUssR0FBRyxDQUFDLENBQUMsQ0FBQztTQUN0QjtRQUNELE9BQU8sS0FBSyxDQUFDLFFBQVEsRUFBRSxHQUFHLElBQUksQ0FBQztRQUMvQixpR0FBaUc7SUFDckcsQ0FBQztJQUVNLE1BQU0sQ0FBQyw4QkFBOEIsQ0FBQyxVQUFrQixFQUFFLDRCQUFvQyxDQUFDO1FBQ2xHLElBQUksQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUM7UUFDL0QsS0FBSyxHQUFHLENBQUMsS0FBSyxDQUFDO1FBQ2YsSUFBSSxVQUFVLEdBQUcsQ0FBQyxFQUFFO1lBQ2hCLEtBQUssR0FBRyxLQUFLLEdBQUcsQ0FBQyxDQUFDLENBQUM7U0FDdEI7UUFDRCxJQUFJLHlCQUF5QixJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksSUFBSSxHQUFHLElBQUksSUFBSSxJQUFJLEdBQUcsSUFBSSxJQUFJLElBQUksR0FBRyxDQUFDLEVBQUU7WUFDL0UseUJBQXlCLEdBQUcsQ0FBQyxDQUFDO1NBQ2pDO1FBQ0QsT0FBTyxNQUFNLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLHlCQUF5QixDQUFDLEdBQUcsSUFBSSxDQUFDO1FBQzNHLCtGQUErRjtJQUNuRyxDQUFDO0lBRU0sTUFBTSxDQUFDLGVBQWUsQ0FBQyxVQUFrQjtRQUM1QyxJQUFJLElBQUksR0FBRyxFQUFFLENBQUM7UUFDZCxJQUFJLFFBQVEsR0FBRyxJQUFJLENBQUM7UUFDcEIsSUFBSSxPQUFPLEdBQUcsT0FBTyxDQUFDO1FBQ3RCLElBQUksT0FBTyxHQUFHLFVBQVUsQ0FBQztRQUV6QixJQUFJLFVBQVUsSUFBSSxRQUFRLElBQUksVUFBVSxHQUFHLE9BQU8sRUFBRTtZQUNoRCxVQUFVLEdBQUcsVUFBVSxHQUFHLFFBQVEsQ0FBQztZQUNuQyxJQUFJLEdBQUcsR0FBRyxDQUFDO1NBQ2Q7YUFBTSxJQUFJLFVBQVUsSUFBSSxPQUFPLElBQUksVUFBVSxHQUFHLE9BQU8sRUFBRTtZQUN0RCxVQUFVLEdBQUcsVUFBVSxHQUFHLE9BQU8sQ0FBQztZQUNsQyxJQUFJLEdBQUcsR0FBRyxDQUFDO1NBQ2Q7YUFBTSxJQUFJLFVBQVUsSUFBSSxPQUFPLEVBQUU7WUFDOUIsVUFBVSxHQUFHLFVBQVUsR0FBRyxPQUFPLENBQUM7WUFDbEMsSUFBSSxHQUFHLEdBQUcsQ0FBQztTQUNkO1FBRUQsT0FBTyxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUM5QixDQUFDOytHQTFDUSx1QkFBdUI7bUhBQXZCLHVCQUF1QixjQUZwQixNQUFNOzs0RkFFVCx1QkFBdUI7a0JBSG5DLFVBQVU7bUJBQUM7b0JBQ1IsVUFBVSxFQUFFLE1BQU07aUJBQ3JCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5ASW5qZWN0YWJsZSh7XG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBBbm5hTnVtYmVyRm9ybWF0U2VydmljZSB7XG4gICAgcHVibGljIHN0YXRpYyBHZXRSb3VuZGVkVmFsdWVXaXRoVW5pdHMoaW5wdXRWYWx1ZTogbnVtYmVyLCBkaWdpdHNUb1JvdW5kRGVjaW1hbFBvaW50ID0gMikge1xuICAgICAgICBsZXQgW3ZhbHVlLCB1bml0XSA9IEFubmFOdW1iZXJGb3JtYXRTZXJ2aWNlLkdldFZhbHVlSW5Vbml0cyhNYXRoLmFicyhpbnB1dFZhbHVlKSk7XG4gICAgICAgIHZhbHVlID0gKygrdmFsdWUpLnRvRml4ZWQoZGlnaXRzVG9Sb3VuZERlY2ltYWxQb2ludCk7XG4gICAgICAgIGlmIChpbnB1dFZhbHVlIDwgMCkge1xuICAgICAgICAgICAgdmFsdWUgPSB2YWx1ZSAqIC0xO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB2YWx1ZS50b1N0cmluZygpICsgdW5pdDtcbiAgICAgICAgLy8gICByZXR1cm4gKE1hdGguUm91bmQodmFsdWUsIGRpZ2l0c1RvUm91bmREZWNpbWFsUG9pbnQsIE1pZHBvaW50Um91bmRpbmcuQXdheUZyb21aZXJvKSArIHVuaXQpO1xuICAgIH1cblxuICAgIHB1YmxpYyBzdGF0aWMgR2V0Um91bmRlZEltcHJlc3Npb25zV2l0aFVuaXRzKGlucHV0VmFsdWU6IG51bWJlciwgZGlnaXRzVG9Sb3VuZERlY2ltYWxQb2ludDogbnVtYmVyID0gMCkge1xuICAgICAgICBsZXQgW3ZhbHVlLCB1bml0XSA9IHRoaXMuR2V0VmFsdWVJblVuaXRzKE1hdGguYWJzKGlucHV0VmFsdWUpKTtcbiAgICAgICAgdmFsdWUgPSArdmFsdWU7XG4gICAgICAgIGlmIChpbnB1dFZhbHVlIDwgMCkge1xuICAgICAgICAgICAgdmFsdWUgPSB2YWx1ZSAqIC0xO1xuICAgICAgICB9XG4gICAgICAgIGlmIChkaWdpdHNUb1JvdW5kRGVjaW1hbFBvaW50ID09IDAgJiYgKHVuaXQgPT0gJ00nIHx8IHVuaXQgPT0gJ0InIHx8IHVuaXQgPT0gJ0snKSkge1xuICAgICAgICAgICAgZGlnaXRzVG9Sb3VuZERlY2ltYWxQb2ludCA9IDI7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIE51bWJlci5pc0ludGVnZXIodmFsdWUpID8gdmFsdWUudG9TdHJpbmcoKSArIHVuaXQgOiB2YWx1ZS50b0ZpeGVkKGRpZ2l0c1RvUm91bmREZWNpbWFsUG9pbnQpICsgdW5pdDtcbiAgICAgICAgLy8gcmV0dXJuIChNYXRoLnJvdW5kKHZhbHVlLCBkaWdpdHNUb1JvdW5kRGVjaW1hbFBvaW50LCBNaWRwb2ludFJvdW5kaW5nLkF3YXlGcm9tWmVybykgKyB1bml0KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc3RhdGljIEdldFZhbHVlSW5Vbml0cyhpbnB1dFZhbHVlOiBudW1iZXIpIHtcbiAgICAgICAgbGV0IHVuaXQgPSAnJztcbiAgICAgICAgbGV0IHRob3VzYW5kID0gMTAwMDtcbiAgICAgICAgbGV0IG1pbGxpb24gPSAxMDAwMDAwO1xuICAgICAgICBsZXQgYmlsbGlvbiA9IDEwMDAwMDAwMDA7XG5cbiAgICAgICAgaWYgKGlucHV0VmFsdWUgPj0gdGhvdXNhbmQgJiYgaW5wdXRWYWx1ZSA8IG1pbGxpb24pIHtcbiAgICAgICAgICAgIGlucHV0VmFsdWUgPSBpbnB1dFZhbHVlIC8gdGhvdXNhbmQ7XG4gICAgICAgICAgICB1bml0ID0gJ0snO1xuICAgICAgICB9IGVsc2UgaWYgKGlucHV0VmFsdWUgPj0gbWlsbGlvbiAmJiBpbnB1dFZhbHVlIDwgYmlsbGlvbikge1xuICAgICAgICAgICAgaW5wdXRWYWx1ZSA9IGlucHV0VmFsdWUgLyBtaWxsaW9uO1xuICAgICAgICAgICAgdW5pdCA9ICdNJztcbiAgICAgICAgfSBlbHNlIGlmIChpbnB1dFZhbHVlID49IGJpbGxpb24pIHtcbiAgICAgICAgICAgIGlucHV0VmFsdWUgPSBpbnB1dFZhbHVlIC8gYmlsbGlvbjtcbiAgICAgICAgICAgIHVuaXQgPSAnQic7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gW2lucHV0VmFsdWUsIHVuaXRdO1xuICAgIH1cbn1cbiJdfQ==
@@ -1,65 +1,65 @@
1
- import { Injectable } from '@angular/core';
2
- import hash from 'object-hash';
3
- import * as i0 from "@angular/core";
4
- export class AnnaPersistingFilterService {
5
- constructor() { }
6
- storeKeyValueInLocalStorage(val, isFilterKey = true) {
7
- let filterOrdering;
8
- if (!localStorage.getItem('filterOrdering')) {
9
- filterOrdering = [];
10
- }
11
- else {
12
- filterOrdering = JSON.parse(localStorage.getItem('filterOrdering'));
13
- }
14
- let filterOrderingSet = new Set(filterOrdering);
15
- let hashCode = null;
16
- let key = null;
17
- try {
18
- hashCode = hash(val);
19
- key = isFilterKey ? 'filter_' + hashCode : hashCode;
20
- localStorage.setItem(key, JSON.stringify(val));
21
- if (isFilterKey) {
22
- if (filterOrderingSet.has(key)) {
23
- filterOrderingSet.delete(key);
24
- }
25
- filterOrderingSet.add(key);
26
- localStorage.setItem('filterOrdering', JSON.stringify(Array.from(filterOrderingSet)));
27
- }
28
- }
29
- catch (e) {
30
- let halfArrayLength = filterOrdering.length / 2;
31
- for (let i = 0; i < halfArrayLength; i++) {
32
- localStorage.removeItem(filterOrdering[i]);
33
- }
34
- filterOrdering.splice(0, filterOrdering.length / 2);
35
- hashCode = hash(val);
36
- let key = isFilterKey ? 'filter_' + hashCode : hashCode;
37
- localStorage.setItem(key, JSON.stringify(val));
38
- if (isFilterKey) {
39
- if (filterOrderingSet.has(key)) {
40
- filterOrderingSet.delete(key);
41
- }
42
- filterOrderingSet.add(key);
43
- localStorage.setItem('filterOrdering', JSON.stringify(Array.from(filterOrderingSet)));
44
- }
45
- }
46
- return key;
47
- }
48
- getActualQueryParams(key) {
49
- return localStorage.getItem(key);
50
- }
51
- convertObjToQueryString(paramsObject) {
52
- return Object.keys(paramsObject)
53
- .map((key) => `${encodeURIComponent(key)}=${encodeURIComponent(paramsObject[key])}`)
54
- .join('&');
55
- }
56
- }
57
- AnnaPersistingFilterServicefac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: AnnaPersistingFilterService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
58
- AnnaPersistingFilterService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: AnnaPersistingFilterService, providedIn: 'root' });
59
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: AnnaPersistingFilterService, decorators: [{
60
- type: Injectable,
61
- args: [{
62
- providedIn: 'root',
63
- }]
64
- }], ctorParameters: function () { return []; } });
65
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5uYS1wZXJzaXN0aW5nLWZpbHRlci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5uYS1jb3JlL3NyYy9saWIvYW5uYS1jb3JlLXNoYXJlZC1saWIvc2VydmljZXMvYW5uYS1wZXJzaXN0aW5nLWZpbHRlci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxJQUFJLE1BQU0sYUFBYSxDQUFDOztBQUsvQixNQUFNLE9BQU8sMkJBQTJCO0lBQ3BDLGdCQUFlLENBQUM7SUFFaEIsMkJBQTJCLENBQUMsR0FBUSxFQUFFLFdBQVcsR0FBRyxJQUFJO1FBQ3BELElBQUksY0FBcUIsQ0FBQztRQUUxQixJQUFJLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFFO1lBQ3pDLGNBQWMsR0FBRyxFQUFFLENBQUM7U0FDdkI7YUFBTTtZQUNILGNBQWMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDO1NBQ3ZFO1FBRUQsSUFBSSxpQkFBaUIsR0FBRyxJQUFJLEdBQUcsQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUNoRCxJQUFJLFFBQVEsR0FBRyxJQUFJLENBQUM7UUFDcEIsSUFBSSxHQUFHLEdBQUcsSUFBSSxDQUFDO1FBRWYsSUFBSTtZQUNBLFFBQVEsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDckIsR0FBRyxHQUFHLFdBQVcsQ0FBQyxDQUFDLENBQUMsU0FBUyxHQUFHLFFBQVEsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDO1lBQ3BELFlBQVksQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztZQUUvQyxJQUFJLFdBQVcsRUFBRTtnQkFDYixJQUFJLGlCQUFpQixDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRTtvQkFDNUIsaUJBQWlCLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDO2lCQUNqQztnQkFDRCxpQkFBaUIsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7Z0JBQzNCLFlBQVksQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUMsQ0FBQyxDQUFDO2FBQ3pGO1NBQ0o7UUFBQyxPQUFPLENBQUMsRUFBRTtZQUNSLElBQUksZUFBZSxHQUFHLGNBQWMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO1lBRWhELEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxlQUFlLEVBQUUsQ0FBQyxFQUFFLEVBQUU7Z0JBQ3RDLFlBQVksQ0FBQyxVQUFVLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7YUFDOUM7WUFFRCxjQUFjLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxjQUFjLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDO1lBRXBELFFBQVEsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDckIsSUFBSSxHQUFHLEdBQUcsV0FBVyxDQUFDLENBQUMsQ0FBQyxTQUFTLEdBQUcsUUFBUSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUM7WUFDeEQsWUFBWSxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO1lBRS9DLElBQUksV0FBVyxFQUFFO2dCQUNiLElBQUksaUJBQWlCLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFO29CQUM1QixpQkFBaUIsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7aUJBQ2pDO2dCQUNELGlCQUFpQixDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQztnQkFDM0IsWUFBWSxDQUFDLE9BQU8sQ0FBQyxnQkFBZ0IsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLENBQUM7YUFDekY7U0FDSjtRQUVELE9BQU8sR0FBRyxDQUFDO0lBQ2YsQ0FBQztJQUVELG9CQUFvQixDQUFDLEdBQVc7UUFDNUIsT0FBTyxZQUFZLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ3JDLENBQUM7SUFFRCx1QkFBdUIsQ0FBQyxZQUFpQjtRQUNyQyxPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDO2FBQzNCLEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxrQkFBa0IsQ0FBQyxHQUFHLENBQUMsSUFBSSxrQkFBa0IsQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDO2FBQ25GLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNuQixDQUFDOzt5SEE3RFEsMkJBQTJCOzZIQUEzQiwyQkFBMkIsY0FGeEIsTUFBTTs0RkFFVCwyQkFBMkI7a0JBSHZDLFVBQVU7bUJBQUM7b0JBQ1IsVUFBVSxFQUFFLE1BQU07aUJBQ3JCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgaGFzaCBmcm9tICdvYmplY3QtaGFzaCc7XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgICBwcm92aWRlZEluOiAncm9vdCcsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBbm5hUGVyc2lzdGluZ0ZpbHRlclNlcnZpY2Uge1xyXG4gICAgY29uc3RydWN0b3IoKSB7fVxyXG5cclxuICAgIHN0b3JlS2V5VmFsdWVJbkxvY2FsU3RvcmFnZSh2YWw6IGFueSwgaXNGaWx0ZXJLZXkgPSB0cnVlKSB7XHJcbiAgICAgICAgbGV0IGZpbHRlck9yZGVyaW5nOiBhbnlbXTtcclxuXHJcbiAgICAgICAgaWYgKCFsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgnZmlsdGVyT3JkZXJpbmcnKSkge1xyXG4gICAgICAgICAgICBmaWx0ZXJPcmRlcmluZyA9IFtdO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIGZpbHRlck9yZGVyaW5nID0gSlNPTi5wYXJzZShsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgnZmlsdGVyT3JkZXJpbmcnKSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBsZXQgZmlsdGVyT3JkZXJpbmdTZXQgPSBuZXcgU2V0KGZpbHRlck9yZGVyaW5nKTtcclxuICAgICAgICBsZXQgaGFzaENvZGUgPSBudWxsO1xyXG4gICAgICAgIGxldCBrZXkgPSBudWxsO1xyXG5cclxuICAgICAgICB0cnkge1xyXG4gICAgICAgICAgICBoYXNoQ29kZSA9IGhhc2godmFsKTtcclxuICAgICAgICAgICAga2V5ID0gaXNGaWx0ZXJLZXkgPyAnZmlsdGVyXycgKyBoYXNoQ29kZSA6IGhhc2hDb2RlO1xyXG4gICAgICAgICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbShrZXksIEpTT04uc3RyaW5naWZ5KHZhbCkpO1xyXG5cclxuICAgICAgICAgICAgaWYgKGlzRmlsdGVyS2V5KSB7XHJcbiAgICAgICAgICAgICAgICBpZiAoZmlsdGVyT3JkZXJpbmdTZXQuaGFzKGtleSkpIHtcclxuICAgICAgICAgICAgICAgICAgICBmaWx0ZXJPcmRlcmluZ1NldC5kZWxldGUoa2V5KTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGZpbHRlck9yZGVyaW5nU2V0LmFkZChrZXkpO1xyXG4gICAgICAgICAgICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oJ2ZpbHRlck9yZGVyaW5nJywgSlNPTi5zdHJpbmdpZnkoQXJyYXkuZnJvbShmaWx0ZXJPcmRlcmluZ1NldCkpKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0gY2F0Y2ggKGUpIHtcclxuICAgICAgICAgICAgbGV0IGhhbGZBcnJheUxlbmd0aCA9IGZpbHRlck9yZGVyaW5nLmxlbmd0aCAvIDI7XHJcblxyXG4gICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGhhbGZBcnJheUxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICAgICAgICBsb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbShmaWx0ZXJPcmRlcmluZ1tpXSk7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIGZpbHRlck9yZGVyaW5nLnNwbGljZSgwLCBmaWx0ZXJPcmRlcmluZy5sZW5ndGggLyAyKTtcclxuXHJcbiAgICAgICAgICAgIGhhc2hDb2RlID0gaGFzaCh2YWwpO1xyXG4gICAgICAgICAgICBsZXQga2V5ID0gaXNGaWx0ZXJLZXkgPyAnZmlsdGVyXycgKyBoYXNoQ29kZSA6IGhhc2hDb2RlO1xyXG4gICAgICAgICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbShrZXksIEpTT04uc3RyaW5naWZ5KHZhbCkpO1xyXG5cclxuICAgICAgICAgICAgaWYgKGlzRmlsdGVyS2V5KSB7XHJcbiAgICAgICAgICAgICAgICBpZiAoZmlsdGVyT3JkZXJpbmdTZXQuaGFzKGtleSkpIHtcclxuICAgICAgICAgICAgICAgICAgICBmaWx0ZXJPcmRlcmluZ1NldC5kZWxldGUoa2V5KTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGZpbHRlck9yZGVyaW5nU2V0LmFkZChrZXkpO1xyXG4gICAgICAgICAgICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oJ2ZpbHRlck9yZGVyaW5nJywgSlNPTi5zdHJpbmdpZnkoQXJyYXkuZnJvbShmaWx0ZXJPcmRlcmluZ1NldCkpKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIGtleTtcclxuICAgIH1cclxuXHJcbiAgICBnZXRBY3R1YWxRdWVyeVBhcmFtcyhrZXk6IHN0cmluZykge1xyXG4gICAgICAgIHJldHVybiBsb2NhbFN0b3JhZ2UuZ2V0SXRlbShrZXkpO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnZlcnRPYmpUb1F1ZXJ5U3RyaW5nKHBhcmFtc09iamVjdDogYW55KSB7XHJcbiAgICAgICAgcmV0dXJuIE9iamVjdC5rZXlzKHBhcmFtc09iamVjdClcclxuICAgICAgICAgICAgLm1hcCgoa2V5KSA9PiBgJHtlbmNvZGVVUklDb21wb25lbnQoa2V5KX09JHtlbmNvZGVVUklDb21wb25lbnQocGFyYW1zT2JqZWN0W2tleV0pfWApXHJcbiAgICAgICAgICAgIC5qb2luKCcmJyk7XHJcbiAgICB9XHJcbn1cclxuIl19
1
+ import { Injectable } from '@angular/core';
2
+ import hash from 'object-hash';
3
+ import * as i0 from "@angular/core";
4
+ export class AnnaPersistingFilterService {
5
+ constructor() { }
6
+ storeKeyValueInLocalStorage(val, isFilterKey = true) {
7
+ let filterOrdering;
8
+ if (!localStorage.getItem('filterOrdering')) {
9
+ filterOrdering = [];
10
+ }
11
+ else {
12
+ filterOrdering = JSON.parse(localStorage.getItem('filterOrdering'));
13
+ }
14
+ let filterOrderingSet = new Set(filterOrdering);
15
+ let hashCode = null;
16
+ let key = null;
17
+ try {
18
+ hashCode = hash(val);
19
+ key = isFilterKey ? 'filter_' + hashCode : hashCode;
20
+ localStorage.setItem(key, JSON.stringify(val));
21
+ if (isFilterKey) {
22
+ if (filterOrderingSet.has(key)) {
23
+ filterOrderingSet.delete(key);
24
+ }
25
+ filterOrderingSet.add(key);
26
+ localStorage.setItem('filterOrdering', JSON.stringify(Array.from(filterOrderingSet)));
27
+ }
28
+ }
29
+ catch (e) {
30
+ let halfArrayLength = filterOrdering.length / 2;
31
+ for (let i = 0; i < halfArrayLength; i++) {
32
+ localStorage.removeItem(filterOrdering[i]);
33
+ }
34
+ filterOrdering.splice(0, filterOrdering.length / 2);
35
+ hashCode = hash(val);
36
+ let key = isFilterKey ? 'filter_' + hashCode : hashCode;
37
+ localStorage.setItem(key, JSON.stringify(val));
38
+ if (isFilterKey) {
39
+ if (filterOrderingSet.has(key)) {
40
+ filterOrderingSet.delete(key);
41
+ }
42
+ filterOrderingSet.add(key);
43
+ localStorage.setItem('filterOrdering', JSON.stringify(Array.from(filterOrderingSet)));
44
+ }
45
+ }
46
+ return key;
47
+ }
48
+ getActualQueryParams(key) {
49
+ return localStorage.getItem(key);
50
+ }
51
+ convertObjToQueryString(paramsObject) {
52
+ return Object.keys(paramsObject)
53
+ .map((key) => `${encodeURIComponent(key)}=${encodeURIComponent(paramsObject[key])}`)
54
+ .join('&');
55
+ }
56
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AnnaPersistingFilterService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
57
+ static { thisprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AnnaPersistingFilterService, providedIn: 'root' }); }
58
+ }
59
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AnnaPersistingFilterService, decorators: [{
60
+ type: Injectable,
61
+ args: [{
62
+ providedIn: 'root',
63
+ }]
64
+ }], ctorParameters: function () { return []; } });
65
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5uYS1wZXJzaXN0aW5nLWZpbHRlci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5uYS1jb3JlL3NyYy9saWIvYW5uYS1jb3JlLXNoYXJlZC1saWIvc2VydmljZXMvYW5uYS1wZXJzaXN0aW5nLWZpbHRlci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxJQUFJLE1BQU0sYUFBYSxDQUFDOztBQUsvQixNQUFNLE9BQU8sMkJBQTJCO0lBQ3BDLGdCQUFlLENBQUM7SUFFaEIsMkJBQTJCLENBQUMsR0FBUSxFQUFFLFdBQVcsR0FBRyxJQUFJO1FBQ3BELElBQUksY0FBcUIsQ0FBQztRQUUxQixJQUFJLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFFO1lBQ3pDLGNBQWMsR0FBRyxFQUFFLENBQUM7U0FDdkI7YUFBTTtZQUNILGNBQWMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDO1NBQ3ZFO1FBRUQsSUFBSSxpQkFBaUIsR0FBRyxJQUFJLEdBQUcsQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUNoRCxJQUFJLFFBQVEsR0FBRyxJQUFJLENBQUM7UUFDcEIsSUFBSSxHQUFHLEdBQUcsSUFBSSxDQUFDO1FBRWYsSUFBSTtZQUNBLFFBQVEsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDckIsR0FBRyxHQUFHLFdBQVcsQ0FBQyxDQUFDLENBQUMsU0FBUyxHQUFHLFFBQVEsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDO1lBQ3BELFlBQVksQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztZQUUvQyxJQUFJLFdBQVcsRUFBRTtnQkFDYixJQUFJLGlCQUFpQixDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRTtvQkFDNUIsaUJBQWlCLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDO2lCQUNqQztnQkFDRCxpQkFBaUIsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7Z0JBQzNCLFlBQVksQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUMsQ0FBQyxDQUFDO2FBQ3pGO1NBQ0o7UUFBQyxPQUFPLENBQUMsRUFBRTtZQUNSLElBQUksZUFBZSxHQUFHLGNBQWMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO1lBRWhELEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxlQUFlLEVBQUUsQ0FBQyxFQUFFLEVBQUU7Z0JBQ3RDLFlBQVksQ0FBQyxVQUFVLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7YUFDOUM7WUFFRCxjQUFjLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxjQUFjLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDO1lBRXBELFFBQVEsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDckIsSUFBSSxHQUFHLEdBQUcsV0FBVyxDQUFDLENBQUMsQ0FBQyxTQUFTLEdBQUcsUUFBUSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUM7WUFDeEQsWUFBWSxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO1lBRS9DLElBQUksV0FBVyxFQUFFO2dCQUNiLElBQUksaUJBQWlCLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFO29CQUM1QixpQkFBaUIsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7aUJBQ2pDO2dCQUNELGlCQUFpQixDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQztnQkFDM0IsWUFBWSxDQUFDLE9BQU8sQ0FBQyxnQkFBZ0IsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLENBQUM7YUFDekY7U0FDSjtRQUVELE9BQU8sR0FBRyxDQUFDO0lBQ2YsQ0FBQztJQUVELG9CQUFvQixDQUFDLEdBQVc7UUFDNUIsT0FBTyxZQUFZLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ3JDLENBQUM7SUFFRCx1QkFBdUIsQ0FBQyxZQUFpQjtRQUNyQyxPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDO2FBQzNCLEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxrQkFBa0IsQ0FBQyxHQUFHLENBQUMsSUFBSSxrQkFBa0IsQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDO2FBQ25GLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNuQixDQUFDOytHQTdEUSwyQkFBMkI7bUhBQTNCLDJCQUEyQixjQUZ4QixNQUFNOzs0RkFFVCwyQkFBMkI7a0JBSHZDLFVBQVU7bUJBQUM7b0JBQ1IsVUFBVSxFQUFFLE1BQU07aUJBQ3JCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IGhhc2ggZnJvbSAnb2JqZWN0LWhhc2gnO1xuXG5ASW5qZWN0YWJsZSh7XG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBBbm5hUGVyc2lzdGluZ0ZpbHRlclNlcnZpY2Uge1xuICAgIGNvbnN0cnVjdG9yKCkge31cblxuICAgIHN0b3JlS2V5VmFsdWVJbkxvY2FsU3RvcmFnZSh2YWw6IGFueSwgaXNGaWx0ZXJLZXkgPSB0cnVlKSB7XG4gICAgICAgIGxldCBmaWx0ZXJPcmRlcmluZzogYW55W107XG5cbiAgICAgICAgaWYgKCFsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgnZmlsdGVyT3JkZXJpbmcnKSkge1xuICAgICAgICAgICAgZmlsdGVyT3JkZXJpbmcgPSBbXTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGZpbHRlck9yZGVyaW5nID0gSlNPTi5wYXJzZShsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgnZmlsdGVyT3JkZXJpbmcnKSk7XG4gICAgICAgIH1cblxuICAgICAgICBsZXQgZmlsdGVyT3JkZXJpbmdTZXQgPSBuZXcgU2V0KGZpbHRlck9yZGVyaW5nKTtcbiAgICAgICAgbGV0IGhhc2hDb2RlID0gbnVsbDtcbiAgICAgICAgbGV0IGtleSA9IG51bGw7XG5cbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGhhc2hDb2RlID0gaGFzaCh2YWwpO1xuICAgICAgICAgICAga2V5ID0gaXNGaWx0ZXJLZXkgPyAnZmlsdGVyXycgKyBoYXNoQ29kZSA6IGhhc2hDb2RlO1xuICAgICAgICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oa2V5LCBKU09OLnN0cmluZ2lmeSh2YWwpKTtcblxuICAgICAgICAgICAgaWYgKGlzRmlsdGVyS2V5KSB7XG4gICAgICAgICAgICAgICAgaWYgKGZpbHRlck9yZGVyaW5nU2V0LmhhcyhrZXkpKSB7XG4gICAgICAgICAgICAgICAgICAgIGZpbHRlck9yZGVyaW5nU2V0LmRlbGV0ZShrZXkpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBmaWx0ZXJPcmRlcmluZ1NldC5hZGQoa2V5KTtcbiAgICAgICAgICAgICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgnZmlsdGVyT3JkZXJpbmcnLCBKU09OLnN0cmluZ2lmeShBcnJheS5mcm9tKGZpbHRlck9yZGVyaW5nU2V0KSkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgICBsZXQgaGFsZkFycmF5TGVuZ3RoID0gZmlsdGVyT3JkZXJpbmcubGVuZ3RoIC8gMjtcblxuICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBoYWxmQXJyYXlMZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgICAgIGxvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKGZpbHRlck9yZGVyaW5nW2ldKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgZmlsdGVyT3JkZXJpbmcuc3BsaWNlKDAsIGZpbHRlck9yZGVyaW5nLmxlbmd0aCAvIDIpO1xuXG4gICAgICAgICAgICBoYXNoQ29kZSA9IGhhc2godmFsKTtcbiAgICAgICAgICAgIGxldCBrZXkgPSBpc0ZpbHRlcktleSA/ICdmaWx0ZXJfJyArIGhhc2hDb2RlIDogaGFzaENvZGU7XG4gICAgICAgICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbShrZXksIEpTT04uc3RyaW5naWZ5KHZhbCkpO1xuXG4gICAgICAgICAgICBpZiAoaXNGaWx0ZXJLZXkpIHtcbiAgICAgICAgICAgICAgICBpZiAoZmlsdGVyT3JkZXJpbmdTZXQuaGFzKGtleSkpIHtcbiAgICAgICAgICAgICAgICAgICAgZmlsdGVyT3JkZXJpbmdTZXQuZGVsZXRlKGtleSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGZpbHRlck9yZGVyaW5nU2V0LmFkZChrZXkpO1xuICAgICAgICAgICAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKCdmaWx0ZXJPcmRlcmluZycsIEpTT04uc3RyaW5naWZ5KEFycmF5LmZyb20oZmlsdGVyT3JkZXJpbmdTZXQpKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4ga2V5O1xuICAgIH1cblxuICAgIGdldEFjdHVhbFF1ZXJ5UGFyYW1zKGtleTogc3RyaW5nKSB7XG4gICAgICAgIHJldHVybiBsb2NhbFN0b3JhZ2UuZ2V0SXRlbShrZXkpO1xuICAgIH1cblxuICAgIGNvbnZlcnRPYmpUb1F1ZXJ5U3RyaW5nKHBhcmFtc09iamVjdDogYW55KSB7XG4gICAgICAgIHJldHVybiBPYmplY3Qua2V5cyhwYXJhbXNPYmplY3QpXG4gICAgICAgICAgICAubWFwKChrZXkpID0+IGAke2VuY29kZVVSSUNvbXBvbmVudChrZXkpfT0ke2VuY29kZVVSSUNvbXBvbmVudChwYXJhbXNPYmplY3Rba2V5XSl9YClcbiAgICAgICAgICAgIC5qb2luKCcmJyk7XG4gICAgfVxufVxuIl19