@coreui/angular-pro 4.2.0-next.0 → 4.2.0-next.3
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.
- package/esm2020/lib/accordion/accordion/accordion.component.mjs +3 -3
- package/esm2020/lib/accordion/accordion-button/accordion-button.directive.mjs +3 -3
- package/esm2020/lib/accordion/accordion-item/accordion-item.component.mjs +3 -3
- package/esm2020/lib/accordion/accordion.module.mjs +4 -4
- package/esm2020/lib/accordion/accordion.service.mjs +3 -3
- package/esm2020/lib/alert/alert-heading.directive.mjs +3 -3
- package/esm2020/lib/alert/alert-link.directive.mjs +3 -3
- package/esm2020/lib/alert/alert.component.mjs +3 -3
- package/esm2020/lib/alert/alert.module.mjs +4 -4
- package/esm2020/lib/avatar/avatar.component.mjs +3 -3
- package/esm2020/lib/avatar/avatar.module.mjs +4 -4
- package/esm2020/lib/backdrop/backdrop.service.mjs +3 -3
- package/esm2020/lib/badge/badge.component.mjs +3 -3
- package/esm2020/lib/badge/badge.module.mjs +4 -4
- package/esm2020/lib/breadcrumb/breadcrumb/breadcrumb.component.mjs +3 -3
- package/esm2020/lib/breadcrumb/breadcrumb-item/breadcrumb-item.component.mjs +3 -3
- package/esm2020/lib/breadcrumb/breadcrumb-router/breadcrumb-router.component.mjs +3 -3
- package/esm2020/lib/breadcrumb/breadcrumb-router/breadcrumb-router.service.mjs +3 -3
- package/esm2020/lib/breadcrumb/breadcrumb.module.mjs +4 -4
- package/esm2020/lib/button/button-close.directive.mjs +3 -3
- package/esm2020/lib/button/button.directive.mjs +3 -3
- package/esm2020/lib/button/button.module.mjs +4 -4
- package/esm2020/lib/button-group/button-group/button-group.component.mjs +3 -3
- package/esm2020/lib/button-group/button-group.module.mjs +4 -4
- package/esm2020/lib/button-group/button-toolbar/button-toolbar.component.mjs +3 -3
- package/esm2020/lib/calendar/calendar/calendar-class-view.pipe.mjs +3 -3
- package/esm2020/lib/calendar/calendar/calendar.component.mjs +3 -3
- package/esm2020/lib/calendar/calendar-month/calendar-class-day.pipe.mjs +3 -3
- package/esm2020/lib/calendar/calendar-month/calendar-class-month.pipe.mjs +3 -3
- package/esm2020/lib/calendar/calendar-month/calendar-class-year.pipe.mjs +3 -3
- package/esm2020/lib/calendar/calendar-month/calendar-day.directive.mjs +6 -6
- package/esm2020/lib/calendar/calendar-month/calendar-day.pipe.mjs +3 -3
- package/esm2020/lib/calendar/calendar-month/calendar-month.component.mjs +3 -3
- package/esm2020/lib/calendar/calendar-month/calendar-weekday.pipe.mjs +3 -3
- package/esm2020/lib/calendar/calendar-navigation/calendar-navigation.component.mjs +3 -3
- package/esm2020/lib/calendar/calendar.module.mjs +4 -4
- package/esm2020/lib/calendar/calendar.service.mjs +3 -3
- package/esm2020/lib/calendar/calendar.utils.mjs +6 -4
- package/esm2020/lib/callout/callout.component.mjs +3 -3
- package/esm2020/lib/callout/callout.module.mjs +4 -4
- package/esm2020/lib/card/card-body.component.mjs +3 -3
- package/esm2020/lib/card/card-footer.component.mjs +3 -3
- package/esm2020/lib/card/card-group.component.mjs +3 -3
- package/esm2020/lib/card/card-header-actions.component.mjs +3 -3
- package/esm2020/lib/card/card-header.component.mjs +3 -3
- package/esm2020/lib/card/card-img-overlay/card-img-overlay.component.mjs +3 -3
- package/esm2020/lib/card/card-img.directive.mjs +3 -3
- package/esm2020/lib/card/card-link.directive.mjs +3 -3
- package/esm2020/lib/card/card-subtitle.directive.mjs +3 -3
- package/esm2020/lib/card/card-text.directive.mjs +3 -3
- package/esm2020/lib/card/card-title.directive.mjs +3 -3
- package/esm2020/lib/card/card.component.mjs +3 -3
- package/esm2020/lib/card/card.module.mjs +4 -4
- package/esm2020/lib/carousel/carousel/carousel.component.mjs +3 -3
- package/esm2020/lib/carousel/carousel-caption/carousel-caption.component.mjs +3 -3
- package/esm2020/lib/carousel/carousel-control/carousel-control.component.mjs +3 -3
- package/esm2020/lib/carousel/carousel-indicators/carousel-indicators.component.mjs +3 -3
- package/esm2020/lib/carousel/carousel-inner/carousel-inner.component.mjs +3 -3
- package/esm2020/lib/carousel/carousel-item/carousel-item.component.mjs +3 -3
- package/esm2020/lib/carousel/carousel-state.mjs +3 -3
- package/esm2020/lib/carousel/carousel.config.mjs +3 -3
- package/esm2020/lib/carousel/carousel.module.mjs +4 -4
- package/esm2020/lib/carousel/carousel.service.mjs +3 -3
- package/esm2020/lib/collapse/collapse.directive.mjs +3 -3
- package/esm2020/lib/collapse/collapse.module.mjs +4 -4
- package/esm2020/lib/date-picker/date-picker.component.mjs +49 -0
- package/esm2020/lib/date-picker/date-picker.module.mjs +59 -0
- package/esm2020/lib/date-picker/index.mjs +2 -0
- package/esm2020/lib/date-picker/public_api.mjs +3 -0
- package/esm2020/lib/date-range-picker/date-range-picker/date-range-picker.component.mjs +48 -14
- package/esm2020/lib/date-range-picker/date-range-picker.module.mjs +12 -8
- package/esm2020/lib/date-range-picker/end-date.directive.mjs +3 -3
- package/esm2020/lib/date-range-picker/public_api.mjs +1 -1
- package/esm2020/lib/date-range-picker/start-date.directive.mjs +3 -3
- package/esm2020/lib/dropdown/dropdown/dropdown.component.mjs +6 -6
- package/esm2020/lib/dropdown/dropdown-close/dropdown-close.directive.mjs +3 -3
- package/esm2020/lib/dropdown/dropdown-divider/dropdown-divider.directive.mjs +3 -3
- package/esm2020/lib/dropdown/dropdown-header/dropdown-header.directive.mjs +3 -3
- package/esm2020/lib/dropdown/dropdown-item/dropdown-item-plain.directive.mjs +3 -3
- package/esm2020/lib/dropdown/dropdown-item/dropdown-item.directive.mjs +3 -3
- package/esm2020/lib/dropdown/dropdown-menu/dropdown-menu.directive.mjs +3 -3
- package/esm2020/lib/dropdown/dropdown.module.mjs +4 -4
- package/esm2020/lib/dropdown/dropdown.service.mjs +3 -3
- package/esm2020/lib/element-cover/element-cover.component.mjs +3 -3
- package/esm2020/lib/element-cover/element-cover.module.mjs +4 -4
- package/esm2020/lib/footer/footer.component.mjs +3 -3
- package/esm2020/lib/footer/footer.module.mjs +4 -4
- package/esm2020/lib/form/form/form.directive.mjs +3 -3
- package/esm2020/lib/form/form-check/form-check-input.directive.mjs +3 -3
- package/esm2020/lib/form/form-check/form-check-label.directive.mjs +3 -3
- package/esm2020/lib/form/form-check/form-check.component.mjs +3 -3
- package/esm2020/lib/form/form-control/form-control.directive.mjs +3 -3
- package/esm2020/lib/form/form-feedback/form-feedback.component.mjs +3 -3
- package/esm2020/lib/form/form-floating/form-floating.directive.mjs +3 -3
- package/esm2020/lib/form/form-label/form-label.directive.mjs +3 -3
- package/esm2020/lib/form/form-select/form-select.directive.mjs +3 -3
- package/esm2020/lib/form/form-text/form-text.directive.mjs +3 -3
- package/esm2020/lib/form/form.module.mjs +4 -4
- package/esm2020/lib/form/input-group/input-group.component.mjs +3 -3
- package/esm2020/lib/form/input-group-text/input-group-text.directive.mjs +3 -3
- package/esm2020/lib/grid/col.component.mjs +3 -3
- package/esm2020/lib/grid/col.directive.mjs +3 -3
- package/esm2020/lib/grid/container.component.mjs +3 -3
- package/esm2020/lib/grid/grid.module.mjs +4 -4
- package/esm2020/lib/grid/gutter.directive.mjs +3 -3
- package/esm2020/lib/grid/row.component.mjs +3 -3
- package/esm2020/lib/grid/row.directive.mjs +3 -3
- package/esm2020/lib/header/header/header.component.mjs +3 -3
- package/esm2020/lib/header/header-brand/header-brand.component.mjs +3 -3
- package/esm2020/lib/header/header-divider/header-divider.component.mjs +3 -3
- package/esm2020/lib/header/header-nav/header-nav.component.mjs +3 -3
- package/esm2020/lib/header/header-text/header-text.component.mjs +3 -3
- package/esm2020/lib/header/header-toggler/header-toggler.directive.mjs +3 -3
- package/esm2020/lib/header/header.module.mjs +4 -4
- package/esm2020/lib/image/img.directive.mjs +3 -3
- package/esm2020/lib/image/img.module.mjs +4 -4
- package/esm2020/lib/list-group/list-group-item.directive.mjs +3 -3
- package/esm2020/lib/list-group/list-group.directive.mjs +3 -3
- package/esm2020/lib/list-group/list-group.module.mjs +4 -4
- package/esm2020/lib/loading-button/loading-button.component.mjs +3 -3
- package/esm2020/lib/loading-button/loading-button.module.mjs +4 -4
- package/esm2020/lib/modal/modal/modal.component.mjs +3 -3
- package/esm2020/lib/modal/modal-body/modal-body.component.mjs +3 -3
- package/esm2020/lib/modal/modal-content/modal-content.component.mjs +3 -3
- package/esm2020/lib/modal/modal-dialog/modal-dialog.component.mjs +3 -3
- package/esm2020/lib/modal/modal-dismiss/modal-toggle.directive.mjs +3 -3
- package/esm2020/lib/modal/modal-footer/modal-footer.component.mjs +3 -3
- package/esm2020/lib/modal/modal-header/modal-header.component.mjs +3 -3
- package/esm2020/lib/modal/modal-title/modal-title.directive.mjs +3 -3
- package/esm2020/lib/modal/modal.module.mjs +4 -4
- package/esm2020/lib/modal/modal.service.mjs +3 -3
- package/esm2020/lib/multi-select/multi-select/multi-select.component.mjs +3 -3
- package/esm2020/lib/multi-select/multi-select-native-select/multi-select-native-select.component.mjs +3 -3
- package/esm2020/lib/multi-select/multi-select-optgroup/multi-select-optgroup-label.component.mjs +3 -3
- package/esm2020/lib/multi-select/multi-select-optgroup/multi-select-optgroup.component.mjs +3 -3
- package/esm2020/lib/multi-select/multi-select-option/multi-select-option.component.mjs +3 -3
- package/esm2020/lib/multi-select/multi-select-tag/multi-select-tag.component.mjs +3 -3
- package/esm2020/lib/multi-select/multi-select.module.mjs +4 -4
- package/esm2020/lib/multi-select/multi-select.service.mjs +3 -3
- package/esm2020/lib/nav/nav-item.component.mjs +3 -3
- package/esm2020/lib/nav/nav-link.directive.mjs +3 -3
- package/esm2020/lib/nav/nav.component.mjs +3 -3
- package/esm2020/lib/nav/nav.module.mjs +4 -4
- package/esm2020/lib/navbar/navbar-brand/navbar-brand.directive.mjs +3 -3
- package/esm2020/lib/navbar/navbar-nav/navbar-nav.component.mjs +3 -3
- package/esm2020/lib/navbar/navbar-text/navbar-text.component.mjs +3 -3
- package/esm2020/lib/navbar/navbar-toggler/navbar-toggler.directive.mjs +3 -3
- package/esm2020/lib/navbar/navbar.component.mjs +3 -3
- package/esm2020/lib/navbar/navbar.module.mjs +4 -4
- package/esm2020/lib/offcanvas/offcanvas/offcanvas.component.mjs +3 -3
- package/esm2020/lib/offcanvas/offcanvas-body/offcanvas-body.component.mjs +3 -3
- package/esm2020/lib/offcanvas/offcanvas-header/offcanvas-header.component.mjs +3 -3
- package/esm2020/lib/offcanvas/offcanvas-title/offcanvas-title.directive.mjs +3 -3
- package/esm2020/lib/offcanvas/offcanvas-toggle/offcanvas-toggle.directive.mjs +3 -3
- package/esm2020/lib/offcanvas/offcanvas.module.mjs +4 -4
- package/esm2020/lib/offcanvas/offcanvas.service.mjs +3 -3
- package/esm2020/lib/pagination/page-item/page-item.component.mjs +3 -3
- package/esm2020/lib/pagination/page-item/page-item.directive.mjs +3 -3
- package/esm2020/lib/pagination/page-link/page-link.directive.mjs +3 -3
- package/esm2020/lib/pagination/pagination/pagination.component.mjs +3 -3
- package/esm2020/lib/pagination/pagination.module.mjs +4 -4
- package/esm2020/lib/placeholder/placeholder-animation.directive.mjs +3 -3
- package/esm2020/lib/placeholder/placeholder.directive.mjs +3 -3
- package/esm2020/lib/placeholder/placeholder.module.mjs +4 -4
- package/esm2020/lib/popover/popover/popover.component.mjs +3 -3
- package/esm2020/lib/popover/popover.directive.mjs +3 -3
- package/esm2020/lib/popover/popover.module.mjs +4 -4
- package/esm2020/lib/progress/progress-bar.component.mjs +3 -3
- package/esm2020/lib/progress/progress.component.mjs +3 -3
- package/esm2020/lib/progress/progress.module.mjs +4 -4
- package/esm2020/lib/services/class-toggle.service.mjs +3 -3
- package/esm2020/lib/services/intersection.service.mjs +3 -3
- package/esm2020/lib/services/listeners.service.mjs +3 -3
- package/esm2020/lib/shared/html-attr.directive.mjs +3 -3
- package/esm2020/lib/shared/shared.module.mjs +4 -4
- package/esm2020/lib/shared/template-id.directive.mjs +3 -3
- package/esm2020/lib/sidebar/sidebar/sidebar.component.mjs +3 -3
- package/esm2020/lib/sidebar/sidebar-backdrop/sidebar-backdrop.service.mjs +3 -3
- package/esm2020/lib/sidebar/sidebar-brand/sidebar-brand.component.mjs +3 -3
- package/esm2020/lib/sidebar/sidebar-footer/sidebar-footer.component.mjs +3 -3
- package/esm2020/lib/sidebar/sidebar-header/sidebar-header.component.mjs +3 -3
- package/esm2020/lib/sidebar/sidebar-nav/sidebar-nav-badge.pipe.mjs +3 -3
- package/esm2020/lib/sidebar/sidebar-nav/sidebar-nav-divider.component.mjs +3 -3
- package/esm2020/lib/sidebar/sidebar-nav/sidebar-nav-icon.pipe.mjs +3 -3
- package/esm2020/lib/sidebar/sidebar-nav/sidebar-nav-item-class.pipe.mjs +3 -3
- package/esm2020/lib/sidebar/sidebar-nav/sidebar-nav-label.component.mjs +3 -3
- package/esm2020/lib/sidebar/sidebar-nav/sidebar-nav-link.component.mjs +6 -6
- package/esm2020/lib/sidebar/sidebar-nav/sidebar-nav-link.pipe.mjs +3 -3
- package/esm2020/lib/sidebar/sidebar-nav/sidebar-nav-title.component.mjs +3 -3
- package/esm2020/lib/sidebar/sidebar-nav/sidebar-nav.component.mjs +6 -6
- package/esm2020/lib/sidebar/sidebar-nav/sidebar-nav.service.mjs +6 -6
- package/esm2020/lib/sidebar/sidebar-toggle/sidebar-toggle.directive.mjs +3 -3
- package/esm2020/lib/sidebar/sidebar-toggler/sidebar-toggler.component.mjs +3 -3
- package/esm2020/lib/sidebar/sidebar.module.mjs +4 -4
- package/esm2020/lib/sidebar/sidebar.service.mjs +3 -3
- package/esm2020/lib/smart-pagination/smart-pagination.component.mjs +3 -3
- package/esm2020/lib/smart-pagination/smart-pagination.module.mjs +4 -4
- package/esm2020/lib/smart-table/smart-table/smart-table.component.mjs +3 -3
- package/esm2020/lib/smart-table/smart-table-filter/smart-table-filter.component.mjs +3 -3
- package/esm2020/lib/smart-table/smart-table-head/smart-table-head.component.mjs +3 -3
- package/esm2020/lib/smart-table/smart-table-items-per-page-selector/smart-table-items-per-page-selector.component.mjs +3 -3
- package/esm2020/lib/smart-table/smart-table.module.mjs +4 -4
- package/esm2020/lib/spinner/spinner.component.mjs +3 -3
- package/esm2020/lib/spinner/spinner.module.mjs +4 -4
- package/esm2020/lib/table/table-active.directive.mjs +3 -3
- package/esm2020/lib/table/table-color.directive.mjs +3 -3
- package/esm2020/lib/table/table.directive.mjs +3 -3
- package/esm2020/lib/table/table.module.mjs +4 -4
- package/esm2020/lib/tabs/tab-content/tab-content.component.mjs +3 -3
- package/esm2020/lib/tabs/tab-content-ref.directive.mjs +3 -3
- package/esm2020/lib/tabs/tab-pane/tab-pane.component.mjs +3 -3
- package/esm2020/lib/tabs/tab.service.mjs +3 -3
- package/esm2020/lib/tabs/tabs.module.mjs +4 -4
- package/esm2020/lib/time-picker/public_api.mjs +1 -1
- package/esm2020/lib/time-picker/time-picker-roll-col/time-picker-roll-am-pm.component.mjs +7 -7
- package/esm2020/lib/time-picker/time-picker-roll-col/time-picker-roll-col.component.mjs +7 -7
- package/esm2020/lib/time-picker/time-picker.component.mjs +42 -18
- package/esm2020/lib/time-picker/time-picker.module.mjs +5 -5
- package/esm2020/lib/time-picker/time.utils.mjs +1 -1
- package/esm2020/lib/toast/toast/toast.component.mjs +3 -3
- package/esm2020/lib/toast/toast-body/toast-body.component.mjs +3 -3
- package/esm2020/lib/toast/toast-close.directive.mjs +3 -3
- package/esm2020/lib/toast/toast-header/toast-header.component.mjs +3 -3
- package/esm2020/lib/toast/toast.module.mjs +4 -4
- package/esm2020/lib/toast/toaster/toaster-host.directive.mjs +3 -3
- package/esm2020/lib/toast/toaster/toaster.component.mjs +3 -3
- package/esm2020/lib/toast/toaster/toaster.service.mjs +3 -3
- package/esm2020/lib/tooltip/tooltip/tooltip.component.mjs +3 -3
- package/esm2020/lib/tooltip/tooltip.directive.mjs +3 -3
- package/esm2020/lib/tooltip/tooltip.module.mjs +4 -4
- package/esm2020/lib/utilities/align.directive.mjs +3 -3
- package/esm2020/lib/utilities/bg-color.directive.mjs +3 -3
- package/esm2020/lib/utilities/border.directive.mjs +3 -3
- package/esm2020/lib/utilities/rounded.directive.mjs +3 -3
- package/esm2020/lib/utilities/text-color.directive.mjs +3 -3
- package/esm2020/lib/utilities/utilities.module.mjs +4 -4
- package/esm2020/lib/widget/widget-stat-a/widget-stat-a.component.mjs +3 -3
- package/esm2020/lib/widget/widget-stat-b/widget-stat-b.component.mjs +3 -3
- package/esm2020/lib/widget/widget-stat-c/widget-stat-c.component.mjs +3 -3
- package/esm2020/lib/widget/widget-stat-d/widget-stat-d.component.mjs +3 -3
- package/esm2020/lib/widget/widget-stat-e/widget-stat-e.component.mjs +3 -3
- package/esm2020/lib/widget/widget-stat-f/widget-stat-f.component.mjs +3 -3
- package/esm2020/lib/widget/widget.module.mjs +4 -4
- package/esm2020/public-api.mjs +2 -1
- package/fesm2015/coreui-angular-pro.mjs +9199 -9058
- package/fesm2015/coreui-angular-pro.mjs.map +1 -1
- package/fesm2020/coreui-angular-pro.mjs +9142 -9001
- package/fesm2020/coreui-angular-pro.mjs.map +1 -1
- package/lib/date-picker/date-picker.component.d.ts +16 -0
- package/lib/date-picker/date-picker.module.d.ts +16 -0
- package/lib/date-picker/index.d.ts +1 -0
- package/lib/date-picker/public_api.d.ts +3 -0
- package/lib/date-range-picker/date-range-picker/date-range-picker.component.d.ts +15 -8
- package/lib/date-range-picker/date-range-picker.module.d.ts +2 -1
- package/lib/date-range-picker/public_api.d.ts +1 -1
- package/lib/time-picker/time-picker.component.d.ts +17 -3
- package/package.json +1 -1
- package/public-api.d.ts +1 -0
|
@@ -6,9 +6,9 @@ export class TimeElementDirective {
|
|
|
6
6
|
this.elementRef = elementRef;
|
|
7
7
|
}
|
|
8
8
|
}
|
|
9
|
-
TimeElementDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.
|
|
10
|
-
TimeElementDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.1.
|
|
11
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.
|
|
9
|
+
TimeElementDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.2", ngImport: i0, type: TimeElementDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
|
|
10
|
+
TimeElementDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.1.2", type: TimeElementDirective, selector: "[cTimeElement]", inputs: { cTimeElement: "cTimeElement" }, exportAs: ["cTimeElement"], ngImport: i0 });
|
|
11
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.2", ngImport: i0, type: TimeElementDirective, decorators: [{
|
|
12
12
|
type: Directive,
|
|
13
13
|
args: [{
|
|
14
14
|
selector: '[cTimeElement]',
|
|
@@ -77,9 +77,9 @@ export class TimePickerRollColComponent {
|
|
|
77
77
|
return element.value;
|
|
78
78
|
}
|
|
79
79
|
}
|
|
80
|
-
TimePickerRollColComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.
|
|
81
|
-
TimePickerRollColComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.
|
|
82
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.
|
|
80
|
+
TimePickerRollColComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.2", ngImport: i0, type: TimePickerRollColComponent, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
81
|
+
TimePickerRollColComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.2", type: TimePickerRollColComponent, selector: "c-time-picker-roll-col", inputs: { disabled: "disabled", elements: "elements", onClick: "onClick", selected: "selected", refresh: "refresh" }, outputs: { selectedChange: "selectedChange" }, host: { properties: { "class": "this.hostClasses" } }, viewQueries: [{ propertyName: "timeElements", predicate: TimeElementDirective, descendants: true }], exportAs: ["cTimePickerRollCol"], usesOnChanges: true, ngImport: i0, template: "<div (click)=\"handleElementClick($event, element)\"\r\n *ngFor=\"let element of elements; index as i; trackBy: trackByElement\"\r\n [attr.disabled]=\"element.disabled || null\"\r\n [cTimeElement]=\"element\"\r\n [ngClass]=\"{'time-picker-roll-cell': true, selected: element.value === selected, disabled: element.disabled}\"\r\n [ngStyle]=\"{'width': 'fit-content'}\"\r\n role=\"button\"\r\n>\r\n {{element.label}}\r\n</div>\r\n", styles: [":host{display:block}:host .disabled{pointer-events:none}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: TimeElementDirective, selector: "[cTimeElement]", inputs: ["cTimeElement"], exportAs: ["cTimeElement"] }] });
|
|
82
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.2", ngImport: i0, type: TimePickerRollColComponent, decorators: [{
|
|
83
83
|
type: Component,
|
|
84
84
|
args: [{ selector: 'c-time-picker-roll-col', exportAs: 'cTimePickerRollCol', template: "<div (click)=\"handleElementClick($event, element)\"\r\n *ngFor=\"let element of elements; index as i; trackBy: trackByElement\"\r\n [attr.disabled]=\"element.disabled || null\"\r\n [cTimeElement]=\"element\"\r\n [ngClass]=\"{'time-picker-roll-cell': true, selected: element.value === selected, disabled: element.disabled}\"\r\n [ngStyle]=\"{'width': 'fit-content'}\"\r\n role=\"button\"\r\n>\r\n {{element.label}}\r\n</div>\r\n", styles: [":host{display:block}:host .disabled{pointer-events:none}\n"] }]
|
|
85
85
|
}], ctorParameters: function () { return [{ type: i0.ElementRef }]; }, propDecorators: { disabled: [{
|
|
@@ -101,4 +101,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.0", ngImpor
|
|
|
101
101
|
type: ViewChildren,
|
|
102
102
|
args: [TimeElementDirective]
|
|
103
103
|
}] } });
|
|
104
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
104
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGltZS1waWNrZXItcm9sbC1jb2wuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZXVpLWFuZ3VsYXIvc3JjL2xpYi90aW1lLXBpY2tlci90aW1lLXBpY2tlci1yb2xsLWNvbC90aW1lLXBpY2tlci1yb2xsLWNvbC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JldWktYW5ndWxhci9zcmMvbGliL3RpbWUtcGlja2VyL3RpbWUtcGlja2VyLXJvbGwtY29sL3RpbWUtcGlja2VyLXJvbGwtY29sLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCxTQUFTLEVBQ1QsU0FBUyxFQUVULFlBQVksRUFDWixXQUFXLEVBQ1gsS0FBSyxFQUVMLE1BQU0sRUFHTixZQUFZLEVBQ2IsTUFBTSxlQUFlLENBQUM7OztBQWF2QixNQUFNLE9BQU8sb0JBQW9CO0lBRS9CLFlBQ1MsVUFBc0I7UUFBdEIsZUFBVSxHQUFWLFVBQVUsQ0FBWTtJQUMzQixDQUFDOztpSEFKTSxvQkFBb0I7cUdBQXBCLG9CQUFvQjsyRkFBcEIsb0JBQW9CO2tCQUpoQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxnQkFBZ0I7b0JBQzFCLFFBQVEsRUFBRSxjQUFjO2lCQUN6QjtpR0FPVSxZQUFZO3NCQUFwQixLQUFLOztBQVNSLE1BQU0sT0FBTywwQkFBMEI7SUFFckMsWUFDUyxVQUFzQjtRQUF0QixlQUFVLEdBQVYsVUFBVSxDQUFZO1FBR3ZCLFNBQUksR0FBRyxJQUFJLENBQUM7UUFFWCxhQUFRLEdBQUcsS0FBSyxDQUFDO1FBQ2pCLGFBQVEsR0FBaUIsRUFBRSxDQUFDO1FBSzNCLG1CQUFjLEdBQXNCLElBQUksWUFBWSxFQUFPLENBQUM7SUFWbEUsQ0FBQztJQVlMLElBQ0ksV0FBVztRQUNiLE9BQU87WUFDTCxzQkFBc0IsRUFBRSxJQUFJ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QkFBb0IsdUdDakVwQyx1Y0FVQSxvYURnQmEsb0JBQW9COzJGQWVwQiwwQkFBMEI7a0JBTnRDLFNBQVM7K0JBQ0Usd0JBQXdCLFlBR3hCLG9CQUFvQjtpR0FVckIsUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFFSSxjQUFjO3NCQUF2QixNQUFNO2dCQUdILFdBQVc7c0JBRGQsV0FBVzt1QkFBQyxPQUFPO2dCQVFnQixZQUFZO3NCQUEvQyxZQUFZO3VCQUFDLG9CQUFvQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQWZ0ZXJWaWV3SW5pdCxcclxuICBDb21wb25lbnQsXHJcbiAgRGlyZWN0aXZlLFxyXG4gIEVsZW1lbnRSZWYsXHJcbiAgRXZlbnRFbWl0dGVyLFxyXG4gIEhvc3RCaW5kaW5nLFxyXG4gIElucHV0LFxyXG4gIE9uQ2hhbmdlcyxcclxuICBPdXRwdXQsXHJcbiAgUXVlcnlMaXN0LFxyXG4gIFNpbXBsZUNoYW5nZXMsXHJcbiAgVmlld0NoaWxkcmVuXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IElUaW1lVmFsdWUgfSBmcm9tICcuLi90aW1lLnV0aWxzJztcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgSVRpbWVQaWNrZXJSb2xsQ29sIHtcclxuICBlbGVtZW50czogSVRpbWVWYWx1ZVtdO1xyXG4gIG9uQ2xpY2s/OiAodmFsdWU6IG51bWJlciB8IHN0cmluZykgPT4gdm9pZDtcclxuICBzZWxlY3RlZD86IG51bWJlciB8IHN0cmluZyB8IG51bGw7XHJcbn1cclxuXHJcbkBEaXJlY3RpdmUoe1xyXG4gIHNlbGVjdG9yOiAnW2NUaW1lRWxlbWVudF0nLFxyXG4gIGV4cG9ydEFzOiAnY1RpbWVFbGVtZW50J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgVGltZUVsZW1lbnREaXJlY3RpdmUge1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHB1YmxpYyBlbGVtZW50UmVmOiBFbGVtZW50UmVmXHJcbiAgKSB7IH1cclxuXHJcbiAgQElucHV0KCkgY1RpbWVFbGVtZW50ITogSVRpbWVWYWx1ZTtcclxufVxyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdjLXRpbWUtcGlja2VyLXJvbGwtY29sJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vdGltZS1waWNrZXItcm9sbC1jb2wuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3RpbWUtcGlja2VyLXJvbGwtY29sLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgZXhwb3J0QXM6ICdjVGltZVBpY2tlclJvbGxDb2wnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUaW1lUGlja2VyUm9sbENvbENvbXBvbmVudCBpbXBsZW1lbnRzIElUaW1lUGlja2VyUm9sbENvbCwgT25DaGFuZ2VzLCBBZnRlclZpZXdJbml0IHtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwdWJsaWMgZWxlbWVudFJlZjogRWxlbWVudFJlZlxyXG4gICkgeyB9XHJcblxyXG4gIHByaXZhdGUgaW5pdCA9IHRydWU7XHJcblxyXG4gIEBJbnB1dCgpIGRpc2FibGVkID0gZmFsc2U7XHJcbiAgQElucHV0KCkgZWxlbWVudHM6IElUaW1lVmFsdWVbXSA9IFtdO1xyXG4gIEBJbnB1dCgpIG9uQ2xpY2s/OiAodmFsdWU6IG51bWJlciB8IHN0cmluZykgPT4gdm9pZDtcclxuICBASW5wdXQoKSBzZWxlY3RlZD86IG51bWJlciB8IHN0cmluZyB8IG51bGw7XHJcbiAgQElucHV0KCkgcmVmcmVzaD86IGJvb2xlYW47XHJcblxyXG4gIEBPdXRwdXQoKSBzZWxlY3RlZENoYW5nZTogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuXHJcbiAgQEhvc3RCaW5kaW5nKCdjbGFzcycpXHJcbiAgZ2V0IGhvc3RDbGFzc2VzKCkge1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgJ3RpbWUtcGlja2VyLXJvbGwtY29sJzogdHJ1ZSxcclxuICAgICAgZGlzYWJsZWQ6IHRoaXMuZGlzYWJsZWRcclxuICAgIH07XHJcbiAgfVxyXG5cclxuICBAVmlld0NoaWxkcmVuKFRpbWVFbGVtZW50RGlyZWN0aXZlKSB0aW1lRWxlbWVudHMhOiBRdWVyeUxpc3Q8VGltZUVsZW1lbnREaXJlY3RpdmU+O1xyXG5cclxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLnRpbWVFbGVtZW50cz8uY2hhbmdlcy5zdWJzY3JpYmUoc3RhdGUgPT4ge1xyXG4gICAgICBjb25zdCBzZWxlY3RlZEVsZW1lbnQgPSB0aGlzLnRpbWVFbGVtZW50cz8uZmluZChlbGVtZW50ID0+IHtcclxuICAgICAgICByZXR1cm4gZWxlbWVudC5jVGltZUVsZW1lbnQ/LnZhbHVlID09PSA8bnVtYmVyPnRoaXMuc2VsZWN0ZWQ7XHJcbiAgICAgIH0pO1xyXG4gICAgICB0aGlzLnNjcm9sbFRvRWxlbWVudChzZWxlY3RlZEVsZW1lbnQ/LmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCk7XHJcbiAgICB9KTtcclxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICBjb25zdCBzZWxlY3RlZEVsZW1lbnQgPSB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yKCcuc2VsZWN0ZWQnKTtcclxuICAgICAgdGhpcy5zY3JvbGxUb0VsZW1lbnQoc2VsZWN0ZWRFbGVtZW50KTtcclxuICAgIH0sMTAwMClcclxuICB9XHJcblxyXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcclxuICAgIGlmICgoY2hhbmdlc1sncmVmcmVzaCddICYmIGNoYW5nZXNbJ3JlZnJlc2gnXS5jdXJyZW50VmFsdWUpIHx8IChjaGFuZ2VzWydzZWxlY3RlZCddICYmICFjaGFuZ2VzWydzZWxlY3RlZCddLmZpcnN0Q2hhbmdlKSkge1xyXG4gICAgICBjb25zdCBzZWxlY3RlZEVsZW1lbnQgPSB0aGlzLnRpbWVFbGVtZW50cz8uZmluZChlbGVtZW50ID0+IHtcclxuICAgICAgICByZXR1cm4gZWxlbWVudC5jVGltZUVsZW1lbnQ/LnZhbHVlID09PSA8bnVtYmVyPnRoaXMuc2VsZWN0ZWQ7XHJcbiAgICAgIH0pO1xyXG4gICAgICB0aGlzLmluaXQgPSAhc2VsZWN0ZWRFbGVtZW50O1xyXG4gICAgICB0aGlzLnNjcm9sbFRvRWxlbWVudChzZWxlY3RlZEVsZW1lbnQ/LmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBzY3JvbGxUb0VsZW1lbnQoZWxlbWVudDogYW55KSB7XHJcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgY29uc3QgZWxlbWVudFNlbGVjdGVkID0gZWxlbWVudCB8fCB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yKCcuc2VsZWN0ZWQnKTtcclxuICAgICAgaWYgKGVsZW1lbnRTZWxlY3RlZCkge1xyXG4gICAgICAgIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnNjcm9sbFRvKHtcclxuICAgICAgICAgIHRvcDogZWxlbWVudFNlbGVjdGVkPy5vZmZzZXRUb3AsXHJcbiAgICAgICAgICBiZWhhdmlvcjogdGhpcy5pbml0ID8gJ2F1dG8nIDogJ3Ntb290aCdcclxuICAgICAgICB9KTtcclxuICAgICAgICB0aGlzLmluaXQgPSBmYWxzZTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBoYW5kbGVFbGVtZW50Q2xpY2soJGV2ZW50OiBNb3VzZUV2ZW50LCBlbGVtZW50OiBhbnkpIHtcclxuICAgIGlmIChlbGVtZW50LmRpc2FibGVkKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIHRoaXMuc2VsZWN0ZWQgPSBlbGVtZW50LnZhbHVlO1xyXG4gICAgdGhpcy5zY3JvbGxUb0VsZW1lbnQoJGV2ZW50LnRhcmdldCk7XHJcbiAgICB0aGlzLm9uQ2xpY2sgJiYgdGhpcy5vbkNsaWNrKGVsZW1lbnQudmFsdWUpO1xyXG4gICAgdGhpcy5zZWxlY3RlZENoYW5nZS5lbWl0KGVsZW1lbnQudmFsdWUpO1xyXG4gIH1cclxuXHJcbiAgdHJhY2tCeUVsZW1lbnQoaW5kZXg6IG51bWJlciwgZWxlbWVudDogSVRpbWVWYWx1ZSkge1xyXG4gICAgcmV0dXJuIGVsZW1lbnQudmFsdWU7XHJcbiAgfVxyXG5cclxufVxyXG4iLCI8ZGl2IChjbGljayk9XCJoYW5kbGVFbGVtZW50Q2xpY2soJGV2ZW50LCBlbGVtZW50KVwiXHJcbiAgICAgKm5nRm9yPVwibGV0IGVsZW1lbnQgb2YgZWxlbWVudHM7IGluZGV4IGFzIGk7IHRyYWNrQnk6IHRyYWNrQnlFbGVtZW50XCJcclxuICAgICBbYXR0ci5kaXNhYmxlZF09XCJlbGVtZW50LmRpc2FibGVkIHx8IG51bGxcIlxyXG4gICAgIFtjVGltZUVsZW1lbnRdPVwiZWxlbWVudFwiXHJcbiAgICAgW25nQ2xhc3NdPVwieyd0aW1lLXBpY2tlci1yb2xsLWNlbGwnOiB0cnVlLCBzZWxlY3RlZDogZWxlbWVudC52YWx1ZSA9PT0gc2VsZWN0ZWQsIGRpc2FibGVkOiBlbGVtZW50LmRpc2FibGVkfVwiXHJcbiAgICAgW25nU3R5bGVdPVwieyd3aWR0aCc6ICdmaXQtY29udGVudCd9XCJcclxuICAgICByb2xlPVwiYnV0dG9uXCJcclxuPlxyXG4gIHt7ZWxlbWVudC5sYWJlbH19XHJcbjwvZGl2PlxyXG4iXX0=
|
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
import { Component, EventEmitter, forwardRef, HostListener, Input, Output } from '@angular/core';
|
|
1
|
+
import { Component, ContentChildren, EventEmitter, forwardRef, HostListener, Input, Output, ViewChild } from '@angular/core';
|
|
2
2
|
import { FormControl, FormGroup, NG_VALUE_ACCESSOR, Validators } from '@angular/forms';
|
|
3
3
|
import { coerceBooleanProperty } from '@angular/cdk/coercion';
|
|
4
|
+
import { TemplateIdDirective } from '../shared';
|
|
4
5
|
import { convert12hTo24h, convert24hTo12h, convertTimeToDate, getAmPm, getDayPeriods, getListOfHours, getListOfMinutes, getListOfSeconds, isHour12, isValidTime } from './time.utils';
|
|
5
6
|
import * as i0 from "@angular/core";
|
|
6
7
|
import * as i1 from "@angular/common";
|
|
@@ -45,7 +46,9 @@ export class TimePickerComponent {
|
|
|
45
46
|
* @default 'roll'
|
|
46
47
|
*/
|
|
47
48
|
this.variant = 'roll';
|
|
49
|
+
this._visible = false;
|
|
48
50
|
this.timeChange = new EventEmitter(false);
|
|
51
|
+
this.templates = {};
|
|
49
52
|
this.hour12 = isHour12(this.locale);
|
|
50
53
|
this.dayPeriods = [
|
|
51
54
|
{ value: 'am', label: 'am' },
|
|
@@ -143,13 +146,20 @@ export class TimePickerComponent {
|
|
|
143
146
|
get time() {
|
|
144
147
|
return this._time;
|
|
145
148
|
}
|
|
149
|
+
/**
|
|
150
|
+
* Toggle the visibility of dropdown menu component.
|
|
151
|
+
* @type boolean
|
|
152
|
+
* @default false
|
|
153
|
+
*/
|
|
154
|
+
set visible(value) {
|
|
155
|
+
this._visible = coerceBooleanProperty(value);
|
|
156
|
+
}
|
|
157
|
+
get visible() {
|
|
158
|
+
return this._visible;
|
|
159
|
+
}
|
|
146
160
|
onBlur() {
|
|
147
161
|
this.onTouched();
|
|
148
162
|
}
|
|
149
|
-
// dayPeriodElements = [
|
|
150
|
-
// {value: 'am', label: 'am'},
|
|
151
|
-
// {value: 'pm', label: 'pm'}
|
|
152
|
-
// ]
|
|
153
163
|
set timeInputValue(value) {
|
|
154
164
|
this.timeInput.setValue(value);
|
|
155
165
|
this._timeInputValue = value;
|
|
@@ -205,20 +215,20 @@ export class TimePickerComponent {
|
|
|
205
215
|
this._hour = this._hour < 0 ? 0 : this._hour;
|
|
206
216
|
this._minute = this._minute < 0 ? 0 : this._minute;
|
|
207
217
|
this._second = this._second < 0 ? 0 : this._second;
|
|
208
|
-
const time = new Date(this._time?.getTime()
|
|
218
|
+
const time = new Date(this._time?.getTime() || new Date());
|
|
209
219
|
time.setHours(this.hour, this.minute, this.second, 0);
|
|
210
220
|
this.time = time;
|
|
211
221
|
this.emitTime(time);
|
|
212
222
|
}
|
|
213
223
|
clearTime() {
|
|
214
|
-
this._hour = -1;
|
|
215
|
-
this._minute = -1;
|
|
216
|
-
this._second = -1;
|
|
217
|
-
this.dayPeriod = 'am';
|
|
218
224
|
if (this.time) {
|
|
219
225
|
this._time = undefined;
|
|
220
226
|
this.emitTime(undefined);
|
|
221
227
|
}
|
|
228
|
+
this._hour = -1;
|
|
229
|
+
this._minute = -1;
|
|
230
|
+
this._second = -1;
|
|
231
|
+
this.dayPeriod = 'am';
|
|
222
232
|
this.patchSelectTimeValues();
|
|
223
233
|
}
|
|
224
234
|
emitTime(time) {
|
|
@@ -244,6 +254,13 @@ export class TimePickerComponent {
|
|
|
244
254
|
}
|
|
245
255
|
}
|
|
246
256
|
}
|
|
257
|
+
ngAfterViewInit() {
|
|
258
|
+
setTimeout(() => {
|
|
259
|
+
this.contentTemplates.forEach((child) => {
|
|
260
|
+
this.templates[child.id] = child.templateRef;
|
|
261
|
+
});
|
|
262
|
+
});
|
|
263
|
+
}
|
|
247
264
|
setTimeLists() {
|
|
248
265
|
this.dayPeriods = getDayPeriods(this.locale, this.dateTimeFormatOptions);
|
|
249
266
|
this.hour12 = isHour12(this.locale);
|
|
@@ -368,7 +385,6 @@ export class TimePickerComponent {
|
|
|
368
385
|
}
|
|
369
386
|
handleTimeInputChange($event) {
|
|
370
387
|
const value = $event.target?.value;
|
|
371
|
-
console.log('handleTimeInputChange', isValidTime(value), value);
|
|
372
388
|
if (!isValidTime(value)) {
|
|
373
389
|
this.clearTime();
|
|
374
390
|
return;
|
|
@@ -380,23 +396,23 @@ export class TimePickerComponent {
|
|
|
380
396
|
this.clearTime();
|
|
381
397
|
}
|
|
382
398
|
}
|
|
383
|
-
TimePickerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.
|
|
384
|
-
TimePickerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.
|
|
399
|
+
TimePickerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.2", ngImport: i0, type: TimePickerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
400
|
+
TimePickerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.2", type: TimePickerComponent, selector: "c-time-picker", inputs: { cleaner: "cleaner", dateTimeFormatOptions: "dateTimeFormatOptions", disabled: "disabled", filterHours: "filterHours", filterMinutes: "filterMinutes", filterSeconds: "filterSeconds", indicator: "indicator", inputReadOnly: "inputReadOnly", locale: "locale", placeholder: "placeholder", seconds: "seconds", size: "size", time: "time", variant: "variant", visible: "visible" }, outputs: { timeChange: "timeChange" }, host: { listeners: { "blur": "onBlur()" } }, providers: [
|
|
385
401
|
{
|
|
386
402
|
provide: NG_VALUE_ACCESSOR,
|
|
387
403
|
useExisting: forwardRef(() => TimePickerComponent),
|
|
388
404
|
multi: true
|
|
389
405
|
}
|
|
390
|
-
], exportAs: ["
|
|
391
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.
|
|
406
|
+
], queries: [{ propertyName: "contentTemplates", predicate: TemplateIdDirective, descendants: true }], viewQueries: [{ propertyName: "dropdown", first: true, predicate: ["dropdown"], descendants: true }], exportAs: ["cTimePicker"], usesOnChanges: true, ngImport: i0, template: "<div class=\"date-picker-timepickers\" *ngIf=\"variant==='select'\">\r\n <div class=\"picker time-picker\">\r\n <div [formGroup]=\"selectTime\" class=\"time-picker-body\">\r\n <span class=\"time-picker-inline-icon\"></span>\r\n <select [attr.disabled]=\"disabled || null\" cSelect class=\"ms-0\" formControlName=\"selectHours\" (ngModelChange)=\"handleSelectHoursChange($event)\">\r\n <option *ngFor=\"let hour of listOfHours12; index as i; trackBy: trackByHour\" [ngValue]=\"hour.value\" [attr.disabled]=\"hour.disabled || null\">{{hour.label}}</option>\r\n </select>\r\n {{' :'}}<select [attr.disabled]=\"disabled || null\" cSelect class=\"ms-0\" formControlName=\"selectMinutes\" (ngModelChange)=\"handleSelectMinutesChange($event)\">\r\n <option *ngFor=\"let minute of listOfMinutes\" [ngValue]=\"minute.value\" [attr.disabled]=\"minute.disabled || null\">{{minute.label}}</option>\r\n </select>\r\n <ng-template [ngIf]=\"seconds\">\r\n {{' :'}}<select [attr.disabled]=\"disabled || null\" cSelect class=\"ms-0\" formControlName=\"selectSeconds\" (ngModelChange)=\"handleSelectSecondsChange($event)\">\r\n <option *ngFor=\"let second of listOfSeconds\" [ngValue]=\"second.value\" [attr.disabled]=\"second.disabled || null\">{{second.label}}</option>\r\n </select>\r\n </ng-template>\r\n <ng-template [ngIf]=\"hour12\">\r\n <select [attr.disabled]=\"disabled || null\" cSelect class=\"ms-0\" formControlName=\"selectDayPeriod\" (ngModelChange)=\"handleSelectDayPeriodChange($event)\">\r\n <option *ngFor=\"let dayPeriod of dayPeriods\" [ngValue]=\"dayPeriod.value\" class=\"time-picker-roll-cell\">{{dayPeriod.label}}</option>\r\n </select>\r\n </ng-template>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<c-dropdown #dropdown=\"cDropdown\" [autoClose]=\"'outside'\" class=\"time-picker picker\" *ngIf=\"variant==='roll'\" [visible]=\"visible\">\r\n <c-input-group [caret]=\"false\"\r\n [disabled]=\"disabled ?? dropdown.visible\"\r\n [sizing]=\"size ?? ''\"\r\n cDropdownToggle\r\n class=\"picker-input-group\">\r\n <input (change)=\"handleTimeInputChange($event)\"\r\n [formControl]=\"timeInput\"\r\n [placeholder]=\"placeholder\"\r\n cFormControl\r\n [attr.tabindex]=\"disabled ? -1 : 0\"\r\n [attr.disabled]=\"disabled ? '' : null\"\r\n [attr.pattern]=\"hour12 ? '(((0[1-9])|(1[0-2])):([0-5])([0-9])\\\\s(A|P)M)' : '([01]?[0-9]|2[0-3]):[0-5][0-9]'\"\r\n [readonly]=\"inputReadOnly ?? null\"\r\n >\r\n <span *ngIf=\"indicator || cleaner\" cInputGroupText>\r\n <span *ngIf=\"indicator\" class=\"picker-input-group-indicator\">\r\n <span class=\"picker-input-group-icon time-picker-input-icon\"></span>\r\n </span>\r\n <span (click)=\"!disabled && handleClear($event)\" *ngIf=\"cleaner && time && !disabled\" class=\"picker-input-group-cleaner\" role=\"button\">\r\n <span class=\"picker-input-group-icon time-picker-cleaner-icon\"></span>\r\n </span>\r\n </span>\r\n\r\n </c-input-group>\r\n <div cDropdownMenu #dropdownMenu=\"cDropdownMenu\">\r\n <div class=\"time-picker-body time-picker-roll\" style=\"position: relative;\">\r\n <c-time-picker-roll-col\r\n [elements]=\"listOfHours12\"\r\n [selected]=\"hour\"\r\n (selectedChange)=\"handleSelectHoursChange($event)\"\r\n [disabled]=\"disabled\"\r\n [refresh]=\"dropdownMenu.visible\"\r\n role=\"listbox\"\r\n >\r\n </c-time-picker-roll-col>\r\n <c-time-picker-roll-col\r\n [elements]=\"listOfMinutes\"\r\n [selected]=\"minute\"\r\n (selectedChange)=\"handleSelectMinutesChange($event)\"\r\n [disabled]=\"disabled\"\r\n [refresh]=\"dropdownMenu.visible\"\r\n role=\"listbox\"\r\n >\r\n </c-time-picker-roll-col>\r\n <c-time-picker-roll-col\r\n *ngIf=\"seconds\"\r\n [elements]=\"listOfSeconds\"\r\n [selected]=\"second\"\r\n (selectedChange)=\"handleSelectSecondsChange($event)\"\r\n [disabled]=\"disabled\"\r\n [refresh]=\"dropdownMenu.visible\"\r\n role=\"listbox\"\r\n >\r\n </c-time-picker-roll-col>\r\n <c-time-picker-roll-am-pm\r\n *ngIf=\"hour12\" [elements]=\"dayPeriods\"\r\n [selected]=\"dayPeriod\"\r\n (selectedChange)=\"handleSelectDayPeriodChange($event)\"\r\n [disabled]=\"disabled\"\r\n [refresh]=\"dropdownMenu.visible\"\r\n role=\"listbox\"\r\n >\r\n </c-time-picker-roll-am-pm>\r\n </div>\r\n <div *ngIf=\"templates?.timePickerFooter\" class=\"picker-footer\">\r\n <ng-container *ngTemplateOutlet=\"templates?.timePickerFooter; context: {$implicit: dropdown}\"></ng-container>\r\n </div>\r\n </div>\r\n</c-dropdown>\r\n", styles: [".disabled{pointer-events:none}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { 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.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i2.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i2.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: i2.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.PatternValidator, selector: "[pattern][formControlName],[pattern][formControl],[pattern][ngModel]", inputs: ["pattern"] }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i3.FormControlDirective, selector: "input[cFormControl], textarea[cFormControl]", inputs: ["sizing", "valid", "type", "plaintext"] }, { kind: "directive", type: i4.FormSelectDirective, selector: "select[cSelect]", inputs: ["sizing", "valid"] }, { kind: "component", type: i5.InputGroupComponent, selector: "c-input-group", inputs: ["sizing"] }, { kind: "directive", type: i6.InputGroupTextDirective, selector: "[cInputGroupText]" }, { kind: "component", type: i7.DropdownComponent, selector: "c-dropdown", inputs: ["alignment", "autoClose", "dark", "direction", "placement", "popper", "popperOptions", "variant", "visible"], outputs: ["visibleChange"], exportAs: ["cDropdown"] }, { kind: "directive", type: i7.DropdownToggleDirective, selector: "[cDropdownToggle]", inputs: ["dropdownComponent", "disabled", "caret", "split"], exportAs: ["cDropdownToggle"] }, { kind: "directive", type: i8.DropdownMenuDirective, selector: "[cDropdownMenu]", inputs: ["alignment", "visible", "dark"], exportAs: ["cDropdownMenu"] }, { kind: "component", type: i9.TimePickerRollColComponent, selector: "c-time-picker-roll-col", inputs: ["disabled", "elements", "onClick", "selected", "refresh"], outputs: ["selectedChange"], exportAs: ["cTimePickerRollCol"] }, { kind: "component", type: i10.TimePickerRollAmPmComponent, selector: "c-time-picker-roll-am-pm", inputs: ["disabled", "elements", "onClick", "selected", "refresh"], outputs: ["selectedChange"] }] });
|
|
407
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.2", ngImport: i0, type: TimePickerComponent, decorators: [{
|
|
392
408
|
type: Component,
|
|
393
|
-
args: [{ selector: 'c-time-picker
|
|
409
|
+
args: [{ selector: 'c-time-picker', exportAs: 'cTimePicker', providers: [
|
|
394
410
|
{
|
|
395
411
|
provide: NG_VALUE_ACCESSOR,
|
|
396
412
|
useExisting: forwardRef(() => TimePickerComponent),
|
|
397
413
|
multi: true
|
|
398
414
|
}
|
|
399
|
-
], template: "<div class=\"date-picker-timepickers\" *ngIf=\"variant==='select'\">\n <div class=\"picker time-picker\">\n <div [formGroup]=\"selectTime\" class=\"time-picker-body\">\n <span class=\"time-picker-inline-icon\"></span>\n <select [attr.disabled]=\"disabled || null\" cSelect class=\"ms-0\" formControlName=\"selectHours\" (ngModelChange)=\"handleSelectHoursChange($event)\">\n <option *ngFor=\"let hour of listOfHours12; index as i; trackBy: trackByHour\" [ngValue]=\"hour.value\" [attr.disabled]=\"hour.disabled || null\">{{hour.label}}</option>\n </select>\n {{' :'}}<select [attr.disabled]=\"disabled || null\" cSelect class=\"ms-0\" formControlName=\"selectMinutes\" (ngModelChange)=\"handleSelectMinutesChange($event)\">\n <option *ngFor=\"let minute of listOfMinutes\" [ngValue]=\"minute.value\" [attr.disabled]=\"minute.disabled || null\">{{minute.label}}</option>\n </select>\n <ng-template [ngIf]=\"seconds\">\n {{' :'}}<select [attr.disabled]=\"disabled || null\" cSelect class=\"ms-0\" formControlName=\"selectSeconds\" (ngModelChange)=\"handleSelectSecondsChange($event)\">\n <option *ngFor=\"let second of listOfSeconds\" [ngValue]=\"second.value\" [attr.disabled]=\"second.disabled || null\">{{second.label}}</option>\n </select>\n </ng-template>\n <ng-template [ngIf]=\"hour12\">\n <select [attr.disabled]=\"disabled || null\" cSelect class=\"ms-0\" formControlName=\"selectDayPeriod\" (ngModelChange)=\"handleSelectDayPeriodChange($event)\">\n <option *ngFor=\"let dayPeriod of dayPeriods\" [ngValue]=\"dayPeriod.value\" class=\"time-picker-roll-cell\">{{dayPeriod.label}}</option>\n </select>\n </ng-template>\n </div>\n </div>\n</div>\n\n<c-dropdown #dropdown=\"cDropdown\" [autoClose]=\"'outside'\" class=\"time-picker picker\" *ngIf=\"variant==='roll'\">\n <c-input-group [caret]=\"false\"\n [disabled]=\"disabled ?? dropdown.visible\"\n [sizing]=\"size ?? ''\"\n cDropdownToggle\n class=\"picker-input-group\">\n <input (change)=\"handleTimeInputChange($event)\"\n [formControl]=\"timeInput\"\n [placeholder]=\"placeholder\"\n cFormControl\n [attr.tabindex]=\"disabled ? -1 : 0\"\n [attr.disabled]=\"disabled ? '' : null\"\n [attr.pattern]=\"hour12 ? '(((0[1-9])|(1[0-2])):([0-5])([0-9])\\\\s(A|P)M)' : '([01]?[0-9]|2[0-3]):[0-5][0-9]'\"\n [readonly]=\"inputReadOnly ?? null\"\n >\n <span *ngIf=\"indicator || cleaner\" cInputGroupText>\n <span *ngIf=\"indicator\" class=\"picker-input-group-indicator\">\n <span class=\"picker-input-group-icon time-picker-input-icon\"></span>\n </span>\n <span (click)=\"!disabled && handleClear($event)\" *ngIf=\"cleaner && time && !disabled\" class=\"picker-input-group-cleaner\" role=\"button\">\n <span class=\"picker-input-group-icon time-picker-cleaner-icon\"></span>\n </span>\n </span>\n\n </c-input-group>\n <div cDropdownMenu #dropdownMenu=\"cDropdownMenu\">\n <div class=\"time-picker-body time-picker-roll\" style=\"position: relative;\">\n <c-time-picker-roll-col\n [elements]=\"listOfHours12\"\n [selected]=\"hour\"\n (selectedChange)=\"handleSelectHoursChange($event)\"\n [disabled]=\"disabled\"\n [refresh]=\"dropdownMenu.visible\"\n >\n </c-time-picker-roll-col>\n <c-time-picker-roll-col\n [elements]=\"listOfMinutes\"\n [selected]=\"minute\"\n (selectedChange)=\"handleSelectMinutesChange($event)\"\n [disabled]=\"disabled\"\n [refresh]=\"dropdownMenu.visible\"\n >\n </c-time-picker-roll-col>\n <c-time-picker-roll-col\n *ngIf=\"seconds\"\n [elements]=\"listOfSeconds\"\n [selected]=\"second\"\n (selectedChange)=\"handleSelectSecondsChange($event)\"\n [disabled]=\"disabled\"\n [refresh]=\"dropdownMenu.visible\"\n >\n </c-time-picker-roll-col>\n <c-time-picker-roll-am-pm\n *ngIf=\"hour12\" [elements]=\"dayPeriods\"\n [selected]=\"dayPeriod\"\n (selectedChange)=\"handleSelectDayPeriodChange($event)\"\n [disabled]=\"disabled\"\n [refresh]=\"dropdownMenu.visible\"\n >\n </c-time-picker-roll-am-pm>\n </div>\n </div>\n</c-dropdown>\n", styles: [".disabled{pointer-events:none}\n"] }]
|
|
415
|
+
], template: "<div class=\"date-picker-timepickers\" *ngIf=\"variant==='select'\">\r\n <div class=\"picker time-picker\">\r\n <div [formGroup]=\"selectTime\" class=\"time-picker-body\">\r\n <span class=\"time-picker-inline-icon\"></span>\r\n <select [attr.disabled]=\"disabled || null\" cSelect class=\"ms-0\" formControlName=\"selectHours\" (ngModelChange)=\"handleSelectHoursChange($event)\">\r\n <option *ngFor=\"let hour of listOfHours12; index as i; trackBy: trackByHour\" [ngValue]=\"hour.value\" [attr.disabled]=\"hour.disabled || null\">{{hour.label}}</option>\r\n </select>\r\n {{' :'}}<select [attr.disabled]=\"disabled || null\" cSelect class=\"ms-0\" formControlName=\"selectMinutes\" (ngModelChange)=\"handleSelectMinutesChange($event)\">\r\n <option *ngFor=\"let minute of listOfMinutes\" [ngValue]=\"minute.value\" [attr.disabled]=\"minute.disabled || null\">{{minute.label}}</option>\r\n </select>\r\n <ng-template [ngIf]=\"seconds\">\r\n {{' :'}}<select [attr.disabled]=\"disabled || null\" cSelect class=\"ms-0\" formControlName=\"selectSeconds\" (ngModelChange)=\"handleSelectSecondsChange($event)\">\r\n <option *ngFor=\"let second of listOfSeconds\" [ngValue]=\"second.value\" [attr.disabled]=\"second.disabled || null\">{{second.label}}</option>\r\n </select>\r\n </ng-template>\r\n <ng-template [ngIf]=\"hour12\">\r\n <select [attr.disabled]=\"disabled || null\" cSelect class=\"ms-0\" formControlName=\"selectDayPeriod\" (ngModelChange)=\"handleSelectDayPeriodChange($event)\">\r\n <option *ngFor=\"let dayPeriod of dayPeriods\" [ngValue]=\"dayPeriod.value\" class=\"time-picker-roll-cell\">{{dayPeriod.label}}</option>\r\n </select>\r\n </ng-template>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<c-dropdown #dropdown=\"cDropdown\" [autoClose]=\"'outside'\" class=\"time-picker picker\" *ngIf=\"variant==='roll'\" [visible]=\"visible\">\r\n <c-input-group [caret]=\"false\"\r\n [disabled]=\"disabled ?? dropdown.visible\"\r\n [sizing]=\"size ?? ''\"\r\n cDropdownToggle\r\n class=\"picker-input-group\">\r\n <input (change)=\"handleTimeInputChange($event)\"\r\n [formControl]=\"timeInput\"\r\n [placeholder]=\"placeholder\"\r\n cFormControl\r\n [attr.tabindex]=\"disabled ? -1 : 0\"\r\n [attr.disabled]=\"disabled ? '' : null\"\r\n [attr.pattern]=\"hour12 ? '(((0[1-9])|(1[0-2])):([0-5])([0-9])\\\\s(A|P)M)' : '([01]?[0-9]|2[0-3]):[0-5][0-9]'\"\r\n [readonly]=\"inputReadOnly ?? null\"\r\n >\r\n <span *ngIf=\"indicator || cleaner\" cInputGroupText>\r\n <span *ngIf=\"indicator\" class=\"picker-input-group-indicator\">\r\n <span class=\"picker-input-group-icon time-picker-input-icon\"></span>\r\n </span>\r\n <span (click)=\"!disabled && handleClear($event)\" *ngIf=\"cleaner && time && !disabled\" class=\"picker-input-group-cleaner\" role=\"button\">\r\n <span class=\"picker-input-group-icon time-picker-cleaner-icon\"></span>\r\n </span>\r\n </span>\r\n\r\n </c-input-group>\r\n <div cDropdownMenu #dropdownMenu=\"cDropdownMenu\">\r\n <div class=\"time-picker-body time-picker-roll\" style=\"position: relative;\">\r\n <c-time-picker-roll-col\r\n [elements]=\"listOfHours12\"\r\n [selected]=\"hour\"\r\n (selectedChange)=\"handleSelectHoursChange($event)\"\r\n [disabled]=\"disabled\"\r\n [refresh]=\"dropdownMenu.visible\"\r\n role=\"listbox\"\r\n >\r\n </c-time-picker-roll-col>\r\n <c-time-picker-roll-col\r\n [elements]=\"listOfMinutes\"\r\n [selected]=\"minute\"\r\n (selectedChange)=\"handleSelectMinutesChange($event)\"\r\n [disabled]=\"disabled\"\r\n [refresh]=\"dropdownMenu.visible\"\r\n role=\"listbox\"\r\n >\r\n </c-time-picker-roll-col>\r\n <c-time-picker-roll-col\r\n *ngIf=\"seconds\"\r\n [elements]=\"listOfSeconds\"\r\n [selected]=\"second\"\r\n (selectedChange)=\"handleSelectSecondsChange($event)\"\r\n [disabled]=\"disabled\"\r\n [refresh]=\"dropdownMenu.visible\"\r\n role=\"listbox\"\r\n >\r\n </c-time-picker-roll-col>\r\n <c-time-picker-roll-am-pm\r\n *ngIf=\"hour12\" [elements]=\"dayPeriods\"\r\n [selected]=\"dayPeriod\"\r\n (selectedChange)=\"handleSelectDayPeriodChange($event)\"\r\n [disabled]=\"disabled\"\r\n [refresh]=\"dropdownMenu.visible\"\r\n role=\"listbox\"\r\n >\r\n </c-time-picker-roll-am-pm>\r\n </div>\r\n <div *ngIf=\"templates?.timePickerFooter\" class=\"picker-footer\">\r\n <ng-container *ngTemplateOutlet=\"templates?.timePickerFooter; context: {$implicit: dropdown}\"></ng-container>\r\n </div>\r\n </div>\r\n</c-dropdown>\r\n", styles: [".disabled{pointer-events:none}\n"] }]
|
|
400
416
|
}], ctorParameters: function () { return []; }, propDecorators: { cleaner: [{
|
|
401
417
|
type: Input
|
|
402
418
|
}], dateTimeFormatOptions: [{
|
|
@@ -425,10 +441,18 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.0", ngImpor
|
|
|
425
441
|
type: Input
|
|
426
442
|
}], variant: [{
|
|
427
443
|
type: Input
|
|
444
|
+
}], visible: [{
|
|
445
|
+
type: Input
|
|
428
446
|
}], timeChange: [{
|
|
429
447
|
type: Output
|
|
430
448
|
}], onBlur: [{
|
|
431
449
|
type: HostListener,
|
|
432
450
|
args: ['blur']
|
|
451
|
+
}], dropdown: [{
|
|
452
|
+
type: ViewChild,
|
|
453
|
+
args: ['dropdown']
|
|
454
|
+
}], contentTemplates: [{
|
|
455
|
+
type: ContentChildren,
|
|
456
|
+
args: [TemplateIdDirective, { descendants: true }]
|
|
433
457
|
}] } });
|
|
434
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGltZS1waWNrZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZXVpLWFuZ3VsYXIvc3JjL2xpYi90aW1lLXBpY2tlci90aW1lLXBpY2tlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JldWktYW5ndWxhci9zcmMvbGliL3RpbWUtcGlja2VyL3RpbWUtcGlja2VyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsWUFBWSxFQUNaLFVBQVUsRUFDVixZQUFZLEVBQ1osS0FBSyxFQUdMLE1BQU0sRUFFUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQXdCLFdBQVcsRUFBRSxTQUFTLEVBQUUsaUJBQWlCLEVBQUUsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0csT0FBTyxFQUFnQixxQkFBcUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRTVFLE9BQU8sRUFDTCxlQUFlLEVBQ2YsZUFBZSxFQUFFLGlCQUFpQixFQUdsQyxPQUFPLEVBQ1AsYUFBYSxFQUNiLGNBQWMsRUFDZCxnQkFBZ0IsRUFDaEIsZ0JBQWdCLEVBQ2hCLFFBQVEsRUFDUixXQUFXLEVBRVosTUFBTSxjQUFjLENBQUM7Ozs7Ozs7Ozs7OztBQWV0QixNQUFNLE9BQU8sbUJBQW1CO0lBRTlCO1FBb0JRLGFBQVEsR0FBWSxJQUFJLENBQUM7UUFFakM7Ozs7O1dBS0c7UUFDTSwwQkFBcUIsR0FBMEIsRUFBRSxDQUFDO1FBY25ELGNBQVMsR0FBWSxLQUFLLENBQUM7UUFtQzNCLGVBQVUsR0FBWSxJQUFJLENBQUM7UUFjM0IsbUJBQWMsR0FBWSxLQUFLLENBQUM7UUFFeEM7Ozs7V0FJRztRQUNNLFdBQU0sR0FBVyxTQUFTLENBQUM7UUFFcEM7Ozs7V0FJRztRQUNNLGdCQUFXLEdBQVcsYUFBYSxDQUFDO1FBY3JDLGFB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QVMsRUFBRSxDQUFDO0lBQ25CLENBQUM7O2dIQXJjVSxtQkFBbUI7b0dBQW5CLG1CQUFtQiwrZUFSbkI7UUFDVDtZQUNFLE9BQU8sRUFBRSxpQkFBaUI7WUFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxtQkFBbUIsQ0FBQztZQUNsRCxLQUFLLEVBQUUsSUFBSTtTQUNaO0tBQ0YsZ0ZDeENILDh6SUF1RkE7MkZEN0NhLG1CQUFtQjtrQkFiL0IsU0FBUzsrQkFDRSxzQkFBc0IsWUFHdEIsbUJBQW1CLGFBQ2xCO3dCQUNUOzRCQUNFLE9BQU8sRUFBRSxpQkFBaUI7NEJBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLG9CQUFvQixDQUFDOzRCQUNsRCxLQUFLLEVBQUUsSUFBSTt5QkFDWjtxQkFDRjswRUFrQkcsT0FBTztzQkFEVixLQUFLO2dCQWVHLHFCQUFxQjtzQkFBN0IsS0FBSztnQkFRRixRQUFRO3NCQURYLEtBQUs7Z0JBY0csV0FBVztzQkFBbkIsS0FBSztnQkFPRyxhQUFhO3NCQUFyQixLQUFLO2dCQU9HLGFBQWE7c0JBQXJCLEtBQUs7Z0JBUUYsU0FBUztzQkFEWixLQUFLO2dCQWVGLGFBQWE7c0JBRGhCLEtBQUs7Z0JBY0csTUFBTTtzQkFBZCxLQUFLO2dCQU9HLFdBQVc7c0JBQW5CLEtBQUs7Z0JBUUYsT0FBTztzQkFEVixLQUFLO2dCQWNHLElBQUk7c0JBQVosS0FBSztnQkFRRixJQUFJO3NCQURQLEtBQUs7Z0JBdUJHLE9BQU87c0JBQWYsS0FBSztnQkFFSSxVQUFVO3NCQUFuQixNQUFNO2dCQUVlLE1BQU07c0JBQTNCLFlBQVk7dUJBQUMsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgRXZlbnRFbWl0dGVyLFxuICBmb3J3YXJkUmVmLFxuICBIb3N0TGlzdGVuZXIsXG4gIElucHV0LFxuICBPbkNoYW5nZXMsXG4gIE9uSW5pdCxcbiAgT3V0cHV0LFxuICBTaW1wbGVDaGFuZ2VzXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIEZvcm1Db250cm9sLCBGb3JtR3JvdXAsIE5HX1ZBTFVFX0FDQ0VTU09SLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgQm9vbGVhbklucHV0LCBjb2VyY2VCb29sZWFuUHJvcGVydHkgfSBmcm9tICdAYW5ndWxhci9jZGsvY29lcmNpb24nO1xuXG5pbXBvcnQge1xuICBjb252ZXJ0MTJoVG8yNGgsXG4gIGNvbnZlcnQyNGhUbzEyaCwgY29udmVydFRpbWVUb0RhdGUsXG4gIERhdGVUaW1lRm9ybWF0T3B0aW9ucyxcbiAgRGF5UGVyaW9kLFxuICBnZXRBbVBtLFxuICBnZXREYXlQZXJpb2RzLFxuICBnZXRMaXN0T2ZIb3VycyxcbiAgZ2V0TGlzdE9mTWludXRlcyxcbiAgZ2V0TGlzdE9mU2Vjb25kcyxcbiAgaXNIb3VyMTIsXG4gIGlzVmFsaWRUaW1lLFxuICBJVGltZVZhbHVlXG59IGZyb20gJy4vdGltZS51dGlscyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2MtdGltZS1waWNrZXItc2VsZWN0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL3RpbWUtcGlja2VyLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vdGltZS1waWNrZXIuY29tcG9uZW50LnNjc3MnXSxcbiAgZXhwb3J0QXM6ICdjVGltZVBpY2tlclNlbGVjdCcsXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gVGltZVBpY2tlckNvbXBvbmVudCksXG4gICAgICBtdWx0aTogdHJ1ZVxuICAgIH1cbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBUaW1lUGlja2VyQ29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzLCBPbkluaXQsIENvbnRyb2xWYWx1ZUFjY2Vzc29yIHtcblxuICBjb25zdHJ1Y3RvcigpIHt9XG5cbiAgc3RhdGljIG5nQWNjZXB0SW5wdXRUeXBlX2NsZWFuZXI6IEJvb2xlYW5JbnB1dDtcbiAgc3RhdGljIG5nQWNjZXB0SW5wdXRUeXBlX2Rpc2FibGVkOiBCb29sZWFuSW5wdXQ7XG4gIHN0YXRpYyBuZ0FjY2VwdElucHV0VHlwZV9pbmRpY2F0b3I6IEJvb2xlYW5JbnB1dDtcbiAgc3RhdGljIG5nQWNjZXB0SW5wdXRUeXBlX2lucHV0UmVhZE9ubHk6IEJvb2xlYW5JbnB1dDtcbiAgc3RhdGljIG5nQWNjZXB0SW5wdXRUeXBlX3NlY29uZHM6IEJvb2xlYW5JbnB1dDtcblxuICAvKipcbiAgICogVG9nZ2xlIHZpc2liaWxpdHkgb3Igc2V0IHRoZSBjb250ZW50IG9mIHRoZSBjbGVhbmVyIGJ1dHRvbi5cbiAgICogQHR5cGUgYm9vbGVhblxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICBASW5wdXQoKVxuICBzZXQgY2xlYW5lcih2YWx1ZTogYm9vbGVhbikge1xuICAgIHRoaXMuX2NsZWFuZXIgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpO1xuICB9XG4gIGdldCBjbGVhbmVyKCkge1xuICAgIHJldHVybiB0aGlzLl9jbGVhbmVyO1xuICB9XG4gIHByaXZhdGUgX2NsZWFuZXI6IGJvb2xlYW4gPSB0cnVlO1xuXG4gIC8qKlxuICAgKiBTZXRzIERhdGVUaW1lIGZvcm1hdCBvcHRpb25zIGluY2x1ZGluZyB0aW1lWm9uZVxuICAgKiBAdHlwZSBEYXRlVGltZUZvcm1hdE9wdGlvbnNcbiAgICogQGRlZmF1bHQge31cbiAgICogQG5vdGUgVGhlIGRhdGUgb2JqZWN0IGRvZXNuJ3Qgc3RvcmUgdGltZVpvbmUsIGl0IGtlZXBzIHRoZSBsb2NhbCB0aW1lem9uZSBvZiB0aGUgYnJvd3NlciwgcmVnYXJkbGVzcyBpZiB5b3UgcGFyc2VkIFVUQyBkYXRlcy5cbiAgICovXG4gIEBJbnB1dCgpIGRhdGVUaW1lRm9ybWF0T3B0aW9uczogRGF0ZVRpbWVGb3JtYXRPcHRpb25zID0ge307XG5cbiAgLyoqXG4gICAqIFRvZ2dsZSB0aGUgZGlzYWJsZWQgc3RhdGUgZm9yIHRoZSBjb21wb25lbnQuXG4gICAqIEB0eXBlIGJvb2xlYW5cbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIEBJbnB1dCgpXG4gIHNldCBkaXNhYmxlZCh2YWx1ZTogYm9vbGVhbikge1xuICAgIHRoaXMuX2Rpc2FibGVkID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKTtcbiAgfVxuICBnZXQgZGlzYWJsZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX2Rpc2FibGVkO1xuICB9XG4gIHByaXZhdGUgX2Rpc2FibGVkOiBib29sZWFuID0gZmFsc2U7XG5cbiAgLyoqXG4gICAqIEZpbHRlciBhdmFpbGFibGUgaG91cnMgdG8gcGljay5cbiAgICogQHR5cGUgKHZhbHVlOiBudW1iZXIpID0+IGJvb2xlYW47XG4gICAqIEBkZWZhdWx0IHVuZGVmaW5lZFxuICAgKi9cbiAgQElucHV0KCkgZmlsdGVySG91cnM/OiAodmFsdWU6IG51bWJlcikgPT4gYm9vbGVhbjtcblxuICAvKipcbiAgICogRmlsdGVyIGF2YWlsYWJsZSBtaW51dGVzIHRvIHBpY2suXG4gICAqIEB0eXBlICh2YWx1ZTogbnVtYmVyKSA9PiBib29sZWFuO1xuICAgKiBAZGVmYXVsdCB1bmRlZmluZWRcbiAgICovXG4gIEBJbnB1dCgpIGZpbHRlck1pbnV0ZXM/OiAodmFsdWU6IG51bWJlcikgPT4gYm9vbGVhbjtcblxuICAvKipcbiAgICogRmlsdGVyIGF2YWlsYWJsZSBzZWNvbmRzIHRvIHBpY2suXG4gICAqIEB0eXBlICh2YWx1ZTogbnVtYmVyKSA9PiBib29sZWFuO1xuICAgKiBAZGVmYXVsdCB1bmRlZmluZWRcbiAgICovXG4gIEBJbnB1dCgpIGZpbHRlclNlY29uZHM/OiAodmFsdWU6IG51bWJlcikgPT4gYm9vbGVhbjtcblxuICAvKipcbiAgICogVG9nZ2xlIHZpc2liaWxpdHkgb3Igc2V0IHRoZSBjb250ZW50IG9mIHRoZSBpbnB1dCBpbmRpY2F0b3IuXG4gICAqIEB0eXBlIGJvb2xlYW5cbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKi9cbiAgQElucHV0KClcbiAgc2V0IGluZGljYXRvcih2YWx1ZTogYm9vbGVhbikge1xuICAgIHRoaXMuX2luZGljYXRvciA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7XG4gIH1cbiAgZ2V0IGluZGljYXRvcigpIHtcbiAgICByZXR1cm4gdGhpcy5faW5kaWNhdG9yO1xuICB9XG4gIHByaXZhdGUgX2luZGljYXRvcjogYm9vbGVhbiA9IHRydWU7XG5cbiAgLyoqXG4gICAqIFRvZ2dsZSB0aGUgcmVhZG9ubHkgc3RhdGUgZm9yIHRoZSBjb21wb25lbnQuXG4gICAqIEB0eXBlIGJvb2xlYW5cbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIEBJbnB1dCgpXG4gIHNldCBpbnB1dFJlYWRPbmx5KHZhbHVlOiBib29sZWFuKSB7XG4gICAgdGhpcy5faW5wdXRSZWFkT25seSA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7XG4gIH1cbiAgZ2V0IGlucHV0UmVhZE9ubHkoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX2lucHV0UmVhZE9ubHk7XG4gIH1cbiAgcHJpdmF0ZSBfaW5wdXRSZWFkT25seTogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIC8qKlxuICAgKiBTZXRzIHRoZSBkZWZhdWx0IGxvY2FsZSBmb3IgY29tcG9uZW50cy4gSWYgbm90IHNldCwgaXQgaXMgaW5oZXJpdGVkIGZyb20gdGhlIGJyb3dzZXIuXG4gICAqIEB0eXBlIHN0cmluZ1xuICAgKiBAZGVmYXVsdCBkZWZhdWx0XG4gICAqL1xuICBASW5wdXQoKSBsb2NhbGU6IHN0cmluZyA9ICdkZWZhdWx0JztcblxuICAvKipcbiAgICogU3BlY2lmaWVzIHNob3J0IGhpbnQgdmlzaWJsZSBpbiB0aW1lIGlucHV0LlxuICAgKiBAdHlwZSBzdHJpbmdcbiAgICogQGRlZmF1bHQgJ1NlbGVjdCB0aW1lJ1xuICAgKi9cbiAgQElucHV0KCkgcGxhY2Vob2xkZXI6IHN0cmluZyA9ICdTZWxlY3QgdGltZSc7XG5cbiAgLyoqXG4gICAqIFRvZ2dsZSBzZWNvbmRzIHZpc2liaWxpdHkuXG4gICAqIEB0eXBlIGJvb2xlYW5cbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIEBJbnB1dCgpXG4gIHNldCBzZWNvbmRzKHZhbHVlOiBib29sZWFuKSB7XG4gICAgdGhpcy5fc2Vjb25kcyA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7XG4gIH1cbiAgZ2V0IHNlY29uZHMoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX3NlY29uZHM7XG4gIH1cbiAgcHJpdmF0ZSBfc2Vjb25kczogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIC8qKlxuICAgKiBTaXplIHRoZSBjb21wb25lbnQgc21hbGwgb3IgbGFyZ2UuXG4gICAqIEB0eXBlICdzbScgfCAnbGcnIHwgdW5kZWZpbmVkXG4gICAqIEBkZWZhdWx0IHVuZGVmaW5lZFxuICAgKi9cbiAgQElucHV0KCkgc2l6ZT86ICdzbScgfCAnbGcnO1xuXG4gIC8qKlxuICAgKiBJbml0aWFsIHNlbGVjdGVkIHRpbWUuXG4gICAqIEB0eXBlIERhdGUgfCBzdHJpbmcgfCBudWxsIHwgbnVtYmVyXG4gICAqIEBkZWZhdWx0IHVuZGVmaW5lZFxuICAgKi9cbiAgQElucHV0KClcbiAgc2V0IHRpbWUodmFsdWUpIHtcbiAgICBpZiAodmFsdWUgJiYgaXNWYWxpZFRpbWUodmFsdWUpKSB7XG4gICAgICBjb25zdCB0aW1lID0gbmV3IERhdGUodmFsdWUpO1xuICAgICAgdGhpcy5kYXlQZXJpb2QgPSBnZXRBbVBtKHRpbWUsIHRoaXMubG9jYWxlKTtcbiAgICAgIGlmICh0aGlzLl90aW1lPy5nZXRUaW1lKCkgIT09IHRpbWUuZ2V0VGltZSgpKSB7XG4gICAgICAgIHRoaXMuX3RpbWUgPSBuZXcgRGF0ZSh0aW1lLmdldFRpbWUoKSk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuY2xlYXJUaW1lKCk7XG4gICAgfVxuICB9XG4gIGdldCB0aW1lKCkge1xuICAgIHJldHVybiB0aGlzLl90aW1lO1xuICB9XG4gIHByaXZhdGUgX3RpbWU/OiBEYXRlO1xuICBwcml2YXRlIF90aW1lSW50ZXJuYWw/OiBEYXRlO1xuXG4gIC8qKlxuICAgKiBTZXQgdGhlIHRpbWUgcGlja2VyIHZhcmlhbnQgdG8gYSByb2xsIG9yIHNlbGVjdC5cbiAgICogQHR5cGUgJ3JvbGwnIHwgJ3NlbGVjdCdcbiAgICogQGRlZmF1bHQgJ3JvbGwnXG4gICAqL1xuICBASW5wdXQoKSB2YXJpYW50OiAncm9sbCcgfCAnc2VsZWN0JyA9ICdyb2xsJ1xuXG4gIEBPdXRwdXQoKSB0aW1lQ2hhbmdlOiBFdmVudEVtaXR0ZXI8RGF0ZSB8IHVuZGVmaW5lZD4gPSBuZXcgRXZlbnRFbWl0dGVyPERhdGUgfCB1bmRlZmluZWQ+KGZhbHNlKTtcblxuICBASG9zdExpc3RlbmVyKCdibHVyJykgb25CbHVyKCkge1xuICAgIHRoaXMub25Ub3VjaGVkKCk7XG4gIH1cblxuICBsaXN0T2ZIb3VycyE6IElUaW1lVmFsdWVbXTtcbiAgbGlzdE9mSG91cnMxMiE6IElUaW1lVmFsdWVbXTtcbiAgbGlzdE9mTWludXRlcyE6IElUaW1lVmFsdWVbXTtcbiAgbGlzdE9mU2Vjb25kcyE6IElUaW1lVmFsdWVbXTtcbiAgaG91cjEyOiBib29sZWFuID0gaXNIb3VyMTIodGhpcy5sb2NhbGUpO1xuICBkYXlQZXJpb2RzID0gW1xuICAgIHt2YWx1ZTogJ2FtJywgbGFiZWw6ICdhbSd9LFxuICAgIHt2YWx1ZTogJ3BtJywgbGFiZWw6ICdwbSd9XG4gIF1cblxuICAvLyBkYXlQZXJpb2RFbGVtZW50cyA9IFtcbiAgLy8gICB7dmFsdWU6ICdhbScsIGxhYmVsOiAnYW0nfSxcbiAgLy8gICB7dmFsdWU6ICdwbScsIGxhYmVsOiAncG0nfVxuICAvLyBdXG5cbiAgc2V0IHRpbWVJbnB1dFZhbHVlKHZhbHVlOiBzdHJpbmcpIHtcbiAgICB0aGlzLnRpbWVJbnB1dC5zZXRWYWx1ZSh2YWx1ZSk7XG4gICAgdGhpcy5fdGltZUlucHV0VmFsdWUgPSB2YWx1ZTtcbiAgfVxuICBnZXQgdGltZUlucHV0VmFsdWUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5fdGltZUlucHV0VmFsdWU7XG4gIH1cbiAgcHJpdmF0ZSBfdGltZUlucHV0VmFsdWU6IHN0cmluZyA9IHRoaXMudGltZT8udG9Mb2NhbGVUaW1lU3RyaW5nKHRoaXMubG9jYWxlLCB7dGltZVN0eWxlOiB0aGlzLnNlY29uZHMgPyAnbWVkaXVtJyA6ICdzaG9ydCd9KSA/PyAnJztcblxuICBzZWxlY3RUaW1lID0gbmV3IEZvcm1Hcm91cCh7XG4gICAgc2VsZWN0SG91cnM6IG5ldyBGb3JtQ29udHJvbCh7IHZhbHVlOiB0aGlzLmhvdXIsIGRpc2FibGVkOiB0aGlzLmRpc2FibGVkIH0pLFxuICAgIHNlbGVjdE1pbnV0ZXM6IG5ldyBGb3JtQ29udHJvbCh7IHZhbHVlOiB0aGlzLm1pbnV0ZSwgZGlzYWJsZWQ6IHRoaXMuZGlzYWJsZWQgfSksXG4gICAgc2VsZWN0U2Vjb25kczogbmV3IEZvcm1Db250cm9sKHsgdmFsdWU6IHRoaXMuc2Vjb25kLCBkaXNhYmxlZDogdGhpcy5kaXNhYmxlZCB9KSxcbiAgICBzZWxlY3REYXlQZXJpb2Q6IG5ldyBGb3JtQ29udHJvbCh7IHZhbHVlOiB0aGlzLmRheVBlcmlvZCwgZGlzYWJsZWQ6IHRoaXMuZGlzYWJsZWQgfSlcbiAgfSk7XG5cbiAgdGltZUlucHV0ID0gbmV3IEZvcm1Db250cm9sKHsgdmFsdWU6IHRoaXMudGltZUlucHV0VmFsdWUsIGRpc2FibGVkOiB0aGlzLmRpc2FibGVkIH0sIFtcbiAgICBWYWxpZGF0b3JzLnJlcXVpcmVkXG4gIF0pO1xuXG4gIHNldCBob3VyKHZhbHVlOiBudW1iZXIpIHtcbiAgICBpZiAodGhpcy5faG91ciAhPT0gdmFsdWUpIHtcbiAgICAgIGlmICh2YWx1ZSA8IDApIHtcbiAgICAgICAgdGhpcy5jbGVhclRpbWUoKTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgdGhpcy5faG91ciA9IHZhbHVlO1xuICAgIH1cbiAgfVxuICBnZXQgaG91cigpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLl9ob3VyO1xuICB9XG4gIHByaXZhdGUgX2hvdXIgPSAtMTtcblxuICBzZXQgbWludXRlKHZhbHVlOiBudW1iZXIpIHtcbiAgICBpZiAodGhpcy5fbWludXRlICE9PSB2YWx1ZSkge1xuICAgICAgaWYgKHZhbHVlIDwgMCkge1xuICAgICAgICB0aGlzLmNsZWFyVGltZSgpO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICB0aGlzLl9taW51dGUgPSB2YWx1ZTtcbiAgICB9XG4gIH1cbiAgZ2V0IG1pbnV0ZSgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLl9taW51dGU7XG4gIH1cbiAgcHJpdmF0ZSBfbWludXRlID0gLTE7XG5cbiAgc2V0IHNlY29uZCh2YWx1ZTogbnVtYmVyKSB7XG4gICAgaWYgKHRoaXMuX3NlY29uZCAhPT0gdmFsdWUpIHtcbiAgICAgIGlmICh2YWx1ZSA8IDApIHtcbiAgICAgICAgdGhpcy5jbGVhclRpbWUoKTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgdGhpcy5fc2Vjb25kID0gdmFsdWU7XG4gICAgfVxuICB9XG4gIGdldCBzZWNvbmQoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5fc2Vjb25kO1xuICB9XG4gIHByaXZhdGUgX3NlY29uZCA9IC0xO1xuXG4gIHNldCBkYXlQZXJpb2QodmFsdWUpIHtcbiAgICB0aGlzLl9kYXlQZXJpb2QgPSB2YWx1ZTtcbiAgICB0aGlzLmxpc3RPZkhvdXJzMTIgPSB0aGlzLmhvdXIxMiA/IHRoaXMubGlzdE9mSG91cnM/LmZpbHRlcihpdGVtID0+IChpdGVtLmRheVBlcmlvZCAmJiBpdGVtLmRheVBlcmlvZCA9PT0gdmFsdWUpIHx8ICFpdGVtLmRheVBlcmlvZCkgOiB0aGlzLmxpc3RPZkhvdXJzO1xuICAgIHRoaXMucGF0Y2hTZWxlY3RUaW1lVmFsdWVzKCk7XG4gIH1cbiAgZ2V0IGRheVBlcmlvZCgpIHtcbiAgICByZXR1cm4gdGhpcy5fZGF5UGVyaW9kO1xuICB9XG4gIHByaXZhdGUgX2RheVBlcmlvZDogRGF5UGVyaW9kID0gJ2FtJztcblxuICBzZXRUaW1lKCkge1xuICAgIHRoaXMuX2hvdXIgPSB0aGlzLl9ob3VyIDwgMCA/IDAgOiB0aGlzLl9ob3VyO1xuICAgIHRoaXMuX21pbnV0ZSA9IHRoaXMuX21pbnV0ZSA8IDAgPyAwIDogdGhpcy5fbWludXRlO1xuICAgIHRoaXMuX3NlY29uZCA9IHRoaXMuX3NlY29uZCA8IDAgPyAwIDogdGhpcy5fc2Vjb25kO1xuXG4gICAgY29uc3QgdGltZSA9IG5ldyBEYXRlKHRoaXMuX3RpbWU/LmdldFRpbWUoKSA/PyBuZXcgRGF0ZSgpKTtcbiAgICB0aW1lLnNldEhvdXJzKHRoaXMuaG91ciwgdGhpcy5taW51dGUsIHRoaXMuc2Vjb25kLCAwKTtcbiAgICB0aGlzLnRpbWUgPSB0aW1lO1xuICAgIHRoaXMuZW1pdFRpbWUodGltZSk7XG4gIH1cblxuICBjbGVhclRpbWUoKSB7XG4gICAgdGhpcy5faG91ciA9IC0xO1xuICAgIHRoaXMuX21pbnV0ZSA9IC0xO1xuICAgIHRoaXMuX3NlY29uZCA9IC0xO1xuICAgIHRoaXMuZGF5UGVyaW9kID0gJ2FtJztcbiAgICBpZiAodGhpcy50aW1lKSB7XG4gICAgICB0aGlzLl90aW1lID0gdW5kZWZpbmVkO1xuICAgICAgdGhpcy5lbWl0VGltZSh1bmRlZmluZWQpO1xuICAgIH1cbiAgICB0aGlzLnBhdGNoU2VsZWN0VGltZVZhbHVlcygpO1xuICB9XG5cbiAgZW1pdFRpbWUodGltZTogRGF0ZSB8IHVuZGVmaW5lZCkge1xuICAgIGNvbnN0IHRpbWVWYWx1ZSA9ICEhdGltZSAmJiBpc1ZhbGlkVGltZSh0aW1lKSA/IG5ldyBEYXRlKHRpbWUuZ2V0VGltZSgpKSA6IHVuZGVmaW5lZDtcbiAgICBpZiAodGhpcy5fdGltZUludGVybmFsPy5nZXRUaW1lKCkgIT09IHRpbWVWYWx1ZT8uZ2V0VGltZSgpKSB7XG4gICAgICB0aGlzLnRpbWVDaGFuZ2UuZW1pdCh0aW1lVmFsdWUpO1xuICAgICAgdGhpcy5vbkNoYW5nZSh0aW1lVmFsdWUpO1xuICAgICAgdGhpcy5vblRvdWNoZWQoKTtcbiAgICAgIHRoaXMuX3RpbWVJbnRlcm5hbCA9IHRpbWVWYWx1ZTtcbiAgICB9XG4gICAgdGhpcy50aW1lSW5wdXRWYWx1ZSA9IHRoaXMudGltZT8udG9Mb2NhbGVUaW1lU3RyaW5nKHRoaXMubG9jYWxlLCB7dGltZVN0eWxlOiB0aGlzLnNlY29uZHMgPyAnbWVkaXVtJyA6ICdzaG9ydCd9KSA/PyAnJztcbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuc2V0VGltZUxpc3RzKCk7XG4gICAgdGhpcy51cGRhdGVTZWxlY3RUaW1lKCk7XG4gIH1cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgaWYgKGNoYW5nZXNbJ3RpbWUnXSkge1xuICAgICAgaWYgKCFjaGFuZ2VzWyd0aW1lJ10uZmlyc3RDaGFuZ2UpIHtcbiAgICAgICAgaWYgKHRoaXMuX3RpbWVJbnRlcm5hbD8uZ2V0VGltZSgpICE9PSBjaGFuZ2VzWyd0aW1lJ10uY3VycmVudFZhbHVlPy5nZXRUaW1lKCkpIHtcbiAgICAgICAgICB0aGlzLnVwZGF0ZVNlbGVjdFRpbWUoKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHNldFRpbWVMaXN0cygpIHtcbiAgICB0aGlzLmRheVBlcmlvZHMgPSBnZXREYXlQZXJpb2RzKHRoaXMubG9jYWxlLCB0aGlzLmRhdGVUaW1lRm9ybWF0T3B0aW9ucyk7XG4gICAgdGhpcy5ob3VyMTIgPSBpc0hvdXIxMih0aGlzLmxvY2FsZSk7XG4gICAgdGhpcy5saXN0T2ZIb3VycyA9IHRoaXMubGlzdE9mVGltZVNlZ21lbnRzKGdldExpc3RPZkhvdXJzLCB0aGlzLmZpbHRlckhvdXJzKTtcbiAgICB0aGlzLmxpc3RPZk1pbnV0ZXMgPSB0aGlzLmxpc3RPZlRpbWVTZWdtZW50cyhnZXRMaXN0T2ZNaW51dGVzLCB0aGlzLmZpbHRlck1pbnV0ZXMpO1xuICAgIHRoaXMubGlzdE9mU2Vjb25kcyA9IHRoaXMubGlzdE9mVGltZVNlZ21lbnRzKGdldExpc3RPZlNlY29uZHMsIHRoaXMuZmlsdGVyU2Vjb25kcyk7XG4gICAgaWYgKHRoaXMudmFyaWFudCA9PT0gJ3NlbGVjdCcpIHtcbiAgICAgIGNvbnN0IHVuZGVmU2VnbWVudCA9IHsgdmFsdWU6IC0xLCBsYWJlbDogJyAtLScsIGRpc2FibGVkOiB0cnVlIH07XG4gICAgICB0aGlzLmxpc3RPZkhvdXJzLnVuc2hpZnQoeyAuLi51bmRlZlNlZ21lbnQgfSk7XG4gICAgICB0aGlzLmxpc3RPZk1pbnV0ZXMudW5zaGlmdCh7IC4uLnVuZGVmU2VnbWVudCB9KTtcbiAgICAgIHRoaXMubGlzdE9mU2Vjb25kcy51bnNoaWZ0KHsgLi4udW5kZWZTZWdtZW50IH0pO1xuICAgIH1cbiAgICB0aGlzLmxpc3RPZkhvdXJzMTIgPSB0aGlzLmhvdXIxMiA/IHRoaXMubGlzdE9mSG91cnMuZmlsdGVyKGl0ZW0gPT4gKGl0ZW0uZGF5UGVyaW9kICYmIGl0ZW0uZGF5UGVyaW9kID09PSB0aGlzLmRheVBlcmlvZCkgfHwgIWl0ZW0uZGF5UGVyaW9kKSA6IHRoaXMubGlzdE9mSG91cnM7XG4gIH1cblxuICB1cGRhdGVTZWxlY3RUaW1lKHRpbWUgPSB0aGlzLnRpbWUpIHtcbiAgICBpZiAoISF0aW1lICYmIGlzVmFsaWRUaW1lKHRpbWUpKSB7XG4gICAgICBjb25zdCBob3VyID0gdGltZS5nZXRIb3VycygpID8/IDA7XG4gICAgICBjb25zdCBtaW51dGUgPSB0aW1lLmdldE1pbnV0ZXMoKSA/PyAwO1xuICAgICAgY29uc3Qgc2Vjb25kID0gdGhpcy5zZWNvbmRzID8gKHRpbWUuZ2V0U2Vjb25kcygpID8/IDApIDogMDtcblxuICAgICAgY29uc3QgY2xvc2VzdFNlY29uZCA9IHRoaXMuY2xvc2VzdFRpbWUodGhpcy5saXN0T2ZTZWNvbmRzLCBzZWNvbmQpO1xuICAgICAgY29uc3QgY2xvc2VzdE1pbnV0ZSA9IHRoaXMuY2xvc2VzdFRpbWUodGhpcy5saXN0T2ZNaW51dGVzLCBtaW51dGUpO1xuICAgICAgY29uc3QgY2xvc2VzdEhvdXIgPSB0aGlzLmNsb3Nlc3RUaW1lKHRoaXMubGlzdE9mSG91cnMsIGhvdXIpO1xuXG4gICAgICB0aGlzLnNlY29uZCA9IHRoaXMuc2Vjb25kcyA/IGNsb3Nlc3RTZWNvbmQudmFsdWUgOiAwO1xuICAgICAgdGhpcy5taW51dGUgPSBjbG9zZXN0TWludXRlLnZhbHVlO1xuICAgICAgdGhpcy5ob3VyID0gY2xvc2VzdEhvdXIudmFsdWU7XG4gICAgICB0aGlzLnNldFRpbWUoKTtcbiAgICAgIHRoaXMucGF0Y2hTZWxlY3RUaW1lVmFsdWVzKCk7XG4gICAgfVxuICB9XG5cbiAgY2xvc2VzdFRpbWUodGltZUFycmF5OiBJVGltZVZhbHVlW10sIHRpbWVTZWdtZW50OiBudW1iZXIpIHtcbiAgICBsZXQgYXJyYXkgPSB0aW1lQXJyYXkgPz8gW3sgdmFsdWU6IDAsIGxhYmVsOiAnMDAnIH1dO1xuICAgIGlmICh0aGlzLnRpbWUpIHtcbiAgICAgIGFycmF5ID0gdGltZUFycmF5LmZpbHRlcihlbCA9PiBlbC52YWx1ZSA+PSAwKTtcbiAgICAgIGFycmF5ID0gYXJyYXkubGVuZ3RoID8gYXJyYXkgOiB0aW1lQXJyYXk7XG4gICAgfVxuICAgIHJldHVybiBhcnJheS5yZWR1Y2UoKGE6IElUaW1lVmFsdWUsIGI6IElUaW1lVmFsdWUpID0+IHtcbiAgICAgIHJldHVybiBNYXRoLmFicyhiLnZhbHVlIC0gdGltZVNlZ21lbnQpIDwgTWF0aC5hYnMoYS52YWx1ZSAtIHRpbWVTZWdtZW50KSA/IGIgOiBhO1xuICAgIH0pO1xuICB9XG5cbiAgbGlzdE9mVGltZVNlZ21lbnRzKGdldExpc3RPZlRpbWVTZWdtZW50czogKGxvY2FsZTogc3RyaW5nLCBkYXRlVGltZUZvcm1hdE9wdGlvbnM6IERhdGVUaW1lRm9ybWF0T3B0aW9ucykgPT4gSVRpbWVWYWx1ZVtdLCBmaWx0ZXJUaW1lU2VnbWVudHM6ICgodGltZVNlZ21lbnRWYWx1ZTogbnVtYmVyKSA9PiBib29sZWFuKSB8IHVuZGVmaW5lZCkge1xuICAgIGNvbnN0IGxpc3QgPSBnZXRMaXN0T2ZUaW1lU2VnbWVudHModGhpcy5sb2NhbGUsIHRoaXMuZGF0ZVRpbWVGb3JtYXRPcHRpb25zKS5maWx0ZXIoKHNlZ21lbnQ6IElUaW1lVmFsdWUpID0+IHtcbiAgICAgIHJldHVybiB0eXBlb2YgZmlsdGVyVGltZVNlZ21lbnRzID09PSAnZnVuY3Rpb24nID8gZmlsdGVyVGltZVNlZ21lbnRzKHNlZ21lbnQudmFsdWUpIDogdHJ1ZTtcbiAgICB9KTtcbiAgICByZXR1cm4gbGlzdC5sZW5ndGggPyBsaXN0IDogZ2V0TGlzdE9mVGltZVNlZ21lbnRzKHRoaXMubG9jYWxlLCB0aGlzLmRhdGVUaW1lRm9ybWF0T3B0aW9ucykuc2xpY2UoMCwgMSk7XG4gIH1cblxuICBoYW5kbGVTZWxlY3REYXlQZXJpb2RDaGFuZ2UoZGF5UGVyaW9kOiBEYXlQZXJpb2QpIHtcbiAgICBpZiAoZGF5UGVyaW9kICE9PSB0aGlzLmRheVBlcmlvZCkge1xuICAgICAgY29uc3QgaHJzID0gdGhpcy50aW1lPy5nZXRIb3VycygpID8/ICh0aGlzLmhvdXIgPCAwID8gMCA6IHRoaXMuaG91cik7XG4gICAgICBjb25zdCBob3VyID0gaHJzID4gMTIgPyBjb252ZXJ0MjRoVG8xMmgoaHJzKSA6IGNvbnZlcnQxMmhUbzI0aChkYXlQZXJpb2QsIGhycyk7XG4gICAgICB0aGlzLmhvdXIgPSB0aGlzLmNsb3Nlc3RUaW1lKHRoaXMubGlzdE9mSG91cnMsIGhvdXIpLnZhbHVlO1xuICAgICAgaWYgKGhvdXIgPj0gMCkge1xuICAgICAgICB0aGlzLnNldFRpbWUoKTtcbiAgICAgIH1cbiAgICAgIHRoaXMudXBkYXRlU2VsZWN0VGltZSgpO1xuICAgIH1cbiAgfVxuXG4gIGhhbmRsZVNlbGVjdEhvdXJzQ2hhbmdlKGhvdXI6IG51bWJlcikge1xuICAgIHRoaXMuaG91ciA9IGhvdXI7XG4gICAgaWYgKGhvdXIgPj0gMCkge1xuICAgICAgdGhpcy5zZXRUaW1lKCk7XG4gICAgfVxuICAgIHRoaXMudXBkYXRlU2VsZWN0VGltZSgpO1xuICB9XG5cbiAgaGFuZGxlU2VsZWN0TWludXRlc0NoYW5nZShtaW51dGU6IG51bWJlcikge1xuICAgIHRoaXMubWludXRlID0gbWludXRlO1xuICAgIGlmIChtaW51dGUgPj0gMCkge1xuICAgICAgdGhpcy5zZXRUaW1lKCk7XG4gICAgfVxuICAgIHRoaXMudXBkYXRlU2VsZWN0VGltZSgpO1xuICB9XG5cbiAgaGFuZGxlU2VsZWN0U2Vjb25kc0NoYW5nZShzZWNvbmQ6IG51bWJlcikge1xuICAgIHRoaXMuc2Vjb25kID0gc2Vjb25kO1xuICAgIGlmIChzZWNvbmQgPj0gMCkge1xuICAgICAgdGhpcy5zZXRUaW1lKCk7XG4gICAgfVxuICAgIHRoaXMudXBkYXRlU2VsZWN0VGltZSgpO1xuICB9XG5cbiAgcGF0Y2hTZWxlY3RUaW1lVmFsdWVzKCkge1xuICAgIGNvbnN0IGRheVBlcmlvZCA9IHRoaXMuc2VsZWN0VGltZS5nZXQoJ3NlbGVjdERheVBlcmlvZCcpPy52YWx1ZTtcbiAgICBpZiAodGhpcy5kYXlQZXJpb2QgIT09IGRheVBlcmlvZCkge1xuICAgICAgdGhpcy5zZWxlY3RUaW1lLnBhdGNoVmFsdWUoe1xuICAgICAgICBzZWxlY3REYXlQZXJpb2Q6IHRoaXMuZGF5UGVyaW9kID8/ICdhbSdcbiAgICAgIH0pO1xuICAgIH1cbiAgICBjb25zdCBob3VycyA9IHRoaXMuc2VsZWN0VGltZS5nZXQoJ3NlbGVjdEhvdXJzJyk/LnZhbHVlO1xuICAgIGNvbnN0IG1pbnV0ZXMgPSB0aGlzLnNlbGVjdFRpbWUuZ2V0KCdzZWxlY3RNaW51dGVzJyk/LnZhbHVlO1xuICAgIGNvbnN0IHNlY29uZHMgPSB0aGlzLnNlbGVjdFRpbWUuZ2V0KCdzZWxlY3RTZWNvbmRzJyk/LnZhbHVlO1xuICAgIGNvbnN0IGdvVXBkYXRlID0gKHRoaXMuc2Vjb25kIDwgMCAmJiB0aGlzLm1pbnV0ZSA8IDApIHx8ICh0aGlzLmhvdXIgPj0gMCAmJiB0aGlzLm1pbnV0ZSA+PSAwICYmIHRoaXMuc2Vjb25kID49IDApO1xuICAgIGNvbnN0IHRpbWVDaGFuZ2VkID0gKHRoaXMuaG91ciAhPT0gaG91cnMpIHx8ICh0aGlzLm1pbnV0ZSAhPT0gbWludXRlcykgfHwgKHRoaXMuc2Vjb25kICE9PSBzZWNvbmRzKTtcbiAgICBpZiAoZ29VcGRhdGUgJiYgdGltZUNoYW5nZWQpIHtcbiAgICAgIGlmICh0aGlzLmhvdXIgIT09IGhvdXJzKSB7XG4gICAgICAgIHRoaXMuc2VsZWN0VGltZS5wYXRjaFZhbHVlKHtcbiAgICAgICAgICBzZWxlY3RIb3VyczogdGhpcy5ob3VyID8/IDBcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgICBpZiAodGhpcy5taW51dGUgIT09IG1pbnV0ZXMpIHtcbiAgICAgICAgdGhpcy5zZWxlY3RUaW1lLnBhdGNoVmFsdWUoe1xuICAgICAgICAgIHNlbGVjdE1pbnV0ZXM6IHRoaXMubWludXRlID8/IDBcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgICBpZiAodGhpcy5zZWNvbmQgIT09IHNlY29uZHMpIHtcbiAgICAgICAgdGhpcy5zZWxlY3RUaW1lLnBhdGNoVmFsdWUoe1xuICAgICAgICAgIHNlbGVjdFNlY29uZHM6IHRoaXMuc2Vjb25kID8/IDBcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgdHJhY2tCeUhvdXIoaW5kZXg6IG51bWJlciwgaG91cjogSVRpbWVWYWx1ZSkge1xuICAgIHJldHVybiBob3VyO1xuICB9XG5cbiAgb25DaGFuZ2UgPSAodmFsdWU6IERhdGUgfCB1bmRlZmluZWQpID0+IHt9O1xuICBvblRvdWNoZWQgPSAoKSA9PiB7fTtcblxuICB3cml0ZVZhbHVlKHZhbHVlOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLnRpbWUgPSB2YWx1ZTtcbiAgfVxuICByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLm9uQ2hhbmdlID0gZm47XG4gIH1cbiAgcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSk6IHZvaWQge1xuICAgIHRoaXMub25Ub3VjaGVkID0gZm47XG4gIH1cbiAgc2V0RGlzYWJsZWRTdGF0ZShpc0Rpc2FibGVkOiBib29sZWFuKSB7XG4gICAgdGhpcy5kaXNhYmxlZCA9IGlzRGlzYWJsZWQ7XG4gIH1cblxuICBoYW5kbGVUaW1lSW5wdXRDaGFuZ2UoJGV2ZW50OiBhbnkpIHtcbiAgICBjb25zdCB2YWx1ZSA9ICRldmVudC50YXJnZXQ/LnZhbHVlO1xuICAgIGNvbnNvbGUubG9nKCdoYW5kbGVUaW1lSW5wdXRDaGFuZ2UnLCBpc1ZhbGlkVGltZSh2YWx1ZSksIHZhbHVlKTtcbiAgICBpZiAoIWlzVmFsaWRUaW1lKHZhbHVlKSkge1xuICAgICAgdGhpcy5jbGVhclRpbWUoKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY29uc3QgdGltZSA9IGNvbnZlcnRUaW1lVG9EYXRlKHZhbHVlKTtcbiAgICB0aGlzLnVwZGF0ZVNlbGVjdFRpbWUodGltZSA/PyBuZXcgRGF0ZShEYXRlLm5vdygpKSk7XG4gIH1cblxuICBoYW5kbGVDbGVhcigkZXZlbnQ6IE1vdXNlRXZlbnQpIHtcbiAgICB0aGlzLmNsZWFyVGltZSgpO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiZGF0ZS1waWNrZXItdGltZXBpY2tlcnNcIiAqbmdJZj1cInZhcmlhbnQ9PT0nc2VsZWN0J1wiPlxuICA8ZGl2IGNsYXNzPVwicGlja2VyIHRpbWUtcGlja2VyXCI+XG4gICAgPGRpdiBbZm9ybUdyb3VwXT1cInNlbGVjdFRpbWVcIiBjbGFzcz1cInRpbWUtcGlja2VyLWJvZHlcIj5cbiAgICAgIDxzcGFuIGNsYXNzPVwidGltZS1waWNrZXItaW5saW5lLWljb25cIj48L3NwYW4+XG4gICAgICA8c2VsZWN0IFthdHRyLmRpc2FibGVkXT1cImRpc2FibGVkIHx8IG51bGxcIiBjU2VsZWN0IGNsYXNzPVwibXMtMFwiIGZvcm1Db250cm9sTmFtZT1cInNlbGVjdEhvdXJzXCIgKG5nTW9kZWxDaGFuZ2UpPVwiaGFuZGxlU2VsZWN0SG91cnNDaGFuZ2UoJGV2ZW50KVwiPlxuICAgICAgICA8b3B0aW9uICpuZ0Zvcj1cImxldCBob3VyIG9mIGxpc3RPZkhvdXJzMTI7IGluZGV4IGFzIGk7IHRyYWNrQnk6IHRyYWNrQnlIb3VyXCIgW25nVmFsdWVdPVwiaG91ci52YWx1ZVwiIFthdHRyLmRpc2FibGVkXT1cImhvdXIuZGlzYWJsZWQgfHwgbnVsbFwiPnt7aG91ci5sYWJlbH19PC9vcHRpb24+XG4gICAgICA8L3NlbGVjdD5cbiAgICAgIHt7JyA6J319PHNlbGVjdCBbYXR0ci5kaXNhYmxlZF09XCJkaXNhYmxlZCB8fCBudWxsXCIgY1NlbGVjdCBjbGFzcz1cIm1zLTBcIiBmb3JtQ29udHJvbE5hbWU9XCJzZWxlY3RNaW51dGVzXCIgKG5nTW9kZWxDaGFuZ2UpPVwiaGFuZGxlU2VsZWN0TWludXRlc0NoYW5nZSgkZXZlbnQpXCI+XG4gICAgICA8b3B0aW9uICpuZ0Zvcj1cImxldCBtaW51dGUgb2YgbGlzdE9mTWludXRlc1wiIFtuZ1ZhbHVlXT1cIm1pbnV0ZS52YWx1ZVwiIFthdHRyLmRpc2FibGVkXT1cIm1pbnV0ZS5kaXNhYmxlZCB8fCBudWxsXCI+e3ttaW51dGUubGFiZWx9fTwvb3B0aW9uPlxuICAgIDwvc2VsZWN0PlxuICAgICAgPG5nLXRlbXBsYXRlIFtuZ0lmXT1cInNlY29uZHNcIj5cbiAgICAgICAge3snIDonfX08c2VsZWN0IFthdHRyLmRpc2FibGVkXT1cImRpc2FibGVkIHx8IG51bGxcIiBjU2VsZWN0IGNsYXNzPVwibXMtMFwiIGZvcm1Db250cm9sTmFtZT1cInNlbGVjdFNlY29uZHNcIiAobmdNb2RlbENoYW5nZSk9XCJoYW5kbGVTZWxlY3RTZWNvbmRzQ2hhbmdlKCRldmVudClcIj5cbiAgICAgICAgPG9wdGlvbiAqbmdGb3I9XCJsZXQgc2Vjb25kIG9mIGxpc3RPZlNlY29uZHNcIiBbbmdWYWx1ZV09XCJzZWNvbmQudmFsdWVcIiBbYXR0ci5kaXNhYmxlZF09XCJzZWNvbmQuZGlzYWJsZWQgfHwgbnVsbFwiPnt7c2Vjb25kLmxhYmVsfX08L29wdGlvbj5cbiAgICAgIDwvc2VsZWN0PlxuICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgIDxuZy10ZW1wbGF0ZSBbbmdJZl09XCJob3VyMTJcIj5cbiAgICAgICAgPHNlbGVjdCBbYXR0ci5kaXNhYmxlZF09XCJkaXNhYmxlZCB8fCBudWxsXCIgY1NlbGVjdCBjbGFzcz1cIm1zLTBcIiBmb3JtQ29udHJvbE5hbWU9XCJzZWxlY3REYXlQZXJpb2RcIiAobmdNb2RlbENoYW5nZSk9XCJoYW5kbGVTZWxlY3REYXlQZXJpb2RDaGFuZ2UoJGV2ZW50KVwiPlxuICAgICAgICAgIDxvcHRpb24gKm5nRm9yPVwibGV0IGRheVBlcmlvZCBvZiBkYXlQZXJpb2RzXCIgW25nVmFsdWVdPVwiZGF5UGVyaW9kLnZhbHVlXCIgY2xhc3M9XCJ0aW1lLXBpY2tlci1yb2xsLWNlbGxcIj57e2RheVBlcmlvZC5sYWJlbH19PC9vcHRpb24+XG4gICAgICAgIDwvc2VsZWN0PlxuICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L2Rpdj5cblxuPGMtZHJvcGRvd24gI2Ryb3Bkb3duPVwiY0Ryb3Bkb3duXCIgW2F1dG9DbG9zZV09XCInb3V0c2lkZSdcIiBjbGFzcz1cInRpbWUtcGlja2VyIHBpY2tlclwiICpuZ0lmPVwidmFyaWFudD09PSdyb2xsJ1wiPlxuICA8Yy1pbnB1dC1ncm91cCBbY2FyZXRdPVwiZmFsc2VcIlxuICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWQgPz8gZHJvcGRvd24udmlzaWJsZVwiXG4gICAgICAgICAgICAgICAgIFtzaXppbmddPVwic2l6ZSA/PyAnJ1wiXG4gICAgICAgICAgICAgICAgIGNEcm9wZG93blRvZ2dsZVxuICAgICAgICAgICAgICAgICBjbGFzcz1cInBpY2tlci1pbnB1dC1ncm91cFwiPlxuICAgIDxpbnB1dCAoY2hhbmdlKT1cImhhbmRsZVRpbWVJbnB1dENoYW5nZSgkZXZlbnQpXCJcbiAgICAgICAgICAgW2Zvcm1Db250cm9sXT1cInRpbWVJbnB1dFwiXG4gICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlclwiXG4gICAgICAgICAgIGNGb3JtQ29udHJvbFxuICAgICAgICAgICBbYXR0ci50YWJpbmRleF09XCJkaXNhYmxlZCA/IC0xIDogMFwiXG4gICAgICAgICAgIFthdHRyLmRpc2FibGVkXT1cImRpc2FibGVkID8gJycgOiBudWxsXCJcbiAgICAgICAgICAgW2F0dHIucGF0dGVybl09XCJob3VyMTIgPyAnKCgoMFsxLTldKXwoMVswLTJdKSk6KFswLTVdKShbMC05XSlcXFxccyhBfFApTSknIDogJyhbMDFdP1swLTldfDJbMC0zXSk6WzAtNV1bMC05XSdcIlxuICAgICAgICAgICBbcmVhZG9ubHldPVwiaW5wdXRSZWFkT25seSA/PyBudWxsXCJcbiAgICA+XG4gICAgPHNwYW4gKm5nSWY9XCJpbmRpY2F0b3IgfHwgY2xlYW5lclwiIGNJbnB1dEdyb3VwVGV4dD5cbiAgICAgIDxzcGFuICpuZ0lmPVwiaW5kaWNhdG9yXCIgY2xhc3M9XCJwaWNrZXItaW5wdXQtZ3JvdXAtaW5kaWNhdG9yXCI+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwicGlja2VyLWlucHV0LWdyb3VwLWljb24gdGltZS1waWNrZXItaW5wdXQtaWNvblwiPjwvc3Bhbj5cbiAgICAgIDwvc3Bhbj5cbiAgICAgIDxzcGFuIChjbGljayk9XCIhZGlzYWJsZWQgJiYgaGFuZGxlQ2xlYXIoJGV2ZW50KVwiICpuZ0lmPVwiY2xlYW5lciAmJiB0aW1lICYmICFkaXNhYmxlZFwiIGNsYXNzPVwicGlja2VyLWlucHV0LWdyb3VwLWNsZWFuZXJcIiByb2xlPVwiYnV0dG9uXCI+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwicGlja2VyLWlucHV0LWdyb3VwLWljb24gdGltZS1waWNrZXItY2xlYW5lci1pY29uXCI+PC9zcGFuPlxuICAgICAgPC9zcGFuPlxuICAgIDwvc3Bhbj5cblxuICA8L2MtaW5wdXQtZ3JvdXA+XG4gIDxkaXYgY0Ryb3Bkb3duTWVudSAjZHJvcGRvd25NZW51PVwiY0Ryb3Bkb3duTWVudVwiPlxuICAgIDxkaXYgY2xhc3M9XCJ0aW1lLXBpY2tlci1ib2R5IHRpbWUtcGlja2VyLXJvbGxcIiBzdHlsZT1cInBvc2l0aW9uOiByZWxhdGl2ZTtcIj5cbiAgICAgIDxjLXRpbWUtcGlja2VyLXJvbGwtY29sXG4gICAgICAgIFtlbGVtZW50c109XCJsaXN0T2ZIb3VyczEyXCJcbiAgICAgICAgW3NlbGVjdGVkXT1cImhvdXJcIlxuICAgICAgICAoc2VsZWN0ZWRDaGFuZ2UpPVwiaGFuZGxlU2VsZWN0SG91cnNDaGFuZ2UoJGV2ZW50KVwiXG4gICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgICAgIFtyZWZyZXNoXT1cImRyb3Bkb3duTWVudS52aXNpYmxlXCJcbiAgICAgID5cbiAgICAgIDwvYy10aW1lLXBpY2tlci1yb2xsLWNvbD5cbiAgICAgIDxjLXRpbWUtcGlja2VyLXJvbGwtY29sXG4gICAgICAgIFtlbGVtZW50c109XCJsaXN0T2ZNaW51dGVzXCJcbiAgICAgICAgW3NlbGVjdGVkXT1cIm1pbnV0ZVwiXG4gICAgICAgIChzZWxlY3RlZENoYW5nZSk9XCJoYW5kbGVTZWxlY3RNaW51dGVzQ2hhbmdlKCRldmVudClcIlxuICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgICAgICBbcmVmcmVzaF09XCJkcm9wZG93bk1lbnUudmlzaWJsZVwiXG4gICAgICA+XG4gICAgICA8L2MtdGltZS1waWNrZXItcm9sbC1jb2w+XG4gICAgICA8Yy10aW1lLXBpY2tlci1yb2xsLWNvbFxuICAgICAgICAqbmdJZj1cInNlY29uZHNcIlxuICAgICAgICBbZWxlbWVudHNdPVwibGlzdE9mU2Vjb25kc1wiXG4gICAgICAgIFtzZWxlY3RlZF09XCJzZWNvbmRcIlxuICAgICAgICAoc2VsZWN0ZWRDaGFuZ2UpPVwiaGFuZGxlU2VsZWN0U2Vjb25kc0NoYW5nZSgkZXZlbnQpXCJcbiAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICAgICAgW3JlZnJlc2hdPVwiZHJvcGRvd25NZW51LnZpc2libGVcIlxuICAgICAgPlxuICAgICAgPC9jLXRpbWUtcGlja2VyLXJvbGwtY29sPlxuICAgICAgPGMtdGltZS1waWNrZXItcm9sbC1hbS1wbVxuICAgICAgICAqbmdJZj1cImhvdXIxMlwiIFtlbGVtZW50c109XCJkYXlQZXJpb2RzXCJcbiAgICAgICAgW3NlbGVjdGVkXT1cImRheVBlcmlvZFwiXG4gICAgICAgIChzZWxlY3RlZENoYW5nZSk9XCJoYW5kbGVTZWxlY3REYXlQZXJpb2RDaGFuZ2UoJGV2ZW50KVwiXG4gICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgICAgIFtyZWZyZXNoXT1cImRyb3Bkb3duTWVudS52aXNpYmxlXCJcbiAgICAgID5cbiAgICAgIDwvYy10aW1lLXBpY2tlci1yb2xsLWFtLXBtPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvYy1kcm9wZG93bj5cbiJdfQ==
|
|
458
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGltZS1waWNrZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZXVpLWFuZ3VsYXIvc3JjL2xpYi90aW1lLXBpY2tlci90aW1lLXBpY2tlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JldWktYW5ndWxhci9zcmMvbGliL3RpbWUtcGlja2VyL3RpbWUtcGlja2VyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCxTQUFTLEVBQ1QsZUFBZSxFQUVmLFlBQVksRUFDWixVQUFVLEVBQ1YsWUFBWSxFQUNaLEtBQUssRUFHTCxNQUFNLEVBR04sU0FBUyxFQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBd0IsV0FBVyxFQUFFLFNBQVMsRUFBRSxpQkFBaUIsRUFBRSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3RyxPQUFPLEVBQWdCLHFCQUFxQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFFNUUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sV0FBVyxDQUFDO0FBRWhELE9BQU8sRUFDTCxlQUFlLEVBQ2YsZUFBZSxFQUNmLGlCQUFpQixFQUdqQixPQUFPLEVBQ1AsYUFBYSxFQUNiLGNBQWMsRUFDZCxnQkFBZ0IsRUFDaEIsZ0JBQWdCLEVBQ2hCLFFBQVEsRUFDUixXQUFXLEVBRVosTUFBTSxjQUFjLENBQUM7Ozs7Ozs7Ozs7OztBQWV0QixNQUFNLE9BQU8sbUJBQW1CO0lBRTlCO1FBdUJRLGFBQVEsR0FBWSxJQUFJLENBQUM7UUFFakM7Ozs7O1dBS0c7UUFDTSwwQkFBcUIsR0FBMEIsRUFBRSxDQUFDO1FBZ0JuRCxjQUFTLEdBQVksS0FBSyxDQUFDO1FBcUMzQixlQUFVLEdBQVksSUFBSSxDQUFDO1FBZ0IzQixtQkFBYyxHQUFZLEtBQUssQ0FBQztRQUV4Qzs7OztXQUlHO1FBQ00sV0FB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QWlCRixhQUFhO3NCQURoQixLQUFLO2dCQWdCRyxNQUFNO3NCQUFkLEtBQUs7Z0JBT0csV0FBVztzQkFBbkIsS0FBSztnQkFRRixPQUFPO3NCQURWLEtBQUs7Z0JBZ0JHLElBQUk7c0JBQVosS0FBSztnQkFRRixJQUFJO3NCQURQLEtBQUs7Z0JBeUJHLE9BQU87c0JBQWYsS0FBSztnQkFRRixPQUFPO3NCQURWLEtBQUs7Z0JBU0ksVUFBVTtzQkFBbkIsTUFBTTtnQkFFZSxNQUFNO3NCQUEzQixZQUFZO3VCQUFDLE1BQU07Z0JBSUcsUUFBUTtzQkFBOUIsU0FBUzt1QkFBQyxVQUFVO2dCQUd3QyxnQkFBZ0I7c0JBQTVFLGVBQWU7dUJBQUMsbUJBQW1CLEVBQUUsRUFBRSxXQUFXLEVBQUUsSUFBSSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBBZnRlclZpZXdJbml0LFxyXG4gIENvbXBvbmVudCxcclxuICBDb250ZW50Q2hpbGRyZW4sXHJcbiAgRWxlbWVudFJlZixcclxuICBFdmVudEVtaXR0ZXIsXHJcbiAgZm9yd2FyZFJlZixcclxuICBIb3N0TGlzdGVuZXIsXHJcbiAgSW5wdXQsXHJcbiAgT25DaGFuZ2VzLFxyXG4gIE9uSW5pdCxcclxuICBPdXRwdXQsXHJcbiAgUXVlcnlMaXN0LFxyXG4gIFNpbXBsZUNoYW5nZXMsXHJcbiAgVmlld0NoaWxkXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBGb3JtQ29udHJvbCwgRm9ybUdyb3VwLCBOR19WQUxVRV9BQ0NFU1NPUiwgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgQm9vbGVhbklucHV0LCBjb2VyY2VCb29sZWFuUHJvcGVydHkgfSBmcm9tICdAYW5ndWxhci9jZGsvY29lcmNpb24nO1xyXG5cclxuaW1wb3J0IHsgVGVtcGxhdGVJZERpcmVjdGl2ZSB9IGZyb20gJy4uL3NoYXJlZCc7XHJcblxyXG5pbXBvcnQge1xyXG4gIGNvbnZlcnQxMmhUbzI0aCxcclxuICBjb252ZXJ0MjRoVG8xMmgsXHJcbiAgY29udmVydFRpbWVUb0RhdGUsXHJcbiAgRGF0ZVRpbWVGb3JtYXRPcHRpb25zLFxyXG4gIERheVBlcmlvZCxcclxuICBnZXRBbVBtLFxyXG4gIGdldERheVBlcmlvZHMsXHJcbiAgZ2V0TGlzdE9mSG91cnMsXHJcbiAgZ2V0TGlzdE9mTWludXRlcyxcclxuICBnZXRMaXN0T2ZTZWNvbmRzLFxyXG4gIGlzSG91cjEyLFxyXG4gIGlzVmFsaWRUaW1lLFxyXG4gIElUaW1lVmFsdWVcclxufSBmcm9tICcuL3RpbWUudXRpbHMnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdjLXRpbWUtcGlja2VyJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vdGltZS1waWNrZXIuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3RpbWUtcGlja2VyLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgZXhwb3J0QXM6ICdjVGltZVBpY2tlcicsXHJcbiAgcHJvdmlkZXJzOiBbXHJcbiAgICB7XHJcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxyXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBUaW1lUGlja2VyQ29tcG9uZW50KSxcclxuICAgICAgbXVsdGk6IHRydWVcclxuICAgIH1cclxuICBdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUaW1lUGlja2VyQ29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzLCBPbkluaXQsIENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBBZnRlclZpZXdJbml0IHtcclxuXHJcbiAgY29uc3RydWN0b3IoKSB7fVxyXG5cclxuICBzdGF0aWMgbmdBY2NlcHRJbnB1dFR5cGVfY2xlYW5lcjogQm9vbGVhbklucHV0O1xyXG4gIHN0YXRpYyBuZ0FjY2VwdElucHV0VHlwZV9kaXNhYmxlZDogQm9vbGVhbklucHV0O1xyXG4gIHN0YXRpYyBuZ0FjY2VwdElucHV0VHlwZV9pbmRpY2F0b3I6IEJvb2xlYW5JbnB1dDtcclxuICBzdGF0aWMgbmdBY2NlcHRJbnB1dFR5cGVfaW5wdXRSZWFkT25seTogQm9vbGVhbklucHV0O1xyXG4gIHN0YXRpYyBuZ0FjY2VwdElucHV0VHlwZV9zZWNvbmRzOiBCb29sZWFuSW5wdXQ7XHJcbiAgc3RhdGljIG5nQWNjZXB0SW5wdXRUeXBlX3Zpc2libGU6IEJvb2xlYW5JbnB1dDtcclxuXHJcbiAgLyoqXHJcbiAgICogVG9nZ2xlIHZpc2liaWxpdHkgb3Igc2V0IHRoZSBjb250ZW50IG9mIHRoZSBjbGVhbmVyIGJ1dHRvbi5cclxuICAgKiBAdHlwZSBib29sZWFuXHJcbiAgICogQGRlZmF1bHQgdHJ1ZVxyXG4gICAqL1xyXG4gIEBJbnB1dCgpXHJcbiAgc2V0IGNsZWFuZXIodmFsdWU6IGJvb2xlYW4pIHtcclxuICAgIHRoaXMuX2NsZWFuZXIgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGNsZWFuZXIoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5fY2xlYW5lcjtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX2NsZWFuZXI6IGJvb2xlYW4gPSB0cnVlO1xyXG5cclxuICAvKipcclxuICAgKiBTZXRzIERhdGVUaW1lIGZvcm1hdCBvcHRpb25zIGluY2x1ZGluZyB0aW1lWm9uZVxyXG4gICAqIEB0eXBlIERhdGVUaW1lRm9ybWF0T3B0aW9uc1xyXG4gICAqIEBkZWZhdWx0IHt9XHJcbiAgICogQG5vdGUgVGhlIGRhdGUgb2JqZWN0IGRvZXNuJ3Qgc3RvcmUgdGltZVpvbmUsIGl0IGtlZXBzIHRoZSBsb2NhbCB0aW1lem9uZSBvZiB0aGUgYnJvd3NlciwgcmVnYXJkbGVzcyBpZiB5b3UgcGFyc2VkIFVUQyBkYXRlcy5cclxuICAgKi9cclxuICBASW5wdXQoKSBkYXRlVGltZUZvcm1hdE9wdGlvbnM6IERhdGVUaW1lRm9ybWF0T3B0aW9ucyA9IHt9O1xyXG5cclxuICAvKipcclxuICAgKiBUb2dnbGUgdGhlIGRpc2FibGVkIHN0YXRlIGZvciB0aGUgY29tcG9uZW50LlxyXG4gICAqIEB0eXBlIGJvb2xlYW5cclxuICAgKiBAZGVmYXVsdCBmYWxzZVxyXG4gICAqL1xyXG4gIEBJbnB1dCgpXHJcbiAgc2V0IGRpc2FibGVkKHZhbHVlOiBib29sZWFuKSB7XHJcbiAgICB0aGlzLl9kaXNhYmxlZCA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7XHJcbiAgfVxyXG5cclxuICBnZXQgZGlzYWJsZWQoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5fZGlzYWJsZWQ7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9kaXNhYmxlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICAvKipcclxuICAgKiBGaWx0ZXIgYXZhaWxhYmxlIGhvdXJzIHRvIHBpY2suXHJcbiAgICogQHR5cGUgKHZhbHVlOiBudW1iZXIpID0+IGJvb2xlYW47XHJcbiAgICogQGRlZmF1bHQgdW5kZWZpbmVkXHJcbiAgICovXHJcbiAgQElucHV0KCkgZmlsdGVySG91cnM/OiAodmFsdWU6IG51bWJlcikgPT4gYm9vbGVhbjtcclxuXHJcbiAgLyoqXHJcbiAgICogRmlsdGVyIGF2YWlsYWJsZSBtaW51dGVzIHRvIHBpY2suXHJcbiAgICogQHR5cGUgKHZhbHVlOiBudW1iZXIpID0+IGJvb2xlYW47XHJcbiAgICogQGRlZmF1bHQgdW5kZWZpbmVkXHJcbiAgICovXHJcbiAgQElucHV0KCkgZmlsdGVyTWludXRlcz86ICh2YWx1ZTogbnVtYmVyKSA9PiBib29sZWFuO1xyXG5cclxuICAvKipcclxuICAgKiBGaWx0ZXIgYXZhaWxhYmxlIHNlY29uZHMgdG8gcGljay5cclxuICAgKiBAdHlwZSAodmFsdWU6IG51bWJlcikgPT4gYm9vbGVhbjtcclxuICAgKiBAZGVmYXVsdCB1bmRlZmluZWRcclxuICAgKi9cclxuICBASW5wdXQoKSBmaWx0ZXJTZWNvbmRzPzogKHZhbHVlOiBudW1iZXIpID0+IGJvb2xlYW47XHJcblxyXG4gIC8qKlxyXG4gICAqIFRvZ2dsZSB2aXNpYmlsaXR5IG9yIHNldCB0aGUgY29udGVudCBvZiB0aGUgaW5wdXQgaW5kaWNhdG9yLlxyXG4gICAqIEB0eXBlIGJvb2xlYW5cclxuICAgKiBAZGVmYXVsdCB0cnVlXHJcbiAgICovXHJcbiAgQElucHV0KClcclxuICBzZXQgaW5kaWNhdG9yKHZhbHVlOiBib29sZWFuKSB7XHJcbiAgICB0aGlzLl9pbmRpY2F0b3IgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGluZGljYXRvcigpIHtcclxuICAgIHJldHVybiB0aGlzLl9pbmRpY2F0b3I7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9pbmRpY2F0b3I6IGJvb2xlYW4gPSB0cnVlO1xyXG5cclxuICAvKipcclxuICAgKiBUb2dnbGUgdGhlIHJlYWRvbmx5IHN0YXRlIGZvciB0aGUgY29tcG9uZW50LlxyXG4gICAqIEB0eXBlIGJvb2xlYW5cclxuICAgKiBAZGVmYXVsdCBmYWxzZVxyXG4gICAqL1xyXG4gIEBJbnB1dCgpXHJcbiAgc2V0IGlucHV0UmVhZE9ubHkodmFsdWU6IGJvb2xlYW4pIHtcclxuICAgIHRoaXMuX2lucHV0UmVhZE9ubHkgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGlucHV0UmVhZE9ubHkoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5faW5wdXRSZWFkT25seTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX2lucHV0UmVhZE9ubHk6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgLyoqXHJcbiAgICogU2V0cyB0aGUgZGVmYXVsdCBsb2NhbGUgZm9yIGNvbXBvbmVudHMuIElmIG5vdCBzZXQsIGl0IGlzIGluaGVyaXRlZCBmcm9tIHRoZSBicm93c2VyLlxyXG4gICAqIEB0eXBlIHN0cmluZ1xyXG4gICAqIEBkZWZhdWx0IGRlZmF1bHRcclxuICAgKi9cclxuICBASW5wdXQoKSBsb2NhbGU6IHN0cmluZyA9ICdkZWZhdWx0JztcclxuXHJcbiAgLyoqXHJcbiAgICogU3BlY2lmaWVzIHNob3J0IGhpbnQgdmlzaWJsZSBpbiB0aW1lIGlucHV0LlxyXG4gICAqIEB0eXBlIHN0cmluZ1xyXG4gICAqIEBkZWZhdWx0ICdTZWxlY3QgdGltZSdcclxuICAgKi9cclxuICBASW5wdXQoKSBwbGFjZWhvbGRlcjogc3RyaW5nID0gJ1NlbGVjdCB0aW1lJztcclxuXHJcbiAgLyoqXHJcbiAgICogVG9nZ2xlIHNlY29uZHMgdmlzaWJpbGl0eS5cclxuICAgKiBAdHlwZSBib29sZWFuXHJcbiAgICogQGRlZmF1bHQgZmFsc2VcclxuICAgKi9cclxuICBASW5wdXQoKVxyXG4gIHNldCBzZWNvbmRzKHZhbHVlOiBib29sZWFuKSB7XHJcbiAgICB0aGlzLl9zZWNvbmRzID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKTtcclxuICB9XHJcblxyXG4gIGdldCBzZWNvbmRzKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX3NlY29uZHM7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9zZWNvbmRzOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIC8qKlxyXG4gICAqIFNpemUgdGhlIGNvbXBvbmVudCBzbWFsbCBvciBsYXJnZS5cclxuICAgKiBAdHlwZSAnc20nIHwgJ2xnJyB8IHVuZGVmaW5lZFxyXG4gICAqIEBkZWZhdWx0IHVuZGVmaW5lZFxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIHNpemU/OiAnc20nIHwgJ2xnJztcclxuXHJcbiAgLyoqXHJcbiAgICogSW5pdGlhbCBzZWxlY3RlZCB0aW1lLlxyXG4gICAqIEB0eXBlIERhdGUgfCBzdHJpbmcgfCBudWxsIHwgbnVtYmVyXHJcbiAgICogQGRlZmF1bHQgdW5kZWZpbmVkXHJcbiAgICovXHJcbiAgQElucHV0KClcclxuICBzZXQgdGltZSh2YWx1ZSkge1xyXG4gICAgaWYgKHZhbHVlICYmIGlzVmFsaWRUaW1lKHZhbHVlKSkge1xyXG4gICAgICBjb25zdCB0aW1lID0gbmV3IERhdGUodmFsdWUpO1xyXG4gICAgICB0aGlzLmRheVBlcmlvZCA9IGdldEFtUG0odGltZSwgdGhpcy5sb2NhbGUpO1xyXG4gICAgICBpZiAodGhpcy5fdGltZT8uZ2V0VGltZSgpICE9PSB0aW1lLmdldFRpbWUoKSkge1xyXG4gICAgICAgIHRoaXMuX3RpbWUgPSBuZXcgRGF0ZSh0aW1lLmdldFRpbWUoKSk7XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuY2xlYXJUaW1lKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBnZXQgdGltZSgpIHtcclxuICAgIHJldHVybiB0aGlzLl90aW1lO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfdGltZT86IERhdGU7XHJcbiAgcHJpdmF0ZSBfdGltZUludGVybmFsPzogRGF0ZTtcclxuXHJcbiAgLyoqXHJcbiAgICogU2V0IHRoZSB0aW1lIHBpY2tlciB2YXJpYW50IHRvIGEgcm9sbCBvciBzZWxlY3QuXHJcbiAgICogQHR5cGUgJ3JvbGwnIHwgJ3NlbGVjdCdcclxuICAgKiBAZGVmYXVsdCAncm9sbCdcclxuICAgKi9cclxuICBASW5wdXQoKSB2YXJpYW50OiAncm9sbCcgfCAnc2VsZWN0JyA9ICdyb2xsJztcclxuXHJcbiAgLyoqXHJcbiAgICogVG9nZ2xlIHRoZSB2aXNpYmlsaXR5IG9mIGRyb3Bkb3duIG1lbnUgY29tcG9uZW50LlxyXG4gICAqIEB0eXBlIGJvb2xlYW5cclxuICAgKiBAZGVmYXVsdCBmYWxzZVxyXG4gICAqL1xyXG4gIEBJbnB1dCgpXHJcbiAgc2V0IHZpc2libGUodmFsdWU6IGJvb2xlYW4pIHtcclxuICAgIHRoaXMuX3Zpc2libGUgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpO1xyXG4gIH1cclxuICBnZXQgdmlzaWJsZSgpIHtcclxuICAgIHJldHVybiB0aGlzLl92aXNpYmxlO1xyXG4gIH1cclxuICBwcml2YXRlIF92aXNpYmxlOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIEBPdXRwdXQoKSB0aW1lQ2hhbmdlOiBFdmVudEVtaXR0ZXI8RGF0ZSB8IHVuZGVmaW5lZD4gPSBuZXcgRXZlbnRFbWl0dGVyPERhdGUgfCB1bmRlZmluZWQ+KGZhbHNlKTtcclxuXHJcbiAgQEhvc3RMaXN0ZW5lcignYmx1cicpIG9uQmx1cigpIHtcclxuICAgIHRoaXMub25Ub3VjaGVkKCk7XHJcbiAgfVxyXG5cclxuICBAVmlld0NoaWxkKCdkcm9wZG93bicpIGRyb3Bkb3duPzogRWxlbWVudFJlZjtcclxuXHJcbiAgdGVtcGxhdGVzOiBhbnkgPSB7fTtcclxuICBAQ29udGVudENoaWxkcmVuKFRlbXBsYXRlSWREaXJlY3RpdmUsIHsgZGVzY2VuZGFudHM6IHRydWUgfSkgY29udGVudFRlbXBsYXRlcyE6IFF1ZXJ5TGlzdDxUZW1wbGF0ZUlkRGlyZWN0aXZlPjtcclxuXHJcbiAgbGlzdE9mSG91cnMhOiBJVGltZVZhbHVlW107XHJcbiAgbGlzdE9mSG91cnMxMiE6IElUaW1lVmFsdWVbXTtcclxuICBsaXN0T2ZNaW51dGVzITogSVRpbWVWYWx1ZVtdO1xyXG4gIGxpc3RPZlNlY29uZHMhOiBJVGltZVZhbHVlW107XHJcbiAgaG91cjEyOiBib29sZWFuID0gaXNIb3VyMTIodGhpcy5sb2NhbGUpO1xyXG4gIGRheVBlcmlvZHMgPSBbXHJcbiAgICB7IHZhbHVlOiAnYW0nLCBsYWJlbDogJ2FtJyB9LFxyXG4gICAgeyB2YWx1ZTogJ3BtJywgbGFiZWw6ICdwbScgfVxyXG4gIF07XHJcblxyXG4gIHNldCB0aW1lSW5wdXRWYWx1ZSh2YWx1ZTogc3RyaW5nKSB7XHJcbiAgICB0aGlzLnRpbWVJbnB1dC5zZXRWYWx1ZSh2YWx1ZSk7XHJcbiAgICB0aGlzLl90aW1lSW5wdXRWYWx1ZSA9IHZhbHVlO1xyXG4gIH1cclxuXHJcbiAgZ2V0IHRpbWVJbnB1dFZhbHVlKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5fdGltZUlucHV0VmFsdWU7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF90aW1lSW5wdXRWYWx1ZTogc3RyaW5nID0gdGhpcy50aW1lPy50b0xvY2FsZVRpbWVTdHJpbmcodGhpcy5sb2NhbGUsIHsgdGltZVN0eWxlOiB0aGlzLnNlY29uZHMgPyAnbWVkaXVtJyA6ICdzaG9ydCcgfSkgPz8gJyc7XHJcblxyXG4gIHNlbGVjdFRpbWUgPSBuZXcgRm9ybUdyb3VwKHtcclxuICAgIHNlbGVjdEhvdXJzOiBuZXcgRm9ybUNvbnRyb2woeyB2YWx1ZTogdGhpcy5ob3VyLCBkaXNhYmxlZDogdGhpcy5kaXNhYmxlZCB9KSxcclxuICAgIHNlbGVjdE1pbnV0ZXM6IG5ldyBGb3JtQ29udHJvbCh7IHZhbHVlOiB0aGlzLm1pbnV0ZSwgZGlzYWJsZWQ6IHRoaXMuZGlzYWJsZWQgfSksXHJcbiAgICBzZWxlY3RTZWNvbmRzOiBuZXcgRm9ybUNvbnRyb2woeyB2YWx1ZTogdGhpcy5zZWNvbmQsIGRpc2FibGVkOiB0aGlzLmRpc2FibGVkIH0pLFxyXG4gICAgc2VsZWN0RGF5UGVyaW9kOiBuZXcgRm9ybUNvbnRyb2woeyB2YWx1ZTogdGhpcy5kYXlQZXJpb2QsIGRpc2FibGVkOiB0aGlzLmRpc2FibGVkIH0pXHJcbiAgfSk7XHJcblxyXG4gIHRpbWVJbnB1dCA9IG5ldyBGb3JtQ29udHJvbCh7IHZhbHVlOiB0aGlzLnRpbWVJbnB1dFZhbHVlLCBkaXNhYmxlZDogdGhpcy5kaXNhYmxlZCB9LCBbXHJcbiAgICBWYWxpZGF0b3JzLnJlcXVpcmVkXHJcbiAgXSk7XHJcblxyXG4gIHNldCBob3VyKHZhbHVlOiBudW1iZXIpIHtcclxuICAgIGlmICh0aGlzLl9ob3VyICE9PSB2YWx1ZSkge1xyXG4gICAgICBpZiAodmFsdWUgPCAwKSB7XHJcbiAgICAgICAgdGhpcy5jbGVhclRpbWUoKTtcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5faG91ciA9IHZhbHVlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZ2V0IGhvdXIoKTogbnVtYmVyIHtcclxuICAgIHJldHVybiB0aGlzLl9ob3VyO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfaG91ciA9IC0xO1xyXG5cclxuICBzZXQgbWludXRlKHZhbHVlOiBudW1iZXIpIHtcclxuICAgIGlmICh0aGlzLl9taW51dGUgIT09IHZhbHVlKSB7XHJcbiAgICAgIGlmICh2YWx1ZSA8IDApIHtcclxuICAgICAgICB0aGlzLmNsZWFyVGltZSgpO1xyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLl9taW51dGUgPSB2YWx1ZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGdldCBtaW51dGUoKTogbnVtYmVyIHtcclxuICAgIHJldHVybiB0aGlzLl9taW51dGU7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9taW51dGUgPSAtMTtcclxuXHJcbiAgc2V0IHNlY29uZCh2YWx1ZTogbnVtYmVyKSB7XHJcbiAgICBpZiAodGhpcy5fc2Vjb25kICE9PSB2YWx1ZSkge1xyXG4gICAgICBpZiAodmFsdWUgPCAwKSB7XHJcbiAgICAgICAgdGhpcy5jbGVhclRpbWUoKTtcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5fc2Vjb25kID0gdmFsdWU7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBnZXQgc2Vjb25kKCk6IG51bWJlciB7XHJcbiAgICByZXR1cm4gdGhpcy5fc2Vjb25kO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfc2Vjb25kID0gLTE7XHJcblxyXG4gIHNldCBkYXlQZXJpb2QodmFsdWUpIHtcclxuICAgIHRoaXMuX2RheVBlcmlvZCA9IHZhbHVlO1xyXG4gICAgdGhpcy5saXN0T2ZIb3VyczEyID0gdGhpcy5ob3VyMTIgPyB0aGlzLmxpc3RPZkhvdXJzPy5maWx0ZXIoaXRlbSA9PiAoaXRlbS5kYXlQZXJpb2QgJiYgaXRlbS5kYXlQZXJpb2QgPT09IHZhbHVlKSB8fCAhaXRlbS5kYXlQZXJpb2QpIDogdGhpcy5saXN0T2ZIb3VycztcclxuICAgIHRoaXMucGF0Y2hTZWxlY3RUaW1lVmFsdWVzKCk7XHJcbiAgfVxyXG5cclxuICBnZXQgZGF5UGVyaW9kKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuX2RheVBlcmlvZDtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX2RheVBlcmlvZDogRGF5UGVyaW9kID0gJ2FtJztcclxuXHJcbiAgc2V0VGltZSgpIHtcclxuICAgIHRoaXMuX2hvdXIgPSB0aGlzLl9ob3VyIDwgMCA/IDAgOiB0aGlzLl9ob3VyO1xyXG4gICAgdGhpcy5fbWludXRlID0gdGhpcy5fbWludXRlIDwgMCA/IDAgOiB0aGlzLl9taW51dGU7XHJcbiAgICB0aGlzLl9zZWNvbmQgPSB0aGlzLl9zZWNvbmQgPCAwID8gMCA6IHRoaXMuX3NlY29uZDtcclxuXHJcbiAgICBjb25zdCB0aW1lID0gbmV3IERhdGUodGhpcy5fdGltZT8uZ2V0VGltZSgpIHx8IG5ldyBEYXRlKCkpO1xyXG4gICAgdGltZS5zZXRIb3Vycyh0aGlzLmhvdXIsIHRoaXMubWludXRlLCB0aGlzLnNlY29uZCwgMCk7XHJcbiAgICB0aGlzLnRpbWUgPSB0aW1lO1xyXG4gICAgdGhpcy5lbWl0VGltZSh0aW1lKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBjbGVhclRpbWUoKSB7XHJcbiAgICBpZiAodGhpcy50aW1lKSB7XHJcbiAgICAgIHRoaXMuX3RpbWUgPSB1bmRlZmluZWQ7XHJcbiAgICAgIHRoaXMuZW1pdFRpbWUodW5kZWZpbmVkKTtcclxuICAgIH1cclxuICAgIHRoaXMuX2hvdXIgPSAtMTtcclxuICAgIHRoaXMuX21pbnV0ZSA9IC0xO1xyXG4gICAgdGhpcy5fc2Vjb25kID0gLTE7XHJcbiAgICB0aGlzLmRheVBlcmlvZCA9ICdhbSc7XHJcbiAgICB0aGlzLnBhdGNoU2VsZWN0VGltZVZhbHVlcygpO1xyXG4gIH1cclxuXHJcbiAgZW1pdFRpbWUodGltZTogRGF0ZSB8IHVuZGVmaW5lZCkge1xyXG4gICAgY29uc3QgdGltZVZhbHVlID0gISF0aW1lICYmIGlzVmFsaWRUaW1lKHRpbWUpID8gbmV3IERhdGUodGltZS5nZXRUaW1lKCkpIDogdW5kZWZpbmVkO1xyXG4gICAgaWYgKHRoaXMuX3RpbWVJbnRlcm5hbD8uZ2V0VGltZSgpICE9PSB0aW1lVmFsdWU/LmdldFRpbWUoKSkge1xyXG4gICAgICB0aGlzLnRpbWVDaGFuZ2UuZW1pdCh0aW1lVmFsdWUpO1xyXG4gICAgICB0aGlzLm9uQ2hhbmdlKHRpbWVWYWx1ZSk7XHJcbiAgICAgIHRoaXMub25Ub3VjaGVkKCk7XHJcbiAgICAgIHRoaXMuX3RpbWVJbnRlcm5hbCA9IHRpbWVWYWx1ZTtcclxuICAgIH1cclxuICAgIHRoaXMudGltZUlucHV0VmFsdWUgPSB0aGlzLnRpbWU/LnRvTG9jYWxlVGltZVN0cmluZyh0aGlzLmxvY2FsZSwgeyB0aW1lU3R5bGU6IHRoaXMuc2Vjb25kcyA/ICdtZWRpdW0nIDogJ3Nob3J0JyB9KSA/PyAnJztcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5zZXRUaW1lTGlzdHMoKTtcclxuICAgIHRoaXMudXBkYXRlU2VsZWN0VGltZSgpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xyXG4gICAgaWYgKGNoYW5nZXNbJ3RpbWUnXSkge1xyXG4gICAgICBpZiAoIWNoYW5nZXNbJ3RpbWUnXS5maXJzdENoYW5nZSkge1xyXG4gICAgICAgIGlmICh0aGlzLl90aW1lSW50ZXJuYWw/LmdldFRpbWUoKSAhPT0gY2hhbmdlc1sndGltZSddLmN1cnJlbnRWYWx1ZT8uZ2V0VGltZSgpKSB7XHJcbiAgICAgICAgICB0aGlzLnVwZGF0ZVNlbGVjdFRpbWUoKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcclxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICB0aGlzLmNvbnRlbnRUZW1wbGF0ZXMuZm9yRWFjaCgoY2hpbGQ6IFRlbXBsYXRlSWREaXJlY3RpdmUpID0+IHtcclxuICAgICAgICB0aGlzLnRlbXBsYXRlc1tjaGlsZC5pZF0gPSBjaGlsZC50ZW1wbGF0ZVJlZjtcclxuICAgICAgfSk7XHJcbiAgICB9KVxyXG4gIH1cclxuXHJcbiAgc2V0VGltZUxpc3RzKCkge1xyXG4gICAgdGhpcy5kYXlQZXJpb2RzID0gZ2V0RGF5UGVyaW9kcyh0aGlzLmxvY2FsZSwgdGhpcy5kYXRlVGltZUZvcm1hdE9wdGlvbnMpO1xyXG4gICAgdGhpcy5ob3VyMTIgPSBpc0hvdXIxMih0aGlzLmxvY2FsZSk7XHJcbiAgICB0aGlzLmxpc3RPZkhvdXJzID0gdGhpcy5saXN0T2ZUaW1lU2VnbWVudHMoZ2V0TGlzdE9mSG91cnMsIHRoaXMuZmlsdGVySG91cnMpO1xyXG4gICAgdGhpcy5saXN0T2ZNaW51dGVzID0gdGhpcy5saXN0T2ZUaW1lU2VnbWVudHMoZ2V0TGlzdE9mTWludXRlcywgdGhpcy5maWx0ZXJNaW51dGVzKTtcclxuICAgIHRoaXMubGlzdE9mU2Vjb25kcyA9IHRoaXMubGlzdE9mVGltZVNlZ21lbnRzKGdldExpc3RPZlNlY29uZHMsIHRoaXMuZmlsdGVyU2Vjb25kcyk7XHJcbiAgICBpZiAodGhpcy52YXJpYW50ID09PSAnc2VsZWN0Jykge1xyXG4gICAgICBjb25zdCB1bmRlZlNlZ21lbnQgPSB7IHZhbHVlOiAtMSwgbGFiZWw6ICcgLS0nLCBkaXNhYmxlZDogdHJ1ZSB9O1xyXG4gICAgICB0aGlzLmxpc3RPZkhvdXJzLnVuc2hpZnQoeyAuLi51bmRlZlNlZ21lbnQgfSk7XHJcbiAgICAgIHRoaXMubGlzdE9mTWludXRlcy51bnNoaWZ0KHsgLi4udW5kZWZTZWdtZW50IH0pO1xyXG4gICAgICB0aGlzLmxpc3RPZlNlY29uZHMudW5zaGlmdCh7IC4uLnVuZGVmU2VnbWVudCB9KTtcclxuICAgIH1cclxuICAgIHRoaXMubGlzdE9mSG91cnMxMiA9IHRoaXMuaG91cjEyID8gdGhpcy5saXN0T2ZIb3Vycy5maWx0ZXIoaXRlbSA9PiAoaXRlbS5kYXlQZXJpb2QgJiYgaXRlbS5kYXlQZXJpb2QgPT09IHRoaXMuZGF5UGVyaW9kKSB8fCAhaXRlbS5kYXlQZXJpb2QpIDogdGhpcy5saXN0T2ZIb3VycztcclxuICB9XHJcblxyXG4gIHVwZGF0ZVNlbGVjdFRpbWUodGltZSA9IHRoaXMudGltZSkge1xyXG4gICAgaWYgKCEhdGltZSAmJiBpc1ZhbGlkVGltZSh0aW1lKSkge1xyXG4gICAgICBjb25zdCBob3VyID0gdGltZS5nZXRIb3VycygpID8/IDA7XHJcbiAgICAgIGNvbnN0IG1pbnV0ZSA9IHRpbWUuZ2V0TWludXRlcygpID8/IDA7XHJcbiAgICAgIGNvbnN0IHNlY29uZCA9IHRoaXMuc2Vjb25kcyA/ICh0aW1lLmdldFNlY29uZHMoKSA/PyAwKSA6IDA7XHJcblxyXG4gICAgICBjb25zdCBjbG9zZXN0U2Vjb25kID0gdGhpcy5jbG9zZXN0VGltZSh0aGlzLmxpc3RPZlNlY29uZHMsIHNlY29uZCk7XHJcbiAgICAgIGNvbnN0IGNsb3Nlc3RNaW51dGUgPSB0aGlzLmNsb3Nlc3RUaW1lKHRoaXMubGlzdE9mTWludXRlcywgbWludXRlKTtcclxuICAgICAgY29uc3QgY2xvc2VzdEhvdXIgPSB0aGlzLmNsb3Nlc3RUaW1lKHRoaXMubGlzdE9mSG91cnMsIGhvdXIpO1xyXG5cclxuICAgICAgdGhpcy5zZWNvbmQgPSB0aGlzLnNlY29uZHMgPyBjbG9zZXN0U2Vjb25kLnZhbHVlIDogMDtcclxuICAgICAgdGhpcy5taW51dGUgPSBjbG9zZXN0TWludXRlLnZhbHVlO1xyXG4gICAgICB0aGlzLmhvdXIgPSBjbG9zZXN0SG91ci52YWx1ZTtcclxuICAgICAgdGhpcy5zZXRUaW1lKCk7XHJcbiAgICAgIHRoaXMucGF0Y2hTZWxlY3RUaW1lVmFsdWVzKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBjbG9zZXN0VGltZSh0aW1lQXJyYXk6IElUaW1lVmFsdWVbXSwgdGltZVNlZ21lbnQ6IG51bWJlcikge1xyXG4gICAgbGV0IGFycmF5ID0gdGltZUFycmF5ID8/IFt7IHZhbHVlOiAwLCBsYWJlbDogJzAwJyB9XTtcclxuICAgIGlmICh0aGlzLnRpbWUpIHtcclxuICAgICAgYXJyYXkgPSB0aW1lQXJyYXkuZmlsdGVyKGVsID0+IGVsLnZhbHVlID49IDApO1xyXG4gICAgICBhcnJheSA9IGFycmF5Lmxlbmd0aCA/IGFycmF5IDogdGltZUFycmF5O1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGFycmF5LnJlZHVjZSgoYTogSVRpbWVWYWx1ZSwgYjogSVRpbWVWYWx1ZSkgPT4ge1xyXG4gICAgICByZXR1cm4gTWF0aC5hYnMoYi52YWx1ZSAtIHRpbWVTZWdtZW50KSA8IE1hdGguYWJzKGEudmFsdWUgLSB0aW1lU2VnbWVudCkgPyBiIDogYTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgbGlzdE9mVGltZVNlZ21lbnRzKGdldExpc3RPZlRpbWVTZWdtZW50czogKGxvY2FsZTogc3RyaW5nLCBkYXRlVGltZUZvcm1hdE9wdGlvbnM6IERhdGVUaW1lRm9ybWF0T3B0aW9ucykgPT4gSVRpbWVWYWx1ZVtdLCBmaWx0ZXJUaW1lU2VnbWVudHM6ICgodGltZVNlZ21lbnRWYWx1ZTogbnVtYmVyKSA9PiBib29sZWFuKSB8IHVuZGVmaW5lZCkge1xyXG4gICAgY29uc3QgbGlzdCA9IGdldExpc3RPZlRpbWVTZWdtZW50cyh0aGlzLmxvY2FsZSwgdGhpcy5kYXRlVGltZUZvcm1hdE9wdGlvbnMpLmZpbHRlcigoc2VnbWVudDogSVRpbWVWYWx1ZSkgPT4ge1xyXG4gICAgICByZXR1cm4gdHlwZW9mIGZpbHRlclRpbWVTZWdtZW50cyA9PT0gJ2Z1bmN0aW9uJyA/IGZpbHRlclRpbWVTZWdtZW50cyhzZWdtZW50LnZhbHVlKSA6IHRydWU7XHJcbiAgICB9KTtcclxuICAgIHJldHVybiBsaXN0Lmxlbmd0aCA/IGxpc3QgOiBnZXRMaXN0T2ZUaW1lU2VnbWVudHModGhpcy5sb2NhbGUsIHRoaXMuZGF0ZVRpbWVGb3JtYXRPcHRpb25zKS5zbGljZSgwLCAxKTtcclxuICB9XHJcblxyXG4gIGhhbmRsZVNlbGVjdERheVBlcmlvZENoYW5nZShkYXlQZXJpb2Q6IERheVBlcmlvZCkge1xyXG4gICAgaWYgKGRheVBlcmlvZCAhPT0gdGhpcy5kYXlQZXJpb2QpIHtcclxuICAgICAgY29uc3QgaHJzID0gdGhpcy50aW1lPy5nZXRIb3VycygpID8/ICh0aGlzLmhvdXIgPCAwID8gMCA6IHRoaXMuaG91cik7XHJcbiAgICAgIGNvbnN0IGhvdXIgPSBocnMgPiAxMiA/IGNvbnZlcnQyNGhUbzEyaChocnMpIDogY29udmVydDEyaFRvMjRoKGRheVBlcmlvZCwgaHJzKTtcclxuICAgICAgdGhpcy5ob3VyID0gdGhpcy5jbG9zZXN0VGltZSh0aGlzLmxpc3RPZkhvdXJzLCBob3VyKS52YWx1ZTtcclxuICAgICAgaWYgKGhvdXIgPj0gMCkge1xyXG4gICAgICAgIHRoaXMuc2V0VGltZSgpO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMudXBkYXRlU2VsZWN0VGltZSgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgaGFuZGxlU2VsZWN0SG91cnNDaGFuZ2UoaG91cjogbnVtYmVyKSB7XHJcbiAgICB0aGlzLmhvdXIgPSBob3VyO1xyXG4gICAgaWYgKGhvdXIgPj0gMCkge1xyXG4gICAgICB0aGlzLnNldFRpbWUoKTtcclxuICAgIH1cclxuICAgIHRoaXMudXBkYXRlU2VsZWN0VGltZSgpO1xyXG4gIH1cclxuXHJcbiAgaGFuZGxlU2VsZWN0TWludXRlc0NoYW5nZShtaW51dGU6IG51bWJlcikge1xyXG4gICAgdGhpcy5taW51dGUgPSBtaW51dGU7XHJcbiAgICBpZiAobWludXRlID49IDApIHtcclxuICAgICAgdGhpcy5zZXRUaW1lKCk7XHJcbiAgICB9XHJcbiAgICB0aGlzLnVwZGF0ZVNlbGVjdFRpbWUoKTtcclxuICB9XHJcblxyXG4gIGhhbmRsZVNlbGVjdFNlY29uZHNDaGFuZ2Uoc2Vjb25kOiBudW1iZXIpIHtcclxuICAgIHRoaXMuc2Vjb25kID0gc2Vjb25kO1xyXG4gICAgaWYgKHNlY29uZCA+PSAwKSB7XHJcbiAgICAgIHRoaXMuc2V0VGltZSgpO1xyXG4gICAgfVxyXG4gICAgdGhpcy51cGRhdGVTZWxlY3RUaW1lKCk7XHJcbiAgfVxyXG5cclxuICBwYXRjaFNlbGVjdFRpbWVWYWx1ZXMoKSB7XHJcbiAgICBjb25zdCBkYXlQZXJpb2QgPSB0aGlzLnNlbGVjdFRpbWUuZ2V0KCdzZWxlY3REYXlQZXJpb2QnKT8udmFsdWU7XHJcbiAgICBpZiAodGhpcy5kYXlQZXJpb2QgIT09IGRheVBlcmlvZCkge1xyXG4gICAgICB0aGlzLnNlbGVjdFRpbWUucGF0Y2hWYWx1ZSh7XHJcbiAgICAgICAgc2VsZWN0RGF5UGVyaW9kOiB0aGlzLmRheVBlcmlvZCA/PyAnYW0nXHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gICAgY29uc3QgaG91cnMgPSB0aGlzLnNlbGVjdFRpbWUuZ2V0KCdzZWxlY3RIb3VycycpPy52YWx1ZTtcclxuICAgIGNvbnN0IG1pbnV0ZXMgPSB0aGlzLnNlbGVjdFRpbWUuZ2V0KCdzZWxlY3RNaW51dGVzJyk/LnZhbHVlO1xyXG4gICAgY29uc3Qgc2Vjb25kcyA9IHRoaXMuc2VsZWN0VGltZS5nZXQoJ3NlbGVjdFNlY29uZHMnKT8udmFsdWU7XHJcbiAgICBjb25zdCBnb1VwZGF0ZSA9ICh0aGlzLnNlY29uZCA8IDAgJiYgdGhpcy5taW51dGUgPCAwKSB8fCAodGhpcy5ob3VyID49IDAgJiYgdGhpcy5taW51dGUgPj0gMCAmJiB0aGlzLnNlY29uZCA+PSAwKTtcclxuICAgIGNvbnN0IHRpbWVDaGFuZ2VkID0gKHRoaXMuaG91ciAhPT0gaG91cnMpIHx8ICh0aGlzLm1pbnV0ZSAhPT0gbWludXRlcykgfHwgKHRoaXMuc2Vjb25kICE9PSBzZWNvbmRzKTtcclxuICAgIGlmIChnb1VwZGF0ZSAmJiB0aW1lQ2hhbmdlZCkge1xyXG4gICAgICBpZiAodGhpcy5ob3VyICE9PSBob3Vycykge1xyXG4gICAgICAgIHRoaXMuc2VsZWN0VGltZS5wYXRjaFZhbHVlKHtcclxuICAgICAgICAgIHNlbGVjdEhvdXJzOiB0aGlzLmhvdXIgPz8gMFxyXG4gICAgICAgIH0pO1xyXG4gICAgICB9XHJcbiAgICAgIGlmICh0aGlzLm1pbnV0ZSAhPT0gbWludXRlcykge1xyXG4gICAgICAgIHRoaXMuc2VsZWN0VGltZS5wYXRjaFZhbHVlKHtcclxuICAgICAgICAgIHNlbGVjdE1pbnV0ZXM6IHRoaXMubWludXRlID8/IDBcclxuICAgICAgICB9KTtcclxuICAgICAgfVxyXG4gICAgICBpZiAodGhpcy5zZWNvbmQgIT09IHNlY29uZHMpIHtcclxuICAgICAgICB0aGlzLnNlbGVjdFRpbWUucGF0Y2hWYWx1ZSh7XHJcbiAgICAgICAgICBzZWxlY3RTZWNvbmRzOiB0aGlzLnNlY29uZCA/PyAwXHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIHRyYWNrQnlIb3VyKGluZGV4OiBudW1iZXIsIGhvdXI6IElUaW1lVmFsdWUpIHtcclxuICAgIHJldHVybiBob3VyO1xyXG4gIH1cclxuXHJcbiAgb25DaGFuZ2UgPSAodmFsdWU6IERhdGUgfCB1bmRlZmluZWQpID0+IHt9O1xyXG4gIG9uVG91Y2hlZCA9ICgpID0+IHt9O1xyXG5cclxuICB3cml0ZVZhbHVlKHZhbHVlOiBhbnkpOiB2b2lkIHtcclxuICAgIHRoaXMudGltZSA9IHZhbHVlO1xyXG4gIH1cclxuXHJcbiAgcmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KTogdm9pZCB7XHJcbiAgICB0aGlzLm9uQ2hhbmdlID0gZm47XHJcbiAgfVxyXG5cclxuICByZWdpc3Rlck9uVG91Y2hlZChmbjogYW55KTogdm9pZCB7XHJcbiAgICB0aGlzLm9uVG91Y2hlZCA9IGZuO1xyXG4gIH1cclxuXHJcbiAgc2V0RGlzYWJsZWRTdGF0ZShpc0Rpc2FibGVkOiBib29sZWFuKSB7XHJcbiAgICB0aGlzLmRpc2FibGVkID0gaXNEaXNhYmxlZDtcclxuICB9XHJcblxyXG4gIGhhbmRsZVRpbWVJbnB1dENoYW5nZSgkZXZlbnQ6IGFueSkge1xyXG4gICAgY29uc3QgdmFsdWUgPSAkZXZlbnQudGFyZ2V0Py52YWx1ZTtcclxuICAgIGlmICghaXNWYWxpZFRpbWUodmFsdWUpKSB7XHJcbiAgICAgIHRoaXMuY2xlYXJUaW1lKCk7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIGNvbnN0IHRpbWUgPSBjb252ZXJ0VGltZVRvRGF0ZSh2YWx1ZSk7XHJcbiAgICB0aGlzLnVwZGF0ZVNlbGVjdFRpbWUodGltZSA/PyBuZXcgRGF0ZShEYXRlLm5vdygpKSk7XHJcbiAgfVxyXG5cclxuICBoYW5kbGVDbGVhcigkZXZlbnQ6IE1vdXNlRXZlbnQpIHtcclxuICAgIHRoaXMuY2xlYXJUaW1lKCk7XHJcbiAgfVxyXG5cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwiZGF0ZS1waWNrZXItdGltZXBpY2tlcnNcIiAqbmdJZj1cInZhcmlhbnQ9PT0nc2VsZWN0J1wiPlxyXG4gIDxkaXYgY2xhc3M9XCJwaWNrZXIgdGltZS1waWNrZXJcIj5cclxuICAgIDxkaXYgW2Zvcm1Hcm91cF09XCJzZWxlY3RUaW1lXCIgY2xhc3M9XCJ0aW1lLXBpY2tlci1ib2R5XCI+XHJcbiAgICAgIDxzcGFuIGNsYXNzPVwidGltZS1waWNrZXItaW5saW5lLWljb25cIj48L3NwYW4+XHJcbiAgICAgIDxzZWxlY3QgW2F0dHIuZGlzYWJsZWRdPVwiZGlzYWJsZWQgfHwgbnVsbFwiIGNTZWxlY3QgY2xhc3M9XCJtcy0wXCIgZm9ybUNvbnRyb2xOYW1lPVwic2VsZWN0SG91cnNcIiAobmdNb2RlbENoYW5nZSk9XCJoYW5kbGVTZWxlY3RIb3Vyc0NoYW5nZSgkZXZlbnQpXCI+XHJcbiAgICAgICAgPG9wdGlvbiAqbmdGb3I9XCJsZXQgaG91ciBvZiBsaXN0T2ZIb3VyczEyOyBpbmRleCBhcyBpOyB0cmFja0J5OiB0cmFja0J5SG91clwiIFtuZ1ZhbHVlXT1cImhvdXIudmFsdWVcIiBbYXR0ci5kaXNhYmxlZF09XCJob3VyLmRpc2FibGVkIHx8IG51bGxcIj57e2hvdXIubGFiZWx9fTwvb3B0aW9uPlxyXG4gICAgICA8L3NlbGVjdD5cclxuICAgICAge3snIDonfX08c2VsZWN0IFthdHRyLmRpc2FibGVkXT1cImRpc2FibGVkIHx8IG51bGxcIiBjU2VsZWN0IGNsYXNzPVwibXMtMFwiIGZvcm1Db250cm9sTmFtZT1cInNlbGVjdE1pbnV0ZXNcIiAobmdNb2RlbENoYW5nZSk9XCJoYW5kbGVTZWxlY3RNaW51dGVzQ2hhbmdlKCRldmVudClcIj5cclxuICAgICAgPG9wdGlvbiAqbmdGb3I9XCJsZXQgbWludXRlIG9mIGxpc3RPZk1pbnV0ZXNcIiBbbmdWYWx1ZV09XCJtaW51dGUudmFsdWVcIiBbYXR0ci5kaXNhYmxlZF09XCJtaW51dGUuZGlzYWJsZWQgfHwgbnVsbFwiPnt7bWludXRlLmxhYmVsfX08L29wdGlvbj5cclxuICAgIDwvc2VsZWN0PlxyXG4gICAgICA8bmctdGVtcGxhdGUgW25nSWZdPVwic2Vjb25kc1wiPlxyXG4gICAgICAgIHt7JyA6J319PHNlbGVjdCBbYXR0ci5kaXNhYmxlZF09XCJkaXNhYmxlZCB8fCBudWxsXCIgY1NlbGVjdCBjbGFzcz1cIm1zLTBcIiBmb3JtQ29udHJvbE5hbWU9XCJzZWxlY3RTZWNvbmRzXCIgKG5nTW9kZWxDaGFuZ2UpPVwiaGFuZGxlU2VsZWN0U2Vjb25kc0NoYW5nZSgkZXZlbnQpXCI+XHJcbiAgICAgICAgPG9wdGlvbiAqbmdGb3I9XCJsZXQgc2Vjb25kIG9mIGxpc3RPZlNlY29uZHNcIiBbbmdWYWx1ZV09XCJzZWNvbmQudmFsdWVcIiBbYXR0ci5kaXNhYmxlZF09XCJzZWNvbmQuZGlzYWJsZWQgfHwgbnVsbFwiPnt7c2Vjb25kLmxhYmVsfX08L29wdGlvbj5cclxuICAgICAgPC9zZWxlY3Q+XHJcbiAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgIDxuZy10ZW1wbGF0ZSBbbmdJZl09XCJob3VyMTJcIj5cclxuICAgICAgICA8c2VsZWN0IFthdHRyLmRpc2FibGVkXT1cImRpc2FibGVkIHx8IG51bGxcIiBjU2VsZWN0IGNsYXNzPVwibXMtMFwiIGZvcm1Db250cm9sTmFtZT1cInNlbGVjdERheVBlcmlvZFwiIChuZ01vZGVsQ2hhbmdlKT1cImhhbmRsZVNlbGVjdERheVBlcmlvZENoYW5nZSgkZXZlbnQpXCI+XHJcbiAgICAgICAgICA8b3B0aW9uICpuZ0Zvcj1cImxldCBkYXlQZXJpb2Qgb2YgZGF5UGVyaW9kc1wiIFtuZ1ZhbHVlXT1cImRheVBlcmlvZC52YWx1ZVwiIGNsYXNzPVwidGltZS1waWNrZXItcm9sbC1jZWxsXCI+e3tkYXlQZXJpb2QubGFiZWx9fTwvb3B0aW9uPlxyXG4gICAgICAgIDwvc2VsZWN0PlxyXG4gICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbjwvZGl2PlxyXG5cclxuPGMtZHJvcGRvd24gI2Ryb3Bkb3duPVwiY0Ryb3Bkb3duXCIgW2F1dG9DbG9zZV09XCInb3V0c2lkZSdcIiBjbGFzcz1cInRpbWUtcGlja2VyIHBpY2tlclwiICpuZ0lmPVwidmFyaWFudD09PSdyb2xsJ1wiIFt2aXNpYmxlXT1cInZpc2libGVcIj5cclxuICA8Yy1pbnB1dC1ncm91cCBbY2FyZXRdPVwiZmFsc2VcIlxyXG4gICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZCA/PyBkcm9wZG93bi52aXNpYmxlXCJcclxuICAgICAgICAgICAgICAgICBbc2l6aW5nXT1cInNpemUgPz8gJydcIlxyXG4gICAgICAgICAgICAgICAgIGNEcm9wZG93blRvZ2dsZVxyXG4gICAgICAgICAgICAgICAgIGNsYXNzPVwicGlja2VyLWlucHV0LWdyb3VwXCI+XHJcbiAgICA8aW5wdXQgKGNoYW5nZSk9XCJoYW5kbGVUaW1lSW5wdXRDaGFuZ2UoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgW2Zvcm1Db250cm9sXT1cInRpbWVJbnB1dFwiXHJcbiAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyXCJcclxuICAgICAgICAgICBjRm9ybUNvbnRyb2xcclxuICAgICAgICAgICBbYXR0ci50YWJpbmRleF09XCJkaXNhYmxlZCA/IC0xIDogMFwiXHJcbiAgICAgICAgICAgW2F0dHIuZGlzYWJsZWRdPVwiZGlzYWJsZWQgPyAnJyA6IG51bGxcIlxyXG4gICAgICAgICAgIFthdHRyLnBhdHRlcm5dPVwiaG91cjEyID8gJygoKDBbMS05XSl8KDFbMC0yXSkpOihbMC01XSkoWzAtOV0pXFxcXHMoQXxQKU0pJyA6ICcoWzAxXT9bMC05XXwyWzAtM10pOlswLTVdWzAtOV0nXCJcclxuICAgICAgICAgICBbcmVhZG9ubHldPVwiaW5wdXRSZWFkT25seSA/PyBudWxsXCJcclxuICAgID5cclxuICAgIDxzcGFuICpuZ0lmPVwiaW5kaWNhdG9yIHx8IGNsZWFuZXJcIiBjSW5wdXRHcm91cFRleHQ+XHJcbiAgICAgIDxzcGFuICpuZ0lmPVwiaW5kaWNhdG9yXCIgY2xhc3M9XCJwaWNrZXItaW5wdXQtZ3JvdXAtaW5kaWNhdG9yXCI+XHJcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJwaWNrZXItaW5wdXQtZ3JvdXAtaWNvbiB0aW1lLXBpY2tlci1pbnB1dC1pY29uXCI+PC9zcGFuPlxyXG4gICAgICA8L3NwYW4+XHJcbiAgICAgIDxzcGFuIChjbGljayk9XCIhZGlzYWJsZWQgJiYgaGFuZGxlQ2xlYXIoJGV2ZW50KVwiICpuZ0lmPVwiY2xlYW5lciAmJiB0aW1lICYmICFkaXNhYmxlZFwiIGNsYXNzPVwicGlja2VyLWlucHV0LWdyb3VwLWNsZWFuZXJcIiByb2xlPVwiYnV0dG9uXCI+XHJcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJwaWNrZXItaW5wdXQtZ3JvdXAtaWNvbiB0aW1lLXBpY2tlci1jbGVhbmVyLWljb25cIj48L3NwYW4+XHJcbiAgICAgIDwvc3Bhbj5cclxuICAgIDwvc3Bhbj5cclxuXHJcbiAgPC9jLWlucHV0LWdyb3VwPlxyXG4gIDxkaXYgY0Ryb3Bkb3duTWVudSAjZHJvcGRvd25NZW51PVwiY0Ryb3Bkb3duTWVudVwiPlxyXG4gICAgPGRpdiBjbGFzcz1cInRpbWUtcGlja2VyLWJvZHkgdGltZS1waWNrZXItcm9sbFwiIHN0eWxlPVwicG9zaXRpb246IHJlbGF0aXZlO1wiPlxyXG4gICAgICA8Yy10aW1lLXBpY2tlci1yb2xsLWNvbFxyXG4gICAgICAgIFtlbGVtZW50c109XCJsaXN0T2ZIb3VyczEyXCJcclxuICAgICAgICBbc2VsZWN0ZWRdPVwiaG91clwiXHJcbiAgICAgICAgKHNlbGVjdGVkQ2hhbmdlKT1cImhhbmRsZVNlbGVjdEhvdXJzQ2hhbmdlKCRldmVudClcIlxyXG4gICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXHJcbiAgICAgICAgW3JlZnJlc2hdPVwiZHJvcGRvd25NZW51LnZpc2libGVcIlxyXG4gICAgICAgIHJvbGU9XCJsaXN0Ym94XCJcclxuICAgICAgPlxyXG4gICAgICA8L2MtdGltZS1waWNrZXItcm9sbC1jb2w+XHJcbiAgICAgIDxjLXRpbWUtcGlja2VyLXJvbGwtY29sXHJcbiAgICAgICAgW2VsZW1lbnRzXT1cImxpc3RPZk1pbnV0ZXNcIlxyXG4gICAgICAgIFtzZWxlY3RlZF09XCJtaW51dGVcIlxyXG4gICAgICAgIChzZWxlY3RlZENoYW5nZSk9XCJoYW5kbGVTZWxlY3RNaW51dGVzQ2hhbmdlKCRldmVudClcIlxyXG4gICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXHJcbiAgICAgICAgW3JlZnJlc2hdPVwiZHJvcGRvd25NZW51LnZpc2libGVcIlxyXG4gICAgICAgIHJvbGU9XCJsaXN0Ym94XCJcclxuICAgICAgPlxyXG4gICAgICA8L2MtdGltZS1waWNrZXItcm9sbC1jb2w+XHJcbiAgICAgIDxjLXRpbWUtcGlja2VyLXJvbGwtY29sXHJcbiAgICAgICAgKm5nSWY9XCJzZWNvbmRzXCJcclxuICAgICAgICBbZWxlbWVudHNdPVwibGlzdE9mU2Vjb25kc1wiXHJcbiAgICAgICAgW3NlbGVjdGVkXT1cInNlY29uZFwiXHJcbiAgICAgICAgKHNlbGVjdGVkQ2hhbmdlKT1cImhhbmRsZVNlbGVjdFNlY29uZHNDaGFuZ2UoJGV2ZW50KVwiXHJcbiAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcclxuICAgICAgICBbcmVmcmVzaF09XCJkcm9wZG93bk1lbnUudmlzaWJsZVwiXHJcbiAgICAgICAgcm9sZT1cImxpc3Rib3hcIlxyXG4gICAgICA+XHJcbiAgICAgIDwvYy10aW1lLXBpY2tlci1yb2xsLWNvbD5cclxuICAgICAgPGMtdGltZS1waWNrZXItcm9sbC1hbS1wbVxyXG4gICAgICAgICpuZ0lmPVwiaG91cjEyXCIgW2VsZW1lbnRzXT1cImRheVBlcmlvZHNcIlxyXG4gICAgICAgIFtzZWxlY3RlZF09XCJkYXlQZXJpb2RcIlxyXG4gICAgICAgIChzZWxlY3RlZENoYW5nZSk9XCJoYW5kbGVTZWxlY3REYXlQZXJpb2RDaGFuZ2UoJGV2ZW50KVwiXHJcbiAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcclxuICAgICAgICBbcmVmcmVzaF09XCJkcm9wZG93bk1lbnUudmlzaWJsZVwiXHJcbiAgICAgICAgcm9sZT1cImxpc3Rib3hcIlxyXG4gICAgICA+XHJcbiAgICAgIDwvYy10aW1lLXBpY2tlci1yb2xsLWFtLXBtPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2ICpuZ0lmPVwidGVtcGxhdGVzPy50aW1lUGlja2VyRm9vdGVyXCIgY2xhc3M9XCJwaWNrZXItZm9vdGVyXCI+XHJcbiAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJ0ZW1wbGF0ZXM/LnRpbWVQaWNrZXJGb290ZXI7IGNvbnRleHQ6IHskaW1wbGljaXQ6IGRyb3Bkb3dufVwiPjwvbmctY29udGFpbmVyPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbjwvYy1kcm9wZG93bj5cclxuIl19
|
|
@@ -10,8 +10,8 @@ import { DropdownModule } from '../dropdown';
|
|
|
10
10
|
import * as i0 from "@angular/core";
|
|
11
11
|
export class TimePickerModule {
|
|
12
12
|
}
|
|
13
|
-
TimePickerModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.
|
|
14
|
-
TimePickerModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.1.
|
|
13
|
+
TimePickerModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.2", ngImport: i0, type: TimePickerModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
14
|
+
TimePickerModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.1.2", ngImport: i0, type: TimePickerModule, declarations: [TimePickerComponent,
|
|
15
15
|
TimePickerRollColComponent,
|
|
16
16
|
TimeElementDirective,
|
|
17
17
|
TimePickerRollAmPmComponent,
|
|
@@ -20,12 +20,12 @@ TimePickerModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", versio
|
|
|
20
20
|
FormModule,
|
|
21
21
|
ButtonModule,
|
|
22
22
|
DropdownModule], exports: [TimePickerComponent] });
|
|
23
|
-
TimePickerModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.1.
|
|
23
|
+
TimePickerModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.1.2", ngImport: i0, type: TimePickerModule, imports: [CommonModule,
|
|
24
24
|
ReactiveFormsModule,
|
|
25
25
|
FormModule,
|
|
26
26
|
ButtonModule,
|
|
27
27
|
DropdownModule] });
|
|
28
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.
|
|
28
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.2", ngImport: i0, type: TimePickerModule, decorators: [{
|
|
29
29
|
type: NgModule,
|
|
30
30
|
args: [{
|
|
31
31
|
declarations: [
|
|
@@ -47,4 +47,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.0", ngImpor
|
|
|
47
47
|
]
|
|
48
48
|
}]
|
|
49
49
|
}] });
|
|
50
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
50
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGltZS1waWNrZXIubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZXVpLWFuZ3VsYXIvc3JjL2xpYi90aW1lLXBpY2tlci90aW1lLXBpY2tlci5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDckQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUVyQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzlELE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHVEQUF1RCxDQUFDO0FBQ3pILE9BQU8sRUFBRSwyQkFBMkIsRUFBRSx5QkFBeUIsRUFBRSxNQUFNLHlEQUF5RCxDQUFDO0FBQ2pJLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxhQUFhLENBQUM7O0FBcUI3QyxNQUFNLE9BQU8sZ0JBQWdCOzs2R0FBaEIsZ0JBQWdCOzhHQUFoQixnQkFBZ0IsaUJBakJ6QixtQkFBbUI7UUFDbkIsMEJBQTBCO1FBQzFCLG9CQUFvQjtRQUNwQiwyQkFBMkI7UUFDM0IseUJBQXlCLGFBR3pCLFlBQVk7UUFDWixtQkFBbUI7UUFDbkIsVUFBVTtRQUNWLFlBQVk7UUFDWixjQUFjLGFBR2QsbUJBQW1COzhHQUdWLGdCQUFnQixZQVZ6QixZQUFZO1FBQ1osbUJBQW1CO1FBQ25CLFVBQVU7UUFDVixZQUFZO1FBQ1osY0FBYzsyRkFNTCxnQkFBZ0I7a0JBbkI1QixRQUFRO21CQUFDO29CQUNSLFlBQVksRUFBRTt3QkFDWixtQkFBbUI7d0JBQ25CLDBCQUEwQjt3QkFDMUIsb0JBQW9CO3dCQUNwQiwyQkFBMkI7d0JBQzNCLHlCQUF5QjtxQkFDMUI7b0JBQ0QsT0FBTyxFQUFFO3dCQUNQLFlBQVk7d0JBQ1osbUJBQW1CO3dCQUNuQixVQUFVO3dCQUNWLFlBQVk7d0JBQ1osY0FBYztxQkFDZjtvQkFDRCxPQUFPLEVBQUU7d0JBQ1AsbUJBQW1CO3FCQUNwQjtpQkFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IEZvcm1Nb2R1bGUgfSBmcm9tICcuLi9mb3JtJztcclxuXHJcbmltcG9ydCB7IEJ1dHRvbk1vZHVsZSB9IGZyb20gJy4uL2J1dHRvbic7XHJcbmltcG9ydCB7IFRpbWVQaWNrZXJDb21wb25lbnQgfSBmcm9tICcuL3RpbWUtcGlja2VyLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFRpbWVQaWNrZXJSb2xsQ29sQ29tcG9uZW50LCBUaW1lRWxlbWVudERpcmVjdGl2ZSB9IGZyb20gJy4vdGltZS1waWNrZXItcm9sbC1jb2wvdGltZS1waWNrZXItcm9sbC1jb2wuY29tcG9uZW50JztcclxuaW1wb3J0IHsgVGltZVBpY2tlclJvbGxBbVBtQ29tcG9uZW50LCBEYXlQZXJpb2RFbGVtZW50RGlyZWN0aXZlIH0gZnJvbSAnLi90aW1lLXBpY2tlci1yb2xsLWNvbC90aW1lLXBpY2tlci1yb2xsLWFtLXBtLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IERyb3Bkb3duTW9kdWxlIH0gZnJvbSAnLi4vZHJvcGRvd24nO1xyXG5cclxuQE5nTW9kdWxlKHtcclxuICBkZWNsYXJhdGlvbnM6IFtcclxuICAgIFRpbWVQaWNrZXJDb21wb25lbnQsXHJcbiAgICBUaW1lUGlja2VyUm9sbENvbENvbXBvbmVudCxcclxuICAgIFRpbWVFbGVtZW50RGlyZWN0aXZlLFxyXG4gICAgVGltZVBpY2tlclJvbGxBbVBtQ29tcG9uZW50LFxyXG4gICAgRGF5UGVyaW9kRWxlbWVudERpcmVjdGl2ZVxyXG4gIF0sXHJcbiAgaW1wb3J0czogW1xyXG4gICAgQ29tbW9uTW9kdWxlLFxyXG4gICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcclxuICAgIEZvcm1Nb2R1bGUsXHJcbiAgICBCdXR0b25Nb2R1bGUsXHJcbiAgICBEcm9wZG93bk1vZHVsZVxyXG4gIF0sXHJcbiAgZXhwb3J0czogW1xyXG4gICAgVGltZVBpY2tlckNvbXBvbmVudCxcclxuICBdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUaW1lUGlja2VyTW9kdWxlIHsgfVxyXG4iXX0=
|