mis-crystal-design-system 14.0.61 → 14.0.62-dayjs

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 (110) hide show
  1. package/assets/images/close.svg +5 -0
  2. package/async-search-dropdown/async-dropdown.component.d.ts +2 -0
  3. package/datepicker_v2/tz-dp-container/tz-dp-container.component.d.ts +16 -1
  4. package/daterangepicker_v2/tz-drp-container/tz-drp-container.component.d.ts +1 -1
  5. package/dropdown/dropdown.component.d.ts +2 -1
  6. package/dynamic-form/dynamic-form.component.d.ts +0 -1
  7. package/esm2020/async-search-dropdown/async-dropdown.component.mjs +27 -22
  8. package/esm2020/checkbox/checkbox.component.mjs +3 -3
  9. package/esm2020/datepicker_v2/tz-dp-container/tz-dp-container.component.mjs +262 -76
  10. package/esm2020/daterangepicker_v2/models/drp-config.model.mjs +1 -1
  11. package/esm2020/daterangepicker_v2/tz-drp-container/tz-drp-container.component.mjs +44 -36
  12. package/esm2020/dropdown/dropdown.component.mjs +12 -8
  13. package/esm2020/dynamic-form/dynamic-form.component.mjs +17 -9
  14. package/esm2020/filter/animations/slideFromRight.mjs +12 -0
  15. package/esm2020/filter/filter-panel/filter-panel.component.mjs +403 -0
  16. package/esm2020/filter/filters.module.mjs +66 -0
  17. package/esm2020/filter/has-value.pipe.mjs +31 -0
  18. package/esm2020/filter/index.mjs +2 -0
  19. package/esm2020/filter/mis-crystal-design-system-filter.mjs +5 -0
  20. package/esm2020/filter/public_api.mjs +4 -0
  21. package/esm2020/multi-select-dropdown/multi-select-dropdown.component.mjs +20 -15
  22. package/esm2020/nested-multi-select-dropdown/nested-multi-select-dropdown.component.mjs +22 -15
  23. package/esm2020/radio-button/radio-button.component.mjs +3 -3
  24. package/esm2020/ske-loader/ske-loader.component.mjs +4 -4
  25. package/esm2020/specificdatepicker/public_api.mjs +2 -1
  26. package/esm2020/specificdatepicker/tz-sdp-container/tz-sdp-container.component.mjs +64 -47
  27. package/esm2020/table/filter/filter.component.mjs +12 -4
  28. package/esm2020/table/table.component.mjs +36 -20
  29. package/esm2020/timepicker/timepicker.component.mjs +54 -48
  30. package/esm2020/timerangepicker/public_api.mjs +1 -1
  31. package/esm2020/timerangepicker/timerangepicker.component.mjs +46 -42
  32. package/esm2020/tooltip/tooltip-container/tooltip.component.mjs +12 -11
  33. package/esm2020/tooltip/tooltip.directive.mjs +9 -3
  34. package/fesm2015/mis-crystal-design-system-async-search-dropdown.mjs +26 -21
  35. package/fesm2015/mis-crystal-design-system-async-search-dropdown.mjs.map +1 -1
  36. package/fesm2015/mis-crystal-design-system-checkbox.mjs +2 -2
  37. package/fesm2015/mis-crystal-design-system-checkbox.mjs.map +1 -1
  38. package/fesm2015/mis-crystal-design-system-datepicker_v2.mjs +285 -75
  39. package/fesm2015/mis-crystal-design-system-datepicker_v2.mjs.map +1 -1
  40. package/fesm2015/mis-crystal-design-system-daterangepicker_v2.mjs +44 -35
  41. package/fesm2015/mis-crystal-design-system-daterangepicker_v2.mjs.map +1 -1
  42. package/fesm2015/mis-crystal-design-system-dropdown.mjs +11 -7
  43. package/fesm2015/mis-crystal-design-system-dropdown.mjs.map +1 -1
  44. package/fesm2015/mis-crystal-design-system-dynamic-form.mjs +16 -7
  45. package/fesm2015/mis-crystal-design-system-dynamic-form.mjs.map +1 -1
  46. package/fesm2015/mis-crystal-design-system-filter.mjs +560 -0
  47. package/fesm2015/mis-crystal-design-system-filter.mjs.map +1 -0
  48. package/fesm2015/mis-crystal-design-system-multi-select-dropdown.mjs +19 -14
  49. package/fesm2015/mis-crystal-design-system-multi-select-dropdown.mjs.map +1 -1
  50. package/fesm2015/mis-crystal-design-system-nested-multi-select-dropdown.mjs +21 -14
  51. package/fesm2015/mis-crystal-design-system-nested-multi-select-dropdown.mjs.map +1 -1
  52. package/fesm2015/mis-crystal-design-system-radio-button.mjs +2 -2
  53. package/fesm2015/mis-crystal-design-system-radio-button.mjs.map +1 -1
  54. package/fesm2015/mis-crystal-design-system-ske-loader.mjs +3 -3
  55. package/fesm2015/mis-crystal-design-system-ske-loader.mjs.map +1 -1
  56. package/fesm2015/mis-crystal-design-system-specificdatepicker.mjs +63 -46
  57. package/fesm2015/mis-crystal-design-system-specificdatepicker.mjs.map +1 -1
  58. package/fesm2015/mis-crystal-design-system-table.mjs +54 -26
  59. package/fesm2015/mis-crystal-design-system-table.mjs.map +1 -1
  60. package/fesm2015/mis-crystal-design-system-timepicker.mjs +53 -47
  61. package/fesm2015/mis-crystal-design-system-timepicker.mjs.map +1 -1
  62. package/fesm2015/mis-crystal-design-system-timerangepicker.mjs +45 -41
  63. package/fesm2015/mis-crystal-design-system-timerangepicker.mjs.map +1 -1
  64. package/fesm2015/mis-crystal-design-system-tooltip.mjs +19 -12
  65. package/fesm2015/mis-crystal-design-system-tooltip.mjs.map +1 -1
  66. package/fesm2020/mis-crystal-design-system-async-search-dropdown.mjs +26 -21
  67. package/fesm2020/mis-crystal-design-system-async-search-dropdown.mjs.map +1 -1
  68. package/fesm2020/mis-crystal-design-system-checkbox.mjs +2 -2
  69. package/fesm2020/mis-crystal-design-system-checkbox.mjs.map +1 -1
  70. package/fesm2020/mis-crystal-design-system-datepicker_v2.mjs +261 -75
  71. package/fesm2020/mis-crystal-design-system-datepicker_v2.mjs.map +1 -1
  72. package/fesm2020/mis-crystal-design-system-daterangepicker_v2.mjs +43 -34
  73. package/fesm2020/mis-crystal-design-system-daterangepicker_v2.mjs.map +1 -1
  74. package/fesm2020/mis-crystal-design-system-dropdown.mjs +11 -7
  75. package/fesm2020/mis-crystal-design-system-dropdown.mjs.map +1 -1
  76. package/fesm2020/mis-crystal-design-system-dynamic-form.mjs +16 -7
  77. package/fesm2020/mis-crystal-design-system-dynamic-form.mjs.map +1 -1
  78. package/fesm2020/mis-crystal-design-system-filter.mjs +510 -0
  79. package/fesm2020/mis-crystal-design-system-filter.mjs.map +1 -0
  80. package/fesm2020/mis-crystal-design-system-multi-select-dropdown.mjs +19 -14
  81. package/fesm2020/mis-crystal-design-system-multi-select-dropdown.mjs.map +1 -1
  82. package/fesm2020/mis-crystal-design-system-nested-multi-select-dropdown.mjs +21 -14
  83. package/fesm2020/mis-crystal-design-system-nested-multi-select-dropdown.mjs.map +1 -1
  84. package/fesm2020/mis-crystal-design-system-radio-button.mjs +2 -2
  85. package/fesm2020/mis-crystal-design-system-radio-button.mjs.map +1 -1
  86. package/fesm2020/mis-crystal-design-system-ske-loader.mjs +3 -3
  87. package/fesm2020/mis-crystal-design-system-ske-loader.mjs.map +1 -1
  88. package/fesm2020/mis-crystal-design-system-specificdatepicker.mjs +63 -46
  89. package/fesm2020/mis-crystal-design-system-specificdatepicker.mjs.map +1 -1
  90. package/fesm2020/mis-crystal-design-system-table.mjs +50 -26
  91. package/fesm2020/mis-crystal-design-system-table.mjs.map +1 -1
  92. package/fesm2020/mis-crystal-design-system-timepicker.mjs +53 -47
  93. package/fesm2020/mis-crystal-design-system-timepicker.mjs.map +1 -1
  94. package/fesm2020/mis-crystal-design-system-timerangepicker.mjs +45 -41
  95. package/fesm2020/mis-crystal-design-system-timerangepicker.mjs.map +1 -1
  96. package/fesm2020/mis-crystal-design-system-tooltip.mjs +19 -12
  97. package/fesm2020/mis-crystal-design-system-tooltip.mjs.map +1 -1
  98. package/filter/animations/slideFromRight.d.ts +1 -0
  99. package/filter/filter-panel/filter-panel.component.d.ts +51 -0
  100. package/filter/filters.module.d.ts +18 -0
  101. package/filter/has-value.pipe.d.ts +12 -0
  102. package/filter/index.d.ts +1 -0
  103. package/filter/public_api.d.ts +4 -0
  104. package/package.json +9 -1
  105. package/specificdatepicker/public_api.d.ts +1 -1
  106. package/specificdatepicker/tz-sdp-container/tz-sdp-container.component.d.ts +1 -1
  107. package/timepicker/timepicker.component.d.ts +2 -2
  108. package/timerangepicker/public_api.d.ts +1 -0
  109. package/tooltip/tooltip-container/tooltip.component.d.ts +2 -1
  110. package/tooltip/tooltip.directive.d.ts +3 -1
@@ -1,5 +1,7 @@
1
1
  import { Component, Input, Output, EventEmitter } from "@angular/core";
2
- import moment from "moment-timezone";
2
+ import dayjs from 'dayjs';
3
+ import timezone from 'dayjs/plugin/timezone';
4
+ import utc from 'dayjs/plugin/utc';
3
5
  import * as i0 from "@angular/core";
4
6
  import * as i1 from "@angular/common";
5
7
  import * as i2 from "mis-crystal-design-system/timepicker";
@@ -9,14 +11,16 @@ function TimeRangePickerComponent_p_2_Template(rf, ctx) { if (rf & 1) {
9
11
  i0.ɵɵelementEnd();
10
12
  } }
11
13
  const _c0 = function (a0, a1) { return { "flexDirection": a0, "gap": a1 }; };
14
+ dayjs.extend(utc);
15
+ dayjs.extend(timezone);
12
16
  export class TimeRangePickerComponent {
13
17
  constructor(cdr) {
14
18
  this.cdr = cdr;
15
19
  this.inputWidth = "100px";
16
20
  this.height = "46px";
17
21
  this.timezone = "Asia/Kolkata";
18
- this.startDateEpoch = moment().tz(this.timezone).valueOf();
19
- this.endDateEpoch = moment().tz(this.timezone).valueOf();
22
+ this.startDateEpoch = dayjs().tz(this.timezone).valueOf();
23
+ this.endDateEpoch = dayjs().tz(this.timezone).valueOf();
20
24
  this.clockFormat = 12;
21
25
  this.interval = 15;
22
26
  this.showTooltip = true;
@@ -25,51 +29,51 @@ export class TimeRangePickerComponent {
25
29
  this.disableStartTime = false;
26
30
  this.disableEndTime = false;
27
31
  this.timeRangeEmitter = new EventEmitter();
28
- this.firstIntervalForStartPicker = moment().valueOf();
29
- this.firstIntervalForEndPicker = moment().valueOf();
32
+ this.firstIntervalForStartPicker = dayjs().valueOf();
33
+ this.firstIntervalForEndPicker = dayjs().valueOf();
30
34
  this.rangeValidity = true;
31
35
  this.triggerChange = true;
32
36
  }
33
37
  ngOnInit() { }
34
38
  ngOnChanges() {
35
39
  this.timeFormat = this.clockFormat === 12 ? "hh:mm a" : "HH:mm";
36
- moment.tz.setDefault(this.timezone);
37
- this.startDate = moment(this.startDateEpoch).format("DD-MM-YYYY");
38
- this.endDate = moment(this.endDateEpoch).format("DD-MM-YYYY");
39
- this.currDate = moment().format("DD-MM-YYYY");
40
+ dayjs.tz.setDefault(this.timezone);
41
+ this.startDate = dayjs(this.startDateEpoch).format("DD-MM-YYYY");
42
+ this.endDate = dayjs(this.endDateEpoch).format("DD-MM-YYYY");
43
+ this.currDate = dayjs().format("DD-MM-YYYY");
40
44
  this.setFirstIntervals();
41
45
  }
42
46
  // calculate the first interval of the picker
43
47
  setFirstIntervals() {
44
- const minutes = moment().minutes();
48
+ const minutes = dayjs().minute();
45
49
  const offset = this.interval - (minutes % this.interval);
46
50
  // start date, 22 MAY === current date, 22 MAY
47
51
  if (this.startDate === this.currDate) {
48
- const currentTime = moment().valueOf();
52
+ const currentTime = dayjs().valueOf();
49
53
  // start date, 22 MAY === current date, 22 MAY === end date, 22 MAY
50
54
  if (this.startDate === this.endDate) {
51
55
  // current time is in last interval
52
- if (currentTime >= moment(this.startDateEpoch).endOf("d").subtract(this.interval, "m").valueOf()) {
56
+ if (currentTime >= dayjs(this.startDateEpoch).endOf("d").subtract(this.interval, "m").valueOf()) {
53
57
  this.firstIntervalForStartPicker = currentTime;
54
- this.firstIntervalForEndPicker = moment(this.endDateEpoch).endOf("d").valueOf();
58
+ this.firstIntervalForEndPicker = dayjs(this.endDateEpoch).endOf("d").valueOf();
55
59
  }
56
60
  // current time isn't in last interval
57
61
  else {
58
- this.firstIntervalForStartPicker = moment().add(offset, "m").valueOf();
59
- this.firstIntervalForEndPicker = moment().add(offset, "m").add(this.interval, "m").valueOf();
62
+ this.firstIntervalForStartPicker = dayjs().add(offset, "m").valueOf();
63
+ this.firstIntervalForEndPicker = dayjs().add(offset, "m").add(this.interval, "m").valueOf();
60
64
  }
61
65
  }
62
66
  // start date, 22 MAY === current date, 22 MAY !== end date, 30 MAY
63
67
  else {
64
68
  // current time is in last interval
65
- if (currentTime >= moment(this.startDateEpoch).endOf("d").subtract(this.interval, "m").valueOf()) {
69
+ if (currentTime >= dayjs(this.startDateEpoch).endOf("d").subtract(this.interval, "m").valueOf()) {
66
70
  this.firstIntervalForStartPicker = currentTime;
67
- this.firstIntervalForEndPicker = moment(this.endDateEpoch).endOf("d").valueOf();
71
+ this.firstIntervalForEndPicker = dayjs(this.endDateEpoch).endOf("d").valueOf();
68
72
  }
69
73
  // current time isn't in last interval
70
74
  else {
71
- this.firstIntervalForStartPicker = moment().add(offset, "m").valueOf();
72
- this.firstIntervalForEndPicker = moment(this.endDateEpoch).valueOf();
75
+ this.firstIntervalForStartPicker = dayjs().add(offset, "m").valueOf();
76
+ this.firstIntervalForEndPicker = dayjs(this.endDateEpoch).valueOf();
73
77
  }
74
78
  }
75
79
  }
@@ -77,13 +81,13 @@ export class TimeRangePickerComponent {
77
81
  else {
78
82
  // start date === end Date
79
83
  if (this.startDate === this.endDate) {
80
- this.firstIntervalForStartPicker = moment(this.startDateEpoch).startOf("d").valueOf();
81
- this.firstIntervalForEndPicker = moment(this.endDateEpoch).add(this.interval, "m").valueOf();
84
+ this.firstIntervalForStartPicker = dayjs(this.startDateEpoch).startOf("d").valueOf();
85
+ this.firstIntervalForEndPicker = dayjs(this.endDateEpoch).add(this.interval, "m").valueOf();
82
86
  }
83
87
  // start date !== end date
84
88
  else {
85
- this.firstIntervalForStartPicker = moment(this.startDateEpoch).startOf("d").valueOf();
86
- this.firstIntervalForEndPicker = moment(this.startDateEpoch).startOf("d").valueOf();
89
+ this.firstIntervalForStartPicker = dayjs(this.startDateEpoch).startOf("d").valueOf();
90
+ this.firstIntervalForEndPicker = dayjs(this.startDateEpoch).startOf("d").valueOf();
87
91
  }
88
92
  }
89
93
  if (this.givenStartTime)
@@ -92,13 +96,13 @@ export class TimeRangePickerComponent {
92
96
  this.firstIntervalForEndPicker = this.givenEndTime;
93
97
  this.startTime = {
94
98
  valid: true,
95
- time: moment(this.firstIntervalForStartPicker).format(this.timeFormat),
96
- epoch: moment(this.firstIntervalForStartPicker).valueOf()
99
+ time: dayjs(this.firstIntervalForStartPicker).format(this.timeFormat),
100
+ epoch: dayjs(this.firstIntervalForStartPicker).valueOf()
97
101
  };
98
102
  this.endTime = {
99
103
  valid: true,
100
- time: moment(this.firstIntervalForEndPicker).format(this.timeFormat),
101
- epoch: moment(this.firstIntervalForEndPicker).valueOf()
104
+ time: dayjs(this.firstIntervalForEndPicker).format(this.timeFormat),
105
+ epoch: dayjs(this.firstIntervalForEndPicker).valueOf()
102
106
  };
103
107
  }
104
108
  emitTimeRange(data) {
@@ -112,16 +116,16 @@ export class TimeRangePickerComponent {
112
116
  // and the start time >= end time
113
117
  // update the first interval of end picker according to the time set in start picker
114
118
  if (this.startDate === this.endDate) {
115
- let minutes = moment(this.startTime.time, this.timeFormat).minutes();
119
+ let minutes = dayjs(this.startTime.time, this.timeFormat).minute();
116
120
  let offset = this.interval - (minutes % this.interval);
117
- this.firstIntervalForEndPicker = moment(`${this.startDate} ${this.startTime.time}`, `'DD-MM-YYYY' ${this.timeFormat}`)
121
+ this.firstIntervalForEndPicker = dayjs(`${this.startDate} ${this.startTime.time}`, `'DD-MM-YYYY' ${this.timeFormat}`)
118
122
  .add(offset, "m")
119
123
  .valueOf();
120
124
  // if the first interval == 12:00am, set it as 11:59pm
121
- const intervalAsString = moment(this.firstIntervalForEndPicker).format(this.timeFormat);
122
- const endOfDayAsString = moment(moment(`${this.startDate}`, `DD-MM-YYYY ${this.timeFormat}`).endOf("d").add(1, "m")).format(this.timeFormat);
125
+ const intervalAsString = dayjs(this.firstIntervalForEndPicker).format(this.timeFormat);
126
+ const endOfDayAsString = dayjs(dayjs(`${this.startDate}`, `DD-MM-YYYY ${this.timeFormat}`).endOf("d").add(1, "m")).format(this.timeFormat);
123
127
  if (intervalAsString === endOfDayAsString) {
124
- this.firstIntervalForEndPicker = moment(`${this.startDate} ${this.startTime.time}`, `'DD-MM-YYYY' ${this.timeFormat}`).endOf("d").valueOf();
128
+ this.firstIntervalForEndPicker = dayjs(`${this.startDate} ${this.startTime.time}`, `'DD-MM-YYYY' ${this.timeFormat}`).endOf("d").valueOf();
125
129
  }
126
130
  }
127
131
  else {
@@ -132,8 +136,8 @@ export class TimeRangePickerComponent {
132
136
  valid: validity && this.rangeValidity,
133
137
  startTime: this.startTime.time,
134
138
  endTime: this.endTime.time,
135
- startEpoch: moment(`${this.startDate} ${this.startTime.time}`, `DD-MM-YYYY ${this.timeFormat}`).valueOf(),
136
- endEpoch: moment(`${this.endDate} ${this.endTime.time}`, `DD-MM-YYYY ${this.timeFormat}`).valueOf()
139
+ startEpoch: dayjs(`${this.startDate} ${this.startTime.time}`, `DD-MM-YYYY ${this.timeFormat}`).valueOf(),
140
+ endEpoch: dayjs(`${this.endDate} ${this.endTime.time}`, `DD-MM-YYYY ${this.timeFormat}`).valueOf()
137
141
  });
138
142
  }
139
143
  this.triggerChange = !this.triggerChange;
@@ -146,15 +150,15 @@ export class TimeRangePickerComponent {
146
150
  valid: validity && this.rangeValidity,
147
151
  startTime: this.startTime.time,
148
152
  endTime: this.endTime.time,
149
- startEpoch: moment(`${this.startDate} ${this.startTime.time}`, `DD-MM-YYYY ${this.timeFormat}`).valueOf(),
150
- endEpoch: moment(`${this.endDate} ${this.endTime.time}`, `DD-MM-YYYY ${this.timeFormat}`).valueOf()
153
+ startEpoch: dayjs(`${this.startDate} ${this.startTime.time}`, `DD-MM-YYYY ${this.timeFormat}`).valueOf(),
154
+ endEpoch: dayjs(`${this.endDate} ${this.endTime.time}`, `DD-MM-YYYY ${this.timeFormat}`).valueOf()
151
155
  });
152
156
  }
153
157
  checkTimeValidity(time, date) {
154
158
  const RE12 = /^(([0][1-9]|1[0-2]):([0-5][0-9])( )?(am|pm|AM|PM))$/i;
155
159
  const RE24 = /^([01][0-9]|2[0-3]):[0-5][0-9]$/;
156
160
  const RE = this.clockFormat === 12 ? RE12 : RE24;
157
- const timeMoment = moment(`${moment(date).format("DD-MM-YYYY")} ${time}`, `'DD-MM-YYYY' ${this.timeFormat}`);
161
+ const timedayjs = dayjs(`${dayjs(date).format("DD-MM-YYYY")} ${time}`, `'DD-MM-YYYY' ${this.timeFormat}`);
158
162
  let flag = false;
159
163
  // if the first interval is set to the start of the day
160
164
  // then we don't check its validity against the current time
@@ -162,16 +166,16 @@ export class TimeRangePickerComponent {
162
166
  flag = time.match(RE) ? true : false;
163
167
  }
164
168
  else {
165
- flag = time.match(RE) && timeMoment.diff(moment(), "m") >= 0 ? true : false;
169
+ flag = time.match(RE) && timedayjs.diff(dayjs(), "m") >= 0 ? true : false;
166
170
  }
167
171
  return flag;
168
172
  }
169
173
  // validates end picker's input according to the start picker's input
170
174
  rangeValidation(validity) {
171
175
  if (validity && this.startDate === this.endDate) {
172
- const startMoment = moment(this.startTime.time, this.timeFormat);
173
- const endMoment = moment(this.endTime.time, this.timeFormat);
174
- this.rangeValidity = endMoment.diff(startMoment, "m") >= 1 ? true : false;
176
+ const startdayjs = dayjs(this.startTime.time, this.timeFormat);
177
+ const enddayjs = dayjs(this.endTime.time, this.timeFormat);
178
+ this.rangeValidity = enddayjs.diff(startdayjs, "m") >= 1 ? true : false;
175
179
  this.cdr.detectChanges();
176
180
  }
177
181
  }
@@ -230,4 +234,4 @@ TimeRangePickerComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: Ti
230
234
  }], timeRangeEmitter: [{
231
235
  type: Output
232
236
  }] }); })();
233
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGltZXJhbmdlcGlja2VyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL21pcy1jb21wb25lbnRzL3RpbWVyYW5nZXBpY2tlci90aW1lcmFuZ2VwaWNrZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vcHJvamVjdHMvbWlzLWNvbXBvbmVudHMvdGltZXJhbmdlcGlja2VyL3RpbWVyYW5nZXBpY2tlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBcUIsTUFBTSxFQUFFLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMxRixPQUFPLE1BQU0sTUFBTSxpQkFBaUIsQ0FBQzs7Ozs7SUNjbkMseUJBQStCO0lBQUEsaUJBQUM7SUFBQSxpQkFBSTs7O0FETnRDLE1BQU0sT0FBTyx3QkFBd0I7SUE2Qm5DLFlBQW9CLEdBQXNCO1FBQXRCLFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBNUJqQyxlQUFVLEdBQVcsT0FBTyxDQUFDO1FBRTdCLFdBQU0sR0FBVyxNQUFNLENBQUM7UUFDeEIsYUFBUSxHQUFXLGNBQWMsQ0FBQztRQUNsQyxtQkFBYyxHQUFXLE1BQU0sRUFBRSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDOUQsaUJBQVksR0FBVyxNQUFNLEVBQUUsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBRzVELGdCQUFXLEdBQVcsRUFBRSxDQUFDO1FBQ3pCLGFBQVEsR0FBVyxFQUFFLENBQUM7UUFDdEIsZ0JBQVcsR0FBWSxJQUFJLENBQUM7UUFDNUIsY0FBUyxHQUFlLEtBQUssQ0FBQztRQUM5QixRQUFHLEdBQVcsTUFBTSxDQUFDO1FBQ3JCLHFCQUFnQixHQUFZLEtBQUssQ0FBQztRQUNsQyxtQkFBYyxH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Qix3QkFBd0I7UUNUckMsOEJBQXdGLHdCQUFBO1FBTXBGLCtIQUFlLDhCQUEwQixJQUFDO1FBUTNDLGlCQUFpQjtRQUNsQixxRUFBb0M7UUFDcEMseUNBZUM7UUFWQywrSEFBZSw0QkFBd0IsSUFBQztRQVV6QyxpQkFBaUIsRUFBQTs7UUEvQmUsNkVBQW9EO1FBRW5GLGVBQTJCO1FBQTNCLDZDQUEyQiwwQkFBQSxtQ0FBQSxrREFBQSwwQkFBQSxzQkFBQSw4QkFBQSxvQ0FBQSxnQ0FBQSxpQ0FBQSxpQ0FBQTtRQWF6QixlQUF5QjtRQUF6Qiw4Q0FBeUI7UUFFM0IsZUFBMkI7UUFBM0IsNkNBQTJCLDBCQUFBLGlDQUFBLGdEQUFBLG9DQUFBLDBCQUFBLHNCQUFBLDhCQUFBLG9DQUFBLGdDQUFBLCtCQUFBLG9DQUFBLCtCQUFBOzt1RkRSbEIsd0JBQXdCO2NBTHBDLFNBQVM7MkJBQ0UscUJBQXFCO29FQUt0QixVQUFVO2tCQUFsQixLQUFLO1lBQ0csYUFBYTtrQkFBckIsS0FBSztZQUNHLE1BQU07a0JBQWQsS0FBSztZQUNHLFFBQVE7a0JBQWhCLEtBQUs7WUFDRyxjQUFjO2tCQUF0QixLQUFLO1lBQ0csWUFBWTtrQkFBcEIsS0FBSztZQUNHLGNBQWM7a0JBQXRCLEtBQUs7WUFDRyxZQUFZO2tCQUFwQixLQUFLO1lBQ0csV0FBVztrQkFBbkIsS0FBSztZQUNHLFFBQVE7a0JBQWhCLEtBQUs7WUFDRyxXQUFXO2tCQUFuQixLQUFLO1lBQ0csU0FBUztrQkFBakIsS0FBSztZQUNHLEdBQUc7a0JBQVgsS0FBSztZQUNHLGdCQUFnQjtrQkFBeEIsS0FBSztZQUNHLGNBQWM7a0JBQXRCLEtBQUs7WUFDSSxnQkFBZ0I7a0JBQXpCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBDaGFuZ2VEZXRlY3RvclJlZiwgT3V0cHV0LCBFdmVudEVtaXR0ZXIgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IG1vbWVudCBmcm9tIFwibW9tZW50LXRpbWV6b25lXCI7XG5pbXBvcnQgeyBJVGltZVJhbmdlLCBJVGltZSwgVERpcmVjdGlvbiB9IGZyb20gXCIuL3RpbWVyYW5nZS5uYW1lc3BhY2VcIjtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiBcIm1pcy10aW1lcmFuZ2VwaWNrZXJcIixcbiAgdGVtcGxhdGVVcmw6IFwiLi90aW1lcmFuZ2VwaWNrZXIuY29tcG9uZW50Lmh0bWxcIixcbiAgc3R5bGVVcmxzOiBbXCIuL3RpbWVyYW5nZXBpY2tlci5jb21wb25lbnQuc2Nzc1wiXVxufSlcbmV4cG9ydCBjbGFzcyBUaW1lUmFuZ2VQaWNrZXJDb21wb25lbnQge1xuICBASW5wdXQoKSBpbnB1dFdpZHRoOiBzdHJpbmcgPSBcIjEwMHB4XCI7XG4gIEBJbnB1dCgpIGRyb3Bkb3duV2lkdGg/OiBzdHJpbmc7XG4gIEBJbnB1dCgpIGhlaWdodDogc3RyaW5nID0gXCI0NnB4XCI7XG4gIEBJbnB1dCgpIHRpbWV6b25lOiBzdHJpbmcgPSBcIkFzaWEvS29sa2F0YVwiO1xuICBASW5wdXQoKSBzdGFydERhdGVFcG9jaDogbnVtYmVyID0gbW9tZW50KCkudHoodGhpcy50aW1lem9uZSkudmFsdWVPZigpO1xuICBASW5wdXQoKSBlbmREYXRlRXBvY2g6IG51bWJlciA9IG1vbWVudCgpLnR6KHRoaXMudGltZXpvbmUpLnZhbHVlT2YoKTtcbiAgQElucHV0KCkgZ2l2ZW5TdGFydFRpbWU6IG51bWJlcjtcbiAgQElucHV0KCkgZ2l2ZW5FbmRUaW1lOiBudW1iZXI7XG4gIEBJbnB1dCgpIGNsb2NrRm9ybWF0OiBudW1iZXIgPSAxMjtcbiAgQElucHV0KCkgaW50ZXJ2YWw6IG51bWJlciA9IDE1O1xuICBASW5wdXQoKSBzaG93VG9vbHRpcDogYm9vbGVhbiA9IHRydWU7XG4gIEBJbnB1dCgpIGRpcmVjdGlvbjogVERpcmVjdGlvbiA9ICdyb3cnO1xuICBASW5wdXQoKSBnYXA6IHN0cmluZyA9ICcxcmVtJztcbiAgQElucHV0KCkgZGlzYWJsZVN0YXJ0VGltZTogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSBkaXNhYmxlRW5kVGltZTogYm9vbGVhbiA9IGZhbHNlO1xuICBAT3V0cHV0KCkgdGltZVJhbmdlRW1pdHRlciA9IG5ldyBFdmVudEVtaXR0ZXI8SVRpbWVSYW5nZT4oKTtcblxuICBzdGFydERhdGUhOiBzdHJpbmc7XG4gIGVuZERhdGUhOiBzdHJpbmc7XG4gIGN1cnJEYXRlITogc3RyaW5nO1xuICB0aW1lRm9ybWF0ITogc3RyaW5nO1xuICBmaXJzdEludGVydmFsRm9yU3RhcnRQaWNrZXI6IG51bWJlciA9IG1vbWVudCgpLnZhbHVlT2YoKTtcbiAgZmlyc3RJbnRlcnZhbEZvckVuZFBpY2tlcjogbnVtYmVyID0gbW9tZW50KCkudmFsdWVPZigpO1xuICBzdGFydFRpbWUhOiBJVGltZTtcbiAgZW5kVGltZSE6IElUaW1lO1xuICByYW5nZVZhbGlkaXR5OiBib29sZWFuID0gdHJ1ZTtcbiAgdHJpZ2dlckNoYW5nZTogYm9vbGVhbiA9IHRydWU7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBjZHI6IENoYW5nZURldGVjdG9yUmVmKSB7fVxuXG4gIG5nT25Jbml0KCkge31cblxuICBuZ09uQ2hhbmdlcygpIHtcbiAgICB0aGlzLnRpbWVGb3JtYXQgPSB0aGlzLmNsb2NrRm9ybWF0ID09PSAxMiA/IFwiaGg6bW0gYVwiIDogXCJISDptbVwiO1xuICAgIG1vbWVudC50ei5zZXREZWZhdWx0KHRoaXMudGltZXpvbmUpO1xuICAgIHRoaXMuc3RhcnREYXRlID0gbW9tZW50KHRoaXMuc3RhcnREYXRlRXBvY2gpLmZvcm1hdChcIkRELU1NLVlZWVlcIik7XG4gICAgdGhpcy5lbmREYXRlID0gbW9tZW50KHRoaXMuZW5kRGF0ZUVwb2NoKS5mb3JtYXQoXCJERC1NTS1ZWVlZXCIpO1xuICAgIHRoaXMuY3VyckRhdGUgPSBtb21lbnQoKS5mb3JtYXQoXCJERC1NTS1ZWVlZXCIpO1xuICAgIHRoaXMuc2V0Rmlyc3RJbnRlcnZhbHMoKTtcbiAgfVxuXG4gIC8vIGNhbGN1bGF0ZSB0aGUgZmlyc3QgaW50ZXJ2YWwgb2YgdGhlIHBpY2tlclxuICBzZXRGaXJzdEludGVydmFscygpOiB2b2lkIHtcbiAgICBjb25zdCBtaW51dGVzID0gbW9tZW50KCkubWludXRlcygpO1xuICAgIGNvbnN0IG9mZnNldCA9IHRoaXMuaW50ZXJ2YWwgLSAobWludXRlcyAlIHRoaXMuaW50ZXJ2YWwpO1xuXG4gICAgLy8gc3RhcnQgZGF0ZSwgMjIgTUFZID09PSAgY3VycmVudCBkYXRlLCAyMiBNQVlcbiAgICBpZiggdGhpcy5zdGFydERhdGUgPT09IHRoaXMuY3VyckRhdGUgKXtcbiAgICAgIGNvbnN0IGN1cnJlbnRUaW1lID0gbW9tZW50KCkudmFsdWVPZigpO1xuXG4gICAgICAvLyBzdGFydCBkYXRlLCAyMiBNQVkgID09PSBjdXJyZW50IGRhdGUsIDIyIE1BWSA9PT0gZW5kIGRhdGUsIDIyIE1BWVxuICAgICAgaWYodGhpcy5zdGFydERhdGUgPT09IHRoaXMuZW5kRGF0ZSl7XG5cbiAgICAgICAgLy8gY3VycmVudCB0aW1lIGlzIGluIGxhc3QgaW50ZXJ2YWxcbiAgICAgICAgaWYoIGN1cnJlbnRUaW1lID49IG1vbWVudCh0aGlzLnN0YXJ0RGF0ZUVwb2NoKS5lbmRPZihcImRcIikuc3VidHJhY3QodGhpcy5pbnRlcnZhbCxcIm1cIikudmFsdWVPZigpKXtcbiAgICAgICAgICB0aGlzLmZpcnN0SW50ZXJ2YWxGb3JTdGFydFBpY2tlciA9IGN1cnJlbnRUaW1lO1xuICAgICAgICAgIHRoaXMuZmlyc3RJbnRlcnZhbEZvckVuZFBpY2tlciA9ICBtb21lbnQodGhpcy5lbmREYXRlRXBvY2gpLmVuZE9mKFwiZFwiKS52YWx1ZU9mKCk7XG4gICAgICAgIH1cbiAgICAgICAgLy8gY3VycmVudCB0aW1lIGlzbid0IGluIGxhc3QgaW50ZXJ2YWxcbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgdGhpcy5maXJzdEludGVydmFsRm9yU3RhcnRQaWNrZXIgPSBtb21lbnQoKS5hZGQob2Zmc2V0LCBcIm1cIikudmFsdWVPZigpO1xuICAgICAgICAgIHRoaXMuZmlyc3RJbnRlcnZhbEZvckVuZFBpY2tlciA9ICBtb21lbnQoKS5hZGQob2Zmc2V0LCBcIm1cIikuYWRkKHRoaXMuaW50ZXJ2YWwsIFwibVwiKS52YWx1ZU9mKCk7XG4gICAgICAgIH1cbiAgICAgIH0gXG4gICAgICAvLyBzdGFydCBkYXRlLCAyMiBNQVkgPT09IGN1cnJlbnQgZGF0ZSwgMjIgTUFZICE9PSBlbmQgZGF0ZSwgMzAgTUFZXG4gICAgICBlbHNlIHtcbiAgICAgICAgLy8gY3VycmVudCB0aW1lIGlzIGluIGxhc3QgaW50ZXJ2YWxcbiAgICAgICAgaWYoIGN1cnJlbnRUaW1lID49IG1vbWVudCh0aGlzLnN0YXJ0RGF0ZUVwb2NoKS5lbmRPZihcImRcIikuc3VidHJhY3QodGhpcy5pbnRlcnZhbCxcIm1cIikudmFsdWVPZigpKXtcbiAgICAgICAgICB0aGlzLmZpcnN0SW50ZXJ2YWxGb3JTdGFydFBpY2tlciA9IGN1cnJlbnRUaW1lO1xuICAgICAgICAgIHRoaXMuZmlyc3RJbnRlcnZhbEZvckVuZFBpY2tlciA9ICBtb21lbnQodGhpcy5lbmREYXRlRXBvY2gpLmVuZE9mKFwiZFwiKS52YWx1ZU9mKCk7XG4gICAgICAgIH1cbiAgICAgICAgLy8gY3VycmVudCB0aW1lIGlzbid0IGluIGxhc3QgaW50ZXJ2YWxcbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgdGhpcy5maXJzdEludGVydmFsRm9yU3RhcnRQaWNrZXIgPSBtb21lbnQoKS5hZGQob2Zmc2V0LCBcIm1cIikudmFsdWVPZigpO1xuICAgICAgICAgIHRoaXMuZmlyc3RJbnRlcnZhbEZvckVuZFBpY2tlciA9ICBtb21lbnQodGhpcy5lbmREYXRlRXBvY2gpLnZhbHVlT2YoKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICAvLyBzdGFydCBkYXRlLCAzMCBNQVkgIT09IGN1cnJlbnQgZGF0ZSwgMjIgTUFZXG4gICAgZWxzZSB7XG4gICAgICAvLyBzdGFydCBkYXRlID09PSBlbmQgRGF0ZVxuICAgICAgaWYoIHRoaXMuc3RhcnREYXRlID09PSB0aGlzLmVuZERhdGUpe1xuICAgICAgICB0aGlzLmZpcnN0SW50ZXJ2YWxGb3JTdGFydFBpY2tlciA9IG1vbWVudCh0aGlzLnN0YXJ0RGF0ZUVwb2NoKS5zdGFydE9mKFwiZFwiKS52YWx1ZU9mKCk7XG4gICAgICAgIHRoaXMuZmlyc3RJbnRlcnZhbEZvckVuZFBpY2tlciA9ICBtb21lbnQodGhpcy5lbmREYXRlRXBvY2gpLmFkZCh0aGlzLmludGVydmFsLCBcIm1cIikudmFsdWVPZigpO1xuICAgICAgfSBcbiAgICAgIC8vIHN0YXJ0IGRhdGUgIT09IGVuZCBkYXRlXG4gICAgICBlbHNlIHtcbiAgICAgICAgdGhpcy5maXJzdEludGVydmFsRm9yU3RhcnRQaWNrZXIgPSBtb21lbnQodGhpcy5zdGFydERhdGVFcG9jaCkuc3RhcnRPZihcImRcIikudmFsdWVPZigpO1xuICAgICAgICB0aGlzLmZpcnN0SW50ZXJ2YWxGb3JFbmRQaWNrZXIgPSAgbW9tZW50KHRoaXMuc3RhcnREYXRlRXBvY2gpLnN0YXJ0T2YoXCJkXCIpLnZhbHVlT2YoKTtcbiAgICAgIH1cblxuICAgIH1cblxuICAgIGlmKHRoaXMuZ2l2ZW5TdGFydFRpbWUpXG4gICAgICB0aGlzLmZpcnN0SW50ZXJ2YWxGb3JTdGFydFBpY2tlciA9IHRoaXMuZ2l2ZW5TdGFydFRpbWU7XG4gICBcbiAgICBpZih0aGlzLmdpdmVuRW5kVGltZSlcbiAgICAgIHRoaXMuZmlyc3RJbnRlcnZhbEZvckVuZFBpY2tlciA9IHRoaXMuZ2l2ZW5FbmRUaW1lO1xuICAgICAgXG4gICAgdGhpcy5zdGFydFRpbWUgPSB7XG4gICAgICB2YWxpZDogdHJ1ZSxcbiAgICAgIHRpbWU6IG1vbWVudCh0aGlzLmZpcnN0SW50ZXJ2YWxGb3JTdGFydFBpY2tlcikuZm9ybWF0KHRoaXMudGltZUZvcm1hdCksXG4gICAgICBlcG9jaDogbW9tZW50KHRoaXMuZmlyc3RJbnRlcnZhbEZvclN0YXJ0UGlja2VyKS52YWx1ZU9mKClcbiAgICB9O1xuXG4gICAgdGhpcy5lbmRUaW1lID0ge1xuICAgICAgdmFsaWQ6IHRydWUsXG4gICAgICB0aW1lOiBtb21lbnQodGhpcy5maXJzdEludGVydmFsRm9yRW5kUGlja2VyKS5mb3JtYXQodGhpcy50aW1lRm9ybWF0KSxcbiAgICAgIGVwb2NoOiBtb21lbnQodGhpcy5maXJzdEludGVydmFsRm9yRW5kUGlja2VyKS52YWx1ZU9mKClcbiAgICB9O1xuICB9XG5cbiAgZW1pdFRpbWVSYW5nZShkYXRhOiBJVGltZVJhbmdlKTogdm9pZCB7XG4gICAgdGhpcy50aW1lUmFuZ2VFbWl0dGVyLmVtaXQoZGF0YSk7XG4gIH1cblxuICAvL2hhbmRsZXJzIGNhdGNoIHRoZSBlbWl0dGVkIHZhbHVlcyBhbmQgcnVuIHZhbGlkYXRpb25cbiAgc3RhcnRQaWNrZXJIYW5kbGVyKHRpbWU6IElUaW1lKTogdm9pZCB7XG4gICAgdGhpcy5zdGFydFRpbWUgPSB0aW1lO1xuICAgIHRoaXMucmFuZ2VWYWxpZGl0eSA9IHRydWU7XG4gICAgLy8gaWYgdGhlIHN0YXJ0IHRpbWUgY2hhbmdlcyBhbmQgdGhlIHN0YXJ0IGRhdGUgaXMgdGhlIHNhbWUgYXMgdGhlIGVuZCBkYXRlXG4gICAgLy8gYW5kIHRoZSBzdGFydCB0aW1lID49ICBlbmQgdGltZVxuICAgIC8vIHVwZGF0ZSB0aGUgZmlyc3QgaW50ZXJ2YWwgb2YgZW5kIHBpY2tlciBhY2NvcmRpbmcgdG8gdGhlIHRpbWUgc2V0IGluIHN0YXJ0IHBpY2tlclxuICAgIGlmICh0aGlzLnN0YXJ0RGF0ZSA9PT0gdGhpcy5lbmREYXRlKSB7XG4gICAgICBsZXQgbWludXRlcyA9IG1vbWVudCh0aGlzLnN0YXJ0VGltZS50aW1lLCB0aGlzLnRpbWVGb3JtYXQpLm1pbnV0ZXMoKTtcbiAgICAgIGxldCBvZmZzZXQgPSB0aGlzLmludGVydmFsIC0gKG1pbnV0ZXMgJSB0aGlzLmludGVydmFsKTtcbiAgICAgIHRoaXMuZmlyc3RJbnRlcnZhbEZvckVuZFBpY2tlciA9IG1vbWVudChgJHt0aGlzLnN0YXJ0RGF0ZX0gJHt0aGlzLnN0YXJ0VGltZS50aW1lfWAsIGAnREQtTU0tWVlZWScgJHt0aGlzLnRpbWVGb3JtYXR9YClcbiAgICAgICAgLmFkZChvZmZzZXQsIFwibVwiKVxuICAgICAgICAudmFsdWVPZigpO1xuXG4gICAgICAvLyBpZiB0aGUgZmlyc3QgaW50ZXJ2YWwgPT0gMTI6MDBhbSwgc2V0IGl0IGFzIDExOjU5cG1cbiAgICAgIGNvbnN0IGludGVydmFsQXNTdHJpbmcgPSBtb21lbnQodGhpcy5maXJzdEludGVydmFsRm9yRW5kUGlja2VyKS5mb3JtYXQodGhpcy50aW1lRm9ybWF0KTtcbiAgICAgIGNvbnN0IGVuZE9mRGF5QXNTdHJpbmcgPSBtb21lbnQobW9tZW50KGAke3RoaXMuc3RhcnREYXRlfWAsIGBERC1NTS1ZWVlZICR7dGhpcy50aW1lRm9ybWF0fWApLmVuZE9mKFwiZFwiKS5hZGQoMSwgXCJtXCIpKS5mb3JtYXQodGhpcy50aW1lRm9ybWF0KTtcbiAgICAgIGlmIChpbnRlcnZhbEFzU3RyaW5nID09PSBlbmRPZkRheUFzU3RyaW5nKSB7XG4gICAgICAgIHRoaXMuZmlyc3RJbnRlcnZhbEZvckVuZFBpY2tlciA9IG1vbWVudChgJHt0aGlzLnN0YXJ0RGF0ZX0gJHt0aGlzLnN0YXJ0VGltZS50aW1lfWAsIGAnREQtTU0tWVlZWScgJHt0aGlzLnRpbWVGb3JtYXR9YCkuZW5kT2YoXCJkXCIpLnZhbHVlT2YoKTtcbiAgICAgIH1cblxuICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnN0IHZhbGlkaXR5ID1cbiAgICAgICAgdGhpcy5jaGVja1RpbWVWYWxpZGl0eSh0aGlzLnN0YXJ0VGltZS50aW1lLnRyaW0oKSwgdGhpcy5zdGFydERhdGVFcG9jaCkgJiZcbiAgICAgICAgdGhpcy5jaGVja1RpbWVWYWxpZGl0eSh0aGlzLmVuZFRpbWUudGltZS50cmltKCksIHRoaXMuZW5kRGF0ZUVwb2NoKTtcblxuICAgICAgICB0aGlzLnJhbmdlVmFsaWRhdGlvbih2YWxpZGl0eSk7XG4gICAgICAgIHRoaXMuZW1pdFRpbWVSYW5nZSh7XG4gICAgICAgICAgdmFsaWQ6IHZhbGlkaXR5ICYmIHRoaXMucmFuZ2VWYWxpZGl0eSxcbiAgICAgICAgICBzdGFydFRpbWU6IHRoaXMuc3RhcnRUaW1lLnRpbWUsXG4gICAgICAgICAgZW5kVGltZTogdGhpcy5lbmRUaW1lLnRpbWUsXG4gICAgICAgICAgc3RhcnRFcG9jaDogbW9tZW50KGAke3RoaXMuc3RhcnREYXRlfSAke3RoaXMuc3RhcnRUaW1lLnRpbWV9YCwgYERELU1NLVlZWVkgJHt0aGlzLnRpbWVGb3JtYXR9YCkudmFsdWVPZigpLFxuICAgICAgICAgIGVuZEVwb2NoOiBtb21lbnQoYCR7dGhpcy5lbmREYXRlfSAke3RoaXMuZW5kVGltZS50aW1lfWAsIGBERC1NTS1ZWVlZICR7dGhpcy50aW1lRm9ybWF0fWApLnZhbHVlT2YoKVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICB0aGlzLnRyaWdnZXJDaGFuZ2UgPSAhdGhpcy50cmlnZ2VyQ2hhbmdlO1xuICB9XG5cbiAgZW5kUGlja2VySGFuZGxlcih0aW1lOiBJVGltZSk6IHZvaWQge1xuICAgIHRoaXMuZW5kVGltZSA9IHRpbWU7XG5cbiAgICBjb25zdCB2YWxpZGl0eSA9XG4gICAgICB0aGlzLmNoZWNrVGltZVZhbGlkaXR5KHRoaXMuc3RhcnRUaW1lLnRpbWUudHJpbSgpLCB0aGlzLnN0YXJ0RGF0ZUVwb2NoKSAmJiB0aGlzLmNoZWNrVGltZVZhbGlkaXR5KHRoaXMuZW5kVGltZS50aW1lLnRyaW0oKSwgdGhpcy5lbmREYXRlRXBvY2gpO1xuXG4gICAgdGhpcy5yYW5nZVZhbGlkYXRpb24odmFsaWRpdHkpO1xuICAgIHRoaXMuZW1pdFRpbWVSYW5nZSh7XG4gICAgICB2YWxpZDogdmFsaWRpdHkgJiYgdGhpcy5yYW5nZVZhbGlkaXR5LFxuICAgICAgc3RhcnRUaW1lOiB0aGlzLnN0YXJ0VGltZS50aW1lLFxuICAgICAgZW5kVGltZTogdGhpcy5lbmRUaW1lLnRpbWUsXG4gICAgICBzdGFydEVwb2NoOiBtb21lbnQoYCR7dGhpcy5zdGFydERhdGV9ICR7dGhpcy5zdGFydFRpbWUudGltZX1gLCBgREQtTU0tWVlZWSAke3RoaXMudGltZUZvcm1hdH1gKS52YWx1ZU9mKCksXG4gICAgICBlbmRFcG9jaDogbW9tZW50KGAke3RoaXMuZW5kRGF0ZX0gJHt0aGlzLmVuZFRpbWUudGltZX1gLCBgREQtTU0tWVlZWSAke3RoaXMudGltZUZvcm1hdH1gKS52YWx1ZU9mKClcbiAgICB9KTtcbiAgfVxuXG4gIGNoZWNrVGltZVZhbGlkaXR5KHRpbWU6IHN0cmluZywgZGF0ZTogbnVtYmVyKTogYm9vbGVhbiB7XG4gICAgY29uc3QgUkUxMiA9IC9eKChbMF1bMS05XXwxWzAtMl0pOihbMC01XVswLTldKSggKT8oYW18cG18QU18UE0pKSQvaTtcbiAgICBjb25zdCBSRTI0ID0gL14oWzAxXVswLTldfDJbMC0zXSk6WzAtNV1bMC05XSQvO1xuICAgIGNvbnN0IFJFID0gdGhpcy5jbG9ja0Zvcm1hdCA9PT0gMTIgPyBSRTEyIDogUkUyNDtcblxuICAgIGNvbnN0IHRpbWVNb21lbnQgPSBtb21lbnQoYCR7bW9tZW50KGRhdGUpLmZvcm1hdChcIkRELU1NLVlZWVlcIil9ICR7dGltZX1gLCBgJ0RELU1NLVlZWVknICR7dGhpcy50aW1lRm9ybWF0fWApO1xuICAgIGxldCBmbGFnOiBib29sZWFuID0gZmFsc2U7XG5cbiAgICAvLyBpZiB0aGUgZmlyc3QgaW50ZXJ2YWwgaXMgc2V0IHRvIHRoZSBzdGFydCBvZiB0aGUgZGF5XG4gICAgLy8gdGhlbiB3ZSBkb24ndCBjaGVjayBpdHMgdmFsaWRpdHkgYWdhaW5zdCB0aGUgY3VycmVudCB0aW1lXG4gICAgaWYgKCh0aGlzLmdpdmVuU3RhcnRUaW1lICYmIHRoaXMuZ2l2ZW5FbmRUaW1lKSB8fCAodGhpcy5zdGFydERhdGUgIT09IHRoaXMuZW5kRGF0ZSAmJiB0aGlzLnN0YXJ0RGF0ZSAhPT0gdGhpcy5jdXJyRGF0ZSkpIHtcbiAgICAgIGZsYWcgPSB0aW1lLm1hdGNoKFJFKSA/IHRydWUgOiBmYWxzZTtcbiAgICB9IGVsc2Uge1xuICAgICAgZmxhZyA9IHRpbWUubWF0Y2goUkUpICYmIHRpbWVNb21lbnQuZGlmZihtb21lbnQoKSwgXCJtXCIpID49IDAgPyB0cnVlIDogZmFsc2U7XG4gICAgfVxuXG4gICAgcmV0dXJuIGZsYWc7XG4gIH1cblxuICAvLyB2YWxpZGF0ZXMgZW5kIHBpY2tlcidzIGlucHV0IGFjY29yZGluZyB0byB0aGUgc3RhcnQgcGlja2VyJ3MgaW5wdXRcbiAgcmFuZ2VWYWxpZGF0aW9uKHZhbGlkaXR5OiBib29sZWFuKSB7XG4gICAgaWYgKHZhbGlkaXR5ICYmIHRoaXMuc3RhcnREYXRlID09PSB0aGlzLmVuZERhdGUpIHtcbiAgICAgIGNvbnN0IHN0YXJ0TW9tZW50ID0gbW9tZW50KHRoaXMuc3RhcnRUaW1lLnRpbWUsIHRoaXMudGltZUZvcm1hdCk7XG4gICAgICBjb25zdCBlbmRNb21lbnQgPSBtb21lbnQodGhpcy5lbmRUaW1lLnRpbWUsIHRoaXMudGltZUZvcm1hdCk7XG4gICAgICB0aGlzLnJhbmdlVmFsaWRpdHkgPSBlbmRNb21lbnQuZGlmZihzdGFydE1vbWVudCwgXCJtXCIpID49IDEgPyB0cnVlIDogZmFsc2U7XG4gICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfVxuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwicmFuZ2VwaWNrZXItY29udGFpbmVyXCIgW25nU3R5bGVdPVwieydmbGV4RGlyZWN0aW9uJzogZGlyZWN0aW9uLCAnZ2FwJzogZ2FwfVwiPlxuICA8bWlzLXRpbWVwaWNrZXJcbiAgICBbY2xvY2tGb3JtYXRdPVwiY2xvY2tGb3JtYXRcIlxuICAgIFtpbnRlcnZhbF09XCJpbnRlcnZhbFwiXG4gICAgW2RhdGVBc0Vwb2NoXT1cInN0YXJ0RGF0ZUVwb2NoXCJcbiAgICBbZmlyc3RJbnRlcnZhbF09XCJmaXJzdEludGVydmFsRm9yU3RhcnRQaWNrZXJcIlxuICAgICh0aW1lRW1pdHRlcik9XCJzdGFydFBpY2tlckhhbmRsZXIoJGV2ZW50KVwiXG4gICAgW3RpbWV6b25lXT1cInRpbWV6b25lXCJcbiAgICBbaGVpZ2h0XT1cImhlaWdodFwiXG4gICAgW2lucHV0V2lkdGhdPVwiaW5wdXRXaWR0aFwiXG4gICAgW2Ryb3Bkb3duV2lkdGhdPVwiZHJvcGRvd25XaWR0aFwiXG4gICAgW3Nob3dUb29sdGlwXT1cInNob3dUb29sdGlwXCJcbiAgICBbZ2l2ZW5UaW1lXT1cImdpdmVuU3RhcnRUaW1lXCJcbiAgICBbZGlzYWJsZV09XCJkaXNhYmxlU3RhcnRUaW1lXCJcbiAgPjwvbWlzLXRpbWVwaWNrZXI+XG4gIDxwICpuZ0lmPVwiZGlyZWN0aW9uID09PSAncm93J1wiPi08L3A+XG4gIDxtaXMtdGltZXBpY2tlclxuICAgIFtjbG9ja0Zvcm1hdF09XCJjbG9ja0Zvcm1hdFwiXG4gICAgW2ludGVydmFsXT1cImludGVydmFsXCJcbiAgICBbZGF0ZUFzRXBvY2hdPVwiZW5kRGF0ZUVwb2NoXCJcbiAgICBbZmlyc3RJbnRlcnZhbF09XCJmaXJzdEludGVydmFsRm9yRW5kUGlja2VyXCJcbiAgICAodGltZUVtaXR0ZXIpPVwiZW5kUGlja2VySGFuZGxlcigkZXZlbnQpXCJcbiAgICBbcmFuZ2VWYWxpZGl0eV09XCJyYW5nZVZhbGlkaXR5XCJcbiAgICBbdGltZXpvbmVdPVwidGltZXpvbmVcIlxuICAgIFtoZWlnaHRdPVwiaGVpZ2h0XCJcbiAgICBbaW5wdXRXaWR0aF09XCJpbnB1dFdpZHRoXCJcbiAgICBbZHJvcGRvd25XaWR0aF09XCJkcm9wZG93bldpZHRoXCJcbiAgICBbc2hvd1Rvb2x0aXBdPVwic2hvd1Rvb2x0aXBcIlxuICAgIFtnaXZlblRpbWVdPVwiZ2l2ZW5FbmRUaW1lXCJcbiAgICBbdHJpZ2dlckNoYW5nZV09XCJ0cmlnZ2VyQ2hhbmdlXCJcbiAgICBbZGlzYWJsZV09XCJkaXNhYmxlRW5kVGltZVwiXG4gID48L21pcy10aW1lcGlja2VyPlxuPC9kaXY+XG4iXX0=
237
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGltZXJhbmdlcGlja2VyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL21pcy1jb21wb25lbnRzL3RpbWVyYW5nZXBpY2tlci90aW1lcmFuZ2VwaWNrZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vcHJvamVjdHMvbWlzLWNvbXBvbmVudHMvdGltZXJhbmdlcGlja2VyL3RpbWVyYW5nZXBpY2tlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBcUIsTUFBTSxFQUFFLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUxRixPQUFPLEtBQUssTUFBTSxPQUFPLENBQUM7QUFDMUIsT0FBTyxRQUFRLE1BQU0sdUJBQXVCLENBQUM7QUFDN0MsT0FBTyxHQUFHLE1BQU0sa0JBQWtCLENBQUM7Ozs7O0lDV2pDLHlCQUErQjtJQUFBLGlCQUFDO0lBQUEsaUJBQUk7OztBRFR0QyxLQUFLLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0FBQ2xCLEtBQUssQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7QUFNdkIsTUFBTSxPQUFPLHdCQUF3QjtJQTZCbkMsWUFBb0IsR0FBc0I7UUFBdEIsUUFBRyxHQUFILEdBQUcsQ0FBbUI7UUE1QmpDLGVBQVUsR0FBVyxPQUFPLENBQUM7UUFFN0IsV0FBTSxHQUFXLE1BQU0sQ0FBQztRQUN4QixhQUFRLEdBQVcsY0FBYyxDQUFDO1FBQ2xDLG1CQUFjLEdBQVcsS0FBSyxFQUFFLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUM3RCxpQkFBWSxHQUFXLEtBQUssRUFBRSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUM7UUFHM0QsZ0JBQVcsR0FBVyxFQUFFLENBQUM7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QUMsQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLElBQUksSUFBSSxFQUFFLEVBQUUsZ0JBQWdCLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUFDO1FBQzFHLElBQUksSUFBSSxHQUFZLEtBQUssQ0FBQztRQUUxQix1REFBdUQ7UUFDdkQsNERBQTREO1FBQzVELElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxJQUFJLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLEtBQUssSUFBSSxDQUFDLE9BQU8sSUFBSSxJQUFJLENBQUMsU0FBUyxLQUFLLElBQUksQ0FBQyxRQUFRLENBQUMsRUFBRTtZQUN2SCxJQUFJLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7U0FDdEM7YUFBTTtZQUNMLElBQUksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxJQUFJLFNBQVMsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLEVBQUUsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztTQUMzRTtRQUVELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVELHFFQUFxRTtJQUNyRSxlQUFlLENBQUMsUUFBaUI7UUFDL0IsSUFBSSxRQUFRLElBQUksSUFBSSxDQUFDLFNBQVMsS0FBSyxJQUFJLENBQUMsT0FBTyxFQUFFO1lBQy9DLE1BQU0sVUFBVSxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7WUFDL0QsTUFBTSxRQUFRLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztZQUMzRCxJQUFJLENBQUMsYUFBYSxHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7WUFDeEUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxhQUFhLEVBQUUsQ0FBQztTQUMxQjtJQUNILENBQUM7O2dHQXZNVSx3QkFBd0I7MkVBQXhCLHdCQUF3QjtRQ2JyQyw4QkFBd0Ysd0JBQUE7UUFNcEYsK0hBQWUsOEJBQTBCLElBQUM7UUFRM0MsaUJBQWlCO1FBQ2xCLHFFQUFvQztRQUNwQyx5Q0FlQztRQVZDLCtIQUFlLDRCQUF3QixJQUFDO1FBVXpDLGlCQUFpQixFQUFBOztRQS9CZSw2RUFBb0Q7UUFFbkYsZUFBMkI7UUFBM0IsNkNBQTJCLDBCQUFBLG1DQUFBLGtEQUFBLDBCQUFBLHNCQUFBLDhCQUFBLG9DQUFBLGdDQUFBLGlDQUFBLGlDQUFBO1FBYXpCLGVBQXlCO1FBQXpCLDhDQUF5QjtRQUUzQixlQUEyQjtRQUEzQiw2Q0FBMkIsMEJBQUEsaUNBQUEsZ0RBQUEsb0NBQUEsMEJBQUEsc0JBQUEsOEJBQUEsb0NBQUEsZ0NBQUEsK0JBQUEsb0NBQUEsK0JBQUE7O3VGREpsQix3QkFBd0I7Y0FMcEMsU0FBUzsyQkFDRSxxQkFBcUI7b0VBS3RCLFVBQVU7a0JBQWxCLEtBQUs7WUFDRyxhQUFhO2tCQUFyQixLQUFLO1lBQ0csTUFBTTtrQkFBZCxLQUFLO1lBQ0csUUFBUTtrQkFBaEIsS0FBSztZQUNHLGNBQWM7a0JBQXRCLEtBQUs7WUFDRyxZQUFZO2tCQUFwQixLQUFLO1lBQ0csY0FBYztrQkFBdEIsS0FBSztZQUNHLFlBQVk7a0JBQXBCLEtBQUs7WUFDRyxXQUFXO2tCQUFuQixLQUFLO1lBQ0csUUFBUTtrQkFBaEIsS0FBSztZQUNHLFdBQVc7a0JBQW5CLEtBQUs7WUFDRyxTQUFTO2tCQUFqQixLQUFLO1lBQ0csR0FBRztrQkFBWCxLQUFLO1lBQ0csZ0JBQWdCO2tCQUF4QixLQUFLO1lBQ0csY0FBYztrQkFBdEIsS0FBSztZQUNJLGdCQUFnQjtrQkFBekIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIENoYW5nZURldGVjdG9yUmVmLCBPdXRwdXQsIEV2ZW50RW1pdHRlciB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBJVGltZVJhbmdlLCBJVGltZSwgVERpcmVjdGlvbiB9IGZyb20gXCIuL3RpbWVyYW5nZS5uYW1lc3BhY2VcIjtcbmltcG9ydCBkYXlqcyBmcm9tICdkYXlqcyc7XG5pbXBvcnQgdGltZXpvbmUgZnJvbSAnZGF5anMvcGx1Z2luL3RpbWV6b25lJztcbmltcG9ydCB1dGMgZnJvbSAnZGF5anMvcGx1Z2luL3V0Yyc7XG5cbmRheWpzLmV4dGVuZCh1dGMpO1xuZGF5anMuZXh0ZW5kKHRpbWV6b25lKTtcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogXCJtaXMtdGltZXJhbmdlcGlja2VyXCIsXG4gIHRlbXBsYXRlVXJsOiBcIi4vdGltZXJhbmdlcGlja2VyLmNvbXBvbmVudC5odG1sXCIsXG4gIHN0eWxlVXJsczogW1wiLi90aW1lcmFuZ2VwaWNrZXIuY29tcG9uZW50LnNjc3NcIl1cbn0pXG5leHBvcnQgY2xhc3MgVGltZVJhbmdlUGlja2VyQ29tcG9uZW50IHtcbiAgQElucHV0KCkgaW5wdXRXaWR0aDogc3RyaW5nID0gXCIxMDBweFwiO1xuICBASW5wdXQoKSBkcm9wZG93bldpZHRoPzogc3RyaW5nO1xuICBASW5wdXQoKSBoZWlnaHQ6IHN0cmluZyA9IFwiNDZweFwiO1xuICBASW5wdXQoKSB0aW1lem9uZTogc3RyaW5nID0gXCJBc2lhL0tvbGthdGFcIjtcbiAgQElucHV0KCkgc3RhcnREYXRlRXBvY2g6IG51bWJlciA9IGRheWpzKCkudHoodGhpcy50aW1lem9uZSkudmFsdWVPZigpO1xuICBASW5wdXQoKSBlbmREYXRlRXBvY2g6IG51bWJlciA9IGRheWpzKCkudHoodGhpcy50aW1lem9uZSkudmFsdWVPZigpO1xuICBASW5wdXQoKSBnaXZlblN0YXJ0VGltZTogbnVtYmVyO1xuICBASW5wdXQoKSBnaXZlbkVuZFRpbWU6IG51bWJlcjtcbiAgQElucHV0KCkgY2xvY2tGb3JtYXQ6IG51bWJlciA9IDEyO1xuICBASW5wdXQoKSBpbnRlcnZhbDogbnVtYmVyID0gMTU7XG4gIEBJbnB1dCgpIHNob3dUb29sdGlwOiBib29sZWFuID0gdHJ1ZTtcbiAgQElucHV0KCkgZGlyZWN0aW9uOiBURGlyZWN0aW9uID0gJ3Jvdyc7XG4gIEBJbnB1dCgpIGdhcDogc3RyaW5nID0gJzFyZW0nO1xuICBASW5wdXQoKSBkaXNhYmxlU3RhcnRUaW1lOiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpIGRpc2FibGVFbmRUaW1lOiBib29sZWFuID0gZmFsc2U7XG4gIEBPdXRwdXQoKSB0aW1lUmFuZ2VFbWl0dGVyID0gbmV3IEV2ZW50RW1pdHRlcjxJVGltZVJhbmdlPigpO1xuXG4gIHN0YXJ0RGF0ZSE6IHN0cmluZztcbiAgZW5kRGF0ZSE6IHN0cmluZztcbiAgY3VyckRhdGUhOiBzdHJpbmc7XG4gIHRpbWVGb3JtYXQhOiBzdHJpbmc7XG4gIGZpcnN0SW50ZXJ2YWxGb3JTdGFydFBpY2tlcjogbnVtYmVyID0gZGF5anMoKS52YWx1ZU9mKCk7XG4gIGZpcnN0SW50ZXJ2YWxGb3JFbmRQaWNrZXI6IG51bWJlciA9IGRheWpzKCkudmFsdWVPZigpO1xuICBzdGFydFRpbWUhOiBJVGltZTtcbiAgZW5kVGltZSE6IElUaW1lO1xuICByYW5nZVZhbGlkaXR5OiBib29sZWFuID0gdHJ1ZTtcbiAgdHJpZ2dlckNoYW5nZTogYm9vbGVhbiA9IHRydWU7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBjZHI6IENoYW5nZURldGVjdG9yUmVmKSB7fVxuXG4gIG5nT25Jbml0KCkge31cblxuICBuZ09uQ2hhbmdlcygpIHtcbiAgICB0aGlzLnRpbWVGb3JtYXQgPSB0aGlzLmNsb2NrRm9ybWF0ID09PSAxMiA/IFwiaGg6bW0gYVwiIDogXCJISDptbVwiO1xuICAgIGRheWpzLnR6LnNldERlZmF1bHQodGhpcy50aW1lem9uZSk7XG4gICAgdGhpcy5zdGFydERhdGUgPSBkYXlqcyh0aGlzLnN0YXJ0RGF0ZUVwb2NoKS5mb3JtYXQoXCJERC1NTS1ZWVlZXCIpO1xuICAgIHRoaXMuZW5kRGF0ZSA9IGRheWpzKHRoaXMuZW5kRGF0ZUVwb2NoKS5mb3JtYXQoXCJERC1NTS1ZWVlZXCIpO1xuICAgIHRoaXMuY3VyckRhdGUgPSBkYXlqcygpLmZvcm1hdChcIkRELU1NLVlZWVlcIik7XG4gICAgdGhpcy5zZXRGaXJzdEludGVydmFscygpO1xuICB9XG5cbiAgLy8gY2FsY3VsYXRlIHRoZSBmaXJzdCBpbnRlcnZhbCBvZiB0aGUgcGlja2VyXG4gIHNldEZpcnN0SW50ZXJ2YWxzKCk6IHZvaWQge1xuICAgIGNvbnN0IG1pbnV0ZXMgPSBkYXlqcygpLm1pbnV0ZSgpO1xuICAgIGNvbnN0IG9mZnNldCA9IHRoaXMuaW50ZXJ2YWwgLSAobWludXRlcyAlIHRoaXMuaW50ZXJ2YWwpO1xuXG4gICAgLy8gc3RhcnQgZGF0ZSwgMjIgTUFZID09PSAgY3VycmVudCBkYXRlLCAyMiBNQVlcbiAgICBpZiggdGhpcy5zdGFydERhdGUgPT09IHRoaXMuY3VyckRhdGUgKXtcbiAgICAgIGNvbnN0IGN1cnJlbnRUaW1lID0gZGF5anMoKS52YWx1ZU9mKCk7XG5cbiAgICAgIC8vIHN0YXJ0IGRhdGUsIDIyIE1BWSAgPT09IGN1cnJlbnQgZGF0ZSwgMjIgTUFZID09PSBlbmQgZGF0ZSwgMjIgTUFZXG4gICAgICBpZih0aGlzLnN0YXJ0RGF0ZSA9PT0gdGhpcy5lbmREYXRlKXtcblxuICAgICAgICAvLyBjdXJyZW50IHRpbWUgaXMgaW4gbGFzdCBpbnRlcnZhbFxuICAgICAgICBpZiggY3VycmVudFRpbWUgPj0gZGF5anModGhpcy5zdGFydERhdGVFcG9jaCkuZW5kT2YoXCJkXCIpLnN1YnRyYWN0KHRoaXMuaW50ZXJ2YWwsXCJtXCIpLnZhbHVlT2YoKSl7XG4gICAgICAgICAgdGhpcy5maXJzdEludGVydmFsRm9yU3RhcnRQaWNrZXIgPSBjdXJyZW50VGltZTtcbiAgICAgICAgICB0aGlzLmZpcnN0SW50ZXJ2YWxGb3JFbmRQaWNrZXIgPSAgZGF5anModGhpcy5lbmREYXRlRXBvY2gpLmVuZE9mKFwiZFwiKS52YWx1ZU9mKCk7XG4gICAgICAgIH1cbiAgICAgICAgLy8gY3VycmVudCB0aW1lIGlzbid0IGluIGxhc3QgaW50ZXJ2YWxcbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgdGhpcy5maXJzdEludGVydmFsRm9yU3RhcnRQaWNrZXIgPSBkYXlqcygpLmFkZChvZmZzZXQsIFwibVwiKS52YWx1ZU9mKCk7XG4gICAgICAgICAgdGhpcy5maXJzdEludGVydmFsRm9yRW5kUGlja2VyID0gIGRheWpzKCkuYWRkKG9mZnNldCwgXCJtXCIpLmFkZCh0aGlzLmludGVydmFsLCBcIm1cIikudmFsdWVPZigpO1xuICAgICAgICB9XG4gICAgICB9IFxuICAgICAgLy8gc3RhcnQgZGF0ZSwgMjIgTUFZID09PSBjdXJyZW50IGRhdGUsIDIyIE1BWSAhPT0gZW5kIGRhdGUsIDMwIE1BWVxuICAgICAgZWxzZSB7XG4gICAgICAgIC8vIGN1cnJlbnQgdGltZSBpcyBpbiBsYXN0IGludGVydmFsXG4gICAgICAgIGlmKCBjdXJyZW50VGltZSA+PSBkYXlqcyh0aGlzLnN0YXJ0RGF0ZUVwb2NoKS5lbmRPZihcImRcIikuc3VidHJhY3QodGhpcy5pbnRlcnZhbCxcIm1cIikudmFsdWVPZigpKXtcbiAgICAgICAgICB0aGlzLmZpcnN0SW50ZXJ2YWxGb3JTdGFydFBpY2tlciA9IGN1cnJlbnRUaW1lO1xuICAgICAgICAgIHRoaXMuZmlyc3RJbnRlcnZhbEZvckVuZFBpY2tlciA9ICBkYXlqcyh0aGlzLmVuZERhdGVFcG9jaCkuZW5kT2YoXCJkXCIpLnZhbHVlT2YoKTtcbiAgICAgICAgfVxuICAgICAgICAvLyBjdXJyZW50IHRpbWUgaXNuJ3QgaW4gbGFzdCBpbnRlcnZhbFxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICB0aGlzLmZpcnN0SW50ZXJ2YWxGb3JTdGFydFBpY2tlciA9IGRheWpzKCkuYWRkKG9mZnNldCwgXCJtXCIpLnZhbHVlT2YoKTtcbiAgICAgICAgICB0aGlzLmZpcnN0SW50ZXJ2YWxGb3JFbmRQaWNrZXIgPSAgZGF5anModGhpcy5lbmREYXRlRXBvY2gpLnZhbHVlT2YoKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICAvLyBzdGFydCBkYXRlLCAzMCBNQVkgIT09IGN1cnJlbnQgZGF0ZSwgMjIgTUFZXG4gICAgZWxzZSB7XG4gICAgICAvLyBzdGFydCBkYXRlID09PSBlbmQgRGF0ZVxuICAgICAgaWYoIHRoaXMuc3RhcnREYXRlID09PSB0aGlzLmVuZERhdGUpe1xuICAgICAgICB0aGlzLmZpcnN0SW50ZXJ2YWxGb3JTdGFydFBpY2tlciA9IGRheWpzKHRoaXMuc3RhcnREYXRlRXBvY2gpLnN0YXJ0T2YoXCJkXCIpLnZhbHVlT2YoKTtcbiAgICAgICAgdGhpcy5maXJzdEludGVydmFsRm9yRW5kUGlja2VyID0gIGRheWpzKHRoaXMuZW5kRGF0ZUVwb2NoKS5hZGQodGhpcy5pbnRlcnZhbCwgXCJtXCIpLnZhbHVlT2YoKTtcbiAgICAgIH0gXG4gICAgICAvLyBzdGFydCBkYXRlICE9PSBlbmQgZGF0ZVxuICAgICAgZWxzZSB7XG4gICAgICAgIHRoaXMuZmlyc3RJbnRlcnZhbEZvclN0YXJ0UGlja2VyID0gZGF5anModGhpcy5zdGFydERhdGVFcG9jaCkuc3RhcnRPZihcImRcIikudmFsdWVPZigpO1xuICAgICAgICB0aGlzLmZpcnN0SW50ZXJ2YWxGb3JFbmRQaWNrZXIgPSAgZGF5anModGhpcy5zdGFydERhdGVFcG9jaCkuc3RhcnRPZihcImRcIikudmFsdWVPZigpO1xuICAgICAgfVxuXG4gICAgfVxuXG4gICAgaWYodGhpcy5naXZlblN0YXJ0VGltZSlcbiAgICAgIHRoaXMuZmlyc3RJbnRlcnZhbEZvclN0YXJ0UGlja2VyID0gdGhpcy5naXZlblN0YXJ0VGltZTtcbiAgIFxuICAgIGlmKHRoaXMuZ2l2ZW5FbmRUaW1lKVxuICAgICAgdGhpcy5maXJzdEludGVydmFsRm9yRW5kUGlja2VyID0gdGhpcy5naXZlbkVuZFRpbWU7XG4gICAgICBcbiAgICB0aGlzLnN0YXJ0VGltZSA9IHtcbiAgICAgIHZhbGlkOiB0cnVlLFxuICAgICAgdGltZTogZGF5anModGhpcy5maXJzdEludGVydmFsRm9yU3RhcnRQaWNrZXIpLmZvcm1hdCh0aGlzLnRpbWVGb3JtYXQpLFxuICAgICAgZXBvY2g6IGRheWpzKHRoaXMuZmlyc3RJbnRlcnZhbEZvclN0YXJ0UGlja2VyKS52YWx1ZU9mKClcbiAgICB9O1xuXG4gICAgdGhpcy5lbmRUaW1lID0ge1xuICAgICAgdmFsaWQ6IHRydWUsXG4gICAgICB0aW1lOiBkYXlqcyh0aGlzLmZpcnN0SW50ZXJ2YWxGb3JFbmRQaWNrZXIpLmZvcm1hdCh0aGlzLnRpbWVGb3JtYXQpLFxuICAgICAgZXBvY2g6IGRheWpzKHRoaXMuZmlyc3RJbnRlcnZhbEZvckVuZFBpY2tlcikudmFsdWVPZigpXG4gICAgfTtcbiAgfVxuXG4gIGVtaXRUaW1lUmFuZ2UoZGF0YTogSVRpbWVSYW5nZSk6IHZvaWQge1xuICAgIHRoaXMudGltZVJhbmdlRW1pdHRlci5lbWl0KGRhdGEpO1xuICB9XG5cbiAgLy9oYW5kbGVycyBjYXRjaCB0aGUgZW1pdHRlZCB2YWx1ZXMgYW5kIHJ1biB2YWxpZGF0aW9uXG4gIHN0YXJ0UGlja2VySGFuZGxlcih0aW1lOiBJVGltZSk6IHZvaWQge1xuICAgIHRoaXMuc3RhcnRUaW1lID0gdGltZTtcbiAgICB0aGlzLnJhbmdlVmFsaWRpdHkgPSB0cnVlO1xuICAgIC8vIGlmIHRoZSBzdGFydCB0aW1lIGNoYW5nZXMgYW5kIHRoZSBzdGFydCBkYXRlIGlzIHRoZSBzYW1lIGFzIHRoZSBlbmQgZGF0ZVxuICAgIC8vIGFuZCB0aGUgc3RhcnQgdGltZSA+PSAgZW5kIHRpbWVcbiAgICAvLyB1cGRhdGUgdGhlIGZpcnN0IGludGVydmFsIG9mIGVuZCBwaWNrZXIgYWNjb3JkaW5nIHRvIHRoZSB0aW1lIHNldCBpbiBzdGFydCBwaWNrZXJcbiAgICBpZiAodGhpcy5zdGFydERhdGUgPT09IHRoaXMuZW5kRGF0ZSkge1xuICAgICAgbGV0IG1pbnV0ZXMgPSBkYXlqcyh0aGlzLnN0YXJ0VGltZS50aW1lLCB0aGlzLnRpbWVGb3JtYXQpLm1pbnV0ZSgpO1xuICAgICAgbGV0IG9mZnNldCA9IHRoaXMuaW50ZXJ2YWwgLSAobWludXRlcyAlIHRoaXMuaW50ZXJ2YWwpO1xuICAgICAgdGhpcy5maXJzdEludGVydmFsRm9yRW5kUGlja2VyID0gZGF5anMoYCR7dGhpcy5zdGFydERhdGV9ICR7dGhpcy5zdGFydFRpbWUudGltZX1gLCBgJ0RELU1NLVlZWVknICR7dGhpcy50aW1lRm9ybWF0fWApXG4gICAgICAgIC5hZGQob2Zmc2V0LCBcIm1cIilcbiAgICAgICAgLnZhbHVlT2YoKTtcblxuICAgICAgLy8gaWYgdGhlIGZpcnN0IGludGVydmFsID09IDEyOjAwYW0sIHNldCBpdCBhcyAxMTo1OXBtXG4gICAgICBjb25zdCBpbnRlcnZhbEFzU3RyaW5nID0gZGF5anModGhpcy5maXJzdEludGVydmFsRm9yRW5kUGlja2VyKS5mb3JtYXQodGhpcy50aW1lRm9ybWF0KTtcbiAgICAgIGNvbnN0IGVuZE9mRGF5QXNTdHJpbmcgPSBkYXlqcyhkYXlqcyhgJHt0aGlzLnN0YXJ0RGF0ZX1gLCBgREQtTU0tWVlZWSAke3RoaXMudGltZUZvcm1hdH1gKS5lbmRPZihcImRcIikuYWRkKDEsIFwibVwiKSkuZm9ybWF0KHRoaXMudGltZUZvcm1hdCk7XG4gICAgICBpZiAoaW50ZXJ2YWxBc1N0cmluZyA9PT0gZW5kT2ZEYXlBc1N0cmluZykge1xuICAgICAgICB0aGlzLmZpcnN0SW50ZXJ2YWxGb3JFbmRQaWNrZXIgPSBkYXlqcyhgJHt0aGlzLnN0YXJ0RGF0ZX0gJHt0aGlzLnN0YXJ0VGltZS50aW1lfWAsIGAnREQtTU0tWVlZWScgJHt0aGlzLnRpbWVGb3JtYXR9YCkuZW5kT2YoXCJkXCIpLnZhbHVlT2YoKTtcbiAgICAgIH1cblxuICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnN0IHZhbGlkaXR5ID1cbiAgICAgICAgdGhpcy5jaGVja1RpbWVWYWxpZGl0eSh0aGlzLnN0YXJ0VGltZS50aW1lLnRyaW0oKSwgdGhpcy5zdGFydERhdGVFcG9jaCkgJiZcbiAgICAgICAgdGhpcy5jaGVja1RpbWVWYWxpZGl0eSh0aGlzLmVuZFRpbWUudGltZS50cmltKCksIHRoaXMuZW5kRGF0ZUVwb2NoKTtcblxuICAgICAgICB0aGlzLnJhbmdlVmFsaWRhdGlvbih2YWxpZGl0eSk7XG4gICAgICAgIHRoaXMuZW1pdFRpbWVSYW5nZSh7XG4gICAgICAgICAgdmFsaWQ6IHZhbGlkaXR5ICYmIHRoaXMucmFuZ2VWYWxpZGl0eSxcbiAgICAgICAgICBzdGFydFRpbWU6IHRoaXMuc3RhcnRUaW1lLnRpbWUsXG4gICAgICAgICAgZW5kVGltZTogdGhpcy5lbmRUaW1lLnRpbWUsXG4gICAgICAgICAgc3RhcnRFcG9jaDogZGF5anMoYCR7dGhpcy5zdGFydERhdGV9ICR7dGhpcy5zdGFydFRpbWUudGltZX1gLCBgREQtTU0tWVlZWSAke3RoaXMudGltZUZvcm1hdH1gKS52YWx1ZU9mKCksXG4gICAgICAgICAgZW5kRXBvY2g6IGRheWpzKGAke3RoaXMuZW5kRGF0ZX0gJHt0aGlzLmVuZFRpbWUudGltZX1gLCBgREQtTU0tWVlZWSAke3RoaXMudGltZUZvcm1hdH1gKS52YWx1ZU9mKClcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgdGhpcy50cmlnZ2VyQ2hhbmdlID0gIXRoaXMudHJpZ2dlckNoYW5nZTtcbiAgfVxuXG4gIGVuZFBpY2tlckhhbmRsZXIodGltZTogSVRpbWUpOiB2b2lkIHtcbiAgICB0aGlzLmVuZFRpbWUgPSB0aW1lO1xuXG4gICAgY29uc3QgdmFsaWRpdHkgPVxuICAgICAgdGhpcy5jaGVja1RpbWVWYWxpZGl0eSh0aGlzLnN0YXJ0VGltZS50aW1lLnRyaW0oKSwgdGhpcy5zdGFydERhdGVFcG9jaCkgJiYgdGhpcy5jaGVja1RpbWVWYWxpZGl0eSh0aGlzLmVuZFRpbWUudGltZS50cmltKCksIHRoaXMuZW5kRGF0ZUVwb2NoKTtcblxuICAgIHRoaXMucmFuZ2VWYWxpZGF0aW9uKHZhbGlkaXR5KTtcbiAgICB0aGlzLmVtaXRUaW1lUmFuZ2Uoe1xuICAgICAgdmFsaWQ6IHZhbGlkaXR5ICYmIHRoaXMucmFuZ2VWYWxpZGl0eSxcbiAgICAgIHN0YXJ0VGltZTogdGhpcy5zdGFydFRpbWUudGltZSxcbiAgICAgIGVuZFRpbWU6IHRoaXMuZW5kVGltZS50aW1lLFxuICAgICAgc3RhcnRFcG9jaDogZGF5anMoYCR7dGhpcy5zdGFydERhdGV9ICR7dGhpcy5zdGFydFRpbWUudGltZX1gLCBgREQtTU0tWVlZWSAke3RoaXMudGltZUZvcm1hdH1gKS52YWx1ZU9mKCksXG4gICAgICBlbmRFcG9jaDogZGF5anMoYCR7dGhpcy5lbmREYXRlfSAke3RoaXMuZW5kVGltZS50aW1lfWAsIGBERC1NTS1ZWVlZICR7dGhpcy50aW1lRm9ybWF0fWApLnZhbHVlT2YoKVxuICAgIH0pO1xuICB9XG5cbiAgY2hlY2tUaW1lVmFsaWRpdHkodGltZTogc3RyaW5nLCBkYXRlOiBudW1iZXIpOiBib29sZWFuIHtcbiAgICBjb25zdCBSRTEyID0gL14oKFswXVsxLTldfDFbMC0yXSk6KFswLTVdWzAtOV0pKCApPyhhbXxwbXxBTXxQTSkpJC9pO1xuICAgIGNvbnN0IFJFMjQgPSAvXihbMDFdWzAtOV18MlswLTNdKTpbMC01XVswLTldJC87XG4gICAgY29uc3QgUkUgPSB0aGlzLmNsb2NrRm9ybWF0ID09PSAxMiA/IFJFMTIgOiBSRTI0O1xuXG4gICAgY29uc3QgdGltZWRheWpzID0gZGF5anMoYCR7ZGF5anMoZGF0ZSkuZm9ybWF0KFwiREQtTU0tWVlZWVwiKX0gJHt0aW1lfWAsIGAnREQtTU0tWVlZWScgJHt0aGlzLnRpbWVGb3JtYXR9YCk7XG4gICAgbGV0IGZsYWc6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAgIC8vIGlmIHRoZSBmaXJzdCBpbnRlcnZhbCBpcyBzZXQgdG8gdGhlIHN0YXJ0IG9mIHRoZSBkYXlcbiAgICAvLyB0aGVuIHdlIGRvbid0IGNoZWNrIGl0cyB2YWxpZGl0eSBhZ2FpbnN0IHRoZSBjdXJyZW50IHRpbWVcbiAgICBpZiAoKHRoaXMuZ2l2ZW5TdGFydFRpbWUgJiYgdGhpcy5naXZlbkVuZFRpbWUpIHx8ICh0aGlzLnN0YXJ0RGF0ZSAhPT0gdGhpcy5lbmREYXRlICYmIHRoaXMuc3RhcnREYXRlICE9PSB0aGlzLmN1cnJEYXRlKSkge1xuICAgICAgZmxhZyA9IHRpbWUubWF0Y2goUkUpID8gdHJ1ZSA6IGZhbHNlO1xuICAgIH0gZWxzZSB7XG4gICAgICBmbGFnID0gdGltZS5tYXRjaChSRSkgJiYgdGltZWRheWpzLmRpZmYoZGF5anMoKSwgXCJtXCIpID49IDAgPyB0cnVlIDogZmFsc2U7XG4gICAgfVxuXG4gICAgcmV0dXJuIGZsYWc7XG4gIH1cblxuICAvLyB2YWxpZGF0ZXMgZW5kIHBpY2tlcidzIGlucHV0IGFjY29yZGluZyB0byB0aGUgc3RhcnQgcGlja2VyJ3MgaW5wdXRcbiAgcmFuZ2VWYWxpZGF0aW9uKHZhbGlkaXR5OiBib29sZWFuKSB7XG4gICAgaWYgKHZhbGlkaXR5ICYmIHRoaXMuc3RhcnREYXRlID09PSB0aGlzLmVuZERhdGUpIHtcbiAgICAgIGNvbnN0IHN0YXJ0ZGF5anMgPSBkYXlqcyh0aGlzLnN0YXJ0VGltZS50aW1lLCB0aGlzLnRpbWVGb3JtYXQpO1xuICAgICAgY29uc3QgZW5kZGF5anMgPSBkYXlqcyh0aGlzLmVuZFRpbWUudGltZSwgdGhpcy50aW1lRm9ybWF0KTtcbiAgICAgIHRoaXMucmFuZ2VWYWxpZGl0eSA9IGVuZGRheWpzLmRpZmYoc3RhcnRkYXlqcywgXCJtXCIpID49IDEgPyB0cnVlIDogZmFsc2U7XG4gICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfVxuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwicmFuZ2VwaWNrZXItY29udGFpbmVyXCIgW25nU3R5bGVdPVwieydmbGV4RGlyZWN0aW9uJzogZGlyZWN0aW9uLCAnZ2FwJzogZ2FwfVwiPlxuICA8bWlzLXRpbWVwaWNrZXJcbiAgICBbY2xvY2tGb3JtYXRdPVwiY2xvY2tGb3JtYXRcIlxuICAgIFtpbnRlcnZhbF09XCJpbnRlcnZhbFwiXG4gICAgW2RhdGVBc0Vwb2NoXT1cInN0YXJ0RGF0ZUVwb2NoXCJcbiAgICBbZmlyc3RJbnRlcnZhbF09XCJmaXJzdEludGVydmFsRm9yU3RhcnRQaWNrZXJcIlxuICAgICh0aW1lRW1pdHRlcik9XCJzdGFydFBpY2tlckhhbmRsZXIoJGV2ZW50KVwiXG4gICAgW3RpbWV6b25lXT1cInRpbWV6b25lXCJcbiAgICBbaGVpZ2h0XT1cImhlaWdodFwiXG4gICAgW2lucHV0V2lkdGhdPVwiaW5wdXRXaWR0aFwiXG4gICAgW2Ryb3Bkb3duV2lkdGhdPVwiZHJvcGRvd25XaWR0aFwiXG4gICAgW3Nob3dUb29sdGlwXT1cInNob3dUb29sdGlwXCJcbiAgICBbZ2l2ZW5UaW1lXT1cImdpdmVuU3RhcnRUaW1lXCJcbiAgICBbZGlzYWJsZV09XCJkaXNhYmxlU3RhcnRUaW1lXCJcbiAgPjwvbWlzLXRpbWVwaWNrZXI+XG4gIDxwICpuZ0lmPVwiZGlyZWN0aW9uID09PSAncm93J1wiPi08L3A+XG4gIDxtaXMtdGltZXBpY2tlclxuICAgIFtjbG9ja0Zvcm1hdF09XCJjbG9ja0Zvcm1hdFwiXG4gICAgW2ludGVydmFsXT1cImludGVydmFsXCJcbiAgICBbZGF0ZUFzRXBvY2hdPVwiZW5kRGF0ZUVwb2NoXCJcbiAgICBbZmlyc3RJbnRlcnZhbF09XCJmaXJzdEludGVydmFsRm9yRW5kUGlja2VyXCJcbiAgICAodGltZUVtaXR0ZXIpPVwiZW5kUGlja2VySGFuZGxlcigkZXZlbnQpXCJcbiAgICBbcmFuZ2VWYWxpZGl0eV09XCJyYW5nZVZhbGlkaXR5XCJcbiAgICBbdGltZXpvbmVdPVwidGltZXpvbmVcIlxuICAgIFtoZWlnaHRdPVwiaGVpZ2h0XCJcbiAgICBbaW5wdXRXaWR0aF09XCJpbnB1dFdpZHRoXCJcbiAgICBbZHJvcGRvd25XaWR0aF09XCJkcm9wZG93bldpZHRoXCJcbiAgICBbc2hvd1Rvb2x0aXBdPVwic2hvd1Rvb2x0aXBcIlxuICAgIFtnaXZlblRpbWVdPVwiZ2l2ZW5FbmRUaW1lXCJcbiAgICBbdHJpZ2dlckNoYW5nZV09XCJ0cmlnZ2VyQ2hhbmdlXCJcbiAgICBbZGlzYWJsZV09XCJkaXNhYmxlRW5kVGltZVwiXG4gID48L21pcy10aW1lcGlja2VyPlxuPC9kaXY+XG4iXX0=
@@ -5,6 +5,7 @@ const _c0 = ["container"];
5
5
  function ToolTipComponent_div_0_div_3_ng_container_1_Template(rf, ctx) { if (rf & 1) {
6
6
  i0.ɵɵelementContainer(0);
7
7
  } }
8
+ const _c1 = function (a0) { return { $implicit: a0 }; };
8
9
  function ToolTipComponent_div_0_div_3_Template(rf, ctx) { if (rf & 1) {
9
10
  i0.ɵɵelementStart(0, "div");
10
11
  i0.ɵɵtemplate(1, ToolTipComponent_div_0_div_3_ng_container_1_Template, 1, 0, "ng-container", 7);
@@ -12,19 +13,19 @@ function ToolTipComponent_div_0_div_3_Template(rf, ctx) { if (rf & 1) {
12
13
  } if (rf & 2) {
13
14
  const ctx_r2 = i0.ɵɵnextContext(2);
14
15
  i0.ɵɵadvance(1);
15
- i0.ɵɵproperty("ngTemplateOutlet", ctx_r2.tooltipTemplate);
16
+ i0.ɵɵproperty("ngTemplateOutlet", ctx_r2.templateRef)("ngTemplateOutletContext", i0.ɵɵpureFunction1(2, _c1, ctx_r2.templateContext));
16
17
  } }
17
- const _c1 = function (a0) { return { "text-align": a0 }; };
18
+ const _c2 = function (a0) { return { "text-align": a0 }; };
18
19
  function ToolTipComponent_div_0_ng_template_4_Template(rf, ctx) { if (rf & 1) {
19
20
  i0.ɵɵelement(0, "div", 8);
20
21
  } if (rf & 2) {
21
22
  const ctx_r4 = i0.ɵɵnextContext(2);
22
- i0.ɵɵproperty("innerHTML", ctx_r4.toolTipText, i0.ɵɵsanitizeHtml)("ngStyle", i0.ɵɵpureFunction1(2, _c1, ctx_r4.toolTipTextAlignment ? ctx_r4.toolTipTextAlignment : ""));
23
+ i0.ɵɵproperty("innerHTML", ctx_r4.toolTipText, i0.ɵɵsanitizeHtml)("ngStyle", i0.ɵɵpureFunction1(2, _c2, ctx_r4.toolTipTextAlignment ? ctx_r4.toolTipTextAlignment : ""));
23
24
  } }
24
- const _c2 = function (a0, a1, a2, a3) { return { "arrow-left": a0, "arrow-right": a1, "arrow-top": a2, "arrow-bottom": a3 }; };
25
+ const _c3 = function (a0, a1, a2, a3) { return { "arrow-left": a0, "arrow-right": a1, "arrow-top": a2, "arrow-bottom": a3 }; };
25
26
  function ToolTipComponent_div_0_Template(rf, ctx) { if (rf & 1) {
26
27
  i0.ɵɵelementStart(0, "div", 1, 2)(2, "div", 3);
27
- i0.ɵɵtemplate(3, ToolTipComponent_div_0_div_3_Template, 2, 1, "div", 4);
28
+ i0.ɵɵtemplate(3, ToolTipComponent_div_0_div_3_Template, 2, 4, "div", 4);
28
29
  i0.ɵɵtemplate(4, ToolTipComponent_div_0_ng_template_4_Template, 1, 4, "ng-template", null, 5, i0.ɵɵtemplateRefExtractor);
29
30
  i0.ɵɵelement(6, "span", 6);
30
31
  i0.ɵɵelementEnd()();
@@ -32,9 +33,9 @@ function ToolTipComponent_div_0_Template(rf, ctx) { if (rf & 1) {
32
33
  const _r3 = i0.ɵɵreference(5);
33
34
  const ctx_r0 = i0.ɵɵnextContext();
34
35
  i0.ɵɵadvance(3);
35
- i0.ɵɵproperty("ngIf", ctx_r0.tooltipTemplate)("ngIfElse", _r3);
36
+ i0.ɵɵproperty("ngIf", ctx_r0.templateRef)("ngIfElse", _r3);
36
37
  i0.ɵɵadvance(3);
37
- i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction4(3, _c2, ctx_r0.toolTipPosition === "left", ctx_r0.toolTipPosition === "right", ctx_r0.toolTipPosition === "top", ctx_r0.toolTipPosition === "bottom"));
38
+ i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction4(3, _c3, ctx_r0.toolTipPosition === "left", ctx_r0.toolTipPosition === "right", ctx_r0.toolTipPosition === "top", ctx_r0.toolTipPosition === "bottom"));
38
39
  } }
39
40
  export class ToolTipComponent {
40
41
  constructor() {
@@ -63,16 +64,16 @@ ToolTipComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: ToolTipCom
63
64
  } if (rf & 2) {
64
65
  let _t;
65
66
  i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.container = _t.first);
66
- } }, decls: 1, vars: 1, consts: [["id", "tooltip-container", 4, "ngIf"], ["id", "tooltip-container"], ["container", ""], ["id", "tooltip"], [4, "ngIf", "ngIfElse"], ["tooltipText", ""], ["id", "arrow", 3, "ngClass"], [4, "ngTemplateOutlet"], ["id", "tooltip-text", 3, "innerHTML", "ngStyle"]], template: function ToolTipComponent_Template(rf, ctx) { if (rf & 1) {
67
+ } }, decls: 1, vars: 1, consts: [["id", "tooltip-container", 4, "ngIf"], ["id", "tooltip-container"], ["container", ""], ["id", "tooltip"], [4, "ngIf", "ngIfElse"], ["tooltipText", ""], ["id", "arrow", 3, "ngClass"], [4, "ngTemplateOutlet", "ngTemplateOutletContext"], ["id", "tooltip-text", 3, "innerHTML", "ngStyle"]], template: function ToolTipComponent_Template(rf, ctx) { if (rf & 1) {
67
68
  i0.ɵɵtemplate(0, ToolTipComponent_div_0_Template, 7, 8, "div", 0);
68
69
  } if (rf & 2) {
69
- i0.ɵɵproperty("ngIf", ctx.toolTipText.length > 0 || ctx.tooltipTemplate);
70
+ i0.ɵɵproperty("ngIf", ctx.toolTipText.length > 0 || ctx.templateRef);
70
71
  } }, dependencies: [i1.NgClass, i1.NgIf, i1.NgTemplateOutlet, i1.NgStyle], styles: ["#tooltip-container[_ngcontent-%COMP%]{position:absolute;z-index:1}#tooltip[_ngcontent-%COMP%]{position:relative;display:block;padding:8px 12px;border-radius:8px;color:#fff;background:#181f33;font-family:Lato,sans-serif;font-style:normal;font-weight:400;font-size:14px;line-height:20px;text-align:center;letter-spacing:.2px}#tooltip-text[_ngcontent-%COMP%]{width:100%;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}#arrow[_ngcontent-%COMP%]{position:absolute;height:12px;width:12px;background:#181f33;z-index:1}.arrow-top[_ngcontent-%COMP%]{left:50%;bottom:-6px;transform:translate(-50%) rotate(-45deg);-webkit-transform:translateX(-50%) rotate(-45deg)}.arrow-bottom[_ngcontent-%COMP%]{left:50%;top:-6px;transform:translate(-50%) rotate(-45deg);-webkit-transform:translateX(-50%) rotate(-45deg)}.arrow-left[_ngcontent-%COMP%]{top:50%;right:-6px;transform:translateY(-50%) rotate(-45deg);-webkit-transform:translateY(-50%) rotate(-45deg)}.arrow-right[_ngcontent-%COMP%]{top:50%;left:-6px;transform:translateY(-50%) rotate(-45deg);-webkit-transform:translateY(-50%) rotate(-45deg)}"] });
71
72
  (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ToolTipComponent, [{
72
73
  type: Component,
73
- args: [{ selector: "mis-tooltip", template: "<div id=\"tooltip-container\" *ngIf=\"toolTipText.length > 0 || tooltipTemplate\" #container>\n <div id=\"tooltip\">\n <div *ngIf=\"tooltipTemplate; else tooltipText\">\n <ng-container *ngTemplateOutlet=\"tooltipTemplate\"></ng-container>\n </div>\n\n <ng-template #tooltipText>\n <div id=\"tooltip-text\" [innerHTML]=\"toolTipText\" \n [ngStyle]=\"{'text-align' : toolTipTextAlignment ? toolTipTextAlignment : '' }\"></div>\n </ng-template>\n\n <span\n id=\"arrow\"\n [ngClass]=\"{\n 'arrow-left': toolTipPosition === 'left',\n 'arrow-right': toolTipPosition === 'right',\n 'arrow-top': toolTipPosition === 'top',\n 'arrow-bottom': toolTipPosition === 'bottom'\n }\"\n ></span>\n </div>\n</div>\n", styles: ["#tooltip-container{position:absolute;z-index:1}#tooltip{position:relative;display:block;padding:8px 12px;border-radius:8px;color:#fff;background:#181f33;font-family:Lato,sans-serif;font-style:normal;font-weight:400;font-size:14px;line-height:20px;text-align:center;letter-spacing:.2px}#tooltip-text{width:100%;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}#arrow{position:absolute;height:12px;width:12px;background:#181f33;z-index:1}.arrow-top{left:50%;bottom:-6px;transform:translate(-50%) rotate(-45deg);-webkit-transform:translateX(-50%) rotate(-45deg)}.arrow-bottom{left:50%;top:-6px;transform:translate(-50%) rotate(-45deg);-webkit-transform:translateX(-50%) rotate(-45deg)}.arrow-left{top:50%;right:-6px;transform:translateY(-50%) rotate(-45deg);-webkit-transform:translateY(-50%) rotate(-45deg)}.arrow-right{top:50%;left:-6px;transform:translateY(-50%) rotate(-45deg);-webkit-transform:translateY(-50%) rotate(-45deg)}\n"] }]
74
+ args: [{ selector: "mis-tooltip", template: "<div id=\"tooltip-container\" *ngIf=\"toolTipText.length > 0 || templateRef\" #container>\n <div id=\"tooltip\">\n <div *ngIf=\"templateRef; else tooltipText\">\n <ng-container *ngTemplateOutlet=\"templateRef; context: {$implicit: templateContext}\"></ng-container>\n </div>\n\n <ng-template #tooltipText>\n <div id=\"tooltip-text\" [innerHTML]=\"toolTipText\" \n [ngStyle]=\"{'text-align' : toolTipTextAlignment ? toolTipTextAlignment : '' }\"></div>\n </ng-template>\n\n <span\n id=\"arrow\"\n [ngClass]=\"{\n 'arrow-left': toolTipPosition === 'left',\n 'arrow-right': toolTipPosition === 'right',\n 'arrow-top': toolTipPosition === 'top',\n 'arrow-bottom': toolTipPosition === 'bottom'\n }\"\n ></span>\n </div>\n</div>\n", styles: ["#tooltip-container{position:absolute;z-index:1}#tooltip{position:relative;display:block;padding:8px 12px;border-radius:8px;color:#fff;background:#181f33;font-family:Lato,sans-serif;font-style:normal;font-weight:400;font-size:14px;line-height:20px;text-align:center;letter-spacing:.2px}#tooltip-text{width:100%;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}#arrow{position:absolute;height:12px;width:12px;background:#181f33;z-index:1}.arrow-top{left:50%;bottom:-6px;transform:translate(-50%) rotate(-45deg);-webkit-transform:translateX(-50%) rotate(-45deg)}.arrow-bottom{left:50%;top:-6px;transform:translate(-50%) rotate(-45deg);-webkit-transform:translateX(-50%) rotate(-45deg)}.arrow-left{top:50%;right:-6px;transform:translateY(-50%) rotate(-45deg);-webkit-transform:translateY(-50%) rotate(-45deg)}.arrow-right{top:50%;left:-6px;transform:translateY(-50%) rotate(-45deg);-webkit-transform:translateY(-50%) rotate(-45deg)}\n"] }]
74
75
  }], function () { return []; }, { container: [{
75
76
  type: ViewChild,
76
77
  args: ["container"]
77
78
  }] }); })();
