@rangertechnologies/ngnxt 2.1.106 → 2.1.108

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (143) hide show
  1. package/esm2022/lib/ar.i18n.mjs +29 -0
  2. package/esm2022/lib/components/button/nxt-button.component.mjs +130 -0
  3. package/esm2022/lib/components/custom-button/custom-button.component.mjs +39 -0
  4. package/esm2022/lib/components/custom-calendar/custom-calendar.component.mjs +366 -0
  5. package/esm2022/lib/components/custom-date/custom-date.component.mjs +47 -0
  6. package/esm2022/lib/components/custom-date-picker/custom-date-picker.component.mjs +48 -0
  7. package/esm2022/lib/components/custom-dropdown/custom-dropdown.component.mjs +219 -0
  8. package/esm2022/lib/components/custom-image/custom-image.component.mjs +34 -0
  9. package/esm2022/lib/components/custom-input/custom-input.component.mjs +93 -0
  10. package/esm2022/lib/components/custom-label/custom-label.component.mjs +21 -0
  11. package/esm2022/lib/components/custom-model/custom-model.component.mjs +48 -0
  12. package/esm2022/lib/components/custom-radio/custom-radio.component.mjs +115 -0
  13. package/esm2022/lib/components/custom-rich-text/custom-rich-text.component.mjs +186 -0
  14. package/esm2022/lib/components/custom-table/custom-table.component.mjs +347 -0
  15. package/esm2022/lib/components/custom-text-area/custom-text-area.component.mjs +65 -0
  16. package/esm2022/lib/components/custom-time/custom-time.component.mjs +61 -0
  17. package/esm2022/lib/components/datatable/datatable.component.mjs +801 -0
  18. package/esm2022/lib/components/dependent-table/dependent-table.component.mjs +42 -0
  19. package/esm2022/lib/components/dropdown-with-flag/dropdown-with-flag.component.mjs +39 -0
  20. package/esm2022/lib/components/file-upload/file-upload.component.mjs +279 -0
  21. package/esm2022/lib/components/file-view/file-view.component.mjs +46 -0
  22. package/esm2022/lib/components/loader/loader.component.mjs +23 -0
  23. package/esm2022/lib/components/pagination/pagination.component.mjs +100 -0
  24. package/esm2022/lib/components/pick-location/pick-location.component.mjs +216 -0
  25. package/esm2022/lib/components/search-box/search-box.component.mjs +202 -0
  26. package/esm2022/lib/components/table-appendix/table-appendix.component.mjs +123 -0
  27. package/esm2022/lib/directives/componenthost/componenthost.directive.mjs +19 -0
  28. package/esm2022/lib/en.i18n.mjs +29 -0
  29. package/esm2022/lib/i18n-config.service.mjs +4 -0
  30. package/esm2022/lib/i18n.component.mjs +47 -0
  31. package/esm2022/lib/i18n.module.mjs +38 -0
  32. package/esm2022/lib/i18n.pipe.mjs +25 -0
  33. package/esm2022/lib/i18n.service.mjs +56 -0
  34. package/esm2022/lib/interfaces/actionMeta.mjs +2 -0
  35. package/esm2022/lib/interfaces/apimeta.mjs +2 -0
  36. package/esm2022/lib/interfaces/dependencyMeta.mjs +2 -0
  37. package/esm2022/lib/model/bookletWrapper.mjs +9 -0
  38. package/esm2022/lib/model/changeWrapper.mjs +11 -0
  39. package/esm2022/lib/model/errorWrapper.mjs +6 -0
  40. package/esm2022/lib/model/tableWrapper.mjs +20 -0
  41. package/esm2022/lib/nxt-app.component.mjs +22 -0
  42. package/esm2022/lib/nxt-app.module.mjs +399 -0
  43. package/esm2022/lib/nxt-app.service.mjs +14 -0
  44. package/esm2022/lib/pages/booklet/booklet.component.mjs +541 -0
  45. package/esm2022/lib/pages/builder/element/element.component.mjs +196 -0
  46. package/esm2022/lib/pages/builder/form/form.component.mjs +34 -0
  47. package/esm2022/lib/pages/builder/menu/menu.component.mjs +28 -0
  48. package/esm2022/lib/pages/builder/properties/properties.component.mjs +494 -0
  49. package/esm2022/lib/pages/questionbook/questionbook.component.mjs +458 -0
  50. package/esm2022/lib/pages/questionnaire/questionnaire.component.mjs +2387 -0
  51. package/esm2022/lib/pages/summary-page/summary-page.component.mjs +76 -0
  52. package/esm2022/lib/pipe/date/date.pipe.mjs +28 -0
  53. package/esm2022/lib/pipe/editColumnCheck/edit-column-check.pipe.mjs +28 -0
  54. package/esm2022/lib/pipe/editColumnDropdown/edit-column-dropdown.pipe.mjs +20 -0
  55. package/esm2022/lib/pipe/editColumnType/edit-column-type.pipe.mjs +20 -0
  56. package/esm2022/lib/pipe/get-value.pipe.mjs +50 -0
  57. package/esm2022/lib/pipe/search-filter/search-filter.pipe.mjs +39 -0
  58. package/esm2022/lib/pipe/time/time.pipe.mjs +26 -0
  59. package/esm2022/lib/sample.mjs +3715 -0
  60. package/esm2022/lib/services/change.service.mjs +53 -0
  61. package/esm2022/lib/services/data.service.mjs +80 -0
  62. package/esm2022/lib/services/form-builder.service.mjs +173 -0
  63. package/esm2022/lib/services/salesforce.service.mjs +46 -0
  64. package/esm2022/lib/services/shared.service.mjs +100 -0
  65. package/esm2022/lib/services/storage.service.mjs +44 -0
  66. package/esm2022/lib/tam.i18n.mjs +29 -0
  67. package/esm2022/lib/wrapper.mjs +175 -0
  68. package/esm2022/public-api.mjs +22 -0
  69. package/esm2022/rangertechnologies-ngnxt.mjs +5 -0
  70. package/fesm2022/rangertechnologies-ngnxt.mjs +12900 -0
  71. package/fesm2022/rangertechnologies-ngnxt.mjs.map +1 -0
  72. package/index.d.ts +5 -0
  73. package/lib/ar.i18n.d.ts +24 -0
  74. package/lib/components/button/nxt-button.component.d.ts +38 -0
  75. package/lib/components/custom-button/custom-button.component.d.ts +16 -0
  76. package/lib/components/custom-calendar/custom-calendar.component.d.ts +65 -0
  77. package/lib/components/custom-date/custom-date.component.d.ts +18 -0
  78. package/lib/components/custom-date-picker/custom-date-picker.component.d.ts +19 -0
  79. package/lib/components/custom-dropdown/custom-dropdown.component.d.ts +39 -0
  80. package/lib/components/custom-image/custom-image.component.d.ts +13 -0
  81. package/lib/components/custom-input/custom-input.component.d.ts +31 -0
  82. package/lib/components/custom-label/custom-label.component.d.ts +10 -0
  83. package/lib/components/custom-model/custom-model.component.d.ts +19 -0
  84. package/lib/components/custom-radio/custom-radio.component.d.ts +33 -0
  85. package/lib/components/custom-rich-text/custom-rich-text.component.d.ts +29 -0
  86. package/lib/components/custom-table/custom-table.component.d.ts +65 -0
  87. package/lib/components/custom-text-area/custom-text-area.component.d.ts +22 -0
  88. package/lib/components/custom-time/custom-time.component.d.ts +18 -0
  89. package/lib/components/datatable/datatable.component.d.ts +126 -0
  90. package/lib/components/dependent-table/dependent-table.component.d.ts +15 -0
  91. package/lib/components/dropdown-with-flag/dropdown-with-flag.component.d.ts +16 -0
  92. package/lib/components/file-upload/file-upload.component.d.ts +47 -0
  93. package/lib/components/file-view/file-view.component.d.ts +16 -0
  94. package/lib/components/loader/loader.component.d.ts +11 -0
  95. package/lib/components/pagination/pagination.component.d.ts +36 -0
  96. package/lib/components/pick-location/pick-location.component.d.ts +44 -0
  97. package/lib/components/search-box/search-box.component.d.ts +43 -0
  98. package/lib/components/table-appendix/table-appendix.component.d.ts +30 -0
  99. package/lib/directives/componenthost/componenthost.directive.d.ts +8 -0
  100. package/lib/en.i18n.d.ts +24 -0
  101. package/lib/i18n-config.service.d.ts +2 -0
  102. package/lib/i18n.component.d.ts +11 -0
  103. package/lib/i18n.module.d.ts +9 -0
  104. package/lib/i18n.pipe.d.ts +10 -0
  105. package/lib/i18n.service.d.ts +14 -0
  106. package/lib/interfaces/actionMeta.d.ts +5 -0
  107. package/lib/interfaces/apimeta.d.ts +15 -0
  108. package/lib/interfaces/dependencyMeta.d.ts +8 -0
  109. package/lib/model/bookletWrapper.d.ts +5 -0
  110. package/lib/model/changeWrapper.d.ts +10 -0
  111. package/lib/model/errorWrapper.d.ts +5 -0
  112. package/lib/model/tableWrapper.d.ts +18 -0
  113. package/lib/nxt-app.component.d.ts +8 -0
  114. package/lib/nxt-app.module.d.ts +52 -0
  115. package/lib/nxt-app.service.d.ts +6 -0
  116. package/lib/pages/booklet/booklet.component.d.ts +68 -0
  117. package/lib/pages/builder/element/element.component.d.ts +33 -0
  118. package/lib/pages/builder/form/form.component.d.ts +11 -0
  119. package/lib/pages/builder/menu/menu.component.d.ts +10 -0
  120. package/lib/pages/builder/properties/properties.component.d.ts +575 -0
  121. package/lib/pages/questionbook/questionbook.component.d.ts +68 -0
  122. package/lib/pages/questionnaire/questionnaire.component.d.ts +220 -0
  123. package/lib/pages/summary-page/summary-page.component.d.ts +20 -0
  124. package/lib/pipe/date/date.pipe.d.ts +7 -0
  125. package/lib/pipe/editColumnCheck/edit-column-check.pipe.d.ts +7 -0
  126. package/lib/pipe/editColumnDropdown/edit-column-dropdown.pipe.d.ts +7 -0
  127. package/lib/pipe/editColumnType/edit-column-type.pipe.d.ts +7 -0
  128. package/lib/pipe/get-value.pipe.d.ts +7 -0
  129. package/lib/pipe/search-filter/search-filter.pipe.d.ts +8 -0
  130. package/lib/pipe/time/time.pipe.d.ts +7 -0
  131. package/lib/sample.d.ts +11 -0
  132. package/lib/services/change.service.d.ts +22 -0
  133. package/lib/services/data.service.d.ts +13 -0
  134. package/lib/services/form-builder.service.d.ts +76 -0
  135. package/lib/services/salesforce.service.d.ts +11 -0
  136. package/lib/services/shared.service.d.ts +15 -0
  137. package/lib/services/storage.service.d.ts +13 -0
  138. package/lib/tam.i18n.d.ts +24 -0
  139. package/lib/wrapper.d.ts +203 -0
  140. package/package.json +1 -5
  141. package/public-api.d.ts +15 -0
  142. package/rangertechnologies-ngnxt-2.1.108.tgz +0 -0
  143. package/src/lib/style.css +1817 -0
