@annalib/anna-core 20.3.0 → 20.3.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 (175) hide show
  1. package/README.md +28 -24
  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 +12 -0
  4. package/esm2022/lib/anna-core-shared-lib/components/anna-deleted-order-icon-template/anna-deleted-order-icon-template.component.mjs +11 -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 +46 -0
  7. package/esm2022/lib/anna-core-shared-lib/components/anna-live-icon-template/anna-live-icon-template.component.mjs +12 -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 +11 -0
  10. package/esm2022/lib/anna-core-shared-lib/components/anna-pay-for-performance-icon-template/anna-pay-for-performance-icon-template.component.mjs +20 -0
  11. package/esm2022/lib/anna-core-shared-lib/components/anna-rejected-icon-template/anna-rejected-icon-template.component.mjs +12 -0
  12. package/esm2022/lib/anna-core-shared-lib/constants/shared.constant.mjs +47 -0
  13. package/esm2022/lib/anna-core-shared-lib/directives/digits-only/digits-only.directive.mjs +266 -0
  14. package/esm2022/lib/anna-core-shared-lib/directives/fixed-rows-popup-table/fixed-rows-popup-table.directive.mjs +46 -0
  15. package/esm2022/lib/anna-core-shared-lib/directives/show-ellipsis-text/show-ellipsis-text.directive.mjs +41 -0
  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 +22 -0
  19. package/esm2022/lib/anna-core-shared-lib/models/anna-sort.model.mjs +7 -0
  20. package/{esm2020 → esm2022}/lib/anna-core-shared-lib/models/anna-tooltip.model.mjs +30 -30
  21. package/esm2022/lib/anna-core-shared-lib/pipes/annaConvertArrayToCommaSeperatedValue.pipe.mjs +39 -0
  22. package/esm2022/lib/anna-core-shared-lib/pipes/annaConvertZeroOrNullOrUndefined.pipe.mjs +27 -0
  23. package/esm2022/lib/anna-core-shared-lib/pipes/annaDateFormatter.pipe.mjs +21 -0
  24. package/esm2022/lib/anna-core-shared-lib/pipes/annaFilterSearchedText.pipe.mjs +53 -0
  25. package/esm2022/lib/anna-core-shared-lib/pipes/annaReplaceChar.pipe.mjs +27 -0
  26. package/esm2022/lib/anna-core-shared-lib/pipes/annaTypeOfData.pipe.mjs +17 -0
  27. package/esm2022/lib/anna-core-shared-lib/services/anna-date-time-format.service.mjs +229 -0
  28. package/esm2022/lib/anna-core-shared-lib/services/anna-filter.service.mjs +1265 -0
  29. package/esm2022/lib/anna-core-shared-lib/services/anna-generic-table.service.mjs +149 -0
  30. package/esm2022/lib/anna-core-shared-lib/services/anna-global-config.service.mjs +135 -0
  31. package/esm2022/lib/anna-core-shared-lib/services/anna-number-format.service.mjs +59 -0
  32. package/esm2022/lib/anna-core-shared-lib/services/anna-persisting-filter.service.mjs +64 -0
  33. package/esm2022/lib/anna-core-shared-lib/services/anna-sort.service.mjs +176 -0
  34. package/esm2022/lib/anna-core.module.mjs +222 -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 +359 -0
  37. package/esm2022/lib/anna-generic-table-lib/components/anna-column-filters/anna-column-checkbox-filter/anna-column-checkbox-filter.component.mjs +256 -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 +186 -0
  39. package/esm2022/lib/anna-generic-table-lib/components/anna-column-filters/anna-column-slider-filter/anna-column-slider-filter.component.mjs +316 -0
  40. package/esm2022/lib/anna-generic-table-lib/components/anna-column-filters/anna-column-time-filter/anna-column-time-filter.component.mjs +295 -0
  41. package/esm2022/lib/anna-generic-table-lib/components/anna-non-editable-generic-table/anna-non-editable-generic-table.component.mjs +870 -0
  42. package/esm2022/lib/anna-generic-table-lib/components/anna-sort/anna-sort.component.mjs +68 -0
  43. package/esm2022/lib/anna-generic-table-lib/components/anna-table-virtual-scroll-viewport/anna-table-virtual-scroll-viewport.component.mjs +353 -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 +1 -1
  46. package/esm2022/lib/anna-generic-table-lib/directives/anna-virtual-table/anna-virtual-table.directive.mjs +186 -0
  47. package/{esm2020 → esm2022}/lib/anna-generic-table-lib/directives/anna-virtual-table/index.mjs +1 -1
  48. package/esm2022/public-api.mjs +59 -0
  49. package/fesm2022/annalib-anna-core.mjs +6111 -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 +5 -8
  53. package/lib/anna-core-shared-lib/components/anna-deleted-order-icon-template/anna-deleted-order-icon-template.component.d.ts +5 -8
  54. package/lib/anna-core-shared-lib/components/anna-est-icon-template/anna-est-icon-template.component.d.ts +5 -0
  55. package/lib/anna-core-shared-lib/components/anna-icon-column/anna-icon-column.component.d.ts +15 -17
  56. package/lib/anna-core-shared-lib/components/anna-live-icon-template/anna-live-icon-template.component.d.ts +5 -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 +5 -8
  59. package/lib/anna-core-shared-lib/components/anna-pay-for-performance-icon-template/anna-pay-for-performance-icon-template.component.d.ts +9 -12
  60. package/lib/anna-core-shared-lib/components/anna-rejected-icon-template/anna-rejected-icon-template.component.d.ts +5 -8
  61. package/lib/anna-core-shared-lib/constants/shared.constant.d.ts +45 -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 +128 -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 -0
  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 +7 -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 +30 -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 +8 -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 -43
  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 +175 -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 +13 -18
  98. package/public-api.d.ts +42 -41
  99. package/src/lib/anna-common-scss/_animate.scss +27 -27
  100. package/src/lib/anna-common-scss/_application-spacing.scss +7 -6
  101. package/src/lib/anna-common-scss/_bootstrap-tooltip.scss +27 -25
  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 +176 -165
  105. package/src/lib/anna-common-scss/_custom-anna-datepicker.scss +14 -14
  106. package/src/lib/anna-common-scss/_customDropdown.scss +123 -122
  107. package/src/lib/anna-common-scss/_dashboard-partials.scss +106 -104
  108. package/src/lib/anna-common-scss/_date-picker-form.scss +87 -87
  109. package/src/lib/anna-common-scss/_easy-filter.scss +138 -158
  110. package/src/lib/anna-common-scss/_edit-filter-popup.scss +70 -71
  111. package/src/lib/anna-common-scss/_filters.scss +724 -713
  112. package/src/lib/anna-common-scss/_font.scss +9 -10
  113. package/src/lib/anna-common-scss/_fonts.scss +86 -86
  114. package/src/lib/anna-common-scss/_generic-modal.scss +63 -59
  115. package/src/lib/anna-common-scss/_generic-table-common.scss +198 -203
  116. package/src/lib/anna-common-scss/_gt-table.scss +425 -434
  117. package/src/lib/anna-common-scss/_icons.scss +3 -0
  118. package/src/lib/anna-common-scss/_legend.scss +11 -11
  119. package/src/lib/anna-common-scss/_mat-button-toggle.scss +38 -38
  120. package/src/lib/anna-common-scss/_mat-menu.scss +17 -17
  121. package/src/lib/anna-common-scss/_mixins.scss +187 -188
  122. package/src/lib/anna-common-scss/_modal.scss +37 -37
  123. package/src/lib/anna-common-scss/_popup-filter-toggle-button.scss +36 -0
  124. package/src/lib/anna-common-scss/_scrollbar.scss +14 -14
  125. package/src/lib/anna-common-scss/_sort.scss +30 -30
  126. package/src/lib/anna-common-scss/_toggle.scss +86 -84
  127. package/src/lib/anna-common-scss/style.scss +1 -1
  128. package/src/lib/anna-common-scss/third-party-lib/_angular-material-mat-radio.scss +25 -21
  129. package/src/lib/anna-common-scss/third-party-lib/_anna-mat-button-toggle-group-size-lg.scss +34 -0
  130. package/src/lib/anna-common-scss/third-party-lib/_mat-autocomplete.scss +31 -28
  131. package/esm2020/lib/anna-core-shared-lib/components/anna-buyer-approval-icon-template/anna-buyer-approval-icon-template.component.mjs +0 -15
  132. package/esm2020/lib/anna-core-shared-lib/components/anna-deleted-order-icon-template/anna-deleted-order-icon-template.component.mjs +0 -14
  133. package/esm2020/lib/anna-core-shared-lib/components/anna-icon-column/anna-icon-column.component.mjs +0 -36
  134. package/esm2020/lib/anna-core-shared-lib/components/anna-live-icon-template/anna-live-icon-template.component.mjs +0 -15
  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 -14
  137. package/esm2020/lib/anna-core-shared-lib/components/anna-pay-for-performance-icon-template/anna-pay-for-performance-icon-template.component.mjs +0 -23
  138. package/esm2020/lib/anna-core-shared-lib/components/anna-rejected-icon-template/anna-rejected-icon-template.component.mjs +0 -15
  139. package/esm2020/lib/anna-core-shared-lib/constants/shared.constant.mjs +0 -43
  140. package/esm2020/lib/anna-core-shared-lib/directives/digits-only/digits-only.directive.mjs +0 -284
  141. package/esm2020/lib/anna-core-shared-lib/directives/fixed-rows-popup-table/fixed-rows-popup-table.directive.mjs +0 -43
  142. package/esm2020/lib/anna-core-shared-lib/directives/show-ellipsis-text/show-ellipsis-text.directive.mjs +0 -36
  143. package/esm2020/lib/anna-core-shared-lib/models/anna-generic-data-type.model.mjs +0 -2
  144. package/esm2020/lib/anna-core-shared-lib/models/anna-global-dropdown-config.model.mjs +0 -2
  145. package/esm2020/lib/anna-core-shared-lib/models/anna-non-editable-gt-models.mjs +0 -11
  146. package/esm2020/lib/anna-core-shared-lib/models/anna-sort.model.mjs +0 -7
  147. package/esm2020/lib/anna-core-shared-lib/pipes/annaConvertZeroOrNullOrUndefined.pipe.mjs +0 -26
  148. package/esm2020/lib/anna-core-shared-lib/pipes/annaDateFormatter.pipe.mjs +0 -22
  149. package/esm2020/lib/anna-core-shared-lib/pipes/annaFilterSearchedText.pipe.mjs +0 -53
  150. package/esm2020/lib/anna-core-shared-lib/pipes/annaReplaceChar.pipe.mjs +0 -25
  151. package/esm2020/lib/anna-core-shared-lib/pipes/annaTypeOfData.pipe.mjs +0 -16
  152. package/esm2020/lib/anna-core-shared-lib/services/anna-date-time-format.service.mjs +0 -208
  153. package/esm2020/lib/anna-core-shared-lib/services/anna-filter.service.mjs +0 -1145
  154. package/esm2020/lib/anna-core-shared-lib/services/anna-generic-table.service.mjs +0 -151
  155. package/esm2020/lib/anna-core-shared-lib/services/anna-global-config.service.mjs +0 -132
  156. package/esm2020/lib/anna-core-shared-lib/services/anna-number-format.service.mjs +0 -53
  157. package/esm2020/lib/anna-core-shared-lib/services/anna-persisting-filter.service.mjs +0 -66
  158. package/esm2020/lib/anna-core-shared-lib/services/anna-sort.service.mjs +0 -175
  159. package/esm2020/lib/anna-core.module.mjs +0 -213
  160. package/esm2020/lib/anna-dropdown-lib/components/anna-calendar-filter/anna-calendar-filter.component.mjs +0 -151
  161. package/esm2020/lib/anna-dropdown-lib/components/anna-week-calendar-filter/anna-week-calendar-filter.component.mjs +0 -364
  162. package/esm2020/lib/anna-generic-table-lib/components/anna-column-filters/anna-column-checkbox-filter/anna-column-checkbox-filter.component.mjs +0 -237
  163. package/esm2020/lib/anna-generic-table-lib/components/anna-column-filters/anna-column-date-range-filter/anna-column-date-range-filter.component.mjs +0 -180
  164. package/esm2020/lib/anna-generic-table-lib/components/anna-column-filters/anna-column-slider-filter/anna-column-slider-filter.component.mjs +0 -306
  165. package/esm2020/lib/anna-generic-table-lib/components/anna-column-filters/anna-column-time-filter/anna-column-time-filter.component.mjs +0 -291
  166. package/esm2020/lib/anna-generic-table-lib/components/anna-non-editable-generic-table/anna-non-editable-generic-table.component.mjs +0 -781
  167. package/esm2020/lib/anna-generic-table-lib/components/anna-sort/anna-sort.component.mjs +0 -64
  168. package/esm2020/lib/anna-generic-table-lib/components/anna-table-virtual-scroll-viewport/anna-table-virtual-scroll-viewport.component.mjs +0 -357
  169. package/esm2020/lib/anna-generic-table-lib/directives/anna-fixed-row-size-table-virtual-scroll-strategy/anna-fixed-row-size-table-virtual-scroll-strategy.directive.mjs +0 -189
  170. package/esm2020/lib/anna-generic-table-lib/directives/anna-virtual-table/anna-virtual-table.directive.mjs +0 -178
  171. package/esm2020/public-api.mjs +0 -57
  172. package/fesm2015/annalib-anna-core.mjs +0 -5782
  173. package/fesm2015/annalib-anna-core.mjs.map +0 -1
  174. package/fesm2020/annalib-anna-core.mjs +0 -5774
  175. package/fesm2020/annalib-anna-core.mjs.map +0 -1