78
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbHRpcC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9taXMtY29tcG9uZW50cy90b29sdGlwL3Rvb2x0aXAtY29udGFpbmVyL3Rvb2x0aXAuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWlzLWNvbXBvbmVudHMvdG9vbHRpcC90b29sdGlwLWNvbnRhaW5lci90b29sdGlwLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBaUIsU0FBUyxFQUEyQyxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7Ozs7O0lDR3ZHLHdCQUFpRTs7O0lBRG5FLDJCQUErQztJQUM3QywrRkFBaUU7SUFDbkUsaUJBQU07OztJQURXLGVBQWlDO0lBQWpDLHlEQUFpQzs7OztJQUloRCx5QkFDMEY7OztJQURuRSxpRUFBeUIsdUdBQUE7Ozs7SUFQdEQsaUNBQXlGLGFBQUE7SUFFckYsdUVBRU07SUFFTix3SEFHYztJQUVkLDBCQVFRO0lBQ1YsaUJBQU0sRUFBQTs7OztJQWxCRSxlQUF1QjtJQUF2Qiw2Q0FBdUIsaUJBQUE7SUFXM0IsZUFLRTtJQUxGLGtNQUtFOztBRFZSLE1BQU0sT0FBTyxnQkFBZ0I7SUFRM0I7UUFQTyxnQkFBVyxHQUFXLEVBQUUsQ0FBQztRQUN6QixvQkFBZSxHQUFzQixRQUFRLENBQUM7UUFDOUMseUJBQW9CLEdBQVcsRUFBRSxDQUFDO0lBSzFCLENBQUM7SUFDaEIsUUFBUSxLQUFJLENBQUM7SUFDYixlQUFlO1FBQ2IsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsYUFBYTtZQUFFLE9BQU87UUFDM0MsSUFBSSxJQUFJLENBQUMsZUFBZSxLQUFLLEtBQUssSUFBSSxJQUFJLENBQUMsZUFBZSxLQUFLLFFBQVEsRUFBRTtZQUN2RSxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLGFBQWEsQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO1lBQ3RFLElBQUksQ0FBQyxTQUFTLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxJQUFJLEdBQUcsUUFBUSxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUM7WUFDckUsT0FBTztTQUNSO1FBQ0QsSUFBSSxJQUFJLENBQUMsZUFBZSxLQUFLLE1BQU0sRUFBRTtZQUNuQyxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLGFBQWEsQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO1lBQ3RFLElBQUksQ0FBQyxTQUFTLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxJQUFJLEdBQUcsQ0FBQyxRQUFRLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQztTQUNsRTtJQUNILENBQUM7O2dGQXJCVSxnQkFBZ0I7bUVBQWhCLGdCQUFnQjs7Ozs7O1FDUjdCLGlFQXFCTTs7UUFyQnVCLHdFQUErQzs7dUZEUS9ELGdCQUFnQjtjQUw1QixTQUFTOzJCQUNFLGFBQWE7c0NBVUMsU0FBUztrQkFBaEMsU0FBUzttQkFBQyxXQUFXIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWZ0ZXJWaWV3SW5pdCwgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBJbmplY3QsIE9uSW5pdCwgVGVtcGxhdGVSZWYsIFZpZXdDaGlsZCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBJVG9vbHRpcFBvc2l0aW9ucyB9IGZyb20gXCIuLi9tb2RlbHMvdG9vbHRpcC5tb2RlbFwiO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6IFwibWlzLXRvb2x0aXBcIixcbiAgdGVtcGxhdGVVcmw6IFwiLi90b29sdGlwLmNvbXBvbmVudC5odG1sXCIsXG4gIHN0eWxlVXJsczogW1wiLi90b29sdGlwLmNvbXBvbmVudC5zY3NzXCJdXG59KVxuZXhwb3J0IGNsYXNzIFRvb2xUaXBDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyVmlld0luaXQge1xuICBwdWJsaWMgdG9vbFRpcFRleHQ6IHN0cmluZyA9IFwiXCI7XG4gIHB1YmxpYyB0b29sVGlwUG9zaXRpb246IElUb29sdGlwUG9zaXRpb25zID0gXCJib3R0b21cIjtcbiAgcHVibGljIHRvb2xUaXBUZXh0QWxpZ25tZW50OiBzdHJpbmcgPSBcIlwiO1xuICB0b29sdGlwVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT5cblxuICBAVmlld0NoaWxkKFwiY29udGFpbmVyXCIpIGNvbnRhaW5lcjogRWxlbWVudFJlZjtcblxuICBjb25zdHJ1Y3RvcigpIHt9XG4gIG5nT25Jbml0KCkge31cbiAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgIGlmICghdGhpcy5jb250YWluZXI/Lm5hdGl2ZUVsZW1lbnQpIHJldHVybjtcbiAgICBpZiAodGhpcy50b29sVGlwUG9zaXRpb24gPT09IFwidG9wXCIgfHwgdGhpcy50b29sVGlwUG9zaXRpb24gPT09IFwiYm90dG9tXCIpIHtcbiAgICAgIGNvbnN0IGVsZVdpZHRoID0gdGhpcy5jb250YWluZXIubmF0aXZlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICAgIHRoaXMuY29udGFpbmVyLm5hdGl2ZUVsZW1lbnQuc3R5bGUubGVmdCA9IGVsZVdpZHRoLndpZHRoIC8gLTIgKyBcInB4XCI7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmICh0aGlzLnRvb2xUaXBQb3NpdGlvbiA9PT0gXCJsZWZ0XCIpIHtcbiAgICAgIGNvbnN0IGVsZVdpZHRoID0gdGhpcy5jb250YWluZXIubmF0aXZlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICAgIHRoaXMuY29udGFpbmVyLm5hdGl2ZUVsZW1lbnQuc3R5bGUubGVmdCA9IC1lbGVXaWR0aC53aWR0aCArIFwicHhcIjtcbiAgICB9XG4gIH1cbn1cbiIsIjxkaXYgaWQ9XCJ0b29sdGlwLWNvbnRhaW5lclwiICpuZ0lmPVwidG9vbFRpcFRleHQubGVuZ3RoID4gMCB8fCB0b29sdGlwVGVtcGxhdGVcIiAjY29udGFpbmVyPlxuICA8ZGl2IGlkPVwidG9vbHRpcFwiPlxuICAgIDxkaXYgKm5nSWY9XCJ0b29sdGlwVGVtcGxhdGU7IGVsc2UgdG9vbHRpcFRleHRcIj5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJ0b29sdGlwVGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj5cbiAgICA8L2Rpdj5cblxuICAgIDxuZy10ZW1wbGF0ZSAjdG9vbHRpcFRleHQ+XG4gICAgICA8ZGl2IGlkPVwidG9vbHRpcC10ZXh0XCIgW2lubmVySFRNTF09XCJ0b29sVGlwVGV4dFwiIFxuICAgICAgICAgICBbbmdTdHlsZV09XCJ7J3RleHQtYWxpZ24nIDogdG9vbFRpcFRleHRBbGlnbm1lbnQgPyB0b29sVGlwVGV4dEFsaWdubWVudCA6ICcnIH1cIj48L2Rpdj5cbiAgICA8L25nLXRlbXBsYXRlPlxuXG4gICAgPHNwYW5cbiAgICAgIGlkPVwiYXJyb3dcIlxuICAgICAgW25nQ2xhc3NdPVwie1xuICAgICAgICAnYXJyb3ctbGVmdCc6IHRvb2xUaXBQb3NpdGlvbiA9PT0gJ2xlZnQnLFxuICAgICAgICAnYXJyb3ctcmlnaHQnOiB0b29sVGlwUG9zaXRpb24gPT09ICdyaWdodCcsXG4gICAgICAgICdhcnJvdy10b3AnOiB0b29sVGlwUG9zaXRpb24gPT09ICd0b3AnLFxuICAgICAgICAnYXJyb3ctYm90dG9tJzogdG9vbFRpcFBvc2l0aW9uID09PSAnYm90dG9tJ1xuICAgICAgfVwiXG4gICAgPjwvc3Bhbj5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
79
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbHRpcC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9taXMtY29tcG9uZW50cy90b29sdGlwL3Rvb2x0aXAtY29udGFpbmVyL3Rvb2x0aXAuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWlzLWNvbXBvbmVudHMvdG9vbHRpcC90b29sdGlwLWNvbnRhaW5lci90b29sdGlwLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBaUIsU0FBUyxFQUEyQyxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7Ozs7O0lDR3ZHLHdCQUFvRzs7OztJQUR0RywyQkFBMkM7SUFDekMsK0ZBQW9HO0lBQ3RHLGlCQUFNOzs7SUFEVyxlQUErQjtJQUEvQixxREFBK0IsK0VBQUE7Ozs7SUFJOUMseUJBQzBGOzs7SUFEbkUsaUVBQXlCLHVHQUFBOzs7O0lBUHRELGlDQUFxRixhQUFBO0lBRWpGLHVFQUVNO0lBRU4sd0hBR2M7SUFFZCwwQkFRUTtJQUNWLGlCQUFNLEVBQUE7Ozs7SUFsQkUsZUFBbUI7SUFBbkIseUNBQW1CLGlCQUFBO0lBV3ZCLGVBS0U7SUFMRixrTUFLRTs7QURWUixNQUFNLE9BQU8sZ0JBQWdCO0lBUzNCO1FBUk8sZ0JBQVcsR0FBVyxFQUFFLENBQUM7UUFDekIsb0JBQWUsR0FBc0IsUUFBUSxDQUFDO1FBQzlDLHlCQUFvQixHQUFXLEVBQUUsQ0FBQztJQU0xQixDQUFDO0lBQ2hCLFFBQVEsS0FBSSxDQUFDO0lBQ2IsZUFBZTtRQUNiLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLGFBQWE7WUFBRSxPQUFPO1FBQzNDLElBQUksSUFBSSxDQUFDLGVBQWUsS0FBSyxLQUFLLElBQUksSUFBSSxDQUFDLGVBQWUsS0FBSyxRQUFRLEVBQUU7WUFDdkUsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxhQUFhLENBQUMscUJBQXFCLEVBQUUsQ0FBQztZQUN0RSxJQUFJLENBQUMsU0FBUyxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsSUFBSSxHQUFHLFFBQVEsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDO1lBQ3JFLE9BQU87U0FDUjtRQUNELElBQUksSUFBSSxDQUFDLGVBQWUsS0FBSyxNQUFNLEVBQUU7WUFDbkMsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxhQUFhLENBQUMscUJBQXFCLEVBQUUsQ0FBQztZQUN0RSxJQUFJLENBQUMsU0FBUyxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsSUFBSSxHQUFHLENBQUMsUUFBUSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUM7U0FDbEU7SUFDSCxDQUFDOztnRkF0QlUsZ0JBQWdCO21FQUFoQixnQkFBZ0I7Ozs7OztRQ1I3QixpRUFxQk07O1FBckJ1QixvRUFBMkM7O3VGRFEzRCxnQkFBZ0I7Y0FMNUIsU0FBUzsyQkFDRSxhQUFhO3NDQVdDLFNBQVM7a0JBQWhDLFNBQVM7bUJBQUMsV0FBVyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFmdGVyVmlld0luaXQsIENvbXBvbmVudCwgRWxlbWVudFJlZiwgSW5qZWN0LCBPbkluaXQsIFRlbXBsYXRlUmVmLCBWaWV3Q2hpbGQgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgSVRvb2x0aXBQb3NpdGlvbnMgfSBmcm9tIFwiLi4vbW9kZWxzL3Rvb2x0aXAubW9kZWxcIjtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiBcIm1pcy10b29sdGlwXCIsXG4gIHRlbXBsYXRlVXJsOiBcIi4vdG9vbHRpcC5jb21wb25lbnQuaHRtbFwiLFxuICBzdHlsZVVybHM6IFtcIi4vdG9vbHRpcC5jb21wb25lbnQuc2Nzc1wiXVxufSlcbmV4cG9ydCBjbGFzcyBUb29sVGlwQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBBZnRlclZpZXdJbml0IHtcbiAgcHVibGljIHRvb2xUaXBUZXh0OiBzdHJpbmcgPSBcIlwiO1xuICBwdWJsaWMgdG9vbFRpcFBvc2l0aW9uOiBJVG9vbHRpcFBvc2l0aW9ucyA9IFwiYm90dG9tXCI7XG4gIHB1YmxpYyB0b29sVGlwVGV4dEFsaWdubWVudDogc3RyaW5nID0gXCJcIjtcbiAgdGVtcGxhdGVSZWY6IFRlbXBsYXRlUmVmPGFueT5cbiAgdGVtcGxhdGVDb250ZXh0OiBhbnk7XG5cbiAgQFZpZXdDaGlsZChcImNvbnRhaW5lclwiKSBjb250YWluZXI6IEVsZW1lbnRSZWY7XG5cbiAgY29uc3RydWN0b3IoKSB7fVxuICBuZ09uSW5pdCgpIHt9XG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICBpZiAoIXRoaXMuY29udGFpbmVyPy5uYXRpdmVFbGVtZW50KSByZXR1cm47XG4gICAgaWYgKHRoaXMudG9vbFRpcFBvc2l0aW9uID09PSBcInRvcFwiIHx8IHRoaXMudG9vbFRpcFBvc2l0aW9uID09PSBcImJvdHRvbVwiKSB7XG4gICAgICBjb25zdCBlbGVXaWR0aCA9IHRoaXMuY29udGFpbmVyLm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgICB0aGlzLmNvbnRhaW5lci5uYXRpdmVFbGVtZW50LnN0eWxlLmxlZnQgPSBlbGVXaWR0aC53aWR0aCAvIC0yICsgXCJweFwiO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAodGhpcy50b29sVGlwUG9zaXRpb24gPT09IFwibGVmdFwiKSB7XG4gICAgICBjb25zdCBlbGVXaWR0aCA9IHRoaXMuY29udGFpbmVyLm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgICB0aGlzLmNvbnRhaW5lci5uYXRpdmVFbGVtZW50LnN0eWxlLmxlZnQgPSAtZWxlV2lkdGgud2lkdGggKyBcInB4XCI7XG4gICAgfVxuICB9XG59XG5cbiIsIjxkaXYgaWQ9XCJ0b29sdGlwLWNvbnRhaW5lclwiICpuZ0lmPVwidG9vbFRpcFRleHQubGVuZ3RoID4gMCB8fCB0ZW1wbGF0ZVJlZlwiICNjb250YWluZXI+XG4gIDxkaXYgaWQ9XCJ0b29sdGlwXCI+XG4gICAgPGRpdiAqbmdJZj1cInRlbXBsYXRlUmVmOyBlbHNlIHRvb2x0aXBUZXh0XCI+XG4gICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwidGVtcGxhdGVSZWY7IGNvbnRleHQ6IHskaW1wbGljaXQ6IHRlbXBsYXRlQ29udGV4dH1cIj48L25nLWNvbnRhaW5lcj5cbiAgICA8L2Rpdj5cblxuICAgIDxuZy10ZW1wbGF0ZSAjdG9vbHRpcFRleHQ+XG4gICAgICA8ZGl2IGlkPVwidG9vbHRpcC10ZXh0XCIgW2lubmVySFRNTF09XCJ0b29sVGlwVGV4dFwiIFxuICAgICAgICAgICBbbmdTdHlsZV09XCJ7J3RleHQtYWxpZ24nIDogdG9vbFRpcFRleHRBbGlnbm1lbnQgPyB0b29sVGlwVGV4dEFsaWdubWVudCA6ICcnIH1cIj48L2Rpdj5cbiAgICA8L25nLXRlbXBsYXRlPlxuXG4gICAgPHNwYW5cbiAgICAgIGlkPVwiYXJyb3dcIlxuICAgICAgW25nQ2xhc3NdPVwie1xuICAgICAgICAnYXJyb3ctbGVmdCc6IHRvb2xUaXBQb3NpdGlvbiA9PT0gJ2xlZnQnLFxuICAgICAgICAnYXJyb3ctcmlnaHQnOiB0b29sVGlwUG9zaXRpb24gPT09ICdyaWdodCcsXG4gICAgICAgICdhcnJvdy10b3AnOiB0b29sVGlwUG9zaXRpb24gPT09ICd0b3AnLFxuICAgICAgICAnYXJyb3ctYm90dG9tJzogdG9vbFRpcFBvc2l0aW9uID09PSAnYm90dG9tJ1xuICAgICAgfVwiXG4gICAgPjwvc3Bhbj5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
@@ -36,6 +36,9 @@ export class ToolTipDirective {
36
36
  set tooltipTemplate(value) {
37
37
  this.templateRef = value;
38
38
  }
39
+ set tooltipTemplateContext(value) {
40
+ this.templateContext = value;
41
+ }
39
42
  onMouseEnter() {
40
43
  if (this.showOnHover)
41
44
  this.displayToolTip();
@@ -70,7 +73,8 @@ export class ToolTipDirective {
70
73
  this.overlayRef = this.overlay.create(config);
71
74
  const tempRef = new ComponentPortal(ToolTipComponent, this.viewContainerRef);
72
75
  const tooltipRef = this.overlayRef.attach(tempRef);
73
- tooltipRef.instance.tooltipTemplate = this.templateRef;
76
+ tooltipRef.instance.templateRef = this.templateRef;
77
+ tooltipRef.instance.templateContext = this.templateContext;
74
78
  tooltipRef.instance.toolTipText = this.toolTipText;
75
79
  tooltipRef.instance.toolTipPosition = this.toolTipPosition;
76
80
  tooltipRef.instance.toolTipTextAlignment = this.toolTipTextAlignment;
@@ -109,7 +113,7 @@ export class ToolTipDirective {
109
113
  ToolTipDirective.ɵfac = function ToolTipDirective_Factory(t) { return new (t || ToolTipDirective)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i1.Overlay), i0.ɵɵdirectiveInject(i0.ViewContainerRef)); };
110
114
  ToolTipDirective.ɵdir = /*@__PURE__*/ i0.ɵɵdefineDirective({ type: ToolTipDirective, selectors: [["", "misToolTip", ""]], hostBindings: function ToolTipDirective_HostBindings(rf, ctx) { if (rf & 1) {
111
115
  i0.ɵɵlistener("mouseenter", function ToolTipDirective_mouseenter_HostBindingHandler() { return ctx.onMouseEnter(); })("mouseleave", function ToolTipDirective_mouseleave_HostBindingHandler() { return ctx.onMouseLeave(); });
112
- } }, inputs: { showOnHover: "showOnHover", showToolTip: "showToolTip", text: "text", position: "position", alignText: "alignText", tooltipTemplate: "tooltipTemplate" } });
116
+ } }, inputs: { showOnHover: "showOnHover", showToolTip: "showToolTip", text: "text", position: "position", alignText: "alignText", tooltipTemplate: "tooltipTemplate", tooltipTemplateContext: "tooltipTemplateContext" } });
113
117
  (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ToolTipDirective, [{
114
118
  type: Directive,
115
119
  args: [{
@@ -127,6 +131,8 @@ ToolTipDirective.ɵdir = /*@__PURE__*/ i0.ɵɵdefineDirective({ type: ToolTipDir
127
131
  type: Input
128
132
  }], tooltipTemplate: [{
129
133
  type: Input
134
+ }], tooltipTemplateContext: [{
135
+ type: Input
130
136
  }], onMouseEnter: [{
131
137
  type: HostListener,
132
138
  args: ["mouseenter"]
@@ -134,4 +140,4 @@ ToolTipDirective.ɵdir = /*@__PURE__*/ i0.ɵɵdefineDirective({ type: ToolTipDir
134
140
  type: HostListener,
135
141
  args: ["mouseleave"]
136
142
  }] }); })();
137
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbHRpcC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9taXMtY29tcG9uZW50cy90b29sdGlwL3Rvb2x0aXAuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBaUIsU0FBUyxFQUFjLFlBQVksRUFBRSxLQUFLLEVBQXlDLE1BQU0sZUFBZSxDQUFDO0FBQ2pJLE9BQU8sRUFBVyxhQUFhLEVBQWMsTUFBTSxzQkFBc0IsQ0FBQztBQUMxRSxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDdEMsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQ3pFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlDQUFpQyxDQUFDOzs7QUFNbkUsTUFBTSxPQUFPLGdCQUFnQjtJQWtDM0IsWUFBb0IsT0FBbUIsRUFBVSxPQUFnQixFQUFVLGdCQUFrQztRQUF6RixZQUFPLEdBQVAsT0FBTyxDQUFZO1FBQVUsWUFBTyxHQUFQLE9BQU8sQ0FBUztRQUFVLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFqQ3RHLHVCQUFrQixHQUFZLEtBQUssQ0FBQztRQUNwQyxnQkFBVyxHQUFXLEVBQUUsQ0FBQztRQUN6Qix5QkFBb0IsR0FBVyxFQUFFLENBQUM7UUFDbEMsb0JBQWUsR0FBc0IsUUFBUSxDQUFDO1FBSTVDLGdCQUFXLEdBQVksSUFBSSxDQUFDO0lBMEIyRSxDQUFDO0lBekJqSCxJQUFhLFdBQVcsQ0FBQyxLQUFjO1FBQ3JDLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxLQUFLLENBQUM7UUFDaEMsSUFBSSxLQUFLO1lBQUUsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDOztZQUM1QixJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDMUIsQ0FBQztJQUNE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WUFDTyxXQUFXO2tCQUF2QixLQUFLO1lBS08sSUFBSTtrQkFBaEIsS0FBSztZQUdPLFFBQVE7a0JBQXBCLEtBQUs7WUFHTyxTQUFTO2tCQUFyQixLQUFLO1lBR08sZUFBZTtrQkFBM0IsS0FBSztZQUlzQixZQUFZO2tCQUF2QyxZQUFZO21CQUFDLFlBQVk7WUFHRSxZQUFZO2tCQUF2QyxZQUFZO21CQUFDLFlBQVkiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBZnRlclZpZXdJbml0LCBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIEhvc3RMaXN0ZW5lciwgSW5wdXQsIE9uSW5pdCwgVGVtcGxhdGVSZWYsIFZpZXdDb250YWluZXJSZWYgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgT3ZlcmxheSwgT3ZlcmxheUNvbmZpZywgT3ZlcmxheVJlZiB9IGZyb20gXCJAYW5ndWxhci9jZGsvb3ZlcmxheVwiO1xuaW1wb3J0IHsgdGFrZSB9IGZyb20gXCJyeGpzL29wZXJhdG9yc1wiO1xuaW1wb3J0IHsgQ29tcG9uZW50UG9ydGFsIH0gZnJvbSBcIkBhbmd1bGFyL2Nkay9wb3J0YWxcIjtcbmltcG9ydCB7IFRvb2xUaXBDb21wb25lbnQgfSBmcm9tIFwiLi90b29sdGlwLWNvbnRhaW5lci90b29sdGlwLmNvbXBvbmVudFwiO1xuaW1wb3J0IHsgZ2VuUG9zaXRpb25QYWlycyB9IGZyb20gXCJtaXMtY3J5c3RhbC1kZXNpZ24tc3lzdGVtL3V0aWxzXCI7XG5pbXBvcnQgeyBJVG9vbHRpcFBvc2l0aW9ucyB9IGZyb20gXCIuL21vZGVscy90b29sdGlwLm1vZGVsXCI7XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogXCJbbWlzVG9vbFRpcF1cIlxufSlcbmV4cG9ydCBjbGFzcyBUb29sVGlwRGlyZWN0aXZlIGltcGxlbWVudHMgT25Jbml0LCBBZnRlclZpZXdJbml0IHtcbiAgcHVibGljIGlzVG9vbFRpcERpc3BsYXllZDogYm9vbGVhbiA9IGZhbHNlO1xuICBwdWJsaWMgdG9vbFRpcFRleHQ6IHN0cmluZyA9IFwiXCI7XG4gIHB1YmxpYyB0b29sVGlwVGV4dEFsaWdubWVudDogc3RyaW5nID0gXCJcIjtcbiAgcHVibGljIHRvb2xUaXBQb3NpdGlvbjogSVRvb2x0aXBQb3NpdGlvbnMgPSBcImJvdHRvbVwiO1xuICBwcml2YXRlIG92ZXJsYXlSZWY6IE92ZXJsYXlSZWY7XG4gIHByaXZhdGUgdGVtcGxhdGVSZWY6IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgQElucHV0KCkgc2hvd09uSG92ZXI6IGJvb2xlYW4gPSB0cnVlO1xuICBASW5wdXQoKSBzZXQgc2hvd1Rvb2xUaXAodmFsdWU6IGJvb2xlYW4pIHtcbiAgICB0aGlzLmlzVG9vbFRpcERpc3BsYXllZCA9IHZhbHVlO1xuICAgIGlmICh2YWx1ZSkgdGhpcy5kaXNwbGF5VG9vbFRpcCgpO1xuICAgIGVsc2UgdGhpcy5oaWRlVG9vbFRpcCgpO1xuICB9XG4gIEBJbnB1dCgpIHNldCB0ZXh0KHZhbHVlOiBzdHJpbmcpIHtcbiAgICB0aGlzLnRvb2xUaXBUZXh0ID0gdmFsdWU7XG4gIH1cbiAgQElucHV0KCkgc2V0IHBvc2l0aW9uKHZhbHVlOiBJVG9vbHRpcFBvc2l0aW9ucykge1xuICAgIHRoaXMudG9vbFRpcFBvc2l0aW9uID0gdmFsdWU7XG4gIH1cbiAgQElucHV0KCkgc2V0IGFsaWduVGV4dCh2YWx1ZTogc3RyaW5nKSB7XG4gICAgdGhpcy50b29sVGlwVGV4dEFsaWdubWVudCA9IHZhbHVlO1xuICB9XG4gIEBJbnB1dCgpIHNldCB0b29sdGlwVGVtcGxhdGUodmFsdWU6IFRlbXBsYXRlUmVmPGFueT4pe1xuICAgIHRoaXMudGVtcGxhdGVSZWYgPSB2YWx1ZTtcbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoXCJtb3VzZWVudGVyXCIpIG9uTW91c2VFbnRlcigpIHtcbiAgICBpZiAodGhpcy5zaG93T25Ib3ZlcikgdGhpcy5kaXNwbGF5VG9vbFRpcCgpO1xuICB9XG4gIEBIb3N0TGlzdGVuZXIoXCJtb3VzZWxlYXZlXCIpIG9uTW91c2VMZWF2ZSgpIHtcbiAgICBpZiAodGhpcy5zaG93T25Ib3ZlcikgdGhpcy5oaWRlVG9vbFRpcCgpO1xuICB9XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBlbGVtZW50OiBFbGVtZW50UmVmLCBwcml2YXRlIG92ZXJsYXk6IE92ZXJsYXksIHByaXZhdGUgdmlld0NvbnRhaW5lclJlZjogVmlld0NvbnRhaW5lclJlZikge31cblxuICBuZ09uSW5pdCgpIHt9XG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICBpZiAodGhpcy5pc1Rvb2xUaXBEaXNwbGF5ZWQpIHRoaXMuZGlzcGxheVRvb2xUaXAoKTtcbiAgICBlbHNlIHRoaXMuaGlkZVRvb2xUaXAoKTtcbiAgfVxuXG4gIGRpc3BsYXlUb29sVGlwKCkge1xuICAgIGNvbnN0IHBvc2l0aW9uU3RyYXRlZ3kgPSB0aGlzLm92ZXJsYXlcbiAgICAgIC5wb3NpdGlvbigpXG4gICAgICAuZmxleGlibGVDb25uZWN0ZWRUbyh0aGlzLmVsZW1lbnQpXG4gICAgICAud2l0aFBvc2l0aW9ucyhcbiAgICAgICAgZ2VuUG9zaXRpb25QYWlycyhcbiAgICAgICAgICB7XG4gICAgICAgICAgICBwb3NpdGlvblg6IFwiY2VudGVyXCIsXG4gICAgICAgICAgICBwb3NpdGlvblk6IHRoaXMudG9vbFRpcFBvc2l0aW9uID09PSBcInRvcFwiID8gXCJ0b3BcIiA6IFwiY2VudGVyXCIsXG4gICAgICAgICAgICBvZmZzZXRYOiB0aGlzLnBvc2l0aW9uVG9vbHRpcChcIk9GRlNFVF9YXCIpLFxuICAgICAgICAgICAgb2Zmc2V0WTogdGhpcy5wb3NpdGlvblRvb2x0aXAoXCJPRkZTRVRfWVwiKVxuICAgICAgICAgIH0sXG4gICAgICAgICAgZmFsc2VcbiAgICAgICAgKVxuICAgICAgKVxuICAgICAgLndpdGhQdXNoKHRydWUpO1xuICAgIGNvbnN0IGNvbmZpZyA9IG5ldyBPdmVybGF5Q29uZmlnKHtcbiAgICAgIGhhc0JhY2tkcm9wOiBmYWxzZSxcbiAgICAgIHBvc2l0aW9uU3RyYXRlZ3ksXG4gICAgICBzY3JvbGxTdHJhdGVneTogdGhpcy5vdmVybGF5LnNjcm9sbFN0cmF0ZWdpZXMucmVwb3NpdGlvbigpXG4gICAgfSk7XG4gICAgdGhpcy5vdmVybGF5UmVmID0gdGhpcy5vdmVybGF5LmNyZWF0ZShjb25maWcpO1xuICAgIGNvbnN0IHRlbXBSZWYgPSBuZXcgQ29tcG9uZW50UG9ydGFsKFRvb2xUaXBDb21wb25lbnQsIHRoaXMudmlld0NvbnRhaW5lclJlZik7XG4gICAgY29uc3QgdG9vbHRpcFJlZiA9IHRoaXMub3ZlcmxheVJlZi5hdHRhY2godGVtcFJlZik7XG4gICAgdG9vbHRpcFJlZi5pbnN0YW5jZS50b29sdGlwVGVtcGxhdGUgPSB0aGlzLnRlbXBsYXRlUmVmO1xuICAgIHRvb2x0aXBSZWYuaW5zdGFuY2UudG9vbFRpcFRleHQgPSB0aGlzLnRvb2xUaXBUZXh0O1xuICAgIHRvb2x0aXBSZWYuaW5zdGFuY2UudG9vbFRpcFBvc2l0aW9uID0gdGhpcy50b29sVGlwUG9zaXRpb247XG4gICAgdG9vbHRpcFJlZi5pbnN0YW5jZS50b29sVGlwVGV4dEFsaWdubWVudCA9IHRoaXMudG9vbFRpcFRleHRBbGlnbm1lbnQ7XG4gICAgdGhpcy5vdmVybGF5UmVmXG4gICAgICAuYmFja2Ryb3BDbGljaygpXG4gICAgICAucGlwZSh0YWtlKDEpKVxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgIHRoaXMuaGlkZVRvb2xUaXAoKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgcG9zaXRpb25Ub29sdGlwKHR5cGU6IFwiT0ZGU0VUX1hcIiB8IFwiT0ZGU0VUX1lcIikge1xuICAgIGlmICh0eXBlID09PSBcIk9GRlNFVF9YXCIpIHtcbiAgICAgIHJldHVybiB0aGlzLnRvb2xUaXBQb3NpdGlvbiA9PT0gXCJyaWdodFwiXG4gICAgICAgID8gdGhpcy5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQub2Zmc2V0V2lkdGggLyAyICsgOFxuICAgICAgICA6IHRoaXMudG9vbFRpcFBvc2l0aW9uID09PSBcImxlZnRcIlxuICAgICAgICA/ICh0aGlzLmVsZW1lbnQubmF0aXZlRWxlbWVudC5vZmZzZXRXaWR0aCAvIDIgKyA4KSAqIC0xXG4gICAgICAgIDogdGhpcy50b29sVGlwUG9zaXRpb24gPT09IFwidG9wXCIgfHwgdGhpcy50b29sVGlwUG9zaXRpb24gPT09IFwiYm90dG9tXCJcbiAgICAgICAgPyAwXG4gICAgICAgIDogODtcbiAgICB9XG4gICAgaWYgKHR5cGUgIT09IFwiT0ZGU0VUX1lcIikgcmV0dXJuO1xuICAgIHJldHVybiB0aGlzLnRvb2xUaXBQb3NpdGlvbiA9PT0gXCJyaWdodFwiIHx8IHRoaXMudG9vbFRpcFBvc2l0aW9uID09PSBcImxlZnRcIlxuICAgICAgPyAtMThcbiAgICAgIDogdGhpcy50b29sVGlwUG9zaXRpb24gPT09IFwidG9wXCJcbiAgICAgID8gLTQ0XG4gICAgICA6IHRoaXMudG9vbFRpcFBvc2l0aW9uID09PSBcImJvdHRvbVwiXG4gICAgICA/IHRoaXMuZWxlbWVudC5uYXRpdmVFbGVtZW50Lm9mZnNldEhlaWdodCAvIDIgKyA4XG4gICAgICA6IDg7XG4gIH1cblxuICBoaWRlVG9vbFRpcCgpIHtcbiAgICB0aGlzLm92ZXJsYXlSZWY/LmRldGFjaCgpO1xuICAgIHRoaXMub3ZlcmxheVJlZj8uZGlzcG9zZSgpO1xuICB9XG59XG4iXX0=
143
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbHRpcC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9taXMtY29tcG9uZW50cy90b29sdGlwL3Rvb2x0aXAuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBaUIsU0FBUyxFQUFjLFlBQVksRUFBRSxLQUFLLEVBQXlDLE1BQU0sZUFBZSxDQUFDO0FBQ2pJLE9BQU8sRUFBVyxhQUFhLEVBQWMsTUFBTSxzQkFBc0IsQ0FBQztBQUMxRSxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDdEMsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQ3pFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlDQUFpQyxDQUFDOzs7QUFNbkUsTUFBTSxPQUFPLGdCQUFnQjtJQXNDM0IsWUFBb0IsT0FBbUIsRUFBVSxPQUFnQixFQUFVLGdCQUFrQztRQUF6RixZQUFPLEdBQVAsT0FBTyxDQUFZO1FBQVUsWUFBTyxHQUFQLE9BQU8sQ0FBUztRQUFVLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFyQ3RHLHVCQUFrQixHQUFZLEtBQUssQ0FBQztRQUNwQyxnQkFBVyxHQUFXLEVBQUUsQ0FBQztRQUN6Qix5QkFBb0IsR0FBVyxFQUFFLENBQUM7UUFDbEMsb0JBQWUsR0FBc0IsUUFBUSxDQUFDO1FBSzVDLGdCQUFXLEdBQVksSUFBSSxDQUFDO0lBNkIyRSxDQUFDO0lBNUJqSCxJQUFhLFdBQVcsQ0FBQyxLQUFjO1FBQ3JDLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxLQUFLLENBQUM7UUFDaEMsSUFBSSxLQUFLO1lBQUUsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDOztZQUM1QixJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDMUIsQ0FBQztJQUNE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MUdVLGdCQUFnQjttRUFBaEIsZ0JBQWdCO3VHQUFoQixrQkFBYyxzRkFBZCxrQkFBYzs7dUZBQWQsZ0JBQWdCO2NBSDVCLFNBQVM7ZUFBQztnQkFDVCxRQUFRLEVBQUUsY0FBYzthQUN6QjtrSEFVVSxXQUFXO2tCQUFuQixLQUFLO1lBQ08sV0FBVztrQkFBdkIsS0FBSztZQUtPLElBQUk7a0JBQWhCLEtBQUs7WUFHTyxRQUFRO2tCQUFwQixLQUFLO1lBR08sU0FBUztrQkFBckIsS0FBSztZQUdPLGVBQWU7a0JBQTNCLEtBQUs7WUFHTyxzQkFBc0I7a0JBQWxDLEtBQUs7WUFJc0IsWUFBWTtrQkFBdkMsWUFBWTttQkFBQyxZQUFZO1lBR0UsWUFBWTtrQkFBdkMsWUFBWTttQkFBQyxZQUFZIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWZ0ZXJWaWV3SW5pdCwgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBIb3N0TGlzdGVuZXIsIElucHV0LCBPbkluaXQsIFRlbXBsYXRlUmVmLCBWaWV3Q29udGFpbmVyUmVmIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IE92ZXJsYXksIE92ZXJsYXlDb25maWcsIE92ZXJsYXlSZWYgfSBmcm9tIFwiQGFuZ3VsYXIvY2RrL292ZXJsYXlcIjtcbmltcG9ydCB7IHRha2UgfSBmcm9tIFwicnhqcy9vcGVyYXRvcnNcIjtcbmltcG9ydCB7IENvbXBvbmVudFBvcnRhbCB9IGZyb20gXCJAYW5ndWxhci9jZGsvcG9ydGFsXCI7XG5pbXBvcnQgeyBUb29sVGlwQ29tcG9uZW50IH0gZnJvbSBcIi4vdG9vbHRpcC1jb250YWluZXIvdG9vbHRpcC5jb21wb25lbnRcIjtcbmltcG9ydCB7IGdlblBvc2l0aW9uUGFpcnMgfSBmcm9tIFwibWlzLWNyeXN0YWwtZGVzaWduLXN5c3RlbS91dGlsc1wiO1xuaW1wb3J0IHsgSVRvb2x0aXBQb3NpdGlvbnMgfSBmcm9tIFwiLi9tb2RlbHMvdG9vbHRpcC5tb2RlbFwiO1xuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6IFwiW21pc1Rvb2xUaXBdXCJcbn0pXG5leHBvcnQgY2xhc3MgVG9vbFRpcERpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCB7XG4gIHB1YmxpYyBpc1Rvb2xUaXBEaXNwbGF5ZWQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgcHVibGljIHRvb2xUaXBUZXh0OiBzdHJpbmcgPSBcIlwiO1xuICBwdWJsaWMgdG9vbFRpcFRleHRBbGlnbm1lbnQ6IHN0cmluZyA9IFwiXCI7XG4gIHB1YmxpYyB0b29sVGlwUG9zaXRpb246IElUb29sdGlwUG9zaXRpb25zID0gXCJib3R0b21cIjtcbiAgcHJpdmF0ZSBvdmVybGF5UmVmOiBPdmVybGF5UmVmO1xuICBwcml2YXRlIHRlbXBsYXRlUmVmOiBUZW1wbGF0ZVJlZjxhbnk+O1xuICBwcml2YXRlIHRlbXBsYXRlQ29udGV4dDogYW55O1xuXG4gIEBJbnB1dCgpIHNob3dPbkhvdmVyOiBib29sZWFuID0gdHJ1ZTtcbiAgQElucHV0KCkgc2V0IHNob3dUb29sVGlwKHZhbHVlOiBib29sZWFuKSB7XG4gICAgdGhpcy5pc1Rvb2xUaXBEaXNwbGF5ZWQgPSB2YWx1ZTtcbiAgICBpZiAodmFsdWUpIHRoaXMuZGlzcGxheVRvb2xUaXAoKTtcbiAgICBlbHNlIHRoaXMuaGlkZVRvb2xUaXAoKTtcbiAgfVxuICBASW5wdXQoKSBzZXQgdGV4dCh2YWx1ZTogc3RyaW5nKSB7XG4gICAgdGhpcy50b29sVGlwVGV4dCA9IHZhbHVlO1xuICB9XG4gIEBJbnB1dCgpIHNldCBwb3NpdGlvbih2YWx1ZTogSVRvb2x0aXBQb3NpdGlvbnMpIHtcbiAgICB0aGlzLnRvb2xUaXBQb3NpdGlvbiA9IHZhbHVlO1xuICB9XG4gIEBJbnB1dCgpIHNldCBhbGlnblRleHQodmFsdWU6IHN0cmluZykge1xuICAgIHRoaXMudG9vbFRpcFRleHRBbGlnbm1lbnQgPSB2YWx1ZTtcbiAgfVxuICBASW5wdXQoKSBzZXQgdG9vbHRpcFRlbXBsYXRlKHZhbHVlOiBUZW1wbGF0ZVJlZjxhbnk+KXtcbiAgICB0aGlzLnRlbXBsYXRlUmVmID0gdmFsdWU7XG4gIH1cbiAgQElucHV0KCkgc2V0IHRvb2x0aXBUZW1wbGF0ZUNvbnRleHQodmFsdWU6IGFueSl7XG4gICAgdGhpcy50ZW1wbGF0ZUNvbnRleHQgPSB2YWx1ZTtcbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoXCJtb3VzZWVudGVyXCIpIG9uTW91c2VFbnRlcigpIHtcbiAgICBpZiAodGhpcy5zaG93T25Ib3ZlcikgdGhpcy5kaXNwbGF5VG9vbFRpcCgpO1xuICB9XG4gIEBIb3N0TGlzdGVuZXIoXCJtb3VzZWxlYXZlXCIpIG9uTW91c2VMZWF2ZSgpIHtcbiAgICBpZiAodGhpcy5zaG93T25Ib3ZlcikgdGhpcy5oaWRlVG9vbFRpcCgpO1xuICB9XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBlbGVtZW50OiBFbGVtZW50UmVmLCBwcml2YXRlIG92ZXJsYXk6IE92ZXJsYXksIHByaXZhdGUgdmlld0NvbnRhaW5lclJlZjogVmlld0NvbnRhaW5lclJlZikge31cblxuICBuZ09uSW5pdCgpIHt9XG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICBpZiAodGhpcy5pc1Rvb2xUaXBEaXNwbGF5ZWQpIHRoaXMuZGlzcGxheVRvb2xUaXAoKTtcbiAgICBlbHNlIHRoaXMuaGlkZVRvb2xUaXAoKTtcbiAgfVxuXG4gIGRpc3BsYXlUb29sVGlwKCkge1xuICAgIGNvbnN0IHBvc2l0aW9uU3RyYXRlZ3kgPSB0aGlzLm92ZXJsYXlcbiAgICAgIC5wb3NpdGlvbigpXG4gICAgICAuZmxleGlibGVDb25uZWN0ZWRUbyh0aGlzLmVsZW1lbnQpXG4gICAgICAud2l0aFBvc2l0aW9ucyhcbiAgICAgICAgZ2VuUG9zaXRpb25QYWlycyhcbiAgICAgICAgICB7XG4gICAgICAgICAgICBwb3NpdGlvblg6IFwiY2VudGVyXCIsXG4gICAgICAgICAgICBwb3NpdGlvblk6IHRoaXMudG9vbFRpcFBvc2l0aW9uID09PSBcInRvcFwiID8gXCJ0b3BcIiA6IFwiY2VudGVyXCIsXG4gICAgICAgICAgICBvZmZzZXRYOiB0aGlzLnBvc2l0aW9uVG9vbHRpcChcIk9GRlNFVF9YXCIpLFxuICAgICAgICAgICAgb2Zmc2V0WTogdGhpcy5wb3NpdGlvblRvb2x0aXAoXCJPRkZTRVRfWVwiKVxuICAgICAgICAgIH0sXG4gICAgICAgICAgZmFsc2VcbiAgICAgICAgKVxuICAgICAgKVxuICAgICAgLndpdGhQdXNoKHRydWUpO1xuICAgIGNvbnN0IGNvbmZpZyA9IG5ldyBPdmVybGF5Q29uZmlnKHtcbiAgICAgIGhhc0JhY2tkcm9wOiBmYWxzZSxcbiAgICAgIHBvc2l0aW9uU3RyYXRlZ3ksXG4gICAgICBzY3JvbGxTdHJhdGVneTogdGhpcy5vdmVybGF5LnNjcm9sbFN0cmF0ZWdpZXMucmVwb3NpdGlvbigpXG4gICAgfSk7XG4gICAgdGhpcy5vdmVybGF5UmVmID0gdGhpcy5vdmVybGF5LmNyZWF0ZShjb25maWcpO1xuICAgIGNvbnN0IHRlbXBSZWYgPSBuZXcgQ29tcG9uZW50UG9ydGFsKFRvb2xUaXBDb21wb25lbnQsIHRoaXMudmlld0NvbnRhaW5lclJlZik7XG4gICAgY29uc3QgdG9vbHRpcFJlZiA9IHRoaXMub3ZlcmxheVJlZi5hdHRhY2godGVtcFJlZik7XG4gICAgdG9vbHRpcFJlZi5pbnN0YW5jZS50ZW1wbGF0ZVJlZiA9IHRoaXMudGVtcGxhdGVSZWY7XG4gICAgdG9vbHRpcFJlZi5pbnN0YW5jZS50ZW1wbGF0ZUNvbnRleHQgPSB0aGlzLnRlbXBsYXRlQ29udGV4dDtcbiAgICB0b29sdGlwUmVmLmluc3RhbmNlLnRvb2xUaXBUZXh0ID0gdGhpcy50b29sVGlwVGV4dDtcbiAgICB0b29sdGlwUmVmLmluc3RhbmNlLnRvb2xUaXBQb3NpdGlvbiA9IHRoaXMudG9vbFRpcFBvc2l0aW9uO1xuICAgIHRvb2x0aXBSZWYuaW5zdGFuY2UudG9vbFRpcFRleHRBbGlnbm1lbnQgPSB0aGlzLnRvb2xUaXBUZXh0QWxpZ25tZW50O1xuICAgIHRoaXMub3ZlcmxheVJlZlxuICAgICAgLmJhY2tkcm9wQ2xpY2soKVxuICAgICAgLnBpcGUodGFrZSgxKSlcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICB0aGlzLmhpZGVUb29sVGlwKCk7XG4gICAgICB9KTtcbiAgfVxuXG4gIHBvc2l0aW9uVG9vbHRpcCh0eXBlOiBcIk9GRlNFVF9YXCIgfCBcIk9GRlNFVF9ZXCIpIHtcbiAgICBpZiAodHlwZSA9PT0gXCJPRkZTRVRfWFwiKSB7XG4gICAgICByZXR1cm4gdGhpcy50b29sVGlwUG9zaXRpb24gPT09IFwicmlnaHRcIlxuICAgICAgICA/IHRoaXMuZWxlbWVudC5uYXRpdmVFbGVtZW50Lm9mZnNldFdpZHRoIC8gMiArIDhcbiAgICAgICAgOiB0aGlzLnRvb2xUaXBQb3NpdGlvbiA9PT0gXCJsZWZ0XCJcbiAgICAgICAgPyAodGhpcy5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQub2Zmc2V0V2lkdGggLyAyICsgOCkgKiAtMVxuICAgICAgICA6IHRoaXMudG9vbFRpcFBvc2l0aW9uID09PSBcInRvcFwiIHx8IHRoaXMudG9vbFRpcFBvc2l0aW9uID09PSBcImJvdHRvbVwiXG4gICAgICAgID8gMFxuICAgICAgICA6IDg7XG4gICAgfVxuICAgIGlmICh0eXBlICE9PSBcIk9GRlNFVF9ZXCIpIHJldHVybjtcbiAgICByZXR1cm4gdGhpcy50b29sVGlwUG9zaXRpb24gPT09IFwicmlnaHRcIiB8fCB0aGlzLnRvb2xUaXBQb3NpdGlvbiA9PT0gXCJsZWZ0XCJcbiAgICAgID8gLTE4XG4gICAgICA6IHRoaXMudG9vbFRpcFBvc2l0aW9uID09PSBcInRvcFwiXG4gICAgICA/IC00NFxuICAgICAgOiB0aGlzLnRvb2xUaXBQb3NpdGlvbiA9PT0gXCJib3R0b21cIlxuICAgICAgPyB0aGlzLmVsZW1lbnQubmF0aXZlRWxlbWVudC5vZmZzZXRIZWlnaHQgLyAyICsgOFxuICAgICAgOiA4O1xuICB9XG5cbiAgaGlkZVRvb2xUaXAoKSB7XG4gICAgdGhpcy5vdmVybGF5UmVmPy5kZXRhY2goKTtcbiAgICB0aGlzLm92ZXJsYXlSZWY/LmRpc3Bvc2UoKTtcbiAgfVxufVxuXG4iXX0=