@impartner/design-components 2.2.1 → 3.0.1
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/README.md +1 -0
- package/esm2022/lib/alert/alert.component.mjs +4 -4
- package/esm2022/lib/alert/alert.module.mjs +4 -4
- package/esm2022/lib/avatar/avatar.component.mjs +3 -3
- package/esm2022/lib/avatar/avatar.module.mjs +4 -4
- package/esm2022/lib/avatar-group/avatar-group.component.mjs +3 -3
- package/esm2022/lib/avatar-group/avatar-group.module.mjs +4 -4
- package/esm2022/lib/backdrop/backdrop.component.mjs +3 -3
- package/esm2022/lib/backdrop/backdrop.module.mjs +4 -4
- package/esm2022/lib/badge/badge.component.mjs +4 -4
- package/esm2022/lib/badge/badge.module.mjs +4 -4
- package/esm2022/lib/branding/branded.directive.mjs +3 -3
- package/esm2022/lib/branding/branding.module.mjs +4 -4
- package/esm2022/lib/breadcrumb/breadcrumb-item.component.mjs +3 -3
- package/esm2022/lib/breadcrumb/breadcrumb.component.mjs +3 -3
- package/esm2022/lib/breadcrumb/breadcrumb.module.mjs +4 -4
- package/esm2022/lib/button/button.component.mjs +3 -3
- package/esm2022/lib/button/button.module.mjs +4 -4
- package/esm2022/lib/button-group/button-group.component.mjs +3 -3
- package/esm2022/lib/button-group/button-group.module.mjs +4 -4
- package/esm2022/lib/card-heading/card-heading.component.mjs +3 -3
- package/esm2022/lib/card-heading/card-heading.module.mjs +4 -4
- package/esm2022/lib/data-card/data-card.component.mjs +3 -3
- package/esm2022/lib/data-card/data-card.module.mjs +4 -4
- package/esm2022/lib/datetime-picker/components/datepicker-nav/datepicker-nav.component.mjs +4 -4
- package/esm2022/lib/datetime-picker/components/datepicker-template-host/datepicker-template-host.component.mjs +8 -5
- package/esm2022/lib/datetime-picker/components/datetime-picker/datetime-picker.component.mjs +7 -8
- package/esm2022/lib/datetime-picker/components/datetime-picker-input/datetime-picker-input.component.mjs +4 -4
- package/esm2022/lib/datetime-picker/components/datetime-picker-input-footer/datetime-picker-input-footer.component.mjs +3 -3
- package/esm2022/lib/datetime-picker/datetime-picker.module.mjs +4 -4
- package/esm2022/lib/datetime-picker/services/datetime-formatter/datetime-formatter.service.mjs +7 -7
- package/esm2022/lib/design-components.module.mjs +4 -4
- package/esm2022/lib/dropdown/components/dropdown-item/dropdown-item.component.mjs +3 -3
- package/esm2022/lib/dropdown/dropdown.component.mjs +4 -4
- package/esm2022/lib/dropdown/dropdown.module.mjs +4 -4
- package/esm2022/lib/file-upload/directives/file-drop.directive.mjs +4 -4
- package/esm2022/lib/file-upload/file-upload.component.mjs +4 -4
- package/esm2022/lib/file-upload/file-upload.module.mjs +4 -4
- package/esm2022/lib/file-upload/pipes/human-readable-byte-size.pipe.mjs +4 -4
- package/esm2022/lib/form-field/component/directives/corner-hint.directive.mjs +3 -3
- package/esm2022/lib/form-field/component/directives/error.directive.mjs +3 -3
- package/esm2022/lib/form-field/component/directives/form-root.directive.mjs +6 -6
- package/esm2022/lib/form-field/component/directives/hint.directive.mjs +3 -3
- package/esm2022/lib/form-field/component/directives/label.directive.mjs +3 -3
- package/esm2022/lib/form-field/component/directives/prefix.directive.mjs +3 -3
- package/esm2022/lib/form-field/component/directives/suffix.directive.mjs +3 -3
- package/esm2022/lib/form-field/component/form-field.component.mjs +4 -4
- package/esm2022/lib/form-field/component/form-field.module.mjs +4 -4
- package/esm2022/lib/form-field/controls/checkbox/checkbox.component.mjs +4 -4
- package/esm2022/lib/form-field/controls/checkbox/checkbox.module.mjs +4 -4
- package/esm2022/lib/form-field/controls/input/input.directive.mjs +4 -4
- package/esm2022/lib/form-field/controls/radio/radio-button/radio-button.component.mjs +4 -4
- package/esm2022/lib/form-field/controls/radio/radio-group/radio-group.directive.mjs +4 -4
- package/esm2022/lib/form-field/controls/radio/radio.module.mjs +4 -4
- package/esm2022/lib/form-field/controls/select/option/select-option.component.mjs +3 -3
- package/esm2022/lib/form-field/controls/select/option-display/select-option-display.component.mjs +4 -4
- package/esm2022/lib/form-field/controls/select/option-group/select-option-group.component.mjs +3 -3
- package/esm2022/lib/form-field/controls/select/select-model.mjs +1 -1
- package/esm2022/lib/form-field/controls/select/select.component.mjs +7 -7
- package/esm2022/lib/form-field/controls/select/select.module.mjs +4 -4
- package/esm2022/lib/form-field/controls/select/value-tags-display/select-value-tags-display.component.mjs +4 -4
- package/esm2022/lib/form-field/controls/shared/toggle/components/toggle-input/toggle-input.component.mjs +3 -3
- package/esm2022/lib/form-field/controls/shared/toggle/toggle.component.mjs +4 -4
- package/esm2022/lib/form-field/controls/shared/toggle/toggle.module.mjs +4 -4
- package/esm2022/lib/form-field/controls/tag-select/tag-select.component.mjs +4 -4
- package/esm2022/lib/form-field/impdc-forms.module.mjs +4 -4
- package/esm2022/lib/form-field/services/error-state-matcher.service.mjs +6 -6
- package/esm2022/lib/form-field/services/unique-selection-dispatcher.service.mjs +4 -4
- package/esm2022/lib/form-field/shared/error-state.mixin.mjs +1 -1
- package/esm2022/lib/form-field/shared/form-field-control.mjs +3 -3
- package/esm2022/lib/icon/icon.component.mjs +4 -4
- package/esm2022/lib/icon/icon.module.mjs +4 -4
- package/esm2022/lib/modal/modal.component.mjs +4 -4
- package/esm2022/lib/modal/modal.module.mjs +4 -4
- package/esm2022/lib/pagination/pagination.component.mjs +4 -4
- package/esm2022/lib/pagination/pagination.module.mjs +4 -4
- package/esm2022/lib/progress-bar/progress-bar.component.mjs +3 -3
- package/esm2022/lib/progress-bar/progress-bar.module.mjs +4 -4
- package/esm2022/lib/scrollable/scrollable.component.mjs +4 -4
- package/esm2022/lib/scrollable/scrollable.module.mjs +4 -4
- package/esm2022/lib/select-icon/select-icon.component.mjs +4 -4
- package/esm2022/lib/select-icon/select-icon.module.mjs +4 -4
- package/esm2022/lib/size-detection/directive/size-detector.directive.mjs +4 -4
- package/esm2022/lib/size-detection/size-detection.module.mjs +4 -4
- package/esm2022/lib/spinner/spinner.component.mjs +3 -3
- package/esm2022/lib/spinner/spinner.module.mjs +4 -4
- package/esm2022/lib/table/components/bulk-actions/bulk-actions.component.mjs +3 -3
- package/esm2022/lib/table/components/column-heading/column-heading.component.mjs +3 -3
- package/esm2022/lib/table/components/row-actions/row-actions.component.mjs +4 -4
- package/esm2022/lib/table/containers/table.component.mjs +5 -5
- package/esm2022/lib/table/directives/collapse-monitor.directive.mjs +4 -4
- package/esm2022/lib/table/directives/table-inject-component.directive.mjs +4 -4
- package/esm2022/lib/table/directives/table.directive.mjs +3 -3
- package/esm2022/lib/table/helpers/table-theme.helper.mjs +1 -1
- package/esm2022/lib/table/table.module.mjs +4 -4
- package/esm2022/lib/tag/tag.component.mjs +4 -4
- package/esm2022/lib/text-highlight/text-highlight.component.mjs +4 -4
- package/esm2022/lib/text-highlight/text-highlight.module.mjs +4 -4
- package/esm2022/services/interaction.service.mjs +4 -4
- package/fesm2022/impartner-design-components.mjs +337 -335
- package/fesm2022/impartner-design-components.mjs.map +1 -1
- package/lib/datetime-picker/components/datepicker-template-host/datepicker-template-host.component.d.ts +1 -0
- package/lib/datetime-picker/components/datetime-picker/datetime-picker.component.d.ts +0 -2
- package/package.json +7 -7
|
@@ -84,10 +84,10 @@ export class DataCardComponent {
|
|
|
84
84
|
handleCornerClick(event) {
|
|
85
85
|
this.cornerClicked.emit(event);
|
|
86
86
|
}
|
|
87
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
88
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "
|
|
87
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: DataCardComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
88
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.0", type: DataCardComponent, selector: "impdc-data-card, [impdc-data-card]", inputs: { title: "title", current: "current", previous: "previous", difference: "difference", linkText: "linkText", sharedBorders: "sharedBorders", iconColor: "iconColor", iconBgColor: "iconBgColor" }, outputs: { linkClicked: "linkClicked", cornerClicked: "cornerClicked" }, host: { properties: { "class": "this.classDataCard", "class.impdc-data-card-shared-borders": "this.classDataCardSharedBorders" } }, viewQueries: [{ propertyName: "iconContentElementRef", first: true, predicate: ["iconContentEl"], descendants: true, read: (ElementRef), static: true }], ngImport: i0, template: "<div class=\"card-body impdc-data-card-body\">\n <div\n #iconContentEl\n class=\"impdc-data-card-icon\"\n [style.color]=\"iconColor ? iconColor : undefined\"\n [style.background-color]=\"iconBgColor ? iconBgColor : undefined\"\n [class.d-none]=\"!hasIcon\">\n <ng-content select=\"[icon]\"></ng-content>\n </div>\n <div class=\"impdc-data-card-container\">\n <div class=\"impdc-data-card-title\" [class.title-attention]=\"!hasIcon\">\n {{ title }}\n </div>\n <div class=\"impdc-data-card-data\">\n <ng-content></ng-content>\n <span\n *ngIf=\"current\"\n class=\"data-current\"\n [class.data-current-enlarged]=\"!hasIcon && !previous && !difference\"\n [innerText]=\"current\"></span>\n <span class=\"data-other\">\n <span\n *ngIf=\"!hasIcon && previous\"\n class=\"data-previous\"\n [innerText]=\"previous\"></span>\n <impdc-badge\n *ngIf=\"difference\"\n [text]=\"differenceDisplay\"\n [icon]=\"\n differencePositive\n ? 'arrow-up'\n : differenceNegative\n ? 'arrow-down'\n : ''\n \"\n [theme]=\"\n differencePositive\n ? BadgeTheme.Success\n : differenceNegative\n ? BadgeTheme.Danger\n : BadgeTheme.Light\n \"\n [hideBg]=\"hasIcon\"\n [rounded]=\"true\"></impdc-badge>\n </span>\n </div>\n </div>\n <div\n #cornerContentEl\n class=\"impdc-data-card-corner\"\n [class.d-none]=\"!cornerContentEl.children.length\"\n (click)=\"handleCornerClick($event); $event.stopPropagation()\">\n <ng-content select=\"[corner]\"></ng-content>\n </div>\n</div>\n<div\n class=\"card-footer impdc-data-card-footer\"\n [class.d-none]=\"!linkText && !footerContentEl.children.length\">\n <div #footerContentEl [class.d-none]=\"!footerContentEl.children.length\">\n <ng-content select=\"[footer]\"></ng-content>\n </div>\n <a\n *ngIf=\"linkText\"\n class=\"footer-link\"\n (click)=\"handleLinkClick($event); $event.stopPropagation()\"\n >{{ linkText }}</a\n >\n</div>\n", styles: [":host(.impdc-data-card){overflow-x:hidden;border:0;box-shadow:var(--impartner-hex-box-shadow);border-radius:var(--impd-border-radius-lg)}:host(.impdc-data-card).impdc-data-card-shared-borders:first-child:not(:last-child){border-right:solid var(--impd-color-gray-200) 1px;border-top-right-radius:0;border-bottom-right-radius:0}:host(.impdc-data-card).impdc-data-card-shared-borders:last-child:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}:host(.impdc-data-card).impdc-data-card-shared-borders:not(:first-child):not(:last-child){border-right:solid var(--impd-color-gray-200) 1px;border-radius:0}.impdc-data-card-body{position:relative;display:flex;align-items:center;gap:var(--impd-size-5);padding:var(--impd-size-6)}.impdc-data-card-icon{display:flex;align-items:center;justify-content:center;padding:var(--impd-size-3);background-color:var(--impd-color-motion-blue-600);color:var(--impd-color-white);border-radius:var(--impd-border-radius-md)}.impdc-data-card-icon ::ng-deep .fa,.impdc-data-card-icon ::ng-deep .fa-brands,.impdc-data-card-icon ::ng-deep .fa-duotone,.impdc-data-card-icon ::ng-deep .fa-light,.impdc-data-card-icon ::ng-deep .fa-regular,.impdc-data-card-icon ::ng-deep .fa-solid,.impdc-data-card-icon ::ng-deep .fa-thin,.impdc-data-card-icon ::ng-deep .fab,.impdc-data-card-icon ::ng-deep .fad,.impdc-data-card-icon ::ng-deep .fal,.impdc-data-card-icon ::ng-deep .far,.impdc-data-card-icon ::ng-deep .fas,.impdc-data-card-icon ::ng-deep .fat,.impdc-data-card-icon ::ng-deep svg{display:flex;align-items:center;justify-content:center;height:var(--impd-size-6);width:var(--impd-size-6);font-size:var(--impd-font-size-lg);line-height:var(--impd-size-6)}.impdc-data-card-container{display:flex;flex-direction:column;min-width:50px}.impdc-data-card-title{color:var(--impd-color-gray-500);font-size:var(--impd-font-size-sm);line-height:var(--impd-size-5);font-weight:var(--impd-font-weight-medium);min-width:100px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.impdc-data-card-title.title-attention{color:var(--impd-color-gray-900);font-size:var(--impd-font-size-base);line-height:var(--impd-size-6);font-weight:var(--impd-font-weight-normal)}.impdc-data-card-data{display:flex;flex-wrap:wrap;align-items:baseline;min-width:0;gap:var(--impd-size-2)}.impdc-data-card-data .data-current{color:var(--impd-color-gray-900);font-size:var(--impd-size-6);line-height:var(--impd-size-8);font-weight:var(--impd-font-weight-semibold);min-width:75px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.impdc-data-card-data .data-current.data-current-enlarged{font-size:var(--impd-font-size-3xl);line-height:var(--impd-size-9)}.impdc-data-card-data .data-other{display:inline-flex;justify-content:space-between;align-items:baseline;gap:var(--impd-size-2)}.impdc-data-card-data .data-previous{min-width:0;color:var(--impd-color-gray-500);font-size:var(--impd-font-size-sm);line-height:var(--impd-size-5);font-weight:var(--impd-font-weight-medium);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.impdc-data-card-corner{position:absolute;top:0;right:0;margin:var(--impd-size-2_5);line-height:var(--impd-size-3_5);color:var(--impd-color-gray-700)}.impdc-data-card-corner ::ng-deep .fa,.impdc-data-card-corner ::ng-deep .fa-brands,.impdc-data-card-corner ::ng-deep .fa-duotone,.impdc-data-card-corner ::ng-deep .fa-light,.impdc-data-card-corner ::ng-deep .fa-regular,.impdc-data-card-corner ::ng-deep .fa-solid,.impdc-data-card-corner ::ng-deep .fa-thin,.impdc-data-card-corner ::ng-deep .fab,.impdc-data-card-corner ::ng-deep .fad,.impdc-data-card-corner ::ng-deep .fal,.impdc-data-card-corner ::ng-deep .far,.impdc-data-card-corner ::ng-deep .fas,.impdc-data-card-corner ::ng-deep .fat,.impdc-data-card-corner ::ng-deep svg{height:var(--impd-size-3_5);line-height:var(--impd-size-3_5)}.impdc-data-card-footer{display:flex;align-items:center;padding:var(--impd-size-4);background-color:var(--impd-color-gray-50)}.impdc-data-card-footer.card-footer{border-top:0}.impdc-data-card-footer .footer-link{font-weight:var(--impd-font-weight-medium);font-size:var(--impd-font-size-sm);line-height:var(--impd-size-5)}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.BadgeComponent, selector: "impdc-badge, [impdc-badge]", inputs: ["text", "icon", "theme", "size", "hideBg", "rounded", "dismissable"], outputs: ["dismiss"] }] }); }
|
|
89
89
|
}
|
|
90
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
90
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: DataCardComponent, decorators: [{
|
|
91
91
|
type: Component,
|
|
92
92
|
args: [{ selector: 'impdc-data-card, [impdc-data-card]', template: "<div class=\"card-body impdc-data-card-body\">\n <div\n #iconContentEl\n class=\"impdc-data-card-icon\"\n [style.color]=\"iconColor ? iconColor : undefined\"\n [style.background-color]=\"iconBgColor ? iconBgColor : undefined\"\n [class.d-none]=\"!hasIcon\">\n <ng-content select=\"[icon]\"></ng-content>\n </div>\n <div class=\"impdc-data-card-container\">\n <div class=\"impdc-data-card-title\" [class.title-attention]=\"!hasIcon\">\n {{ title }}\n </div>\n <div class=\"impdc-data-card-data\">\n <ng-content></ng-content>\n <span\n *ngIf=\"current\"\n class=\"data-current\"\n [class.data-current-enlarged]=\"!hasIcon && !previous && !difference\"\n [innerText]=\"current\"></span>\n <span class=\"data-other\">\n <span\n *ngIf=\"!hasIcon && previous\"\n class=\"data-previous\"\n [innerText]=\"previous\"></span>\n <impdc-badge\n *ngIf=\"difference\"\n [text]=\"differenceDisplay\"\n [icon]=\"\n differencePositive\n ? 'arrow-up'\n : differenceNegative\n ? 'arrow-down'\n : ''\n \"\n [theme]=\"\n differencePositive\n ? BadgeTheme.Success\n : differenceNegative\n ? BadgeTheme.Danger\n : BadgeTheme.Light\n \"\n [hideBg]=\"hasIcon\"\n [rounded]=\"true\"></impdc-badge>\n </span>\n </div>\n </div>\n <div\n #cornerContentEl\n class=\"impdc-data-card-corner\"\n [class.d-none]=\"!cornerContentEl.children.length\"\n (click)=\"handleCornerClick($event); $event.stopPropagation()\">\n <ng-content select=\"[corner]\"></ng-content>\n </div>\n</div>\n<div\n class=\"card-footer impdc-data-card-footer\"\n [class.d-none]=\"!linkText && !footerContentEl.children.length\">\n <div #footerContentEl [class.d-none]=\"!footerContentEl.children.length\">\n <ng-content select=\"[footer]\"></ng-content>\n </div>\n <a\n *ngIf=\"linkText\"\n class=\"footer-link\"\n (click)=\"handleLinkClick($event); $event.stopPropagation()\"\n >{{ linkText }}</a\n >\n</div>\n", styles: [":host(.impdc-data-card){overflow-x:hidden;border:0;box-shadow:var(--impartner-hex-box-shadow);border-radius:var(--impd-border-radius-lg)}:host(.impdc-data-card).impdc-data-card-shared-borders:first-child:not(:last-child){border-right:solid var(--impd-color-gray-200) 1px;border-top-right-radius:0;border-bottom-right-radius:0}:host(.impdc-data-card).impdc-data-card-shared-borders:last-child:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}:host(.impdc-data-card).impdc-data-card-shared-borders:not(:first-child):not(:last-child){border-right:solid var(--impd-color-gray-200) 1px;border-radius:0}.impdc-data-card-body{position:relative;display:flex;align-items:center;gap:var(--impd-size-5);padding:var(--impd-size-6)}.impdc-data-card-icon{display:flex;align-items:center;justify-content:center;padding:var(--impd-size-3);background-color:var(--impd-color-motion-blue-600);color:var(--impd-color-white);border-radius:var(--impd-border-radius-md)}.impdc-data-card-icon ::ng-deep .fa,.impdc-data-card-icon ::ng-deep .fa-brands,.impdc-data-card-icon ::ng-deep .fa-duotone,.impdc-data-card-icon ::ng-deep .fa-light,.impdc-data-card-icon ::ng-deep .fa-regular,.impdc-data-card-icon ::ng-deep .fa-solid,.impdc-data-card-icon ::ng-deep .fa-thin,.impdc-data-card-icon ::ng-deep .fab,.impdc-data-card-icon ::ng-deep .fad,.impdc-data-card-icon ::ng-deep .fal,.impdc-data-card-icon ::ng-deep .far,.impdc-data-card-icon ::ng-deep .fas,.impdc-data-card-icon ::ng-deep .fat,.impdc-data-card-icon ::ng-deep svg{display:flex;align-items:center;justify-content:center;height:var(--impd-size-6);width:var(--impd-size-6);font-size:var(--impd-font-size-lg);line-height:var(--impd-size-6)}.impdc-data-card-container{display:flex;flex-direction:column;min-width:50px}.impdc-data-card-title{color:var(--impd-color-gray-500);font-size:var(--impd-font-size-sm);line-height:var(--impd-size-5);font-weight:var(--impd-font-weight-medium);min-width:100px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.impdc-data-card-title.title-attention{color:var(--impd-color-gray-900);font-size:var(--impd-font-size-base);line-height:var(--impd-size-6);font-weight:var(--impd-font-weight-normal)}.impdc-data-card-data{display:flex;flex-wrap:wrap;align-items:baseline;min-width:0;gap:var(--impd-size-2)}.impdc-data-card-data .data-current{color:var(--impd-color-gray-900);font-size:var(--impd-size-6);line-height:var(--impd-size-8);font-weight:var(--impd-font-weight-semibold);min-width:75px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.impdc-data-card-data .data-current.data-current-enlarged{font-size:var(--impd-font-size-3xl);line-height:var(--impd-size-9)}.impdc-data-card-data .data-other{display:inline-flex;justify-content:space-between;align-items:baseline;gap:var(--impd-size-2)}.impdc-data-card-data .data-previous{min-width:0;color:var(--impd-color-gray-500);font-size:var(--impd-font-size-sm);line-height:var(--impd-size-5);font-weight:var(--impd-font-weight-medium);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.impdc-data-card-corner{position:absolute;top:0;right:0;margin:var(--impd-size-2_5);line-height:var(--impd-size-3_5);color:var(--impd-color-gray-700)}.impdc-data-card-corner ::ng-deep .fa,.impdc-data-card-corner ::ng-deep .fa-brands,.impdc-data-card-corner ::ng-deep .fa-duotone,.impdc-data-card-corner ::ng-deep .fa-light,.impdc-data-card-corner ::ng-deep .fa-regular,.impdc-data-card-corner ::ng-deep .fa-solid,.impdc-data-card-corner ::ng-deep .fa-thin,.impdc-data-card-corner ::ng-deep .fab,.impdc-data-card-corner ::ng-deep .fad,.impdc-data-card-corner ::ng-deep .fal,.impdc-data-card-corner ::ng-deep .far,.impdc-data-card-corner ::ng-deep .fas,.impdc-data-card-corner ::ng-deep .fat,.impdc-data-card-corner ::ng-deep svg{height:var(--impd-size-3_5);line-height:var(--impd-size-3_5)}.impdc-data-card-footer{display:flex;align-items:center;padding:var(--impd-size-4);background-color:var(--impd-color-gray-50)}.impdc-data-card-footer.card-footer{border-top:0}.impdc-data-card-footer .footer-link{font-weight:var(--impd-font-weight-medium);font-size:var(--impd-font-size-sm);line-height:var(--impd-size-5)}\n"] }]
|
|
93
93
|
}], propDecorators: { iconContentElementRef: [{
|
|
@@ -6,11 +6,11 @@ import { BadgeModule } from '../badge';
|
|
|
6
6
|
import * as i0 from "@angular/core";
|
|
7
7
|
export class DataCardModule {
|
|
8
8
|
constructor() { }
|
|
9
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
10
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "
|
|
11
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "
|
|
9
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: DataCardModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
10
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.0", ngImport: i0, type: DataCardModule, declarations: [DataCardComponent], imports: [CommonModule, IconModule, BadgeModule], exports: [IconModule, DataCardComponent] }); }
|
|
11
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: DataCardModule, imports: [CommonModule, IconModule, BadgeModule, IconModule] }); }
|
|
12
12
|
}
|
|
13
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
13
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: DataCardModule, decorators: [{
|
|
14
14
|
type: NgModule,
|
|
15
15
|
args: [{
|
|
16
16
|
imports: [CommonModule, IconModule, BadgeModule],
|
|
@@ -76,10 +76,10 @@ export class DatepickerNavComponent {
|
|
|
76
76
|
}
|
|
77
77
|
}
|
|
78
78
|
}
|
|
79
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
80
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "
|
|
79
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: DatepickerNavComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
80
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.0", type: DatepickerNavComponent, isStandalone: true, selector: "impdc-datepicker-nav", inputs: { date: "date", disabled: "disabled", prevDisabled: "prevDisabled", nextDisabled: "nextDisabled", selectBoxes: "selectBoxes" }, outputs: { navigate: "navigate", selected: "selected" }, ngImport: i0, template: "<div class=\"d-flex justify-content-between align-items-center\">\n <button\n class=\"impdc-datepicker-nav-prev btn btn-link me-auto\"\n (click)=\"onClickGoPrevious($event)\"\n [disabled]=\"disabled || prevDisabled\">\n <impdc-icon name=\"chevron-left\" size=\"12\"></impdc-icon>\n </button>\n\n <div class=\"d-flex\">\n <impdc-select\n [formControl]=\"monthControl\"\n [dropdownContainer]=\"null\"\n allowClear=\"false\"\n class=\"impdc-datepicker-nav-month no-caret\">\n <impdc-select-option\n *ngFor=\"let month of selectBoxes.months\"\n [value]=\"month\"\n [label]=\"datepickerI18n.getMonthFullName(month, date.year)\" />\n </impdc-select>\n <impdc-select\n [formControl]=\"yearControl\"\n [dropdownContainer]=\"null\"\n allowClear=\"false\"\n class=\"impdc-datepicker-nav-year no-caret\">\n @for (year of selectBoxes.years; track year) {\n <impdc-select-option\n [value]=\"year\"\n [label]=\"datepickerI18n.getYearNumerals(year)\" />\n }\n </impdc-select>\n </div>\n\n <button\n class=\"impdc-datepicker-nav-next btn btn-link ms-auto\"\n (click)=\"onClickGoNext($event)\"\n [disabled]=\"disabled || nextDisabled\">\n <impdc-icon name=\"chevron-right\" size=\"12\"></impdc-icon>\n </button>\n</div>\n", styles: [":host{display:block;width:100%}.form-select{--impartner-hex-border-width: 0;box-shadow:none}.form-select ::ng-deep .impdc-select--toggle{--impartner-hex-btn-font-size: var(--impd-font-size-lg);--impartner-hex-btn-line-height: 3rem;box-shadow:none;padding:var(--impd-size-0_5) var(--impd-size-2)}.form-select ::ng-deep .impdc-select--text{font-size:var(--impd-font-size-lg);font-weight:var(--impd-font-weight-semibold);line-height:3rem}.impdc-datepicker-nav-prev,.impdc-datepicker-nav-next{align-items:center;border-radius:var(--impd-border-radius-2xl);color:var(--impd-color-gray-700)!important;display:flex;height:2.4rem;justify-content:center;padding:0;width:2.4rem}.impdc-datepicker-nav-prev:hover,.impdc-datepicker-nav-prev:focus,.impdc-datepicker-nav-prev:active,.impdc-datepicker-nav-next:hover,.impdc-datepicker-nav-next:focus,.impdc-datepicker-nav-next:active{background-color:var(--impd-color-gray-100)}.impdc-datepicker-nav-prev impdc-icon,.impdc-datepicker-nav-next impdc-icon{line-height:1}.impdc-datepicker-nav-month:hover,.impdc-datepicker-nav-month:focus,.impdc-datepicker-nav-month:active,.impdc-datepicker-nav-year:hover,.impdc-datepicker-nav-year:focus,.impdc-datepicker-nav-year:active{--impartner-hex-btn-bg: var(--impd-color-gray-100);background-color:var(--impd-color-gray-100)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: ImpdcFormsModule }, { kind: "component", type: i3.SelectOptionComponent, selector: "impdc-select-option", inputs: ["value", "label", "disabled"] }, { kind: "component", type: i4.SelectComponent, selector: "impdc-select", inputs: ["disabled", "tabIndex", "search", "placeholder", "required", "compareWith", "dropdownContainer", "errorStateMatcher", "allowClear", "multiple", "multipleDisplay"], outputs: ["selectionChange", "valueChange", "searchTextChanges"], exportAs: ["impdcSelect"] }, { kind: "ngmodule", type: IconModule }, { kind: "component", type: i5.IconComponent, selector: "impdc-icon, [impdc-icon]", inputs: ["name", "theme", "size"] }], changeDetection: i0.ChangeDetectionStrategy.Default }); }
|
|
81
81
|
}
|
|
82
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
82
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: DatepickerNavComponent, decorators: [{
|
|
83
83
|
type: Component,
|
|
84
84
|
args: [{ selector: 'impdc-datepicker-nav', standalone: true, imports: [CommonModule, ReactiveFormsModule, ImpdcFormsModule, IconModule], changeDetection: ChangeDetectionStrategy.Default, template: "<div class=\"d-flex justify-content-between align-items-center\">\n <button\n class=\"impdc-datepicker-nav-prev btn btn-link me-auto\"\n (click)=\"onClickGoPrevious($event)\"\n [disabled]=\"disabled || prevDisabled\">\n <impdc-icon name=\"chevron-left\" size=\"12\"></impdc-icon>\n </button>\n\n <div class=\"d-flex\">\n <impdc-select\n [formControl]=\"monthControl\"\n [dropdownContainer]=\"null\"\n allowClear=\"false\"\n class=\"impdc-datepicker-nav-month no-caret\">\n <impdc-select-option\n *ngFor=\"let month of selectBoxes.months\"\n [value]=\"month\"\n [label]=\"datepickerI18n.getMonthFullName(month, date.year)\" />\n </impdc-select>\n <impdc-select\n [formControl]=\"yearControl\"\n [dropdownContainer]=\"null\"\n allowClear=\"false\"\n class=\"impdc-datepicker-nav-year no-caret\">\n @for (year of selectBoxes.years; track year) {\n <impdc-select-option\n [value]=\"year\"\n [label]=\"datepickerI18n.getYearNumerals(year)\" />\n }\n </impdc-select>\n </div>\n\n <button\n class=\"impdc-datepicker-nav-next btn btn-link ms-auto\"\n (click)=\"onClickGoNext($event)\"\n [disabled]=\"disabled || nextDisabled\">\n <impdc-icon name=\"chevron-right\" size=\"12\"></impdc-icon>\n </button>\n</div>\n", styles: [":host{display:block;width:100%}.form-select{--impartner-hex-border-width: 0;box-shadow:none}.form-select ::ng-deep .impdc-select--toggle{--impartner-hex-btn-font-size: var(--impd-font-size-lg);--impartner-hex-btn-line-height: 3rem;box-shadow:none;padding:var(--impd-size-0_5) var(--impd-size-2)}.form-select ::ng-deep .impdc-select--text{font-size:var(--impd-font-size-lg);font-weight:var(--impd-font-weight-semibold);line-height:3rem}.impdc-datepicker-nav-prev,.impdc-datepicker-nav-next{align-items:center;border-radius:var(--impd-border-radius-2xl);color:var(--impd-color-gray-700)!important;display:flex;height:2.4rem;justify-content:center;padding:0;width:2.4rem}.impdc-datepicker-nav-prev:hover,.impdc-datepicker-nav-prev:focus,.impdc-datepicker-nav-prev:active,.impdc-datepicker-nav-next:hover,.impdc-datepicker-nav-next:focus,.impdc-datepicker-nav-next:active{background-color:var(--impd-color-gray-100)}.impdc-datepicker-nav-prev impdc-icon,.impdc-datepicker-nav-next impdc-icon{line-height:1}.impdc-datepicker-nav-month:hover,.impdc-datepicker-nav-month:focus,.impdc-datepicker-nav-month:active,.impdc-datepicker-nav-year:hover,.impdc-datepicker-nav-year:focus,.impdc-datepicker-nav-year:active{--impartner-hex-btn-bg: var(--impd-color-gray-100);background-color:var(--impd-color-gray-100)}\n"] }]
|
|
85
85
|
}], propDecorators: { date: [{
|
|
@@ -102,4 +102,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.1", ngImpor
|
|
|
102
102
|
}], selected: [{
|
|
103
103
|
type: Output
|
|
104
104
|
}] } });
|
|
105
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZXBpY2tlci1uYXYuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGVzaWduLWNvbXBvbmVudHMvc3JjL2xpYi9kYXRldGltZS1waWNrZXIvY29tcG9uZW50cy9kYXRlcGlja2VyLW5hdi9kYXRlcGlja2VyLW5hdi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kZXNpZ24tY29tcG9uZW50cy9zcmMvbGliL2RhdGV0aW1lLXBpY2tlci9jb21wb25lbnRzL2RhdGVwaWNrZXItbmF2L2RhdGVwaWNrZXItbmF2LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBRUwsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsVUFBVSxFQUNWLFlBQVksRUFDWixLQUFLLEVBRUwsTUFBTSxFQUNOLE1BQU0sRUFDUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsV0FBVyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbEUsT0FBTyxFQUNMLE9BQU8sRUFFUCxpQkFBaUIsRUFDbEIsTUFBTSw0QkFBNEIsQ0FBQztBQUNwQyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7Ozs7O0FBYTNDLE1BQU0sT0FBTyxzQkFBc0I7SUFSbkM7UUFTbUIsUUFBRyxHQUFHLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBQ2hDLGlCQUFZLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ2hDLGlCQUFZLEdBQUcsSUFBSSxXQUFXLENBQWdCLElBQUksQ0FBQyxDQUFDO1FBQ3BELGdCQUFXLEdBQUcsSUFBSSxXQUFXLENBQWdCLElBQUksQ0FBQyxDQUFDO1FBQ25ELG1CQUFjLEdBQUcsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFvQnRELGNBQVMsR0FBRyxLQUFLLENBQUM7UUFHbkIsaUJBQVksR0FBWSxLQUFLLENBQUM7UUFHOUIsaUJBQVksR0FBWSxLQUFLLENBQUM7UUFLM0IsYUFBUSxHQUFHLElBQUksWUFBWSxFQUFzQixDQUFDO1FBQ2xELGFBQVEsR0FBRyxJQUFJLFlBQVksRUFBVyxDQUFDO0tBaURsRDtJQTVFQyxJQUNXLFFBQVE7UUFDakIsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDO0lBQ3hCLENBQUM7SUFDRCxJQUFXLFFBQVEsQ0FBQyxLQUFjO1FBQ2hDLElBQUksQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDO1FBRXZCLElBQUksS0FBSyxFQUFFO1lBQ1QsSUFBSSxDQUFDLFlBQVksQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUM1QixJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sRUFBRSxDQUFDO1NBQzVCO2FBQU07WUFDTCxJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQzNCLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxFQUFFLENBQUM7U0FDM0I7SUFDSCxDQUFDO0lBZU0saUJBQWlCLENBQUMsS0FBaUI7UUFDdkMsS0FBSyxDQUFDLGFBQTZCLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDN0MsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDeEIsQ0FBQztJQUVNLGFBQWEsQ0FBQyxLQUFpQjtRQUNuQyxLQUFLLENBQUMsYUFBNkIsQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUM3QyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN4QixDQUFDO0lBRU0sV0FBVyxDQUFDLEtBQWE7UUFDOUIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDNUQsQ0FBQztJQUVNLFVBQVUsQ0FBQyxJQUFZO1FBQzVCLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksT0FBTyxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzVELENBQUM7SUFFTSxRQUFRO1FBQ2IsSUFBSSxDQUFDLFlBQVksQ0FBQyxZQUFZO2FBQzNCLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7YUFDM0MsU0FBUyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssSUFBSSxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFFMUQsSUFBSSxDQUFDLFdBQVcsQ0FBQyxZQUFZO2FBQzFCLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7YUFDM0MsU0FBUyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7UUFFdEQsSUFBSSxDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN2QyxDQUFDO0lBRU0sa0JBQWtCO1FBQ3ZCLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDdkMsQ0FBQztJQUVPLG9CQUFvQixDQUFDLFNBQW1CO1FBQzlDLElBQUksU0FBUyxFQUFFO1lBQ2IsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssS0FBSyxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssRUFBRTtnQkFDL0MsSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDNUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxZQUFZLEVBQUUsQ0FBQzthQUN6QjtZQUVELElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLEtBQUssSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLEVBQUU7Z0JBQzdDLElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQzFDLElBQUksQ0FBQyxHQUFHLENBQUMsWUFBWSxFQUFFLENBQUM7YUFDekI7U0FDRjtJQUNILENBQUM7OEdBckZVLHNCQUFzQjtrR0FBdEIsc0JBQXNCLGlSQ2xDbkMsK3pDQXVDQSwrMENEVlksWUFBWSwySkFBRSxtQkFBbUIseVRBQUUsZ0JBQWdCLG1mQUFFLFVBQVU7OzJGQUs5RCxzQkFBc0I7a0JBUmxDLFNBQVM7K0JBQ0Usc0JBQXNCLGNBQ3BCLElBQUksV0FDUCxDQUFDLFlBQVksRUFBRSxtQkFBbUIsRUFBRSxnQkFBZ0IsRUFBRSxVQUFVLENBQUMsbUJBR3pELHVCQUF1QixDQUFDLE9BQU87OEJBVXpDLElBQUk7c0JBRFYsS0FBSzt1QkFBQyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUU7Z0JBSWQsUUFBUTtzQkFEbEIsS0FBSzt1QkFBQyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUU7Z0JBa0JsQixZQUFZO3NCQURsQixLQUFLO3VCQUFDLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRTtnQkFJbEIsWUFBWTtzQkFEbEIsS0FBSzt1QkFBQyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUU7Z0JBSWxCLFdBQVc7c0JBRGpCLEtBQUs7dUJBQUMsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFO2dCQUdmLFFBQVE7c0JBQWpCLE1BQU07Z0JBQ0csUUFBUTtzQkFBakIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICBBZnRlclZpZXdDaGVja2VkLFxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgRGVzdHJveVJlZixcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT25Jbml0LFxuICBPdXRwdXQsXG4gIGluamVjdFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IHRha2VVbnRpbERlc3Ryb3llZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcbmltcG9ydCB7IEZvcm1Db250cm9sLCBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHtcbiAgTmdiRGF0ZSxcbiAgTmdiRGF0ZXBpY2tlcixcbiAgTmdiRGF0ZXBpY2tlckkxOG5cbn0gZnJvbSAnQG5nLWJvb3RzdHJhcC9uZy1ib290c3RyYXAnO1xuaW1wb3J0IHsgSW1wZGNGb3Jtc01vZHVsZSB9IGZyb20gJy4uLy4uLy4uL2Zvcm0tZmllbGQnO1xuaW1wb3J0IHsgSWNvbk1vZHVsZSB9IGZyb20gJy4uLy4uLy4uL2ljb24nO1xuXG50eXBlIE5nYkRhdGVwaWNrZXJWaWV3TW9kZWwgPSBOZ2JEYXRlcGlja2VyWydtb2RlbCddO1xudHlwZSBOZ2JOYXZpZ2F0aW9uRXZlbnQgPSBQYXJhbWV0ZXJzPE5nYkRhdGVwaWNrZXJbJ29uTmF2aWdhdGVFdmVudCddPlswXTtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnaW1wZGMtZGF0ZXBpY2tlci1uYXYnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlLCBJbXBkY0Zvcm1zTW9kdWxlLCBJY29uTW9kdWxlXSxcbiAgdGVtcGxhdGVVcmw6ICcuL2RhdGVwaWNrZXItbmF2LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZGF0ZXBpY2tlci1uYXYuY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5EZWZhdWx0XG59KVxuZXhwb3J0IGNsYXNzIERhdGVwaWNrZXJOYXZDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyVmlld0NoZWNrZWQge1xuICBwcml2YXRlIHJlYWRvbmx5IF9jZCA9IGluamVjdChDaGFuZ2VEZXRlY3RvclJlZik7XG4gIHByaXZhdGUgcmVhZG9ubHkgX2Rlc3Ryb3lSZWYkID0gaW5qZWN0KERlc3Ryb3lSZWYpO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgbW9udGhDb250cm9sID0gbmV3IEZvcm1Db250cm9sPG51bWJlciB8IG51bGw+KG51bGwpO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgeWVhckNvbnRyb2wgPSBuZXcgRm9ybUNvbnRyb2w8bnVtYmVyIHwgbnVsbD4obnVsbCk7XG4gIHByb3RlY3RlZCByZWFkb25seSBkYXRlcGlja2VySTE4biA9IGluamVjdChOZ2JEYXRlcGlja2VySTE4bik7XG5cbiAgQElucHV0KHsgcmVxdWlyZWQ6IHRydWUgfSlcbiAgcHVibGljIGRhdGUhOiBOZ2JEYXRlO1xuXG4gIEBJbnB1dCh7IHJlcXVpcmVkOiB0cnVlIH0pXG4gIHB1YmxpYyBnZXQgZGlzYWJsZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX2Rpc2FibGVkO1xuICB9XG4gIHB1YmxpYyBzZXQgZGlzYWJsZWQodmFsdWU6IGJvb2xlYW4pIHtcbiAgICB0aGlzLl9kaXNhYmxlZCA9IHZhbHVlO1xuXG4gICAgaWYgKHZhbHVlKSB7XG4gICAgICB0aGlzLm1vbnRoQ29udHJvbC5kaXNhYmxlKCk7XG4gICAgICB0aGlzLnllYXJDb250cm9sLmRpc2FibGUoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5tb250aENvbnRyb2wuZW5hYmxlKCk7XG4gICAgICB0aGlzLnllYXJDb250cm9sLmVuYWJsZSgpO1xuICAgIH1cbiAgfVxuICBwcml2YXRlIF9kaXNhYmxlZCA9IGZhbHNlO1xuXG4gIEBJbnB1dCh7IHJlcXVpcmVkOiB0cnVlIH0pXG4gIHB1YmxpYyBwcmV2RGlzYWJsZWQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBASW5wdXQoeyByZXF1aXJlZDogdHJ1ZSB9KVxuICBwdWJsaWMgbmV4dERpc2FibGVkOiBib29sZWFuID0gZmFsc2U7XG5cbiAgQElucHV0KHsgcmVxdWlyZWQ6IHRydWUgfSlcbiAgcHVibGljIHNlbGVjdEJveGVzITogTmdiRGF0ZXBpY2tlclZpZXdNb2RlbFsnc2VsZWN0Qm94ZXMnXTtcblxuICBAT3V0cHV0KCkgbmF2aWdhdGUgPSBuZXcgRXZlbnRFbWl0dGVyPE5nYk5hdmlnYXRpb25FdmVudD4oKTtcbiAgQE91dHB1dCgpIHNlbGVjdGVkID0gbmV3IEV2ZW50RW1pdHRlcjxOZ2JEYXRlPigpO1xuXG4gIHB1YmxpYyBvbkNsaWNrR29QcmV2aW91cyhldmVudDogTW91c2VFdmVudCkge1xuICAgIChldmVudC5jdXJyZW50VGFyZ2V0IGFzIEhUTUxFbGVtZW50KS5mb2N1cygpO1xuICAgIHRoaXMubmF2aWdhdGUuZW1pdCgwKTtcbiAgfVxuXG4gIHB1YmxpYyBvbkNsaWNrR29OZXh0KGV2ZW50OiBNb3VzZUV2ZW50KSB7XG4gICAgKGV2ZW50LmN1cnJlbnRUYXJnZXQgYXMgSFRNTEVsZW1lbnQpLmZvY3VzKCk7XG4gICAgdGhpcy5uYXZpZ2F0ZS5lbWl0KDEpO1xuICB9XG5cbiAgcHVibGljIGNoYW5nZU1vbnRoKG1vbnRoOiBudW1iZXIpIHtcbiAgICB0aGlzLnNlbGVjdGVkLmVtaXQobmV3IE5nYkRhdGUodGhpcy5kYXRlLnllYXIsIG1vbnRoLCAxKSk7XG4gIH1cblxuICBwdWJsaWMgY2hhbmdlWWVhcih5ZWFyOiBudW1iZXIpIHtcbiAgICB0aGlzLnNlbGVjdGVkLmVtaXQobmV3IE5nYkRhdGUoeWVhciwgdGhpcy5kYXRlLm1vbnRoLCAxKSk7XG4gIH1cblxuICBwdWJsaWMgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5tb250aENvbnRyb2wudmFsdWVDaGFuZ2VzXG4gICAgICAucGlwZSh0YWtlVW50aWxEZXN0cm95ZWQodGhpcy5fZGVzdHJveVJlZiQpKVxuICAgICAgLnN1YnNjcmliZShtb250aCA9PiAhIW1vbnRoICYmIHRoaXMuY2hhbmdlTW9udGgobW9udGgpKTtcblxuICAgIHRoaXMueWVhckNvbnRyb2wudmFsdWVDaGFuZ2VzXG4gICAgICAucGlwZSh0YWtlVW50aWxEZXN0cm95ZWQodGhpcy5fZGVzdHJveVJlZiQpKVxuICAgICAgLnN1YnNjcmliZSh5ZWFyID0+ICEheWVhciAmJiB0aGlzLmNoYW5nZVllYXIoeWVhcikpO1xuXG4gICAgdGhpcy5fYXBwbHlEYXRlVG9Db250cm9scyh0aGlzLmRhdGUpO1xuICB9XG5cbiAgcHVibGljIG5nQWZ0ZXJWaWV3Q2hlY2tlZCgpIHtcbiAgICB0aGlzLl9hcHBseURhdGVUb0NvbnRyb2xzKHRoaXMuZGF0ZSk7XG4gIH1cblxuICBwcml2YXRlIF9hcHBseURhdGVUb0NvbnRyb2xzKGRhdGVWYWx1ZT86IE5nYkRhdGUpOiB2b2lkIHtcbiAgICBpZiAoZGF0ZVZhbHVlKSB7XG4gICAgICBpZiAodGhpcy5kYXRlLm1vbnRoICE9PSB0aGlzLm1vbnRoQ29udHJvbC52YWx1ZSkge1xuICAgICAgICB0aGlzLm1vbnRoQ29udHJvbC5zZXRWYWx1ZSh0aGlzLmRhdGUubW9udGgpO1xuICAgICAgICB0aGlzLl9jZC5tYXJrRm9yQ2hlY2soKTtcbiAgICAgIH1cblxuICAgICAgaWYgKHRoaXMuZGF0ZS55ZWFyICE9PSB0aGlzLnllYXJDb250cm9sLnZhbHVlKSB7XG4gICAgICAgIHRoaXMueWVhckNvbnRyb2wuc2V0VmFsdWUodGhpcy5kYXRlLnllYXIpO1xuICAgICAgICB0aGlzLl9jZC5tYXJrRm9yQ2hlY2soKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJkLWZsZXgganVzdGlmeS1jb250ZW50LWJldHdlZW4gYWxpZ24taXRlbXMtY2VudGVyXCI+XG4gIDxidXR0b25cbiAgICBjbGFzcz1cImltcGRjLWRhdGVwaWNrZXItbmF2LXByZXYgYnRuIGJ0bi1saW5rIG1lLWF1dG9cIlxuICAgIChjbGljayk9XCJvbkNsaWNrR29QcmV2aW91cygkZXZlbnQpXCJcbiAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWQgfHwgcHJldkRpc2FibGVkXCI+XG4gICAgPGltcGRjLWljb24gbmFtZT1cImNoZXZyb24tbGVmdFwiIHNpemU9XCIxMlwiPjwvaW1wZGMtaWNvbj5cbiAgPC9idXR0b24+XG5cbiAgPGRpdiBjbGFzcz1cImQtZmxleFwiPlxuICAgIDxpbXBkYy1zZWxlY3RcbiAgICAgIFtmb3JtQ29udHJvbF09XCJtb250aENvbnRyb2xcIlxuICAgICAgW2Ryb3Bkb3duQ29udGFpbmVyXT1cIm51bGxcIlxuICAgICAgYWxsb3dDbGVhcj1cImZhbHNlXCJcbiAgICAgIGNsYXNzPVwiaW1wZGMtZGF0ZXBpY2tlci1uYXYtbW9udGggbm8tY2FyZXRcIj5cbiAgICAgIDxpbXBkYy1zZWxlY3Qtb3B0aW9uXG4gICAgICAgICpuZ0Zvcj1cImxldCBtb250aCBvZiBzZWxlY3RCb3hlcy5tb250aHNcIlxuICAgICAgICBbdmFsdWVdPVwibW9udGhcIlxuICAgICAgICBbbGFiZWxdPVwiZGF0ZXBpY2tlckkxOG4uZ2V0TW9udGhGdWxsTmFtZShtb250aCwgZGF0ZS55ZWFyKVwiIC8+XG4gICAgPC9pbXBkYy1zZWxlY3Q+XG4gICAgPGltcGRjLXNlbGVjdFxuICAgICAgW2Zvcm1Db250cm9sXT1cInllYXJDb250cm9sXCJcbiAgICAgIFtkcm9wZG93bkNvbnRhaW5lcl09XCJudWxsXCJcbiAgICAgIGFsbG93Q2xlYXI9XCJmYWxzZVwiXG4gICAgICBjbGFzcz1cImltcGRjLWRhdGVwaWNrZXItbmF2LXllYXIgbm8tY2FyZXRcIj5cbiAgICAgIEBmb3IgKHllYXIgb2Ygc2VsZWN0Qm94ZXMueWVhcnM7IHRyYWNrIHllYXIpIHtcbiAgICAgIDxpbXBkYy1zZWxlY3Qtb3B0aW9uXG4gICAgICAgIFt2YWx1ZV09XCJ5ZWFyXCJcbiAgICAgICAgW2xhYmVsXT1cImRhdGVwaWNrZXJJMThuLmdldFllYXJOdW1lcmFscyh5ZWFyKVwiIC8+XG4gICAgICB9XG4gICAgPC9pbXBkYy1zZWxlY3Q+XG4gIDwvZGl2PlxuXG4gIDxidXR0b25cbiAgICBjbGFzcz1cImltcGRjLWRhdGVwaWNrZXItbmF2LW5leHQgYnRuIGJ0bi1saW5rIG1zLWF1dG9cIlxuICAgIChjbGljayk9XCJvbkNsaWNrR29OZXh0KCRldmVudClcIlxuICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZCB8fCBuZXh0RGlzYWJsZWRcIj5cbiAgICA8aW1wZGMtaWNvbiBuYW1lPVwiY2hldnJvbi1yaWdodFwiIHNpemU9XCIxMlwiPjwvaW1wZGMtaWNvbj5cbiAgPC9idXR0b24+XG48L2Rpdj5cbiJdfQ==
|
|
105
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZXBpY2tlci1uYXYuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGVzaWduLWNvbXBvbmVudHMvc3JjL2xpYi9kYXRldGltZS1waWNrZXIvY29tcG9uZW50cy9kYXRlcGlja2VyLW5hdi9kYXRlcGlja2VyLW5hdi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kZXNpZ24tY29tcG9uZW50cy9zcmMvbGliL2RhdGV0aW1lLXBpY2tlci9jb21wb25lbnRzL2RhdGVwaWNrZXItbmF2L2RhdGVwaWNrZXItbmF2LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBRUwsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsVUFBVSxFQUNWLFlBQVksRUFDWixLQUFLLEVBRUwsTUFBTSxFQUNOLE1BQU0sRUFDUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsV0FBVyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbEUsT0FBTyxFQUNMLE9BQU8sRUFFUCxpQkFBaUIsRUFDbEIsTUFBTSw0QkFBNEIsQ0FBQztBQUNwQyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7Ozs7O0FBYTNDLE1BQU0sT0FBTyxzQkFBc0I7SUFSbkM7UUFTbUIsUUFBRyxHQUFHLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBQ2hDLGlCQUFZLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ2hDLGlCQUFZLEdB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c0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gIEFmdGVyVmlld0NoZWNrZWQsXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBEZXN0cm95UmVmLFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPbkluaXQsXG4gIE91dHB1dCxcbiAgaW5qZWN0XG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgdGFrZVVudGlsRGVzdHJveWVkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuaW1wb3J0IHsgRm9ybUNvbnRyb2wsIFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQge1xuICBOZ2JEYXRlLFxuICBOZ2JEYXRlcGlja2VyLFxuICBOZ2JEYXRlcGlja2VySTE4blxufSBmcm9tICdAbmctYm9vdHN0cmFwL25nLWJvb3RzdHJhcCc7XG5pbXBvcnQgeyBJbXBkY0Zvcm1zTW9kdWxlIH0gZnJvbSAnLi4vLi4vLi4vZm9ybS1maWVsZCc7XG5pbXBvcnQgeyBJY29uTW9kdWxlIH0gZnJvbSAnLi4vLi4vLi4vaWNvbic7XG5cbnR5cGUgTmdiRGF0ZXBpY2tlclZpZXdNb2RlbCA9IE5nYkRhdGVwaWNrZXJbJ21vZGVsJ107XG50eXBlIE5nYk5hdmlnYXRpb25FdmVudCA9IFBhcmFtZXRlcnM8TmdiRGF0ZXBpY2tlclsnb25OYXZpZ2F0ZUV2ZW50J10+WzBdO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdpbXBkYy1kYXRlcGlja2VyLW5hdicsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIFJlYWN0aXZlRm9ybXNNb2R1bGUsIEltcGRjRm9ybXNNb2R1bGUsIEljb25Nb2R1bGVdLFxuICB0ZW1wbGF0ZVVybDogJy4vZGF0ZXBpY2tlci1uYXYuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9kYXRlcGlja2VyLW5hdi5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LkRlZmF1bHRcbn0pXG5leHBvcnQgY2xhc3MgRGF0ZXBpY2tlck5hdkNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3Q2hlY2tlZCB7XG4gIHByaXZhdGUgcmVhZG9ubHkgX2NkID0gaW5qZWN0KENoYW5nZURldGVjdG9yUmVmKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfZGVzdHJveVJlZiQgPSBpbmplY3QoRGVzdHJveVJlZik7XG4gIHByb3RlY3RlZCByZWFkb25seSBtb250aENvbnRyb2wgPSBuZXcgRm9ybUNvbnRyb2w8bnVtYmVyIHwgbnVsbD4obnVsbCk7XG4gIHByb3RlY3RlZCByZWFkb25seSB5ZWFyQ29udHJvbCA9IG5ldyBGb3JtQ29udHJvbDxudW1iZXIgfCBudWxsPihudWxsKTtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGRhdGVwaWNrZXJJMThuID0gaW5qZWN0KE5nYkRhdGVwaWNrZXJJMThuKTtcblxuICBASW5wdXQoeyByZXF1aXJlZDogdHJ1ZSB9KVxuICBwdWJsaWMgZGF0ZSE6IE5nYkRhdGU7XG5cbiAgQElucHV0KHsgcmVxdWlyZWQ6IHRydWUgfSlcbiAgcHVibGljIGdldCBkaXNhYmxlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fZGlzYWJsZWQ7XG4gIH1cbiAgcHVibGljIHNldCBkaXNhYmxlZCh2YWx1ZTogYm9vbGVhbikge1xuICAgIHRoaXMuX2Rpc2FibGVkID0gdmFsdWU7XG5cbiAgICBpZiAodmFsdWUpIHtcbiAgICAgIHRoaXMubW9udGhDb250cm9sLmRpc2FibGUoKTtcbiAgICAgIHRoaXMueWVhckNvbnRyb2wuZGlzYWJsZSgpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLm1vbnRoQ29udHJvbC5lbmFibGUoKTtcbiAgICAgIHRoaXMueWVhckNvbnRyb2wuZW5hYmxlKCk7XG4gICAgfVxuICB9XG4gIHByaXZhdGUgX2Rpc2FibGVkID0gZmFsc2U7XG5cbiAgQElucHV0KHsgcmVxdWlyZWQ6IHRydWUgfSlcbiAgcHVibGljIHByZXZEaXNhYmxlZDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIEBJbnB1dCh7IHJlcXVpcmVkOiB0cnVlIH0pXG4gIHB1YmxpYyBuZXh0RGlzYWJsZWQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBASW5wdXQoeyByZXF1aXJlZDogdHJ1ZSB9KVxuICBwdWJsaWMgc2VsZWN0Qm94ZXMhOiBOZ2JEYXRlcGlja2VyVmlld01vZGVsWydzZWxlY3RCb3hlcyddO1xuXG4gIEBPdXRwdXQoKSBuYXZpZ2F0ZSA9IG5ldyBFdmVudEVtaXR0ZXI8TmdiTmF2aWdhdGlvbkV2ZW50PigpO1xuICBAT3V0cHV0KCkgc2VsZWN0ZWQgPSBuZXcgRXZlbnRFbWl0dGVyPE5nYkRhdGU+KCk7XG5cbiAgcHVibGljIG9uQ2xpY2tHb1ByZXZpb3VzKGV2ZW50OiBNb3VzZUV2ZW50KSB7XG4gICAgKGV2ZW50LmN1cnJlbnRUYXJnZXQgYXMgSFRNTEVsZW1lbnQpLmZvY3VzKCk7XG4gICAgdGhpcy5uYXZpZ2F0ZS5lbWl0KDApO1xuICB9XG5cbiAgcHVibGljIG9uQ2xpY2tHb05leHQoZXZlbnQ6IE1vdXNlRXZlbnQpIHtcbiAgICAoZXZlbnQuY3VycmVudFRhcmdldCBhcyBIVE1MRWxlbWVudCkuZm9jdXMoKTtcbiAgICB0aGlzLm5hdmlnYXRlLmVtaXQoMSk7XG4gIH1cblxuICBwdWJsaWMgY2hhbmdlTW9udGgobW9udGg6IG51bWJlcikge1xuICAgIHRoaXMuc2VsZWN0ZWQuZW1pdChuZXcgTmdiRGF0ZSh0aGlzLmRhdGUueWVhciwgbW9udGgsIDEpKTtcbiAgfVxuXG4gIHB1YmxpYyBjaGFuZ2VZZWFyKHllYXI6IG51bWJlcikge1xuICAgIHRoaXMuc2VsZWN0ZWQuZW1pdChuZXcgTmdiRGF0ZSh5ZWFyLCB0aGlzLmRhdGUubW9udGgsIDEpKTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLm1vbnRoQ29udHJvbC52YWx1ZUNoYW5nZXNcbiAgICAgIC5waXBlKHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLl9kZXN0cm95UmVmJCkpXG4gICAgICAuc3Vic2NyaWJlKG1vbnRoID0+ICEhbW9udGggJiYgdGhpcy5jaGFuZ2VNb250aChtb250aCkpO1xuXG4gICAgdGhpcy55ZWFyQ29udHJvbC52YWx1ZUNoYW5nZXNcbiAgICAgIC5waXBlKHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLl9kZXN0cm95UmVmJCkpXG4gICAgICAuc3Vic2NyaWJlKHllYXIgPT4gISF5ZWFyICYmIHRoaXMuY2hhbmdlWWVhcih5ZWFyKSk7XG5cbiAgICB0aGlzLl9hcHBseURhdGVUb0NvbnRyb2xzKHRoaXMuZGF0ZSk7XG4gIH1cblxuICBwdWJsaWMgbmdBZnRlclZpZXdDaGVja2VkKCkge1xuICAgIHRoaXMuX2FwcGx5RGF0ZVRvQ29udHJvbHModGhpcy5kYXRlKTtcbiAgfVxuXG4gIHByaXZhdGUgX2FwcGx5RGF0ZVRvQ29udHJvbHMoZGF0ZVZhbHVlPzogTmdiRGF0ZSk6IHZvaWQge1xuICAgIGlmIChkYXRlVmFsdWUpIHtcbiAgICAgIGlmICh0aGlzLmRhdGUubW9udGggIT09IHRoaXMubW9udGhDb250cm9sLnZhbHVlKSB7XG4gICAgICAgIHRoaXMubW9udGhDb250cm9sLnNldFZhbHVlKHRoaXMuZGF0ZS5tb250aCk7XG4gICAgICAgIHRoaXMuX2NkLm1hcmtGb3JDaGVjaygpO1xuICAgICAgfVxuXG4gICAgICBpZiAodGhpcy5kYXRlLnllYXIgIT09IHRoaXMueWVhckNvbnRyb2wudmFsdWUpIHtcbiAgICAgICAgdGhpcy55ZWFyQ29udHJvbC5zZXRWYWx1ZSh0aGlzLmRhdGUueWVhcik7XG4gICAgICAgIHRoaXMuX2NkLm1hcmtGb3JDaGVjaygpO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cbiAgPGJ1dHRvblxuICAgIGNsYXNzPVwiaW1wZGMtZGF0ZXBpY2tlci1uYXYtcHJldiBidG4gYnRuLWxpbmsgbWUtYXV0b1wiXG4gICAgKGNsaWNrKT1cIm9uQ2xpY2tHb1ByZXZpb3VzKCRldmVudClcIlxuICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZCB8fCBwcmV2RGlzYWJsZWRcIj5cbiAgICA8aW1wZGMtaWNvbiBuYW1lPVwiY2hldnJvbi1sZWZ0XCIgc2l6ZT1cIjEyXCI+PC9pbXBkYy1pY29uPlxuICA8L2J1dHRvbj5cblxuICA8ZGl2IGNsYXNzPVwiZC1mbGV4XCI+XG4gICAgPGltcGRjLXNlbGVjdFxuICAgICAgW2Zvcm1Db250cm9sXT1cIm1vbnRoQ29udHJvbFwiXG4gICAgICBbZHJvcGRvd25Db250YWluZXJdPVwibnVsbFwiXG4gICAgICBhbGxvd0NsZWFyPVwiZmFsc2VcIlxuICAgICAgY2xhc3M9XCJpbXBkYy1kYXRlcGlja2VyLW5hdi1tb250aCBuby1jYXJldFwiPlxuICAgICAgPGltcGRjLXNlbGVjdC1vcHRpb25cbiAgICAgICAgKm5nRm9yPVwibGV0IG1vbnRoIG9mIHNlbGVjdEJveGVzLm1vbnRoc1wiXG4gICAgICAgIFt2YWx1ZV09XCJtb250aFwiXG4gICAgICAgIFtsYWJlbF09XCJkYXRlcGlja2VySTE4bi5nZXRNb250aEZ1bGxOYW1lKG1vbnRoLCBkYXRlLnllYXIpXCIgLz5cbiAgICA8L2ltcGRjLXNlbGVjdD5cbiAgICA8aW1wZGMtc2VsZWN0XG4gICAgICBbZm9ybUNvbnRyb2xdPVwieWVhckNvbnRyb2xcIlxuICAgICAgW2Ryb3Bkb3duQ29udGFpbmVyXT1cIm51bGxcIlxuICAgICAgYWxsb3dDbGVhcj1cImZhbHNlXCJcbiAgICAgIGNsYXNzPVwiaW1wZGMtZGF0ZXBpY2tlci1uYXYteWVhciBuby1jYXJldFwiPlxuICAgICAgQGZvciAoeWVhciBvZiBzZWxlY3RCb3hlcy55ZWFyczsgdHJhY2sgeWVhcikge1xuICAgICAgPGltcGRjLXNlbGVjdC1vcHRpb25cbiAgICAgICAgW3ZhbHVlXT1cInllYXJcIlxuICAgICAgICBbbGFiZWxdPVwiZGF0ZXBpY2tlckkxOG4uZ2V0WWVhck51bWVyYWxzKHllYXIpXCIgLz5cbiAgICAgIH1cbiAgICA8L2ltcGRjLXNlbGVjdD5cbiAgPC9kaXY+XG5cbiAgPGJ1dHRvblxuICAgIGNsYXNzPVwiaW1wZGMtZGF0ZXBpY2tlci1uYXYtbmV4dCBidG4gYnRuLWxpbmsgbXMtYXV0b1wiXG4gICAgKGNsaWNrKT1cIm9uQ2xpY2tHb05leHQoJGV2ZW50KVwiXG4gICAgW2Rpc2FibGVkXT1cImRpc2FibGVkIHx8IG5leHREaXNhYmxlZFwiPlxuICAgIDxpbXBkYy1pY29uIG5hbWU9XCJjaGV2cm9uLXJpZ2h0XCIgc2l6ZT1cIjEyXCI+PC9pbXBkYy1pY29uPlxuICA8L2J1dHRvbj5cbjwvZGl2PlxuIl19
|
|
@@ -8,12 +8,15 @@ export class DatepickerTemplateHostComponent {
|
|
|
8
8
|
this.isWeekend = (date) => this._calendar.getWeekday(date) >= 6;
|
|
9
9
|
this.isToday = (date) => this._calendar.getToday().equals(date);
|
|
10
10
|
}
|
|
11
|
-
|
|
12
|
-
|
|
11
|
+
getMonthTrackByKey(ngbDate) {
|
|
12
|
+
return `${ngbDate.year}-${ngbDate.month}-${ngbDate.day}`;
|
|
13
|
+
}
|
|
14
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: DatepickerTemplateHostComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
15
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.0", type: DatepickerTemplateHostComponent, isStandalone: true, selector: "impdc-datepicker-template-host", viewQueries: [{ propertyName: "dayTemplateRef", first: true, predicate: ["dayTemplate"], descendants: true, read: (TemplateRef), static: true }, { propertyName: "contentTemplateRef", first: true, predicate: ["contentTemplate"], descendants: true, read: (TemplateRef), static: true }], ngImport: i0, template: "<ng-template\n #dayTemplate\n let-date\n let-currentMonth=\"currentMonth\"\n let-selected=\"selected\"\n let-disabled=\"disabled\"\n let-focused=\"focused\">\n <span\n class=\"impdc-datepicker-day\"\n [class.impdc-datepicker-day--today]=\"isToday(date)\"\n [class.impdc-datepicker-day--weekend]=\"isWeekend(date)\"\n [class.impdc-datepicker-day--focused]=\"focused\"\n [class.impdc-datepicker-day--selected]=\"selected\"\n [class.impdc-datepicker-day--other-month]=\"date.month !== currentMonth\"\n [class.impdc-datepicker-day--disabled]=\"disabled\">\n {{ date.day }}\n </span>\n</ng-template>\n\n<ng-template #contentTemplate let-dp>\n <div class=\"impdc-datepicker-content p-4\">\n <impdc-datepicker-nav\n [date]=\"dp.model.firstDate!\"\n [disabled]=\"dp.model.disabled\"\n [prevDisabled]=\"dp.model.prevDisabled\"\n [nextDisabled]=\"dp.model.nextDisabled\"\n [selectBoxes]=\"dp.model.selectBoxes\"\n (navigate)=\"dp.onNavigateEvent($event)\"\n (selected)=\"dp.onNavigateDateSelect($event)\"></impdc-datepicker-nav>\n <div class=\"custom-month-grid\">\n @for (month of dp.state.months; track getMonthTrackByKey(month)) {\n <div>\n <ngb-datepicker-month [month]=\"month\"></ngb-datepicker-month>\n </div>\n }\n </div>\n </div>\n</ng-template>\n", styles: [":host{display:none}.impdc-datepicker-day{border-radius:var(--impd-border-radius-2xl);display:flex;width:var(--impd-size-8);height:var(--impd-size-8);justify-content:center;align-items:center;color:var(--impd-color-gray-700);font-size:var(--impd-font-size-sm);font-style:normal;font-weight:var(--impd-font-weight-medium);line-height:var(--impd-size-5);text-align:center}.impdc-datepicker-day--disabled{color:var(--impd-color-gray-400)}.impdc-datepicker-day--selected{color:var(--impd-color-white)!important;background-color:var(--impd-color-motion-blue-600)!important}.impdc-datepicker-day:hover,.impdc-datepicker-day.focused,.impdc-datepicker-day--today{background-color:var(--impd-color-gray-100)}.impdc-datepicker-content{display:flex;flex-direction:column;align-items:center;gap:var(--impd-size-2)}.impdc-datepicker-content ::ng-deep .ngb-dp-weekday,.impdc-datepicker-content ::ng-deep .ngb-dp-week-number{display:flex;justify-content:center;align-items:center;color:var(--impd-color-gray-500);font-size:var(--impd-font-size-sm);font-style:normal;font-weight:var(--impd-font-weight-medium);line-height:2.2rem;text-align:center}.impdc-datepicker-content ::ng-deep .ngb-dp-week:not(.ngb-dp-weekdays):not(:has(>*>:not(.impdc-datepicker-day--other-month))){display:none}.impdc-datepicker-content ::ng-deep .ngb-dp-weekdays{border:none;background-color:inherit}.impdc-datepicker-content ::ng-deep .ngb-dp-day,.impdc-datepicker-content ::ng-deep .ngb-dp-weekday,.impdc-datepicker-content ::ng-deep .ngb-dp-week-number{width:var(--impd-size-10);height:var(--impd-size-10);padding:var(--impd-size-1)}\n"], dependencies: [{ kind: "component", type: NgbDatepickerMonth, selector: "ngb-datepicker-month", inputs: ["month"] }, { kind: "component", type: DatepickerNavComponent, selector: "impdc-datepicker-nav", inputs: ["date", "disabled", "prevDisabled", "nextDisabled", "selectBoxes"], outputs: ["navigate", "selected"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
13
16
|
}
|
|
14
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
17
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: DatepickerTemplateHostComponent, decorators: [{
|
|
15
18
|
type: Component,
|
|
16
|
-
args: [{ selector: 'impdc-datepicker-template-host', standalone: true, imports: [NgbDatepickerMonth, DatepickerNavComponent], changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-template\n #dayTemplate\n let-date\n let-currentMonth=\"currentMonth\"\n let-selected=\"selected\"\n let-disabled=\"disabled\"\n let-focused=\"focused\">\n <span\n class=\"impdc-datepicker-day\"\n [class.impdc-datepicker-day--today]=\"isToday(date)\"\n [class.impdc-datepicker-day--weekend]=\"isWeekend(date)\"\n [class.impdc-datepicker-day--focused]=\"focused\"\n [class.impdc-datepicker-day--selected]=\"selected\"\n [class.impdc-datepicker-day--other-month]=\"date.month !== currentMonth\"\n [class.impdc-datepicker-day--disabled]=\"disabled\">\n {{ date.day }}\n </span>\n</ng-template>\n\n<ng-template #contentTemplate let-dp>\n <div class=\"impdc-datepicker-content p-4\">\n <impdc-datepicker-nav\n [date]=\"dp.model.firstDate!\"\n [disabled]=\"dp.model.disabled\"\n [prevDisabled]=\"dp.model.prevDisabled\"\n [nextDisabled]=\"dp.model.nextDisabled\"\n [selectBoxes]=\"dp.model.selectBoxes\"\n (navigate)=\"dp.onNavigateEvent($event)\"\n (selected)=\"dp.onNavigateDateSelect($event)\"></impdc-datepicker-nav>\n <div class=\"custom-month-grid\">\n @for (month of dp.state.months; track month) {\n
|
|
19
|
+
args: [{ selector: 'impdc-datepicker-template-host', standalone: true, imports: [NgbDatepickerMonth, DatepickerNavComponent], changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-template\n #dayTemplate\n let-date\n let-currentMonth=\"currentMonth\"\n let-selected=\"selected\"\n let-disabled=\"disabled\"\n let-focused=\"focused\">\n <span\n class=\"impdc-datepicker-day\"\n [class.impdc-datepicker-day--today]=\"isToday(date)\"\n [class.impdc-datepicker-day--weekend]=\"isWeekend(date)\"\n [class.impdc-datepicker-day--focused]=\"focused\"\n [class.impdc-datepicker-day--selected]=\"selected\"\n [class.impdc-datepicker-day--other-month]=\"date.month !== currentMonth\"\n [class.impdc-datepicker-day--disabled]=\"disabled\">\n {{ date.day }}\n </span>\n</ng-template>\n\n<ng-template #contentTemplate let-dp>\n <div class=\"impdc-datepicker-content p-4\">\n <impdc-datepicker-nav\n [date]=\"dp.model.firstDate!\"\n [disabled]=\"dp.model.disabled\"\n [prevDisabled]=\"dp.model.prevDisabled\"\n [nextDisabled]=\"dp.model.nextDisabled\"\n [selectBoxes]=\"dp.model.selectBoxes\"\n (navigate)=\"dp.onNavigateEvent($event)\"\n (selected)=\"dp.onNavigateDateSelect($event)\"></impdc-datepicker-nav>\n <div class=\"custom-month-grid\">\n @for (month of dp.state.months; track getMonthTrackByKey(month)) {\n <div>\n <ngb-datepicker-month [month]=\"month\"></ngb-datepicker-month>\n </div>\n }\n </div>\n </div>\n</ng-template>\n", styles: [":host{display:none}.impdc-datepicker-day{border-radius:var(--impd-border-radius-2xl);display:flex;width:var(--impd-size-8);height:var(--impd-size-8);justify-content:center;align-items:center;color:var(--impd-color-gray-700);font-size:var(--impd-font-size-sm);font-style:normal;font-weight:var(--impd-font-weight-medium);line-height:var(--impd-size-5);text-align:center}.impdc-datepicker-day--disabled{color:var(--impd-color-gray-400)}.impdc-datepicker-day--selected{color:var(--impd-color-white)!important;background-color:var(--impd-color-motion-blue-600)!important}.impdc-datepicker-day:hover,.impdc-datepicker-day.focused,.impdc-datepicker-day--today{background-color:var(--impd-color-gray-100)}.impdc-datepicker-content{display:flex;flex-direction:column;align-items:center;gap:var(--impd-size-2)}.impdc-datepicker-content ::ng-deep .ngb-dp-weekday,.impdc-datepicker-content ::ng-deep .ngb-dp-week-number{display:flex;justify-content:center;align-items:center;color:var(--impd-color-gray-500);font-size:var(--impd-font-size-sm);font-style:normal;font-weight:var(--impd-font-weight-medium);line-height:2.2rem;text-align:center}.impdc-datepicker-content ::ng-deep .ngb-dp-week:not(.ngb-dp-weekdays):not(:has(>*>:not(.impdc-datepicker-day--other-month))){display:none}.impdc-datepicker-content ::ng-deep .ngb-dp-weekdays{border:none;background-color:inherit}.impdc-datepicker-content ::ng-deep .ngb-dp-day,.impdc-datepicker-content ::ng-deep .ngb-dp-weekday,.impdc-datepicker-content ::ng-deep .ngb-dp-week-number{width:var(--impd-size-10);height:var(--impd-size-10);padding:var(--impd-size-1)}\n"] }]
|
|
17
20
|
}], propDecorators: { dayTemplateRef: [{
|
|
18
21
|
type: ViewChild,
|
|
19
22
|
args: ['dayTemplate', {
|
|
@@ -27,4 +30,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.1", ngImpor
|
|
|
27
30
|
static: true
|
|
28
31
|
}]
|
|
29
32
|
}] } });
|
|
30
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
33
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZXBpY2tlci10ZW1wbGF0ZS1ob3N0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Rlc2lnbi1jb21wb25lbnRzL3NyYy9saWIvZGF0ZXRpbWUtcGlja2VyL2NvbXBvbmVudHMvZGF0ZXBpY2tlci10ZW1wbGF0ZS1ob3N0L2RhdGVwaWNrZXItdGVtcGxhdGUtaG9zdC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kZXNpZ24tY29tcG9uZW50cy9zcmMvbGliL2RhdGV0aW1lLXBpY2tlci9jb21wb25lbnRzL2RhdGVwaWNrZXItdGVtcGxhdGUtaG9zdC9kYXRlcGlja2VyLXRlbXBsYXRlLWhvc3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsV0FBVyxFQUNYLFNBQVMsRUFDVCxNQUFNLEVBQ1AsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUNMLFdBQVcsRUFFWCxrQkFBa0IsRUFDbkIsTUFBTSw0QkFBNEIsQ0FBQztBQUlwQyxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQzs7QUFVM0QsTUFBTSxPQUFPLCtCQUErQjtJQVI1QztRQVNtQixjQUFTLEdBQUcsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBRWpDLGNBQVMsR0FBRyxDQUFDLElBQWEsRUFBRSxFQUFFLENBQzVDLElBQUksQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUV2QixZQUFPLEdBQUcsQ0FBQyxJQUFhLEVBQUUsRUFBRSxDQUMxQyxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsRUFBRSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztLQWlCMUM7SUFIVyxrQkFBa0IsQ0FBQyxPQUFnQjtRQUMzQyxPQUFPLEdBQUcsT0FBTyxDQUFDLElBQUksSUFBSSxPQUFPLENBQUMsS0FBSyxJQUFJLE9BQU8sQ0FBQyxHQUFHLEVBQUUsQ0FBQztJQUMzRCxDQUFDOzhHQXZCVSwrQkFBK0I7a0dBQS9CLCtCQUErQixvTEFVbEMsQ0FBQSxXQUErQixDQUFBLDhIQU0vQixDQUFBLFdBQW1DLENBQUEsMkNDekM3QywrMENBc0NBLHVuRERsQlksa0JBQWtCLG9GQUFFLHNCQUFzQjs7MkZBS3pDLCtCQUErQjtrQkFSM0MsU0FBUzsrQkFDRSxnQ0FBZ0MsY0FDOUIsSUFBSSxXQUNQLENBQUMsa0JBQWtCLEVBQUUsc0JBQXNCLENBQUMsbUJBR3BDLHVCQUF1QixDQUFDLE1BQU07OEJBZXhDLGNBQWM7c0JBSnBCLFNBQVM7dUJBQUMsYUFBYSxFQUFFO3dCQUN4QixJQUFJLEVBQUUsQ0FBQSxXQUErQixDQUFBO3dCQUNyQyxNQUFNLEVBQUUsSUFBSTtxQkFDYjtnQkFPTSxrQkFBa0I7c0JBSnhCLFNBQVM7dUJBQUMsaUJBQWlCLEVBQUU7d0JBQzVCLElBQUksRUFBRSxDQUFBLFdBQW1DLENBQUE7d0JBQ3pDLE1BQU0sRUFBRSxJQUFJO3FCQUNiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgVGVtcGxhdGVSZWYsXG4gIFZpZXdDaGlsZCxcbiAgaW5qZWN0XG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgTmdiQ2FsZW5kYXIsXG4gIE5nYkRhdGUsXG4gIE5nYkRhdGVwaWNrZXJNb250aFxufSBmcm9tICdAbmctYm9vdHN0cmFwL25nLWJvb3RzdHJhcCc7XG5pbXBvcnQgeyBDb250ZW50VGVtcGxhdGVDb250ZXh0IH0gZnJvbSAnQG5nLWJvb3RzdHJhcC9uZy1ib290c3RyYXAvZGF0ZXBpY2tlci9kYXRlcGlja2VyLWNvbnRlbnQtdGVtcGxhdGUtY29udGV4dCc7XG5pbXBvcnQgeyBEYXlUZW1wbGF0ZUNvbnRleHQgfSBmcm9tICdAbmctYm9vdHN0cmFwL25nLWJvb3RzdHJhcC9kYXRlcGlja2VyL2RhdGVwaWNrZXItZGF5LXRlbXBsYXRlLWNvbnRleHQnO1xuXG5pbXBvcnQgeyBEYXRlcGlja2VyTmF2Q29tcG9uZW50IH0gZnJvbSAnLi4vZGF0ZXBpY2tlci1uYXYnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdpbXBkYy1kYXRlcGlja2VyLXRlbXBsYXRlLWhvc3QnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbTmdiRGF0ZXBpY2tlck1vbnRoLCBEYXRlcGlja2VyTmF2Q29tcG9uZW50XSxcbiAgdGVtcGxhdGVVcmw6ICcuL2RhdGVwaWNrZXItdGVtcGxhdGUtaG9zdC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2RhdGVwaWNrZXItdGVtcGxhdGUtaG9zdC5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBEYXRlcGlja2VyVGVtcGxhdGVIb3N0Q29tcG9uZW50IHtcbiAgcHJpdmF0ZSByZWFkb25seSBfY2FsZW5kYXIgPSBpbmplY3QoTmdiQ2FsZW5kYXIpO1xuXG4gIHB1YmxpYyByZWFkb25seSBpc1dlZWtlbmQgPSAoZGF0ZTogTmdiRGF0ZSkgPT5cbiAgICB0aGlzLl9jYWxlbmRhci5nZXRXZWVrZGF5KGRhdGUpID49IDY7XG5cbiAgcHVibGljIHJlYWRvbmx5IGlzVG9kYXkgPSAoZGF0ZTogTmdiRGF0ZSkgPT5cbiAgICB0aGlzLl9jYWxlbmRhci5nZXRUb2RheSgpLmVxdWFscyhkYXRlKTtcblxuICBAVmlld0NoaWxkKCdkYXlUZW1wbGF0ZScsIHtcbiAgICByZWFkOiBUZW1wbGF0ZVJlZjxEYXlUZW1wbGF0ZUNvbnRleHQ+LFxuICAgIHN0YXRpYzogdHJ1ZVxuICB9KVxuICBwdWJsaWMgZGF5VGVtcGxhdGVSZWYhOiBUZW1wbGF0ZVJlZjxEYXlUZW1wbGF0ZUNvbnRleHQ+O1xuXG4gIEBWaWV3Q2hpbGQoJ2NvbnRlbnRUZW1wbGF0ZScsIHtcbiAgICByZWFkOiBUZW1wbGF0ZVJlZjxDb250ZW50VGVtcGxhdGVDb250ZXh0PixcbiAgICBzdGF0aWM6IHRydWVcbiAgfSlcbiAgcHVibGljIGNvbnRlbnRUZW1wbGF0ZVJlZiE6IFRlbXBsYXRlUmVmPENvbnRlbnRUZW1wbGF0ZUNvbnRleHQ+O1xuXG4gIHByb3RlY3RlZCBnZXRNb250aFRyYWNrQnlLZXkobmdiRGF0ZTogTmdiRGF0ZSk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGAke25nYkRhdGUueWVhcn0tJHtuZ2JEYXRlLm1vbnRofS0ke25nYkRhdGUuZGF5fWA7XG4gIH1cbn1cbiIsIjxuZy10ZW1wbGF0ZVxuICAjZGF5VGVtcGxhdGVcbiAgbGV0LWRhdGVcbiAgbGV0LWN1cnJlbnRNb250aD1cImN1cnJlbnRNb250aFwiXG4gIGxldC1zZWxlY3RlZD1cInNlbGVjdGVkXCJcbiAgbGV0LWRpc2FibGVkPVwiZGlzYWJsZWRcIlxuICBsZXQtZm9jdXNlZD1cImZvY3VzZWRcIj5cbiAgPHNwYW5cbiAgICBjbGFzcz1cImltcGRjLWRhdGVwaWNrZXItZGF5XCJcbiAgICBbY2xhc3MuaW1wZGMtZGF0ZXBpY2tlci1kYXktLXRvZGF5XT1cImlzVG9kYXkoZGF0ZSlcIlxuICAgIFtjbGFzcy5pbXBkYy1kYXRlcGlja2VyLWRheS0td2Vla2VuZF09XCJpc1dlZWtlbmQoZGF0ZSlcIlxuICAgIFtjbGFzcy5pbXBkYy1kYXRlcGlja2VyLWRheS0tZm9jdXNlZF09XCJmb2N1c2VkXCJcbiAgICBbY2xhc3MuaW1wZGMtZGF0ZXBpY2tlci1kYXktLXNlbGVjdGVkXT1cInNlbGVjdGVkXCJcbiAgICBbY2xhc3MuaW1wZGMtZGF0ZXBpY2tlci1kYXktLW90aGVyLW1vbnRoXT1cImRhdGUubW9udGggIT09IGN1cnJlbnRNb250aFwiXG4gICAgW2NsYXNzLmltcGRjLWRhdGVwaWNrZXItZGF5LS1kaXNhYmxlZF09XCJkaXNhYmxlZFwiPlxuICAgIHt7IGRhdGUuZGF5IH19XG4gIDwvc3Bhbj5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjY29udGVudFRlbXBsYXRlIGxldC1kcD5cbiAgPGRpdiBjbGFzcz1cImltcGRjLWRhdGVwaWNrZXItY29udGVudCBwLTRcIj5cbiAgICA8aW1wZGMtZGF0ZXBpY2tlci1uYXZcbiAgICAgIFtkYXRlXT1cImRwLm1vZGVsLmZpcnN0RGF0ZSFcIlxuICAgICAgW2Rpc2FibGVkXT1cImRwLm1vZGVsLmRpc2FibGVkXCJcbiAgICAgIFtwcmV2RGlzYWJsZWRdPVwiZHAubW9kZWwucHJldkRpc2FibGVkXCJcbiAgICAgIFtuZXh0RGlzYWJsZWRdPVwiZHAubW9kZWwubmV4dERpc2FibGVkXCJcbiAgICAgIFtzZWxlY3RCb3hlc109XCJkcC5tb2RlbC5zZWxlY3RCb3hlc1wiXG4gICAgICAobmF2aWdhdGUpPVwiZHAub25OYXZpZ2F0ZUV2ZW50KCRldmVudClcIlxuICAgICAgKHNlbGVjdGVkKT1cImRwLm9uTmF2aWdhdGVEYXRlU2VsZWN0KCRldmVudClcIj48L2ltcGRjLWRhdGVwaWNrZXItbmF2PlxuICAgIDxkaXYgY2xhc3M9XCJjdXN0b20tbW9udGgtZ3JpZFwiPlxuICAgICAgQGZvciAobW9udGggb2YgZHAuc3RhdGUubW9udGhzOyB0cmFjayBnZXRNb250aFRyYWNrQnlLZXkobW9udGgpKSB7XG4gICAgICAgIDxkaXY+XG4gICAgICAgICAgPG5nYi1kYXRlcGlja2VyLW1vbnRoIFttb250aF09XCJtb250aFwiPjwvbmdiLWRhdGVwaWNrZXItbW9udGg+XG4gICAgICAgIDwvZGl2PlxuICAgICAgfVxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
|
package/esm2022/lib/datetime-picker/components/datetime-picker/datetime-picker.component.mjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { ChangeDetectionStrategy, ChangeDetectorRef, Component, DestroyRef, ElementRef, EventEmitter, Inject, Input, Optional, Output, Self, ViewChild, booleanAttribute, inject } from '@angular/core';
|
|
2
|
-
import { CommonModule
|
|
2
|
+
import { CommonModule } from '@angular/common';
|
|
3
3
|
import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
|
|
4
4
|
import { FormBuilder, FormControl, ReactiveFormsModule, Validators } from '@angular/forms';
|
|
5
5
|
import { NgbDateAdapter, NgbDatepicker, NgbDatepickerModule, NgbTimepickerModule } from '@ng-bootstrap/ng-bootstrap';
|
|
@@ -87,7 +87,6 @@ export class DatetimePickerComponent extends _DatetimePickerComponentBase {
|
|
|
87
87
|
this._hostElement = inject(ElementRef);
|
|
88
88
|
this._ngbDateAdapter = inject((NgbDateAdapter));
|
|
89
89
|
this._uid = `impdc-datetime-picker-${nanoid()}`;
|
|
90
|
-
this.NgTranslationWidth = TranslationWidth;
|
|
91
90
|
this.formGroup = inject(FormBuilder).group({
|
|
92
91
|
date: new FormControl(null),
|
|
93
92
|
time: new FormControl(null),
|
|
@@ -288,15 +287,15 @@ export class DatetimePickerComponent extends _DatetimePickerComponentBase {
|
|
|
288
287
|
this.stateChanges.next();
|
|
289
288
|
}
|
|
290
289
|
}
|
|
291
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
292
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "
|
|
290
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: DatetimePickerComponent, deps: [{ token: i1.ErrorStateMatcher }, { token: IMPDC_FORM_ROOT, optional: true }, { token: i2.NgForm, optional: true }, { token: i2.FormGroupDirective, optional: true }, { token: i2.NgControl, optional: true, self: true }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
291
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.0", type: DatetimePickerComponent, isStandalone: true, selector: "impdc-datetime-picker", inputs: { disabled: "disabled", tabIndex: "tabIndex", markDateDisabled: "markDateDisabled", minDate: "minDate", maxDate: "maxDate", timeLayout: "timeLayout", meridianToggleLabel: "meridianToggleLabel", withTime: "withTime", errorStateMatcher: "errorStateMatcher", value: "value", id: "id", required: ["required", "required", booleanAttribute] }, outputs: { valueChange: "valueChange", blur: "blur" }, host: { listeners: { "focus": "_onFocus(); focus()" }, properties: { "attr.id": "id", "attr.tabindex": "tabIndex", "attr.aria-required": "required.toString()", "attr.aria-disabled": "disabled.toString()", "attr.aria-invalid": "errorState", "class.is-invalid": "errorState", "class.impdc-form-field-control": "true", "class.impdc-datetime-picker--required": "required", "class.impdc-datetime-picker--disabled": "disabled", "class.impdc-datetime-picker--invalid": "errorState", "class.impdc-datetime-picker--empty": "empty" } }, providers: [
|
|
293
292
|
{
|
|
294
293
|
provide: ImpdcFormFieldControl,
|
|
295
294
|
useExisting: DatetimePickerComponent
|
|
296
295
|
}
|
|
297
|
-
], viewQueries: [{ propertyName: "ngbDatepicker", first: true, predicate: NgbDatepicker, descendants: true, static: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<impdc-datepicker-template-host #templateHost></impdc-datepicker-template-host>\n<div\n [formGroup]=\"formGroup\"\n class=\"d-flex\"\n [ngClass]=\"{\n 'flex-column': withTime && timeLayout.layout === 'stacked'\n }\"\n (focusout)=\"handleFocusOut($event)\">\n <ngb-datepicker\n class=\"impdc-datetime-picker--datepicker\"\n formControlName=\"date\"\n [dayTemplate]=\"templateHost.dayTemplateRef\"\n [contentTemplate]=\"templateHost.contentTemplateRef\"\n [showWeekNumbers]=\"false\"\n outsideDays=\"visible\"\n
|
|
296
|
+
], viewQueries: [{ propertyName: "ngbDatepicker", first: true, predicate: NgbDatepicker, descendants: true, static: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<impdc-datepicker-template-host #templateHost></impdc-datepicker-template-host>\n<div\n [formGroup]=\"formGroup\"\n class=\"d-flex\"\n [ngClass]=\"{\n 'flex-column': withTime && timeLayout.layout === 'stacked'\n }\"\n (focusout)=\"handleFocusOut($event)\">\n <ngb-datepicker\n class=\"impdc-datetime-picker--datepicker\"\n formControlName=\"date\"\n [dayTemplate]=\"templateHost.dayTemplateRef\"\n [contentTemplate]=\"templateHost.contentTemplateRef\"\n [showWeekNumbers]=\"false\"\n outsideDays=\"visible\"\n weekdays=\"short\"\n [markDisabled]=\"markDateDisabledFn\"\n [minDate]=\"minDate\"\n [maxDate]=\"maxDate\" />\n @if (withTime) {\n <div\n class=\"impdc-datetime-picker--timepicker d-flex flex-column gap-4 p-4 w-100\"\n [ngClass]=\"{\n 'border-0': !timeLayout.border,\n 'border-gray-200': timeLayout.border,\n 'mt-2': timeLayout.layout === 'stacked',\n 'border-top': timeLayout.border && timeLayout.layout === 'stacked',\n 'ms-2': timeLayout.layout === 'inline',\n 'border-start': timeLayout.border && timeLayout.layout === 'inline'\n }\">\n <impdc-checkbox\n [label]=\"use24hrTimeLabelText\"\n formControlName=\"use24hrTime\"\n [isSwitch]=\"true\"\n layout=\"check-end\" />\n <ngb-timepicker\n formControlName=\"time\"\n [meridian]=\"!use24hrTime\"\n [seconds]=\"false\"\n [spinners]=\"false\"\n size=\"medium\"></ngb-timepicker>\n </div>\n }\n</div>\n", styles: [":host{display:block}ngb-datepicker{border:0}ngb-timepicker{font-size:var(--impd-font-size-sm)}::ng-deep .ngb-dp-header{display:none}::ng-deep .ngb-tp-spacer{width:var(--impd-size-4)}.impdc-datetime-picker--datepicker,.impdc-datetime-picker--timepicker{max-width:312px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { 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.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "ngmodule", type: NgbDatepickerModule }, { kind: "component", type: i4.NgbDatepicker, selector: "ngb-datepicker", inputs: ["contentTemplate", "dayTemplate", "dayTemplateData", "displayMonths", "firstDayOfWeek", "footerTemplate", "markDisabled", "maxDate", "minDate", "navigation", "outsideDays", "showWeekNumbers", "startDate", "weekdays"], outputs: ["navigate", "dateSelect"], exportAs: ["ngbDatepicker"] }, { kind: "ngmodule", type: NgbTimepickerModule }, { kind: "component", type: i4.NgbTimepicker, selector: "ngb-timepicker", inputs: ["meridian", "spinners", "seconds", "hourStep", "minuteStep", "secondStep", "readonlyInputs", "size"], exportAs: ["ngbTimepicker"] }, { kind: "component", type: DatepickerTemplateHostComponent, selector: "impdc-datepicker-template-host" }, { kind: "ngmodule", type: ImpdcFormsModule }, { kind: "directive", type: i5.RootFormGroupDirective, selector: "[formGroup]" }, { kind: "component", type: i6.CheckboxComponent, selector: "impdc-checkbox", inputs: ["tabIndex", "id", "label", "description", "isSwitch", "switchIcons", "inline", "layout", "checked", "indeterminate", "disabled", "errorStateMatcher", "required"], outputs: ["change", "indeterminateChange"], exportAs: ["impdcCheckControl"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
298
297
|
}
|
|
299
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
298
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: DatetimePickerComponent, decorators: [{
|
|
300
299
|
type: Component,
|
|
301
300
|
args: [{ selector: 'impdc-datetime-picker', standalone: true, imports: [
|
|
302
301
|
CommonModule,
|
|
@@ -324,7 +323,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.1", ngImpor
|
|
|
324
323
|
provide: ImpdcFormFieldControl,
|
|
325
324
|
useExisting: DatetimePickerComponent
|
|
326
325
|
}
|
|
327
|
-
], template: "<impdc-datepicker-template-host #templateHost></impdc-datepicker-template-host>\n<div\n [formGroup]=\"formGroup\"\n class=\"d-flex\"\n [ngClass]=\"{\n 'flex-column': withTime && timeLayout.layout === 'stacked'\n }\"\n (focusout)=\"handleFocusOut($event)\">\n <ngb-datepicker\n class=\"impdc-datetime-picker--datepicker\"\n formControlName=\"date\"\n [dayTemplate]=\"templateHost.dayTemplateRef\"\n [contentTemplate]=\"templateHost.contentTemplateRef\"\n [showWeekNumbers]=\"false\"\n outsideDays=\"visible\"\n
|
|
326
|
+
], template: "<impdc-datepicker-template-host #templateHost></impdc-datepicker-template-host>\n<div\n [formGroup]=\"formGroup\"\n class=\"d-flex\"\n [ngClass]=\"{\n 'flex-column': withTime && timeLayout.layout === 'stacked'\n }\"\n (focusout)=\"handleFocusOut($event)\">\n <ngb-datepicker\n class=\"impdc-datetime-picker--datepicker\"\n formControlName=\"date\"\n [dayTemplate]=\"templateHost.dayTemplateRef\"\n [contentTemplate]=\"templateHost.contentTemplateRef\"\n [showWeekNumbers]=\"false\"\n outsideDays=\"visible\"\n weekdays=\"short\"\n [markDisabled]=\"markDateDisabledFn\"\n [minDate]=\"minDate\"\n [maxDate]=\"maxDate\" />\n @if (withTime) {\n <div\n class=\"impdc-datetime-picker--timepicker d-flex flex-column gap-4 p-4 w-100\"\n [ngClass]=\"{\n 'border-0': !timeLayout.border,\n 'border-gray-200': timeLayout.border,\n 'mt-2': timeLayout.layout === 'stacked',\n 'border-top': timeLayout.border && timeLayout.layout === 'stacked',\n 'ms-2': timeLayout.layout === 'inline',\n 'border-start': timeLayout.border && timeLayout.layout === 'inline'\n }\">\n <impdc-checkbox\n [label]=\"use24hrTimeLabelText\"\n formControlName=\"use24hrTime\"\n [isSwitch]=\"true\"\n layout=\"check-end\" />\n <ngb-timepicker\n formControlName=\"time\"\n [meridian]=\"!use24hrTime\"\n [seconds]=\"false\"\n [spinners]=\"false\"\n size=\"medium\"></ngb-timepicker>\n </div>\n }\n</div>\n", styles: [":host{display:block}ngb-datepicker{border:0}ngb-timepicker{font-size:var(--impd-font-size-sm)}::ng-deep .ngb-dp-header{display:none}::ng-deep .ngb-tp-spacer{width:var(--impd-size-4)}.impdc-datetime-picker--datepicker,.impdc-datetime-picker--timepicker{max-width:312px}\n"] }]
|
|
328
327
|
}], ctorParameters: () => [{ type: i1.ErrorStateMatcher }, { type: undefined, decorators: [{
|
|
329
328
|
type: Optional
|
|
330
329
|
}, {
|
|
@@ -367,4 +366,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.1", ngImpor
|
|
|
367
366
|
type: Input,
|
|
368
367
|
args: [{ transform: booleanAttribute }]
|
|
369
368
|
}] } });
|
|
370
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZXRpbWUtcGlja2VyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Rlc2lnbi1jb21wb25lbnRzL3NyYy9saWIvZGF0ZXRpbWUtcGlja2VyL2NvbXBvbmVudHMvZGF0ZXRpbWUtcGlja2VyL2RhdGV0aW1lLXBpY2tlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kZXNpZ24tY29tcG9uZW50cy9zcmMvbGliL2RhdGV0aW1lLXBpY2tlci9jb21wb25lbnRzL2RhdGV0aW1lLXBpY2tlci9kYXRldGltZS1waWNrZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULFVBQVUsRUFFVixVQUFVLEVBQ1YsWUFBWSxFQUNaLE1BQU0sRUFDTixLQUFLLEVBSUwsUUFBUSxFQUNSLE1BQU0sRUFDTixJQUFJLEVBRUosU0FBUyxFQUNULGdCQUFnQixFQUNoQixNQUFNLEVBQ1AsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFlBQVksRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ2hFLE9BQU8sRUFHTCxXQUFXLEVBQ1gsV0FBVyxFQUlYLG1CQUFtQixFQUNuQixVQUFVLEVBQ1gsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QixPQUFPLEVBQ0wsY0FBYyxFQUVkLGFBQWEsRUFDYixtQkFBbUIsRUFDbkIsbUJBQW1CLEVBQ3BCLE1BQU0sNEJBQTRCLENBQUM7QUFDcEMsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUNoQyxPQUFPLEVBQUUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUU3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LHNCQUFzQixFQUFFLHFCQUFxQjt3QkFDN0MscUJBQXFCLEVBQUUsWUFBWTt3QkFDbkMsb0JBQW9CLEVBQUUsWUFBWTt3QkFDbEMsa0NBQWtDLEVBQUUsTUFBTTt3QkFDMUMseUNBQXlDLEVBQUUsVUFBVTt3QkFDckQseUNBQXlDLEVBQUUsVUFBVTt3QkFDckQsd0NBQXdDLEVBQUUsWUFBWTt3QkFDdEQsc0NBQXNDLEVBQUUsT0FBTzt3QkFDL0MsU0FBUyxFQUFFLHFCQUFxQjtxQkFDakMsYUFDVTt3QkFDVDs0QkFDRSxPQUFPLEVBQUUscUJBQXFCOzRCQUM5QixXQUFXLHlCQUF5Qjt5QkFDckM7cUJBQ0Y7OzBCQTBIRSxRQUFROzswQkFBSSxNQUFNOzJCQUFDLGVBQWU7OzBCQUNsQyxRQUFROzswQkFDUixRQUFROzswQkFDUixJQUFJOzswQkFBSSxRQUFRO3lDQTlGVCxhQUFhO3NCQUR0QixTQUFTO3VCQUFDLGFBQWEsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7Z0JBV25DLGdCQUFnQjtzQkFEdEIsS0FBSztnQkFZSyxPQUFPO3NCQURqQixLQUFLO2dCQWVLLE9BQU87c0JBRGpCLEtBQUs7Z0JBYUssVUFBVTtzQkFEcEIsS0FBSztnQkFnQkMsbUJBQW1CO3NCQUR6QixLQUFLO2dCQU9DLFFBQVE7c0JBRGQsS0FBSztnQkFJVSxpQkFBaUI7c0JBRGhDLEtBQUs7Z0JBU1UsV0FBVztzQkFEMUIsTUFBTTtnQkFTUyxJQUFJO3NCQUZuQixNQUFNO2dCQXVJSSxLQUFLO3NCQURmLEtBQUs7Z0JBU0ssRUFBRTtzQkFEWixLQUFLO2dCQWlCSyxRQUFRO3NCQURsQixLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIERlc3Ryb3lSZWYsXG4gIERvQ2hlY2ssXG4gIEVsZW1lbnRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5qZWN0LFxuICBJbnB1dCxcbiAgT25DaGFuZ2VzLFxuICBPbkRlc3Ryb3ksXG4gIE9uSW5pdCxcbiAgT3B0aW9uYWwsXG4gIE91dHB1dCxcbiAgU2VsZixcbiAgU2ltcGxlQ2hhbmdlcyxcbiAgVmlld0NoaWxkLFxuICBib29sZWFuQXR0cmlidXRlLFxuICBpbmplY3Rcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUsIFRyYW5zbGF0aW9uV2lkdGggfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgdGFrZVVudGlsRGVzdHJveWVkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuaW1wb3J0IHtcbiAgQWJzdHJhY3RDb250cm9sLFxuICBDb250cm9sVmFsdWVBY2Nlc3NvcixcbiAgRm9ybUJ1aWxkZXIsXG4gIEZvcm1Db250cm9sLFxuICBGb3JtR3JvdXBEaXJlY3RpdmUsXG4gIE5nQ29udHJvbCxcbiAgTmdGb3JtLFxuICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxuICBWYWxpZGF0b3JzXG59IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7XG4gIE5nYkRhdGVBZGFwdGVyLFxuICBOZ2JEYXRlU3RydWN0LFxuICBOZ2JEYXRlcGlja2VyLFxuICBOZ2JEYXRlcGlja2VyTW9kdWxlLFxuICBOZ2JUaW1lcGlja2VyTW9kdWxlXG59IGZyb20gJ0BuZy1ib290c3RyYXAvbmctYm9vdHN0cmFwJztcbmltcG9ydCB7IG5hbm9pZCB9IGZyb20gJ25hbm9pZCc7XG5pbXBvcnQgeyBTdWJqZWN0LCBkZWJvdW5jZVRpbWUgfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHtcbiAgRXJyb3JTdGF0ZU1hdGNoZXIsXG4gIElDYW5VcGRhdGVFcnJvclN0YXRlLFxuICBJSGFzRXJyb3JTdGF0ZSxcbiAgSU1QRENfRk9STV9ST09ULFxuICBJbXBkY0Zvcm1GaWVsZENvbnRyb2wsXG4gIEltcGRjRm9ybVJvb3QsXG4gIEltcGRjRm9ybXNNb2R1bGUsXG4gIG1peGluRGlzYWJsZWQsXG4gIG1peGluRXJyb3JTdGF0ZSxcbiAgbWl4aW5UYWJJbmRleFxufSBmcm9tICcuLi8uLi8uLi9mb3JtLWZpZWxkJztcbmltcG9ydCB7XG4gIERFRkFVTFRfTUFYX0RBVEUsXG4gIERFRkFVTFRfTUlOX0RBVEUsXG4gIERFRkFVTFRfVVNFXzI0SFJfVElNRV9MQUJFTFxufSBmcm9tICcuLi8uLi9jb25zdGFudHMnO1xuaW1wb3J0IHsgSURhdGV0aW1lUGlja2VyVmFsdWUgfSBmcm9tICcuLi8uLi90eXBlcyc7XG5pbXBvcnQgeyBEYXRlcGlja2VyVGVtcGxhdGVIb3N0Q29tcG9uZW50IH0gZnJvbSAnLi4vZGF0ZXBpY2tlci10ZW1wbGF0ZS1ob3N0JztcbmltcG9ydCB7IERhdGV0aW1lUGlja2VySW5wdXRGb290ZXJDb21wb25lbnQgfSBmcm9tICcuLi9kYXRldGltZS1waWNrZXItaW5wdXQtZm9vdGVyJztcblxuaW50ZXJmYWNlIElUaW1lT3B0aW9ucyB7XG4gIHJlYWRvbmx5IGJvcmRlcjogYm9vbGVhbjtcbiAgcmVhZG9ubHkgbGF5b3V0OiAnaW5saW5lJyB8ICdzdGFja2VkJztcbn1cblxuZXhwb3J0IGNvbnN0IERFRkFVTFRfVElNRV9MQVlPVVQ6IElUaW1lT3B0aW9ucyA9IHtcbiAgYm9yZGVyOiBmYWxzZSxcbiAgbGF5b3V0OiAnaW5saW5lJ1xufSBhcyBjb25zdDtcblxuY29uc3QgX0RhdGV0aW1lUGlja2VyQ29tcG9uZW50QmFzZSA9IG1peGluVGFiSW5kZXgoXG4gIG1peGluRGlzYWJsZWQoXG4gICAgbWl4aW5FcnJvclN0YXRlKFxuICAgICAgY2xhc3Mge1xuICAgICAgICBwdWJsaWMgcmVhZG9ubHkgc3RhdGVDaGFuZ2VzID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICAgICAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgICBwdWJsaWMgX2RlZmF1bHRFcnJvclN0YXRlTWF0Y2hlcjogRXJyb3JTdGF0ZU1hdGNoZXIsXG4gICAgICAgICAgcHVibGljIF9mb3JtUm9vdDogSW1wZGNGb3JtUm9vdCxcbiAgICAgICAgICBwdWJsaWMgX3BhcmVudEZvcm06IE5nRm9ybSxcbiAgICAgICAgICBwdWJsaWMgX3BhcmVudEZvcm1Hcm91cDogRm9ybUdyb3VwRGlyZWN0aXZlLFxuICAgICAgICAgIHB1YmxpYyBuZ0NvbnRyb2w6IE5nQ29udHJvbCB8IG51bGxcbiAgICAgICAgKSB7fVxuICAgICAgfVxuICAgIClcbiAgKVxuKTtcblxuLyoqXG4gKiBBIGNvbnRyb2wgZm9yIHNlbGVjdGluZyBkYXRlIG9yIGRhdGV0aW1lIHZpYSBhbiBpbmxpbmUgY2FsZW5kYXIgY29udHJvbC5cbiAqXG4gKiBJbXBsZW1lbnRzIFtDb250cm9sVmFsdWVBY2Nlc3Nvcl0oaHR0cHM6Ly9hbmd1bGFyLmlvL2FwaS9mb3Jtcy9Db250cm9sVmFsdWVBY2Nlc3NvcikgdG8gc3VwcG9ydCB0d28td2F5IGJpbmRpbmcgd2l0aFxuICogQW5ndWxhciBmb3JtcyB2aWEgdXNhZ2Ugb2YgdGhlIFxcYFsobmdNb2RlbCldXFxgLCBcXGBbZm9ybUNvbnRyb2xdXFxgLCBhbmQgXFxgW2Zvcm1Db250cm9sTmFtZV1cXGAgZGlyZWN0aXZlcy5cbiAqXG4gKiBUaGUgZGF0ZSBhbmQgdGltZSBjb250cm9scyBpbnNpZGUgdGhpcyBjb21wb25lbnQgbGV2ZXJhZ2UgdGhlIHZhbHVlIGFkYXB0ZXIgcGF0dGVybnMgYW5kIHNlcnZpY2VzIG9mIE5HLUJvb3RzdHJhcCdzXG4gKiBbRGF0ZXBpY2tlcl0oaHR0cHM6Ly9uZy1ib290c3RyYXAuZ2l0aHViLmlvLyMvY29tcG9uZW50cy9kYXRlcGlja2VyL292ZXJ2aWV3I2RhdGUtbW9kZWwpIGFuZFxuICogW1RpbWVwaWNrZXJdKGh0dHBzOi8vbmctYm9vdHN0cmFwLmdpdGh1Yi5pby8jL2NvbXBvbmVudHMvdGltZXBpY2tlci9leGFtcGxlcyNhZGFwdGVyKSBjb21wb25lbnRzIHdoZW4gd29ya2luZyB3aXRoIGlucHV0IHZhbHVlcy5cbiAqIFRoaXMgbWVhbnMgdGhhdCBgZGF0ZWAgdmFsdWVzIHdpbGwgYmUgW05nYkRhdGVTdHJ1Y3RdKGh0dHBzOi8vbmctYm9vdHN0cmFwLmdpdGh1Yi5pby8jL2NvbXBvbmVudHMvZGF0ZXBpY2tlci9hcGkjTmdiRGF0ZVN0cnVjdClcbiAqIG9iamVjdHMgYW5kIGB0aW1lYCB2YWx1ZXMgd2lsbCBiZSBbTmdiVGltZVN0cnVjdF0oaHR0cHM6Ly9uZy1ib290c3RyYXAuZ2l0aHViLmlvLyMvY29tcG9uZW50cy90aW1lcGlja2VyL2FwaSNOZ2JUaW1lU3RydWN0KSBvYmplY3RzXG4gKiBieSBkZWZhdWx0LCBhbmQgdGhlIFtOZ2JEYXRlQWRhcHRlcl0oaHR0cHM6Ly9uZy1ib290c3RyYXAuZ2l0aHViLmlvLyMvY29tcG9uZW50cy9kYXRlcGlja2VyL2FwaSNOZ2JEYXRlQWRhcHRlcikgYW5kXG4gKiBbTmdiVGltZUFkYXB0ZXJdKGh0dHBzOi8vbmctYm9vdHN0cmFwLmdpdGh1Yi5pby8jL2NvbXBvbmVudHMvdGltZXBpY2tlci9hcGkjTmdiVGltZUFkYXB0ZXIpIHNlcnZpY2VzIHdpbGwgYmUgdXNlZCB0byBoYW5kbGUgdGhlbSByZXNwZWN0aXZlbHkuXG4gKiBJZiB1c2FnZSBvZiBhbHRlcm5hdGl2ZSBkYXRlIGFuZCB0aW1lIG1vZGVscyBpcyBkZXNpcmVkLCBjb25zdWx0IE5HLUJvb3RzdHJhcCdzIGRvY3VtZW50YXRpb24gZm9yIGRpcmVjdGlvbnMuXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2ltcGRjLWRhdGV0aW1lLXBpY2tlcicsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcbiAgICBOZ2JEYXRlcGlja2VyTW9kdWxlLFxuICAgIE5nYlRpbWVwaWNrZXJNb2R1bGUsXG4gICAgRGF0ZXBpY2tlclRlbXBsYXRlSG9zdENvbXBvbmVudCxcbiAgICBEYXRldGltZVBpY2tlcklucHV0Rm9vdGVyQ29tcG9uZW50LFxuICAgIEltcGRjRm9ybXNNb2R1bGVcbiAgXSxcbiAgdGVtcGxhdGVVcmw6ICcuL2RhdGV0aW1lLXBpY2tlci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2RhdGV0aW1lLXBpY2tlci5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2Rpc2FibGVkJywgJ3RhYkluZGV4J10sXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taG9zdC1tZXRhZGF0YS1wcm9wZXJ0eVxuICBob3N0OiB7XG4gICAgJ1thdHRyLmlkXSc6ICdpZCcsXG4gICAgJ1thdHRyLnRhYmluZGV4XSc6ICd0YWJJbmRleCcsXG4gICAgJ1thdHRyLmFyaWEtcmVxdWlyZWRdJzogJ3JlcXVpcmVkLnRvU3RyaW5nKCknLFxuICAgICdbYXR0ci5hcmlhLWRpc2FibGVkXSc6ICdkaXNhYmxlZC50b1N0cmluZygpJyxcbiAgICAnW2F0dHIuYXJpYS1pbnZhbGlkXSc6ICdlcnJvclN0YXRlJyxcbiAgICAnW2NsYXNzLmlzLWludmFsaWRdJzogJ2Vycm9yU3RhdGUnLFxuICAgICdbY2xhc3MuaW1wZGMtZm9ybS1maWVsZC1jb250cm9sXSc6ICd0cnVlJyxcbiAgICAnW2NsYXNzLmltcGRjLWRhdGV0aW1lLXBpY2tlci0tcmVxdWlyZWRdJzogJ3JlcXVpcmVkJyxcbiAgICAnW2NsYXNzLmltcGRjLWRhdGV0aW1lLXBpY2tlci0tZGlzYWJsZWRdJzogJ2Rpc2FibGVkJyxcbiAgICAnW2NsYXNzLmltcGRjLWRhdGV0aW1lLXBpY2tlci0taW52YWxpZF0nOiAnZXJyb3JTdGF0ZScsXG4gICAgJ1tjbGFzcy5pbXBkYy1kYXRldGltZS1waWNrZXItLWVtcHR5XSc6ICdlbXB0eScsXG4gICAgJyhmb2N1cyknOiAnX29uRm9jdXMoKTsgZm9jdXMoKSdcbiAgfSxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogSW1wZGNGb3JtRmllbGRDb250cm9sLFxuICAgICAgdXNlRXhpc3Rpbmc6IERhdGV0aW1lUGlja2VyQ29tcG9uZW50XG4gICAgfVxuICBdXG59KVxuZXhwb3J0IGNsYXNzIERhdGV0aW1lUGlja2VyQ29tcG9uZW50XG4gIGV4dGVuZHMgX0RhdGV0aW1lUGlja2VyQ29tcG9uZW50QmFzZVxuICBpbXBsZW1lbnRzXG4gICAgQ29udHJvbFZhbHVlQWNjZXNzb3IsXG4gICAgRG9DaGVjayxcbiAgICBPbkNoYW5nZXMsXG4gICAgT25EZXN0cm95LFxuICAgIE9uSW5pdCxcbiAgICBJbXBkY0Zvcm1GaWVsZENvbnRyb2w8SURhdGV0aW1lUGlja2VyVmFsdWU8YW55LCBhbnk+IHwgbnVsbD4sXG4gICAgSUNhblVwZGF0ZUVycm9yU3RhdGUsXG4gICAgSUhhc0Vycm9yU3RhdGVcbntcbiAgcHJpdmF0ZSByZWFkb25seSBfY2hhbmdlRGV0ZWN0b3IgPSBpbmplY3QoQ2hhbmdlRGV0ZWN0b3JSZWYpO1xuICBwcml2YXRlIHJlYWRvbmx5IF9kZXN0cm95UmVmID0gaW5qZWN0KERlc3Ryb3lSZWYpO1xuICBwcml2YXRlIHJlYWRvbmx5IF9ob3N0RWxlbWVudCA9IGluamVjdChFbGVtZW50UmVmKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfbmdiRGF0ZUFkYXB0ZXIgPSBpbmplY3QoTmdiRGF0ZUFkYXB0ZXI8YW55Pik7XG4gIHByaXZhdGUgcmVhZG9ubHkgX3VpZCA9IGBpbXBkYy1kYXRldGltZS1waWNrZXItJHtuYW5vaWQoKX1gO1xuICBwcml2YXRlIF9wcmV2aW91c0NvbnRyb2w/OiBBYnN0cmFjdENvbnRyb2wgfCBudWxsO1xuXG4gIHByb3RlY3RlZCByZWFkb25seSBOZ1RyYW5zbGF0aW9uV2lkdGggPSBUcmFuc2xhdGlvbldpZHRoO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgZm9ybUdyb3VwID0gaW5qZWN0KEZvcm1CdWlsZGVyKS5ncm91cCh7XG4gICAgZGF0ZTogbmV3IEZvcm1Db250cm9sPGFueT4obnVsbCksXG4gICAgdGltZTogbmV3IEZvcm1Db250cm9sPGFueT4obnVsbCksXG4gICAgdXNlMjRoclRpbWU6IG5ldyBGb3JtQ29udHJvbDxib29sZWFuPihmYWxzZSwgeyBub25OdWxsYWJsZTogdHJ1ZSB9KVxuICB9KTtcbiAgcHJvdGVjdGVkIGN2YU9uQ2hhbmdlID0gKF86IGFueSkgPT4ge307XG4gIHByb3RlY3RlZCBjdmFPblRvdWNoZWQgPSAoKSA9PiB7fTtcblxuICBAVmlld0NoaWxkKE5nYkRhdGVwaWNrZXIsIHsgc3RhdGljOiB0cnVlIH0pXG4gIHByb3RlY3RlZCBuZ2JEYXRlcGlja2VyITogTmdiRGF0ZXBpY2tlcjtcblxuICAvKipcbiAgICogQSBjYWxsYmFjayBmdW5jdGlvbiB0aGF0IGNhbiBiZSBldmFsdWF0ZWQgdG8gZGVjaWRlIGlmIGEgZ2l2ZW4gZGF0ZSBpcyBkaXNhYmxlZFxuICAgKiBpbiB0aGUgY2FsZW5kYXIgdmlldy5cbiAgICpcbiAgICogQHBhcmFtIGRhdGUgQW4gW2BOZ2JEYXRlYF0oaHR0cHM6Ly9uZy1ib290c3RyYXAuZ2l0aHViLmlvLyMvY29tcG9uZW50cy9kYXRlcGlja2VyL2FwaSNOZ2JEYXRlKSB2YWx1ZSBkZXNjcmliaW5nIHRoZSBzaW5ndWxhciBkYXRlIGJlaW5nIGV2YWx1YXRlZC5cbiAgICogQHBhcmFtIGN1cnJlbnQgVGhlIG1vbnRoIGFuZCB5ZWFyIHNlbGVjdGVkIGZvciB0aGUgY3VycmVudCBjYWxlbmRhciB2aWV3LlxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIG1hcmtEYXRlRGlzYWJsZWQ/OiAoXG4gICAgZGF0ZTogTmdiRGF0ZVN0cnVjdCxcbiAgICBjdXJyZW50PzogeyBtb250aDogbnVtYmVyOyB5ZWFyOiBudW1iZXIgfVxuICApID0+IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFRoZSBlYXJsaWVzdCBhbGxvd2FibGUgZGF0ZSBmb3IgZGlzcGxheSBvciBzZWxlY3Rpb24uXG4gICAqXG4gICAqIEBkZWZhdWx0IHsgeWVhcjogMTkwMCwgbW9udGg6IDEsIGRheTogMSB9XG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgZ2V0IG1pbkRhdGUoKTogTmdiRGF0ZVN0cnVjdCB7XG4gICAgcmV0dXJuIHsgLi4udGhpcy5fbWluRGF0ZSB9O1xuICB9XG4gIHB1YmxpYyBzZXQgbWluRGF0ZSh2YWx1ZTogTmdiRGF0ZVN0cnVjdCB8IG51bGwpIHtcbiAgICB0aGlzLl9taW5EYXRlID0gdmFsdWUgfHwgREVGQVVMVF9NSU5fREFURTtcbiAgfVxuICBwcml2YXRlIF9taW5EYXRlOiBOZ2JEYXRlU3RydWN0ID0gREVGQVVMVF9NSU5fREFURTtcblxuICAvKipcbiAgICogVGhlIGxhdGVzdCBhbGxvd2FibGUgZGF0ZSBmb3IgZGlzcGxheSBvciBzZWxlY3Rpb24uXG4gICAqXG4gICAqIEBkZWZhdWx0IHsgeWVhcjogMjA5OSwgbW9udGg6IDEyLCBkYXk6IDMxIH1cbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBnZXQgbWF4RGF0ZSgpOiBOZ2JEYXRlU3RydWN0IHtcbiAgICByZXR1cm4geyAuLi50aGlzLl9tYXhEYXRlIH07XG4gIH1cbiAgcHVibGljIHNldCBtYXhEYXRlKHZhbHVlOiBOZ2JEYXRlU3RydWN0IHwgbnVsbCkge1xuICAgIHRoaXMuX21heERhdGUgPSB2YWx1ZSB8fCBERUZBVUxUX01BWF9EQVRFO1xuICB9XG4gIHByaXZhdGUgX21heERhdGU6IE5nYkRhdGVTdHJ1Y3QgPSBERUZBVUxUX01BWF9EQVRFO1xuXG4gIC8qKlxuICAgKiBDb25maWd1cmFibGUgb3B0aW9ucyBmb3Igc2V0dGluZyB0aGUgbGF5b3V0IG9mIHRoZSBkYXRlIGFuZCB0aW1lIGNvbnRyb2xzIHdpdGhpbiB0aGUgY29tcG9uZW50LlxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIGdldCB0aW1lTGF5b3V0KCk6IElUaW1lT3B0aW9ucyB7XG4gICAgcmV0dXJuIHsgLi4udGhpcy5fdGltZUxheW91dCB9O1xuICB9XG4gIHB1YmxpYyBzZXQgdGltZUxheW91dCh2YWx1ZTogUGFydGlhbDxJVGltZU9wdGlvbnM+KSB7XG4gICAgdGhpcy5fdGltZUxheW91dCA9IHtcbiAgICAgIC4uLkRFRkFVTFRfVElNRV9MQVlPVVQsXG4gICAgICAuLi52YWx1ZVxuICAgIH07XG4gIH1cbiAgcHJpdmF0ZSBfdGltZUxheW91dDogSVRpbWVPcHRpb25zID0geyAuLi5ERUZBVUxUX1RJTUVfTEFZT1VUIH07XG5cbiAgLyoqXG4gICAqIExhYmVsIHRvIGJlIGRpc3BsYXllZCB3aXRoIHRpbWUgY29udHJvbHMgdG8gYWxsb3cgdGhlIHVzZXIgdG8gaW5wdXQgMjQtaG91ciBvciBtZXJpZGlhbi1iYXNlZCAoQU0sIFBNKSB0aW1lLlxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIG1lcmlkaWFuVG9nZ2xlTGFiZWw6IHN0cmluZyA9IERFRkFVTFRfVVNFXzI0SFJfVElNRV9MQUJFTDtcblxuICAvKipcbiAgICogU2V0IHdoZXRoZXIgdG8gZGlzcGxheSBjb250cm9scyBmb3Igc2VsZWN0aW5nIGEgdGltZSB2YWx1ZSBpbiBhZGRpdGlvbiB0byB0aGUgZGF0ZS5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyB3aXRoVGltZSA9IGZhbHNlO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBvdmVycmlkZSBlcnJvclN0YXRlTWF0Y2hlciE6IEVycm9yU3RhdGVNYXRjaGVyO1xuXG4gIC8qKlxuICAgKiBFdmVudHMgZmlyZSB3aGVuIHJhdyB2YWx1ZSBvZiBwaWNrZXIgaW5wdXQgY2hhbmdlcy4gTWFpbmx5IGV4aXN0cyB0byBoYW5kbGVcbiAgICogdHdvLXdheSBiaW5kaW5nIG9mIGB2YWx1ZWAgaW5wdXQgcHJvcGVydHkuXG4gICAqIEBpZ25vcmVcbiAgICovXG4gIEBPdXRwdXQoKVxuICBwdWJsaWMgcmVhZG9ubHkgdmFsdWVDaGFuZ2U6IEV2ZW50RW1pdHRlcjxJRGF0ZXRpbWVQaWNrZXJWYWx1ZTxcbiAgICBhbnksXG4gICAgYW55XG4gID4gfCBudWxsPiA9IG5ldyBFdmVudEVtaXR0ZXI8SURhdGV0aW1lUGlja2VyVmFsdWU8YW55LCBhbnk+IHwgbnVsbD4oKTtcblxuICAvKiogQGlnbm9yZSAqL1xuICBAT3V0cHV0KClcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1vdXRwdXQtbmF0aXZlXG4gIHB1YmxpYyByZWFkb25seSBibHVyID0gbmV3IEV2ZW50RW1pdHRlcjxGb2N1c0V2ZW50PigpO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIF9kZWZhdWx0RXJyb3JTdGF0ZU1hdGNoZXI6IEVycm9yU3RhdGVNYXRjaGVyLFxuICAgIEBPcHRpb25hbCgpIEBJbmplY3QoSU1QRENfRk9STV9ST09UKSBfZm9ybVJvb3Q6IEltcGRjRm9ybVJvb3QsXG4gICAgQE9wdGlvbmFsKCkgX3BhcmVudEZvcm06IE5nRm9ybSxcbiAgICBAT3B0aW9uYWwoKSBfcGFyZW50Rm9ybUdyb3VwOiBGb3JtR3JvdXBEaXJlY3RpdmUsXG4gICAgQFNlbGYoKSBAT3B0aW9uYWwoKSBuZ0NvbnRyb2w6IE5nQ29udHJvbFxuICApIHtcbiAgICBzdXBlcihcbiAgICAgIF9kZWZhdWx0RXJyb3JTdGF0ZU1hdGNoZXIsXG4gICAgICBfZm9ybVJvb3QsXG4gICAgICBfcGFyZW50Rm9ybSxcbiAgICAgIF9wYXJlbnRGb3JtR3JvdXAsXG4gICAgICBuZ0NvbnRyb2xcbiAgICApO1xuXG4gICAgaWYgKHRoaXMubmdDb250cm9sKSB7XG4gICAgICB0aGlzLm5nQ29udHJvbC52YWx1ZUFjY2Vzc29yID0gdGhpcztcbiAgICB9XG5cbiAgICB0aGlzLmlkID0gdGhpcy5pZDtcbiAgfVxuXG4gIC8qKiBAaWdub3JlICovXG4gIHB1YmxpYyBmb2N1cygpOiB2b2lkIHtcbiAgICB0aGlzLm5nYkRhdGVwaWNrZXIuZm9jdXMoKTtcbiAgfVxuXG4gIC8qIExpZmVjeWNsZSBIb29rcyAqL1xuXG4gIC8qKiBAaWdub3JlICovXG4gIHB1YmxpYyBuZ0RvQ2hlY2soKTogdm9pZCB7XG4gICAgY29uc3QgbmdDb250cm9sID0gdGhpcy5uZ0NvbnRyb2w7XG5cbiAgICBpZiAoIW5nQ29udHJvbCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICh0aGlzLl9wcmV2aW91c0NvbnRyb2wgIT09IG5nQ29udHJvbC5jb250cm9sKSB7XG4gICAgICBpZiAoXG4gICAgICAgIHRoaXMuX3ByZXZpb3VzQ29udHJvbCAhPT0gdW5kZWZpbmVkICYmXG4gICAgICAgIG5nQ29udHJvbC5kaXNhYmxlZCAhPT0gbnVsbCAmJlxuICAgICAgICBuZ0NvbnRyb2wuZGlzYWJsZWQgIT09IHRoaXMuZGlzYWJsZWRcbiAgICAgICkge1xuICAgICAgICB0aGlzLmRpc2FibGVkID0gbmdDb250cm9sPy5kaXNhYmxlZDtcbiAgICAgIH1cblxuICAgICAgdGhpcy5fcHJldmlvdXNDb250cm9sID0gbmdDb250cm9sLmNvbnRyb2w7XG4gICAgfVxuXG4gICAgdGhpcy51cGRhdGVFcnJvclN0YXRlKCk7XG4gIH1cblxuICAvKiogQGlnbm9yZSAqL1xuICBwdWJsaWMgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIC8vIE1hbmFnaW5nIGRpc2FibGVkIHN0YXRlIGlzIGhhbmRsZWQgdmlhIHRoZSBgbWl4aW5EaXNhYmxlZGAgbWl4aW4vZ2VuZXJhdG9yLCBidXQgd2Ugc3RpbGwgbmVlZCB0byBzaWduYWxcbiAgICAvLyB0byB0aGUgcGFyZW50IGZvcm0gZmllbGQgc28gaXQgY2FuIHJ1biBjaGFuZ2UgZGV0ZWN0aW9uIHdoZW4gZGlzYWJsZWQgc3RhdGUgaXMgY2hhbmdlZC5cbiAgICBpZiAoY2hhbmdlc1snZGlzYWJsZWQnXSkge1xuICAgICAgdGhpcy5zdGF0ZUNoYW5nZXMubmV4dCgpO1xuICAgIH1cbiAgfVxuXG4gIC8qKiBAaWdub3JlICovXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLnN0YXRlQ2hhbmdlcy5jb21wbGV0ZSgpO1xuICB9XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuZm9ybUdyb3VwLnZhbHVlQ2hhbmdlc1xuICAgICAgLnBpcGUodGFrZVVudGlsRGVzdHJveWVkKHRoaXMuX2Rlc3Ryb3lSZWYpLCBkZWJvdW5jZVRpbWUoMTAwKSlcbiAgICAgIC5zdWJzY3JpYmUoZm9ybVZhbHVlID0+IHtcbiAgICAgICAgY29uc3QgY2hhbmdlVmFsdWUgPSB0aGlzLl9nZXRWYWx1ZUZyb21Gb3JtTW9kZWwoZm9ybVZhbHVlKTtcbiAgICAgICAgdGhpcy5jdmFPbkNoYW5nZShjaGFuZ2VWYWx1ZSk7XG4gICAgICAgIHRoaXMudmFsdWVDaGFuZ2UuZW1pdChjaGFuZ2VWYWx1ZSk7XG4gICAgICAgIHRoaXMuY3ZhT25Ub3VjaGVkKCk7XG4gICAgICB9KTtcbiAgfVxuXG4gIC8qIENvbnRyb2xWYWx1ZUFjY2Vzc29yICovXG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgcHVibGljIHdyaXRlVmFsdWUob2JqOiBJRGF0ZXRpbWVQaWNrZXJWYWx1ZTxhbnksIGFueT4gfCBhbnkpOiB2b2lkIHtcbiAgICBsZXQgbmV3VmFsdWU6IFBhcnRpYWw8SURhdGV0aW1lUGlja2VyVmFsdWU+ID0ge307XG4gICAgaWYgKG9iaiAmJiAnZGF0ZScgaW4gb2JqKSB7XG4gICAgICBuZXdWYWx1ZSA9IHtcbiAgICAgICAgLi4ubmV3VmFsdWUsXG4gICAgICAgIGRhdGU6IG9iai5kYXRlXG4gICAgICB9O1xuICAgIH1cblxuICAgIGlmICh0aGlzLndpdGhUaW1lICYmIG9iaiAmJiAndGltZScgaW4gb2JqKSB7XG4gICAgICBuZXdWYWx1ZSA9IHtcbiAgICAgICAgLi4ubmV3VmFsdWUsXG4gICAgICAgIHRpbWU6IG9iai50aW1lXG4gICAgICB9O1xuICAgIH1cblxuICAgIHRoaXMuZm9ybUdyb3VwLnBhdGNoVmFsdWUobmV3VmFsdWUsIHsgZW1pdEV2ZW50OiBmYWxzZSB9KTtcbiAgICBpZiAoJ2RhdGUnIGluIG5ld1ZhbHVlKSB7XG4gICAgICB0aGlzLm5nYkRhdGVwaWNrZXIuZm9jdXNEYXRlKFxuICAgICAgICB0aGlzLl9uZ2JEYXRlQWRhcHRlci5mcm9tTW9kZWwobmV3VmFsdWUuZGF0ZSlcbiAgICAgICk7XG4gICAgfVxuXG4gICAgdGhpcy5zdGF0ZUNoYW5nZXMubmV4dCgpO1xuICB9XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgcHVibGljIHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSk6IHZvaWQge1xuICAgIHRoaXMuY3ZhT25DaGFuZ2UgPSBmbjtcbiAgfVxuXG4gIC8qKiBAaWdub3JlICovXG4gIHB1YmxpYyByZWdpc3Rlck9uVG91Y2hlZChmbjogYW55KTogdm9pZCB7XG4gICAgdGhpcy5jdmFPblRvdWNoZWQgPSBmbjtcbiAgfVxuXG4gIC8qKiBAaWdub3JlICovXG4gIHB1YmxpYyBzZXREaXNhYmxlZFN0YXRlPyhpc0Rpc2FibGVkOiBib29sZWFuKTogdm9pZCB7XG4gICAgdGhpcy5kaXNhYmxlZCA9IGlzRGlzYWJsZWQ7XG5cbiAgICBpZiAoaXNEaXNhYmxlZCkge1xuICAgICAgdGhpcy5mb3JtR3JvdXAuZGlzYWJsZSgpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmZvcm1Hcm91cC5lbmFibGUoKTtcbiAgICB9XG4gIH1cblxuICAvKiBJbXBkY0Zvcm1GaWVsZENvbnRyb2wgKi9cblxuICBASW5wdXQoKVxuICBwdWJsaWMgZ2V0IHZhbHVlKCk6IElEYXRldGltZVBpY2tlclZhbHVlPGFueSwgYW55PiB8IG51bGwge1xuICAgIHJldHVybiB0aGlzLl9nZXRWYWx1ZUZyb21Gb3JtTW9kZWwodGhpcy5mb3JtR3JvdXAudmFsdWUpO1xuICB9XG4gIHB1YmxpYyBzZXQgdmFsdWUodmFsdWU6IElEYXRldGltZVBpY2tlclZhbHVlPGFueSwgYW55PiB8IG51bGwpIHtcbiAgICB0aGlzLndyaXRlVmFsdWUodmFsdWUpO1xuICB9XG5cbiAgQElucHV0KClcbiAgcHVibGljIGdldCBpZCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLl9pZDtcbiAgfVxuICBwdWJsaWMgc2V0IGlkKHZhbHVlOiBzdHJpbmcpIHtcbiAgICB0aGlzLl9pZCA9IHZhbHVlIHx8IHRoaXMuX3VpZDtcbiAgICB0aGlzLnN0YXRlQ2hhbmdlcy5uZXh0KCk7XG4gIH1cbiAgcHJvdGVjdGVkIF9pZCE6IHN0cmluZztcblxuICAvKipcbiAgICogVXNlZCB0byBzZXQgcmVxdWlyZWRuZXNzIG9mIGNvbnRyb2wgaW4gYSB0ZW1wbGF0ZS1iYXNlZCBtYW5uZXI7XG4gICAqIG5vdCBuZWNlc3Nhcnkgd2hlbiB1c2luZyB0aGUgQW5ndWxhciByZWFjdGl2ZSBmb3JtcyBBUEkgYW5kIGByZXF1aXJlZGAgdmFsaWRhdG9yLlxuICAgKlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pXG4gIHB1YmxpYyBnZXQgcmVxdWlyZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIChcbiAgICAgIHRoaXMuX3JlcXVpcmVkID8/XG4gICAgICB0aGlzLm5nQ29udHJvbD8uY29udHJvbD8uaGFzVmFsaWRhdG9yKFZhbGlkYXRvcnMucmVxdWlyZWQpID8/XG4gICAgICBmYWxzZVxuICAgICk7XG4gIH1cbiAgcHVibGljIHNldCByZXF1aXJlZCh2YWx1ZTogYm9vbGVhbikge1xuICAgIHRoaXMuX3JlcXVpcmVkID0gdmFsdWU7XG4gICAgdGhpcy5zdGF0ZUNoYW5nZXMubmV4dCgpO1xuICB9XG4gIHByaXZhdGUgX3JlcXVpcmVkOiBib29sZWFuIHwgdW5kZWZpbmVkO1xuXG4gIHB1YmxpYyBnZXQgZm9jdXNlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fZm9jdXNlZDtcbiAgfVxuICBwcm90ZWN0ZWQgX2ZvY3VzZWQgPSBmYWxzZTtcblxuICBwdWJsaWMgcmVhZG9ubHkgY29udHJvbFR5cGU6IHN0cmluZyA9ICdpbXBkYy1kYXRldGltZS1waWNrZXInO1xuICBwdWJsaWMgcmVhZG9ubHkgc3VwcG9ydHNBZmZpeGVzOiBib29sZWFuID0gZmFsc2U7XG5cbiAgLyogSW50ZXJuYWxzICovXG5cbiAgcHJvdGVjdGVkIGdldCB1c2UyNGhyVGltZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5mb3JtR3JvdXAuZ2V0UmF3VmFsdWUoKS51c2UyNGhyVGltZTtcbiAgfVxuXG4gIHByb3RlY3RlZCBnZXQgdXNlMjRoclRpbWVMYWJlbFRleHQoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5tZXJpZGlhblRvZ2dsZUxhYmVsPy50cmltKCkgfHwgREVGQVVMVF9VU0VfMjRIUl9USU1FX0xBQkVMO1xuICB9XG5cbiAgcHJvdGVjdGVkIGhhbmRsZUZvY3VzT3V0KGV2dDogRm9jdXNFdmVudCk6IHZvaWQge1xuICAgIGlmIChcbiAgICAgICFldnQucmVsYXRlZFRhcmdldCB8fFxuICAgICAgIXRoaXMuX2hvc3RFbGVtZW50Lm5hdGl2ZUVsZW1lbnQuY29udGFpbnMoZXZ0LnJlbGF0ZWRUYXJnZXQpXG4gICAgKSB7XG4gICAgICB0aGlzLl9vbkJsdXIoZXZ0KTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9nZXRWYWx1ZUZyb21Gb3JtTW9kZWwoXG4gICAgZm9ybVZhbHVlOiBQYXJ0aWFsPHsgZGF0ZTogYW55OyB0aW1lOiBhbnk7IHVzZTI0aHJUaW1lOiBhbnkgfT5cbiAgKTogSURhdGV0aW1lUGlja2VyVmFsdWU8YW55LCBhbnk+IHwgbnVsbCB7XG4gICAgaWYgKCFmb3JtVmFsdWUuZGF0ZSAmJiAhZm9ybVZhbHVlLnRpbWUpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIGxldCByZXN1bHQ6IElEYXRldGltZVBpY2tlclZhbHVlPGFueSwgYW55PiA9IHtcbiAgICAgIGRhdGU6IGZvcm1WYWx1ZS5kYXRlXG4gICAgfTtcblxuICAgIGlmICh0aGlzLndpdGhUaW1lKSB7XG4gICAgICByZXN1bHQgPSB7XG4gICAgICAgIC4uLnJlc3VsdCxcbiAgICAgICAgdGltZTogZm9ybVZhbHVlLnRpbWVcbiAgICAgIH07XG4gICAgfVxuXG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIHByaXZhdGUgX2RhdGVJc091dHNpZGVDdXJyZW50TW9udGgoXG4gICAgZGF0ZTogTmdiRGF0ZVN0cnVjdCxcbiAgICBjdXJyZW50PzogeyBtb250aDogbnVtYmVyOyB5ZWFyOiBudW1iZXIgfVxuICApOiBib29sZWFuIHtcbiAgICByZXR1cm4gISFjdXJyZW50ICYmIGRhdGUubW9udGggIT09IGN1cnJlbnQubW9udGg7XG4gIH1cblxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgbWFya0RhdGVEaXNhYmxlZEZuID0gKFxuICAgIGRhdGU6IE5nYkRhdGVTdHJ1Y3QsXG4gICAgY3VycmVudD86IHsgbW9udGg6IG51bWJlcjsgeWVhcjogbnVtYmVyIH1cbiAgKSA9PiB7XG4gICAgcmV0dXJuIChcbiAgICAgIHRoaXMuX2RhdGVJc091dHNpZGVDdXJyZW50TW9udGgoZGF0ZSwgY3VycmVudCkgfHxcbiAgICAgICghIXRoaXMubWFya0RhdGVEaXNhYmxlZCAmJiB0aGlzLm1hcmtEYXRlRGlzYWJsZWQoZGF0ZSwgY3VycmVudCkpXG4gICAgKTtcbiAgfTtcblxuICBwcm90ZWN0ZWQgX29uRm9jdXMoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLmRpc2FibGVkKSB7XG4gICAgICB0aGlzLl9mb2N1c2VkID0gdHJ1ZTtcbiAgICAgIHRoaXMuc3RhdGVDaGFuZ2VzLm5leHQoKTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgX29uQmx1cihmb2N1c0V2ZW50OiBGb2N1c0V2ZW50KTogdm9pZCB7XG4gICAgdGhpcy5fZm9jdXNlZCA9IGZhbHNlO1xuXG4gICAgaWYgKCF0aGlzLmRpc2FibGVkKSB7XG4gICAgICB0aGlzLmN2YU9uVG91Y2hlZCgpO1xuICAgICAgdGhpcy5ibHVyLmVtaXQoZm9jdXNFdmVudCk7XG4gICAgICB0aGlzLl9jaGFuZ2VEZXRlY3Rvci5tYXJrRm9yQ2hlY2soKTtcbiAgICAgIHRoaXMuc3RhdGVDaGFuZ2VzLm5leHQoKTtcbiAgICB9XG4gIH1cbn1cbiIsIjxpbXBkYy1kYXRlcGlja2VyLXRlbXBsYXRlLWhvc3QgI3RlbXBsYXRlSG9zdD48L2ltcGRjLWRhdGVwaWNrZXItdGVtcGxhdGUtaG9zdD5cbjxkaXZcbiAgW2Zvcm1Hcm91cF09XCJmb3JtR3JvdXBcIlxuICBjbGFzcz1cImQtZmxleFwiXG4gIFtuZ0NsYXNzXT1cIntcbiAgICAnZmxleC1jb2x1bW4nOiB3aXRoVGltZSAmJiB0aW1lTGF5b3V0LmxheW91dCA9PT0gJ3N0YWNrZWQnXG4gIH1cIlxuICAoZm9jdXNvdXQpPVwiaGFuZGxlRm9jdXNPdXQoJGV2ZW50KVwiPlxuICA8bmdiLWRhdGVwaWNrZXJcbiAgICBjbGFzcz1cImltcGRjLWRhdGV0aW1lLXBpY2tlci0tZGF0ZXBpY2tlclwiXG4gICAgZm9ybUNvbnRyb2xOYW1lPVwiZGF0ZVwiXG4gICAgW2RheVRlbXBsYXRlXT1cInRlbXBsYXRlSG9zdC5kYXlUZW1wbGF0ZVJlZlwiXG4gICAgW2NvbnRlbnRUZW1wbGF0ZV09XCJ0ZW1wbGF0ZUhvc3QuY29udGVudFRlbXBsYXRlUmVmXCJcbiAgICBbc2hvd1dlZWtOdW1iZXJzXT1cImZhbHNlXCJcbiAgICBvdXRzaWRlRGF5cz1cInZpc2libGVcIlxuICAgIFt3ZWVrZGF5c109XCJOZ1RyYW5zbGF0aW9uV2lkdGguQWJicmV2aWF0ZWRcIlxuICAgIFttYXJrRGlzYWJsZWRdPVwibWFya0RhdGVEaXNhYmxlZEZuXCJcbiAgICBbbWluRGF0ZV09XCJtaW5EYXRlXCJcbiAgICBbbWF4RGF0ZV09XCJtYXhEYXRlXCIgLz5cbiAgQGlmICh3aXRoVGltZSkge1xuICA8ZGl2XG4gICAgY2xhc3M9XCJpbXBkYy1kYXRldGltZS1waWNrZXItLXRpbWVwaWNrZXIgZC1mbGV4IGZsZXgtY29sdW1uIGdhcC00IHAtNCB3LTEwMFwiXG4gICAgW25nQ2xhc3NdPVwie1xuICAgICAgJ2JvcmRlci0wJzogIXRpbWVMYXlvdXQuYm9yZGVyLFxuICAgICAgJ2JvcmRlci1ncmF5LTIwMCc6IHRpbWVMYXlvdXQuYm9yZGVyLFxuICAgICAgJ210LTInOiB0aW1lTGF5b3V0LmxheW91dCA9PT0gJ3N0YWNrZWQnLFxuICAgICAgJ2JvcmRlci10b3AnOiB0aW1lTGF5b3V0LmJvcmRlciAmJiB0aW1lTGF5b3V0LmxheW91dCA9PT0gJ3N0YWNrZWQnLFxuICAgICAgJ21zLTInOiB0aW1lTGF5b3V0LmxheW91dCA9PT0gJ2lubGluZScsXG4gICAgICAnYm9yZGVyLXN0YXJ0JzogdGltZUxheW91dC5ib3JkZXIgJiYgdGltZUxheW91dC5sYXlvdXQgPT09ICdpbmxpbmUnXG4gICAgfVwiPlxuICAgIDxpbXBkYy1jaGVja2JveFxuICAgICAgW2xhYmVsXT1cInVzZTI0aHJUaW1lTGFiZWxUZXh0XCJcbiAgICAgIGZvcm1Db250cm9sTmFtZT1cInVzZTI0aHJUaW1lXCJcbiAgICAgIFtpc1N3aXRjaF09XCJ0cnVlXCJcbiAgICAgIGxheW91dD1cImNoZWNrLWVuZFwiIC8+XG4gICAgPG5nYi10aW1lcGlja2VyXG4gICAgICBmb3JtQ29udHJvbE5hbWU9XCJ0aW1lXCJcbiAgICAgIFttZXJpZGlhbl09XCIhdXNlMjRoclRpbWVcIlxuICAgICAgW3NlY29uZHNdPVwiZmFsc2VcIlxuICAgICAgW3NwaW5uZXJzXT1cImZhbHNlXCJcbiAgICAgIHNpemU9XCJtZWRpdW1cIj48L25nYi10aW1lcGlja2VyPlxuICA8L2Rpdj5cbiAgfVxuPC9kaXY+XG4iXX0=
|
|
369
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZXRpbWUtcGlja2VyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Rlc2lnbi1jb21wb25lbnRzL3NyYy9saWIvZGF0ZXRpbWUtcGlja2VyL2NvbXBvbmVudHMvZGF0ZXRpbWUtcGlja2VyL2RhdGV0aW1lLXBpY2tlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kZXNpZ24tY29tcG9uZW50cy9zcmMvbGliL2RhdGV0aW1lLXBpY2tlci9jb21wb25lbnRzL2RhdGV0aW1lLXBpY2tlci9kYXRldGltZS1waWNrZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULFVBQVUsRUFFVixVQUFVLEVBQ1YsWUFBWSxFQUNaLE1BQU0sRUFDTixLQUFLLEVBSUwsUUFBUSxFQUNSLE1BQU0sRUFDTixJQUFJLEVBRUosU0FBUyxFQUNULGdCQUFnQixFQUNoQixNQUFNLEVBQ1AsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ2hFLE9BQU8sRUFHTCxXQUFXLEVBQ1gsV0FBVyxFQUlYLG1CQUFtQixFQUNuQixVQUFVLEVBQ1gsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QixPQUFPLEVBQ0wsY0FBYyxFQUVkLGFBQWEsRUFDYixtQkFBbUIsRUFDbkIsbUJBQW1CLEVBQ3BCLE1BQU0sNEJBQTRCLENBQUM7QUFDcEMsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUNoQyxPQUFPLEVBQUUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUU3QyxPQUFPLEVBSUws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ZWN0aW9uU3RyYXRlZ3ksXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIERlc3Ryb3lSZWYsXG4gIERvQ2hlY2ssXG4gIEVsZW1lbnRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5qZWN0LFxuICBJbnB1dCxcbiAgT25DaGFuZ2VzLFxuICBPbkRlc3Ryb3ksXG4gIE9uSW5pdCxcbiAgT3B0aW9uYWwsXG4gIE91dHB1dCxcbiAgU2VsZixcbiAgU2ltcGxlQ2hhbmdlcyxcbiAgVmlld0NoaWxkLFxuICBib29sZWFuQXR0cmlidXRlLFxuICBpbmplY3Rcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgdGFrZVVudGlsRGVzdHJveWVkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuaW1wb3J0IHtcbiAgQWJzdHJhY3RDb250cm9sLFxuICBDb250cm9sVmFsdWVBY2Nlc3NvcixcbiAgRm9ybUJ1aWxkZXIsXG4gIEZvcm1Db250cm9sLFxuICBGb3JtR3JvdXBEaXJlY3RpdmUsXG4gIE5nQ29udHJvbCxcbiAgTmdGb3JtLFxuICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxuICBWYWxpZGF0b3JzXG59IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7XG4gIE5nYkRhdGVBZGFwdGVyLFxuICBOZ2JEYXRlU3RydWN0LFxuICBOZ2JEYXRlcGlja2VyLFxuICBOZ2JEYXRlcGlja2VyTW9kdWxlLFxuICBOZ2JUaW1lcGlja2VyTW9kdWxlXG59IGZyb20gJ0BuZy1ib290c3RyYXAvbmctYm9vdHN0cmFwJztcbmltcG9ydCB7IG5hbm9pZCB9IGZyb20gJ25hbm9pZCc7XG5pbXBvcnQgeyBTdWJqZWN0LCBkZWJvdW5jZVRpbWUgfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHtcbiAgRXJyb3JTdGF0ZU1hdGNoZXIsXG4gIElDYW5VcGRhdGVFcnJvclN0YXRlLFxuICBJSGFzRXJyb3JTdGF0ZSxcbiAgSU1QRENfRk9STV9ST09ULFxuICBJbXBkY0Zvcm1GaWVsZENvbnRyb2wsXG4gIEltcGRjRm9ybVJvb3QsXG4gIEltcGRjRm9ybXNNb2R1bGUsXG4gIG1peGluRGlzYWJsZWQsXG4gIG1peGluRXJyb3JTdGF0ZSxcbiAgbWl4aW5UYWJJbmRleFxufSBmcm9tICcuLi8uLi8uLi9mb3JtLWZpZWxkJztcbmltcG9ydCB7XG4gIERFRkFVTFRfTUFYX0RBVEUsXG4gIERFRkFVTFRfTUlOX0RBVEUsXG4gIERFRkFVTFRfVVNFXzI0SFJfVElNRV9MQUJFTFxufSBmcm9tICcuLi8uLi9jb25zdGFudHMnO1xuaW1wb3J0IHsgSURhdGV0aW1lUGlja2VyVmFsdWUgfSBmcm9tICcuLi8uLi90eXBlcyc7XG5pbXBvcnQgeyBEYXRlcGlja2VyVGVtcGxhdGVIb3N0Q29tcG9uZW50IH0gZnJvbSAnLi4vZGF0ZXBpY2tlci10ZW1wbGF0ZS1ob3N0JztcbmltcG9ydCB7IERhdGV0aW1lUGlja2VySW5wdXRGb290ZXJDb21wb25lbnQgfSBmcm9tICcuLi9kYXRldGltZS1waWNrZXItaW5wdXQtZm9vdGVyJztcblxuaW50ZXJmYWNlIElUaW1lT3B0aW9ucyB7XG4gIHJlYWRvbmx5IGJvcmRlcjogYm9vbGVhbjtcbiAgcmVhZG9ubHkgbGF5b3V0OiAnaW5saW5lJyB8ICdzdGFja2VkJztcbn1cblxuZXhwb3J0IGNvbnN0IERFRkFVTFRfVElNRV9MQVlPVVQ6IElUaW1lT3B0aW9ucyA9IHtcbiAgYm9yZGVyOiBmYWxzZSxcbiAgbGF5b3V0OiAnaW5saW5lJ1xufSBhcyBjb25zdDtcblxuY29uc3QgX0RhdGV0aW1lUGlja2VyQ29tcG9uZW50QmFzZSA9IG1peGluVGFiSW5kZXgoXG4gIG1peGluRGlzYWJsZWQoXG4gICAgbWl4aW5FcnJvclN0YXRlKFxuICAgICAgY2xhc3Mge1xuICAgICAgICBwdWJsaWMgcmVhZG9ubHkgc3RhdGVDaGFuZ2VzID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICAgICAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgICBwdWJsaWMgX2RlZmF1bHRFcnJvclN0YXRlTWF0Y2hlcjogRXJyb3JTdGF0ZU1hdGNoZXIsXG4gICAgICAgICAgcHVibGljIF9mb3JtUm9vdDogSW1wZGNGb3JtUm9vdCxcbiAgICAgICAgICBwdWJsaWMgX3BhcmVudEZvcm06IE5nRm9ybSxcbiAgICAgICAgICBwdWJsaWMgX3BhcmVudEZvcm1Hcm91cDogRm9ybUdyb3VwRGlyZWN0aXZlLFxuICAgICAgICAgIHB1YmxpYyBuZ0NvbnRyb2w6IE5nQ29udHJvbCB8IG51bGxcbiAgICAgICAgKSB7fVxuICAgICAgfVxuICAgIClcbiAgKVxuKTtcblxuLyoqXG4gKiBBIGNvbnRyb2wgZm9yIHNlbGVjdGluZyBkYXRlIG9yIGRhdGV0aW1lIHZpYSBhbiBpbmxpbmUgY2FsZW5kYXIgY29udHJvbC5cbiAqXG4gKiBJbXBsZW1lbnRzIFtDb250cm9sVmFsdWVBY2Nlc3Nvcl0oaHR0cHM6Ly9hbmd1bGFyLmlvL2FwaS9mb3Jtcy9Db250cm9sVmFsdWVBY2Nlc3NvcikgdG8gc3VwcG9ydCB0d28td2F5IGJpbmRpbmcgd2l0aFxuICogQW5ndWxhciBmb3JtcyB2aWEgdXNhZ2Ugb2YgdGhlIFxcYFsobmdNb2RlbCldXFxgLCBcXGBbZm9ybUNvbnRyb2xdXFxgLCBhbmQgXFxgW2Zvcm1Db250cm9sTmFtZV1cXGAgZGlyZWN0aXZlcy5cbiAqXG4gKiBUaGUgZGF0ZSBhbmQgdGltZSBjb250cm9scyBpbnNpZGUgdGhpcyBjb21wb25lbnQgbGV2ZXJhZ2UgdGhlIHZhbHVlIGFkYXB0ZXIgcGF0dGVybnMgYW5kIHNlcnZpY2VzIG9mIE5HLUJvb3RzdHJhcCdzXG4gKiBbRGF0ZXBpY2tlcl0oaHR0cHM6Ly9uZy1ib290c3RyYXAuZ2l0aHViLmlvLyMvY29tcG9uZW50cy9kYXRlcGlja2VyL292ZXJ2aWV3I2RhdGUtbW9kZWwpIGFuZFxuICogW1RpbWVwaWNrZXJdKGh0dHBzOi8vbmctYm9vdHN0cmFwLmdpdGh1Yi5pby8jL2NvbXBvbmVudHMvdGltZXBpY2tlci9leGFtcGxlcyNhZGFwdGVyKSBjb21wb25lbnRzIHdoZW4gd29ya2luZyB3aXRoIGlucHV0IHZhbHVlcy5cbiAqIFRoaXMgbWVhbnMgdGhhdCBgZGF0ZWAgdmFsdWVzIHdpbGwgYmUgW05nYkRhdGVTdHJ1Y3RdKGh0dHBzOi8vbmctYm9vdHN0cmFwLmdpdGh1Yi5pby8jL2NvbXBvbmVudHMvZGF0ZXBpY2tlci9hcGkjTmdiRGF0ZVN0cnVjdClcbiAqIG9iamVjdHMgYW5kIGB0aW1lYCB2YWx1ZXMgd2lsbCBiZSBbTmdiVGltZVN0cnVjdF0oaHR0cHM6Ly9uZy1ib290c3RyYXAuZ2l0aHViLmlvLyMvY29tcG9uZW50cy90aW1lcGlja2VyL2FwaSNOZ2JUaW1lU3RydWN0KSBvYmplY3RzXG4gKiBieSBkZWZhdWx0LCBhbmQgdGhlIFtOZ2JEYXRlQWRhcHRlcl0oaHR0cHM6Ly9uZy1ib290c3RyYXAuZ2l0aHViLmlvLyMvY29tcG9uZW50cy9kYXRlcGlja2VyL2FwaSNOZ2JEYXRlQWRhcHRlcikgYW5kXG4gKiBbTmdiVGltZUFkYXB0ZXJdKGh0dHBzOi8vbmctYm9vdHN0cmFwLmdpdGh1Yi5pby8jL2NvbXBvbmVudHMvdGltZXBpY2tlci9hcGkjTmdiVGltZUFkYXB0ZXIpIHNlcnZpY2VzIHdpbGwgYmUgdXNlZCB0byBoYW5kbGUgdGhlbSByZXNwZWN0aXZlbHkuXG4gKiBJZiB1c2FnZSBvZiBhbHRlcm5hdGl2ZSBkYXRlIGFuZCB0aW1lIG1vZGVscyBpcyBkZXNpcmVkLCBjb25zdWx0IE5HLUJvb3RzdHJhcCdzIGRvY3VtZW50YXRpb24gZm9yIGRpcmVjdGlvbnMuXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2ltcGRjLWRhdGV0aW1lLXBpY2tlcicsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcbiAgICBOZ2JEYXRlcGlja2VyTW9kdWxlLFxuICAgIE5nYlRpbWVwaWNrZXJNb2R1bGUsXG4gICAgRGF0ZXBpY2tlclRlbXBsYXRlSG9zdENvbXBvbmVudCxcbiAgICBEYXRldGltZVBpY2tlcklucHV0Rm9vdGVyQ29tcG9uZW50LFxuICAgIEltcGRjRm9ybXNNb2R1bGVcbiAgXSxcbiAgdGVtcGxhdGVVcmw6ICcuL2RhdGV0aW1lLXBpY2tlci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2RhdGV0aW1lLXBpY2tlci5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2Rpc2FibGVkJywgJ3RhYkluZGV4J10sXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taG9zdC1tZXRhZGF0YS1wcm9wZXJ0eVxuICBob3N0OiB7XG4gICAgJ1thdHRyLmlkXSc6ICdpZCcsXG4gICAgJ1thdHRyLnRhYmluZGV4XSc6ICd0YWJJbmRleCcsXG4gICAgJ1thdHRyLmFyaWEtcmVxdWlyZWRdJzogJ3JlcXVpcmVkLnRvU3RyaW5nKCknLFxuICAgICdbYXR0ci5hcmlhLWRpc2FibGVkXSc6ICdkaXNhYmxlZC50b1N0cmluZygpJyxcbiAgICAnW2F0dHIuYXJpYS1pbnZhbGlkXSc6ICdlcnJvclN0YXRlJyxcbiAgICAnW2NsYXNzLmlzLWludmFsaWRdJzogJ2Vycm9yU3RhdGUnLFxuICAgICdbY2xhc3MuaW1wZGMtZm9ybS1maWVsZC1jb250cm9sXSc6ICd0cnVlJyxcbiAgICAnW2NsYXNzLmltcGRjLWRhdGV0aW1lLXBpY2tlci0tcmVxdWlyZWRdJzogJ3JlcXVpcmVkJyxcbiAgICAnW2NsYXNzLmltcGRjLWRhdGV0aW1lLXBpY2tlci0tZGlzYWJsZWRdJzogJ2Rpc2FibGVkJyxcbiAgICAnW2NsYXNzLmltcGRjLWRhdGV0aW1lLXBpY2tlci0taW52YWxpZF0nOiAnZXJyb3JTdGF0ZScsXG4gICAgJ1tjbGFzcy5pbXBkYy1kYXRldGltZS1waWNrZXItLWVtcHR5XSc6ICdlbXB0eScsXG4gICAgJyhmb2N1cyknOiAnX29uRm9jdXMoKTsgZm9jdXMoKSdcbiAgfSxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogSW1wZGNGb3JtRmllbGRDb250cm9sLFxuICAgICAgdXNlRXhpc3Rpbmc6IERhdGV0aW1lUGlja2VyQ29tcG9uZW50XG4gICAgfVxuICBdXG59KVxuZXhwb3J0IGNsYXNzIERhdGV0aW1lUGlja2VyQ29tcG9uZW50XG4gIGV4dGVuZHMgX0RhdGV0aW1lUGlja2VyQ29tcG9uZW50QmFzZVxuICBpbXBsZW1lbnRzXG4gICAgQ29udHJvbFZhbHVlQWNjZXNzb3IsXG4gICAgRG9DaGVjayxcbiAgICBPbkNoYW5nZXMsXG4gICAgT25EZXN0cm95LFxuICAgIE9uSW5pdCxcbiAgICBJbXBkY0Zvcm1GaWVsZENvbnRyb2w8SURhdGV0aW1lUGlja2VyVmFsdWU8YW55LCBhbnk+IHwgbnVsbD4sXG4gICAgSUNhblVwZGF0ZUVycm9yU3RhdGUsXG4gICAgSUhhc0Vycm9yU3RhdGVcbntcbiAgcHJpdmF0ZSByZWFkb25seSBfY2hhbmdlRGV0ZWN0b3IgPSBpbmplY3QoQ2hhbmdlRGV0ZWN0b3JSZWYpO1xuICBwcml2YXRlIHJlYWRvbmx5IF9kZXN0cm95UmVmID0gaW5qZWN0KERlc3Ryb3lSZWYpO1xuICBwcml2YXRlIHJlYWRvbmx5IF9ob3N0RWxlbWVudCA9IGluamVjdChFbGVtZW50UmVmKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfbmdiRGF0ZUFkYXB0ZXIgPSBpbmplY3QoTmdiRGF0ZUFkYXB0ZXI8YW55Pik7XG4gIHByaXZhdGUgcmVhZG9ubHkgX3VpZCA9IGBpbXBkYy1kYXRldGltZS1waWNrZXItJHtuYW5vaWQoKX1gO1xuICBwcml2YXRlIF9wcmV2aW91c0NvbnRyb2w/OiBBYnN0cmFjdENvbnRyb2wgfCBudWxsO1xuXG4gIHByb3RlY3RlZCByZWFkb25seSBmb3JtR3JvdXAgPSBpbmplY3QoRm9ybUJ1aWxkZXIpLmdyb3VwKHtcbiAgICBkYXRlOiBuZXcgRm9ybUNvbnRyb2w8YW55PihudWxsKSxcbiAgICB0aW1lOiBuZXcgRm9ybUNvbnRyb2w8YW55PihudWxsKSxcbiAgICB1c2UyNGhyVGltZTogbmV3IEZvcm1Db250cm9sPGJvb2xlYW4+KGZhbHNlLCB7IG5vbk51bGxhYmxlOiB0cnVlIH0pXG4gIH0pO1xuICBwcm90ZWN0ZWQgY3ZhT25DaGFuZ2UgPSAoXzogYW55KSA9PiB7fTtcbiAgcHJvdGVjdGVkIGN2YU9uVG91Y2hlZCA9ICgpID0+IHt9O1xuXG4gIEBWaWV3Q2hpbGQoTmdiRGF0ZXBpY2tlciwgeyBzdGF0aWM6IHRydWUgfSlcbiAgcHJvdGVjdGVkIG5nYkRhdGVwaWNrZXIhOiBOZ2JEYXRlcGlja2VyO1xuXG4gIC8qKlxuICAgKiBBIGNhbGxiYWNrIGZ1bmN0aW9uIHRoYXQgY2FuIGJlIGV2YWx1YXRlZCB0byBkZWNpZGUgaWYgYSBnaXZlbiBkYXRlIGlzIGRpc2FibGVkXG4gICAqIGluIHRoZSBjYWxlbmRhciB2aWV3LlxuICAgKlxuICAgKiBAcGFyYW0gZGF0ZSBBbiBbYE5nYkRhdGVgXShodHRwczovL25nLWJvb3RzdHJhcC5naXRodWIuaW8vIy9jb21wb25lbnRzL2RhdGVwaWNrZXIvYXBpI05nYkRhdGUpIHZhbHVlIGRlc2NyaWJpbmcgdGhlIHNpbmd1bGFyIGRhdGUgYmVpbmcgZXZhbHVhdGVkLlxuICAgKiBAcGFyYW0gY3VycmVudCBUaGUgbW9udGggYW5kIHllYXIgc2VsZWN0ZWQgZm9yIHRoZSBjdXJyZW50IGNhbGVuZGFyIHZpZXcuXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgbWFya0RhdGVEaXNhYmxlZD86IChcbiAgICBkYXRlOiBOZ2JEYXRlU3RydWN0LFxuICAgIGN1cnJlbnQ/OiB7IG1vbnRoOiBudW1iZXI7IHllYXI6IG51bWJlciB9XG4gICkgPT4gYm9vbGVhbjtcblxuICAvKipcbiAgICogVGhlIGVhcmxpZXN0IGFsbG93YWJsZSBkYXRlIGZvciBkaXNwbGF5IG9yIHNlbGVjdGlvbi5cbiAgICpcbiAgICogQGRlZmF1bHQgeyB5ZWFyOiAxOTAwLCBtb250aDogMSwgZGF5OiAxIH1cbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBnZXQgbWluRGF0ZSgpOiBOZ2JEYXRlU3RydWN0IHtcbiAgICByZXR1cm4geyAuLi50aGlzLl9taW5EYXRlIH07XG4gIH1cbiAgcHVibGljIHNldCBtaW5EYXRlKHZhbHVlOiBOZ2JEYXRlU3RydWN0IHwgbnVsbCkge1xuICAgIHRoaXMuX21pbkRhdGUgPSB2YWx1ZSB8fCBERUZBVUxUX01JTl9EQVRFO1xuICB9XG4gIHByaXZhdGUgX21pbkRhdGU6IE5nYkRhdGVTdHJ1Y3QgPSBERUZBVUxUX01JTl9EQVRFO1xuXG4gIC8qKlxuICAgKiBUaGUgbGF0ZXN0IGFsbG93YWJsZSBkYXRlIGZvciBkaXNwbGF5IG9yIHNlbGVjdGlvbi5cbiAgICpcbiAgICogQGRlZmF1bHQgeyB5ZWFyOiAyMDk5LCBtb250aDogMTIsIGRheTogMzEgfVxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIGdldCBtYXhEYXRlKCk6IE5nYkRhdGVTdHJ1Y3Qge1xuICAgIHJldHVybiB7IC4uLnRoaXMuX21heERhdGUgfTtcbiAgfVxuICBwdWJsaWMgc2V0IG1heERhdGUodmFsdWU6IE5nYkRhdGVTdHJ1Y3QgfCBudWxsKSB7XG4gICAgdGhpcy5fbWF4RGF0ZSA9IHZhbHVlIHx8IERFRkFVTFRfTUFYX0RBVEU7XG4gIH1cbiAgcHJpdmF0ZSBfbWF4RGF0ZTogTmdiRGF0ZVN0cnVjdCA9IERFRkFVTFRfTUFYX0RBVEU7XG5cbiAgLyoqXG4gICAqIENvbmZpZ3VyYWJsZSBvcHRpb25zIGZvciBzZXR0aW5nIHRoZSBsYXlvdXQgb2YgdGhlIGRhdGUgYW5kIHRpbWUgY29udHJvbHMgd2l0aGluIHRoZSBjb21wb25lbnQuXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgZ2V0IHRpbWVMYXlvdXQoKTogSVRpbWVPcHRpb25zIHtcbiAgICByZXR1cm4geyAuLi50aGlzLl90aW1lTGF5b3V0IH07XG4gIH1cbiAgcHVibGljIHNldCB0aW1lTGF5b3V0KHZhbHVlOiBQYXJ0aWFsPElUaW1lT3B0aW9ucz4pIHtcbiAgICB0aGlzLl90aW1lTGF5b3V0ID0ge1xuICAgICAgLi4uREVGQVVMVF9USU1FX0xBWU9VVCxcbiAgICAgIC4uLnZhbHVlXG4gICAgfTtcbiAgfVxuICBwcml2YXRlIF90aW1lTGF5b3V0OiBJVGltZU9wdGlvbnMgPSB7IC4uLkRFRkFVTFRfVElNRV9MQVlPVVQgfTtcblxuICAvKipcbiAgICogTGFiZWwgdG8gYmUgZGlzcGxheWVkIHdpdGggdGltZSBjb250cm9scyB0byBhbGxvdyB0aGUgdXNlciB0byBpbnB1dCAyNC1ob3VyIG9yIG1lcmlkaWFuLWJhc2VkIChBTSwgUE0pIHRpbWUuXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgbWVyaWRpYW5Ub2dnbGVMYWJlbDogc3RyaW5nID0gREVGQVVMVF9VU0VfMjRIUl9USU1FX0xBQkVMO1xuXG4gIC8qKlxuICAgKiBTZXQgd2hldGhlciB0byBkaXNwbGF5IGNvbnRyb2xzIGZvciBzZWxlY3RpbmcgYSB0aW1lIHZhbHVlIGluIGFkZGl0aW9uIHRvIHRoZSBkYXRlLlxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIHdpdGhUaW1lID0gZmFsc2U7XG5cbiAgQElucHV0KClcbiAgcHVibGljIG92ZXJyaWRlIGVycm9yU3RhdGVNYXRjaGVyITogRXJyb3JTdGF0ZU1hdGNoZXI7XG5cbiAgLyoqXG4gICAqIEV2ZW50cyBmaXJlIHdoZW4gcmF3IHZhbHVlIG9mIHBpY2tlciBpbnB1dCBjaGFuZ2VzLiBNYWlubHkgZXhpc3RzIHRvIGhhbmRsZVxuICAgKiB0d28td2F5IGJpbmRpbmcgb2YgYHZhbHVlYCBpbnB1dCBwcm9wZXJ0eS5cbiAgICogQGlnbm9yZVxuICAgKi9cbiAgQE91dHB1dCgpXG4gIHB1YmxpYyByZWFkb25seSB2YWx1ZUNoYW5nZTogRXZlbnRFbWl0dGVyPElEYXRldGltZVBpY2tlclZhbHVlPFxuICAgIGFueSxcbiAgICBhbnlcbiAgPiB8IG51bGw+ID0gbmV3IEV2ZW50RW1pdHRlcjxJRGF0ZXRpbWVQaWNrZXJWYWx1ZTxhbnksIGFueT4gfCBudWxsPigpO1xuXG4gIC8qKiBAaWdub3JlICovXG4gIEBPdXRwdXQoKVxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLW91dHB1dC1uYXRpdmVcbiAgcHVibGljIHJlYWRvbmx5IGJsdXIgPSBuZXcgRXZlbnRFbWl0dGVyPEZvY3VzRXZlbnQ+KCk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgX2RlZmF1bHRFcnJvclN0YXRlTWF0Y2hlcjogRXJyb3JTdGF0ZU1hdGNoZXIsXG4gICAgQE9wdGlvbmFsKCkgQEluamVjdChJTVBEQ19GT1JNX1JPT1QpIF9mb3JtUm9vdDogSW1wZGNGb3JtUm9vdCxcbiAgICBAT3B0aW9uYWwoKSBfcGFyZW50Rm9ybTogTmdGb3JtLFxuICAgIEBPcHRpb25hbCgpIF9wYXJlbnRGb3JtR3JvdXA6IEZvcm1Hcm91cERpcmVjdGl2ZSxcbiAgICBAU2VsZigpIEBPcHRpb25hbCgpIG5nQ29udHJvbDogTmdDb250cm9sXG4gICkge1xuICAgIHN1cGVyKFxuICAgICAgX2RlZmF1bHRFcnJvclN0YXRlTWF0Y2hlcixcbiAgICAgIF9mb3JtUm9vdCxcbiAgICAgIF9wYXJlbnRGb3JtLFxuICAgICAgX3BhcmVudEZvcm1Hcm91cCxcbiAgICAgIG5nQ29udHJvbFxuICAgICk7XG5cbiAgICBpZiAodGhpcy5uZ0NvbnRyb2wpIHtcbiAgICAgIHRoaXMubmdDb250cm9sLnZhbHVlQWNjZXNzb3IgPSB0aGlzO1xuICAgIH1cblxuICAgIHRoaXMuaWQgPSB0aGlzLmlkO1xuICB9XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgcHVibGljIGZvY3VzKCk6IHZvaWQge1xuICAgIHRoaXMubmdiRGF0ZXBpY2tlci5mb2N1cygpO1xuICB9XG5cbiAgLyogTGlmZWN5Y2xlIEhvb2tzICovXG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgcHVibGljIG5nRG9DaGVjaygpOiB2b2lkIHtcbiAgICBjb25zdCBuZ0NvbnRyb2wgPSB0aGlzLm5nQ29udHJvbDtcblxuICAgIGlmICghbmdDb250cm9sKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuX3ByZXZpb3VzQ29udHJvbCAhPT0gbmdDb250cm9sLmNvbnRyb2wpIHtcbiAgICAgIGlmIChcbiAgICAgICAgdGhpcy5fcHJldmlvdXNDb250cm9sICE9PSB1bmRlZmluZWQgJiZcbiAgICAgICAgbmdDb250cm9sLmRpc2FibGVkICE9PSBudWxsICYmXG4gICAgICAgIG5nQ29udHJvbC5kaXNhYmxlZCAhPT0gdGhpcy5kaXNhYmxlZFxuICAgICAgKSB7XG4gICAgICAgIHRoaXMuZGlzYWJsZWQgPSBuZ0NvbnRyb2w/LmRpc2FibGVkO1xuICAgICAgfVxuXG4gICAgICB0aGlzLl9wcmV2aW91c0NvbnRyb2wgPSBuZ0NvbnRyb2wuY29udHJvbDtcbiAgICB9XG5cbiAgICB0aGlzLnVwZGF0ZUVycm9yU3RhdGUoKTtcbiAgfVxuXG4gIC8qKiBAaWdub3JlICovXG4gIHB1YmxpYyBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgLy8gTWFuYWdpbmcgZGlzYWJsZWQgc3RhdGUgaXMgaGFuZGxlZCB2aWEgdGhlIGBtaXhpbkRpc2FibGVkYCBtaXhpbi9nZW5lcmF0b3IsIGJ1dCB3ZSBzdGlsbCBuZWVkIHRvIHNpZ25hbFxuICAgIC8vIHRvIHRoZSBwYXJlbnQgZm9ybSBmaWVsZCBzbyBpdCBjYW4gcnVuIGNoYW5nZSBkZXRlY3Rpb24gd2hlbiBkaXNhYmxlZCBzdGF0ZSBpcyBjaGFuZ2VkLlxuICAgIGlmIChjaGFuZ2VzWydkaXNhYmxlZCddKSB7XG4gICAgICB0aGlzLnN0YXRlQ2hhbmdlcy5uZXh0KCk7XG4gICAgfVxuICB9XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuc3RhdGVDaGFuZ2VzLmNvbXBsZXRlKCk7XG4gIH1cblxuICAvKiogQGlnbm9yZSAqL1xuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5mb3JtR3JvdXAudmFsdWVDaGFuZ2VzXG4gICAgICAucGlwZSh0YWtlVW50aWxEZXN0cm95ZWQodGhpcy5fZGVzdHJveVJlZiksIGRlYm91bmNlVGltZSgxMDApKVxuICAgICAgLnN1YnNjcmliZShmb3JtVmFsdWUgPT4ge1xuICAgICAgICBjb25zdCBjaGFuZ2VWYWx1ZSA9IHRoaXMuX2dldFZhbHVlRnJvbUZvcm1Nb2RlbChmb3JtVmFsdWUpO1xuICAgICAgICB0aGlzLmN2YU9uQ2hhbmdlKGNoYW5nZVZhbHVlKTtcbiAgICAgICAgdGhpcy52YWx1ZUNoYW5nZS5lbWl0KGNoYW5nZVZhbHVlKTtcbiAgICAgICAgdGhpcy5jdmFPblRvdWNoZWQoKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgLyogQ29udHJvbFZhbHVlQWNjZXNzb3IgKi9cblxuICAvKiogQGlnbm9yZSAqL1xuICBwdWJsaWMgd3JpdGVWYWx1ZShvYmo6IElEYXRldGltZVBpY2tlclZhbHVlPGFueSwgYW55PiB8IGFueSk6IHZvaWQge1xuICAgIGxldCBuZXdWYWx1ZTogUGFydGlhbDxJRGF0ZXRpbWVQaWNrZXJWYWx1ZT4gPSB7fTtcbiAgICBpZiAob2JqICYmICdkYXRlJyBpbiBvYmopIHtcbiAgICAgIG5ld1ZhbHVlID0ge1xuICAgICAgICAuLi5uZXdWYWx1ZSxcbiAgICAgICAgZGF0ZTogb2JqLmRhdGVcbiAgICAgIH07XG4gICAgfVxuXG4gICAgaWYgKHRoaXMud2l0aFRpbWUgJiYgb2JqICYmICd0aW1lJyBpbiBvYmopIHtcbiAgICAgIG5ld1ZhbHVlID0ge1xuICAgICAgICAuLi5uZXdWYWx1ZSxcbiAgICAgICAgdGltZTogb2JqLnRpbWVcbiAgICAgIH07XG4gICAgfVxuXG4gICAgdGhpcy5mb3JtR3JvdXAucGF0Y2hWYWx1ZShuZXdWYWx1ZSwgeyBlbWl0RXZlbnQ6IGZhbHNlIH0pO1xuICAgIGlmICgnZGF0ZScgaW4gbmV3VmFsdWUpIHtcbiAgICAgIHRoaXMubmdiRGF0ZXBpY2tlci5mb2N1c0RhdGUoXG4gICAgICAgIHRoaXMuX25nYkRhdGVBZGFwdGVyLmZyb21Nb2RlbChuZXdWYWx1ZS5kYXRlKVxuICAgICAgKTtcbiAgICB9XG5cbiAgICB0aGlzLnN0YXRlQ2hhbmdlcy5uZXh0KCk7XG4gIH1cblxuICAvKiogQGlnbm9yZSAqL1xuICBwdWJsaWMgcmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KTogdm9pZCB7XG4gICAgdGhpcy5jdmFPbkNoYW5nZSA9IGZuO1xuICB9XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgcHVibGljIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLmN2YU9uVG91Y2hlZCA9IGZuO1xuICB9XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgcHVibGljIHNldERpc2FibGVkU3RhdGU/KGlzRGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICB0aGlzLmRpc2FibGVkID0gaXNEaXNhYmxlZDtcblxuICAgIGlmIChpc0Rpc2FibGVkKSB7XG4gICAgICB0aGlzLmZvcm1Hcm91cC5kaXNhYmxlKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuZm9ybUdyb3VwLmVuYWJsZSgpO1xuICAgIH1cbiAgfVxuXG4gIC8qIEltcGRjRm9ybUZpZWxkQ29udHJvbCAqL1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBnZXQgdmFsdWUoKTogSURhdGV0aW1lUGlja2VyVmFsdWU8YW55LCBhbnk+IHwgbnVsbCB7XG4gICAgcmV0dXJuIHRoaXMuX2dldFZhbHVlRnJvbUZvcm1Nb2RlbCh0aGlzLmZvcm1Hcm91cC52YWx1ZSk7XG4gIH1cbiAgcHVibGljIHNldCB2YWx1ZSh2YWx1ZTogSURhdGV0aW1lUGlja2VyVmFsdWU8YW55LCBhbnk+IHwgbnVsbCkge1xuICAgIHRoaXMud3JpdGVWYWx1ZSh2YWx1ZSk7XG4gIH1cblxuICBASW5wdXQoKVxuICBwdWJsaWMgZ2V0IGlkKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuX2lkO1xuICB9XG4gIHB1YmxpYyBzZXQgaWQodmFsdWU6IHN0cmluZykge1xuICAgIHRoaXMuX2lkID0gdmFsdWUgfHwgdGhpcy5fdWlkO1xuICAgIHRoaXMuc3RhdGVDaGFuZ2VzLm5leHQoKTtcbiAgfVxuICBwcm90ZWN0ZWQgX2lkITogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBVc2VkIHRvIHNldCByZXF1aXJlZG5lc3Mgb2YgY29udHJvbCBpbiBhIHRlbXBsYXRlLWJhc2VkIG1hbm5lcjtcbiAgICogbm90IG5lY2Vzc2FyeSB3aGVuIHVzaW5nIHRoZSBBbmd1bGFyIHJlYWN0aXZlIGZvcm1zIEFQSSBhbmQgYHJlcXVpcmVkYCB2YWxpZGF0b3IuXG4gICAqXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSlcbiAgcHVibGljIGdldCByZXF1aXJlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gKFxuICAgICAgdGhpcy5fcmVxdWlyZWQgPz9cbiAgICAgIHRoaXMubmdDb250cm9sPy5jb250cm9sPy5oYXNWYWxpZGF0b3IoVmFsaWRhdG9ycy5yZXF1aXJlZCkgPz9cbiAgICAgIGZhbHNlXG4gICAgKTtcbiAgfVxuICBwdWJsaWMgc2V0IHJlcXVpcmVkKHZhbHVlOiBib29sZWFuKSB7XG4gICAgdGhpcy5fcmVxdWlyZWQgPSB2YWx1ZTtcbiAgICB0aGlzLnN0YXRlQ2hhbmdlcy5uZXh0KCk7XG4gIH1cbiAgcHJpdmF0ZSBfcmVxdWlyZWQ6IGJvb2xlYW4gfCB1bmRlZmluZWQ7XG5cbiAgcHVibGljIGdldCBmb2N1c2VkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9mb2N1c2VkO1xuICB9XG4gIHByb3RlY3RlZCBfZm9jdXNlZCA9IGZhbHNlO1xuXG4gIHB1YmxpYyByZWFkb25seSBjb250cm9sVHlwZTogc3RyaW5nID0gJ2ltcGRjLWRhdGV0aW1lLXBpY2tlcic7XG4gIHB1YmxpYyByZWFkb25seSBzdXBwb3J0c0FmZml4ZXM6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAvKiBJbnRlcm5hbHMgKi9cblxuICBwcm90ZWN0ZWQgZ2V0IHVzZTI0aHJUaW1lKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmZvcm1Hcm91cC5nZXRSYXdWYWx1ZSgpLnVzZTI0aHJUaW1lO1xuICB9XG5cbiAgcHJvdGVjdGVkIGdldCB1c2UyNGhyVGltZUxhYmVsVGV4dCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLm1lcmlkaWFuVG9nZ2xlTGFiZWw/LnRyaW0oKSB8fCBERUZBVUxUX1VTRV8yNEhSX1RJTUVfTEFCRUw7XG4gIH1cblxuICBwcm90ZWN0ZWQgaGFuZGxlRm9jdXNPdXQoZXZ0OiBGb2N1c0V2ZW50KTogdm9pZCB7XG4gICAgaWYgKFxuICAgICAgIWV2dC5yZWxhdGVkVGFyZ2V0IHx8XG4gICAgICAhdGhpcy5faG9zdEVsZW1lbnQubmF0aXZlRWxlbWVudC5jb250YWlucyhldnQucmVsYXRlZFRhcmdldClcbiAgICApIHtcbiAgICAgIHRoaXMuX29uQmx1cihldnQpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX2dldFZhbHVlRnJvbUZvcm1Nb2RlbChcbiAgICBmb3JtVmFsdWU6IFBhcnRpYWw8eyBkYXRlOiBhbnk7IHRpbWU6IGFueTsgdXNlMjRoclRpbWU6IGFueSB9PlxuICApOiBJRGF0ZXRpbWVQaWNrZXJWYWx1ZTxhbnksIGFueT4gfCBudWxsIHtcbiAgICBpZiAoIWZvcm1WYWx1ZS5kYXRlICYmICFmb3JtVmFsdWUudGltZSkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgbGV0IHJlc3VsdDogSURhdGV0aW1lUGlja2VyVmFsdWU8YW55LCBhbnk+ID0ge1xuICAgICAgZGF0ZTogZm9ybVZhbHVlLmRhdGVcbiAgICB9O1xuXG4gICAgaWYgKHRoaXMud2l0aFRpbWUpIHtcbiAgICAgIHJlc3VsdCA9IHtcbiAgICAgICAgLi4ucmVzdWx0LFxuICAgICAgICB0aW1lOiBmb3JtVmFsdWUudGltZVxuICAgICAgfTtcbiAgICB9XG5cbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG5cbiAgcHJpdmF0ZSBfZGF0ZUlzT3V0c2lkZUN1cnJlbnRNb250aChcbiAgICBkYXRlOiBOZ2JEYXRlU3RydWN0LFxuICAgIGN1cnJlbnQ/OiB7IG1vbnRoOiBudW1iZXI7IHllYXI6IG51bWJlciB9XG4gICk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhIWN1cnJlbnQgJiYgZGF0ZS5tb250aCAhPT0gY3VycmVudC5tb250aDtcbiAgfVxuXG4gIHByb3RlY3RlZCByZWFkb25seSBtYXJrRGF0ZURpc2FibGVkRm4gPSAoXG4gICAgZGF0ZTogTmdiRGF0ZVN0cnVjdCxcbiAgICBjdXJyZW50PzogeyBtb250aDogbnVtYmVyOyB5ZWFyOiBudW1iZXIgfVxuICApID0+IHtcbiAgICByZXR1cm4gKFxuICAgICAgdGhpcy5fZGF0ZUlzT3V0c2lkZUN1cnJlbnRNb250aChkYXRlLCBjdXJyZW50KSB8fFxuICAgICAgKCEhdGhpcy5tYXJrRGF0ZURpc2FibGVkICYmIHRoaXMubWFya0RhdGVEaXNhYmxlZChkYXRlLCBjdXJyZW50KSlcbiAgICApO1xuICB9O1xuXG4gIHByb3RlY3RlZCBfb25Gb2N1cygpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuZGlzYWJsZWQpIHtcbiAgICAgIHRoaXMuX2ZvY3VzZWQgPSB0cnVlO1xuICAgICAgdGhpcy5zdGF0ZUNoYW5nZXMubmV4dCgpO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBfb25CbHVyKGZvY3VzRXZlbnQ6IEZvY3VzRXZlbnQpOiB2b2lkIHtcbiAgICB0aGlzLl9mb2N1c2VkID0gZmFsc2U7XG5cbiAgICBpZiAoIXRoaXMuZGlzYWJsZWQpIHtcbiAgICAgIHRoaXMuY3ZhT25Ub3VjaGVkKCk7XG4gICAgICB0aGlzLmJsdXIuZW1pdChmb2N1c0V2ZW50KTtcbiAgICAgIHRoaXMuX2NoYW5nZURldGVjdG9yLm1hcmtGb3JDaGVjaygpO1xuICAgICAgdGhpcy5zdGF0ZUNoYW5nZXMubmV4dCgpO1xuICAgIH1cbiAgfVxufVxuIiwiPGltcGRjLWRhdGVwaWNrZXItdGVtcGxhdGUtaG9zdCAjdGVtcGxhdGVIb3N0PjwvaW1wZGMtZGF0ZXBpY2tlci10ZW1wbGF0ZS1ob3N0PlxuPGRpdlxuICBbZm9ybUdyb3VwXT1cImZvcm1Hcm91cFwiXG4gIGNsYXNzPVwiZC1mbGV4XCJcbiAgW25nQ2xhc3NdPVwie1xuICAgICdmbGV4LWNvbHVtbic6IHdpdGhUaW1lICYmIHRpbWVMYXlvdXQubGF5b3V0ID09PSAnc3RhY2tlZCdcbiAgfVwiXG4gIChmb2N1c291dCk9XCJoYW5kbGVGb2N1c091dCgkZXZlbnQpXCI+XG4gIDxuZ2ItZGF0ZXBpY2tlclxuICAgIGNsYXNzPVwiaW1wZGMtZGF0ZXRpbWUtcGlja2VyLS1kYXRlcGlja2VyXCJcbiAgICBmb3JtQ29udHJvbE5hbWU9XCJkYXRlXCJcbiAgICBbZGF5VGVtcGxhdGVdPVwidGVtcGxhdGVIb3N0LmRheVRlbXBsYXRlUmVmXCJcbiAgICBbY29udGVudFRlbXBsYXRlXT1cInRlbXBsYXRlSG9zdC5jb250ZW50VGVtcGxhdGVSZWZcIlxuICAgIFtzaG93V2Vla051bWJlcnNdPVwiZmFsc2VcIlxuICAgIG91dHNpZGVEYXlzPVwidmlzaWJsZVwiXG4gICAgd2Vla2RheXM9XCJzaG9ydFwiXG4gICAgW21hcmtEaXNhYmxlZF09XCJtYXJrRGF0ZURpc2FibGVkRm5cIlxuICAgIFttaW5EYXRlXT1cIm1pbkRhdGVcIlxuICAgIFttYXhEYXRlXT1cIm1heERhdGVcIiAvPlxuICBAaWYgKHdpdGhUaW1lKSB7XG4gICAgPGRpdlxuICAgICAgY2xhc3M9XCJpbXBkYy1kYXRldGltZS1waWNrZXItLXRpbWVwaWNrZXIgZC1mbGV4IGZsZXgtY29sdW1uIGdhcC00IHAtNCB3LTEwMFwiXG4gICAgICBbbmdDbGFzc109XCJ7XG4gICAgICAgICdib3JkZXItMCc6ICF0aW1lTGF5b3V0LmJvcmRlcixcbiAgICAgICAgJ2JvcmRlci1ncmF5LTIwMCc6IHRpbWVMYXlvdXQuYm9yZGVyLFxuICAgICAgICAnbXQtMic6IHRpbWVMYXlvdXQubGF5b3V0ID09PSAnc3RhY2tlZCcsXG4gICAgICAgICdib3JkZXItdG9wJzogdGltZUxheW91dC5ib3JkZXIgJiYgdGltZUxheW91dC5sYXlvdXQgPT09ICdzdGFja2VkJyxcbiAgICAgICAgJ21zLTInOiB0aW1lTGF5b3V0LmxheW91dCA9PT0gJ2lubGluZScsXG4gICAgICAgICdib3JkZXItc3RhcnQnOiB0aW1lTGF5b3V0LmJvcmRlciAmJiB0aW1lTGF5b3V0LmxheW91dCA9PT0gJ2lubGluZSdcbiAgICAgIH1cIj5cbiAgICAgIDxpbXBkYy1jaGVja2JveFxuICAgICAgICBbbGFiZWxdPVwidXNlMjRoclRpbWVMYWJlbFRleHRcIlxuICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJ1c2UyNGhyVGltZVwiXG4gICAgICAgIFtpc1N3aXRjaF09XCJ0cnVlXCJcbiAgICAgICAgbGF5b3V0PVwiY2hlY2stZW5kXCIgLz5cbiAgICAgIDxuZ2ItdGltZXBpY2tlclxuICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJ0aW1lXCJcbiAgICAgICAgW21lcmlkaWFuXT1cIiF1c2UyNGhyVGltZVwiXG4gICAgICAgIFtzZWNvbmRzXT1cImZhbHNlXCJcbiAgICAgICAgW3NwaW5uZXJzXT1cImZhbHNlXCJcbiAgICAgICAgc2l6ZT1cIm1lZGl1bVwiPjwvbmdiLXRpbWVwaWNrZXI+XG4gICAgPC9kaXY+XG4gIH1cbjwvZGl2PlxuIl19
|