@acorex/components 18.14.1-next.0 → 18.14.1-next.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (159) hide show
  1. package/calendar/lib/calendar.component.d.ts +16 -5
  2. package/calendar/lib/calendar.module.d.ts +2 -1
  3. package/check-box/lib/check-box.component.d.ts +13 -5
  4. package/cron-job/README.md +3 -0
  5. package/cron-job/index.d.ts +8 -0
  6. package/cron-job/lib/cron-job-container/cron-job-container.component.d.ts +31 -0
  7. package/cron-job/lib/cron-job.module.d.ts +25 -0
  8. package/cron-job/lib/cron-job.service.d.ts +22 -0
  9. package/cron-job/lib/day/day.component.d.ts +22 -0
  10. package/cron-job/lib/day/day.model.d.ts +61 -0
  11. package/cron-job/lib/day/day.service.d.ts +17 -0
  12. package/cron-job/lib/hours/hours.component.d.ts +14 -0
  13. package/cron-job/lib/hours/hours.model.d.ts +5 -0
  14. package/cron-job/lib/hours/hours.service.d.ts +13 -0
  15. package/cron-job/lib/minutes/minutes.component.d.ts +14 -0
  16. package/cron-job/lib/minutes/minutes.model.d.ts +5 -0
  17. package/cron-job/lib/minutes/minutes.service.d.ts +13 -0
  18. package/cron-job/lib/month/month.component.d.ts +16 -0
  19. package/cron-job/lib/month/month.model.d.ts +5 -0
  20. package/cron-job/lib/month/month.service.d.ts +14 -0
  21. package/cron-job/lib/seconds/seconds.component.d.ts +14 -0
  22. package/cron-job/lib/seconds/seconds.model.d.ts +5 -0
  23. package/cron-job/lib/seconds/seconds.service.d.ts +13 -0
  24. package/cron-job/lib/types/iexpression.d.ts +3 -0
  25. package/cron-job/lib/types/shared.model.d.ts +37 -0
  26. package/cron-job/lib/year/year.component.d.ts +15 -0
  27. package/cron-job/lib/year/year.model.d.ts +16 -0
  28. package/cron-job/lib/year/year.service.d.ts +12 -0
  29. package/datetime-input/lib/datetime-input.component.d.ts +9 -0
  30. package/datetime-picker/lib/datetime-picker.component.d.ts +1 -0
  31. package/esm2022/bottom-navigation/lib/bottom-navigation.component.mjs +2 -2
  32. package/esm2022/calendar/lib/calendar.component.mjs +186 -158
  33. package/esm2022/calendar/lib/calendar.module.mjs +5 -4
  34. package/esm2022/check-box/lib/check-box.component.mjs +39 -22
  35. package/esm2022/cron-job/acorex-components-cron-job.mjs +5 -0
  36. package/esm2022/cron-job/index.mjs +9 -0
  37. package/esm2022/cron-job/lib/cron-job-container/cron-job-container.component.mjs +90 -0
  38. package/esm2022/cron-job/lib/cron-job.module.mjs +80 -0
  39. package/esm2022/cron-job/lib/cron-job.service.mjs +60 -0
  40. package/esm2022/cron-job/lib/day/day.component.mjs +61 -0
  41. package/esm2022/cron-job/lib/day/day.model.mjs +88 -0
  42. package/esm2022/cron-job/lib/day/day.service.mjs +196 -0
  43. package/esm2022/cron-job/lib/hours/hours.component.mjs +38 -0
  44. package/esm2022/cron-job/lib/hours/hours.model.mjs +8 -0
  45. package/esm2022/cron-job/lib/hours/hours.service.mjs +82 -0
  46. package/esm2022/cron-job/lib/minutes/minutes.component.mjs +38 -0
  47. package/esm2022/cron-job/lib/minutes/minutes.model.mjs +8 -0
  48. package/esm2022/cron-job/lib/minutes/minutes.service.mjs +82 -0
  49. package/esm2022/cron-job/lib/month/month.component.mjs +47 -0
  50. package/esm2022/cron-job/lib/month/month.model.mjs +8 -0
  51. package/esm2022/cron-job/lib/month/month.service.mjs +96 -0
  52. package/esm2022/cron-job/lib/seconds/seconds.component.mjs +38 -0
  53. package/esm2022/cron-job/lib/seconds/seconds.model.mjs +8 -0
  54. package/esm2022/cron-job/lib/seconds/seconds.service.mjs +82 -0
  55. package/esm2022/cron-job/lib/types/iexpression.mjs +2 -0
  56. package/esm2022/cron-job/lib/types/shared.model.mjs +49 -0
  57. package/esm2022/cron-job/lib/year/year.component.mjs +45 -0
  58. package/esm2022/cron-job/lib/year/year.model.mjs +28 -0
  59. package/esm2022/cron-job/lib/year/year.service.mjs +82 -0
  60. package/esm2022/datetime-input/lib/datetime-input.component.mjs +38 -10
  61. package/esm2022/datetime-picker/lib/datetime-picker.component.mjs +17 -4
  62. package/esm2022/list/lib/list.component.mjs +3 -3
  63. package/esm2022/loading/lib/loading.component.mjs +7 -3
  64. package/esm2022/loading/lib/loading.service.mjs +2 -2
  65. package/esm2022/radio/lib/radio.component.mjs +3 -3
  66. package/esm2022/selection-list/lib/selection-list.component.mjs +70 -28
  67. package/esm2022/text-box/lib/text-box.component.mjs +11 -8
  68. package/fesm2022/acorex-components-action-sheet.mjs +1 -1
  69. package/fesm2022/acorex-components-alert.mjs +1 -1
  70. package/fesm2022/acorex-components-audio-wave.mjs +1 -1
  71. package/fesm2022/acorex-components-avatar.mjs +1 -1
  72. package/fesm2022/acorex-components-badge.mjs +1 -1
  73. package/fesm2022/acorex-components-bottom-navigation.mjs +3 -3
  74. package/fesm2022/acorex-components-bottom-navigation.mjs.map +1 -1
  75. package/fesm2022/acorex-components-breadcrumbs.mjs +1 -1
  76. package/fesm2022/acorex-components-button-group.mjs +1 -1
  77. package/fesm2022/acorex-components-button.mjs +1 -1
  78. package/fesm2022/acorex-components-calendar.mjs +188 -160
  79. package/fesm2022/acorex-components-calendar.mjs.map +1 -1
  80. package/fesm2022/acorex-components-check-box.mjs +39 -22
  81. package/fesm2022/acorex-components-check-box.mjs.map +1 -1
  82. package/fesm2022/acorex-components-chips.mjs +1 -1
  83. package/fesm2022/acorex-components-circular-progress.mjs +1 -1
  84. package/fesm2022/acorex-components-collapse.mjs +1 -1
  85. package/fesm2022/acorex-components-color-box.mjs +1 -1
  86. package/fesm2022/acorex-components-color-palette.mjs +1 -1
  87. package/fesm2022/acorex-components-comment.mjs +1 -1
  88. package/fesm2022/acorex-components-common.mjs +1 -1
  89. package/fesm2022/acorex-components-conversation.mjs +1 -1
  90. package/fesm2022/acorex-components-cron-job.mjs +1191 -0
  91. package/fesm2022/acorex-components-cron-job.mjs.map +1 -0
  92. package/fesm2022/acorex-components-data-pager.mjs +1 -1
  93. package/fesm2022/acorex-components-data-table.mjs +1 -1
  94. package/fesm2022/acorex-components-datetime-box.mjs +1 -1
  95. package/fesm2022/acorex-components-datetime-input.mjs +36 -8
  96. package/fesm2022/acorex-components-datetime-input.mjs.map +1 -1
  97. package/fesm2022/acorex-components-datetime-picker.mjs +16 -3
  98. package/fesm2022/acorex-components-datetime-picker.mjs.map +1 -1
  99. package/fesm2022/acorex-components-decorators.mjs +1 -1
  100. package/fesm2022/acorex-components-dialog.mjs +1 -1
  101. package/fesm2022/acorex-components-drawer.mjs +1 -1
  102. package/fesm2022/acorex-components-dropdown-button.mjs +1 -1
  103. package/fesm2022/acorex-components-dropdown.mjs +1 -1
  104. package/fesm2022/acorex-components-form.mjs +1 -1
  105. package/fesm2022/acorex-components-image-editor.mjs +1 -1
  106. package/fesm2022/acorex-components-image.mjs +1 -1
  107. package/fesm2022/acorex-components-json-viewer.mjs +1 -1
  108. package/fesm2022/acorex-components-label.mjs +1 -1
  109. package/fesm2022/acorex-components-list.mjs +3 -3
  110. package/fesm2022/acorex-components-list.mjs.map +1 -1
  111. package/fesm2022/acorex-components-loading-dialog.mjs +1 -1
  112. package/fesm2022/acorex-components-loading.mjs +8 -4
  113. package/fesm2022/acorex-components-loading.mjs.map +1 -1
  114. package/fesm2022/acorex-components-map.mjs +1 -1
  115. package/fesm2022/acorex-components-media-viewer.mjs +1 -1
  116. package/fesm2022/acorex-components-menu.mjs +1 -1
  117. package/fesm2022/acorex-components-nav.mjs +1 -1
  118. package/fesm2022/acorex-components-navbar.mjs +1 -1
  119. package/fesm2022/acorex-components-notification.mjs +1 -1
  120. package/fesm2022/acorex-components-number-box.mjs +1 -1
  121. package/fesm2022/acorex-components-otp.mjs +1 -1
  122. package/fesm2022/acorex-components-page.mjs +1 -1
  123. package/fesm2022/acorex-components-paint.mjs +1 -1
  124. package/fesm2022/acorex-components-password-box.mjs +1 -1
  125. package/fesm2022/acorex-components-phone-box.mjs +1 -1
  126. package/fesm2022/acorex-components-picker.mjs +1 -1
  127. package/fesm2022/acorex-components-popover.mjs +1 -1
  128. package/fesm2022/acorex-components-popup.mjs +1 -1
  129. package/fesm2022/acorex-components-progress-bar.mjs +1 -1
  130. package/fesm2022/acorex-components-qrcode.mjs +1 -1
  131. package/fesm2022/acorex-components-radio.mjs +3 -3
  132. package/fesm2022/acorex-components-radio.mjs.map +1 -1
  133. package/fesm2022/acorex-components-range-slider.mjs +1 -1
  134. package/fesm2022/acorex-components-rate-picker.mjs +1 -1
  135. package/fesm2022/acorex-components-result.mjs +1 -1
  136. package/fesm2022/acorex-components-routing-progress.mjs +1 -1
  137. package/fesm2022/acorex-components-scheduler.mjs +1 -1
  138. package/fesm2022/acorex-components-search-box.mjs +1 -1
  139. package/fesm2022/acorex-components-select-box.mjs +1 -1
  140. package/fesm2022/acorex-components-selection-list.mjs +70 -28
  141. package/fesm2022/acorex-components-selection-list.mjs.map +1 -1
  142. package/fesm2022/acorex-components-side-menu.mjs +1 -1
  143. package/fesm2022/acorex-components-skeleton.mjs +1 -1
  144. package/fesm2022/acorex-components-slider.mjs +1 -1
  145. package/fesm2022/acorex-components-step-wizard.mjs +1 -1
  146. package/fesm2022/acorex-components-switch.mjs +1 -1
  147. package/fesm2022/acorex-components-tabs.mjs +1 -1
  148. package/fesm2022/acorex-components-tag.mjs +1 -1
  149. package/fesm2022/acorex-components-text-area.mjs +1 -1
  150. package/fesm2022/acorex-components-text-box.mjs +10 -7
  151. package/fesm2022/acorex-components-text-box.mjs.map +1 -1
  152. package/fesm2022/acorex-components-time-line.mjs +1 -1
  153. package/fesm2022/acorex-components-toast.mjs +1 -1
  154. package/fesm2022/acorex-components-tooltip.mjs +1 -1
  155. package/fesm2022/acorex-components-uploader.mjs +1 -1
  156. package/fesm2022/acorex-components-wysiwyg.mjs +1 -1
  157. package/package.json +7 -1
  158. package/selection-list/lib/selection-list.component.d.ts +26 -6
  159. package/text-box/lib/text-box.component.d.ts +2 -2
@@ -1,5 +1,5 @@
1
1
  import { MXCalendarBaseComponent } from '@acorex/components/calendar';
2
- import { AXComponent, AXFocusableComponent, AXValuableComponent, MXValueComponent } from '@acorex/components/common';
2
+ import { AXComponent, AXFocusableComponent, AXValuableComponent, MXValueComponent, } from '@acorex/components/common';
3
3
  import { AXPickerComponent } from '@acorex/components/picker';
4
4
  import { AXTabsComponent } from '@acorex/components/tabs';
5
5
  import { AXCalendarService } from '@acorex/core/date-time';
@@ -301,6 +301,19 @@ export class AXDateTimePickerComponent extends classes(MXCalendarBaseComponent,
301
301
  else
302
302
  return v.date;
303
303
  }
304
+ isTodayDisabled() {
305
+ const disabledDates = this.disabledDates;
306
+ if (!disabledDates || !Array.isArray(disabledDates)) {
307
+ return false;
308
+ }
309
+ const today = new Date();
310
+ today.setHours(0, 0, 0, 0);
311
+ return disabledDates.some((disabledDate) => {
312
+ const disabled = new Date(disabledDate);
313
+ disabled.setHours(0, 0, 0, 0);
314
+ return today.getTime() === disabled.getTime();
315
+ });
316
+ }
304
317
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXDateTimePickerComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
305
318
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.0", type: AXDateTimePickerComponent, selector: "ax-datetime-picker", inputs: { disabled: "disabled", readonly: "readonly", tabIndex: "tabIndex", placeholder: "placeholder", value: "value", state: "state", name: "name", id: "id", depth: "depth", activeView: "activeView", minValue: "minValue", maxValue: "maxValue", disabledDates: "disabledDates", holidayDates: "holidayDates", type: "type", cellTemplate: "cellTemplate", cellClass: "cellClass", showNavigation: "showNavigation", currentTimeButton: "currentTimeButton", format: "format" }, outputs: { valueChange: "valueChange", stateChange: "stateChange", onValueChanged: "onValueChanged", onBlur: "onBlur", onFocus: "onFocus", onClick: "onClick", readonlyChange: "readonlyChange", disabledChange: "disabledChange", depthChange: "depthChange", typeChange: "typeChange", activeViewChange: "activeViewChange", disabledDatesChange: "disabledDatesChange", holidayDatesChange: "holidayDatesChange", onNavigate: "onNavigate", onSlotClick: "onSlotClick", formatChange: "formatChange" }, providers: [
306
319
  { provide: AXComponent, useExisting: AXDateTimePickerComponent },
@@ -311,7 +324,7 @@ export class AXDateTimePickerComponent extends classes(MXCalendarBaseComponent,
311
324
  useExisting: forwardRef(() => AXDateTimePickerComponent),
312
325
  multi: true,
313
326
  },
314
- ], viewQueries: [{ propertyName: "picker", first: true, predicate: AXPickerComponent, descendants: true }, { propertyName: "tabs", first: true, predicate: AXTabsComponent, descendants: true }], usesInheritance: true, ngImport: i0, template: "@if (_hasDatePart && _hasTimePart) {\n <div class=\"ax-header\">\n <ax-tabs\n [look]=\"'default'\"\n [fitParent]=\"true\"\n [location]=\"'top'\"\n (onActiveTabChanged)=\"_handleViewChanged($event)\"\n >\n <ax-tab-item\n [text]=\"'dateTime.date' | translate | async\"\n [key]=\"'date'\"\n [disabled]=\"disabled\"\n ></ax-tab-item>\n <ax-tab-item\n [text]=\"'dateTime.time' | translate | async\"\n [key]=\"'time'\"\n [disabled]=\"disabled\"\n ></ax-tab-item>\n </ax-tabs>\n </div>\n}\n<div class=\"ax-content\">\n @if (_activePart === 'date') {\n <div class=\"ax-calendar-part\">\n <ax-calendar\n #calendar\n id=\"calendar\"\n [disabled]=\"disabled\"\n [readonly]=\"readonly\"\n [ngModel]=\"editingDateObj.date\"\n [minValue]=\"minValue\"\n [maxValue]=\"maxValue\"\n [disabledDates]=\"disabledDates\"\n [holidayDates]=\"holidayDates\"\n [depth]=\"depth\"\n (onNavigate)=\"_handleCalendarOnNavigate($event)\"\n (onValueChanged)=\"_handleCalendarOnValueChanged($event)\"\n [type]=\"type\"\n >\n </ax-calendar>\n </div>\n }\n\n @if (_activePart === 'time') {\n <div class=\"ax-picker-part\">\n <div class=\"ax-header\">\n {{ editingDateObj | axDate: format : type }}\n </div>\n <ax-picker>\n @if (_parts.hour.enabled) {\n <ax-picker-column\n [title]=\"'dateTime.hour' | translate | async\"\n [items]=\"hours\"\n [ngModel]=\"editingDateObj.hour\"\n (onValueChanged)=\"_handlePickerOnValueChanged($event, 'hour')\"\n [disabled]=\"disabled\"\n [readonly]=\"readonly\"\n ></ax-picker-column>\n }\n\n @if (_parts.minute.enabled) {\n <ax-picker-column\n [title]=\"'dateTime.minute' | translate | async\"\n [items]=\"minutes\"\n [ngModel]=\"editingDateObj.minute\"\n (onValueChanged)=\"_handlePickerOnValueChanged($event, 'minute')\"\n [disabled]=\"disabled\"\n [readonly]=\"readonly\"\n ></ax-picker-column>\n }\n @if (_parts.second.enabled) {\n <ax-picker-column\n [title]=\"'dateTime.second' | translate | async\"\n [items]=\"minutes\"\n [ngModel]=\"editingDateObj.second\"\n (onValueChanged)=\"_handlePickerOnValueChanged($event, 'second')\"\n [disabled]=\"disabled\"\n [readonly]=\"readonly\"\n ></ax-picker-column>\n }\n </ax-picker>\n </div>\n }\n</div>\n@if (!disabled && !readonly && (currentTimeButton || _hasTimePart)) {\n <div class=\"ax-footer\">\n <div>\n @if (currentTimeButton) {\n <ax-button\n [text]=\"buttonText | translate | async\"\n class=\"ax-sm\"\n (onClick)=\"_handleNowClick()\"\n ></ax-button>\n }\n </div>\n <div>\n @if (_hasTimePart) {\n <ax-button\n color=\"primary\"\n [text]=\"'dateTime.set' | translate | async\"\n class=\"ax-sm\"\n (onClick)=\"_handleSetClick()\"\n ></ax-button>\n }\n </div>\n </div>\n}\n", styles: ["ax-datetime-picker{display:flex;flex-direction:column}ax-datetime-picker>.ax-header{display:flex;justify-content:center;padding-left:.5rem;padding-right:.5rem;padding-top:.5rem}ax-datetime-picker>.ax-content{width:100%;overflow:hidden}@media (min-width: 768px){ax-datetime-picker>.ax-content{width:20rem}}ax-datetime-picker>.ax-content .ax-picker-part{display:flex;height:376px;width:100%;flex-direction:column}ax-datetime-picker>.ax-content .ax-picker-part>.ax-header{text-align:center;border-bottom:1px solid;border-color:rgba(var(--ax-color-border-default));font-size:1.25rem;font-weight:500;padding:.75rem}ax-datetime-picker>.ax-content .ax-picker-part ax-picker{flex:1 1 0%}ax-datetime-picker>.ax-content .ax-calendar-part{padding-top:.25rem;padding-bottom:.25rem}ax-datetime-picker>.ax-content .ax-calendar-part ax-calendar{width:100%}ax-datetime-picker>.ax-footer{display:flex;justify-content:space-between;border-top-width:1px;border-color:rgba(var(--ax-color-border-default));padding:.5rem}ax-datetime-picker>.ax-footer ax-button{min-width:100px}\n"], dependencies: [{ kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i2.AXTabsComponent, selector: "ax-tabs", inputs: ["look", "location", "fitParent", "minWidth", "content"], outputs: ["onActiveTabChanged"] }, { kind: "component", type: i2.AXTabItemComponent, selector: "ax-tab-item", inputs: ["disabled", "text", "key", "headerTemplate", "active"], outputs: ["disabledChange", "onClick", "onBlur", "onFocus", "activeChange"] }, { kind: "component", type: i3.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "size", "tabIndex", "color", "look", "text", "toggleable", "selected", "type", "responsiveOn", "loadingText"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange", "responsiveOnChange", "loadingTextChange"] }, { kind: "component", type: i4.AXCalendarComponent, selector: "ax-calendar", inputs: ["rtl", "readonly", "value", "name", "disabled", "depth", "activeView", "minValue", "maxValue", "disabledDates", "holidayDates", "type", "cellTemplate", "cellClass", "showNavigation", "count", "id"], outputs: ["onOptionChanged", "valueChange", "onValueChanged", "minValueChange", "maxValueChange", "onBlur", "onFocus", "depthChange", "typeChange", "activeViewChange", "disabledDatesChange", "holidayDatesChange", "onNavigate", "onSlotClick", "countChange"] }, { kind: "component", type: i5.AXPickerComponent, selector: "ax-picker" }, { kind: "directive", type: i5.AXPickerColumnDirective, selector: "ax-picker-column", inputs: ["disabled", "readonly", "readonlyChange", "disabledChange", "valueField", "textField", "title", "step", "items"], outputs: ["onValueChanged", "itemsChange"] }, { kind: "pipe", type: i6.AsyncPipe, name: "async" }, { kind: "pipe", type: i7.AXDateTimePipe, name: "axDate" }, { kind: "pipe", type: i8.AXTranslatorPipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
327
+ ], viewQueries: [{ propertyName: "picker", first: true, predicate: AXPickerComponent, descendants: true }, { propertyName: "tabs", first: true, predicate: AXTabsComponent, descendants: true }], usesInheritance: true, ngImport: i0, template: "@if (_hasDatePart && _hasTimePart) {\n <div class=\"ax-header\">\n <ax-tabs\n [look]=\"'default'\"\n [fitParent]=\"true\"\n [location]=\"'top'\"\n (onActiveTabChanged)=\"_handleViewChanged($event)\"\n >\n <ax-tab-item\n [text]=\"'dateTime.date' | translate | async\"\n [key]=\"'date'\"\n [disabled]=\"disabled\"\n ></ax-tab-item>\n <ax-tab-item\n [text]=\"'dateTime.time' | translate | async\"\n [key]=\"'time'\"\n [disabled]=\"disabled\"\n ></ax-tab-item>\n </ax-tabs>\n </div>\n}\n<div class=\"ax-content\">\n @if (_activePart === 'date') {\n <div class=\"ax-calendar-part\">\n <ax-calendar\n #calendar\n id=\"calendar\"\n [disabled]=\"disabled\"\n [readonly]=\"readonly\"\n [ngModel]=\"editingDateObj.date\"\n [minValue]=\"minValue\"\n [maxValue]=\"maxValue\"\n [disabledDates]=\"disabledDates\"\n [holidayDates]=\"holidayDates\"\n [depth]=\"depth\"\n (onNavigate)=\"_handleCalendarOnNavigate($event)\"\n (onValueChanged)=\"_handleCalendarOnValueChanged($event)\"\n [type]=\"type\"\n >\n </ax-calendar>\n </div>\n }\n\n @if (_activePart === 'time') {\n <div class=\"ax-picker-part\">\n <div class=\"ax-header\">\n {{ editingDateObj | axDate: format : type }}\n </div>\n <ax-picker>\n @if (_parts.hour.enabled) {\n <ax-picker-column\n [title]=\"'dateTime.hour' | translate | async\"\n [items]=\"hours\"\n [ngModel]=\"editingDateObj.hour\"\n (onValueChanged)=\"_handlePickerOnValueChanged($event, 'hour')\"\n [disabled]=\"disabled\"\n [readonly]=\"readonly\"\n ></ax-picker-column>\n }\n\n @if (_parts.minute.enabled) {\n <ax-picker-column\n [title]=\"'dateTime.minute' | translate | async\"\n [items]=\"minutes\"\n [ngModel]=\"editingDateObj.minute\"\n (onValueChanged)=\"_handlePickerOnValueChanged($event, 'minute')\"\n [disabled]=\"disabled\"\n [readonly]=\"readonly\"\n ></ax-picker-column>\n }\n @if (_parts.second.enabled) {\n <ax-picker-column\n [title]=\"'dateTime.second' | translate | async\"\n [items]=\"minutes\"\n [ngModel]=\"editingDateObj.second\"\n (onValueChanged)=\"_handlePickerOnValueChanged($event, 'second')\"\n [disabled]=\"disabled\"\n [readonly]=\"readonly\"\n ></ax-picker-column>\n }\n </ax-picker>\n </div>\n }\n</div>\n@if (!disabled && !readonly && (currentTimeButton || _hasTimePart)) {\n <div class=\"ax-footer\">\n <div>\n @if (currentTimeButton) {\n <ax-button\n [text]=\"buttonText | translate | async\"\n class=\"ax-sm\"\n (onClick)=\"_handleNowClick()\"\n [disabled]=\"isTodayDisabled()\"\n ></ax-button>\n }\n </div>\n <div>\n @if (_hasTimePart) {\n <ax-button\n color=\"primary\"\n [text]=\"'dateTime.set' | translate | async\"\n class=\"ax-sm\"\n (onClick)=\"_handleSetClick()\"\n ></ax-button>\n }\n </div>\n </div>\n}\n", styles: ["ax-datetime-picker{display:flex;flex-direction:column}ax-datetime-picker>.ax-header{display:flex;justify-content:center;padding-left:.5rem;padding-right:.5rem;padding-top:.5rem}ax-datetime-picker>.ax-content{width:100%;overflow:hidden}@media (min-width: 768px){ax-datetime-picker>.ax-content{width:20rem}}ax-datetime-picker>.ax-content .ax-picker-part{display:flex;height:376px;width:100%;flex-direction:column}ax-datetime-picker>.ax-content .ax-picker-part>.ax-header{text-align:center;border-bottom:1px solid;border-color:rgba(var(--ax-color-border-default));font-size:1.25rem;font-weight:500;padding:.75rem}ax-datetime-picker>.ax-content .ax-picker-part ax-picker{flex:1 1 0%}ax-datetime-picker>.ax-content .ax-calendar-part{padding-top:.25rem;padding-bottom:.25rem}ax-datetime-picker>.ax-content .ax-calendar-part ax-calendar{width:100%}ax-datetime-picker>.ax-footer{display:flex;justify-content:space-between;border-top-width:1px;border-color:rgba(var(--ax-color-border-default));padding:.5rem}ax-datetime-picker>.ax-footer ax-button{min-width:100px}\n"], dependencies: [{ kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i2.AXTabsComponent, selector: "ax-tabs", inputs: ["look", "location", "fitParent", "minWidth", "content"], outputs: ["onActiveTabChanged"] }, { kind: "component", type: i2.AXTabItemComponent, selector: "ax-tab-item", inputs: ["disabled", "text", "key", "headerTemplate", "active"], outputs: ["disabledChange", "onClick", "onBlur", "onFocus", "activeChange"] }, { kind: "component", type: i3.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "size", "tabIndex", "color", "look", "text", "toggleable", "selected", "type", "responsiveOn", "loadingText"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange", "responsiveOnChange", "loadingTextChange"] }, { kind: "component", type: i4.AXCalendarComponent, selector: "ax-calendar", inputs: ["rtl", "readonly", "value", "name", "disabled", "depth", "activeView", "minValue", "maxValue", "disabledDates", "holidayDates", "type", "cellTemplate", "cellClass", "showNavigation", "count", "id"], outputs: ["onOptionChanged", "valueChange", "onValueChanged", "minValueChange", "maxValueChange", "onBlur", "onFocus", "depthChange", "typeChange", "activeViewChange", "disabledDatesChange", "holidayDatesChange", "onNavigate", "onSlotClick", "countChange"] }, { kind: "component", type: i5.AXPickerComponent, selector: "ax-picker" }, { kind: "directive", type: i5.AXPickerColumnDirective, selector: "ax-picker-column", inputs: ["disabled", "readonly", "readonlyChange", "disabledChange", "valueField", "textField", "title", "step", "items"], outputs: ["onValueChanged", "itemsChange"] }, { kind: "pipe", type: i6.AsyncPipe, name: "async" }, { kind: "pipe", type: i7.AXDateTimePipe, name: "axDate" }, { kind: "pipe", type: i8.AXTranslatorPipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
315
328
  }
316
329
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXDateTimePickerComponent, decorators: [{
317
330
  type: Component,
@@ -359,7 +372,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImpor
359
372
  useExisting: forwardRef(() => AXDateTimePickerComponent),
360
373
  multi: true,
361
374
  },
362
- ], template: "@if (_hasDatePart && _hasTimePart) {\n <div class=\"ax-header\">\n <ax-tabs\n [look]=\"'default'\"\n [fitParent]=\"true\"\n [location]=\"'top'\"\n (onActiveTabChanged)=\"_handleViewChanged($event)\"\n >\n <ax-tab-item\n [text]=\"'dateTime.date' | translate | async\"\n [key]=\"'date'\"\n [disabled]=\"disabled\"\n ></ax-tab-item>\n <ax-tab-item\n [text]=\"'dateTime.time' | translate | async\"\n [key]=\"'time'\"\n [disabled]=\"disabled\"\n ></ax-tab-item>\n </ax-tabs>\n </div>\n}\n<div class=\"ax-content\">\n @if (_activePart === 'date') {\n <div class=\"ax-calendar-part\">\n <ax-calendar\n #calendar\n id=\"calendar\"\n [disabled]=\"disabled\"\n [readonly]=\"readonly\"\n [ngModel]=\"editingDateObj.date\"\n [minValue]=\"minValue\"\n [maxValue]=\"maxValue\"\n [disabledDates]=\"disabledDates\"\n [holidayDates]=\"holidayDates\"\n [depth]=\"depth\"\n (onNavigate)=\"_handleCalendarOnNavigate($event)\"\n (onValueChanged)=\"_handleCalendarOnValueChanged($event)\"\n [type]=\"type\"\n >\n </ax-calendar>\n </div>\n }\n\n @if (_activePart === 'time') {\n <div class=\"ax-picker-part\">\n <div class=\"ax-header\">\n {{ editingDateObj | axDate: format : type }}\n </div>\n <ax-picker>\n @if (_parts.hour.enabled) {\n <ax-picker-column\n [title]=\"'dateTime.hour' | translate | async\"\n [items]=\"hours\"\n [ngModel]=\"editingDateObj.hour\"\n (onValueChanged)=\"_handlePickerOnValueChanged($event, 'hour')\"\n [disabled]=\"disabled\"\n [readonly]=\"readonly\"\n ></ax-picker-column>\n }\n\n @if (_parts.minute.enabled) {\n <ax-picker-column\n [title]=\"'dateTime.minute' | translate | async\"\n [items]=\"minutes\"\n [ngModel]=\"editingDateObj.minute\"\n (onValueChanged)=\"_handlePickerOnValueChanged($event, 'minute')\"\n [disabled]=\"disabled\"\n [readonly]=\"readonly\"\n ></ax-picker-column>\n }\n @if (_parts.second.enabled) {\n <ax-picker-column\n [title]=\"'dateTime.second' | translate | async\"\n [items]=\"minutes\"\n [ngModel]=\"editingDateObj.second\"\n (onValueChanged)=\"_handlePickerOnValueChanged($event, 'second')\"\n [disabled]=\"disabled\"\n [readonly]=\"readonly\"\n ></ax-picker-column>\n }\n </ax-picker>\n </div>\n }\n</div>\n@if (!disabled && !readonly && (currentTimeButton || _hasTimePart)) {\n <div class=\"ax-footer\">\n <div>\n @if (currentTimeButton) {\n <ax-button\n [text]=\"buttonText | translate | async\"\n class=\"ax-sm\"\n (onClick)=\"_handleNowClick()\"\n ></ax-button>\n }\n </div>\n <div>\n @if (_hasTimePart) {\n <ax-button\n color=\"primary\"\n [text]=\"'dateTime.set' | translate | async\"\n class=\"ax-sm\"\n (onClick)=\"_handleSetClick()\"\n ></ax-button>\n }\n </div>\n </div>\n}\n", styles: ["ax-datetime-picker{display:flex;flex-direction:column}ax-datetime-picker>.ax-header{display:flex;justify-content:center;padding-left:.5rem;padding-right:.5rem;padding-top:.5rem}ax-datetime-picker>.ax-content{width:100%;overflow:hidden}@media (min-width: 768px){ax-datetime-picker>.ax-content{width:20rem}}ax-datetime-picker>.ax-content .ax-picker-part{display:flex;height:376px;width:100%;flex-direction:column}ax-datetime-picker>.ax-content .ax-picker-part>.ax-header{text-align:center;border-bottom:1px solid;border-color:rgba(var(--ax-color-border-default));font-size:1.25rem;font-weight:500;padding:.75rem}ax-datetime-picker>.ax-content .ax-picker-part ax-picker{flex:1 1 0%}ax-datetime-picker>.ax-content .ax-calendar-part{padding-top:.25rem;padding-bottom:.25rem}ax-datetime-picker>.ax-content .ax-calendar-part ax-calendar{width:100%}ax-datetime-picker>.ax-footer{display:flex;justify-content:space-between;border-top-width:1px;border-color:rgba(var(--ax-color-border-default));padding:.5rem}ax-datetime-picker>.ax-footer ax-button{min-width:100px}\n"] }]
375
+ ], template: "@if (_hasDatePart && _hasTimePart) {\n <div class=\"ax-header\">\n <ax-tabs\n [look]=\"'default'\"\n [fitParent]=\"true\"\n [location]=\"'top'\"\n (onActiveTabChanged)=\"_handleViewChanged($event)\"\n >\n <ax-tab-item\n [text]=\"'dateTime.date' | translate | async\"\n [key]=\"'date'\"\n [disabled]=\"disabled\"\n ></ax-tab-item>\n <ax-tab-item\n [text]=\"'dateTime.time' | translate | async\"\n [key]=\"'time'\"\n [disabled]=\"disabled\"\n ></ax-tab-item>\n </ax-tabs>\n </div>\n}\n<div class=\"ax-content\">\n @if (_activePart === 'date') {\n <div class=\"ax-calendar-part\">\n <ax-calendar\n #calendar\n id=\"calendar\"\n [disabled]=\"disabled\"\n [readonly]=\"readonly\"\n [ngModel]=\"editingDateObj.date\"\n [minValue]=\"minValue\"\n [maxValue]=\"maxValue\"\n [disabledDates]=\"disabledDates\"\n [holidayDates]=\"holidayDates\"\n [depth]=\"depth\"\n (onNavigate)=\"_handleCalendarOnNavigate($event)\"\n (onValueChanged)=\"_handleCalendarOnValueChanged($event)\"\n [type]=\"type\"\n >\n </ax-calendar>\n </div>\n }\n\n @if (_activePart === 'time') {\n <div class=\"ax-picker-part\">\n <div class=\"ax-header\">\n {{ editingDateObj | axDate: format : type }}\n </div>\n <ax-picker>\n @if (_parts.hour.enabled) {\n <ax-picker-column\n [title]=\"'dateTime.hour' | translate | async\"\n [items]=\"hours\"\n [ngModel]=\"editingDateObj.hour\"\n (onValueChanged)=\"_handlePickerOnValueChanged($event, 'hour')\"\n [disabled]=\"disabled\"\n [readonly]=\"readonly\"\n ></ax-picker-column>\n }\n\n @if (_parts.minute.enabled) {\n <ax-picker-column\n [title]=\"'dateTime.minute' | translate | async\"\n [items]=\"minutes\"\n [ngModel]=\"editingDateObj.minute\"\n (onValueChanged)=\"_handlePickerOnValueChanged($event, 'minute')\"\n [disabled]=\"disabled\"\n [readonly]=\"readonly\"\n ></ax-picker-column>\n }\n @if (_parts.second.enabled) {\n <ax-picker-column\n [title]=\"'dateTime.second' | translate | async\"\n [items]=\"minutes\"\n [ngModel]=\"editingDateObj.second\"\n (onValueChanged)=\"_handlePickerOnValueChanged($event, 'second')\"\n [disabled]=\"disabled\"\n [readonly]=\"readonly\"\n ></ax-picker-column>\n }\n </ax-picker>\n </div>\n }\n</div>\n@if (!disabled && !readonly && (currentTimeButton || _hasTimePart)) {\n <div class=\"ax-footer\">\n <div>\n @if (currentTimeButton) {\n <ax-button\n [text]=\"buttonText | translate | async\"\n class=\"ax-sm\"\n (onClick)=\"_handleNowClick()\"\n [disabled]=\"isTodayDisabled()\"\n ></ax-button>\n }\n </div>\n <div>\n @if (_hasTimePart) {\n <ax-button\n color=\"primary\"\n [text]=\"'dateTime.set' | translate | async\"\n class=\"ax-sm\"\n (onClick)=\"_handleSetClick()\"\n ></ax-button>\n }\n </div>\n </div>\n}\n", styles: ["ax-datetime-picker{display:flex;flex-direction:column}ax-datetime-picker>.ax-header{display:flex;justify-content:center;padding-left:.5rem;padding-right:.5rem;padding-top:.5rem}ax-datetime-picker>.ax-content{width:100%;overflow:hidden}@media (min-width: 768px){ax-datetime-picker>.ax-content{width:20rem}}ax-datetime-picker>.ax-content .ax-picker-part{display:flex;height:376px;width:100%;flex-direction:column}ax-datetime-picker>.ax-content .ax-picker-part>.ax-header{text-align:center;border-bottom:1px solid;border-color:rgba(var(--ax-color-border-default));font-size:1.25rem;font-weight:500;padding:.75rem}ax-datetime-picker>.ax-content .ax-picker-part ax-picker{flex:1 1 0%}ax-datetime-picker>.ax-content .ax-calendar-part{padding-top:.25rem;padding-bottom:.25rem}ax-datetime-picker>.ax-content .ax-calendar-part ax-calendar{width:100%}ax-datetime-picker>.ax-footer{display:flex;justify-content:space-between;border-top-width:1px;border-color:rgba(var(--ax-color-border-default));padding:.5rem}ax-datetime-picker>.ax-footer ax-button{min-width:100px}\n"] }]
363
376
  }], propDecorators: { currentTimeButton: [{
364
377
  type: Input
365
378
  }], picker: [{
@@ -373,4 +386,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImpor
373
386
  }], format: [{
374
387
  type: Input
375
388
  }] } });
376
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZXRpbWUtcGlja2VyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9kYXRldGltZS1waWNrZXIvc3JjL2xpYi9kYXRldGltZS1waWNrZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2RhdGV0aW1lLXBpY2tlci9zcmMvbGliL2RhdGV0aW1lLXBpY2tlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQTJCLHVCQUF1QixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDL0YsT0FBTyxFQUFFLFdBQVcsRUFBRSxvQkFBb0IsRUFBRSxtQkFBbUIsRUFBdUIsZ0JBQWdCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUMxSSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUM5RCxPQUFPLEVBQTBCLGVBQWUsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ2xGLE9BQU8sRUFBRSxpQkFBaUIsRUFBeUMsTUFBTSx3QkFBd0IsQ0FBQztBQUNsRyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNoRSxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUVMLE1BQU0sRUFDTixTQUFTLEVBQ1QsaUJBQWlCLEVBQ2pCLFVBQVUsRUFDVixNQUFNLEdBQ1AsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbkQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUNuQyxPQUFPLEVBQTBCLHlCQUF5QixFQUFFLE1BQU0sMEJBQTBCLENBQUM7Ozs7Ozs7Ozs7QUFFN0Y7Ozs7R0FJRztBQXVESCxNQUFNLE9BQU8seUJBQTBCLFNBQVEsT0FB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NEJBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLDBCQUEwQixDQUFDOzRCQUN4RCxLQUFLLEVBQUUsSUFBSTt5QkFDWjtxQkFDRjs4QkFnQlUsaUJBQWlCO3NCQUQzQixLQUFLO2dCQXNCSSxNQUFNO3NCQURmLFNBQVM7dUJBQUMsaUJBQWlCO2dCQU9sQixJQUFJO3NCQURiLFNBQVM7dUJBQUMsZUFBZTtnQkFvRzFCLFlBQVk7c0JBRFgsTUFBTTtnQkFZSSxNQUFNO3NCQURoQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVhDYWxlbmRhck5hdmlnYXRlRXZlbnQsIE1YQ2FsZW5kYXJCYXNlQ29tcG9uZW50IH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2NhbGVuZGFyJztcbmltcG9ydCB7IEFYQ29tcG9uZW50LCBBWEZvY3VzYWJsZUNvbXBvbmVudCwgQVhWYWx1YWJsZUNvbXBvbmVudCwgQVhWYWx1ZUNoYW5nZWRFdmVudCwgTVhWYWx1ZUNvbXBvbmVudCB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9jb21tb24nO1xuaW1wb3J0IHsgQVhQaWNrZXJDb21wb25lbnQgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvcGlja2VyJztcbmltcG9ydCB7IEFYVGFiU3RyaXBDaGFuZ2VkRXZlbnQsIEFYVGFic0NvbXBvbmVudCB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy90YWJzJztcbmltcG9ydCB7IEFYQ2FsZW5kYXJTZXJ2aWNlLCBBWERhdGVUaW1lLCBBWERhdGVUaW1lUGFydHMsIFRpbWVVbml0IH0gZnJvbSAnQGFjb3JleC9jb3JlL2RhdGUtdGltZSc7XG5pbXBvcnQgeyBBWFRyYW5zbGF0aW9uU2VydmljZSB9IGZyb20gJ0BhY29yZXgvY29yZS90cmFuc2xhdGlvbic7XG5pbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPbkluaXQsXG4gIE91dHB1dCxcbiAgVmlld0NoaWxkLFxuICBWaWV3RW5jYXBzdWxhdGlvbixcbiAgZm9yd2FyZFJlZixcbiAgaW5qZWN0LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgY2xhc3NlcyB9IGZyb20gJ3BvbHl0eXBlJztcbmltcG9ydCB7IEFYRGF0ZVRpbWVQaWNrZXJDb25maWcsIEFYX0RBVEVUSU1FX1BJQ0tFUl9DT05GSUcgfSBmcm9tICcuL2RhdGV0aW1lLXBpY2tlci5jb25maWcnO1xuXG4vKipcbiAqIGFsbG93cyB1c2VycyB0byBzZWxlY3QgYSBkYXRlIGFuZCB0aW1lIGZyb20gYSBjYWxlbmRhciBhbmQgdGltZSBwaWNrZXIgaW50ZXJmYWNlLlxuICpcbiAqIEBjYXRlZ29yeSBDb21wb25lbnRzXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2F4LWRhdGV0aW1lLXBpY2tlcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9kYXRldGltZS1waWNrZXIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9kYXRldGltZS1waWNrZXIuY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIGlucHV0czogW1xuICAgICdkaXNhYmxlZCcsXG4gICAgJ3JlYWRvbmx5JyxcbiAgICAndGFiSW5kZXgnLFxuICAgICdwbGFjZWhvbGRlcicsXG4gICAgJ3ZhbHVlJyxcbiAgICAnc3RhdGUnLFxuICAgICduYW1lJyxcbiAgICAnaWQnLFxuICAgICdkZXB0aCcsXG4gICAgJ2FjdGl2ZVZpZXcnLFxuICAgICdtaW5WYWx1ZScsXG4gICAgJ21heFZhbHVlJyxcbiAgICAnZGlzYWJsZWREYXRlcycsXG4gICAgJ2hvbGlkYXlEYXRlcycsXG4gICAgJ3R5cGUnLFxuICAgICdjZWxsVGVtcGxhdGUnLFxuICAgICdjZWxsQ2xhc3MnLFxuICAgICdzaG93TmF2aWdhdGlvbicsXG4gIF0sXG4gIG91dHB1dHM6IFtcbiAgICAndmFsdWVDaGFuZ2UnLFxuICAgICdzdGF0ZUNoYW5nZScsXG4gICAgJ29uVmFsdWVDaGFuZ2VkJyxcbiAgICAnb25CbHVyJyxcbiAgICAnb25Gb2N1cycsXG4gICAgJ29uQ2xpY2snLFxuICAgICdyZWFkb25seUNoYW5nZScsXG4gICAgJ2Rpc2FibGVkQ2hhbmdlJyxcbiAgICAnZGVwdGhDaGFuZ2UnLFxuICAgICd0eXBlQ2hhbmdlJyxcbiAgICAnYWN0aXZlVmlld0NoYW5nZScsXG4gICAgJ2Rpc2FibGVkRGF0ZXNDaGFuZ2UnLFxuICAgICdob2xpZGF5RGF0ZXNDaGFuZ2UnLFxuICAgICdvbk5hdmlnYXRlJyxcbiAgICAnb25TbG90Q2xpY2snLFxuICBdLFxuICBwcm92aWRlcnM6IFtcbiAgICB7IHByb3ZpZGU6IEFYQ29tcG9uZW50LCB1c2VFeGlzdGluZzogQVhEYXRlVGltZVBpY2tlckNvbXBvbmVudCB9LFxuICAgIHsgcHJvdmlkZTogQVhGb2N1c2FibGVDb21wb25lbnQsIHVzZUV4aXN0aW5nOiBBWERhdGVUaW1lUGlja2VyQ29tcG9uZW50IH0sXG4gICAgeyBwcm92aWRlOiBBWFZhbHVhYmxlQ29tcG9uZW50LCB1c2VFeGlzdGluZzogQVhEYXRlVGltZVBpY2tlckNvbXBvbmVudCB9LFxuICAgIHtcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gQVhEYXRlVGltZVBpY2tlckNvbXBvbmVudCksXG4gICAgICBtdWx0aTogdHJ1ZSxcbiAgICB9LFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBBWERhdGVUaW1lUGlja2VyQ29tcG9uZW50IGV4dGVuZHMgY2xhc3NlcyhNWENhbGVuZGFyQmFzZUNvbXBvbmVudCwgTVhWYWx1ZUNvbXBvbmVudDxEYXRlPikgaW1wbGVtZW50cyBPbkluaXQge1xuICBidXR0b25UZXh0ID0gJyc7XG5cbiAgcHJpdmF0ZSBkZWZhdWx0Q29uZmlnOiBBWERhdGVUaW1lUGlja2VyQ29uZmlnID0gaW5qZWN0KEFYX0RBVEVUSU1FX1BJQ0tFUl9DT05GSUcpO1xuXG4gIC8qKlxuICAgKiAgQGlnbm9yZVxuICAgKi9cbiAgcHJpdmF0ZSBfY3VycmVudFRpbWVCdXR0b246IGJvb2xlYW4gPSB0aGlzLmRlZmF1bHRDb25maWcuY3VycmVudFRpbWVCdXR0b247XG5cbiAgLyoqXG4gICAqIERldGVybWluZXMgd2hldGhlciBhIGJ1dHRvbiBmb3Igc2VsZWN0aW5nIHRoZSBjdXJyZW50IHRpbWUgaXMgZGlzcGxheWVkLlxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIGdldCBjdXJyZW50VGltZUJ1dHRvbigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fY3VycmVudFRpbWVCdXR0b247XG4gIH1cblxuICAvKipcbiAgICogU2V0cyB3aGV0aGVyIHRoZSBidXR0b24gZm9yIHNlbGVjdGluZyB0aGUgY3VycmVudCB0aW1lIGlzIGRpc3BsYXllZC5cbiAgICovXG4gIHB1YmxpYyBzZXQgY3VycmVudFRpbWVCdXR0b24odjogYm9vbGVhbikge1xuICAgIHRoaXMuc2V0T3B0aW9uKHtcbiAgICAgIG5hbWU6ICdjdXJyZW50VGltZUJ1dHRvbicsXG4gICAgICB2YWx1ZTogdixcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgX2NhbGVuZGFyU2VydmljZTogQVhDYWxlbmRhclNlcnZpY2UgPSBpbmplY3QoQVhDYWxlbmRhclNlcnZpY2UpO1xuICBwcml2YXRlIF90cmFubGF0aW9uU2VydmljZSA9IGluamVjdChBWFRyYW5zbGF0aW9uU2VydmljZSk7XG5cbiAgLyoqXG4gICAqICBAaWdub3JlXG4gICAqL1xuICBAVmlld0NoaWxkKEFYUGlja2VyQ29tcG9uZW50KVxuICBwcm90ZWN0ZWQgcGlja2VyOiBBWFBpY2tlckNvbXBvbmVudDtcblxuICAvKipcbiAgICogIEBpZ25vcmVcbiAgICovXG4gIEBWaWV3Q2hpbGQoQVhUYWJzQ29tcG9uZW50KVxuICBwcm90ZWN0ZWQgdGFiczogQVhUYWJzQ29tcG9uZW50O1xuXG4gIC8qKlxuICAgKiAgQGlnbm9yZVxuICAgKi9cbiAgcHJvdGVjdGVkIGhvdXJzOiBhbnlbXSA9IEFycmF5KDI0KVxuICAgIC5maWxsKDApXG4gICAgLm1hcCgobSwgaSkgPT4gKHsgaWQ6IGksIHRleHQ6IGkgfSkpO1xuICBtaW51dGVzOiBhbnlbXSA9IEFycmF5KDYwKVxuICAgIC5maWxsKDApXG4gICAgLm1hcCgobSwgaSkgPT4gKHsgaWQ6IGksIHRleHQ6IGkgfSkpO1xuXG4gIC8qKlxuICAgKiAgQGlnbm9yZVxuICAgKi9cbiAgcHJvdGVjdGVkIF9wYXJ0czogQVhEYXRlVGltZVBhcnRzID0ge1xuICAgIHllYXI6IHtcbiAgICAgIGtleTogJ3llYXInLFxuICAgICAgcGxhY2Vob2xkZXI6ICd5eXl5JyxcbiAgICAgIHBsYWNlaG9sZGVyczogWydZWScsICd5eScsICdZWVlZJywgJ3l5eXknXSxcbiAgICAgIGVuYWJsZWQ6IGZhbHNlLFxuICAgICAgZGVmYXVsdDogMjAyMyxcbiAgICAgIHJlYWxWYWx1ZTogKCkgPT4gdGhpcy5lZGl0aW5nRGF0ZU9iai5mb3JtYXQodGhpcy5fcGFydHMueWVhci5wbGFjZWhvbGRlciksXG4gICAgfSxcbiAgICBtb250aDoge1xuICAgICAga2V5OiAnbW9udGgnLFxuICAgICAgcGxhY2Vob2xkZXI6ICdNTScsXG4gICAgICBwbGFjZWhvbGRlcnM6IFsnTU1NJywgJ01NTU0nLCAnTU0nLCAnTSddLFxuICAgICAgZW5hYmxlZDogZmFsc2UsXG4gICAgICBkZWZhdWx0OiAxLFxuICAgICAgcmVhbFZhbHVlOiAoKSA9PiB0aGlzLmVkaXRpbmdEYXRlT2JqLmZvcm1hdCh0aGlzLl9wYXJ0cy5tb250aC5wbGFjZWhvbGRlciksXG4gICAgfSxcbiAgICBkYXk6IHtcbiAgICAgIGtleTogJ2RheScsXG4gICAgICBwbGFjZWhvbGRlcjogJ2RkJyxcbiAgICAgIHBsYWNlaG9sZGVyczogWydkZCcsICdkJywgJ2RkZGQnLCAnRERERCddLFxuICAgICAgZW5hYmxlZDogZmFsc2UsXG4gICAgICBkZWZhdWx0OiAxLFxuICAgICAgcmVhbFZhbHVlOiAoKSA9PiB0aGlzLmVkaXRpbmdEYXRlT2JqLmZvcm1hdCh0aGlzLl9wYXJ0cy5kYXkucGxhY2Vob2xkZXIpLFxuICAgIH0sXG4gICAgaG91cjoge1xuICAgICAga2V5OiAnaG91cicsXG4gICAgICBwbGFjZWhvbGRlcjogJ0hIJyxcbiAgICAgIHBsYWNlaG9sZGVyczogWydISCcsICdIJywgJ2hoJywgJ2gnXSxcbiAgICAgIGVuYWJsZWQ6IGZhbHNlLFxuICAgICAgZGVmYXVsdDogMCxcbiAgICAgIHJlYWxWYWx1ZTogKCkgPT4gdGhpcy5lZGl0aW5nRGF0ZU9iai5mb3JtYXQodGhpcy5fcGFydHMuaG91ci5wbGFjZWhvbGRlciksXG4gICAgfSxcbiAgICBtaW51dGU6IHtcbiAgICAgIGtleTogJ21pbnV0ZScsXG4gICAgICBwbGFjZWhvbGRlcjogJ21tJyxcbiAgICAgIHBsYWNlaG9sZGVyczogWydtbScsICdtJ10sXG4gICAgICBlbmFibGVkOiBmYWxzZSxcbiAgICAgIGRlZmF1bHQ6IDAsXG4gICAgICByZWFsVmFsdWU6ICgpID0+IHRoaXMuZWRpdGluZ0RhdGVPYmouZm9ybWF0KHRoaXMuX3BhcnRzLm1pbnV0ZS5wbGFjZWhvbGRlciksXG4gICAgfSxcbiAgICBzZWNvbmQ6IHtcbiAgICAgIGtleTogJ3NlY29uZCcsXG4gICAgICBwbGFjZWhvbGRlcjogJ3NzJyxcbiAgICAgIHBsYWNlaG9sZGVyczogWydzcycsICdzJ10sXG4gICAgICBlbmFibGVkOiBmYWxzZSxcbiAgICAgIGRlZmF1bHQ6IDAsXG4gICAgICByZWFsVmFsdWU6ICgpID0+IHRoaXMuZWRpdGluZ0RhdGVPYmouZm9ybWF0KHRoaXMuX3BhcnRzLnNlY29uZC5wbGFjZWhvbGRlciksXG4gICAgfSxcbiAgfTtcblxuICAvKipcbiAgICogIEBpZ25vcmVcbiAgICovXG4gIHByb3RlY3RlZCBfYWN0aXZlUGFydDogJ2RhdGUnIHwgJ3RpbWUnID0gJ2RhdGUnO1xuXG4gIC8qKlxuICAgKiAgQGlnbm9yZVxuICAgKi9cbiAgcHJvdGVjdGVkIGdldCBfaGFzRGF0ZVBhcnQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIFsneWVhcicsICdtb250aCcsICdkYXknXS5zb21lKChrKSA9PiB0aGlzLl9wYXJ0c1trXS5lbmFibGVkKTtcbiAgfVxuXG4gIC8qKlxuICAgKiAgQGlnbm9yZVxuICAgKi9cbiAgcHJvdGVjdGVkIGdldCBfaGFzVGltZVBhcnQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIFsnaG91cicsICdtaW51dGUnLCAnc2Vjb25kJ10uc29tZSgoaykgPT4gdGhpcy5fcGFydHNba10uZW5hYmxlZCk7XG4gIH1cblxuICAvKipcbiAgICogIEBpZ25vcmVcbiAgICovXG4gIHByaXZhdGUgX2VkaXRpbmdEYXRlT2JqOiBBWERhdGVUaW1lID0gdGhpcy5fY2FsZW5kYXJTZXJ2aWNlLm5vdyh0aGlzLnR5cGUpO1xuICBwcm90ZWN0ZWQgZ2V0IGVkaXRpbmdEYXRlT2JqKCk6IEFYRGF0ZVRpbWUge1xuICAgIHJldHVybiB0aGlzLl9lZGl0aW5nRGF0ZU9iajtcbiAgfVxuXG4gIC8qKlxuICAgKiBFbWl0cyBhbiBldmVudCB3aGVuIHRoZSBmb3JtYXQgY2hhbmdlcy5cbiAgICpcbiAgICogQGV2ZW50XG4gICAqL1xuICBAT3V0cHV0KClcbiAgZm9ybWF0Q2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XG5cbiAgLyoqXG4gICAqICBAaWdub3JlXG4gICAqL1xuICBwcml2YXRlIF9mb3JtYXQgPSB0aGlzLmNhbGVuZGFyU2VydmljZS5jYWxlbmRhci5mb3JtYXRzLmRhdGVUaW1lRGlzcGxheTtcblxuICAvKipcbiAgICogR2V0cyBvciBzZXRzIHRoZSBmb3JtYXQgZm9yIHRoZSBkYXRldGltZSBpbnB1dC5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBnZXQgZm9ybWF0KCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuX2Zvcm1hdDtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXRzIHRoZSBmb3JtYXQgZm9yIHRoZSBkYXRldGltZSBpbnB1dCBhbmQgdXBkYXRlcyBpbnRlcm5hbCBwYXJ0cy5cbiAgICpcbiAgICogQHBhcmFtIHYgLSBUaGUgbmV3IGZvcm1hdCBzdHJpbmcgdG8gYmUgc2V0LlxuICAgKi9cbiAgcHVibGljIHNldCBmb3JtYXQodjogc3RyaW5nKSB7XG4gICAgdGhpcy5zZXRPcHRpb24oe1xuICAgICAgbmFtZTogJ2Zvcm1hdCcsXG4gICAgICB2YWx1ZTogdixcbiAgICAgIGFmdGVyQ2FsbGJhY2s6IChvLCBuKSA9PiB7XG4gICAgICAgIHRoaXMuX2RldGVjdFBhcnRzKCk7XG4gICAgICB9LFxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqICBAaWdub3JlXG4gICAqL1xuICBvdmVycmlkZSBhc3luYyBuZ09uSW5pdCgpIHtcbiAgICBzdXBlci5uZ09uSW5pdCgpO1xuICAgIHRoaXMuX2RldGVjdFBhcnRzKCk7XG4gICAgdGhpcy5kZXRlY3RCdXR0b25UZXh0KCk7XG4gIH1cblxuICAvKipcbiAgICogUmVmcmVzaGVzIHRoZSBwaWNrZXIgY29tcG9uZW50LCB1cGRhdGluZyBpdHMgdmlldyBhbmQgZGF0YS5cbiAgICogQGlnbm9yZVxuICAgKi9cbiAgcHVibGljIHJlZnJlc2goKSB7XG4gICAgdGhpcy5waWNrZXI/LnJlZnJlc2goKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBIYW5kbGVzIGNoYW5nZXMgdG8gdGhlIGludGVybmFsIHZhbHVlIG9mIHRoZSBjb21wb25lbnQuXG4gICAqIEBwYXJhbSB2YWx1ZSAtIFRoZSBuZXcgZGF0ZSB2YWx1ZS4gSWYgbm90IHByb3ZpZGVkLCBkZWZhdWx0cyB0byB0aGUgY3VycmVudCBkYXRlLlxuICAgKi9cbiAgb3ZlcnJpZGUgaW50ZXJuYWxWYWx1ZUNoYW5nZWQodmFsdWU/OiBEYXRlKTogdm9pZCB7XG4gICAgaWYgKHZhbHVlKSB7XG4gICAgICB0aGlzLl9lZGl0aW5nRGF0ZU9iaiA9IHRoaXMuX2NhbGVuZGFyU2VydmljZS5jcmVhdGUodmFsdWUpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLl9lZGl0aW5nRGF0ZU9iaiA9IHRoaXMuX2NhbGVuZGFyU2VydmljZS5ub3codGhpcy50eXBlKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogIEBpZ25vcmVcbiAgICovXG4gIHByb3RlY3RlZCBkZXRlY3RCdXR0b25UZXh0KCkge1xuICAgIHRoaXMuYnV0dG9uVGV4dCA9IHRoaXMuX2FjdGl2ZVBhcnQgPT09ICdkYXRlJyA/ICdkYXRlVGltZS50b2RheScgOiAnZGF0ZVRpbWUubm93JztcbiAgfVxuXG4gIC8qKlxuICAgKiAgQGlnbm9yZVxuICAgKi9cbiAgcHJvdGVjdGVkIF9oYW5kbGVWaWV3Q2hhbmdlZChlOiBBWFRhYlN0cmlwQ2hhbmdlZEV2ZW50KSB7XG4gICAgdGhpcy5fYWN0aXZlUGFydCA9IGUudGFiLmtleSBhcyAnZGF0ZScgfCAndGltZSc7XG4gICAgdGhpcy5kZXRlY3RCdXR0b25UZXh0KCk7XG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICB9XG5cbiAgLyoqXG4gICAqICBAaWdub3JlXG4gICAqL1xuICBwcm90ZWN0ZWQgX2hhbmRsZVBpY2tlck9uVmFsdWVDaGFuZ2VkKGU6IEFYVmFsdWVDaGFuZ2VkRXZlbnQ8RGF0ZT4sIHBhcnQ6IHN0cmluZykge1xuICAgIGlmIChlLmlzVXNlckludGVyYWN0aW9uKSB7XG4gICAgICB0aGlzLl9lZGl0aW5nRGF0ZU9iaiA9IHRoaXMuX2VkaXRpbmdEYXRlT2JqLnNldChwYXJ0IGFzIFRpbWVVbml0LCBOdW1iZXIoZS52YWx1ZVsnaWQnXSkpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiAgQGlnbm9yZVxuICAgKi9cbiAgcHJvdGVjdGVkIF9oYW5kbGVDYWxlbmRhck9uTmF2aWdhdGUoZTogQVhDYWxlbmRhck5hdmlnYXRlRXZlbnQpIHtcbiAgICB0aGlzLm9uTmF2aWdhdGUuZW1pdChlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiAgQGlnbm9yZVxuICAgKi9cbiAgcHJvdGVjdGVkIF9oYW5kbGVDYWxlbmRhck9uVmFsdWVDaGFuZ2VkKGU6IEFYVmFsdWVDaGFuZ2VkRXZlbnQ8RGF0ZT4pIHtcbiAgICBpZiAoZS5pc1VzZXJJbnRlcmFjdGlvbikge1xuICAgICAgY29uc3Qgc2VsZWN0ZWRWYWx1ZSA9IHRoaXMuY2FsZW5kYXJTZXJ2aWNlLmNyZWF0ZShlLnZhbHVlLCB0aGlzLnR5cGUpO1xuICAgICAgY29uc3QgY3VycmVudFZhbHVlID0gdGhpcy5jYWxlbmRhclNlcnZpY2VcbiAgICAgICAgLmNyZWF0ZShlLnZhbHVlLCB0aGlzLnR5cGUpXG4gICAgICAgIC5zZXQoJ2RheScsIHNlbGVjdGVkVmFsdWUuZGF5T2ZNb250aClcbiAgICAgICAgLnNldCgnbW9udGgnLCBzZWxlY3RlZFZhbHVlLm1vbnRoT2ZZZWFyKVxuICAgICAgICAuc2V0KCd5ZWFyJywgc2VsZWN0ZWRWYWx1ZS55ZWFyKTtcblxuICAgICAgdGhpcy5fZWRpdGluZ0RhdGVPYmogPSBjdXJyZW50VmFsdWU7XG4gICAgICBpZiAodGhpcy5faGFzVGltZVBhcnQpIHtcbiAgICAgICAgdGhpcy5fYWN0aXZlUGFydCA9ICd0aW1lJztcbiAgICAgICAgaWYgKHRoaXMudGFicyAmJiB0aGlzLl9oYXNEYXRlUGFydCAmJiB0aGlzLl9oYXNUaW1lUGFydCkge1xuICAgICAgICAgIHRoaXMudGFicy5zZWxlY3QoMSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5jb21taXRWYWx1ZSh0aGlzLmVkaXRpbmdEYXRlT2JqLmRhdGUsIHRydWUpO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmNvbW1pdFZhbHVlKHRoaXMuZWRpdGluZ0RhdGVPYmouZGF0ZSwgdHJ1ZSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqICBAaWdub3JlXG4gICAqL1xuICBwcml2YXRlIF9kZXRlY3RQYXJ0cygpIHtcbiAgICBPYmplY3QudmFsdWVzKHRoaXMuX3BhcnRzKS5mb3JFYWNoKChlKSA9PiB7XG4gICAgICBlLmVuYWJsZWQgPSBmYWxzZTtcbiAgICB9KTtcbiAgICBjb25zdCBmb3JtYXRQYXJ0cyA9IHRoaXMuZm9ybWF0LnNwbGl0KC9bXmEtekEtWl0rLyk7XG4gICAgZm9ybWF0UGFydHMuZm9yRWFjaCgoZikgPT4ge1xuICAgICAgY29uc3QgZm91bmQgPSBPYmplY3QudmFsdWVzKHRoaXMuX3BhcnRzKS5maW5kKChjKSA9PiBjLnBsYWNlaG9sZGVycy5zb21lKChkKSA9PiBkID09IGYpKTtcbiAgICAgIGlmIChmb3VuZCkge1xuICAgICAgICBmb3VuZC5lbmFibGVkID0gdHJ1ZTtcbiAgICAgICAgZm91bmQucGxhY2Vob2xkZXIgPSBmO1xuICAgICAgfVxuICAgIH0pO1xuICAgIHRoaXMuX2FjdGl2ZVBhcnQgPSB0aGlzLl9oYXNEYXRlUGFydCA/ICdkYXRlJyA6ICd0aW1lJztcbiAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIC8qKlxuICAgKiAgQGlnbm9yZVxuICAgKi9cbiAgcHJvdGVjdGVkIF9oYW5kbGVTZXRDbGljaygpIHtcbiAgICB0aGlzLmNvbW1pdFZhbHVlKHRoaXMuZWRpdGluZ0RhdGVPYmouZGF0ZSwgdHJ1ZSk7XG4gIH1cblxuICAvKipcbiAgICogIEBpZ25vcmVcbiAgICovXG4gIHByb3RlY3RlZCBfaGFuZGxlTm93Q2xpY2soKSB7XG4gICAgdGhpcy5fZWRpdGluZ0RhdGVPYmogPSB0aGlzLl9jYWxlbmRhclNlcnZpY2Uubm93KHRoaXMudHlwZSk7XG4gICAgdGhpcy5jb21taXRWYWx1ZSh0aGlzLmVkaXRpbmdEYXRlT2JqLmRhdGUsIHRydWUpO1xuICB9XG5cbiAgLyoqXG4gICAqICBAaWdub3JlXG4gICAqL1xuICBwcm90ZWN0ZWQgaXNEaXNhYmxlZChkYXRlOiBBWERhdGVUaW1lKTogYm9vbGVhbiB7XG4gICAgaWYgKEFycmF5LmlzQXJyYXkodGhpcy5kaXNhYmxlZERhdGVzKSAmJiB0aGlzLmRpc2FibGVkRGF0ZXMubGVuZ3RoICE9IDApIHtcbiAgICAgIHJldHVybiB0aGlzLmRpc2FibGVkRGF0ZXMuc29tZSgoZCkgPT4gZGF0ZS5lcXVhbChkLCAnZGF5JykpO1xuICAgIH0gZWxzZSBpZiAodHlwZW9mIHRoaXMuZGlzYWJsZWREYXRlcyA9PSAnZnVuY3Rpb24nKSB7XG4gICAgICByZXR1cm4gdGhpcy5kaXNhYmxlZERhdGVzKGRhdGUuZGF0ZSk7XG4gICAgfVxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIC8qKlxuICAgKiAgQGlnbm9yZVxuICAgKi9cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIGludGVybmFsU2V0VmFsdWUodmFsdWU6IERhdGUpOiBEYXRlIHwgbnVsbCB7XG4gICAgaWYgKCF2YWx1ZSkgcmV0dXJuIG51bGw7XG4gICAgY29uc3QgdiA9IHRoaXMuY2FsZW5kYXJTZXJ2aWNlLmNvbnZlcnQodmFsdWUpO1xuICAgIGNvbnN0IGlzRGlzYWJsZWQgPSB0aGlzLmlzRGlzYWJsZWQodik7XG4gICAgaWYgKGlzRGlzYWJsZWQpIHJldHVybiBudWxsO1xuICAgIGVsc2UgcmV0dXJuIHYuZGF0ZTtcbiAgfVxufVxuIiwiQGlmIChfaGFzRGF0ZVBhcnQgJiYgX2hhc1RpbWVQYXJ0KSB7XG4gIDxkaXYgY2xhc3M9XCJheC1oZWFkZXJcIj5cbiAgICA8YXgtdGFic1xuICAgICAgW2xvb2tdPVwiJ2RlZmF1bHQnXCJcbiAgICAgIFtmaXRQYXJlbnRdPVwidHJ1ZVwiXG4gICAgICBbbG9jYXRpb25dPVwiJ3RvcCdcIlxuICAgICAgKG9uQWN0aXZlVGFiQ2hhbmdlZCk9XCJfaGFuZGxlVmlld0NoYW5nZWQoJGV2ZW50KVwiXG4gICAgPlxuICAgICAgPGF4LXRhYi1pdGVtXG4gICAgICAgIFt0ZXh0XT1cIidkYXRlVGltZS5kYXRlJyB8IHRyYW5zbGF0ZSB8IGFzeW5jXCJcbiAgICAgICAgW2tleV09XCInZGF0ZSdcIlxuICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgICAgPjwvYXgtdGFiLWl0ZW0+XG4gICAgICA8YXgtdGFiLWl0ZW1cbiAgICAgICAgW3RleHRdPVwiJ2RhdGVUaW1lLnRpbWUnIHwgdHJhbnNsYXRlIHwgYXN5bmNcIlxuICAgICAgICBba2V5XT1cIid0aW1lJ1wiXG4gICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgICA+PC9heC10YWItaXRlbT5cbiAgICA8L2F4LXRhYnM+XG4gIDwvZGl2PlxufVxuPGRpdiBjbGFzcz1cImF4LWNvbnRlbnRcIj5cbiAgQGlmIChfYWN0aXZlUGFydCA9PT0gJ2RhdGUnKSB7XG4gICAgPGRpdiBjbGFzcz1cImF4LWNhbGVuZGFyLXBhcnRcIj5cbiAgICAgIDxheC1jYWxlbmRhclxuICAgICAgICAjY2FsZW5kYXJcbiAgICAgICAgaWQ9XCJjYWxlbmRhclwiXG4gICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgICAgIFtyZWFkb25seV09XCJyZWFkb25seVwiXG4gICAgICAgIFtuZ01vZGVsXT1cImVkaXRpbmdEYXRlT2JqLmRhdGVcIlxuICAgICAgICBbbWluVmFsdWVdPVwibWluVmFsdWVcIlxuICAgICAgICBbbWF4VmFsdWVdPVwibWF4VmFsdWVcIlxuICAgICAgICBbZGlzYWJsZWREYXRlc109XCJkaXNhYmxlZERhdGVzXCJcbiAgICAgICAgW2hvbGlkYXlEYXRlc109XCJob2xpZGF5RGF0ZXNcIlxuICAgICAgICBbZGVwdGhdPVwiZGVwdGhcIlxuICAgICAgICAob25OYXZpZ2F0ZSk9XCJfaGFuZGxlQ2FsZW5kYXJPbk5hdmlnYXRlKCRldmVudClcIlxuICAgICAgICAob25WYWx1ZUNoYW5nZWQpPVwiX2hhbmRsZUNhbGVuZGFyT25WYWx1ZUNoYW5nZWQoJGV2ZW50KVwiXG4gICAgICAgIFt0eXBlXT1cInR5cGVcIlxuICAgICAgPlxuICAgICAgPC9heC1jYWxlbmRhcj5cbiAgICA8L2Rpdj5cbiAgfVxuXG4gIEBpZiAoX2FjdGl2ZVBhcnQgPT09ICd0aW1lJykge1xuICAgIDxkaXYgY2xhc3M9XCJheC1waWNrZXItcGFydFwiPlxuICAgICAgPGRpdiBjbGFzcz1cImF4LWhlYWRlclwiPlxuICAgICAgICB7eyBlZGl0aW5nRGF0ZU9iaiB8IGF4RGF0ZTogZm9ybWF0IDogdHlwZSB9fVxuICAgICAgPC9kaXY+XG4gICAgICA8YXgtcGlja2VyPlxuICAgICAgICBAaWYgKF9wYXJ0cy5ob3VyLmVuYWJsZWQpIHtcbiAgICAgICAgICA8YXgtcGlja2VyLWNvbHVtblxuICAgICAgICAgICAgW3RpdGxlXT1cIidkYXRlVGltZS5ob3VyJyB8IHRyYW5zbGF0ZSB8IGFzeW5jXCJcbiAgICAgICAgICAgIFtpdGVtc109XCJob3Vyc1wiXG4gICAgICAgICAgICBbbmdNb2RlbF09XCJlZGl0aW5nRGF0ZU9iai5ob3VyXCJcbiAgICAgICAgICAgIChvblZhbHVlQ2hhbmdlZCk9XCJfaGFuZGxlUGlja2VyT25WYWx1ZUNoYW5nZWQoJGV2ZW50LCAnaG91cicpXCJcbiAgICAgICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgICAgICAgICBbcmVhZG9ubHldPVwicmVhZG9ubHlcIlxuICAgICAgICAgID48L2F4LXBpY2tlci1jb2x1bW4+XG4gICAgICAgIH1cblxuICAgICAgICBAaWYgKF9wYXJ0cy5taW51dGUuZW5hYmxlZCkge1xuICAgICAgICAgIDxheC1waWNrZXItY29sdW1uXG4gICAgICAgICAgICBbdGl0bGVdPVwiJ2RhdGVUaW1lLm1pbnV0ZScgfCB0cmFuc2xhdGUgfCBhc3luY1wiXG4gICAgICAgICAgICBbaXRlbXNdPVwibWludXRlc1wiXG4gICAgICAgICAgICBbbmdNb2RlbF09XCJlZGl0aW5nRGF0ZU9iai5taW51dGVcIlxuICAgICAgICAgICAgKG9uVmFsdWVDaGFuZ2VkKT1cIl9oYW5kbGVQaWNrZXJPblZhbHVlQ2hhbmdlZCgkZXZlbnQsICdtaW51dGUnKVwiXG4gICAgICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgICAgICAgICAgW3JlYWRvbmx5XT1cInJlYWRvbmx5XCJcbiAgICAgICAgICA+PC9heC1waWNrZXItY29sdW1uPlxuICAgICAgICB9XG4gICAgICAgIEBpZiAoX3BhcnRzLnNlY29uZC5lbmFibGVkKSB7XG4gICAgICAgICAgPGF4LXBpY2tlci1jb2x1bW5cbiAgICAgICAgICAgIFt0aXRsZV09XCInZGF0ZVRpbWUuc2Vjb25kJyB8IHRyYW5zbGF0ZSB8IGFzeW5jXCJcbiAgICAgICAgICAgIFtpdGVtc109XCJtaW51dGVzXCJcbiAgICAgICAgICAgIFtuZ01vZGVsXT1cImVkaXRpbmdEYXRlT2JqLnNlY29uZFwiXG4gICAgICAgICAgICAob25WYWx1ZUNoYW5nZWQpPVwiX2hhbmRsZVBpY2tlck9uVmFsdWVDaGFuZ2VkKCRldmVudCwgJ3NlY29uZCcpXCJcbiAgICAgICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgICAgICAgICBbcmVhZG9ubHldPVwicmVhZG9ubHlcIlxuICAgICAgICAgID48L2F4LXBpY2tlci1jb2x1bW4+XG4gICAgICAgIH1cbiAgICAgIDwvYXgtcGlja2VyPlxuICAgIDwvZGl2PlxuICB9XG48L2Rpdj5cbkBpZiAoIWRpc2FibGVkICYmICFyZWFkb25seSAmJiAoY3VycmVudFRpbWVCdXR0b24gfHwgX2hhc1RpbWVQYXJ0KSkge1xuICA8ZGl2IGNsYXNzPVwiYXgtZm9vdGVyXCI+XG4gICAgPGRpdj5cbiAgICAgIEBpZiAoY3VycmVudFRpbWVCdXR0b24pIHtcbiAgICAgICAgPGF4LWJ1dHRvblxuICAgICAgICAgIFt0ZXh0XT1cImJ1dHRvblRleHQgfCB0cmFuc2xhdGUgfCBhc3luY1wiXG4gICAgICAgICAgY2xhc3M9XCJheC1zbVwiXG4gICAgICAgICAgKG9uQ2xpY2spPVwiX2hhbmRsZU5vd0NsaWNrKClcIlxuICAgICAgICA+PC9heC1idXR0b24+XG4gICAgICB9XG4gICAgPC9kaXY+XG4gICAgPGRpdj5cbiAgICAgIEBpZiAoX2hhc1RpbWVQYXJ0KSB7XG4gICAgICAgIDxheC1idXR0b25cbiAgICAgICAgICBjb2xvcj1cInByaW1hcnlcIlxuICAgICAgICAgIFt0ZXh0XT1cIidkYXRlVGltZS5zZXQnIHwgdHJhbnNsYXRlIHwgYXN5bmNcIlxuICAgICAgICAgIGNsYXNzPVwiYXgtc21cIlxuICAgICAgICAgIChvbkNsaWNrKT1cIl9oYW5kbGVTZXRDbGljaygpXCJcbiAgICAgICAgPjwvYXgtYnV0dG9uPlxuICAgICAgfVxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbn1cbiJdfQ==
389
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZXRpbWUtcGlja2VyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9kYXRldGltZS1waWNrZXIvc3JjL2xpYi9kYXRldGltZS1waWNrZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2RhdGV0aW1lLXBpY2tlci9zcmMvbGliL2RhdGV0aW1lLXBpY2tlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQTJCLHVCQUF1QixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDL0YsT0FBTyxFQUNMLFdBQVcsRUFDWCxvQkFBb0IsRUFDcEIsbUJBQW1CLEVBRW5CLGdCQUFnQixHQUNqQixNQUFNLDJCQUEyQixDQUFDO0FBQ25DLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzlELE9BQU8sRUFBMEIsZUFBZSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDbEYsT0FBTyxFQUFFLGlCQUFpQixFQUF5QyxNQUFNLHdCQUF3QixDQUFDO0FBQ2xHLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ2hFLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFlBQVksRUFDWixLQUFLLEVBRUwsTUFBTSxFQUNOLFNBQVMsRUFDVCxpQkFBaUIsRUFDakIsVUFBVSxFQUNWLE1BQU0sR0FDUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNuRCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ25DLE9BQU8sRUFBMEIseUJBQXlCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQzs7Ozs7Ozs7OztBQUU3Rjs7OztHQUlHO0FBdURILE1BQU0sT0FBTyx5QkFDWCxTQUFRLE9B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d0JBQ1AsT0FBTzt3QkFDUCxNQUFNO3dCQUNOLElBQUk7d0JBQ0osT0FBTzt3QkFDUCxZQUFZO3dCQUNaLFVBQVU7d0JBQ1YsVUFBVTt3QkFDVixlQUFlO3dCQUNmLGNBQWM7d0JBQ2QsTUFBTTt3QkFDTixjQUFjO3dCQUNkLFdBQVc7d0JBQ1gsZ0JBQWdCO3FCQUNqQixXQUNRO3dCQUNQLGFBQWE7d0JBQ2IsYUFBYTt3QkFDYixnQkFBZ0I7d0JBQ2hCLFFBQVE7d0JBQ1IsU0FBUzt3QkFDVCxTQUFTO3dCQUNULGdCQUFnQjt3QkFDaEIsZ0JBQWdCO3dCQUNoQixhQUFhO3dCQUNiLFlBQVk7d0JBQ1osa0JBQWtCO3dCQUNsQixxQkFBcUI7d0JBQ3JCLG9CQUFvQjt3QkFDcEIsWUFBWTt3QkFDWixhQUFhO3FCQUNkLGFBQ1U7d0JBQ1QsRUFBRSxPQUFPLEVBQUUsV0FBVyxFQUFFLFdBQVcsMkJBQTJCLEVBQUU7d0JBQ2hFLEVBQUUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLFdBQVcsMkJBQTJCLEVBQUU7d0JBQ3pFLEVBQUUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLFdBQVcsMkJBQTJCLEVBQUU7d0JBQ3hFOzRCQUNFLE9BQU8sRUFBRSxpQkFBaUI7NEJBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLDBCQUEwQixDQUFDOzRCQUN4RCxLQUFLLEVBQUUsSUFBSTt5QkFDWjtxQkFDRjs4QkFtQlUsaUJBQWlCO3NCQUQzQixLQUFLO2dCQXNCSSxNQUFNO3NCQURmLFNBQVM7dUJBQUMsaUJBQWlCO2dCQU9sQixJQUFJO3NCQURiLFNBQVM7dUJBQUMsZUFBZTtnQkFvRzFCLFlBQVk7c0JBRFgsTUFBTTtnQkFZSSxNQUFNO3NCQURoQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVhDYWxlbmRhck5hdmlnYXRlRXZlbnQsIE1YQ2FsZW5kYXJCYXNlQ29tcG9uZW50IH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2NhbGVuZGFyJztcbmltcG9ydCB7XG4gIEFYQ29tcG9uZW50LFxuICBBWEZvY3VzYWJsZUNvbXBvbmVudCxcbiAgQVhWYWx1YWJsZUNvbXBvbmVudCxcbiAgQVhWYWx1ZUNoYW5nZWRFdmVudCxcbiAgTVhWYWx1ZUNvbXBvbmVudCxcbn0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2NvbW1vbic7XG5pbXBvcnQgeyBBWFBpY2tlckNvbXBvbmVudCB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9waWNrZXInO1xuaW1wb3J0IHsgQVhUYWJTdHJpcENoYW5nZWRFdmVudCwgQVhUYWJzQ29tcG9uZW50IH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL3RhYnMnO1xuaW1wb3J0IHsgQVhDYWxlbmRhclNlcnZpY2UsIEFYRGF0ZVRpbWUsIEFYRGF0ZVRpbWVQYXJ0cywgVGltZVVuaXQgfSBmcm9tICdAYWNvcmV4L2NvcmUvZGF0ZS10aW1lJztcbmltcG9ydCB7IEFYVHJhbnNsYXRpb25TZXJ2aWNlIH0gZnJvbSAnQGFjb3JleC9jb3JlL3RyYW5zbGF0aW9uJztcbmltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE9uSW5pdCxcbiAgT3V0cHV0LFxuICBWaWV3Q2hpbGQsXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxuICBmb3J3YXJkUmVmLFxuICBpbmplY3QsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBjbGFzc2VzIH0gZnJvbSAncG9seXR5cGUnO1xuaW1wb3J0IHsgQVhEYXRlVGltZVBpY2tlckNvbmZpZywgQVhfREFURVRJTUVfUElDS0VSX0NPTkZJRyB9IGZyb20gJy4vZGF0ZXRpbWUtcGlja2VyLmNvbmZpZyc7XG5cbi8qKlxuICogYWxsb3dzIHVzZXJzIHRvIHNlbGVjdCBhIGRhdGUgYW5kIHRpbWUgZnJvbSBhIGNhbGVuZGFyIGFuZCB0aW1lIHBpY2tlciBpbnRlcmZhY2UuXG4gKlxuICogQGNhdGVnb3J5IENvbXBvbmVudHNcbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXgtZGF0ZXRpbWUtcGlja2VyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2RhdGV0aW1lLXBpY2tlci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2RhdGV0aW1lLXBpY2tlci5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgaW5wdXRzOiBbXG4gICAgJ2Rpc2FibGVkJyxcbiAgICAncmVhZG9ubHknLFxuICAgICd0YWJJbmRleCcsXG4gICAgJ3BsYWNlaG9sZGVyJyxcbiAgICAndmFsdWUnLFxuICAgICdzdGF0ZScsXG4gICAgJ25hbWUnLFxuICAgICdpZCcsXG4gICAgJ2RlcHRoJyxcbiAgICAnYWN0aXZlVmlldycsXG4gICAgJ21pblZhbHVlJyxcbiAgICAnbWF4VmFsdWUnLFxuICAgICdkaXNhYmxlZERhdGVzJyxcbiAgICAnaG9saWRheURhdGVzJyxcbiAgICAndHlwZScsXG4gICAgJ2NlbGxUZW1wbGF0ZScsXG4gICAgJ2NlbGxDbGFzcycsXG4gICAgJ3Nob3dOYXZpZ2F0aW9uJyxcbiAgXSxcbiAgb3V0cHV0czogW1xuICAgICd2YWx1ZUNoYW5nZScsXG4gICAgJ3N0YXRlQ2hhbmdlJyxcbiAgICAnb25WYWx1ZUNoYW5nZWQnLFxuICAgICdvbkJsdXInLFxuICAgICdvbkZvY3VzJyxcbiAgICAnb25DbGljaycsXG4gICAgJ3JlYWRvbmx5Q2hhbmdlJyxcbiAgICAnZGlzYWJsZWRDaGFuZ2UnLFxuICAgICdkZXB0aENoYW5nZScsXG4gICAgJ3R5cGVDaGFuZ2UnLFxuICAgICdhY3RpdmVWaWV3Q2hhbmdlJyxcbiAgICAnZGlzYWJsZWREYXRlc0NoYW5nZScsXG4gICAgJ2hvbGlkYXlEYXRlc0NoYW5nZScsXG4gICAgJ29uTmF2aWdhdGUnLFxuICAgICdvblNsb3RDbGljaycsXG4gIF0sXG4gIHByb3ZpZGVyczogW1xuICAgIHsgcHJvdmlkZTogQVhDb21wb25lbnQsIHVzZUV4aXN0aW5nOiBBWERhdGVUaW1lUGlja2VyQ29tcG9uZW50IH0sXG4gICAgeyBwcm92aWRlOiBBWEZvY3VzYWJsZUNvbXBvbmVudCwgdXNlRXhpc3Rpbmc6IEFYRGF0ZVRpbWVQaWNrZXJDb21wb25lbnQgfSxcbiAgICB7IHByb3ZpZGU6IEFYVmFsdWFibGVDb21wb25lbnQsIHVzZUV4aXN0aW5nOiBBWERhdGVUaW1lUGlja2VyQ29tcG9uZW50IH0sXG4gICAge1xuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBBWERhdGVUaW1lUGlja2VyQ29tcG9uZW50KSxcbiAgICAgIG11bHRpOiB0cnVlLFxuICAgIH0sXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIEFYRGF0ZVRpbWVQaWNrZXJDb21wb25lbnRcbiAgZXh0ZW5kcyBjbGFzc2VzKE1YQ2FsZW5kYXJCYXNlQ29tcG9uZW50LCBNWFZhbHVlQ29tcG9uZW50PERhdGU+KVxuICBpbXBsZW1lbnRzIE9uSW5pdFxue1xuICBidXR0b25UZXh0ID0gJyc7XG5cbiAgcHJpdmF0ZSBkZWZhdWx0Q29uZmlnOiBBWERhdGVUaW1lUGlja2VyQ29uZmlnID0gaW5qZWN0KEFYX0RBVEVUSU1FX1BJQ0tFUl9DT05GSUcpO1xuXG4gIC8qKlxuICAgKiAgQGlnbm9yZVxuICAgKi9cbiAgcHJpdmF0ZSBfY3VycmVudFRpbWVCdXR0b246IGJvb2xlYW4gPSB0aGlzLmRlZmF1bHRDb25maWcuY3VycmVudFRpbWVCdXR0b247XG5cbiAgLyoqXG4gICAqIERldGVybWluZXMgd2hldGhlciBhIGJ1dHRvbiBmb3Igc2VsZWN0aW5nIHRoZSBjdXJyZW50IHRpbWUgaXMgZGlzcGxheWVkLlxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIGdldCBjdXJyZW50VGltZUJ1dHRvbigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fY3VycmVudFRpbWVCdXR0b247XG4gIH1cblxuICAvKipcbiAgICogU2V0cyB3aGV0aGVyIHRoZSBidXR0b24gZm9yIHNlbGVjdGluZyB0aGUgY3VycmVudCB0aW1lIGlzIGRpc3BsYXllZC5cbiAgICovXG4gIHB1YmxpYyBzZXQgY3VycmVudFRpbWVCdXR0b24odjogYm9vbGVhbikge1xuICAgIHRoaXMuc2V0T3B0aW9uKHtcbiAgICAgIG5hbWU6ICdjdXJyZW50VGltZUJ1dHRvbicsXG4gICAgICB2YWx1ZTogdixcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgX2NhbGVuZGFyU2VydmljZTogQVhDYWxlbmRhclNlcnZpY2UgPSBpbmplY3QoQVhDYWxlbmRhclNlcnZpY2UpO1xuICBwcml2YXRlIF90cmFubGF0aW9uU2VydmljZSA9IGluamVjdChBWFRyYW5zbGF0aW9uU2VydmljZSk7XG5cbiAgLyoqXG4gICAqICBAaWdub3JlXG4gICAqL1xuICBAVmlld0NoaWxkKEFYUGlja2VyQ29tcG9uZW50KVxuICBwcm90ZWN0ZWQgcGlja2VyOiBBWFBpY2tlckNvbXBvbmVudDtcblxuICAvKipcbiAgICogIEBpZ25vcmVcbiAgICovXG4gIEBWaWV3Q2hpbGQoQVhUYWJzQ29tcG9uZW50KVxuICBwcm90ZWN0ZWQgdGFiczogQVhUYWJzQ29tcG9uZW50O1xuXG4gIC8qKlxuICAgKiAgQGlnbm9yZVxuICAgKi9cbiAgcHJvdGVjdGVkIGhvdXJzOiBhbnlbXSA9IEFycmF5KDI0KVxuICAgIC5maWxsKDApXG4gICAgLm1hcCgobSwgaSkgPT4gKHsgaWQ6IGksIHRleHQ6IGkgfSkpO1xuICBtaW51dGVzOiBhbnlbXSA9IEFycmF5KDYwKVxuICAgIC5maWxsKDApXG4gICAgLm1hcCgobSwgaSkgPT4gKHsgaWQ6IGksIHRleHQ6IGkgfSkpO1xuXG4gIC8qKlxuICAgKiAgQGlnbm9yZVxuICAgKi9cbiAgcHJvdGVjdGVkIF9wYXJ0czogQVhEYXRlVGltZVBhcnRzID0ge1xuICAgIHllYXI6IHtcbiAgICAgIGtleTogJ3llYXInLFxuICAgICAgcGxhY2Vob2xkZXI6ICd5eXl5JyxcbiAgICAgIHBsYWNlaG9sZGVyczogWydZWScsICd5eScsICdZWVlZJywgJ3l5eXknXSxcbiAgICAgIGVuYWJsZWQ6IGZhbHNlLFxuICAgICAgZGVmYXVsdDogMjAyMyxcbiAgICAgIHJlYWxWYWx1ZTogKCkgPT4gdGhpcy5lZGl0aW5nRGF0ZU9iai5mb3JtYXQodGhpcy5fcGFydHMueWVhci5wbGFjZWhvbGRlciksXG4gICAgfSxcbiAgICBtb250aDoge1xuICAgICAga2V5OiAnbW9udGgnLFxuICAgICAgcGxhY2Vob2xkZXI6ICdNTScsXG4gICAgICBwbGFjZWhvbGRlcnM6IFsnTU1NJywgJ01NTU0nLCAnTU0nLCAnTSddLFxuICAgICAgZW5hYmxlZDogZmFsc2UsXG4gICAgICBkZWZhdWx0OiAxLFxuICAgICAgcmVhbFZhbHVlOiAoKSA9PiB0aGlzLmVkaXRpbmdEYXRlT2JqLmZvcm1hdCh0aGlzLl9wYXJ0cy5tb250aC5wbGFjZWhvbGRlciksXG4gICAgfSxcbiAgICBkYXk6IHtcbiAgICAgIGtleTogJ2RheScsXG4gICAgICBwbGFjZWhvbGRlcjogJ2RkJyxcbiAgICAgIHBsYWNlaG9sZGVyczogWydkZCcsICdkJywgJ2RkZGQnLCAnRERERCddLFxuICAgICAgZW5hYmxlZDogZmFsc2UsXG4gICAgICBkZWZhdWx0OiAxLFxuICAgICAgcmVhbFZhbHVlOiAoKSA9PiB0aGlzLmVkaXRpbmdEYXRlT2JqLmZvcm1hdCh0aGlzLl9wYXJ0cy5kYXkucGxhY2Vob2xkZXIpLFxuICAgIH0sXG4gICAgaG91cjoge1xuICAgICAga2V5OiAnaG91cicsXG4gICAgICBwbGFjZWhvbGRlcjogJ0hIJyxcbiAgICAgIHBsYWNlaG9sZGVyczogWydISCcsICdIJywgJ2hoJywgJ2gnXSxcbiAgICAgIGVuYWJsZWQ6IGZhbHNlLFxuICAgICAgZGVmYXVsdDogMCxcbiAgICAgIHJlYWxWYWx1ZTogKCkgPT4gdGhpcy5lZGl0aW5nRGF0ZU9iai5mb3JtYXQodGhpcy5fcGFydHMuaG91ci5wbGFjZWhvbGRlciksXG4gICAgfSxcbiAgICBtaW51dGU6IHtcbiAgICAgIGtleTogJ21pbnV0ZScsXG4gICAgICBwbGFjZWhvbGRlcjogJ21tJyxcbiAgICAgIHBsYWNlaG9sZGVyczogWydtbScsICdtJ10sXG4gICAgICBlbmFibGVkOiBmYWxzZSxcbiAgICAgIGRlZmF1bHQ6IDAsXG4gICAgICByZWFsVmFsdWU6ICgpID0+IHRoaXMuZWRpdGluZ0RhdGVPYmouZm9ybWF0KHRoaXMuX3BhcnRzLm1pbnV0ZS5wbGFjZWhvbGRlciksXG4gICAgfSxcbiAgICBzZWNvbmQ6IHtcbiAgICAgIGtleTogJ3NlY29uZCcsXG4gICAgICBwbGFjZWhvbGRlcjogJ3NzJyxcbiAgICAgIHBsYWNlaG9sZGVyczogWydzcycsICdzJ10sXG4gICAgICBlbmFibGVkOiBmYWxzZSxcbiAgICAgIGRlZmF1bHQ6IDAsXG4gICAgICByZWFsVmFsdWU6ICgpID0+IHRoaXMuZWRpdGluZ0RhdGVPYmouZm9ybWF0KHRoaXMuX3BhcnRzLnNlY29uZC5wbGFjZWhvbGRlciksXG4gICAgfSxcbiAgfTtcblxuICAvKipcbiAgICogIEBpZ25vcmVcbiAgICovXG4gIHByb3RlY3RlZCBfYWN0aXZlUGFydDogJ2RhdGUnIHwgJ3RpbWUnID0gJ2RhdGUnO1xuXG4gIC8qKlxuICAgKiAgQGlnbm9yZVxuICAgKi9cbiAgcHJvdGVjdGVkIGdldCBfaGFzRGF0ZVBhcnQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIFsneWVhcicsICdtb250aCcsICdkYXknXS5zb21lKChrKSA9PiB0aGlzLl9wYXJ0c1trXS5lbmFibGVkKTtcbiAgfVxuXG4gIC8qKlxuICAgKiAgQGlnbm9yZVxuICAgKi9cbiAgcHJvdGVjdGVkIGdldCBfaGFzVGltZVBhcnQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIFsnaG91cicsICdtaW51dGUnLCAnc2Vjb25kJ10uc29tZSgoaykgPT4gdGhpcy5fcGFydHNba10uZW5hYmxlZCk7XG4gIH1cblxuICAvKipcbiAgICogIEBpZ25vcmVcbiAgICovXG4gIHByaXZhdGUgX2VkaXRpbmdEYXRlT2JqOiBBWERhdGVUaW1lID0gdGhpcy5fY2FsZW5kYXJTZXJ2aWNlLm5vdyh0aGlzLnR5cGUpO1xuICBwcm90ZWN0ZWQgZ2V0IGVkaXRpbmdEYXRlT2JqKCk6IEFYRGF0ZVRpbWUge1xuICAgIHJldHVybiB0aGlzLl9lZGl0aW5nRGF0ZU9iajtcbiAgfVxuXG4gIC8qKlxuICAgKiBFbWl0cyBhbiBldmVudCB3aGVuIHRoZSBmb3JtYXQgY2hhbmdlcy5cbiAgICpcbiAgICogQGV2ZW50XG4gICAqL1xuICBAT3V0cHV0KClcbiAgZm9ybWF0Q2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XG5cbiAgLyoqXG4gICAqICBAaWdub3JlXG4gICAqL1xuICBwcml2YXRlIF9mb3JtYXQgPSB0aGlzLmNhbGVuZGFyU2VydmljZS5jYWxlbmRhci5mb3JtYXRzLmRhdGVUaW1lRGlzcGxheTtcblxuICAvKipcbiAgICogR2V0cyBvciBzZXRzIHRoZSBmb3JtYXQgZm9yIHRoZSBkYXRldGltZSBpbnB1dC5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBnZXQgZm9ybWF0KCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuX2Zvcm1hdDtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXRzIHRoZSBmb3JtYXQgZm9yIHRoZSBkYXRldGltZSBpbnB1dCBhbmQgdXBkYXRlcyBpbnRlcm5hbCBwYXJ0cy5cbiAgICpcbiAgICogQHBhcmFtIHYgLSBUaGUgbmV3IGZvcm1hdCBzdHJpbmcgdG8gYmUgc2V0LlxuICAgKi9cbiAgcHVibGljIHNldCBmb3JtYXQodjogc3RyaW5nKSB7XG4gICAgdGhpcy5zZXRPcHRpb24oe1xuICAgICAgbmFtZTogJ2Zvcm1hdCcsXG4gICAgICB2YWx1ZTogdixcbiAgICAgIGFmdGVyQ2FsbGJhY2s6IChvLCBuKSA9PiB7XG4gICAgICAgIHRoaXMuX2RldGVjdFBhcnRzKCk7XG4gICAgICB9LFxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqICBAaWdub3JlXG4gICAqL1xuICBvdmVycmlkZSBhc3luYyBuZ09uSW5pdCgpIHtcbiAgICBzdXBlci5uZ09uSW5pdCgpO1xuICAgIHRoaXMuX2RldGVjdFBhcnRzKCk7XG4gICAgdGhpcy5kZXRlY3RCdXR0b25UZXh0KCk7XG4gIH1cblxuICAvKipcbiAgICogUmVmcmVzaGVzIHRoZSBwaWNrZXIgY29tcG9uZW50LCB1cGRhdGluZyBpdHMgdmlldyBhbmQgZGF0YS5cbiAgICogQGlnbm9yZVxuICAgKi9cbiAgcHVibGljIHJlZnJlc2goKSB7XG4gICAgdGhpcy5waWNrZXI/LnJlZnJlc2goKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBIYW5kbGVzIGNoYW5nZXMgdG8gdGhlIGludGVybmFsIHZhbHVlIG9mIHRoZSBjb21wb25lbnQuXG4gICAqIEBwYXJhbSB2YWx1ZSAtIFRoZSBuZXcgZGF0ZSB2YWx1ZS4gSWYgbm90IHByb3ZpZGVkLCBkZWZhdWx0cyB0byB0aGUgY3VycmVudCBkYXRlLlxuICAgKi9cbiAgb3ZlcnJpZGUgaW50ZXJuYWxWYWx1ZUNoYW5nZWQodmFsdWU/OiBEYXRlKTogdm9pZCB7XG4gICAgaWYgKHZhbHVlKSB7XG4gICAgICB0aGlzLl9lZGl0aW5nRGF0ZU9iaiA9IHRoaXMuX2NhbGVuZGFyU2VydmljZS5jcmVhdGUodmFsdWUpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLl9lZGl0aW5nRGF0ZU9iaiA9IHRoaXMuX2NhbGVuZGFyU2VydmljZS5ub3codGhpcy50eXBlKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogIEBpZ25vcmVcbiAgICovXG4gIHByb3RlY3RlZCBkZXRlY3RCdXR0b25UZXh0KCkge1xuICAgIHRoaXMuYnV0dG9uVGV4dCA9IHRoaXMuX2FjdGl2ZVBhcnQgPT09ICdkYXRlJyA/ICdkYXRlVGltZS50b2RheScgOiAnZGF0ZVRpbWUubm93JztcbiAgfVxuXG4gIC8qKlxuICAgKiAgQGlnbm9yZVxuICAgKi9cbiAgcHJvdGVjdGVkIF9oYW5kbGVWaWV3Q2hhbmdlZChlOiBBWFRhYlN0cmlwQ2hhbmdlZEV2ZW50KSB7XG4gICAgdGhpcy5fYWN0aXZlUGFydCA9IGUudGFiLmtleSBhcyAnZGF0ZScgfCAndGltZSc7XG4gICAgdGhpcy5kZXRlY3RCdXR0b25UZXh0KCk7XG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICB9XG5cbiAgLyoqXG4gICAqICBAaWdub3JlXG4gICAqL1xuICBwcm90ZWN0ZWQgX2hhbmRsZVBpY2tlck9uVmFsdWVDaGFuZ2VkKGU6IEFYVmFsdWVDaGFuZ2VkRXZlbnQ8RGF0ZT4sIHBhcnQ6IHN0cmluZykge1xuICAgIGlmIChlLmlzVXNlckludGVyYWN0aW9uKSB7XG4gICAgICB0aGlzLl9lZGl0aW5nRGF0ZU9iaiA9IHRoaXMuX2VkaXRpbmdEYXRlT2JqLnNldChwYXJ0IGFzIFRpbWVVbml0LCBOdW1iZXIoZS52YWx1ZVsnaWQnXSkpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiAgQGlnbm9yZVxuICAgKi9cbiAgcHJvdGVjdGVkIF9oYW5kbGVDYWxlbmRhck9uTmF2aWdhdGUoZTogQVhDYWxlbmRhck5hdmlnYXRlRXZlbnQpIHtcbiAgICB0aGlzLm9uTmF2aWdhdGUuZW1pdChlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiAgQGlnbm9yZVxuICAgKi9cbiAgcHJvdGVjdGVkIF9oYW5kbGVDYWxlbmRhck9uVmFsdWVDaGFuZ2VkKGU6IEFYVmFsdWVDaGFuZ2VkRXZlbnQ8RGF0ZT4pIHtcbiAgICBpZiAoZS5pc1VzZXJJbnRlcmFjdGlvbikge1xuICAgICAgY29uc3Qgc2VsZWN0ZWRWYWx1ZSA9IHRoaXMuY2FsZW5kYXJTZXJ2aWNlLmNyZWF0ZShlLnZhbHVlLCB0aGlzLnR5cGUpO1xuICAgICAgY29uc3QgY3VycmVudFZhbHVlID0gdGhpcy5jYWxlbmRhclNlcnZpY2VcbiAgICAgICAgLmNyZWF0ZShlLnZhbHVlLCB0aGlzLnR5cGUpXG4gICAgICAgIC5zZXQoJ2RheScsIHNlbGVjdGVkVmFsdWUuZGF5T2ZNb250aClcbiAgICAgICAgLnNldCgnbW9udGgnLCBzZWxlY3RlZFZhbHVlLm1vbnRoT2ZZZWFyKVxuICAgICAgICAuc2V0KCd5ZWFyJywgc2VsZWN0ZWRWYWx1ZS55ZWFyKTtcblxuICAgICAgdGhpcy5fZWRpdGluZ0RhdGVPYmogPSBjdXJyZW50VmFsdWU7XG4gICAgICBpZiAodGhpcy5faGFzVGltZVBhcnQpIHtcbiAgICAgICAgdGhpcy5fYWN0aXZlUGFydCA9ICd0aW1lJztcbiAgICAgICAgaWYgKHRoaXMudGFicyAmJiB0aGlzLl9oYXNEYXRlUGFydCAmJiB0aGlzLl9oYXNUaW1lUGFydCkge1xuICAgICAgICAgIHRoaXMudGFicy5zZWxlY3QoMSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5jb21taXRWYWx1ZSh0aGlzLmVkaXRpbmdEYXRlT2JqLmRhdGUsIHRydWUpO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmNvbW1pdFZhbHVlKHRoaXMuZWRpdGluZ0RhdGVPYmouZGF0ZSwgdHJ1ZSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqICBAaWdub3JlXG4gICAqL1xuICBwcml2YXRlIF9kZXRlY3RQYXJ0cygpIHtcbiAgICBPYmplY3QudmFsdWVzKHRoaXMuX3BhcnRzKS5mb3JFYWNoKChlKSA9PiB7XG4gICAgICBlLmVuYWJsZWQgPSBmYWxzZTtcbiAgICB9KTtcbiAgICBjb25zdCBmb3JtYXRQYXJ0cyA9IHRoaXMuZm9ybWF0LnNwbGl0KC9bXmEtekEtWl0rLyk7XG4gICAgZm9ybWF0UGFydHMuZm9yRWFjaCgoZikgPT4ge1xuICAgICAgY29uc3QgZm91bmQgPSBPYmplY3QudmFsdWVzKHRoaXMuX3BhcnRzKS5maW5kKChjKSA9PiBjLnBsYWNlaG9sZGVycy5zb21lKChkKSA9PiBkID09IGYpKTtcbiAgICAgIGlmIChmb3VuZCkge1xuICAgICAgICBmb3VuZC5lbmFibGVkID0gdHJ1ZTtcbiAgICAgICAgZm91bmQucGxhY2Vob2xkZXIgPSBmO1xuICAgICAgfVxuICAgIH0pO1xuICAgIHRoaXMuX2FjdGl2ZVBhcnQgPSB0aGlzLl9oYXNEYXRlUGFydCA/ICdkYXRlJyA6ICd0aW1lJztcbiAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIC8qKlxuICAgKiAgQGlnbm9yZVxuICAgKi9cbiAgcHJvdGVjdGVkIF9oYW5kbGVTZXRDbGljaygpIHtcbiAgICB0aGlzLmNvbW1pdFZhbHVlKHRoaXMuZWRpdGluZ0RhdGVPYmouZGF0ZSwgdHJ1ZSk7XG4gIH1cblxuICAvKipcbiAgICogIEBpZ25vcmVcbiAgICovXG4gIHByb3RlY3RlZCBfaGFuZGxlTm93Q2xpY2soKSB7XG4gICAgdGhpcy5fZWRpdGluZ0RhdGVPYmogPSB0aGlzLl9jYWxlbmRhclNlcnZpY2Uubm93KHRoaXMudHlwZSk7XG4gICAgdGhpcy5jb21taXRWYWx1ZSh0aGlzLmVkaXRpbmdEYXRlT2JqLmRhdGUsIHRydWUpO1xuICB9XG5cbiAgLyoqXG4gICAqICBAaWdub3JlXG4gICAqL1xuICBwcm90ZWN0ZWQgaXNEaXNhYmxlZChkYXRlOiBBWERhdGVUaW1lKTogYm9vbGVhbiB7XG4gICAgaWYgKEFycmF5LmlzQXJyYXkodGhpcy5kaXNhYmxlZERhdGVzKSAmJiB0aGlzLmRpc2FibGVkRGF0ZXMubGVuZ3RoICE9IDApIHtcbiAgICAgIHJldHVybiB0aGlzLmRpc2FibGVkRGF0ZXMuc29tZSgoZCkgPT4gZGF0ZS5lcXVhbChkLCAnZGF5JykpO1xuICAgIH0gZWxzZSBpZiAodHlwZW9mIHRoaXMuZGlzYWJsZWREYXRlcyA9PSAnZnVuY3Rpb24nKSB7XG4gICAgICByZXR1cm4gdGhpcy5kaXNhYmxlZERhdGVzKGRhdGUuZGF0ZSk7XG4gICAgfVxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIC8qKlxuICAgKiAgQGlnbm9yZVxuICAgKi9cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIGludGVybmFsU2V0VmFsdWUodmFsdWU6IERhdGUpOiBEYXRlIHwgbnVsbCB7XG4gICAgaWYgKCF2YWx1ZSkgcmV0dXJuIG51bGw7XG4gICAgY29uc3QgdiA9IHRoaXMuY2FsZW5kYXJTZXJ2aWNlLmNvbnZlcnQodmFsdWUpO1xuICAgIGNvbnN0IGlzRGlzYWJsZWQgPSB0aGlzLmlzRGlzYWJsZWQodik7XG4gICAgaWYgKGlzRGlzYWJsZWQpIHJldHVybiBudWxsO1xuICAgIGVsc2UgcmV0dXJuIHYuZGF0ZTtcbiAgfVxuXG4gIHByb3RlY3RlZCBpc1RvZGF5RGlzYWJsZWQoKTogYm9vbGVhbiB7XG4gICAgY29uc3QgZGlzYWJsZWREYXRlcyA9IHRoaXMuZGlzYWJsZWREYXRlcztcblxuICAgIGlmICghZGlzYWJsZWREYXRlcyB8fCAhQXJyYXkuaXNBcnJheShkaXNhYmxlZERhdGVzKSkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIGNvbnN0IHRvZGF5ID0gbmV3IERhdGUoKTtcbiAgICB0b2RheS5zZXRIb3VycygwLCAwLCAwLCAwKTtcblxuICAgIHJldHVybiBkaXNhYmxlZERhdGVzLnNvbWUoKGRpc2FibGVkRGF0ZTogRGF0ZSkgPT4ge1xuICAgICAgY29uc3QgZGlzYWJsZWQgPSBuZXcgRGF0ZShkaXNhYmxlZERhdGUpO1xuICAgICAgZGlzYWJsZWQuc2V0SG91cnMoMCwgMCwgMCwgMCk7XG4gICAgICByZXR1cm4gdG9kYXkuZ2V0VGltZSgpID09PSBkaXNhYmxlZC5nZXRUaW1lKCk7XG4gICAgfSk7XG4gIH1cbn1cbiIsIkBpZiAoX2hhc0RhdGVQYXJ0ICYmIF9oYXNUaW1lUGFydCkge1xuICA8ZGl2IGNsYXNzPVwiYXgtaGVhZGVyXCI+XG4gICAgPGF4LXRhYnNcbiAgICAgIFtsb29rXT1cIidkZWZhdWx0J1wiXG4gICAgICBbZml0UGFyZW50XT1cInRydWVcIlxuICAgICAgW2xvY2F0aW9uXT1cIid0b3AnXCJcbiAgICAgIChvbkFjdGl2ZVRhYkNoYW5nZWQpPVwiX2hhbmRsZVZpZXdDaGFuZ2VkKCRldmVudClcIlxuICAgID5cbiAgICAgIDxheC10YWItaXRlbVxuICAgICAgICBbdGV4dF09XCInZGF0ZVRpbWUuZGF0ZScgfCB0cmFuc2xhdGUgfCBhc3luY1wiXG4gICAgICAgIFtrZXldPVwiJ2RhdGUnXCJcbiAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICAgID48L2F4LXRhYi1pdGVtPlxuICAgICAgPGF4LXRhYi1pdGVtXG4gICAgICAgIFt0ZXh0XT1cIidkYXRlVGltZS50aW1lJyB8IHRyYW5zbGF0ZSB8IGFzeW5jXCJcbiAgICAgICAgW2tleV09XCIndGltZSdcIlxuICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgICAgPjwvYXgtdGFiLWl0ZW0+XG4gICAgPC9heC10YWJzPlxuICA8L2Rpdj5cbn1cbjxkaXYgY2xhc3M9XCJheC1jb250ZW50XCI+XG4gIEBpZiAoX2FjdGl2ZVBhcnQgPT09ICdkYXRlJykge1xuICAgIDxkaXYgY2xhc3M9XCJheC1jYWxlbmRhci1wYXJ0XCI+XG4gICAgICA8YXgtY2FsZW5kYXJcbiAgICAgICAgI2NhbGVuZGFyXG4gICAgICAgIGlkPVwiY2FsZW5kYXJcIlxuICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgICAgICBbcmVhZG9ubHldPVwicmVhZG9ubHlcIlxuICAgICAgICBbbmdNb2RlbF09XCJlZGl0aW5nRGF0ZU9iai5kYXRlXCJcbiAgICAgICAgW21pblZhbHVlXT1cIm1pblZhbHVlXCJcbiAgICAgICAgW21heFZhbHVlXT1cIm1heFZhbHVlXCJcbiAgICAgICAgW2Rpc2FibGVkRGF0ZXNdPVwiZGlzYWJsZWREYXRlc1wiXG4gICAgICAgIFtob2xpZGF5RGF0ZXNdPVwiaG9saWRheURhdGVzXCJcbiAgICAgICAgW2RlcHRoXT1cImRlcHRoXCJcbiAgICAgICAgKG9uTmF2aWdhdGUpPVwiX2hhbmRsZUNhbGVuZGFyT25OYXZpZ2F0ZSgkZXZlbnQpXCJcbiAgICAgICAgKG9uVmFsdWVDaGFuZ2VkKT1cIl9oYW5kbGVDYWxlbmRhck9uVmFsdWVDaGFuZ2VkKCRldmVudClcIlxuICAgICAgICBbdHlwZV09XCJ0eXBlXCJcbiAgICAgID5cbiAgICAgIDwvYXgtY2FsZW5kYXI+XG4gICAgPC9kaXY+XG4gIH1cblxuICBAaWYgKF9hY3RpdmVQYXJ0ID09PSAndGltZScpIHtcbiAgICA8ZGl2IGNsYXNzPVwiYXgtcGlja2VyLXBhcnRcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJheC1oZWFkZXJcIj5cbiAgICAgICAge3sgZWRpdGluZ0RhdGVPYmogfCBheERhdGU6IGZvcm1hdCA6IHR5cGUgfX1cbiAgICAgIDwvZGl2PlxuICAgICAgPGF4LXBpY2tlcj5cbiAgICAgICAgQGlmIChfcGFydHMuaG91ci5lbmFibGVkKSB7XG4gICAgICAgICAgPGF4LXBpY2tlci1jb2x1bW5cbiAgICAgICAgICAgIFt0aXRsZV09XCInZGF0ZVRpbWUuaG91cicgfCB0cmFuc2xhdGUgfCBhc3luY1wiXG4gICAgICAgICAgICBbaXRlbXNdPVwiaG91cnNcIlxuICAgICAgICAgICAgW25nTW9kZWxdPVwiZWRpdGluZ0RhdGVPYmouaG91clwiXG4gICAgICAgICAgICAob25WYWx1ZUNoYW5nZWQpPVwiX2hhbmRsZVBpY2tlck9uVmFsdWVDaGFuZ2VkKCRldmVudCwgJ2hvdXInKVwiXG4gICAgICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgICAgICAgICAgW3JlYWRvbmx5XT1cInJlYWRvbmx5XCJcbiAgICAgICAgICA+PC9heC1waWNrZXItY29sdW1uPlxuICAgICAgICB9XG5cbiAgICAgICAgQGlmIChfcGFydHMubWludXRlLmVuYWJsZWQpIHtcbiAgICAgICAgICA8YXgtcGlja2VyLWNvbHVtblxuICAgICAgICAgICAgW3RpdGxlXT1cIidkYXRlVGltZS5taW51dGUnIHwgdHJhbnNsYXRlIHwgYXN5bmNcIlxuICAgICAgICAgICAgW2l0ZW1zXT1cIm1pbnV0ZXNcIlxuICAgICAgICAgICAgW25nTW9kZWxdPVwiZWRpdGluZ0RhdGVPYmoubWludXRlXCJcbiAgICAgICAgICAgIChvblZhbHVlQ2hhbmdlZCk9XCJfaGFuZGxlUGlja2VyT25WYWx1ZUNoYW5nZWQoJGV2ZW50LCAnbWludXRlJylcIlxuICAgICAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICAgICAgICAgIFtyZWFkb25seV09XCJyZWFkb25seVwiXG4gICAgICAgICAgPjwvYXgtcGlja2VyLWNvbHVtbj5cbiAgICAgICAgfVxuICAgICAgICBAaWYgKF9wYXJ0cy5zZWNvbmQuZW5hYmxlZCkge1xuICAgICAgICAgIDxheC1waWNrZXItY29sdW1uXG4gICAgICAgICAgICBbdGl0bGVdPVwiJ2RhdGVUaW1lLnNlY29uZCcgfCB0cmFuc2xhdGUgfCBhc3luY1wiXG4gICAgICAgICAgICBbaXRlbXNdPVwibWludXRlc1wiXG4gICAgICAgICAgICBbbmdNb2RlbF09XCJlZGl0aW5nRGF0ZU9iai5zZWNvbmRcIlxuICAgICAgICAgICAgKG9uVmFsdWVDaGFuZ2VkKT1cIl9oYW5kbGVQaWNrZXJPblZhbHVlQ2hhbmdlZCgkZXZlbnQsICdzZWNvbmQnKVwiXG4gICAgICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgICAgICAgICAgW3JlYWRvbmx5XT1cInJlYWRvbmx5XCJcbiAgICAgICAgICA+PC9heC1waWNrZXItY29sdW1uPlxuICAgICAgICB9XG4gICAgICA8L2F4LXBpY2tlcj5cbiAgICA8L2Rpdj5cbiAgfVxuPC9kaXY+XG5AaWYgKCFkaXNhYmxlZCAmJiAhcmVhZG9ubHkgJiYgKGN1cnJlbnRUaW1lQnV0dG9uIHx8IF9oYXNUaW1lUGFydCkpIHtcbiAgPGRpdiBjbGFzcz1cImF4LWZvb3RlclwiPlxuICAgIDxkaXY+XG4gICAgICBAaWYgKGN1cnJlbnRUaW1lQnV0dG9uKSB7XG4gICAgICAgIDxheC1idXR0b25cbiAgICAgICAgICBbdGV4dF09XCJidXR0b25UZXh0IHwgdHJhbnNsYXRlIHwgYXN5bmNcIlxuICAgICAgICAgIGNsYXNzPVwiYXgtc21cIlxuICAgICAgICAgIChvbkNsaWNrKT1cIl9oYW5kbGVOb3dDbGljaygpXCJcbiAgICAgICAgICBbZGlzYWJsZWRdPVwiaXNUb2RheURpc2FibGVkKClcIlxuICAgICAgICA+PC9heC1idXR0b24+XG4gICAgICB9XG4gICAgPC9kaXY+XG4gICAgPGRpdj5cbiAgICAgIEBpZiAoX2hhc1RpbWVQYXJ0KSB7XG4gICAgICAgIDxheC1idXR0b25cbiAgICAgICAgICBjb2xvcj1cInByaW1hcnlcIlxuICAgICAgICAgIFt0ZXh0XT1cIidkYXRlVGltZS5zZXQnIHwgdHJhbnNsYXRlIHwgYXN5bmNcIlxuICAgICAgICAgIGNsYXNzPVwiYXgtc21cIlxuICAgICAgICAgIChvbkNsaWNrKT1cIl9oYW5kbGVTZXRDbGljaygpXCJcbiAgICAgICAgPjwvYXgtYnV0dG9uPlxuICAgICAgfVxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbn1cbiJdfQ==
@@ -228,7 +228,7 @@ export class AXListComponent extends MXSelectionValueComponent {
228
228
  },
229
229
  deps: [[new Optional(), new SkipSelf(), AX_SELECTION_DATA_TOKEN]],
230
230
  },
231
- ], viewQueries: [{ propertyName: "viewport", first: true, predicate: CdkVirtualScrollViewport, descendants: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"list-container\" cdkVirtualScrollingElement>\n <ng-content select=\"ax-header\"></ng-content>\n <cdk-virtual-scroll-viewport [itemSize]=\"itemHeightSignal()\" [style.--item-height]=\"itemHeightSignal()+'px'\"\n (scrolledIndexChange)=\"_handleOnscrolledIndexChange($event)\">\n <ul>\n <!-- Item Template -->\n <ng-container *cdkVirtualFor=\"let item of listDataSource;let i = index; trackBy: trackByIdx\">\n <ng-container *ngIf=\"item;else loadingTpl\">\n <li [class.ax-state-selected]=\"isItemSelected(item)\" class=\"list-item\"\n [class.ax-state-disabled]=\"isItemDisabled(item)\" [attr.tabindex]=\"i\"\n (click)=\"_handleOnItemClick($event, item)\" [attr.data-id]=\"getValue(item)\">\n <!-- Custom Item Template -->\n <ng-container *ngIf=\"itemTemplate;else defaultItemTpl\">\n <ng-container *ngTemplateOutlet=\"itemTemplate;context: { $implicit: { data:item } }\">\n </ng-container>\n </ng-container>\n <!-- Default Item Template -->\n <ng-template #defaultItemTpl>\n <ng-container *ngIf=\"item;else loadingTpl\">\n <div class=\"ax-label-container\">\n <input class=\"ax-checkbox\" *ngIf=\"multiple && checkbox\" type=\"checkbox\"\n [checked]=\"isItemSelected(item)\" [disabled]=\"isItemDisabled(item)\"\n tabindex=\"0\" />\n <span\n [class.ax-checkbox-label]=\"multiple && checkbox\">{{getDisplayText(item)}}</span>\n </div>\n <!-- <i class=\"ax-icon ax-icon-check ax-selected-icon\" *ngIf=\"isItemSelected(item) \"></i> -->\n </ng-container>\n </ng-template>\n </li>\n </ng-container>\n </ng-container>\n </ul>\n </cdk-virtual-scroll-viewport>\n <ng-content select=\"ax-footer\"></ng-content>\n</div>\n<!-- Loading Template -->\n<ng-template #loadingTpl>\n <!-- Custom Loading Template -->\n <ng-container *ngIf=\"loadingTemplate;else defaultLoadingTpl\">\n <ng-container *ngTemplateOutlet=\"loadingTemplate\">\n </ng-container>\n </ng-container>\n <!-- Default Loading Template -->\n <ng-template #defaultLoadingTpl>\n <li>{{'loading' | translate | async }}</li>\n </ng-template>\n</ng-template>\n<!-- Empty Template -->\n@if(showEmptyTemplate()){\n<div class=\"empty-container\">\n <ng-container *ngTemplateOutlet=\"emptyTemplate\"></ng-container>\n</div>\n}", styles: ["ax-list{display:block;height:100%;width:100%;font-size:.875rem;line-height:1.25rem}ax-list .list-container{display:flex;height:100%;flex-direction:column}ax-list .empty-container{display:flex;height:var(--ax-size-default);width:100%;align-items:center;justify-content:center;padding-left:.75rem;padding-right:.75rem}ax-list.ax-default .cdk-virtual-scroll-viewport ul li{position:relative;display:flex;height:var(--ax-size-default);cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;justify-content:space-between;padding-inline-end:1rem;padding-inline-start:.75rem;font-size:.875rem;line-height:1.25rem}ax-list.ax-default .cdk-virtual-scroll-viewport ul li:focus,ax-list.ax-default .cdk-virtual-scroll-viewport ul li:focus-within,ax-list.ax-default .cdk-virtual-scroll-viewport ul li:focus-visible{outline-width:2px;outline-offset:-4px;outline-color:rgba(var(--ax-color-primary-500),1)}ax-list.ax-default .cdk-virtual-scroll-viewport ul li .ax-label-container{display:flex;align-items:center}ax-list.ax-default .cdk-virtual-scroll-viewport ul li .ax-checkbox-label{margin-inline-start:.5rem}ax-list.ax-default .cdk-virtual-scroll-viewport ul li.ax-state-selected{background-color:rgba(var(--ax-color-on-surface))}ax-list.ax-default .cdk-virtual-scroll-viewport ul li.ax-state-disabled{cursor:not-allowed;opacity:.5}ax-list.ax-state-empty{height:auto!important}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2.CdkFixedSizeVirtualScroll, selector: "cdk-virtual-scroll-viewport[itemSize]", inputs: ["itemSize", "minBufferPx", "maxBufferPx"] }, { kind: "directive", type: i2.CdkVirtualForOf, selector: "[cdkVirtualFor][cdkVirtualForOf]", inputs: ["cdkVirtualForOf", "cdkVirtualForTrackBy", "cdkVirtualForTemplate", "cdkVirtualForTemplateCacheSize"] }, { kind: "component", type: i2.CdkVirtualScrollViewport, selector: "cdk-virtual-scroll-viewport", inputs: ["orientation", "appendOnly"], outputs: ["scrolledIndexChange"] }, { kind: "directive", type: i2.CdkVirtualScrollableElement, selector: "[cdkVirtualScrollingElement]" }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "pipe", type: i3.AXTranslatorPipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
231
+ ], viewQueries: [{ propertyName: "viewport", first: true, predicate: CdkVirtualScrollViewport, descendants: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"list-container\" cdkVirtualScrollingElement>\n <ng-content select=\"ax-header\"></ng-content>\n <cdk-virtual-scroll-viewport\n [itemSize]=\"itemHeightSignal()\"\n [style.--item-height]=\"itemHeightSignal() + 'px'\"\n (scrolledIndexChange)=\"_handleOnscrolledIndexChange($event)\"\n >\n <ul>\n <!-- Item Template -->\n <ng-container *cdkVirtualFor=\"let item of listDataSource; let i = index; trackBy: trackByIdx\">\n <ng-container *ngIf=\"item !== null && item !== undefined; else loadingTpl\">\n <li\n [class.ax-state-selected]=\"isItemSelected(item)\"\n class=\"list-item\"\n [class.ax-state-disabled]=\"isItemDisabled(item)\"\n [attr.tabindex]=\"i\"\n (click)=\"_handleOnItemClick($event, item)\"\n [attr.data-id]=\"getValue(item)\"\n >\n <!-- Custom Item Template -->\n <ng-container *ngIf=\"itemTemplate; else defaultItemTpl\">\n <ng-container *ngTemplateOutlet=\"itemTemplate; context: { $implicit: { data: item } }\">\n </ng-container>\n </ng-container>\n <!-- Default Item Template -->\n <ng-template #defaultItemTpl>\n <ng-container *ngIf=\"item !== null && item !== undefined; else loadingTpl\">\n <div class=\"ax-label-container\">\n <input\n class=\"ax-checkbox\"\n *ngIf=\"multiple && checkbox\"\n type=\"checkbox\"\n [checked]=\"isItemSelected(item)\"\n [disabled]=\"isItemDisabled(item)\"\n tabindex=\"0\"\n />\n <span [class.ax-checkbox-label]=\"multiple && checkbox\">{{ getDisplayText(item) }}</span>\n </div>\n <!-- <i class=\"ax-icon ax-icon-check ax-selected-icon\" *ngIf=\"isItemSelected(item) \"></i> -->\n </ng-container>\n </ng-template>\n </li>\n </ng-container>\n </ng-container>\n </ul>\n </cdk-virtual-scroll-viewport>\n <ng-content select=\"ax-footer\"></ng-content>\n</div>\n<!-- Loading Template -->\n<ng-template #loadingTpl>\n <!-- Custom Loading Template -->\n <ng-container *ngIf=\"loadingTemplate; else defaultLoadingTpl\">\n <ng-container *ngTemplateOutlet=\"loadingTemplate\"> </ng-container>\n </ng-container>\n <!-- Default Loading Template -->\n <ng-template #defaultLoadingTpl>\n <li>{{ 'loading' | translate | async }}</li>\n </ng-template>\n</ng-template>\n<!-- Empty Template -->\n@if (showEmptyTemplate()) {\n <div class=\"empty-container\">\n <ng-container *ngTemplateOutlet=\"emptyTemplate\"></ng-container>\n </div>\n}\n", styles: ["ax-list{display:block;height:100%;width:100%;font-size:.875rem;line-height:1.25rem}ax-list .list-container{display:flex;height:100%;flex-direction:column}ax-list .empty-container{display:flex;height:var(--ax-size-default);width:100%;align-items:center;justify-content:center;padding-left:.75rem;padding-right:.75rem}ax-list.ax-default .cdk-virtual-scroll-viewport ul li{position:relative;display:flex;height:var(--ax-size-default);cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;justify-content:space-between;padding-inline-end:1rem;padding-inline-start:.75rem;font-size:.875rem;line-height:1.25rem}ax-list.ax-default .cdk-virtual-scroll-viewport ul li:focus,ax-list.ax-default .cdk-virtual-scroll-viewport ul li:focus-within,ax-list.ax-default .cdk-virtual-scroll-viewport ul li:focus-visible{outline-width:2px;outline-offset:-4px;outline-color:rgba(var(--ax-color-primary-500),1)}ax-list.ax-default .cdk-virtual-scroll-viewport ul li .ax-label-container{display:flex;align-items:center}ax-list.ax-default .cdk-virtual-scroll-viewport ul li .ax-checkbox-label{margin-inline-start:.5rem}ax-list.ax-default .cdk-virtual-scroll-viewport ul li.ax-state-selected{background-color:rgba(var(--ax-color-on-surface))}ax-list.ax-default .cdk-virtual-scroll-viewport ul li.ax-state-disabled{cursor:not-allowed;opacity:.5}ax-list.ax-state-empty{height:auto!important}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2.CdkFixedSizeVirtualScroll, selector: "cdk-virtual-scroll-viewport[itemSize]", inputs: ["itemSize", "minBufferPx", "maxBufferPx"] }, { kind: "directive", type: i2.CdkVirtualForOf, selector: "[cdkVirtualFor][cdkVirtualForOf]", inputs: ["cdkVirtualForOf", "cdkVirtualForTrackBy", "cdkVirtualForTemplate", "cdkVirtualForTemplateCacheSize"] }, { kind: "component", type: i2.CdkVirtualScrollViewport, selector: "cdk-virtual-scroll-viewport", inputs: ["orientation", "appendOnly"], outputs: ["scrolledIndexChange"] }, { kind: "directive", type: i2.CdkVirtualScrollableElement, selector: "[cdkVirtualScrollingElement]" }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "pipe", type: i3.AXTranslatorPipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
232
232
  }
233
233
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXListComponent, decorators: [{
234
234
  type: Component,
@@ -248,7 +248,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImpor
248
248
  },
249
249
  deps: [[new Optional(), new SkipSelf(), AX_SELECTION_DATA_TOKEN]],
250
250
  },
251
- ], template: "<div class=\"list-container\" cdkVirtualScrollingElement>\n <ng-content select=\"ax-header\"></ng-content>\n <cdk-virtual-scroll-viewport [itemSize]=\"itemHeightSignal()\" [style.--item-height]=\"itemHeightSignal()+'px'\"\n (scrolledIndexChange)=\"_handleOnscrolledIndexChange($event)\">\n <ul>\n <!-- Item Template -->\n <ng-container *cdkVirtualFor=\"let item of listDataSource;let i = index; trackBy: trackByIdx\">\n <ng-container *ngIf=\"item;else loadingTpl\">\n <li [class.ax-state-selected]=\"isItemSelected(item)\" class=\"list-item\"\n [class.ax-state-disabled]=\"isItemDisabled(item)\" [attr.tabindex]=\"i\"\n (click)=\"_handleOnItemClick($event, item)\" [attr.data-id]=\"getValue(item)\">\n <!-- Custom Item Template -->\n <ng-container *ngIf=\"itemTemplate;else defaultItemTpl\">\n <ng-container *ngTemplateOutlet=\"itemTemplate;context: { $implicit: { data:item } }\">\n </ng-container>\n </ng-container>\n <!-- Default Item Template -->\n <ng-template #defaultItemTpl>\n <ng-container *ngIf=\"item;else loadingTpl\">\n <div class=\"ax-label-container\">\n <input class=\"ax-checkbox\" *ngIf=\"multiple && checkbox\" type=\"checkbox\"\n [checked]=\"isItemSelected(item)\" [disabled]=\"isItemDisabled(item)\"\n tabindex=\"0\" />\n <span\n [class.ax-checkbox-label]=\"multiple && checkbox\">{{getDisplayText(item)}}</span>\n </div>\n <!-- <i class=\"ax-icon ax-icon-check ax-selected-icon\" *ngIf=\"isItemSelected(item) \"></i> -->\n </ng-container>\n </ng-template>\n </li>\n </ng-container>\n </ng-container>\n </ul>\n </cdk-virtual-scroll-viewport>\n <ng-content select=\"ax-footer\"></ng-content>\n</div>\n<!-- Loading Template -->\n<ng-template #loadingTpl>\n <!-- Custom Loading Template -->\n <ng-container *ngIf=\"loadingTemplate;else defaultLoadingTpl\">\n <ng-container *ngTemplateOutlet=\"loadingTemplate\">\n </ng-container>\n </ng-container>\n <!-- Default Loading Template -->\n <ng-template #defaultLoadingTpl>\n <li>{{'loading' | translate | async }}</li>\n </ng-template>\n</ng-template>\n<!-- Empty Template -->\n@if(showEmptyTemplate()){\n<div class=\"empty-container\">\n <ng-container *ngTemplateOutlet=\"emptyTemplate\"></ng-container>\n</div>\n}", styles: ["ax-list{display:block;height:100%;width:100%;font-size:.875rem;line-height:1.25rem}ax-list .list-container{display:flex;height:100%;flex-direction:column}ax-list .empty-container{display:flex;height:var(--ax-size-default);width:100%;align-items:center;justify-content:center;padding-left:.75rem;padding-right:.75rem}ax-list.ax-default .cdk-virtual-scroll-viewport ul li{position:relative;display:flex;height:var(--ax-size-default);cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;justify-content:space-between;padding-inline-end:1rem;padding-inline-start:.75rem;font-size:.875rem;line-height:1.25rem}ax-list.ax-default .cdk-virtual-scroll-viewport ul li:focus,ax-list.ax-default .cdk-virtual-scroll-viewport ul li:focus-within,ax-list.ax-default .cdk-virtual-scroll-viewport ul li:focus-visible{outline-width:2px;outline-offset:-4px;outline-color:rgba(var(--ax-color-primary-500),1)}ax-list.ax-default .cdk-virtual-scroll-viewport ul li .ax-label-container{display:flex;align-items:center}ax-list.ax-default .cdk-virtual-scroll-viewport ul li .ax-checkbox-label{margin-inline-start:.5rem}ax-list.ax-default .cdk-virtual-scroll-viewport ul li.ax-state-selected{background-color:rgba(var(--ax-color-on-surface))}ax-list.ax-default .cdk-virtual-scroll-viewport ul li.ax-state-disabled{cursor:not-allowed;opacity:.5}ax-list.ax-state-empty{height:auto!important}\n"] }]
251
+ ], template: "<div class=\"list-container\" cdkVirtualScrollingElement>\n <ng-content select=\"ax-header\"></ng-content>\n <cdk-virtual-scroll-viewport\n [itemSize]=\"itemHeightSignal()\"\n [style.--item-height]=\"itemHeightSignal() + 'px'\"\n (scrolledIndexChange)=\"_handleOnscrolledIndexChange($event)\"\n >\n <ul>\n <!-- Item Template -->\n <ng-container *cdkVirtualFor=\"let item of listDataSource; let i = index; trackBy: trackByIdx\">\n <ng-container *ngIf=\"item !== null && item !== undefined; else loadingTpl\">\n <li\n [class.ax-state-selected]=\"isItemSelected(item)\"\n class=\"list-item\"\n [class.ax-state-disabled]=\"isItemDisabled(item)\"\n [attr.tabindex]=\"i\"\n (click)=\"_handleOnItemClick($event, item)\"\n [attr.data-id]=\"getValue(item)\"\n >\n <!-- Custom Item Template -->\n <ng-container *ngIf=\"itemTemplate; else defaultItemTpl\">\n <ng-container *ngTemplateOutlet=\"itemTemplate; context: { $implicit: { data: item } }\">\n </ng-container>\n </ng-container>\n <!-- Default Item Template -->\n <ng-template #defaultItemTpl>\n <ng-container *ngIf=\"item !== null && item !== undefined; else loadingTpl\">\n <div class=\"ax-label-container\">\n <input\n class=\"ax-checkbox\"\n *ngIf=\"multiple && checkbox\"\n type=\"checkbox\"\n [checked]=\"isItemSelected(item)\"\n [disabled]=\"isItemDisabled(item)\"\n tabindex=\"0\"\n />\n <span [class.ax-checkbox-label]=\"multiple && checkbox\">{{ getDisplayText(item) }}</span>\n </div>\n <!-- <i class=\"ax-icon ax-icon-check ax-selected-icon\" *ngIf=\"isItemSelected(item) \"></i> -->\n </ng-container>\n </ng-template>\n </li>\n </ng-container>\n </ng-container>\n </ul>\n </cdk-virtual-scroll-viewport>\n <ng-content select=\"ax-footer\"></ng-content>\n</div>\n<!-- Loading Template -->\n<ng-template #loadingTpl>\n <!-- Custom Loading Template -->\n <ng-container *ngIf=\"loadingTemplate; else defaultLoadingTpl\">\n <ng-container *ngTemplateOutlet=\"loadingTemplate\"> </ng-container>\n </ng-container>\n <!-- Default Loading Template -->\n <ng-template #defaultLoadingTpl>\n <li>{{ 'loading' | translate | async }}</li>\n </ng-template>\n</ng-template>\n<!-- Empty Template -->\n@if (showEmptyTemplate()) {\n <div class=\"empty-container\">\n <ng-container *ngTemplateOutlet=\"emptyTemplate\"></ng-container>\n </div>\n}\n", styles: ["ax-list{display:block;height:100%;width:100%;font-size:.875rem;line-height:1.25rem}ax-list .list-container{display:flex;height:100%;flex-direction:column}ax-list .empty-container{display:flex;height:var(--ax-size-default);width:100%;align-items:center;justify-content:center;padding-left:.75rem;padding-right:.75rem}ax-list.ax-default .cdk-virtual-scroll-viewport ul li{position:relative;display:flex;height:var(--ax-size-default);cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;justify-content:space-between;padding-inline-end:1rem;padding-inline-start:.75rem;font-size:.875rem;line-height:1.25rem}ax-list.ax-default .cdk-virtual-scroll-viewport ul li:focus,ax-list.ax-default .cdk-virtual-scroll-viewport ul li:focus-within,ax-list.ax-default .cdk-virtual-scroll-viewport ul li:focus-visible{outline-width:2px;outline-offset:-4px;outline-color:rgba(var(--ax-color-primary-500),1)}ax-list.ax-default .cdk-virtual-scroll-viewport ul li .ax-label-container{display:flex;align-items:center}ax-list.ax-default .cdk-virtual-scroll-viewport ul li .ax-checkbox-label{margin-inline-start:.5rem}ax-list.ax-default .cdk-virtual-scroll-viewport ul li.ax-state-selected{background-color:rgba(var(--ax-color-on-surface))}ax-list.ax-default .cdk-virtual-scroll-viewport ul li.ax-state-disabled{cursor:not-allowed;opacity:.5}ax-list.ax-state-empty{height:auto!important}\n"] }]
252
252
  }], propDecorators: { onItemClick: [{
253
253
  type: Output
254
254
  }], dataSource: [{
@@ -275,4 +275,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImpor
275
275
  type: HostBinding,
276
276
  args: ['class']
277
277
  }] } });
278
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvbGlzdC9zcmMvbGliL2xpc3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2xpc3Qvc3JjL2xpYi9saXN0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxXQUFXLEVBQ1gsWUFBWSxFQUVaLG9CQUFvQixFQUVwQixnQkFBZ0IsRUFDaEIsbUJBQW1CLEVBQ25CLHVCQUF1QixFQUN2Qix3QkFBd0IsRUFDeEIseUJBQXlCLEVBQ3pCLHdCQUF3QixHQUN6QixNQUFNLDJCQUEyQixDQUFDO0FBQ25DLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ2xFLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFlBQVksRUFDWixXQUFXLEVBQ1gsWUFBWSxFQUNaLEtBQUssRUFFTCxRQUFRLEVBQ1IsTUFBTSxFQUNOLFFBQVEsRUFDUixXQUFXLEVBQ1gsU0FBUyxFQUNULGlCQUFpQixFQUVqQixVQUFVLEVBQ1YsTUFBTSxHQUNQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7OztBQU1uRDs7OztHQUlHO0FBMkJILE1BQU0sT0FBTyxlQUFnQixTQUFRLHlCQUF5QjtJQTFCOUQ7O1FBMkJFOzs7O1dBSUc7UUFFSCxnQkFBVyxHQUF3QyxJQUFJLFlBQVksRUFBeUIsQ0FBQztRQUU3Rjs7OztXQUlHO1FBRUgsZUFBVSxHQUEwQix3QkFBd0IsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUVqRTs7V0FFRztRQUNILHFCQUFnQixHQUFvQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUM7UUE0Qi9EOzs7O1dBSUc7UUFFSCwyQkFBc0IsR0FBMkMsSUFBSSxZ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QUs7Z0JBT04sYUFBYTtzQkFEWixLQUFLO2dCQU9OLGVBQWU7c0JBRGQsS0FBSztnQkFTTixzQkFBc0I7c0JBRHJCLE1BQU07Z0JBU1AsUUFBUTtzQkFEUCxLQUFLO2dCQWdDRSxRQUFRO3NCQURmLFNBQVM7dUJBQUMsd0JBQXdCO2dCQW1EbkMsY0FBYztzQkFEYixZQUFZO3VCQUFDLFNBQVMsRUFBRSxDQUFDLFFBQVEsQ0FBQztnQkEwRy9CLFdBQVc7c0JBRGQsV0FBVzt1QkFBQyxPQUFPIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQVhDb21wb25lbnQsXG4gIEFYRGF0YVNvdXJjZSxcbiAgQVhFdmVudCxcbiAgQVhGb2N1c2FibGVDb21wb25lbnQsXG4gIEFYSXRlbUNsaWNrRXZlbnQsXG4gIEFYTGlzdERhdGFTb3VyY2UsXG4gIEFYVmFsdWFibGVDb21wb25lbnQsXG4gIEFYX1NFTEVDVElPTl9EQVRBX1RPS0VOLFxuICBNWFNlbGVjdGlvbkJyaWRnZVNlcnZpY2UsXG4gIE1YU2VsZWN0aW9uVmFsdWVDb21wb25lbnQsXG4gIGNvbnZlcnRBcnJheVRvRGF0YVNvdXJjZSxcbn0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2NvbW1vbic7XG5pbXBvcnQgeyBDZGtWaXJ0dWFsU2Nyb2xsVmlld3BvcnQgfSBmcm9tICdAYW5ndWxhci9jZGsvc2Nyb2xsaW5nJztcbmltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIEV2ZW50RW1pdHRlcixcbiAgSG9zdEJpbmRpbmcsXG4gIEhvc3RMaXN0ZW5lcixcbiAgSW5wdXQsXG4gIE9uSW5pdCxcbiAgT3B0aW9uYWwsXG4gIE91dHB1dCxcbiAgU2tpcFNlbGYsXG4gIFRlbXBsYXRlUmVmLFxuICBWaWV3Q2hpbGQsXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxuICBXcml0YWJsZVNpZ25hbCxcbiAgZm9yd2FyZFJlZixcbiAgc2lnbmFsLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIEFYTGlzdFNjcm9sbEluZGV4Q2hhbmdlZCBleHRlbmRzIEFYRXZlbnQge1xuICBpbmRleDogbnVtYmVyO1xufVxuXG4vKipcbiAqIHByb3ZpZGVzIGEgbGlzdCBjb250cm9sIHdpdGggdmFyaW91cyBpbnB1dCBvcHRpb25zIGFuZCBldmVudHMgZm9yIHVzZXIgaW50ZXJhY3Rpb24uXG4gKlxuICogQGNhdGVnb3J5IENvbXBvbmVudHNcbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXgtbGlzdCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9saXN0LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vbGlzdC5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgaW5wdXRzOiBbJ2lkJywgJ25hbWUnLCAnZGlzYWJsZWQnLCAncmVhZG9ubHknLCAndmFsdWVGaWVsZCcsICd0ZXh0RmllbGQnLCAndGV4dFRlbXBsYXRlJywgJ2Rpc2FibGVkRmllbGQnLCAnbXVsdGlwbGUnLCAnc2VsZWN0aW9uTW9kZSddLFxuICBvdXRwdXRzOiBbJ29uVmFsdWVDaGFuZ2VkJywgJ2Rpc2FibGVkQ2hhbmdlJywgJ3JlYWRPbmx5Q2hhbmdlJywgJ29uQmx1cicsICdvbkZvY3VzJ10sXG4gIHByb3ZpZGVyczogW1xuICAgIHsgcHJvdmlkZTogQVhDb21wb25lbnQsIHVzZUV4aXN0aW5nOiBBWExpc3RDb21wb25lbnQgfSxcbiAgICB7IHByb3ZpZGU6IEFYRm9jdXNhYmxlQ29tcG9uZW50LCB1c2VFeGlzdGluZzogQVhMaXN0Q29tcG9uZW50IH0sXG4gICAgeyBwcm92aWRlOiBBWFZhbHVhYmxlQ29tcG9uZW50LCB1c2VFeGlzdGluZzogQVhMaXN0Q29tcG9uZW50IH0sXG4gICAge1xuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBBWExpc3RDb21wb25lbnQpLFxuICAgICAgbXVsdGk6IHRydWUsXG4gICAgfSxcbiAgICB7XG4gICAgICBwcm92aWRlOiBBWF9TRUxFQ1RJT05fREFUQV9UT0tFTixcbiAgICAgIHVzZUZhY3Rvcnk6IChleGlzdGluZ1NlcnZpY2U6IE1YU2VsZWN0aW9uQnJpZGdlU2VydmljZSkgPT4ge1xuICAgICAgICByZXR1cm4gZXhpc3RpbmdTZXJ2aWNlIHx8IG5ldyBNWFNlbGVjdGlvbkJyaWRnZVNlcnZpY2UoKTtcbiAgICAgIH0sXG4gICAgICBkZXBzOiBbW25ldyBPcHRpb25hbCgpLCBuZXcgU2tpcFNlbGYoKSwgQVhfU0VMRUNUSU9OX0RBVEFfVE9LRU5dXSxcbiAgICB9LFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBBWExpc3RDb21wb25lbnQgZXh0ZW5kcyBNWFNlbGVjdGlvblZhbHVlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgLyoqXG4gICAqIEVtaXR0ZWQgd2hlbiBhbiBpdGVtIGluIHRoZSBsaXN0IGlzIGNsaWNrZWQuXG4gICAqXG4gICAqIEBldmVudFxuICAgKi9cbiAgQE91dHB1dCgpXG4gIG9uSXRlbUNsaWNrOiBFdmVudEVtaXR0ZXI8QVhJdGVtQ2xpY2tFdmVudDxhbnk+PiA9IG5ldyBFdmVudEVtaXR0ZXI8QVhJdGVtQ2xpY2tFdmVudDxhbnk+PigpO1xuXG4gIC8qKlxuICAgKiBEZWZpbmVzIHRoZSBkYXRhIHNvdXJjZSBmb3IgdGhlIGxpc3QuXG4gICAqXG4gICAqICBAZGVmYXVsdFZhbHVlIGNvbnZlcnRBcnJheVRvRGF0YVNvdXJjZShbXSlcbiAgICovXG4gIEBJbnB1dCgpXG4gIGRhdGFTb3VyY2U6IEFYRGF0YVNvdXJjZTx1bmtub3duPiA9IGNvbnZlcnRBcnJheVRvRGF0YVNvdXJjZShbXSk7XG5cbiAgLyoqXG4gICAqICBAaWdub3JlXG4gICAqL1xuICBpdGVtSGVpZ2h0U2lnbmFsOiBXcml0YWJsZVNpZ25hbDxudW1iZXIgfCAnYXV0byc+ID0gc2lnbmFsKDQwKTtcblxuICAvKipcbiAgICogU2V0cyB0aGUgaGVpZ2h0IG9mIGVhY2ggaXRlbSBpbiB0aGUgbGlzdC5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgaXRlbUhlaWdodCh2OiBudW1iZXIgfCAnYXV0bycpIHtcbiAgICB0aGlzLml0ZW1IZWlnaHRTaWduYWwuc2V0KHYpO1xuICB9XG5cbiAgLyoqXG4gICAqIFRlbXBsYXRlIGZvciByZW5kZXJpbmcgaW5kaXZpZHVhbCBpdGVtcyBpbiB0aGUgbGlzdC5cbiAgICovXG4gIEBJbnB1dCgpXG4gIGl0ZW1UZW1wbGF0ZTogVGVtcGxhdGVSZWY8dW5rbm93bj47XG5cbiAgLyoqXG4gICAqIFRlbXBsYXRlIHRvIGRpc3BsYXkgd2hlbiB0aGUgbGlzdCBpcyBlbXB0eS5cbiAgICovXG4gIEBJbnB1dCgpXG4gIGVtcHR5VGVtcGxhdGU6IFRlbXBsYXRlUmVmPHVua25vd24+O1xuXG4gIC8qKlxuICAgKiBUZW1wbGF0ZSB0byBzaG93IHdoaWxlIHRoZSBsaXN0IGlzIGxvYWRpbmcuXG4gICAqL1xuICBASW5wdXQoKVxuICBsb2FkaW5nVGVtcGxhdGU6IFRlbXBsYXRlUmVmPHVua25vd24+O1xuXG4gIC8qKlxuICAgKiBFbWl0dGVkIHdoZW4gdGhlIGluZGV4IG9mIHRoZSBzY3JvbGxlZCBpdGVtIGNoYW5nZXMuXG4gICAqXG4gICAqIEBldmVudFxuICAgKi9cbiAgQE91dHB1dCgpXG4gIG9uU2Nyb2xsZWRJbmRleENoYW5nZWQ6IEV2ZW50RW1pdHRlcjxBWExpc3RTY3JvbGxJbmRleENoYW5nZWQ+ID0gbmV3IEV2ZW50RW1pdHRlcjxBWExpc3RTY3JvbGxJbmRleENoYW5nZWQ+KCk7XG5cbiAgLyoqXG4gICAqIFNwZWNpZmllcyB3aGV0aGVyIHRoZSBjaGVja2JveCBpcyBlbmFibGVkLlxuICAgKlxuICAgKiAgQGRlZmF1bHRWYWx1ZSB0cnVlXG4gICAqL1xuICBASW5wdXQoKVxuICBjaGVja2JveCA9IHRydWU7XG5cbiAgLyoqXG4gICAqICBAaWdub3JlXG4gICAqL1xuICBwcm90ZWN0ZWQgbGlzdERhdGFTb3VyY2U6IEFYTGlzdERhdGFTb3VyY2U8dW5rbm93bj47XG5cbiAgLyoqXG4gICAqICBAaWdub3JlXG4gICAqL1xuICBwcm90ZWN0ZWQgaXNMb2FkaW5nID0gc2lnbmFsKHRydWUpO1xuXG4gIC8qKlxuICAgKiAgQGlnbm9yZVxuICAgKi9cbiAgcHJvdGVjdGVkIGhhc0l0ZW1zID0gZmFsc2U7XG5cbiAgLyoqXG4gICAqICBAaWdub3JlXG4gICAqL1xuICBwcml2YXRlIGxhc3RJbmRleCA9IDA7XG5cbiAgLyoqXG4gICAqICBAaWdub3JlXG4gICAqL1xuICBwcml2YXRlIHBvc3Rwb25lRm9jdXMgPSBmYWxzZTtcblxuICAvKipcbiAgICogIEBpZ25vcmVcbiAgICovXG4gIEBWaWV3Q2hpbGQoQ2RrVmlydHVhbFNjcm9sbFZpZXdwb3J0KVxuICBwcml2YXRlIHZpZXdwb3J0OiBDZGtWaXJ0dWFsU2Nyb2xsVmlld3BvcnQ7XG5cbiAgdHJhY2tCeUlkeChpKSB7XG4gICAgcmV0dXJuIGk7XG4gIH1cblxuICAvKipcbiAgICogIEBpZ25vcmVcbiAgICovXG4gIG92ZXJyaWRlIG5nT25Jbml0KCkge1xuICAgIHN1cGVyLm5nT25Jbml0KCk7XG4gICAgdGhpcy5saXN0RGF0YVNvdXJjZSA9IG5ldyBBWExpc3REYXRhU291cmNlPHVua25vd24+KHtcbiAgICAgIHNvdXJjZTogdGhpcy5kYXRhU291cmNlLFxuICAgIH0pO1xuICAgIHRoaXMubGlzdERhdGFTb3VyY2Uuc291cmNlLm9uTG9hZGluZ0NoYW5nZWQuc3Vic2NyaWJlKChkYXRhKSA9PiB7XG4gICAgICB0aGlzLmlzTG9hZGluZy5zZXQoZGF0YSk7XG4gICAgfSk7XG4gICAgdGhpcy5saXN0RGF0YVNvdXJjZS5zb3VyY2Uub25DaGFuZ2VkLnN1YnNjcmliZSgoZGF0YSkgPT4ge1xuICAgICAgdGhpcy5oYXNJdGVtcyA9IGRhdGEudG90YWxDb3VudCA+IDA7XG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgdGhpcy5yZW5kZXIoKTtcbiAgICAgIH0sIDEwMCk7XG4gICAgfSk7XG4gIH1cbiAgLyoqXG4gICAqICBAaWdub3JlXG4gICAqL1xuICBfaGFuZGxlT25JdGVtQ2xpY2soZTogTW91c2VFdmVudCwgaXRlbTogYW55KSB7XG4gICAgaWYgKHRoaXMucmVhZG9ubHkgfHwgdGhpcy5kaXNhYmxlZCkge1xuICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKHRoaXMuaXNJdGVtRGlzYWJsZWQoaXRlbSkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy50b2dnbGVTZWxlY3QoaXRlbSk7XG4gICAgdGhpcy5vbkl0ZW1DbGljay5lbWl0KHtcbiAgICAgIGNvbXBvbmVudDogdGhpcyxcbiAgICAgIGl0ZW0sXG4gICAgICBodG1sRWxlbWVudDogZS50YXJnZXQgYXMgSFRNTEVsZW1lbnQsXG4gICAgICBpc1VzZXJJbnRlcmFjdGlvbjogdHJ1ZSxcbiAgICAgIG5hdGl2ZUV2ZW50OiBlLFxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqICBAaWdub3JlXG4gICAqL1xuICBASG9zdExpc3RlbmVyKCdrZXlkb3duJywgWyckZXZlbnQnXSlcbiAgX2hhbmRsZUtleWRvd24oZTogS2V5Ym9hcmRFdmVudCkge1xuICAgIGlmICgoZS5jb2RlID09PSAnQXJyb3dEb3duJyB8fCBlLmNvZGUgPT09ICdBcnJvd1VwJykgJiYgdGhpcy5oYXNJdGVtcykge1xuICAgICAgdGhpcy5mb2N1c0l0ZW1CeU5hdihlLmtleSA9PT0gJ0Fycm93RG93bicgPyAxIDogLTEpO1xuICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIH1cbiAgICBpZiAoKGUuY29kZSA9PT0gJ1NwYWNlJyB8fCBlLmNvZGUgPT09ICdFbnRlcicpICYmIHRoaXMuaGFzSXRlbXMpIHtcbiAgICAgIGlmICh0aGlzLnJlYWRvbmx5IHx8IHRoaXMuZGlzYWJsZWQpIHtcbiAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICBlLnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBjb25zdCBpZCA9IGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQ/LmNsb3Nlc3QoJ2xpJyk/LmRhdGFzZXRbJ2lkJ107XG4gICAgICB0aGlzLnRvZ2dsZVNlbGVjdChpZCk7XG4gICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICBlLnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiAgQGlnbm9yZVxuICAgKi9cbiAgcHJpdmF0ZSBmb2N1c0l0ZW1CeU5hdihzaWduOiAtMSB8IDEpOiB2b2lkIHtcbiAgICBjb25zdCBsaXN0ID0gdGhpcy5nZXRIb3N0RWxlbWVudCgpLnF1ZXJ5U2VsZWN0b3IoJ3VsJyk7XG4gICAgY29uc3QgZm4gPSAocykgPT4gbGlzdC5xdWVyeVNlbGVjdG9yPEhUTUxEaXZFbGVtZW50PihzKTtcbiAgICBjb25zdCBpdGVtRGl2OiBIVE1MRWxlbWVudCA9IGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQ/LmNsb3Nlc3QoJ2xpJykgfHwgZm4oYGxpLmF4LXN0YXRlLXNlbGVjdGVkYCkgfHwgZm4oYGxpYCk7XG4gICAgY29uc3QgbmV4dCA9IChzaWduID09IDEgPyBpdGVtRGl2Lm5leHRFbGVtZW50U2libGluZyA6IGl0ZW1EaXYucHJldmlvdXNFbGVtZW50U2libGluZykgYXMgSFRNTEVsZW1lbnQ7XG4gICAgaWYgKG5leHQpIHtcbiAgICAgIG5leHQuZm9jdXMoKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogIEBpZ25vcmVcbiAgICovXG4gIHByb3RlY3RlZCBfaGFuZGxlT25zY3JvbGxlZEluZGV4Q2hhbmdlKGU6IG51bWJlcikge1xuICAgIHRoaXMubGFzdEluZGV4ID0gZTtcbiAgICB0aGlzLm9uU2Nyb2xsZWRJbmRleENoYW5nZWQuZW1pdCh7XG4gICAgICBjb21wb25lbnQ6IHRoaXMsXG4gICAgICBpbmRleDogdGhpcy5sYXN0SW5kZXgsXG4gICAgICBpc1VzZXJJbnRlcmFjdGlvbjogdHJ1ZSxcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXRyaWV2ZXMgYW4gaXRlbSBmcm9tIHRoZSBkYXRhIHNvdXJjZSBiYXNlZCBvbiB0aGUgcHJvdmlkZWQga2V5LlxuICAgKlxuICAgKiBAcGFyYW0ga2V5IFRoZSBrZXkgdXNlZCB0byBpZGVudGlmeSB0aGUgaXRlbS5cbiAgICogQGlnbm9yZVxuICAgKi9cbiAgZ2V0SXRlbUJ5S2V5KGtleTogdW5rbm93bik6IFByb21pc2U8dW5rbm93bj4gfCB1bmtub3duIHtcbiAgICByZXR1cm4gdGhpcy5kYXRhU291cmNlLmZpbmQoa2V5KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZW5kZXJzIHRoZSBjb21wb25lbnQgYnkgdXBkYXRpbmcgdGhlIHZpZXdwb3J0IHNpemUsIHNjcm9sbGluZyB0byB0aGUgbGFzdCBpbmRleCwgYW5kIG9wdGlvbmFsbHkgZm9jdXNpbmcgdGhlIGVsZW1lbnQuXG4gICAqL1xuICBwdWJsaWMgcmVuZGVyKCkge1xuICAgIHRoaXMudmlld3BvcnQuY2hlY2tWaWV3cG9ydFNpemUoKTtcbiAgICB0aGlzLnZpZXdwb3J0LnNjcm9sbFRvSW5kZXgodGhpcy5sYXN0SW5kZXgpO1xuICAgIGlmICh0aGlzLnBvc3Rwb25lRm9jdXMpIHtcbiAgICAgIHRoaXMucG9zdHBvbmVGb2N1cyA9IGZhbHNlO1xuICAgICAgdGhpcy5mb2N1cygpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBSZWZyZXNoZXMgdGhlIGxpc3QgYnkgY2xlYXJpbmcgdGhlIHNlbGVjdGlvbiBjYWNoZSBhbmQgcmVsb2FkaW5nIHRoZSBkYXRhIHNvdXJjZS5cbiAgICogQGlnbm9yZVxuICAgKi9cbiAgcHVibGljIHJlZnJlc2goKSB7XG4gICAgdGhpcy5jbGVhclNlbGVjdGlvbkNhY2hlKCk7XG4gICAgdGhpcy5saXN0RGF0YVNvdXJjZS5yZWZyZXNoKCk7XG4gIH1cblxuICAvKipcbiAgICogU2Nyb2xscyB0aGUgdmlld3BvcnQgdG8gdGhlIHNwZWNpZmllZCBpdGVtIGluZGV4LlxuICAgKiBAcGFyYW0gaW5kZXggVGhlIGluZGV4IG9mIHRoZSBpdGVtIHRvIHNjcm9sbCB0by5cbiAgICogQGlnbm9yZVxuICAgKi9cbiAgcHVibGljIHNjcm9sbFRvSW5kZXgoaW5kZXg6IG51bWJlcikge1xuICAgIHRoaXMudmlld3BvcnQuc2Nyb2xsVG9JbmRleChpbmRleCk7XG4gIH1cbiAgLyoqXG4gICAqIFNldHMgZm9jdXMgdG8gdGhlIGZpcnN0IHNlbGVjdGFibGUgbGlzdCBpdGVtLiBJZiBubyBpdGVtIGlzIGF2YWlsYWJsZSwgcG9zdHBvbmVzIGZvY3VzLlxuICAgKi9cbiAgb3ZlcnJpZGUgZm9jdXMoKTogdm9pZCB7XG4gICAgY29uc3QgbGlzdCA9IHRoaXMuZ2V0SG9zdEVsZW1lbnQoKS5xdWVyeVNlbGVjdG9yKCd1bCcpO1xuICAgIGNvbnN0IGZvY3VzYWJsZSA9IGxpc3QucXVlcnlTZWxlY3RvcjxIVE1MRWxlbWVudD4oJ2xpLmF4LXN0YXRlLXNlbGVjdGVkJykgPz8gbGlzdC5xdWVyeVNlbGVjdG9yPEhUTUxFbGVtZW50PignbGkubGlzdC1pdGVtJyk7XG4gICAgaWYgKGZvY3VzYWJsZSkge1xuICAgICAgZm9jdXNhYmxlLmZvY3VzKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMucG9zdHBvbmVGb2N1cyA9IHRydWU7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIERldGVybWluZXMgd2hldGhlciB0byBzaG93IHRoZSBlbXB0eSB0ZW1wbGF0ZSBiYXNlZCBvbiB0aGUgcHJlc2VuY2Ugb2YgaXRlbXMgYW5kIGxvYWRpbmcgc3RhdGUuXG4gICAqIEBpZ25vcmVcbiAgICovXG4gIHNob3dFbXB0eVRlbXBsYXRlID0gKCkgPT4gdGhpcy5lbXB0eVRlbXBsYXRlICYmIHRoaXMuaGFzSXRlbXMgPT09IGZhbHNlICYmIHRoaXMuaXNMb2FkaW5nKCkgPT09IGZhbHNlO1xuXG4gIC8qKlxuICAgKiAgQGlnbm9yZVxuICAgKi9cbiAgQEhvc3RCaW5kaW5nKCdjbGFzcycpXG4gIGdldCBfX2hvc3RDbGFzcygpOiBzdHJpbmcge1xuICAgIGNvbnN0IF9jbGFzcyA9IGBheC1kZWZhdWx0ICR7dGhpcy5zaG93RW1wdHlUZW1wbGF0ZSgpID8gJ2F4LXN0YXRlLWVtcHR5JyA6ICcnfWA7XG4gICAgcmV0dXJuIHRoaXMuaXRlbVRlbXBsYXRlID8gJycgOiBfY2xhc3M7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJsaXN0LWNvbnRhaW5lclwiIGNka1ZpcnR1YWxTY3JvbGxpbmdFbGVtZW50PlxuICAgIDxuZy1jb250ZW50IHNlbGVjdD1cImF4LWhlYWRlclwiPjwvbmctY29udGVudD5cbiAgICA8Y2RrLXZpcnR1YWwtc2Nyb2xsLXZpZXdwb3J0IFtpdGVtU2l6ZV09XCJpdGVtSGVpZ2h0U2lnbmFsKClcIiBbc3R5bGUuLS1pdGVtLWhlaWdodF09XCJpdGVtSGVpZ2h0U2lnbmFsKCkrJ3B4J1wiXG4gICAgICAgIChzY3JvbGxlZEluZGV4Q2hhbmdlKT1cIl9oYW5kbGVPbnNjcm9sbGVkSW5kZXhDaGFuZ2UoJGV2ZW50KVwiPlxuICAgICAgICA8dWw+XG4gICAgICAgICAgICA8IS0tICBJdGVtIFRlbXBsYXRlICAtLT5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKmNka1ZpcnR1YWxGb3I9XCJsZXQgaXRlbSBvZiBsaXN0RGF0YVNvdXJjZTtsZXQgaSA9IGluZGV4OyB0cmFja0J5OiB0cmFja0J5SWR4XCI+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIml0ZW07ZWxzZSBsb2FkaW5nVHBsXCI+XG4gICAgICAgICAgICAgICAgICAgIDxsaSBbY2xhc3MuYXgtc3RhdGUtc2VsZWN0ZWRdPVwiaXNJdGVtU2VsZWN0ZWQoaXRlbSlcIiBjbGFzcz1cImxpc3QtaXRlbVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbY2xhc3MuYXgtc3RhdGUtZGlzYWJsZWRdPVwiaXNJdGVtRGlzYWJsZWQoaXRlbSlcIiBbYXR0ci50YWJpbmRleF09XCJpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJfaGFuZGxlT25JdGVtQ2xpY2soJGV2ZW50LCBpdGVtKVwiIFthdHRyLmRhdGEtaWRdPVwiZ2V0VmFsdWUoaXRlbSlcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gIEN1c3RvbSBJdGVtIFRlbXBsYXRlICAtLT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJpdGVtVGVtcGxhdGU7ZWxzZSBkZWZhdWx0SXRlbVRwbFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJpdGVtVGVtcGxhdGU7Y29udGV4dDogeyAkaW1wbGljaXQ6IHsgZGF0YTppdGVtIH0gfVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8IS0tICBEZWZhdWx0IEl0ZW0gVGVtcGxhdGUgIC0tPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNkZWZhdWx0SXRlbVRwbD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXRlbTtlbHNlIGxvYWRpbmdUcGxcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImF4LWxhYmVsLWNvbnRhaW5lclwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IGNsYXNzPVwiYXgtY2hlY2tib3hcIiAqbmdJZj1cIm11bHRpcGxlICYmIGNoZWNrYm94XCIgdHlwZT1cImNoZWNrYm94XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY2hlY2tlZF09XCJpc0l0ZW1TZWxlY3RlZChpdGVtKVwiIFtkaXNhYmxlZF09XCJpc0l0ZW1EaXNhYmxlZChpdGVtKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFiaW5kZXg9XCIwXCIgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NsYXNzLmF4LWNoZWNrYm94LWxhYmVsXT1cIm11bHRpcGxlICYmIGNoZWNrYm94XCI+e3tnZXREaXNwbGF5VGV4dChpdGVtKX19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSA8aSBjbGFzcz1cImF4LWljb24gYXgtaWNvbi1jaGVjayBheC1zZWxlY3RlZC1pY29uXCIgKm5nSWY9XCJpc0l0ZW1TZWxlY3RlZChpdGVtKSBcIj48L2k+IC0tPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8L3VsPlxuICAgIDwvY2RrLXZpcnR1YWwtc2Nyb2xsLXZpZXdwb3J0PlxuICAgIDxuZy1jb250ZW50IHNlbGVjdD1cImF4LWZvb3RlclwiPjwvbmctY29udGVudD5cbjwvZGl2PlxuPCEtLSAgTG9hZGluZyBUZW1wbGF0ZSAgLS0+XG48bmctdGVtcGxhdGUgI2xvYWRpbmdUcGw+XG4gICAgPCEtLSAgQ3VzdG9tIExvYWRpbmcgVGVtcGxhdGUgIC0tPlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJsb2FkaW5nVGVtcGxhdGU7ZWxzZSBkZWZhdWx0TG9hZGluZ1RwbFwiPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwibG9hZGluZ1RlbXBsYXRlXCI+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgIDwvbmctY29udGFpbmVyPlxuICAgIDwhLS0gIERlZmF1bHQgTG9hZGluZyBUZW1wbGF0ZSAgLS0+XG4gICAgPG5nLXRlbXBsYXRlICNkZWZhdWx0TG9hZGluZ1RwbD5cbiAgICAgICAgPGxpPnt7J2xvYWRpbmcnIHwgdHJhbnNsYXRlIHwgYXN5bmMgfX08L2xpPlxuICAgIDwvbmctdGVtcGxhdGU+XG48L25nLXRlbXBsYXRlPlxuPCEtLSAgRW1wdHkgVGVtcGxhdGUgIC0tPlxuQGlmKHNob3dFbXB0eVRlbXBsYXRlKCkpe1xuPGRpdiBjbGFzcz1cImVtcHR5LWNvbnRhaW5lclwiPlxuICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJlbXB0eVRlbXBsYXRlXCI+PC9uZy1jb250YWluZXI+XG48L2Rpdj5cbn0iXX0=
278
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvbGlzdC9zcmMvbGliL2xpc3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2xpc3Qvc3JjL2xpYi9saXN0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxXQUFXLEVBQ1gsWUFBWSxFQUVaLG9CQUFvQixFQUVwQixnQkFBZ0IsRUFDaEIsbUJBQW1CLEVBQ25CLHVCQUF1QixFQUN2Qix3QkFBd0IsRUFDeEIseUJBQXlCLEVBQ3pCLHdCQUF3QixHQUN6QixNQUFNLDJCQUEyQixDQUFDO0FBQ25DLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ2xFLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFlBQVksRUFDWixXQUFXLEVBQ1gsWUFBWSxFQUNaLEtBQUssRUFFTCxRQUFRLEVBQ1IsTUFBTSxFQUNOLFFBQVEsRUFDUixXQUFXLEVBQ1gsU0FBUyxFQUNULGlCQUFpQixFQUVqQixVQUFVLEVBQ1YsTUFBTSxHQUNQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7OztBQU1uRDs7OztHQUlHO0FBMkJILE1BQU0sT0FBTyxlQUFnQixTQUFRLHlCQUF5QjtJQTFCOUQ7O1FBMkJFOzs7O1dBSUc7UUFFSCxnQkFBVyxHQUF3QyxJQUFJLFlBQVksRUFBeUIsQ0FBQztRQUU3Rjs7OztXQUlHO1FBRUgsZUFBVSxHQUEwQix3QkFBd0IsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUVqRTs7V0FFRztRQUNILHFCQUFnQixHQUFvQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUM7UUE0Qi9EOzs7O1dBSUc7UUFFSCwyQkFBc0IsR0FBMkMsSUFBSSxZ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SztnQkFPTixhQUFhO3NCQURaLEtBQUs7Z0JBT04sZUFBZTtzQkFEZCxLQUFLO2dCQVNOLHNCQUFzQjtzQkFEckIsTUFBTTtnQkFTUCxRQUFRO3NCQURQLEtBQUs7Z0JBZ0NFLFFBQVE7c0JBRGYsU0FBUzt1QkFBQyx3QkFBd0I7Z0JBbURuQyxjQUFjO3NCQURiLFlBQVk7dUJBQUMsU0FBUyxFQUFFLENBQUMsUUFBUSxDQUFDO2dCQTBHL0IsV0FBVztzQkFEZCxXQUFXO3VCQUFDLE9BQU8iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBWENvbXBvbmVudCxcbiAgQVhEYXRhU291cmNlLFxuICBBWEV2ZW50LFxuICBBWEZvY3VzYWJsZUNvbXBvbmVudCxcbiAgQVhJdGVtQ2xpY2tFdmVudCxcbiAgQVhMaXN0RGF0YVNvdXJjZSxcbiAgQVhWYWx1YWJsZUNvbXBvbmVudCxcbiAgQVhfU0VMRUNUSU9OX0RBVEFfVE9LRU4sXG4gIE1YU2VsZWN0aW9uQnJpZGdlU2VydmljZSxcbiAgTVhTZWxlY3Rpb25WYWx1ZUNvbXBvbmVudCxcbiAgY29udmVydEFycmF5VG9EYXRhU291cmNlLFxufSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvY29tbW9uJztcbmltcG9ydCB7IENka1ZpcnR1YWxTY3JvbGxWaWV3cG9ydCB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9zY3JvbGxpbmcnO1xuaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgRXZlbnRFbWl0dGVyLFxuICBIb3N0QmluZGluZyxcbiAgSG9zdExpc3RlbmVyLFxuICBJbnB1dCxcbiAgT25Jbml0LFxuICBPcHRpb25hbCxcbiAgT3V0cHV0LFxuICBTa2lwU2VsZixcbiAgVGVtcGxhdGVSZWYsXG4gIFZpZXdDaGlsZCxcbiAgVmlld0VuY2Fwc3VsYXRpb24sXG4gIFdyaXRhYmxlU2lnbmFsLFxuICBmb3J3YXJkUmVmLFxuICBzaWduYWwsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQVhMaXN0U2Nyb2xsSW5kZXhDaGFuZ2VkIGV4dGVuZHMgQVhFdmVudCB7XG4gIGluZGV4OiBudW1iZXI7XG59XG5cbi8qKlxuICogcHJvdmlkZXMgYSBsaXN0IGNvbnRyb2wgd2l0aCB2YXJpb3VzIGlucHV0IG9wdGlvbnMgYW5kIGV2ZW50cyBmb3IgdXNlciBpbnRlcmFjdGlvbi5cbiAqXG4gKiBAY2F0ZWdvcnkgQ29tcG9uZW50c1xuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdheC1saXN0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL2xpc3QuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9saXN0LmNvbXBvbmVudC5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBpbnB1dHM6IFsnaWQnLCAnbmFtZScsICdkaXNhYmxlZCcsICdyZWFkb25seScsICd2YWx1ZUZpZWxkJywgJ3RleHRGaWVsZCcsICd0ZXh0VGVtcGxhdGUnLCAnZGlzYWJsZWRGaWVsZCcsICdtdWx0aXBsZScsICdzZWxlY3Rpb25Nb2RlJ10sXG4gIG91dHB1dHM6IFsnb25WYWx1ZUNoYW5nZWQnLCAnZGlzYWJsZWRDaGFuZ2UnLCAncmVhZE9ubHlDaGFuZ2UnLCAnb25CbHVyJywgJ29uRm9jdXMnXSxcbiAgcHJvdmlkZXJzOiBbXG4gICAgeyBwcm92aWRlOiBBWENvbXBvbmVudCwgdXNlRXhpc3Rpbmc6IEFYTGlzdENvbXBvbmVudCB9LFxuICAgIHsgcHJvdmlkZTogQVhGb2N1c2FibGVDb21wb25lbnQsIHVzZUV4aXN0aW5nOiBBWExpc3RDb21wb25lbnQgfSxcbiAgICB7IHByb3ZpZGU6IEFYVmFsdWFibGVDb21wb25lbnQsIHVzZUV4aXN0aW5nOiBBWExpc3RDb21wb25lbnQgfSxcbiAgICB7XG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IEFYTGlzdENvbXBvbmVudCksXG4gICAgICBtdWx0aTogdHJ1ZSxcbiAgICB9LFxuICAgIHtcbiAgICAgIHByb3ZpZGU6IEFYX1NFTEVDVElPTl9EQVRBX1RPS0VOLFxuICAgICAgdXNlRmFjdG9yeTogKGV4aXN0aW5nU2VydmljZTogTVhTZWxlY3Rpb25CcmlkZ2VTZXJ2aWNlKSA9PiB7XG4gICAgICAgIHJldHVybiBleGlzdGluZ1NlcnZpY2UgfHwgbmV3IE1YU2VsZWN0aW9uQnJpZGdlU2VydmljZSgpO1xuICAgICAgfSxcbiAgICAgIGRlcHM6IFtbbmV3IE9wdGlvbmFsKCksIG5ldyBTa2lwU2VsZigpLCBBWF9TRUxFQ1RJT05fREFUQV9UT0tFTl1dLFxuICAgIH0sXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIEFYTGlzdENvbXBvbmVudCBleHRlbmRzIE1YU2VsZWN0aW9uVmFsdWVDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICAvKipcbiAgICogRW1pdHRlZCB3aGVuIGFuIGl0ZW0gaW4gdGhlIGxpc3QgaXMgY2xpY2tlZC5cbiAgICpcbiAgICogQGV2ZW50XG4gICAqL1xuICBAT3V0cHV0KClcbiAgb25JdGVtQ2xpY2s6IEV2ZW50RW1pdHRlcjxBWEl0ZW1DbGlja0V2ZW50PGFueT4+ID0gbmV3IEV2ZW50RW1pdHRlcjxBWEl0ZW1DbGlja0V2ZW50PGFueT4+KCk7XG5cbiAgLyoqXG4gICAqIERlZmluZXMgdGhlIGRhdGEgc291cmNlIGZvciB0aGUgbGlzdC5cbiAgICpcbiAgICogIEBkZWZhdWx0VmFsdWUgY29udmVydEFycmF5VG9EYXRhU291cmNlKFtdKVxuICAgKi9cbiAgQElucHV0KClcbiAgZGF0YVNvdXJjZTogQVhEYXRhU291cmNlPHVua25vd24+ID0gY29udmVydEFycmF5VG9EYXRhU291cmNlKFtdKTtcblxuICAvKipcbiAgICogIEBpZ25vcmVcbiAgICovXG4gIGl0ZW1IZWlnaHRTaWduYWw6IFdyaXRhYmxlU2lnbmFsPG51bWJlciB8ICdhdXRvJz4gPSBzaWduYWwoNDApO1xuXG4gIC8qKlxuICAgKiBTZXRzIHRoZSBoZWlnaHQgb2YgZWFjaCBpdGVtIGluIHRoZSBsaXN0LlxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIHNldCBpdGVtSGVpZ2h0KHY6IG51bWJlciB8ICdhdXRvJykge1xuICAgIHRoaXMuaXRlbUhlaWdodFNpZ25hbC5zZXQodik7XG4gIH1cblxuICAvKipcbiAgICogVGVtcGxhdGUgZm9yIHJlbmRlcmluZyBpbmRpdmlkdWFsIGl0ZW1zIGluIHRoZSBsaXN0LlxuICAgKi9cbiAgQElucHV0KClcbiAgaXRlbVRlbXBsYXRlOiBUZW1wbGF0ZVJlZjx1bmtub3duPjtcblxuICAvKipcbiAgICogVGVtcGxhdGUgdG8gZGlzcGxheSB3aGVuIHRoZSBsaXN0IGlzIGVtcHR5LlxuICAgKi9cbiAgQElucHV0KClcbiAgZW1wdHlUZW1wbGF0ZTogVGVtcGxhdGVSZWY8dW5rbm93bj47XG5cbiAgLyoqXG4gICAqIFRlbXBsYXRlIHRvIHNob3cgd2hpbGUgdGhlIGxpc3QgaXMgbG9hZGluZy5cbiAgICovXG4gIEBJbnB1dCgpXG4gIGxvYWRpbmdUZW1wbGF0ZTogVGVtcGxhdGVSZWY8dW5rbm93bj47XG5cbiAgLyoqXG4gICAqIEVtaXR0ZWQgd2hlbiB0aGUgaW5kZXggb2YgdGhlIHNjcm9sbGVkIGl0ZW0gY2hhbmdlcy5cbiAgICpcbiAgICogQGV2ZW50XG4gICAqL1xuICBAT3V0cHV0KClcbiAgb25TY3JvbGxlZEluZGV4Q2hhbmdlZDogRXZlbnRFbWl0dGVyPEFYTGlzdFNjcm9sbEluZGV4Q2hhbmdlZD4gPSBuZXcgRXZlbnRFbWl0dGVyPEFYTGlzdFNjcm9sbEluZGV4Q2hhbmdlZD4oKTtcblxuICAvKipcbiAgICogU3BlY2lmaWVzIHdoZXRoZXIgdGhlIGNoZWNrYm94IGlzIGVuYWJsZWQuXG4gICAqXG4gICAqICBAZGVmYXVsdFZhbHVlIHRydWVcbiAgICovXG4gIEBJbnB1dCgpXG4gIGNoZWNrYm94ID0gdHJ1ZTtcblxuICAvKipcbiAgICogIEBpZ25vcmVcbiAgICovXG4gIHByb3RlY3RlZCBsaXN0RGF0YVNvdXJjZTogQVhMaXN0RGF0YVNvdXJjZTx1bmtub3duPjtcblxuICAvKipcbiAgICogIEBpZ25vcmVcbiAgICovXG4gIHByb3RlY3RlZCBpc0xvYWRpbmcgPSBzaWduYWwodHJ1ZSk7XG5cbiAgLyoqXG4gICAqICBAaWdub3JlXG4gICAqL1xuICBwcm90ZWN0ZWQgaGFzSXRlbXMgPSBmYWxzZTtcblxuICAvKipcbiAgICogIEBpZ25vcmVcbiAgICovXG4gIHByaXZhdGUgbGFzdEluZGV4ID0gMDtcblxuICAvKipcbiAgICogIEBpZ25vcmVcbiAgICovXG4gIHByaXZhdGUgcG9zdHBvbmVGb2N1cyA9IGZhbHNlO1xuXG4gIC8qKlxuICAgKiAgQGlnbm9yZVxuICAgKi9cbiAgQFZpZXdDaGlsZChDZGtWaXJ0dWFsU2Nyb2xsVmlld3BvcnQpXG4gIHByaXZhdGUgdmlld3BvcnQ6IENka1ZpcnR1YWxTY3JvbGxWaWV3cG9ydDtcblxuICB0cmFja0J5SWR4KGkpIHtcbiAgICByZXR1cm4gaTtcbiAgfVxuXG4gIC8qKlxuICAgKiAgQGlnbm9yZVxuICAgKi9cbiAgb3ZlcnJpZGUgbmdPbkluaXQoKSB7XG4gICAgc3VwZXIubmdPbkluaXQoKTtcbiAgICB0aGlzLmxpc3REYXRhU291cmNlID0gbmV3IEFYTGlzdERhdGFTb3VyY2U8dW5rbm93bj4oe1xuICAgICAgc291cmNlOiB0aGlzLmRhdGFTb3VyY2UsXG4gICAgfSk7XG4gICAgdGhpcy5saXN0RGF0YVNvdXJjZS5zb3VyY2Uub25Mb2FkaW5nQ2hhbmdlZC5zdWJzY3JpYmUoKGRhdGEpID0+IHtcbiAgICAgIHRoaXMuaXNMb2FkaW5nLnNldChkYXRhKTtcbiAgICB9KTtcbiAgICB0aGlzLmxpc3REYXRhU291cmNlLnNvdXJjZS5vbkNoYW5nZWQuc3Vic2NyaWJlKChkYXRhKSA9PiB7XG4gICAgICB0aGlzLmhhc0l0ZW1zID0gZGF0YS50b3RhbENvdW50ID4gMDtcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICB0aGlzLnJlbmRlcigpO1xuICAgICAgfSwgMTAwKTtcbiAgICB9KTtcbiAgfVxuICAvKipcbiAgICogIEBpZ25vcmVcbiAgICovXG4gIF9oYW5kbGVPbkl0ZW1DbGljayhlOiBNb3VzZUV2ZW50LCBpdGVtOiBhbnkpIHtcbiAgICBpZiAodGhpcy5yZWFkb25seSB8fCB0aGlzLmRpc2FibGVkKSB7XG4gICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICBlLnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAodGhpcy5pc0l0ZW1EaXNhYmxlZChpdGVtKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLnRvZ2dsZVNlbGVjdChpdGVtKTtcbiAgICB0aGlzLm9uSXRlbUNsaWNrLmVtaXQoe1xuICAgICAgY29tcG9uZW50OiB0aGlzLFxuICAgICAgaXRlbSxcbiAgICAgIGh0bWxFbGVtZW50OiBlLnRhcmdldCBhcyBIVE1MRWxlbWVudCxcbiAgICAgIGlzVXNlckludGVyYWN0aW9uOiB0cnVlLFxuICAgICAgbmF0aXZlRXZlbnQ6IGUsXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogIEBpZ25vcmVcbiAgICovXG4gIEBIb3N0TGlzdGVuZXIoJ2tleWRvd24nLCBbJyRldmVudCddKVxuICBfaGFuZGxlS2V5ZG93bihlOiBLZXlib2FyZEV2ZW50KSB7XG4gICAgaWYgKChlLmNvZGUgPT09ICdBcnJvd0Rvd24nIHx8IGUuY29kZSA9PT0gJ0Fycm93VXAnKSAmJiB0aGlzLmhhc0l0ZW1zKSB7XG4gICAgICB0aGlzLmZvY3VzSXRlbUJ5TmF2KGUua2V5ID09PSAnQXJyb3dEb3duJyA/IDEgOiAtMSk7XG4gICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgfVxuICAgIGlmICgoZS5jb2RlID09PSAnU3BhY2UnIHx8IGUuY29kZSA9PT0gJ0VudGVyJykgJiYgdGhpcy5oYXNJdGVtcykge1xuICAgICAgaWYgKHRoaXMucmVhZG9ubHkgfHwgdGhpcy5kaXNhYmxlZCkge1xuICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIGNvbnN0IGlkID0gZG9jdW1lbnQuYWN0aXZlRWxlbWVudD8uY2xvc2VzdCgnbGknKT8uZGF0YXNldFsnaWQnXTtcbiAgICAgIHRoaXMudG9nZ2xlU2VsZWN0KGlkKTtcbiAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqICBAaWdub3JlXG4gICAqL1xuICBwcml2YXRlIGZvY3VzSXRlbUJ5TmF2KHNpZ246IC0xIHwgMSk6IHZvaWQge1xuICAgIGNvbnN0IGxpc3QgPSB0aGlzLmdldEhvc3RFbGVtZW50KCkucXVlcnlTZWxlY3RvcigndWwnKTtcbiAgICBjb25zdCBmbiA9IChzKSA9PiBsaXN0LnF1ZXJ5U2VsZWN0b3I8SFRNTERpdkVsZW1lbnQ+KHMpO1xuICAgIGNvbnN0IGl0ZW1EaXY6IEhUTUxFbGVtZW50ID0gZG9jdW1lbnQuYWN0aXZlRWxlbWVudD8uY2xvc2VzdCgnbGknKSB8fCBmbihgbGkuYXgtc3RhdGUtc2VsZWN0ZWRgKSB8fCBmbihgbGlgKTtcbiAgICBjb25zdCBuZXh0ID0gKHNpZ24gPT0gMSA/IGl0ZW1EaXYubmV4dEVsZW1lbnRTaWJsaW5nIDogaXRlbURpdi5wcmV2aW91c0VsZW1lbnRTaWJsaW5nKSBhcyBIVE1MRWxlbWVudDtcbiAgICBpZiAobmV4dCkge1xuICAgICAgbmV4dC5mb2N1cygpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiAgQGlnbm9yZVxuICAgKi9cbiAgcHJvdGVjdGVkIF9oYW5kbGVPbnNjcm9sbGVkSW5kZXhDaGFuZ2UoZTogbnVtYmVyKSB7XG4gICAgdGhpcy5sYXN0SW5kZXggPSBlO1xuICAgIHRoaXMub25TY3JvbGxlZEluZGV4Q2hhbmdlZC5lbWl0KHtcbiAgICAgIGNvbXBvbmVudDogdGhpcyxcbiAgICAgIGluZGV4OiB0aGlzLmxhc3RJbmRleCxcbiAgICAgIGlzVXNlckludGVyYWN0aW9uOiB0cnVlLFxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHJpZXZlcyBhbiBpdGVtIGZyb20gdGhlIGRhdGEgc291cmNlIGJhc2VkIG9uIHRoZSBwcm92aWRlZCBrZXkuXG4gICAqXG4gICAqIEBwYXJhbSBrZXkgVGhlIGtleSB1c2VkIHRvIGlkZW50aWZ5IHRoZSBpdGVtLlxuICAgKiBAaWdub3JlXG4gICAqL1xuICBnZXRJdGVtQnlLZXkoa2V5OiB1bmtub3duKTogUHJvbWlzZTx1bmtub3duPiB8IHVua25vd24ge1xuICAgIHJldHVybiB0aGlzLmRhdGFTb3VyY2UuZmluZChrZXkpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlbmRlcnMgdGhlIGNvbXBvbmVudCBieSB1cGRhdGluZyB0aGUgdmlld3BvcnQgc2l6ZSwgc2Nyb2xsaW5nIHRvIHRoZSBsYXN0IGluZGV4LCBhbmQgb3B0aW9uYWxseSBmb2N1c2luZyB0aGUgZWxlbWVudC5cbiAgICovXG4gIHB1YmxpYyByZW5kZXIoKSB7XG4gICAgdGhpcy52aWV3cG9ydC5jaGVja1ZpZXdwb3J0U2l6ZSgpO1xuICAgIHRoaXMudmlld3BvcnQuc2Nyb2xsVG9JbmRleCh0aGlzLmxhc3RJbmRleCk7XG4gICAgaWYgKHRoaXMucG9zdHBvbmVGb2N1cykge1xuICAgICAgdGhpcy5wb3N0cG9uZUZvY3VzID0gZmFsc2U7XG4gICAgICB0aGlzLmZvY3VzKCk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFJlZnJlc2hlcyB0aGUgbGlzdCBieSBjbGVhcmluZyB0aGUgc2VsZWN0aW9uIGNhY2hlIGFuZCByZWxvYWRpbmcgdGhlIGRhdGEgc291cmNlLlxuICAgKiBAaWdub3JlXG4gICAqL1xuICBwdWJsaWMgcmVmcmVzaCgpIHtcbiAgICB0aGlzLmNsZWFyU2VsZWN0aW9uQ2FjaGUoKTtcbiAgICB0aGlzLmxpc3REYXRhU291cmNlLnJlZnJlc2goKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTY3JvbGxzIHRoZSB2aWV3cG9ydCB0byB0aGUgc3BlY2lmaWVkIGl0ZW0gaW5kZXguXG4gICAqIEBwYXJhbSBpbmRleCBUaGUgaW5kZXggb2YgdGhlIGl0ZW0gdG8gc2Nyb2xsIHRvLlxuICAgKiBAaWdub3JlXG4gICAqL1xuICBwdWJsaWMgc2Nyb2xsVG9JbmRleChpbmRleDogbnVtYmVyKSB7XG4gICAgdGhpcy52aWV3cG9ydC5zY3JvbGxUb0luZGV4KGluZGV4KTtcbiAgfVxuICAvKipcbiAgICogU2V0cyBmb2N1cyB0byB0aGUgZmlyc3Qgc2VsZWN0YWJsZSBsaXN0IGl0ZW0uIElmIG5vIGl0ZW0gaXMgYXZhaWxhYmxlLCBwb3N0cG9uZXMgZm9jdXMuXG4gICAqL1xuICBvdmVycmlkZSBmb2N1cygpOiB2b2lkIHtcbiAgICBjb25zdCBsaXN0ID0gdGhpcy5nZXRIb3N0RWxlbWVudCgpLnF1ZXJ5U2VsZWN0b3IoJ3VsJyk7XG4gICAgY29uc3QgZm9jdXNhYmxlID0gbGlzdC5xdWVyeVNlbGVjdG9yPEhUTUxFbGVtZW50PignbGkuYXgtc3RhdGUtc2VsZWN0ZWQnKSA/PyBsaXN0LnF1ZXJ5U2VsZWN0b3I8SFRNTEVsZW1lbnQ+KCdsaS5saXN0LWl0ZW0nKTtcbiAgICBpZiAoZm9jdXNhYmxlKSB7XG4gICAgICBmb2N1c2FibGUuZm9jdXMoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5wb3N0cG9uZUZvY3VzID0gdHJ1ZTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogRGV0ZXJtaW5lcyB3aGV0aGVyIHRvIHNob3cgdGhlIGVtcHR5IHRlbXBsYXRlIGJhc2VkIG9uIHRoZSBwcmVzZW5jZSBvZiBpdGVtcyBhbmQgbG9hZGluZyBzdGF0ZS5cbiAgICogQGlnbm9yZVxuICAgKi9cbiAgc2hvd0VtcHR5VGVtcGxhdGUgPSAoKSA9PiB0aGlzLmVtcHR5VGVtcGxhdGUgJiYgdGhpcy5oYXNJdGVtcyA9PT0gZmFsc2UgJiYgdGhpcy5pc0xvYWRpbmcoKSA9PT0gZmFsc2U7XG5cbiAgLyoqXG4gICAqICBAaWdub3JlXG4gICAqL1xuICBASG9zdEJpbmRpbmcoJ2NsYXNzJylcbiAgZ2V0IF9faG9zdENsYXNzKCk6IHN0cmluZyB7XG4gICAgY29uc3QgX2NsYXNzID0gYGF4LWRlZmF1bHQgJHt0aGlzLnNob3dFbXB0eVRlbXBsYXRlKCkgPyAnYXgtc3RhdGUtZW1wdHknIDogJyd9YDtcbiAgICByZXR1cm4gdGhpcy5pdGVtVGVtcGxhdGUgPyAnJyA6IF9jbGFzcztcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImxpc3QtY29udGFpbmVyXCIgY2RrVmlydHVhbFNjcm9sbGluZ0VsZW1lbnQ+XG4gIDxuZy1jb250ZW50IHNlbGVjdD1cImF4LWhlYWRlclwiPjwvbmctY29udGVudD5cbiAgPGNkay12aXJ0dWFsLXNjcm9sbC12aWV3cG9ydFxuICAgIFtpdGVtU2l6ZV09XCJpdGVtSGVpZ2h0U2lnbmFsKClcIlxuICAgIFtzdHlsZS4tLWl0ZW0taGVpZ2h0XT1cIml0ZW1IZWlnaHRTaWduYWwoKSArICdweCdcIlxuICAgIChzY3JvbGxlZEluZGV4Q2hhbmdlKT1cIl9oYW5kbGVPbnNjcm9sbGVkSW5kZXhDaGFuZ2UoJGV2ZW50KVwiXG4gID5cbiAgICA8dWw+XG4gICAgICA8IS0tICBJdGVtIFRlbXBsYXRlICAtLT5cbiAgICAgIDxuZy1jb250YWluZXIgKmNka1ZpcnR1YWxGb3I9XCJsZXQgaXRlbSBvZiBsaXN0RGF0YVNvdXJjZTsgbGV0IGkgPSBpbmRleDsgdHJhY2tCeTogdHJhY2tCeUlkeFwiPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXRlbSAhPT0gbnVsbCAmJiBpdGVtICE9PSB1bmRlZmluZWQ7IGVsc2UgbG9hZGluZ1RwbFwiPlxuICAgICAgICAgIDxsaVxuICAgICAgICAgICAgW2NsYXNzLmF4LXN0YXRlLXNlbGVjdGVkXT1cImlzSXRlbVNlbGVjdGVkKGl0ZW0pXCJcbiAgICAgICAgICAgIGNsYXNzPVwibGlzdC1pdGVtXCJcbiAgICAgICAgICAgIFtjbGFzcy5heC1zdGF0ZS1kaXNhYmxlZF09XCJpc0l0ZW1EaXNhYmxlZChpdGVtKVwiXG4gICAgICAgICAgICBbYXR0ci50YWJpbmRleF09XCJpXCJcbiAgICAgICAgICAgIChjbGljayk9XCJfaGFuZGxlT25JdGVtQ2xpY2soJGV2ZW50LCBpdGVtKVwiXG4gICAgICAgICAgICBbYXR0ci5kYXRhLWlkXT1cImdldFZhbHVlKGl0ZW0pXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8IS0tICBDdXN0b20gSXRlbSBUZW1wbGF0ZSAgLS0+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXRlbVRlbXBsYXRlOyBlbHNlIGRlZmF1bHRJdGVtVHBsXCI+XG4gICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJpdGVtVGVtcGxhdGU7IGNvbnRleHQ6IHsgJGltcGxpY2l0OiB7IGRhdGE6IGl0ZW0gfSB9XCI+XG4gICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8IS0tICBEZWZhdWx0IEl0ZW0gVGVtcGxhdGUgIC0tPlxuICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNkZWZhdWx0SXRlbVRwbD5cbiAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIml0ZW0gIT09IG51bGwgJiYgaXRlbSAhPT0gdW5kZWZpbmVkOyBlbHNlIGxvYWRpbmdUcGxcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXgtbGFiZWwtY29udGFpbmVyXCI+XG4gICAgICAgICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJheC1jaGVja2JveFwiXG4gICAgICAgICAgICAgICAgICAgICpuZ0lmPVwibXVsdGlwbGUgJiYgY2hlY2tib3hcIlxuICAgICAgICAgICAgICAgICAgICB0eXBlPVwiY2hlY2tib3hcIlxuICAgICAgICAgICAgICAgICAgICBbY2hlY2tlZF09XCJpc0l0ZW1TZWxlY3RlZChpdGVtKVwiXG4gICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJpc0l0ZW1EaXNhYmxlZChpdGVtKVwiXG4gICAgICAgICAgICAgICAgICAgIHRhYmluZGV4PVwiMFwiXG4gICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgPHNwYW4gW2NsYXNzLmF4LWNoZWNrYm94LWxhYmVsXT1cIm11bHRpcGxlICYmIGNoZWNrYm94XCI+e3sgZ2V0RGlzcGxheVRleHQoaXRlbSkgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPCEtLSA8aSBjbGFzcz1cImF4LWljb24gYXgtaWNvbi1jaGVjayBheC1zZWxlY3RlZC1pY29uXCIgKm5nSWY9XCJpc0l0ZW1TZWxlY3RlZChpdGVtKSBcIj48L2k+IC0tPlxuICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgPC9saT5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8L3VsPlxuICA8L2Nkay12aXJ0dWFsLXNjcm9sbC12aWV3cG9ydD5cbiAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiYXgtZm9vdGVyXCI+PC9uZy1jb250ZW50PlxuPC9kaXY+XG48IS0tICBMb2FkaW5nIFRlbXBsYXRlICAtLT5cbjxuZy10ZW1wbGF0ZSAjbG9hZGluZ1RwbD5cbiAgPCEtLSAgQ3VzdG9tIExvYWRpbmcgVGVtcGxhdGUgIC0tPlxuICA8bmctY29udGFpbmVyICpuZ0lmPVwibG9hZGluZ1RlbXBsYXRlOyBlbHNlIGRlZmF1bHRMb2FkaW5nVHBsXCI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImxvYWRpbmdUZW1wbGF0ZVwiPiA8L25nLWNvbnRhaW5lcj5cbiAgPC9uZy1jb250YWluZXI+XG4gIDwhLS0gIERlZmF1bHQgTG9hZGluZyBUZW1wbGF0ZSAgLS0+XG4gIDxuZy10ZW1wbGF0ZSAjZGVmYXVsdExvYWRpbmdUcGw+XG4gICAgPGxpPnt7ICdsb2FkaW5nJyB8IHRyYW5zbGF0ZSB8IGFzeW5jIH19PC9saT5cbiAgPC9uZy10ZW1wbGF0ZT5cbjwvbmctdGVtcGxhdGU+XG48IS0tICBFbXB0eSBUZW1wbGF0ZSAgLS0+XG5AaWYgKHNob3dFbXB0eVRlbXBsYXRlKCkpIHtcbiAgPGRpdiBjbGFzcz1cImVtcHR5LWNvbnRhaW5lclwiPlxuICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJlbXB0eVRlbXBsYXRlXCI+PC9uZy1jb250YWluZXI+XG4gIDwvZGl2PlxufVxuIl19
@@ -59,11 +59,15 @@ export class AXLoadingComponent extends MXBaseComponent {
59
59
  }