@@ -0,0 +1,160 @@
1
+ // Angular import statements
2
+ import { NgClass, NgIf, TitleCasePipe } from "@angular/common";
3
+ import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output, } from "@angular/core";
4
+ import { FormsModule } from "@angular/forms";
5
+ import { NgbInputDatepicker } from "@ng-bootstrap/ng-bootstrap";
6
+ import dayjs from "dayjs";
7
+ import { AnnaDateTimeFormatService } from "../../../anna-core-shared-lib/services/anna-date-time-format.service";
8
+ import * as i0 from "@angular/core";
9
+ import * as i1 from "../../../anna-core-shared-lib/services/anna-date-time-format.service";
10
+ import * as i2 from "@angular/forms";
11
+ export class AnnaCalendarFilterComponent {
12
+ constructor(annaTimeService) {
13
+ this.annaTimeService = annaTimeService;
14
+ this.autoClose = "outside";
15
+ this.showLabel = true;
16
+ this.dateFormat = "MM/DD/YYYY";
17
+ this.placeholder = "MM/DD/YYYY";
18
+ this.disabled = false;
19
+ this.selectedDate = new EventEmitter();
20
+ this.showFooterTemplate = false;
21
+ this.placement = ["top-start", "left", "bottom-start", "auto"];
22
+ this.apply = new EventEmitter();
23
+ this.cancel = new EventEmitter();
24
+ this.disableApplyBtn = false;
25
+ this.dateToBeShownInInput = "";
26
+ this.disableFunction = (date) => false;
27
+ }
28
+ ngOnChanges(changes) {
29
+ this.setStartAndEndDate();
30
+ this.setInputText();
31
+ }
32
+ setStartAndEndDate() {
33
+ this.fromDate = this.selectedFromDate;
34
+ this.toDate = this.selectedToDate;
35
+ }
36
+ ngOnInit() {
37
+ this.disableApplyBtn = true;
38
+ // this.fromDate = this.selectedFromDate;
39
+ // this.toDate = this.selectedToDate;
40
+ // this.setInputText();
41
+ }
42
+ onDateSelection(date) {
43
+ if (!this.fromDate && !this.toDate) {
44
+ this.fromDate = date;
45
+ }
46
+ else if (this.fromDate && !this.toDate && (date.after(this.fromDate) || date.equals(this.fromDate))) {
47
+ const isDisabledDatePresent = this.checkIfDisabledDateSelectedInRange(date);
48
+ this.toDate = isDisabledDatePresent ? null : date;
49
+ }
50
+ else {
51
+ this.toDate = null;
52
+ this.fromDate = date;
53
+ }
54
+ this.selectedDate.emit({ fromDate: this.fromDate, toDate: this.toDate });
55
+ this.disableCalendarApplyBtn();
56
+ this.setInputText();
57
+ }
58
+ checkIfDisabledDateSelectedInRange(date) {
59
+ let dayJsStartDate = dayjs(this.annaTimeService.convertNgbDateToMomentInSpecificFormat(this.fromDate, this.dateFormat), this.dateFormat);
60
+ const dayJsEndDate = dayjs(this.annaTimeService.convertNgbDateToMomentInSpecificFormat(date, this.dateFormat), this.dateFormat);
61
+ while (!dayJsStartDate.isSame(dayJsEndDate)) {
62
+ if (this.disableFunction(this.annaTimeService.convertToNgbDate(dayJsStartDate.format(this.dateFormat), this.dateFormat))) {
63
+ return true;
64
+ }
65
+ dayJsStartDate = dayJsStartDate.add(1, "day");
66
+ }
67
+ return false;
68
+ }
69
+ isHovered(date) {
70
+ return (this.fromDate &&
71
+ !this.toDate &&
72
+ this.hoveredDate &&
73
+ date.after(this.fromDate) &&
74
+ date.before(this.hoveredDate));
75
+ }
76
+ isInside(date) {
77
+ return this.toDate && date.after(this.fromDate) && date.before(this.toDate);
78
+ }
79
+ isRange(date) {
80
+ return (date.equals(this.fromDate) ||
81
+ (this.toDate && date.equals(this.toDate)) ||
82
+ this.isInside(date) ||
83
+ this.isHovered(date));
84
+ }
85
+ cancelSelection() {
86
+ this.cancel.emit();
87
+ }
88
+ applySelection() {
89
+ if (this.fromDate && this.toDate) {
90
+ const dateObj = { fromDate: this.fromDate, toDate: this.toDate };
91
+ this.apply.emit(dateObj);
92
+ }
93
+ }
94
+ disableCalendarApplyBtn() {
95
+ this.disableApplyBtn = !(this.fromDate && this.toDate);
96
+ }
97
+ setInputText() {
98
+ if (this.fromDate && this.toDate) {
99
+ // eslint-disable-next-line max-len
100
+ this.dateToBeShownInInput = `${this.annaTimeService.convertNgbDateToMomentInSpecificFormat(this.fromDate, this.dateFormat)} - ${this.annaTimeService.convertNgbDateToMomentInSpecificFormat(this.toDate, this.dateFormat)}`;
101
+ }
102
+ else if (this.fromDate) {
103
+ // eslint-disable-next-line max-len
104
+ this.dateToBeShownInInput = `${this.annaTimeService.convertNgbDateToMomentInSpecificFormat(this.fromDate, this.dateFormat)}`;
105
+ }
106
+ else {
107
+ this.dateToBeShownInInput = null;
108
+ }
109
+ }
110
+ datepickerClosed() {
111
+ // Required for Pending ec order
112
+ if (this.showFooterTemplate) {
113
+ this.selectedFromDate = null;
114
+ this.fromDate = null;
115
+ this.selectedToDate = null;
116
+ this.toDate = null;
117
+ this.setInputText();
118
+ this.disableApplyBtn = true;
119
+ }
120
+ }
121
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AnnaCalendarFilterComponent, deps: [{ token: i1.AnnaDateTimeFormatService }], target: i0.ɵɵFactoryTarget.Component }); }
122
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: AnnaCalendarFilterComponent, isStandalone: true, selector: "anna-core-calendar-filter-lib", inputs: { maxDate: "maxDate", autoClose: "autoClose", label: "label", minDate: "minDate", showLabel: "showLabel", dateFormat: "dateFormat", placeholder: "placeholder", disabled: "disabled", selectedFromDate: "selectedFromDate", selectedToDate: "selectedToDate", disableFunction: "disableFunction", showFooterTemplate: "showFooterTemplate", placement: "placement" }, outputs: { selectedDate: "selectedDate", apply: "apply", cancel: "cancel" }, usesOnChanges: true, ngImport: i0, template: "<!-- container=\"body\"\ndatepickerClass = \"calendar-filter\" -->\n\n<p\n class=\"calendar-label\"\n *ngIf=\"showLabel\"\n>\n {{ label | titlecase }}\n</p>\n<form>\n <div class=\"padding-class\">\n <div class=\"dp-hidden position-absolute\">\n <div class=\"input-group\">\n <input\n name=\"datepicker\"\n class=\"form-control\"\n ngbDatepicker\n #datepicker=\"ngbDatepicker\"\n (dateSelect)=\"onDateSelection($event)\"\n [displayMonths]=\"1\"\n [dayTemplate]=\"t\"\n [maxDate]=\"maxDate\"\n [minDate]=\"minDate\"\n [autoClose]=\"autoClose\"\n [startDate]=\"fromDate\"\n [markDisabled]=\"disableFunction\"\n [footerTemplate]=\"footerTemplate\"\n navigation=\"select\"\n (closed)=\"datepickerClosed()\"\n [placement]=\"placement\"\n />\n <ng-template\n #t\n let-date\n let-focused=\"focused\"\n >\n <span\n class=\"custom-day\"\n [class.focused]=\"focused\"\n [class.range]=\"isRange(date)\"\n [class.faded]=\"isHovered(date) || isInside(date)\"\n (mouseenter)=\"hoveredDate = date\"\n (mouseleave)=\"hoveredDate = null\"\n >\n {{ date.day }}\n </span>\n </ng-template>\n </div>\n </div>\n <div class=\"input-group\">\n <input\n #dpFromDate\n id=\"datepicker-input\"\n class=\"form-control\"\n [placeholder]=\"placeholder\"\n readonly\n name=\"dpFromDate\"\n [value]=\"dateToBeShownInInput\"\n />\n <button\n class=\"icon-container\"\n (click)=\"datepicker.toggle()\"\n type=\"button\"\n [disabled]=\"disabled\"\n >\n <i\n class=\"mdi mdi-calendar-range\"\n *ngIf=\"!datepicker.isOpen()\"\n ></i>\n <i\n class=\"mdi mdi-check\"\n *ngIf=\"datepicker.isOpen()\"\n ></i>\n </button>\n </div>\n </div>\n</form>\n\n<ng-template #footerTemplate>\n <div\n class=\"buttons-container\"\n *ngIf=\"showFooterTemplate\"\n >\n <button\n class=\"button\"\n (click)=\"cancelSelection(); datepicker.close()\"\n >\n Cancel\n </button>\n <button\n class=\"button\"\n [ngClass]=\"{ disabled: disableApplyBtn }\"\n [disabled]=\"disableApplyBtn\"\n (click)=\"applySelection(); datepicker.close()\"\n >\n Apply\n </button>\n </div>\n</ng-template>\n", styles: [":host ::ng-deep .ngb-dp-arrow button:disabled{color:#4a4a4a;background-color:#fff;opacity:.25;cursor:not-allowed}:host ::ng-deep .ngb-dp-arrow button:disabled .ngb-dp-navigation-chevron{color:#4a4a4a}:host ::ng-deep .ngb-dp-arrow button .ngb-dp-navigation-chevron{color:#000}::ng-deep .tooltip-inner{max-height:22rem;background-color:#fff;border:1px solid white;border-radius:5px;box-shadow:0 2px 2px #0000003d,0 0 2px #0000001f;max-width:251px;width:100%;padding:0!important}::ng-deep .tooltip-inner div.radio-container{flex-wrap:wrap}::ng-deep .md-drppicker{box-shadow:unset!important}::ng-deep .available{color:#999}::ng-deep .bs-tooltip-bottom .arrow:before{border-bottom-color:#fff!important}::ng-deep .bs-tooltip-left .arrow:before{border-left-color:#fff!important}::ng-deep .tooltip.show{opacity:1}.input{text-align:left;margin:5px 10px 5px 5px;display:flex;align-items:center;width:230px;white-space:nowrap}.data{color:#000;font-weight:700;margin-left:5px;margin-right:5px}span.data{display:inline-block;text-overflow:ellipsis;white-space:pre;width:100%;overflow:hidden}.check-box{font-size:14px;cursor:pointer;position:relative;top:-1px}span.mdi-filter.active{color:#000;opacity:1!important;pointer-events:all!important}p{margin-bottom:0;line-height:initial}span.mdi-filter{color:#cbcbcb}::ng-deep .ngx-slider-pointer{top:-5px!important;width:12px!important;height:12px!important;background:#bdbdbd!important;border:1px solid #ffffff!important;box-shadow:0 1px 3px #0000004d!important;border-radius:16px!important}input:focus{outline:none}input::placeholder{color:#c8c8c8}.cancel-btn{background:#c7e1ff;color:#268bff}.apply-btn{background:#268bff;color:#fff;margin-left:.3125rem}div.radio-container{display:flex;white-space:nowrap;justify-content:space-between;background-color:#f4f4f4;border-radius:.125rem;margin:.4375rem .4375rem .25rem}div.radio-container div{flex:1;width:50%}div.radio-container div.full-width{width:100%}div.radio-container input{position:relative;top:.125rem;margin-right:.25rem}div.radio-container label{font-family:Roboto;font-size:.875rem;font-weight:400;font-stretch:normal;font-style:normal;line-height:1.29;letter-spacing:0;color:#4a4a4a;margin:0;padding-left:.125rem}div.radio-container label:first-of-type{margin-right:.188rem}div.radio-container input[type=radio]{appearance:none;display:inline-block;width:.9375rem;height:.9375rem;padding:.125rem;background-clip:content-box;border:.125rem solid #268bff;background-color:transparent;border-radius:50%}div.radio-container input[type=radio]:checked{background-color:#268bff}.checkbox-filter-buttons-container{padding:0 8px!important}.buttons-container{display:flex;margin:0px auto .4375rem;justify-content:center;padding:0 12px}.buttons-container .button{padding:0 10px;width:100%;margin:8px 0 0;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.buttons-container button:last-of-type{background-color:#268bff;color:#fff;margin-left:.5rem}.buttons-container button.disabled{background:#bdbdbd;opacity:.5;color:#4a4a4a}.button{display:inline-block;margin:8px 4px 0 8px;padding:0 16px;border-radius:4px;text-align:center;outline:none;font-family:Roboto;font-size:.75rem;font-weight:400;font-stretch:normal;font-style:normal;line-height:1.67;letter-spacing:normal;border:none;color:#268bff;background-color:#e5f1ff}.search-box{display:flex;align-items:center;color:#c8c8c8;border:1px solid #e6e6e6;border-radius:.125rem;margin:.25rem .4375rem .188rem;height:1.5rem;padding:.188rem 8px .188rem .5rem}.search-box .search-bar-close{margin-left:auto;float:right}.search-icon{margin:0 4px 0 0;font-size:1.125rem;color:#9b9b9b}.filter-icon{justify-content:right;margin-left:auto;color:#d4d4d4;color:#a1a1a1;font-size:16px;cursor:pointer}.data{margin:0 13px 0 8px;font-family:Roboto;font-size:.875rem;font-weight:400;font-stretch:normal;font-style:normal;line-height:1.86;letter-spacing:\"\";color:#4a4a4a}.search-input{font-family:Roboto;font-size:.875rem;font-weight:400;font-stretch:normal;font-style:normal;line-height:normal;letter-spacing:normal;color:#c8c8c8;width:calc(100% - 38px);margin:1px 0 1px 2px;border:none;padding:0}.check-box{color:#268bff}.tooltip-data-container{overflow-y:scroll;max-height:8rem}.searchbar{width:100%;display:flex;justify-content:flex-end;align-items:flex-end}.clear-button{opacity:.5;font-family:Roboto;font-size:.9375rem;font-weight:500;font-stretch:normal;font-style:normal;line-height:normal;letter-spacing:normal;text-decoration:underline;border:none;background-color:#fff;color:#4a4a4a;margin-left:.625rem;padding:0}.clear-button:focus{outline:none;box-shadow:none}.unchecked{color:#268bff}cdk-virtual-scroll-viewport.dropdown-data-container{max-height:12.3rem;width:100%;overflow-y:auto;overflow-x:hidden}cdk-virtual-scroll-viewport.dropdown-data-container p.input{margin-left:0}cdk-virtual-scroll-viewport.dropdown-data-container p.input span.mi{padding-left:.4375rem}cdk-virtual-scroll-viewport.dropdown-data-container p.input:hover{background-color:#ebebeb;cursor:pointer}cdk-virtual-scroll-viewport.dropdown-data-container::-webkit-scrollbar{width:.188rem}cdk-virtual-scroll-viewport.dropdown-data-container::-webkit-scrollbar-thumb{color:#d3d3d3;background:#d3d3d3}section.min-maxContainer{display:flex;justify-content:center;margin-bottom:-.125rem;margin-top:.5rem;width:100%}section.min-maxContainer input{width:30%;height:1.875rem;border:1px solid lightgray;color:gray}section.min-maxContainer span{display:inline-block;padding-left:.5rem;padding-right:.5rem;position:relative;top:.3125rem;color:#666}.time-container{width:100%;display:flex;padding:0 .75rem}.time-container input.form-control:disabled{background-color:#fff;width:2.813rem}.time-container input.numberInput:focus{box-shadow:none;border-color:#c2cfd6}.time-container .dot{color:#cbcbcb;position:relative;left:-7px;font-size:17px}.time-container div.arrow-container{flex-direction:column;display:flex;margin-top:.375rem;width:9px;height:18px;margin-right:1.1875rem}.time-container div.arrow-container i{color:#000;cursor:pointer;max-height:9px;font-size:25px;width:10px}.time-container div.arrow-container i:before{width:0;height:0;pointer-events:none;position:relative;left:-9px;top:-11px}.mdi-filter{cursor:pointer}.time-label-container{display:flex;justify-content:flex-start}.time-label-container label{margin-bottom:0;color:#4a4a4a;margin-top:.125rem;margin-left:.75rem;font-weight:700}.time-heading{color:#000;font-size:.8125rem;text-align:left;padding-left:.625rem;margin-top:.625rem;font-weight:700}.column-clear-all{width:94%;text-align:center;border:none;font-size:14px;background:none;text-decoration:underline;color:#268bff}.checkbox-container{display:flex;padding-inline:.625rem}.checkbox-container .data{text-align:left}.checkbox-container:first-of-type{margin-top:.625rem;font-weight:500}.column-clear-all{width:94%;text-align:center;border:none;background:none;text-decoration:underline;color:#268bff}.column-clear-all:disabled{opacity:.5;color:#4a4a4a;font-weight:400}.column-clear-all.align-center{text-align:center}span.mdi-filter-variant.disabled{pointer-events:none;opacity:.5}.datepicker-container{width:100%}span.mdi-filter-variant{color:#cbcbcb;cursor:pointer;font-size:.875rem}span.mdi-filter-variant.active{color:#000}p.filter-tab{font-family:Roboto;font-size:14px;font-weight:400;font-stretch:normal;font-style:normal;line-height:1.29;letter-spacing:normal;color:#1b88ff;border-radius:5px;background-color:#f4f4f4;padding-inline:8px;cursor:pointer;overflow:hidden;text-align:center;text-overflow:ellipsis}p.filter-tab.active{color:#fff;background-color:#1b88ff}button.filter-text-btn{background:#fff;text-decoration:underline;font-family:Roboto;font-size:14px;font-weight:400;font-stretch:normal;font-style:normal;line-height:normal;letter-spacing:normal;border:none;color:#268bff;margin-inline:4px;margin-top:2px}button.filter-text-btn:disabled{color:#b1b1b1;cursor:not-allowed}::ng-deep .non-edit-datepicker-tooltip .tooltip-inner{max-width:310px!important;width:283px!important;overflow-y:initial!important;padding:0!important}input.slider-text::-webkit-outer-spin-button,input.slider-text::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}input.slider-text{-moz-appearance:textfield}input.slider-text.red-border{border:1px solid #f44336!important}::ng-deep .checkbox-sort p.sort-container{margin-top:8px!important;padding-bottom:8px!important}i.mdi-close{cursor:pointer}i.mdi-close.disable-close-icon{pointer-events:none;cursor:not-allowed}input.error-border{border:1px solid #f44336!important}::ng-deep .non-edit-checkbox-tooltip .tooltip-inner{width:238px!important;padding:0!important}::ng-deep .non-edit-slider-tooltip .tooltip-inner{width:238px!important;padding:0!important}::ng-deep .non-edit-time-tooltip .tooltip-inner{width:250px!important;padding:0!important}::ng-deep .non-edit-time-tooltip.bs-tooltip-start{padding:.4rem}::ng-deep .non-edit-time-tooltip.bs-tooltip-start .tooltip-arrow{right:0;top:5px!important;width:var(--bs-tooltip-arrow-height);height:var(--bs-tooltip-arrow-width)}::ng-deep .non-edit-time-tooltip.bs-tooltip-start .tooltip-arrow:before{border-left-color:#fff;left:-1px;border-width:calc(var(--bs-tooltip-arrow-width) * .5) 0 calc(var(--bs-tooltip-arrow-width) * .5) var(--bs-tooltip-arrow-height)}::ng-deep .no-bottom-border p.sort-container{border-bottom:none!important}::ng-deep .ngx-slider-pointer-min:after{display:none}::ng-deep .ngx-slider-pointer-max:after{display:none}::ng-deep .ngx-slider span.ngx-slider-pointer{width:12px;height:12px;top:-5px;background-color:#bdbdbd}::ng-deep .ngx-slider span.ngx-slider-bar{height:3px;background:#ededed}::ng-deep .ngx-slider span.ngx-slider-selection{background:#bdbdbd}::ng-deep .ngx-slider span.ngx-slider-bubble{bottom:-22px;font-size:12px;color:#333}::ng-deep .show-min.ngx-slider span.ngx-slider-model-value{background:#fff;box-shadow:0 6px 10px #0000004d,0 2px 2px #0003}::ng-deep .show-max.ngx-slider span.ngx-slider-model-high{background:#fff;box-shadow:none}::ng-deep .ngx-slider span.ngx-slider-combined{background:#fff;box-shadow:0 6px 10px #0000004d,0 2px 2px #0003}::ng-deep .ngx-slider{top:10px!important;margin:5px 0 2px!important}::ng-deep .ngx-slider-animate{top:0!important}.sidebar-slider{margin-bottom:35px!important;margin-left:5px;margin-right:5px}.slider-placeholder{height:14px}::ng-deep .filter-calendar select.form-select:focus{border-color:#c2cfd6;box-shadow:none}::ng-deep .filter-calendar select.form-select{background-color:#fff}.no-data-case{padding-left:.4375rem!important;font-size:.875rem!important;margin-top:10px!important;cursor:pointer}.custom-column-checkbox-checked,.custom-column-checkbox-unchecked{font-size:.875rem;cursor:pointer}.custom-column-checkbox-checked{color:#268bff}.custom-column-checkbox-unchecked{color:#4a4a4a}.virtual-scroll-div{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none}div.padding-class{padding:0 12px}:host::ng-deep div.ngb-dp-arrow{width:2.4375rem!important;background-color:#fff!important}:host::ng-deep div.ngb-dp-weekday{color:#8bac2a;border-top:1px solid rgba(183,183,183,.6);margin-top:.5rem;font-family:Roboto;font-size:.8125rem;font-weight:700;font-stretch:normal;font-style:normal;line-height:2.6;letter-spacing:normal}:host::ng-deep div.ngb-dp-week{border-radius:0;background-color:#fff!important}:host::ng-deep div.ngb-dp-header{padding-top:8px!important;background-color:#fff!important}:host::ng-deep div.bg-primary{background-color:#d9e1e6!important;border-radius:.25rem}:host::ng-deep .ngb-dp-arrow-btn:focus{outline-width:0px}:host::ng-deep .right .ngb-dp-navigation-chevron,:host::ng-deep .ngb-dp-navigation-chevron{color:#000}:host::ng-deep .custom-select{border:1px solid rgba(183,183,183,.6);box-shadow:none}:host::ng-deep .btn:focus{box-shadow:none}.custom-day{text-align:center;padding:.185rem .25rem;color:#000;display:inline-block;height:2rem;width:2.2rem}.custom-day.range{background-color:#268bff!important;color:#fff!important}.custom-day:hover{background-color:#d9e1e6;border-radius:.25rem;color:#bdbdbd}:host::ng-deep div.ngb-dp-day.disabled{cursor:not-allowed}.custom-day.faded{background-color:#268bff33!important;color:#000!important;font-weight:600}:host::ng-deep div.ngb-dp-week div.ngb-dp-day.disabled .custom-day{color:#bdbdbd;opacity:50%}.buttons{display:flex;margin:0px auto .4375rem;margin-bottom:0;justify-content:center}.buttons button.btn:disabled{background:#bdbdbd;opacity:.5;color:#4a4a4a}.buttons .btn{display:inline-block;margin:8px 4px 0 8px;padding:5px 16px;text-align:center;outline:none;font-family:Roboto;font-size:.875rem;font-weight:400;font-stretch:normal;font-style:normal;line-height:1.14;letter-spacing:normal;border:none;color:#268bff;background-color:#e5f1ff}.buttons .btn:last-of-type{background-color:#268bff;color:#fff}:host::ng-deep .ngb-dp-day{font-weight:700}input#datepicker-input,button.icon-container{background:#fff;border:none}input#datepicker-input{color:#202b47;cursor:default;font-family:Roboto;font-size:14px;font-weight:400;font-stretch:normal;font-style:normal;line-height:normal;letter-spacing:normal}input#datepicker-input:focus{box-shadow:none}div.input-group{border:1px solid #b7b7b7;border-radius:2px}.calendar-label{font-family:Roboto;font-size:12px;font-weight:400;font-stretch:normal;font-style:normal;line-height:normal;letter-spacing:normal;color:#666;margin-top:7px;margin-bottom:0;text-align:left;margin-left:12px}.dp-hidden .input-group{border-bottom:none}.dp-hidden .input-group .form-control{height:29px}:host::ng-deep ngb-datepicker-navigation-select>.form-select:focus{box-shadow:none!important;border:1px solid #c2cfd6!important}:host::ng-deep .ngb-dp-day,:host::ng-deep .ngb-dp-weekday,:host::ng-deep .ngb-dp-week-number{width:2.2rem!important}:host ::ng-deep .input-group ngb-datepicker.dropdown-menu.show{margin-left:-1px!important}\n"], dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: NgbInputDatepicker, selector: "input[ngbDatepicker]", inputs: ["autoClose", "contentTemplate", "datepickerClass", "dayTemplate", "dayTemplateData", "displayMonths", "firstDayOfWeek", "footerTemplate", "markDisabled", "minDate", "maxDate", "navigation", "outsideDays", "placement", "popperOptions", "restoreFocus", "showWeekNumbers", "startDate", "container", "positionTarget", "weekdays", "disabled"], outputs: ["dateSelect", "navigate", "closed"], exportAs: ["ngbDatepicker"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "pipe", type: TitleCasePipe, name: "titlecase" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
123
+ }
124
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AnnaCalendarFilterComponent, decorators: [{
125
+ type: Component,
126
+ args: [{ selector: "anna-core-calendar-filter-lib", changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [NgIf, FormsModule, NgbInputDatepicker, NgClass, TitleCasePipe], template: "<!-- container=\"body\"\ndatepickerClass = \"calendar-filter\" -->\n\n<p\n class=\"calendar-label\"\n *ngIf=\"showLabel\"\n>\n {{ label | titlecase }}\n</p>\n<form>\n <div class=\"padding-class\">\n <div class=\"dp-hidden position-absolute\">\n <div class=\"input-group\">\n <input\n name=\"datepicker\"\n class=\"form-control\"\n ngbDatepicker\n #datepicker=\"ngbDatepicker\"\n (dateSelect)=\"onDateSelection($event)\"\n [displayMonths]=\"1\"\n [dayTemplate]=\"t\"\n [maxDate]=\"maxDate\"\n [minDate]=\"minDate\"\n [autoClose]=\"autoClose\"\n [startDate]=\"fromDate\"\n [markDisabled]=\"disableFunction\"\n [footerTemplate]=\"footerTemplate\"\n navigation=\"select\"\n (closed)=\"datepickerClosed()\"\n [placement]=\"placement\"\n />\n <ng-template\n #t\n let-date\n let-focused=\"focused\"\n >\n <span\n class=\"custom-day\"\n [class.focused]=\"focused\"\n [class.range]=\"isRange(date)\"\n [class.faded]=\"isHovered(date) || isInside(date)\"\n (mouseenter)=\"hoveredDate = date\"\n (mouseleave)=\"hoveredDate = null\"\n >\n {{ date.day }}\n </span>\n </ng-template>\n </div>\n </div>\n <div class=\"input-group\">\n <input\n #dpFromDate\n id=\"datepicker-input\"\n class=\"form-control\"\n [placeholder]=\"placeholder\"\n readonly\n name=\"dpFromDate\"\n [value]=\"dateToBeShownInInput\"\n />\n <button\n class=\"icon-container\"\n (click)=\"datepicker.toggle()\"\n type=\"button\"\n [disabled]=\"disabled\"\n >\n <i\n class=\"mdi mdi-calendar-range\"\n *ngIf=\"!datepicker.isOpen()\"\n ></i>\n <i\n class=\"mdi mdi-check\"\n *ngIf=\"datepicker.isOpen()\"\n ></i>\n </button>\n </div>\n </div>\n</form>\n\n<ng-template #footerTemplate>\n <div\n class=\"buttons-container\"\n *ngIf=\"showFooterTemplate\"\n >\n <button\n class=\"button\"\n (click)=\"cancelSelection(); datepicker.close()\"\n >\n Cancel\n </button>\n <button\n class=\"button\"\n [ngClass]=\"{ disabled: disableApplyBtn }\"\n [disabled]=\"disableApplyBtn\"\n (click)=\"applySelection(); datepicker.close()\"\n >\n Apply\n </button>\n </div>\n</ng-template>\n", styles: [":host ::ng-deep .ngb-dp-arrow button:disabled{color:#4a4a4a;background-color:#fff;opacity:.25;cursor:not-allowed}:host ::ng-deep .ngb-dp-arrow button:disabled .ngb-dp-navigation-chevron{color:#4a4a4a}:host ::ng-deep .ngb-dp-arrow button .ngb-dp-navigation-chevron{color:#000}::ng-deep .tooltip-inner{max-height:22rem;background-color:#fff;border:1px solid white;border-radius:5px;box-shadow:0 2px 2px #0000003d,0 0 2px #0000001f;max-width:251px;width:100%;padding:0!important}::ng-deep .tooltip-inner div.radio-container{flex-wrap:wrap}::ng-deep .md-drppicker{box-shadow:unset!important}::ng-deep .available{color:#999}::ng-deep .bs-tooltip-bottom .arrow:before{border-bottom-color:#fff!important}::ng-deep .bs-tooltip-left .arrow:before{border-left-color:#fff!important}::ng-deep .tooltip.show{opacity:1}.input{text-align:left;margin:5px 10px 5px 5px;display:flex;align-items:center;width:230px;white-space:nowrap}.data{color:#000;font-weight:700;margin-left:5px;margin-right:5px}span.data{display:inline-block;text-overflow:ellipsis;white-space:pre;width:100%;overflow:hidden}.check-box{font-size:14px;cursor:pointer;position:relative;top:-1px}span.mdi-filter.active{color:#000;opacity:1!important;pointer-events:all!important}p{margin-bottom:0;line-height:initial}span.mdi-filter{color:#cbcbcb}::ng-deep .ngx-slider-pointer{top:-5px!important;width:12px!important;height:12px!important;background:#bdbdbd!important;border:1px solid #ffffff!important;box-shadow:0 1px 3px #0000004d!important;border-radius:16px!important}input:focus{outline:none}input::placeholder{color:#c8c8c8}.cancel-btn{background:#c7e1ff;color:#268bff}.apply-btn{background:#268bff;color:#fff;margin-left:.3125rem}div.radio-container{display:flex;white-space:nowrap;justify-content:space-between;background-color:#f4f4f4;border-radius:.125rem;margin:.4375rem .4375rem .25rem}div.radio-container div{flex:1;width:50%}div.radio-container div.full-width{width:100%}div.radio-container input{position:relative;top:.125rem;margin-right:.25rem}div.radio-container label{font-family:Roboto;font-size:.875rem;font-weight:400;font-stretch:normal;font-style:normal;line-height:1.29;letter-spacing:0;color:#4a4a4a;margin:0;padding-left:.125rem}div.radio-container label:first-of-type{margin-right:.188rem}div.radio-container input[type=radio]{appearance:none;display:inline-block;width:.9375rem;height:.9375rem;padding:.125rem;background-clip:content-box;border:.125rem solid #268bff;background-color:transparent;border-radius:50%}div.radio-container input[type=radio]:checked{background-color:#268bff}.checkbox-filter-buttons-container{padding:0 8px!important}.buttons-container{display:flex;margin:0px auto .4375rem;justify-content:center;padding:0 12px}.buttons-container .button{padding:0 10px;width:100%;margin:8px 0 0;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.buttons-container button:last-of-type{background-color:#268bff;color:#fff;margin-left:.5rem}.buttons-container button.disabled{background:#bdbdbd;opacity:.5;color:#4a4a4a}.button{display:inline-block;margin:8px 4px 0 8px;padding:0 16px;border-radius:4px;text-align:center;outline:none;font-family:Roboto;font-size:.75rem;font-weight:400;font-stretch:normal;font-style:normal;line-height:1.67;letter-spacing:normal;border:none;color:#268bff;background-color:#e5f1ff}.search-box{display:flex;align-items:center;color:#c8c8c8;border:1px solid #e6e6e6;border-radius:.125rem;margin:.25rem .4375rem .188rem;height:1.5rem;padding:.188rem 8px .188rem .5rem}.search-box .search-bar-close{margin-left:auto;float:right}.search-icon{margin:0 4px 0 0;font-size:1.125rem;color:#9b9b9b}.filter-icon{justify-content:right;margin-left:auto;color:#d4d4d4;color:#a1a1a1;font-size:16px;cursor:pointer}.data{margin:0 13px 0 8px;font-family:Roboto;font-size:.875rem;font-weight:400;font-stretch:normal;font-style:normal;line-height:1.86;letter-spacing:\"\";color:#4a4a4a}.search-input{font-family:Roboto;font-size:.875rem;font-weight:400;font-stretch:normal;font-style:normal;line-height:normal;letter-spacing:normal;color:#c8c8c8;width:calc(100% - 38px);margin:1px 0 1px 2px;border:none;padding:0}.check-box{color:#268bff}.tooltip-data-container{overflow-y:scroll;max-height:8rem}.searchbar{width:100%;display:flex;justify-content:flex-end;align-items:flex-end}.clear-button{opacity:.5;font-family:Roboto;font-size:.9375rem;font-weight:500;font-stretch:normal;font-style:normal;line-height:normal;letter-spacing:normal;text-decoration:underline;border:none;background-color:#fff;color:#4a4a4a;margin-left:.625rem;padding:0}.clear-button:focus{outline:none;box-shadow:none}.unchecked{color:#268bff}cdk-virtual-scroll-viewport.dropdown-data-container{max-height:12.3rem;width:100%;overflow-y:auto;overflow-x:hidden}cdk-virtual-scroll-viewport.dropdown-data-container p.input{margin-left:0}cdk-virtual-scroll-viewport.dropdown-data-container p.input span.mi{padding-left:.4375rem}cdk-virtual-scroll-viewport.dropdown-data-container p.input:hover{background-color:#ebebeb;cursor:pointer}cdk-virtual-scroll-viewport.dropdown-data-container::-webkit-scrollbar{width:.188rem}cdk-virtual-scroll-viewport.dropdown-data-container::-webkit-scrollbar-thumb{color:#d3d3d3;background:#d3d3d3}section.min-maxContainer{display:flex;justify-content:center;margin-bottom:-.125rem;margin-top:.5rem;width:100%}section.min-maxContainer input{width:30%;height:1.875rem;border:1px solid lightgray;color:gray}section.min-maxContainer span{display:inline-block;padding-left:.5rem;padding-right:.5rem;position:relative;top:.3125rem;color:#666}.time-container{width:100%;display:flex;padding:0 .75rem}.time-container input.form-control:disabled{background-color:#fff;width:2.813rem}.time-container input.numberInput:focus{box-shadow:none;border-color:#c2cfd6}.time-container .dot{color:#cbcbcb;position:relative;left:-7px;font-size:17px}.time-container div.arrow-container{flex-direction:column;display:flex;margin-top:.375rem;width:9px;height:18px;margin-right:1.1875rem}.time-container div.arrow-container i{color:#000;cursor:pointer;max-height:9px;font-size:25px;width:10px}.time-container div.arrow-container i:before{width:0;height:0;pointer-events:none;position:relative;left:-9px;top:-11px}.mdi-filter{cursor:pointer}.time-label-container{display:flex;justify-content:flex-start}.time-label-container label{margin-bottom:0;color:#4a4a4a;margin-top:.125rem;margin-left:.75rem;font-weight:700}.time-heading{color:#000;font-size:.8125rem;text-align:left;padding-left:.625rem;margin-top:.625rem;font-weight:700}.column-clear-all{width:94%;text-align:center;border:none;font-size:14px;background:none;text-decoration:underline;color:#268bff}.checkbox-container{display:flex;padding-inline:.625rem}.checkbox-container .data{text-align:left}.checkbox-container:first-of-type{margin-top:.625rem;font-weight:500}.column-clear-all{width:94%;text-align:center;border:none;background:none;text-decoration:underline;color:#268bff}.column-clear-all:disabled{opacity:.5;color:#4a4a4a;font-weight:400}.column-clear-all.align-center{text-align:center}span.mdi-filter-variant.disabled{pointer-events:none;opacity:.5}.datepicker-container{width:100%}span.mdi-filter-variant{color:#cbcbcb;cursor:pointer;font-size:.875rem}span.mdi-filter-variant.active{color:#000}p.filter-tab{font-family:Roboto;font-size:14px;font-weight:400;font-stretch:normal;font-style:normal;line-height:1.29;letter-spacing:normal;color:#1b88ff;border-radius:5px;background-color:#f4f4f4;padding-inline:8px;cursor:pointer;overflow:hidden;text-align:center;text-overflow:ellipsis}p.filter-tab.active{color:#fff;background-color:#1b88ff}button.filter-text-btn{background:#fff;text-decoration:underline;font-family:Roboto;font-size:14px;font-weight:400;font-stretch:normal;font-style:normal;line-height:normal;letter-spacing:normal;border:none;color:#268bff;margin-inline:4px;margin-top:2px}button.filter-text-btn:disabled{color:#b1b1b1;cursor:not-allowed}::ng-deep .non-edit-datepicker-tooltip .tooltip-inner{max-width:310px!important;width:283px!important;overflow-y:initial!important;padding:0!important}input.slider-text::-webkit-outer-spin-button,input.slider-text::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}input.slider-text{-moz-appearance:textfield}input.slider-text.red-border{border:1px solid #f44336!important}::ng-deep .checkbox-sort p.sort-container{margin-top:8px!important;padding-bottom:8px!important}i.mdi-close{cursor:pointer}i.mdi-close.disable-close-icon{pointer-events:none;cursor:not-allowed}input.error-border{border:1px solid #f44336!important}::ng-deep .non-edit-checkbox-tooltip .tooltip-inner{width:238px!important;padding:0!important}::ng-deep .non-edit-slider-tooltip .tooltip-inner{width:238px!important;padding:0!important}::ng-deep .non-edit-time-tooltip .tooltip-inner{width:250px!important;padding:0!important}::ng-deep .non-edit-time-tooltip.bs-tooltip-start{padding:.4rem}::ng-deep .non-edit-time-tooltip.bs-tooltip-start .tooltip-arrow{right:0;top:5px!important;width:var(--bs-tooltip-arrow-height);height:var(--bs-tooltip-arrow-width)}::ng-deep .non-edit-time-tooltip.bs-tooltip-start .tooltip-arrow:before{border-left-color:#fff;left:-1px;border-width:calc(var(--bs-tooltip-arrow-width) * .5) 0 calc(var(--bs-tooltip-arrow-width) * .5) var(--bs-tooltip-arrow-height)}::ng-deep .no-bottom-border p.sort-container{border-bottom:none!important}::ng-deep .ngx-slider-pointer-min:after{display:none}::ng-deep .ngx-slider-pointer-max:after{display:none}::ng-deep .ngx-slider span.ngx-slider-pointer{width:12px;height:12px;top:-5px;background-color:#bdbdbd}::ng-deep .ngx-slider span.ngx-slider-bar{height:3px;background:#ededed}::ng-deep .ngx-slider span.ngx-slider-selection{background:#bdbdbd}::ng-deep .ngx-slider span.ngx-slider-bubble{bottom:-22px;font-size:12px;color:#333}::ng-deep .show-min.ngx-slider span.ngx-slider-model-value{background:#fff;box-shadow:0 6px 10px #0000004d,0 2px 2px #0003}::ng-deep .show-max.ngx-slider span.ngx-slider-model-high{background:#fff;box-shadow:none}::ng-deep .ngx-slider span.ngx-slider-combined{background:#fff;box-shadow:0 6px 10px #0000004d,0 2px 2px #0003}::ng-deep .ngx-slider{top:10px!important;margin:5px 0 2px!important}::ng-deep .ngx-slider-animate{top:0!important}.sidebar-slider{margin-bottom:35px!important;margin-left:5px;margin-right:5px}.slider-placeholder{height:14px}::ng-deep .filter-calendar select.form-select:focus{border-color:#c2cfd6;box-shadow:none}::ng-deep .filter-calendar select.form-select{background-color:#fff}.no-data-case{padding-left:.4375rem!important;font-size:.875rem!important;margin-top:10px!important;cursor:pointer}.custom-column-checkbox-checked,.custom-column-checkbox-unchecked{font-size:.875rem;cursor:pointer}.custom-column-checkbox-checked{color:#268bff}.custom-column-checkbox-unchecked{color:#4a4a4a}.virtual-scroll-div{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none}div.padding-class{padding:0 12px}:host::ng-deep div.ngb-dp-arrow{width:2.4375rem!important;background-color:#fff!important}:host::ng-deep div.ngb-dp-weekday{color:#8bac2a;border-top:1px solid rgba(183,183,183,.6);margin-top:.5rem;font-family:Roboto;font-size:.8125rem;font-weight:700;font-stretch:normal;font-style:normal;line-height:2.6;letter-spacing:normal}:host::ng-deep div.ngb-dp-week{border-radius:0;background-color:#fff!important}:host::ng-deep div.ngb-dp-header{padding-top:8px!important;background-color:#fff!important}:host::ng-deep div.bg-primary{background-color:#d9e1e6!important;border-radius:.25rem}:host::ng-deep .ngb-dp-arrow-btn:focus{outline-width:0px}:host::ng-deep .right .ngb-dp-navigation-chevron,:host::ng-deep .ngb-dp-navigation-chevron{color:#000}:host::ng-deep .custom-select{border:1px solid rgba(183,183,183,.6);box-shadow:none}:host::ng-deep .btn:focus{box-shadow:none}.custom-day{text-align:center;padding:.185rem .25rem;color:#000;display:inline-block;height:2rem;width:2.2rem}.custom-day.range{background-color:#268bff!important;color:#fff!important}.custom-day:hover{background-color:#d9e1e6;border-radius:.25rem;color:#bdbdbd}:host::ng-deep div.ngb-dp-day.disabled{cursor:not-allowed}.custom-day.faded{background-color:#268bff33!important;color:#000!important;font-weight:600}:host::ng-deep div.ngb-dp-week div.ngb-dp-day.disabled .custom-day{color:#bdbdbd;opacity:50%}.buttons{display:flex;margin:0px auto .4375rem;margin-bottom:0;justify-content:center}.buttons button.btn:disabled{background:#bdbdbd;opacity:.5;color:#4a4a4a}.buttons .btn{display:inline-block;margin:8px 4px 0 8px;padding:5px 16px;text-align:center;outline:none;font-family:Roboto;font-size:.875rem;font-weight:400;font-stretch:normal;font-style:normal;line-height:1.14;letter-spacing:normal;border:none;color:#268bff;background-color:#e5f1ff}.buttons .btn:last-of-type{background-color:#268bff;color:#fff}:host::ng-deep .ngb-dp-day{font-weight:700}input#datepicker-input,button.icon-container{background:#fff;border:none}input#datepicker-input{color:#202b47;cursor:default;font-family:Roboto;font-size:14px;font-weight:400;font-stretch:normal;font-style:normal;line-height:normal;letter-spacing:normal}input#datepicker-input:focus{box-shadow:none}div.input-group{border:1px solid #b7b7b7;border-radius:2px}.calendar-label{font-family:Roboto;font-size:12px;font-weight:400;font-stretch:normal;font-style:normal;line-height:normal;letter-spacing:normal;color:#666;margin-top:7px;margin-bottom:0;text-align:left;margin-left:12px}.dp-hidden .input-group{border-bottom:none}.dp-hidden .input-group .form-control{height:29px}:host::ng-deep ngb-datepicker-navigation-select>.form-select:focus{box-shadow:none!important;border:1px solid #c2cfd6!important}:host::ng-deep .ngb-dp-day,:host::ng-deep .ngb-dp-weekday,:host::ng-deep .ngb-dp-week-number{width:2.2rem!important}:host ::ng-deep .input-group ngb-datepicker.dropdown-menu.show{margin-left:-1px!important}\n"] }]
127
+ }], ctorParameters: function () { return [{ type: i1.AnnaDateTimeFormatService }]; }, propDecorators: { maxDate: [{
128
+ type: Input
129
+ }], autoClose: [{
130
+ type: Input
131
+ }], label: [{
132
+ type: Input
133
+ }], minDate: [{
134
+ type: Input
135
+ }], showLabel: [{
136
+ type: Input
137
+ }], dateFormat: [{
138
+ type: Input
139
+ }], placeholder: [{
140
+ type: Input
141
+ }], disabled: [{
142
+ type: Input
143
+ }], selectedDate: [{
144
+ type: Output
145
+ }], selectedFromDate: [{
146
+ type: Input
147
+ }], selectedToDate: [{
148
+ type: Input
149
+ }], disableFunction: [{
150
+ type: Input
151
+ }], showFooterTemplate: [{
152
+ type: Input
153
+ }], placement: [{
154
+ type: Input
155
+ }], apply: [{
156
+ type: Output
157
+ }], cancel: [{
158
+ type: Output
159
+ }] } });
160
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5uYS1jYWxlbmRhci1maWx0ZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5uYS1jb3JlL3NyYy9saWIvYW5uYS1kcm9wZG93bi1saWIvY29tcG9uZW50cy9hbm5hLWNhbGVuZGFyLWZpbHRlci9hbm5hLWNhbGVuZGFyLWZpbHRlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbm5hLWNvcmUvc3JjL2xpYi9hbm5hLWRyb3Bkb3duLWxpYi9jb21wb25lbnRzL2FubmEtY2FsZW5kYXItZmlsdGVyL2FubmEtY2FsZW5kYXItZmlsdGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLDRCQUE0QjtBQUM1QixPQUFPLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxhQUFhLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvRCxPQUFPLEVBQ0gsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUdMLE1BQU0sR0FFVCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUEwQixrQkFBa0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBRXhGLE9BQU8sS0FBSyxNQUFNLE9BQU8sQ0FBQztBQUUxQixPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxzRUFBc0UsQ0FBQzs7OztBQVVqSCxNQUFNLE9BQU8sMkJBQTJCO0lBd0JwQyxZQUFvQixlQUEwQztRQUExQyxvQkFBZSxHQUFmLGVBQWUsQ0FBMkI7UUF0QnJELGNBQVMsR0FBbUMsU0FBUyxDQUFDO1FBR3RELGNBQVMsR0FBWSxJQUFJLENBQUM7UUFDMUIsZUFBVSxHQUFXLFlBQVksQ0FBQztRQUNsQyxnQkFBVyxHQUFXLFlBQVksQ0FBQztRQUNuQyxhQUFRLEdBQVksS0FBSyxDQUFDO1FBQ3pCLGlCQUFZLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUluQyx1QkFBa0IsR0FBWSxLQUFLLENBQUM7UUFDcEMsY0FBUyxHQUFnQixDQUFDLFdBQVcsRUFBRSxNQUFNLEVBQUUsY0FBYyxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBRXRFLFVBQUssR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBQzNCLFdBQU0sR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBSXRDLG9CQUFlLEdBQVksS0FBSyxDQUFDO1FBQ2pDLHlCQUFvQixHQUFXLEVBQUUsQ0FBQztRQUc5QixJQUFJLENBQUMsZUFBZSxHQUFHLENBQUMsSUFBbUIsRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDO0lBQzFELENBQUM7SUFFRCxXQUFXLENBQUMsT0FBc0I7UUFDOUIsSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUM7UUFDMUIsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ3hCLENBQUM7SUFFRCxrQkFBa0I7UUFDZCxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQztRQUN0QyxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUM7SUFDdEMsQ0FBQztJQUVELFFBQVE7UUFDSixJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQztRQUM1Qix5Q0FBeUM7UUFDekMscUNBQXFDO1FBQ3JDLHVCQUF1QjtJQUMzQixDQUFDO0lBRUQsZUFBZSxDQUFDLElBQWE7UUFDekIsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFO1lBQ2hDLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDO1NBQ3hCO2FBQU0sSUFBSSxJQUFJLENBQUMsUUFBUSxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUU7WUFDbkcsTUFBTSxxQkFBcUIsR0FBRyxJQUFJLENBQUMsa0NBQWtDLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDNUUsSUFBSSxDQUFDLE1BQU0sR0FBRyxxQkFBcUIsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7U0FDckQ7YUFBTTtZQUNILElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDO1lBQ25CLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDO1NBQ3hCO1FBQ0QsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsRUFBRSxRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVEsRUFBRSxNQUFNLEVBQUUsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUM7UUFDekUsSUFBSSxDQUFDLHVCQUF1QixFQUFFLENBQUM7UUFDL0IsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ3hCLENBQUM7SUFFRCxrQ0FBa0MsQ0FBQyxJQUFhO1FBQzVDLElBQUksY0FBYyxHQUFHLEtBQUssQ0FDdEIsSUFBSSxDQUFDLGVBQWUsQ0FBQyxzQ0FBc0MsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsRUFDM0YsSUFBSSxDQUFDLFVBQVUsQ0FDbEIsQ0FBQztRQUNGLE1BQU0sWUFBWSxHQUFHLEtBQUssQ0FDdEIsSUFBSSxDQUFDLGVBQWUsQ0FBQyxzQ0FBc0MsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxFQUNsRixJQUFJLENBQUMsVUFBVSxDQUNsQixDQUFDO1FBRUYsT0FBTyxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLEVBQUU7WUFDekMsSUFDSSxJQUFJLENBQUMsZUFBZSxDQUNoQixJQUFJLENBQUMsZUFBZSxDQUFDLGdCQUFnQixDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FDakcsRUFDSDtnQkFDRSxPQUFPLElBQUksQ0FBQzthQUNmO1lBQ0QsY0FBYyxHQUFHLGNBQWMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDO1NBQ2pEO1FBRUQsT0FBTyxLQUFLLENBQUM7SUFDakIsQ0FBQztJQUVELFNBQVMsQ0FBQyxJQUFhO1FBQ25CLE9BQU8sQ0FDSCxJQUFJLENBQUMsUUFBUTtZQUNiLENBQUMsSUFBSSxDQUFDLE1BQU07WUFDWixJQUFJLENBQUMsV0FBVztZQUNoQixJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUM7WUFDekIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQ2hDLENBQUM7SUFDTixDQUFDO0lBRUQsUUFBUSxDQUFDLElBQWE7UUFDbEIsT0FBTyxJQUFJLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ2hGLENBQUM7SUFFRCxPQUFPLENBQUMsSUFBYTtRQUNqQixPQUFPLENBQ0gsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDO1lBQzFCLENBQUMsSUFBSSxDQUFDLE1BQU0sSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUN6QyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQztZQUNuQixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUN2QixDQUFDO0lBQ04sQ0FBQztJQUVELGVBQWU7UUFDWCxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ3ZCLENBQUM7SUFFRCxjQUFjO1FBQ1YsSUFBSSxJQUFJLENBQUMsUUFBUSxJQUFJLElBQUksQ0FBQyxNQUFNLEVBQUU7WUFDOUIsTUFBTSxPQUFPLEdBQUcsRUFBRSxRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVEsRUFBRSxNQUFNLEVBQUUsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ2pFLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1NBQzVCO0lBQ0wsQ0FBQztJQUVELHVCQUF1QjtRQUNuQixJQUFJLENBQUMsZUFBZSxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMzRCxDQUFDO0lBRUQsWUFBWTtRQUNSLElBQUksSUFBSSxDQUFDLFFBQVEsSUFBSSxJQUFJLENBQUMsTUFBTSxFQUFFO1lBQzlCLG1DQUFtQztZQUNuQyxJQUFJLENBQUMsb0JBQW9CLEdBQUcsR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLHNDQUFzQyxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLElBQUksQ0FBQyxlQUFlLENBQUMsc0NBQXNDLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQztTQUMvTjthQUFNLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRTtZQUN0QixtQ0FBbUM7WUFDbkMsSUFBSSxDQUFDLG9CQUFvQixHQUFHLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxzQ0FBc0MsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDO1NBQ2hJO2FBQU07WUFDSCxJQUFJLENBQUMsb0JBQW9CLEdBQUcsSUFBSSxDQUFDO1NBQ3BDO0lBQ0wsQ0FBQztJQUVELGdCQUFnQjtRQUNaLGdDQUFnQztRQUNoQyxJQUFJLElBQUksQ0FBQyxrQkFBa0IsRUFBRTtZQUN6QixJQUFJLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDO1lBQzdCLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDO1lBQ3JCLElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDO1lBQzNCLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDO1lBQ25CLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUNwQixJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQztTQUMvQjtJQUNMLENBQUM7K0dBaEpRLDJCQUEyQjttR0FBM0IsMkJBQTJCLHlpQkMzQnhDLHdyR0FtR0Esd2xiRDFFYyxJQUFJLDRGQUFFLFdBQVcsd2RBQUUsa0JBQWtCLHllQUFFLE9BQU8sK0VBQUUsYUFBYTs7NEZBRTlELDJCQUEyQjtrQkFSdkMsU0FBUzsrQkFDSSwrQkFBK0IsbUJBR3hCLHVCQUF1QixDQUFDLE1BQU0sY0FDbkMsSUFBSSxXQUNQLENBQUMsSUFBSSxFQUFFLFdBQVcsRUFBRSxrQkFBa0IsRUFBRSxPQUFPLEVBQUUsYUFBYSxDQUFDO2dIQUcvRCxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0ksWUFBWTtzQkFBckIsTUFBTTtnQkFDRSxnQkFBZ0I7c0JBQXhCLEtBQUs7Z0JBQ0csY0FBYztzQkFBdEIsS0FBSztnQkFDRyxlQUFlO3NCQUF2QixLQUFLO2dCQUNHLGtCQUFrQjtzQkFBMUIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUVJLEtBQUs7c0JBQWQsTUFBTTtnQkFDRyxNQUFNO3NCQUFmLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyIvLyBBbmd1bGFyIGltcG9ydCBzdGF0ZW1lbnRzXHJcbmltcG9ydCB7IE5nQ2xhc3MsIE5nSWYsIFRpdGxlQ2FzZVBpcGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uXCI7XHJcbmltcG9ydCB7XHJcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcclxuICAgIENvbXBvbmVudCxcclxuICAgIEV2ZW50RW1pdHRlcixcclxuICAgIElucHV0LFxyXG4gICAgT25DaGFuZ2VzLFxyXG4gICAgT25Jbml0LFxyXG4gICAgT3V0cHV0LFxyXG4gICAgU2ltcGxlQ2hhbmdlcyxcclxufSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xyXG5pbXBvcnQgeyBOZ2JEYXRlLCBOZ2JEYXRlU3RydWN0LCBOZ2JJbnB1dERhdGVwaWNrZXIgfSBmcm9tIFwiQG5nLWJvb3RzdHJhcC9uZy1ib290c3RyYXBcIjtcclxuaW1wb3J0IHsgUGxhY2VtZW50IH0gZnJvbSBcIkBuZy1ib290c3RyYXAvbmctYm9vdHN0cmFwL3V0aWwvcG9zaXRpb25pbmdcIjtcclxuaW1wb3J0IGRheWpzIGZyb20gXCJkYXlqc1wiO1xyXG5cclxuaW1wb3J0IHsgQW5uYURhdGVUaW1lRm9ybWF0U2VydmljZSB9IGZyb20gXCIuLi8uLi8uLi9hbm5hLWNvcmUtc2hhcmVkLWxpYi9zZXJ2aWNlcy9hbm5hLWRhdGUtdGltZS1mb3JtYXQuc2VydmljZVwiO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogXCJhbm5hLWNvcmUtY2FsZW5kYXItZmlsdGVyLWxpYlwiLFxyXG4gICAgdGVtcGxhdGVVcmw6IFwiLi9hbm5hLWNhbGVuZGFyLWZpbHRlci5jb21wb25lbnQuaHRtbFwiLFxyXG4gICAgc3R5bGVVcmxzOiBbXCIuL2FubmEtY2FsZW5kYXItZmlsdGVyLmNvbXBvbmVudC5zY3NzXCJdLFxyXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gICAgaW1wb3J0czogW05nSWYsIEZvcm1zTW9kdWxlLCBOZ2JJbnB1dERhdGVwaWNrZXIsIE5nQ2xhc3MsIFRpdGxlQ2FzZVBpcGVdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgQW5uYUNhbGVuZGFyRmlsdGVyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMge1xyXG4gICAgQElucHV0KCkgbWF4RGF0ZTogYW55O1xyXG4gICAgQElucHV0KCkgYXV0b0Nsb3NlOiBcImluc2lkZVwiIHwgXCJvdXRzaWRlXCIgfCBib29sZWFuID0gXCJvdXRzaWRlXCI7XHJcbiAgICBASW5wdXQoKSBsYWJlbDogc3RyaW5nO1xyXG4gICAgQElucHV0KCkgbWluRGF0ZTogYW55O1xyXG4gICAgQElucHV0KCkgc2hvd0xhYmVsOiBib29sZWFuID0gdHJ1ZTtcclxuICAgIEBJbnB1dCgpIGRhdGVGb3JtYXQ6IHN0cmluZyA9IFwiTU0vREQvWVlZWVwiO1xyXG4gICAgQElucHV0KCkgcGxhY2Vob2xkZXI6IHN0cmluZyA9IFwiTU0vREQvWVlZWVwiO1xyXG4gICAgQElucHV0KCkgZGlzYWJsZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICAgIEBPdXRwdXQoKSBzZWxlY3RlZERhdGUgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgICBASW5wdXQoKSBzZWxlY3RlZEZyb21EYXRlOiBhbnk7XHJcbiAgICBASW5wdXQoKSBzZWxlY3RlZFRvRGF0ZTogYW55O1xyXG4gICAgQElucHV0KCkgZGlzYWJsZUZ1bmN0aW9uOiBhbnk7XHJcbiAgICBASW5wdXQoKSBzaG93Rm9vdGVyVGVtcGxhdGU6IGJvb2xlYW4gPSBmYWxzZTtcclxuICAgIEBJbnB1dCgpIHBsYWNlbWVudDogUGxhY2VtZW50W10gPSBbXCJ0b3Atc3RhcnRcIiwgXCJsZWZ0XCIsIFwiYm90dG9tLXN0YXJ0XCIsIFwiYXV0b1wiXTtcclxuXHJcbiAgICBAT3V0cHV0KCkgYXBwbHkgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgICBAT3V0cHV0KCkgY2FuY2VsID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gICAgZnJvbURhdGU6IGFueTtcclxuICAgIHRvRGF0ZTogYW55O1xyXG4gICAgaG92ZXJlZERhdGU6IGFueTtcclxuICAgIGRpc2FibGVBcHBseUJ0bjogYm9vbGVhbiA9IGZhbHNlO1xyXG4gICAgZGF0ZVRvQmVTaG93bkluSW5wdXQ6IHN0cmluZyA9IFwiXCI7XHJcblxyXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBhbm5hVGltZVNlcnZpY2U6IEFubmFEYXRlVGltZUZvcm1hdFNlcnZpY2UpIHtcclxuICAgICAgICB0aGlzLmRpc2FibGVGdW5jdGlvbiA9IChkYXRlOiBOZ2JEYXRlU3RydWN0KSA9PiBmYWxzZTtcclxuICAgIH1cclxuXHJcbiAgICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5zZXRTdGFydEFuZEVuZERhdGUoKTtcclxuICAgICAgICB0aGlzLnNldElucHV0VGV4dCgpO1xyXG4gICAgfVxyXG5cclxuICAgIHNldFN0YXJ0QW5kRW5kRGF0ZSgpIHtcclxuICAgICAgICB0aGlzLmZyb21EYXRlID0gdGhpcy5zZWxlY3RlZEZyb21EYXRlO1xyXG4gICAgICAgIHRoaXMudG9EYXRlID0gdGhpcy5zZWxlY3RlZFRvRGF0ZTtcclxuICAgIH1cclxuXHJcbiAgICBuZ09uSW5pdCgpIHtcclxuICAgICAgICB0aGlzLmRpc2FibGVBcHBseUJ0biA9IHRydWU7XHJcbiAgICAgICAgLy8gdGhpcy5mcm9tRGF0ZSA9IHRoaXMuc2VsZWN0ZWRGcm9tRGF0ZTtcclxuICAgICAgICAvLyB0aGlzLnRvRGF0ZSA9IHRoaXMuc2VsZWN0ZWRUb0RhdGU7XHJcbiAgICAgICAgLy8gdGhpcy5zZXRJbnB1dFRleHQoKTtcclxuICAgIH1cclxuXHJcbiAgICBvbkRhdGVTZWxlY3Rpb24oZGF0ZTogTmdiRGF0ZSkge1xyXG4gICAgICAgIGlmICghdGhpcy5mcm9tRGF0ZSAmJiAhdGhpcy50b0RhdGUpIHtcclxuICAgICAgICAgICAgdGhpcy5mcm9tRGF0ZSA9IGRhdGU7XHJcbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLmZyb21EYXRlICYmICF0aGlzLnRvRGF0ZSAmJiAoZGF0ZS5hZnRlcih0aGlzLmZyb21EYXRlKSB8fCBkYXRlLmVxdWFscyh0aGlzLmZyb21EYXRlKSkpIHtcclxuICAgICAgICAgICAgY29uc3QgaXNEaXNhYmxlZERhdGVQcmVzZW50ID0gdGhpcy5jaGVja0lmRGlzYWJsZWREYXRlU2VsZWN0ZWRJblJhbmdlKGRhdGUpO1xyXG4gICAgICAgICAgICB0aGlzLnRvRGF0ZSA9IGlzRGlzYWJsZWREYXRlUHJlc2VudCA/IG51bGwgOiBkYXRlO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMudG9EYXRlID0gbnVsbDtcclxuICAgICAgICAgICAgdGhpcy5mcm9tRGF0ZSA9IGRhdGU7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuc2VsZWN0ZWREYXRlLmVtaXQoeyBmcm9tRGF0ZTogdGhpcy5mcm9tRGF0ZSwgdG9EYXRlOiB0aGlzLnRvRGF0ZSB9KTtcclxuICAgICAgICB0aGlzLmRpc2FibGVDYWxlbmRhckFwcGx5QnRuKCk7XHJcbiAgICAgICAgdGhpcy5zZXRJbnB1dFRleHQoKTtcclxuICAgIH1cclxuXHJcbiAgICBjaGVja0lmRGlzYWJsZWREYXRlU2VsZWN0ZWRJblJhbmdlKGRhdGU6IE5nYkRhdGUpIHtcclxuICAgICAgICBsZXQgZGF5SnNTdGFydERhdGUgPSBkYXlqcyhcclxuICAgICAgICAgICAgdGhpcy5hbm5hVGltZVNlcnZpY2UuY29udmVydE5nYkRhdGVUb01vbWVudEluU3BlY2lmaWNGb3JtYXQodGhpcy5mcm9tRGF0ZSwgdGhpcy5kYXRlRm9ybWF0KSxcclxuICAgICAgICAgICAgdGhpcy5kYXRlRm9ybWF0LFxyXG4gICAgICAgICk7XHJcbiAgICAgICAgY29uc3QgZGF5SnNFbmREYXRlID0gZGF5anMoXHJcbiAgICAgICAgICAgIHRoaXMuYW5uYVRpbWVTZXJ2aWNlLmNvbnZlcnROZ2JEYXRlVG9Nb21lbnRJblNwZWNpZmljRm9ybWF0KGRhdGUsIHRoaXMuZGF0ZUZvcm1hdCksXHJcbiAgICAgICAgICAgIHRoaXMuZGF0ZUZvcm1hdCxcclxuICAgICAgICApO1xyXG5cclxuICAgICAgICB3aGlsZSAoIWRheUpzU3RhcnREYXRlLmlzU2FtZShkYXlKc0VuZERhdGUpKSB7XHJcbiAgICAgICAgICAgIGlmIChcclxuICAgICAgICAgICAgICAgIHRoaXMuZGlzYWJsZUZ1bmN0aW9uKFxyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuYW5uYVRpbWVTZXJ2aWNlLmNvbnZlcnRUb05nYkRhdGUoZGF5SnNTdGFydERhdGUuZm9ybWF0KHRoaXMuZGF0ZUZvcm1hdCksIHRoaXMuZGF0ZUZvcm1hdCksXHJcbiAgICAgICAgICAgICAgICApXHJcbiAgICAgICAgICAgICkge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZGF5SnNTdGFydERhdGUgPSBkYXlKc1N0YXJ0RGF0ZS5hZGQoMSwgXCJkYXlcIik7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcblxyXG4gICAgaXNIb3ZlcmVkKGRhdGU6IE5nYkRhdGUpIHtcclxuICAgICAgICByZXR1cm4gKFxyXG4gICAgICAgICAgICB0aGlzLmZyb21EYXRlICYmXHJcbiAgICAgICAgICAgICF0aGlzLnRvRGF0ZSAmJlxyXG4gICAgICAgICAgICB0aGlzLmhvdmVyZWREYXRlICYmXHJcbiAgICAgICAgICAgIGRhdGUuYWZ0ZXIodGhpcy5mcm9tRGF0ZSkgJiZcclxuICAgICAgICAgICAgZGF0ZS5iZWZvcmUodGhpcy5ob3ZlcmVkRGF0ZSlcclxuICAgICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIGlzSW5zaWRlKGRhdGU6IE5nYkRhdGUpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy50b0RhdGUgJiYgZGF0ZS5hZnRlcih0aGlzLmZyb21EYXRlKSAmJiBkYXRlLmJlZm9yZSh0aGlzLnRvRGF0ZSk7XHJcbiAgICB9XHJcblxyXG4gICAgaXNSYW5nZShkYXRlOiBOZ2JEYXRlKSB7XHJcbiAgICAgICAgcmV0dXJuIChcclxuICAgICAgICAgICAgZGF0ZS5lcXVhbHModGhpcy5mcm9tRGF0ZSkgfHxcclxuICAgICAgICAgICAgKHRoaXMudG9EYXRlICYmIGRhdGUuZXF1YWxzKHRoaXMudG9EYXRlKSkgfHxcclxuICAgICAgICAgICAgdGhpcy5pc0luc2lkZShkYXRlKSB8fFxyXG4gICAgICAgICAgICB0aGlzLmlzSG92ZXJlZChkYXRlKVxyXG4gICAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgY2FuY2VsU2VsZWN0aW9uKCkge1xyXG4gICAgICAgIHRoaXMuY2FuY2VsLmVtaXQoKTtcclxuICAgIH1cclxuXHJcbiAgICBhcHBseVNlbGVjdGlvbigpIHtcclxuICAgICAgICBpZiAodGhpcy5mcm9tRGF0ZSAmJiB0aGlzLnRvRGF0ZSkge1xyXG4gICAgICAgICAgICBjb25zdCBkYXRlT2JqID0geyBmcm9tRGF0ZTogdGhpcy5mcm9tRGF0ZSwgdG9EYXRlOiB0aGlzLnRvRGF0ZSB9O1xyXG4gICAgICAgICAgICB0aGlzLmFwcGx5LmVtaXQoZGF0ZU9iaik7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGRpc2FibGVDYWxlbmRhckFwcGx5QnRuKCkge1xyXG4gICAgICAgIHRoaXMuZGlzYWJsZUFwcGx5QnRuID0gISh0aGlzLmZyb21EYXRlICYmIHRoaXMudG9EYXRlKTtcclxuICAgIH1cclxuXHJcbiAgICBzZXRJbnB1dFRleHQoKSB7XHJcbiAgICAgICAgaWYgKHRoaXMuZnJvbURhdGUgJiYgdGhpcy50b0RhdGUpIHtcclxuICAgICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG1heC1sZW5cclxuICAgICAgICAgICAgdGhpcy5kYXRlVG9CZVNob3duSW5JbnB1dCA9IGAke3RoaXMuYW5uYVRpbWVTZXJ2aWNlLmNvbnZlcnROZ2JEYXRlVG9Nb21lbnRJblNwZWNpZmljRm9ybWF0KHRoaXMuZnJvbURhdGUsIHRoaXMuZGF0ZUZvcm1hdCl9IC0gJHt0aGlzLmFubmFUaW1lU2VydmljZS5jb252ZXJ0TmdiRGF0ZVRvTW9tZW50SW5TcGVjaWZpY0Zvcm1hdCh0aGlzLnRvRGF0ZSwgdGhpcy5kYXRlRm9ybWF0KX1gO1xyXG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy5mcm9tRGF0ZSkge1xyXG4gICAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbWF4LWxlblxyXG4gICAgICAgICAgICB0aGlzLmRhdGVUb0JlU2hvd25JbklucHV0ID0gYCR7dGhpcy5hbm5hVGltZVNlcnZpY2UuY29udmVydE5nYkRhdGVUb01vbWVudEluU3BlY2lmaWNGb3JtYXQodGhpcy5mcm9tRGF0ZSwgdGhpcy5kYXRlRm9ybWF0KX1gO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMuZGF0ZVRvQmVTaG93bkluSW5wdXQgPSBudWxsO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBkYXRlcGlja2VyQ2xvc2VkKCkge1xyXG4gICAgICAgIC8vIFJlcXVpcmVkIGZvciBQZW5kaW5nIGVjIG9yZGVyXHJcbiAgICAgICAgaWYgKHRoaXMuc2hvd0Zvb3RlclRlbXBsYXRlKSB7XHJcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRGcm9tRGF0ZSA9IG51bGw7XHJcbiAgICAgICAgICAgIHRoaXMuZnJvbURhdGUgPSBudWxsO1xyXG4gICAgICAgICAgICB0aGlzLnNlbGVjdGVkVG9EYXRlID0gbnVsbDtcclxuICAgICAgICAgICAgdGhpcy50b0RhdGUgPSBudWxsO1xyXG4gICAgICAgICAgICB0aGlzLnNldElucHV0VGV4dCgpO1xyXG4gICAgICAgICAgICB0aGlzLmRpc2FibGVBcHBseUJ0biA9IHRydWU7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcbiIsIjwhLS0gY29udGFpbmVyPVwiYm9keVwiXG5kYXRlcGlja2VyQ2xhc3MgPSBcImNhbGVuZGFyLWZpbHRlclwiIC0tPlxuXG48cFxuICAgIGNsYXNzPVwiY2FsZW5kYXItbGFiZWxcIlxuICAgICpuZ0lmPVwic2hvd0xhYmVsXCJcbj5cbiAgICB7eyBsYWJlbCB8IHRpdGxlY2FzZSB9fVxuPC9wPlxuPGZvcm0+XG4gICAgPGRpdiBjbGFzcz1cInBhZGRpbmctY2xhc3NcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImRwLWhpZGRlbiBwb3NpdGlvbi1hYnNvbHV0ZVwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImlucHV0LWdyb3VwXCI+XG4gICAgICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgICAgIG5hbWU9XCJkYXRlcGlja2VyXCJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxuICAgICAgICAgICAgICAgICAgICBuZ2JEYXRlcGlja2VyXG4gICAgICAgICAgICAgICAgICAgICNkYXRlcGlja2VyPVwibmdiRGF0ZXBpY2tlclwiXG4gICAgICAgICAgICAgICAgICAgIChkYXRlU2VsZWN0KT1cIm9uRGF0ZVNlbGVjdGlvbigkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAgICAgW2Rpc3BsYXlNb250aHNdPVwiMVwiXG4gICAgICAgICAgICAgICAgICAgIFtkYXlUZW1wbGF0ZV09XCJ0XCJcbiAgICAgICAgICAgICAgICAgICAgW21heERhdGVdPVwibWF4RGF0ZVwiXG4gICAgICAgICAgICAgICAgICAgIFttaW5EYXRlXT1cIm1pbkRhdGVcIlxuICAgICAgICAgICAgICAgICAgICBbYXV0b0Nsb3NlXT1cImF1dG9DbG9zZVwiXG4gICAgICAgICAgICAgICAgICAgIFtzdGFydERhdGVdPVwiZnJvbURhdGVcIlxuICAgICAgICAgICAgICAgICAgICBbbWFya0Rpc2FibGVkXT1cImRpc2FibGVGdW5jdGlvblwiXG4gICAgICAgICAgICAgICAgICAgIFtmb290ZXJUZW1wbGF0ZV09XCJmb290ZXJUZW1wbGF0ZVwiXG4gICAgICAgICAgICAgICAgICAgIG5hdmlnYXRpb249XCJzZWxlY3RcIlxuICAgICAgICAgICAgICAgICAgICAoY2xvc2VkKT1cImRhdGVwaWNrZXJDbG9zZWQoKVwiXG4gICAgICAgICAgICAgICAgICAgIFtwbGFjZW1lbnRdPVwicGxhY2VtZW50XCJcbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZVxuICAgICAgICAgICAgICAgICAgICAjdFxuICAgICAgICAgICAgICAgICAgICBsZXQtZGF0ZVxuICAgICAgICAgICAgICAgICAgICBsZXQtZm9jdXNlZD1cImZvY3VzZWRcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiY3VzdG9tLWRheVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbY2xhc3MuZm9jdXNlZF09XCJmb2N1c2VkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtjbGFzcy5yYW5nZV09XCJpc1JhbmdlKGRhdGUpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtjbGFzcy5mYWRlZF09XCJpc0hvdmVyZWQoZGF0ZSkgfHwgaXNJbnNpZGUoZGF0ZSlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgKG1vdXNlZW50ZXIpPVwiaG92ZXJlZERhdGUgPSBkYXRlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIChtb3VzZWxlYXZlKT1cImhvdmVyZWREYXRlID0gbnVsbFwiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIHt7IGRhdGUuZGF5IH19XG4gICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtZ3JvdXBcIj5cbiAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgICNkcEZyb21EYXRlXG4gICAgICAgICAgICAgICAgaWQ9XCJkYXRlcGlja2VyLWlucHV0XCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiXG4gICAgICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyXCJcbiAgICAgICAgICAgICAgICByZWFkb25seVxuICAgICAgICAgICAgICAgIG5hbWU9XCJkcEZyb21EYXRlXCJcbiAgICAgICAgICAgICAgICBbdmFsdWVdPVwiZGF0ZVRvQmVTaG93bkluSW5wdXRcIlxuICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICBjbGFzcz1cImljb24tY29udGFpbmVyXCJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwiZGF0ZXBpY2tlci50b2dnbGUoKVwiXG4gICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8aVxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cIm1kaSBtZGktY2FsZW5kYXItcmFuZ2VcIlxuICAgICAgICAgICAgICAgICAgICAqbmdJZj1cIiFkYXRlcGlja2VyLmlzT3BlbigpXCJcbiAgICAgICAgICAgICAgICA+PC9pPlxuICAgICAgICAgICAgICAgIDxpXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwibWRpIG1kaS1jaGVja1wiXG4gICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiZGF0ZXBpY2tlci5pc09wZW4oKVwiXG4gICAgICAgICAgICAgICAgPjwvaT5cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbjwvZm9ybT5cblxuPG5nLXRlbXBsYXRlICNmb290ZXJUZW1wbGF0ZT5cbiAgICA8ZGl2XG4gICAgICAgIGNsYXNzPVwiYnV0dG9ucy1jb250YWluZXJcIlxuICAgICAgICAqbmdJZj1cInNob3dGb290ZXJUZW1wbGF0ZVwiXG4gICAgPlxuICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICBjbGFzcz1cImJ1dHRvblwiXG4gICAgICAgICAgICAoY2xpY2spPVwiY2FuY2VsU2VsZWN0aW9uKCk7IGRhdGVwaWNrZXIuY2xvc2UoKVwiXG4gICAgICAgID5cbiAgICAgICAgICAgIENhbmNlbFxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgY2xhc3M9XCJidXR0b25cIlxuICAgICAgICAgICAgW25nQ2xhc3NdPVwieyBkaXNhYmxlZDogZGlzYWJsZUFwcGx5QnRuIH1cIlxuICAgICAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVBcHBseUJ0blwiXG4gICAgICAgICAgICAoY2xpY2spPVwiYXBwbHlTZWxlY3Rpb24oKTsgZGF0ZXBpY2tlci5jbG9zZSgpXCJcbiAgICAgICAgPlxuICAgICAgICAgICAgQXBwbHlcbiAgICAgICAgPC9idXR0b24+XG4gICAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuIl19