@ascentgl/ads-ui 0.0.16 → 0.0.18
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/esm2022/lib/components/buttons/button/button.component.mjs +3 -5
- package/esm2022/lib/components/card/card.component.mjs +17 -7
- package/esm2022/lib/components/divider/divider.component.mjs +4 -9
- package/esm2022/lib/components/error-page/error-page.component.mjs +1 -1
- package/esm2022/lib/components/expansion-panel/expansion-panel.component.mjs +2 -2
- package/esm2022/lib/components/form-fields/common/input.tooltip.component.mjs +3 -3
- package/esm2022/lib/components/form-fields/datepickers/date-picker/datepicker.component.mjs +3 -3
- package/esm2022/lib/components/form-fields/datepickers/datetime-picker/datetimepicker.component.mjs +3 -3
- package/esm2022/lib/components/form-fields/datepickers/time-picker/timepicker.component.mjs +3 -3
- package/esm2022/lib/components/form-fields/dropdowns/dropdown/dropdown.component.mjs +3 -3
- package/esm2022/lib/components/form-fields/dropdowns/input-dropdown/input-dropdown.component.mjs +3 -3
- package/esm2022/lib/components/form-fields/dropdowns/multi-select-dropdown/multi-select-dropdown.component.mjs +3 -3
- package/esm2022/lib/components/form-fields/search-fields/search-dropdown/search-dropdown.component.mjs +3 -3
- package/esm2022/lib/components/form-fields/search-fields/search-input/search-input.component.mjs +3 -3
- package/esm2022/lib/components/form-fields/selection-fields/checkbox/checkbox.component.mjs +3 -3
- package/esm2022/lib/components/form-fields/selection-fields/radio-button/radio-button.component.mjs +3 -3
- package/esm2022/lib/components/form-fields/selection-fields/slide-toggle/slide-toggle.component.mjs +3 -3
- package/esm2022/lib/components/modal/modal.component.mjs +1 -1
- package/esm2022/lib/components/nav-bar/scms-side-nav-bar/scms-side-nav-bar.component.mjs +3 -3
- package/esm2022/lib/components/nav-bar/side-nav-bar/side-nav-bar.component.mjs +3 -3
- package/esm2022/lib/components/snackbars/snackbar/snackbar.component.mjs +1 -1
- package/esm2022/lib/components/tags/create-tag/create-tag.component.mjs +1 -1
- package/fesm2022/ascentgl-ads-ui.mjs +53 -51
- package/fesm2022/ascentgl-ads-ui.mjs.map +1 -1
- package/lib/components/buttons/button/button.component.d.ts +1 -3
- package/lib/components/card/card.component.d.ts +7 -3
- package/lib/components/divider/divider.component.d.ts +2 -3
- package/package.json +23 -29
- package/esm2022/src/lib/components/divider/ascentgl-ads-ui-src-lib-components-divider.mjs +0 -5
- package/esm2022/src/lib/components/divider/divider.component.mjs +0 -43
- package/esm2022/src/lib/components/divider/divider.module.mjs +0 -18
- package/esm2022/src/lib/components/divider/public-api.mjs +0 -3
- package/fesm2022/ascentgl-ads-ui-src-lib-components-divider.mjs +0 -65
- package/fesm2022/ascentgl-ads-ui-src-lib-components-divider.mjs.map +0 -1
- package/src/lib/components/divider/divider.component.d.ts +0 -26
- package/src/lib/components/divider/divider.module.d.ts +0 -8
- package/src/lib/components/divider/index.d.ts +0 -5
- package/src/lib/components/divider/public-api.d.ts +0 -2
|
@@ -28,10 +28,10 @@ export class AdsExpansionPanelComponent {
|
|
|
28
28
|
this.registry.register([adsIconChevronDown, adsIconChevronUp]);
|
|
29
29
|
}
|
|
30
30
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: AdsExpansionPanelComponent, deps: [{ token: i1.AdsIconRegistry }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
31
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.1.1", type: AdsExpansionPanelComponent, selector: "ads-expansion-panel", inputs: { id: { classPropertyName: "id", publicName: "id", isSignal: true, isRequired: false, transformFunction: null }, header: { classPropertyName: "header", publicName: "header", isSignal: true, isRequired: false, transformFunction: null }, headerTemplate: { classPropertyName: "headerTemplate", publicName: "headerTemplate", isSignal: true, isRequired: false, transformFunction: null }, headerTemplateData: { classPropertyName: "headerTemplateData", publicName: "headerTemplateData", isSignal: true, isRequired: false, transformFunction: null }, isExpanded: { classPropertyName: "isExpanded", publicName: "isExpanded", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, width: { classPropertyName: "width", publicName: "width", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "<mat-expansion-panel [expanded]=\"isExpanded()\" [ngStyle]=\"{ width: width() }\" #panel [disabled]=\"disabled()\">\n <mat-expansion-panel-header>\n <mat-panel-title>\n @if (!!headerTemplate()) {\n <ng-container *ngTemplateOutlet=\"headerTemplate()!; context: { data: headerTemplateData() }\" />\n } @else {\n {{ header() }}\n }\n </mat-panel-title>\n <mat-panel-description>\n @if (panel.expanded) {\n <ads-icon size=\"xs\" name=\"chevron_up\" theme=\"iconPrimary\" />\n } @else {\n <ads-icon size=\"xs\" name=\"chevron_down\" theme=\"iconPrimary\" />\n }\n </mat-panel-description>\n </mat-expansion-panel-header>\n <ng-content />\n</mat-expansion-panel>\n", styles: [".mat-expansion-panel{--mat-expansion-container-shape: 5px;--mat-expansion-container-background-color: var(--color-white);--mat-expansion-container-text-color: var(--color-medium);box-shadow:none!important;border:1px solid var(--color-light)}.mat-expansion-panel ::ng-deep .mat-expansion-panel-header{--mat-expansion-header-collapsed-state-height: unset;min-height:24px;height:auto;padding:24px}.mat-expansion-panel ::ng-deep .mat-expansion-panel-header mat-panel-title{--mat-expansion-header-text-color: var(--color-dark);font-size:1.25rem;line-height:26px;font-weight:600;flex-basis:auto}.mat-expansion-panel ::ng-deep .mat-expansion-panel-header mat-panel-description{margin:0;justify-content:end;flex-basis:auto}.mat-expansion-panel ::ng-deep .mat-expansion-panel-header .mat-expansion-indicator{display:none}.mat-expansion-panel ::ng-deep .mat-expansion-panel-header .mat-expansion-panel-body{--mat-expansion-container-text-size: font-size(text-base);line-height:21px}.mat-expansion-panel .mat-expansion-panel-header[aria-disabled=true]{background-color:var(--color-muted)}.mat-expansion-panel .mat-expansion-panel-header[aria-disabled=true] .mat-expansion-panel-header-title{color:var(--color-medium)}\n"], dependencies: [{ kind: "directive", type: i2.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: i1.AdsIconComponent, selector: "ads-icon", inputs: ["size", "name", "color", "theme", "stroke"] }, { kind: "component", type: i3.MatExpansionPanel, selector: "mat-expansion-panel", inputs: ["hideToggle", "togglePosition"], outputs: ["afterExpand", "afterCollapse"], exportAs: ["matExpansionPanel"] }, { kind: "directive", type: i3.MatExpansionPanelTitle, selector: "mat-panel-title" }, { kind: "component", type: i3.MatExpansionPanelHeader, selector: "mat-expansion-panel-header", inputs: ["expandedHeight", "collapsedHeight", "tabIndex"] }, { kind: "directive", type: i3.MatExpansionPanelDescription, selector: "mat-panel-description" }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }] }); }
|
|
31
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.1.1", type: AdsExpansionPanelComponent, selector: "ads-expansion-panel", inputs: { id: { classPropertyName: "id", publicName: "id", isSignal: true, isRequired: false, transformFunction: null }, header: { classPropertyName: "header", publicName: "header", isSignal: true, isRequired: false, transformFunction: null }, headerTemplate: { classPropertyName: "headerTemplate", publicName: "headerTemplate", isSignal: true, isRequired: false, transformFunction: null }, headerTemplateData: { classPropertyName: "headerTemplateData", publicName: "headerTemplateData", isSignal: true, isRequired: false, transformFunction: null }, isExpanded: { classPropertyName: "isExpanded", publicName: "isExpanded", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, width: { classPropertyName: "width", publicName: "width", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "<mat-expansion-panel [expanded]=\"isExpanded()\" [ngStyle]=\"{ width: width() }\" #panel [disabled]=\"disabled()\">\n <mat-expansion-panel-header>\n <mat-panel-title>\n @if (!!headerTemplate()) {\n <ng-container *ngTemplateOutlet=\"headerTemplate()!; context: { data: headerTemplateData() }\" />\n } @else {\n {{ header() }}\n }\n </mat-panel-title>\n <mat-panel-description>\n @if (panel.expanded) {\n <ads-icon size=\"xs\" name=\"chevron_up\" theme=\"iconPrimary\" />\n } @else {\n <ads-icon size=\"xs\" name=\"chevron_down\" theme=\"iconPrimary\" />\n }\n </mat-panel-description>\n </mat-expansion-panel-header>\n <ng-content />\n</mat-expansion-panel>\n", styles: [".mat-expansion-panel{--mat-expansion-container-shape: 5px;--mat-expansion-container-background-color: var(--color-white);--mat-expansion-container-text-color: var(--color-medium);--mat-expansion-container-text-size: font-size(text-base);box-shadow:none!important;border:1px solid var(--color-light)}.mat-expansion-panel ::ng-deep .mat-expansion-panel-header{--mat-expansion-header-collapsed-state-height: unset;min-height:24px;height:auto;padding:24px}.mat-expansion-panel ::ng-deep .mat-expansion-panel-header.mat-expanded{padding-bottom:8px}.mat-expansion-panel ::ng-deep .mat-expansion-panel-header mat-panel-title{--mat-expansion-header-text-color: var(--color-dark);font-size:1.25rem;line-height:26px;font-weight:600;flex-basis:auto}.mat-expansion-panel ::ng-deep .mat-expansion-panel-header mat-panel-description{margin:0;justify-content:end;flex-basis:auto}.mat-expansion-panel ::ng-deep .mat-expansion-panel-header .mat-expansion-indicator{display:none}.mat-expansion-panel ::ng-deep .mat-expansion-panel-header .mat-expansion-panel-body{--mat-expansion-container-text-size: font-size(text-base);line-height:21px}.mat-expansion-panel .mat-expansion-panel-header[aria-disabled=true]{background-color:var(--color-muted)}.mat-expansion-panel .mat-expansion-panel-header[aria-disabled=true] .mat-expansion-panel-header-title{color:var(--color-medium)}\n"], dependencies: [{ kind: "directive", type: i2.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: i1.AdsIconComponent, selector: "ads-icon", inputs: ["size", "name", "color", "theme", "stroke"] }, { kind: "component", type: i3.MatExpansionPanel, selector: "mat-expansion-panel", inputs: ["hideToggle", "togglePosition"], outputs: ["afterExpand", "afterCollapse"], exportAs: ["matExpansionPanel"] }, { kind: "directive", type: i3.MatExpansionPanelTitle, selector: "mat-panel-title" }, { kind: "component", type: i3.MatExpansionPanelHeader, selector: "mat-expansion-panel-header", inputs: ["expandedHeight", "collapsedHeight", "tabIndex"] }, { kind: "directive", type: i3.MatExpansionPanelDescription, selector: "mat-panel-description" }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }] }); }
|
|
32
32
|
}
|
|
33
33
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: AdsExpansionPanelComponent, decorators: [{
|
|
34
34
|
type: Component,
|
|
35
|
-
args: [{ selector: 'ads-expansion-panel', template: "<mat-expansion-panel [expanded]=\"isExpanded()\" [ngStyle]=\"{ width: width() }\" #panel [disabled]=\"disabled()\">\n <mat-expansion-panel-header>\n <mat-panel-title>\n @if (!!headerTemplate()) {\n <ng-container *ngTemplateOutlet=\"headerTemplate()!; context: { data: headerTemplateData() }\" />\n } @else {\n {{ header() }}\n }\n </mat-panel-title>\n <mat-panel-description>\n @if (panel.expanded) {\n <ads-icon size=\"xs\" name=\"chevron_up\" theme=\"iconPrimary\" />\n } @else {\n <ads-icon size=\"xs\" name=\"chevron_down\" theme=\"iconPrimary\" />\n }\n </mat-panel-description>\n </mat-expansion-panel-header>\n <ng-content />\n</mat-expansion-panel>\n", styles: [".mat-expansion-panel{--mat-expansion-container-shape: 5px;--mat-expansion-container-background-color: var(--color-white);--mat-expansion-container-text-color: var(--color-medium);box-shadow:none!important;border:1px solid var(--color-light)}.mat-expansion-panel ::ng-deep .mat-expansion-panel-header{--mat-expansion-header-collapsed-state-height: unset;min-height:24px;height:auto;padding:24px}.mat-expansion-panel ::ng-deep .mat-expansion-panel-header mat-panel-title{--mat-expansion-header-text-color: var(--color-dark);font-size:1.25rem;line-height:26px;font-weight:600;flex-basis:auto}.mat-expansion-panel ::ng-deep .mat-expansion-panel-header mat-panel-description{margin:0;justify-content:end;flex-basis:auto}.mat-expansion-panel ::ng-deep .mat-expansion-panel-header .mat-expansion-indicator{display:none}.mat-expansion-panel ::ng-deep .mat-expansion-panel-header .mat-expansion-panel-body{--mat-expansion-container-text-size: font-size(text-base);line-height:21px}.mat-expansion-panel .mat-expansion-panel-header[aria-disabled=true]{background-color:var(--color-muted)}.mat-expansion-panel .mat-expansion-panel-header[aria-disabled=true] .mat-expansion-panel-header-title{color:var(--color-medium)}\n"] }]
|
|
35
|
+
args: [{ selector: 'ads-expansion-panel', template: "<mat-expansion-panel [expanded]=\"isExpanded()\" [ngStyle]=\"{ width: width() }\" #panel [disabled]=\"disabled()\">\n <mat-expansion-panel-header>\n <mat-panel-title>\n @if (!!headerTemplate()) {\n <ng-container *ngTemplateOutlet=\"headerTemplate()!; context: { data: headerTemplateData() }\" />\n } @else {\n {{ header() }}\n }\n </mat-panel-title>\n <mat-panel-description>\n @if (panel.expanded) {\n <ads-icon size=\"xs\" name=\"chevron_up\" theme=\"iconPrimary\" />\n } @else {\n <ads-icon size=\"xs\" name=\"chevron_down\" theme=\"iconPrimary\" />\n }\n </mat-panel-description>\n </mat-expansion-panel-header>\n <ng-content />\n</mat-expansion-panel>\n", styles: [".mat-expansion-panel{--mat-expansion-container-shape: 5px;--mat-expansion-container-background-color: var(--color-white);--mat-expansion-container-text-color: var(--color-medium);--mat-expansion-container-text-size: font-size(text-base);box-shadow:none!important;border:1px solid var(--color-light)}.mat-expansion-panel ::ng-deep .mat-expansion-panel-header{--mat-expansion-header-collapsed-state-height: unset;min-height:24px;height:auto;padding:24px}.mat-expansion-panel ::ng-deep .mat-expansion-panel-header.mat-expanded{padding-bottom:8px}.mat-expansion-panel ::ng-deep .mat-expansion-panel-header mat-panel-title{--mat-expansion-header-text-color: var(--color-dark);font-size:1.25rem;line-height:26px;font-weight:600;flex-basis:auto}.mat-expansion-panel ::ng-deep .mat-expansion-panel-header mat-panel-description{margin:0;justify-content:end;flex-basis:auto}.mat-expansion-panel ::ng-deep .mat-expansion-panel-header .mat-expansion-indicator{display:none}.mat-expansion-panel ::ng-deep .mat-expansion-panel-header .mat-expansion-panel-body{--mat-expansion-container-text-size: font-size(text-base);line-height:21px}.mat-expansion-panel .mat-expansion-panel-header[aria-disabled=true]{background-color:var(--color-muted)}.mat-expansion-panel .mat-expansion-panel-header[aria-disabled=true] .mat-expansion-panel-header-title{color:var(--color-medium)}\n"] }]
|
|
36
36
|
}], ctorParameters: () => [{ type: i1.AdsIconRegistry }] });
|
|
37
37
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhwYW5zaW9uLXBhbmVsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYWRzLXVpL3NyYy9saWIvY29tcG9uZW50cy9leHBhbnNpb24tcGFuZWwvZXhwYW5zaW9uLXBhbmVsLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYWRzLXVpL3NyYy9saWIvY29tcG9uZW50cy9leHBhbnNpb24tcGFuZWwvZXhwYW5zaW9uLXBhbmVsLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFlLE1BQU0sZUFBZSxDQUFDO0FBQzlELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNqRixPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sdUNBQXVDLENBQUM7Ozs7O0FBUS9ELE1BQU0sT0FBTywwQkFBMEI7SUFDckMsWUFBb0IsUUFBeUI7UUFBekIsYUFBUSxHQUFSLFFBQVEsQ0FBaUI7UUFJN0MsY0FBYztRQUNLLFdBQU0sR0FBRyxNQUFNLENBQUM7UUFFbkMsZ0NBQWdDO1FBQ2hDLE9BQUUsR0FBRyxLQUFLLENBQVMsRUFBRSxDQUFDLENBQUM7UUFFdkIsc0JBQXNCO1FBQ3RCLFdBQU0sR0FBRyxLQUFLLENBQVMsRUFBRSxDQUFDLENBQUM7UUFFM0IsMEJBQTBCO1FBQzFCLG1CQUFjLEdBQUcsS0FBSyxFQUF3QixDQUFDO1FBRS9DLCtCQUErQjtRQUMvQix1QkFBa0IsR0FBRyxLQUFLLEVBQXNCLENBQUM7UUFFakQsNkNBQTZDO1FBQzdDLGVBQVUsR0FBRyxLQUFLLENBQVUsS0FBSyxDQUFDLENBQUM7UUFFbkMsNkNBQTZDO1FBQzdDLGFBQVEsR0FBRyxLQUFLLENBQVUsS0FBSyxDQUFDLENBQUM7UUFFakMsMkVBQTJFO1FBQzNFLFVBQUssR0FBRyxLQUFLLENBQVMsTUFBTSxDQUFDLENBQUM7UUF6QjVCLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLENBQUMsa0JBQWtCLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDO0lBQ2pFLENBQUM7OEdBSFUsMEJBQTBCO2tHQUExQiwwQkFBMEIsbStCQ1h2Qyw2dEJBbUJBOzsyRkRSYSwwQkFBMEI7a0JBTHRDLFNBQVM7K0JBQ0UscUJBQXFCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBpbnB1dCwgVGVtcGxhdGVSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFkc0ljb25SZWdpc3RyeSB9IGZyb20gJ0Bhc2NlbnRnbC9hZHMtaWNvbnMnO1xuaW1wb3J0IHsgYWRzSWNvbkNoZXZyb25Eb3duLCBhZHNJY29uQ2hldnJvblVwIH0gZnJvbSAnQGFzY2VudGdsL2Fkcy1pY29ucy9pY29ucyc7XG5pbXBvcnQgeyBDb2xvcnMgfSBmcm9tICcuLi9nZW5lcmFsL2NvbG9yLXBhbGV0dGUvY29sb3JzLmVudW1zJztcbmltcG9ydCB7IEdFTkVSSUNfQ09MTEVDVElPTiB9IGZyb20gJ0Bhc2NlbnRnbC9hZHMtdXRpbHMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhZHMtZXhwYW5zaW9uLXBhbmVsJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2V4cGFuc2lvbi1wYW5lbC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2V4cGFuc2lvbi1wYW5lbC5jb21wb25lbnQuc2NzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBBZHNFeHBhbnNpb25QYW5lbENvbXBvbmVudCB7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVnaXN0cnk6IEFkc0ljb25SZWdpc3RyeSkge1xuICAgIHRoaXMucmVnaXN0cnkucmVnaXN0ZXIoW2Fkc0ljb25DaGV2cm9uRG93biwgYWRzSWNvbkNoZXZyb25VcF0pO1xuICB9XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IENvbG9ycyA9IENvbG9ycztcblxuICAvKiogVGhlIHVuaXF1ZSBpZCBvZiB0aGUgY2hpcCAqL1xuICBpZCA9IGlucHV0PHN0cmluZz4oJycpO1xuXG4gIC8qKiBUaGUgaGVhZGVyIHRleHQgKi9cbiAgaGVhZGVyID0gaW5wdXQ8c3RyaW5nPignJyk7XG5cbiAgLyoqIFRoZSBoZWFkZXIgdGVtcGxhdGUgKi9cbiAgaGVhZGVyVGVtcGxhdGUgPSBpbnB1dDxUZW1wbGF0ZVJlZjx1bmtub3duPj4oKTtcblxuICAvKiogVGhlIGhlYWRlciB0ZW1wbGF0ZSBkYXRhICovXG4gIGhlYWRlclRlbXBsYXRlRGF0YSA9IGlucHV0PEdFTkVSSUNfQ09MTEVDVElPTj4oKTtcblxuICAvKiogV2hldGhlciB0aGUgQWNjb3JkaW9uSXRlbSBpcyBleHBhbmRlZC4gKi9cbiAgaXNFeHBhbmRlZCA9IGlucHV0PGJvb2xlYW4+KGZhbHNlKTtcblxuICAvKiogV2hldGhlciB0aGUgQWNjb3JkaW9uSXRlbSBpcyBkaXNhYmxlZC4gKi9cbiAgZGlzYWJsZWQgPSBpbnB1dDxib29sZWFuPihmYWxzZSk7XG5cbiAgLyoqIENvbXBvbmVudCB3aWR0aC4gTXVzdCBpbmNsdWRlIHVuaXRzIG9mIG1lYXN1cmU6IHB4LCAlLCBlbSwgcmVtLCBldGMuICovXG4gIHdpZHRoID0gaW5wdXQ8c3RyaW5nPignMTAwJScpO1xufVxuIiwiPG1hdC1leHBhbnNpb24tcGFuZWwgW2V4cGFuZGVkXT1cImlzRXhwYW5kZWQoKVwiIFtuZ1N0eWxlXT1cInsgd2lkdGg6IHdpZHRoKCkgfVwiICNwYW5lbCBbZGlzYWJsZWRdPVwiZGlzYWJsZWQoKVwiPlxuICA8bWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXI+XG4gICAgPG1hdC1wYW5lbC10aXRsZT5cbiAgICAgIEBpZiAoISFoZWFkZXJUZW1wbGF0ZSgpKSB7XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJoZWFkZXJUZW1wbGF0ZSgpITsgY29udGV4dDogeyBkYXRhOiBoZWFkZXJUZW1wbGF0ZURhdGEoKSB9XCIgLz5cbiAgICAgIH0gQGVsc2Uge1xuICAgICAgICB7eyBoZWFkZXIoKSB9fVxuICAgICAgfVxuICAgIDwvbWF0LXBhbmVsLXRpdGxlPlxuICAgIDxtYXQtcGFuZWwtZGVzY3JpcHRpb24+XG4gICAgICBAaWYgKHBhbmVsLmV4cGFuZGVkKSB7XG4gICAgICAgIDxhZHMtaWNvbiBzaXplPVwieHNcIiBuYW1lPVwiY2hldnJvbl91cFwiIHRoZW1lPVwiaWNvblByaW1hcnlcIiAvPlxuICAgICAgfSBAZWxzZSB7XG4gICAgICAgIDxhZHMtaWNvbiBzaXplPVwieHNcIiBuYW1lPVwiY2hldnJvbl9kb3duXCIgdGhlbWU9XCJpY29uUHJpbWFyeVwiIC8+XG4gICAgICB9XG4gICAgPC9tYXQtcGFuZWwtZGVzY3JpcHRpb24+XG4gIDwvbWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXI+XG4gIDxuZy1jb250ZW50IC8+XG48L21hdC1leHBhbnNpb24tcGFuZWw+XG4iXX0=
|
|
@@ -20,7 +20,7 @@ export class AdsInputTooltipComponent {
|
|
|
20
20
|
[matTooltipPosition]="'above'"
|
|
21
21
|
[name]="'information'"
|
|
22
22
|
[size]="smallSize() ? 'xxs' : 'sm'"
|
|
23
|
-
[theme]="'
|
|
23
|
+
[theme]="'secondary'"
|
|
24
24
|
[style.top]="iconPosition"
|
|
25
25
|
/>`, isInline: true, styles: ["ads-icon{position:relative;top:12px}\n"], dependencies: [{ kind: "ngmodule", type: AdsIconModule }, { kind: "component", type: i1.AdsIconComponent, selector: "ads-icon", inputs: ["size", "name", "color", "theme", "stroke"] }, { kind: "directive", type: MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }] }); }
|
|
26
26
|
}
|
|
@@ -31,8 +31,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.1", ngImpor
|
|
|
31
31
|
[matTooltipPosition]="'above'"
|
|
32
32
|
[name]="'information'"
|
|
33
33
|
[size]="smallSize() ? 'xxs' : 'sm'"
|
|
34
|
-
[theme]="'
|
|
34
|
+
[theme]="'secondary'"
|
|
35
35
|
[style.top]="iconPosition"
|
|
36
36
|
/>`, standalone: true, imports: [AdsIconModule, MatTooltip], styles: ["ads-icon{position:relative;top:12px}\n"] }]
|
|
37
37
|
}], ctorParameters: () => [{ type: i1.AdsIconRegistry }] });
|
|
38
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
38
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQudG9vbHRpcC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2Fkcy11aS9zcmMvbGliL2NvbXBvbmVudHMvZm9ybS1maWVsZHMvY29tbW9uL2lucHV0LnRvb2x0aXAuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2pELE9BQU8sRUFBRSxhQUFhLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDckUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDL0QsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLDJCQUEyQixDQUFDOzs7QUFxQnZELE1BQU0sT0FBTyx3QkFBd0I7SUFLbkMsWUFBb0IsUUFBeUI7UUFBekIsYUFBUSxHQUFSLFFBQVEsQ0FBaUI7UUFKN0MsWUFBTyxHQUFHLEtBQUssQ0FBQyxRQUFRLEVBQVUsQ0FBQztRQUVuQyxjQUFTLEdBQUcsS0FBSyxDQUFVLEtBQUssQ0FBQyxDQUFDO1FBR2hDLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxDQUFDO0lBQy9DLENBQUM7SUFFRCxJQUFJLFlBQVk7UUFDZCxPQUFPLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUM7SUFDM0MsQ0FBQzs4R0FYVSx3QkFBd0I7a0dBQXhCLHdCQUF3QiwwVkFqQnpCOzs7Ozs7O0tBT1AsK0dBUU8sYUFBYSw2SkFBRSxVQUFVOzsyRkFFeEIsd0JBQXdCO2tCQW5CcEMsU0FBUzsrQkFDRSxtQkFBbUIsWUFDbkI7Ozs7Ozs7S0FPUCxjQU9TLElBQUksV0FDUCxDQUFDLGFBQWEsRUFBRSxVQUFVLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIGlucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBZHNJY29uTW9kdWxlLCBBZHNJY29uUmVnaXN0cnkgfSBmcm9tICdAYXNjZW50Z2wvYWRzLWljb25zJztcbmltcG9ydCB7IGFkc0ljb25JbmZvcm1hdGlvbiB9IGZyb20gJ0Bhc2NlbnRnbC9hZHMtaWNvbnMvaWNvbnMnO1xuaW1wb3J0IHsgTWF0VG9vbHRpcCB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3Rvb2x0aXAnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhZHMtaW5wdXQtdG9vbHRpcCcsXG4gIHRlbXBsYXRlOiBgPGFkcy1pY29uXG4gICAgW21hdFRvb2x0aXBdPVwidG9vbHRpcCgpXCJcbiAgICBbbWF0VG9vbHRpcFBvc2l0aW9uXT1cIidhYm92ZSdcIlxuICAgIFtuYW1lXT1cIidpbmZvcm1hdGlvbidcIlxuICAgIFtzaXplXT1cInNtYWxsU2l6ZSgpID8gJ3h4cycgOiAnc20nXCJcbiAgICBbdGhlbWVdPVwiJ3NlY29uZGFyeSdcIlxuICAgIFtzdHlsZS50b3BdPVwiaWNvblBvc2l0aW9uXCJcbiAgLz5gLFxuICBzdHlsZXM6IGBcbiAgICBhZHMtaWNvbiB7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICB0b3A6IDEycHg7XG4gICAgfVxuICBgLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQWRzSWNvbk1vZHVsZSwgTWF0VG9vbHRpcF0sXG59KVxuZXhwb3J0IGNsYXNzIEFkc0lucHV0VG9vbHRpcENvbXBvbmVudCB7XG4gIHRvb2x0aXAgPSBpbnB1dC5yZXF1aXJlZDxzdHJpbmc+KCk7XG5cbiAgc21hbGxTaXplID0gaW5wdXQ8Ym9vbGVhbj4oZmFsc2UpO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVnaXN0cnk6IEFkc0ljb25SZWdpc3RyeSkge1xuICAgIHRoaXMucmVnaXN0cnkucmVnaXN0ZXIoW2Fkc0ljb25JbmZvcm1hdGlvbl0pO1xuICB9XG5cbiAgZ2V0IGljb25Qb3NpdGlvbigpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLnNtYWxsU2l6ZSgpID8gJzNweCcgOiAnMTJweCc7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -50,12 +50,12 @@ export class AdsDatepickerComponent extends AdsDatetimepickerComponent {
|
|
|
50
50
|
this.setControlValue(this.displayControl, valueToApply);
|
|
51
51
|
}
|
|
52
52
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: AdsDatepickerComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
53
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.1.1", type: AdsDatepickerComponent, selector: "ads-datepicker", inputs: { customDisplayFormat: "customDisplayFormat" }, usesInheritance: true, ngImport: i0, template: "<div [ngStyle]=\"{ minWidth: width }\">\n <mat-form-field\n [ngClass]=\"{\n 'immediate-validation': immediateValidation,\n 'no-left-padding': !showExclamation,\n invalid: canShowError(),\n manual: allowManualInput,\n 'success-label': canShowSuccess(),\n 'x-small': smallSize,\n }\"\n [ngStyle]=\"{ width: width }\"\n >\n @if ((label || required) && !smallSize) {\n <mat-label>{{ label }}</mat-label>\n }\n <mat-datetimepicker\n #datetimePicker\n (viewChanged)=\"onViewChanged($event)\"\n (opened)=\"onOpened()\"\n (closed)=\"onClosed()\"\n [type]=\"type === 'datetime' ? (showTimePicker ? 'datetime' : 'date') : type\"\n [openOnFocus]=\"!allowManualInput\"\n [twelvehour]=\"twelveHour\"\n [timeInterval]=\"5\"\n [mode]=\"'portrait'\"\n />\n <input\n (dateChange)=\"onChanged($event)\"\n dateTimePickerFormat\n [overrideDisplayFormat]=\"overrideDisplayFormat || (type === 'datetime' ? !showTimePicker : false)\"\n [customDisplayFormat]=\"customDisplayFormatOverride\"\n [ngClass]=\"{ invisible: !valueControl.value }\"\n #input\n matInput\n (keydown)=\"allowManualInput ? onKeyDown($event) : null\"\n (input)=\"touchControls()\"\n (blur)=\"touchControls()\"\n [tabIndex]=\"allowManualInput ? 0 : -1\"\n [min]=\"minDate || null\"\n [readonly]=\"!allowManualInput\"\n [formControl]=\"displayControl\"\n [matDatetimepicker]=\"datetimePicker\"\n autocomplete=\"false\"\n [id]=\"id\"\n [required]=\"required\"\n [placeholder]=\"placeholder\"\n />\n @if (type === 'time') {\n <button\n matTextSuffix\n type=\"button\"\n mat-icon-button\n (click)=\"toggle($event)\"\n [disabled]=\"!showTimePicker\"\n class=\"action-icon\"\n >\n <ads-icon class=\"picker\" name=\"timepicker\" [size]=\"smallSize ? 'xxs' : 'sm'\" [stroke]=\"'iconPrimary'\" />\n </button>\n } @else {\n <button matTextSuffix type=\"button\" mat-icon-button (click)=\"toggle($event)\" class=\"action-icon\">\n <ads-icon class=\"picker\" name=\"datepicker\" [size]=\"smallSize ? 'xxs' : 'sm'\" [stroke]=\"'iconPrimary'\" />\n @if (type === 'datetime') {\n <ads-icon\n class=\"sub-timepicker mat-mdc-button-persistent-ripple picker\"\n name=\"timepicker\"\n size=\"xxs\"\n [stroke]=\"'iconPrimary'\"\n />\n }\n </button>\n }\n\n @if (canClear) {\n <button matTextSuffix type=\"button\" mat-icon-button (click)=\"clear($event)\" class=\"action-icon\">\n <ads-icon class=\"cross-icon\" name=\"cross\" [size]=\"smallSize ? 'xxs' : 'xs'\" [theme]=\"'iconPrimary'\" />\n </button>\n }\n </mat-form-field>\n @if (showFooter) {\n <div class=\"footer-container\">\n @if (canShowError()) {\n <ads-error [error]=\"displayFirstError()\" [ngStyle]=\"{ width: width }\" />\n } @else if (canShowSuccess()) {\n <ads-success [success]=\"successMessage!\" [ngStyle]=\"{ width: width }\" />\n } @else if (hint) {\n <ads-hint [hint]=\"hint\" [control]=\"valueControl\" [ngStyle]=\"{ width: width }\" />\n }\n </div>\n }\n</div>\n@if (tooltip) {\n <ads-input-tooltip [tooltip]=\"tooltip\" />\n}\n", styles: [":host{display:flex;gap:12px;align-items:flex-start}:host::ng-deep mat-form-field{--mdc-filled-text-field-input-text-color: var(--color-medium);--mdc-filled-text-field-error-label-text-color: var(--color-error);--mdc-filled-text-field-label-text-color: var(--color-medium);--mdc-filled-text-field-focus-label-text-color: var(--color-medium);--mdc-filled-text-field-hover-label-text-color: var(--color-medium);--mdc-filled-text-field-label-text-size: 16px}:host::ng-deep mat-form-field .mdc-floating-label--float-above{--mdc-filled-text-field-label-text-size: 12px}:host::ng-deep mat-form-field .mdc-text-field{box-sizing:border-box;border-radius:5px;outline:1px solid var(--color-light);outline-offset:-1px;align-items:center;padding:0 12px;cursor:text;height:48px}:host::ng-deep mat-form-field .mdc-text-field .cross-icon{stroke:var(--color-medium)!important}:host::ng-deep mat-form-field .mdc-text-field.mdc-text-field--no-label .mat-mdc-form-field-flex{height:100%}:host::ng-deep mat-form-field .mdc-text-field.mdc-text-field--no-label .mat-mdc-form-field-flex .mat-mdc-form-field-infix{align-items:center}:host::ng-deep mat-form-field .mdc-text-field:not(.mdc-text-field--no-label) .mat-mdc-form-field-infix input{height:24px}:host::ng-deep mat-form-field .mdc-text-field:not(.mdc-text-field--no-label) .mat-mdc-form-field-infix input::-webkit-outer-spin-button,:host::ng-deep mat-form-field .mdc-text-field:not(.mdc-text-field--no-label) .mat-mdc-form-field-infix input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}:host::ng-deep mat-form-field .mdc-text-field:not(.mdc-text-field--no-label) .mat-mdc-form-field-infix input[type=number]{-moz-appearance:textfield}:host::ng-deep mat-form-field .mdc-text-field.mdc-text-field--invalid{outline:2px solid var(--color-error);outline-offset:-2px}:host::ng-deep mat-form-field .mdc-text-field.mdc-text-field--invalid .cross-icon,:host::ng-deep mat-form-field .mdc-text-field.mdc-text-field--invalid .visibility-eye,:host::ng-deep mat-form-field .mdc-text-field.mdc-text-field--invalid .picker{stroke:var(--color-error)!important}:host::ng-deep mat-form-field .mdc-text-field.mdc-text-field--invalid .chevron-down,:host::ng-deep mat-form-field .mdc-text-field.mdc-text-field--invalid .search-icon{color:var(--color-error)!important}:host::ng-deep mat-form-field .mdc-text-field .mat-mdc-form-field-flex{align-items:center}:host::ng-deep mat-form-field .mdc-text-field .mat-mdc-form-field-flex .mat-mdc-form-field-infix{display:flex;align-items:flex-end;width:120px}:host::ng-deep mat-form-field .mdc-text-field .mat-mdc-form-field-flex .mat-mdc-form-field-infix label{width:100%}:host::ng-deep mat-form-field .mdc-text-field .mat-mdc-form-field-flex .mat-mdc-form-field-infix label .mat-mdc-form-field-required-marker{color:var(--mdc-filled-text-field-error-label-text-color)}:host::ng-deep mat-form-field .mdc-text-field .mat-mdc-form-field-text-suffix{display:flex;align-items:center}:host::ng-deep mat-form-field .mdc-text-field .mat-mdc-form-field-text-suffix .mat-mdc-icon-button{display:flex;align-items:center;justify-content:center}:host::ng-deep mat-form-field .action-icon{padding:0;--mdc-icon-button-state-layer-size: 35px}:host::ng-deep mat-form-field .action-icon .mat-mdc-button-touch-target{height:unset;width:unset}:host::ng-deep mat-form-field.x-small .mdc-text-field{height:24px;padding:0 8px}:host::ng-deep mat-form-field.x-small .mdc-text-field .mat-mdc-form-field-input-control{font-size:12px;line-height:16px}:host::ng-deep mat-form-field.x-small .action-icon{--mdc-icon-button-state-layer-size: 22px}:host::ng-deep mat-form-field.readonly .mdc-text-field{background-color:var(--mdc-filled-text-field-disabled-container-color);border:none}:host::ng-deep mat-form-field:not(.readonly) .mdc-text-field:hover{background-color:var(--color-light-30);outline:2px solid var(--color-secondary-hover);outline-offset:-2px}:host::ng-deep mat-form-field:not(.readonly) .mdc-text-field:hover .visibility-eye{fill:var(--color-light-30)!important}:host::ng-deep mat-form-field:not(.readonly).mat-focused .mdc-text-field{outline:2px solid var(--color-medium);outline-offset:-2px;background-color:var(--color-muted)}:host::ng-deep mat-form-field:not(.readonly).mat-focused .mdc-text-field .visibility-eye{fill:var(--color-muted)!important}:host::ng-deep mat-form-field.immediate-validation .mdc-text-field{outline:2px solid var(--color-medium);outline-offset:-2px}:host::ng-deep mat-form-field.immediate-validation .mdc-text-field.mdc-text-field--invalid{outline:2px solid var(--color-error);outline-offset:-2px}:host::ng-deep mat-form-field .mat-mdc-form-field-subscript-wrapper{color:var(--mdc-filled-text-field-label-text-color)}:host::ng-deep mat-form-field .mat-mdc-form-field-subscript-wrapper:before{content:none}:host::ng-deep mat-form-field .mat-mdc-form-field-subscript-wrapper .mat-mdc-form-field-error-wrapper,:host::ng-deep mat-form-field .mat-mdc-form-field-subscript-wrapper .mat-mdc-form-field-hint-wrapper{position:relative;padding:0}:host::ng-deep mat-form-field .mdc-line-ripple{display:none}:host::ng-deep mat-form-field.success-label .mat-mdc-form-field-required-marker,:host::ng-deep mat-form-field.success-label mat-label{color:var(--color-success)!important}:host::ng-deep mat-form-field.success-label .mdc-text-field{outline:2px solid var(--color-success);outline-offset:-2px}:host::ng-deep mat-form-field.success-label .cross-icon,:host::ng-deep mat-form-field.success-label .visibility-eye,:host::ng-deep mat-form-field.success-label .picker{stroke:var(--color-success)!important}:host::ng-deep mat-form-field.success-label .chevron-down,:host::ng-deep mat-form-field.success-label .search-icon{color:var(--color-success)!important}:host::ng-deep mat-form-field.error-label mat-label{color:var(--color-error)}:host::ng-deep mat-hint{display:inline-block}:host::ng-deep .mat-mdc-form-field-hint-spacer{display:none}.info-tooltip{position:relative;top:12px}mat-error{display:flex;padding-top:2px}mat-error .error{display:flex;align-items:flex-start;gap:2px}mat-error .error ads-icon{position:relative;top:2px}\n", "button .sub-timepicker{position:absolute;top:18%;left:18%;background-color:var(--color-white);border-radius:50%}mat-form-field:not(.manual) ::ng-deep .mdc-text-field{cursor:pointer}mat-form-field:not(.manual) ::ng-deep .mdc-text-field input{cursor:pointer}::ng-deep .mdc-text-field:hover button .sub-timepicker{background-color:var(--color-light-30)}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: i2.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i2.MatLabel, selector: "mat-label" }, { kind: "directive", type: i2.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "directive", type: i3.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "directive", type: i4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i4.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: i5.AdsIconComponent, selector: "ads-icon", inputs: ["size", "name", "color", "theme", "stroke"] }, { kind: "component", type: i6.MatDatetimepickerComponent, selector: "mat-datetimepicker", inputs: ["multiYearSelector", "twelvehour", "startView", "mode", "timeInterval", "ariaNextMonthLabel", "ariaPrevMonthLabel", "ariaNextYearLabel", "ariaPrevYearLabel", "preventSameDateTimeSelection", "panelClass", "startAt", "openOnFocus", "type", "touchUi", "disabled"], outputs: ["selectedChanged", "opened", "closed", "viewChanged"], exportAs: ["matDatetimepicker"] }, { kind: "directive", type: i6.MatDatetimepickerInputDirective, selector: "input[matDatetimepicker]", inputs: ["matDatetimepicker", "matDatepickerFilter", "value", "min", "max", "disabled"], outputs: ["dateChange", "dateInput"], exportAs: ["matDatepickerInput"] }, { kind: "directive", type: i7.DateTimePickerFormatDirective, selector: "[dateTimePickerFormat]", inputs: ["customDisplayFormat", "overrideDisplayFormat"] }, { kind: "component", type: i8.AdsInputTooltipComponent, selector: "ads-input-tooltip", inputs: ["tooltip", "smallSize"] }, { kind: "component", type: i9.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "component", type: i10.AdsErrorComponent, selector: "ads-error", inputs: ["error"] }, { kind: "component", type: i11.AdsHintComponent, selector: "ads-hint", inputs: ["control", "hint"] }, { kind: "component", type: i12.AdsSuccessComponent, selector: "ads-success", inputs: ["success"] }] }); }
|
|
53
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.1.1", type: AdsDatepickerComponent, selector: "ads-datepicker", inputs: { customDisplayFormat: "customDisplayFormat" }, usesInheritance: true, ngImport: i0, template: "<div [ngStyle]=\"{ minWidth: width }\">\n <mat-form-field\n [ngClass]=\"{\n 'immediate-validation': immediateValidation,\n 'no-left-padding': !showExclamation,\n invalid: canShowError(),\n manual: allowManualInput,\n 'success-label': canShowSuccess(),\n 'x-small': smallSize,\n }\"\n [ngStyle]=\"{ width: width }\"\n >\n @if ((label || required) && !smallSize) {\n <mat-label>{{ label }}</mat-label>\n }\n <mat-datetimepicker\n #datetimePicker\n (viewChanged)=\"onViewChanged($event)\"\n (opened)=\"onOpened()\"\n (closed)=\"onClosed()\"\n [type]=\"type === 'datetime' ? (showTimePicker ? 'datetime' : 'date') : type\"\n [openOnFocus]=\"!allowManualInput\"\n [twelvehour]=\"twelveHour\"\n [timeInterval]=\"5\"\n [mode]=\"'portrait'\"\n />\n <input\n (dateChange)=\"onChanged($event)\"\n dateTimePickerFormat\n [overrideDisplayFormat]=\"overrideDisplayFormat || (type === 'datetime' ? !showTimePicker : false)\"\n [customDisplayFormat]=\"customDisplayFormatOverride\"\n [ngClass]=\"{ invisible: !valueControl.value }\"\n #input\n matInput\n (keydown)=\"allowManualInput ? onKeyDown($event) : null\"\n (input)=\"touchControls()\"\n (blur)=\"touchControls()\"\n [tabIndex]=\"allowManualInput ? 0 : -1\"\n [min]=\"minDate || null\"\n [readonly]=\"!allowManualInput\"\n [formControl]=\"displayControl\"\n [matDatetimepicker]=\"datetimePicker\"\n autocomplete=\"false\"\n [id]=\"id\"\n [required]=\"required\"\n [placeholder]=\"placeholder\"\n />\n @if (type === 'time') {\n <button\n matTextSuffix\n type=\"button\"\n mat-icon-button\n (click)=\"toggle($event)\"\n [disabled]=\"!showTimePicker\"\n class=\"action-icon\"\n >\n <ads-icon class=\"picker\" name=\"timepicker\" [size]=\"smallSize ? 'xxs' : 'sm'\" [stroke]=\"'iconPrimary'\" />\n </button>\n } @else {\n <button matTextSuffix type=\"button\" mat-icon-button (click)=\"toggle($event)\" class=\"action-icon\">\n <ads-icon class=\"picker\" name=\"datepicker\" [size]=\"smallSize ? 'xxs' : 'sm'\" [stroke]=\"'iconPrimary'\" />\n @if (type === 'datetime') {\n <ads-icon\n class=\"sub-timepicker mat-mdc-button-persistent-ripple picker\"\n name=\"timepicker\"\n size=\"xxs\"\n [stroke]=\"'iconPrimary'\"\n />\n }\n </button>\n }\n\n @if (canClear) {\n <button matTextSuffix type=\"button\" mat-icon-button (click)=\"clear($event)\" class=\"action-icon\">\n <ads-icon class=\"cross-icon\" name=\"cross\" [size]=\"smallSize ? 'xxs' : 'xs'\" [theme]=\"'iconPrimary'\" />\n </button>\n }\n </mat-form-field>\n @if (showFooter) {\n <div class=\"footer-container\">\n @if (canShowError()) {\n <ads-error [error]=\"displayFirstError()\" [ngStyle]=\"{ width: width }\" />\n } @else if (canShowSuccess()) {\n <ads-success [success]=\"successMessage!\" [ngStyle]=\"{ width: width }\" />\n } @else if (hint) {\n <ads-hint [hint]=\"hint\" [control]=\"valueControl\" [ngStyle]=\"{ width: width }\" />\n }\n </div>\n }\n</div>\n@if (tooltip) {\n <ads-input-tooltip [tooltip]=\"tooltip\" />\n}\n", styles: [":host{display:flex;gap:12px;align-items:flex-start}:host::ng-deep mat-form-field{--mdc-filled-text-field-input-text-color: var(--color-medium);--mdc-filled-text-field-error-label-text-color: var(--color-error);--mdc-filled-text-field-label-text-color: var(--color-medium);--mdc-filled-text-field-focus-label-text-color: var(--color-medium);--mdc-filled-text-field-hover-label-text-color: var(--color-medium);--mdc-filled-text-field-label-text-size: 16px}:host::ng-deep mat-form-field .mdc-floating-label--float-above{--mdc-filled-text-field-label-text-size: 12px}:host::ng-deep mat-form-field .mdc-text-field{box-sizing:border-box;border-radius:5px;outline:1px solid var(--color-light);outline-offset:-1px;align-items:center;padding:0 12px;cursor:text;height:48px}:host::ng-deep mat-form-field .mdc-text-field .cross-icon{stroke:var(--color-medium)!important}:host::ng-deep mat-form-field .mdc-text-field.mdc-text-field--no-label .mat-mdc-form-field-flex{height:100%}:host::ng-deep mat-form-field .mdc-text-field.mdc-text-field--no-label .mat-mdc-form-field-flex .mat-mdc-form-field-infix{align-items:center}:host::ng-deep mat-form-field .mdc-text-field:not(.mdc-text-field--no-label) .mat-mdc-form-field-infix input{height:24px}:host::ng-deep mat-form-field .mdc-text-field:not(.mdc-text-field--no-label) .mat-mdc-form-field-infix input::-webkit-outer-spin-button,:host::ng-deep mat-form-field .mdc-text-field:not(.mdc-text-field--no-label) .mat-mdc-form-field-infix input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}:host::ng-deep mat-form-field .mdc-text-field:not(.mdc-text-field--no-label) .mat-mdc-form-field-infix input[type=number]{-moz-appearance:textfield}:host::ng-deep mat-form-field .mdc-text-field.mdc-text-field--invalid{outline:2px solid var(--color-error);outline-offset:-2px}:host::ng-deep mat-form-field .mdc-text-field.mdc-text-field--invalid .cross-icon,:host::ng-deep mat-form-field .mdc-text-field.mdc-text-field--invalid .visibility-eye,:host::ng-deep mat-form-field .mdc-text-field.mdc-text-field--invalid .picker{stroke:var(--color-error)!important}:host::ng-deep mat-form-field .mdc-text-field.mdc-text-field--invalid .chevron-down,:host::ng-deep mat-form-field .mdc-text-field.mdc-text-field--invalid .search-icon{color:var(--color-error)!important}:host::ng-deep mat-form-field .mdc-text-field .mat-mdc-form-field-flex{align-items:center}:host::ng-deep mat-form-field .mdc-text-field .mat-mdc-form-field-flex .mat-mdc-form-field-infix{display:flex;align-items:flex-end;width:120px}:host::ng-deep mat-form-field .mdc-text-field .mat-mdc-form-field-flex .mat-mdc-form-field-infix label{width:100%}:host::ng-deep mat-form-field .mdc-text-field .mat-mdc-form-field-flex .mat-mdc-form-field-infix label .mat-mdc-form-field-required-marker{color:var(--mdc-filled-text-field-error-label-text-color)}:host::ng-deep mat-form-field .mdc-text-field .mat-mdc-form-field-text-suffix{display:flex;align-items:center}:host::ng-deep mat-form-field .mdc-text-field .mat-mdc-form-field-text-suffix .mat-mdc-icon-button{display:flex;align-items:center;justify-content:center}:host::ng-deep mat-form-field .action-icon{padding:0;--mdc-icon-button-state-layer-size: 35px}:host::ng-deep mat-form-field .action-icon .mat-mdc-button-touch-target{height:unset;width:unset}:host::ng-deep mat-form-field.x-small .mdc-text-field{height:24px;padding:0 8px}:host::ng-deep mat-form-field.x-small .mdc-text-field .mat-mdc-form-field-input-control{font-size:12px;line-height:16px}:host::ng-deep mat-form-field.x-small .action-icon{--mdc-icon-button-state-layer-size: 22px}:host::ng-deep mat-form-field.readonly .mdc-text-field{background-color:var(--mdc-filled-text-field-disabled-container-color);border:none}:host::ng-deep mat-form-field:not(.readonly) .mdc-text-field:hover{background-color:var(--color-light-30);outline:2px solid var(--color-secondary-hover);outline-offset:-2px}:host::ng-deep mat-form-field:not(.readonly) .mdc-text-field:hover .visibility-eye{fill:var(--color-light-30)!important}:host::ng-deep mat-form-field:not(.readonly).mat-focused .mdc-text-field{outline:2px solid var(--color-medium);outline-offset:-2px;background-color:var(--color-muted)}:host::ng-deep mat-form-field:not(.readonly).mat-focused .mdc-text-field .visibility-eye{fill:var(--color-muted)!important}:host::ng-deep mat-form-field.immediate-validation .mdc-text-field{outline:2px solid var(--color-medium);outline-offset:-2px}:host::ng-deep mat-form-field.immediate-validation .mdc-text-field.mdc-text-field--invalid{outline:2px solid var(--color-error);outline-offset:-2px}:host::ng-deep mat-form-field .mat-mdc-form-field-subscript-wrapper{color:var(--mdc-filled-text-field-label-text-color)}:host::ng-deep mat-form-field .mat-mdc-form-field-subscript-wrapper:before{content:none}:host::ng-deep mat-form-field .mat-mdc-form-field-subscript-wrapper .mat-mdc-form-field-error-wrapper,:host::ng-deep mat-form-field .mat-mdc-form-field-subscript-wrapper .mat-mdc-form-field-hint-wrapper{position:relative;padding:0}:host::ng-deep mat-form-field .mdc-line-ripple{display:none}:host::ng-deep mat-form-field.success-label .mat-mdc-form-field-required-marker,:host::ng-deep mat-form-field.success-label mat-label{color:var(--color-success)!important}:host::ng-deep mat-form-field.success-label .mdc-text-field{outline:2px solid var(--color-success);outline-offset:-2px}:host::ng-deep mat-form-field.success-label .cross-icon,:host::ng-deep mat-form-field.success-label .visibility-eye,:host::ng-deep mat-form-field.success-label .picker{stroke:var(--color-success)!important}:host::ng-deep mat-form-field.success-label .chevron-down,:host::ng-deep mat-form-field.success-label .search-icon{color:var(--color-success)!important}:host::ng-deep mat-form-field.error-label mat-label{color:var(--color-error)}:host::ng-deep mat-hint{display:inline-block}:host::ng-deep .mat-mdc-form-field-hint-spacer{display:none}.info-tooltip{position:relative;top:12px}mat-error{display:flex;padding-top:2px}mat-error .error{display:flex;align-items:flex-start;gap:2px}mat-error .error ads-icon{position:relative;top:2px}\n", "button .sub-timepicker{position:absolute;top:18%;left:18%;background-color:var(--color-white);border-radius:50%}mat-form-field:not(.manual) ::ng-deep .mdc-text-field{cursor:pointer}mat-form-field:not(.manual) ::ng-deep .mdc-text-field input{cursor:pointer}::ng-deep .mdc-text-field:hover button .sub-timepicker{background-color:var(--color-light-30)}\n", ".footer-container{min-height:22.4px}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: i2.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i2.MatLabel, selector: "mat-label" }, { kind: "directive", type: i2.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "directive", type: i3.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "directive", type: i4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i4.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: i5.AdsIconComponent, selector: "ads-icon", inputs: ["size", "name", "color", "theme", "stroke"] }, { kind: "component", type: i6.MatDatetimepickerComponent, selector: "mat-datetimepicker", inputs: ["multiYearSelector", "twelvehour", "startView", "mode", "timeInterval", "ariaNextMonthLabel", "ariaPrevMonthLabel", "ariaNextYearLabel", "ariaPrevYearLabel", "preventSameDateTimeSelection", "panelClass", "startAt", "openOnFocus", "type", "touchUi", "disabled"], outputs: ["selectedChanged", "opened", "closed", "viewChanged"], exportAs: ["matDatetimepicker"] }, { kind: "directive", type: i6.MatDatetimepickerInputDirective, selector: "input[matDatetimepicker]", inputs: ["matDatetimepicker", "matDatepickerFilter", "value", "min", "max", "disabled"], outputs: ["dateChange", "dateInput"], exportAs: ["matDatepickerInput"] }, { kind: "directive", type: i7.DateTimePickerFormatDirective, selector: "[dateTimePickerFormat]", inputs: ["customDisplayFormat", "overrideDisplayFormat"] }, { kind: "component", type: i8.AdsInputTooltipComponent, selector: "ads-input-tooltip", inputs: ["tooltip", "smallSize"] }, { kind: "component", type: i9.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "component", type: i10.AdsErrorComponent, selector: "ads-error", inputs: ["error"] }, { kind: "component", type: i11.AdsHintComponent, selector: "ads-hint", inputs: ["control", "hint"] }, { kind: "component", type: i12.AdsSuccessComponent, selector: "ads-success", inputs: ["success"] }] }); }
|
|
54
54
|
}
|
|
55
55
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: AdsDatepickerComponent, decorators: [{
|
|
56
56
|
type: Component,
|
|
57
|
-
args: [{ selector: 'ads-datepicker', template: "<div [ngStyle]=\"{ minWidth: width }\">\n <mat-form-field\n [ngClass]=\"{\n 'immediate-validation': immediateValidation,\n 'no-left-padding': !showExclamation,\n invalid: canShowError(),\n manual: allowManualInput,\n 'success-label': canShowSuccess(),\n 'x-small': smallSize,\n }\"\n [ngStyle]=\"{ width: width }\"\n >\n @if ((label || required) && !smallSize) {\n <mat-label>{{ label }}</mat-label>\n }\n <mat-datetimepicker\n #datetimePicker\n (viewChanged)=\"onViewChanged($event)\"\n (opened)=\"onOpened()\"\n (closed)=\"onClosed()\"\n [type]=\"type === 'datetime' ? (showTimePicker ? 'datetime' : 'date') : type\"\n [openOnFocus]=\"!allowManualInput\"\n [twelvehour]=\"twelveHour\"\n [timeInterval]=\"5\"\n [mode]=\"'portrait'\"\n />\n <input\n (dateChange)=\"onChanged($event)\"\n dateTimePickerFormat\n [overrideDisplayFormat]=\"overrideDisplayFormat || (type === 'datetime' ? !showTimePicker : false)\"\n [customDisplayFormat]=\"customDisplayFormatOverride\"\n [ngClass]=\"{ invisible: !valueControl.value }\"\n #input\n matInput\n (keydown)=\"allowManualInput ? onKeyDown($event) : null\"\n (input)=\"touchControls()\"\n (blur)=\"touchControls()\"\n [tabIndex]=\"allowManualInput ? 0 : -1\"\n [min]=\"minDate || null\"\n [readonly]=\"!allowManualInput\"\n [formControl]=\"displayControl\"\n [matDatetimepicker]=\"datetimePicker\"\n autocomplete=\"false\"\n [id]=\"id\"\n [required]=\"required\"\n [placeholder]=\"placeholder\"\n />\n @if (type === 'time') {\n <button\n matTextSuffix\n type=\"button\"\n mat-icon-button\n (click)=\"toggle($event)\"\n [disabled]=\"!showTimePicker\"\n class=\"action-icon\"\n >\n <ads-icon class=\"picker\" name=\"timepicker\" [size]=\"smallSize ? 'xxs' : 'sm'\" [stroke]=\"'iconPrimary'\" />\n </button>\n } @else {\n <button matTextSuffix type=\"button\" mat-icon-button (click)=\"toggle($event)\" class=\"action-icon\">\n <ads-icon class=\"picker\" name=\"datepicker\" [size]=\"smallSize ? 'xxs' : 'sm'\" [stroke]=\"'iconPrimary'\" />\n @if (type === 'datetime') {\n <ads-icon\n class=\"sub-timepicker mat-mdc-button-persistent-ripple picker\"\n name=\"timepicker\"\n size=\"xxs\"\n [stroke]=\"'iconPrimary'\"\n />\n }\n </button>\n }\n\n @if (canClear) {\n <button matTextSuffix type=\"button\" mat-icon-button (click)=\"clear($event)\" class=\"action-icon\">\n <ads-icon class=\"cross-icon\" name=\"cross\" [size]=\"smallSize ? 'xxs' : 'xs'\" [theme]=\"'iconPrimary'\" />\n </button>\n }\n </mat-form-field>\n @if (showFooter) {\n <div class=\"footer-container\">\n @if (canShowError()) {\n <ads-error [error]=\"displayFirstError()\" [ngStyle]=\"{ width: width }\" />\n } @else if (canShowSuccess()) {\n <ads-success [success]=\"successMessage!\" [ngStyle]=\"{ width: width }\" />\n } @else if (hint) {\n <ads-hint [hint]=\"hint\" [control]=\"valueControl\" [ngStyle]=\"{ width: width }\" />\n }\n </div>\n }\n</div>\n@if (tooltip) {\n <ads-input-tooltip [tooltip]=\"tooltip\" />\n}\n", styles: [":host{display:flex;gap:12px;align-items:flex-start}:host::ng-deep mat-form-field{--mdc-filled-text-field-input-text-color: var(--color-medium);--mdc-filled-text-field-error-label-text-color: var(--color-error);--mdc-filled-text-field-label-text-color: var(--color-medium);--mdc-filled-text-field-focus-label-text-color: var(--color-medium);--mdc-filled-text-field-hover-label-text-color: var(--color-medium);--mdc-filled-text-field-label-text-size: 16px}:host::ng-deep mat-form-field .mdc-floating-label--float-above{--mdc-filled-text-field-label-text-size: 12px}:host::ng-deep mat-form-field .mdc-text-field{box-sizing:border-box;border-radius:5px;outline:1px solid var(--color-light);outline-offset:-1px;align-items:center;padding:0 12px;cursor:text;height:48px}:host::ng-deep mat-form-field .mdc-text-field .cross-icon{stroke:var(--color-medium)!important}:host::ng-deep mat-form-field .mdc-text-field.mdc-text-field--no-label .mat-mdc-form-field-flex{height:100%}:host::ng-deep mat-form-field .mdc-text-field.mdc-text-field--no-label .mat-mdc-form-field-flex .mat-mdc-form-field-infix{align-items:center}:host::ng-deep mat-form-field .mdc-text-field:not(.mdc-text-field--no-label) .mat-mdc-form-field-infix input{height:24px}:host::ng-deep mat-form-field .mdc-text-field:not(.mdc-text-field--no-label) .mat-mdc-form-field-infix input::-webkit-outer-spin-button,:host::ng-deep mat-form-field .mdc-text-field:not(.mdc-text-field--no-label) .mat-mdc-form-field-infix input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}:host::ng-deep mat-form-field .mdc-text-field:not(.mdc-text-field--no-label) .mat-mdc-form-field-infix input[type=number]{-moz-appearance:textfield}:host::ng-deep mat-form-field .mdc-text-field.mdc-text-field--invalid{outline:2px solid var(--color-error);outline-offset:-2px}:host::ng-deep mat-form-field .mdc-text-field.mdc-text-field--invalid .cross-icon,:host::ng-deep mat-form-field .mdc-text-field.mdc-text-field--invalid .visibility-eye,:host::ng-deep mat-form-field .mdc-text-field.mdc-text-field--invalid .picker{stroke:var(--color-error)!important}:host::ng-deep mat-form-field .mdc-text-field.mdc-text-field--invalid .chevron-down,:host::ng-deep mat-form-field .mdc-text-field.mdc-text-field--invalid .search-icon{color:var(--color-error)!important}:host::ng-deep mat-form-field .mdc-text-field .mat-mdc-form-field-flex{align-items:center}:host::ng-deep mat-form-field .mdc-text-field .mat-mdc-form-field-flex .mat-mdc-form-field-infix{display:flex;align-items:flex-end;width:120px}:host::ng-deep mat-form-field .mdc-text-field .mat-mdc-form-field-flex .mat-mdc-form-field-infix label{width:100%}:host::ng-deep mat-form-field .mdc-text-field .mat-mdc-form-field-flex .mat-mdc-form-field-infix label .mat-mdc-form-field-required-marker{color:var(--mdc-filled-text-field-error-label-text-color)}:host::ng-deep mat-form-field .mdc-text-field .mat-mdc-form-field-text-suffix{display:flex;align-items:center}:host::ng-deep mat-form-field .mdc-text-field .mat-mdc-form-field-text-suffix .mat-mdc-icon-button{display:flex;align-items:center;justify-content:center}:host::ng-deep mat-form-field .action-icon{padding:0;--mdc-icon-button-state-layer-size: 35px}:host::ng-deep mat-form-field .action-icon .mat-mdc-button-touch-target{height:unset;width:unset}:host::ng-deep mat-form-field.x-small .mdc-text-field{height:24px;padding:0 8px}:host::ng-deep mat-form-field.x-small .mdc-text-field .mat-mdc-form-field-input-control{font-size:12px;line-height:16px}:host::ng-deep mat-form-field.x-small .action-icon{--mdc-icon-button-state-layer-size: 22px}:host::ng-deep mat-form-field.readonly .mdc-text-field{background-color:var(--mdc-filled-text-field-disabled-container-color);border:none}:host::ng-deep mat-form-field:not(.readonly) .mdc-text-field:hover{background-color:var(--color-light-30);outline:2px solid var(--color-secondary-hover);outline-offset:-2px}:host::ng-deep mat-form-field:not(.readonly) .mdc-text-field:hover .visibility-eye{fill:var(--color-light-30)!important}:host::ng-deep mat-form-field:not(.readonly).mat-focused .mdc-text-field{outline:2px solid var(--color-medium);outline-offset:-2px;background-color:var(--color-muted)}:host::ng-deep mat-form-field:not(.readonly).mat-focused .mdc-text-field .visibility-eye{fill:var(--color-muted)!important}:host::ng-deep mat-form-field.immediate-validation .mdc-text-field{outline:2px solid var(--color-medium);outline-offset:-2px}:host::ng-deep mat-form-field.immediate-validation .mdc-text-field.mdc-text-field--invalid{outline:2px solid var(--color-error);outline-offset:-2px}:host::ng-deep mat-form-field .mat-mdc-form-field-subscript-wrapper{color:var(--mdc-filled-text-field-label-text-color)}:host::ng-deep mat-form-field .mat-mdc-form-field-subscript-wrapper:before{content:none}:host::ng-deep mat-form-field .mat-mdc-form-field-subscript-wrapper .mat-mdc-form-field-error-wrapper,:host::ng-deep mat-form-field .mat-mdc-form-field-subscript-wrapper .mat-mdc-form-field-hint-wrapper{position:relative;padding:0}:host::ng-deep mat-form-field .mdc-line-ripple{display:none}:host::ng-deep mat-form-field.success-label .mat-mdc-form-field-required-marker,:host::ng-deep mat-form-field.success-label mat-label{color:var(--color-success)!important}:host::ng-deep mat-form-field.success-label .mdc-text-field{outline:2px solid var(--color-success);outline-offset:-2px}:host::ng-deep mat-form-field.success-label .cross-icon,:host::ng-deep mat-form-field.success-label .visibility-eye,:host::ng-deep mat-form-field.success-label .picker{stroke:var(--color-success)!important}:host::ng-deep mat-form-field.success-label .chevron-down,:host::ng-deep mat-form-field.success-label .search-icon{color:var(--color-success)!important}:host::ng-deep mat-form-field.error-label mat-label{color:var(--color-error)}:host::ng-deep mat-hint{display:inline-block}:host::ng-deep .mat-mdc-form-field-hint-spacer{display:none}.info-tooltip{position:relative;top:12px}mat-error{display:flex;padding-top:2px}mat-error .error{display:flex;align-items:flex-start;gap:2px}mat-error .error ads-icon{position:relative;top:2px}\n", "button .sub-timepicker{position:absolute;top:18%;left:18%;background-color:var(--color-white);border-radius:50%}mat-form-field:not(.manual) ::ng-deep .mdc-text-field{cursor:pointer}mat-form-field:not(.manual) ::ng-deep .mdc-text-field input{cursor:pointer}::ng-deep .mdc-text-field:hover button .sub-timepicker{background-color:var(--color-light-30)}\n"] }]
|
|
57
|
+
args: [{ selector: 'ads-datepicker', template: "<div [ngStyle]=\"{ minWidth: width }\">\n <mat-form-field\n [ngClass]=\"{\n 'immediate-validation': immediateValidation,\n 'no-left-padding': !showExclamation,\n invalid: canShowError(),\n manual: allowManualInput,\n 'success-label': canShowSuccess(),\n 'x-small': smallSize,\n }\"\n [ngStyle]=\"{ width: width }\"\n >\n @if ((label || required) && !smallSize) {\n <mat-label>{{ label }}</mat-label>\n }\n <mat-datetimepicker\n #datetimePicker\n (viewChanged)=\"onViewChanged($event)\"\n (opened)=\"onOpened()\"\n (closed)=\"onClosed()\"\n [type]=\"type === 'datetime' ? (showTimePicker ? 'datetime' : 'date') : type\"\n [openOnFocus]=\"!allowManualInput\"\n [twelvehour]=\"twelveHour\"\n [timeInterval]=\"5\"\n [mode]=\"'portrait'\"\n />\n <input\n (dateChange)=\"onChanged($event)\"\n dateTimePickerFormat\n [overrideDisplayFormat]=\"overrideDisplayFormat || (type === 'datetime' ? !showTimePicker : false)\"\n [customDisplayFormat]=\"customDisplayFormatOverride\"\n [ngClass]=\"{ invisible: !valueControl.value }\"\n #input\n matInput\n (keydown)=\"allowManualInput ? onKeyDown($event) : null\"\n (input)=\"touchControls()\"\n (blur)=\"touchControls()\"\n [tabIndex]=\"allowManualInput ? 0 : -1\"\n [min]=\"minDate || null\"\n [readonly]=\"!allowManualInput\"\n [formControl]=\"displayControl\"\n [matDatetimepicker]=\"datetimePicker\"\n autocomplete=\"false\"\n [id]=\"id\"\n [required]=\"required\"\n [placeholder]=\"placeholder\"\n />\n @if (type === 'time') {\n <button\n matTextSuffix\n type=\"button\"\n mat-icon-button\n (click)=\"toggle($event)\"\n [disabled]=\"!showTimePicker\"\n class=\"action-icon\"\n >\n <ads-icon class=\"picker\" name=\"timepicker\" [size]=\"smallSize ? 'xxs' : 'sm'\" [stroke]=\"'iconPrimary'\" />\n </button>\n } @else {\n <button matTextSuffix type=\"button\" mat-icon-button (click)=\"toggle($event)\" class=\"action-icon\">\n <ads-icon class=\"picker\" name=\"datepicker\" [size]=\"smallSize ? 'xxs' : 'sm'\" [stroke]=\"'iconPrimary'\" />\n @if (type === 'datetime') {\n <ads-icon\n class=\"sub-timepicker mat-mdc-button-persistent-ripple picker\"\n name=\"timepicker\"\n size=\"xxs\"\n [stroke]=\"'iconPrimary'\"\n />\n }\n </button>\n }\n\n @if (canClear) {\n <button matTextSuffix type=\"button\" mat-icon-button (click)=\"clear($event)\" class=\"action-icon\">\n <ads-icon class=\"cross-icon\" name=\"cross\" [size]=\"smallSize ? 'xxs' : 'xs'\" [theme]=\"'iconPrimary'\" />\n </button>\n }\n </mat-form-field>\n @if (showFooter) {\n <div class=\"footer-container\">\n @if (canShowError()) {\n <ads-error [error]=\"displayFirstError()\" [ngStyle]=\"{ width: width }\" />\n } @else if (canShowSuccess()) {\n <ads-success [success]=\"successMessage!\" [ngStyle]=\"{ width: width }\" />\n } @else if (hint) {\n <ads-hint [hint]=\"hint\" [control]=\"valueControl\" [ngStyle]=\"{ width: width }\" />\n }\n </div>\n }\n</div>\n@if (tooltip) {\n <ads-input-tooltip [tooltip]=\"tooltip\" />\n}\n", styles: [":host{display:flex;gap:12px;align-items:flex-start}:host::ng-deep mat-form-field{--mdc-filled-text-field-input-text-color: var(--color-medium);--mdc-filled-text-field-error-label-text-color: var(--color-error);--mdc-filled-text-field-label-text-color: var(--color-medium);--mdc-filled-text-field-focus-label-text-color: var(--color-medium);--mdc-filled-text-field-hover-label-text-color: var(--color-medium);--mdc-filled-text-field-label-text-size: 16px}:host::ng-deep mat-form-field .mdc-floating-label--float-above{--mdc-filled-text-field-label-text-size: 12px}:host::ng-deep mat-form-field .mdc-text-field{box-sizing:border-box;border-radius:5px;outline:1px solid var(--color-light);outline-offset:-1px;align-items:center;padding:0 12px;cursor:text;height:48px}:host::ng-deep mat-form-field .mdc-text-field .cross-icon{stroke:var(--color-medium)!important}:host::ng-deep mat-form-field .mdc-text-field.mdc-text-field--no-label .mat-mdc-form-field-flex{height:100%}:host::ng-deep mat-form-field .mdc-text-field.mdc-text-field--no-label .mat-mdc-form-field-flex .mat-mdc-form-field-infix{align-items:center}:host::ng-deep mat-form-field .mdc-text-field:not(.mdc-text-field--no-label) .mat-mdc-form-field-infix input{height:24px}:host::ng-deep mat-form-field .mdc-text-field:not(.mdc-text-field--no-label) .mat-mdc-form-field-infix input::-webkit-outer-spin-button,:host::ng-deep mat-form-field .mdc-text-field:not(.mdc-text-field--no-label) .mat-mdc-form-field-infix input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}:host::ng-deep mat-form-field .mdc-text-field:not(.mdc-text-field--no-label) .mat-mdc-form-field-infix input[type=number]{-moz-appearance:textfield}:host::ng-deep mat-form-field .mdc-text-field.mdc-text-field--invalid{outline:2px solid var(--color-error);outline-offset:-2px}:host::ng-deep mat-form-field .mdc-text-field.mdc-text-field--invalid .cross-icon,:host::ng-deep mat-form-field .mdc-text-field.mdc-text-field--invalid .visibility-eye,:host::ng-deep mat-form-field .mdc-text-field.mdc-text-field--invalid .picker{stroke:var(--color-error)!important}:host::ng-deep mat-form-field .mdc-text-field.mdc-text-field--invalid .chevron-down,:host::ng-deep mat-form-field .mdc-text-field.mdc-text-field--invalid .search-icon{color:var(--color-error)!important}:host::ng-deep mat-form-field .mdc-text-field .mat-mdc-form-field-flex{align-items:center}:host::ng-deep mat-form-field .mdc-text-field .mat-mdc-form-field-flex .mat-mdc-form-field-infix{display:flex;align-items:flex-end;width:120px}:host::ng-deep mat-form-field .mdc-text-field .mat-mdc-form-field-flex .mat-mdc-form-field-infix label{width:100%}:host::ng-deep mat-form-field .mdc-text-field .mat-mdc-form-field-flex .mat-mdc-form-field-infix label .mat-mdc-form-field-required-marker{color:var(--mdc-filled-text-field-error-label-text-color)}:host::ng-deep mat-form-field .mdc-text-field .mat-mdc-form-field-text-suffix{display:flex;align-items:center}:host::ng-deep mat-form-field .mdc-text-field .mat-mdc-form-field-text-suffix .mat-mdc-icon-button{display:flex;align-items:center;justify-content:center}:host::ng-deep mat-form-field .action-icon{padding:0;--mdc-icon-button-state-layer-size: 35px}:host::ng-deep mat-form-field .action-icon .mat-mdc-button-touch-target{height:unset;width:unset}:host::ng-deep mat-form-field.x-small .mdc-text-field{height:24px;padding:0 8px}:host::ng-deep mat-form-field.x-small .mdc-text-field .mat-mdc-form-field-input-control{font-size:12px;line-height:16px}:host::ng-deep mat-form-field.x-small .action-icon{--mdc-icon-button-state-layer-size: 22px}:host::ng-deep mat-form-field.readonly .mdc-text-field{background-color:var(--mdc-filled-text-field-disabled-container-color);border:none}:host::ng-deep mat-form-field:not(.readonly) .mdc-text-field:hover{background-color:var(--color-light-30);outline:2px solid var(--color-secondary-hover);outline-offset:-2px}:host::ng-deep mat-form-field:not(.readonly) .mdc-text-field:hover .visibility-eye{fill:var(--color-light-30)!important}:host::ng-deep mat-form-field:not(.readonly).mat-focused .mdc-text-field{outline:2px solid var(--color-medium);outline-offset:-2px;background-color:var(--color-muted)}:host::ng-deep mat-form-field:not(.readonly).mat-focused .mdc-text-field .visibility-eye{fill:var(--color-muted)!important}:host::ng-deep mat-form-field.immediate-validation .mdc-text-field{outline:2px solid var(--color-medium);outline-offset:-2px}:host::ng-deep mat-form-field.immediate-validation .mdc-text-field.mdc-text-field--invalid{outline:2px solid var(--color-error);outline-offset:-2px}:host::ng-deep mat-form-field .mat-mdc-form-field-subscript-wrapper{color:var(--mdc-filled-text-field-label-text-color)}:host::ng-deep mat-form-field .mat-mdc-form-field-subscript-wrapper:before{content:none}:host::ng-deep mat-form-field .mat-mdc-form-field-subscript-wrapper .mat-mdc-form-field-error-wrapper,:host::ng-deep mat-form-field .mat-mdc-form-field-subscript-wrapper .mat-mdc-form-field-hint-wrapper{position:relative;padding:0}:host::ng-deep mat-form-field .mdc-line-ripple{display:none}:host::ng-deep mat-form-field.success-label .mat-mdc-form-field-required-marker,:host::ng-deep mat-form-field.success-label mat-label{color:var(--color-success)!important}:host::ng-deep mat-form-field.success-label .mdc-text-field{outline:2px solid var(--color-success);outline-offset:-2px}:host::ng-deep mat-form-field.success-label .cross-icon,:host::ng-deep mat-form-field.success-label .visibility-eye,:host::ng-deep mat-form-field.success-label .picker{stroke:var(--color-success)!important}:host::ng-deep mat-form-field.success-label .chevron-down,:host::ng-deep mat-form-field.success-label .search-icon{color:var(--color-success)!important}:host::ng-deep mat-form-field.error-label mat-label{color:var(--color-error)}:host::ng-deep mat-hint{display:inline-block}:host::ng-deep .mat-mdc-form-field-hint-spacer{display:none}.info-tooltip{position:relative;top:12px}mat-error{display:flex;padding-top:2px}mat-error .error{display:flex;align-items:flex-start;gap:2px}mat-error .error ads-icon{position:relative;top:2px}\n", "button .sub-timepicker{position:absolute;top:18%;left:18%;background-color:var(--color-white);border-radius:50%}mat-form-field:not(.manual) ::ng-deep .mdc-text-field{cursor:pointer}mat-form-field:not(.manual) ::ng-deep .mdc-text-field input{cursor:pointer}::ng-deep .mdc-text-field:hover button .sub-timepicker{background-color:var(--color-light-30)}\n", ".footer-container{min-height:22.4px}\n"] }]
|
|
58
58
|
}], propDecorators: { customDisplayFormat: [{
|
|
59
59
|
type: Input
|
|
60
60
|
}] } });
|
|
61
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
61
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZXBpY2tlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2Fkcy11aS9zcmMvbGliL2NvbXBvbmVudHMvZm9ybS1maWVsZHMvZGF0ZXBpY2tlcnMvZGF0ZS1waWNrZXIvZGF0ZXBpY2tlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2Fkcy11aS9zcmMvbGliL2NvbXBvbmVudHMvZm9ybS1maWVsZHMvZGF0ZXBpY2tlcnMvZGF0ZXRpbWUtcGlja2VyL2RhdGV0aW1lcGlja2VyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2pELE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBRWhFLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDbEMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDJDQUEyQyxDQUFDOzs7Ozs7Ozs7Ozs7OztBQVl4RSxNQUFNLE9BQU8sc0JBQXVCLFNBQVEsMEJBQTBCO0lBVHRFOztRQVVFLHNFQUFzRTtRQUM3RCx3QkFBbUIsR0FBVyxXQUFXLENBQUM7UUFFbkQsY0FBYztRQUNkLFNBQUksR0FBMEIsTUFBTSxDQUFDO1FBRXJDLGNBQWM7UUFDZCxlQUFVLEdBQUcsS0FBSyxDQUFDO1FBRW5CLGNBQWM7UUFDZCxtQkFBYyxHQUFHLEtBQUssQ0FBQztRQUV2QixjQUFjO1FBQ0sseUJBQW9CLEdBQStCO1lBQ3BFLGtCQUFrQixFQUFFLDZDQUE2QztTQUNsRSxDQUFDO0tBdUJIO0lBckJDLGNBQWM7SUFDSixpQkFBaUI7UUFDekIsSUFBSSxDQUFDLDJCQUEyQixHQUFHLEVBQUUsQ0FBQztRQUV0QyxJQUFJLElBQUksQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO1lBQy9CLElBQUksQ0FBQywyQkFBMkIsR0FBRyxFQUFFLFNBQVMsRUFBRSxJQUFJLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztRQUM3RSxDQUFDO0lBQ0gsQ0FBQztJQUVELGNBQWM7SUFDSiw0QkFBNEIsQ0FBQyxLQUFXO1FBQ2hELE9BQU8sTUFBTSxDQUFDLEtBQUssRUFBRSxZQUFZLENBQUMsQ0FBQztJQUNyQyxDQUFDO0lBRUQsY0FBYztJQUNKLG9CQUFvQixDQUFDLGVBQXVCLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSztRQUMzRSxJQUFJLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxLQUFLLElBQUksRUFBRSxDQUFDO1lBQ3JDLFlBQVksR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssR0FBRyxXQUFXLENBQUM7UUFDdkQsQ0FBQztRQUNELElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRSxZQUFZLENBQUMsQ0FBQztJQUMxRCxDQUFDOzhHQXRDVSxzQkFBc0I7a0dBQXRCLHNCQUFzQixxSUNoQm5DLGd6R0E2RkE7OzJGRDdFYSxzQkFBc0I7a0JBVGxDLFNBQVM7K0JBQ0UsZ0JBQWdCOzhCQVVqQixtQkFBbUI7c0JBQTNCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBZHNEYXRldGltZXBpY2tlckNvbXBvbmVudCB9IGZyb20gJy4uL2RhdGV0aW1lLXBpY2tlcic7XG5pbXBvcnQgeyBNYXREYXRldGltZXBpY2tlclR5cGUgfSBmcm9tICdAbWF0LWRhdGV0aW1lcGlja2VyL2NvcmUvZGF0ZXRpbWVwaWNrZXIvZGF0ZXRpbWVwaWNrZXItdHlwZSc7XG5pbXBvcnQgeyBmb3JtYXQgfSBmcm9tICdkYXRlLWZucyc7XG5pbXBvcnQgeyBGT1JNQVRfREFURSB9IGZyb20gJy4uL2RhdGV0aW1lLXBpY2tlci9jdXN0b20tZGF0ZXRpbWUtZm9ybWF0JztcbmltcG9ydCB7IEdFTkVSSUNfQ09MTEVDVElPTiB9IGZyb20gJ0Bhc2NlbnRnbC9hZHMtdXRpbHMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhZHMtZGF0ZXBpY2tlcicsXG4gIHRlbXBsYXRlVXJsOiAnLi4vZGF0ZXRpbWUtcGlja2VyL2RhdGV0aW1lcGlja2VyLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbXG4gICAgJy4uLy4uL2lucHV0L2lucHV0LmNvbXBvbmVudC5zY3NzJyxcbiAgICAnLi4vZGF0ZXRpbWUtcGlja2VyL2RhdGV0aW1lcGlja2VyLmNvbXBvbmVudC5zY3NzJyxcbiAgICAnLi4vLi4vY29tbW9uL2NvbW1vbi5pbnB1dC5jb21wb25lbnQuc2NzcycsXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIEFkc0RhdGVwaWNrZXJDb21wb25lbnQgZXh0ZW5kcyBBZHNEYXRldGltZXBpY2tlckNvbXBvbmVudCB7XG4gIC8qKiBpZiBvdmVycmlkZURpc3BsYXlGb3JtYXQ9dHJ1ZSwgdGhpcyBkaXNwbGF5IGZvcm1hdCB3aWxsIGJlIHVzZWQgKi9cbiAgQElucHV0KCkgY3VzdG9tRGlzcGxheUZvcm1hdDogc3RyaW5nID0gRk9STUFUX0RBVEU7XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgdHlwZTogTWF0RGF0ZXRpbWVwaWNrZXJUeXBlID0gJ2RhdGUnO1xuXG4gIC8qKiBAaWdub3JlICovXG4gIHR3ZWx2ZUhvdXIgPSBmYWxzZTtcblxuICAvKiogQGlnbm9yZSAqL1xuICBzaG93VGltZVBpY2tlciA9IGZhbHNlO1xuXG4gIC8qKiBAaWdub3JlICovXG4gIHByb3RlY3RlZCByZWFkb25seSBkZWZhdWx0RXJyb3JNZXNzYWdlczogR0VORVJJQ19DT0xMRUNUSU9OPHN0cmluZz4gPSB7XG4gICAgbWF0RGF0ZXBpY2tlclBhcnNlOiAnRGF0ZSBtdXN0IGFwcGVhciBpbiB0aGlzIGZvcm1hdDogTU0vREQvWVlZWScsXG4gIH07XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgcHJvdGVjdGVkIGFwcGx5Q3VzdG9tRm9ybWF0KCk6IHZvaWQge1xuICAgIHRoaXMuY3VzdG9tRGlzcGxheUZvcm1hdE92ZXJyaWRlID0ge307XG5cbiAgICBpZiAodGhpcy5vdmVycmlkZURpc3BsYXlGb3JtYXQpIHtcbiAgICAgIHRoaXMuY3VzdG9tRGlzcGxheUZvcm1hdE92ZXJyaWRlID0geyBkYXRlSW5wdXQ6IHRoaXMuY3VzdG9tRGlzcGxheUZvcm1hdCB9O1xuICAgIH1cbiAgfVxuXG4gIC8qKiBAaWdub3JlICovXG4gIHByb3RlY3RlZCBkaXNwbGF5ZWRWYWx1ZVRvQ29udHJvbFZhbHVlKHZhbHVlOiBEYXRlKTogc3RyaW5nIHtcbiAgICByZXR1cm4gZm9ybWF0KHZhbHVlLCAneXl5eS1NTS1kZCcpO1xuICB9XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgcHJvdGVjdGVkIG9uU3luY0Rpc3BsYXllZFZhbHVlKHZhbHVlVG9BcHBseTogc3RyaW5nID0gdGhpcy52YWx1ZUNvbnRyb2wudmFsdWUpOiB2b2lkIHtcbiAgICBpZiAodGhpcy52YWx1ZUNvbnRyb2wudmFsdWUgIT09IG51bGwpIHtcbiAgICAgIHZhbHVlVG9BcHBseSA9IHRoaXMudmFsdWVDb250cm9sLnZhbHVlICsgJ1QwMDowMDowMCc7XG4gICAgfVxuICAgIHRoaXMuc2V0Q29udHJvbFZhbHVlKHRoaXMuZGlzcGxheUNvbnRyb2wsIHZhbHVlVG9BcHBseSk7XG4gIH1cbn1cbiIsIjxkaXYgW25nU3R5bGVdPVwieyBtaW5XaWR0aDogd2lkdGggfVwiPlxuICA8bWF0LWZvcm0tZmllbGRcbiAgICBbbmdDbGFzc109XCJ7XG4gICAgICAnaW1tZWRpYXRlLXZhbGlkYXRpb24nOiBpbW1lZGlhdGVWYWxpZGF0aW9uLFxuICAgICAgJ25vLWxlZnQtcGFkZGluZyc6ICFzaG93RXhjbGFtYXRpb24sXG4gICAgICBpbnZhbGlkOiBjYW5TaG93RXJyb3IoKSxcbiAgICAgIG1hbnVhbDogYWxsb3dNYW51YWxJbnB1dCxcbiAgICAgICdzdWNjZXNzLWxhYmVsJzogY2FuU2hvd1N1Y2Nlc3MoKSxcbiAgICAgICd4LXNtYWxsJzogc21hbGxTaXplLFxuICAgIH1cIlxuICAgIFtuZ1N0eWxlXT1cInsgd2lkdGg6IHdpZHRoIH1cIlxuICA+XG4gICAgQGlmICgobGFiZWwgfHwgcmVxdWlyZWQpICYmICFzbWFsbFNpemUpIHtcbiAgICAgIDxtYXQtbGFiZWw+e3sgbGFiZWwgfX08L21hdC1sYWJlbD5cbiAgICB9XG4gICAgPG1hdC1kYXRldGltZXBpY2tlclxuICAgICAgI2RhdGV0aW1lUGlja2VyXG4gICAgICAodmlld0NoYW5nZWQpPVwib25WaWV3Q2hhbmdlZCgkZXZlbnQpXCJcbiAgICAgIChvcGVuZWQpPVwib25PcGVuZWQoKVwiXG4gICAgICAoY2xvc2VkKT1cIm9uQ2xvc2VkKClcIlxuICAgICAgW3R5cGVdPVwidHlwZSA9PT0gJ2RhdGV0aW1lJyA/IChzaG93VGltZVBpY2tlciA/ICdkYXRldGltZScgOiAnZGF0ZScpIDogdHlwZVwiXG4gICAgICBbb3Blbk9uRm9jdXNdPVwiIWFsbG93TWFudWFsSW5wdXRcIlxuICAgICAgW3R3ZWx2ZWhvdXJdPVwidHdlbHZlSG91clwiXG4gICAgICBbdGltZUludGVydmFsXT1cIjVcIlxuICAgICAgW21vZGVdPVwiJ3BvcnRyYWl0J1wiXG4gICAgLz5cbiAgICA8aW5wdXRcbiAgICAgIChkYXRlQ2hhbmdlKT1cIm9uQ2hhbmdlZCgkZXZlbnQpXCJcbiAgICAgIGRhdGVUaW1lUGlja2VyRm9ybWF0XG4gICAgICBbb3ZlcnJpZGVEaXNwbGF5Rm9ybWF0XT1cIm92ZXJyaWRlRGlzcGxheUZvcm1hdCB8fCAodHlwZSA9PT0gJ2RhdGV0aW1lJyA/ICFzaG93VGltZVBpY2tlciA6IGZhbHNlKVwiXG4gICAgICBbY3VzdG9tRGlzcGxheUZvcm1hdF09XCJjdXN0b21EaXNwbGF5Rm9ybWF0T3ZlcnJpZGVcIlxuICAgICAgW25nQ2xhc3NdPVwieyBpbnZpc2libGU6ICF2YWx1ZUNvbnRyb2wudmFsdWUgfVwiXG4gICAgICAjaW5wdXRcbiAgICAgIG1hdElucHV0XG4gICAgICAoa2V5ZG93bik9XCJhbGxvd01hbnVhbElucHV0ID8gb25LZXlEb3duKCRldmVudCkgOiBudWxsXCJcbiAgICAgIChpbnB1dCk9XCJ0b3VjaENvbnRyb2xzKClcIlxuICAgICAgKGJsdXIpPVwidG91Y2hDb250cm9scygpXCJcbiAgICAgIFt0YWJJbmRleF09XCJhbGxvd01hbnVhbElucHV0ID8gMCA6IC0xXCJcbiAgICAgIFttaW5dPVwibWluRGF0ZSB8fCBudWxsXCJcbiAgICAgIFtyZWFkb25seV09XCIhYWxsb3dNYW51YWxJbnB1dFwiXG4gICAgICBbZm9ybUNvbnRyb2xdPVwiZGlzcGxheUNvbnRyb2xcIlxuICAgICAgW21hdERhdGV0aW1lcGlja2VyXT1cImRhdGV0aW1lUGlja2VyXCJcbiAgICAgIGF1dG9jb21wbGV0ZT1cImZhbHNlXCJcbiAgICAgIFtpZF09XCJpZFwiXG4gICAgICBbcmVxdWlyZWRdPVwicmVxdWlyZWRcIlxuICAgICAgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyXCJcbiAgICAvPlxuICAgIEBpZiAodHlwZSA9PT0gJ3RpbWUnKSB7XG4gICAgICA8YnV0dG9uXG4gICAgICAgIG1hdFRleHRTdWZmaXhcbiAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgIG1hdC1pY29uLWJ1dHRvblxuICAgICAgICAoY2xpY2spPVwidG9nZ2xlKCRldmVudClcIlxuICAgICAgICBbZGlzYWJsZWRdPVwiIXNob3dUaW1lUGlja2VyXCJcbiAgICAgICAgY2xhc3M9XCJhY3Rpb24taWNvblwiXG4gICAgICA+XG4gICAgICAgIDxhZHMtaWNvbiBjbGFzcz1cInBpY2tlclwiIG5hbWU9XCJ0aW1lcGlja2VyXCIgW3NpemVdPVwic21hbGxTaXplID8gJ3h4cycgOiAnc20nXCIgW3N0cm9rZV09XCInaWNvblByaW1hcnknXCIgLz5cbiAgICAgIDwvYnV0dG9uPlxuICAgIH0gQGVsc2Uge1xuICAgICAgPGJ1dHRvbiBtYXRUZXh0U3VmZml4IHR5cGU9XCJidXR0b25cIiBtYXQtaWNvbi1idXR0b24gKGNsaWNrKT1cInRvZ2dsZSgkZXZlbnQpXCIgY2xhc3M9XCJhY3Rpb24taWNvblwiPlxuICAgICAgICA8YWRzLWljb24gY2xhc3M9XCJwaWNrZXJcIiBuYW1lPVwiZGF0ZXBpY2tlclwiIFtzaXplXT1cInNtYWxsU2l6ZSA/ICd4eHMnIDogJ3NtJ1wiIFtzdHJva2VdPVwiJ2ljb25QcmltYXJ5J1wiIC8+XG4gICAgICAgIEBpZiAodHlwZSA9PT0gJ2RhdGV0aW1lJykge1xuICAgICAgICAgIDxhZHMtaWNvblxuICAgICAgICAgICAgY2xhc3M9XCJzdWItdGltZXBpY2tlciBtYXQtbWRjLWJ1dHRvbi1wZXJzaXN0ZW50LXJpcHBsZSBwaWNrZXJcIlxuICAgICAgICAgICAgbmFtZT1cInRpbWVwaWNrZXJcIlxuICAgICAgICAgICAgc2l6ZT1cInh4c1wiXG4gICAgICAgICAgICBbc3Ryb2tlXT1cIidpY29uUHJpbWFyeSdcIlxuICAgICAgICAgIC8+XG4gICAgICAgIH1cbiAgICAgIDwvYnV0dG9uPlxuICAgIH1cblxuICAgIEBpZiAoY2FuQ2xlYXIpIHtcbiAgICAgIDxidXR0b24gbWF0VGV4dFN1ZmZpeCB0eXBlPVwiYnV0dG9uXCIgbWF0LWljb24tYnV0dG9uIChjbGljayk9XCJjbGVhcigkZXZlbnQpXCIgY2xhc3M9XCJhY3Rpb24taWNvblwiPlxuICAgICAgICA8YWRzLWljb24gY2xhc3M9XCJjcm9zcy1pY29uXCIgbmFtZT1cImNyb3NzXCIgW3NpemVdPVwic21hbGxTaXplID8gJ3h4cycgOiAneHMnXCIgW3RoZW1lXT1cIidpY29uUHJpbWFyeSdcIiAvPlxuICAgICAgPC9idXR0b24+XG4gICAgfVxuICA8L21hdC1mb3JtLWZpZWxkPlxuICBAaWYgKHNob3dGb290ZXIpIHtcbiAgICA8ZGl2IGNsYXNzPVwiZm9vdGVyLWNvbnRhaW5lclwiPlxuICAgICAgQGlmIChjYW5TaG93RXJyb3IoKSkge1xuICAgICAgICA8YWRzLWVycm9yIFtlcnJvcl09XCJkaXNwbGF5Rmlyc3RFcnJvcigpXCIgW25nU3R5bGVdPVwieyB3aWR0aDogd2lkdGggfVwiIC8+XG4gICAgICB9IEBlbHNlIGlmIChjYW5TaG93U3VjY2VzcygpKSB7XG4gICAgICAgIDxhZHMtc3VjY2VzcyBbc3VjY2Vzc109XCJzdWNjZXNzTWVzc2FnZSFcIiBbbmdTdHlsZV09XCJ7IHdpZHRoOiB3aWR0aCB9XCIgLz5cbiAgICAgIH0gQGVsc2UgaWYgKGhpbnQpIHtcbiAgICAgICAgPGFkcy1oaW50IFtoaW50XT1cImhpbnRcIiBbY29udHJvbF09XCJ2YWx1ZUNvbnRyb2xcIiBbbmdTdHlsZV09XCJ7IHdpZHRoOiB3aWR0aCB9XCIgLz5cbiAgICAgIH1cbiAgICA8L2Rpdj5cbiAgfVxuPC9kaXY+XG5AaWYgKHRvb2x0aXApIHtcbiAgPGFkcy1pbnB1dC10b29sdGlwIFt0b29sdGlwXT1cInRvb2x0aXBcIiAvPlxufVxuIl19
|
package/esm2022/lib/components/form-fields/datepickers/datetime-picker/datetimepicker.component.mjs
CHANGED
|
@@ -367,11 +367,11 @@ export class AdsDatetimepickerComponent extends AbstractInputComponent {
|
|
|
367
367
|
return this.removeOffset(value, this.getRequiredOffset(value));
|
|
368
368
|
}
|
|
369
369
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: AdsDatetimepickerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
370
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.1.1", type: AdsDatetimepickerComponent, selector: "ads-datetimepicker", inputs: { twelveHour: "twelveHour", offset: "offset", allowPastValues: "allowPastValues", allowManualInput: "allowManualInput", useShortcuts: "useShortcuts", overrideDisplayFormat: "overrideDisplayFormat", showTimePicker: "showTimePicker", customDisplayFormat: "customDisplayFormat" }, viewQueries: [{ propertyName: "picker", first: true, predicate: MatDatetimepickerComponent, descendants: true }, { propertyName: "input", first: true, predicate: ["input"], descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div [ngStyle]=\"{ minWidth: width }\">\n <mat-form-field\n [ngClass]=\"{\n 'immediate-validation': immediateValidation,\n 'no-left-padding': !showExclamation,\n invalid: canShowError(),\n manual: allowManualInput,\n 'success-label': canShowSuccess(),\n 'x-small': smallSize,\n }\"\n [ngStyle]=\"{ width: width }\"\n >\n @if ((label || required) && !smallSize) {\n <mat-label>{{ label }}</mat-label>\n }\n <mat-datetimepicker\n #datetimePicker\n (viewChanged)=\"onViewChanged($event)\"\n (opened)=\"onOpened()\"\n (closed)=\"onClosed()\"\n [type]=\"type === 'datetime' ? (showTimePicker ? 'datetime' : 'date') : type\"\n [openOnFocus]=\"!allowManualInput\"\n [twelvehour]=\"twelveHour\"\n [timeInterval]=\"5\"\n [mode]=\"'portrait'\"\n />\n <input\n (dateChange)=\"onChanged($event)\"\n dateTimePickerFormat\n [overrideDisplayFormat]=\"overrideDisplayFormat || (type === 'datetime' ? !showTimePicker : false)\"\n [customDisplayFormat]=\"customDisplayFormatOverride\"\n [ngClass]=\"{ invisible: !valueControl.value }\"\n #input\n matInput\n (keydown)=\"allowManualInput ? onKeyDown($event) : null\"\n (input)=\"touchControls()\"\n (blur)=\"touchControls()\"\n [tabIndex]=\"allowManualInput ? 0 : -1\"\n [min]=\"minDate || null\"\n [readonly]=\"!allowManualInput\"\n [formControl]=\"displayControl\"\n [matDatetimepicker]=\"datetimePicker\"\n autocomplete=\"false\"\n [id]=\"id\"\n [required]=\"required\"\n [placeholder]=\"placeholder\"\n />\n @if (type === 'time') {\n <button\n matTextSuffix\n type=\"button\"\n mat-icon-button\n (click)=\"toggle($event)\"\n [disabled]=\"!showTimePicker\"\n class=\"action-icon\"\n >\n <ads-icon class=\"picker\" name=\"timepicker\" [size]=\"smallSize ? 'xxs' : 'sm'\" [stroke]=\"'iconPrimary'\" />\n </button>\n } @else {\n <button matTextSuffix type=\"button\" mat-icon-button (click)=\"toggle($event)\" class=\"action-icon\">\n <ads-icon class=\"picker\" name=\"datepicker\" [size]=\"smallSize ? 'xxs' : 'sm'\" [stroke]=\"'iconPrimary'\" />\n @if (type === 'datetime') {\n <ads-icon\n class=\"sub-timepicker mat-mdc-button-persistent-ripple picker\"\n name=\"timepicker\"\n size=\"xxs\"\n [stroke]=\"'iconPrimary'\"\n />\n }\n </button>\n }\n\n @if (canClear) {\n <button matTextSuffix type=\"button\" mat-icon-button (click)=\"clear($event)\" class=\"action-icon\">\n <ads-icon class=\"cross-icon\" name=\"cross\" [size]=\"smallSize ? 'xxs' : 'xs'\" [theme]=\"'iconPrimary'\" />\n </button>\n }\n </mat-form-field>\n @if (showFooter) {\n <div class=\"footer-container\">\n @if (canShowError()) {\n <ads-error [error]=\"displayFirstError()\" [ngStyle]=\"{ width: width }\" />\n } @else if (canShowSuccess()) {\n <ads-success [success]=\"successMessage!\" [ngStyle]=\"{ width: width }\" />\n } @else if (hint) {\n <ads-hint [hint]=\"hint\" [control]=\"valueControl\" [ngStyle]=\"{ width: width }\" />\n }\n </div>\n }\n</div>\n@if (tooltip) {\n <ads-input-tooltip [tooltip]=\"tooltip\" />\n}\n", styles: [":host{display:flex;gap:12px;align-items:flex-start}:host::ng-deep mat-form-field{--mdc-filled-text-field-input-text-color: var(--color-medium);--mdc-filled-text-field-error-label-text-color: var(--color-error);--mdc-filled-text-field-label-text-color: var(--color-medium);--mdc-filled-text-field-focus-label-text-color: var(--color-medium);--mdc-filled-text-field-hover-label-text-color: var(--color-medium);--mdc-filled-text-field-label-text-size: 16px}:host::ng-deep mat-form-field .mdc-floating-label--float-above{--mdc-filled-text-field-label-text-size: 12px}:host::ng-deep mat-form-field .mdc-text-field{box-sizing:border-box;border-radius:5px;outline:1px solid var(--color-light);outline-offset:-1px;align-items:center;padding:0 12px;cursor:text;height:48px}:host::ng-deep mat-form-field .mdc-text-field .cross-icon{stroke:var(--color-medium)!important}:host::ng-deep mat-form-field .mdc-text-field.mdc-text-field--no-label .mat-mdc-form-field-flex{height:100%}:host::ng-deep mat-form-field .mdc-text-field.mdc-text-field--no-label .mat-mdc-form-field-flex .mat-mdc-form-field-infix{align-items:center}:host::ng-deep mat-form-field .mdc-text-field:not(.mdc-text-field--no-label) .mat-mdc-form-field-infix input{height:24px}:host::ng-deep mat-form-field .mdc-text-field:not(.mdc-text-field--no-label) .mat-mdc-form-field-infix input::-webkit-outer-spin-button,:host::ng-deep mat-form-field .mdc-text-field:not(.mdc-text-field--no-label) .mat-mdc-form-field-infix input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}:host::ng-deep mat-form-field .mdc-text-field:not(.mdc-text-field--no-label) .mat-mdc-form-field-infix input[type=number]{-moz-appearance:textfield}:host::ng-deep mat-form-field .mdc-text-field.mdc-text-field--invalid{outline:2px solid var(--color-error);outline-offset:-2px}:host::ng-deep mat-form-field .mdc-text-field.mdc-text-field--invalid .cross-icon,:host::ng-deep mat-form-field .mdc-text-field.mdc-text-field--invalid .visibility-eye,:host::ng-deep mat-form-field .mdc-text-field.mdc-text-field--invalid .picker{stroke:var(--color-error)!important}:host::ng-deep mat-form-field .mdc-text-field.mdc-text-field--invalid .chevron-down,:host::ng-deep mat-form-field .mdc-text-field.mdc-text-field--invalid .search-icon{color:var(--color-error)!important}:host::ng-deep mat-form-field .mdc-text-field .mat-mdc-form-field-flex{align-items:center}:host::ng-deep mat-form-field .mdc-text-field .mat-mdc-form-field-flex .mat-mdc-form-field-infix{display:flex;align-items:flex-end;width:120px}:host::ng-deep mat-form-field .mdc-text-field .mat-mdc-form-field-flex .mat-mdc-form-field-infix label{width:100%}:host::ng-deep mat-form-field .mdc-text-field .mat-mdc-form-field-flex .mat-mdc-form-field-infix label .mat-mdc-form-field-required-marker{color:var(--mdc-filled-text-field-error-label-text-color)}:host::ng-deep mat-form-field .mdc-text-field .mat-mdc-form-field-text-suffix{display:flex;align-items:center}:host::ng-deep mat-form-field .mdc-text-field .mat-mdc-form-field-text-suffix .mat-mdc-icon-button{display:flex;align-items:center;justify-content:center}:host::ng-deep mat-form-field .action-icon{padding:0;--mdc-icon-button-state-layer-size: 35px}:host::ng-deep mat-form-field .action-icon .mat-mdc-button-touch-target{height:unset;width:unset}:host::ng-deep mat-form-field.x-small .mdc-text-field{height:24px;padding:0 8px}:host::ng-deep mat-form-field.x-small .mdc-text-field .mat-mdc-form-field-input-control{font-size:12px;line-height:16px}:host::ng-deep mat-form-field.x-small .action-icon{--mdc-icon-button-state-layer-size: 22px}:host::ng-deep mat-form-field.readonly .mdc-text-field{background-color:var(--mdc-filled-text-field-disabled-container-color);border:none}:host::ng-deep mat-form-field:not(.readonly) .mdc-text-field:hover{background-color:var(--color-light-30);outline:2px solid var(--color-secondary-hover);outline-offset:-2px}:host::ng-deep mat-form-field:not(.readonly) .mdc-text-field:hover .visibility-eye{fill:var(--color-light-30)!important}:host::ng-deep mat-form-field:not(.readonly).mat-focused .mdc-text-field{outline:2px solid var(--color-medium);outline-offset:-2px;background-color:var(--color-muted)}:host::ng-deep mat-form-field:not(.readonly).mat-focused .mdc-text-field .visibility-eye{fill:var(--color-muted)!important}:host::ng-deep mat-form-field.immediate-validation .mdc-text-field{outline:2px solid var(--color-medium);outline-offset:-2px}:host::ng-deep mat-form-field.immediate-validation .mdc-text-field.mdc-text-field--invalid{outline:2px solid var(--color-error);outline-offset:-2px}:host::ng-deep mat-form-field .mat-mdc-form-field-subscript-wrapper{color:var(--mdc-filled-text-field-label-text-color)}:host::ng-deep mat-form-field .mat-mdc-form-field-subscript-wrapper:before{content:none}:host::ng-deep mat-form-field .mat-mdc-form-field-subscript-wrapper .mat-mdc-form-field-error-wrapper,:host::ng-deep mat-form-field .mat-mdc-form-field-subscript-wrapper .mat-mdc-form-field-hint-wrapper{position:relative;padding:0}:host::ng-deep mat-form-field .mdc-line-ripple{display:none}:host::ng-deep mat-form-field.success-label .mat-mdc-form-field-required-marker,:host::ng-deep mat-form-field.success-label mat-label{color:var(--color-success)!important}:host::ng-deep mat-form-field.success-label .mdc-text-field{outline:2px solid var(--color-success);outline-offset:-2px}:host::ng-deep mat-form-field.success-label .cross-icon,:host::ng-deep mat-form-field.success-label .visibility-eye,:host::ng-deep mat-form-field.success-label .picker{stroke:var(--color-success)!important}:host::ng-deep mat-form-field.success-label .chevron-down,:host::ng-deep mat-form-field.success-label .search-icon{color:var(--color-success)!important}:host::ng-deep mat-form-field.error-label mat-label{color:var(--color-error)}:host::ng-deep mat-hint{display:inline-block}:host::ng-deep .mat-mdc-form-field-hint-spacer{display:none}.info-tooltip{position:relative;top:12px}mat-error{display:flex;padding-top:2px}mat-error .error{display:flex;align-items:flex-start;gap:2px}mat-error .error ads-icon{position:relative;top:2px}\n", "button .sub-timepicker{position:absolute;top:18%;left:18%;background-color:var(--color-white);border-radius:50%}mat-form-field:not(.manual) ::ng-deep .mdc-text-field{cursor:pointer}mat-form-field:not(.manual) ::ng-deep .mdc-text-field input{cursor:pointer}::ng-deep .mdc-text-field:hover button .sub-timepicker{background-color:var(--color-light-30)}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: i2.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i2.MatLabel, selector: "mat-label" }, { kind: "directive", type: i2.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "directive", type: i3.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "directive", type: i4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i4.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: i5.AdsIconComponent, selector: "ads-icon", inputs: ["size", "name", "color", "theme", "stroke"] }, { kind: "component", type: i6.MatDatetimepickerComponent, selector: "mat-datetimepicker", inputs: ["multiYearSelector", "twelvehour", "startView", "mode", "timeInterval", "ariaNextMonthLabel", "ariaPrevMonthLabel", "ariaNextYearLabel", "ariaPrevYearLabel", "preventSameDateTimeSelection", "panelClass", "startAt", "openOnFocus", "type", "touchUi", "disabled"], outputs: ["selectedChanged", "opened", "closed", "viewChanged"], exportAs: ["matDatetimepicker"] }, { kind: "directive", type: i6.MatDatetimepickerInputDirective, selector: "input[matDatetimepicker]", inputs: ["matDatetimepicker", "matDatepickerFilter", "value", "min", "max", "disabled"], outputs: ["dateChange", "dateInput"], exportAs: ["matDatepickerInput"] }, { kind: "directive", type: i7.DateTimePickerFormatDirective, selector: "[dateTimePickerFormat]", inputs: ["customDisplayFormat", "overrideDisplayFormat"] }, { kind: "component", type: i8.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "component", type: i9.AdsInputTooltipComponent, selector: "ads-input-tooltip", inputs: ["tooltip", "smallSize"] }, { kind: "component", type: i10.AdsErrorComponent, selector: "ads-error", inputs: ["error"] }, { kind: "component", type: i11.AdsHintComponent, selector: "ads-hint", inputs: ["control", "hint"] }, { kind: "component", type: i12.AdsSuccessComponent, selector: "ads-success", inputs: ["success"] }] }); }
|
|
370
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.1.1", type: AdsDatetimepickerComponent, selector: "ads-datetimepicker", inputs: { twelveHour: "twelveHour", offset: "offset", allowPastValues: "allowPastValues", allowManualInput: "allowManualInput", useShortcuts: "useShortcuts", overrideDisplayFormat: "overrideDisplayFormat", showTimePicker: "showTimePicker", customDisplayFormat: "customDisplayFormat" }, viewQueries: [{ propertyName: "picker", first: true, predicate: MatDatetimepickerComponent, descendants: true }, { propertyName: "input", first: true, predicate: ["input"], descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div [ngStyle]=\"{ minWidth: width }\">\n <mat-form-field\n [ngClass]=\"{\n 'immediate-validation': immediateValidation,\n 'no-left-padding': !showExclamation,\n invalid: canShowError(),\n manual: allowManualInput,\n 'success-label': canShowSuccess(),\n 'x-small': smallSize,\n }\"\n [ngStyle]=\"{ width: width }\"\n >\n @if ((label || required) && !smallSize) {\n <mat-label>{{ label }}</mat-label>\n }\n <mat-datetimepicker\n #datetimePicker\n (viewChanged)=\"onViewChanged($event)\"\n (opened)=\"onOpened()\"\n (closed)=\"onClosed()\"\n [type]=\"type === 'datetime' ? (showTimePicker ? 'datetime' : 'date') : type\"\n [openOnFocus]=\"!allowManualInput\"\n [twelvehour]=\"twelveHour\"\n [timeInterval]=\"5\"\n [mode]=\"'portrait'\"\n />\n <input\n (dateChange)=\"onChanged($event)\"\n dateTimePickerFormat\n [overrideDisplayFormat]=\"overrideDisplayFormat || (type === 'datetime' ? !showTimePicker : false)\"\n [customDisplayFormat]=\"customDisplayFormatOverride\"\n [ngClass]=\"{ invisible: !valueControl.value }\"\n #input\n matInput\n (keydown)=\"allowManualInput ? onKeyDown($event) : null\"\n (input)=\"touchControls()\"\n (blur)=\"touchControls()\"\n [tabIndex]=\"allowManualInput ? 0 : -1\"\n [min]=\"minDate || null\"\n [readonly]=\"!allowManualInput\"\n [formControl]=\"displayControl\"\n [matDatetimepicker]=\"datetimePicker\"\n autocomplete=\"false\"\n [id]=\"id\"\n [required]=\"required\"\n [placeholder]=\"placeholder\"\n />\n @if (type === 'time') {\n <button\n matTextSuffix\n type=\"button\"\n mat-icon-button\n (click)=\"toggle($event)\"\n [disabled]=\"!showTimePicker\"\n class=\"action-icon\"\n >\n <ads-icon class=\"picker\" name=\"timepicker\" [size]=\"smallSize ? 'xxs' : 'sm'\" [stroke]=\"'iconPrimary'\" />\n </button>\n } @else {\n <button matTextSuffix type=\"button\" mat-icon-button (click)=\"toggle($event)\" class=\"action-icon\">\n <ads-icon class=\"picker\" name=\"datepicker\" [size]=\"smallSize ? 'xxs' : 'sm'\" [stroke]=\"'iconPrimary'\" />\n @if (type === 'datetime') {\n <ads-icon\n class=\"sub-timepicker mat-mdc-button-persistent-ripple picker\"\n name=\"timepicker\"\n size=\"xxs\"\n [stroke]=\"'iconPrimary'\"\n />\n }\n </button>\n }\n\n @if (canClear) {\n <button matTextSuffix type=\"button\" mat-icon-button (click)=\"clear($event)\" class=\"action-icon\">\n <ads-icon class=\"cross-icon\" name=\"cross\" [size]=\"smallSize ? 'xxs' : 'xs'\" [theme]=\"'iconPrimary'\" />\n </button>\n }\n </mat-form-field>\n @if (showFooter) {\n <div class=\"footer-container\">\n @if (canShowError()) {\n <ads-error [error]=\"displayFirstError()\" [ngStyle]=\"{ width: width }\" />\n } @else if (canShowSuccess()) {\n <ads-success [success]=\"successMessage!\" [ngStyle]=\"{ width: width }\" />\n } @else if (hint) {\n <ads-hint [hint]=\"hint\" [control]=\"valueControl\" [ngStyle]=\"{ width: width }\" />\n }\n </div>\n }\n</div>\n@if (tooltip) {\n <ads-input-tooltip [tooltip]=\"tooltip\" />\n}\n", styles: [":host{display:flex;gap:12px;align-items:flex-start}:host::ng-deep mat-form-field{--mdc-filled-text-field-input-text-color: var(--color-medium);--mdc-filled-text-field-error-label-text-color: var(--color-error);--mdc-filled-text-field-label-text-color: var(--color-medium);--mdc-filled-text-field-focus-label-text-color: var(--color-medium);--mdc-filled-text-field-hover-label-text-color: var(--color-medium);--mdc-filled-text-field-label-text-size: 16px}:host::ng-deep mat-form-field .mdc-floating-label--float-above{--mdc-filled-text-field-label-text-size: 12px}:host::ng-deep mat-form-field .mdc-text-field{box-sizing:border-box;border-radius:5px;outline:1px solid var(--color-light);outline-offset:-1px;align-items:center;padding:0 12px;cursor:text;height:48px}:host::ng-deep mat-form-field .mdc-text-field .cross-icon{stroke:var(--color-medium)!important}:host::ng-deep mat-form-field .mdc-text-field.mdc-text-field--no-label .mat-mdc-form-field-flex{height:100%}:host::ng-deep mat-form-field .mdc-text-field.mdc-text-field--no-label .mat-mdc-form-field-flex .mat-mdc-form-field-infix{align-items:center}:host::ng-deep mat-form-field .mdc-text-field:not(.mdc-text-field--no-label) .mat-mdc-form-field-infix input{height:24px}:host::ng-deep mat-form-field .mdc-text-field:not(.mdc-text-field--no-label) .mat-mdc-form-field-infix input::-webkit-outer-spin-button,:host::ng-deep mat-form-field .mdc-text-field:not(.mdc-text-field--no-label) .mat-mdc-form-field-infix input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}:host::ng-deep mat-form-field .mdc-text-field:not(.mdc-text-field--no-label) .mat-mdc-form-field-infix input[type=number]{-moz-appearance:textfield}:host::ng-deep mat-form-field .mdc-text-field.mdc-text-field--invalid{outline:2px solid var(--color-error);outline-offset:-2px}:host::ng-deep mat-form-field .mdc-text-field.mdc-text-field--invalid .cross-icon,:host::ng-deep mat-form-field .mdc-text-field.mdc-text-field--invalid .visibility-eye,:host::ng-deep mat-form-field .mdc-text-field.mdc-text-field--invalid .picker{stroke:var(--color-error)!important}:host::ng-deep mat-form-field .mdc-text-field.mdc-text-field--invalid .chevron-down,:host::ng-deep mat-form-field .mdc-text-field.mdc-text-field--invalid .search-icon{color:var(--color-error)!important}:host::ng-deep mat-form-field .mdc-text-field .mat-mdc-form-field-flex{align-items:center}:host::ng-deep mat-form-field .mdc-text-field .mat-mdc-form-field-flex .mat-mdc-form-field-infix{display:flex;align-items:flex-end;width:120px}:host::ng-deep mat-form-field .mdc-text-field .mat-mdc-form-field-flex .mat-mdc-form-field-infix label{width:100%}:host::ng-deep mat-form-field .mdc-text-field .mat-mdc-form-field-flex .mat-mdc-form-field-infix label .mat-mdc-form-field-required-marker{color:var(--mdc-filled-text-field-error-label-text-color)}:host::ng-deep mat-form-field .mdc-text-field .mat-mdc-form-field-text-suffix{display:flex;align-items:center}:host::ng-deep mat-form-field .mdc-text-field .mat-mdc-form-field-text-suffix .mat-mdc-icon-button{display:flex;align-items:center;justify-content:center}:host::ng-deep mat-form-field .action-icon{padding:0;--mdc-icon-button-state-layer-size: 35px}:host::ng-deep mat-form-field .action-icon .mat-mdc-button-touch-target{height:unset;width:unset}:host::ng-deep mat-form-field.x-small .mdc-text-field{height:24px;padding:0 8px}:host::ng-deep mat-form-field.x-small .mdc-text-field .mat-mdc-form-field-input-control{font-size:12px;line-height:16px}:host::ng-deep mat-form-field.x-small .action-icon{--mdc-icon-button-state-layer-size: 22px}:host::ng-deep mat-form-field.readonly .mdc-text-field{background-color:var(--mdc-filled-text-field-disabled-container-color);border:none}:host::ng-deep mat-form-field:not(.readonly) .mdc-text-field:hover{background-color:var(--color-light-30);outline:2px solid var(--color-secondary-hover);outline-offset:-2px}:host::ng-deep mat-form-field:not(.readonly) .mdc-text-field:hover .visibility-eye{fill:var(--color-light-30)!important}:host::ng-deep mat-form-field:not(.readonly).mat-focused .mdc-text-field{outline:2px solid var(--color-medium);outline-offset:-2px;background-color:var(--color-muted)}:host::ng-deep mat-form-field:not(.readonly).mat-focused .mdc-text-field .visibility-eye{fill:var(--color-muted)!important}:host::ng-deep mat-form-field.immediate-validation .mdc-text-field{outline:2px solid var(--color-medium);outline-offset:-2px}:host::ng-deep mat-form-field.immediate-validation .mdc-text-field.mdc-text-field--invalid{outline:2px solid var(--color-error);outline-offset:-2px}:host::ng-deep mat-form-field .mat-mdc-form-field-subscript-wrapper{color:var(--mdc-filled-text-field-label-text-color)}:host::ng-deep mat-form-field .mat-mdc-form-field-subscript-wrapper:before{content:none}:host::ng-deep mat-form-field .mat-mdc-form-field-subscript-wrapper .mat-mdc-form-field-error-wrapper,:host::ng-deep mat-form-field .mat-mdc-form-field-subscript-wrapper .mat-mdc-form-field-hint-wrapper{position:relative;padding:0}:host::ng-deep mat-form-field .mdc-line-ripple{display:none}:host::ng-deep mat-form-field.success-label .mat-mdc-form-field-required-marker,:host::ng-deep mat-form-field.success-label mat-label{color:var(--color-success)!important}:host::ng-deep mat-form-field.success-label .mdc-text-field{outline:2px solid var(--color-success);outline-offset:-2px}:host::ng-deep mat-form-field.success-label .cross-icon,:host::ng-deep mat-form-field.success-label .visibility-eye,:host::ng-deep mat-form-field.success-label .picker{stroke:var(--color-success)!important}:host::ng-deep mat-form-field.success-label .chevron-down,:host::ng-deep mat-form-field.success-label .search-icon{color:var(--color-success)!important}:host::ng-deep mat-form-field.error-label mat-label{color:var(--color-error)}:host::ng-deep mat-hint{display:inline-block}:host::ng-deep .mat-mdc-form-field-hint-spacer{display:none}.info-tooltip{position:relative;top:12px}mat-error{display:flex;padding-top:2px}mat-error .error{display:flex;align-items:flex-start;gap:2px}mat-error .error ads-icon{position:relative;top:2px}\n", "button .sub-timepicker{position:absolute;top:18%;left:18%;background-color:var(--color-white);border-radius:50%}mat-form-field:not(.manual) ::ng-deep .mdc-text-field{cursor:pointer}mat-form-field:not(.manual) ::ng-deep .mdc-text-field input{cursor:pointer}::ng-deep .mdc-text-field:hover button .sub-timepicker{background-color:var(--color-light-30)}\n", ".footer-container{min-height:22.4px}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: i2.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i2.MatLabel, selector: "mat-label" }, { kind: "directive", type: i2.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "directive", type: i3.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "directive", type: i4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i4.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: i5.AdsIconComponent, selector: "ads-icon", inputs: ["size", "name", "color", "theme", "stroke"] }, { kind: "component", type: i6.MatDatetimepickerComponent, selector: "mat-datetimepicker", inputs: ["multiYearSelector", "twelvehour", "startView", "mode", "timeInterval", "ariaNextMonthLabel", "ariaPrevMonthLabel", "ariaNextYearLabel", "ariaPrevYearLabel", "preventSameDateTimeSelection", "panelClass", "startAt", "openOnFocus", "type", "touchUi", "disabled"], outputs: ["selectedChanged", "opened", "closed", "viewChanged"], exportAs: ["matDatetimepicker"] }, { kind: "directive", type: i6.MatDatetimepickerInputDirective, selector: "input[matDatetimepicker]", inputs: ["matDatetimepicker", "matDatepickerFilter", "value", "min", "max", "disabled"], outputs: ["dateChange", "dateInput"], exportAs: ["matDatepickerInput"] }, { kind: "directive", type: i7.DateTimePickerFormatDirective, selector: "[dateTimePickerFormat]", inputs: ["customDisplayFormat", "overrideDisplayFormat"] }, { kind: "component", type: i8.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "component", type: i9.AdsInputTooltipComponent, selector: "ads-input-tooltip", inputs: ["tooltip", "smallSize"] }, { kind: "component", type: i10.AdsErrorComponent, selector: "ads-error", inputs: ["error"] }, { kind: "component", type: i11.AdsHintComponent, selector: "ads-hint", inputs: ["control", "hint"] }, { kind: "component", type: i12.AdsSuccessComponent, selector: "ads-success", inputs: ["success"] }] }); }
|
|
371
371
|
}
|
|
372
372
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: AdsDatetimepickerComponent, decorators: [{
|
|
373
373
|
type: Component,
|
|
374
|
-
args: [{ selector: 'ads-datetimepicker', template: "<div [ngStyle]=\"{ minWidth: width }\">\n <mat-form-field\n [ngClass]=\"{\n 'immediate-validation': immediateValidation,\n 'no-left-padding': !showExclamation,\n invalid: canShowError(),\n manual: allowManualInput,\n 'success-label': canShowSuccess(),\n 'x-small': smallSize,\n }\"\n [ngStyle]=\"{ width: width }\"\n >\n @if ((label || required) && !smallSize) {\n <mat-label>{{ label }}</mat-label>\n }\n <mat-datetimepicker\n #datetimePicker\n (viewChanged)=\"onViewChanged($event)\"\n (opened)=\"onOpened()\"\n (closed)=\"onClosed()\"\n [type]=\"type === 'datetime' ? (showTimePicker ? 'datetime' : 'date') : type\"\n [openOnFocus]=\"!allowManualInput\"\n [twelvehour]=\"twelveHour\"\n [timeInterval]=\"5\"\n [mode]=\"'portrait'\"\n />\n <input\n (dateChange)=\"onChanged($event)\"\n dateTimePickerFormat\n [overrideDisplayFormat]=\"overrideDisplayFormat || (type === 'datetime' ? !showTimePicker : false)\"\n [customDisplayFormat]=\"customDisplayFormatOverride\"\n [ngClass]=\"{ invisible: !valueControl.value }\"\n #input\n matInput\n (keydown)=\"allowManualInput ? onKeyDown($event) : null\"\n (input)=\"touchControls()\"\n (blur)=\"touchControls()\"\n [tabIndex]=\"allowManualInput ? 0 : -1\"\n [min]=\"minDate || null\"\n [readonly]=\"!allowManualInput\"\n [formControl]=\"displayControl\"\n [matDatetimepicker]=\"datetimePicker\"\n autocomplete=\"false\"\n [id]=\"id\"\n [required]=\"required\"\n [placeholder]=\"placeholder\"\n />\n @if (type === 'time') {\n <button\n matTextSuffix\n type=\"button\"\n mat-icon-button\n (click)=\"toggle($event)\"\n [disabled]=\"!showTimePicker\"\n class=\"action-icon\"\n >\n <ads-icon class=\"picker\" name=\"timepicker\" [size]=\"smallSize ? 'xxs' : 'sm'\" [stroke]=\"'iconPrimary'\" />\n </button>\n } @else {\n <button matTextSuffix type=\"button\" mat-icon-button (click)=\"toggle($event)\" class=\"action-icon\">\n <ads-icon class=\"picker\" name=\"datepicker\" [size]=\"smallSize ? 'xxs' : 'sm'\" [stroke]=\"'iconPrimary'\" />\n @if (type === 'datetime') {\n <ads-icon\n class=\"sub-timepicker mat-mdc-button-persistent-ripple picker\"\n name=\"timepicker\"\n size=\"xxs\"\n [stroke]=\"'iconPrimary'\"\n />\n }\n </button>\n }\n\n @if (canClear) {\n <button matTextSuffix type=\"button\" mat-icon-button (click)=\"clear($event)\" class=\"action-icon\">\n <ads-icon class=\"cross-icon\" name=\"cross\" [size]=\"smallSize ? 'xxs' : 'xs'\" [theme]=\"'iconPrimary'\" />\n </button>\n }\n </mat-form-field>\n @if (showFooter) {\n <div class=\"footer-container\">\n @if (canShowError()) {\n <ads-error [error]=\"displayFirstError()\" [ngStyle]=\"{ width: width }\" />\n } @else if (canShowSuccess()) {\n <ads-success [success]=\"successMessage!\" [ngStyle]=\"{ width: width }\" />\n } @else if (hint) {\n <ads-hint [hint]=\"hint\" [control]=\"valueControl\" [ngStyle]=\"{ width: width }\" />\n }\n </div>\n }\n</div>\n@if (tooltip) {\n <ads-input-tooltip [tooltip]=\"tooltip\" />\n}\n", styles: [":host{display:flex;gap:12px;align-items:flex-start}:host::ng-deep mat-form-field{--mdc-filled-text-field-input-text-color: var(--color-medium);--mdc-filled-text-field-error-label-text-color: var(--color-error);--mdc-filled-text-field-label-text-color: var(--color-medium);--mdc-filled-text-field-focus-label-text-color: var(--color-medium);--mdc-filled-text-field-hover-label-text-color: var(--color-medium);--mdc-filled-text-field-label-text-size: 16px}:host::ng-deep mat-form-field .mdc-floating-label--float-above{--mdc-filled-text-field-label-text-size: 12px}:host::ng-deep mat-form-field .mdc-text-field{box-sizing:border-box;border-radius:5px;outline:1px solid var(--color-light);outline-offset:-1px;align-items:center;padding:0 12px;cursor:text;height:48px}:host::ng-deep mat-form-field .mdc-text-field .cross-icon{stroke:var(--color-medium)!important}:host::ng-deep mat-form-field .mdc-text-field.mdc-text-field--no-label .mat-mdc-form-field-flex{height:100%}:host::ng-deep mat-form-field .mdc-text-field.mdc-text-field--no-label .mat-mdc-form-field-flex .mat-mdc-form-field-infix{align-items:center}:host::ng-deep mat-form-field .mdc-text-field:not(.mdc-text-field--no-label) .mat-mdc-form-field-infix input{height:24px}:host::ng-deep mat-form-field .mdc-text-field:not(.mdc-text-field--no-label) .mat-mdc-form-field-infix input::-webkit-outer-spin-button,:host::ng-deep mat-form-field .mdc-text-field:not(.mdc-text-field--no-label) .mat-mdc-form-field-infix input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}:host::ng-deep mat-form-field .mdc-text-field:not(.mdc-text-field--no-label) .mat-mdc-form-field-infix input[type=number]{-moz-appearance:textfield}:host::ng-deep mat-form-field .mdc-text-field.mdc-text-field--invalid{outline:2px solid var(--color-error);outline-offset:-2px}:host::ng-deep mat-form-field .mdc-text-field.mdc-text-field--invalid .cross-icon,:host::ng-deep mat-form-field .mdc-text-field.mdc-text-field--invalid .visibility-eye,:host::ng-deep mat-form-field .mdc-text-field.mdc-text-field--invalid .picker{stroke:var(--color-error)!important}:host::ng-deep mat-form-field .mdc-text-field.mdc-text-field--invalid .chevron-down,:host::ng-deep mat-form-field .mdc-text-field.mdc-text-field--invalid .search-icon{color:var(--color-error)!important}:host::ng-deep mat-form-field .mdc-text-field .mat-mdc-form-field-flex{align-items:center}:host::ng-deep mat-form-field .mdc-text-field .mat-mdc-form-field-flex .mat-mdc-form-field-infix{display:flex;align-items:flex-end;width:120px}:host::ng-deep mat-form-field .mdc-text-field .mat-mdc-form-field-flex .mat-mdc-form-field-infix label{width:100%}:host::ng-deep mat-form-field .mdc-text-field .mat-mdc-form-field-flex .mat-mdc-form-field-infix label .mat-mdc-form-field-required-marker{color:var(--mdc-filled-text-field-error-label-text-color)}:host::ng-deep mat-form-field .mdc-text-field .mat-mdc-form-field-text-suffix{display:flex;align-items:center}:host::ng-deep mat-form-field .mdc-text-field .mat-mdc-form-field-text-suffix .mat-mdc-icon-button{display:flex;align-items:center;justify-content:center}:host::ng-deep mat-form-field .action-icon{padding:0;--mdc-icon-button-state-layer-size: 35px}:host::ng-deep mat-form-field .action-icon .mat-mdc-button-touch-target{height:unset;width:unset}:host::ng-deep mat-form-field.x-small .mdc-text-field{height:24px;padding:0 8px}:host::ng-deep mat-form-field.x-small .mdc-text-field .mat-mdc-form-field-input-control{font-size:12px;line-height:16px}:host::ng-deep mat-form-field.x-small .action-icon{--mdc-icon-button-state-layer-size: 22px}:host::ng-deep mat-form-field.readonly .mdc-text-field{background-color:var(--mdc-filled-text-field-disabled-container-color);border:none}:host::ng-deep mat-form-field:not(.readonly) .mdc-text-field:hover{background-color:var(--color-light-30);outline:2px solid var(--color-secondary-hover);outline-offset:-2px}:host::ng-deep mat-form-field:not(.readonly) .mdc-text-field:hover .visibility-eye{fill:var(--color-light-30)!important}:host::ng-deep mat-form-field:not(.readonly).mat-focused .mdc-text-field{outline:2px solid var(--color-medium);outline-offset:-2px;background-color:var(--color-muted)}:host::ng-deep mat-form-field:not(.readonly).mat-focused .mdc-text-field .visibility-eye{fill:var(--color-muted)!important}:host::ng-deep mat-form-field.immediate-validation .mdc-text-field{outline:2px solid var(--color-medium);outline-offset:-2px}:host::ng-deep mat-form-field.immediate-validation .mdc-text-field.mdc-text-field--invalid{outline:2px solid var(--color-error);outline-offset:-2px}:host::ng-deep mat-form-field .mat-mdc-form-field-subscript-wrapper{color:var(--mdc-filled-text-field-label-text-color)}:host::ng-deep mat-form-field .mat-mdc-form-field-subscript-wrapper:before{content:none}:host::ng-deep mat-form-field .mat-mdc-form-field-subscript-wrapper .mat-mdc-form-field-error-wrapper,:host::ng-deep mat-form-field .mat-mdc-form-field-subscript-wrapper .mat-mdc-form-field-hint-wrapper{position:relative;padding:0}:host::ng-deep mat-form-field .mdc-line-ripple{display:none}:host::ng-deep mat-form-field.success-label .mat-mdc-form-field-required-marker,:host::ng-deep mat-form-field.success-label mat-label{color:var(--color-success)!important}:host::ng-deep mat-form-field.success-label .mdc-text-field{outline:2px solid var(--color-success);outline-offset:-2px}:host::ng-deep mat-form-field.success-label .cross-icon,:host::ng-deep mat-form-field.success-label .visibility-eye,:host::ng-deep mat-form-field.success-label .picker{stroke:var(--color-success)!important}:host::ng-deep mat-form-field.success-label .chevron-down,:host::ng-deep mat-form-field.success-label .search-icon{color:var(--color-success)!important}:host::ng-deep mat-form-field.error-label mat-label{color:var(--color-error)}:host::ng-deep mat-hint{display:inline-block}:host::ng-deep .mat-mdc-form-field-hint-spacer{display:none}.info-tooltip{position:relative;top:12px}mat-error{display:flex;padding-top:2px}mat-error .error{display:flex;align-items:flex-start;gap:2px}mat-error .error ads-icon{position:relative;top:2px}\n", "button .sub-timepicker{position:absolute;top:18%;left:18%;background-color:var(--color-white);border-radius:50%}mat-form-field:not(.manual) ::ng-deep .mdc-text-field{cursor:pointer}mat-form-field:not(.manual) ::ng-deep .mdc-text-field input{cursor:pointer}::ng-deep .mdc-text-field:hover button .sub-timepicker{background-color:var(--color-light-30)}\n"] }]
|
|
374
|
+
args: [{ selector: 'ads-datetimepicker', template: "<div [ngStyle]=\"{ minWidth: width }\">\n <mat-form-field\n [ngClass]=\"{\n 'immediate-validation': immediateValidation,\n 'no-left-padding': !showExclamation,\n invalid: canShowError(),\n manual: allowManualInput,\n 'success-label': canShowSuccess(),\n 'x-small': smallSize,\n }\"\n [ngStyle]=\"{ width: width }\"\n >\n @if ((label || required) && !smallSize) {\n <mat-label>{{ label }}</mat-label>\n }\n <mat-datetimepicker\n #datetimePicker\n (viewChanged)=\"onViewChanged($event)\"\n (opened)=\"onOpened()\"\n (closed)=\"onClosed()\"\n [type]=\"type === 'datetime' ? (showTimePicker ? 'datetime' : 'date') : type\"\n [openOnFocus]=\"!allowManualInput\"\n [twelvehour]=\"twelveHour\"\n [timeInterval]=\"5\"\n [mode]=\"'portrait'\"\n />\n <input\n (dateChange)=\"onChanged($event)\"\n dateTimePickerFormat\n [overrideDisplayFormat]=\"overrideDisplayFormat || (type === 'datetime' ? !showTimePicker : false)\"\n [customDisplayFormat]=\"customDisplayFormatOverride\"\n [ngClass]=\"{ invisible: !valueControl.value }\"\n #input\n matInput\n (keydown)=\"allowManualInput ? onKeyDown($event) : null\"\n (input)=\"touchControls()\"\n (blur)=\"touchControls()\"\n [tabIndex]=\"allowManualInput ? 0 : -1\"\n [min]=\"minDate || null\"\n [readonly]=\"!allowManualInput\"\n [formControl]=\"displayControl\"\n [matDatetimepicker]=\"datetimePicker\"\n autocomplete=\"false\"\n [id]=\"id\"\n [required]=\"required\"\n [placeholder]=\"placeholder\"\n />\n @if (type === 'time') {\n <button\n matTextSuffix\n type=\"button\"\n mat-icon-button\n (click)=\"toggle($event)\"\n [disabled]=\"!showTimePicker\"\n class=\"action-icon\"\n >\n <ads-icon class=\"picker\" name=\"timepicker\" [size]=\"smallSize ? 'xxs' : 'sm'\" [stroke]=\"'iconPrimary'\" />\n </button>\n } @else {\n <button matTextSuffix type=\"button\" mat-icon-button (click)=\"toggle($event)\" class=\"action-icon\">\n <ads-icon class=\"picker\" name=\"datepicker\" [size]=\"smallSize ? 'xxs' : 'sm'\" [stroke]=\"'iconPrimary'\" />\n @if (type === 'datetime') {\n <ads-icon\n class=\"sub-timepicker mat-mdc-button-persistent-ripple picker\"\n name=\"timepicker\"\n size=\"xxs\"\n [stroke]=\"'iconPrimary'\"\n />\n }\n </button>\n }\n\n @if (canClear) {\n <button matTextSuffix type=\"button\" mat-icon-button (click)=\"clear($event)\" class=\"action-icon\">\n <ads-icon class=\"cross-icon\" name=\"cross\" [size]=\"smallSize ? 'xxs' : 'xs'\" [theme]=\"'iconPrimary'\" />\n </button>\n }\n </mat-form-field>\n @if (showFooter) {\n <div class=\"footer-container\">\n @if (canShowError()) {\n <ads-error [error]=\"displayFirstError()\" [ngStyle]=\"{ width: width }\" />\n } @else if (canShowSuccess()) {\n <ads-success [success]=\"successMessage!\" [ngStyle]=\"{ width: width }\" />\n } @else if (hint) {\n <ads-hint [hint]=\"hint\" [control]=\"valueControl\" [ngStyle]=\"{ width: width }\" />\n }\n </div>\n }\n</div>\n@if (tooltip) {\n <ads-input-tooltip [tooltip]=\"tooltip\" />\n}\n", styles: [":host{display:flex;gap:12px;align-items:flex-start}:host::ng-deep mat-form-field{--mdc-filled-text-field-input-text-color: var(--color-medium);--mdc-filled-text-field-error-label-text-color: var(--color-error);--mdc-filled-text-field-label-text-color: var(--color-medium);--mdc-filled-text-field-focus-label-text-color: var(--color-medium);--mdc-filled-text-field-hover-label-text-color: var(--color-medium);--mdc-filled-text-field-label-text-size: 16px}:host::ng-deep mat-form-field .mdc-floating-label--float-above{--mdc-filled-text-field-label-text-size: 12px}:host::ng-deep mat-form-field .mdc-text-field{box-sizing:border-box;border-radius:5px;outline:1px solid var(--color-light);outline-offset:-1px;align-items:center;padding:0 12px;cursor:text;height:48px}:host::ng-deep mat-form-field .mdc-text-field .cross-icon{stroke:var(--color-medium)!important}:host::ng-deep mat-form-field .mdc-text-field.mdc-text-field--no-label .mat-mdc-form-field-flex{height:100%}:host::ng-deep mat-form-field .mdc-text-field.mdc-text-field--no-label .mat-mdc-form-field-flex .mat-mdc-form-field-infix{align-items:center}:host::ng-deep mat-form-field .mdc-text-field:not(.mdc-text-field--no-label) .mat-mdc-form-field-infix input{height:24px}:host::ng-deep mat-form-field .mdc-text-field:not(.mdc-text-field--no-label) .mat-mdc-form-field-infix input::-webkit-outer-spin-button,:host::ng-deep mat-form-field .mdc-text-field:not(.mdc-text-field--no-label) .mat-mdc-form-field-infix input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}:host::ng-deep mat-form-field .mdc-text-field:not(.mdc-text-field--no-label) .mat-mdc-form-field-infix input[type=number]{-moz-appearance:textfield}:host::ng-deep mat-form-field .mdc-text-field.mdc-text-field--invalid{outline:2px solid var(--color-error);outline-offset:-2px}:host::ng-deep mat-form-field .mdc-text-field.mdc-text-field--invalid .cross-icon,:host::ng-deep mat-form-field .mdc-text-field.mdc-text-field--invalid .visibility-eye,:host::ng-deep mat-form-field .mdc-text-field.mdc-text-field--invalid .picker{stroke:var(--color-error)!important}:host::ng-deep mat-form-field .mdc-text-field.mdc-text-field--invalid .chevron-down,:host::ng-deep mat-form-field .mdc-text-field.mdc-text-field--invalid .search-icon{color:var(--color-error)!important}:host::ng-deep mat-form-field .mdc-text-field .mat-mdc-form-field-flex{align-items:center}:host::ng-deep mat-form-field .mdc-text-field .mat-mdc-form-field-flex .mat-mdc-form-field-infix{display:flex;align-items:flex-end;width:120px}:host::ng-deep mat-form-field .mdc-text-field .mat-mdc-form-field-flex .mat-mdc-form-field-infix label{width:100%}:host::ng-deep mat-form-field .mdc-text-field .mat-mdc-form-field-flex .mat-mdc-form-field-infix label .mat-mdc-form-field-required-marker{color:var(--mdc-filled-text-field-error-label-text-color)}:host::ng-deep mat-form-field .mdc-text-field .mat-mdc-form-field-text-suffix{display:flex;align-items:center}:host::ng-deep mat-form-field .mdc-text-field .mat-mdc-form-field-text-suffix .mat-mdc-icon-button{display:flex;align-items:center;justify-content:center}:host::ng-deep mat-form-field .action-icon{padding:0;--mdc-icon-button-state-layer-size: 35px}:host::ng-deep mat-form-field .action-icon .mat-mdc-button-touch-target{height:unset;width:unset}:host::ng-deep mat-form-field.x-small .mdc-text-field{height:24px;padding:0 8px}:host::ng-deep mat-form-field.x-small .mdc-text-field .mat-mdc-form-field-input-control{font-size:12px;line-height:16px}:host::ng-deep mat-form-field.x-small .action-icon{--mdc-icon-button-state-layer-size: 22px}:host::ng-deep mat-form-field.readonly .mdc-text-field{background-color:var(--mdc-filled-text-field-disabled-container-color);border:none}:host::ng-deep mat-form-field:not(.readonly) .mdc-text-field:hover{background-color:var(--color-light-30);outline:2px solid var(--color-secondary-hover);outline-offset:-2px}:host::ng-deep mat-form-field:not(.readonly) .mdc-text-field:hover .visibility-eye{fill:var(--color-light-30)!important}:host::ng-deep mat-form-field:not(.readonly).mat-focused .mdc-text-field{outline:2px solid var(--color-medium);outline-offset:-2px;background-color:var(--color-muted)}:host::ng-deep mat-form-field:not(.readonly).mat-focused .mdc-text-field .visibility-eye{fill:var(--color-muted)!important}:host::ng-deep mat-form-field.immediate-validation .mdc-text-field{outline:2px solid var(--color-medium);outline-offset:-2px}:host::ng-deep mat-form-field.immediate-validation .mdc-text-field.mdc-text-field--invalid{outline:2px solid var(--color-error);outline-offset:-2px}:host::ng-deep mat-form-field .mat-mdc-form-field-subscript-wrapper{color:var(--mdc-filled-text-field-label-text-color)}:host::ng-deep mat-form-field .mat-mdc-form-field-subscript-wrapper:before{content:none}:host::ng-deep mat-form-field .mat-mdc-form-field-subscript-wrapper .mat-mdc-form-field-error-wrapper,:host::ng-deep mat-form-field .mat-mdc-form-field-subscript-wrapper .mat-mdc-form-field-hint-wrapper{position:relative;padding:0}:host::ng-deep mat-form-field .mdc-line-ripple{display:none}:host::ng-deep mat-form-field.success-label .mat-mdc-form-field-required-marker,:host::ng-deep mat-form-field.success-label mat-label{color:var(--color-success)!important}:host::ng-deep mat-form-field.success-label .mdc-text-field{outline:2px solid var(--color-success);outline-offset:-2px}:host::ng-deep mat-form-field.success-label .cross-icon,:host::ng-deep mat-form-field.success-label .visibility-eye,:host::ng-deep mat-form-field.success-label .picker{stroke:var(--color-success)!important}:host::ng-deep mat-form-field.success-label .chevron-down,:host::ng-deep mat-form-field.success-label .search-icon{color:var(--color-success)!important}:host::ng-deep mat-form-field.error-label mat-label{color:var(--color-error)}:host::ng-deep mat-hint{display:inline-block}:host::ng-deep .mat-mdc-form-field-hint-spacer{display:none}.info-tooltip{position:relative;top:12px}mat-error{display:flex;padding-top:2px}mat-error .error{display:flex;align-items:flex-start;gap:2px}mat-error .error ads-icon{position:relative;top:2px}\n", "button .sub-timepicker{position:absolute;top:18%;left:18%;background-color:var(--color-white);border-radius:50%}mat-form-field:not(.manual) ::ng-deep .mdc-text-field{cursor:pointer}mat-form-field:not(.manual) ::ng-deep .mdc-text-field input{cursor:pointer}::ng-deep .mdc-text-field:hover button .sub-timepicker{background-color:var(--color-light-30)}\n", ".footer-container{min-height:22.4px}\n"] }]
|
|
375
375
|
}], ctorParameters: () => [], propDecorators: { picker: [{
|
|
376
376
|
type: ViewChild,
|
|
377
377
|
args: [MatDatetimepickerComponent]
|
|
@@ -395,4 +395,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.1", ngImpor
|
|
|
395
395
|
type: ViewChild,
|
|
396
396
|
args: ['input']
|
|
397
397
|
}] } });
|
|
398
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZXRpbWVwaWNrZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hZHMtdWkvc3JjL2xpYi9jb21wb25lbnRzL2Zvcm0tZmllbGRzL2RhdGVwaWNrZXJzL2RhdGV0aW1lLXBpY2tlci9kYXRldGltZXBpY2tlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2Fkcy11aS9zcmMvbGliL2NvbXBvbmVudHMvZm9ybS1maWVsZHMvZGF0ZXBpY2tlcnMvZGF0ZXRpbWUtcGlja2VyL2RhdGV0aW1lcGlja2VyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxLQUFLLEVBQ0wsU0FBUyxFQUtULGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsVUFBVSxFQUNWLE1BQU0sR0FDUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUNsRixPQUFPLEVBQWUsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFekQsT0FBTyxFQUFFLFlBQVksRUFBRSxpQkFBaUIsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBRy9GLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDL0IsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sRUFBRSwwQkFBMEIsRUFBK0IsTUFBTSwwQkFBMEIsQ0FBQztBQUVuRyxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7QUFPMUUsTUFBTSxPQUFPLDBCQUEyQixTQUFRLHNCQUFzQjtJQStEcEU7UUFDRSxLQUFLLEVBQUUsQ0FBQztRQTVEViw0SEFBNEg7UUFDbkgsZUFBVSxHQUFHLEtBQUssQ0FBQztRQUs1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Q0FBQyxZQUFZLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQ2pFLENBQUM7OEdBMWJVLDBCQUEwQjtrR0FBMUIsMEJBQTBCLGdZQUUxQiwwQkFBMEIsNktDL0J2QyxnekdBNkZBOzsyRkRoRWEsMEJBQTBCO2tCQUx0QyxTQUFTOytCQUNFLG9CQUFvQjt3REFNUyxNQUFNO3NCQUE1QyxTQUFTO3VCQUFDLDBCQUEwQjtnQkFHNUIsVUFBVTtzQkFBbEIsS0FBSztnQkFHRyxNQUFNO3NCQUFkLEtBQUs7Z0JBR0csZUFBZTtzQkFBdkIsS0FBSztnQkFHRyxnQkFBZ0I7c0JBQXhCLEtBQUs7Z0JBR0csWUFBWTtzQkFBcEIsS0FBSztnQkFHRyxxQkFBcUI7c0JBQTdCLEtBQUs7Z0JBR0csY0FBYztzQkFBdEIsS0FBSztnQkFHRyxtQkFBbUI7c0JBQTNCLEtBQUs7Z0JBR2MsS0FBSztzQkFBeEIsU0FBUzt1QkFBQyxPQUFPIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgSW5wdXQsXG4gIENvbXBvbmVudCxcbiAgT25Jbml0LFxuICBPbkRlc3Ryb3ksXG4gIFNpbXBsZUNoYW5nZSxcbiAgT25DaGFuZ2VzLFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgVmlld0NoaWxkLFxuICBFbGVtZW50UmVmLFxuICBpbmplY3QsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWJzdHJhY3RJbnB1dENvbXBvbmVudCB9IGZyb20gJy4uLy4uL2Fic3RyYWN0cy9hYnN0cmFjdC5pbnB1dC5jb21wb25lbnQnO1xuaW1wb3J0IHsgRm9ybUNvbnRyb2wsIFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGFkc0ljb25Dcm9zcywgYWRzSWNvbkRhdGVwaWNrZXIsIGFkc0ljb25UaW1lcGlja2VyIH0gZnJvbSAnQGFzY2VudGdsL2Fkcy1pY29ucy9pY29ucyc7XG5pbXBvcnQgeyBNYXREYXRldGltZXBpY2tlclR5cGUgfSBmcm9tICdAbWF0LWRhdGV0aW1lcGlja2VyL2NvcmUvZGF0ZXRpbWVwaWNrZXIvZGF0ZXRpbWVwaWNrZXItdHlwZSc7XG5pbXBvcnQgeyBHRU5FUklDX0NPTExFQ1RJT04gfSBmcm9tICdAYXNjZW50Z2wvYWRzLXV0aWxzJztcbmltcG9ydCB7IGFkZCB9IGZyb20gJ2RhdGUtZm5zJztcbmltcG9ydCB7IEZPUk1BVF9EQVRFVElNRSB9IGZyb20gJy4vY3VzdG9tLWRhdGV0aW1lLWZvcm1hdCc7XG5pbXBvcnQgeyBNYXREYXRldGltZXBpY2tlckNvbXBvbmVudCwgTWF0RGF0ZXRpbWVwaWNrZXJJbnB1dEV2ZW50IH0gZnJvbSAnQG1hdC1kYXRldGltZXBpY2tlci9jb3JlJztcbmltcG9ydCB7IE1hdENhbGVuZGFyVmlldyB9IGZyb20gJ0BtYXQtZGF0ZXRpbWVwaWNrZXIvY29yZS9kYXRldGltZXBpY2tlci9jYWxlbmRhcic7XG5pbXBvcnQgeyBEYXRldGltZVRlbXBsYXRlRm9ybWF0dGVyIH0gZnJvbSAnLi9kYXRldGltZS10ZW1wbGF0ZS5mb3JtYXR0ZXInO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhZHMtZGF0ZXRpbWVwaWNrZXInLFxuICB0ZW1wbGF0ZVVybDogJy4vZGF0ZXRpbWVwaWNrZXIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi4vLi4vaW5wdXQvaW5wdXQuY29tcG9uZW50LnNjc3MnLCAnLi9kYXRldGltZXBpY2tlci5jb21wb25lbnQuc2NzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBBZHNEYXRldGltZXBpY2tlckNvbXBvbmVudCBleHRlbmRzIEFic3RyYWN0SW5wdXRDb21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMsIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgLyoqIEBpZ25vcmUgKi9cbiAgQFZpZXdDaGlsZChNYXREYXRldGltZXBpY2tlckNvbXBvbmVudCkgcGlja2VyPzogTWF0RGF0ZXRpbWVwaWNrZXJDb21wb25lbnQ8dW5rbm93bj47XG5cbiAgLyoqIENob29zZSBiZXR3ZWVuIDEyIGFuZCAyNCBob3VyIHRpbWUgaW5wdXQgbW9kZS4gTk9URTogdHdlbHZlSG91cj10cnVlIG1heSBoYXZlIG1pbm9yIGlzc3VlcyB3aGVuIGFsbG93UGFzdFZhbHVlcz1mYWxzZSAqL1xuICBASW5wdXQoKSB0d2VsdmVIb3VyID0gZmFsc2U7XG5cbiAgLyoqIFNldCB0aW1lIG9mZnNldCByZWxhdGl2ZSB0byBHTVQuIElmIHBhcmFtZXRlciBpcyBvbWl0dGVkIG9mZnNldCB3aWxsIGJlIGNhbGN1bGF0ZWQgYmFzZWQgb24gYnJvd3NlciBpbmZvICovXG4gIEBJbnB1dCgpIG9mZnNldD86IG51bWJlcjtcblxuICAvKiogQWxsb3cgb3IgZm9yYmlkIGNob29zaW5nIGRhdGUgdmFsdWVzIGZyb20gdGhlIHBhc3QgKi9cbiAgQElucHV0KCkgYWxsb3dQYXN0VmFsdWVzID0gdHJ1ZTtcblxuICAvKiogU2V0IHRvIGlucHV0dGluZyB2YWx1ZSBtYW51YWxseSAqL1xuICBASW5wdXQoKSBhbGxvd01hbnVhbElucHV0ID0gdHJ1ZTtcblxuICAvKiogV2hldGhlciB0byB1c2Uga2V5IHNob3J0Y3V0cyAoXCJ5XCIsIFwiblwiLCBcInRcIikgZm9yIHNldHRpbmcgdGhlIHZhbHVlICovXG4gIEBJbnB1dCgpIHVzZVNob3J0Y3V0cyA9IHRydWU7XG5cbiAgLyoqIFNldCB0byB1c2UgY3VzdG9tIGRpc3BsYXkgZm9ybWF0LCBvdmVycmlkaW5nIHRoZSBvbmUsIHByb3ZpZGVkIGJ5IGxvY2FsZSAqL1xuICBASW5wdXQoKSBvdmVycmlkZURpc3BsYXlGb3JtYXQgPSB0cnVlO1xuXG4gIC8qKiBTaG93IG9yIGhpZGUgdGltZSBwaWNrZXIgKi9cbiAgQElucHV0KCkgc2hvd1RpbWVQaWNrZXIgPSB0cnVlO1xuXG4gIC8qKiBpZiBvdmVycmlkZURpc3BsYXlGb3JtYXQ9dHJ1ZSwgdGhpcyBkaXNwbGF5IGZvcm1hdCB3aWxsIGJlIHVzZWQgKi9cbiAgQElucHV0KCkgY3VzdG9tRGlzcGxheUZvcm1hdDogc3RyaW5nID0gRk9STUFUX0RBVEVUSU1FO1xuXG4gIC8qKiBAaWdub3JlICovXG4gIEBWaWV3Q2hpbGQoJ2lucHV0JykgaW5wdXQ/OiBFbGVtZW50UmVmO1xuXG4gIC8qKiBAaWdub3JlICovXG4gIGN1c3RvbURpc3BsYXlGb3JtYXRPdmVycmlkZTogR0VORVJJQ19DT0xMRUNUSU9OID0ge307XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgdHlwZTogTWF0RGF0ZXRpbWVwaWNrZXJUeXBlID0gJ2RhdGV0aW1lJztcblxuICAvKiogQGlnbm9yZSAqL1xuICBtaW5EYXRlPzogc3RyaW5nO1xuXG4gIC8qKiBAaWdub3JlICovXG4gIHByb3RlY3RlZCBzaG9ydGN1dHM6IEdFTkVSSUNfQ09MTEVDVElPTiA9IHtcbiAgICB5OiAtMSwgLy95ZXN0ZXJkYXlcbiAgICBuOiAwLCAvL25vd1xuICAgIHQ6IDEsIC8vdG9tb3Jyb3dcbiAgfTtcblxuICAvKiogQGlnbm9yZSAqL1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgZGVmYXVsdEVycm9yTWVzc2FnZXM6IEdFTkVSSUNfQ09MTEVDVElPTjxzdHJpbmc+ID0ge1xuICAgIG1hdERhdGVwaWNrZXJQYXJzZTogJ0RhdGUgYW5kIFRpbWUgbXVzdCBhcHBlYXIgaW4gdGhpcyBmb3JtYXQ6IE1NL0REL1lZWVkgSEg6bW0nLFxuICAgIG1hdERhdGVwaWNrZXJNaW46ICdUaGUgdmFsdWUgaXMgdG9vIG9sZCcsXG4gIH07XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgcHJpdmF0ZSBzdWJzY3JpcHRpb25zOiBTdWJzY3JpcHRpb25bXSA9IFtdO1xuXG4gIC8qKiBAaWdub3JlICovXG4gIHByaXZhdGUgaXNEaXNwbGF5VmFsdWVDaGFuZ2VSZWdpc3RlcmVkID0gZmFsc2U7XG5cbiAgcHJpdmF0ZSBjZHIgPSBpbmplY3QoQ2hhbmdlRGV0ZWN0b3JSZWYpO1xuXG4gIHByaXZhdGUgdGVtcGxhdGVGb3JtYXR0ZXIgPSBuZXcgRGF0ZXRpbWVUZW1wbGF0ZUZvcm1hdHRlcigpO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKCk7XG4gICAgdGhpcy5yZWdpc3RyeS5yZWdpc3RlcihbYWRzSWNvbkNyb3NzLCBhZHNJY29uRGF0ZXBpY2tlciwgYWRzSWNvblRpbWVwaWNrZXJdKTtcbiAgfVxuXG4gIC8qKiBAaWdub3JlICovXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuc2V0dXBTdWJzY3JpcHRpb25zKCk7XG4gICAgdGhpcy5hcHBseUN1c3RvbUZvcm1hdCgpO1xuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgfVxuICAvKiogQGlnbm9yZSAqL1xuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiB7XG4gICAgY3VzdG9tRGlzcGxheUZvcm1hdDogU2ltcGxlQ2hhbmdlO1xuICAgIG9mZnNldDogU2ltcGxlQ2hhbmdlO1xuICAgIHNob3dUaW1lUGlja2VyOiBTaW1wbGVDaGFuZ2U7XG4gICAgaW1tZWRpYXRlVmFsaWRhdGlvbjogU2ltcGxlQ2hhbmdlO1xuICB9KTogdm9pZCB7XG4gICAgaWYgKGNoYW5nZXMuY3VzdG9tRGlzcGxheUZvcm1hdCB8fCBjaGFuZ2VzLnNob3dUaW1lUGlja2VyKSB7XG4gICAgICB0aGlzLmFwcGx5Q3VzdG9tRm9ybWF0KCk7XG4gICAgfVxuXG4gICAgaWYgKGNoYW5nZXMub2Zmc2V0ICYmICFjaGFuZ2VzLm9mZnNldC5pc0ZpcnN0Q2hhbmdlKCkpIHtcbiAgICAgIHRoaXMuc3luY0Rpc3BsYXllZFZhbHVlKCk7XG4gICAgfVxuXG4gICAgc3VwZXIubmdPbkNoYW5nZXMoY2hhbmdlcyk7XG4gIH1cblxuICAvKiogQGlnbm9yZSAqL1xuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMuZm9yRWFjaCgoc3Vic2NyaXB0aW9uKSA9PiBzdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKSk7XG4gIH1cblxuICAvKiogQGlnbm9yZSAqL1xuICB0b2dnbGUoZXZlbnQ6IE1vdXNlRXZlbnQpOiB2b2lkIHtcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICBpZiAodGhpcy5waWNrZXI/Lm9wZW5lZCkge1xuICAgICAgdGhpcy5waWNrZXIuY2xvc2UoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5waWNrZXI/Lm9wZW4oKTtcbiAgICB9XG4gIH1cblxuICAvKiogQGlnbm9yZSAqL1xuICBnZXQgc2hvd0V4Y2xhbWF0aW9uKCkge1xuICAgIHJldHVybiB0aGlzLnNob3dFeGNsYW1hdGlvbk9uRXJyb3IgJiYgdGhpcy5kaXNwbGF5Q29udHJvbC5pbnZhbGlkICYmIHRoaXMuZGlzcGxheUNvbnRyb2wudG91Y2hlZDtcbiAgfVxuXG4gIGdldCBjYW5DbGVhcigpIHtcbiAgICByZXR1cm4gdGhpcy5zaG93Q2xlYXJCdXR0b24gJiYgISF0aGlzLmlucHV0Py5uYXRpdmVFbGVtZW50LnZhbHVlO1xuICB9XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgY2FuU2hvd0Vycm9yKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhIXRoaXMuZGlzcGxheUNvbnRyb2wuZXJyb3JzICYmICh0aGlzLmRpc3BsYXlDb250cm9sLnRvdWNoZWQgfHwgdGhpcy5pbW1lZGlhdGVWYWxpZGF0aW9uKTtcbiAgfVxuXG4gIC8qKiBAaWdub3JlICovXG4gIGRpc3BsYXlGaXJzdEVycm9yKGNvbnRyb2w6IEZvcm1Db250cm9sID0gdGhpcy5kaXNwbGF5Q29udHJvbCk6IHN0cmluZyB7XG4gICAgLyoqXG4gICAgICogaWYgd2UgaGF2ZSBmb3JtYXQgZXJyb3IgLSBtYWtlIHN1cmUgdG8gc2hvdyBpdCBmaXJzdFxuICAgICAqL1xuICAgIGlmICh0aGlzLmRpc3BsYXlDb250cm9sLmVycm9ycz8ubWF0RGF0ZXBpY2tlclBhcnNlKSB7XG4gICAgICB0aGlzLmRpc3BsYXlDb250cm9sLnNldEVycm9ycyh7IG1hdERhdGVwaWNrZXJQYXJzZTogdGhpcy5kaXNwbGF5Q29udHJvbC5lcnJvcnM/Lm1hdERhdGVwaWNrZXJQYXJzZSB9KTtcbiAgICB9XG5cbiAgICByZXR1cm4gc3VwZXIuZGlzcGxheUZpcnN0RXJyb3IoY29udHJvbCk7XG4gIH1cblxuICAvKiogQGlnbm9yZSAqL1xuICBvbktleURvd24oZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcbiAgICBpZiAoIShldmVudC50YXJnZXQgaW5zdGFuY2VvZiBIVE1MSW5wdXRFbGVtZW50KSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIGJsdXIgaW5wdXQgdG8gbWFrZSBzdXJlIHRoZSB2YWx1ZSBpcyBhcHBsaWVkXG4gICAgICovXG4gICAgaWYgKGV2ZW50LmtleSA9PT0gJ0VudGVyJyAmJiBldmVudC50YXJnZXQgaW5zdGFuY2VvZiBIVE1MSW5wdXRFbGVtZW50KSB7XG4gICAgICB0aGlzLnNldE1pblZhbHVlKCk7XG4gICAgICBldmVudC50YXJnZXQuYmx1cigpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICghdGhpcy51c2VTaG9ydGN1dHMpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBzaG9ydGN1dE9mZnNldCA9IHRoaXMuc2hvcnRjdXRzW2V2ZW50LmtleS50b0xvd2VyQ2FzZSgpXTtcblxuICAgIC8qKlxuICAgICAqIGlmIG9uZSBvZiB0aGUgc2hvcnRjdXRzIHdhcyBjbGlja2VkIC0gc2V0IGN1cnJlbnQgZGF0ZSB2YWx1ZSBhY2NvcmRpbmdseVxuICAgICAqL1xuICAgIGlmIChzaG9ydGN1dE9mZnNldCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAvKipcbiAgICAgICAqIGNyZWF0ZSBkYXRlIG9iamVjdC4gdGFraW5nIGludG8gYWNjb3VudCBzaG9ydGN1dCBvZmZzZXQgKHllc3RlcmRheSwgbm93LCB0b21vcnJvdylcbiAgICAgICAqL1xuICAgICAgY29uc3QgdmFsdWU6IERhdGUgPSB0aGlzLmNyZWF0ZURhdGUoc2hvcnRjdXRPZmZzZXQpO1xuXG4gICAgICAvKipcbiAgICAgICAqIHNldCBkYXRlIG9iamVjdCB0byByZXF1aXJlZCBvZmZzZXQgdmFsdWUsIGFuZCBhcHBseSBpdCB0byB2YWx1ZUNvbnRyb2xcbiAgICAgICAqIChpdCB3aWxsIGV2ZW50dWFsbHkgc3luYyBkaXNwbGF5Q29udHJvbCB0b28pXG4gICAgICAgKi9cbiAgICAgIHRoaXMub25DaGFuZ2VkKHRoaXMuZGF0ZVRvUmVxdWlyZWRPZmZzZXQodmFsdWUpLnRvSVNPU3RyaW5nKCkpO1xuXG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIH1cbiAgfVxuXG4gIC8qKiBAaWdub3JlICovXG4gIHRvdWNoQ29udHJvbHMoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLmRpc3BsYXlDb250cm9sLnRvdWNoZWQpIHtcbiAgICAgIHRoaXMuZGlzcGxheUNvbnRyb2wubWFya0FzVG91Y2hlZCgpO1xuICAgIH1cblxuICAgIGlmICghdGhpcy52YWx1ZUNvbnRyb2wudG91Y2hlZCkge1xuICAgICAgdGhpcy52YWx1ZUNvbnRyb2wubWFya0FzVG91Y2hlZCgpO1xuICAgIH1cblxuICAgIGlmICghdGhpcy5kaXNwbGF5Q29udHJvbC5kaXJ0eSkge1xuICAgICAgdGhpcy5kaXNwbGF5Q29udHJvbC5tYXJrQXNEaXJ0eSgpO1xuICAgIH1cblxuICAgIGlmICghdGhpcy52YWx1ZUNvbnRyb2wuZGlydHkpIHtcbiAgICAgIHRoaXMudmFsdWVDb250cm9sLm1hcmtBc0RpcnR5KCk7XG4gICAgfVxuICB9XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgY2xlYXIoZXZlbnQ6IE1vdXNlRXZlbnQpOiB2b2lkIHtcbiAgICAvKipcbiAgICAgKiBzdG9wIGV2ZW4gcHJvcGFnYXRpb24gc28gdGhhdCBjYWxlbmRhciB3b24ndCBvcGVuIG9uIFwiY2xlYXJcIiBidXR0b24gY2xpY2tcbiAgICAgKi9cbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcblxuICAgIHRoaXMuZGlzcGxheUNvbnRyb2wuc2V0VmFsdWUobnVsbCk7XG5cbiAgICB0aGlzLm9uQ2hhbmdlZCh0aGlzLmRpc3BsYXlDb250cm9sLnZhbHVlKTtcbiAgfVxuXG4gIC8qKiBAaWdub3JlICovXG4gIG1vdXNlZG93bihldmVudDogTW91c2VFdmVudCk6IHZvaWQge1xuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gIH1cblxuICAvKiogQGlnbm9yZSAqL1xuICBvbk9wZW5lZCgpOiB2b2lkIHtcbiAgICB0aGlzLnRlbXBsYXRlRm9ybWF0dGVyLnJlc2V0KCk7XG4gICAgdGhpcy5zZXRNaW5WYWx1ZSgpO1xuICAgIHRoaXMuaXNEaXNwbGF5VmFsdWVDaGFuZ2VSZWdpc3RlcmVkID0gZmFsc2U7XG4gIH1cblxuICAvKiogQGlnbm9yZSAqL1xuICBvbkNsb3NlZCgpOiB2b2lkIHtcbiAgICAvKipcbiAgICAgKiBOT1RFOiB0aGlzIGlzIG5lZWRlZCB0byBvdmVycmlkZSBhbiBpc3N1ZSB3aGVuIGNsb3NpbmcgYSBkcm9wZG93biBwYXNzZXMgZm9jdXMgdG8gaW5wdXRcbiAgICAgKiB3aGVuIGFsbG93TWFudWFsSW5wdXQgaXMgZmFsc2VcbiAgICAgKi9cbiAgICBpZiAoIXRoaXMuYWxsb3dNYW51YWxJbnB1dCkge1xuICAgICAgdGhpcy5pbnB1dD8ubmF0aXZlRWxlbWVudC5ibHVyKCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogaWYgY29udHJvbCB2YWx1ZSBpcyBlbXB0eSwgZGlzcGxheUNvbnRyb2wgd2l0aCBiZSBjbGVhcmVkIChicm91Z2h0IHRvIGluaXRpYWwgc3RhdGUpXG4gICAgICovXG4gICAgdGhpcy5zeW5jRW1wdHlWYWx1ZXMoKTtcblxuICAgIC8qKlxuICAgICAqIGZvY3VzIG9uIGNvbnRyb2wgdmFsdWUgYW5kIHNlbGVjdCB0aW1lIHBhcnRcbiAgICAgKi9cbiAgICBpZiAoIXRoaXMuc2hvd1RpbWVQaWNrZXIgJiYgdGhpcy5pc0Rpc3BsYXlWYWx1ZUNoYW5nZVJlZ2lzdGVyZWQgJiYgdGhpcy50eXBlICE9PSAnZGF0ZScpIHtcbiAgICAgIHRoaXMuaW5wdXQ/Lm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcblxuICAgICAgY29uc3Qgc3BhY2VQb3NpdGlvbiA9IHRoaXMuaW5wdXQ/Lm5hdGl2ZUVsZW1lbnQudmFsdWUubGFzdEluZGV4T2YoJyAnKTtcbiAgICAgIGNvbnN0IHRvdGFsTGVuZ3RoID0gdGhpcy5pbnB1dD8ubmF0aXZlRWxlbWVudC52YWx1ZS5sZW5ndGg7XG5cbiAgICAgIGlmIChzcGFjZVBvc2l0aW9uID4gLTEpIHtcbiAgICAgICAgdGhpcy5pbnB1dD8ubmF0aXZlRWxlbWVudC5zZXRTZWxlY3Rpb25SYW5nZShzcGFjZVBvc2l0aW9uICsgMSwgc3BhY2VQb3NpdGlvbiArICh0b3RhbExlbmd0aCAtIHNwYWNlUG9zaXRpb24pKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvKiogQGlnbm9yZSAqL1xuICBvbkNoYW5nZWQoZXZlbnQ6IE1hdERhdGV0aW1lcGlja2VySW5wdXRFdmVudDxzdHJpbmc+IHwgc3RyaW5nIHwgbnVsbCk6IHZvaWQge1xuICAgIGNvbnN0IHZhbHVlID0gZXZlbnQgPT09IG51bGwgPyBudWxsIDogdHlwZW9mIGV2ZW50ID09ICdzdHJpbmcnID8gZXZlbnQgOiBldmVudC52YWx1ZTtcblxuICAgIC8qKlxuICAgICAqIHN5bmMgdmFsdWVDb250cm9sIGVycm9ycyB3aXRoIGRpc3BsYXlDb250cm9sIGVycm9yc1xuICAgICAqIE5PVEU6IHRoaXMgaXMgbmVlZGVkIGZvciBcImludmFsaWQgZm9ybWF0XCIgZXJyb3JzIHRoYXQgYXJlIGNhbGN1bGF0ZWQgZm9yIGRpc3BsYXlDb250cm9sXG4gICAgICogYnkgTWF0RGF0ZXRpbWVwaWNrZXIgY29tcG9uZW50XG4gICAgICovXG4gICAgdGhpcy52YWx1ZUNvbnRyb2wuc2V0RXJyb3JzKHRoaXMuZGlzcGxheUNvbnRyb2wuZXJyb3JzKTtcblxuICAgIHRoaXMub25EaXNwbGF5ZWRWYWx1ZUNoYW5nZSh2YWx1ZSA/IG5ldyBEYXRlKHZhbHVlKSA6IG51bGwpO1xuXG4gICAgLyoqXG4gICAgICogbWFyayBjb250cm9scyBhcyB0b3VjaGVkIGFuZCBkaXJ0eSB0byBlbnN1cmUgcHJvcGVyIGVycm9yIGRpc3BsYXlcbiAgICAgKi9cbiAgICB0aGlzLnRvdWNoQ29udHJvbHMoKTtcbiAgfVxuXG4gIG9uVmlld0NoYW5nZWQodmlldzogTWF0Q2FsZW5kYXJWaWV3KSB7XG4gICAgdGhpcy50ZW1wbGF0ZUZvcm1hdHRlci5ydW4odmlldyk7XG4gIH1cblxuICAvKiogQGlnbm9yZSAqL1xuICBwcm90ZWN0ZWQgdG91Y2hJbnZhbGlkKGNvbnRyb2w6IEZvcm1Db250cm9sKTogdm9pZCB7XG4gICAgc3VwZXIudG91Y2hJbnZhbGlkKGNvbnRyb2wpO1xuICAgIHN1cGVyLnRvdWNoSW52YWxpZCh0aGlzLmRpc3BsYXlDb250cm9sKTtcbiAgfVxuXG4gIC8qKiBAaWdub3JlICovXG4gIHByb3RlY3RlZCBhcHBseUN1c3RvbUZvcm1hdCgpOiB2b2lkIHtcbiAgICB0aGlzLmN1c3RvbURpc3BsYXlGb3JtYXRPdmVycmlkZSA9IHt9O1xuXG4gICAgaWYgKHRoaXMub3ZlcnJpZGVEaXNwbGF5Rm9ybWF0KSB7XG4gICAgICB0aGlzLmN1c3RvbURpc3BsYXlGb3JtYXRPdmVycmlkZS5kYXRldGltZUlucHV0ID0gdGhpcy5jdXN0b21EaXNwbGF5Rm9ybWF0O1xuICAgIH1cblxuICAgIGlmICghdGhpcy5zaG93VGltZVBpY2tlcikge1xuICAgICAgaWYgKHRoaXMub3ZlcnJpZGVEaXNwbGF5Rm9ybWF0KSB7XG4gICAgICAgIHRoaXMuY3VzdG9tRGlzcGxheUZvcm1hdE92ZXJyaWRlLmRhdGVJbnB1dCA9IHRoaXMuY3VzdG9tRGlzcGxheUZvcm1hdDtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuY3VzdG9tRGlzcGxheUZvcm1hdE92ZXJyaWRlLmRhdGVJbnB1dCA9IEZPUk1BVF9EQVRFVElNRTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvKiogQGlnbm9yZSAqL1xuICBwcm90ZWN0ZWQgc2V0Q29udHJvbFZhbHVlKGNvbnRyb2w6IEZvcm1Db250cm9sLCB2YWx1ZTogc3RyaW5nIHwgbnVsbCA9IG51bGwsIGVtaXRFdmVudCA9IHRydWUpOiB2b2lkIHtcbiAgICBpZiAoY29udHJvbC52YWx1ZSAhPT0gdmFsdWUpIHtcbiAgICAgIGNvbnRyb2wuc2V0VmFsdWUodmFsdWUsIHsgZW1pdEV2ZW50OiBlbWl0RXZlbnQgfSk7XG4gICAgfVxuICB9XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgcHJvdGVjdGVkIG9uU3luY0Rpc3BsYXllZFZhbHVlKHZhbHVlVG9BcHBseTogc3RyaW5nID0gdGhpcy52YWx1ZUNvbnRyb2wudmFsdWUpOiB2b2lkIHtcbiAgICAvKipcbiAgICAgKiBhbHdheXMgbWFrZSBzdXJlIHRoYXQgZGF0ZSBzdHJpbmcgaXMgaW4gVVRDIGZvcm1hdFxuICAgICAqL1xuICAgIGNvbnN0IHZhbHVlOiBEYXRlID0gbmV3IERhdGUodmFsdWVUb0FwcGx5ICsgKHZhbHVlVG9BcHBseS5lbmRzV2l0aCgnWicpID8gJycgOiAnWicpKTtcblxuICAgIHRoaXMuc2V0Q29udHJvbFZhbHVlKHRoaXMuZGlzcGxheUNvbnRyb2wsIHRoaXMuZGF0ZVRvUmVxdWlyZWRPZmZzZXQodmFsdWUpLnRvSVNPU3RyaW5nKCkpO1xuICB9XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgcHJvdGVjdGVkIG9uRGlzcGxheWVkVmFsdWVDaGFuZ2UodmFsdWU6IERhdGUgfCBudWxsKTogdm9pZCB7XG4gICAgbGV0IG5ld1ZhbHVlOiBudWxsIHwgc3RyaW5nID0gbnVsbDtcblxuICAgIGlmICh2YWx1ZSkge1xuICAgICAgbmV3VmFsdWUgPSB0aGlzLmRpc3BsYXllZFZhbHVlVG9Db250cm9sVmFsdWUodmFsdWUpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIG9ubHkgc2V0IHZhbHVlIGlmIGl0IGRpZCBjaGFuZ2VcbiAgICAgKi9cbiAgICBpZiAobmV3VmFsdWUgPT09IHRoaXMudmFsdWVDb250cm9sLnZhbHVlKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogc2V0IGNvbnRyb2wgdmFsdWUgcmV2ZXJ0aW5nIG9mZnNldCBjYWxjdWxhdGlvblxuICAgICAqL1xuICAgIHRoaXMuc2V0Q29udHJvbFZhbHVlKHRoaXMudmFsdWVDb250cm9sLCBuZXdWYWx1ZSk7XG4gIH1cblxuICAvKiogQGlnbm9yZSAqL1xuICBwcm90ZWN0ZWQgZGlzcGxheWVkVmFsdWVUb0NvbnRyb2xWYWx1ZSh2YWx1ZTogRGF0ZSk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuZGF0ZVRvQWN0dWFsT2Zmc2V0KHZhbHVlKS50b0lTT1N0cmluZygpO1xuICB9XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgcHJvdGVjdGVkIHNldE1pblZhbHVlKCk6IHZvaWQge1xuICAgIC8qKlxuICAgICAqIGNhbGN1bGF0ZSBtaW5pbXVtIGFsbG93ZWQgZGF0ZXRpbWUgaWYgbmVlZGVkXG4gICAgICovXG4gICAgaWYgKCF0aGlzLmFsbG93UGFzdFZhbHVlcykge1xuICAgICAgdGhpcy5taW5EYXRlID0gdGhpcy5kYXRlVG9SZXF1aXJlZE9mZnNldCgpLnRvSVNPU3RyaW5nKCk7XG4gICAgfVxuICB9XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgcHJvdGVjdGVkIGFkZE9mZnNldChkYXRlOiBEYXRlLCBvZmZzZXQ6IG51bWJlcik6IERhdGUge1xuICAgIHJldHVybiBhZGQoZGF0ZSwgeyBtaW51dGVzOiBvZmZzZXQgfSk7XG4gIH1cblxuICAvKiogQGlnbm9yZSAqL1xuICBwcm90ZWN0ZWQgcmVtb3ZlT2Zmc2V0KGRhdGU6IERhdGUsIG9mZnNldDogbnVtYmVyKTogRGF0ZSB7XG4gICAgcmV0dXJuIGFkZChkYXRlLCB7IG1pbnV0ZXM6IG9mZnNldCAqIC0xIH0pO1xuICB9XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgcHJvdGVjdGVkIGdldEFjdHVhbERhdGVPZmZzZXQodmFsdWU6IERhdGUgPSB0aGlzLmNyZWF0ZURhdGUoKSk6IG51bWJlciB7XG4gICAgcmV0dXJuIHZhbHVlLmdldFRpbWV6b25lT2Zmc2V0KCkgKiAtMTtcbiAgfVxuXG4gIC8qKiBAaWdub3JlICovXG4gIHByb3RlY3RlZCBnZXRSZXF1aXJlZE9mZnNldCh2YWx1ZTogRGF0ZSA9IHRoaXMuY3JlYXRlRGF0ZSgpKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5vZmZzZXQgPyB0aGlzLm9mZnNldCAqIDYwIDogdGhpcy5nZXRBY3R1YWxEYXRlT2Zmc2V0KHZhbHVlKTtcbiAgfVxuXG4gIC8qKiBAaWdub3JlICovXG4gIHByb3RlY3RlZCBjcmVhdGVEYXRlKGRheXNTaGlmdCA9IDApOiBEYXRlIHtcbiAgICBsZXQgdmFsdWU6IERhdGUgPSBuZXcgRGF0ZSgpO1xuXG4gICAgaWYgKGRheXNTaGlmdCkge1xuICAgICAgdmFsdWUgPSB0aGlzLmFkZE9mZnNldCh2YWx1ZSwgZGF5c1NoaWZ0ICogMjQgKiA2MCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHZhbHVlO1xuICB9XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgcHJpdmF0ZSBzZXR1cFN1YnNjcmlwdGlvbnMoKTogdm9pZCB7XG4gICAgLyoqXG4gICAgICpcbiAgICAgKnN5bmMgZGlzcGxheSBjb250cm9sIHN0YXR1c2VzIHdpdGggdmFsdWUgY29udHJvbCBzdGF0dXMgZm9yIHByb3BlciBlcnJvciBkaXNwbGF5XG4gICAgICogbWFrZSBzdXJlIFwiZGlzcGxheUNvbnRyb2xcIiBkaXNhYmxlZCBzdGF0ZSBhbmQgdmFsdWUgYXJlIHN5bmNocm9uaXplZCB3aXRoIFwiY29udHJvbFwiIGRpc2FibGVkIHN0YXRlIGFuZCB2YWx1ZVxuICAgICAqL1xuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKHRoaXMudmFsdWVDb250cm9sLnN0YXR1c0NoYW5nZXMuc3Vic2NyaWJlKCgpID0+IHRoaXMuc3luY1N0YXRlKCkpKTtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMucHVzaCh0aGlzLnZhbHVlQ29udHJvbC52YWx1ZUNoYW5nZXMuc3Vic2NyaWJlKCgpID0+IHRoaXMuc3luY0Rpc3BsYXllZFZhbHVlKCkpKTtcblxuICAgIC8qKlxuICAgICAqIE5PVEU6IHJlZ2lzdGVyaW5nIGRpc3BsYXkgdmFsdWUgY2hhbmdlIGlzIG5lZWRlZCB0byBrbm93IHdoZW4gdG8gZm9jdXMgdGltZSBwYXJ0IG9mIGRhdGV0aW1lIGlmIHNob3dUaW1lUGlja2VyIGlzIGZhbHNlXG4gICAgICovXG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2goXG4gICAgICB0aGlzLmRpc3BsYXlDb250cm9sLnZhbHVlQ2hhbmdlcy5zdWJzY3JpYmUoKCkgPT4gKHRoaXMuaXNEaXNwbGF5VmFsdWVDaGFuZ2VSZWdpc3RlcmVkID0gdHJ1ZSkpLFxuICAgICk7XG5cbiAgICAvKipcbiAgICAgKiBtYWtlIHN1cmUgZGlzcGxheUNvbnRyb2wgaGFzIHRoZSBzYW1lIHZhbGlkYXRvcnMgYXMgY29udHJvbFxuICAgICAqL1xuICAgIHRoaXMuZGlzcGxheUNvbnRyb2wuYWRkVmFsaWRhdG9ycyh0aGlzLnZhbHVlQ29udHJvbC52YWxpZGF0b3IgPz8gW10pO1xuICAgIC8qKlxuICAgICAqIHJlcXVpcmVkIHZhbGlkYXRvciBtdXN0IGJlIHNldCBtYW51YWxseSBpbiB0aGlzIGNvbXBvbmVudFxuICAgICAqIGJlY2F1c2UgdmFsdWVDb250cm9sIGlzIGRpc2Nvbm5lY3RlZCBmcm9tIGlucHV0IGZpZWxkXG4gICAgICovXG4gICAgaWYgKHRoaXMucmVxdWlyZWQpIHtcbiAgICAgIHRoaXMudmFsdWVDb250cm9sLmFkZFZhbGlkYXRvcnMoVmFsaWRhdG9ycy5yZXF1aXJlZCk7XG4gICAgfVxuICAgIHRoaXMudmFsdWVDb250cm9sLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoeyBlbWl0RXZlbnQ6IGZhbHNlIH0pO1xuICAgIHRoaXMuZGlzcGxheUNvbnRyb2wudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSh7IGVtaXRFdmVudDogZmFsc2UgfSk7XG4gICAgLyoqXG4gICAgICogcGVyZm9ybSBpbml0aWFsIHN5bmNocm9uaXphdGlvbnNcbiAgICAgKi9cbiAgICB0aGlzLnN5bmNTdGF0ZSgpO1xuICAgIHRoaXMuc3luY0Rpc3BsYXllZFZhbHVlKCk7XG4gIH1cblxuICAvKiogQGlnbm9yZSAqL1xuICBwcml2YXRlIHN5bmNEaXNwbGF5ZWRWYWx1ZSgpOiB2b2lkIHtcbiAgICAvKipcbiAgICAgKiBpZiBjb250cm9sIHZhbHVlIGlzIGVtcHR5LCBkaXNwbGF5Q29udHJvbCB3aXRoIGJlIGNsZWFyZWQgKGJyb3VnaHQgdG8gaW5pdGlhbCBzdGF0ZSlcbiAgICAgKi9cbiAgICBpZiAodGhpcy5zeW5jRW1wdHlWYWx1ZXMoKSkgcmV0dXJuO1xuXG4gICAgdGhpcy5vblN5bmNEaXNwbGF5ZWRWYWx1ZSgpO1xuICB9XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgcHJpdmF0ZSBzeW5jRW1wdHlWYWx1ZXMoKTogYm9vbGVhbiB7XG4gICAgaWYgKHRoaXMudmFsdWVDb250cm9sLnZhbHVlKSByZXR1cm4gZmFsc2U7XG5cbiAgICB0aGlzLnNldENvbnRyb2xWYWx1ZSh0aGlzLmRpc3BsYXlDb250cm9sLCB0aGlzLnZhbHVlQ29udHJvbC52YWx1ZSwgZmFsc2UpO1xuXG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICAvKiogQGlnbm9yZSAqL1xuICBwcml2YXRlIGRhdGVUb1JlcXVpcmVkT2Zmc2V0KHZhbHVlOiBEYXRlID0gdGhpcy5jcmVhdGVEYXRlKCkpOiBEYXRlIHtcbiAgICB2YWx1ZSA9IHRoaXMucmVtb3ZlT2Zmc2V0KHZhbHVlLCB0aGlzLmdldEFjdHVhbERhdGVPZmZzZXQodmFsdWUpKTtcbiAgICByZXR1cm4gdGhpcy5hZGRPZmZzZXQodmFsdWUsIHRoaXMuZ2V0UmVxdWlyZWRPZmZzZXQodmFsdWUpKTtcbiAgfVxuXG4gIC8qKiBAaWdub3JlICovXG4gIHByaXZhdGUgZGF0ZVRvQWN0dWFsT2Zmc2V0KHZhbHVlOiBEYXRlID0gdGhpcy5jcmVhdGVEYXRlKCkpOiBEYXRlIHtcbiAgICB2YWx1ZSA9IHRoaXMuYWRkT2Zmc2V0KHZhbHVlLCB0aGlzLmdldEFjdHVhbERhdGVPZmZzZXQodmFsdWUpKTtcbiAgICByZXR1cm4gdGhpcy5yZW1vdmVPZmZzZXQodmFsdWUsIHRoaXMuZ2V0UmVxdWlyZWRPZmZzZXQodmFsdWUpKTtcbiAgfVxufVxuIiwiPGRpdiBbbmdTdHlsZV09XCJ7IG1pbldpZHRoOiB3aWR0aCB9XCI+XG4gIDxtYXQtZm9ybS1maWVsZFxuICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICdpbW1lZGlhdGUtdmFsaWRhdGlvbic6IGltbWVkaWF0ZVZhbGlkYXRpb24sXG4gICAgICAnbm8tbGVmdC1wYWRkaW5nJzogIXNob3dFeGNsYW1hdGlvbixcbiAgICAgIGludmFsaWQ6IGNhblNob3dFcnJvcigpLFxuICAgICAgbWFudWFsOiBhbGxvd01hbnVhbElucHV0LFxuICAgICAgJ3N1Y2Nlc3MtbGFiZWwnOiBjYW5TaG93U3VjY2VzcygpLFxuICAgICAgJ3gtc21hbGwnOiBzbWFsbFNpemUsXG4gICAgfVwiXG4gICAgW25nU3R5bGVdPVwieyB3aWR0aDogd2lkdGggfVwiXG4gID5cbiAgICBAaWYgKChsYWJlbCB8fCByZXF1aXJlZCkgJiYgIXNtYWxsU2l6ZSkge1xuICAgICAgPG1hdC1sYWJlbD57eyBsYWJlbCB9fTwvbWF0LWxhYmVsPlxuICAgIH1cbiAgICA8bWF0LWRhdGV0aW1lcGlja2VyXG4gICAgICAjZGF0ZXRpbWVQaWNrZXJcbiAgICAgICh2aWV3Q2hhbmdlZCk9XCJvblZpZXdDaGFuZ2VkKCRldmVudClcIlxuICAgICAgKG9wZW5lZCk9XCJvbk9wZW5lZCgpXCJcbiAgICAgIChjbG9zZWQpPVwib25DbG9zZWQoKVwiXG4gICAgICBbdHlwZV09XCJ0eXBlID09PSAnZGF0ZXRpbWUnID8gKHNob3dUaW1lUGlja2VyID8gJ2RhdGV0aW1lJyA6ICdkYXRlJykgOiB0eXBlXCJcbiAgICAgIFtvcGVuT25Gb2N1c109XCIhYWxsb3dNYW51YWxJbnB1dFwiXG4gICAgICBbdHdlbHZlaG91cl09XCJ0d2VsdmVIb3VyXCJcbiAgICAgIFt0aW1lSW50ZXJ2YWxdPVwiNVwiXG4gICAgICBbbW9kZV09XCIncG9ydHJhaXQnXCJcbiAgICAvPlxuICAgIDxpbnB1dFxuICAgICAgKGRhdGVDaGFuZ2UpPVwib25DaGFuZ2VkKCRldmVudClcIlxuICAgICAgZGF0ZVRpbWVQaWNrZXJGb3JtYXRcbiAgICAgIFtvdmVycmlkZURpc3BsYXlGb3JtYXRdPVwib3ZlcnJpZGVEaXNwbGF5Rm9ybWF0IHx8ICh0eXBlID09PSAnZGF0ZXRpbWUnID8gIXNob3dUaW1lUGlja2VyIDogZmFsc2UpXCJcbiAgICAgIFtjdXN0b21EaXNwbGF5Rm9ybWF0XT1cImN1c3RvbURpc3BsYXlGb3JtYXRPdmVycmlkZVwiXG4gICAgICBbbmdDbGFzc109XCJ7IGludmlzaWJsZTogIXZhbHVlQ29udHJvbC52YWx1ZSB9XCJcbiAgICAgICNpbnB1dFxuICAgICAgbWF0SW5wdXRcbiAgICAgIChrZXlkb3duKT1cImFsbG93TWFudWFsSW5wdXQgPyBvbktleURvd24oJGV2ZW50KSA6IG51bGxcIlxuICAgICAgKGlucHV0KT1cInRvdWNoQ29udHJvbHMoKVwiXG4gICAgICAoYmx1cik9XCJ0b3VjaENvbnRyb2xzKClcIlxuICAgICAgW3RhYkluZGV4XT1cImFsbG93TWFudWFsSW5wdXQgPyAwIDogLTFcIlxuICAgICAgW21pbl09XCJtaW5EYXRlIHx8IG51bGxcIlxuICAgICAgW3JlYWRvbmx5XT1cIiFhbGxvd01hbnVhbElucHV0XCJcbiAgICAgIFtmb3JtQ29udHJvbF09XCJkaXNwbGF5Q29udHJvbFwiXG4gICAgICBbbWF0RGF0ZXRpbWVwaWNrZXJdPVwiZGF0ZXRpbWVQaWNrZXJcIlxuICAgICAgYXV0b2NvbXBsZXRlPVwiZmFsc2VcIlxuICAgICAgW2lkXT1cImlkXCJcbiAgICAgIFtyZXF1aXJlZF09XCJyZXF1aXJlZFwiXG4gICAgICBbcGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXJcIlxuICAgIC8+XG4gICAgQGlmICh0eXBlID09PSAndGltZScpIHtcbiAgICAgIDxidXR0b25cbiAgICAgICAgbWF0VGV4dFN1ZmZpeFxuICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgbWF0LWljb24tYnV0dG9uXG4gICAgICAgIChjbGljayk9XCJ0b2dnbGUoJGV2ZW50KVwiXG4gICAgICAgIFtkaXNhYmxlZF09XCIhc2hvd1RpbWVQaWNrZXJcIlxuICAgICAgICBjbGFzcz1cImFjdGlvbi1pY29uXCJcbiAgICAgID5cbiAgICAgICAgPGFkcy1pY29uIGNsYXNzPVwicGlja2VyXCIgbmFtZT1cInRpbWVwaWNrZXJcIiBbc2l6ZV09XCJzbWFsbFNpemUgPyAneHhzJyA6ICdzbSdcIiBbc3Ryb2tlXT1cIidpY29uUHJpbWFyeSdcIiAvPlxuICAgICAgPC9idXR0b24+XG4gICAgfSBAZWxzZSB7XG4gICAgICA8YnV0dG9uIG1hdFRleHRTdWZmaXggdHlwZT1cImJ1dHRvblwiIG1hdC1pY29uLWJ1dHRvbiAoY2xpY2spPVwidG9nZ2xlKCRldmVudClcIiBjbGFzcz1cImFjdGlvbi1pY29uXCI+XG4gICAgICAgIDxhZHMtaWNvbiBjbGFzcz1cInBpY2tlclwiIG5hbWU9XCJkYXRlcGlja2VyXCIgW3NpemVdPVwic21hbGxTaXplID8gJ3h4cycgOiAnc20nXCIgW3N0cm9rZV09XCInaWNvblByaW1hcnknXCIgLz5cbiAgICAgICAgQGlmICh0eXBlID09PSAnZGF0ZXRpbWUnKSB7XG4gICAgICAgICAgPGFkcy1pY29uXG4gICAgICAgICAgICBjbGFzcz1cInN1Yi10aW1lcGlja2VyIG1hdC1tZGMtYnV0dG9uLXBlcnNpc3RlbnQtcmlwcGxlIHBpY2tlclwiXG4gICAgICAgICAgICBuYW1lPVwidGltZXBpY2tlclwiXG4gICAgICAgICAgICBzaXplPVwieHhzXCJcbiAgICAgICAgICAgIFtzdHJva2VdPVwiJ2ljb25QcmltYXJ5J1wiXG4gICAgICAgICAgLz5cbiAgICAgICAgfVxuICAgICAgPC9idXR0b24+XG4gICAgfVxuXG4gICAgQGlmIChjYW5DbGVhcikge1xuICAgICAgPGJ1dHRvbiBtYXRUZXh0U3VmZml4IHR5cGU9XCJidXR0b25cIiBtYXQtaWNvbi1idXR0b24gKGNsaWNrKT1cImNsZWFyKCRldmVudClcIiBjbGFzcz1cImFjdGlvbi1pY29uXCI+XG4gICAgICAgIDxhZHMtaWNvbiBjbGFzcz1cImNyb3NzLWljb25cIiBuYW1lPVwiY3Jvc3NcIiBbc2l6ZV09XCJzbWFsbFNpemUgPyAneHhzJyA6ICd4cydcIiBbdGhlbWVdPVwiJ2ljb25QcmltYXJ5J1wiIC8+XG4gICAgICA8L2J1dHRvbj5cbiAgICB9XG4gIDwvbWF0LWZvcm0tZmllbGQ+XG4gIEBpZiAoc2hvd0Zvb3Rlcikge1xuICAgIDxkaXYgY2xhc3M9XCJmb290ZXItY29udGFpbmVyXCI+XG4gICAgICBAaWYgKGNhblNob3dFcnJvcigpKSB7XG4gICAgICAgIDxhZHMtZXJyb3IgW2Vycm9yXT1cImRpc3BsYXlGaXJzdEVycm9yKClcIiBbbmdTdHlsZV09XCJ7IHdpZHRoOiB3aWR0aCB9XCIgLz5cbiAgICAgIH0gQGVsc2UgaWYgKGNhblNob3dTdWNjZXNzKCkpIHtcbiAgICAgICAgPGFkcy1zdWNjZXNzIFtzdWNjZXNzXT1cInN1Y2Nlc3NNZXNzYWdlIVwiIFtuZ1N0eWxlXT1cInsgd2lkdGg6IHdpZHRoIH1cIiAvPlxuICAgICAgfSBAZWxzZSBpZiAoaGludCkge1xuICAgICAgICA8YWRzLWhpbnQgW2hpbnRdPVwiaGludFwiIFtjb250cm9sXT1cInZhbHVlQ29udHJvbFwiIFtuZ1N0eWxlXT1cInsgd2lkdGg6IHdpZHRoIH1cIiAvPlxuICAgICAgfVxuICAgIDwvZGl2PlxuICB9XG48L2Rpdj5cbkBpZiAodG9vbHRpcCkge1xuICA8YWRzLWlucHV0LXRvb2x0aXAgW3Rvb2x0aXBdPVwidG9vbHRpcFwiIC8+XG59XG4iXX0=
|
|
398
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZXRpbWVwaWNrZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hZHMtdWkvc3JjL2xpYi9jb21wb25lbnRzL2Zvcm0tZmllbGRzL2RhdGVwaWNrZXJzL2RhdGV0aW1lLXBpY2tlci9kYXRldGltZXBpY2tlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2Fkcy11aS9zcmMvbGliL2NvbXBvbmVudHMvZm9ybS1maWVsZHMvZGF0ZXBpY2tlcnMvZGF0ZXRpbWUtcGlja2VyL2RhdGV0aW1lcGlja2VyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxLQUFLLEVBQ0wsU0FBUyxFQUtULGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsVUFBVSxFQUNWLE1BQU0sR0FDUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUNsRixPQUFPLEVBQWUsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFekQsT0FBTyxFQUFFLFlBQVksRUFBRSxpQkFBaUIsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBRy9GLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDL0IsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sRUFBRSwwQkFBMEIsRUFBK0IsTUFBTSwwQkFBMEIsQ0FBQztBQUVuRyxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7QUFXMUUsTUFBTSxPQUFPLDBCQUEyQixTQUFRLHNCQUFzQjtJQStEcEU7UUFDRSxLQUFLLEVBQUUsQ0FBQztRQTVEViw0SEFBNEg7UUFDbkgsZUFBVSxHQUFHLEtBQUssQ0FBQztRQUs1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Q0FBQyxZQUFZLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQ2pFLENBQUM7OEdBMWJVLDBCQUEwQjtrR0FBMUIsMEJBQTBCLGdZQUUxQiwwQkFBMEIsNktDbkN2QyxnekdBNkZBOzsyRkQ1RGEsMEJBQTBCO2tCQVR0QyxTQUFTOytCQUNFLG9CQUFvQjt3REFVUyxNQUFNO3NCQUE1QyxTQUFTO3VCQUFDLDBCQUEwQjtnQkFHNUIsVUFBVTtzQkFBbEIsS0FBSztnQkFHRyxNQUFNO3NCQUFkLEtBQUs7Z0JBR0csZUFBZTtzQkFBdkIsS0FBSztnQkFHRyxnQkFBZ0I7c0JBQXhCLEtBQUs7Z0JBR0csWUFBWTtzQkFBcEIsS0FBSztnQkFHRyxxQkFBcUI7c0JBQTdCLEtBQUs7Z0JBR0csY0FBYztzQkFBdEIsS0FBSztnQkFHRyxtQkFBbUI7c0JBQTNCLEtBQUs7Z0JBR2MsS0FBSztzQkFBeEIsU0FBUzt1QkFBQyxPQUFPIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgSW5wdXQsXG4gIENvbXBvbmVudCxcbiAgT25Jbml0LFxuICBPbkRlc3Ryb3ksXG4gIFNpbXBsZUNoYW5nZSxcbiAgT25DaGFuZ2VzLFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgVmlld0NoaWxkLFxuICBFbGVtZW50UmVmLFxuICBpbmplY3QsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWJzdHJhY3RJbnB1dENvbXBvbmVudCB9IGZyb20gJy4uLy4uL2Fic3RyYWN0cy9hYnN0cmFjdC5pbnB1dC5jb21wb25lbnQnO1xuaW1wb3J0IHsgRm9ybUNvbnRyb2wsIFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGFkc0ljb25Dcm9zcywgYWRzSWNvbkRhdGVwaWNrZXIsIGFkc0ljb25UaW1lcGlja2VyIH0gZnJvbSAnQGFzY2VudGdsL2Fkcy1pY29ucy9pY29ucyc7XG5pbXBvcnQgeyBNYXREYXRldGltZXBpY2tlclR5cGUgfSBmcm9tICdAbWF0LWRhdGV0aW1lcGlja2VyL2NvcmUvZGF0ZXRpbWVwaWNrZXIvZGF0ZXRpbWVwaWNrZXItdHlwZSc7XG5pbXBvcnQgeyBHRU5FUklDX0NPTExFQ1RJT04gfSBmcm9tICdAYXNjZW50Z2wvYWRzLXV0aWxzJztcbmltcG9ydCB7IGFkZCB9IGZyb20gJ2RhdGUtZm5zJztcbmltcG9ydCB7IEZPUk1BVF9EQVRFVElNRSB9IGZyb20gJy4vY3VzdG9tLWRhdGV0aW1lLWZvcm1hdCc7XG5pbXBvcnQgeyBNYXREYXRldGltZXBpY2tlckNvbXBvbmVudCwgTWF0RGF0ZXRpbWVwaWNrZXJJbnB1dEV2ZW50IH0gZnJvbSAnQG1hdC1kYXRldGltZXBpY2tlci9jb3JlJztcbmltcG9ydCB7IE1hdENhbGVuZGFyVmlldyB9IGZyb20gJ0BtYXQtZGF0ZXRpbWVwaWNrZXIvY29yZS9kYXRldGltZXBpY2tlci9jYWxlbmRhcic7XG5pbXBvcnQgeyBEYXRldGltZVRlbXBsYXRlRm9ybWF0dGVyIH0gZnJvbSAnLi9kYXRldGltZS10ZW1wbGF0ZS5mb3JtYXR0ZXInO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhZHMtZGF0ZXRpbWVwaWNrZXInLFxuICB0ZW1wbGF0ZVVybDogJy4vZGF0ZXRpbWVwaWNrZXIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFtcbiAgICAnLi4vLi4vaW5wdXQvaW5wdXQuY29tcG9uZW50LnNjc3MnLFxuICAgICcuL2RhdGV0aW1lcGlja2VyLmNvbXBvbmVudC5zY3NzJyxcbiAgICAnLi4vLi4vY29tbW9uL2NvbW1vbi5pbnB1dC5jb21wb25lbnQuc2NzcycsXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIEFkc0RhdGV0aW1lcGlja2VyQ29tcG9uZW50IGV4dGVuZHMgQWJzdHJhY3RJbnB1dENvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcywgT25Jbml0LCBPbkRlc3Ryb3kge1xuICAvKiogQGlnbm9yZSAqL1xuICBAVmlld0NoaWxkKE1hdERhdGV0aW1lcGlja2VyQ29tcG9uZW50KSBwaWNrZXI/OiBNYXREYXRldGltZXBpY2tlckNvbXBvbmVudDx1bmtub3duPjtcblxuICAvKiogQ2hvb3NlIGJldHdlZW4gMTIgYW5kIDI0IGhvdXIgdGltZSBpbnB1dCBtb2RlLiBOT1RFOiB0d2VsdmVIb3VyPXRydWUgbWF5IGhhdmUgbWlub3IgaXNzdWVzIHdoZW4gYWxsb3dQYXN0VmFsdWVzPWZhbHNlICovXG4gIEBJbnB1dCgpIHR3ZWx2ZUhvdXIgPSBmYWxzZTtcblxuICAvKiogU2V0IHRpbWUgb2Zmc2V0IHJlbGF0aXZlIHRvIEdNVC4gSWYgcGFyYW1ldGVyIGlzIG9taXR0ZWQgb2Zmc2V0IHdpbGwgYmUgY2FsY3VsYXRlZCBiYXNlZCBvbiBicm93c2VyIGluZm8gKi9cbiAgQElucHV0KCkgb2Zmc2V0PzogbnVtYmVyO1xuXG4gIC8qKiBBbGxvdyBvciBmb3JiaWQgY2hvb3NpbmcgZGF0ZSB2YWx1ZXMgZnJvbSB0aGUgcGFzdCAqL1xuICBASW5wdXQoKSBhbGxvd1Bhc3RWYWx1ZXMgPSB0cnVlO1xuXG4gIC8qKiBTZXQgdG8gaW5wdXR0aW5nIHZhbHVlIG1hbnVhbGx5ICovXG4gIEBJbnB1dCgpIGFsbG93TWFudWFsSW5wdXQgPSB0cnVlO1xuXG4gIC8qKiBXaGV0aGVyIHRvIHVzZSBrZXkgc2hvcnRjdXRzIChcInlcIiwgXCJuXCIsIFwidFwiKSBmb3Igc2V0dGluZyB0aGUgdmFsdWUgKi9cbiAgQElucHV0KCkgdXNlU2hvcnRjdXRzID0gdHJ1ZTtcblxuICAvKiogU2V0IHRvIHVzZSBjdXN0b20gZGlzcGxheSBmb3JtYXQsIG92ZXJyaWRpbmcgdGhlIG9uZSwgcHJvdmlkZWQgYnkgbG9jYWxlICovXG4gIEBJbnB1dCgpIG92ZXJyaWRlRGlzcGxheUZvcm1hdCA9IHRydWU7XG5cbiAgLyoqIFNob3cgb3IgaGlkZSB0aW1lIHBpY2tlciAqL1xuICBASW5wdXQoKSBzaG93VGltZVBpY2tlciA9IHRydWU7XG5cbiAgLyoqIGlmIG92ZXJyaWRlRGlzcGxheUZvcm1hdD10cnVlLCB0aGlzIGRpc3BsYXkgZm9ybWF0IHdpbGwgYmUgdXNlZCAqL1xuICBASW5wdXQoKSBjdXN0b21EaXNwbGF5Rm9ybWF0OiBzdHJpbmcgPSBGT1JNQVRfREFURVRJTUU7XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgQFZpZXdDaGlsZCgnaW5wdXQnKSBpbnB1dD86IEVsZW1lbnRSZWY7XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgY3VzdG9tRGlzcGxheUZvcm1hdE92ZXJyaWRlOiBHRU5FUklDX0NPTExFQ1RJT04gPSB7fTtcblxuICAvKiogQGlnbm9yZSAqL1xuICB0eXBlOiBNYXREYXRldGltZXBpY2tlclR5cGUgPSAnZGF0ZXRpbWUnO1xuXG4gIC8qKiBAaWdub3JlICovXG4gIG1pbkRhdGU/OiBzdHJpbmc7XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgcHJvdGVjdGVkIHNob3J0Y3V0czogR0VORVJJQ19DT0xMRUNUSU9OID0ge1xuICAgIHk6IC0xLCAvL3llc3RlcmRheVxuICAgIG46IDAsIC8vbm93XG4gICAgdDogMSwgLy90b21vcnJvd1xuICB9O1xuXG4gIC8qKiBAaWdub3JlICovXG4gIHByb3RlY3RlZCByZWFkb25seSBkZWZhdWx0RXJyb3JNZXNzYWdlczogR0VORVJJQ19DT0xMRUNUSU9OPHN0cmluZz4gPSB7XG4gICAgbWF0RGF0ZXBpY2tlclBhcnNlOiAnRGF0ZSBhbmQgVGltZSBtdXN0IGFwcGVhciBpbiB0aGlzIGZvcm1hdDogTU0vREQvWVlZWSBISDptbScsXG4gICAgbWF0RGF0ZXBpY2tlck1pbjogJ1RoZSB2YWx1ZSBpcyB0b28gb2xkJyxcbiAgfTtcblxuICAvKiogQGlnbm9yZSAqL1xuICBwcml2YXRlIHN1YnNjcmlwdGlvbnM6IFN1YnNjcmlwdGlvbltdID0gW107XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgcHJpdmF0ZSBpc0Rpc3BsYXlWYWx1ZUNoYW5nZVJlZ2lzdGVyZWQgPSBmYWxzZTtcblxuICBwcml2YXRlIGNkciA9IGluamVjdChDaGFuZ2VEZXRlY3RvclJlZik7XG5cbiAgcHJpdmF0ZSB0ZW1wbGF0ZUZvcm1hdHRlciA9IG5ldyBEYXRldGltZVRlbXBsYXRlRm9ybWF0dGVyKCk7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoKTtcbiAgICB0aGlzLnJlZ2lzdHJ5LnJlZ2lzdGVyKFthZHNJY29uQ3Jvc3MsIGFkc0ljb25EYXRlcGlja2VyLCBhZHNJY29uVGltZXBpY2tlcl0pO1xuICB9XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5zZXR1cFN1YnNjcmlwdGlvbnMoKTtcbiAgICB0aGlzLmFwcGx5Q3VzdG9tRm9ybWF0KCk7XG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICB9XG4gIC8qKiBAaWdub3JlICovXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IHtcbiAgICBjdXN0b21EaXNwbGF5Rm9ybWF0OiBTaW1wbGVDaGFuZ2U7XG4gICAgb2Zmc2V0OiBTaW1wbGVDaGFuZ2U7XG4gICAgc2hvd1RpbWVQaWNrZXI6IFNpbXBsZUNoYW5nZTtcbiAgICBpbW1lZGlhdGVWYWxpZGF0aW9uOiBTaW1wbGVDaGFuZ2U7XG4gIH0pOiB2b2lkIHtcbiAgICBpZiAoY2hhbmdlcy5jdXN0b21EaXNwbGF5Rm9ybWF0IHx8IGNoYW5nZXMuc2hvd1RpbWVQaWNrZXIpIHtcbiAgICAgIHRoaXMuYXBwbHlDdXN0b21Gb3JtYXQoKTtcbiAgICB9XG5cbiAgICBpZiAoY2hhbmdlcy5vZmZzZXQgJiYgIWNoYW5nZXMub2Zmc2V0LmlzRmlyc3RDaGFuZ2UoKSkge1xuICAgICAgdGhpcy5zeW5jRGlzcGxheWVkVmFsdWUoKTtcbiAgICB9XG5cbiAgICBzdXBlci5uZ09uQ2hhbmdlcyhjaGFuZ2VzKTtcbiAgfVxuXG4gIC8qKiBAaWdub3JlICovXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5mb3JFYWNoKChzdWJzY3JpcHRpb24pID0+IHN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpKTtcbiAgfVxuXG4gIC8qKiBAaWdub3JlICovXG4gIHRvZ2dsZShldmVudDogTW91c2VFdmVudCk6IHZvaWQge1xuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIGlmICh0aGlzLnBpY2tlcj8ub3BlbmVkKSB7XG4gICAgICB0aGlzLnBpY2tlci5jbG9zZSgpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnBpY2tlcj8ub3BlbigpO1xuICAgIH1cbiAgfVxuXG4gIC8qKiBAaWdub3JlICovXG4gIGdldCBzaG93RXhjbGFtYXRpb24oKSB7XG4gICAgcmV0dXJuIHRoaXMuc2hvd0V4Y2xhbWF0aW9uT25FcnJvciAmJiB0aGlzLmRpc3BsYXlDb250cm9sLmludmFsaWQgJiYgdGhpcy5kaXNwbGF5Q29udHJvbC50b3VjaGVkO1xuICB9XG5cbiAgZ2V0IGNhbkNsZWFyKCkge1xuICAgIHJldHVybiB0aGlzLnNob3dDbGVhckJ1dHRvbiAmJiAhIXRoaXMuaW5wdXQ/Lm5hdGl2ZUVsZW1lbnQudmFsdWU7XG4gIH1cblxuICAvKiogQGlnbm9yZSAqL1xuICBjYW5TaG93RXJyb3IoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICEhdGhpcy5kaXNwbGF5Q29udHJvbC5lcnJvcnMgJiYgKHRoaXMuZGlzcGxheUNvbnRyb2wudG91Y2hlZCB8fCB0aGlzLmltbWVkaWF0ZVZhbGlkYXRpb24pO1xuICB9XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgZGlzcGxheUZpcnN0RXJyb3IoY29udHJvbDogRm9ybUNvbnRyb2wgPSB0aGlzLmRpc3BsYXlDb250cm9sKTogc3RyaW5nIHtcbiAgICAvKipcbiAgICAgKiBpZiB3ZSBoYXZlIGZvcm1hdCBlcnJvciAtIG1ha2Ugc3VyZSB0byBzaG93IGl0IGZpcnN0XG4gICAgICovXG4gICAgaWYgKHRoaXMuZGlzcGxheUNvbnRyb2wuZXJyb3JzPy5tYXREYXRlcGlja2VyUGFyc2UpIHtcbiAgICAgIHRoaXMuZGlzcGxheUNvbnRyb2wuc2V0RXJyb3JzKHsgbWF0RGF0ZXBpY2tlclBhcnNlOiB0aGlzLmRpc3BsYXlDb250cm9sLmVycm9ycz8ubWF0RGF0ZXBpY2tlclBhcnNlIH0pO1xuICAgIH1cblxuICAgIHJldHVybiBzdXBlci5kaXNwbGF5Rmlyc3RFcnJvcihjb250cm9sKTtcbiAgfVxuXG4gIC8qKiBAaWdub3JlICovXG4gIG9uS2V5RG93bihldmVudDogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xuICAgIGlmICghKGV2ZW50LnRhcmdldCBpbnN0YW5jZW9mIEhUTUxJbnB1dEVsZW1lbnQpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogYmx1ciBpbnB1dCB0byBtYWtlIHN1cmUgdGhlIHZhbHVlIGlzIGFwcGxpZWRcbiAgICAgKi9cbiAgICBpZiAoZXZlbnQua2V5ID09PSAnRW50ZXInICYmIGV2ZW50LnRhcmdldCBpbnN0YW5jZW9mIEhUTUxJbnB1dEVsZW1lbnQpIHtcbiAgICAgIHRoaXMuc2V0TWluVmFsdWUoKTtcbiAgICAgIGV2ZW50LnRhcmdldC5ibHVyKCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKCF0aGlzLnVzZVNob3J0Y3V0cykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IHNob3J0Y3V0T2Zmc2V0ID0gdGhpcy5zaG9ydGN1dHNbZXZlbnQua2V5LnRvTG93ZXJDYXNlKCldO1xuXG4gICAgLyoqXG4gICAgICogaWYgb25lIG9mIHRoZSBzaG9ydGN1dHMgd2FzIGNsaWNrZWQgLSBzZXQgY3VycmVudCBkYXRlIHZhbHVlIGFjY29yZGluZ2x5XG4gICAgICovXG4gICAgaWYgKHNob3J0Y3V0T2Zmc2V0ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIC8qKlxuICAgICAgICogY3JlYXRlIGRhdGUgb2JqZWN0LiB0YWtpbmcgaW50byBhY2NvdW50IHNob3J0Y3V0IG9mZnNldCAoeWVzdGVyZGF5LCBub3csIHRvbW9ycm93KVxuICAgICAgICovXG4gICAgICBjb25zdCB2YWx1ZTogRGF0ZSA9IHRoaXMuY3JlYXRlRGF0ZShzaG9ydGN1dE9mZnNldCk7XG5cbiAgICAgIC8qKlxuICAgICAgICogc2V0IGRhdGUgb2JqZWN0IHRvIHJlcXVpcmVkIG9mZnNldCB2YWx1ZSwgYW5kIGFwcGx5IGl0IHRvIHZhbHVlQ29udHJvbFxuICAgICAgICogKGl0IHdpbGwgZXZlbnR1YWxseSBzeW5jIGRpc3BsYXlDb250cm9sIHRvbylcbiAgICAgICAqL1xuICAgICAgdGhpcy5vbkNoYW5nZWQodGhpcy5kYXRlVG9SZXF1aXJlZE9mZnNldCh2YWx1ZSkudG9JU09TdHJpbmcoKSk7XG5cbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgfVxuICB9XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgdG91Y2hDb250cm9scygpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuZGlzcGxheUNvbnRyb2wudG91Y2hlZCkge1xuICAgICAgdGhpcy5kaXNwbGF5Q29udHJvbC5tYXJrQXNUb3VjaGVkKCk7XG4gICAgfVxuXG4gICAgaWYgKCF0aGlzLnZhbHVlQ29udHJvbC50b3VjaGVkKSB7XG4gICAgICB0aGlzLnZhbHVlQ29udHJvbC5tYXJrQXNUb3VjaGVkKCk7XG4gICAgfVxuXG4gICAgaWYgKCF0aGlzLmRpc3BsYXlDb250cm9sLmRpcnR5KSB7XG4gICAgICB0aGlzLmRpc3BsYXlDb250cm9sLm1hcmtBc0RpcnR5KCk7XG4gICAgfVxuXG4gICAgaWYgKCF0aGlzLnZhbHVlQ29udHJvbC5kaXJ0eSkge1xuICAgICAgdGhpcy52YWx1ZUNvbnRyb2wubWFya0FzRGlydHkoKTtcbiAgICB9XG4gIH1cblxuICAvKiogQGlnbm9yZSAqL1xuICBjbGVhcihldmVudDogTW91c2VFdmVudCk6IHZvaWQge1xuICAgIC8qKlxuICAgICAqIHN0b3AgZXZlbiBwcm9wYWdhdGlvbiBzbyB0aGF0IGNhbGVuZGFyIHdvbid0IG9wZW4gb24gXCJjbGVhclwiIGJ1dHRvbiBjbGlja1xuICAgICAqL1xuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuXG4gICAgdGhpcy5kaXNwbGF5Q29udHJvbC5zZXRWYWx1ZShudWxsKTtcblxuICAgIHRoaXMub25DaGFuZ2VkKHRoaXMuZGlzcGxheUNvbnRyb2wudmFsdWUpO1xuICB9XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgbW91c2Vkb3duKGV2ZW50OiBNb3VzZUV2ZW50KTogdm9pZCB7XG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgfVxuXG4gIC8qKiBAaWdub3JlICovXG4gIG9uT3BlbmVkKCk6IHZvaWQge1xuICAgIHRoaXMudGVtcGxhdGVGb3JtYXR0ZXIucmVzZXQoKTtcbiAgICB0aGlzLnNldE1pblZhbHVlKCk7XG4gICAgdGhpcy5pc0Rpc3BsYXlWYWx1ZUNoYW5nZVJlZ2lzdGVyZWQgPSBmYWxzZTtcbiAgfVxuXG4gIC8qKiBAaWdub3JlICovXG4gIG9uQ2xvc2VkKCk6IHZvaWQge1xuICAgIC8qKlxuICAgICAqIE5PVEU6IHRoaXMgaXMgbmVlZGVkIHRvIG92ZXJyaWRlIGFuIGlzc3VlIHdoZW4gY2xvc2luZyBhIGRyb3Bkb3duIHBhc3NlcyBmb2N1cyB0byBpbnB1dFxuICAgICAqIHdoZW4gYWxsb3dNYW51YWxJbnB1dCBpcyBmYWxzZVxuICAgICAqL1xuICAgIGlmICghdGhpcy5hbGxvd01hbnVhbElucHV0KSB7XG4gICAgICB0aGlzLmlucHV0Py5uYXRpdmVFbGVtZW50LmJsdXIoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBpZiBjb250cm9sIHZhbHVlIGlzIGVtcHR5LCBkaXNwbGF5Q29udHJvbCB3aXRoIGJlIGNsZWFyZWQgKGJyb3VnaHQgdG8gaW5pdGlhbCBzdGF0ZSlcbiAgICAgKi9cbiAgICB0aGlzLnN5bmNFbXB0eVZhbHVlcygpO1xuXG4gICAgLyoqXG4gICAgICogZm9jdXMgb24gY29udHJvbCB2YWx1ZSBhbmQgc2VsZWN0IHRpbWUgcGFydFxuICAgICAqL1xuICAgIGlmICghdGhpcy5zaG93VGltZVBpY2tlciAmJiB0aGlzLmlzRGlzcGxheVZhbHVlQ2hhbmdlUmVnaXN0ZXJlZCAmJiB0aGlzLnR5cGUgIT09ICdkYXRlJykge1xuICAgICAgdGhpcy5pbnB1dD8ubmF0aXZlRWxlbWVudC5mb2N1cygpO1xuXG4gICAgICBjb25zdCBzcGFjZVBvc2l0aW9uID0gdGhpcy5pbnB1dD8ubmF0aXZlRWxlbWVudC52YWx1ZS5sYXN0SW5kZXhPZignICcpO1xuICAgICAgY29uc3QgdG90YWxMZW5ndGggPSB0aGlzLmlucHV0Py5uYXRpdmVFbGVtZW50LnZhbHVlLmxlbmd0aDtcblxuICAgICAgaWYgKHNwYWNlUG9zaXRpb24gPiAtMSkge1xuICAgICAgICB0aGlzLmlucHV0Py5uYXRpdmVFbGVtZW50LnNldFNlbGVjdGlvblJhbmdlKHNwYWNlUG9zaXRpb24gKyAxLCBzcGFjZVBvc2l0aW9uICsgKHRvdGFsTGVuZ3RoIC0gc3BhY2VQb3NpdGlvbikpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8qKiBAaWdub3JlICovXG4gIG9uQ2hhbmdlZChldmVudDogTWF0RGF0ZXRpbWVwaWNrZXJJbnB1dEV2ZW50PHN0cmluZz4gfCBzdHJpbmcgfCBudWxsKTogdm9pZCB7XG4gICAgY29uc3QgdmFsdWUgPSBldmVudCA9PT0gbnVsbCA/IG51bGwgOiB0eXBlb2YgZXZlbnQgPT0gJ3N0cmluZycgPyBldmVudCA6IGV2ZW50LnZhbHVlO1xuXG4gICAgLyoqXG4gICAgICogc3luYyB2YWx1ZUNvbnRyb2wgZXJyb3JzIHdpdGggZGlzcGxheUNvbnRyb2wgZXJyb3JzXG4gICAgICogTk9URTogdGhpcyBpcyBuZWVkZWQgZm9yIFwiaW52YWxpZCBmb3JtYXRcIiBlcnJvcnMgdGhhdCBhcmUgY2FsY3VsYXRlZCBmb3IgZGlzcGxheUNvbnRyb2xcbiAgICAgKiBieSBNYXREYXRldGltZXBpY2tlciBjb21wb25lbnRcbiAgICAgKi9cbiAgICB0aGlzLnZhbHVlQ29udHJvbC5zZXRFcnJvcnModGhpcy5kaXNwbGF5Q29udHJvbC5lcnJvcnMpO1xuXG4gICAgdGhpcy5vbkRpc3BsYXllZFZhbHVlQ2hhbmdlKHZhbHVlID8gbmV3IERhdGUodmFsdWUpIDogbnVsbCk7XG5cbiAgICAvKipcbiAgICAgKiBtYXJrIGNvbnRyb2xzIGFzIHRvdWNoZWQgYW5kIGRpcnR5IHRvIGVuc3VyZSBwcm9wZXIgZXJyb3IgZGlzcGxheVxuICAgICAqL1xuICAgIHRoaXMudG91Y2hDb250cm9scygpO1xuICB9XG5cbiAgb25WaWV3Q2hhbmdlZCh2aWV3OiBNYXRDYWxlbmRhclZpZXcpIHtcbiAgICB0aGlzLnRlbXBsYXRlRm9ybWF0dGVyLnJ1bih2aWV3KTtcbiAgfVxuXG4gIC8qKiBAaWdub3JlICovXG4gIHByb3RlY3RlZCB0b3VjaEludmFsaWQoY29udHJvbDogRm9ybUNvbnRyb2wpOiB2b2lkIHtcbiAgICBzdXBlci50b3VjaEludmFsaWQoY29udHJvbCk7XG4gICAgc3VwZXIudG91Y2hJbnZhbGlkKHRoaXMuZGlzcGxheUNvbnRyb2wpO1xuICB9XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgcHJvdGVjdGVkIGFwcGx5Q3VzdG9tRm9ybWF0KCk6IHZvaWQge1xuICAgIHRoaXMuY3VzdG9tRGlzcGxheUZvcm1hdE92ZXJyaWRlID0ge307XG5cbiAgICBpZiAodGhpcy5vdmVycmlkZURpc3BsYXlGb3JtYXQpIHtcbiAgICAgIHRoaXMuY3VzdG9tRGlzcGxheUZvcm1hdE92ZXJyaWRlLmRhdGV0aW1lSW5wdXQgPSB0aGlzLmN1c3RvbURpc3BsYXlGb3JtYXQ7XG4gICAgfVxuXG4gICAgaWYgKCF0aGlzLnNob3dUaW1lUGlja2VyKSB7XG4gICAgICBpZiAodGhpcy5vdmVycmlkZURpc3BsYXlGb3JtYXQpIHtcbiAgICAgICAgdGhpcy5jdXN0b21EaXNwbGF5Rm9ybWF0T3ZlcnJpZGUuZGF0ZUlucHV0ID0gdGhpcy5jdXN0b21EaXNwbGF5Rm9ybWF0O1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5jdXN0b21EaXNwbGF5Rm9ybWF0T3ZlcnJpZGUuZGF0ZUlucHV0ID0gRk9STUFUX0RBVEVUSU1FO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8qKiBAaWdub3JlICovXG4gIHByb3RlY3RlZCBzZXRDb250cm9sVmFsdWUoY29udHJvbDogRm9ybUNvbnRyb2wsIHZhbHVlOiBzdHJpbmcgfCBudWxsID0gbnVsbCwgZW1pdEV2ZW50ID0gdHJ1ZSk6IHZvaWQge1xuICAgIGlmIChjb250cm9sLnZhbHVlICE9PSB2YWx1ZSkge1xuICAgICAgY29udHJvbC5zZXRWYWx1ZSh2YWx1ZSwgeyBlbWl0RXZlbnQ6IGVtaXRFdmVudCB9KTtcbiAgICB9XG4gIH1cblxuICAvKiogQGlnbm9yZSAqL1xuICBwcm90ZWN0ZWQgb25TeW5jRGlzcGxheWVkVmFsdWUodmFsdWVUb0FwcGx5OiBzdHJpbmcgPSB0aGlzLnZhbHVlQ29udHJvbC52YWx1ZSk6IHZvaWQge1xuICAgIC8qKlxuICAgICAqIGFsd2F5cyBtYWtlIHN1cmUgdGhhdCBkYXRlIHN0cmluZyBpcyBpbiBVVEMgZm9ybWF0XG4gICAgICovXG4gICAgY29uc3QgdmFsdWU6IERhdGUgPSBuZXcgRGF0ZSh2YWx1ZVRvQXBwbHkgKyAodmFsdWVUb0FwcGx5LmVuZHNXaXRoKCdaJykgPyAnJyA6ICdaJykpO1xuXG4gICAgdGhpcy5zZXRDb250cm9sVmFsdWUodGhpcy5kaXNwbGF5Q29udHJvbCwgdGhpcy5kYXRlVG9SZXF1aXJlZE9mZnNldCh2YWx1ZSkudG9JU09TdHJpbmcoKSk7XG4gIH1cblxuICAvKiogQGlnbm9yZSAqL1xuICBwcm90ZWN0ZWQgb25EaXNwbGF5ZWRWYWx1ZUNoYW5nZSh2YWx1ZTogRGF0ZSB8IG51bGwpOiB2b2lkIHtcbiAgICBsZXQgbmV3VmFsdWU6IG51bGwgfCBzdHJpbmcgPSBudWxsO1xuXG4gICAgaWYgKHZhbHVlKSB7XG4gICAgICBuZXdWYWx1ZSA9IHRoaXMuZGlzcGxheWVkVmFsdWVUb0NvbnRyb2xWYWx1ZSh2YWx1ZSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogb25seSBzZXQgdmFsdWUgaWYgaXQgZGlkIGNoYW5nZVxuICAgICAqL1xuICAgIGlmIChuZXdWYWx1ZSA9PT0gdGhpcy52YWx1ZUNvbnRyb2wudmFsdWUpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBzZXQgY29udHJvbCB2YWx1ZSByZXZlcnRpbmcgb2Zmc2V0IGNhbGN1bGF0aW9uXG4gICAgICovXG4gICAgdGhpcy5zZXRDb250cm9sVmFsdWUodGhpcy52YWx1ZUNvbnRyb2wsIG5ld1ZhbHVlKTtcbiAgfVxuXG4gIC8qKiBAaWdub3JlICovXG4gIHByb3RlY3RlZCBkaXNwbGF5ZWRWYWx1ZVRvQ29udHJvbFZhbHVlKHZhbHVlOiBEYXRlKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5kYXRlVG9BY3R1YWxPZmZzZXQodmFsdWUpLnRvSVNPU3RyaW5nKCk7XG4gIH1cblxuICAvKiogQGlnbm9yZSAqL1xuICBwcm90ZWN0ZWQgc2V0TWluVmFsdWUoKTogdm9pZCB7XG4gICAgLyoqXG4gICAgICogY2FsY3VsYXRlIG1pbmltdW0gYWxsb3dlZCBkYXRldGltZSBpZiBuZWVkZWRcbiAgICAgKi9cbiAgICBpZiAoIXRoaXMuYWxsb3dQYXN0VmFsdWVzKSB7XG4gICAgICB0aGlzLm1pbkRhdGUgPSB0aGlzLmRhdGVUb1JlcXVpcmVkT2Zmc2V0KCkudG9JU09TdHJpbmcoKTtcbiAgICB9XG4gIH1cblxuICAvKiogQGlnbm9yZSAqL1xuICBwcm90ZWN0ZWQgYWRkT2Zmc2V0KGRhdGU6IERhdGUsIG9mZnNldDogbnVtYmVyKTogRGF0ZSB7XG4gICAgcmV0dXJuIGFkZChkYXRlLCB7IG1pbnV0ZXM6IG9mZnNldCB9KTtcbiAgfVxuXG4gIC8qKiBAaWdub3JlICovXG4gIHByb3RlY3RlZCByZW1vdmVPZmZzZXQoZGF0ZTogRGF0ZSwgb2Zmc2V0OiBudW1iZXIpOiBEYXRlIHtcbiAgICByZXR1cm4gYWRkKGRhdGUsIHsgbWludXRlczogb2Zmc2V0ICogLTEgfSk7XG4gIH1cblxuICAvKiogQGlnbm9yZSAqL1xuICBwcm90ZWN0ZWQgZ2V0QWN0dWFsRGF0ZU9mZnNldCh2YWx1ZTogRGF0ZSA9IHRoaXMuY3JlYXRlRGF0ZSgpKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdmFsdWUuZ2V0VGltZXpvbmVPZmZzZXQoKSAqIC0xO1xuICB9XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgcHJvdGVjdGVkIGdldFJlcXVpcmVkT2Zmc2V0KHZhbHVlOiBEYXRlID0gdGhpcy5jcmVhdGVEYXRlKCkpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLm9mZnNldCA/IHRoaXMub2Zmc2V0ICogNjAgOiB0aGlzLmdldEFjdHVhbERhdGVPZmZzZXQodmFsdWUpO1xuICB9XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgcHJvdGVjdGVkIGNyZWF0ZURhdGUoZGF5c1NoaWZ0ID0gMCk6IERhdGUge1xuICAgIGxldCB2YWx1ZTogRGF0ZSA9IG5ldyBEYXRlKCk7XG5cbiAgICBpZiAoZGF5c1NoaWZ0KSB7XG4gICAgICB2YWx1ZSA9IHRoaXMuYWRkT2Zmc2V0KHZhbHVlLCBkYXlzU2hpZnQgKiAyNCAqIDYwKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdmFsdWU7XG4gIH1cblxuICAvKiogQGlnbm9yZSAqL1xuICBwcml2YXRlIHNldHVwU3Vic2NyaXB0aW9ucygpOiB2b2lkIHtcbiAgICAvKipcbiAgICAgKlxuICAgICAqc3luYyBkaXNwbGF5IGNvbnRyb2wgc3RhdHVzZXMgd2l0aCB2YWx1ZSBjb250cm9sIHN0YXR1cyBmb3IgcHJvcGVyIGVycm9yIGRpc3BsYXlcbiAgICAgKiBtYWtlIHN1cmUgXCJkaXNwbGF5Q29udHJvbFwiIGRpc2FibGVkIHN0YXRlIGFuZCB2YWx1ZSBhcmUgc3luY2hyb25pemVkIHdpdGggXCJjb250cm9sXCIgZGlzYWJsZWQgc3RhdGUgYW5kIHZhbHVlXG4gICAgICovXG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2godGhpcy52YWx1ZUNvbnRyb2wuc3RhdHVzQ2hhbmdlcy5zdWJzY3JpYmUoKCkgPT4gdGhpcy5zeW5jU3RhdGUoKSkpO1xuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKHRoaXMudmFsdWVDb250cm9sLnZhbHVlQ2hhbmdlcy5zdWJzY3JpYmUoKCkgPT4gdGhpcy5zeW5jRGlzcGxheWVkVmFsdWUoKSkpO1xuXG4gICAgLyoqXG4gICAgICogTk9URTogcmVnaXN0ZXJpbmcgZGlzcGxheSB2YWx1ZSBjaGFuZ2UgaXMgbmVlZGVkIHRvIGtub3cgd2hlbiB0byBmb2N1cyB0aW1lIHBhcnQgb2YgZGF0ZXRpbWUgaWYgc2hvd1RpbWVQaWNrZXIgaXMgZmFsc2VcbiAgICAgKi9cbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMucHVzaChcbiAgICAgIHRoaXMuZGlzcGxheUNvbnRyb2wudmFsdWVDaGFuZ2VzLnN1YnNjcmliZSgoKSA9PiAodGhpcy5pc0Rpc3BsYXlWYWx1ZUNoYW5nZVJlZ2lzdGVyZWQgPSB0cnVlKSksXG4gICAgKTtcblxuICAgIC8qKlxuICAgICAqIG1ha2Ugc3VyZSBkaXNwbGF5Q29udHJvbCBoYXMgdGhlIHNhbWUgdmFsaWRhdG9ycyBhcyBjb250cm9sXG4gICAgICovXG4gICAgdGhpcy5kaXNwbGF5Q29udHJvbC5hZGRWYWxpZGF0b3JzKHRoaXMudmFsdWVDb250cm9sLnZhbGlkYXRvciA/PyBbXSk7XG4gICAgLyoqXG4gICAgICogcmVxdWlyZWQgdmFsaWRhdG9yIG11c3QgYmUgc2V0IG1hbnVhbGx5IGluIHRoaXMgY29tcG9uZW50XG4gICAgICogYmVjYXVzZSB2YWx1ZUNvbnRyb2wgaXMgZGlzY29ubmVjdGVkIGZyb20gaW5wdXQgZmllbGRcbiAgICAgKi9cbiAgICBpZiAodGhpcy5yZXF1aXJlZCkge1xuICAgICAgdGhpcy52YWx1ZUNvbnRyb2wuYWRkVmFsaWRhdG9ycyhWYWxpZGF0b3JzLnJlcXVpcmVkKTtcbiAgICB9XG4gICAgdGhpcy52YWx1ZUNvbnRyb2wudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSh7IGVtaXRFdmVudDogZmFsc2UgfSk7XG4gICAgdGhpcy5kaXNwbGF5Q29udHJvbC51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KHsgZW1pdEV2ZW50OiBmYWxzZSB9KTtcbiAgICAvKipcbiAgICAgKiBwZXJmb3JtIGluaXRpYWwgc3luY2hyb25pemF0aW9uc1xuICAgICAqL1xuICAgIHRoaXMuc3luY1N0YXRlKCk7XG4gICAgdGhpcy5zeW5jRGlzcGxheWVkVmFsdWUoKTtcbiAgfVxuXG4gIC8qKiBAaWdub3JlICovXG4gIHByaXZhdGUgc3luY0Rpc3BsYXllZFZhbHVlKCk6IHZvaWQge1xuICAgIC8qKlxuICAgICAqIGlmIGNvbnRyb2wgdmFsdWUgaXMgZW1wdHksIGRpc3BsYXlDb250cm9sIHdpdGggYmUgY2xlYXJlZCAoYnJvdWdodCB0byBpbml0aWFsIHN0YXRlKVxuICAgICAqL1xuICAgIGlmICh0aGlzLnN5bmNFbXB0eVZhbHVlcygpKSByZXR1cm47XG5cbiAgICB0aGlzLm9uU3luY0Rpc3BsYXllZFZhbHVlKCk7XG4gIH1cblxuICAvKiogQGlnbm9yZSAqL1xuICBwcml2YXRlIHN5bmNFbXB0eVZhbHVlcygpOiBib29sZWFuIHtcbiAgICBpZiAodGhpcy52YWx1ZUNvbnRyb2wudmFsdWUpIHJldHVybiBmYWxzZTtcblxuICAgIHRoaXMuc2V0Q29udHJvbFZhbHVlKHRoaXMuZGlzcGxheUNvbnRyb2wsIHRoaXMudmFsdWVDb250cm9sLnZhbHVlLCBmYWxzZSk7XG5cbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIC8qKiBAaWdub3JlICovXG4gIHByaXZhdGUgZGF0ZVRvUmVxdWlyZWRPZmZzZXQodmFsdWU6IERhdGUgPSB0aGlzLmNyZWF0ZURhdGUoKSk6IERhdGUge1xuICAgIHZhbHVlID0gdGhpcy5yZW1vdmVPZmZzZXQodmFsdWUsIHRoaXMuZ2V0QWN0dWFsRGF0ZU9mZnNldCh2YWx1ZSkpO1xuICAgIHJldHVybiB0aGlzLmFkZE9mZnNldCh2YWx1ZSwgdGhpcy5nZXRSZXF1aXJlZE9mZnNldCh2YWx1ZSkpO1xuICB9XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgcHJpdmF0ZSBkYXRlVG9BY3R1YWxPZmZzZXQodmFsdWU6IERhdGUgPSB0aGlzLmNyZWF0ZURhdGUoKSk6IERhdGUge1xuICAgIHZhbHVlID0gdGhpcy5hZGRPZmZzZXQodmFsdWUsIHRoaXMuZ2V0QWN0dWFsRGF0ZU9mZnNldCh2YWx1ZSkpO1xuICAgIHJldHVybiB0aGlzLnJlbW92ZU9mZnNldCh2YWx1ZSwgdGhpcy5nZXRSZXF1aXJlZE9mZnNldCh2YWx1ZSkpO1xuICB9XG59XG4iLCI8ZGl2IFtuZ1N0eWxlXT1cInsgbWluV2lkdGg6IHdpZHRoIH1cIj5cbiAgPG1hdC1mb3JtLWZpZWxkXG4gICAgW25nQ2xhc3NdPVwie1xuICAgICAgJ2ltbWVkaWF0ZS12YWxpZGF0aW9uJzogaW1tZWRpYXRlVmFsaWRhdGlvbixcbiAgICAgICduby1sZWZ0LXBhZGRpbmcnOiAhc2hvd0V4Y2xhbWF0aW9uLFxuICAgICAgaW52YWxpZDogY2FuU2hvd0Vycm9yKCksXG4gICAgICBtYW51YWw6IGFsbG93TWFudWFsSW5wdXQsXG4gICAgICAnc3VjY2Vzcy1sYWJlbCc6IGNhblNob3dTdWNjZXNzKCksXG4gICAgICAneC1zbWFsbCc6IHNtYWxsU2l6ZSxcbiAgICB9XCJcbiAgICBbbmdTdHlsZV09XCJ7IHdpZHRoOiB3aWR0aCB9XCJcbiAgPlxuICAgIEBpZiAoKGxhYmVsIHx8IHJlcXVpcmVkKSAmJiAhc21hbGxTaXplKSB7XG4gICAgICA8bWF0LWxhYmVsPnt7IGxhYmVsIH19PC9tYXQtbGFiZWw+XG4gICAgfVxuICAgIDxtYXQtZGF0ZXRpbWVwaWNrZXJcbiAgICAgICNkYXRldGltZVBpY2tlclxuICAgICAgKHZpZXdDaGFuZ2VkKT1cIm9uVmlld0NoYW5nZWQoJGV2ZW50KVwiXG4gICAgICAob3BlbmVkKT1cIm9uT3BlbmVkKClcIlxuICAgICAgKGNsb3NlZCk9XCJvbkNsb3NlZCgpXCJcbiAgICAgIFt0eXBlXT1cInR5cGUgPT09ICdkYXRldGltZScgPyAoc2hvd1RpbWVQaWNrZXIgPyAnZGF0ZXRpbWUnIDogJ2RhdGUnKSA6IHR5cGVcIlxuICAgICAgW29wZW5PbkZvY3VzXT1cIiFhbGxvd01hbnVhbElucHV0XCJcbiAgICAgIFt0d2VsdmVob3VyXT1cInR3ZWx2ZUhvdXJcIlxuICAgICAgW3RpbWVJbnRlcnZhbF09XCI1XCJcbiAgICAgIFttb2RlXT1cIidwb3J0cmFpdCdcIlxuICAgIC8+XG4gICAgPGlucHV0XG4gICAgICAoZGF0ZUNoYW5nZSk9XCJvbkNoYW5nZWQoJGV2ZW50KVwiXG4gICAgICBkYXRlVGltZVBpY2tlckZvcm1hdFxuICAgICAgW292ZXJyaWRlRGlzcGxheUZvcm1hdF09XCJvdmVycmlkZURpc3BsYXlGb3JtYXQgfHwgKHR5cGUgPT09ICdkYXRldGltZScgPyAhc2hvd1RpbWVQaWNrZXIgOiBmYWxzZSlcIlxuICAgICAgW2N1c3RvbURpc3BsYXlGb3JtYXRdPVwiY3VzdG9tRGlzcGxheUZvcm1hdE92ZXJyaWRlXCJcbiAgICAgIFtuZ0NsYXNzXT1cInsgaW52aXNpYmxlOiAhdmFsdWVDb250cm9sLnZhbHVlIH1cIlxuICAgICAgI2lucHV0XG4gICAgICBtYXRJbnB1dFxuICAgICAgKGtleWRvd24pPVwiYWxsb3dNYW51YWxJbnB1dCA/IG9uS2V5RG93bigkZXZlbnQpIDogbnVsbFwiXG4gICAgICAoaW5wdXQpPVwidG91Y2hDb250cm9scygpXCJcbiAgICAgIChibHVyKT1cInRvdWNoQ29udHJvbHMoKVwiXG4gICAgICBbdGFiSW5kZXhdPVwiYWxsb3dNYW51YWxJbnB1dCA/IDAgOiAtMVwiXG4gICAgICBbbWluXT1cIm1pbkRhdGUgfHwgbnVsbFwiXG4gICAgICBbcmVhZG9ubHldPVwiIWFsbG93TWFudWFsSW5wdXRcIlxuICAgICAgW2Zvcm1Db250cm9sXT1cImRpc3BsYXlDb250cm9sXCJcbiAgICAgIFttYXREYXRldGltZXBpY2tlcl09XCJkYXRldGltZVBpY2tlclwiXG4gICAgICBhdXRvY29tcGxldGU9XCJmYWxzZVwiXG4gICAgICBbaWRdPVwiaWRcIlxuICAgICAgW3JlcXVpcmVkXT1cInJlcXVpcmVkXCJcbiAgICAgIFtwbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlclwiXG4gICAgLz5cbiAgICBAaWYgKHR5cGUgPT09ICd0aW1lJykge1xuICAgICAgPGJ1dHRvblxuICAgICAgICBtYXRUZXh0U3VmZml4XG4gICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICBtYXQtaWNvbi1idXR0b25cbiAgICAgICAgKGNsaWNrKT1cInRvZ2dsZSgkZXZlbnQpXCJcbiAgICAgICAgW2Rpc2FibGVkXT1cIiFzaG93VGltZVBpY2tlclwiXG4gICAgICAgIGNsYXNzPVwiYWN0aW9uLWljb25cIlxuICAgICAgPlxuICAgICAgICA8YWRzLWljb24gY2xhc3M9XCJwaWNrZXJcIiBuYW1lPVwidGltZXBpY2tlclwiIFtzaXplXT1cInNtYWxsU2l6ZSA/ICd4eHMnIDogJ3NtJ1wiIFtzdHJva2VdPVwiJ2ljb25QcmltYXJ5J1wiIC8+XG4gICAgICA8L2J1dHRvbj5cbiAgICB9IEBlbHNlIHtcbiAgICAgIDxidXR0b24gbWF0VGV4dFN1ZmZpeCB0eXBlPVwiYnV0dG9uXCIgbWF0LWljb24tYnV0dG9uIChjbGljayk9XCJ0b2dnbGUoJGV2ZW50KVwiIGNsYXNzPVwiYWN0aW9uLWljb25cIj5cbiAgICAgICAgPGFkcy1pY29uIGNsYXNzPVwicGlja2VyXCIgbmFtZT1cImRhdGVwaWNrZXJcIiBbc2l6ZV09XCJzbWFsbFNpemUgPyAneHhzJyA6ICdzbSdcIiBbc3Ryb2tlXT1cIidpY29uUHJpbWFyeSdcIiAvPlxuICAgICAgICBAaWYgKHR5cGUgPT09ICdkYXRldGltZScpIHtcbiAgICAgICAgICA8YWRzLWljb25cbiAgICAgICAgICAgIGNsYXNzPVwic3ViLXRpbWVwaWNrZXIgbWF0LW1kYy1idXR0b24tcGVyc2lzdGVudC1yaXBwbGUgcGlja2VyXCJcbiAgICAgICAgICAgIG5hbWU9XCJ0aW1lcGlja2VyXCJcbiAgICAgICAgICAgIHNpemU9XCJ4eHNcIlxuICAgICAgICAgICAgW3N0cm9rZV09XCInaWNvblByaW1hcnknXCJcbiAgICAgICAgICAvPlxuICAgICAgICB9XG4gICAgICA8L2J1dHRvbj5cbiAgICB9XG5cbiAgICBAaWYgKGNhbkNsZWFyKSB7XG4gICAgICA8YnV0dG9uIG1hdFRleHRTdWZmaXggdHlwZT1cImJ1dHRvblwiIG1hdC1pY29uLWJ1dHRvbiAoY2xpY2spPVwiY2xlYXIoJGV2ZW50KVwiIGNsYXNzPVwiYWN0aW9uLWljb25cIj5cbiAgICAgICAgPGFkcy1pY29uIGNsYXNzPVwiY3Jvc3MtaWNvblwiIG5hbWU9XCJjcm9zc1wiIFtzaXplXT1cInNtYWxsU2l6ZSA/ICd4eHMnIDogJ3hzJ1wiIFt0aGVtZV09XCInaWNvblByaW1hcnknXCIgLz5cbiAgICAgIDwvYnV0dG9uPlxuICAgIH1cbiAgPC9tYXQtZm9ybS1maWVsZD5cbiAgQGlmIChzaG93Rm9vdGVyKSB7XG4gICAgPGRpdiBjbGFzcz1cImZvb3Rlci1jb250YWluZXJcIj5cbiAgICAgIEBpZiAoY2FuU2hvd0Vycm9yKCkpIHtcbiAgICAgICAgPGFkcy1lcnJvciBbZXJyb3JdPVwiZGlzcGxheUZpcnN0RXJyb3IoKVwiIFtuZ1N0eWxlXT1cInsgd2lkdGg6IHdpZHRoIH1cIiAvPlxuICAgICAgfSBAZWxzZSBpZiAoY2FuU2hvd1N1Y2Nlc3MoKSkge1xuICAgICAgICA8YWRzLXN1Y2Nlc3MgW3N1Y2Nlc3NdPVwic3VjY2Vzc01lc3NhZ2UhXCIgW25nU3R5bGVdPVwieyB3aWR0aDogd2lkdGggfVwiIC8+XG4gICAgICB9IEBlbHNlIGlmIChoaW50KSB7XG4gICAgICAgIDxhZHMtaGludCBbaGludF09XCJoaW50XCIgW2NvbnRyb2xdPVwidmFsdWVDb250cm9sXCIgW25nU3R5bGVdPVwieyB3aWR0aDogd2lkdGggfVwiIC8+XG4gICAgICB9XG4gICAgPC9kaXY+XG4gIH1cbjwvZGl2PlxuQGlmICh0b29sdGlwKSB7XG4gIDxhZHMtaW5wdXQtdG9vbHRpcCBbdG9vbHRpcF09XCJ0b29sdGlwXCIgLz5cbn1cbiJdfQ==
|