60
60
  }
61
61
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXLoadingComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
62
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.0", type: AXLoadingComponent, selector: "ax-loading", inputs: { visible: "visible", type: "type", context: "context" }, outputs: { visibleChange: "visibleChange" }, usesInheritance: true, ngImport: i0, template: ` <ng-template [cdkPortalOutlet]="_selectedPortal" (attached)="_handleAttched($event)"></ng-template> `, isInline: true, styles: ["ax-loading{position:relative;padding-left:.25rem;padding-right:.25rem}ax-loading:before,ax-loading:after{position:absolute;inset-inline-start:50%;top:50%;height:100%;width:100%;transform:translate(-50%);transform:translateY(-50%);transform:scale(0);border-radius:9999px;content:\"\"}ax-loading:before,ax-loading:after{background-color:transparent;animation:1s ease-in-out both ax-pulse;animation-duration:2s;animation-iteration-count:infinite}@keyframes ax-pulse{50%{transform:scale3d(1.05,1.05,1.05)}}ax-loading ax-loading-spinner{display:flex;gap:.75rem}.ax-loading-overlay-backdrop{background-color:rgba(var(--ax-color-surface));opacity:.85!important}.ax-loading-pane{height:100%!important;width:100%!important;bottom:0;inset-inline-end:0px;inset-inline-start:0px;top:0}.ax-loading-pane .cdk-dialog-container{display:flex!important;align-items:center;justify-content:center}.ax-loading-pane .cdk-dialog-container:focus,.ax-loading-pane .cdk-dialog-container:focus-visible,.ax-loading-pane .cdk-dialog-container:focus-within{outline:2px solid transparent;outline-offset:2px}\n"], dependencies: [{ kind: "directive", type: i1.CdkPortalOutlet, selector: "[cdkPortalOutlet]", inputs: ["cdkPortalOutlet"], outputs: ["attached"], exportAs: ["cdkPortalOutlet"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
62
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.0", type: AXLoadingComponent, selector: "ax-loading", inputs: { visible: "visible", type: "type", context: "context" }, outputs: { visibleChange: "visibleChange" }, usesInheritance: true, ngImport: i0, template: `
63
+ <ng-template [cdkPortalOutlet]="_selectedPortal" (attached)="_handleAttched($event)"></ng-template>
64
+ `, isInline: true, styles: ["ax-loading{position:relative;padding-left:.25rem;padding-right:.25rem}ax-loading:before,ax-loading:after{position:absolute;inset-inline-start:50%;top:50%;height:100%;width:100%;transform:translate(-50%);transform:translateY(-50%);transform:scale(0);border-radius:9999px;content:\"\"}ax-loading:before,ax-loading:after{background-color:transparent;animation:1s ease-in-out both ax-pulse;animation-duration:2s;animation-iteration-count:infinite}@keyframes ax-pulse{50%{transform:scale3d(1.05,1.05,1.05)}}ax-loading ax-loading-spinner{display:flex;gap:.75rem}.ax-loading-overlay-backdrop{background-color:rgba(var(--ax-color-surface));opacity:.85!important}.ax-loading-pane{height:100%!important;width:100%!important;bottom:0;inset-inline-end:0px;inset-inline-start:0px;top:0}.ax-loading-pane .cdk-dialog-container{display:flex!important;align-items:center;justify-content:center}.ax-loading-pane .cdk-dialog-container:focus,.ax-loading-pane .cdk-dialog-container:focus-visible,.ax-loading-pane .cdk-dialog-container:focus-within{outline:2px solid transparent;outline-offset:2px}\n"], dependencies: [{ kind: "directive", type: i1.CdkPortalOutlet, selector: "[cdkPortalOutlet]", inputs: ["cdkPortalOutlet"], outputs: ["attached"], exportAs: ["cdkPortalOutlet"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
63
65
  }
64
66
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXLoadingComponent, decorators: [{
65
67
  type: Component,
66
- args: [{ selector: 'ax-loading', template: ` <ng-template [cdkPortalOutlet]="_selectedPortal" (attached)="_handleAttched($event)"></ng-template> `, changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, styles: ["ax-loading{position:relative;padding-left:.25rem;padding-right:.25rem}ax-loading:before,ax-loading:after{position:absolute;inset-inline-start:50%;top:50%;height:100%;width:100%;transform:translate(-50%);transform:translateY(-50%);transform:scale(0);border-radius:9999px;content:\"\"}ax-loading:before,ax-loading:after{background-color:transparent;animation:1s ease-in-out both ax-pulse;animation-duration:2s;animation-iteration-count:infinite}@keyframes ax-pulse{50%{transform:scale3d(1.05,1.05,1.05)}}ax-loading ax-loading-spinner{display:flex;gap:.75rem}.ax-loading-overlay-backdrop{background-color:rgba(var(--ax-color-surface));opacity:.85!important}.ax-loading-pane{height:100%!important;width:100%!important;bottom:0;inset-inline-end:0px;inset-inline-start:0px;top:0}.ax-loading-pane .cdk-dialog-container{display:flex!important;align-items:center;justify-content:center}.ax-loading-pane .cdk-dialog-container:focus,.ax-loading-pane .cdk-dialog-container:focus-visible,.ax-loading-pane .cdk-dialog-container:focus-within{outline:2px solid transparent;outline-offset:2px}\n"] }]
68
+ args: [{ selector: 'ax-loading', template: `
69
+ <ng-template [cdkPortalOutlet]="_selectedPortal" (attached)="_handleAttched($event)"></ng-template>
70
+ `, changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, styles: ["ax-loading{position:relative;padding-left:.25rem;padding-right:.25rem}ax-loading:before,ax-loading:after{position:absolute;inset-inline-start:50%;top:50%;height:100%;width:100%;transform:translate(-50%);transform:translateY(-50%);transform:scale(0);border-radius:9999px;content:\"\"}ax-loading:before,ax-loading:after{background-color:transparent;animation:1s ease-in-out both ax-pulse;animation-duration:2s;animation-iteration-count:infinite}@keyframes ax-pulse{50%{transform:scale3d(1.05,1.05,1.05)}}ax-loading ax-loading-spinner{display:flex;gap:.75rem}.ax-loading-overlay-backdrop{background-color:rgba(var(--ax-color-surface));opacity:.85!important}.ax-loading-pane{height:100%!important;width:100%!important;bottom:0;inset-inline-end:0px;inset-inline-start:0px;top:0}.ax-loading-pane .cdk-dialog-container{display:flex!important;align-items:center;justify-content:center}.ax-loading-pane .cdk-dialog-container:focus,.ax-loading-pane .cdk-dialog-container:focus-visible,.ax-loading-pane .cdk-dialog-container:focus-within{outline:2px solid transparent;outline-offset:2px}\n"] }]
67
71
  }], propDecorators: { visibleChange: [{
68
72
  type: Output
69
73
  }], visible: [{
@@ -73,4 +77,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImpor
73
77
  }], context: [{
74
78
  type: Input
75
79
  }] } });
76
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9hZGluZy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvbG9hZGluZy9zcmMvbGliL2xvYWRpbmcuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUM1RCxPQUFPLEVBQThCLGVBQWUsRUFBeUIsTUFBTSxxQkFBcUIsQ0FBQztBQUN6RyxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFFVCxZQUFZLEVBQ1osS0FBSyxFQUVMLE1BQU0sRUFDTixpQkFBaUIsRUFDakIsTUFBTSxHQUNQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBbUIsaUJBQWlCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQzs7O0FBRXRFOzs7R0FHRztBQVFILE1BQU0sT0FBTyxrQkFBbUIsU0FBUSxlQUFlO0lBUHZEOztRQVFVLFdBQU0sR0FBb0IsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFPNUQ7OztXQUdHO1FBRUgsa0JBQWEsR0FBMEIsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQTRCMUQ7OztXQUdHO1FBRUgsU0FBSSxHQUFHLFNBQVMsQ0FBQztLQTBCbEI7SUFwREM7O09BRUc7SUFDSCxJQUNXLE9BQU87UUFDaEIsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDO0lBQ3ZCLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsSUFBVyxPQUFPLENBQUMsQ0FBVTtRQUMzQixJQUFJLENBQUMsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDdkIsSUFBSSxDQUFDLFFBQVEsR0FBRyxDQUFDLENBQUM7WUFDbEIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUM7WUFDdkcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDN0IsQ0FBQztJQUNILENBQUM7SUFlRDs7T0FFRztJQUNNLFFBQVE7UUFDZixLQUFLLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDakIsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLGVBQWUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQWlDLENBQUMsQ0FBQztRQUMxRixJQUFJLENBQUMsR0FBRyxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQzFCLENBQUM7SUFFRDs7T0FFRztJQUNPLGNBQWMsQ0FBQyxHQUErQjtRQUN0RCxHQUFHLEdBQUcsR0FBNEIsQ0FBQztRQUNuQyxJQUFJLEdBQUcsQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ2pDLE1BQU0sQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDNUMsQ0FBQztJQUNILENBQUM7OEdBdkVVLGtCQUFrQjtrR0FBbEIsa0JBQWtCLHdMQUxuQix1R0FBdUc7OzJGQUt0RyxrQkFBa0I7a0JBUDlCLFNBQVM7K0JBQ0UsWUFBWSxZQUNaLHVHQUF1RyxtQkFFaEcsdUJBQXVCLENBQUMsTUFBTSxpQkFDaEMsaUJBQWlCLENBQUMsSUFBSTs4QkFlckMsYUFBYTtzQkFEWixNQUFNO2dCQVlJLE9BQU87c0JBRGpCLEtBQUs7Z0JBdUJOLElBQUk7c0JBREgsS0FBSztnQkFPTixPQUFPO3NCQUROLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBNWEJhc2VDb21wb25lbnQgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvY29tbW9uJztcbmltcG9ydCB7IENka1BvcnRhbE91dGxldEF0dGFjaGVkUmVmLCBDb21wb25lbnRQb3J0YWwsIENvbXBvbmVudFR5cGUsIFBvcnRhbCB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9wb3J0YWwnO1xuaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgQ29tcG9uZW50UmVmLFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPbkluaXQsXG4gIE91dHB1dCxcbiAgVmlld0VuY2Fwc3VsYXRpb24sXG4gIGluamVjdCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBWExvYWRpbmdDb25maWcsIEFYX0xPQURJTkdfQ09ORklHIH0gZnJvbSAnLi9sb2FkaW5nLmNvbmZpZyc7XG5cbi8qKlxuICogQSBjb21wb25lbnQgdGhhdCBkaXNwbGF5cyBhIGxvYWRpbmcgaW5kaWNhdG9yLlxuICogQGNhdGVnb3J5IENvbXBvbmVudHNcbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXgtbG9hZGluZycsXG4gIHRlbXBsYXRlOiBgIDxuZy10ZW1wbGF0ZSBbY2RrUG9ydGFsT3V0bGV0XT1cIl9zZWxlY3RlZFBvcnRhbFwiIChhdHRhY2hlZCk9XCJfaGFuZGxlQXR0Y2hlZCgkZXZlbnQpXCI+PC9uZy10ZW1wbGF0ZT4gYCxcbiAgc3R5bGVVcmxzOiBbJy4vbG9hZGluZy5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbn0pXG5leHBvcnQgY2xhc3MgQVhMb2FkaW5nQ29tcG9uZW50IGV4dGVuZHMgTVhCYXNlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgcHJpdmF0ZSBjb25maWc6IEFYTG9hZGluZ0NvbmZpZyA9IGluamVjdChBWF9MT0FESU5HX0NPTkZJRyk7XG5cbiAgLyoqXG4gICAqICBAaWdub3JlXG4gICAqL1xuICBwcm90ZWN0ZWQgX3NlbGVjdGVkUG9ydGFsOiBQb3J0YWw8dW5rbm93bj47XG5cbiAgLyoqXG4gICAqIEVtaXRzIGFuIGV2ZW50IHdoZW4gdGhlIHZpc2liaWxpdHkgc3RhdGUgb2YgdGhlIGNvbXBvbmVudCBjaGFuZ2VzLlxuICAgKiBAZXZlbnRcbiAgICovXG4gIEBPdXRwdXQoKVxuICB2aXNpYmxlQ2hhbmdlOiBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgLyoqXG4gICAqICBAaWdub3JlXG4gICAqL1xuICBwcml2YXRlIF92aXNpYmxlOiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBEZXRlcm1pbmVzIHdoZXRoZXIgdGhlIGNvbXBvbmVudCBpcyB2aXNpYmxlIG9yIG5vdC5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBnZXQgdmlzaWJsZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fdmlzaWJsZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXRzIHRoZSB2aXNpYmlsaXR5IG9mIHRoZSBjb21wb25lbnQgYW5kIGVtaXRzIGEgdmlzaWJpbGl0eSBjaGFuZ2UgZXZlbnQuXG4gICAqXG4gICAqIEBwYXJhbSB2IC0gQSBib29sZWFuIHZhbHVlIGluZGljYXRpbmcgd2hldGhlciB0aGUgY29tcG9uZW50IHNob3VsZCBiZSB2aXNpYmxlLlxuICAgKi9cbiAgcHVibGljIHNldCB2aXNpYmxlKHY6IGJvb2xlYW4pIHtcbiAgICBpZiAodiAhPSB0aGlzLl92aXNpYmxlKSB7XG4gICAgICB0aGlzLl92aXNpYmxlID0gdjtcbiAgICAgIHYgPyB0aGlzLmdldEhvc3RFbGVtZW50KCkuY2xhc3NMaXN0LnJlbW92ZSgnYXgtaGlkZScpIDogdGhpcy5nZXRIb3N0RWxlbWVudCgpLmNsYXNzTGlzdC5hZGQoJ2F4LWhpZGUnKTtcbiAgICAgIHRoaXMudmlzaWJsZUNoYW5nZS5lbWl0KHYpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBTcGVjaWZpZXMgdGhlIHR5cGUgb2YgbG9hZGluZyBpbmRpY2F0b3IgdG8gZGlzcGxheS5cbiAgICogQGRlZmF1bHRWYWx1ZSAnc3Bpbm5lcidcbiAgICovXG4gIEBJbnB1dCgpXG4gIHR5cGUgPSAnc3Bpbm5lcic7XG5cbiAgLyoqXG4gICAqIFByb3ZpZGVzIGFkZGl0aW9uYWwgY29udGV4dCBvciBkYXRhIHRoYXQgbWF5IGJlIHVzZWQgYnkgdGhlIGNvbXBvbmVudC5cbiAgICovXG4gIEBJbnB1dCgpXG4gIGNvbnRleHQ/OiB1bmtub3duO1xuXG4gIC8qKlxuICAgKiAgQGlnbm9yZVxuICAgKi9cbiAgb3ZlcnJpZGUgbmdPbkluaXQoKSB7XG4gICAgc3VwZXIubmdPbkluaXQoKTtcbiAgICB0aGlzLl9zZWxlY3RlZFBvcnRhbCA9IG5ldyBDb21wb25lbnRQb3J0YWwodGhpcy5jb25maWcuc3Bpbm5lciBhcyBDb21wb25lbnRUeXBlPHVua25vd24+KTtcbiAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIC8qKlxuICAgKiAgQGlnbm9yZVxuICAgKi9cbiAgcHJvdGVjdGVkIF9oYW5kbGVBdHRjaGVkKHJlZjogQ2RrUG9ydGFsT3V0bGV0QXR0YWNoZWRSZWYpIHtcbiAgICByZWYgPSByZWYgYXMgQ29tcG9uZW50UmVmPHVua25vd24+O1xuICAgIGlmIChyZWYuaW5zdGFuY2UgJiYgdGhpcy5jb250ZXh0KSB7XG4gICAgICBPYmplY3QuYXNzaWduKHJlZi5pbnN0YW5jZSwgdGhpcy5jb250ZXh0KTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
80
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9hZGluZy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvbG9hZGluZy9zcmMvbGliL2xvYWRpbmcuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUM1RCxPQUFPLEVBQThCLGVBQWUsRUFBeUIsTUFBTSxxQkFBcUIsQ0FBQztBQUN6RyxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFFVCxZQUFZLEVBQ1osS0FBSyxFQUVMLE1BQU0sRUFDTixpQkFBaUIsRUFDakIsTUFBTSxHQUNQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBbUIsaUJBQWlCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQzs7O0FBRXRFOzs7R0FHRztBQVVILE1BQU0sT0FBTyxrQkFBbUIsU0FBUSxlQUFlO0lBVHZEOztRQVVVLFdBQU0sR0FBb0IsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFPNUQ7OztXQUdHO1FBRUgsa0JBQWEsR0FBMEIsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQTRCMUQ7OztXQUdHO1FBRUgsU0FBSSxHQUFHLFNBQVMsQ0FBQztLQTBCbEI7SUFwREM7O09BRUc7SUFDSCxJQUNXLE9BQU87UUFDaEIsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDO0lBQ3ZCLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsSUFBVyxPQUFPLENBQUMsQ0FBVTtRQUMzQixJQUFJLENBQUMsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDdkIsSUFBSSxDQUFDLFFBQVEsR0FBRyxDQUFDLENBQUM7WUFDbEIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUM7WUFDdkcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDN0IsQ0FBQztJQUNILENBQUM7SUFlRDs7T0FFRztJQUNNLFFBQVE7UUFDZixLQUFLLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDakIsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLGVBQWUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQWlDLENBQUMsQ0FBQztRQUMxRixJQUFJLENBQUMsR0FBRyxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQzFCLENBQUM7SUFFRDs7T0FFRztJQUNPLGNBQWMsQ0FBQyxHQUErQjtRQUN0RCxHQUFHLEdBQUcsR0FBNEIsQ0FBQztRQUNuQyxJQUFJLEdBQUcsQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ2pDLE1BQU0sQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDNUMsQ0FBQztJQUNILENBQUM7OEdBdkVVLGtCQUFrQjtrR0FBbEIsa0JBQWtCLHdMQVBuQjs7R0FFVDs7MkZBS1Usa0JBQWtCO2tCQVQ5QixTQUFTOytCQUNFLFlBQVksWUFDWjs7R0FFVCxtQkFFZ0IsdUJBQXVCLENBQUMsTUFBTSxpQkFDaEMsaUJBQWlCLENBQUMsSUFBSTs4QkFlckMsYUFBYTtzQkFEWixNQUFNO2dCQVlJLE9BQU87c0JBRGpCLEtBQUs7Z0JBdUJOLElBQUk7c0JBREgsS0FBSztnQkFPTixPQUFPO3NCQUROLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBNWEJhc2VDb21wb25lbnQgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvY29tbW9uJztcbmltcG9ydCB7IENka1BvcnRhbE91dGxldEF0dGFjaGVkUmVmLCBDb21wb25lbnRQb3J0YWwsIENvbXBvbmVudFR5cGUsIFBvcnRhbCB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9wb3J0YWwnO1xuaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgQ29tcG9uZW50UmVmLFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPbkluaXQsXG4gIE91dHB1dCxcbiAgVmlld0VuY2Fwc3VsYXRpb24sXG4gIGluamVjdCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBWExvYWRpbmdDb25maWcsIEFYX0xPQURJTkdfQ09ORklHIH0gZnJvbSAnLi9sb2FkaW5nLmNvbmZpZyc7XG5cbi8qKlxuICogQSBjb21wb25lbnQgdGhhdCBkaXNwbGF5cyBhIGxvYWRpbmcgaW5kaWNhdG9yLlxuICogQGNhdGVnb3J5IENvbXBvbmVudHNcbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXgtbG9hZGluZycsXG4gIHRlbXBsYXRlOiBgXG4gICAgPG5nLXRlbXBsYXRlIFtjZGtQb3J0YWxPdXRsZXRdPVwiX3NlbGVjdGVkUG9ydGFsXCIgKGF0dGFjaGVkKT1cIl9oYW5kbGVBdHRjaGVkKCRldmVudClcIj48L25nLXRlbXBsYXRlPlxuICBgLFxuICBzdHlsZVVybHM6IFsnLi9sb2FkaW5nLmNvbXBvbmVudC5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxufSlcbmV4cG9ydCBjbGFzcyBBWExvYWRpbmdDb21wb25lbnQgZXh0ZW5kcyBNWEJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBwcml2YXRlIGNvbmZpZzogQVhMb2FkaW5nQ29uZmlnID0gaW5qZWN0KEFYX0xPQURJTkdfQ09ORklHKTtcblxuICAvKipcbiAgICogIEBpZ25vcmVcbiAgICovXG4gIHByb3RlY3RlZCBfc2VsZWN0ZWRQb3J0YWw6IFBvcnRhbDx1bmtub3duPjtcblxuICAvKipcbiAgICogRW1pdHMgYW4gZXZlbnQgd2hlbiB0aGUgdmlzaWJpbGl0eSBzdGF0ZSBvZiB0aGUgY29tcG9uZW50IGNoYW5nZXMuXG4gICAqIEBldmVudFxuICAgKi9cbiAgQE91dHB1dCgpXG4gIHZpc2libGVDaGFuZ2U6IEV2ZW50RW1pdHRlcjxib29sZWFuPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICAvKipcbiAgICogIEBpZ25vcmVcbiAgICovXG4gIHByaXZhdGUgX3Zpc2libGU6IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIERldGVybWluZXMgd2hldGhlciB0aGUgY29tcG9uZW50IGlzIHZpc2libGUgb3Igbm90LlxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIGdldCB2aXNpYmxlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl92aXNpYmxlO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldHMgdGhlIHZpc2liaWxpdHkgb2YgdGhlIGNvbXBvbmVudCBhbmQgZW1pdHMgYSB2aXNpYmlsaXR5IGNoYW5nZSBldmVudC5cbiAgICpcbiAgICogQHBhcmFtIHYgLSBBIGJvb2xlYW4gdmFsdWUgaW5kaWNhdGluZyB3aGV0aGVyIHRoZSBjb21wb25lbnQgc2hvdWxkIGJlIHZpc2libGUuXG4gICAqL1xuICBwdWJsaWMgc2V0IHZpc2libGUodjogYm9vbGVhbikge1xuICAgIGlmICh2ICE9IHRoaXMuX3Zpc2libGUpIHtcbiAgICAgIHRoaXMuX3Zpc2libGUgPSB2O1xuICAgICAgdiA/IHRoaXMuZ2V0SG9zdEVsZW1lbnQoKS5jbGFzc0xpc3QucmVtb3ZlKCdheC1oaWRlJykgOiB0aGlzLmdldEhvc3RFbGVtZW50KCkuY2xhc3NMaXN0LmFkZCgnYXgtaGlkZScpO1xuICAgICAgdGhpcy52aXNpYmxlQ2hhbmdlLmVtaXQodik7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFNwZWNpZmllcyB0aGUgdHlwZSBvZiBsb2FkaW5nIGluZGljYXRvciB0byBkaXNwbGF5LlxuICAgKiBAZGVmYXVsdFZhbHVlICdzcGlubmVyJ1xuICAgKi9cbiAgQElucHV0KClcbiAgdHlwZSA9ICdzcGlubmVyJztcblxuICAvKipcbiAgICogUHJvdmlkZXMgYWRkaXRpb25hbCBjb250ZXh0IG9yIGRhdGEgdGhhdCBtYXkgYmUgdXNlZCBieSB0aGUgY29tcG9uZW50LlxuICAgKi9cbiAgQElucHV0KClcbiAgY29udGV4dD86IHVua25vd247XG5cbiAgLyoqXG4gICAqICBAaWdub3JlXG4gICAqL1xuICBvdmVycmlkZSBuZ09uSW5pdCgpIHtcbiAgICBzdXBlci5uZ09uSW5pdCgpO1xuICAgIHRoaXMuX3NlbGVjdGVkUG9ydGFsID0gbmV3IENvbXBvbmVudFBvcnRhbCh0aGlzLmNvbmZpZy5zcGlubmVyIGFzIENvbXBvbmVudFR5cGU8dW5rbm93bj4pO1xuICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgLyoqXG4gICAqICBAaWdub3JlXG4gICAqL1xuICBwcm90ZWN0ZWQgX2hhbmRsZUF0dGNoZWQocmVmOiBDZGtQb3J0YWxPdXRsZXRBdHRhY2hlZFJlZikge1xuICAgIHJlZiA9IHJlZiBhcyBDb21wb25lbnRSZWY8dW5rbm93bj47XG4gICAgaWYgKHJlZi5pbnN0YW5jZSAmJiB0aGlzLmNvbnRleHQpIHtcbiAgICAgIE9iamVjdC5hc3NpZ24ocmVmLmluc3RhbmNlLCB0aGlzLmNvbnRleHQpO1xuICAgIH1cbiAgfVxufVxuIl19
@@ -40,7 +40,7 @@ export class AXLoadingService {
40
40
  ce.appendChild(ov);
41
41
  setTimeout(() => {
42
42
  ov.style.position = 'absolute';
43
- }, 0);
43
+ });
44
44
  }
45
45
  return id;
46
46
  // TODO: diabled focus and click, maybe we need a service and directive for it
@@ -120,4 +120,4 @@ export class AXLoadingService {
120
120
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXLoadingService, decorators: [{
121
121
  type: Injectable
122
122
  }] });
123
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9hZGluZy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2xvYWRpbmcvc3JjL2xpYi9sb2FkaW5nLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxlQUFlLEVBQWMsY0FBYyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ25FLE9BQU8sRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDckQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0scUJBQXFCLENBQUM7O0FBSXpELE1BQU0saUJBQWlCLEdBQWEsVUFBVSxDQUFDO0FBRy9DLE1BQU0sT0FBTyxnQkFBZ0I7SUFEN0I7UUFFRSxrREFBa0Q7UUFDbEQsMENBQTBDO1FBQ2hDLGtCQUFhLEdBQUcsSUFBSSxPQUFPLEVBQTBDLENBQUM7UUFDaEYscURBQXFEO1FBQ3JELG1EQUFtRDtRQUN6QyxtQkFBYyxHQUFHLElBQUksT0FBTyxFQUEyRCxDQUFDO1FBRTFGLFdBQU0sR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7S0FtSGpDO0lBakhDLElBQUksQ0FBQyxNQUFpRTtRQUNwRSxNQUFNLEVBQUUsR0FBRyxDQUFDLE1BQU0sRUFBRSxRQUFRLElBQUksUUFBUSxDQUFDLElBQUksQ0FBbUIsQ0FBQztRQUNqRSxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsRUFBRTtZQUNyRCxXQUFXLEVBQUUsSUFBSTtZQUNqQixZQUFZLEVBQUUsSUFBSTtZQUNsQixZQUFZLEVBQUUsSUFBSTtZQUNsQixjQUFjLEVBQUUsSUFBSTtZQUNwQixpQkFBaUIsRUFBRSxJQUFJO1lBQ3ZCLFNBQVMsRUFBRSxJQUFJO1lBQ2YsSUFBSSxFQUFFLGFBQWE7WUFDbkIsVUFBVSxFQUFFLENBQUMsaUJBQWlCLEVBQUUsbUJBQW1CLENBQUM7WUFDcEQsYUFBYSxFQUFFLENBQUMsNkJBQTZCLEVBQUUsbUJBQW1CLENBQUM7U0FDcEUsQ0FBQyxDQUFDO1FBQ0gsTUFBTSxFQUFFLEdBQUcsSUFBSSxJQUFJLEVBQUUsQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUNoQyxTQUFTLENBQUMsaUJBQWlCLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQztRQUMzQyxTQUFTLENBQUMsaUJBQWlCLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUMvQyxJQUFJLEVBQUUsSUFBSSxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDeEIsTUFBTSxFQUFFLEdBQUcsU0FBUyxDQUFDLFVBQVUsQ0FBQyxlQUFlLENBQUM7WUFDaEQsTUFBTSxFQUFFLEdBQUcsU0FBUyxDQUFDLFVBQVUsQ0FBQyxjQUFjLENBQUM7WUFDL0MsRUFBRSxDQUFDLEtBQUssQ0FBQyxRQUFRLEdBQUcsVUFBVSxDQUFDO1lBQy9CLEVBQUUsQ0FBQyxLQUFLLENBQUMsUUFBUSxHQUFHLFVBQVUsQ0FBQztZQUMvQixFQUFFLENBQUMsV0FBVyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQ25CLEVBQUUsQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDbkIsVUFBVSxDQUFDLEdBQUcsRUFBRTtnQkFDZCxFQUFFLENBQUMsS0FBSyxDQUFDLFFBQVEsR0FBRyxVQUFVLENBQUM7WUFDakMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ1IsQ0FBQztRQUNELE9BQU8sRUFBRSxDQUFDO1FBQ1YsOEVBQThFO0lBQ2hGLENBQUM7SUFFRCxJQUFJLENBQUMsRUFBVTtRQUNiLE1BQU0sQ0FBQyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLGlCQUFpQixDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztRQUN4RixJQUFJLENBQUMsRUFBRSxDQUFDO1lBQ04sQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ1osQ0FBQztJQUNILENBQUM7SUFFRCxTQUFTLENBQUksT0FBc0IsRUFBRSxPQUF1QixFQUFFLFFBQW1CO1FBQy9FLElBQUksQ0FBQyxZQUFZLENBQUMsT0FBTyxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBQ3JDLE9BQU8sT0FBTyxDQUFDLElBQUksQ0FDakIsU0FBUyxDQUFDLGNBQWMsQ0FBQyxFQUN6QixRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLEVBQUUsUUFBUSxDQUFDLENBQUMsQ0FDbkQsQ0FBQztJQUNKLENBQUM7SUFFRCxTQUFTLENBQUMsT0FBdUIsRUFBRSxRQUFtQjtRQUNwRCxNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUVyRCxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDbEIsT0FBTyxLQUFLLENBQUM7UUFDZixDQUFDO2FBQU0sQ0FBQztZQUNOLElBQUksUUFBUSxLQUFLLFNBQVMsRUFBRSxDQUFDO2dCQUMzQixPQUFPLFlBQVksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsQ0FBQyxJQUFJLEtBQUssQ0FBQztZQUMvRCxDQUFDO2lCQUFNLENBQUM7Z0JBQ04sT0FBTyxDQUFDLEdBQUcsWUFBWSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO1lBQ3hFLENBQUM7UUFDSCxDQUFDO0lBQ0gsQ0FBQztJQUVELFVBQVUsQ0FBQyxPQUF1QixFQUFFLFFBQXlCO1FBQzNELE1BQU0saUJBQWlCLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUVyRCxJQUFJLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sRUFBRSxpQkFBaUIsQ0FBQyxFQUFFLENBQUM7WUFDdkQsSUFBSSxDQUFDLGVBQWUsQ0FBQyxPQUFPLEVBQUUsS0FBSyxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBQ2pELENBQUM7UUFFRCxPQUFPLElBQUksQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEdBQUcsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0lBQ2pFLENBQUM7SUFFRCxZQUFZLENBQUMsT0FBdUIsRUFBRSxRQUFtQjtRQUN2RCxJQUFJLENBQUMsZUFBZSxDQUFDLE9BQU8sRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO0lBQ2xFLENBQUM7SUFFRCxVQUFVLENBQUMsT0FBdUIsRUFBRSxRQUFtQjtRQUNyRCxJQUFJLENBQUMsZUFBZSxDQUFDLE9BQU8sRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO0lBQ25FLENBQUM7SUFFRCxhQUFhO1FBQ1gsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLE9BQU8sRUFBMEMsQ0FBQztRQUMzRSxJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksT0FBTyxFQUEyRCxDQUFDO0lBQy9GLENBQUM7SUFFUyxlQUFlLENBQUMsT0FBdUIsRUFBRSxLQUFjLEVBQUUsUUFBa0I7UUFDbkYsSUFBSSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLEVBQUUsUUFBUSxDQUFDLEVBQUUsQ0FBQztZQUM5QyxJQUFJLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDO2dCQUN6QyxJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFLEtBQUssQ0FBQyxDQUFDO2dCQUNyRCxJQUFJLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFLElBQUksZUFBZSxDQUFVLEtBQUssQ0FBQyxDQUFDLENBQUM7WUFDdEYsQ0FBQztpQkFBTSxDQUFDO2dCQUNOLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLE9BQU8sRUFBRSxJQUFJLEdBQUcsQ0FBb0IsQ0FBQyxDQUFDLFFBQVEsRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDakYsSUFBSSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsT0FBTyxFQUFFLElBQUksR0FBRyxDQUFxQyxDQUFDLENBQUMsUUFBUSxFQUFFLElBQUksZUFBZSxDQUFVLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDbkksQ0FBQztRQUNILENBQUM7YUFBTSxDQUFDO1lBQ04sSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUMsR0FBRyxDQUFDLFFBQVEsRUFBRSxLQUFLLENBQUMsQ0FBQztZQUNyRCxJQUFJLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzdELENBQUM7SUFDSCxDQUFDO0lBRVMsZ0JBQWdCLENBQUMsT0FBdUIsRUFBRSxRQUFrQjtRQUNwRSxPQUFPLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxPQUFPLENBQUMsSUFBSSxJQUFJLENBQUMscUJBQXFCLENBQUMsT0FBTyxFQUFFLFFBQVEsQ0FBQyxDQUFDO0lBQy9GLENBQUM7SUFFUyxzQkFBc0IsQ0FBQyxPQUF1QjtRQUN0RCxPQUFPLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxJQUFJLElBQUksQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQzdFLENBQUM7SUFFUyxxQkFBcUIsQ0FBQyxPQUF1QixFQUFFLFFBQWtCO1FBQ3pFLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxJQUFJLElBQUksQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUN6RyxDQUFDO0lBRVMsV0FBVyxDQUFDLFFBQW1CO1FBQ3ZDLE9BQU8sUUFBUSxJQUFJLGlCQUFpQixDQUFDO0lBQ3ZDLENBQUM7OEdBMUhVLGdCQUFnQjtrSEFBaEIsZ0JBQWdCOzsyRkFBaEIsZ0JBQWdCO2tCQUQ1QixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlhbG9nIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2RpYWxvZyc7XG5pbXBvcnQgeyBJbmplY3RhYmxlLCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgT2JzZXJ2YWJsZSwgYXN5bmNTY2hlZHVsZXIgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGZpbmFsaXplLCBvYnNlcnZlT24gfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBBWExvYWRpbmdDb21wb25lbnQgfSBmcm9tICcuL2xvYWRpbmcuY29tcG9uZW50JztcblxudHlwZSBMb2FkaW5nQ29udGV4dCA9IG9iamVjdDtcbnR5cGUgTG9hZGVySWQgPSBzdHJpbmcgfCBudW1iZXI7IC8vIGV4cGVjdGVkIGVudW0gdmFsdWVzXG5jb25zdCBERUZBVUxUX0xPQURFUl9JRDogTG9hZGVySWQgPSAnX0RFRkFVTFQnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgQVhMb2FkaW5nU2VydmljZSB7XG4gIC8vIFdlYWtNYXAgd2lsbCByZW1vdmUgY29tcG9uZW50cyBmcm9tIGl0c2VsZiB1cG9uXG4gIC8vIHRoZWlyIGdhcmJhZ2UgY29sbGVjdGlvbiBieSBKUyBydW50aW1lLlxuICBwcm90ZWN0ZWQgbG9hZGluZ1N0YXRlcyA9IG5ldyBXZWFrTWFwPExvYWRpbmdDb250ZXh0LCBNYXA8TG9hZGVySWQsIGJvb2xlYW4+PigpO1xuICAvLyBCb3RoIGxvYWRpbmcgc3RhdGUgbWFwcyBhcmUga2VwdCBpbi1zeW5jIHN1Y2ggdGhhdFxuICAvLyB0aGV5IGNhbiBiZSB1c2VkIGJ5IGJvdGggc3luYyBhbmQgYXN5bmMgbWV0aG9kcy5cbiAgcHJvdGVjdGVkIGxvYWRpbmdTdGF0ZXMkID0gbmV3IFdlYWtNYXA8TG9hZGluZ0NvbnRleHQsIE1hcDxMb2FkZXJJZCwgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+Pj4oKTtcblxuICBwcml2YXRlIGRpYWxvZyA9IGluamVjdChEaWFsb2cpO1xuXG4gIHNob3coY29uZmlnPzogeyBsb2NhdGlvbj86IEVsZW1lbnQ7IHR5cGU/OiBzdHJpbmc7IGNvbnRleHQ/OiB1bmtub3duIH0pOiBudW1iZXIge1xuICAgIGNvbnN0IGNlID0gKGNvbmZpZz8ubG9jYXRpb24gPz8gZG9jdW1lbnQuYm9keSkgYXMgSFRNTERpdkVsZW1lbnQ7XG4gICAgY29uc3QgZGlhbG9nUmVmID0gdGhpcy5kaWFsb2cub3BlbihBWExvYWRpbmdDb21wb25lbnQsIHtcbiAgICAgIGhhc0JhY2tkcm9wOiB0cnVlLFxuICAgICAgZGlzYWJsZUNsb3NlOiB0cnVlLFxuICAgICAgcmVzdG9yZUZvY3VzOiB0cnVlLFxuICAgICAgY2xvc2VPbkRlc3Ryb3k6IHRydWUsXG4gICAgICBjbG9zZU9uTmF2aWdhdGlvbjogdHJ1ZSxcbiAgICAgIGFyaWFNb2RhbDogdHJ1ZSxcbiAgICAgIHJvbGU6ICdhbGVydGRpYWxvZycsXG4gICAgICBwYW5lbENsYXNzOiBbJ2F4LWxvYWRpbmctcGFuZScsICdheC1hbmltYXRlLWZhZGVJbiddLFxuICAgICAgYmFja2Ryb3BDbGFzczogWydheC1sb2FkaW5nLW92ZXJsYXktYmFja2Ryb3AnLCAnYXgtYW5pbWF0ZS1mYWRlSW4nXSxcbiAgICB9KTtcbiAgICBjb25zdCBpZCA9IG5ldyBEYXRlKCkuZ2V0VGltZSgpO1xuICAgIGRpYWxvZ1JlZi5jb21wb25lbnRJbnN0YW5jZS52aXNpYmxlID0gdHJ1ZTtcbiAgICBkaWFsb2dSZWYuY29tcG9uZW50SW5zdGFuY2UuaWQgPSBpZC50b1N0cmluZygpO1xuICAgIGlmIChjZSAhPSBkb2N1bWVudC5ib2R5KSB7XG4gICAgICBjb25zdCBiZyA9IGRpYWxvZ1JlZi5vdmVybGF5UmVmLmJhY2tkcm9wRWxlbWVudDtcbiAgICAgIGNvbnN0IG92ID0gZGlhbG9nUmVmLm92ZXJsYXlSZWYub3ZlcmxheUVsZW1lbnQ7XG4gICAgICBjZS5zdHlsZS5wb3NpdGlvbiA9ICdyZWxhdGl2ZSc7XG4gICAgICBvdi5zdHlsZS5wb3NpdGlvbiA9ICdhYnNvbHV0ZSc7XG4gICAgICBjZS5hcHBlbmRDaGlsZChiZyk7XG4gICAgICBjZS5hcHBlbmRDaGlsZChvdik7XG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgb3Yuc3R5bGUucG9zaXRpb24gPSAnYWJzb2x1dGUnO1xuICAgICAgfSwgMCk7XG4gICAgfVxuICAgIHJldHVybiBpZDtcbiAgICAvLyBUT0RPOiBkaWFibGVkIGZvY3VzIGFuZCBjbGljaywgbWF5YmUgd2UgbmVlZCBhIHNlcnZpY2UgYW5kIGRpcmVjdGl2ZSBmb3IgaXRcbiAgfVxuXG4gIGhpZGUoaWQ6IG51bWJlcik6IHZvaWQge1xuICAgIGNvbnN0IGYgPSB0aGlzLmRpYWxvZy5vcGVuRGlhbG9ncy5maW5kKChjKSA9PiBjLmNvbXBvbmVudEluc3RhbmNlLmlkID09PSBpZC50b1N0cmluZygpKTtcbiAgICBpZiAoZikge1xuICAgICAgZi5jbG9zZSgpO1xuICAgIH1cbiAgfVxuXG4gIGRvTG9hZGluZzxWPihzb3VyY2UkOiBPYnNlcnZhYmxlPFY+LCBjb250ZXh0OiBMb2FkaW5nQ29udGV4dCwgbG9hZGVySWQ/OiBMb2FkZXJJZCk6IE9ic2VydmFibGU8Vj4ge1xuICAgIHRoaXMuc3RhcnRMb2FkaW5nKGNvbnRleHQsIGxvYWRlcklkKTtcbiAgICByZXR1cm4gc291cmNlJC5waXBlKFxuICAgICAgb2JzZXJ2ZU9uKGFzeW5jU2NoZWR1bGVyKSxcbiAgICAgIGZpbmFsaXplKCgpID0+IHRoaXMuZW5kTG9hZGluZyhjb250ZXh0LCBsb2FkZXJJZCkpLFxuICAgICk7XG4gIH1cblxuICBpc0xvYWRpbmcoY29udGV4dDogTG9hZGluZ0NvbnRleHQsIGxvYWRlcklkPzogTG9hZGVySWQpOiBib29sZWFuIHtcbiAgICBjb25zdCBsb2FkZXJTdGF0ZXMgPSB0aGlzLmxvYWRpbmdTdGF0ZXMuZ2V0KGNvbnRleHQpO1xuXG4gICAgaWYgKCFsb2FkZXJTdGF0ZXMpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKGxvYWRlcklkICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgcmV0dXJuIGxvYWRlclN0YXRlcy5nZXQodGhpcy5nZXRMb2FkZXJJZChsb2FkZXJJZCkpID8/IGZhbHNlO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIFsuLi5sb2FkZXJTdGF0ZXMudmFsdWVzKCldLmZpbHRlcigoc3RhdGUpID0+IHN0YXRlKS5sZW5ndGggPiAwO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGlzTG9hZGluZyQoY29udGV4dDogTG9hZGluZ0NvbnRleHQsIGxvYWRlcklkPzogTG9hZGVySWQgfCBhbnkpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcbiAgICBjb25zdCBjb2FsZXNjZWRMb2FkZXJJZCA9IHRoaXMuZ2V0TG9hZGVySWQobG9hZGVySWQpO1xuXG4gICAgaWYgKCF0aGlzLmhhc0xvYWRpbmdTdGF0ZXMoY29udGV4dCwgY29hbGVzY2VkTG9hZGVySWQpKSB7XG4gICAgICB0aGlzLnNldExvYWRpbmdTdGF0ZShjb250ZXh0LCBmYWxzZSwgbG9hZGVySWQpO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLmxvYWRpbmdTdGF0ZXMkLmdldChjb250ZXh0KS5nZXQoY29hbGVzY2VkTG9hZGVySWQpO1xuICB9XG5cbiAgc3RhcnRMb2FkaW5nKGNvbnRleHQ6IExvYWRpbmdDb250ZXh0LCBsb2FkZXJJZD86IExvYWRlcklkKTogdm9pZCB7XG4gICAgdGhpcy5zZXRMb2FkaW5nU3RhdGUoY29udGV4dCwgdHJ1ZSwgdGhpcy5nZXRMb2FkZXJJZChsb2FkZXJJZCkpO1xuICB9XG5cbiAgZW5kTG9hZGluZyhjb250ZXh0OiBMb2FkaW5nQ29udGV4dCwgbG9hZGVySWQ/OiBMb2FkZXJJZCk6IHZvaWQge1xuICAgIHRoaXMuc2V0TG9hZGluZ1N0YXRlKGNvbnRleHQsIGZhbHNlLCB0aGlzLmdldExvYWRlcklkKGxvYWRlcklkKSk7XG4gIH1cblxuICBjbGVhckxvYWRpbmdzKCk6IHZvaWQge1xuICAgIHRoaXMubG9hZGluZ1N0YXRlcyA9IG5ldyBXZWFrTWFwPExvYWRpbmdDb250ZXh0LCBNYXA8TG9hZGVySWQsIGJvb2xlYW4+PigpO1xuICAgIHRoaXMubG9hZGluZ1N0YXRlcyQgPSBuZXcgV2Vha01hcDxMb2FkaW5nQ29udGV4dCwgTWFwPExvYWRlcklkLCBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4+PigpO1xuICB9XG5cbiAgcHJvdGVjdGVkIHNldExvYWRpbmdTdGF0ZShjb250ZXh0OiBMb2FkaW5nQ29udGV4dCwgc3RhdGU6IGJvb2xlYW4sIGxvYWRlcklkOiBMb2FkZXJJZCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5oYXNMb2FkaW5nU3RhdGVzKGNvbnRleHQsIGxvYWRlcklkKSkge1xuICAgICAgaWYgKHRoaXMuaGFzQ29udGV4dExvYWRpbmdTdGF0ZShjb250ZXh0KSkge1xuICAgICAgICB0aGlzLmxvYWRpbmdTdGF0ZXMuZ2V0KGNvbnRleHQpLnNldChsb2FkZXJJZCwgc3RhdGUpO1xuICAgICAgICB0aGlzLmxvYWRpbmdTdGF0ZXMkLmdldChjb250ZXh0KS5zZXQobG9hZGVySWQsIG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oc3RhdGUpKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMubG9hZGluZ1N0YXRlcy5zZXQoY29udGV4dCwgbmV3IE1hcDxMb2FkZXJJZCwgYm9vbGVhbj4oW1tsb2FkZXJJZCwgc3RhdGVdXSkpO1xuICAgICAgICB0aGlzLmxvYWRpbmdTdGF0ZXMkLnNldChjb250ZXh0LCBuZXcgTWFwPExvYWRlcklkLCBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4+KFtbbG9hZGVySWQsIG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oc3RhdGUpXV0pKTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5sb2FkaW5nU3RhdGVzLmdldChjb250ZXh0KS5zZXQobG9hZGVySWQsIHN0YXRlKTtcbiAgICAgIHRoaXMubG9hZGluZ1N0YXRlcyQuZ2V0KGNvbnRleHQpLmdldChsb2FkZXJJZCkubmV4dChzdGF0ZSk7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIGhhc0xvYWRpbmdTdGF0ZXMoY29udGV4dDogTG9hZGluZ0NvbnRleHQsIGxvYWRlcklkOiBMb2FkZXJJZCkge1xuICAgIHJldHVybiB0aGlzLmhhc0NvbnRleHRMb2FkaW5nU3RhdGUoY29udGV4dCkgJiYgdGhpcy5oYXNMb2FkZXJMb2FkaW5nU3RhdGUoY29udGV4dCwgbG9hZGVySWQpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGhhc0NvbnRleHRMb2FkaW5nU3RhdGUoY29udGV4dDogTG9hZGluZ0NvbnRleHQpIHtcbiAgICByZXR1cm4gdGhpcy5sb2FkaW5nU3RhdGVzLmhhcyhjb250ZXh0KSAmJiB0aGlzLmxvYWRpbmdTdGF0ZXMkLmhhcyhjb250ZXh0KTtcbiAgfVxuXG4gIHByb3RlY3RlZCBoYXNMb2FkZXJMb2FkaW5nU3RhdGUoY29udGV4dDogTG9hZGluZ0NvbnRleHQsIGxvYWRlcklkOiBMb2FkZXJJZCkge1xuICAgIHJldHVybiB0aGlzLmxvYWRpbmdTdGF0ZXMuZ2V0KGNvbnRleHQpLmhhcyhsb2FkZXJJZCkgJiYgdGhpcy5sb2FkaW5nU3RhdGVzJC5nZXQoY29udGV4dCkuaGFzKGxvYWRlcklkKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBnZXRMb2FkZXJJZChsb2FkZXJJZD86IExvYWRlcklkKTogTG9hZGVySWQge1xuICAgIHJldHVybiBsb2FkZXJJZCA/PyBERUZBVUxUX0xPQURFUl9JRDtcbiAgfVxufVxuIl19
123
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9hZGluZy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2xvYWRpbmcvc3JjL2xpYi9sb2FkaW5nLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxlQUFlLEVBQWMsY0FBYyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ25FLE9BQU8sRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDckQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0scUJBQXFCLENBQUM7O0FBSXpELE1BQU0saUJBQWlCLEdBQWEsVUFBVSxDQUFDO0FBRy9DLE1BQU0sT0FBTyxnQkFBZ0I7SUFEN0I7UUFFRSxrREFBa0Q7UUFDbEQsMENBQTBDO1FBQ2hDLGtCQUFhLEdBQUcsSUFBSSxPQUFPLEVBQTBDLENBQUM7UUFDaEYscURBQXFEO1FBQ3JELG1EQUFtRDtRQUN6QyxtQkFBYyxHQUFHLElBQUksT0FBTyxFQUEyRCxDQUFDO1FBRTFGLFdBQU0sR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7S0F1SGpDO0lBckhDLElBQUksQ0FBQyxNQUFpRTtRQUNwRSxNQUFNLEVBQUUsR0FBRyxDQUFDLE1BQU0sRUFBRSxRQUFRLElBQUksUUFBUSxDQUFDLElBQUksQ0FBbUIsQ0FBQztRQUNqRSxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsRUFBRTtZQUNyRCxXQUFXLEVBQUUsSUFBSTtZQUNqQixZQUFZLEVBQUUsSUFBSTtZQUNsQixZQUFZLEVBQUUsSUFBSTtZQUNsQixjQUFjLEVBQUUsSUFBSTtZQUNwQixpQkFBaUIsRUFB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QWtCO1FBQ3pFLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxJQUFJLElBQUksQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUN6RyxDQUFDO0lBRVMsV0FBVyxDQUFDLFFBQW1CO1FBQ3ZDLE9BQU8sUUFBUSxJQUFJLGlCQUFpQixDQUFDO0lBQ3ZDLENBQUM7OEdBOUhVLGdCQUFnQjtrSEFBaEIsZ0JBQWdCOzsyRkFBaEIsZ0JBQWdCO2tCQUQ1QixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlhbG9nIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2RpYWxvZyc7XG5pbXBvcnQgeyBJbmplY3RhYmxlLCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgT2JzZXJ2YWJsZSwgYXN5bmNTY2hlZHVsZXIgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGZpbmFsaXplLCBvYnNlcnZlT24gfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBBWExvYWRpbmdDb21wb25lbnQgfSBmcm9tICcuL2xvYWRpbmcuY29tcG9uZW50JztcblxudHlwZSBMb2FkaW5nQ29udGV4dCA9IG9iamVjdDtcbnR5cGUgTG9hZGVySWQgPSBzdHJpbmcgfCBudW1iZXI7IC8vIGV4cGVjdGVkIGVudW0gdmFsdWVzXG5jb25zdCBERUZBVUxUX0xPQURFUl9JRDogTG9hZGVySWQgPSAnX0RFRkFVTFQnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgQVhMb2FkaW5nU2VydmljZSB7XG4gIC8vIFdlYWtNYXAgd2lsbCByZW1vdmUgY29tcG9uZW50cyBmcm9tIGl0c2VsZiB1cG9uXG4gIC8vIHRoZWlyIGdhcmJhZ2UgY29sbGVjdGlvbiBieSBKUyBydW50aW1lLlxuICBwcm90ZWN0ZWQgbG9hZGluZ1N0YXRlcyA9IG5ldyBXZWFrTWFwPExvYWRpbmdDb250ZXh0LCBNYXA8TG9hZGVySWQsIGJvb2xlYW4+PigpO1xuICAvLyBCb3RoIGxvYWRpbmcgc3RhdGUgbWFwcyBhcmUga2VwdCBpbi1zeW5jIHN1Y2ggdGhhdFxuICAvLyB0aGV5IGNhbiBiZSB1c2VkIGJ5IGJvdGggc3luYyBhbmQgYXN5bmMgbWV0aG9kcy5cbiAgcHJvdGVjdGVkIGxvYWRpbmdTdGF0ZXMkID0gbmV3IFdlYWtNYXA8TG9hZGluZ0NvbnRleHQsIE1hcDxMb2FkZXJJZCwgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+Pj4oKTtcblxuICBwcml2YXRlIGRpYWxvZyA9IGluamVjdChEaWFsb2cpO1xuXG4gIHNob3coY29uZmlnPzogeyBsb2NhdGlvbj86IEVsZW1lbnQ7IHR5cGU/OiBzdHJpbmc7IGNvbnRleHQ/OiB1bmtub3duIH0pOiBudW1iZXIge1xuICAgIGNvbnN0IGNlID0gKGNvbmZpZz8ubG9jYXRpb24gPz8gZG9jdW1lbnQuYm9keSkgYXMgSFRNTERpdkVsZW1lbnQ7XG4gICAgY29uc3QgZGlhbG9nUmVmID0gdGhpcy5kaWFsb2cub3BlbihBWExvYWRpbmdDb21wb25lbnQsIHtcbiAgICAgIGhhc0JhY2tkcm9wOiB0cnVlLFxuICAgICAgZGlzYWJsZUNsb3NlOiB0cnVlLFxuICAgICAgcmVzdG9yZUZvY3VzOiB0cnVlLFxuICAgICAgY2xvc2VPbkRlc3Ryb3k6IHRydWUsXG4gICAgICBjbG9zZU9uTmF2aWdhdGlvbjogdHJ1ZSxcbiAgICAgIGFyaWFNb2RhbDogdHJ1ZSxcbiAgICAgIHJvbGU6ICdhbGVydGRpYWxvZycsXG4gICAgICBwYW5lbENsYXNzOiBbJ2F4LWxvYWRpbmctcGFuZScsICdheC1hbmltYXRlLWZhZGVJbiddLFxuICAgICAgYmFja2Ryb3BDbGFzczogWydheC1sb2FkaW5nLW92ZXJsYXktYmFja2Ryb3AnLCAnYXgtYW5pbWF0ZS1mYWRlSW4nXSxcbiAgICB9KTtcbiAgICBjb25zdCBpZCA9IG5ldyBEYXRlKCkuZ2V0VGltZSgpO1xuICAgIGRpYWxvZ1JlZi5jb21wb25lbnRJbnN0YW5jZS52aXNpYmxlID0gdHJ1ZTtcbiAgICBkaWFsb2dSZWYuY29tcG9uZW50SW5zdGFuY2UuaWQgPSBpZC50b1N0cmluZygpO1xuICAgIGlmIChjZSAhPSBkb2N1bWVudC5ib2R5KSB7XG4gICAgICBjb25zdCBiZyA9IGRpYWxvZ1JlZi5vdmVybGF5UmVmLmJhY2tkcm9wRWxlbWVudDtcbiAgICAgIGNvbnN0IG92ID0gZGlhbG9nUmVmLm92ZXJsYXlSZWYub3ZlcmxheUVsZW1lbnQ7XG4gICAgICBjZS5zdHlsZS5wb3NpdGlvbiA9ICdyZWxhdGl2ZSc7XG4gICAgICBvdi5zdHlsZS5wb3NpdGlvbiA9ICdhYnNvbHV0ZSc7XG5cbiAgICAgIGNlLmFwcGVuZENoaWxkKGJnKTtcbiAgICAgIGNlLmFwcGVuZENoaWxkKG92KTtcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICBvdi5zdHlsZS5wb3NpdGlvbiA9ICdhYnNvbHV0ZSc7XG4gICAgICB9KTtcbiAgICB9XG4gICAgcmV0dXJuIGlkO1xuICAgIC8vIFRPRE86IGRpYWJsZWQgZm9jdXMgYW5kIGNsaWNrLCBtYXliZSB3ZSBuZWVkIGEgc2VydmljZSBhbmQgZGlyZWN0aXZlIGZvciBpdFxuICB9XG5cbiAgaGlkZShpZDogbnVtYmVyKTogdm9pZCB7XG4gICAgY29uc3QgZiA9IHRoaXMuZGlhbG9nLm9wZW5EaWFsb2dzLmZpbmQoKGMpID0+IGMuY29tcG9uZW50SW5zdGFuY2UuaWQgPT09IGlkLnRvU3RyaW5nKCkpO1xuICAgIGlmIChmKSB7XG4gICAgICBmLmNsb3NlKCk7XG4gICAgfVxuICB9XG5cbiAgZG9Mb2FkaW5nPFY+KHNvdXJjZSQ6IE9ic2VydmFibGU8Vj4sIGNvbnRleHQ6IExvYWRpbmdDb250ZXh0LCBsb2FkZXJJZD86IExvYWRlcklkKTogT2JzZXJ2YWJsZTxWPiB7XG4gICAgdGhpcy5zdGFydExvYWRpbmcoY29udGV4dCwgbG9hZGVySWQpO1xuICAgIHJldHVybiBzb3VyY2UkLnBpcGUoXG4gICAgICBvYnNlcnZlT24oYXN5bmNTY2hlZHVsZXIpLFxuICAgICAgZmluYWxpemUoKCkgPT4gdGhpcy5lbmRMb2FkaW5nKGNvbnRleHQsIGxvYWRlcklkKSksXG4gICAgKTtcbiAgfVxuXG4gIGlzTG9hZGluZyhjb250ZXh0OiBMb2FkaW5nQ29udGV4dCwgbG9hZGVySWQ/OiBMb2FkZXJJZCk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IGxvYWRlclN0YXRlcyA9IHRoaXMubG9hZGluZ1N0YXRlcy5nZXQoY29udGV4dCk7XG5cbiAgICBpZiAoIWxvYWRlclN0YXRlcykge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH0gZWxzZSB7XG4gICAgICBpZiAobG9hZGVySWQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICByZXR1cm4gbG9hZGVyU3RhdGVzLmdldCh0aGlzLmdldExvYWRlcklkKGxvYWRlcklkKSkgPz8gZmFsc2U7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gWy4uLmxvYWRlclN0YXRlcy52YWx1ZXMoKV0uZmlsdGVyKChzdGF0ZSkgPT4gc3RhdGUpLmxlbmd0aCA+IDA7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgaXNMb2FkaW5nJChjb250ZXh0OiBMb2FkaW5nQ29udGV4dCwgbG9hZGVySWQ/OiBMb2FkZXJJZCB8IGFueSk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xuICAgIGNvbnN0IGNvYWxlc2NlZExvYWRlcklkID0gdGhpcy5nZXRMb2FkZXJJZChsb2FkZXJJZCk7XG5cbiAgICBpZiAoIXRoaXMuaGFzTG9hZGluZ1N0YXRlcyhjb250ZXh0LCBjb2FsZXNjZWRMb2FkZXJJZCkpIHtcbiAgICAgIHRoaXMuc2V0TG9hZGluZ1N0YXRlKGNvbnRleHQsIGZhbHNlLCBsb2FkZXJJZCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMubG9hZGluZ1N0YXRlcyQuZ2V0KGNvbnRleHQpLmdldChjb2FsZXNjZWRMb2FkZXJJZCk7XG4gIH1cblxuICBzdGFydExvYWRpbmcoY29udGV4dDogTG9hZGluZ0NvbnRleHQsIGxvYWRlcklkPzogTG9hZGVySWQpOiB2b2lkIHtcbiAgICB0aGlzLnNldExvYWRpbmdTdGF0ZShjb250ZXh0LCB0cnVlLCB0aGlzLmdldExvYWRlcklkKGxvYWRlcklkKSk7XG4gIH1cblxuICBlbmRMb2FkaW5nKGNvbnRleHQ6IExvYWRpbmdDb250ZXh0LCBsb2FkZXJJZD86IExvYWRlcklkKTogdm9pZCB7XG4gICAgdGhpcy5zZXRMb2FkaW5nU3RhdGUoY29udGV4dCwgZmFsc2UsIHRoaXMuZ2V0TG9hZGVySWQobG9hZGVySWQpKTtcbiAgfVxuXG4gIGNsZWFyTG9hZGluZ3MoKTogdm9pZCB7XG4gICAgdGhpcy5sb2FkaW5nU3RhdGVzID0gbmV3IFdlYWtNYXA8TG9hZGluZ0NvbnRleHQsIE1hcDxMb2FkZXJJZCwgYm9vbGVhbj4+KCk7XG4gICAgdGhpcy5sb2FkaW5nU3RhdGVzJCA9IG5ldyBXZWFrTWFwPExvYWRpbmdDb250ZXh0LCBNYXA8TG9hZGVySWQsIEJlaGF2aW9yU3ViamVjdDxib29sZWFuPj4+KCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgc2V0TG9hZGluZ1N0YXRlKGNvbnRleHQ6IExvYWRpbmdDb250ZXh0LCBzdGF0ZTogYm9vbGVhbiwgbG9hZGVySWQ6IExvYWRlcklkKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLmhhc0xvYWRpbmdTdGF0ZXMoY29udGV4dCwgbG9hZGVySWQpKSB7XG4gICAgICBpZiAodGhpcy5oYXNDb250ZXh0TG9hZGluZ1N0YXRlKGNvbnRleHQpKSB7XG4gICAgICAgIHRoaXMubG9hZGluZ1N0YXRlcy5nZXQoY29udGV4dCkuc2V0KGxvYWRlcklkLCBzdGF0ZSk7XG4gICAgICAgIHRoaXMubG9hZGluZ1N0YXRlcyQuZ2V0KGNvbnRleHQpLnNldChsb2FkZXJJZCwgbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPihzdGF0ZSkpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5sb2FkaW5nU3RhdGVzLnNldChjb250ZXh0LCBuZXcgTWFwPExvYWRlcklkLCBib29sZWFuPihbW2xvYWRlcklkLCBzdGF0ZV1dKSk7XG4gICAgICAgIHRoaXMubG9hZGluZ1N0YXRlcyQuc2V0KFxuICAgICAgICAgIGNvbnRleHQsXG4gICAgICAgICAgbmV3IE1hcDxMb2FkZXJJZCwgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+PihbW2xvYWRlcklkLCBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KHN0YXRlKV1dKSxcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5sb2FkaW5nU3RhdGVzLmdldChjb250ZXh0KS5zZXQobG9hZGVySWQsIHN0YXRlKTtcbiAgICAgIHRoaXMubG9hZGluZ1N0YXRlcyQuZ2V0KGNvbnRleHQpLmdldChsb2FkZXJJZCkubmV4dChzdGF0ZSk7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIGhhc0xvYWRpbmdTdGF0ZXMoY29udGV4dDogTG9hZGluZ0NvbnRleHQsIGxvYWRlcklkOiBMb2FkZXJJZCkge1xuICAgIHJldHVybiB0aGlzLmhhc0NvbnRleHRMb2FkaW5nU3RhdGUoY29udGV4dCkgJiYgdGhpcy5oYXNMb2FkZXJMb2FkaW5nU3RhdGUoY29udGV4dCwgbG9hZGVySWQpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGhhc0NvbnRleHRMb2FkaW5nU3RhdGUoY29udGV4dDogTG9hZGluZ0NvbnRleHQpIHtcbiAgICByZXR1cm4gdGhpcy5sb2FkaW5nU3RhdGVzLmhhcyhjb250ZXh0KSAmJiB0aGlzLmxvYWRpbmdTdGF0ZXMkLmhhcyhjb250ZXh0KTtcbiAgfVxuXG4gIHByb3RlY3RlZCBoYXNMb2FkZXJMb2FkaW5nU3RhdGUoY29udGV4dDogTG9hZGluZ0NvbnRleHQsIGxvYWRlcklkOiBMb2FkZXJJZCkge1xuICAgIHJldHVybiB0aGlzLmxvYWRpbmdTdGF0ZXMuZ2V0KGNvbnRleHQpLmhhcyhsb2FkZXJJZCkgJiYgdGhpcy5sb2FkaW5nU3RhdGVzJC5nZXQoY29udGV4dCkuaGFzKGxvYWRlcklkKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBnZXRMb2FkZXJJZChsb2FkZXJJZD86IExvYWRlcklkKTogTG9hZGVySWQge1xuICAgIHJldHVybiBsb2FkZXJJZCA/PyBERUZBVUxUX0xPQURFUl9JRDtcbiAgfVxufVxuIl19