@@ -0,0 +1,61 @@
1
+ import { Component, EventEmitter, Input, Output } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "../../i18n.service";
4
+ import * as i2 from "@angular/common";
5
+ import * as i3 from "@angular/forms";
6
+ import * as i4 from "@danielmoncada/angular-datetime-picker";
7
+ export class CustomTimeComponent {
8
+ i18nService;
9
+ time;
10
+ readOnly = false; // VD 12Jun24 - readonly change
11
+ error;
12
+ errorMessage;
13
+ timeChange = new EventEmitter();
14
+ timeSelected;
15
+ constructor(i18nService) {
16
+ this.i18nService = i18nService;
17
+ }
18
+ ngOnInit() {
19
+ if (this.time) {
20
+ this.time = this.time['value'] ? this.time['value'] : this.time;
21
+ this.timeSelected = new Date(this.time);
22
+ }
23
+ else {
24
+ // if no time set null value
25
+ this.timeSelected = null;
26
+ }
27
+ }
28
+ ngOnChanges(changes) {
29
+ // update on changes
30
+ if (changes['time']) {
31
+ if (this.time) {
32
+ this.time = this.time['value'] ? this.time['value'] : this.time;
33
+ this.timeSelected = new Date(this.time);
34
+ }
35
+ else {
36
+ this.timeSelected = null;
37
+ }
38
+ }
39
+ }
40
+ // VD 06Sep24 emit exact time object
41
+ onTimeChange(event) {
42
+ this.timeChange.emit(event?.value);
43
+ }
44
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CustomTimeComponent, deps: [{ token: i1.I18nService }], target: i0.ɵɵFactoryTarget.Component });
45
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: CustomTimeComponent, selector: "app-custom-time", inputs: { time: "time", readOnly: "readOnly", error: "error", errorMessage: "errorMessage" }, outputs: { timeChange: "timeChange" }, usesOnChanges: true, ngImport: i0, template: "<!-- time component -->\n<!-- // VD 12Jun24 - readonly change-->\n<!-- VD 01Aug24 - validation change-->\n <p>\n <input\n [class]=\"error ? 'invalid' : ''\"\n [(ngModel)]=\"timeSelected\"\n [owlDateTimeTrigger]=\"dt2\"\n [owlDateTime]=\"dt2\"\n placeholder=\"HH:MM\"\n [readOnly]=\"readOnly\" \n style=\"width: 100%; height: 35px; border: none; box-shadow: none; border-bottom: 1px solid #ccc;\"\n (dateTimeChange)=\"onTimeChange($event)\"\n >\n <owl-date-time [pickerType]=\"'timer'\" #dt2></owl-date-time>\n </p>\n <span *ngIf=\"error\" class=\"error-msg\">{{errorMessage}}</span>", styles: [".invalid{border-color:red!important}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i4.OwlDateTimeTriggerDirective, selector: "[owlDateTimeTrigger]", inputs: ["owlDateTimeTrigger", "disabled"] }, { kind: "directive", type: i4.OwlDateTimeInputDirective, selector: "input[owlDateTime]", inputs: ["required", "owlDateTime", "owlDateTimeFilter", "_disabled", "min", "max", "selectMode", "rangeSeparator", "value", "values"], outputs: ["dateTimeChange", "dateTimeInput"], exportAs: ["owlDateTimeInput"] }, { kind: "component", type: i4.OwlDateTimeComponent, selector: "owl-date-time", inputs: ["backdropClass", "panelClass", "startAt", "endAt", "pickerType", "pickerMode", "disabled", "opened", "scrollStrategy"], outputs: ["afterPickerClosed", "beforePickerOpen", "afterPickerOpen", "yearSelected", "monthSelected", "dateSelected"], exportAs: ["owlDateTime"] }] });
46
+ }
47
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CustomTimeComponent, decorators: [{
48
+ type: Component,
49
+ args: [{ selector: 'app-custom-time', template: "<!-- time component -->\n<!-- // VD 12Jun24 - readonly change-->\n<!-- VD 01Aug24 - validation change-->\n <p>\n <input\n [class]=\"error ? 'invalid' : ''\"\n [(ngModel)]=\"timeSelected\"\n [owlDateTimeTrigger]=\"dt2\"\n [owlDateTime]=\"dt2\"\n placeholder=\"HH:MM\"\n [readOnly]=\"readOnly\" \n style=\"width: 100%; height: 35px; border: none; box-shadow: none; border-bottom: 1px solid #ccc;\"\n (dateTimeChange)=\"onTimeChange($event)\"\n >\n <owl-date-time [pickerType]=\"'timer'\" #dt2></owl-date-time>\n </p>\n <span *ngIf=\"error\" class=\"error-msg\">{{errorMessage}}</span>", styles: [".invalid{border-color:red!important}\n"] }]
50
+ }], ctorParameters: () => [{ type: i1.I18nService }], propDecorators: { time: [{
51
+ type: Input
52
+ }], readOnly: [{
53
+ type: Input
54
+ }], error: [{
55
+ type: Input
56
+ }], errorMessage: [{
57
+ type: Input
58
+ }], timeChange: [{
59
+ type: Output
60
+ }] } });
61
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tLXRpbWUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbnh0LWFwcC9zcmMvbGliL2NvbXBvbmVudHMvY3VzdG9tLXRpbWUvY3VzdG9tLXRpbWUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbnh0LWFwcC9zcmMvbGliL2NvbXBvbmVudHMvY3VzdG9tLXRpbWUvY3VzdG9tLXRpbWUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBaUIsTUFBTSxlQUFlLENBQUM7Ozs7OztBQVE5RixNQUFNLE9BQU8sbUJBQW1CO0lBUVg7SUFQVixJQUFJLENBQVM7SUFDYixRQUFRLEdBQUcsS0FBSyxDQUFDLENBQUMsK0JBQStCO0lBQ2pELEtBQUssQ0FBSztJQUNWLFlBQVksQ0FBUztJQUNwQixVQUFVLEdBQXNCLElBQUksWUFBWSxFQUFPLENBQUM7SUFDbEUsWUFBWSxDQUFNO0lBRWxCLFlBQW1CLFdBQXdCO1FBQXhCLGdCQUFXLEdBQVgsV0FBVyxDQUFhO0lBQUksQ0FBQztJQUVoRCxRQUFRO1FBQ04sSUFBRyxJQUFJLENBQUMsSUFBSSxFQUFDLENBQUM7WUFDWixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUM7WUFDaEUsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDMUMsQ0FBQzthQUFLLENBQUM7WUFDTCw0QkFBNEI7WUFDNUIsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUM7UUFDM0IsQ0FBQztJQUNILENBQUM7SUFFRCxXQUFXLENBQUMsT0FBcUI7UUFDL0Isb0JBQW9CO1FBQ3BCLElBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQyxFQUFDLENBQUM7WUFDbEIsSUFBRyxJQUFJLENBQUMsSUFBSSxFQUFDLENBQUM7Z0JBQ1osSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDO2dCQUNoRSxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUMxQyxDQUFDO2lCQUFLLENBQUM7Z0JBQ0wsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUM7WUFDM0IsQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDO0lBQ0Qsb0NBQW9DO0lBQ3BDLFlBQVksQ0FBQyxLQUFVO1FBQ3JCLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQztJQUNyQyxDQUFDO3dHQWxDVSxtQkFBbUI7NEZBQW5CLG1CQUFtQixpTkNSaEMsNG5CQWdCK0Q7OzRGRFJsRCxtQkFBbUI7a0JBTC9CLFNBQVM7K0JBQ0UsaUJBQWlCO2dGQUtsQixJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFDSSxVQUFVO3NCQUFuQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCwgU2ltcGxlQ2hhbmdlcyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSTE4blNlcnZpY2UgfSBmcm9tICcuLi8uLi9pMThuLnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhcHAtY3VzdG9tLXRpbWUnLFxuICB0ZW1wbGF0ZVVybDogJy4vY3VzdG9tLXRpbWUuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9jdXN0b20tdGltZS5jb21wb25lbnQuY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgQ3VzdG9tVGltZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIEBJbnB1dCgpIHRpbWU6IHN0cmluZztcbiAgQElucHV0KCkgcmVhZE9ubHkgPSBmYWxzZTsgLy8gVkQgMTJKdW4yNCAtIHJlYWRvbmx5IGNoYW5nZVxuICBASW5wdXQoKSBlcnJvcjphbnk7XG4gIEBJbnB1dCgpIGVycm9yTWVzc2FnZTogc3RyaW5nO1xuICBAT3V0cHV0KCkgdGltZUNoYW5nZTogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgdGltZVNlbGVjdGVkOiBhbnk7XG5cbiAgY29uc3RydWN0b3IocHVibGljIGkxOG5TZXJ2aWNlOiBJMThuU2VydmljZSkgeyB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgaWYodGhpcy50aW1lKXtcbiAgICAgIHRoaXMudGltZSA9IHRoaXMudGltZVsndmFsdWUnXSA/IHRoaXMudGltZVsndmFsdWUnXSA6IHRoaXMudGltZTtcbiAgICAgIHRoaXMudGltZVNlbGVjdGVkID0gbmV3IERhdGUodGhpcy50aW1lKTtcbiAgICB9ZWxzZSB7XG4gICAgICAvLyBpZiBubyB0aW1lIHNldCBudWxsIHZhbHVlXG4gICAgICB0aGlzLnRpbWVTZWxlY3RlZCA9IG51bGw7XG4gICAgfVxuICB9XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczpTaW1wbGVDaGFuZ2VzKXtcbiAgICAvLyB1cGRhdGUgb24gY2hhbmdlc1xuICAgIGlmKGNoYW5nZXNbJ3RpbWUnXSl7XG4gICAgICBpZih0aGlzLnRpbWUpe1xuICAgICAgICB0aGlzLnRpbWUgPSB0aGlzLnRpbWVbJ3ZhbHVlJ10gPyB0aGlzLnRpbWVbJ3ZhbHVlJ10gOiB0aGlzLnRpbWU7XG4gICAgICAgIHRoaXMudGltZVNlbGVjdGVkID0gbmV3IERhdGUodGhpcy50aW1lKTtcbiAgICAgIH1lbHNlIHtcbiAgICAgICAgdGhpcy50aW1lU2VsZWN0ZWQgPSBudWxsO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICAvLyBWRCAwNlNlcDI0IGVtaXQgZXhhY3QgdGltZSBvYmplY3RcbiAgb25UaW1lQ2hhbmdlKGV2ZW50OiBhbnkpIHtcbiAgICB0aGlzLnRpbWVDaGFuZ2UuZW1pdChldmVudD8udmFsdWUpO1xuICB9XG59XG4iLCI8IS0tIHRpbWUgY29tcG9uZW50IC0tPlxuPCEtLSAvLyBWRCAxMkp1bjI0IC0gcmVhZG9ubHkgY2hhbmdlLS0+XG48IS0tIFZEIDAxQXVnMjQgLSB2YWxpZGF0aW9uIGNoYW5nZS0tPlxuICA8cD5cbiAgICA8aW5wdXRcbiAgICAgIFtjbGFzc109XCJlcnJvciA/ICdpbnZhbGlkJyA6ICcnXCJcbiAgICAgIFsobmdNb2RlbCldPVwidGltZVNlbGVjdGVkXCJcbiAgICAgIFtvd2xEYXRlVGltZVRyaWdnZXJdPVwiZHQyXCJcbiAgICAgIFtvd2xEYXRlVGltZV09XCJkdDJcIlxuICAgICAgcGxhY2Vob2xkZXI9XCJISDpNTVwiXG4gICAgICBbcmVhZE9ubHldPVwicmVhZE9ubHlcIiBcbiAgICAgIHN0eWxlPVwid2lkdGg6IDEwMCU7IGhlaWdodDogMzVweDsgYm9yZGVyOiBub25lOyBib3gtc2hhZG93OiBub25lOyBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2NjYztcIlxuICAgICAgKGRhdGVUaW1lQ2hhbmdlKT1cIm9uVGltZUNoYW5nZSgkZXZlbnQpXCJcbiAgICA+XG4gICAgPG93bC1kYXRlLXRpbWUgW3BpY2tlclR5cGVdPVwiJ3RpbWVyJ1wiICNkdDI+PC9vd2wtZGF0ZS10aW1lPlxuICA8L3A+XG4gIDxzcGFuICpuZ0lmPVwiZXJyb3JcIiBjbGFzcz1cImVycm9yLW1zZ1wiPnt7ZXJyb3JNZXNzYWdlfX08L3NwYW4+Il19