@tetacom/ng-components 1.0.18 → 1.0.22
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/common/util/position-util.d.ts +1 -1
- package/component/date-picker/date-picker/date-picker.component.d.ts +5 -1
- package/esm2020/common/util/position-util.mjs +13 -4
- package/esm2020/component/chart/model/chart-options.mjs +7 -2
- package/esm2020/component/date-picker/date-picker/date-picker.component.mjs +17 -6
- package/esm2020/component/date-picker/month-picker/month-picker.component.mjs +3 -3
- package/esm2020/component/dropdown/dropdown-base.mjs +24 -16
- package/esm2020/component/filter/date-filter/date-filter.component.mjs +1 -1
- package/esm2020/component/property-grid/property-grid/property-grid-item/property-grid-item.component.mjs +1 -1
- package/esm2020/component/resize-panel/resize-panel/resize-panel.component.mjs +2 -2
- package/esm2020/component/select/select/select.component.mjs +3 -3
- package/esm2020/component/table/default/date-cell/date-cell.component.mjs +3 -3
- package/esm2020/component/table/default/date-time-cell/date-time-cell.component.mjs +1 -1
- package/esm2020/component/table/default/list-cell/list-cell.component.mjs +3 -3
- package/esm2020/component/table/table/table.component.mjs +2 -2
- package/esm2020/component/table/table-body/table-body.component.mjs +3 -3
- package/fesm2015/tetacom-ng-components.mjs +83 -57
- package/fesm2015/tetacom-ng-components.mjs.map +1 -1
- package/fesm2020/tetacom-ng-components.mjs +87 -57
- package/fesm2020/tetacom-ng-components.mjs.map +1 -1
- package/package.json +1 -1
- package/style/progress.scss +6 -6
|
@@ -2,7 +2,7 @@ import { IRect } from '../contract/i-rect';
|
|
|
2
2
|
import { Align } from '../enum/align.enum';
|
|
3
3
|
import { VerticalAlign } from '../enum/vertical-align.enum';
|
|
4
4
|
export declare class PositionUtil {
|
|
5
|
-
static getPosition(containerPosition: IRect, elementPosition: IRect, align: Align, verticalAlign: VerticalAlign, margin?: number, verticalMargin?: number): IRect;
|
|
5
|
+
static getPosition(containerPosition: IRect, elementPosition: IRect, align: Align, verticalAlign: VerticalAlign, margin?: number, verticalMargin?: number, transformedParentRect?: IRect): IRect;
|
|
6
6
|
static setElementPosition(element: HTMLElement, rect: IRect): void;
|
|
7
7
|
static getMaxHeight(position: IRect): number | null;
|
|
8
8
|
static getMaxWidth(position: IRect): number | null;
|
|
@@ -4,6 +4,8 @@ import { PickerLocaleService } from '../service/picker-locale.service';
|
|
|
4
4
|
import { DatePeriod } from '../model/date-period';
|
|
5
5
|
import { PickerLocaleModel } from '../model/picker-locale-model';
|
|
6
6
|
import { DatePickerMode } from '../model/date-picker-mode.enum';
|
|
7
|
+
import { Align } from '../../../common/enum/align.enum';
|
|
8
|
+
import { VerticalAlign } from '../../../common/enum/vertical-align.enum';
|
|
7
9
|
import * as i0 from "@angular/core";
|
|
8
10
|
export declare const DATE_PICKER_CONTROL_VALUE_ACCESSOR: any;
|
|
9
11
|
export declare class DatePickerComponent implements ControlValueAccessor, OnInit, OnDestroy {
|
|
@@ -20,6 +22,8 @@ export declare class DatePickerComponent implements ControlValueAccessor, OnInit
|
|
|
20
22
|
maxDate: Date;
|
|
21
23
|
minYearDate: Date;
|
|
22
24
|
maxYearDate: Date;
|
|
25
|
+
align: Align;
|
|
26
|
+
verticalAlign: VerticalAlign;
|
|
23
27
|
appendToBody: boolean;
|
|
24
28
|
showTime: boolean;
|
|
25
29
|
set format(val: string);
|
|
@@ -69,5 +73,5 @@ export declare class DatePickerComponent implements ControlValueAccessor, OnInit
|
|
|
69
73
|
setMode(mode: DatePickerMode): void;
|
|
70
74
|
private emptyDate;
|
|
71
75
|
static ɵfac: i0.ɵɵFactoryDeclaration<DatePickerComponent, never>;
|
|
72
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<DatePickerComponent, "teta-date-picker", never, { "disabled": "disabled"; "invalid": "invalid"; "firstDayOfWeek": "firstDayOfWeek"; "disabledDates": "disabledDates"; "disabledPeriods": "disabledPeriods"; "disabledDays": "disabledDays"; "minDate": "minDate"; "maxDate": "maxDate"; "minYearDate": "minYearDate"; "maxYearDate": "maxYearDate"; "appendToBody": "appendToBody"; "showTime": "showTime"; "format": "format"; }, {}, never, never>;
|
|
76
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<DatePickerComponent, "teta-date-picker", never, { "disabled": "disabled"; "invalid": "invalid"; "firstDayOfWeek": "firstDayOfWeek"; "disabledDates": "disabledDates"; "disabledPeriods": "disabledPeriods"; "disabledDays": "disabledDays"; "minDate": "minDate"; "maxDate": "maxDate"; "minYearDate": "minYearDate"; "maxYearDate": "maxYearDate"; "align": "align"; "verticalAlign": "verticalAlign"; "appendToBody": "appendToBody"; "showTime": "showTime"; "format": "format"; }, {}, never, never>;
|
|
73
77
|
}
|
|
@@ -1,7 +1,12 @@
|
|
|
1
1
|
import { Align } from '../enum/align.enum';
|
|
2
2
|
import { VerticalAlign } from '../enum/vertical-align.enum';
|
|
3
3
|
export class PositionUtil {
|
|
4
|
-
static getPosition(containerPosition, elementPosition, align, verticalAlign, margin = 0, verticalMargin = 0
|
|
4
|
+
static getPosition(containerPosition, elementPosition, align, verticalAlign, margin = 0, verticalMargin = 0, transformedParentRect = {
|
|
5
|
+
left: 0,
|
|
6
|
+
right: 0,
|
|
7
|
+
top: 0,
|
|
8
|
+
bottom: 0
|
|
9
|
+
}) {
|
|
5
10
|
const rect = {};
|
|
6
11
|
const elementWidth = elementPosition.right - elementPosition.left;
|
|
7
12
|
const elementHeight = elementPosition.bottom - elementPosition.top;
|
|
@@ -37,7 +42,7 @@ export class PositionUtil {
|
|
|
37
42
|
}
|
|
38
43
|
}
|
|
39
44
|
if (verticalAlign === VerticalAlign.top) {
|
|
40
|
-
rect.
|
|
45
|
+
rect.top = containerPosition.top - elementHeight - verticalMargin;
|
|
41
46
|
}
|
|
42
47
|
if (verticalAlign === VerticalAlign.bottom) {
|
|
43
48
|
rect.top = containerPosition.bottom + verticalMargin;
|
|
@@ -56,12 +61,16 @@ export class PositionUtil {
|
|
|
56
61
|
if (rect.top < 0) {
|
|
57
62
|
rect.top = 0;
|
|
58
63
|
}
|
|
59
|
-
if (verticalAlign === VerticalAlign.bottom) {
|
|
64
|
+
if (verticalAlign === VerticalAlign.bottom || verticalAlign === VerticalAlign.center) {
|
|
60
65
|
rect.maxHeight = window.innerHeight - rect.top;
|
|
61
66
|
}
|
|
62
67
|
if (verticalAlign === VerticalAlign.top) {
|
|
63
68
|
rect.maxHeight = containerPosition.top;
|
|
64
69
|
}
|
|
70
|
+
rect.left = rect.left - transformedParentRect.left;
|
|
71
|
+
rect.right = rect.right - transformedParentRect.left;
|
|
72
|
+
rect.top = rect.top - transformedParentRect.top;
|
|
73
|
+
rect.bottom = rect.bottom ? rect.bottom - transformedParentRect.bottom : rect.bottom;
|
|
65
74
|
return rect;
|
|
66
75
|
}
|
|
67
76
|
static setElementPosition(element, rect) {
|
|
@@ -84,4 +93,4 @@ export class PositionUtil {
|
|
|
84
93
|
return maxWidth;
|
|
85
94
|
}
|
|
86
95
|
}
|
|
87
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9zaXRpb24tdXRpbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvc3JjL2NvbW1vbi91dGlsL3Bvc2l0aW9uLXV0aWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQzNDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUU1RCxNQUFNLE9BQU8sWUFBWTtJQUNoQixNQUFNLENBQUMsV0FBVyxDQUN2QixpQkFBd0IsRUFDeEIsZUFBc0IsRUFDdEIsS0FBWSxFQUNaLGFBQTRCLEVBQzVCLFNBQWlCLENBQUMsRUFDbEIsaUJBQXlCLENBQUM7UUFFMUIsTUFBTSxJQUFJLEdBQVUsRUFBRSxDQUFDO1FBQ3ZCLE1BQU0sWUFBWSxHQUFHLGVBQWUsQ0FBQyxLQUFLLEdBQUcsZUFBZSxDQUFDLElBQUksQ0FBQztRQUNsRSxNQUFNLGFBQWEsR0FBRyxlQUFlLENBQUMsTUFBTSxHQUFHLGVBQWUsQ0FBQyxHQUFHLENBQUM7UUFDbkUsTUFBTSxjQUFjLEdBQUcsaUJBQWlCLENBQUMsS0FBSyxHQUFHLGlCQUFpQixDQUFDLElBQUksQ0FBQztRQUN4RSxNQUFNLGVBQWUsR0FBRyxpQkFBaUIsQ0FBQyxNQUFNLEdBQUcsaUJBQWlCLENBQUMsR0FBRyxDQUFDO1FBQ3pFLElBQUksS0FBSyxLQUFLLEtBQUssQ0FBQyxJQUFJLEVBQUU7WUFDeEIsSUFBSSxDQUFDLElBQUksR0FBRyxpQkFBaUIsQ0FBQyxJQUFJLEdBQUcsTUFBTSxDQUFDO1NBQzdDO1FBQ0QsSUFBSSxLQUFLLEtBQUssS0FBSyxDQUFDLEtBQUssRUFBRTtZQUN6QixJQUFJLENBQUMsSUFBSSxHQUFHLGlCQUFpQixDQUFDLEtBQUssR0FBRyxZQUFZLEdBQUcsTUFBTSxDQUFDO1NBQzdEO1FBQ0QsSUFBSSxLQUFLLEtBQUssS0FBSyxDQUFD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IGZyb20gJy4uL2NvbnRyYWN0L2ktcmVjdCc7XG5pbXBvcnQgeyBBbGlnbiB9IGZyb20gJy4uL2VudW0vYWxpZ24uZW51bSc7XG5pbXBvcnQgeyBWZXJ0aWNhbEFsaWduIH0gZnJvbSAnLi4vZW51bS92ZXJ0aWNhbC1hbGlnbi5lbnVtJztcblxuZXhwb3J0IGNsYXNzIFBvc2l0aW9uVXRpbCB7XG4gIHB1YmxpYyBzdGF0aWMgZ2V0UG9zaXRpb24oXG4gICAgY29udGFpbmVyUG9zaXRpb246IElSZWN0LFxuICAgIGVsZW1lbnRQb3NpdGlvbjogSVJlY3QsXG4gICAgYWxpZ246IEFsaWduLFxuICAgIHZlcnRpY2FsQWxpZ246IFZlcnRpY2FsQWxpZ24sXG4gICAgbWFyZ2luOiBudW1iZXIgPSAwLFxuICAgIHZlcnRpY2FsTWFyZ2luOiBudW1iZXIgPSAwXG4gICk6IElSZWN0IHtcbiAgICBjb25zdCByZWN0OiBJUmVjdCA9IHt9O1xuICAgIGNvbnN0IGVsZW1lbnRXaWR0aCA9IGVsZW1lbnRQb3NpdGlvbi5yaWdodCAtIGVsZW1lbnRQb3NpdGlvbi5sZWZ0O1xuICAgIGNvbnN0IGVsZW1lbnRIZWlnaHQgPSBlbGVtZW50UG9zaXRpb24uYm90dG9tIC0gZWxlbWVudFBvc2l0aW9uLnRvcDtcbiAgICBjb25zdCBjb250YWluZXJXaWR0aCA9IGNvbnRhaW5lclBvc2l0aW9uLnJpZ2h0IC0gY29udGFpbmVyUG9zaXRpb24ubGVmdDtcbiAgICBjb25zdCBjb250YWluZXJIZWlnaHQgPSBjb250YWluZXJQb3NpdGlvbi5ib3R0b20gLSBjb250YWluZXJQb3NpdGlvbi50b3A7XG4gICAgaWYgKGFsaWduID09PSBBbGlnbi5sZWZ0KSB7XG4gICAgICByZWN0LmxlZnQgPSBjb250YWluZXJQb3NpdGlvbi5sZWZ0ICsgbWFyZ2luO1xuICAgIH1cbiAgICBpZiAoYWxpZ24gPT09IEFsaWduLnJpZ2h0KSB7XG4gICAgICByZWN0LmxlZnQgPSBjb250YWluZXJQb3NpdGlvbi5yaWdodCAtIGVsZW1lbnRXaWR0aCAtIG1hcmdpbjtcbiAgICB9XG4gICAgaWYgKGFsaWduID09PSBBbGlnbi5jZW50ZXIpIHtcbiAgICAgIHJlY3QubGVmdCA9XG4gICAgICAgIChjb250YWluZXJQb3NpdGlvbi5sZWZ0ICsgY29udGFpbmVyUG9zaXRpb24ucmlnaHQpIC8gMiAtXG4gICAgICAgIGVsZW1lbnRXaWR0aCAvIDI7XG4gICAgfVxuICAgIGlmIChhbGlnbiA9PT0gQWxpZ24uZml0V2lkdGgpIHtcbiAgICAgIHJlY3QubGVmdCA9IGNvbnRhaW5lclBvc2l0aW9uLmxlZnQgKyBtYXJnaW47XG4gICAgICByZWN0LnJpZ2h0ID0gd2luZG93LmlubmVyV2lkdGggLSBjb250YWluZXJQb3NpdGlvbi5yaWdodCArIG1hcmdpbjtcbiAgICB9XG5cbiAgICBpZiAoYWxpZ24gPT09IEFsaWduLm1pbldpZHRoKSB7XG4gICAgICByZWN0LmxlZnQgPSBjb250YWluZXJQb3NpdGlvbi5sZWZ0ICsgbWFyZ2luO1xuICAgICAgcmVjdC5taW5XaWR0aCA9IGNvbnRhaW5lcldpZHRoO1xuICAgIH1cblxuICAgIGlmICh2ZXJ0aWNhbEFsaWduID09PSBWZXJ0aWNhbEFsaWduLmF1dG8pIHtcbiAgICAgIGlmIChcbiAgICAgICAgY29udGFpbmVyUG9zaXRpb24uYm90dG9tICtcbiAgICAgICAgICAoZWxlbWVudFBvc2l0aW9uLmJvdHRvbSAtIGVsZW1lbnRQb3NpdGlvbi50b3ApIDw9XG4gICAgICAgIHdpbmRvdy5pbm5lckhlaWdodFxuICAgICAgKSB7XG4gICAgICAgIHZlcnRpY2FsQWxpZ24gPSBWZXJ0aWNhbEFsaWduLmJvdHRvbTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHZlcnRpY2FsQWxpZ24gPSBWZXJ0aWNhbEFsaWduLnRvcDtcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKHZlcnRpY2FsQWxpZ24gPT09IFZlcnRpY2FsQWxpZ24udG9wKSB7XG4gICAgICByZWN0LmJvdHRvbSA9IHdpbmRvdy5pbm5lckhlaWdodCAtIGNvbnRhaW5lclBvc2l0aW9uLnRvcCArIHZlcnRpY2FsTWFyZ2luO1xuICAgIH1cbiAgICBpZiAodmVydGljYWxBbGlnbiA9PT0gVmVydGljYWxBbGlnbi5ib3R0b20pIHtcbiAgICAgIHJlY3QudG9wID0gY29udGFpbmVyUG9zaXRpb24uYm90dG9tICsgdmVydGljYWxNYXJnaW47XG4gICAgfVxuICAgIGlmICh2ZXJ0aWNhbEFsaWduID09PSBWZXJ0aWNhbEFsaWduLmNlbnRlcikge1xuICAgICAgcmVjdC50b3AgPVxuICAgICAgICAoY29udGFpbmVyUG9zaXRpb24udG9wICsgY29udGFpbmVyUG9zaXRpb24uYm90dG9tKSAvIDIgLVxuICAgICAgICBlbGVtZW50SGVpZ2h0IC8gMjtcbiAgICB9XG5cbiAgICBpZiAocmVjdC5sZWZ0IDwgMCkge1xuICAgICAgcmVjdC5sZWZ0ID0gMDtcbiAgICB9XG4gICAgaWYgKHJlY3QudG9wICsgZWxlbWVudEhlaWdodCA+IHdpbmRvdy5pbm5lckhlaWdodCB8fCByZWN0LmJvdHRvbSA8IDApIHtcbiAgICAgIHJlY3QuYm90dG9tID0gMDtcbiAgICB9XG4gICAgaWYgKHJlY3QudG9wIDwgMCkge1xuICAgICAgcmVjdC50b3AgPSAwO1xuICAgIH1cbiAgICBpZiAodmVydGljYWxBbGlnbiA9PT0gVmVydGljYWxBbGlnbi5ib3R0b20pIHtcbiAgICAgIHJlY3QubWF4SGVpZ2h0ID0gd2luZG93LmlubmVySGVpZ2h0IC0gcmVjdC50b3A7XG4gICAgfVxuICAgIGlmICh2ZXJ0aWNhbEFsaWduID09PSBWZXJ0aWNhbEFsaWduLnRvcCkge1xuICAgICAgcmVjdC5tYXhIZWlnaHQgPSBjb250YWluZXJQb3NpdGlvbi50b3A7XG4gICAgfVxuICAgIHJldHVybiByZWN0O1xuICB9XG5cbiAgcHVibGljIHN0YXRpYyBzZXRFbGVtZW50UG9zaXRpb24oZWxlbWVudDogSFRNTEVsZW1lbnQsIHJlY3Q6IElSZWN0KTogdm9pZCB7XG4gICAgZWxlbWVudC5zdHlsZS5sZWZ0ID0gcmVjdC5sZWZ0ICE9IG51bGwgPyBgJHtyZWN0LmxlZnR9cHhgIDogJyc7XG4gICAgZWxlbWVudC5zdHlsZS5yaWdodCA9IHJlY3QucmlnaHQgIT0gbnVsbCA/IGAke3JlY3QucmlnaHR9cHhgIDogJyc7XG4gICAgZWxlbWVudC5zdHlsZS50b3AgPSByZWN0LnRvcCAhPSBudWxsID8gYCR7cmVjdC50b3B9cHhgIDogJyc7XG4gICAgZWxlbWVudC5zdHlsZS5ib3R0b20gPSByZWN0LmJvdHRvbSAhPSBudWxsID8gYCR7cmVjdC5ib3R0b219cHhgIDogJyc7XG4gICAgZWxlbWVudC5zdHlsZS5tYXhIZWlnaHQgPVxuICAgICAgcmVjdC5tYXhIZWlnaHQgIT0gbnVsbCA/IGAke3JlY3QubWF4SGVpZ2h0fXB4YCA6ICcnO1xuICAgIGVsZW1lbnQuc3R5bGUubWluV2lkdGggPSByZWN0Lm1pbldpZHRoICE9IG51bGwgPyBgJHtyZWN0Lm1pbldpZHRofXB4YCA6ICcnO1xuICB9XG5cbiAgcHVibGljIHN0YXRpYyBnZXRNYXhIZWlnaHQocG9zaXRpb246IElSZWN0KTogbnVtYmVyIHwgbnVsbCB7XG4gICAgbGV0IG1heEhlaWdodCA9IG51bGw7XG4gICAgbWF4SGVpZ2h0ID0gMTtcbiAgICByZXR1cm4gbWF4SGVpZ2h0O1xuICB9XG5cbiAgcHVibGljIHN0YXRpYyBnZXRNYXhXaWR0aChwb3NpdGlvbjogSVJlY3QpOiBudW1iZXIgfCBudWxsIHtcbiAgICBsZXQgbWF4V2lkdGggPSBudWxsO1xuICAgIG1heFdpZHRoID0gMTtcbiAgICByZXR1cm4gbWF4V2lkdGg7XG4gIH1cbn1cbiJdfQ==
|
|
96
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9zaXRpb24tdXRpbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvc3JjL2NvbW1vbi91dGlsL3Bvc2l0aW9uLXV0aWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFDLEtBQUssRUFBQyxNQUFNLG9CQUFvQixDQUFDO0FBQ3pDLE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSw2QkFBNkIsQ0FBQztBQUUxRCxNQUFNLE9BQU8sWUFBWTtJQUNoQixNQUFNLENBQUMsV0FBVyxDQUN2QixpQkFBd0IsRUFDeEIsZUFBc0IsRUFDdEIsS0FBWSxFQUNaLGFBQTRCLEVBQzVCLFNBQWlCLENBQUMsRUFDbEIsaUJBQXlCLENBQUMsRUFDMUIsd0JBQStCO1FBQzdCLElBQUksRUFBRSxDQUFDO1FBQ1AsS0FBSyxFQUFFLENBQUM7UUFDUixHQUFHLEVBQUUsQ0FBQztRQUNOLE1BQU0sRUFBRSxDQUFDO0tBQ1Y7UUFFRCxNQUFNLElBQUksR0FBVSxFQUFFLENBQUM7UUFDdkIsTUFBTSxZQUFZLEdBQUcsZUFBZSxDQUFDLEtBQUssR0FBRyxlQUFlLENBQUMsSUFBSSxDQUFDO1FBQ2xFLE1BQU0sYUFBYSxHQUFHLGVBQWUsQ0FBQyxNQUFNLEdBQUcsZUFBZSxDQUFDLEdBQUcsQ0FBQztRQUNuRSxNQUFNLGNBQWMsR0FBRyxpQkFBaUIsQ0FBQyxLQUFLLEdBQUcsaUJBQWlCLENBQUMsSUFBSSxDQUFDO1FBQ3hFLE1BQU0sZUFBZSxHQUFHLGlCQUFpQixDQUFDLE1BQU0sR0FBRyxpQkFBaUIsQ0FBQyxHQUFHLENBQUM7UUFDekUsSUFBSSxLQUFLLEtBQUssS0FBSyxDQUFDLElBQUksRUFBRTtZQUN4QixJQUFJLENBQUMsSUFBSSxHQUFHLGlCQUFpQixDQUFDLElBQUksR0FBRyxNQUFNLENBQUM7U0FDN0M7UUFDRCxJQUFJLEtBQUssS0FBSyxLQUFLLENBQUMsS0FBSyxFQUFFO1lBQ3pC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LFNBQVMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFDdEQsT0FBTyxDQUFDLEtBQUssQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLFFBQVEsSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLFFBQVEsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7SUFDN0UsQ0FBQztJQUVNLE1BQU0sQ0FBQyxZQUFZLENBQUMsUUFBZTtRQUN4QyxJQUFJLFNBQVMsR0FBRyxJQUFJLENBQUM7UUFDckIsU0FBUyxHQUFHLENBQUMsQ0FBQztRQUNkLE9BQU8sU0FBUyxDQUFDO0lBQ25CLENBQUM7SUFFTSxNQUFNLENBQUMsV0FBVyxDQUFDLFFBQWU7UUFDdkMsSUFBSSxRQUFRLEdBQUcsSUFBSSxDQUFDO1FBQ3BCLFFBQVEsR0FBRyxDQUFDLENBQUM7UUFDYixPQUFPLFFBQVEsQ0FBQztJQUNsQixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0lSZWN0fSBmcm9tICcuLi9jb250cmFjdC9pLXJlY3QnO1xuaW1wb3J0IHtBbGlnbn0gZnJvbSAnLi4vZW51bS9hbGlnbi5lbnVtJztcbmltcG9ydCB7VmVydGljYWxBbGlnbn0gZnJvbSAnLi4vZW51bS92ZXJ0aWNhbC1hbGlnbi5lbnVtJztcblxuZXhwb3J0IGNsYXNzIFBvc2l0aW9uVXRpbCB7XG4gIHB1YmxpYyBzdGF0aWMgZ2V0UG9zaXRpb24oXG4gICAgY29udGFpbmVyUG9zaXRpb246IElSZWN0LFxuICAgIGVsZW1lbnRQb3NpdGlvbjogSVJlY3QsXG4gICAgYWxpZ246IEFsaWduLFxuICAgIHZlcnRpY2FsQWxpZ246IFZlcnRpY2FsQWxpZ24sXG4gICAgbWFyZ2luOiBudW1iZXIgPSAwLFxuICAgIHZlcnRpY2FsTWFyZ2luOiBudW1iZXIgPSAwLFxuICAgIHRyYW5zZm9ybWVkUGFyZW50UmVjdDogSVJlY3QgPSB7XG4gICAgICBsZWZ0OiAwLFxuICAgICAgcmlnaHQ6IDAsXG4gICAgICB0b3A6IDAsXG4gICAgICBib3R0b206IDBcbiAgICB9XG4gICk6IElSZWN0IHtcbiAgICBjb25zdCByZWN0OiBJUmVjdCA9IHt9O1xuICAgIGNvbnN0IGVsZW1lbnRXaWR0aCA9IGVsZW1lbnRQb3NpdGlvbi5yaWdodCAtIGVsZW1lbnRQb3NpdGlvbi5sZWZ0O1xuICAgIGNvbnN0IGVsZW1lbnRIZWlnaHQgPSBlbGVtZW50UG9zaXRpb24uYm90dG9tIC0gZWxlbWVudFBvc2l0aW9uLnRvcDtcbiAgICBjb25zdCBjb250YWluZXJXaWR0aCA9IGNvbnRhaW5lclBvc2l0aW9uLnJpZ2h0IC0gY29udGFpbmVyUG9zaXRpb24ubGVmdDtcbiAgICBjb25zdCBjb250YWluZXJIZWlnaHQgPSBjb250YWluZXJQb3NpdGlvbi5ib3R0b20gLSBjb250YWluZXJQb3NpdGlvbi50b3A7XG4gICAgaWYgKGFsaWduID09PSBBbGlnbi5sZWZ0KSB7XG4gICAgICByZWN0LmxlZnQgPSBjb250YWluZXJQb3NpdGlvbi5sZWZ0ICsgbWFyZ2luO1xuICAgIH1cbiAgICBpZiAoYWxpZ24gPT09IEFsaWduLnJpZ2h0KSB7XG4gICAgICByZWN0LmxlZnQgPSBjb250YWluZXJQb3NpdGlvbi5yaWdodCAtIGVsZW1lbnRXaWR0aCAtIG1hcmdpbjtcbiAgICB9XG4gICAgaWYgKGFsaWduID09PSBBbGlnbi5jZW50ZXIpIHtcbiAgICAgIHJlY3QubGVmdCA9XG4gICAgICAgIChjb250YWluZXJQb3NpdGlvbi5sZWZ0ICsgY29udGFpbmVyUG9zaXRpb24ucmlnaHQpIC8gMiAtXG4gICAgICAgIGVsZW1lbnRXaWR0aCAvIDI7XG4gICAgfVxuICAgIGlmIChhbGlnbiA9PT0gQWxpZ24uZml0V2lkdGgpIHtcbiAgICAgIHJlY3QubGVmdCA9IGNvbnRhaW5lclBvc2l0aW9uLmxlZnQgKyBtYXJnaW47XG4gICAgICByZWN0LnJpZ2h0ID0gd2luZG93LmlubmVyV2lkdGggLSBjb250YWluZXJQb3NpdGlvbi5yaWdodCArIG1hcmdpbjtcbiAgICB9XG5cbiAgICBpZiAoYWxpZ24gPT09IEFsaWduLm1pbldpZHRoKSB7XG4gICAgICByZWN0LmxlZnQgPSBjb250YWluZXJQb3NpdGlvbi5sZWZ0ICsgbWFyZ2luO1xuICAgICAgcmVjdC5taW5XaWR0aCA9IGNvbnRhaW5lcldpZHRoO1xuICAgIH1cblxuICAgIGlmICh2ZXJ0aWNhbEFsaWduID09PSBWZXJ0aWNhbEFsaWduLmF1dG8pIHtcbiAgICAgIGlmIChcbiAgICAgICAgY29udGFpbmVyUG9zaXRpb24uYm90dG9tICtcbiAgICAgICAgKGVsZW1lbnRQb3NpdGlvbi5ib3R0b20gLSBlbGVtZW50UG9zaXRpb24udG9wKSA8PVxuICAgICAgICB3aW5kb3cuaW5uZXJIZWlnaHRcbiAgICAgICkge1xuICAgICAgICB2ZXJ0aWNhbEFsaWduID0gVmVydGljYWxBbGlnbi5ib3R0b207XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB2ZXJ0aWNhbEFsaWduID0gVmVydGljYWxBbGlnbi50b3A7XG4gICAgICB9XG4gICAgfVxuICAgIGlmICh2ZXJ0aWNhbEFsaWduID09PSBWZXJ0aWNhbEFsaWduLnRvcCkge1xuICAgICAgcmVjdC50b3AgPSBjb250YWluZXJQb3NpdGlvbi50b3AgLSBlbGVtZW50SGVpZ2h0IC0gdmVydGljYWxNYXJnaW47XG4gICAgfVxuICAgIGlmICh2ZXJ0aWNhbEFsaWduID09PSBWZXJ0aWNhbEFsaWduLmJvdHRvbSkge1xuICAgICAgcmVjdC50b3AgPSBjb250YWluZXJQb3NpdGlvbi5ib3R0b20gKyB2ZXJ0aWNhbE1hcmdpbjtcbiAgICB9XG4gICAgaWYgKHZlcnRpY2FsQWxpZ24gPT09IFZlcnRpY2FsQWxpZ24uY2VudGVyKSB7XG4gICAgICByZWN0LnRvcCA9XG4gICAgICAgIChjb250YWluZXJQb3NpdGlvbi50b3AgKyBjb250YWluZXJQb3NpdGlvbi5ib3R0b20pIC8gMiAtXG4gICAgICAgIGVsZW1lbnRIZWlnaHQgLyAyO1xuICAgIH1cblxuICAgIGlmIChyZWN0LmxlZnQgPCAwKSB7XG4gICAgICByZWN0LmxlZnQgPSAwO1xuICAgIH1cbiAgICBpZiAocmVjdC50b3AgKyBlbGVtZW50SGVpZ2h0ID4gd2luZG93LmlubmVySGVpZ2h0IHx8IHJlY3QuYm90dG9tIDwgMCkge1xuICAgICAgcmVjdC5ib3R0b20gPSAwO1xuICAgIH1cbiAgICBpZiAocmVjdC50b3AgPCAwKSB7XG4gICAgICByZWN0LnRvcCA9IDA7XG4gICAgfVxuICAgIGlmICh2ZXJ0aWNhbEFsaWduID09PSBWZXJ0aWNhbEFsaWduLmJvdHRvbSB8fCB2ZXJ0aWNhbEFsaWduID09PSBWZXJ0aWNhbEFsaWduLmNlbnRlcikge1xuICAgICAgcmVjdC5tYXhIZWlnaHQgPSB3aW5kb3cuaW5uZXJIZWlnaHQgLSByZWN0LnRvcDtcbiAgICB9XG4gICAgaWYgKHZlcnRpY2FsQWxpZ24gPT09IFZlcnRpY2FsQWxpZ24udG9wKSB7XG4gICAgICByZWN0Lm1heEhlaWdodCA9IGNvbnRhaW5lclBvc2l0aW9uLnRvcDtcbiAgICB9XG4gICAgcmVjdC5sZWZ0ID0gcmVjdC5sZWZ0IC0gdHJhbnNmb3JtZWRQYXJlbnRSZWN0LmxlZnQ7XG4gICAgcmVjdC5yaWdodCA9IHJlY3QucmlnaHQgLSB0cmFuc2Zvcm1lZFBhcmVudFJlY3QubGVmdDtcbiAgICByZWN0LnRvcCA9IHJlY3QudG9wIC0gdHJhbnNmb3JtZWRQYXJlbnRSZWN0LnRvcDtcbiAgICByZWN0LmJvdHRvbSA9IHJlY3QuYm90dG9tID8gcmVjdC5ib3R0b20gLSB0cmFuc2Zvcm1lZFBhcmVudFJlY3QuYm90dG9tIDogcmVjdC5ib3R0b207XG4gICAgcmV0dXJuIHJlY3Q7XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIHNldEVsZW1lbnRQb3NpdGlvbihlbGVtZW50OiBIVE1MRWxlbWVudCwgcmVjdDogSVJlY3QpOiB2b2lkIHtcbiAgICBlbGVtZW50LnN0eWxlLmxlZnQgPSByZWN0LmxlZnQgIT0gbnVsbCA/IGAke3JlY3QubGVmdH1weGAgOiAnJztcbiAgICBlbGVtZW50LnN0eWxlLnJpZ2h0ID0gcmVjdC5yaWdodCAhPSBudWxsID8gYCR7cmVjdC5yaWdodH1weGAgOiAnJztcbiAgICBlbGVtZW50LnN0eWxlLnRvcCA9IHJlY3QudG9wICE9IG51bGwgPyBgJHtyZWN0LnRvcH1weGAgOiAnJztcbiAgICBlbGVtZW50LnN0eWxlLmJvdHRvbSA9IHJlY3QuYm90dG9tICE9IG51bGwgPyBgJHtyZWN0LmJvdHRvbX1weGAgOiAnJztcbiAgICBlbGVtZW50LnN0eWxlLm1heEhlaWdodCA9XG4gICAgICByZWN0Lm1heEhlaWdodCAhPSBudWxsID8gYCR7cmVjdC5tYXhIZWlnaHR9cHhgIDogJyc7XG4gICAgZWxlbWVudC5zdHlsZS5taW5XaWR0aCA9IHJlY3QubWluV2lkdGggIT0gbnVsbCA/IGAke3JlY3QubWluV2lkdGh9cHhgIDogJyc7XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIGdldE1heEhlaWdodChwb3NpdGlvbjogSVJlY3QpOiBudW1iZXIgfCBudWxsIHtcbiAgICBsZXQgbWF4SGVpZ2h0ID0gbnVsbDtcbiAgICBtYXhIZWlnaHQgPSAxO1xuICAgIHJldHVybiBtYXhIZWlnaHQ7XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIGdldE1heFdpZHRoKHBvc2l0aW9uOiBJUmVjdCk6IG51bWJlciB8IG51bGwge1xuICAgIGxldCBtYXhXaWR0aCA9IG51bGw7XG4gICAgbWF4V2lkdGggPSAxO1xuICAgIHJldHVybiBtYXhXaWR0aDtcbiAgfVxufVxuIl19
|
|
@@ -2,6 +2,7 @@ import { AxisOptions } from './axis-options';
|
|
|
2
2
|
import { Series } from './series';
|
|
3
3
|
import { TooltipOptions } from './tooltip-options';
|
|
4
4
|
import { ChartBounds } from './chart-bounds';
|
|
5
|
+
import { LegendType } from './enum/legend-type';
|
|
5
6
|
import { ZoomType } from './enum/zoom-type';
|
|
6
7
|
export class ChartOptions {
|
|
7
8
|
constructor(options) {
|
|
@@ -24,9 +25,13 @@ export class ChartOptions {
|
|
|
24
25
|
this.gridLines = options?.gridLines == null ? true : options.gridLines;
|
|
25
26
|
this.width = options?.width;
|
|
26
27
|
this.height = options?.height;
|
|
27
|
-
this.legend = {
|
|
28
|
+
this.legend = {
|
|
29
|
+
visible: true,
|
|
30
|
+
type: LegendType.swatches,
|
|
31
|
+
...options?.legend,
|
|
32
|
+
};
|
|
28
33
|
this.bounds = { ...this.bounds, ...options?.bounds };
|
|
29
34
|
this.annotations = options?.annotations;
|
|
30
35
|
}
|
|
31
36
|
}
|
|
32
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
37
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhcnQtb3B0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvc3JjL2NvbXBvbmVudC9jaGFydC9tb2RlbC9jaGFydC1vcHRpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBRWxDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNuRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ2hELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUk1QyxNQUFNLE9BQU8sWUFBWTtJQXFCdkIsWUFBWSxPQW9CWDtRQXZCRCxXQUFNLEdBQUcsSUFBSSxXQUFXLEVBQUUsQ0FBQztRQXdCekIsSUFBSSxDQUFDLElBQUksR0FBRyxPQUFPLEVBQUUsSUFBSSxDQUFDO1FBQzFCLElBQUksQ0FBQyxJQUFJLEdBQUc7WUFDVixNQUFNLEVBQUUsS0FBSztZQUNiLFFBQVEsRUFBRSxRQUFRLENBQUMsQ0FBQztZQUNwQixHQUFHLE9BQU8sRUFBRSxJQUFJO1NBQ2pCLENBQUM7UUFDRixJQUFJLENBQUMsTUFBTSxHQUFHLE9BQU8sRUFBRSxNQUFNLEVBQUUsR0FBRyxDQUFDLENBQUMsTUFBTSxFQUFFLEdBQUcsRUFBRSxFQUFFLENBQUMsQ0FBQztZQUNuRCxHQUFHLE1BQU07WUFDVCxFQUFFLEVBQUUsR0FBRztTQUNSLENBQUMsQ0FBQyxDQUFDO1FBQ0osSUFBSSxDQUFDLElBQUksR0FBRyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLFFBQVEsQ0FBQyxDQUFDLEVBQUUsR0FBRyxPQUFPLEVBQUUsSUFBSSxFQUFFLENBQUM7UUFDdEUsSUFBSSxDQUFDLE1BQU0sR0FBRyxPQUFPLEVBQUUsTUFBTSxFQUFFLEdBQUcsQ0FBQyxDQUFDLE1BQU0sRUFBRSxHQUFHLEVBQUUsRUFBRSxDQUFDLElBQUksTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7UUFDeEUsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLGNBQWMsQ0FBQyxFQUFFLEdBQUcsT0FBTyxFQUFFLE9BQU8sRUFBRSxDQUFDLENBQUM7UUFDM0QsSUFBSSxDQUFDLEtBQUssR0FBRyxPQUFPLEVBQUUsS0FBSyxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUM1RCxJQUFJLENBQUMsS0FBSyxHQUFHLE9BQU8sRUFBRSxLQUFLLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzVELElBQUksQ0FBQyxTQUFTLEdBQUcsT0FBTyxFQUFFLFNBQVMsSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQztRQUN2RSxJQUFJLENBQUMsS0FBSyxHQUFHLE9BQU8sRUFBRSxLQUFLLENBQUM7UUFDNUIsSUFBSSxDQUFDLE1BQU0sR0FBRyxPQUFPLEVBQUUsTUFBTSxDQUFDO1FBQzlCLElBQUksQ0FBQyxNQUFNLEdBQUc7WUFDWixPQUFPLEVBQUUsSUFBSTtZQUNiLElBQUksRUFBRSxVQUFVLENBQUMsUUFBUTtZQUN6QixHQUFHLE9BQU8sRUFBRSxNQUFNO1NBQ25CLENBQUM7UUFDRixJQUFJLENBQUMsTUFBTSxHQUFHLEVBQUUsR0FBRyxJQUFJLENBQUMsTUFBTSxFQUFFLEdBQUcsT0FBTyxFQUFFLE1BQU0sRUFBRSxDQUFDO1FBQ3JELElBQUksQ0FBQyxXQUFXLEdBQUcsT0FBTyxFQUFFLFdBQVcsQ0FBQztJQUMxQyxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBeGlzT3B0aW9ucyB9IGZyb20gJy4vYXhpcy1vcHRpb25zJztcbmltcG9ydCB7IFNlcmllcyB9IGZyb20gJy4vc2VyaWVzJztcbmltcG9ydCB7IEJhc2VQb2ludCB9IGZyb20gJy4vcG9pbnQvYmFzZS1wb2ludCc7XG5pbXBvcnQgeyBUb29sdGlwT3B0aW9ucyB9IGZyb20gJy4vdG9vbHRpcC1vcHRpb25zJztcbmltcG9ydCB7IENoYXJ0Qm91bmRzIH0gZnJvbSAnLi9jaGFydC1ib3VuZHMnO1xuaW1wb3J0IHsgTGVnZW5kVHlwZSB9IGZyb20gJy4vZW51bS9sZWdlbmQtdHlwZSc7XG5pbXBvcnQgeyBab29tVHlwZSB9IGZyb20gJy4vZW51bS96b29tLXR5cGUnO1xuaW1wb3J0IHsgWm9vbVRyYW5zZm9ybSB9IGZyb20gJ2QzJztcbmltcG9ydCB7IEFubm90YXRpb24gfSBmcm9tICcuL2Fubm90YXRpb24nO1xuXG5leHBvcnQgY2xhc3MgQ2hhcnRPcHRpb25zIHtcbiAgbmFtZTogc3RyaW5nO1xuICBzZXJpZXM/OiBTZXJpZXM8QmFzZVBvaW50PltdO1xuICBsZWdlbmQ/OiB7XG4gICAgdHlwZT86IExlZ2VuZFR5cGU7XG4gICAgdmlzaWJsZT86IGJvb2xlYW47XG4gIH07XG4gIHpvb20/OiB7XG4gICAgZW5hYmxlPzogYm9vbGVhbjtcbiAgICB6b29tVHlwZT86IFpvb21UeXBlO1xuICAgIHpvb21UcmFuc2Zvcm0/OiBab29tVHJhbnNmb3JtO1xuICB9O1xuICB0b29sdGlwPzogVG9vbHRpcE9wdGlvbnM7XG4gIHhBeGlzOiBBeGlzT3B0aW9uc1tdO1xuICB5QXhpczogQXhpc09wdGlvbnNbXTtcbiAgZ3JpZExpbmVzPzogYm9vbGVhbjtcbiAgd2lkdGg/OiBudW1iZXI7XG4gIGhlaWdodD86IG51bWJlcjtcbiAgYm91bmRzID0gbmV3IENoYXJ0Qm91bmRzKCk7XG4gIGFubm90YXRpb25zPzogQW5ub3RhdGlvbltdO1xuXG4gIGNvbnN0cnVjdG9yKG9wdGlvbnM/OiB7XG4gICAgbmFtZT86IHN0cmluZztcbiAgICBzZXJpZXM/OiBTZXJpZXM8QmFzZVBvaW50PltdO1xuICAgIHpvb20/OiB7XG4gICAgICBlbmFibGU/OiBib29sZWFuO1xuICAgICAgem9vbVR5cGU/OiBab29tVHlwZTtcbiAgICAgIHpvb21UcmFuc2Zvcm0/OiBab29tVHJhbnNmb3JtO1xuICAgIH07XG4gICAgdG9vbHRpcD86IFRvb2x0aXBPcHRpb25zO1xuICAgIHhBeGlzOiBBeGlzT3B0aW9uc1tdO1xuICAgIHlBeGlzOiBBeGlzT3B0aW9uc1tdO1xuICAgIGdyaWRMaW5lcz86IGJvb2xlYW47XG4gICAgd2lkdGg/OiBudW1iZXI7XG4gICAgaGVpZ2h0PzogbnVtYmVyO1xuICAgIGxlZ2VuZD86IHtcbiAgICAgIHR5cGU/OiBMZWdlbmRUeXBlO1xuICAgICAgdmlzaWJsZT86IGJvb2xlYW47XG4gICAgfTtcbiAgICBib3VuZHM/OiBDaGFydEJvdW5kcztcbiAgICBhbm5vdGF0aW9ucz86IEFubm90YXRpb25bXTtcbiAgfSkge1xuICAgIHRoaXMubmFtZSA9IG9wdGlvbnM/Lm5hbWU7XG4gICAgdGhpcy56b29tID0ge1xuICAgICAgZW5hYmxlOiBmYWxzZSxcbiAgICAgIHpvb21UeXBlOiBab29tVHlwZS54LFxuICAgICAgLi4ub3B0aW9ucz8uem9vbSxcbiAgICB9O1xuICAgIHRoaXMuc2VyaWVzID0gb3B0aW9ucz8uc2VyaWVzPy5tYXAoKHNlcmllcywgaWR4KSA9PiAoe1xuICAgICAgLi4uc2VyaWVzLFxuICAgICAgaWQ6IGlkeCxcbiAgICB9KSk7XG4gICAgdGhpcy56b29tID0geyBlbmFibGU6IGZhbHNlLCB6b29tVHlwZTogWm9vbVR5cGUueCwgLi4ub3B0aW9ucz8uem9vbSB9O1xuICAgIHRoaXMuc2VyaWVzID0gb3B0aW9ucz8uc2VyaWVzPy5tYXAoKHNlcmllcywgaWR4KSA9PiBuZXcgU2VyaWVzKHNlcmllcykpO1xuICAgIHRoaXMudG9vbHRpcCA9IG5ldyBUb29sdGlwT3B0aW9ucyh7IC4uLm9wdGlvbnM/LnRvb2x0aXAgfSk7XG4gICAgdGhpcy54QXhpcyA9IG9wdGlvbnM/LnhBeGlzPy5tYXAoKF8pID0+IG5ldyBBeGlzT3B0aW9ucyhfKSk7XG4gICAgdGhpcy55QXhpcyA9IG9wdGlvbnM/LnlBeGlzPy5tYXAoKF8pID0+IG5ldyBBeGlzT3B0aW9ucyhfKSk7XG4gICAgdGhpcy5ncmlkTGluZXMgPSBvcHRpb25zPy5ncmlkTGluZXMgPT0gbnVsbCA/IHRydWUgOiBvcHRpb25zLmdyaWRMaW5lcztcbiAgICB0aGlzLndpZHRoID0gb3B0aW9ucz8ud2lkdGg7XG4gICAgdGhpcy5oZWlnaHQgPSBvcHRpb25zPy5oZWlnaHQ7XG4gICAgdGhpcy5sZWdlbmQgPSB7XG4gICAgICB2aXNpYmxlOiB0cnVlLFxuICAgICAgdHlwZTogTGVnZW5kVHlwZS5zd2F0Y2hlcyxcbiAgICAgIC4uLm9wdGlvbnM/LmxlZ2VuZCxcbiAgICB9O1xuICAgIHRoaXMuYm91bmRzID0geyAuLi50aGlzLmJvdW5kcywgLi4ub3B0aW9ucz8uYm91bmRzIH07XG4gICAgdGhpcy5hbm5vdGF0aW9ucyA9IG9wdGlvbnM/LmFubm90YXRpb25zO1xuICB9XG59XG4iXX0=
|
|
@@ -4,6 +4,8 @@ import { takeWhile } from 'rxjs/operators';
|
|
|
4
4
|
import { DatePickerMode } from '../model/date-picker-mode.enum';
|
|
5
5
|
import { DateUtil } from '../../../util/date-util';
|
|
6
6
|
import { DatePickerUtil } from '../util/date-picker-util';
|
|
7
|
+
import { Align } from '../../../common/enum/align.enum';
|
|
8
|
+
import { VerticalAlign } from '../../../common/enum/vertical-align.enum';
|
|
7
9
|
import * as i0 from "@angular/core";
|
|
8
10
|
import * as i1 from "../service/picker-locale.service";
|
|
9
11
|
import * as i2 from "../../dropdown/dropdown/dropdown.component";
|
|
@@ -28,6 +30,8 @@ export class DatePickerComponent {
|
|
|
28
30
|
this._cdr = _cdr;
|
|
29
31
|
this._elementRef = _elementRef;
|
|
30
32
|
this.firstDayOfWeek = 1;
|
|
33
|
+
this.align = Align.left;
|
|
34
|
+
this.verticalAlign = VerticalAlign.auto;
|
|
31
35
|
this.showTime = false;
|
|
32
36
|
this.classDatepicker = true;
|
|
33
37
|
this.tabindex = 0;
|
|
@@ -36,8 +40,10 @@ export class DatePickerComponent {
|
|
|
36
40
|
this.displayMode = DatePickerMode.date;
|
|
37
41
|
this._value = null;
|
|
38
42
|
this._alive = true;
|
|
39
|
-
this.onChange = (_) => {
|
|
40
|
-
|
|
43
|
+
this.onChange = (_) => {
|
|
44
|
+
};
|
|
45
|
+
this.onTouched = () => {
|
|
46
|
+
};
|
|
41
47
|
this.setDate = (day) => {
|
|
42
48
|
if (day === null || day === undefined) {
|
|
43
49
|
this.currentValue = null;
|
|
@@ -191,7 +197,8 @@ export class DatePickerComponent {
|
|
|
191
197
|
registerOnTouched(fn) {
|
|
192
198
|
this.onTouched = fn;
|
|
193
199
|
}
|
|
194
|
-
ngOnInit() {
|
|
200
|
+
ngOnInit() {
|
|
201
|
+
}
|
|
195
202
|
ngOnDestroy() {
|
|
196
203
|
this._alive = false;
|
|
197
204
|
}
|
|
@@ -219,10 +226,10 @@ export class DatePickerComponent {
|
|
|
219
226
|
}
|
|
220
227
|
}
|
|
221
228
|
DatePickerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: DatePickerComponent, deps: [{ token: i1.PickerLocaleService }, { token: i0.ChangeDetectorRef }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
222
|
-
DatePickerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.1", type: DatePickerComponent, selector: "teta-date-picker", inputs: { disabled: "disabled", invalid: "invalid", firstDayOfWeek: "firstDayOfWeek", disabledDates: "disabledDates", disabledPeriods: "disabledPeriods", disabledDays: "disabledDays", minDate: "minDate", maxDate: "maxDate", minYearDate: "minYearDate", maxYearDate: "maxYearDate", appendToBody: "appendToBody", showTime: "showTime", format: "format" }, host: { listeners: { "window:keyup": "keyUp($event)" }, properties: { "class.datepicker-wide": "this.showTime", "class.datepicker_open": "this.open", "class.datepicker": "this.classDatepicker", "tabindex": "this.tabindex" } }, providers: [DATE_PICKER_CONTROL_VALUE_ACCESSOR], ngImport: i0, template: "<teta-dropdown\n class=\"row row_auto\"\n [disabled]=\"disabled\"\n [open]=\"open\"\n [autoCloseIgnore]=\"['esc']\"\n (openChange)=\"openPicker($event)\"\n [appendToBody]=\"appendToBody\">\n <div tetaDropdownHead\n class=\"datepicker-head font-body-3\"\n [class.datepicker-head_disabled]=\"disabled\"\n [class.datepicker-head_invalid]=\"invalid\">\n <teta-icon [name]=\"'calendar'\" class=\"margin-right-1\"></teta-icon>\n <div class=\"row_auto\">\n {{currentValue !== null && currentValue !== undefined ? (currentValue | date : format) : ''}}\n </div>\n <teta-icon [name]=\"'closeBig'\" (click)=\"clearPicker($event);\" class=\"margin-left-1\"></teta-icon>\n </div>\n <div tetaDropdownContent class=\"datepicker-body\">\n <div class=\"padding-3\">\n <div class=\"row align-center justify-content-between\">\n <div>\n <button teta-button\n [palette]=\"'text'\"\n [view]=\"displayMode===datePickerModeEnum.month ? 'primary' : 'ghost'\"\n (click)=\"setMode(datePickerModeEnum.month)\"\n (wheel)=\"scrollMonth($event);\">\n {{locale.monthNames[internalValue?.getMonth()]}}\n </button>\n <button teta-button\n class=\"margin-left-2\"\n [palette]=\"'text'\"\n [view]=\"displayMode===datePickerModeEnum.year ? 'primary' : 'ghost'\"\n (click)=\"setMode(datePickerModeEnum.year)\"\n (wheel)=\"scrollYear($event);\">\n {{internalValue?.getFullYear()}}\n </button>\n </div>\n <button teta-button\n [palette]=\"'text'\"\n [view]=\"'ghost'\"\n (click)=\"setToday()\">\n <teta-icon [name]=\"'calendar'\"></teta-icon>\n </button>\n </div>\n <div class=\"datepicker-content\">\n <teta-year-select\n *ngIf=\"displayMode === datePickerModeEnum.year\"\n [currentYear]=\"internalValue?.getFullYear()\"\n [today]=\"today\"\n [minDate]=\"minDate\"\n [maxDate]=\"maxDate\"\n (yearSelected)=\"setYear($event)\">\n </teta-year-select>\n <teta-month-select\n *ngIf=\"displayMode === datePickerModeEnum.month\"\n [currentMonth]=\"internalValue?.getMonth()\"\n [currentYear]=\"internalValue?.getFullYear()\"\n [locale]=\"locale\"\n [minDate]=\"minDate\"\n [maxDate]=\"maxDate\"\n (monthSelected)=\"setMonth($event)\">\n </teta-month-select>\n <teta-day-select\n *ngIf=\"displayMode === datePickerModeEnum.date\"\n [ngModel]=\"currentValue\"\n (ngModelChange)=\"applyValue($event)\"\n (dateSelected)=\"setDate($event)\"\n (yearSelected)=\"setYear($event)\"\n (monthSelected)=\"setMonth($event)\"\n [minDate]=\"minDate\"\n [maxDate]=\"maxDate\"\n [firstDayOfWeek]=\"firstDayOfWeek\"\n [disabledDays]=\"disabledDays\"\n [disabledDates]=\"disabledDates\"\n [disabledPeriods]=\"disabledPeriods\"></teta-day-select>\n </div>\n </div>\n <div *ngIf=\"showTime\" class=\"datepicker-time padding-v-1 border-top border-text-10 font-body-3 color-text-90\">\n <teta-time-part-control [max]=\"23\" [ngModel]=\"internalValue?.getHours()\"\n (ngModelChange)=\"setHour($event)\"></teta-time-part-control>\n :\n <teta-time-part-control [ngModel]=\"internalValue?.getMinutes()\"\n (ngModelChange)=\"setMinute($event)\"></teta-time-part-control>\n :\n <teta-time-part-control [ngModel]=\"internalValue?.getSeconds()\"\n (ngModelChange)=\"setSecond($event)\"></teta-time-part-control>\n </div>\n </div>\n</teta-dropdown>\n", styles: [""], components: [{ type: i2.DropdownComponent, selector: "teta-dropdown" }, { type: i3.IconComponent, selector: "teta-icon", inputs: ["name", "size", "palette", "class"] }, { type: i4.ButtonComponent, selector: "button[teta-button], teta-button", inputs: ["palette", "class", "view", "square"] }, { type: i5.YearSelectComponent, selector: "teta-year-select", inputs: ["currentYear", "today", "size", "minDate", "maxDate", "allowableRange"], outputs: ["yearSelected", "yearApplied"] }, { type: i6.MonthSelectComponent, selector: "teta-month-select", inputs: ["locale", "minDate", "maxDate", "size", "currentMonth", "currentYear"], outputs: ["monthSelected", "monthApplied"] }, { type: i7.DaySelectComponent, selector: "teta-day-select", inputs: ["firstDayOfWeek", "disabledDates", "disabledPeriods", "disabledDays", "minDate", "maxDate", "disabled"], outputs: ["dateSelected", "monthSelected", "yearSelected"] }, { type: i8.TimePartControlComponent, selector: "teta-time-part-control", inputs: ["min", "max", "disabled"] }], directives: [{ type: i9.DropdownHeadDirective, selector: "[tetaDropdownHead]" }, { type: i10.DropdownContentDirective, selector: "[tetaDropdownContent]" }, { type: i11.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i12.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i12.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }], pipes: { "date": i11.DatePipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
229
|
+
DatePickerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.1", type: DatePickerComponent, selector: "teta-date-picker", inputs: { disabled: "disabled", invalid: "invalid", firstDayOfWeek: "firstDayOfWeek", disabledDates: "disabledDates", disabledPeriods: "disabledPeriods", disabledDays: "disabledDays", minDate: "minDate", maxDate: "maxDate", minYearDate: "minYearDate", maxYearDate: "maxYearDate", align: "align", verticalAlign: "verticalAlign", appendToBody: "appendToBody", showTime: "showTime", format: "format" }, host: { listeners: { "window:keyup": "keyUp($event)" }, properties: { "class.datepicker-wide": "this.showTime", "class.datepicker_open": "this.open", "class.datepicker": "this.classDatepicker", "tabindex": "this.tabindex" } }, providers: [DATE_PICKER_CONTROL_VALUE_ACCESSOR], ngImport: i0, template: "<teta-dropdown\n class=\"row row_auto\"\n [disabled]=\"disabled\"\n [open]=\"open\"\n [autoCloseIgnore]=\"['esc']\"\n (openChange)=\"openPicker($event)\"\n [align]=\"align\"\n [verticalAlign]=\"verticalAlign\"\n [appendToBody]=\"appendToBody\">\n <div tetaDropdownHead\n class=\"datepicker-head font-body-3\"\n [class.datepicker-head_disabled]=\"disabled\"\n [class.datepicker-head_invalid]=\"invalid\">\n <teta-icon [name]=\"'calendar'\" class=\"margin-right-1\"></teta-icon>\n <div class=\"row_auto\">\n {{currentValue !== null && currentValue !== undefined ? (currentValue | date : format) : ''}}\n </div>\n <teta-icon [name]=\"'closeBig'\" (click)=\"clearPicker($event);\" class=\"margin-left-1\"></teta-icon>\n </div>\n <div tetaDropdownContent class=\"datepicker-body scrollable\" (click)=\"$event.preventDefault()\">\n <div class=\"padding-3\">\n <div class=\"row align-center justify-content-between\">\n <div>\n <button teta-button\n [palette]=\"'text'\"\n [view]=\"displayMode===datePickerModeEnum.month ? 'primary' : 'ghost'\"\n (click)=\"setMode(datePickerModeEnum.month)\"\n (wheel)=\"scrollMonth($event);\">\n {{locale.monthNames[internalValue?.getMonth()]}}\n </button>\n <button teta-button\n class=\"margin-left-2\"\n [palette]=\"'text'\"\n [view]=\"displayMode===datePickerModeEnum.year ? 'primary' : 'ghost'\"\n (click)=\"setMode(datePickerModeEnum.year)\"\n (wheel)=\"scrollYear($event);\">\n {{internalValue?.getFullYear()}}\n </button>\n </div>\n <button teta-button\n [palette]=\"'text'\"\n [view]=\"'ghost'\"\n (click)=\"setToday()\">\n <teta-icon [name]=\"'calendar'\"></teta-icon>\n </button>\n </div>\n <div class=\"datepicker-content\">\n <teta-year-select\n *ngIf=\"displayMode === datePickerModeEnum.year\"\n [currentYear]=\"internalValue?.getFullYear()\"\n [today]=\"today\"\n [minDate]=\"minDate\"\n [maxDate]=\"maxDate\"\n (yearSelected)=\"setYear($event)\">\n </teta-year-select>\n <teta-month-select\n *ngIf=\"displayMode === datePickerModeEnum.month\"\n [currentMonth]=\"internalValue?.getMonth()\"\n [currentYear]=\"internalValue?.getFullYear()\"\n [locale]=\"locale\"\n [minDate]=\"minDate\"\n [maxDate]=\"maxDate\"\n (monthSelected)=\"setMonth($event)\">\n </teta-month-select>\n <teta-day-select\n *ngIf=\"displayMode === datePickerModeEnum.date\"\n [ngModel]=\"currentValue\"\n (ngModelChange)=\"applyValue($event)\"\n (dateSelected)=\"setDate($event)\"\n (yearSelected)=\"setYear($event)\"\n (monthSelected)=\"setMonth($event)\"\n [minDate]=\"minDate\"\n [maxDate]=\"maxDate\"\n [firstDayOfWeek]=\"firstDayOfWeek\"\n [disabledDays]=\"disabledDays\"\n [disabledDates]=\"disabledDates\"\n [disabledPeriods]=\"disabledPeriods\"></teta-day-select>\n </div>\n </div>\n <div *ngIf=\"showTime\" class=\"datepicker-time padding-v-1 border-top border-text-10 font-body-3 color-text-90\">\n <teta-time-part-control [max]=\"23\" [ngModel]=\"internalValue?.getHours()\"\n (ngModelChange)=\"setHour($event)\"></teta-time-part-control>\n :\n <teta-time-part-control [ngModel]=\"internalValue?.getMinutes()\"\n (ngModelChange)=\"setMinute($event)\"></teta-time-part-control>\n :\n <teta-time-part-control [ngModel]=\"internalValue?.getSeconds()\"\n (ngModelChange)=\"setSecond($event)\"></teta-time-part-control>\n </div>\n </div>\n</teta-dropdown>\n", styles: [""], components: [{ type: i2.DropdownComponent, selector: "teta-dropdown" }, { type: i3.IconComponent, selector: "teta-icon", inputs: ["name", "size", "palette", "class"] }, { type: i4.ButtonComponent, selector: "button[teta-button], teta-button", inputs: ["palette", "class", "view", "square"] }, { type: i5.YearSelectComponent, selector: "teta-year-select", inputs: ["currentYear", "today", "size", "minDate", "maxDate", "allowableRange"], outputs: ["yearSelected", "yearApplied"] }, { type: i6.MonthSelectComponent, selector: "teta-month-select", inputs: ["locale", "minDate", "maxDate", "size", "currentMonth", "currentYear"], outputs: ["monthSelected", "monthApplied"] }, { type: i7.DaySelectComponent, selector: "teta-day-select", inputs: ["firstDayOfWeek", "disabledDates", "disabledPeriods", "disabledDays", "minDate", "maxDate", "disabled"], outputs: ["dateSelected", "monthSelected", "yearSelected"] }, { type: i8.TimePartControlComponent, selector: "teta-time-part-control", inputs: ["min", "max", "disabled"] }], directives: [{ type: i9.DropdownHeadDirective, selector: "[tetaDropdownHead]" }, { type: i10.DropdownContentDirective, selector: "[tetaDropdownContent]" }, { type: i11.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i12.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i12.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }], pipes: { "date": i11.DatePipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
223
230
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: DatePickerComponent, decorators: [{
|
|
224
231
|
type: Component,
|
|
225
|
-
args: [{ selector: 'teta-date-picker', providers: [DATE_PICKER_CONTROL_VALUE_ACCESSOR], changeDetection: ChangeDetectionStrategy.OnPush, template: "<teta-dropdown\n class=\"row row_auto\"\n [disabled]=\"disabled\"\n [open]=\"open\"\n [autoCloseIgnore]=\"['esc']\"\n (openChange)=\"openPicker($event)\"\n [appendToBody]=\"appendToBody\">\n <div tetaDropdownHead\n class=\"datepicker-head font-body-3\"\n [class.datepicker-head_disabled]=\"disabled\"\n [class.datepicker-head_invalid]=\"invalid\">\n <teta-icon [name]=\"'calendar'\" class=\"margin-right-1\"></teta-icon>\n <div class=\"row_auto\">\n {{currentValue !== null && currentValue !== undefined ? (currentValue | date : format) : ''}}\n </div>\n <teta-icon [name]=\"'closeBig'\" (click)=\"clearPicker($event);\" class=\"margin-left-1\"></teta-icon>\n </div>\n <div tetaDropdownContent class=\"datepicker-body\">\n <div class=\"padding-3\">\n <div class=\"row align-center justify-content-between\">\n <div>\n <button teta-button\n [palette]=\"'text'\"\n [view]=\"displayMode===datePickerModeEnum.month ? 'primary' : 'ghost'\"\n (click)=\"setMode(datePickerModeEnum.month)\"\n (wheel)=\"scrollMonth($event);\">\n {{locale.monthNames[internalValue?.getMonth()]}}\n </button>\n <button teta-button\n class=\"margin-left-2\"\n [palette]=\"'text'\"\n [view]=\"displayMode===datePickerModeEnum.year ? 'primary' : 'ghost'\"\n (click)=\"setMode(datePickerModeEnum.year)\"\n (wheel)=\"scrollYear($event);\">\n {{internalValue?.getFullYear()}}\n </button>\n </div>\n <button teta-button\n [palette]=\"'text'\"\n [view]=\"'ghost'\"\n (click)=\"setToday()\">\n <teta-icon [name]=\"'calendar'\"></teta-icon>\n </button>\n </div>\n <div class=\"datepicker-content\">\n <teta-year-select\n *ngIf=\"displayMode === datePickerModeEnum.year\"\n [currentYear]=\"internalValue?.getFullYear()\"\n [today]=\"today\"\n [minDate]=\"minDate\"\n [maxDate]=\"maxDate\"\n (yearSelected)=\"setYear($event)\">\n </teta-year-select>\n <teta-month-select\n *ngIf=\"displayMode === datePickerModeEnum.month\"\n [currentMonth]=\"internalValue?.getMonth()\"\n [currentYear]=\"internalValue?.getFullYear()\"\n [locale]=\"locale\"\n [minDate]=\"minDate\"\n [maxDate]=\"maxDate\"\n (monthSelected)=\"setMonth($event)\">\n </teta-month-select>\n <teta-day-select\n *ngIf=\"displayMode === datePickerModeEnum.date\"\n [ngModel]=\"currentValue\"\n (ngModelChange)=\"applyValue($event)\"\n (dateSelected)=\"setDate($event)\"\n (yearSelected)=\"setYear($event)\"\n (monthSelected)=\"setMonth($event)\"\n [minDate]=\"minDate\"\n [maxDate]=\"maxDate\"\n [firstDayOfWeek]=\"firstDayOfWeek\"\n [disabledDays]=\"disabledDays\"\n [disabledDates]=\"disabledDates\"\n [disabledPeriods]=\"disabledPeriods\"></teta-day-select>\n </div>\n </div>\n <div *ngIf=\"showTime\" class=\"datepicker-time padding-v-1 border-top border-text-10 font-body-3 color-text-90\">\n <teta-time-part-control [max]=\"23\" [ngModel]=\"internalValue?.getHours()\"\n (ngModelChange)=\"setHour($event)\"></teta-time-part-control>\n :\n <teta-time-part-control [ngModel]=\"internalValue?.getMinutes()\"\n (ngModelChange)=\"setMinute($event)\"></teta-time-part-control>\n :\n <teta-time-part-control [ngModel]=\"internalValue?.getSeconds()\"\n (ngModelChange)=\"setSecond($event)\"></teta-time-part-control>\n </div>\n </div>\n</teta-dropdown>\n", styles: [""] }]
|
|
232
|
+
args: [{ selector: 'teta-date-picker', providers: [DATE_PICKER_CONTROL_VALUE_ACCESSOR], changeDetection: ChangeDetectionStrategy.OnPush, template: "<teta-dropdown\n class=\"row row_auto\"\n [disabled]=\"disabled\"\n [open]=\"open\"\n [autoCloseIgnore]=\"['esc']\"\n (openChange)=\"openPicker($event)\"\n [align]=\"align\"\n [verticalAlign]=\"verticalAlign\"\n [appendToBody]=\"appendToBody\">\n <div tetaDropdownHead\n class=\"datepicker-head font-body-3\"\n [class.datepicker-head_disabled]=\"disabled\"\n [class.datepicker-head_invalid]=\"invalid\">\n <teta-icon [name]=\"'calendar'\" class=\"margin-right-1\"></teta-icon>\n <div class=\"row_auto\">\n {{currentValue !== null && currentValue !== undefined ? (currentValue | date : format) : ''}}\n </div>\n <teta-icon [name]=\"'closeBig'\" (click)=\"clearPicker($event);\" class=\"margin-left-1\"></teta-icon>\n </div>\n <div tetaDropdownContent class=\"datepicker-body scrollable\" (click)=\"$event.preventDefault()\">\n <div class=\"padding-3\">\n <div class=\"row align-center justify-content-between\">\n <div>\n <button teta-button\n [palette]=\"'text'\"\n [view]=\"displayMode===datePickerModeEnum.month ? 'primary' : 'ghost'\"\n (click)=\"setMode(datePickerModeEnum.month)\"\n (wheel)=\"scrollMonth($event);\">\n {{locale.monthNames[internalValue?.getMonth()]}}\n </button>\n <button teta-button\n class=\"margin-left-2\"\n [palette]=\"'text'\"\n [view]=\"displayMode===datePickerModeEnum.year ? 'primary' : 'ghost'\"\n (click)=\"setMode(datePickerModeEnum.year)\"\n (wheel)=\"scrollYear($event);\">\n {{internalValue?.getFullYear()}}\n </button>\n </div>\n <button teta-button\n [palette]=\"'text'\"\n [view]=\"'ghost'\"\n (click)=\"setToday()\">\n <teta-icon [name]=\"'calendar'\"></teta-icon>\n </button>\n </div>\n <div class=\"datepicker-content\">\n <teta-year-select\n *ngIf=\"displayMode === datePickerModeEnum.year\"\n [currentYear]=\"internalValue?.getFullYear()\"\n [today]=\"today\"\n [minDate]=\"minDate\"\n [maxDate]=\"maxDate\"\n (yearSelected)=\"setYear($event)\">\n </teta-year-select>\n <teta-month-select\n *ngIf=\"displayMode === datePickerModeEnum.month\"\n [currentMonth]=\"internalValue?.getMonth()\"\n [currentYear]=\"internalValue?.getFullYear()\"\n [locale]=\"locale\"\n [minDate]=\"minDate\"\n [maxDate]=\"maxDate\"\n (monthSelected)=\"setMonth($event)\">\n </teta-month-select>\n <teta-day-select\n *ngIf=\"displayMode === datePickerModeEnum.date\"\n [ngModel]=\"currentValue\"\n (ngModelChange)=\"applyValue($event)\"\n (dateSelected)=\"setDate($event)\"\n (yearSelected)=\"setYear($event)\"\n (monthSelected)=\"setMonth($event)\"\n [minDate]=\"minDate\"\n [maxDate]=\"maxDate\"\n [firstDayOfWeek]=\"firstDayOfWeek\"\n [disabledDays]=\"disabledDays\"\n [disabledDates]=\"disabledDates\"\n [disabledPeriods]=\"disabledPeriods\"></teta-day-select>\n </div>\n </div>\n <div *ngIf=\"showTime\" class=\"datepicker-time padding-v-1 border-top border-text-10 font-body-3 color-text-90\">\n <teta-time-part-control [max]=\"23\" [ngModel]=\"internalValue?.getHours()\"\n (ngModelChange)=\"setHour($event)\"></teta-time-part-control>\n :\n <teta-time-part-control [ngModel]=\"internalValue?.getMinutes()\"\n (ngModelChange)=\"setMinute($event)\"></teta-time-part-control>\n :\n <teta-time-part-control [ngModel]=\"internalValue?.getSeconds()\"\n (ngModelChange)=\"setSecond($event)\"></teta-time-part-control>\n </div>\n </div>\n</teta-dropdown>\n", styles: [""] }]
|
|
226
233
|
}], ctorParameters: function () { return [{ type: i1.PickerLocaleService }, { type: i0.ChangeDetectorRef }, { type: i0.ElementRef }]; }, propDecorators: { disabled: [{
|
|
227
234
|
type: Input
|
|
228
235
|
}], invalid: [{
|
|
@@ -243,6 +250,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.1", ngImpor
|
|
|
243
250
|
type: Input
|
|
244
251
|
}], maxYearDate: [{
|
|
245
252
|
type: Input
|
|
253
|
+
}], align: [{
|
|
254
|
+
type: Input
|
|
255
|
+
}], verticalAlign: [{
|
|
256
|
+
type: Input
|
|
246
257
|
}], appendToBody: [{
|
|
247
258
|
type: Input
|
|
248
259
|
}], showTime: [{
|
|
@@ -265,4 +276,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.1", ngImpor
|
|
|
265
276
|
type: HostListener,
|
|
266
277
|
args: ['window:keyup', ['$event']]
|
|
267
278
|
}] } });
|
|
268
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1waWNrZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tcG9uZW50cy9zcmMvY29tcG9uZW50L2RhdGUtcGlja2VyL2RhdGUtcGlja2VyL2RhdGUtcGlja2VyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvc3JjL2NvbXBvbmVudC9kYXRlLXBpY2tlci9kYXRlLXBpY2tlci9kYXRlLXBpY2tlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBRXZCLFNBQVMsRUFFVCxVQUFVLEVBQ1YsV0FBVyxFQUNYLFlBQVksRUFDWixLQUFLLEdBR04sTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUF3QixpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXpFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUczQyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDaEUsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ25ELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7QUFFMUQsTUFBTSxDQUFDLE1BQU0sa0NBQWtDLEdBQVE7SUFDckQsT0FBTyxFQUFFLGlCQUFpQjtJQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLG1CQUFtQixDQUFDO0lBQ2xELEtBQUssRUFBRSxJQUFJO0NBQ1osQ0FBQztBQVNGLE1BQU0sT0FBTyxtQkFBbUI7SUF1RTlCLFlBQ1MsYUFBa0MsRUFDakMsSUFBdUIsRUFDdkIsV0FBdUI7UUFGeEIsa0JBQWEsR0FBYixhQUFhLENBQXFCO1FBQ2pDLFNBQUksR0FBSixJQUFJLENBQW1CO1FBQ3ZCLGdCQUFX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QUNHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUlOLFFBQVE7c0JBRlAsV0FBVzt1QkFBQyx1QkFBdUI7O3NCQUNuQyxLQUFLO2dCQUlGLE1BQU07c0JBRFQsS0FBSztnQkFZZ0MsSUFBSTtzQkFBekMsV0FBVzt1QkFBQyx1QkFBdUI7Z0JBQ2MsZUFBZTtzQkFBaEUsV0FBVzt1QkFBQyxrQkFBa0I7Z0JBQ1csUUFBUTtzQkFBakQsV0FBVzt1QkFBQyxVQUFVO2dCQWtEbUIsS0FBSztzQkFBOUMsWUFBWTt1QkFBQyxjQUFjLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgZm9yd2FyZFJlZixcbiAgSG9zdEJpbmRpbmcsXG4gIEhvc3RMaXN0ZW5lcixcbiAgSW5wdXQsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IFBpY2tlckxvY2FsZVNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlL3BpY2tlci1sb2NhbGUuc2VydmljZSc7XG5pbXBvcnQgeyB0YWtlV2hpbGUgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBEYXRlUGVyaW9kIH0gZnJvbSAnLi4vbW9kZWwvZGF0ZS1wZXJpb2QnO1xuaW1wb3J0IHsgUGlja2VyTG9jYWxlTW9kZWwgfSBmcm9tICcuLi9tb2RlbC9waWNrZXItbG9jYWxlLW1vZGVsJztcbmltcG9ydCB7IERhdGVQaWNrZXJNb2RlIH0gZnJvbSAnLi4vbW9kZWwvZGF0ZS1waWNrZXItbW9kZS5lbnVtJztcbmltcG9ydCB7IERhdGVVdGlsIH0gZnJvbSAnLi4vLi4vLi4vdXRpbC9kYXRlLXV0aWwnO1xuaW1wb3J0IHsgRGF0ZVBpY2tlclV0aWwgfSBmcm9tICcuLi91dGlsL2RhdGUtcGlja2VyLXV0aWwnO1xuXG5leHBvcnQgY29uc3QgREFURV9QSUNLRVJfQ09OVFJPTF9WQUxVRV9BQ0NFU1NPUjogYW55ID0ge1xuICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gRGF0ZVBpY2tlckNvbXBvbmVudCksXG4gIG11bHRpOiB0cnVlLFxufTtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndGV0YS1kYXRlLXBpY2tlcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9kYXRlLXBpY2tlci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2RhdGUtcGlja2VyLmNvbXBvbmVudC5zY3NzJ10sXG4gIHByb3ZpZGVyczogW0RBVEVfUElDS0VSX0NPTlRST0xfVkFMVUVfQUNDRVNTT1JdLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgRGF0ZVBpY2tlckNvbXBvbmVudFxuICBpbXBsZW1lbnRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBPbkluaXQsIE9uRGVzdHJveVxue1xuICBASW5wdXQoKSBkaXNhYmxlZDogYm9vbGVhbjtcbiAgQElucHV0KCkgaW52YWxpZDogYm9vbGVhbjtcbiAgQElucHV0KCkgZmlyc3REYXlPZldlZWsgPSAxO1xuICBASW5wdXQoKSBkaXNhYmxlZERhdGVzOiBEYXRlW107XG4gIEBJbnB1dCgpIGRpc2FibGVkUGVyaW9kczogRGF0ZVBlcmlvZFtdO1xuICBASW5wdXQoKSBkaXNhYmxlZERheXM6IG51bWJlcltdO1xuICBASW5wdXQoKSBtaW5EYXRlOiBEYXRlO1xuICBASW5wdXQoKSBtYXhEYXRlOiBEYXRlO1xuICBASW5wdXQoKSBtaW5ZZWFyRGF0ZTogRGF0ZTtcbiAgQElucHV0KCkgbWF4WWVhckRhdGU6IERhdGU7XG4gIEBJbnB1dCgpIGFwcGVuZFRvQm9keTogYm9vbGVhbjtcblxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLmRhdGVwaWNrZXItd2lkZScpXG4gIEBJbnB1dCgpXG4gIHNob3dUaW1lID0gZmFsc2U7XG5cbiAgQElucHV0KClcbiAgc2V0IGZvcm1hdCh2YWw6IHN0cmluZykge1xuICAgIHRoaXMuX2Zvcm1hdCA9IHZhbDtcbiAgfVxuXG4gIGdldCBmb3JtYXQoKTogc3RyaW5nIHtcbiAgICBpZiAodGhpcy5fZm9ybWF0KSB7XG4gICAgICByZXR1cm4gdGhpcy5fZm9ybWF0O1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5zaG93VGltZSA/ICdkZC5NTS55eXl5IEhIOm1tOnNzJyA6ICdkZC5NTS55eXl5JztcbiAgfVxuXG4gIEBIb3N0QmluZGluZygnY2xhc3MuZGF0ZXBpY2tlcl9vcGVuJykgb3BlbjogYm9vbGVhbjtcbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5kYXRlcGlja2VyJykgcHJpdmF0ZSByZWFkb25seSBjbGFzc0RhdGVwaWNrZXIgPSB0cnVlO1xuICBASG9zdEJpbmRpbmcoJ3RhYmluZGV4JykgcHJpdmF0ZSByZWFkb25seSB0YWJpbmRleCA9IDA7XG5cbiAgbG9jYWxlOiBQaWNrZXJMb2NhbGVNb2RlbDtcbiAgdG9kYXk6IERhdGUgPSBuZXcgRGF0ZSgpO1xuXG4gIGRhdGVQaWNrZXJNb2RlRW51bSA9IERhdGVQaWNrZXJNb2RlO1xuICBkaXNwbGF5TW9kZTogRGF0ZVBpY2tlck1vZGUgPSBEYXRlUGlja2VyTW9kZS5kYXRlO1xuICBfZm9ybWF0OiBzdHJpbmc7XG5cbiAgX3ZhbHVlOiBEYXRlIHwgbnVsbCA9IG51bGw7XG4gIF9jdXJyZW50VmFsdWU6IERhdGU7XG5cbiAgcHJpdmF0ZSBfYWxpdmUgPSB0cnVlO1xuXG4gIGdldCB2YWx1ZSgpOiBEYXRlIHwgbnVsbCB7XG4gICAgcmV0dXJuIHRoaXMuX3ZhbHVlO1xuICB9XG5cbiAgc2V0IHZhbHVlKHY6IERhdGUgfCBudWxsKSB7XG4gICAgaWYgKHY/LmdldFRpbWUoKSAhPT0gdGhpcy5fdmFsdWU/LmdldFRpbWUoKSkge1xuICAgICAgdGhpcy5fdmFsdWUgPSB2O1xuICAgICAgdGhpcy5jdXJyZW50VmFsdWUgPSB0aGlzLl92YWx1ZTtcbiAgICB9XG4gIH1cblxuICBnZXQgY3VycmVudFZhbHVlKCk6IERhdGUge1xuICAgIHJldHVybiB0aGlzLl9jdXJyZW50VmFsdWU7XG4gIH1cblxuICBzZXQgY3VycmVudFZhbHVlKGRhdGU6IERhdGUpIHtcbiAgICB0aGlzLl9jdXJyZW50VmFsdWUgPSBkYXRlO1xuICAgIHRoaXMuX2Nkci5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIGdldCBpbnRlcm5hbFZhbHVlKCkge1xuICAgIHJldHVybiB0aGlzLmN1cnJlbnRWYWx1ZSA/PyB0aGlzLmVtcHR5RGF0ZSgpO1xuICB9XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIGxvY2FsZVNlcnZpY2U6IFBpY2tlckxvY2FsZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBfY2RyOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBwcml2YXRlIF9lbGVtZW50UmVmOiBFbGVtZW50UmVmXG4gICkge1xuICAgIGxvY2FsZVNlcnZpY2UubG9jYWxlXG4gICAgICAucGlwZSh0YWtlV2hpbGUoKF8pID0+IHRoaXMuX2FsaXZlKSlcbiAgICAgIC5zdWJzY3JpYmUoKGxvY2FsZTogUGlja2VyTG9jYWxlTW9kZWwpID0+IHtcbiAgICAgICAgdGhpcy5sb2NhbGUgPSBsb2NhbGU7XG4gICAgICB9KTtcbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ3dpbmRvdzprZXl1cCcsIFsnJGV2ZW50J10pIGtleVVwKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLm9wZW4pIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKGV2ZW50LmNvZGUgPT09ICdFc2NhcGUnKSB7XG4gICAgICB0aGlzLmN1cnJlbnRWYWx1ZSA9IHRoaXMudmFsdWU7XG4gICAgICB0aGlzLm9wZW4gPSBmYWxzZTtcbiAgICB9XG4gIH1cblxuICB3cml0ZVZhbHVlKHZhbHVlOiBhbnkpIHtcbiAgICB0aGlzLnZhbHVlID0gdmFsdWU7XG4gICAgdGhpcy5fY2RyLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgb25DaGFuZ2UgPSAoXzogYW55KSA9PiB7fTtcblxuICBvblRvdWNoZWQgPSAoKSA9PiB7fTtcblxuICByZWdpc3Rlck9uQ2hhbmdlKGZuOiAoXzogYW55KSA9PiB2b2lkKTogdm9pZCB7XG4gICAgdGhpcy5vbkNoYW5nZSA9IGZuO1xuICB9XG5cbiAgcmVnaXN0ZXJPblRvdWNoZWQoZm46ICgpID0+IHZvaWQpOiB2b2lkIHtcbiAgICB0aGlzLm9uVG91Y2hlZCA9IGZuO1xuICB9XG5cbiAgbmdPbkluaXQoKSB7fVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMuX2FsaXZlID0gZmFsc2U7XG4gIH1cblxuICBhcHBseVZhbHVlKGRhdGU6IERhdGUpIHtcbiAgICB0aGlzLnNldERhdGUoZGF0ZSk7XG4gICAgdGhpcy52YWx1ZSA9IHRoaXMuY3VycmVudFZhbHVlO1xuICAgIHRoaXMub25DaGFuZ2UodGhpcy52YWx1ZSk7XG4gICAgdGhpcy5vcGVuID0gZmFsc2U7XG4gIH1cblxuICBzZXREYXRlID0gKGRheTogRGF0ZSkgPT4ge1xuICAgIGlmIChkYXkgPT09IG51bGwgfHwgZGF5ID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHRoaXMuY3VycmVudFZhbHVlID0gbnVsbDtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY29uc3QgZHQgPSB0aGlzLmludGVybmFsVmFsdWU7XG4gICAgZHQuc2V0RnVsbFllYXIoZGF5LmdldEZ1bGxZZWFyKCksIGRheS5nZXRNb250aCgpLCBkYXkuZ2V0RGF0ZSgpKTtcbiAgICB0aGlzLmN1cnJlbnRWYWx1ZSA9IG5ldyBEYXRlKGR0KTtcbiAgICB0aGlzLl9jZHIubWFya0ZvckNoZWNrKCk7XG4gIH07XG5cbiAgc2V0WWVhciA9ICh5ZWFyOiBudW1iZXIpID0+IHtcbiAgICBjb25zdCBkdCA9IHRoaXMuaW50ZXJuYWxWYWx1ZTtcbiAgICBkdC5zZXRGdWxsWWVhcih5ZWFyKTtcbiAgICB0aGlzLmN1cnJlbnRWYWx1ZSA9IG5ldyBEYXRlKGR0KTtcbiAgICB0aGlzLnNldE1vZGUoRGF0ZVBpY2tlck1vZGUuZGF0ZSk7XG4gICAgdGhpcy5fY2RyLm1hcmtGb3JDaGVjaygpO1xuICB9O1xuXG4gIHNldE1vbnRoID0gKG1vbnRoOiBudW1iZXIpID0+IHtcbiAgICBjb25zdCBkdCA9IHRoaXMuaW50ZXJuYWxWYWx1ZTtcbiAgICBkdC5zZXRNb250aChtb250aCk7XG4gICAgdGhpcy5jdXJyZW50VmFsdWUgPSBuZXcgRGF0ZShkdCk7XG4gICAgdGhpcy5zZXRNb2RlKERhdGVQaWNrZXJNb2RlLmRhdGUpO1xuICAgIHRoaXMuX2Nkci5tYXJrRm9yQ2hlY2soKTtcbiAgfTtcblxuICBzZXRIb3VyID0gKGhvdXJzOiBudW1iZXIpID0+IHtcbiAgICBjb25zdCBkdCA9IHRoaXMuaW50ZXJuYWxWYWx1ZTtcbiAgICBkdC5zZXRIb3Vycyhob3Vycyk7XG4gICAgdGhpcy5jdXJyZW50VmFsdWUgPSBuZXcgRGF0ZShkdCk7XG4gICAgdGhpcy5fY2RyLm1hcmtGb3JDaGVjaygpO1xuICB9O1xuXG4gIHNldE1pbnV0ZSA9IChtaW51dGU6IG51bWJlcikgPT4ge1xuICAgIGNvbnN0IGR0ID0gdGhpcy5pbnRlcm5hbFZhbHVlO1xuICAgIGR0LnNldE1pbnV0ZXMobWludXRlKTtcbiAgICB0aGlzLmN1cnJlbnRWYWx1ZSA9IG5ldyBEYXRlKGR0KTtcbiAgICB0aGlzLl9jZHIubWFya0ZvckNoZWNrKCk7XG4gIH07XG5cbiAgc2V0U2Vjb25kID0gKHNlY29uZHM6IG51bWJlcikgPT4ge1xuICAgIGNvbnN0IGR0ID0gdGhpcy5pbnRlcm5hbFZhbHVlO1xuICAgIGR0LnNldFNlY29uZHMoc2Vjb25kcyk7XG4gICAgdGhpcy5jdXJyZW50VmFsdWUgPSBuZXcgRGF0ZShkdCk7XG4gICAgdGhpcy5fY2RyLm1hcmtGb3JDaGVjaygpO1xuICB9O1xuXG4gIHNldFRvZGF5ID0gKCkgPT4ge1xuICAgIHRoaXMuY3VycmVudFZhbHVlID0gdGhpcy5lbXB0eURhdGUoKTtcbiAgICB0aGlzLl9jZHIubWFya0ZvckNoZWNrKCk7XG4gIH07XG5cbiAgY2xlYXJQaWNrZXIgPSAoZXZlbnQ6IE1vdXNlRXZlbnQpOiB2b2lkID0+IHtcbiAgICB0aGlzLnByZXZlbnRFdmVudChldmVudCk7XG4gICAgdGhpcy52YWx1ZSA9IG51bGw7XG4gICAgdGhpcy5vbkNoYW5nZShudWxsKTtcbiAgfTtcblxuICBpc0RhdGVJbkRpc2FibGVkUGVyaW9kID0gKGRhdDogRGF0ZSk6IGJvb2xlYW4gPT4ge1xuICAgIGlmICghdGhpcy5kaXNhYmxlZFBlcmlvZHMgfHwgdGhpcy5kaXNhYmxlZFBlcmlvZHMubGVuZ3RoIDwgMSB8fCAhZGF0KSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLmRpc2FibGVkUGVyaW9kcy5zb21lKFxuICAgICAgKGQ6IERhdGVQZXJpb2QpID0+XG4gICAgICAgIGQgJiZcbiAgICAgICAgZC5zdGFydCAmJlxuICAgICAgICBkLmVuZCAmJlxuICAgICAgICBkLnN0YXJ0LmdldFRpbWUoKSA8PSBkYXQuZ2V0VGltZSgpICYmXG4gICAgICAgIGQuZW5kLmdldFRpbWUoKSA+PSBkYXQuZ2V0VGltZSgpXG4gICAgKTtcbiAgfTtcblxuICBpc1Njcm9sbElnbm9yZWQgPSAoKTogYm9vbGVhbiA9PlxuICAgIHRoaXMuZGlzcGxheU1vZGUgPT09IERhdGVQaWNrZXJNb2RlLm1vbnRoIHx8XG4gICAgdGhpcy5kaXNwbGF5TW9kZSA9PT0gRGF0ZVBpY2tlck1vZGUueWVhcjtcblxuICBzY3JvbGxNb250aCA9IChlOiBhbnkpID0+IHtcbiAgICBjb25zdCBkZWx0YSA9IGU/LmRlbHRhWSA/PyBlO1xuXG4gICAgaWYgKGUgaW5zdGFuY2VvZiBXaGVlbEV2ZW50KSB7XG4gICAgICB0aGlzLnByZXZlbnRFdmVudChlKTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5pc1Njcm9sbElnbm9yZWQoKSkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICB0aGlzLmN1cnJlbnRWYWx1ZSA9IERhdGVQaWNrZXJVdGlsLnNjcm9sbE1vbnRoKGRlbHRhLCB0aGlzLmludGVybmFsVmFsdWUpO1xuICB9O1xuXG4gIHNjcm9sbFllYXIgPSAoZTogYW55KSA9PiB7XG4gICAgdGhpcy5wcmV2ZW50RXZlbnQoZSk7XG4gICAgaWYgKHRoaXMuaXNTY3JvbGxJZ25vcmVkKCkpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgdGhpcy5jdXJyZW50VmFsdWUgPSBEYXRlUGlja2VyVXRpbC5zY3JvbGxNb250aChcbiAgICAgIGUuZGVsdGFZLFxuICAgICAgdGhpcy5pbnRlcm5hbFZhbHVlXG4gICAgKTtcbiAgfTtcblxuICBvcGVuUGlja2VyID0gKHNob3c6IGJvb2xlYW4pID0+IHtcbiAgICBpZiAodGhpcy5kaXNhYmxlZCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAoIXNob3cpIHtcbiAgICAgIHRoaXMuc2V0TW9kZShEYXRlUGlja2VyTW9kZS5kYXRlKTtcbiAgICAgIHRoaXMuYXBwbHlWYWx1ZSh0aGlzLmN1cnJlbnRWYWx1ZSk7XG4gICAgfVxuICAgIHRoaXMub3BlbiA9IHNob3c7XG4gICAgdGhpcy5fY2RyLm1hcmtGb3JDaGVjaygpO1xuICB9O1xuXG4gIGNsb3NlUGlja2VyID0gKCkgPT4ge1xuICAgIHRoaXMub3BlblBpY2tlcihmYWxzZSk7XG4gICAgdGhpcy5vblRvdWNoZWQoKTtcbiAgfTtcblxuICBwcmV2ZW50RXZlbnQgPSAoZXZlbnQ6IGFueSkgPT4ge1xuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9O1xuXG4gIGZvY3VzKCkge1xuICAgIHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5mb2N1cygpO1xuICB9XG5cbiAgc2V0TW9kZShtb2RlOiBEYXRlUGlja2VyTW9kZSkge1xuICAgIGxldCByZXN1bHQ6IERhdGVQaWNrZXJNb2RlO1xuICAgIGlmIChtb2RlID09PSB0aGlzLmRpc3BsYXlNb2RlIHx8IG1vZGUgPT09IERhdGVQaWNrZXJNb2RlLmRhdGUpIHtcbiAgICAgIHJlc3VsdCA9IERhdGVQaWNrZXJNb2RlLmRhdGU7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJlc3VsdCA9IG1vZGU7XG4gICAgfVxuICAgIHRoaXMuZGlzcGxheU1vZGUgPSByZXN1bHQ7XG4gIH1cblxuICBwcml2YXRlIGVtcHR5RGF0ZSgpIHtcbiAgICByZXR1cm4gRGF0ZVV0aWwudHJ1bmNhdGVUb0RheShuZXcgRGF0ZSgpKTtcbiAgfVxufVxuIiwiPHRldGEtZHJvcGRvd25cbiAgY2xhc3M9XCJyb3cgcm93X2F1dG9cIlxuICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICBbb3Blbl09XCJvcGVuXCJcbiAgW2F1dG9DbG9zZUlnbm9yZV09XCJbJ2VzYyddXCJcbiAgKG9wZW5DaGFuZ2UpPVwib3BlblBpY2tlcigkZXZlbnQpXCJcbiAgW2FwcGVuZFRvQm9keV09XCJhcHBlbmRUb0JvZHlcIj5cbiAgPGRpdiB0ZXRhRHJvcGRvd25IZWFkXG4gICAgICAgY2xhc3M9XCJkYXRlcGlja2VyLWhlYWQgZm9udC1ib2R5LTNcIlxuICAgICAgIFtjbGFzcy5kYXRlcGlja2VyLWhlYWRfZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgICAgIFtjbGFzcy5kYXRlcGlja2VyLWhlYWRfaW52YWxpZF09XCJpbnZhbGlkXCI+XG4gICAgPHRldGEtaWNvbiBbbmFtZV09XCInY2FsZW5kYXInXCIgY2xhc3M9XCJtYXJnaW4tcmlnaHQtMVwiPjwvdGV0YS1pY29uPlxuICAgIDxkaXYgY2xhc3M9XCJyb3dfYXV0b1wiPlxuICAgICAge3tjdXJyZW50VmFsdWUgIT09IG51bGwgJiYgY3VycmVudFZhbHVlICE9PSB1bmRlZmluZWQgPyAoY3VycmVudFZhbHVlIHwgZGF0ZSA6IGZvcm1hdCkgOiAnJ319XG4gICAgPC9kaXY+XG4gICAgPHRldGEtaWNvbiBbbmFtZV09XCInY2xvc2VCaWcnXCIgKGNsaWNrKT1cImNsZWFyUGlja2VyKCRldmVudCk7XCIgY2xhc3M9XCJtYXJnaW4tbGVmdC0xXCI+PC90ZXRhLWljb24+XG4gIDwvZGl2PlxuICA8ZGl2IHRldGFEcm9wZG93bkNvbnRlbnQgY2xhc3M9XCJkYXRlcGlja2VyLWJvZHlcIj5cbiAgICA8ZGl2IGNsYXNzPVwicGFkZGluZy0zXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwicm93IGFsaWduLWNlbnRlciBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlblwiPlxuICAgICAgICA8ZGl2PlxuICAgICAgICAgIDxidXR0b24gdGV0YS1idXR0b25cbiAgICAgICAgICAgICAgICAgIFtwYWxldHRlXT1cIid0ZXh0J1wiXG4gICAgICAgICAgICAgICAgICBbdmlld109XCJkaXNwbGF5TW9kZT09PWRhdGVQaWNrZXJNb2RlRW51bS5tb250aCA/ICdwcmltYXJ5JyA6ICdnaG9zdCdcIlxuICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInNldE1vZGUoZGF0ZVBpY2tlck1vZGVFbnVtLm1vbnRoKVwiXG4gICAgICAgICAgICAgICAgICAod2hlZWwpPVwic2Nyb2xsTW9udGgoJGV2ZW50KTtcIj5cbiAgICAgICAgICAgIHt7bG9jYWxlLm1vbnRoTmFtZXNbaW50ZXJuYWxWYWx1ZT8uZ2V0TW9udGgoKV19fVxuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgIDxidXR0b24gdGV0YS1idXR0b25cbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwibWFyZ2luLWxlZnQtMlwiXG4gICAgICAgICAgICAgICAgICBbcGFsZXR0ZV09XCIndGV4dCdcIlxuICAgICAgICAgICAgICAgICAgW3ZpZXddPVwiZGlzcGxheU1vZGU9PT1kYXRlUGlja2VyTW9kZUVudW0ueWVhciA/ICdwcmltYXJ5JyA6ICdnaG9zdCdcIlxuICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInNldE1vZGUoZGF0ZVBpY2tlck1vZGVFbnVtLnllYXIpXCJcbiAgICAgICAgICAgICAgICAgICh3aGVlbCk9XCJzY3JvbGxZZWFyKCRldmVudCk7XCI+XG4gICAgICAgICAgICB7e2ludGVybmFsVmFsdWU/LmdldEZ1bGxZZWFyKCl9fVxuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGJ1dHRvbiB0ZXRhLWJ1dHRvblxuICAgICAgICAgICAgICAgIFtwYWxldHRlXT1cIid0ZXh0J1wiXG4gICAgICAgICAgICAgICAgW3ZpZXddPVwiJ2dob3N0J1wiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cInNldFRvZGF5KClcIj5cbiAgICAgICAgICA8dGV0YS1pY29uIFtuYW1lXT1cIidjYWxlbmRhcidcIj48L3RldGEtaWNvbj5cbiAgICAgICAgPC9idXR0b24+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJkYXRlcGlja2VyLWNvbnRlbnRcIj5cbiAgICAgICAgPHRldGEteWVhci1zZWxlY3RcbiAgICAgICAgICAqbmdJZj1cImRpc3BsYXlNb2RlID09PSBkYXRlUGlja2VyTW9kZUVudW0ueWVhclwiXG4gICAgICAgICAgW2N1cnJlbnRZZWFyXT1cImludGVybmFsVmFsdWU/LmdldEZ1bGxZZWFyKClcIlxuICAgICAgICAgIFt0b2RheV09XCJ0b2RheVwiXG4gICAgICAgICAgW21pbkRhdGVdPVwibWluRGF0ZVwiXG4gICAgICAgICAgW21heERhdGVdPVwibWF4RGF0ZVwiXG4gICAgICAgICAgKHllYXJTZWxlY3RlZCk9XCJzZXRZZWFyKCRldmVudClcIj5cbiAgICAgICAgPC90ZXRhLXllYXItc2VsZWN0PlxuICAgICAgICA8dGV0YS1tb250aC1zZWxlY3RcbiAgICAgICAgICAqbmdJZj1cImRpc3BsYXlNb2RlID09PSBkYXRlUGlja2VyTW9kZUVudW0ubW9udGhcIlxuICAgICAgICAgIFtjdXJyZW50TW9udGhdPVwiaW50ZXJuYWxWYWx1ZT8uZ2V0TW9udGgoKVwiXG4gICAgICAgICAgW2N1cnJlbnRZZWFyXT1cImludGVybmFsVmFsdWU/LmdldEZ1bGxZZWFyKClcIlxuICAgICAgICAgIFtsb2NhbGVdPVwibG9jYWxlXCJcbiAgICAgICAgICBbbWluRGF0ZV09XCJtaW5EYXRlXCJcbiAgICAgICAgICBbbWF4RGF0ZV09XCJtYXhEYXRlXCJcbiAgICAgICAgICAobW9udGhTZWxlY3RlZCk9XCJzZXRNb250aCgkZXZlbnQpXCI+XG4gICAgICAgIDwvdGV0YS1tb250aC1zZWxlY3Q+XG4gICAgICAgIDx0ZXRhLWRheS1zZWxlY3RcbiAgICAgICAgICAqbmdJZj1cImRpc3BsYXlNb2RlID09PSBkYXRlUGlja2VyTW9kZUVudW0uZGF0ZVwiXG4gICAgICAgICAgW25nTW9kZWxdPVwiY3VycmVudFZhbHVlXCJcbiAgICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJhcHBseVZhbHVlKCRldmVudClcIlxuICAgICAgICAgIChkYXRlU2VsZWN0ZWQpPVwic2V0RGF0ZSgkZXZlbnQpXCJcbiAgICAgICAgICAoeWVhclNlbGVjdGVkKT1cInNldFllYXIoJGV2ZW50KVwiXG4gICAgICAgICAgKG1vbnRoU2VsZWN0ZWQpPVwic2V0TW9udGgoJGV2ZW50KVwiXG4gICAgICAgICAgW21pbkRhdGVdPVwibWluRGF0ZVwiXG4gICAgICAgICAgW21heERhdGVdPVwibWF4RGF0ZVwiXG4gICAgICAgICAgW2ZpcnN0RGF5T2ZXZWVrXT1cImZpcnN0RGF5T2ZXZWVrXCJcbiAgICAgICAgICBbZGlzYWJsZWREYXlzXT1cImRpc2FibGVkRGF5c1wiXG4gICAgICAgICAgW2Rpc2FibGVkRGF0ZXNdPVwiZGlzYWJsZWREYXRlc1wiXG4gICAgICAgICAgW2Rpc2FibGVkUGVyaW9kc109XCJkaXNhYmxlZFBlcmlvZHNcIj48L3RldGEtZGF5LXNlbGVjdD5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICAgIDxkaXYgKm5nSWY9XCJzaG93VGltZVwiIGNsYXNzPVwiZGF0ZXBpY2tlci10aW1lIHBhZGRpbmctdi0xIGJvcmRlci10b3AgYm9yZGVyLXRleHQtMTAgZm9udC1ib2R5LTMgY29sb3ItdGV4dC05MFwiPlxuICAgICAgPHRldGEtdGltZS1wYXJ0LWNvbnRyb2wgW21heF09XCIyM1wiIFtuZ01vZGVsXT1cImludGVybmFsVmFsdWU/LmdldEhvdXJzKClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwic2V0SG91cigkZXZlbnQpXCI+PC90ZXRhLXRpbWUtcGFydC1jb250cm9sPlxuICAgICAgOlxuICAgICAgPHRldGEtdGltZS1wYXJ0LWNvbnRyb2wgW25nTW9kZWxdPVwiaW50ZXJuYWxWYWx1ZT8uZ2V0TWludXRlcygpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cInNldE1pbnV0ZSgkZXZlbnQpXCI+PC90ZXRhLXRpbWUtcGFydC1jb250cm9sPlxuICAgICAgOlxuICAgICAgPHRldGEtdGltZS1wYXJ0LWNvbnRyb2wgW25nTW9kZWxdPVwiaW50ZXJuYWxWYWx1ZT8uZ2V0U2Vjb25kcygpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cInNldFNlY29uZCgkZXZlbnQpXCI+PC90ZXRhLXRpbWUtcGFydC1jb250cm9sPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvdGV0YS1kcm9wZG93bj5cbiJdfQ==
|
|
279
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1waWNrZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tcG9uZW50cy9zcmMvY29tcG9uZW50L2RhdGUtcGlja2VyL2RhdGUtcGlja2VyL2RhdGUtcGlja2VyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvc3JjL2NvbXBvbmVudC9kYXRlLXBpY2tlci9kYXRlLXBpY2tlci9kYXRlLXBpY2tlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBRXZCLFNBQVMsRUFFVCxVQUFVLEVBQ1YsV0FBVyxFQUNYLFlBQVksRUFDWixLQUFLLEdBR04sTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUF1QixpQkFBaUIsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBRXZFLE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUd6QyxPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0sZ0NBQWdDLENBQUM7QUFDOUQsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLHlCQUF5QixDQUFDO0FBQ2pELE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSwwQkFBMEIsQ0FBQztBQUN4RCxPQUFPLEVBQUMsS0FBSyxFQUFDLE1BQU0saUNBQWlDLENBQUM7QUFDdEQsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLDBDQUEwQyxDQUFDOzs7Ozs7Ozs7Ozs7OztBQUV2RSxNQUFNLENBQUMsTUFBTSxrQ0FBa0MsR0FBUTtJQUNyRCxPQUFPLEVBQUUsaUJBQWlCO0lBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsbUJBQW1CLENBQUM7SUFDbEQsS0FBSyxFQUFFLElBQUk7Q0FDWixDQUFDO0FBU0YsTUFBTSxPQUFPLG1CQUFtQjtJQXdFOUIsWUFDUyxhQUFrQyxFQUNq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LFNBQVM7K0JBQ0Usa0JBQWtCLGFBR2pCLENBQUMsa0NBQWtDLENBQUMsbUJBQzlCLHVCQUF1QixDQUFDLE1BQU07bUtBSXRDLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSztnQkFDRyxlQUFlO3NCQUF2QixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFJTixRQUFRO3NCQUZQLFdBQVc7dUJBQUMsdUJBQXVCOztzQkFDbkMsS0FBSztnQkFJRixNQUFNO3NCQURULEtBQUs7Z0JBWWdDLElBQUk7c0JBQXpDLFdBQVc7dUJBQUMsdUJBQXVCO2dCQUNjLGVBQWU7c0JBQWhFLFdBQVc7dUJBQUMsa0JBQWtCO2dCQUNXLFFBQVE7c0JBQWpELFdBQVc7dUJBQUMsVUFBVTtnQkFrRG1CLEtBQUs7c0JBQTlDLFlBQVk7dUJBQUMsY0FBYyxFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsXG4gIGZvcndhcmRSZWYsXG4gIEhvc3RCaW5kaW5nLFxuICBIb3N0TGlzdGVuZXIsXG4gIElucHV0LFxuICBPbkRlc3Ryb3ksXG4gIE9uSW5pdCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0NvbnRyb2xWYWx1ZUFjY2Vzc29yLCBOR19WQUxVRV9BQ0NFU1NPUn0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHtQaWNrZXJMb2NhbGVTZXJ2aWNlfSBmcm9tICcuLi9zZXJ2aWNlL3BpY2tlci1sb2NhbGUuc2VydmljZSc7XG5pbXBvcnQge3Rha2VXaGlsZX0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHtEYXRlUGVyaW9kfSBmcm9tICcuLi9tb2RlbC9kYXRlLXBlcmlvZCc7XG5pbXBvcnQge1BpY2tlckxvY2FsZU1vZGVsfSBmcm9tICcuLi9tb2RlbC9waWNrZXItbG9jYWxlLW1vZGVsJztcbmltcG9ydCB7RGF0ZVBpY2tlck1vZGV9IGZyb20gJy4uL21vZGVsL2RhdGUtcGlja2VyLW1vZGUuZW51bSc7XG5pbXBvcnQge0RhdGVVdGlsfSBmcm9tICcuLi8uLi8uLi91dGlsL2RhdGUtdXRpbCc7XG5pbXBvcnQge0RhdGVQaWNrZXJVdGlsfSBmcm9tICcuLi91dGlsL2RhdGUtcGlja2VyLXV0aWwnO1xuaW1wb3J0IHtBbGlnbn0gZnJvbSAnLi4vLi4vLi4vY29tbW9uL2VudW0vYWxpZ24uZW51bSc7XG5pbXBvcnQge1ZlcnRpY2FsQWxpZ259IGZyb20gJy4uLy4uLy4uL2NvbW1vbi9lbnVtL3ZlcnRpY2FsLWFsaWduLmVudW0nO1xuXG5leHBvcnQgY29uc3QgREFURV9QSUNLRVJfQ09OVFJPTF9WQUxVRV9BQ0NFU1NPUjogYW55ID0ge1xuICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gRGF0ZVBpY2tlckNvbXBvbmVudCksXG4gIG11bHRpOiB0cnVlLFxufTtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndGV0YS1kYXRlLXBpY2tlcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9kYXRlLXBpY2tlci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2RhdGUtcGlja2VyLmNvbXBvbmVudC5zY3NzJ10sXG4gIHByb3ZpZGVyczogW0RBVEVfUElDS0VSX0NPTlRST0xfVkFMVUVfQUNDRVNTT1JdLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgRGF0ZVBpY2tlckNvbXBvbmVudFxuICBpbXBsZW1lbnRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBPbkluaXQsIE9uRGVzdHJveSB7XG4gIEBJbnB1dCgpIGRpc2FibGVkOiBib29sZWFuO1xuICBASW5wdXQoKSBpbnZhbGlkOiBib29sZWFuO1xuICBASW5wdXQoKSBmaXJzdERheU9mV2VlayA9IDE7XG4gIEBJbnB1dCgpIGRpc2FibGVkRGF0ZXM6IERhdGVbXTtcbiAgQElucHV0KCkgZGlzYWJsZWRQZXJpb2RzOiBEYXRlUGVyaW9kW107XG4gIEBJbnB1dCgpIGRpc2FibGVkRGF5czogbnVtYmVyW107XG4gIEBJbnB1dCgpIG1pbkRhdGU6IERhdGU7XG4gIEBJbnB1dCgpIG1heERhdGU6IERhdGU7XG4gIEBJbnB1dCgpIG1pblllYXJEYXRlOiBEYXRlO1xuICBASW5wdXQoKSBtYXhZZWFyRGF0ZTogRGF0ZTtcbiAgQElucHV0KCkgYWxpZ246IEFsaWduID0gQWxpZ24ubGVmdDtcbiAgQElucHV0KCkgdmVydGljYWxBbGlnbjogVmVydGljYWxBbGlnbiA9IFZlcnRpY2FsQWxpZ24uYXV0bztcbiAgQElucHV0KCkgYXBwZW5kVG9Cb2R5OiBib29sZWFuO1xuXG4gIEBIb3N0QmluZGluZygnY2xhc3MuZGF0ZXBpY2tlci13aWRlJylcbiAgQElucHV0KClcbiAgc2hvd1RpbWUgPSBmYWxzZTtcblxuICBASW5wdXQoKVxuICBzZXQgZm9ybWF0KHZhbDogc3RyaW5nKSB7XG4gICAgdGhpcy5fZm9ybWF0ID0gdmFsO1xuICB9XG5cbiAgZ2V0IGZvcm1hdCgpOiBzdHJpbmcge1xuICAgIGlmICh0aGlzLl9mb3JtYXQpIHtcbiAgICAgIHJldHVybiB0aGlzLl9mb3JtYXQ7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLnNob3dUaW1lID8gJ2RkLk1NLnl5eXkgSEg6bW06c3MnIDogJ2RkLk1NLnl5eXknO1xuICB9XG5cbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5kYXRlcGlja2VyX29wZW4nKSBvcGVuOiBib29sZWFuO1xuICBASG9zdEJpbmRpbmcoJ2NsYXNzLmRhdGVwaWNrZXInKSBwcml2YXRlIHJlYWRvbmx5IGNsYXNzRGF0ZXBpY2tlciA9IHRydWU7XG4gIEBIb3N0QmluZGluZygndGFiaW5kZXgnKSBwcml2YXRlIHJlYWRvbmx5IHRhYmluZGV4ID0gMDtcblxuICBsb2NhbGU6IFBpY2tlckxvY2FsZU1vZGVsO1xuICB0b2RheTogRGF0ZSA9IG5ldyBEYXRlKCk7XG5cbiAgZGF0ZVBpY2tlck1vZGVFbnVtID0gRGF0ZVBpY2tlck1vZGU7XG4gIGRpc3BsYXlNb2RlOiBEYXRlUGlja2VyTW9kZSA9IERhdGVQaWNrZXJNb2RlLmRhdGU7XG4gIF9mb3JtYXQ6IHN0cmluZztcblxuICBfdmFsdWU6IERhdGUgfCBudWxsID0gbnVsbDtcbiAgX2N1cnJlbnRWYWx1ZTogRGF0ZTtcblxuICBwcml2YXRlIF9hbGl2ZSA9IHRydWU7XG5cbiAgZ2V0IHZhbHVlKCk6IERhdGUgfCBudWxsIHtcbiAgICByZXR1cm4gdGhpcy5fdmFsdWU7XG4gIH1cblxuICBzZXQgdmFsdWUodjogRGF0ZSB8IG51bGwpIHtcbiAgICBpZiAodj8uZ2V0VGltZSgpICE9PSB0aGlzLl92YWx1ZT8uZ2V0VGltZSgpKSB7XG4gICAgICB0aGlzLl92YWx1ZSA9IHY7XG4gICAgICB0aGlzLmN1cnJlbnRWYWx1ZSA9IHRoaXMuX3ZhbHVlO1xuICAgIH1cbiAgfVxuXG4gIGdldCBjdXJyZW50VmFsdWUoKTogRGF0ZSB7XG4gICAgcmV0dXJuIHRoaXMuX2N1cnJlbnRWYWx1ZTtcbiAgfVxuXG4gIHNldCBjdXJyZW50VmFsdWUoZGF0ZTogRGF0ZSkge1xuICAgIHRoaXMuX2N1cnJlbnRWYWx1ZSA9IGRhdGU7XG4gICAgdGhpcy5fY2RyLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgZ2V0IGludGVybmFsVmFsdWUoKSB7XG4gICAgcmV0dXJuIHRoaXMuY3VycmVudFZhbHVlID8/IHRoaXMuZW1wdHlEYXRlKCk7XG4gIH1cblxuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgbG9jYWxlU2VydmljZTogUGlja2VyTG9jYWxlU2VydmljZSxcbiAgICBwcml2YXRlIF9jZHI6IENoYW5nZURldGVjdG9yUmVmLFxuICAgIHByaXZhdGUgX2VsZW1lbnRSZWY6IEVsZW1lbnRSZWZcbiAgKSB7XG4gICAgbG9jYWxlU2VydmljZS5sb2NhbGVcbiAgICAgIC5waXBlKHRha2VXaGlsZSgoXykgPT4gdGhpcy5fYWxpdmUpKVxuICAgICAgLnN1YnNjcmliZSgobG9jYWxlOiBQaWNrZXJMb2NhbGVNb2RlbCkgPT4ge1xuICAgICAgICB0aGlzLmxvY2FsZSA9IGxvY2FsZTtcbiAgICAgIH0pO1xuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcignd2luZG93OmtleXVwJywgWyckZXZlbnQnXSkga2V5VXAoZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMub3Blbikge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAoZXZlbnQuY29kZSA9PT0gJ0VzY2FwZScpIHtcbiAgICAgIHRoaXMuY3VycmVudFZhbHVlID0gdGhpcy52YWx1ZTtcbiAgICAgIHRoaXMub3BlbiA9IGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIHdyaXRlVmFsdWUodmFsdWU6IGFueSkge1xuICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcbiAgICB0aGlzLl9jZHIubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICBvbkNoYW5nZSA9IChfOiBhbnkpID0+IHtcbiAgfTtcblxuICBvblRvdWNoZWQgPSAoKSA9PiB7XG4gIH07XG5cbiAgcmVnaXN0ZXJPbkNoYW5nZShmbjogKF86IGFueSkgPT4gdm9pZCk6IHZvaWQge1xuICAgIHRoaXMub25DaGFuZ2UgPSBmbjtcbiAgfVxuXG4gIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiAoKSA9PiB2b2lkKTogdm9pZCB7XG4gICAgdGhpcy5vblRvdWNoZWQgPSBmbjtcbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5fYWxpdmUgPSBmYWxzZTtcbiAgfVxuXG4gIGFwcGx5VmFsdWUoZGF0ZTogRGF0ZSkge1xuICAgIHRoaXMuc2V0RGF0ZShkYXRlKTtcbiAgICB0aGlzLnZhbHVlID0gdGhpcy5jdXJyZW50VmFsdWU7XG4gICAgdGhpcy5vbkNoYW5nZSh0aGlzLnZhbHVlKTtcbiAgICB0aGlzLm9wZW4gPSBmYWxzZTtcbiAgfVxuXG4gIHNldERhdGUgPSAoZGF5OiBEYXRlKSA9PiB7XG4gICAgaWYgKGRheSA9PT0gbnVsbCB8fCBkYXkgPT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhpcy5jdXJyZW50VmFsdWUgPSBudWxsO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCBkdCA9IHRoaXMuaW50ZXJuYWxWYWx1ZTtcbiAgICBkdC5zZXRGdWxsWWVhcihkYXkuZ2V0RnVsbFllYXIoKSwgZGF5LmdldE1vbnRoKCksIGRheS5nZXREYXRlKCkpO1xuICAgIHRoaXMuY3VycmVudFZhbHVlID0gbmV3IERhdGUoZHQpO1xuICAgIHRoaXMuX2Nkci5tYXJrRm9yQ2hlY2soKTtcbiAgfTtcblxuICBzZXRZZWFyID0gKHllYXI6IG51bWJlcikgPT4ge1xuICAgIGNvbnN0IGR0ID0gdGhpcy5pbnRlcm5hbFZhbHVlO1xuICAgIGR0LnNldEZ1bGxZZWFyKHllYXIpO1xuICAgIHRoaXMuY3VycmVudFZhbHVlID0gbmV3IERhdGUoZHQpO1xuICAgIHRoaXMuc2V0TW9kZShEYXRlUGlja2VyTW9kZS5kYXRlKTtcbiAgICB0aGlzLl9jZHIubWFya0ZvckNoZWNrKCk7XG4gIH07XG5cbiAgc2V0TW9udGggPSAobW9udGg6IG51bWJlcikgPT4ge1xuICAgIGNvbnN0IGR0ID0gdGhpcy5pbnRlcm5hbFZhbHVlO1xuICAgIGR0LnNldE1vbnRoKG1vbnRoKTtcbiAgICB0aGlzLmN1cnJlbnRWYWx1ZSA9IG5ldyBEYXRlKGR0KTtcbiAgICB0aGlzLnNldE1vZGUoRGF0ZVBpY2tlck1vZGUuZGF0ZSk7XG4gICAgdGhpcy5fY2RyLm1hcmtGb3JDaGVjaygpO1xuICB9O1xuXG4gIHNldEhvdXIgPSAoaG91cnM6IG51bWJlcikgPT4ge1xuICAgIGNvbnN0IGR0ID0gdGhpcy5pbnRlcm5hbFZhbHVlO1xuICAgIGR0LnNldEhvdXJzKGhvdXJzKTtcbiAgICB0aGlzLmN1cnJlbnRWYWx1ZSA9IG5ldyBEYXRlKGR0KTtcbiAgICB0aGlzLl9jZHIubWFya0ZvckNoZWNrKCk7XG4gIH07XG5cbiAgc2V0TWludXRlID0gKG1pbnV0ZTogbnVtYmVyKSA9PiB7XG4gICAgY29uc3QgZHQgPSB0aGlzLmludGVybmFsVmFsdWU7XG4gICAgZHQuc2V0TWludXRlcyhtaW51dGUpO1xuICAgIHRoaXMuY3VycmVudFZhbHVlID0gbmV3IERhdGUoZHQpO1xuICAgIHRoaXMuX2Nkci5tYXJrRm9yQ2hlY2soKTtcbiAgfTtcblxuICBzZXRTZWNvbmQgPSAoc2Vjb25kczogbnVtYmVyKSA9PiB7XG4gICAgY29uc3QgZHQgPSB0aGlzLmludGVybmFsVmFsdWU7XG4gICAgZHQuc2V0U2Vjb25kcyhzZWNvbmRzKTtcbiAgICB0aGlzLmN1cnJlbnRWYWx1ZSA9IG5ldyBEYXRlKGR0KTtcbiAgICB0aGlzLl9jZHIubWFya0ZvckNoZWNrKCk7XG4gIH07XG5cbiAgc2V0VG9kYXkgPSAoKSA9PiB7XG4gICAgdGhpcy5jdXJyZW50VmFsdWUgPSB0aGlzLmVtcHR5RGF0ZSgpO1xuICAgIHRoaXMuX2Nkci5tYXJrRm9yQ2hlY2soKTtcbiAgfTtcblxuICBjbGVhclBpY2tlciA9IChldmVudDogTW91c2VFdmVudCk6IHZvaWQgPT4ge1xuICAgIHRoaXMucHJldmVudEV2ZW50KGV2ZW50KTtcbiAgICB0aGlzLnZhbHVlID0gbnVsbDtcbiAgICB0aGlzLm9uQ2hhbmdlKG51bGwpO1xuICB9O1xuXG4gIGlzRGF0ZUluRGlzYWJsZWRQZXJpb2QgPSAoZGF0OiBEYXRlKTogYm9vbGVhbiA9PiB7XG4gICAgaWYgKCF0aGlzLmRpc2FibGVkUGVyaW9kcyB8fCB0aGlzLmRpc2FibGVkUGVyaW9kcy5sZW5ndGggPCAxIHx8ICFkYXQpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuZGlzYWJsZWRQZXJpb2RzLnNvbWUoXG4gICAgICAoZDogRGF0ZVBlcmlvZCkgPT5cbiAgICAgICAgZCAmJlxuICAgICAgICBkLnN0YXJ0ICYmXG4gICAgICAgIGQuZW5kICYmXG4gICAgICAgIGQuc3RhcnQuZ2V0VGltZSgpIDw9IGRhdC5nZXRUaW1lKCkgJiZcbiAgICAgICAgZC5lbmQuZ2V0VGltZSgpID49IGRhdC5nZXRUaW1lKClcbiAgICApO1xuICB9O1xuXG4gIGlzU2Nyb2xsSWdub3JlZCA9ICgpOiBib29sZWFuID0+XG4gICAgdGhpcy5kaXNwbGF5TW9kZSA9PT0gRGF0ZVBpY2tlck1vZGUubW9udGggfHxcbiAgICB0aGlzLmRpc3BsYXlNb2RlID09PSBEYXRlUGlja2VyTW9kZS55ZWFyO1xuXG4gIHNjcm9sbE1vbnRoID0gKGU6IGFueSkgPT4ge1xuICAgIGNvbnN0IGRlbHRhID0gZT8uZGVsdGFZID8/IGU7XG5cbiAgICBpZiAoZSBpbnN0YW5jZW9mIFdoZWVsRXZlbnQpIHtcbiAgICAgIHRoaXMucHJldmVudEV2ZW50KGUpO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmlzU2Nyb2xsSWdub3JlZCgpKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIHRoaXMuY3VycmVudFZhbHVlID0gRGF0ZVBpY2tlclV0aWwuc2Nyb2xsTW9udGgoZGVsdGEsIHRoaXMuaW50ZXJuYWxWYWx1ZSk7XG4gIH07XG5cbiAgc2Nyb2xsWWVhciA9IChlOiBhbnkpID0+IHtcbiAgICB0aGlzLnByZXZlbnRFdmVudChlKTtcbiAgICBpZiAodGhpcy5pc1Njcm9sbElnbm9yZWQoKSkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICB0aGlzLmN1cnJlbnRWYWx1ZSA9IERhdGVQaWNrZXJVdGlsLnNjcm9sbE1vbnRoKFxuICAgICAgZS5kZWx0YVksXG4gICAgICB0aGlzLmludGVybmFsVmFsdWVcbiAgICApO1xuICB9O1xuXG4gIG9wZW5QaWNrZXIgPSAoc2hvdzogYm9vbGVhbikgPT4ge1xuICAgIGlmICh0aGlzLmRpc2FibGVkKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmICghc2hvdykge1xuICAgICAgdGhpcy5zZXRNb2RlKERhdGVQaWNrZXJNb2RlLmRhdGUpO1xuICAgICAgdGhpcy5hcHBseVZhbHVlKHRoaXMuY3VycmVudFZhbHVlKTtcbiAgICB9XG4gICAgdGhpcy5vcGVuID0gc2hvdztcbiAgICB0aGlzLl9jZHIubWFya0ZvckNoZWNrKCk7XG4gIH07XG5cbiAgY2xvc2VQaWNrZXIgPSAoKSA9PiB7XG4gICAgdGhpcy5vcGVuUGlja2VyKGZhbHNlKTtcbiAgICB0aGlzLm9uVG91Y2hlZCgpO1xuICB9O1xuXG4gIHByZXZlbnRFdmVudCA9IChldmVudDogYW55KSA9PiB7XG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH07XG5cbiAgZm9jdXMoKSB7XG4gICAgdGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG4gIH1cblxuICBzZXRNb2RlKG1vZGU6IERhdGVQaWNrZXJNb2RlKSB7XG4gICAgbGV0IHJlc3VsdDogRGF0ZVBpY2tlck1vZGU7XG4gICAgaWYgKG1vZGUgPT09IHRoaXMuZGlzcGxheU1vZGUgfHwgbW9kZSA9PT0gRGF0ZVBpY2tlck1vZGUuZGF0ZSkge1xuICAgICAgcmVzdWx0ID0gRGF0ZVBpY2tlck1vZGUuZGF0ZTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmVzdWx0ID0gbW9kZTtcbiAgICB9XG4gICAgdGhpcy5kaXNwbGF5TW9kZSA9IHJlc3VsdDtcbiAgfVxuXG4gIHByaXZhdGUgZW1wdHlEYXRlKCkge1xuICAgIHJldHVybiBEYXRlVXRpbC50cnVuY2F0ZVRvRGF5KG5ldyBEYXRlKCkpO1xuICB9XG59XG4iLCI8dGV0YS1kcm9wZG93blxuICBjbGFzcz1cInJvdyByb3dfYXV0b1wiXG4gIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gIFtvcGVuXT1cIm9wZW5cIlxuICBbYXV0b0Nsb3NlSWdub3JlXT1cIlsnZXNjJ11cIlxuICAob3BlbkNoYW5nZSk9XCJvcGVuUGlja2VyKCRldmVudClcIlxuICBbYWxpZ25dPVwiYWxpZ25cIlxuICBbdmVydGljYWxBbGlnbl09XCJ2ZXJ0aWNhbEFsaWduXCJcbiAgW2FwcGVuZFRvQm9keV09XCJhcHBlbmRUb0JvZHlcIj5cbiAgPGRpdiB0ZXRhRHJvcGRvd25IZWFkXG4gICAgICAgY2xhc3M9XCJkYXRlcGlja2VyLWhlYWQgZm9udC1ib2R5LTNcIlxuICAgICAgIFtjbGFzcy5kYXRlcGlja2VyLWhlYWRfZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgICAgIFtjbGFzcy5kYXRlcGlja2VyLWhlYWRfaW52YWxpZF09XCJpbnZhbGlkXCI+XG4gICAgPHRldGEtaWNvbiBbbmFtZV09XCInY2FsZW5kYXInXCIgY2xhc3M9XCJtYXJnaW4tcmlnaHQtMVwiPjwvdGV0YS1pY29uPlxuICAgIDxkaXYgY2xhc3M9XCJyb3dfYXV0b1wiPlxuICAgICAge3tjdXJyZW50VmFsdWUgIT09IG51bGwgJiYgY3VycmVudFZhbHVlICE9PSB1bmRlZmluZWQgPyAoY3VycmVudFZhbHVlIHwgZGF0ZSA6IGZvcm1hdCkgOiAnJ319XG4gICAgPC9kaXY+XG4gICAgPHRldGEtaWNvbiBbbmFtZV09XCInY2xvc2VCaWcnXCIgKGNsaWNrKT1cImNsZWFyUGlja2VyKCRldmVudCk7XCIgY2xhc3M9XCJtYXJnaW4tbGVmdC0xXCI+PC90ZXRhLWljb24+XG4gIDwvZGl2PlxuICA8ZGl2IHRldGFEcm9wZG93bkNvbnRlbnQgY2xhc3M9XCJkYXRlcGlja2VyLWJvZHkgc2Nyb2xsYWJsZVwiIChjbGljayk9XCIkZXZlbnQucHJldmVudERlZmF1bHQoKVwiPlxuICAgIDxkaXYgY2xhc3M9XCJwYWRkaW5nLTNcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJyb3cgYWxpZ24tY2VudGVyIGp1c3RpZnktY29udGVudC1iZXR3ZWVuXCI+XG4gICAgICAgIDxkaXY+XG4gICAgICAgICAgPGJ1dHRvbiB0ZXRhLWJ1dHRvblxuICAgICAgICAgICAgICAgICAgW3BhbGV0dGVdPVwiJ3RleHQnXCJcbiAgICAgICAgICAgICAgICAgIFt2aWV3XT1cImRpc3BsYXlNb2RlPT09ZGF0ZVBpY2tlck1vZGVFbnVtLm1vbnRoID8gJ3ByaW1hcnknIDogJ2dob3N0J1wiXG4gICAgICAgICAgICAgICAgICAoY2xpY2spPVwic2V0TW9kZShkYXRlUGlja2VyTW9kZUVudW0ubW9udGgpXCJcbiAgICAgICAgICAgICAgICAgICh3aGVlbCk9XCJzY3JvbGxNb250aCgkZXZlbnQpO1wiPlxuICAgICAgICAgICAge3tsb2NhbGUubW9udGhOYW1lc1tpbnRlcm5hbFZhbHVlPy5nZXRNb250aCgpXX19XG4gICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgPGJ1dHRvbiB0ZXRhLWJ1dHRvblxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJtYXJnaW4tbGVmdC0yXCJcbiAgICAgICAgICAgICAgICAgIFtwYWxldHRlXT1cIid0ZXh0J1wiXG4gICAgICAgICAgICAgICAgICBbdmlld109XCJkaXNwbGF5TW9kZT09PWRhdGVQaWNrZXJNb2RlRW51bS55ZWFyID8gJ3ByaW1hcnknIDogJ2dob3N0J1wiXG4gICAgICAgICAgICAgICAgICAoY2xpY2spPVwic2V0TW9kZShkYXRlUGlja2VyTW9kZUVudW0ueWVhcilcIlxuICAgICAgICAgICAgICAgICAgKHdoZWVsKT1cInNjcm9sbFllYXIoJGV2ZW50KTtcIj5cbiAgICAgICAgICAgIHt7aW50ZXJuYWxWYWx1ZT8uZ2V0RnVsbFllYXIoKX19XG4gICAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8YnV0dG9uIHRldGEtYnV0dG9uXG4gICAgICAgICAgICAgICAgW3BhbGV0dGVdPVwiJ3RleHQnXCJcbiAgICAgICAgICAgICAgICBbdmlld109XCInZ2hvc3QnXCJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwic2V0VG9kYXkoKVwiPlxuICAgICAgICAgIDx0ZXRhLWljb24gW25hbWVdPVwiJ2NhbGVuZGFyJ1wiPjwvdGV0YS1pY29uPlxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cImRhdGVwaWNrZXItY29udGVudFwiPlxuICAgICAgICA8dGV0YS15ZWFyLXNlbGVjdFxuICAgICAgICAgICpuZ0lmPVwiZGlzcGxheU1vZGUgPT09IGRhdGVQaWNrZXJNb2RlRW51bS55ZWFyXCJcbiAgICAgICAgICBbY3VycmVudFllYXJdPVwiaW50ZXJuYWxWYWx1ZT8uZ2V0RnVsbFllYXIoKVwiXG4gICAgICAgICAgW3RvZGF5XT1cInRvZGF5XCJcbiAgICAgICAgICBbbWluRGF0ZV09XCJtaW5EYXRlXCJcbiAgICAgICAgICBbbWF4RGF0ZV09XCJtYXhEYXRlXCJcbiAgICAgICAgICAoeWVhclNlbGVjdGVkKT1cInNldFllYXIoJGV2ZW50KVwiPlxuICAgICAgICA8L3RldGEteWVhci1zZWxlY3Q+XG4gICAgICAgIDx0ZXRhLW1vbnRoLXNlbGVjdFxuICAgICAgICAgICpuZ0lmPVwiZGlzcGxheU1vZGUgPT09IGRhdGVQaWNrZXJNb2RlRW51bS5tb250aFwiXG4gICAgICAgICAgW2N1cnJlbnRNb250aF09XCJpbnRlcm5hbFZhbHVlPy5nZXRNb250aCgpXCJcbiAgICAgICAgICBbY3VycmVudFllYXJdPVwiaW50ZXJuYWxWYWx1ZT8uZ2V0RnVsbFllYXIoKVwiXG4gICAgICAgICAgW2xvY2FsZV09XCJsb2NhbGVcIlxuICAgICAgICAgIFttaW5EYXRlXT1cIm1pbkRhdGVcIlxuICAgICAgICAgIFttYXhEYXRlXT1cIm1heERhdGVcIlxuICAgICAgICAgIChtb250aFNlbGVjdGVkKT1cInNldE1vbnRoKCRldmVudClcIj5cbiAgICAgICAgPC90ZXRhLW1vbnRoLXNlbGVjdD5cbiAgICAgICAgPHRldGEtZGF5LXNlbGVjdFxuICAgICAgICAgICpuZ0lmPVwiZGlzcGxheU1vZGUgPT09IGRhdGVQaWNrZXJNb2RlRW51bS5kYXRlXCJcbiAgICAgICAgICBbbmdNb2RlbF09XCJjdXJyZW50VmFsdWVcIlxuICAgICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cImFwcGx5VmFsdWUoJGV2ZW50KVwiXG4gICAgICAgICAgKGRhdGVTZWxlY3RlZCk9XCJzZXREYXRlKCRldmVudClcIlxuICAgICAgICAgICh5ZWFyU2VsZWN0ZWQpPVwic2V0WWVhcigkZXZlbnQpXCJcbiAgICAgICAgICAobW9udGhTZWxlY3RlZCk9XCJzZXRNb250aCgkZXZlbnQpXCJcbiAgICAgICAgICBbbWluRGF0ZV09XCJtaW5EYXRlXCJcbiAgICAgICAgICBbbWF4RGF0ZV09XCJtYXhEYXRlXCJcbiAgICAgICAgICBbZmlyc3REYXlPZldlZWtdPVwiZmlyc3REYXlPZldlZWtcIlxuICAgICAgICAgIFtkaXNhYmxlZERheXNdPVwiZGlzYWJsZWREYXlzXCJcbiAgICAgICAgICBbZGlzYWJsZWREYXRlc109XCJkaXNhYmxlZERhdGVzXCJcbiAgICAgICAgICBbZGlzYWJsZWRQZXJpb2RzXT1cImRpc2FibGVkUGVyaW9kc1wiPjwvdGV0YS1kYXktc2VsZWN0PlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gICAgPGRpdiAqbmdJZj1cInNob3dUaW1lXCIgY2xhc3M9XCJkYXRlcGlja2VyLXRpbWUgcGFkZGluZy12LTEgYm9yZGVyLXRvcCBib3JkZXItdGV4dC0xMCBmb250LWJvZHktMyBjb2xvci10ZXh0LTkwXCI+XG4gICAgICA8dGV0YS10aW1lLXBhcnQtY29udHJvbCBbbWF4XT1cIjIzXCIgW25nTW9kZWxdPVwiaW50ZXJuYWxWYWx1ZT8uZ2V0SG91cnMoKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJzZXRIb3VyKCRldmVudClcIj48L3RldGEtdGltZS1wYXJ0LWNvbnRyb2w+XG4gICAgICA6XG4gICAgICA8dGV0YS10aW1lLXBhcnQtY29udHJvbCBbbmdNb2RlbF09XCJpbnRlcm5hbFZhbHVlPy5nZXRNaW51dGVzKClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwic2V0TWludXRlKCRldmVudClcIj48L3RldGEtdGltZS1wYXJ0LWNvbnRyb2w+XG4gICAgICA6XG4gICAgICA8dGV0YS10aW1lLXBhcnQtY29udHJvbCBbbmdNb2RlbF09XCJpbnRlcm5hbFZhbHVlPy5nZXRTZWNvbmRzKClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwic2V0U2Vjb25kKCRldmVudClcIj48L3RldGEtdGltZS1wYXJ0LWNvbnRyb2w+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC90ZXRhLWRyb3Bkb3duPlxuIl19
|
|
@@ -223,10 +223,10 @@ export class MonthPickerComponent {
|
|
|
223
223
|
}
|
|
224
224
|
}
|
|
225
225
|
MonthPickerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: MonthPickerComponent, deps: [{ token: i1.PickerLocaleService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
226
|
-
MonthPickerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.1", type: MonthPickerComponent, selector: "teta-month-picker", inputs: { disabled: "disabled", minDate: "minDate", maxDate: "maxDate", showToday: "showToday", appendToBody: "appendToBody" }, host: { properties: { "class.datepicker_open": "this.showPicker", "class.datepicker": "this.classDatepicker", "tabindex": "this.tabindex" } }, providers: [MONTH_PICKER_CONTROL_VALUE_ACCESSOR], ngImport: i0, template: "<teta-dropdown\n class=\"row row_auto\"\n [appendToBody]=\"appendToBody\"\n [(open)]=\"showPicker\"\n [disabled]=\"disabled\">\n <div tetaDropdownHead\n (wheel)=\"scrollMonth($event)\"\n class=\"datepicker-head font-body-3\">\n <teta-icon [name]=\"'calendar'\" class=\"margin-right-2\"></teta-icon>\n <div class=\"row_auto\">\n <ng-container *ngIf=\"_value !==null && _value!==undefined\">\n {{locale.monthNames[_value.getMonth()]}} {{_value.getFullYear()}}\n </ng-container>\n </div>\n <teta-icon [name]=\"'closeBig'\" (click)=\"clearPicker()\" class=\"margin-left-2\"></teta-icon>\n </div>\n <div tetaDropdownContent class=\"datepicker-body padding-3\">\n <div class=\"row align-center justify-content-between\">\n <div>\n <button teta-button\n [palette]=\"'text'\"\n [view]=\"displayMode===datePickerModeEnum.month ? 'primary' : 'ghost'\"\n (click)=\"setMode(datePickerModeEnum.month)\"\n (wheel)=\"scrollMonth($event);\">\n {{locale.monthNames[_currentMonth || today.getMonth()]}}\n </button>\n <button teta-button\n class=\"margin-left-2\"\n [palette]=\"'text'\"\n [view]=\"displayMode===datePickerModeEnum.year ? 'primary' : 'ghost'\"\n (click)=\"setMode(datePickerModeEnum.year)\"\n (wheel)=\"scrollYear($event);\">\n {{_currentYear || today.getFullYear()}}\n </button>\n </div>\n <button teta-button\n [palette]=\"'text'\"\n [view]=\"'ghost'\"\n (click)=\"setToday()\">\n <teta-icon [name]=\"'calendar'\"></teta-icon>\n </button>\n </div>\n <div class=\"datepicker-content\">\n <teta-year-select\n *ngIf=\"displayMode === datePickerModeEnum.year\"\n [currentYear]=\"_currentYear\"\n [today]=\"today\"\n [size]=\"8\"\n [minDate]=\"minDate\"\n [maxDate]=\"maxDate\"\n (yearSelected)=\"setYear($event)\">\n </teta-year-select>\n <teta-month-select\n *ngIf=\"displayMode === datePickerModeEnum.month\"\n [currentMonth]=\"_currentMonth\"\n [locale]=\"locale\"\n [currentYear]=\"_currentYear\"\n [minDate]=\"minDate\"\n [maxDate]=\"maxDate\"\n (monthSelected)=\"setMonth($event)\">\n </teta-month-select>\n </div>\n </div>\n</teta-dropdown>\n", styles: [""], components: [{ type: i2.DropdownComponent, selector: "teta-dropdown" }, { type: i3.IconComponent, selector: "teta-icon", inputs: ["name", "size", "palette", "class"] }, { type: i4.ButtonComponent, selector: "button[teta-button], teta-button", inputs: ["palette", "class", "view", "square"] }, { type: i5.YearSelectComponent, selector: "teta-year-select", inputs: ["currentYear", "today", "size", "minDate", "maxDate", "allowableRange"], outputs: ["yearSelected", "yearApplied"] }, { type: i6.MonthSelectComponent, selector: "teta-month-select", inputs: ["locale", "minDate", "maxDate", "size", "currentMonth", "currentYear"], outputs: ["monthSelected", "monthApplied"] }], directives: [{ type: i7.DropdownHeadDirective, selector: "[tetaDropdownHead]" }, { type: i8.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i9.DropdownContentDirective, selector: "[tetaDropdownContent]" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
226
|
+
MonthPickerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.1", type: MonthPickerComponent, selector: "teta-month-picker", inputs: { disabled: "disabled", minDate: "minDate", maxDate: "maxDate", showToday: "showToday", appendToBody: "appendToBody" }, host: { properties: { "class.datepicker_open": "this.showPicker", "class.datepicker": "this.classDatepicker", "tabindex": "this.tabindex" } }, providers: [MONTH_PICKER_CONTROL_VALUE_ACCESSOR], ngImport: i0, template: "<teta-dropdown\n class=\"row row_auto\"\n [appendToBody]=\"appendToBody\"\n [(open)]=\"showPicker\"\n [disabled]=\"disabled\">\n <div tetaDropdownHead\n (wheel)=\"scrollMonth($event)\"\n class=\"datepicker-head font-body-3\">\n <teta-icon [name]=\"'calendar'\" class=\"margin-right-2\"></teta-icon>\n <div class=\"row_auto\">\n <ng-container *ngIf=\"_value !==null && _value!==undefined\">\n {{locale.monthNames[_value.getMonth()]}} {{_value.getFullYear()}}\n </ng-container>\n </div>\n <teta-icon [name]=\"'closeBig'\" (click)=\"clearPicker()\" class=\"margin-left-2\"></teta-icon>\n </div>\n <div tetaDropdownContent class=\"datepicker-body scrollable padding-3\">\n <div class=\"row align-center justify-content-between\">\n <div>\n <button teta-button\n [palette]=\"'text'\"\n [view]=\"displayMode===datePickerModeEnum.month ? 'primary' : 'ghost'\"\n (click)=\"setMode(datePickerModeEnum.month)\"\n (wheel)=\"scrollMonth($event);\">\n {{locale.monthNames[_currentMonth || today.getMonth()]}}\n </button>\n <button teta-button\n class=\"margin-left-2\"\n [palette]=\"'text'\"\n [view]=\"displayMode===datePickerModeEnum.year ? 'primary' : 'ghost'\"\n (click)=\"setMode(datePickerModeEnum.year)\"\n (wheel)=\"scrollYear($event);\">\n {{_currentYear || today.getFullYear()}}\n </button>\n </div>\n <button teta-button\n [palette]=\"'text'\"\n [view]=\"'ghost'\"\n (click)=\"setToday()\">\n <teta-icon [name]=\"'calendar'\"></teta-icon>\n </button>\n </div>\n <div class=\"datepicker-content\">\n <teta-year-select\n *ngIf=\"displayMode === datePickerModeEnum.year\"\n [currentYear]=\"_currentYear\"\n [today]=\"today\"\n [size]=\"8\"\n [minDate]=\"minDate\"\n [maxDate]=\"maxDate\"\n (yearSelected)=\"setYear($event)\">\n </teta-year-select>\n <teta-month-select\n *ngIf=\"displayMode === datePickerModeEnum.month\"\n [currentMonth]=\"_currentMonth\"\n [locale]=\"locale\"\n [currentYear]=\"_currentYear\"\n [minDate]=\"minDate\"\n [maxDate]=\"maxDate\"\n (monthSelected)=\"setMonth($event)\">\n </teta-month-select>\n </div>\n </div>\n</teta-dropdown>\n", styles: [""], components: [{ type: i2.DropdownComponent, selector: "teta-dropdown" }, { type: i3.IconComponent, selector: "teta-icon", inputs: ["name", "size", "palette", "class"] }, { type: i4.ButtonComponent, selector: "button[teta-button], teta-button", inputs: ["palette", "class", "view", "square"] }, { type: i5.YearSelectComponent, selector: "teta-year-select", inputs: ["currentYear", "today", "size", "minDate", "maxDate", "allowableRange"], outputs: ["yearSelected", "yearApplied"] }, { type: i6.MonthSelectComponent, selector: "teta-month-select", inputs: ["locale", "minDate", "maxDate", "size", "currentMonth", "currentYear"], outputs: ["monthSelected", "monthApplied"] }], directives: [{ type: i7.DropdownHeadDirective, selector: "[tetaDropdownHead]" }, { type: i8.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i9.DropdownContentDirective, selector: "[tetaDropdownContent]" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
227
227
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: MonthPickerComponent, decorators: [{
|
|
228
228
|
type: Component,
|
|
229
|
-
args: [{ selector: 'teta-month-picker', providers: [MONTH_PICKER_CONTROL_VALUE_ACCESSOR], changeDetection: ChangeDetectionStrategy.OnPush, template: "<teta-dropdown\n class=\"row row_auto\"\n [appendToBody]=\"appendToBody\"\n [(open)]=\"showPicker\"\n [disabled]=\"disabled\">\n <div tetaDropdownHead\n (wheel)=\"scrollMonth($event)\"\n class=\"datepicker-head font-body-3\">\n <teta-icon [name]=\"'calendar'\" class=\"margin-right-2\"></teta-icon>\n <div class=\"row_auto\">\n <ng-container *ngIf=\"_value !==null && _value!==undefined\">\n {{locale.monthNames[_value.getMonth()]}} {{_value.getFullYear()}}\n </ng-container>\n </div>\n <teta-icon [name]=\"'closeBig'\" (click)=\"clearPicker()\" class=\"margin-left-2\"></teta-icon>\n </div>\n <div tetaDropdownContent class=\"datepicker-body padding-3\">\n <div class=\"row align-center justify-content-between\">\n <div>\n <button teta-button\n [palette]=\"'text'\"\n [view]=\"displayMode===datePickerModeEnum.month ? 'primary' : 'ghost'\"\n (click)=\"setMode(datePickerModeEnum.month)\"\n (wheel)=\"scrollMonth($event);\">\n {{locale.monthNames[_currentMonth || today.getMonth()]}}\n </button>\n <button teta-button\n class=\"margin-left-2\"\n [palette]=\"'text'\"\n [view]=\"displayMode===datePickerModeEnum.year ? 'primary' : 'ghost'\"\n (click)=\"setMode(datePickerModeEnum.year)\"\n (wheel)=\"scrollYear($event);\">\n {{_currentYear || today.getFullYear()}}\n </button>\n </div>\n <button teta-button\n [palette]=\"'text'\"\n [view]=\"'ghost'\"\n (click)=\"setToday()\">\n <teta-icon [name]=\"'calendar'\"></teta-icon>\n </button>\n </div>\n <div class=\"datepicker-content\">\n <teta-year-select\n *ngIf=\"displayMode === datePickerModeEnum.year\"\n [currentYear]=\"_currentYear\"\n [today]=\"today\"\n [size]=\"8\"\n [minDate]=\"minDate\"\n [maxDate]=\"maxDate\"\n (yearSelected)=\"setYear($event)\">\n </teta-year-select>\n <teta-month-select\n *ngIf=\"displayMode === datePickerModeEnum.month\"\n [currentMonth]=\"_currentMonth\"\n [locale]=\"locale\"\n [currentYear]=\"_currentYear\"\n [minDate]=\"minDate\"\n [maxDate]=\"maxDate\"\n (monthSelected)=\"setMonth($event)\">\n </teta-month-select>\n </div>\n </div>\n</teta-dropdown>\n", styles: [""] }]
|
|
229
|
+
args: [{ selector: 'teta-month-picker', providers: [MONTH_PICKER_CONTROL_VALUE_ACCESSOR], changeDetection: ChangeDetectionStrategy.OnPush, template: "<teta-dropdown\n class=\"row row_auto\"\n [appendToBody]=\"appendToBody\"\n [(open)]=\"showPicker\"\n [disabled]=\"disabled\">\n <div tetaDropdownHead\n (wheel)=\"scrollMonth($event)\"\n class=\"datepicker-head font-body-3\">\n <teta-icon [name]=\"'calendar'\" class=\"margin-right-2\"></teta-icon>\n <div class=\"row_auto\">\n <ng-container *ngIf=\"_value !==null && _value!==undefined\">\n {{locale.monthNames[_value.getMonth()]}} {{_value.getFullYear()}}\n </ng-container>\n </div>\n <teta-icon [name]=\"'closeBig'\" (click)=\"clearPicker()\" class=\"margin-left-2\"></teta-icon>\n </div>\n <div tetaDropdownContent class=\"datepicker-body scrollable padding-3\">\n <div class=\"row align-center justify-content-between\">\n <div>\n <button teta-button\n [palette]=\"'text'\"\n [view]=\"displayMode===datePickerModeEnum.month ? 'primary' : 'ghost'\"\n (click)=\"setMode(datePickerModeEnum.month)\"\n (wheel)=\"scrollMonth($event);\">\n {{locale.monthNames[_currentMonth || today.getMonth()]}}\n </button>\n <button teta-button\n class=\"margin-left-2\"\n [palette]=\"'text'\"\n [view]=\"displayMode===datePickerModeEnum.year ? 'primary' : 'ghost'\"\n (click)=\"setMode(datePickerModeEnum.year)\"\n (wheel)=\"scrollYear($event);\">\n {{_currentYear || today.getFullYear()}}\n </button>\n </div>\n <button teta-button\n [palette]=\"'text'\"\n [view]=\"'ghost'\"\n (click)=\"setToday()\">\n <teta-icon [name]=\"'calendar'\"></teta-icon>\n </button>\n </div>\n <div class=\"datepicker-content\">\n <teta-year-select\n *ngIf=\"displayMode === datePickerModeEnum.year\"\n [currentYear]=\"_currentYear\"\n [today]=\"today\"\n [size]=\"8\"\n [minDate]=\"minDate\"\n [maxDate]=\"maxDate\"\n (yearSelected)=\"setYear($event)\">\n </teta-year-select>\n <teta-month-select\n *ngIf=\"displayMode === datePickerModeEnum.month\"\n [currentMonth]=\"_currentMonth\"\n [locale]=\"locale\"\n [currentYear]=\"_currentYear\"\n [minDate]=\"minDate\"\n [maxDate]=\"maxDate\"\n (monthSelected)=\"setMonth($event)\">\n </teta-month-select>\n </div>\n </div>\n</teta-dropdown>\n", styles: [""] }]
|
|
230
230
|
}], ctorParameters: function () { return [{ type: i1.PickerLocaleService }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { disabled: [{
|
|
231
231
|
type: Input
|
|
232
232
|
}], minDate: [{
|
|
@@ -247,4 +247,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.1", ngImpor
|
|
|
247
247
|
type: HostBinding,
|
|
248
248
|
args: ['tabindex']
|
|
249
249
|
}] } });
|
|
250
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9udGgtcGlja2VyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvc3JjL2NvbXBvbmVudC9kYXRlLXBpY2tlci9tb250aC1waWNrZXIvbW9udGgtcGlja2VyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvc3JjL2NvbXBvbmVudC9kYXRlLXBpY2tlci9tb250aC1waWNrZXIvbW9udGgtcGlja2VyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCx1QkFBdUIsRUFFdkIsU0FBUyxFQUNULFVBQVUsRUFDVixXQUFXLEVBQ1gsS0FBSyxHQUdOLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBd0IsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUd6RSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDM0MsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGdDQUFnQyxDQUFDOzs7Ozs7Ozs7OztBQUVoRSxNQUFNLENBQUMsTUFBTSxtQ0FBbUMsR0FBUTtJQUN0RCxPQUFPLEVBQUUsaUJBQWlCO0lBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsb0JBQW9CLENBQUM7SUFDbkQsS0FBSyxFQUFFLElBQUk7Q0FDWixDQUFDO0FBU0YsTUFBTSxPQUFPLG9CQUFvQjtJQTREL0IsWUFDUyxhQUFrQyxFQUNqQyxJQUF1QjtRQUR4QixrQkFBYSxHQUFiLGFBQWEsQ0FBcUI7UUFDakMsU0FBSSxHQUFKLElBQUksQ0FBbUI7UUF4RHhCLGNBQVMsR0FBRyxJQUFJLENBQUM7UUFDakIsaUJBQVksR0FBRyxJQUFJLENBQUM7UUFHcUIsb0JBQWUsR0FBRyxJQUFJLENBQUM7UUFDL0IsYUFBUSxHQUFHLENBQUMsQ0FBQztRQUV2RCx1QkFB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ZjtRQUNELElBQUksQ0FBQyxXQUFXLEdBQUcsTUFBTSxDQUFDO0lBQzVCLENBQUM7O2lIQXZQVSxvQkFBb0I7cUdBQXBCLG9CQUFvQiwyVEFIcEIsQ0FBQyxtQ0FBbUMsQ0FBQywwQkMxQmxELHc2RUFnRUE7MkZEbkNhLG9CQUFvQjtrQkFQaEMsU0FBUzsrQkFDRSxtQkFBbUIsYUFHbEIsQ0FBQyxtQ0FBbUMsQ0FBQyxtQkFDL0IsdUJBQXVCLENBQUMsTUFBTTswSUFLdEMsUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFFZ0MsVUFBVTtzQkFBL0MsV0FBVzt1QkFBQyx1QkFBdUI7Z0JBQ2MsZUFBZTtzQkFBaEUsV0FBVzt1QkFBQyxrQkFBa0I7Z0JBQ1csUUFBUTtzQkFBakQsV0FBVzt1QkFBQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIGZvcndhcmRSZWYsXG4gIEhvc3RCaW5kaW5nLFxuICBJbnB1dCxcbiAgT25EZXN0cm95LFxuICBPbkluaXQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgUGlja2VyTG9jYWxlTW9kZWwgfSBmcm9tICcuLi9tb2RlbC9waWNrZXItbG9jYWxlLW1vZGVsJztcbmltcG9ydCB7IFBpY2tlckxvY2FsZVNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlL3BpY2tlci1sb2NhbGUuc2VydmljZSc7XG5pbXBvcnQgeyB0YWtlV2hpbGUgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBEYXRlUGlja2VyTW9kZSB9IGZyb20gJy4uL21vZGVsL2RhdGUtcGlja2VyLW1vZGUuZW51bSc7XG5cbmV4cG9ydCBjb25zdCBNT05USF9QSUNLRVJfQ09OVFJPTF9WQUxVRV9BQ0NFU1NPUjogYW55ID0ge1xuICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gTW9udGhQaWNrZXJDb21wb25lbnQpLFxuICBtdWx0aTogdHJ1ZSxcbn07XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3RldGEtbW9udGgtcGlja2VyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL21vbnRoLXBpY2tlci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL21vbnRoLXBpY2tlci5jb21wb25lbnQuc2NzcyddLFxuICBwcm92aWRlcnM6IFtNT05USF9QSUNLRVJfQ09OVFJPTF9WQUxVRV9BQ0NFU1NPUl0sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBNb250aFBpY2tlckNvbXBvbmVudFxuICBpbXBsZW1lbnRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBPbkluaXQsIE9uRGVzdHJveVxue1xuICBASW5wdXQoKSBkaXNhYmxlZDogYm9vbGVhbjtcbiAgQElucHV0KCkgbWluRGF0ZTogRGF0ZTtcbiAgQElucHV0KCkgbWF4RGF0ZTogRGF0ZTtcbiAgQElucHV0KCkgc2hvd1RvZGF5ID0gdHJ1ZTtcbiAgQElucHV0KCkgYXBwZW5kVG9Cb2R5ID0gdHJ1ZTtcblxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLmRhdGVwaWNrZXJfb3BlbicpIHNob3dQaWNrZXI6IGJvb2xlYW47XG4gIEBIb3N0QmluZGluZygnY2xhc3MuZGF0ZXBpY2tlcicpIHByaXZhdGUgcmVhZG9ubHkgY2xhc3NEYXRlcGlja2VyID0gdHJ1ZTtcbiAgQEhvc3RCaW5kaW5nKCd0YWJpbmRleCcpIHByaXZhdGUgcmVhZG9ubHkgdGFiaW5kZXggPSAwO1xuXG4gIGRhdGVQaWNrZXJNb2RlRW51bSA9IERhdGVQaWNrZXJNb2RlO1xuXG4gIGxvY2FsZTogUGlja2VyTG9jYWxlTW9kZWw7XG4gIHRvZGF5OiBEYXRlO1xuXG4gIGRpc3BsYXlNb2RlOiBEYXRlUGlja2VyTW9kZSA9IERhdGVQaWNrZXJNb2RlLm1vbnRoO1xuXG4gIF92YWx1ZTogRGF0ZSB8IG51bGwgPSBudWxsO1xuICBfY3VycmVudE1vbnRoOiBudW1iZXIgfCBudWxsO1xuICBfY3VycmVudFllYXI6IG51bWJlciB8IG51bGw7XG5cbiAgZ2V0IHZhbHVlKCk6IGFueSB7XG4gICAgcmV0dXJuIHRoaXMuX3ZhbHVlO1xuICB9XG5cbiAgc2V0IHZhbHVlKHY6IGFueSkge1xuICAgIGlmICh2ICE9PSB0aGlzLl92YWx1ZSkge1xuICAgICAgdGhpcy5fdmFsdWUgPSB2O1xuICAgICAgdGhpcy5vbkNoYW5nZSh2KTtcbiAgICB9XG4gIH1cblxuICBnZXQgY3VycmVudE1vbnRoKCk6IG51bWJlciB8IG51bGwge1xuICAgIHJldHVybiB0aGlzLl9jdXJyZW50TW9udGg7XG4gIH1cblxuICBzZXQgY3VycmVudE1vbnRoKHY6IG51bWJlciB8IG51bGwpIHtcbiAgICBpZiAodiA9PT0gbnVsbCB8fCB2ID09PSB1bmRlZmluZWQgfHwgdiA8IDAgfHwgdiA+IDExKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmICh2ICE9PSB0aGlzLl9jdXJyZW50TW9udGgpIHtcbiAgICAgIHRoaXMuX2N1cnJlbnRNb250aCA9IHY7XG4gICAgfVxuICB9XG5cbiAgZ2V0IGN1cnJlbnRZZWFyKCk6IG51bWJlciB8IG51bGwge1xuICAgIHJldHVybiB0aGlzLl9jdXJyZW50WWVhcjtcbiAgfVxuXG4gIHNldCBjdXJyZW50WWVhcih2OiBudW1iZXIgfCBudWxsKSB7XG4gICAgaWYgKHYgIT09IHRoaXMuX2N1cnJlbnRZZWFyKSB7XG4gICAgICB0aGlzLl9jdXJyZW50WWVhciA9IHY7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfYWxpdmUgPSB0cnVlO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyBsb2NhbGVTZXJ2aWNlOiBQaWNrZXJMb2NhbGVTZXJ2aWNlLFxuICAgIHByaXZhdGUgX2NkcjogQ2hhbmdlRGV0ZWN0b3JSZWZcbiAgKSB7XG4gICAgbG9jYWxlU2VydmljZS5sb2NhbGVcbiAgICAgIC5waXBlKHRha2VXaGlsZSgoXykgPT4gdGhpcy5fYWxpdmUpKVxuICAgICAgLnN1YnNjcmliZSgobG9jYWxlOiBQaWNrZXJMb2NhbGVNb2RlbCkgPT4ge1xuICAgICAgICB0aGlzLmxvY2FsZSA9IGxvY2FsZTtcbiAgICAgIH0pO1xuICAgIHRoaXMuc2V0RGVmYXVsdHMoKTtcbiAgfVxuXG4gIHdyaXRlVmFsdWUodmFsdWU6IGFueSkge1xuICAgIHRoaXMuX3ZhbHVlID0gdmFsdWU7XG4gICAgdGhpcy5pbml0UGlja2VyKHZhbHVlKTtcbiAgfVxuXG4gIGluaXRQaWNrZXIoZGF0ZTogRGF0ZSkge1xuICAgIGlmICghZGF0ZSB8fCAhKGRhdGUgaW5zdGFuY2VvZiBEYXRlKSkge1xuICAgICAgdGhpcy5zZXREZWZhdWx0cygpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmN1cnJlbnRNb250aCA9IGRhdGUuZ2V0TW9udGgoKTtcbiAgICAgIHRoaXMuY3VycmVudFllYXIgPSBkYXRlLmdldEZ1bGxZZWFyKCk7XG4gICAgfVxuICAgIHRoaXMuX2Nkci5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIHNldERlZmF1bHRzKCkge1xuICAgIHRoaXMudG9kYXkgPSBuZXcgRGF0ZSgpO1xuICAgIHRoaXMuY3VycmVudE1vbnRoID0gbnVsbDtcbiAgICB0aGlzLmN1cnJlbnRZZWFyID0gbnVsbDtcbiAgfVxuXG4gIGNsZWFyUGlja2VyKCkge1xuICAgIHRoaXMudmFsdWUgPSBudWxsO1xuICB9XG5cbiAgb25DaGFuZ2UgPSAoXzogYW55KSA9PiB7fTtcblxuICBvblRvdWNoZWQgPSAoKSA9PiB7fTtcblxuICByZWdpc3Rlck9uQ2hhbmdlKGZuOiAoXzogYW55KSA9PiB2b2lkKTogdm9pZCB7XG4gICAgdGhpcy5vbkNoYW5nZSA9IGZuO1xuICB9XG5cbiAgcmVnaXN0ZXJPblRvdWNoZWQoZm46ICgpID0+IHZvaWQpOiB2b2lkIHtcbiAgICB0aGlzLm9uVG91Y2hlZCA9IGZuO1xuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgaWYgKCF0aGlzLm1pbkRhdGUgfHwgISh0aGlzLm1pbkRhdGUgaW5zdGFuY2VvZiBEYXRlKSkge1xuICAgICAgdGhpcy5taW5EYXRlID0gbmV3IERhdGUoJzE5MDAtMDEtMDFUMDA6MDA6MDBaJyk7XG4gICAgfVxuICAgIGlmICghdGhpcy5tYXhEYXRlIHx8ICEodGhpcy5tYXhEYXRlIGluc3RhbmNlb2YgRGF0ZSkpIHtcbiAgICAgIHRoaXMubWF4RGF0ZSA9IG5ldyBEYXRlKCcyMTAwLTEyLTMxVDAwOjAwOjAwWicpO1xuICAgIH1cbiAgICB0aGlzLmluaXRQaWNrZXIodGhpcy52YWx1ZSk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLl9hbGl2ZSA9IGZhbHNlO1xuICB9XG5cbiAgaXNNaW5JbnZhbGlkID0gKGRhdDogRGF0ZSk6IGJvb2xlYW4gPT4ge1xuICAgIGlmICghdGhpcy5taW5EYXRlIHx8ICEodGhpcy5taW5EYXRlIGluc3RhbmNlb2YgRGF0ZSkgfHwgIWRhdCkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICBjb25zdCBtaW4gPSBuZXcgRGF0ZShcbiAgICAgIHRoaXMubWluRGF0ZS5nZXRGdWxsWWVhcigpLFxuICAgICAgdGhpcy5taW5EYXRlLmdldE1vbnRoKCksXG4gICAgICAxXG4gICAgKTtcbiAgICByZXR1cm4gbWluLmdldFRpbWUoKSA+IGRhdC5nZXRUaW1lKCk7XG4gIH07XG5cbiAgaXNNYXhJbnZhbGlkID0gKGRhdDogRGF0ZSk6IGJvb2xlYW4gPT4ge1xuICAgIGlmICghdGhpcy5tYXhEYXRlIHx8ICEodGhpcy5tYXhEYXRlIGluc3RhbmNlb2YgRGF0ZSkgfHwgIWRhdCkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICBjb25zdCBtYXggPSBuZXcgRGF0ZShcbiAgICAgIHRoaXMubWF4RGF0ZS5nZXRGdWxsWWVhcigpLFxuICAgICAgdGhpcy5tYXhEYXRlLmdldE1vbnRoKCksXG4gICAgICAxXG4gICAgKTtcbiAgICByZXR1cm4gbWF4LmdldFRpbWUoKSA8IGRhdC5nZXRUaW1lKCk7XG4gIH07XG5cbiAgc2Nyb2xsTW9udGggPSAoZTogYW55KSA9PiB7XG4gICAgaWYgKHRoaXMuc2hvd1BpY2tlcikge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICBpZiAoIXRoaXMuX3ZhbHVlKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmICh0aGlzLmN1cnJlbnRZZWFyID09PSBudWxsIHx8IHRoaXMuY3VycmVudFllYXIgPT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhpcy5jdXJyZW50WWVhciA9IHRoaXMudG9kYXkuZ2V0RnVsbFllYXIoKTtcbiAgICB9XG4gICAgaWYgKHRoaXMuY3VycmVudE1vbnRoID09PSBudWxsIHx8IHRoaXMuY3VycmVudE1vbnRoID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHRoaXMuY3VycmVudE1vbnRoID0gdGhpcy50b2RheS5nZXRNb250aCgpO1xuICAgIH1cbiAgICBpZiAoZS5kZWx0YVkgPiAwKSB7XG4gICAgICBpZiAodGhpcy5jdXJyZW50TW9udGggPT09IDExKSB7XG4gICAgICAgIHRoaXMuY3VycmVudE1vbnRoID0gMDtcbiAgICAgICAgdGhpcy5jdXJyZW50WWVhcisrO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5jdXJyZW50TW9udGgrKztcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKHRoaXMuY3VycmVudE1vbnRoID09PSAwKSB7XG4gICAgICAgIHRoaXMuY3VycmVudE1vbnRoID0gMTE7XG4gICAgICAgIHRoaXMuY3VycmVudFllYXItLTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuY3VycmVudE1vbnRoLS07XG4gICAgICB9XG4gICAgfVxuICAgIGNvbnN0IG5ld0RhdGUgPSBuZXcgRGF0ZSh0aGlzLmN1cnJlbnRZZWFyLCB0aGlzLmN1cnJlbnRNb250aCwgMSwgMCwgMCwgMCk7XG4gICAgaWYgKCF0aGlzLmlzTWluSW52YWxpZChuZXdEYXRlKSAmJiAhdGhpcy5pc01heEludmFsaWQobmV3RGF0ZSkpIHtcbiAgICAgIHRoaXMudmFsdWUgPSBuZXdEYXRlO1xuICAgIH1cbiAgfTtcblxuICBzY3JvbGxZZWFyID0gKGU6IGFueSkgPT4ge1xuICAgIGlmICh0aGlzLnNob3dQaWNrZXIpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgaWYgKCF0aGlzLl92YWx1ZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAoIXRoaXMuY3VycmVudFllYXIpIHtcbiAgICAgIHRoaXMuY3VycmVudFllYXIgPSB0aGlzLnRvZGF5LmdldEZ1bGxZZWFyKCk7XG4gICAgfVxuICAgIGlmICghdGhpcy5jdXJyZW50TW9udGgpIHtcbiAgICAgIHRoaXMuY3VycmVudE1vbnRoID0gdGhpcy50b2RheS5nZXRNb250aCgpO1xuICAgIH1cbiAgICBpZiAoZS5kZWx0YVkgPiAwKSB7XG4gICAgICB0aGlzLmN1cnJlbnRZZWFyKys7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuY3VycmVudFllYXItLTtcbiAgICB9XG4gICAgY29uc3QgbmV3RGF0ZSA9IG5ldyBEYXRlKHRoaXMuY3VycmVudFllYXIsIHRoaXMuY3VycmVudE1vbnRoLCAxLCAwLCAwLCAwKTtcbiAgICBpZiAoIXRoaXMuaXNNaW5JbnZhbGlkKG5ld0RhdGUpICYmICF0aGlzLmlzTWF4SW52YWxpZChuZXdEYXRlKSkge1xuICAgICAgdGhpcy52YWx1ZSA9IG5ld0RhdGU7XG4gICAgfVxuICB9O1xuXG4gIHNldE1vbnRoID0gKG1vbnRoOiBudW1iZXIpID0+IHtcbiAgICB0aGlzLmN1cnJlbnRNb250aCA9IG1vbnRoO1xuICAgIGlmICghdGhpcy5jdXJyZW50WWVhcikge1xuICAgICAgdGhpcy5jdXJyZW50WWVhciA9IHRoaXMudG9kYXkuZ2V0RnVsbFllYXIoKTtcbiAgICB9XG4gICAgY29uc3QgbmV3RGF0ZSA9IG5ldyBEYXRlKHRoaXMuY3VycmVudFllYXIsIHRoaXMuY3VycmVudE1vbnRoLCAxLCAwLCAwLCAwKTtcbiAgICBpZiAoIXRoaXMuaXNNaW5JbnZhbGlkKG5ld0RhdGUpICYmICF0aGlzLmlzTWF4SW52YWxpZChuZXdEYXRlKSkge1xuICAgICAgdGhpcy52YWx1ZSA9IG5ld0RhdGU7XG4gICAgfVxuICB9O1xuXG4gIHNldFllYXIgPSAoeWVhcjogbnVtYmVyKSA9PiB7XG4gICAgdGhpcy5jdXJyZW50WWVhciA9IHllYXI7XG4gICAgaWYgKCF0aGlzLmN1cnJlbnRNb250aCkge1xuICAgICAgdGhpcy5jdXJyZW50TW9udGggPSB0aGlzLnRvZGF5LmdldE1vbnRoKCk7XG4gICAgfVxuICAgIGNvbnN0IG5ld0RhdGUgPSBuZXcgRGF0ZSh0aGlzLmN1cnJlbnRZZWFyLCB0aGlzLmN1cnJlbnRNb250aCwgMSwgMCwgMCwgMCk7XG4gICAgaWYgKCF0aGlzLmlzTWluSW52YWxpZChuZXdEYXRlKSAmJiAhdGhpcy5pc01heEludmFsaWQobmV3RGF0ZSkpIHtcbiAgICAgIHRoaXMudmFsdWUgPSBuZXdEYXRlO1xuICAgIH1cbiAgfTtcblxuICBzZXRUb2RheSA9ICgpID0+IHtcbiAgICBjb25zdCB0b2RheSA9IG5ldyBEYXRlKCk7XG4gICAgdGhpcy5jdXJyZW50WWVhciA9IHRvZGF5LmdldEZ1bGxZZWFyKCk7XG4gICAgdGhpcy5jdXJyZW50TW9udGggPSB0b2RheS5nZXRNb250aCgpO1xuICAgIHRoaXMudmFsdWUgPSBuZXcgRGF0ZSh0aGlzLmN1cnJlbnRZZWFyLCB0aGlzLmN1cnJlbnRNb250aCwgMSwgMCwgMCwgMCk7XG4gICAgdGhpcy5zaG93UGlja2VyID0gZmFsc2U7XG4gIH07XG5cbiAgc2V0TW9kZShtb2RlOiBEYXRlUGlja2VyTW9kZSkge1xuICAgIGxldCByZXN1bHQ6IERhdGVQaWNrZXJNb2RlO1xuICAgIGlmIChtb2RlID09PSB0aGlzLmRpc3BsYXlNb2RlIHx8IG1vZGUgPT09IERhdGVQaWNrZXJNb2RlLm1vbnRoKSB7XG4gICAgICByZXN1bHQgPSBEYXRlUGlja2VyTW9kZS5tb250aDtcbiAgICB9IGVsc2Uge1xuICAgICAgcmVzdWx0ID0gbW9kZTtcbiAgICB9XG4gICAgdGhpcy5kaXNwbGF5TW9kZSA9IHJlc3VsdDtcbiAgfVxufVxuIiwiPHRldGEtZHJvcGRvd25cbiAgY2xhc3M9XCJyb3cgcm93X2F1dG9cIlxuICBbYXBwZW5kVG9Cb2R5XT1cImFwcGVuZFRvQm9keVwiXG4gIFsob3BlbildPVwic2hvd1BpY2tlclwiXG4gIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiPlxuICA8ZGl2IHRldGFEcm9wZG93bkhlYWRcbiAgICAgICAod2hlZWwpPVwic2Nyb2xsTW9udGgoJGV2ZW50KVwiXG4gICAgICAgY2xhc3M9XCJkYXRlcGlja2VyLWhlYWQgZm9udC1ib2R5LTNcIj5cbiAgICA8dGV0YS1pY29uIFtuYW1lXT1cIidjYWxlbmRhcidcIiBjbGFzcz1cIm1hcmdpbi1yaWdodC0yXCI+PC90ZXRhLWljb24+XG4gICAgPGRpdiBjbGFzcz1cInJvd19hdXRvXCI+XG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiX3ZhbHVlICE9PW51bGwgJiYgX3ZhbHVlIT09dW5kZWZpbmVkXCI+XG4gICAgICAgIHt7bG9jYWxlLm1vbnRoTmFtZXNbX3ZhbHVlLmdldE1vbnRoKCldfX0ge3tfdmFsdWUuZ2V0RnVsbFllYXIoKX19XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8L2Rpdj5cbiAgICA8dGV0YS1pY29uIFtuYW1lXT1cIidjbG9zZUJpZydcIiAoY2xpY2spPVwiY2xlYXJQaWNrZXIoKVwiIGNsYXNzPVwibWFyZ2luLWxlZnQtMlwiPjwvdGV0YS1pY29uPlxuICA8L2Rpdj5cbiAgPGRpdiB0ZXRhRHJvcGRvd25Db250ZW50IGNsYXNzPVwiZGF0ZXBpY2tlci1ib2R5IHBhZGRpbmctM1wiPlxuICAgIDxkaXYgY2xhc3M9XCJyb3cgYWxpZ24tY2VudGVyIGp1c3RpZnktY29udGVudC1iZXR3ZWVuXCI+XG4gICAgICA8ZGl2PlxuICAgICAgICA8YnV0dG9uIHRldGEtYnV0dG9uXG4gICAgICAgICAgICAgICAgW3BhbGV0dGVdPVwiJ3RleHQnXCJcbiAgICAgICAgICAgICAgICBbdmlld109XCJkaXNwbGF5TW9kZT09PWRhdGVQaWNrZXJNb2RlRW51bS5tb250aCA/ICdwcmltYXJ5JyA6ICdnaG9zdCdcIlxuICAgICAgICAgICAgICAgIChjbGljayk9XCJzZXRNb2RlKGRhdGVQaWNrZXJNb2RlRW51bS5tb250aClcIlxuICAgICAgICAgICAgICAgICh3aGVlbCk9XCJzY3JvbGxNb250aCgkZXZlbnQpO1wiPlxuICAgICAgICAgIHt7bG9jYWxlLm1vbnRoTmFtZXNbX2N1cnJlbnRNb250aCB8fCB0b2RheS5nZXRNb250aCgpXX19XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8YnV0dG9uIHRldGEtYnV0dG9uXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJtYXJnaW4tbGVmdC0yXCJcbiAgICAgICAgICAgICAgICBbcGFsZXR0ZV09XCIndGV4dCdcIlxuICAgICAgICAgICAgICAgIFt2aWV3XT1cImRpc3BsYXlNb2RlPT09ZGF0ZVBpY2tlck1vZGVFbnVtLnllYXIgPyAncHJpbWFyeScgOiAnZ2hvc3QnXCJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwic2V0TW9kZShkYXRlUGlja2VyTW9kZUVudW0ueWVhcilcIlxuICAgICAgICAgICAgICAgICh3aGVlbCk9XCJzY3JvbGxZZWFyKCRldmVudCk7XCI+XG4gICAgICAgICAge3tfY3VycmVudFllYXIgfHwgdG9kYXkuZ2V0RnVsbFllYXIoKX19XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgPC9kaXY+XG4gICAgICA8YnV0dG9uIHRldGEtYnV0dG9uXG4gICAgICAgICAgICAgIFtwYWxldHRlXT1cIid0ZXh0J1wiXG4gICAgICAgICAgICAgIFt2aWV3XT1cIidnaG9zdCdcIlxuICAgICAgICAgICAgICAoY2xpY2spPVwic2V0VG9kYXkoKVwiPlxuICAgICAgICA8dGV0YS1pY29uIFtuYW1lXT1cIidjYWxlbmRhcidcIj48L3RldGEtaWNvbj5cbiAgICAgIDwvYnV0dG9uPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJkYXRlcGlja2VyLWNvbnRlbnRcIj5cbiAgICAgIDx0ZXRhLXllYXItc2VsZWN0XG4gICAgICAgICpuZ0lmPVwiZGlzcGxheU1vZGUgPT09IGRhdGVQaWNrZXJNb2RlRW51bS55ZWFyXCJcbiAgICAgICAgW2N1cnJlbnRZZWFyXT1cIl9jdXJyZW50WWVhclwiXG4gICAgICAgIFt0b2RheV09XCJ0b2RheVwiXG4gICAgICAgIFtzaXplXT1cIjhcIlxuICAgICAgICBbbWluRGF0ZV09XCJtaW5EYXRlXCJcbiAgICAgICAgW21heERhdGVdPVwibWF4RGF0ZVwiXG4gICAgICAgICh5ZWFyU2VsZWN0ZWQpPVwic2V0WWVhcigkZXZlbnQpXCI+XG4gICAgICA8L3RldGEteWVhci1zZWxlY3Q+XG4gICAgICA8dGV0YS1tb250aC1zZWxlY3RcbiAgICAgICAgKm5nSWY9XCJkaXNwbGF5TW9kZSA9PT0gZGF0ZVBpY2tlck1vZGVFbnVtLm1vbnRoXCJcbiAgICAgICAgW2N1cnJlbnRNb250aF09XCJfY3VycmVudE1vbnRoXCJcbiAgICAgICAgW2xvY2FsZV09XCJsb2NhbGVcIlxuICAgICAgICBbY3VycmVudFllYXJdPVwiX2N1cnJlbnRZZWFyXCJcbiAgICAgICAgW21pbkRhdGVdPVwibWluRGF0ZVwiXG4gICAgICAgIFttYXhEYXRlXT1cIm1heERhdGVcIlxuICAgICAgICAobW9udGhTZWxlY3RlZCk9XCJzZXRNb250aCgkZXZlbnQpXCI+XG4gICAgICA8L3RldGEtbW9udGgtc2VsZWN0PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvdGV0YS1kcm9wZG93bj5cbiJdfQ==
|
|
250
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9udGgtcGlja2VyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvc3JjL2NvbXBvbmVudC9kYXRlLXBpY2tlci9tb250aC1waWNrZXIvbW9udGgtcGlja2VyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvc3JjL2NvbXBvbmVudC9kYXRlLXBpY2tlci9tb250aC1waWNrZXIvbW9udGgtcGlja2VyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCx1QkFBdUIsRUFFdkIsU0FBUyxFQUNULFVBQVUsRUFDVixXQUFXLEVBQ1gsS0FBSyxHQUdOLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBd0IsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUd6RSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDM0MsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGdDQUFnQyxDQUFDOzs7Ozs7Ozs7OztBQUVoRSxNQUFNLENBQUMsTUFBTSxtQ0FBbUMsR0FBUTtJQUN0RCxPQUFPLEVBQUUsaUJBQWlCO0lBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsb0JBQW9CLENBQUM7SUFDbkQsS0FBSyxFQUFFLElBQUk7Q0FDWixDQUFDO0FBU0YsTUFBTSxPQUFPLG9CQUFvQjtJQTREL0IsWUFDUyxhQUFrQyxFQUNqQyxJQUF1QjtRQUR4QixrQkFBYSxHQUFiLGFBQWEsQ0FBcUI7UUFDakMsU0FBSSxHQUFKLElBQUksQ0FBbUI7UUF4RHhCLGNBQVMsR0FBRyxJQUFJLENBQUM7UUFDakIsaUJBQVksR0FBRyxJQUFJLENBQUM7UUFHcUIsb0JBQWUsR0FBRyxJQUFJLENBQUM7UUFDL0IsYUFBUSxHQUFHLENBQUMsQ0FBQztRQUV2RCx1QkFB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ZjtRQUNELElBQUksQ0FBQyxXQUFXLEdBQUcsTUFBTSxDQUFDO0lBQzVCLENBQUM7O2lIQXZQVSxvQkFBb0I7cUdBQXBCLG9CQUFvQiwyVEFIcEIsQ0FBQyxtQ0FBbUMsQ0FBQywwQkMxQmxELG03RUFnRUE7MkZEbkNhLG9CQUFvQjtrQkFQaEMsU0FBUzsrQkFDRSxtQkFBbUIsYUFHbEIsQ0FBQyxtQ0FBbUMsQ0FBQyxtQkFDL0IsdUJBQXVCLENBQUMsTUFBTTswSUFLdEMsUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFFZ0MsVUFBVTtzQkFBL0MsV0FBVzt1QkFBQyx1QkFBdUI7Z0JBQ2MsZUFBZTtzQkFBaEUsV0FBVzt1QkFBQyxrQkFBa0I7Z0JBQ1csUUFBUTtzQkFBakQsV0FBVzt1QkFBQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIGZvcndhcmRSZWYsXG4gIEhvc3RCaW5kaW5nLFxuICBJbnB1dCxcbiAgT25EZXN0cm95LFxuICBPbkluaXQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgUGlja2VyTG9jYWxlTW9kZWwgfSBmcm9tICcuLi9tb2RlbC9waWNrZXItbG9jYWxlLW1vZGVsJztcbmltcG9ydCB7IFBpY2tlckxvY2FsZVNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlL3BpY2tlci1sb2NhbGUuc2VydmljZSc7XG5pbXBvcnQgeyB0YWtlV2hpbGUgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBEYXRlUGlja2VyTW9kZSB9IGZyb20gJy4uL21vZGVsL2RhdGUtcGlja2VyLW1vZGUuZW51bSc7XG5cbmV4cG9ydCBjb25zdCBNT05USF9QSUNLRVJfQ09OVFJPTF9WQUxVRV9BQ0NFU1NPUjogYW55ID0ge1xuICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gTW9udGhQaWNrZXJDb21wb25lbnQpLFxuICBtdWx0aTogdHJ1ZSxcbn07XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3RldGEtbW9udGgtcGlja2VyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL21vbnRoLXBpY2tlci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL21vbnRoLXBpY2tlci5jb21wb25lbnQuc2NzcyddLFxuICBwcm92aWRlcnM6IFtNT05USF9QSUNLRVJfQ09OVFJPTF9WQUxVRV9BQ0NFU1NPUl0sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBNb250aFBpY2tlckNvbXBvbmVudFxuICBpbXBsZW1lbnRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBPbkluaXQsIE9uRGVzdHJveVxue1xuICBASW5wdXQoKSBkaXNhYmxlZDogYm9vbGVhbjtcbiAgQElucHV0KCkgbWluRGF0ZTogRGF0ZTtcbiAgQElucHV0KCkgbWF4RGF0ZTogRGF0ZTtcbiAgQElucHV0KCkgc2hvd1RvZGF5ID0gdHJ1ZTtcbiAgQElucHV0KCkgYXBwZW5kVG9Cb2R5ID0gdHJ1ZTtcblxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLmRhdGVwaWNrZXJfb3BlbicpIHNob3dQaWNrZXI6IGJvb2xlYW47XG4gIEBIb3N0QmluZGluZygnY2xhc3MuZGF0ZXBpY2tlcicpIHByaXZhdGUgcmVhZG9ubHkgY2xhc3NEYXRlcGlja2VyID0gdHJ1ZTtcbiAgQEhvc3RCaW5kaW5nKCd0YWJpbmRleCcpIHByaXZhdGUgcmVhZG9ubHkgdGFiaW5kZXggPSAwO1xuXG4gIGRhdGVQaWNrZXJNb2RlRW51bSA9IERhdGVQaWNrZXJNb2RlO1xuXG4gIGxvY2FsZTogUGlja2VyTG9jYWxlTW9kZWw7XG4gIHRvZGF5OiBEYXRlO1xuXG4gIGRpc3BsYXlNb2RlOiBEYXRlUGlja2VyTW9kZSA9IERhdGVQaWNrZXJNb2RlLm1vbnRoO1xuXG4gIF92YWx1ZTogRGF0ZSB8IG51bGwgPSBudWxsO1xuICBfY3VycmVudE1vbnRoOiBudW1iZXIgfCBudWxsO1xuICBfY3VycmVudFllYXI6IG51bWJlciB8IG51bGw7XG5cbiAgZ2V0IHZhbHVlKCk6IGFueSB7XG4gICAgcmV0dXJuIHRoaXMuX3ZhbHVlO1xuICB9XG5cbiAgc2V0IHZhbHVlKHY6IGFueSkge1xuICAgIGlmICh2ICE9PSB0aGlzLl92YWx1ZSkge1xuICAgICAgdGhpcy5fdmFsdWUgPSB2O1xuICAgICAgdGhpcy5vbkNoYW5nZSh2KTtcbiAgICB9XG4gIH1cblxuICBnZXQgY3VycmVudE1vbnRoKCk6IG51bWJlciB8IG51bGwge1xuICAgIHJldHVybiB0aGlzLl9jdXJyZW50TW9udGg7XG4gIH1cblxuICBzZXQgY3VycmVudE1vbnRoKHY6IG51bWJlciB8IG51bGwpIHtcbiAgICBpZiAodiA9PT0gbnVsbCB8fCB2ID09PSB1bmRlZmluZWQgfHwgdiA8IDAgfHwgdiA+IDExKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmICh2ICE9PSB0aGlzLl9jdXJyZW50TW9udGgpIHtcbiAgICAgIHRoaXMuX2N1cnJlbnRNb250aCA9IHY7XG4gICAgfVxuICB9XG5cbiAgZ2V0IGN1cnJlbnRZZWFyKCk6IG51bWJlciB8IG51bGwge1xuICAgIHJldHVybiB0aGlzLl9jdXJyZW50WWVhcjtcbiAgfVxuXG4gIHNldCBjdXJyZW50WWVhcih2OiBudW1iZXIgfCBudWxsKSB7XG4gICAgaWYgKHYgIT09IHRoaXMuX2N1cnJlbnRZZWFyKSB7XG4gICAgICB0aGlzLl9jdXJyZW50WWVhciA9IHY7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfYWxpdmUgPSB0cnVlO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyBsb2NhbGVTZXJ2aWNlOiBQaWNrZXJMb2NhbGVTZXJ2aWNlLFxuICAgIHByaXZhdGUgX2NkcjogQ2hhbmdlRGV0ZWN0b3JSZWZcbiAgKSB7XG4gICAgbG9jYWxlU2VydmljZS5sb2NhbGVcbiAgICAgIC5waXBlKHRha2VXaGlsZSgoXykgPT4gdGhpcy5fYWxpdmUpKVxuICAgICAgLnN1YnNjcmliZSgobG9jYWxlOiBQaWNrZXJMb2NhbGVNb2RlbCkgPT4ge1xuICAgICAgICB0aGlzLmxvY2FsZSA9IGxvY2FsZTtcbiAgICAgIH0pO1xuICAgIHRoaXMuc2V0RGVmYXVsdHMoKTtcbiAgfVxuXG4gIHdyaXRlVmFsdWUodmFsdWU6IGFueSkge1xuICAgIHRoaXMuX3ZhbHVlID0gdmFsdWU7XG4gICAgdGhpcy5pbml0UGlja2VyKHZhbHVlKTtcbiAgfVxuXG4gIGluaXRQaWNrZXIoZGF0ZTogRGF0ZSkge1xuICAgIGlmICghZGF0ZSB8fCAhKGRhdGUgaW5zdGFuY2VvZiBEYXRlKSkge1xuICAgICAgdGhpcy5zZXREZWZhdWx0cygpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmN1cnJlbnRNb250aCA9IGRhdGUuZ2V0TW9udGgoKTtcbiAgICAgIHRoaXMuY3VycmVudFllYXIgPSBkYXRlLmdldEZ1bGxZZWFyKCk7XG4gICAgfVxuICAgIHRoaXMuX2Nkci5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIHNldERlZmF1bHRzKCkge1xuICAgIHRoaXMudG9kYXkgPSBuZXcgRGF0ZSgpO1xuICAgIHRoaXMuY3VycmVudE1vbnRoID0gbnVsbDtcbiAgICB0aGlzLmN1cnJlbnRZZWFyID0gbnVsbDtcbiAgfVxuXG4gIGNsZWFyUGlja2VyKCkge1xuICAgIHRoaXMudmFsdWUgPSBudWxsO1xuICB9XG5cbiAgb25DaGFuZ2UgPSAoXzogYW55KSA9PiB7fTtcblxuICBvblRvdWNoZWQgPSAoKSA9PiB7fTtcblxuICByZWdpc3Rlck9uQ2hhbmdlKGZuOiAoXzogYW55KSA9PiB2b2lkKTogdm9pZCB7XG4gICAgdGhpcy5vbkNoYW5nZSA9IGZuO1xuICB9XG5cbiAgcmVnaXN0ZXJPblRvdWNoZWQoZm46ICgpID0+IHZvaWQpOiB2b2lkIHtcbiAgICB0aGlzLm9uVG91Y2hlZCA9IGZuO1xuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgaWYgKCF0aGlzLm1pbkRhdGUgfHwgISh0aGlzLm1pbkRhdGUgaW5zdGFuY2VvZiBEYXRlKSkge1xuICAgICAgdGhpcy5taW5EYXRlID0gbmV3IERhdGUoJzE5MDAtMDEtMDFUMDA6MDA6MDBaJyk7XG4gICAgfVxuICAgIGlmICghdGhpcy5tYXhEYXRlIHx8ICEodGhpcy5tYXhEYXRlIGluc3RhbmNlb2YgRGF0ZSkpIHtcbiAgICAgIHRoaXMubWF4RGF0ZSA9IG5ldyBEYXRlKCcyMTAwLTEyLTMxVDAwOjAwOjAwWicpO1xuICAgIH1cbiAgICB0aGlzLmluaXRQaWNrZXIodGhpcy52YWx1ZSk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLl9hbGl2ZSA9IGZhbHNlO1xuICB9XG5cbiAgaXNNaW5JbnZhbGlkID0gKGRhdDogRGF0ZSk6IGJvb2xlYW4gPT4ge1xuICAgIGlmICghdGhpcy5taW5EYXRlIHx8ICEodGhpcy5taW5EYXRlIGluc3RhbmNlb2YgRGF0ZSkgfHwgIWRhdCkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICBjb25zdCBtaW4gPSBuZXcgRGF0ZShcbiAgICAgIHRoaXMubWluRGF0ZS5nZXRGdWxsWWVhcigpLFxuICAgICAgdGhpcy5taW5EYXRlLmdldE1vbnRoKCksXG4gICAgICAxXG4gICAgKTtcbiAgICByZXR1cm4gbWluLmdldFRpbWUoKSA+IGRhdC5nZXRUaW1lKCk7XG4gIH07XG5cbiAgaXNNYXhJbnZhbGlkID0gKGRhdDogRGF0ZSk6IGJvb2xlYW4gPT4ge1xuICAgIGlmICghdGhpcy5tYXhEYXRlIHx8ICEodGhpcy5tYXhEYXRlIGluc3RhbmNlb2YgRGF0ZSkgfHwgIWRhdCkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICBjb25zdCBtYXggPSBuZXcgRGF0ZShcbiAgICAgIHRoaXMubWF4RGF0ZS5nZXRGdWxsWWVhcigpLFxuICAgICAgdGhpcy5tYXhEYXRlLmdldE1vbnRoKCksXG4gICAgICAxXG4gICAgKTtcbiAgICByZXR1cm4gbWF4LmdldFRpbWUoKSA8IGRhdC5nZXRUaW1lKCk7XG4gIH07XG5cbiAgc2Nyb2xsTW9udGggPSAoZTogYW55KSA9PiB7XG4gICAgaWYgKHRoaXMuc2hvd1BpY2tlcikge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICBpZiAoIXRoaXMuX3ZhbHVlKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmICh0aGlzLmN1cnJlbnRZZWFyID09PSBudWxsIHx8IHRoaXMuY3VycmVudFllYXIgPT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhpcy5jdXJyZW50WWVhciA9IHRoaXMudG9kYXkuZ2V0RnVsbFllYXIoKTtcbiAgICB9XG4gICAgaWYgKHRoaXMuY3VycmVudE1vbnRoID09PSBudWxsIHx8IHRoaXMuY3VycmVudE1vbnRoID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHRoaXMuY3VycmVudE1vbnRoID0gdGhpcy50b2RheS5nZXRNb250aCgpO1xuICAgIH1cbiAgICBpZiAoZS5kZWx0YVkgPiAwKSB7XG4gICAgICBpZiAodGhpcy5jdXJyZW50TW9udGggPT09IDExKSB7XG4gICAgICAgIHRoaXMuY3VycmVudE1vbnRoID0gMDtcbiAgICAgICAgdGhpcy5jdXJyZW50WWVhcisrO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5jdXJyZW50TW9udGgrKztcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKHRoaXMuY3VycmVudE1vbnRoID09PSAwKSB7XG4gICAgICAgIHRoaXMuY3VycmVudE1vbnRoID0gMTE7XG4gICAgICAgIHRoaXMuY3VycmVudFllYXItLTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuY3VycmVudE1vbnRoLS07XG4gICAgICB9XG4gICAgfVxuICAgIGNvbnN0IG5ld0RhdGUgPSBuZXcgRGF0ZSh0aGlzLmN1cnJlbnRZZWFyLCB0aGlzLmN1cnJlbnRNb250aCwgMSwgMCwgMCwgMCk7XG4gICAgaWYgKCF0aGlzLmlzTWluSW52YWxpZChuZXdEYXRlKSAmJiAhdGhpcy5pc01heEludmFsaWQobmV3RGF0ZSkpIHtcbiAgICAgIHRoaXMudmFsdWUgPSBuZXdEYXRlO1xuICAgIH1cbiAgfTtcblxuICBzY3JvbGxZZWFyID0gKGU6IGFueSkgPT4ge1xuICAgIGlmICh0aGlzLnNob3dQaWNrZXIpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgaWYgKCF0aGlzLl92YWx1ZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAoIXRoaXMuY3VycmVudFllYXIpIHtcbiAgICAgIHRoaXMuY3VycmVudFllYXIgPSB0aGlzLnRvZGF5LmdldEZ1bGxZZWFyKCk7XG4gICAgfVxuICAgIGlmICghdGhpcy5jdXJyZW50TW9udGgpIHtcbiAgICAgIHRoaXMuY3VycmVudE1vbnRoID0gdGhpcy50b2RheS5nZXRNb250aCgpO1xuICAgIH1cbiAgICBpZiAoZS5kZWx0YVkgPiAwKSB7XG4gICAgICB0aGlzLmN1cnJlbnRZZWFyKys7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuY3VycmVudFllYXItLTtcbiAgICB9XG4gICAgY29uc3QgbmV3RGF0ZSA9IG5ldyBEYXRlKHRoaXMuY3VycmVudFllYXIsIHRoaXMuY3VycmVudE1vbnRoLCAxLCAwLCAwLCAwKTtcbiAgICBpZiAoIXRoaXMuaXNNaW5JbnZhbGlkKG5ld0RhdGUpICYmICF0aGlzLmlzTWF4SW52YWxpZChuZXdEYXRlKSkge1xuICAgICAgdGhpcy52YWx1ZSA9IG5ld0RhdGU7XG4gICAgfVxuICB9O1xuXG4gIHNldE1vbnRoID0gKG1vbnRoOiBudW1iZXIpID0+IHtcbiAgICB0aGlzLmN1cnJlbnRNb250aCA9IG1vbnRoO1xuICAgIGlmICghdGhpcy5jdXJyZW50WWVhcikge1xuICAgICAgdGhpcy5jdXJyZW50WWVhciA9IHRoaXMudG9kYXkuZ2V0RnVsbFllYXIoKTtcbiAgICB9XG4gICAgY29uc3QgbmV3RGF0ZSA9IG5ldyBEYXRlKHRoaXMuY3VycmVudFllYXIsIHRoaXMuY3VycmVudE1vbnRoLCAxLCAwLCAwLCAwKTtcbiAgICBpZiAoIXRoaXMuaXNNaW5JbnZhbGlkKG5ld0RhdGUpICYmICF0aGlzLmlzTWF4SW52YWxpZChuZXdEYXRlKSkge1xuICAgICAgdGhpcy52YWx1ZSA9IG5ld0RhdGU7XG4gICAgfVxuICB9O1xuXG4gIHNldFllYXIgPSAoeWVhcjogbnVtYmVyKSA9PiB7XG4gICAgdGhpcy5jdXJyZW50WWVhciA9IHllYXI7XG4gICAgaWYgKCF0aGlzLmN1cnJlbnRNb250aCkge1xuICAgICAgdGhpcy5jdXJyZW50TW9udGggPSB0aGlzLnRvZGF5LmdldE1vbnRoKCk7XG4gICAgfVxuICAgIGNvbnN0IG5ld0RhdGUgPSBuZXcgRGF0ZSh0aGlzLmN1cnJlbnRZZWFyLCB0aGlzLmN1cnJlbnRNb250aCwgMSwgMCwgMCwgMCk7XG4gICAgaWYgKCF0aGlzLmlzTWluSW52YWxpZChuZXdEYXRlKSAmJiAhdGhpcy5pc01heEludmFsaWQobmV3RGF0ZSkpIHtcbiAgICAgIHRoaXMudmFsdWUgPSBuZXdEYXRlO1xuICAgIH1cbiAgfTtcblxuICBzZXRUb2RheSA9ICgpID0+IHtcbiAgICBjb25zdCB0b2RheSA9IG5ldyBEYXRlKCk7XG4gICAgdGhpcy5jdXJyZW50WWVhciA9IHRvZGF5LmdldEZ1bGxZZWFyKCk7XG4gICAgdGhpcy5jdXJyZW50TW9udGggPSB0b2RheS5nZXRNb250aCgpO1xuICAgIHRoaXMudmFsdWUgPSBuZXcgRGF0ZSh0aGlzLmN1cnJlbnRZZWFyLCB0aGlzLmN1cnJlbnRNb250aCwgMSwgMCwgMCwgMCk7XG4gICAgdGhpcy5zaG93UGlja2VyID0gZmFsc2U7XG4gIH07XG5cbiAgc2V0TW9kZShtb2RlOiBEYXRlUGlja2VyTW9kZSkge1xuICAgIGxldCByZXN1bHQ6IERhdGVQaWNrZXJNb2RlO1xuICAgIGlmIChtb2RlID09PSB0aGlzLmRpc3BsYXlNb2RlIHx8IG1vZGUgPT09IERhdGVQaWNrZXJNb2RlLm1vbnRoKSB7XG4gICAgICByZXN1bHQgPSBEYXRlUGlja2VyTW9kZS5tb250aDtcbiAgICB9IGVsc2Uge1xuICAgICAgcmVzdWx0ID0gbW9kZTtcbiAgICB9XG4gICAgdGhpcy5kaXNwbGF5TW9kZSA9IHJlc3VsdDtcbiAgfVxufVxuIiwiPHRldGEtZHJvcGRvd25cbiAgY2xhc3M9XCJyb3cgcm93X2F1dG9cIlxuICBbYXBwZW5kVG9Cb2R5XT1cImFwcGVuZFRvQm9keVwiXG4gIFsob3BlbildPVwic2hvd1BpY2tlclwiXG4gIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiPlxuICA8ZGl2IHRldGFEcm9wZG93bkhlYWRcbiAgICAgICAod2hlZWwpPVwic2Nyb2xsTW9udGgoJGV2ZW50KVwiXG4gICAgICAgY2xhc3M9XCJkYXRlcGlja2VyLWhlYWQgZm9udC1ib2R5LTNcIj5cbiAgICA8dGV0YS1pY29uIFtuYW1lXT1cIidjYWxlbmRhcidcIiBjbGFzcz1cIm1hcmdpbi1yaWdodC0yXCI+PC90ZXRhLWljb24+XG4gICAgPGRpdiBjbGFzcz1cInJvd19hdXRvXCI+XG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiX3ZhbHVlICE9PW51bGwgJiYgX3ZhbHVlIT09dW5kZWZpbmVkXCI+XG4gICAgICAgIHt7bG9jYWxlLm1vbnRoTmFtZXNbX3ZhbHVlLmdldE1vbnRoKCldfX0ge3tfdmFsdWUuZ2V0RnVsbFllYXIoKX19XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8L2Rpdj5cbiAgICA8dGV0YS1pY29uIFtuYW1lXT1cIidjbG9zZUJpZydcIiAoY2xpY2spPVwiY2xlYXJQaWNrZXIoKVwiIGNsYXNzPVwibWFyZ2luLWxlZnQtMlwiPjwvdGV0YS1pY29uPlxuICA8L2Rpdj5cbiAgPGRpdiB0ZXRhRHJvcGRvd25Db250ZW50IGNsYXNzPVwiZGF0ZXBpY2tlci1ib2R5IHNjcm9sbGFibGUgcGFkZGluZy0zXCI+XG4gICAgPGRpdiBjbGFzcz1cInJvdyBhbGlnbi1jZW50ZXIganVzdGlmeS1jb250ZW50LWJldHdlZW5cIj5cbiAgICAgIDxkaXY+XG4gICAgICAgIDxidXR0b24gdGV0YS1idXR0b25cbiAgICAgICAgICAgICAgICBbcGFsZXR0ZV09XCIndGV4dCdcIlxuICAgICAgICAgICAgICAgIFt2aWV3XT1cImRpc3BsYXlNb2RlPT09ZGF0ZVBpY2tlck1vZGVFbnVtLm1vbnRoID8gJ3ByaW1hcnknIDogJ2dob3N0J1wiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cInNldE1vZGUoZGF0ZVBpY2tlck1vZGVFbnVtLm1vbnRoKVwiXG4gICAgICAgICAgICAgICAgKHdoZWVsKT1cInNjcm9sbE1vbnRoKCRldmVudCk7XCI+XG4gICAgICAgICAge3tsb2NhbGUubW9udGhOYW1lc1tfY3VycmVudE1vbnRoIHx8IHRvZGF5LmdldE1vbnRoKCldfX1cbiAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDxidXR0b24gdGV0YS1idXR0b25cbiAgICAgICAgICAgICAgICBjbGFzcz1cIm1hcmdpbi1sZWZ0LTJcIlxuICAgICAgICAgICAgICAgIFtwYWxldHRlXT1cIid0ZXh0J1wiXG4gICAgICAgICAgICAgICAgW3ZpZXddPVwiZGlzcGxheU1vZGU9PT1kYXRlUGlja2VyTW9kZUVudW0ueWVhciA/ICdwcmltYXJ5JyA6ICdnaG9zdCdcIlxuICAgICAgICAgICAgICAgIChjbGljayk9XCJzZXRNb2RlKGRhdGVQaWNrZXJNb2RlRW51bS55ZWFyKVwiXG4gICAgICAgICAgICAgICAgKHdoZWVsKT1cInNjcm9sbFllYXIoJGV2ZW50KTtcIj5cbiAgICAgICAgICB7e19jdXJyZW50WWVhciB8fCB0b2RheS5nZXRGdWxsWWVhcigpfX1cbiAgICAgICAgPC9idXR0b24+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxidXR0b24gdGV0YS1idXR0b25cbiAgICAgICAgICAgICAgW3BhbGV0dGVdPVwiJ3RleHQnXCJcbiAgICAgICAgICAgICAgW3ZpZXddPVwiJ2dob3N0J1wiXG4gICAgICAgICAgICAgIChjbGljayk9XCJzZXRUb2RheSgpXCI+XG4gICAgICAgIDx0ZXRhLWljb24gW25hbWVdPVwiJ2NhbGVuZGFyJ1wiPjwvdGV0YS1pY29uPlxuICAgICAgPC9idXR0b24+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cImRhdGVwaWNrZXItY29udGVudFwiPlxuICAgICAgPHRldGEteWVhci1zZWxlY3RcbiAgICAgICAgKm5nSWY9XCJkaXNwbGF5TW9kZSA9PT0gZGF0ZVBpY2tlck1vZGVFbnVtLnllYXJcIlxuICAgICAgICBbY3VycmVudFllYXJdPVwiX2N1cnJlbnRZZWFyXCJcbiAgICAgICAgW3RvZGF5XT1cInRvZGF5XCJcbiAgICAgICAgW3NpemVdPVwiOFwiXG4gICAgICAgIFttaW5EYXRlXT1cIm1pbkRhdGVcIlxuICAgICAgICBbbWF4RGF0ZV09XCJtYXhEYXRlXCJcbiAgICAgICAgKHllYXJTZWxlY3RlZCk9XCJzZXRZZWFyKCRldmVudClcIj5cbiAgICAgIDwvdGV0YS15ZWFyLXNlbGVjdD5cbiAgICAgIDx0ZXRhLW1vbnRoLXNlbGVjdFxuICAgICAgICAqbmdJZj1cImRpc3BsYXlNb2RlID09PSBkYXRlUGlja2VyTW9kZUVudW0ubW9udGhcIlxuICAgICAgICBbY3VycmVudE1vbnRoXT1cIl9jdXJyZW50TW9udGhcIlxuICAgICAgICBbbG9jYWxlXT1cImxvY2FsZVwiXG4gICAgICAgIFtjdXJyZW50WWVhcl09XCJfY3VycmVudFllYXJcIlxuICAgICAgICBbbWluRGF0ZV09XCJtaW5EYXRlXCJcbiAgICAgICAgW21heERhdGVdPVwibWF4RGF0ZVwiXG4gICAgICAgIChtb250aFNlbGVjdGVkKT1cInNldE1vbnRoKCRldmVudClcIj5cbiAgICAgIDwvdGV0YS1tb250aC1zZWxlY3Q+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC90ZXRhLWRyb3Bkb3duPlxuIl19
|