ngx-tethys 18.1.1 → 18.2.0-next.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +36 -0
- package/alert/styles/mixin.scss +1 -1
- package/anchor/style/anchor.scss +4 -2
- package/autocomplete/autocomplete.component.d.ts +2 -1
- package/avatar/styles/avatar.scss +1 -1
- package/back-top/styles/back-top.scss +3 -3
- package/button/styles/button-group.scss +9 -9
- package/button/styles/button.scss +2 -6
- package/button/styles/mixin.scss +6 -53
- package/calendar/calendar-header.component.d.ts +2 -0
- package/calendar/styles/calendar.scss +3 -11
- package/card/styles/card.scss +3 -3
- package/carousel/styles/carousel.scss +10 -10
- package/cascader/cascader.component.d.ts +1 -0
- package/cascader/styles/cascader.scss +3 -2
- package/collapse/styles/collapse.scss +4 -2
- package/color-picker/color-picker-panel.component.d.ts +3 -1
- package/color-picker/styles/alpha.scss +1 -1
- package/color-picker/styles/color-picker-panel.scss +1 -1
- package/color-picker/styles/hue.scss +1 -1
- package/color-picker/styles/saturation.scss +1 -1
- package/comment/styles/mixin.scss +1 -1
- package/copy/copy.directive.d.ts +1 -0
- package/core/index.d.ts +1 -0
- package/core/theme/index.d.ts +2 -0
- package/core/theme/store.d.ts +12 -0
- package/core/theme/theme.d.ts +5 -0
- package/date-picker/abstract-picker.component.d.ts +3 -1
- package/date-picker/date-helper.service.d.ts +3 -0
- package/date-picker/date-picker.config.d.ts +7 -1
- package/date-picker/lib/calendar/calendar-footer.component.d.ts +3 -1
- package/date-picker/lib/calendar/calendar-header.component.d.ts +3 -1
- package/date-picker/lib/calendar/calendar-table.component.d.ts +3 -1
- package/date-picker/lib/date-carousel/date-carousel.component.d.ts +4 -1
- package/date-picker/lib/popups/date-popup.component.d.ts +3 -1
- package/date-picker/lib/popups/inner-popup.component.d.ts +3 -1
- package/date-picker/styles/calendar.scss +1 -1
- package/date-picker/styles/decade-panel.scss +1 -1
- package/date-picker/styles/picker.scss +1 -1
- package/date-picker/styles/range-picker.scss +3 -3
- package/date-picker/styles/year-panel.scss +2 -2
- package/date-range/date-range.component.d.ts +2 -0
- package/date-range/optional-dates/optional-dates.component.d.ts +1 -0
- package/dialog/confirm/confirm.component.d.ts +1 -0
- package/dialog/confirm.config.d.ts +14 -7
- package/dialog/styles/dialog.scss +6 -6
- package/dropdown/styles/dropdown.scss +3 -3
- package/empty/empty.component.d.ts +14 -9
- package/empty/empty.config.d.ts +3 -0
- package/empty/styles/empty.scss +22 -2
- package/esm2022/autocomplete/autocomplete.component.mjs +5 -3
- package/esm2022/calendar/calendar-header.component.mjs +9 -5
- package/esm2022/carousel/carousel.component.mjs +3 -3
- package/esm2022/cascader/cascader.component.mjs +5 -3
- package/esm2022/checkbox/checkbox.component.mjs +1 -1
- package/esm2022/color-picker/color-picker-panel.component.mjs +5 -3
- package/esm2022/copy/copy.directive.mjs +7 -5
- package/esm2022/core/index.mjs +2 -1
- package/esm2022/core/theme/index.mjs +3 -0
- package/esm2022/core/theme/store.mjs +42 -0
- package/esm2022/core/theme/theme.mjs +2 -0
- package/esm2022/date-picker/abstract-picker.component.mjs +4 -2
- package/esm2022/date-picker/base-picker.component.mjs +2 -2
- package/esm2022/date-picker/date-helper.service.mjs +4 -2
- package/esm2022/date-picker/date-picker.component.mjs +1 -1
- package/esm2022/date-picker/date-picker.config.mjs +55 -2
- package/esm2022/date-picker/date-picker.directive.mjs +1 -1
- package/esm2022/date-picker/date-picker.service.mjs +3 -3
- package/esm2022/date-picker/lib/calendar/calendar-footer.component.mjs +5 -3
- package/esm2022/date-picker/lib/calendar/calendar-header.component.mjs +3 -1
- package/esm2022/date-picker/lib/calendar/calendar-table.component.mjs +3 -1
- package/esm2022/date-picker/lib/date/date-header.component.mjs +6 -5
- package/esm2022/date-picker/lib/date/date-table.component.mjs +4 -4
- package/esm2022/date-picker/lib/date-carousel/date-carousel.component.mjs +9 -4
- package/esm2022/date-picker/lib/decade/decade-header.component.mjs +3 -3
- package/esm2022/date-picker/lib/month/month-header.component.mjs +4 -4
- package/esm2022/date-picker/lib/month/month-table.component.mjs +3 -2
- package/esm2022/date-picker/lib/popups/date-popup.component.mjs +5 -3
- package/esm2022/date-picker/lib/popups/inner-popup.component.mjs +5 -3
- package/esm2022/date-picker/lib/year/year-header.component.mjs +3 -3
- package/esm2022/date-picker/month-picker.component.mjs +1 -1
- package/esm2022/date-picker/quarter-picker.component.mjs +1 -1
- package/esm2022/date-picker/range-picker.component.mjs +1 -1
- package/esm2022/date-picker/range-picker.directive.mjs +1 -1
- package/esm2022/date-picker/week-picker.component.mjs +1 -1
- package/esm2022/date-picker/year-picker.component.mjs +1 -1
- package/esm2022/date-range/date-range.component.mjs +7 -4
- package/esm2022/date-range/optional-dates/optional-dates.component.mjs +4 -2
- package/esm2022/dialog/confirm/confirm.component.mjs +14 -3
- package/esm2022/dialog/confirm.config.mjs +17 -2
- package/esm2022/empty/empty.component.mjs +7 -2
- package/esm2022/empty/empty.config.mjs +4 -1
- package/esm2022/empty/svgs.mjs +103 -8
- package/esm2022/form/form-validator-loader.mjs +17 -15
- package/esm2022/guider/guider-hint/guider-hint.component.mjs +5 -3
- package/esm2022/i18n/i18n.mjs +2 -0
- package/esm2022/i18n/i18n.service.mjs +39 -0
- package/esm2022/i18n/i18n.token.mjs +8 -0
- package/esm2022/i18n/index.mjs +7 -0
- package/esm2022/i18n/locale.mjs +14 -0
- package/esm2022/i18n/locales/en-us.mjs +147 -0
- package/esm2022/i18n/locales/zh-cn.mjs +127 -0
- package/esm2022/i18n/ngx-tethys-i18n.mjs +5 -0
- package/esm2022/notify/notify.component.mjs +3 -3
- package/esm2022/pagination/pagination.component.mjs +22 -5
- package/esm2022/pagination/pagination.module.mjs +26 -5
- package/esm2022/pagination/pagination.pipe.mjs +22 -1
- package/esm2022/radio/button/radio-button.component.mjs +1 -1
- package/esm2022/radio/radio.component.mjs +1 -1
- package/esm2022/result/result.component.mjs +3 -3
- package/esm2022/select/custom-select/custom-select.component.mjs +9 -3
- package/esm2022/strength/strength.component.mjs +21 -20
- package/esm2022/table/table-skeleton.component.mjs +3 -3
- package/esm2022/time-picker/time-picker-panel.component.mjs +5 -3
- package/esm2022/time-picker/time-picker.component.mjs +4 -2
- package/esm2022/transfer/transfer-list.component.mjs +5 -3
- package/esm2022/tree-select/tree-select.component.mjs +5 -3
- package/esm2022/version.mjs +2 -2
- package/esm2022/watermark/config.mjs +2 -2
- package/esm2022/watermark/watermark.directive.mjs +18 -10
- package/fesm2022/ngx-tethys-autocomplete.mjs +4 -2
- package/fesm2022/ngx-tethys-autocomplete.mjs.map +1 -1
- package/fesm2022/ngx-tethys-calendar.mjs +8 -5
- package/fesm2022/ngx-tethys-calendar.mjs.map +1 -1
- package/fesm2022/ngx-tethys-carousel.mjs +2 -2
- package/fesm2022/ngx-tethys-carousel.mjs.map +1 -1
- package/fesm2022/ngx-tethys-cascader.mjs +4 -2
- package/fesm2022/ngx-tethys-cascader.mjs.map +1 -1
- package/fesm2022/ngx-tethys-checkbox.mjs.map +1 -1
- package/fesm2022/ngx-tethys-color-picker.mjs +4 -2
- package/fesm2022/ngx-tethys-color-picker.mjs.map +1 -1
- package/fesm2022/ngx-tethys-copy.mjs +6 -4
- package/fesm2022/ngx-tethys-copy.mjs.map +1 -1
- package/fesm2022/ngx-tethys-core.mjs +42 -2
- package/fesm2022/ngx-tethys-core.mjs.map +1 -1
- package/fesm2022/ngx-tethys-date-picker.mjs +95 -30
- package/fesm2022/ngx-tethys-date-picker.mjs.map +1 -1
- package/fesm2022/ngx-tethys-date-range.mjs +8 -4
- package/fesm2022/ngx-tethys-date-range.mjs.map +1 -1
- package/fesm2022/ngx-tethys-dialog.mjs +27 -2
- package/fesm2022/ngx-tethys-dialog.mjs.map +1 -1
- package/fesm2022/ngx-tethys-empty.mjs +111 -8
- package/fesm2022/ngx-tethys-empty.mjs.map +1 -1
- package/fesm2022/ngx-tethys-form.mjs +16 -14
- package/fesm2022/ngx-tethys-form.mjs.map +1 -1
- package/fesm2022/ngx-tethys-guider.mjs +4 -2
- package/fesm2022/ngx-tethys-guider.mjs.map +1 -1
- package/fesm2022/ngx-tethys-i18n.mjs +338 -0
- package/fesm2022/ngx-tethys-i18n.mjs.map +1 -0
- package/fesm2022/ngx-tethys-notify.mjs +2 -2
- package/fesm2022/ngx-tethys-notify.mjs.map +1 -1
- package/fesm2022/ngx-tethys-pagination.mjs +66 -7
- package/fesm2022/ngx-tethys-pagination.mjs.map +1 -1
- package/fesm2022/ngx-tethys-radio.mjs.map +1 -1
- package/fesm2022/ngx-tethys-result.mjs +2 -2
- package/fesm2022/ngx-tethys-result.mjs.map +1 -1
- package/fesm2022/ngx-tethys-select.mjs +8 -2
- package/fesm2022/ngx-tethys-select.mjs.map +1 -1
- package/fesm2022/ngx-tethys-strength.mjs +20 -19
- package/fesm2022/ngx-tethys-strength.mjs.map +1 -1
- package/fesm2022/ngx-tethys-table.mjs +2 -2
- package/fesm2022/ngx-tethys-table.mjs.map +1 -1
- package/fesm2022/ngx-tethys-time-picker.mjs +6 -3
- package/fesm2022/ngx-tethys-time-picker.mjs.map +1 -1
- package/fesm2022/ngx-tethys-transfer.mjs +4 -2
- package/fesm2022/ngx-tethys-transfer.mjs.map +1 -1
- package/fesm2022/ngx-tethys-tree-select.mjs +4 -2
- package/fesm2022/ngx-tethys-tree-select.mjs.map +1 -1
- package/fesm2022/ngx-tethys-watermark.mjs +18 -10
- package/fesm2022/ngx-tethys-watermark.mjs.map +1 -1
- package/fesm2022/ngx-tethys.mjs +1 -1
- package/fesm2022/ngx-tethys.mjs.map +1 -1
- package/form/form-validator-loader.d.ts +2 -0
- package/form/styles/form-check.scss +1 -1
- package/form/styles/forms.scss +2 -3
- package/form/styles/mixin.scss +6 -5
- package/guider/guider-hint/guider-hint.component.d.ts +3 -1
- package/guider/styles/guider-tip.scss +2 -1
- package/i18n/i18n.d.ts +143 -0
- package/i18n/i18n.service.d.ts +19 -0
- package/i18n/i18n.token.d.ts +5 -0
- package/i18n/index.d.ts +6 -0
- package/i18n/locale.d.ts +4 -0
- package/i18n/locales/en-us.d.ts +147 -0
- package/i18n/locales/zh-cn.d.ts +126 -0
- package/icon/examples/all/all.component.scss +3 -1
- package/image/styles/image.scss +15 -11
- package/input/styles/input-group.scss +1 -1
- package/input/styles/input.scss +2 -2
- package/layout/examples/sidebar/sidebar.component.scss +1 -1
- package/layout/styles/layout.scss +3 -3
- package/menu/examples/theme/theme.component.scss +0 -8
- package/menu/styles/theme.scss +4 -4
- package/message/styles/message.scss +1 -1
- package/nav/examples/basic/basic.component.scss +1 -1
- package/nav/examples/extra/extra.component.scss +1 -1
- package/nav/examples/fill/fill.component.scss +1 -1
- package/nav/examples/lite/lite.component.scss +1 -1
- package/nav/examples/pills/pills.component.scss +1 -1
- package/nav/examples/responsive/responsive.component.scss +1 -1
- package/nav/examples/size/size.component.scss +1 -1
- package/nav/examples/tabs/tabs.component.scss +1 -1
- package/nav/examples/type/type.component.scss +1 -1
- package/nav/examples/vertical/vertical.component.scss +1 -1
- package/notify/styles/notify.scss +4 -4
- package/package.json +7 -1
- package/pagination/pagination.component.d.ts +4 -1
- package/pagination/pagination.module.d.ts +1 -1
- package/pagination/pagination.pipe.d.ts +6 -0
- package/pagination/styles/pagination.scss +2 -2
- package/popover/styles.scss +3 -3
- package/property/styles/properties.scss +1 -1
- package/radio/radio.component.d.ts +0 -2
- package/resizable/examples/line/line.component.scss +3 -1
- package/resizable/examples/style.scss +7 -5
- package/result/styles/result.scss +25 -1
- package/schematics/version.d.ts +1 -1
- package/schematics/version.js +1 -1
- package/segment/styles/mixin.scss +2 -3
- package/segment/styles/segment.scss +1 -1
- package/select/custom-select/custom-select.component.d.ts +1 -0
- package/select/styles/select.scss +1 -1
- package/shared/option/styles/option.mixin.scss +1 -1
- package/shared/select/styles/select.mixin.scss +2 -2
- package/slide/examples/drawer-container/drawer-container.component.scss +1 -1
- package/slide/examples/layout/layout.component.scss +4 -2
- package/slide/styles/slide.scss +3 -2
- package/slider/slider.scss +2 -2
- package/stepper/examples/basic/basic.component.scss +3 -1
- package/stepper/examples/icon/icon.component.scss +3 -1
- package/stepper/styles/stepper.scss +7 -3
- package/strength/strength.component.d.ts +21 -2
- package/styles/bootstrap/_variables.scss +14 -876
- package/styles/bootstrap/utilities/_background.scss +27 -5
- package/styles/bootstrap/utilities/_text.scss +29 -31
- package/styles/index.scss +2 -1
- package/styles/mixins/background-variant.scss +2 -10
- package/styles/mixins/utilities.scss +2 -11
- package/styles/modules/cdk/drag-drop.scss +6 -8
- package/styles/modules/close.scss +1 -1
- package/styles/modules/reboot.scss +1 -1
- package/styles/modules/tables.scss +1 -1
- package/styles/modules/utils.scss +0 -17
- package/styles/theme/dark.scss +70 -0
- package/styles/theme/default.scss +70 -0
- package/styles/theme/index.scss +2 -0
- package/styles/variables.scss +114 -76
- package/switch/styles/mixin.scss +0 -13
- package/table/styles/table.scss +7 -19
- package/tabs/styles/tabs.scss +1 -1
- package/tag/styles/mixin.scss +7 -42
- package/tag/styles/tag.scss +2 -2
- package/time-picker/styles/time-panel.scss +1 -1
- package/time-picker/time-picker-panel.component.d.ts +3 -1
- package/time-picker/time-picker.component.d.ts +3 -1
- package/timeline/styles/timeline.scss +2 -2
- package/tooltip/styles.scss +4 -4
- package/transfer/styles/transfer.scss +2 -2
- package/transfer/transfer-list.component.d.ts +3 -1
- package/tree/styles/tree.scss +3 -5
- package/tree-select/tree-select.component.d.ts +1 -0
- package/watermark/config.d.ts +1 -1
- package/watermark/watermark.directive.d.ts +23 -2
- package/carousel/styles/index.scss +0 -1
- package/carousel/styles/variables.scss +0 -5
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
import { EventEmitter, OnInit, OnChanges, SimpleChanges } from '@angular/core';
|
|
1
|
+
import { EventEmitter, OnInit, OnChanges, SimpleChanges, Signal } from '@angular/core';
|
|
2
2
|
import { TinyDate } from 'ngx-tethys/util';
|
|
3
|
+
import { ThyDatePickerLocale } from 'ngx-tethys/i18n';
|
|
3
4
|
import * as i0 from "@angular/core";
|
|
4
5
|
/**
|
|
5
6
|
* @private
|
|
@@ -15,6 +16,7 @@ export declare class CalendarFooter implements OnInit, OnChanges {
|
|
|
15
16
|
readonly showTimePickerChange: EventEmitter<boolean>;
|
|
16
17
|
isShowTime: boolean;
|
|
17
18
|
isCanTime: boolean;
|
|
19
|
+
locale: Signal<ThyDatePickerLocale>;
|
|
18
20
|
ngOnInit(): void;
|
|
19
21
|
ngOnChanges(changes: SimpleChanges): void;
|
|
20
22
|
onSelectTime(date: Date): void;
|
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
import { EventEmitter, OnChanges, OnInit, SimpleChanges } from '@angular/core';
|
|
1
|
+
import { EventEmitter, OnChanges, OnInit, Signal, SimpleChanges } from '@angular/core';
|
|
2
2
|
import { ThyPanelMode } from '../../standard-types';
|
|
3
3
|
import { TinyDate } from 'ngx-tethys/util';
|
|
4
4
|
import { DateHelperService } from '../../date-helper.service';
|
|
5
|
+
import { ThyDatePickerLocale } from 'ngx-tethys/i18n';
|
|
5
6
|
import * as i0 from "@angular/core";
|
|
6
7
|
export interface PanelSelector {
|
|
7
8
|
className: string;
|
|
@@ -14,6 +15,7 @@ export interface PanelSelector {
|
|
|
14
15
|
*/
|
|
15
16
|
export declare abstract class CalendarHeader implements OnInit, OnChanges {
|
|
16
17
|
dateHelper: DateHelperService;
|
|
18
|
+
locale: Signal<ThyDatePickerLocale>;
|
|
17
19
|
showSuperPreBtn: boolean;
|
|
18
20
|
showSuperNextBtn: boolean;
|
|
19
21
|
showPreBtn: boolean;
|
|
@@ -1,12 +1,14 @@
|
|
|
1
|
-
import { EventEmitter, OnChanges, OnInit, SimpleChanges, TemplateRef } from '@angular/core';
|
|
1
|
+
import { EventEmitter, OnChanges, OnInit, Signal, SimpleChanges, TemplateRef } from '@angular/core';
|
|
2
2
|
import { SafeAny } from 'ngx-tethys/types';
|
|
3
3
|
import { FunctionProp, isTemplateRef, TinyDate } from 'ngx-tethys/util';
|
|
4
4
|
import { DateCell, DateBodyRow } from '../date/types';
|
|
5
|
+
import { ThyDatePickerLocale } from 'ngx-tethys/i18n';
|
|
5
6
|
import * as i0 from "@angular/core";
|
|
6
7
|
/**
|
|
7
8
|
* @private
|
|
8
9
|
*/
|
|
9
10
|
export declare abstract class CalendarTable implements OnInit, OnChanges {
|
|
11
|
+
locale: Signal<ThyDatePickerLocale>;
|
|
10
12
|
isTemplateRef: typeof isTemplateRef;
|
|
11
13
|
headRow: DateCell[];
|
|
12
14
|
bodyRows: DateBodyRow[];
|
|
@@ -1,14 +1,17 @@
|
|
|
1
|
-
import { OnDestroy, OnInit } from '@angular/core';
|
|
1
|
+
import { OnDestroy, OnInit, Signal } from '@angular/core';
|
|
2
2
|
import { ControlValueAccessor } from '@angular/forms';
|
|
3
3
|
import { TinyDate } from 'ngx-tethys/util';
|
|
4
4
|
import { AdvancedSelectableCell, RangeAdvancedValue } from '../../inner-types';
|
|
5
5
|
import { ThyDateGranularity } from '../../standard-types';
|
|
6
|
+
import { ThyDatePickerLocale } from 'ngx-tethys/i18n';
|
|
6
7
|
import * as i0 from "@angular/core";
|
|
7
8
|
/**
|
|
8
9
|
* @private
|
|
9
10
|
*/
|
|
10
11
|
export declare class DateCarousel implements OnInit, ControlValueAccessor, OnDestroy {
|
|
11
12
|
private cdr;
|
|
13
|
+
private dateHelper;
|
|
14
|
+
locale: Signal<ThyDatePickerLocale>;
|
|
12
15
|
className: string;
|
|
13
16
|
activeDate: TinyDate;
|
|
14
17
|
set defaultValue(value: RangeAdvancedValue);
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { FunctionProp, TinyDate } from 'ngx-tethys/util';
|
|
2
|
-
import { EventEmitter, OnChanges, OnInit, SimpleChanges, TemplateRef } from '@angular/core';
|
|
2
|
+
import { EventEmitter, OnChanges, OnInit, SimpleChanges, TemplateRef, Signal } from '@angular/core';
|
|
3
3
|
import { CompatibleValue, DatePickerFlexibleTab, RangeAdvancedValue, RangePartType } from '../../inner-types';
|
|
4
4
|
import { CompatibleDate, CompatiblePresets, DisabledDateFn, SupportTimeOptions, ThyDateChangeEvent, ThyDateGranularity, ThyPanelMode, ThyShortcutPosition, ThyShortcutPreset } from '../../standard-types';
|
|
5
|
+
import { ThyDatePickerLocale } from 'ngx-tethys/i18n';
|
|
5
6
|
import * as i0 from "@angular/core";
|
|
6
7
|
/**
|
|
7
8
|
* @private
|
|
@@ -9,6 +10,7 @@ import * as i0 from "@angular/core";
|
|
|
9
10
|
export declare class DatePopup implements OnChanges, OnInit {
|
|
10
11
|
private cdr;
|
|
11
12
|
private datePickerConfigService;
|
|
13
|
+
locale: Signal<ThyDatePickerLocale>;
|
|
12
14
|
isRange: boolean;
|
|
13
15
|
showWeek: boolean;
|
|
14
16
|
format: string;
|
|
@@ -1,13 +1,15 @@
|
|
|
1
|
-
import { EventEmitter, OnChanges, SimpleChanges, TemplateRef } from '@angular/core';
|
|
1
|
+
import { EventEmitter, OnChanges, Signal, SimpleChanges, TemplateRef } from '@angular/core';
|
|
2
2
|
import { FunctionProp, TinyDate } from 'ngx-tethys/util';
|
|
3
3
|
import { RangePartType } from '../../inner-types';
|
|
4
4
|
import { DisabledDateFn, ThyPanelMode } from '../../standard-types';
|
|
5
|
+
import { ThyDatePickerLocale } from 'ngx-tethys/i18n';
|
|
5
6
|
import * as i0 from "@angular/core";
|
|
6
7
|
/**
|
|
7
8
|
* @private
|
|
8
9
|
*/
|
|
9
10
|
export declare class InnerPopup implements OnChanges {
|
|
10
11
|
private dateHelper;
|
|
12
|
+
locale: Signal<ThyDatePickerLocale>;
|
|
11
13
|
className: boolean;
|
|
12
14
|
_showDateRangeInput: boolean;
|
|
13
15
|
showWeek: boolean;
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
line-height: variables.$line-height-base;
|
|
10
10
|
text-align: left;
|
|
11
11
|
list-style: none;
|
|
12
|
-
background-color: variables.$
|
|
12
|
+
background-color: variables.$bg-panel;
|
|
13
13
|
background-clip: padding-box;
|
|
14
14
|
border: style.$border-width-base style.$border-style-base variables.$border-color;
|
|
15
15
|
border-radius: variables.$border-radius-lg;
|
|
@@ -120,10 +120,10 @@ $input-box-height: 34px;
|
|
|
120
120
|
padding-left: 0;
|
|
121
121
|
line-height: bootstrap-variables.$input-height-sm;
|
|
122
122
|
border: 0;
|
|
123
|
-
box-shadow: none;
|
|
123
|
+
box-shadow: variables.$box-shadow-none;
|
|
124
124
|
|
|
125
125
|
&:focus {
|
|
126
|
-
box-shadow: none;
|
|
126
|
+
box-shadow: variables.$box-shadow-none;
|
|
127
127
|
}
|
|
128
128
|
}
|
|
129
129
|
|
|
@@ -213,7 +213,7 @@ $input-box-height: 34px;
|
|
|
213
213
|
&-combobox {
|
|
214
214
|
display: inline-block;
|
|
215
215
|
height: 100%;
|
|
216
|
-
background-color: variables.$
|
|
216
|
+
background-color: variables.$bg-default;
|
|
217
217
|
border-top: style.$border-width-base style.$border-style-base style.$border-color-split;
|
|
218
218
|
}
|
|
219
219
|
&-select {
|
|
@@ -9,12 +9,12 @@
|
|
|
9
9
|
bottom: 0;
|
|
10
10
|
left: 0;
|
|
11
11
|
z-index: style.$zindex-picker-panel;
|
|
12
|
-
background: variables.$
|
|
12
|
+
background: variables.$bg-default;
|
|
13
13
|
border-radius: variables.$border-radius-lg;
|
|
14
14
|
outline: none;
|
|
15
15
|
display: flex;
|
|
16
16
|
flex-direction: column;
|
|
17
|
-
background: variables.$
|
|
17
|
+
background: variables.$bg-default;
|
|
18
18
|
}
|
|
19
19
|
|
|
20
20
|
.#{style.$calendar-prefix-cls}-year-panel-hidden {
|
|
@@ -10,6 +10,7 @@ import * as i0 from "@angular/core";
|
|
|
10
10
|
export declare class ThyDateRange implements OnInit, ControlValueAccessor {
|
|
11
11
|
private thyPopover;
|
|
12
12
|
private cdr;
|
|
13
|
+
private locale;
|
|
13
14
|
/**
|
|
14
15
|
* 自定义可选值列表项
|
|
15
16
|
* @type DateRangeItemInfo[]
|
|
@@ -27,6 +28,7 @@ export declare class ThyDateRange implements OnInit, ControlValueAccessor {
|
|
|
27
28
|
thyDisabledSwitch: boolean;
|
|
28
29
|
/**
|
|
29
30
|
* 自定义日期选择的展示文字
|
|
31
|
+
* @default 自定义
|
|
30
32
|
*/
|
|
31
33
|
thyCustomTextValue: string;
|
|
32
34
|
/**
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { InjectionToken } from '@angular/core';
|
|
2
2
|
import { ThyFormGroupFooterAlign } from 'ngx-tethys/form';
|
|
3
|
+
import { ThyI18nService } from 'ngx-tethys/i18n';
|
|
3
4
|
import { Observable } from 'rxjs';
|
|
4
5
|
/**
|
|
5
6
|
* 确认框配置
|
|
@@ -45,6 +46,9 @@ export interface ThyConfirmConfig {
|
|
|
45
46
|
onCancel?: () => void;
|
|
46
47
|
}
|
|
47
48
|
export declare const THY_CONFIRM_DEFAULT_OPTIONS: InjectionToken<ThyConfirmConfig>;
|
|
49
|
+
/**
|
|
50
|
+
* @deprecated
|
|
51
|
+
*/
|
|
48
52
|
export declare const THY_CONFIRM_DEFAULT_OPTIONS_VALUE: {
|
|
49
53
|
title: string;
|
|
50
54
|
okText: string;
|
|
@@ -52,13 +56,16 @@ export declare const THY_CONFIRM_DEFAULT_OPTIONS_VALUE: {
|
|
|
52
56
|
cancelText: string;
|
|
53
57
|
footerAlign: string;
|
|
54
58
|
};
|
|
59
|
+
declare function useConfirmDefaultOptions(): {
|
|
60
|
+
title: string;
|
|
61
|
+
okText: string;
|
|
62
|
+
okType: string;
|
|
63
|
+
cancelText: string;
|
|
64
|
+
footerAlign: string;
|
|
65
|
+
};
|
|
55
66
|
export declare const THY_CONFIRM_DEFAULT_OPTIONS_PROVIDER: {
|
|
56
67
|
provide: InjectionToken<ThyConfirmConfig>;
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
okText: string;
|
|
60
|
-
okType: string;
|
|
61
|
-
cancelText: string;
|
|
62
|
-
footerAlign: string;
|
|
63
|
-
};
|
|
68
|
+
useFactory: typeof useConfirmDefaultOptions;
|
|
69
|
+
deps: (typeof ThyI18nService)[];
|
|
64
70
|
};
|
|
71
|
+
export {};
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
@use
|
|
2
|
-
@use
|
|
3
|
-
@use
|
|
4
|
-
@use
|
|
5
|
-
@use
|
|
1
|
+
@use '../../styles/bootstrap/mixins/border-radius';
|
|
2
|
+
@use '../../styles/bootstrap/mixins/breakpoints';
|
|
3
|
+
@use '../../styles/bootstrap/mixins/text-truncate';
|
|
4
|
+
@use '../../styles/variables';
|
|
5
|
+
@use '../../styles/modules/utils.scss';
|
|
6
6
|
|
|
7
7
|
.thy-dialog-content-sidebar-header {
|
|
8
8
|
min-height: variables.$dialog-header-height;
|
|
@@ -26,7 +26,7 @@
|
|
|
26
26
|
// isn't set, we have to inherit the min and max values explicitly.
|
|
27
27
|
min-height: inherit;
|
|
28
28
|
max-height: inherit;
|
|
29
|
-
background: variables.$
|
|
29
|
+
background: variables.$bg-default;
|
|
30
30
|
box-shadow: variables.$dialog-box-shadow;
|
|
31
31
|
|
|
32
32
|
.thy-layout {
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
padding: variables.$dropdown-menu-padding-y 0;
|
|
7
7
|
display: block;
|
|
8
8
|
width: 100%;
|
|
9
|
-
background: variables.$
|
|
9
|
+
background: variables.$bg-panel;
|
|
10
10
|
border-radius: variables.$border-radius;
|
|
11
11
|
|
|
12
12
|
.dropdown-menu-group {
|
|
@@ -96,7 +96,7 @@
|
|
|
96
96
|
z-index: 1;
|
|
97
97
|
padding: 8px 0;
|
|
98
98
|
width: 100%;
|
|
99
|
-
background: variables.$
|
|
99
|
+
background: variables.$bg-panel;
|
|
100
100
|
border-radius: variables.$border-radius;
|
|
101
101
|
@include shadow.section-box-shadow();
|
|
102
102
|
}
|
|
@@ -199,7 +199,7 @@
|
|
|
199
199
|
margin-left: -15px;
|
|
200
200
|
padding-right: 10px;
|
|
201
201
|
color: variables.$dropdown-menu-divider-title-color;
|
|
202
|
-
background: variables.$
|
|
202
|
+
background: variables.$bg-default;
|
|
203
203
|
transform: translateY(-50%);
|
|
204
204
|
}
|
|
205
205
|
}
|
|
@@ -16,24 +16,30 @@ export declare class ThyEmpty implements OnInit, AfterViewInit, OnChanges {
|
|
|
16
16
|
private elementRef;
|
|
17
17
|
private ngZone;
|
|
18
18
|
private sanitizer;
|
|
19
|
+
private locale;
|
|
19
20
|
/**
|
|
20
21
|
* 显示文本提示信息。同时传入 thyMessage,thyTranslationKey,thyEntityName,thyEntityNameTranslateKey 时优先级最高
|
|
22
|
+
* @default 暂无数据
|
|
21
23
|
*/
|
|
22
24
|
thyMessage: string;
|
|
23
25
|
/**
|
|
24
|
-
*
|
|
26
|
+
* 已废弃。显示文本提示信息多语言 Key。同时传入 thyTranslationKey,thyEntityName,thyEntityNameTranslateKey 时优先级最高
|
|
27
|
+
* @deprecated
|
|
25
28
|
*/
|
|
26
29
|
thyTranslationKey: string;
|
|
27
30
|
/**
|
|
28
|
-
*
|
|
31
|
+
* 已废弃。显示文本提示信息多语言 Key 的 Values。传入 thyTranslationKey 后,传入这个才会生效
|
|
32
|
+
* @deprecated
|
|
29
33
|
*/
|
|
30
34
|
thyTranslationValues: any;
|
|
31
35
|
/**
|
|
32
|
-
*
|
|
36
|
+
* 已废弃。显示默认提示信息,替换默认提示信息的目标对象,比如:没有 {thyEntityName}。同时传入 thyEntityName,thyEntityNameTranslateKey 时优先级较高
|
|
37
|
+
* @deprecated
|
|
33
38
|
*/
|
|
34
39
|
thyEntityName: string;
|
|
35
40
|
/**
|
|
36
|
-
* thyEntityName 的多语言 Key。thyMessage,thyTranslationKey,thyEntityName 均未传入时才会生效
|
|
41
|
+
* 已废弃。thyEntityName 的多语言 Key。thyMessage,thyTranslationKey,thyEntityName 均未传入时才会生效
|
|
42
|
+
* @deprecated
|
|
37
43
|
*/
|
|
38
44
|
thyEntityNameTranslateKey: string;
|
|
39
45
|
/**
|
|
@@ -87,9 +93,8 @@ export declare class ThyEmpty implements OnInit, AfterViewInit, OnChanges {
|
|
|
87
93
|
setPresetSvg(icon: string): void;
|
|
88
94
|
static ɵfac: i0.ɵɵFactoryDeclaration<ThyEmpty, never>;
|
|
89
95
|
static ɵcmp: i0.ɵɵComponentDeclaration<ThyEmpty, "thy-empty", never, { "thyMessage": { "alias": "thyMessage"; "required": false; }; "thyTranslationKey": { "alias": "thyTranslationKey"; "required": false; }; "thyTranslationValues": { "alias": "thyTranslationValues"; "required": false; }; "thyEntityName": { "alias": "thyEntityName"; "required": false; }; "thyEntityNameTranslateKey": { "alias": "thyEntityNameTranslateKey"; "required": false; }; "thyIconName": { "alias": "thyIconName"; "required": false; }; "thySize": { "alias": "thySize"; "required": false; }; "thyMarginTop": { "alias": "thyMarginTop"; "required": false; }; "thyTopAuto": { "alias": "thyTopAuto"; "required": false; }; "thyContainer": { "alias": "thyContainer"; "required": false; }; "thyImageUrl": { "alias": "thyImageUrl"; "required": false; }; "thyImageLoading": { "alias": "thyImageLoading"; "required": false; }; "thyImageFetchPriority": { "alias": "thyImageFetchPriority"; "required": false; }; "thyDescription": { "alias": "thyDescription"; "required": false; }; }, {}, ["extraTemplateRef"], never, true, never>;
|
|
90
|
-
static ngAcceptInputType_thyTopAuto:
|
|
91
|
-
|
|
92
|
-
*
|
|
93
|
-
*/
|
|
94
|
-
boolean | string | number;
|
|
96
|
+
static ngAcceptInputType_thyTopAuto: /**
|
|
97
|
+
* 显示文本提示信息。同时传入 thyMessage,thyTranslationKey,thyEntityName,thyEntityNameTranslateKey 时优先级最高
|
|
98
|
+
* @default 暂无数据
|
|
99
|
+
*/ boolean | string | number;
|
|
95
100
|
}
|
package/empty/empty.config.d.ts
CHANGED
package/empty/styles/empty.scss
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
@use
|
|
2
|
-
@use
|
|
1
|
+
@use '../../styles/variables';
|
|
2
|
+
@use 'mixin';
|
|
3
3
|
|
|
4
4
|
.thy-empty-state {
|
|
5
5
|
display: block;
|
|
@@ -48,3 +48,23 @@
|
|
|
48
48
|
);
|
|
49
49
|
}
|
|
50
50
|
}
|
|
51
|
+
|
|
52
|
+
.thy-empty-svg-default,
|
|
53
|
+
.thy-empty-svg-light-default {
|
|
54
|
+
display: inline-block;
|
|
55
|
+
}
|
|
56
|
+
.thy-empty-svg-dark,
|
|
57
|
+
.thy-empty-svg-light-dark {
|
|
58
|
+
display: none;
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
:root[theme='dark'] {
|
|
62
|
+
.thy-empty-svg-default,
|
|
63
|
+
.thy-empty-svg-light-default {
|
|
64
|
+
display: none;
|
|
65
|
+
}
|
|
66
|
+
.thy-empty-svg-dark,
|
|
67
|
+
.thy-empty-svg-light-dark {
|
|
68
|
+
display: inline-block;
|
|
69
|
+
}
|
|
70
|
+
}
|
|
@@ -7,6 +7,7 @@ import { ActiveDescendantKeyManager } from '@angular/cdk/a11y';
|
|
|
7
7
|
import { ThyEmpty } from 'ngx-tethys/empty';
|
|
8
8
|
import { NgClass } from '@angular/common';
|
|
9
9
|
import { coerceBooleanProperty } from 'ngx-tethys/util';
|
|
10
|
+
import { injectLocale } from 'ngx-tethys/i18n';
|
|
10
11
|
import * as i0 from "@angular/core";
|
|
11
12
|
/**
|
|
12
13
|
* 自动完成组件
|
|
@@ -17,6 +18,7 @@ export class ThyAutocomplete {
|
|
|
17
18
|
this.ngZone = inject(NgZone);
|
|
18
19
|
this.changeDetectorRef = inject(ChangeDetectorRef);
|
|
19
20
|
this.ngUnsubscribe$ = new Subject();
|
|
21
|
+
this.locale = injectLocale('autocomplete');
|
|
20
22
|
this.isMultiple = false;
|
|
21
23
|
this.mode = '';
|
|
22
24
|
this.isEmptyOptions = false;
|
|
@@ -29,9 +31,9 @@ export class ThyAutocomplete {
|
|
|
29
31
|
});
|
|
30
32
|
/**
|
|
31
33
|
* 空选项时的文本
|
|
32
|
-
* @
|
|
34
|
+
* @default 没有任何数据
|
|
33
35
|
*/
|
|
34
|
-
this.thyEmptyText =
|
|
36
|
+
this.thyEmptyText = this.locale().empty;
|
|
35
37
|
/**
|
|
36
38
|
* 被选中时调用,参数包含选中项的 value 值
|
|
37
39
|
* @type EventEmitter<ThyOptionSelectionChangeEvent>
|
|
@@ -175,4 +177,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImpor
|
|
|
175
177
|
}], thyOptionActivated: [{
|
|
176
178
|
type: Output
|
|
177
179
|
}] } });
|
|
178
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0b2NvbXBsZXRlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9hdXRvY29tcGxldGUvYXV0b2NvbXBsZXRlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL3NyYy9hdXRvY29tcGxldGUvYXV0b2NvbXBsZXRlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDSCxTQUFTLEVBQ1QsV0FBVyxFQUNYLFNBQVMsRUFDVCx1QkFBdUIsRUFDdkIsZUFBZSxFQUNmLFNBQVMsRUFFVCxNQUFNLEVBQ04sWUFBWSxFQUNaLE1BQU0sRUFHTixpQkFBaUIsRUFDakIsS0FBSyxFQUNMLFVBQVUsRUFDVixNQUFNLEVBQ1QsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQWMsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNoRSxPQUFPLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDdkUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzFELE9BQU8sRUFDSCwyQkFBMkIsRUFFM0IsU0FBUyxFQUNULDZCQUE2QixFQUM3QiwyQkFBMkIsRUFDOUIsTUFBTSxtQkFBbUIsQ0FBQztBQUMzQixPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDNUMsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzFDLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDOztBQVd4RDs7O0dBR0c7QUFjSCxNQUFNLE9BQU8sZUFBZTtJQWI1QjtRQWNZLFdBQU0sR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFD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QURYLEtBQUs7Z0JBUXVDLHdCQUF3QjtzQkFBcEUsS0FBSzt1QkFBQyxFQUFFLFNBQVMsRUFBRSxxQkFBcUIsRUFBRTtnQkFNakMsaUJBQWlCO3NCQUExQixNQUFNO2dCQU1ZLFNBQVM7c0JBQTNCLE1BQU07Z0JBTVksU0FBUztzQkFBM0IsTUFBTTtnQkFPWSxrQkFBa0I7c0JBQXBDLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIENvbXBvbmVudCxcbiAgICBUZW1wbGF0ZVJlZixcbiAgICBWaWV3Q2hpbGQsXG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ29udGVudENoaWxkcmVuLFxuICAgIFF1ZXJ5TGlzdCxcbiAgICBPbkluaXQsXG4gICAgT3V0cHV0LFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBOZ1pvbmUsXG4gICAgT25EZXN0cm95LFxuICAgIEFmdGVyQ29udGVudEluaXQsXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgSW5wdXQsXG4gICAgRWxlbWVudFJlZixcbiAgICBpbmplY3Rcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBkZWZlciwgbWVyZ2UsIE9ic2VydmFibGUsIFN1YmplY3QsIHRpbWVyIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyB0YWtlLCBzd2l0Y2hNYXAsIHRha2VVbnRpbCwgc3RhcnRXaXRoIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgU2VsZWN0aW9uTW9kZWwgfSBmcm9tICdAYW5ndWxhci9jZGsvY29sbGVjdGlvbnMnO1xuaW1wb3J0IHtcbiAgICBUSFlfT1BUSU9OX1BBUkVOVF9DT01QT05FTlQsXG4gICAgSVRoeU9wdGlvblBhcmVudENvbXBvbmVudCxcbiAgICBUaHlPcHRpb24sXG4gICAgVGh5T3B0aW9uU2VsZWN0aW9uQ2hhbmdlRXZlbnQsXG4gICAgVGh5U3RvcFByb3BhZ2F0aW9uRGlyZWN0aXZlXG59IGZyb20gJ25neC10ZXRoeXMvc2hhcmVkJztcbmltcG9ydCB7IEFjdGl2ZURlc2NlbmRhbnRLZXlNYW5hZ2VyIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2ExMXknO1xuaW1wb3J0IHsgVGh5RW1wdHkgfSBmcm9tICduZ3gtdGV0aHlzL2VtcHR5JztcbmltcG9ydCB7IE5nQ2xhc3MgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgY29lcmNlQm9vbGVhblByb3BlcnR5IH0gZnJvbSAnbmd4LXRldGh5cy91dGlsJztcblxuLyoqIEV2ZW50IG9iamVjdCB0aGF0IGlzIGVtaXR0ZWQgd2hlbiBhbiBhdXRvY29tcGxldGUgb3B0aW9uIGlzIGFjdGl2YXRlZC4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVGh5QXV0b2NvbXBsZXRlQWN0aXZhdGVkRXZlbnQge1xuICAgIC8qKiBSZWZlcmVuY2UgdG8gdGhlIGF1dG9jb21wbGV0ZSBwYW5lbCB0aGF0IGVtaXR0ZWQgdGhlIGV2ZW50LiAqL1xuICAgIHNvdXJjZTogVGh5QXV0b2NvbXBsZXRlO1xuXG4gICAgLyoqIE9wdGlvbiB0aGF0IHdhcyBzZWxlY3RlZC4gKi9cbiAgICBvcHRpb246IFRoeU9wdGlvbiB8IG51bGw7XG59XG5cbi8qKlxuICog6Ieq5Yqo5a6M5oiQ57uE5Lu2XG4gKiBAbmFtZSB0aHktYXV0b2NvbXBsZXRlXG4gKi9cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAndGh5LWF1dG9jb21wbGV0ZScsXG4gICAgdGVtcGxhdGVVcmw6ICdhdXRvY29tcGxldGUuY29tcG9uZW50Lmh0bWwnLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBUSFlfT1BUSU9OX1BBUkVOVF9DT01QT05FTlQsXG4gICAgICAgICAgICB1c2VFeGlzdGluZzogVGh5QXV0b2NvbXBsZXRlXG4gICAgICAgIH1cbiAgICBdLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW1RoeVN0b3BQcm9wYWdhdGlvbkRpcmVjdGl2ZSwgTmdDbGFzcywgVGh5RW1wdHldXG59KVxuZXhwb3J0IGNsYXNzIFRoeUF1dG9jb21wbGV0ZSBpbXBsZW1lbnRzIElUaHlPcHRpb25QYXJlbnRDb21wb25lbnQsIE9uSW5pdCwgQWZ0ZXJDb250ZW50SW5pdCwgT25EZXN0cm95IHtcbiAgICBwcml2YXRlIG5nWm9uZSA9IGluamVjdChOZ1pvbmUpO1xuICAgIHByaXZhdGUgY2hhbmdlRGV0ZWN0b3JSZWYgPSBpbmplY3QoQ2hhbmdlRGV0ZWN0b3JSZWYpO1xuXG4gICAgcHJpdmF0ZSBuZ1Vuc3Vic2NyaWJlJCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgICBkcm9wRG93bkNsYXNzOiB7IFtrZXk6IHN0cmluZ106IGJvb2xlYW4gfTtcblxuICAgIGlzTXVsdGlwbGUgPSBmYWxzZTtcblxuICAgIG1vZGUgPSAnJztcblxuICAgIGlzRW1wdHlPcHRpb25zID0gZmFsc2U7XG5cbiAgICBzZWxlY3Rpb25Nb2RlbDogU2VsZWN0aW9uTW9kZWw8VGh5T3B0aW9uPjtcblxuICAgIGlzT3BlbmVkID0gZmFsc2U7XG5cbiAgICAvKiogTWFuYWdlcyBhY3RpdmUgaXRlbSBpbiBvcHRpb24gbGlzdCBiYXNlZCBvbiBrZXkgZXZlbnRzLiAqL1xuICAgIGtleU1hbmFnZXI6IEFjdGl2ZURlc2NlbmRhbnRLZXlNYW5hZ2VyPFRoeU9wdGlvbj47XG5cbiAgICBAVmlld0NoaWxkKCdjb250ZW50VGVtcGxhdGUnLCB7IHN0YXRpYzogdHJ1ZSB9KVxuICAgIGNvbnRlbnRUZW1wbGF0ZVJlZjogVGVtcGxhdGVSZWY8YW55PjtcblxuICAgIC8vIHNjcm9sbCBlbGVtZW50IGNvbnRhaW5lclxuICAgIEBWaWV3Q2hpbGQoJ3BhbmVsJylcbiAgICBvcHRpb25zQ29udGFpbmVyOiBFbGVtZW50UmVmPGFueT47XG5cbiAgICAvKipcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqL1xuICAgIEBDb250ZW50Q2hpbGRyZW4oVGh5T3B0aW9uLCB7IGRlc2NlbmRhbnRzOiB0cnVlIH0pIG9wdGlvbnM6IFF1ZXJ5TGlzdDxUaHlPcHRpb24+O1xuXG4gICAgcmVhZG9ubHkgb3B0aW9uU2VsZWN0aW9uQ2hhbmdlczogT2JzZXJ2YWJsZTxUaHlPcHRpb25TZWxlY3Rpb25DaGFuZ2VFdmVudD4gPSBkZWZlcigoKSA9PiB7XG4gICAgICAgIGlmICh0aGlzLm9wdGlvbnMpIHtcbiAgICAgICAgICAgIHJldHVybiBtZXJnZSguLi50aGlzLm9wdGlvbnMubWFwKG9wdGlvbiA9PiBvcHRpb24uc2VsZWN0aW9uQ2hhbmdlKSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXMubmdab25lLm9uU3RhYmxlLmFzT2JzZXJ2YWJsZSgpLnBpcGUoXG4gICAgICAgICAgICB0YWtlKDEpLFxuICAgICAgICAgICAgc3dpdGNoTWFwKCgpID0+IHRoaXMub3B0aW9uU2VsZWN0aW9uQ2hhbmdlcylcbiAgICAgICAgKTtcbiAgICB9KSBhcyBPYnNlcnZhYmxlPFRoeU9wdGlvblNlbGVjdGlvbkNoYW5nZUV2ZW50PjtcblxuICAgIC8qKlxuICAgICAqIOepuumAiemhueaXtueahOaWh+acrFxuICAgICAqIEB0eXBlIHN0cmluZ1xuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgdGh5RW1wdHlUZXh0ID0gJ+ayoeacieS7u+S9leaVsOaNric7XG5cbiAgICAvKipcbiAgICAgKiDmmK/lkKbpu5jorqTpq5jkuq7nrKzkuIDkuKrpgInpoblcbiAgICAgKiBAdHlwZSBib29sZWFuXG4gICAgICogQGRlZmF1bHQgZmFsc2VcbiAgICAgKi9cbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSB9KSB0aHlBdXRvQWN0aXZlRmlyc3RPcHRpb246IGJvb2xlYW47XG5cbiAgICAvKipcbiAgICAgKiDooqvpgInkuK3ml7bosIPnlKjvvIzlj4LmlbDljIXlkKvpgInkuK3pobnnmoQgdmFsdWUg5YC8XG4gICAgICogQHR5cGUgRXZlbnRFbWl0dGVyPFRoeU9wdGlvblNlbGVjdGlvbkNoYW5nZUV2ZW50PlxuICAgICAqL1xuICAgIEBPdXRwdXQoKSB0aHlPcHRpb25TZWxlY3RlZDogRXZlbnRFbWl0dGVyPFRoeU9wdGlvblNlbGVjdGlvbkNoYW5nZUV2ZW50PiA9IG5ldyBFdmVudEVtaXR0ZXI8VGh5T3B0aW9uU2VsZWN0aW9uQ2hhbmdlRXZlbnQ+KCk7XG5cbiAgICAvKipcbiAgICAgKiDlj6ror7vvvIzlsZXlvIDkuIvmi4noj5zljZXnmoTlm57osINcbiAgICAgKiBAdHlwZSBFdmVudEVtaXR0ZXI8dm9pZD5cbiAgICAgKi9cbiAgICBAT3V0cHV0KCkgcmVhZG9ubHkgdGh5T3BlbmVkOiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cbiAgICAvKipcbiAgICAgKiDlj6ror7vvvIzlhbPpl63kuIvmi4noj5zljZXnmoTlm57osINcbiAgICAgKiBAdHlwZSBFdmVudEVtaXR0ZXI8dm9pZD5cbiAgICAgKi9cbiAgICBAT3V0cHV0KCkgcmVhZG9ubHkgdGh5Q2xvc2VkOiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cbiAgICAvKiogRW1pdHMgd2hlbmV2ZXIgYW4gb3B0aW9uIGlzIGFjdGl2YXRlZCB1c2luZyB0aGUga2V5Ym9hcmQuICovXG4gICAgLyoqXG4gICAgICog5Y+q6K+777yMb3B0aW9uIOa/gOa0u+eKtuaAgeWPmOWMluaXtu+8jOiwg+eUqOatpOWHveaVsFxuICAgICAqIEB0eXBlIEV2ZW50RW1pdHRlcjxUaHlBdXRvY29tcGxldGVBY3RpdmF0ZWRFdmVudD5cbiAgICAgKi9cbiAgICBAT3V0cHV0KCkgcmVhZG9ubHkgdGh5T3B0aW9uQWN0aXZhdGVkOiBFdmVudEVtaXR0ZXI8VGh5QXV0b2NvbXBsZXRlQWN0aXZhdGVkRXZlbnQ+ID0gbmV3IEV2ZW50RW1pdHRlcjxUaHlBdXRvY29tcGxldGVBY3RpdmF0ZWRFdmVudD4oKTtcblxuICAgIG5nT25Jbml0KCkge1xuICAgICAgICB0aGlzLnNldERyb3BEb3duQ2xhc3MoKTtcbiAgICAgICAgdGhpcy5pbnN0YW5jZVNlbGVjdGlvbk1vZGVsKCk7XG4gICAgfVxuXG4gICAgbmdBZnRlckNvbnRlbnRJbml0KCkge1xuICAgICAgICB0aGlzLm9wdGlvbnMuY2hhbmdlcy5waXBlKHN0YXJ0V2l0aChudWxsKSwgdGFrZVVudGlsKHRoaXMubmdVbnN1YnNjcmliZSQpKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5yZXNldE9wdGlvbnMoKTtcbiAgICAgICAgICAgIHRpbWVyKDApLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5pc0VtcHR5T3B0aW9ucyA9IHRoaXMub3B0aW9ucy5sZW5ndGggPD0gMDtcbiAgICAgICAgICAgICAgICB0aGlzLmNoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgdGhpcy5pbml0S2V5TWFuYWdlcigpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBpbml0S2V5TWFuYWdlcigpIHtcbiAgICAgICAgY29uc3QgY2hhbmdlZE9yRGVzdHJveWVkJCA9IG1lcmdlKHRoaXMub3B0aW9ucy5jaGFuZ2VzLCB0aGlzLm5nVW5zdWJzY3JpYmUkKTtcbiAgICAgICAgdGhpcy5rZXlNYW5hZ2VyID0gbmV3IEFjdGl2ZURlc2NlbmRhbnRLZXlNYW5hZ2VyPFRoeU9wdGlvbj4odGhpcy5vcHRpb25zKS53aXRoV3JhcCgpO1xuICAgICAgICB0aGlzLmtleU1hbmFnZXIuY2hhbmdlLnBpcGUodGFrZVVudGlsKGNoYW5nZWRPckRlc3Ryb3llZCQpKS5zdWJzY3JpYmUoaW5kZXggPT4ge1xuICAgICAgICAgICAgdGhpcy50aHlPcHRpb25BY3RpdmF0ZWQuZW1pdCh7IHNvdXJjZTogdGhpcywgb3B0aW9uOiB0aGlzLm9wdGlvbnMudG9BcnJheSgpW2luZGV4XSB8fCBudWxsIH0pO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBvcGVuKCkge1xuICAgICAgICB0aGlzLmlzT3BlbmVkID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKTtcbiAgICAgICAgdGhpcy50aHlPcGVuZWQuZW1pdCgpO1xuICAgIH1cblxuICAgIGNsb3NlKCkge1xuICAgICAgICB0aGlzLmlzT3BlbmVkID0gZmFsc2U7XG4gICAgICAgIHRoaXMudGh5Q2xvc2VkLmVtaXQoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHJlc2V0T3B0aW9ucygpIHtcbiAgICAgICAgY29uc3QgY2hhbmdlZE9yRGVzdHJveWVkJCA9IG1lcmdlKHRoaXMub3B0aW9ucy5jaGFuZ2VzLCB0aGlzLm5nVW5zdWJzY3JpYmUkKTtcblxuICAgICAgICB0aGlzLm9wdGlvblNlbGVjdGlvbkNoYW5nZXMucGlwZSh0YWtlVW50aWwoY2hhbmdlZE9yRGVzdHJveWVkJCkpLnN1YnNjcmliZSgoZXZlbnQ6IFRoeU9wdGlvblNlbGVjdGlvbkNoYW5nZUV2ZW50KSA9PiB7XG4gICAgICAgICAgICB0aGlzLm9uU2VsZWN0KGV2ZW50Lm9wdGlvbiwgZXZlbnQuaXNVc2VySW5wdXQpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGluc3RhbmNlU2VsZWN0aW9uTW9kZWwoKSB7XG4gICAgICAgIGlmICh0aGlzLnNlbGVjdGlvbk1vZGVsKSB7XG4gICAgICAgICAgICB0aGlzLnNlbGVjdGlvbk1vZGVsLmNsZWFyKCk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5zZWxlY3Rpb25Nb2RlbCA9IG5ldyBTZWxlY3Rpb25Nb2RlbDxUaHlPcHRpb24+KHRoaXMuaXNNdWx0aXBsZSk7XG4gICAgICAgIHRoaXMuc2VsZWN0aW9uTW9kZWwuY2hhbmdlZC5waXBlKHRha2VVbnRpbCh0aGlzLm5nVW5zdWJzY3JpYmUkKSkuc3Vic2NyaWJlKGV2ZW50ID0+IHtcbiAgICAgICAgICAgIGV2ZW50LmFkZGVkLmZvckVhY2gob3B0aW9uID0+IG9wdGlvbi5zZWxlY3QoKSk7XG4gICAgICAgICAgICBldmVudC5yZW1vdmVkLmZvckVhY2gob3B0aW9uID0+IG9wdGlvbi5kZXNlbGVjdCgpKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBvblNlbGVjdChvcHRpb246IFRoeU9wdGlvbiwgaXNVc2VySW5wdXQ6IGJvb2xlYW4pIHtcbiAgICAgICAgY29uc3Qgd2FzU2VsZWN0ZWQgPSB0aGlzLnNlbGVjdGlvbk1vZGVsLmlzU2VsZWN0ZWQob3B0aW9uKTtcblxuICAgICAgICBpZiAob3B0aW9uLnRoeVZhbHVlID09IG51bGwgJiYgIXRoaXMuaXNNdWx0aXBsZSkge1xuICAgICAgICAgICAgb3B0aW9uLmRlc2VsZWN0KCk7XG4gICAgICAgICAgICB0aGlzLnNlbGVjdGlvbk1vZGVsLmNsZWFyKCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBpZiAod2FzU2VsZWN0ZWQgIT09IG9wdGlvbi5zZWxlY3RlZCkge1xuICAgICAgICAgICAgICAgIG9wdGlvbi5zZWxlY3RlZCA/IHRoaXMuc2VsZWN0aW9uTW9kZWwuc2VsZWN0KG9wdGlvbikgOiB0aGlzLnNlbGVjdGlvbk1vZGVsLmRlc2VsZWN0KG9wdGlvbik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmIChpc1VzZXJJbnB1dCkge1xuICAgICAgICAgICAgICAgIHRoaXMua2V5TWFuYWdlci5zZXRBY3RpdmVJdGVtKG9wdGlvbik7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBpZiAod2FzU2VsZWN0ZWQgIT09IHRoaXMuc2VsZWN0aW9uTW9kZWwuaXNTZWxlY3RlZChvcHRpb24pKSB7XG4gICAgICAgICAgICB0aGlzLnRoeU9wdGlvblNlbGVjdGVkLmVtaXQobmV3IFRoeU9wdGlvblNlbGVjdGlvbkNoYW5nZUV2ZW50KG9wdGlvbiwgZmFsc2UpKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmNoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpO1xuICAgIH1cblxuICAgIHByaXZhdGUgc2V0RHJvcERvd25DbGFzcygpIHtcbiAgICAgICAgbGV0IG1vZGVDbGFzcyA9ICcnO1xuICAgICAgICBpZiAodGhpcy5pc011bHRpcGxlKSB7XG4gICAgICAgICAgICBtb2RlQ2xhc3MgPSBgdGh5LXNlbGVjdC1kcm9wZG93bi0ke3RoaXMubW9kZX1gO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgbW9kZUNsYXNzID0gYHRoeS1zZWxlY3QtZHJvcGRvd24tc2luZ2xlYDtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmRyb3BEb3duQ2xhc3MgPSB7XG4gICAgICAgICAgICBbYHRoeS1zZWxlY3QtZHJvcGRvd25gXTogdHJ1ZSxcbiAgICAgICAgICAgIFttb2RlQ2xhc3NdOiB0cnVlXG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKSB7XG4gICAgICAgIHRoaXMubmdVbnN1YnNjcmliZSQubmV4dCgpO1xuICAgICAgICB0aGlzLm5nVW5zdWJzY3JpYmUkLmNvbXBsZXRlKCk7XG4gICAgfVxufVxuIiwiPG5nLXRlbXBsYXRlICNjb250ZW50VGVtcGxhdGU+XG4gIDxkaXYgdGh5U3RvcFByb3BhZ2F0aW9uIFtuZ0NsYXNzXT1cImRyb3BEb3duQ2xhc3NcIj5cbiAgICA8ZGl2ICNwYW5lbCBjbGFzcz1cInRoeS1zZWxlY3QtZHJvcGRvd24tb3B0aW9uc1wiPlxuICAgICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICAgICAgQGlmIChpc0VtcHR5T3B0aW9ucykge1xuICAgICAgICA8dGh5LWVtcHR5IFt0aHlNZXNzYWdlXT1cInRoeUVtcHR5VGV4dFwiPjwvdGh5LWVtcHR5PlxuICAgICAgfVxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
|
|
180
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0b2NvbXBsZXRlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9hdXRvY29tcGxldGUvYXV0b2NvbXBsZXRlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL3NyYy9hdXRvY29tcGxldGUvYXV0b2NvbXBsZXRlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDSCxTQUFTLEVBQ1QsV0FBVyxFQUNYLFNBQVMsRUFDVCx1QkFBdUIsRUFDdkIsZUFBZSxFQUNmLFNBQVMsRUFFVCxNQUFNLEVBQ04sWUFBWSxFQUNaLE1BQU0sRUFHTixpQkFBaUIsRUFDakIsS0FBSyxFQUNMLFVBQVUsRUFDVixNQUFNLEVBRVQsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQWMsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNoRSxPQUFPLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDdkUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzFELE9BQU8sRUFDSCwyQkFBMkIsRUFFM0IsU0FBUyxFQUNULDZCQUE2QixFQUM3QiwyQkFBMkIsRUFDOUIsTUFBTSxtQkFBbUIsQ0FBQztBQUMzQixPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDNUMsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzFDLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxZQUFZLEVBQXlCLE1BQU0saUJBQWlCLENBQUM7O0FBV3RFOzs7R0FHRztBQWNILE1BQU0sT0FBTyxlQUFlO0lBYjVCO1FBY1ksV0FBTSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUN4QixzQkFBaUIsR0FBRyxNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUU5QyxtQkFBYyxHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7UUFFckMsV0FBTSxHQUFrQyxZQUFZLENBQUMsY0FBYyxDQUFDLENBQUM7UUFJN0UsZUFBVSxHQUFHLEtBQUssQ0FBQztRQUVuQixTQUFJLEdBQUcsRUFBRSxDQUFDO1FBRVYsbUJBQWMsR0FBRyxLQUFLLENBQUM7UUFJdkIsYUFBUSxHQUFHLEtBQUssQ0FBQztRQWlCUiwyQkFBc0IsR0FBOEMsS0FBSyxDQUFDLEdBQUcsRUFBRTtZQUNwRixJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztnQkFDZixPQUFPLEtBQUssQ0FBQyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUM7WUFDeEUsQ0FBQztZQUNELE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsWUFBWSxFQUFFLENBQUMsSUFBSSxDQUMzQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQ1AsU0FBUyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxDQUMvQyxDQUFDO1FBQ04sQ0FBQyxDQUE4QyxDQUFDO1FBRWhEOzs7V0FHRztRQUNNLGlCQUFZLEdBQUcsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLEtBQUssQ0FBQztRQVM1Qzs7O1dBR0c7UUFDTyxzQkFBaUIsR0FBZ0QsSUFBSSxZQUFZLEVBQWlDLENBQUM7UUFFN0g7OztXQUdHO1FBQ2dCLGNBQVMsR0FBdUIsSUFBSSxZQUFZLEVBQVEsQ0FBQztRQUU1RTs7O1dBR0c7UUFDZ0IsY0FBUyxHQUF1QixJQUFJLFlBQVksRUFBUSxDQUFDO1FBRTVFLGdFQUFnRTtRQUNoRTs7O1dBR0c7UUFDZ0IsdUJBQWtCLEdBQWdELElBQUksWUFBWSxFQUFpQyxDQUFDO0tBK0YxSTtJQTdGRyxRQUFRO1FBQ0osSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7UUFDeEIsSUFBSSxDQUFDLHNCQUFzQixFQUFFLENBQUM7SUFDbEMsQ0FBQztJQUVELGtCQUFrQjtRQUNkLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEVBQUUsU0FBUyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDdEYsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQ3BCLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFO2dCQUNwQixJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxJQUFJLENBQUMsQ0FBQztnQkFDL0MsSUFBSSxDQUFDLGlCQUFpQixDQUFDLGFBQWEsRUFBRSxDQUFDO1lBQzNDLENBQUMsQ0FBQyxDQUFDO1lBQ0gsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQzFCLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVELGNBQWM7UUFDVixNQUFNLG1CQUFtQixHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDN0UsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLDBCQUEwQixDQUFZLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNyRixJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLG1CQUFtQixDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDMUUsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLENBQUMsS0FBSyxDQUFDLElBQUksSUFBSSxFQUFFLENBQUMsQ0FBQztRQUNsRyxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFRCxJQUFJO1FBQ0EsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUM7UUFDckIsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFlBQVksRUFBRSxDQUFDO1FBQ3RDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDMUIsQ0FBQztJQUVELEtBQUs7UUFDRCxJQUFJLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQztRQUN0QixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksRUFBRSxDQUFDO0lBQzFCLENBQUM7SUFFTyxZQUFZO1FBQ2hCLE1BQU0sbUJBQW1CLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUU3RSxJQUFJLENBQUMsc0JBQXNCLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsS0FBb0MsRUFBRSxFQUFFO1lBQ2hILElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLE1BQU0sRUFBRSxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDbkQsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRU8sc0JBQXNCO1FBQzFCLElBQUksSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1lBQ3RCLElBQUksQ0FBQyxjQUFjLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDaEMsQ0FBQztRQUNELElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxjQUFjLENBQVksSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ3JFLElBQUksQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQy9FLEtBQUssQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUM7WUFDL0MsS0FBSyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztRQUN2RCxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFTyxRQUFRLENBQUMsTUFBaUIsRUFBRSxXQUFvQjtRQUNwRCxNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUUzRCxJQUFJLE1BQU0sQ0FBQyxRQUFRLElBQUksSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1lBQzlDLE1BQU0sQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUNsQixJQUFJLENBQUMsY0FBYyxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ2hDLENBQUM7YUFBTSxDQUFDO1lBQ0osSUFBSSxXQUFXLEtBQUssTUFBTSxDQUFDLFFBQVEsRUFBRSxDQUFDO2dCQUNsQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDaEcsQ0FBQztZQUVELElBQUksV0FBVyxFQUFFLENBQUM7Z0JBQ2QsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDMUMsQ0FBQztRQUNMLENBQUM7UUFFRCxJQUFJLFdBQVcsS0FBSyxJQUFJLENBQUMsY0FBYyxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDO1lBQ3pELElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsSUFBSSw2QkFBNkIsQ0FBQyxNQUFNLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUNsRixDQUFDO1FBQ0QsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFlBQVksRUFBRSxDQUFDO0lBQzFDLENBQUM7SUFFTyxnQkFBZ0I7UUFDcEIsSUFBSSxTQUFTLEdBQUcsRUFBRSxDQUFDO1FBQ25CLElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1lBQ2xCLFNBQVMsR0FBRyx1QkFBdUIsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ25ELENBQUM7YUFBTSxDQUFDO1lBQ0osU0FBUyxHQUFHLDRCQUE0QixDQUFDO1FBQzdDLENBQUM7UUFDRCxJQUFJLENBQUMsYUFBYSxHQUFHO1lBQ2pCLENBQUMscUJBQXFCLENBQUMsRUFBRSxJQUFJO1lBQzdCLENBQUMsU0FBUyxDQUFDLEVBQUUsSUFBSTtTQUNwQixDQUFDO0lBQ04sQ0FBQztJQUVELFdBQVc7UUFDUCxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksRUFBRSxDQUFDO1FBQzNCLElBQUksQ0FBQyxjQUFjLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDbkMsQ0FBQzs4R0EvS1EsZUFBZTtrR0FBZixlQUFlLCtLQXdESixxQkFBcUIsK0pBakU5QjtZQUNQO2dCQUNJLE9BQU8sRUFBRSwyQkFBMkI7Z0JBQ3BDLFdBQVcsRUFBRSxlQUFlO2FBQy9CO1NBQ0osa0RBcUNnQixTQUFTLGlSQzlGOUIsK1RBVUEsNENEaURjLDJCQUEyQixpR0FBRSxPQUFPLG9GQUFFLFFBQVE7OzJGQUUvQyxlQUFlO2tCQWIzQixTQUFTOytCQUNJLGtCQUFrQixtQkFFWCx1QkFBdUIsQ0FBQyxNQUFNLGFBQ3BDO3dCQUNQOzRCQUNJLE9BQU8sRUFBRSwyQkFBMkI7NEJBQ3BDLFdBQVcsaUJBQWlCO3lCQUMvQjtxQkFDSixjQUNXLElBQUksV0FDUCxDQUFDLDJCQUEyQixFQUFFLE9BQU8sRUFBRSxRQUFRLENBQUM7OEJBMEJ6RCxrQkFBa0I7c0JBRGpCLFNBQVM7dUJBQUMsaUJBQWlCLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO2dCQUs5QyxnQkFBZ0I7c0JBRGYsU0FBUzt1QkFBQyxPQUFPO2dCQU1pQyxPQUFPO3NCQUF6RCxlQUFlO3VCQUFDLFNBQVMsRUFBRSxFQUFFLFdBQVcsRUFBRSxJQUFJLEVBQUU7Z0JBZ0J4QyxZQUFZO3NCQUFwQixLQUFLO2dCQU91Qyx3QkFBd0I7c0JBQXBFLEtBQUs7dUJBQUMsRUFBRSxTQUFTLEVBQUUscUJBQXFCLEVBQUU7Z0JBTWpDLGlCQUFpQjtzQkFBMUIsTUFBTTtnQkFNWSxTQUFTO3NCQUEzQixNQUFNO2dCQU1ZLFNBQVM7c0JBQTNCLE1BQU07Z0JBT1ksa0JBQWtCO3NCQUFwQyxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBDb21wb25lbnQsXG4gICAgVGVtcGxhdGVSZWYsXG4gICAgVmlld0NoaWxkLFxuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENvbnRlbnRDaGlsZHJlbixcbiAgICBRdWVyeUxpc3QsXG4gICAgT25Jbml0LFxuICAgIE91dHB1dCxcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgTmdab25lLFxuICAgIE9uRGVzdHJveSxcbiAgICBBZnRlckNvbnRlbnRJbml0LFxuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIElucHV0LFxuICAgIEVsZW1lbnRSZWYsXG4gICAgaW5qZWN0LFxuICAgIFNpZ25hbFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGRlZmVyLCBtZXJnZSwgT2JzZXJ2YWJsZSwgU3ViamVjdCwgdGltZXIgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IHRha2UsIHN3aXRjaE1hcCwgdGFrZVVudGlsLCBzdGFydFdpdGggfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBTZWxlY3Rpb25Nb2RlbCB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9jb2xsZWN0aW9ucyc7XG5pbXBvcnQge1xuICAgIFRIWV9PUFRJT05fUEFSRU5UX0NPTVBPTkVOVCxcbiAgICBJVGh5T3B0aW9uUGFyZW50Q29tcG9uZW50LFxuICAgIFRoeU9wdGlvbixcbiAgICBUaHlPcHRpb25TZWxlY3Rpb25DaGFuZ2VFdmVudCxcbiAgICBUaHlTdG9wUHJvcGFnYXRpb25EaXJlY3RpdmVcbn0gZnJvbSAnbmd4LXRldGh5cy9zaGFyZWQnO1xuaW1wb3J0IHsgQWN0aXZlRGVzY2VuZGFudEtleU1hbmFnZXIgfSBmcm9tICdAYW5ndWxhci9jZGsvYTExeSc7XG5pbXBvcnQgeyBUaHlFbXB0eSB9IGZyb20gJ25neC10ZXRoeXMvZW1wdHknO1xuaW1wb3J0IHsgTmdDbGFzcyB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBjb2VyY2VCb29sZWFuUHJvcGVydHkgfSBmcm9tICduZ3gtdGV0aHlzL3V0aWwnO1xuaW1wb3J0IHsgaW5qZWN0TG9jYWxlLCBUaHlBdXRvQ29tcGxldGVMb2NhbGUgfSBmcm9tICduZ3gtdGV0aHlzL2kxOG4nO1xuXG4vKiogRXZlbnQgb2JqZWN0IHRoYXQgaXMgZW1pdHRlZCB3aGVuIGFuIGF1dG9jb21wbGV0ZSBvcHRpb24gaXMgYWN0aXZhdGVkLiAqL1xuZXhwb3J0IGludGVyZmFjZSBUaHlBdXRvY29tcGxldGVBY3RpdmF0ZWRFdmVudCB7XG4gICAgLyoqIFJlZmVyZW5jZSB0byB0aGUgYXV0b2NvbXBsZXRlIHBhbmVsIHRoYXQgZW1pdHRlZCB0aGUgZXZlbnQuICovXG4gICAgc291cmNlOiBUaHlBdXRvY29tcGxldGU7XG5cbiAgICAvKiogT3B0aW9uIHRoYXQgd2FzIHNlbGVjdGVkLiAqL1xuICAgIG9wdGlvbjogVGh5T3B0aW9uIHwgbnVsbDtcbn1cblxuLyoqXG4gKiDoh6rliqjlrozmiJDnu4Tku7ZcbiAqIEBuYW1lIHRoeS1hdXRvY29tcGxldGVcbiAqL1xuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICd0aHktYXV0b2NvbXBsZXRlJyxcbiAgICB0ZW1wbGF0ZVVybDogJ2F1dG9jb21wbGV0ZS5jb21wb25lbnQuaHRtbCcsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICAgIHByb3ZpZGU6IFRIWV9PUFRJT05fUEFSRU5UX0NPTVBPTkVOVCxcbiAgICAgICAgICAgIHVzZUV4aXN0aW5nOiBUaHlBdXRvY29tcGxldGVcbiAgICAgICAgfVxuICAgIF0sXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbVGh5U3RvcFByb3BhZ2F0aW9uRGlyZWN0aXZlLCBOZ0NsYXNzLCBUaHlFbXB0eV1cbn0pXG5leHBvcnQgY2xhc3MgVGh5QXV0b2NvbXBsZXRlIGltcGxlbWVudHMgSVRoeU9wdGlvblBhcmVudENvbXBvbmVudCwgT25Jbml0LCBBZnRlckNvbnRlbnRJbml0LCBPbkRlc3Ryb3kge1xuICAgIHByaXZhdGUgbmdab25lID0gaW5qZWN0KE5nWm9uZSk7XG4gICAgcHJpdmF0ZSBjaGFuZ2VEZXRlY3RvclJlZiA9IGluamVjdChDaGFuZ2VEZXRlY3RvclJlZik7XG5cbiAgICBwcml2YXRlIG5nVW5zdWJzY3JpYmUkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICAgIHByaXZhdGUgbG9jYWxlOiBTaWduYWw8VGh5QXV0b0NvbXBsZXRlTG9jYWxlPiA9IGluamVjdExvY2FsZSgnYXV0b2NvbXBsZXRlJyk7XG5cbiAgICBkcm9wRG93bkNsYXNzOiB7IFtrZXk6IHN0cmluZ106IGJvb2xlYW4gfTtcblxuICAgIGlzTXVsdGlwbGUgPSBmYWxzZTtcblxuICAgIG1vZGUgPSAnJztcblxuICAgIGlzRW1wdHlPcHRpb25zID0gZmFsc2U7XG5cbiAgICBzZWxlY3Rpb25Nb2RlbDogU2VsZWN0aW9uTW9kZWw8VGh5T3B0aW9uPjtcblxuICAgIGlzT3BlbmVkID0gZmFsc2U7XG5cbiAgICAvKiogTWFuYWdlcyBhY3RpdmUgaXRlbSBpbiBvcHRpb24gbGlzdCBiYXNlZCBvbiBrZXkgZXZlbnRzLiAqL1xuICAgIGtleU1hbmFnZXI6IEFjdGl2ZURlc2NlbmRhbnRLZXlNYW5hZ2VyPFRoeU9wdGlvbj47XG5cbiAgICBAVmlld0NoaWxkKCdjb250ZW50VGVtcGxhdGUnLCB7IHN0YXRpYzogdHJ1ZSB9KVxuICAgIGNvbnRlbnRUZW1wbGF0ZVJlZjogVGVtcGxhdGVSZWY8YW55PjtcblxuICAgIC8vIHNjcm9sbCBlbGVtZW50IGNvbnRhaW5lclxuICAgIEBWaWV3Q2hpbGQoJ3BhbmVsJylcbiAgICBvcHRpb25zQ29udGFpbmVyOiBFbGVtZW50UmVmPGFueT47XG5cbiAgICAvKipcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqL1xuICAgIEBDb250ZW50Q2hpbGRyZW4oVGh5T3B0aW9uLCB7IGRlc2NlbmRhbnRzOiB0cnVlIH0pIG9wdGlvbnM6IFF1ZXJ5TGlzdDxUaHlPcHRpb24+O1xuXG4gICAgcmVhZG9ubHkgb3B0aW9uU2VsZWN0aW9uQ2hhbmdlczogT2JzZXJ2YWJsZTxUaHlPcHRpb25TZWxlY3Rpb25DaGFuZ2VFdmVudD4gPSBkZWZlcigoKSA9PiB7XG4gICAgICAgIGlmICh0aGlzLm9wdGlvbnMpIHtcbiAgICAgICAgICAgIHJldHVybiBtZXJnZSguLi50aGlzLm9wdGlvbnMubWFwKG9wdGlvbiA9PiBvcHRpb24uc2VsZWN0aW9uQ2hhbmdlKSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXMubmdab25lLm9uU3RhYmxlLmFzT2JzZXJ2YWJsZSgpLnBpcGUoXG4gICAgICAgICAgICB0YWtlKDEpLFxuICAgICAgICAgICAgc3dpdGNoTWFwKCgpID0+IHRoaXMub3B0aW9uU2VsZWN0aW9uQ2hhbmdlcylcbiAgICAgICAgKTtcbiAgICB9KSBhcyBPYnNlcnZhYmxlPFRoeU9wdGlvblNlbGVjdGlvbkNoYW5nZUV2ZW50PjtcblxuICAgIC8qKlxuICAgICAqIOepuumAiemhueaXtueahOaWh+acrFxuICAgICAqIEBkZWZhdWx0IOayoeacieS7u+S9leaVsOaNrlxuICAgICAqL1xuICAgIEBJbnB1dCgpIHRoeUVtcHR5VGV4dCA9IHRoaXMubG9jYWxlKCkuZW1wdHk7XG5cbiAgICAvKipcbiAgICAgKiDmmK/lkKbpu5jorqTpq5jkuq7nrKzkuIDkuKrpgInpoblcbiAgICAgKiBAdHlwZSBib29sZWFuXG4gICAgICogQGRlZmF1bHQgZmFsc2VcbiAgICAgKi9cbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSB9KSB0aHlBdXRvQWN0aXZlRmlyc3RPcHRpb246IGJvb2xlYW47XG5cbiAgICAvKipcbiAgICAgKiDooqvpgInkuK3ml7bosIPnlKjvvIzlj4LmlbDljIXlkKvpgInkuK3pobnnmoQgdmFsdWUg5YC8XG4gICAgICogQHR5cGUgRXZlbnRFbWl0dGVyPFRoeU9wdGlvblNlbGVjdGlvbkNoYW5nZUV2ZW50PlxuICAgICAqL1xuICAgIEBPdXRwdXQoKSB0aHlPcHRpb25TZWxlY3RlZDogRXZlbnRFbWl0dGVyPFRoeU9wdGlvblNlbGVjdGlvbkNoYW5nZUV2ZW50PiA9IG5ldyBFdmVudEVtaXR0ZXI8VGh5T3B0aW9uU2VsZWN0aW9uQ2hhbmdlRXZlbnQ+KCk7XG5cbiAgICAvKipcbiAgICAgKiDlj6ror7vvvIzlsZXlvIDkuIvmi4noj5zljZXnmoTlm57osINcbiAgICAgKiBAdHlwZSBFdmVudEVtaXR0ZXI8dm9pZD5cbiAgICAgKi9cbiAgICBAT3V0cHV0KCkgcmVhZG9ubHkgdGh5T3BlbmVkOiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cbiAgICAvKipcbiAgICAgKiDlj6ror7vvvIzlhbPpl63kuIvmi4noj5zljZXnmoTlm57osINcbiAgICAgKiBAdHlwZSBFdmVudEVtaXR0ZXI8dm9pZD5cbiAgICAgKi9cbiAgICBAT3V0cHV0KCkgcmVhZG9ubHkgdGh5Q2xvc2VkOiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cbiAgICAvKiogRW1pdHMgd2hlbmV2ZXIgYW4gb3B0aW9uIGlzIGFjdGl2YXRlZCB1c2luZyB0aGUga2V5Ym9hcmQuICovXG4gICAgLyoqXG4gICAgICog5Y+q6K+777yMb3B0aW9uIOa/gOa0u+eKtuaAgeWPmOWMluaXtu+8jOiwg+eUqOatpOWHveaVsFxuICAgICAqIEB0eXBlIEV2ZW50RW1pdHRlcjxUaHlBdXRvY29tcGxldGVBY3RpdmF0ZWRFdmVudD5cbiAgICAgKi9cbiAgICBAT3V0cHV0KCkgcmVhZG9ubHkgdGh5T3B0aW9uQWN0aXZhdGVkOiBFdmVudEVtaXR0ZXI8VGh5QXV0b2NvbXBsZXRlQWN0aXZhdGVkRXZlbnQ+ID0gbmV3IEV2ZW50RW1pdHRlcjxUaHlBdXRvY29tcGxldGVBY3RpdmF0ZWRFdmVudD4oKTtcblxuICAgIG5nT25Jbml0KCkge1xuICAgICAgICB0aGlzLnNldERyb3BEb3duQ2xhc3MoKTtcbiAgICAgICAgdGhpcy5pbnN0YW5jZVNlbGVjdGlvbk1vZGVsKCk7XG4gICAgfVxuXG4gICAgbmdBZnRlckNvbnRlbnRJbml0KCkge1xuICAgICAgICB0aGlzLm9wdGlvbnMuY2hhbmdlcy5waXBlKHN0YXJ0V2l0aChudWxsKSwgdGFrZVVudGlsKHRoaXMubmdVbnN1YnNjcmliZSQpKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5yZXNldE9wdGlvbnMoKTtcbiAgICAgICAgICAgIHRpbWVyKDApLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5pc0VtcHR5T3B0aW9ucyA9IHRoaXMub3B0aW9ucy5sZW5ndGggPD0gMDtcbiAgICAgICAgICAgICAgICB0aGlzLmNoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgdGhpcy5pbml0S2V5TWFuYWdlcigpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBpbml0S2V5TWFuYWdlcigpIHtcbiAgICAgICAgY29uc3QgY2hhbmdlZE9yRGVzdHJveWVkJCA9IG1lcmdlKHRoaXMub3B0aW9ucy5jaGFuZ2VzLCB0aGlzLm5nVW5zdWJzY3JpYmUkKTtcbiAgICAgICAgdGhpcy5rZXlNYW5hZ2VyID0gbmV3IEFjdGl2ZURlc2NlbmRhbnRLZXlNYW5hZ2VyPFRoeU9wdGlvbj4odGhpcy5vcHRpb25zKS53aXRoV3JhcCgpO1xuICAgICAgICB0aGlzLmtleU1hbmFnZXIuY2hhbmdlLnBpcGUodGFrZVVudGlsKGNoYW5nZWRPckRlc3Ryb3llZCQpKS5zdWJzY3JpYmUoaW5kZXggPT4ge1xuICAgICAgICAgICAgdGhpcy50aHlPcHRpb25BY3RpdmF0ZWQuZW1pdCh7IHNvdXJjZTogdGhpcywgb3B0aW9uOiB0aGlzLm9wdGlvbnMudG9BcnJheSgpW2luZGV4XSB8fCBudWxsIH0pO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBvcGVuKCkge1xuICAgICAgICB0aGlzLmlzT3BlbmVkID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKTtcbiAgICAgICAgdGhpcy50aHlPcGVuZWQuZW1pdCgpO1xuICAgIH1cblxuICAgIGNsb3NlKCkge1xuICAgICAgICB0aGlzLmlzT3BlbmVkID0gZmFsc2U7XG4gICAgICAgIHRoaXMudGh5Q2xvc2VkLmVtaXQoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHJlc2V0T3B0aW9ucygpIHtcbiAgICAgICAgY29uc3QgY2hhbmdlZE9yRGVzdHJveWVkJCA9IG1lcmdlKHRoaXMub3B0aW9ucy5jaGFuZ2VzLCB0aGlzLm5nVW5zdWJzY3JpYmUkKTtcblxuICAgICAgICB0aGlzLm9wdGlvblNlbGVjdGlvbkNoYW5nZXMucGlwZSh0YWtlVW50aWwoY2hhbmdlZE9yRGVzdHJveWVkJCkpLnN1YnNjcmliZSgoZXZlbnQ6IFRoeU9wdGlvblNlbGVjdGlvbkNoYW5nZUV2ZW50KSA9PiB7XG4gICAgICAgICAgICB0aGlzLm9uU2VsZWN0KGV2ZW50Lm9wdGlvbiwgZXZlbnQuaXNVc2VySW5wdXQpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGluc3RhbmNlU2VsZWN0aW9uTW9kZWwoKSB7XG4gICAgICAgIGlmICh0aGlzLnNlbGVjdGlvbk1vZGVsKSB7XG4gICAgICAgICAgICB0aGlzLnNlbGVjdGlvbk1vZGVsLmNsZWFyKCk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5zZWxlY3Rpb25Nb2RlbCA9IG5ldyBTZWxlY3Rpb25Nb2RlbDxUaHlPcHRpb24+KHRoaXMuaXNNdWx0aXBsZSk7XG4gICAgICAgIHRoaXMuc2VsZWN0aW9uTW9kZWwuY2hhbmdlZC5waXBlKHRha2VVbnRpbCh0aGlzLm5nVW5zdWJzY3JpYmUkKSkuc3Vic2NyaWJlKGV2ZW50ID0+IHtcbiAgICAgICAgICAgIGV2ZW50LmFkZGVkLmZvckVhY2gob3B0aW9uID0+IG9wdGlvbi5zZWxlY3QoKSk7XG4gICAgICAgICAgICBldmVudC5yZW1vdmVkLmZvckVhY2gob3B0aW9uID0+IG9wdGlvbi5kZXNlbGVjdCgpKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBvblNlbGVjdChvcHRpb246IFRoeU9wdGlvbiwgaXNVc2VySW5wdXQ6IGJvb2xlYW4pIHtcbiAgICAgICAgY29uc3Qgd2FzU2VsZWN0ZWQgPSB0aGlzLnNlbGVjdGlvbk1vZGVsLmlzU2VsZWN0ZWQob3B0aW9uKTtcblxuICAgICAgICBpZiAob3B0aW9uLnRoeVZhbHVlID09IG51bGwgJiYgIXRoaXMuaXNNdWx0aXBsZSkge1xuICAgICAgICAgICAgb3B0aW9uLmRlc2VsZWN0KCk7XG4gICAgICAgICAgICB0aGlzLnNlbGVjdGlvbk1vZGVsLmNsZWFyKCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBpZiAod2FzU2VsZWN0ZWQgIT09IG9wdGlvbi5zZWxlY3RlZCkge1xuICAgICAgICAgICAgICAgIG9wdGlvbi5zZWxlY3RlZCA/IHRoaXMuc2VsZWN0aW9uTW9kZWwuc2VsZWN0KG9wdGlvbikgOiB0aGlzLnNlbGVjdGlvbk1vZGVsLmRlc2VsZWN0KG9wdGlvbik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmIChpc1VzZXJJbnB1dCkge1xuICAgICAgICAgICAgICAgIHRoaXMua2V5TWFuYWdlci5zZXRBY3RpdmVJdGVtKG9wdGlvbik7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBpZiAod2FzU2VsZWN0ZWQgIT09IHRoaXMuc2VsZWN0aW9uTW9kZWwuaXNTZWxlY3RlZChvcHRpb24pKSB7XG4gICAgICAgICAgICB0aGlzLnRoeU9wdGlvblNlbGVjdGVkLmVtaXQobmV3IFRoeU9wdGlvblNlbGVjdGlvbkNoYW5nZUV2ZW50KG9wdGlvbiwgZmFsc2UpKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmNoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpO1xuICAgIH1cblxuICAgIHByaXZhdGUgc2V0RHJvcERvd25DbGFzcygpIHtcbiAgICAgICAgbGV0IG1vZGVDbGFzcyA9ICcnO1xuICAgICAgICBpZiAodGhpcy5pc011bHRpcGxlKSB7XG4gICAgICAgICAgICBtb2RlQ2xhc3MgPSBgdGh5LXNlbGVjdC1kcm9wZG93bi0ke3RoaXMubW9kZX1gO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgbW9kZUNsYXNzID0gYHRoeS1zZWxlY3QtZHJvcGRvd24tc2luZ2xlYDtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmRyb3BEb3duQ2xhc3MgPSB7XG4gICAgICAgICAgICBbYHRoeS1zZWxlY3QtZHJvcGRvd25gXTogdHJ1ZSxcbiAgICAgICAgICAgIFttb2RlQ2xhc3NdOiB0cnVlXG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKSB7XG4gICAgICAgIHRoaXMubmdVbnN1YnNjcmliZSQubmV4dCgpO1xuICAgICAgICB0aGlzLm5nVW5zdWJzY3JpYmUkLmNvbXBsZXRlKCk7XG4gICAgfVxufVxuIiwiPG5nLXRlbXBsYXRlICNjb250ZW50VGVtcGxhdGU+XG4gIDxkaXYgdGh5U3RvcFByb3BhZ2F0aW9uIFtuZ0NsYXNzXT1cImRyb3BEb3duQ2xhc3NcIj5cbiAgICA8ZGl2ICNwYW5lbCBjbGFzcz1cInRoeS1zZWxlY3QtZHJvcGRvd24tb3B0aW9uc1wiPlxuICAgICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICAgICAgQGlmIChpc0VtcHR5T3B0aW9ucykge1xuICAgICAgICA8dGh5LWVtcHR5IFt0aHlNZXNzYWdlXT1cInRoeUVtcHR5VGV4dFwiPjwvdGh5LWVtcHR5PlxuICAgICAgfVxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
|
|
@@ -5,6 +5,8 @@ import { ChangeDetectorRef, Component, EventEmitter, HostBinding, Input, Output,
|
|
|
5
5
|
import { ThyButton } from 'ngx-tethys/button';
|
|
6
6
|
import { NgTemplateOutlet, JsonPipe } from '@angular/common';
|
|
7
7
|
import { FormsModule } from '@angular/forms';
|
|
8
|
+
import { injectLocale } from 'ngx-tethys/i18n';
|
|
9
|
+
import { DateHelperService } from 'ngx-tethys/date-picker';
|
|
8
10
|
import * as i0 from "@angular/core";
|
|
9
11
|
import * as i1 from "@angular/forms";
|
|
10
12
|
/**
|
|
@@ -15,6 +17,8 @@ import * as i1 from "@angular/forms";
|
|
|
15
17
|
export class ThyCalendarHeader {
|
|
16
18
|
constructor() {
|
|
17
19
|
this.cdr = inject(ChangeDetectorRef);
|
|
20
|
+
this.dateHelper = inject(DateHelperService);
|
|
21
|
+
this.locale = injectLocale('calendar');
|
|
18
22
|
this.className = true;
|
|
19
23
|
/**
|
|
20
24
|
* 日期选择范围(年)发生变化的回调
|
|
@@ -28,11 +32,11 @@ export class ThyCalendarHeader {
|
|
|
28
32
|
* 日期选择范围(日期)发生变化的回调
|
|
29
33
|
*/
|
|
30
34
|
this.dateRangeChange = new EventEmitter();
|
|
31
|
-
this.pickerFormat =
|
|
35
|
+
this.pickerFormat = this.locale().yearMonthFormat;
|
|
32
36
|
this.dateRanges = [
|
|
33
37
|
{
|
|
34
38
|
key: 'month',
|
|
35
|
-
text: new TinyDate().
|
|
39
|
+
text: this.dateHelper.format(new TinyDate().nativeDate, this.pickerFormat),
|
|
36
40
|
begin: getUnixTime(startOfMonth(new Date())),
|
|
37
41
|
end: getUnixTime(endOfMonth(new Date())),
|
|
38
42
|
timestamp: {
|
|
@@ -91,11 +95,11 @@ export class ThyCalendarHeader {
|
|
|
91
95
|
this.isCurrent = currentDate.getMonth() !== getMonth(new Date()) || currentDate.getYear() !== getYear(new Date());
|
|
92
96
|
}
|
|
93
97
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: ThyCalendarHeader, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
94
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.0", type: ThyCalendarHeader, isStandalone: true, selector: "thy-calendar-header", inputs: { currentDate: "currentDate", operationRender: "operationRender" }, outputs: { yearChange: "yearChange", monthChange: "monthChange", dateRangeChange: "dateRangeChange" }, host: { properties: { "class.thy-calendar-full-header-container": "this.className" } }, ngImport: i0, template: "<div class=\"thy-calendar-full-header-left\">\n <thy-date-range\n class=\"select-date-range\"\n [ngModel]=\"date\"\n [thyHiddenMenu]=\"true\"\n [thyCustomKey]=\"'exception'\"\n [thyPickerFormat]=\"pickerFormat\"\n
|
|
98
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.0", type: ThyCalendarHeader, isStandalone: true, selector: "thy-calendar-header", inputs: { currentDate: "currentDate", operationRender: "operationRender" }, outputs: { yearChange: "yearChange", monthChange: "monthChange", dateRangeChange: "dateRangeChange" }, host: { properties: { "class.thy-calendar-full-header-container": "this.className" } }, ngImport: i0, template: "<div class=\"thy-calendar-full-header-left\">\n <thy-date-range\n class=\"select-date-range\"\n [ngModel]=\"date\"\n [thyHiddenMenu]=\"true\"\n [thyCustomKey]=\"'exception'\"\n [thyPickerFormat]=\"pickerFormat\"\n (ngModelChange)=\"onChangeRange($event)\"></thy-date-range>\n @if (isCurrent) {\n <button thyButton=\"outline-default-square\" thySize=\"md\" (click)=\"backToday()\">{{ locale().today }}</button>\n }\n</div>\n<div class=\"thy-calendar-full-header-right\">\n <ng-container *ngTemplateOutlet=\"$any(operationRender); context: { $implicit: operationRender }\">\n <span>{{ operationRender | json }}</span>\n </ng-container>\n</div>\n", dependencies: [{ kind: "component", type: ThyDateRange, selector: "thy-date-range", inputs: ["thyOptionalDateRanges", "thyHiddenMenu", "thyDisabledSwitch", "thyCustomTextValue", "thyMinDate", "thyMaxDate", "thyCustomKey", "thyPickerFormat", "thyDisabledDate"], outputs: ["thyOnCalendarChange"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: ThyButton, selector: "thy-button,[thy-button],[thyButton]", inputs: ["thyButton", "thyType", "thyLoading", "thyLoadingText", "thySize", "thyIcon", "thyBlock"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "pipe", type: JsonPipe, name: "json" }] }); }
|
|
95
99
|
}
|
|
96
100
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: ThyCalendarHeader, decorators: [{
|
|
97
101
|
type: Component,
|
|
98
|
-
args: [{ selector: 'thy-calendar-header', standalone: true, imports: [ThyDateRange, FormsModule, ThyButton, NgTemplateOutlet, JsonPipe], template: "<div class=\"thy-calendar-full-header-left\">\n <thy-date-range\n class=\"select-date-range\"\n [ngModel]=\"date\"\n [thyHiddenMenu]=\"true\"\n [thyCustomKey]=\"'exception'\"\n [thyPickerFormat]=\"pickerFormat\"\n
|
|
102
|
+
args: [{ selector: 'thy-calendar-header', standalone: true, imports: [ThyDateRange, FormsModule, ThyButton, NgTemplateOutlet, JsonPipe], template: "<div class=\"thy-calendar-full-header-left\">\n <thy-date-range\n class=\"select-date-range\"\n [ngModel]=\"date\"\n [thyHiddenMenu]=\"true\"\n [thyCustomKey]=\"'exception'\"\n [thyPickerFormat]=\"pickerFormat\"\n (ngModelChange)=\"onChangeRange($event)\"></thy-date-range>\n @if (isCurrent) {\n <button thyButton=\"outline-default-square\" thySize=\"md\" (click)=\"backToday()\">{{ locale().today }}</button>\n }\n</div>\n<div class=\"thy-calendar-full-header-right\">\n <ng-container *ngTemplateOutlet=\"$any(operationRender); context: { $implicit: operationRender }\">\n <span>{{ operationRender | json }}</span>\n </ng-container>\n</div>\n" }]
|
|
99
103
|
}], propDecorators: { className: [{
|
|
100
104
|
type: HostBinding,
|
|
101
105
|
args: ['class.thy-calendar-full-header-container']
|
|
@@ -110,4 +114,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImpor
|
|
|
110
114
|
}], dateRangeChange: [{
|
|
111
115
|
type: Output
|
|
112
116
|
}] } });
|
|
113
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsZW5kYXItaGVhZGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jYWxlbmRhci9jYWxlbmRhci1oZWFkZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vc3JjL2NhbGVuZGFyL2NhbGVuZGFyLWhlYWRlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDM0QsT0FBTyxFQUFxQixZQUFZLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUN4RSxPQUFPLEVBQUUsVUFBVSxFQUFnQixXQUFXLEVBQUUsWUFBWSxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRWhHLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFlLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNwSSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDOUMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzdELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7O0FBRTdDOzs7O0dBSUc7QUFPSCxNQUFNLE9BQU8saUJBQWlCO0lBTjlCO1FBT1ksUUFBRyxHQUFHLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBRWlCLGNBQVMsR0FBRyxJQUFJLENBQUM7UUFlMUU7O1dBRUc7UUFDZ0IsZUFBVSxHQUF5QixJQUFJLFlBQVksRUFBRSxDQUFDO1FBRXpFOztXQUVHO1FBQ2dCLGdCQUFXLEdBQXlCLElBQUksWUFBWSxFQUFFLENBQUM7UUFFMUU7O1dBRUc7UUFDZ0Isb0JBQWUsR0FBb0MsSUFBSSxZQUFZLEVBQUUsQ0FBQztR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QyxVQUFVLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUMxQyxDQUFDO0lBQ0wsQ0FBQztJQUVELGFBQWEsQ0FBQyxXQUFxQjtRQUMvQixJQUFJLENBQUMsU0FBUyxHQUFHLFdBQVcsQ0FBQyxRQUFRLEVBQUUsS0FBSyxRQUFRLENBQUMsSUFBSSxJQUFJLEVBQUUsQ0FBQyxJQUFJLFdBQVcsQ0FBQyxPQUFPLEVBQUUsS0FBSyxPQUFPLENBQUMsSUFBSSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQ3RILENBQUM7OEdBcEdRLGlCQUFpQjtrR0FBakIsaUJBQWlCLDBWQ3BCOUIsd3BCQWlCQSw0Q0RDYyxZQUFZLDZRQUFFLFdBQVcsK1ZBQUUsU0FBUyxvTEFBRSxnQkFBZ0IsK0lBQUUsUUFBUTs7MkZBRWpFLGlCQUFpQjtrQkFON0IsU0FBUzsrQkFDSSxxQkFBcUIsY0FFbkIsSUFBSSxXQUNQLENBQUMsWUFBWSxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUUsUUFBUSxDQUFDOzhCQUtsQixTQUFTO3NCQUFqRSxXQUFXO3VCQUFDLDBDQUEwQztnQkFNbkQsV0FBVztzQkFEZCxLQUFLO2dCQVFHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBS2EsVUFBVTtzQkFBNUIsTUFBTTtnQkFLWSxXQUFXO3NCQUE3QixNQUFNO2dCQUtZLGVBQWU7c0JBQWpDLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBmcm9tVW5peFRpbWUsIGdldE1vbnRoLCBnZXRZZWFyIH0gZnJvbSAnZGF0ZS1mbnMnO1xuaW1wb3J0IHsgRGF0ZVJhbmdlSXRlbUluZm8sIFRoeURhdGVSYW5nZSB9IGZyb20gJ25neC10ZXRoeXMvZGF0ZS1yYW5nZSc7XG5pbXBvcnQgeyBlbmRPZk1vbnRoLCBGdW5jdGlvblByb3AsIGdldFVuaXhUaW1lLCBzdGFydE9mTW9udGgsIFRpbnlEYXRlIH0gZnJvbSAnbmd4LXRldGh5cy91dGlsJztcblxuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBIb3N0QmluZGluZywgSW5wdXQsIE9uSW5pdCwgT3V0cHV0LCBUZW1wbGF0ZVJlZiwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBUaHlCdXR0b24gfSBmcm9tICduZ3gtdGV0aHlzL2J1dHRvbic7XG5pbXBvcnQgeyBOZ1RlbXBsYXRlT3V0bGV0LCBKc29uUGlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuLyoqXG4gKiDml6XljoblpLTpg6jmk43kvZzmoI/nu4Tku7ZcbiAqIEBuYW1lIHRoeS1jYWxlbmRhci1oZWFkZXJcbiAqIEBvcmRlciAyMFxuICovXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3RoeS1jYWxlbmRhci1oZWFkZXInLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9jYWxlbmRhci1oZWFkZXIuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW1RoeURhdGVSYW5nZSwgRm9ybXNNb2R1bGUsIFRoeUJ1dHRvbiwgTmdUZW1wbGF0ZU91dGxldCwgSnNvblBpcGVdXG59KVxuZXhwb3J0IGNsYXNzIFRoeUNhbGVuZGFySGVhZGVyIGltcGxlbWVudHMgT25Jbml0IHtcbiAgICBwcml2YXRlIGNkciA9IGluamVjdChDaGFuZ2VEZXRlY3RvclJlZik7XG5cbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLnRoeS1jYWxlbmRhci1mdWxsLWhlYWRlci1jb250YWluZXInKSBjbGFzc05hbWUgPSB0cnVlO1xuXG4gICAgLyoqXG4gICAgICog5b2T5YmN6YCJ5Lit5pel5pyfXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBzZXQgY3VycmVudERhdGUodmFsdWU6IFRpbnlEYXRlKSB7XG4gICAgICAgIHRoaXMuc2V0RGF0ZSh2YWx1ZSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogXHToh6rlrprkuYnmuLLmn5Plj7Pkvqfmk43kvZzpoblcbiAgICAgKi9cbiAgICBASW5wdXQoKSBvcGVyYXRpb25SZW5kZXI6IEZ1bmN0aW9uUHJvcDxUZW1wbGF0ZVJlZjxhbnk+PjtcblxuICAgIC8qKlxuICAgICAqIOaXpeacn+mAieaLqeiMg+WbtO+8iOW5tO+8ieWPkeeUn+WPmOWMlueahOWbnuiwg1xuICAgICAqL1xuICAgIEBPdXRwdXQoKSByZWFkb25seSB5ZWFyQ2hhbmdlOiBFdmVudEVtaXR0ZXI8bnVtYmVyPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICAgIC8qKlxuICAgICAqIOaXpeacn+mAieaLqeiMg+WbtO+8iOaciO+8ieWPkeeUn+WPmOWMlueahOWbnuiwg1xuICAgICAqL1xuICAgIEBPdXRwdXQoKSByZWFkb25seSBtb250aENoYW5nZTogRXZlbnRFbWl0dGVyPG51bWJlcj4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgICAvKipcbiAgICAgKiDml6XmnJ/pgInmi6nojIPlm7TvvIjml6XmnJ/vvInlj5HnlJ/lj5jljJbnmoTlm57osINcbiAgICAgKi9cbiAgICBAT3V0cHV0KCkgcmVhZG9ubHkgZGF0ZVJhbmdlQ2hhbmdlOiBFdmVudEVtaXR0ZXI8RGF0ZVJhbmdlSXRlbUluZm8+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gICAgcHVibGljIHBpY2tlckZvcm1hdCA9ICd5eXl55bm0TU3mnIgnO1xuXG4gICAgcHVibGljIGRhdGVSYW5nZXM6IERhdGVSYW5nZUl0ZW1JbmZvW10gPSBbXG4gICAgICAgIHtcbiAgICAgICAgICAgIGtleTogJ21vbnRoJyxcbiAgICAgICAgICAgIHRleHQ6IG5ldyBUaW55RGF0ZSgpLmZvcm1hdCh0aGlzLnBpY2tlckZvcm1hdCksXG4gICAgICAgICAgICBiZWdpbjogZ2V0VW5peFRpbWUoc3RhcnRPZk1vbnRoKG5ldyBEYXRlKCkpKSxcbiAgICAgICAgICAgIGVuZDogZ2V0VW5peFRpbWUoZW5kT2ZNb250aChuZXcgRGF0ZSgpKSksXG4gICAgICAgICAgICB0aW1lc3RhbXA6IHtcbiAgICAgICAgICAgICAgICBpbnRlcnZhbDogMSxcbiAgICAgICAgICAgICAgICB1bml0OiAnbW9udGgnXG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICBdO1xuXG4gICAgcHVibGljIGRhdGU6IERhdGVSYW5nZUl0ZW1JbmZvO1xuXG4gICAgcHJpdmF0ZSBfY3VycmVudERhdGU6IFRpbnlEYXRlO1xuXG4gICAgcHVibGljIGlzQ3VycmVudDogYm9vbGVhbjtcblxuICAgIG5nT25Jbml0KCk6IHZvaWQge31cblxuICAgIG9uQ2hhbmdlTW9udGgobW9udGg6IERhdGVSYW5nZUl0ZW1JbmZvKSB7XG4gICAgICAgIGNvbnN0IGN1cnJlbnRNb250aCA9IGZyb21Vbml4VGltZShtb250aC5iZWdpbikuZ2V0TW9udGgoKTtcbiAgICAgICAgdGhpcy5tb250aENoYW5nZS5lbWl0KGN1cnJlbnRNb250aCk7XG4gICAgfVxuXG4gICAgb25DaGFuZ2VZZWFyKHllYXI6IERhdGVSYW5nZUl0ZW1JbmZvKSB7XG4gICAgICAgIGNvbnN0IGN1cnJlbnRZZWFyID0gZnJvbVVuaXhUaW1lKHllYXIuYmVnaW4pLmdldEZ1bGxZZWFyKCk7XG4gICAgICAgIHRoaXMueWVhckNoYW5nZS5lbWl0KGN1cnJlbnRZZWFyKTtcbiAgICB9XG5cbiAgICBvbkNoYW5nZVJhbmdlKGRhdGVSYW5nZTogRGF0ZVJhbmdlSXRlbUluZm8pIHtcbiAgICAgICAgdGhpcy5pc0N1cnJlbnREYXRlKHRoaXMuX2N1cnJlbnREYXRlKTtcbiAgICAgICAgdGhpcy5vbkNoYW5nZVllYXIoZGF0ZVJhbmdlKTtcbiAgICAgICAgdGhpcy5vbkNoYW5nZU1vbnRoKGRhdGVSYW5nZSk7XG4gICAgICAgIHRoaXMuZGF0ZVJhbmdlQ2hhbmdlLmVtaXQoZGF0ZVJhbmdlKTtcbiAgICB9XG5cbiAgICBiYWNrVG9kYXkoKSB7XG4gICAgICAgIHRoaXMuX2N1cnJlbnREYXRlID0gbmV3IFRpbnlEYXRlKCk7XG4gICAgICAgIHRoaXMuZGF0ZSA9IHsgLi4udGhpcy5kYXRlUmFuZ2VzWzBdIH07XG4gICAgICAgIHRoaXMub25DaGFuZ2VSYW5nZSh0aGlzLmRhdGUpO1xuICAgICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfVxuXG4gICAgc2V0RGF0ZSh2YWx1ZTogVGlueURhdGUpIHtcbiAgICAgICAgdGhpcy5pc0N1cnJlbnREYXRlKHZhbHVlKTtcbiAgICAgICAgaWYgKHRoaXMuaXNDdXJyZW50KSB7XG4gICAgICAgICAgICB0aGlzLl9jdXJyZW50RGF0ZSA9IHZhbHVlO1xuICAgICAgICAgICAgY29uc3QgZGF0ZVJhbmdlID0ge1xuICAgICAgICAgICAgICAgIC4uLnRoaXMuZGF0ZVJhbmdlc1swXSxcbiAgICAgICAgICAgICAgICBrZXk6ICdleGNlcHRpb24nLFxuICAgICAgICAgICAgICAgIHRleHQ6IHRoaXMuX2N1cnJlbnREYXRlLmZvcm1hdCh0aGlzLnBpY2tlckZvcm1hdCksXG4gICAgICAgICAgICAgICAgYmVnaW46IGdldFVuaXhUaW1lKHN0YXJ0T2ZNb250aCh0aGlzLl9jdXJyZW50RGF0ZS5uYXRpdmVEYXRlKSksXG4gICAgICAgICAgICAgICAgZW5kOiBnZXRVbml4VGltZShlbmRPZk1vbnRoKHRoaXMuX2N1cnJlbnREYXRlLm5hdGl2ZURhdGUpKVxuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIHRoaXMuZGF0ZSA9IGRhdGVSYW5nZTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuX2N1cnJlbnREYXRlID0gbmV3IFRpbnlEYXRlKCk7XG4gICAgICAgICAgICB0aGlzLmRhdGUgPSB7IC4uLnRoaXMuZGF0ZVJhbmdlc1swXSB9O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgaXNDdXJyZW50RGF0ZShjdXJyZW50RGF0ZTogVGlueURhdGUpIHtcbiAgICAgICAgdGhpcy5pc0N1cnJlbnQgPSBjdXJyZW50RGF0ZS5nZXRNb250aCgpICE9PSBnZXRNb250aChuZXcgRGF0ZSgpKSB8fCBjdXJyZW50RGF0ZS5nZXRZZWFyKCkgIT09IGdldFllYXIobmV3IERhdGUoKSk7XG4gICAgfVxufVxuIiwiPGRpdiBjbGFzcz1cInRoeS1jYWxlbmRhci1mdWxsLWhlYWRlci1sZWZ0XCI+XG4gIDx0aHktZGF0ZS1yYW5nZVxuICAgIGNsYXNzPVwic2VsZWN0LWRhdGUtcmFuZ2VcIlxuICAgIFtuZ01vZGVsXT1cImRhdGVcIlxuICAgIFt0aHlIaWRkZW5NZW51XT1cInRydWVcIlxuICAgIFt0aHlDdXN0b21LZXldPVwiJ2V4Y2VwdGlvbidcIlxuICAgIFt0aHlQaWNrZXJGb3JtYXRdPVwicGlja2VyRm9ybWF0XCJcbiAgKG5nTW9kZWxDaGFuZ2UpPVwib25DaGFuZ2VSYW5nZSgkZXZlbnQpXCI+PC90aHktZGF0ZS1yYW5nZT5cbiAgQGlmIChpc0N1cnJlbnQpIHtcbiAgICA8YnV0dG9uIHRoeUJ1dHRvbj1cIm91dGxpbmUtZGVmYXVsdC1zcXVhcmVcIiB0aHlTaXplPVwibWRcIiAoY2xpY2spPVwiYmFja1RvZGF5KClcIj7ku4rlpKk8L2J1dHRvbj5cbiAgfVxuPC9kaXY+XG48ZGl2IGNsYXNzPVwidGh5LWNhbGVuZGFyLWZ1bGwtaGVhZGVyLXJpZ2h0XCI+XG4gIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCIkYW55KG9wZXJhdGlvblJlbmRlcik7IGNvbnRleHQ6IHsgJGltcGxpY2l0OiBvcGVyYXRpb25SZW5kZXIgfVwiPlxuICAgIDxzcGFuPnt7IG9wZXJhdGlvblJlbmRlciB8IGpzb24gfX08L3NwYW4+XG4gIDwvbmctY29udGFpbmVyPlxuPC9kaXY+XG4iXX0=
|
|
117
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsZW5kYXItaGVhZGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jYWxlbmRhci9jYWxlbmRhci1oZWFkZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vc3JjL2NhbGVuZGFyL2NhbGVuZGFyLWhlYWRlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDM0QsT0FBTyxFQUFxQixZQUFZLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUN4RSxPQUFPLEVBQUUsVUFBVSxFQUFnQixXQUFXLEVBQUUsWUFBWSxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRWhHLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUF1QixNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDNUksT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQzlDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLFlBQVksRUFBcUIsTUFBTSxpQkFBaUIsQ0FBQztBQUNsRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQzs7O0FBRTNEOzs7O0dBSUc7QUFPSCxNQUFNLE9BQU8saUJBQWlCO0lBTjlCO1FBT1ksUUFBRyxHQUFHLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBQ2hDLGVBQVUsR0FBRyxNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUN2QyxXQUFNLEdBQThCLFlBQVksQ0FBQyxVQUFVLENBQUMsQ0FBQztR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O2dCQUM5RCxHQUFHLEVBQUUsV0FBVyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLFVBQVUsQ0FBQyxDQUFDO2FBQzdELENBQUM7WUFDRixJQUFJLENBQUMsSUFBSSxHQUFHLFNBQVMsQ0FBQztRQUMxQixDQUFDO2FBQU0sQ0FBQztZQUNKLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxRQUFRLEVBQUUsQ0FBQztZQUNuQyxJQUFJLENBQUMsSUFBSSxHQUFHLEVBQUUsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFDMUMsQ0FBQztJQUNMLENBQUM7SUFFRCxhQUFhLENBQUMsV0FBcUI7UUFDL0IsSUFBSSxDQUFDLFNBQVMsR0FBRyxXQUFXLENBQUMsUUFBUSxFQUFFLEtBQUssUUFBUSxDQUFDLElBQUksSUFBSSxFQUFFLENBQUMsSUFBSSxXQUFXLENBQUMsT0FBTyxFQUFFLEtBQUssT0FBTyxDQUFDLElBQUksSUFBSSxFQUFFLENBQUMsQ0FBQztJQUN0SCxDQUFDOzhHQXRHUSxpQkFBaUI7a0dBQWpCLGlCQUFpQiwwVkN0QjlCLGtxQkFpQkEsNENER2MsWUFBWSw2UUFBRSxXQUFXLCtWQUFFLFNBQVMsb0xBQUUsZ0JBQWdCLCtJQUFFLFFBQVE7OzJGQUVqRSxpQkFBaUI7a0JBTjdCLFNBQVM7K0JBQ0kscUJBQXFCLGNBRW5CLElBQUksV0FDUCxDQUFDLFlBQVksRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFLFFBQVEsQ0FBQzs4QkFPbEIsU0FBUztzQkFBakUsV0FBVzt1QkFBQywwQ0FBMEM7Z0JBTW5ELFdBQVc7c0JBRGQsS0FBSztnQkFRRyxlQUFlO3NCQUF2QixLQUFLO2dCQUthLFVBQVU7c0JBQTVCLE1BQU07Z0JBS1ksV0FBVztzQkFBN0IsTUFBTTtnQkFLWSxlQUFlO3NCQUFqQyxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZnJvbVVuaXhUaW1lLCBnZXRNb250aCwgZ2V0WWVhciB9IGZyb20gJ2RhdGUtZm5zJztcbmltcG9ydCB7IERhdGVSYW5nZUl0ZW1JbmZvLCBUaHlEYXRlUmFuZ2UgfSBmcm9tICduZ3gtdGV0aHlzL2RhdGUtcmFuZ2UnO1xuaW1wb3J0IHsgZW5kT2ZNb250aCwgRnVuY3Rpb25Qcm9wLCBnZXRVbml4VGltZSwgc3RhcnRPZk1vbnRoLCBUaW55RGF0ZSB9IGZyb20gJ25neC10ZXRoeXMvdXRpbCc7XG5cbmltcG9ydCB7IENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSG9zdEJpbmRpbmcsIElucHV0LCBPbkluaXQsIE91dHB1dCwgU2lnbmFsLCBUZW1wbGF0ZVJlZiwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBUaHlCdXR0b24gfSBmcm9tICduZ3gtdGV0aHlzL2J1dHRvbic7XG5pbXBvcnQgeyBOZ1RlbXBsYXRlT3V0bGV0LCBKc29uUGlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IGluamVjdExvY2FsZSwgVGh5Q2FsZW5kYXJMb2NhbGUgfSBmcm9tICduZ3gtdGV0aHlzL2kxOG4nO1xuaW1wb3J0IHsgRGF0ZUhlbHBlclNlcnZpY2UgfSBmcm9tICduZ3gtdGV0aHlzL2RhdGUtcGlja2VyJztcblxuLyoqXG4gKiDml6XljoblpLTpg6jmk43kvZzmoI/nu4Tku7ZcbiAqIEBuYW1lIHRoeS1jYWxlbmRhci1oZWFkZXJcbiAqIEBvcmRlciAyMFxuICovXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3RoeS1jYWxlbmRhci1oZWFkZXInLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9jYWxlbmRhci1oZWFkZXIuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW1RoeURhdGVSYW5nZSwgRm9ybXNNb2R1bGUsIFRoeUJ1dHRvbiwgTmdUZW1wbGF0ZU91dGxldCwgSnNvblBpcGVdXG59KVxuZXhwb3J0IGNsYXNzIFRoeUNhbGVuZGFySGVhZGVyIGltcGxlbWVudHMgT25Jbml0IHtcbiAgICBwcml2YXRlIGNkciA9IGluamVjdChDaGFuZ2VEZXRlY3RvclJlZik7XG4gICAgcHJpdmF0ZSBkYXRlSGVscGVyID0gaW5qZWN0KERhdGVIZWxwZXJTZXJ2aWNlKTtcbiAgICBwcml2YXRlIGxvY2FsZTogU2lnbmFsPFRoeUNhbGVuZGFyTG9jYWxlPiA9IGluamVjdExvY2FsZSgnY2FsZW5kYXInKTtcblxuICAgIEBIb3N0QmluZGluZygnY2xhc3MudGh5LWNhbGVuZGFyLWZ1bGwtaGVhZGVyLWNvbnRhaW5lcicpIGNsYXNzTmFtZSA9IHRydWU7XG5cbiAgICAvKipcbiAgICAgKiDlvZPliY3pgInkuK3ml6XmnJ9cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHNldCBjdXJyZW50RGF0ZSh2YWx1ZTogVGlueURhdGUpIHtcbiAgICAgICAgdGhpcy5zZXREYXRlKHZhbHVlKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBcdOiHquWumuS5iea4suafk+WPs+S+p+aTjeS9nOmhuVxuICAgICAqL1xuICAgIEBJbnB1dCgpIG9wZXJhdGlvblJlbmRlcjogRnVuY3Rpb25Qcm9wPFRlbXBsYXRlUmVmPGFueT4+O1xuXG4gICAgLyoqXG4gICAgICog5pel5pyf6YCJ5oup6IyD5Zu077yI5bm077yJ5Y+R55Sf5Y+Y5YyW55qE5Zue6LCDXG4gICAgICovXG4gICAgQE91dHB1dCgpIHJlYWRvbmx5IHllYXJDaGFuZ2U6IEV2ZW50RW1pdHRlcjxudW1iZXI+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gICAgLyoqXG4gICAgICog5pel5pyf6YCJ5oup6IyD5Zu077yI5pyI77yJ5Y+R55Sf5Y+Y5YyW55qE5Zue6LCDXG4gICAgICovXG4gICAgQE91dHB1dCgpIHJlYWRvbmx5IG1vbnRoQ2hhbmdlOiBFdmVudEVtaXR0ZXI8bnVtYmVyPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICAgIC8qKlxuICAgICAqIOaXpeacn+mAieaLqeiMg+WbtO+8iOaXpeacn++8ieWPkeeUn+WPmOWMlueahOWbnuiwg1xuICAgICAqL1xuICAgIEBPdXRwdXQoKSByZWFkb25seSBkYXRlUmFuZ2VDaGFuZ2U6IEV2ZW50RW1pdHRlcjxEYXRlUmFuZ2VJdGVtSW5mbz4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgICBwdWJsaWMgcGlja2VyRm9ybWF0ID0gdGhpcy5sb2NhbGUoKS55ZWFyTW9udGhGb3JtYXQ7XG5cbiAgICBwdWJsaWMgZGF0ZVJhbmdlczogRGF0ZVJhbmdlSXRlbUluZm9bXSA9IFtcbiAgICAgICAge1xuICAgICAgICAgICAga2V5OiAnbW9udGgnLFxuICAgICAgICAgICAgdGV4dDogdGhpcy5kYXRlSGVscGVyLmZvcm1hdChuZXcgVGlueURhdGUoKS5uYXRpdmVEYXRlLCB0aGlzLnBpY2tlckZvcm1hdCksXG4gICAgICAgICAgICBiZWdpbjogZ2V0VW5peFRpbWUoc3RhcnRPZk1vbnRoKG5ldyBEYXRlKCkpKSxcbiAgICAgICAgICAgIGVuZDogZ2V0VW5peFRpbWUoZW5kT2ZNb250aChuZXcgRGF0ZSgpKSksXG4gICAgICAgICAgICB0aW1lc3RhbXA6IHtcbiAgICAgICAgICAgICAgICBpbnRlcnZhbDogMSxcbiAgICAgICAgICAgICAgICB1bml0OiAnbW9udGgnXG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICBdO1xuXG4gICAgcHVibGljIGRhdGU6IERhdGVSYW5nZUl0ZW1JbmZvO1xuXG4gICAgcHJpdmF0ZSBfY3VycmVudERhdGU6IFRpbnlEYXRlO1xuXG4gICAgcHVibGljIGlzQ3VycmVudDogYm9vbGVhbjtcblxuICAgIG5nT25Jbml0KCk6IHZvaWQge31cblxuICAgIG9uQ2hhbmdlTW9udGgobW9udGg6IERhdGVSYW5nZUl0ZW1JbmZvKSB7XG4gICAgICAgIGNvbnN0IGN1cnJlbnRNb250aCA9IGZyb21Vbml4VGltZShtb250aC5iZWdpbikuZ2V0TW9udGgoKTtcbiAgICAgICAgdGhpcy5tb250aENoYW5nZS5lbWl0KGN1cnJlbnRNb250aCk7XG4gICAgfVxuXG4gICAgb25DaGFuZ2VZZWFyKHllYXI6IERhdGVSYW5nZUl0ZW1JbmZvKSB7XG4gICAgICAgIGNvbnN0IGN1cnJlbnRZZWFyID0gZnJvbVVuaXhUaW1lKHllYXIuYmVnaW4pLmdldEZ1bGxZZWFyKCk7XG4gICAgICAgIHRoaXMueWVhckNoYW5nZS5lbWl0KGN1cnJlbnRZZWFyKTtcbiAgICB9XG5cbiAgICBvbkNoYW5nZVJhbmdlKGRhdGVSYW5nZTogRGF0ZVJhbmdlSXRlbUluZm8pIHtcbiAgICAgICAgdGhpcy5pc0N1cnJlbnREYXRlKHRoaXMuX2N1cnJlbnREYXRlKTtcbiAgICAgICAgdGhpcy5vbkNoYW5nZVllYXIoZGF0ZVJhbmdlKTtcbiAgICAgICAgdGhpcy5vbkNoYW5nZU1vbnRoKGRhdGVSYW5nZSk7XG4gICAgICAgIHRoaXMuZGF0ZVJhbmdlQ2hhbmdlLmVtaXQoZGF0ZVJhbmdlKTtcbiAgICB9XG5cbiAgICBiYWNrVG9kYXkoKSB7XG4gICAgICAgIHRoaXMuX2N1cnJlbnREYXRlID0gbmV3IFRpbnlEYXRlKCk7XG4gICAgICAgIHRoaXMuZGF0ZSA9IHsgLi4udGhpcy5kYXRlUmFuZ2VzWzBdIH07XG4gICAgICAgIHRoaXMub25DaGFuZ2VSYW5nZSh0aGlzLmRhdGUpO1xuICAgICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfVxuXG4gICAgc2V0RGF0ZSh2YWx1ZTogVGlueURhdGUpIHtcbiAgICAgICAgdGhpcy5pc0N1cnJlbnREYXRlKHZhbHVlKTtcbiAgICAgICAgaWYgKHRoaXMuaXNDdXJyZW50KSB7XG4gICAgICAgICAgICB0aGlzLl9jdXJyZW50RGF0ZSA9IHZhbHVlO1xuICAgICAgICAgICAgY29uc3QgZGF0ZVJhbmdlID0ge1xuICAgICAgICAgICAgICAgIC4uLnRoaXMuZGF0ZVJhbmdlc1swXSxcbiAgICAgICAgICAgICAgICBrZXk6ICdleGNlcHRpb24nLFxuICAgICAgICAgICAgICAgIHRleHQ6IHRoaXMuX2N1cnJlbnREYXRlLmZvcm1hdCh0aGlzLnBpY2tlckZvcm1hdCksXG4gICAgICAgICAgICAgICAgYmVnaW46IGdldFVuaXhUaW1lKHN0YXJ0T2ZNb250aCh0aGlzLl9jdXJyZW50RGF0ZS5uYXRpdmVEYXRlKSksXG4gICAgICAgICAgICAgICAgZW5kOiBnZXRVbml4VGltZShlbmRPZk1vbnRoKHRoaXMuX2N1cnJlbnREYXRlLm5hdGl2ZURhdGUpKVxuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIHRoaXMuZGF0ZSA9IGRhdGVSYW5nZTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuX2N1cnJlbnREYXRlID0gbmV3IFRpbnlEYXRlKCk7XG4gICAgICAgICAgICB0aGlzLmRhdGUgPSB7IC4uLnRoaXMuZGF0ZVJhbmdlc1swXSB9O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgaXNDdXJyZW50RGF0ZShjdXJyZW50RGF0ZTogVGlueURhdGUpIHtcbiAgICAgICAgdGhpcy5pc0N1cnJlbnQgPSBjdXJyZW50RGF0ZS5nZXRNb250aCgpICE9PSBnZXRNb250aChuZXcgRGF0ZSgpKSB8fCBjdXJyZW50RGF0ZS5nZXRZZWFyKCkgIT09IGdldFllYXIobmV3IERhdGUoKSk7XG4gICAgfVxufVxuIiwiPGRpdiBjbGFzcz1cInRoeS1jYWxlbmRhci1mdWxsLWhlYWRlci1sZWZ0XCI+XG4gIDx0aHktZGF0ZS1yYW5nZVxuICAgIGNsYXNzPVwic2VsZWN0LWRhdGUtcmFuZ2VcIlxuICAgIFtuZ01vZGVsXT1cImRhdGVcIlxuICAgIFt0aHlIaWRkZW5NZW51XT1cInRydWVcIlxuICAgIFt0aHlDdXN0b21LZXldPVwiJ2V4Y2VwdGlvbidcIlxuICAgIFt0aHlQaWNrZXJGb3JtYXRdPVwicGlja2VyRm9ybWF0XCJcbiAgICAobmdNb2RlbENoYW5nZSk9XCJvbkNoYW5nZVJhbmdlKCRldmVudClcIj48L3RoeS1kYXRlLXJhbmdlPlxuICBAaWYgKGlzQ3VycmVudCkge1xuICAgIDxidXR0b24gdGh5QnV0dG9uPVwib3V0bGluZS1kZWZhdWx0LXNxdWFyZVwiIHRoeVNpemU9XCJtZFwiIChjbGljayk9XCJiYWNrVG9kYXkoKVwiPnt7IGxvY2FsZSgpLnRvZGF5IH19PC9idXR0b24+XG4gIH1cbjwvZGl2PlxuPGRpdiBjbGFzcz1cInRoeS1jYWxlbmRhci1mdWxsLWhlYWRlci1yaWdodFwiPlxuICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiJGFueShvcGVyYXRpb25SZW5kZXIpOyBjb250ZXh0OiB7ICRpbXBsaWNpdDogb3BlcmF0aW9uUmVuZGVyIH1cIj5cbiAgICA8c3Bhbj57eyBvcGVyYXRpb25SZW5kZXIgfCBqc29uIH19PC9zcGFuPlxuICA8L25nLWNvbnRhaW5lcj5cbjwvZGl2PlxuIl19
|