@odx/angular 12.17.4 → 12.17.6
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 +13 -0
- package/cdk/date-input/README.md +3 -0
- package/cdk/date-input/index.d.ts +4 -0
- package/cdk/date-input/lib/date.config.d.ts +48 -0
- package/cdk/date-input/lib/models/input-date-order.d.ts +17 -0
- package/cdk/date-input/lib/utils/get-date-input-pattern.d.ts +5 -0
- package/cdk/date-input/lib/utils/get-input-value-as-date.d.ts +3 -0
- package/components/datepicker/index.d.ts +0 -1
- package/components/datepicker/lib/datepicker.component.d.ts +6 -1
- package/components/datepicker/lib/datepicker.config.d.ts +1 -48
- package/components/daterangepicker/index.d.ts +0 -1
- package/components/daterangepicker/lib/daterangepicker.component.d.ts +6 -1
- package/components/daterangepicker/lib/daterangepicker.config.d.ts +1 -48
- package/esm2022/cdk/date-input/index.mjs +5 -0
- package/esm2022/cdk/date-input/lib/date.config.mjs +26 -0
- package/esm2022/cdk/date-input/lib/models/input-date-order.mjs +16 -0
- package/esm2022/cdk/date-input/lib/utils/get-date-input-pattern.mjs +18 -0
- package/esm2022/cdk/date-input/lib/utils/get-input-value-as-date.mjs +38 -0
- package/esm2022/cdk/date-input/odx-angular-cdk-date-input.mjs +5 -0
- package/esm2022/components/datepicker/index.mjs +1 -2
- package/esm2022/components/datepicker/lib/datepicker.component.mjs +15 -11
- package/esm2022/components/datepicker/lib/datepicker.config.mjs +52 -26
- package/esm2022/components/datepicker/lib/directives/datepicker-input-control.directive.mjs +6 -7
- package/esm2022/components/daterangepicker/index.mjs +1 -2
- package/esm2022/components/daterangepicker/lib/daterangepicker.component.mjs +16 -12
- package/esm2022/components/daterangepicker/lib/daterangepicker.config.mjs +52 -26
- package/esm2022/components/daterangepicker/lib/directives/daterangepicker-input-control.directive.mjs +6 -7
- package/esm2022/lib/models/index.mjs +1 -1
- package/fesm2022/odx-angular-cdk-date-input.mjs +102 -0
- package/fesm2022/odx-angular-cdk-date-input.mjs.map +1 -0
- package/fesm2022/odx-angular-components-datepicker.mjs +22 -102
- package/fesm2022/odx-angular-components-datepicker.mjs.map +1 -1
- package/fesm2022/odx-angular-components-daterangepicker.mjs +23 -88
- package/fesm2022/odx-angular-components-daterangepicker.mjs.map +1 -1
- package/package.json +25 -19
- package/components/datepicker/lib/models/datepicker-input-date-order.d.ts +0 -6
- package/components/datepicker/lib/models/datepicker-input-pattern.d.ts +0 -11
- package/components/datepicker/lib/models/index.d.ts +0 -2
- package/components/datepicker/lib/utils/get-datepicker-input-pattern.d.ts +0 -5
- package/components/datepicker/lib/utils/get-datepicker-input-value-as-date.d.ts +0 -3
- package/components/datepicker/lib/utils/index.d.ts +0 -2
- package/components/daterangepicker/lib/models/daterangepicker-input-date-order.d.ts +0 -1
- package/components/daterangepicker/lib/models/daterangepicker-input-pattern.d.ts +0 -1
- package/components/daterangepicker/lib/models/index.d.ts +0 -2
- package/components/daterangepicker/lib/utils/get-daterangepicker-input-pattern.d.ts +0 -5
- package/components/daterangepicker/lib/utils/get-daterangepicker-input-value-as-date.d.ts +0 -3
- package/components/daterangepicker/lib/utils/index.d.ts +0 -2
- package/esm2022/components/datepicker/lib/models/datepicker-input-date-order.mjs +0 -6
- package/esm2022/components/datepicker/lib/models/datepicker-input-pattern.mjs +0 -11
- package/esm2022/components/datepicker/lib/models/index.mjs +0 -3
- package/esm2022/components/datepicker/lib/utils/get-datepicker-input-pattern.mjs +0 -18
- package/esm2022/components/datepicker/lib/utils/get-datepicker-input-value-as-date.mjs +0 -31
- package/esm2022/components/datepicker/lib/utils/index.mjs +0 -3
- package/esm2022/components/daterangepicker/lib/models/daterangepicker-input-date-order.mjs +0 -2
- package/esm2022/components/daterangepicker/lib/models/daterangepicker-input-pattern.mjs +0 -2
- package/esm2022/components/daterangepicker/lib/models/index.mjs +0 -3
- package/esm2022/components/daterangepicker/lib/utils/get-daterangepicker-input-pattern.mjs +0 -18
- package/esm2022/components/daterangepicker/lib/utils/get-daterangepicker-input-value-as-date.mjs +0 -31
- package/esm2022/components/daterangepicker/lib/utils/index.mjs +0 -3
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,18 @@
|
|
|
1
1
|
# @odx/angular
|
|
2
2
|
|
|
3
|
+
## 12.17.6
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- add37c7: fixed: odx-card launch-title spacing for small screens;
|
|
8
|
+
changed access modifier from protected to public for 'openDatepicker' and 'openDaterangepicker';
|
|
9
|
+
|
|
10
|
+
## 12.17.5
|
|
11
|
+
|
|
12
|
+
### Patch Changes
|
|
13
|
+
|
|
14
|
+
- f2b31a2: fixed: datepicker manual input year bug
|
|
15
|
+
|
|
3
16
|
## 12.17.4
|
|
4
17
|
|
|
5
18
|
### Patch Changes
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { InputDateOrder } from './models/input-date-order';
|
|
2
|
+
export interface DateConfig {
|
|
3
|
+
/**
|
|
4
|
+
* Date's order ('DMY' | 'MDY' | 'YMD').
|
|
5
|
+
* @default InputDateOrder.DMY
|
|
6
|
+
*/
|
|
7
|
+
inputDateOrder: InputDateOrder;
|
|
8
|
+
/**
|
|
9
|
+
* Single-character date's separator (dot, slash etc.).
|
|
10
|
+
* @default '.'
|
|
11
|
+
*/
|
|
12
|
+
inputDateSeparator: string;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Tools for injecting and providing the date configuration with default configuration for the date.
|
|
16
|
+
*
|
|
17
|
+
* @example
|
|
18
|
+
* // Providing custom date configuration.
|
|
19
|
+
* ```ts
|
|
20
|
+
* @Component({
|
|
21
|
+
* providers: [provideDateConfig({ inputDateOrder: InputDateOrder.MDY, inputDateSeparator: '/'})]
|
|
22
|
+
* })
|
|
23
|
+
* export class MyComponent {}
|
|
24
|
+
*
|
|
25
|
+
* // Injecting the date configuration.
|
|
26
|
+
* ```ts
|
|
27
|
+
* @Component({})
|
|
28
|
+
* export class MyComponent {
|
|
29
|
+
* constructor(@Inject(injectDateConfig()) private readonly dateConfig: DateConfig) {}
|
|
30
|
+
* }
|
|
31
|
+
* ```
|
|
32
|
+
*/
|
|
33
|
+
export declare const DateConfig: import("@angular/core").InjectionToken<Partial<{
|
|
34
|
+
inputDateOrder: string;
|
|
35
|
+
inputDateSeparator: string;
|
|
36
|
+
}>>, DateDefaultConfig: {
|
|
37
|
+
inputDateOrder: string;
|
|
38
|
+
inputDateSeparator: string;
|
|
39
|
+
}, injectDateConfig: () => {
|
|
40
|
+
inputDateOrder: string;
|
|
41
|
+
inputDateSeparator: string;
|
|
42
|
+
}, provideDateConfig: <D extends import("@odx/angular/utils").ConfigDependencies = import("@odx/angular/utils").ConfigDependencies<Partial<{
|
|
43
|
+
inputDateOrder: string;
|
|
44
|
+
inputDateSeparator: string;
|
|
45
|
+
}>>>(config: import("@odx/angular/utils").ConfigProvider<Partial<{
|
|
46
|
+
inputDateOrder: string;
|
|
47
|
+
inputDateSeparator: string;
|
|
48
|
+
}>, D>) => import("@angular/core").FactoryProvider | import("@angular/core").ValueProvider;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
export type InputDateOrder = (typeof InputDateOrder)[keyof typeof InputDateOrder];
|
|
2
|
+
export declare const InputDateOrder: {
|
|
3
|
+
DMY: string;
|
|
4
|
+
MDY: string;
|
|
5
|
+
YMD: string;
|
|
6
|
+
};
|
|
7
|
+
export type DateInputPattern = typeof DateInputFormat | typeof DateInputMask;
|
|
8
|
+
export declare const DateInputFormat: {
|
|
9
|
+
DAYS: string;
|
|
10
|
+
MONTH: string;
|
|
11
|
+
YEAR: string;
|
|
12
|
+
};
|
|
13
|
+
export declare const DateInputMask: {
|
|
14
|
+
DAYS: string;
|
|
15
|
+
MONTH: string;
|
|
16
|
+
YEAR: string;
|
|
17
|
+
};
|
|
@@ -117,10 +117,15 @@ export declare class DatepickerComponent extends CustomFormControl<Date | null>
|
|
|
117
117
|
* @param {Date | null} value - The new value.
|
|
118
118
|
*/
|
|
119
119
|
writeValue(value: Date | null): void;
|
|
120
|
+
/**
|
|
121
|
+
* Opens the datepicker dropdown.
|
|
122
|
+
*
|
|
123
|
+
* @param {KeyboardEvent} event
|
|
124
|
+
*/
|
|
125
|
+
openDatepicker(event?: KeyboardEvent): void;
|
|
120
126
|
protected updateInternalValue(value: Date | null): void;
|
|
121
127
|
protected handleDateFieldChanges(): void;
|
|
122
128
|
protected handleDateFieldFocus(): void;
|
|
123
|
-
protected openDatepicker(event: KeyboardEvent): void;
|
|
124
129
|
private updateDateField;
|
|
125
130
|
static ɵfac: i0.ɵɵFactoryDeclaration<DatepickerComponent, never>;
|
|
126
131
|
static ɵcmp: i0.ɵɵComponentDeclaration<DatepickerComponent, "odx-datepicker", never, { "filterFn": { "alias": "filterFn"; "required": false; }; "minDate": { "alias": "minDate"; "required": false; }; "maxDate": { "alias": "maxDate"; "required": false; }; "dropdownPosition": { "alias": "dropdownPosition"; "required": false; }; "clearable": { "alias": "clearable"; "required": false; "isSignal": true; }; }, { "selectedChange": "selectedChange"; }, ["dateField"], ["input[odxDatepickerControl]", "[odxButton]"], true, never>;
|
|
@@ -1,48 +1 @@
|
|
|
1
|
-
|
|
2
|
-
export interface DatepickerConfig {
|
|
3
|
-
/**
|
|
4
|
-
* Date's order ('DMY' | 'MDY' | 'YMD').
|
|
5
|
-
* @default DatepickerInputDateOrder.DMY
|
|
6
|
-
*/
|
|
7
|
-
inputDateOrder: DatepickerInputDateOrder;
|
|
8
|
-
/**
|
|
9
|
-
* Single-character date's separator (dot, slash etc.).
|
|
10
|
-
* @default '.'
|
|
11
|
-
*/
|
|
12
|
-
inputDateSeparator: string;
|
|
13
|
-
}
|
|
14
|
-
/**
|
|
15
|
-
* Tools for injecting and providing the datepicker configuration with default configuration for the datepicker.
|
|
16
|
-
*
|
|
17
|
-
* @example
|
|
18
|
-
* // Providing custom datepicker configuration.
|
|
19
|
-
* ```ts
|
|
20
|
-
* @Component({
|
|
21
|
-
* providers: [provideDatepickerConfig({ inputDateOrder: DatepickerInputDateOrder.MDY, inputDateSeparator: '/'})]
|
|
22
|
-
* })
|
|
23
|
-
* export class MyComponent {}
|
|
24
|
-
*
|
|
25
|
-
* // Injecting the datepicker configuration.
|
|
26
|
-
* ```ts
|
|
27
|
-
* @Component({})
|
|
28
|
-
* export class MyComponent {
|
|
29
|
-
* constructor(@Inject(injectDatepickerConfig()) private readonly datepickerConfig: DatepickerConfig) {}
|
|
30
|
-
* }
|
|
31
|
-
* ```
|
|
32
|
-
*/
|
|
33
|
-
export declare const DatepickerConfig: import("@angular/core").InjectionToken<Partial<{
|
|
34
|
-
inputDateOrder: string;
|
|
35
|
-
inputDateSeparator: string;
|
|
36
|
-
}>>, DatepickerDefaultConfig: {
|
|
37
|
-
inputDateOrder: string;
|
|
38
|
-
inputDateSeparator: string;
|
|
39
|
-
}, injectDatepickerConfig: () => {
|
|
40
|
-
inputDateOrder: string;
|
|
41
|
-
inputDateSeparator: string;
|
|
42
|
-
}, provideDatepickerConfig: <D extends import("@odx/angular/utils").ConfigDependencies = import("@odx/angular/utils").ConfigDependencies<Partial<{
|
|
43
|
-
inputDateOrder: string;
|
|
44
|
-
inputDateSeparator: string;
|
|
45
|
-
}>>>(config: import("@odx/angular/utils").ConfigProvider<Partial<{
|
|
46
|
-
inputDateOrder: string;
|
|
47
|
-
inputDateSeparator: string;
|
|
48
|
-
}>, D>) => import("@angular/core").FactoryProvider | import("@angular/core").ValueProvider;
|
|
1
|
+
export { DateConfig as DatepickerConfig, DateDefaultConfig as DatepickerDefaultConfig, InputDateOrder as DatepickerInputDateOrder, DateInputFormat as DatepickerInputFormat, DateInputMask as DatepickerInputMask, DateInputPattern as DatepickerInputPattern, getDateInputFormat as getDatepickerInputFormat, getDateInputMask as getDatepickerInputMask, getDateInputValueAsDate as getDatepickerInputValueAsDate, injectDateConfig as injectDatepickerDateConfig, provideDateConfig as provideDatepickerConfig, } from '@odx/angular/cdk/date-input';
|
|
@@ -2,6 +2,5 @@ export * from './lib/daterangepicker.component';
|
|
|
2
2
|
export * from './lib/daterangepicker.config';
|
|
3
3
|
export * from './lib/daterangepicker.module';
|
|
4
4
|
export * from './lib/directives';
|
|
5
|
-
export * from './lib/models';
|
|
6
5
|
export * from './lib/range.validator';
|
|
7
6
|
export * from './lib/required.validator';
|
|
@@ -140,12 +140,17 @@ export declare class DaterangepickerComponent extends CustomFormControl<DateRang
|
|
|
140
140
|
* @param {DateRange | null} value - The new date range value.
|
|
141
141
|
*/
|
|
142
142
|
writeValue(value: DateRange | null): void;
|
|
143
|
+
/**
|
|
144
|
+
* Opens the date range picker dropdown.
|
|
145
|
+
*
|
|
146
|
+
* @param {KeyboardEvent} event
|
|
147
|
+
*/
|
|
148
|
+
openDaterangepicker(event?: KeyboardEvent): void;
|
|
143
149
|
protected isEmpty(value: DateRange | null): boolean;
|
|
144
150
|
protected updateInternalValue(value: DateRange): void;
|
|
145
151
|
protected handleDateFieldChanges(): void;
|
|
146
152
|
protected updateWidth(target: DaterangepickerInputControlDirective | undefined, source: ElementRef<HTMLElement>, value?: string): void;
|
|
147
153
|
protected handleDateFieldFocus(): void;
|
|
148
|
-
protected openDaterangepicker(event: KeyboardEvent): void;
|
|
149
154
|
private updateStartDateField;
|
|
150
155
|
private updateEndDateField;
|
|
151
156
|
private updateInputFields;
|
|
@@ -1,48 +1 @@
|
|
|
1
|
-
|
|
2
|
-
export interface DaterangepickerConfig {
|
|
3
|
-
/**
|
|
4
|
-
* Date's order ('DMY' | 'MDY' | 'YMD').
|
|
5
|
-
* @default DaterangepickerInputDateOrder.DMY
|
|
6
|
-
*/
|
|
7
|
-
inputDateOrder: DaterangepickerInputDateOrder;
|
|
8
|
-
/**
|
|
9
|
-
* Single-character date's separator (dot, slash etc.).
|
|
10
|
-
* @default '.'
|
|
11
|
-
*/
|
|
12
|
-
inputDateSeparator: string;
|
|
13
|
-
}
|
|
14
|
-
/**
|
|
15
|
-
* Tools for injecting and providing the daterangepicker configuration with default configuration for the daterangepicker.
|
|
16
|
-
*
|
|
17
|
-
* @example
|
|
18
|
-
* // Providing custom daterangepicker configuration.
|
|
19
|
-
* ```ts
|
|
20
|
-
* @Component({
|
|
21
|
-
* providers: [provideDaterangepickerConfig({ inputDateOrder: DaterangepickerInputDateOrder.MDY, inputDateSeparator: '/'})]
|
|
22
|
-
* })
|
|
23
|
-
* export class MyComponent {}
|
|
24
|
-
*
|
|
25
|
-
* // Injecting the daterangepicker configuration.
|
|
26
|
-
* ```ts
|
|
27
|
-
* @Component({})
|
|
28
|
-
* export class MyComponent {
|
|
29
|
-
* constructor(@Inject(injectDaterangepickerConfig()) private readonly daterangepickerConfig: DaterangepickerConfig) {}
|
|
30
|
-
* }
|
|
31
|
-
* ```
|
|
32
|
-
*/
|
|
33
|
-
export declare const DaterangepickerConfig: import("@angular/core").InjectionToken<Partial<{
|
|
34
|
-
inputDateOrder: string;
|
|
35
|
-
inputDateSeparator: string;
|
|
36
|
-
}>>, DaterangepickerDefaultConfig: {
|
|
37
|
-
inputDateOrder: string;
|
|
38
|
-
inputDateSeparator: string;
|
|
39
|
-
}, injectDaterangepickerConfig: () => {
|
|
40
|
-
inputDateOrder: string;
|
|
41
|
-
inputDateSeparator: string;
|
|
42
|
-
}, provideDaterangepickerConfig: <D extends import("@odx/angular/utils").ConfigDependencies = import("@odx/angular/utils").ConfigDependencies<Partial<{
|
|
43
|
-
inputDateOrder: string;
|
|
44
|
-
inputDateSeparator: string;
|
|
45
|
-
}>>>(config: import("@odx/angular/utils").ConfigProvider<Partial<{
|
|
46
|
-
inputDateOrder: string;
|
|
47
|
-
inputDateSeparator: string;
|
|
48
|
-
}>, D>) => import("@angular/core").FactoryProvider | import("@angular/core").ValueProvider;
|
|
1
|
+
export { DateConfig as DaterangepickerConfig, DateDefaultConfig as DaterangepickerDefaultConfig, InputDateOrder as DaterangepickerInputDateOrder, DateInputFormat as DaterangepickerInputFormat, DateInputMask as DaterangepickerInputMask, DateInputPattern as DaterangepickerInputPattern, getDateInputFormat as getDaterangepickerInputFormat, getDateInputMask as getDaterangepickerInputMask, getDateInputValueAsDate as getDaterangepickerInputValueAsDate, injectDateConfig as injectDaterangepickerDateConfig, provideDateConfig as provideDaterangepickerConfig, } from '@odx/angular/cdk/date-input';
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export * from './lib/date.config';
|
|
2
|
+
export * from './lib/models/input-date-order';
|
|
3
|
+
export * from './lib/utils/get-date-input-pattern';
|
|
4
|
+
export * from './lib/utils/get-input-value-as-date';
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvY2RrL2RhdGUtaW5wdXQvc3JjL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsbUJBQW1CLENBQUM7QUFDbEMsY0FBYywrQkFBK0IsQ0FBQztBQUM5QyxjQUFjLG9DQUFvQyxDQUFDO0FBQ25ELGNBQWMscUNBQXFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2xpYi9kYXRlLmNvbmZpZyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2RlbHMvaW5wdXQtZGF0ZS1vcmRlcic7XG5leHBvcnQgKiBmcm9tICcuL2xpYi91dGlscy9nZXQtZGF0ZS1pbnB1dC1wYXR0ZXJuJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3V0aWxzL2dldC1pbnB1dC12YWx1ZS1hcy1kYXRlJztcbiJdfQ==
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { createConfigTokens } from '@odx/angular/utils';
|
|
2
|
+
import { InputDateOrder } from './models/input-date-order';
|
|
3
|
+
/**
|
|
4
|
+
* Tools for injecting and providing the date configuration with default configuration for the date.
|
|
5
|
+
*
|
|
6
|
+
* @example
|
|
7
|
+
* // Providing custom date configuration.
|
|
8
|
+
* ```ts
|
|
9
|
+
* @Component({
|
|
10
|
+
* providers: [provideDateConfig({ inputDateOrder: InputDateOrder.MDY, inputDateSeparator: '/'})]
|
|
11
|
+
* })
|
|
12
|
+
* export class MyComponent {}
|
|
13
|
+
*
|
|
14
|
+
* // Injecting the date configuration.
|
|
15
|
+
* ```ts
|
|
16
|
+
* @Component({})
|
|
17
|
+
* export class MyComponent {
|
|
18
|
+
* constructor(@Inject(injectDateConfig()) private readonly dateConfig: DateConfig) {}
|
|
19
|
+
* }
|
|
20
|
+
* ```
|
|
21
|
+
*/
|
|
22
|
+
export const { DateConfig, DateDefaultConfig, injectDateConfig, provideDateConfig } = createConfigTokens('Date', '@odx/angular/components/date', {
|
|
23
|
+
inputDateOrder: InputDateOrder.DMY,
|
|
24
|
+
inputDateSeparator: '.',
|
|
25
|
+
});
|
|
26
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS5jb25maWcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvY2RrL2RhdGUtaW5wdXQvc3JjL2xpYi9kYXRlLmNvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUN4RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFlM0Q7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQWtCRztBQUNILE1BQU0sQ0FBQyxNQUFNLEVBQUUsVUFBVSxFQUFFLGlCQUFpQixFQUFFLGdCQUFnQixFQUFFLGlCQUFpQixFQUFFLEdBQUcsa0JBQWtCLENBQUMsTUFBTSxFQUFFLDhCQUE4QixFQUFFO0lBQy9JLGNBQWMsRUFBRSxjQUFjLENBQUMsR0FBRztJQUNsQyxrQkFBa0IsRUFBRSxHQUFHO0NBQ3hCLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNyZWF0ZUNvbmZpZ1Rva2VucyB9IGZyb20gJ0BvZHgvYW5ndWxhci91dGlscyc7XG5pbXBvcnQgeyBJbnB1dERhdGVPcmRlciB9IGZyb20gJy4vbW9kZWxzL2lucHV0LWRhdGUtb3JkZXInO1xuXG5leHBvcnQgaW50ZXJmYWNlIERhdGVDb25maWcge1xuICAvKipcbiAgICogRGF0ZSdzIG9yZGVyICgnRE1ZJyB8ICdNRFknIHwgJ1lNRCcpLlxuICAgKiBAZGVmYXVsdCBJbnB1dERhdGVPcmRlci5ETVlcbiAgICovXG4gIGlucHV0RGF0ZU9yZGVyOiBJbnB1dERhdGVPcmRlcjtcbiAgLyoqXG4gICAqIFNpbmdsZS1jaGFyYWN0ZXIgZGF0ZSdzIHNlcGFyYXRvciAoZG90LCBzbGFzaCBldGMuKS5cbiAgICogQGRlZmF1bHQgJy4nXG4gICAqL1xuICBpbnB1dERhdGVTZXBhcmF0b3I6IHN0cmluZztcbn1cblxuLyoqXG4gKiBUb29scyBmb3IgaW5qZWN0aW5nIGFuZCBwcm92aWRpbmcgdGhlIGRhdGUgY29uZmlndXJhdGlvbiB3aXRoIGRlZmF1bHQgY29uZmlndXJhdGlvbiBmb3IgdGhlIGRhdGUuXG4gKlxuICogQGV4YW1wbGVcbiAqIC8vIFByb3ZpZGluZyBjdXN0b20gZGF0ZSBjb25maWd1cmF0aW9uLlxuICogYGBgdHNcbiAqIEBDb21wb25lbnQoe1xuICogICBwcm92aWRlcnM6IFtwcm92aWRlRGF0ZUNvbmZpZyh7IGlucHV0RGF0ZU9yZGVyOiBJbnB1dERhdGVPcmRlci5NRFksIGlucHV0RGF0ZVNlcGFyYXRvcjogJy8nfSldXG4gKiB9KVxuICogZXhwb3J0IGNsYXNzIE15Q29tcG9uZW50IHt9XG4gKlxuICogLy8gSW5qZWN0aW5nIHRoZSBkYXRlIGNvbmZpZ3VyYXRpb24uXG4gKiBgYGB0c1xuICogQENvbXBvbmVudCh7fSlcbiAqIGV4cG9ydCBjbGFzcyBNeUNvbXBvbmVudCB7XG4gKiAgY29uc3RydWN0b3IoQEluamVjdChpbmplY3REYXRlQ29uZmlnKCkpIHByaXZhdGUgcmVhZG9ubHkgZGF0ZUNvbmZpZzogRGF0ZUNvbmZpZykge31cbiAqIH1cbiAqIGBgYFxuICovXG5leHBvcnQgY29uc3QgeyBEYXRlQ29uZmlnLCBEYXRlRGVmYXVsdENvbmZpZywgaW5qZWN0RGF0ZUNvbmZpZywgcHJvdmlkZURhdGVDb25maWcgfSA9IGNyZWF0ZUNvbmZpZ1Rva2VucygnRGF0ZScsICdAb2R4L2FuZ3VsYXIvY29tcG9uZW50cy9kYXRlJywge1xuICBpbnB1dERhdGVPcmRlcjogSW5wdXREYXRlT3JkZXIuRE1ZLFxuICBpbnB1dERhdGVTZXBhcmF0b3I6ICcuJyxcbn0pO1xuIl19
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
export const InputDateOrder = {
|
|
2
|
+
DMY: 'DMY',
|
|
3
|
+
MDY: 'MDY',
|
|
4
|
+
YMD: 'YMD',
|
|
5
|
+
};
|
|
6
|
+
export const DateInputFormat = {
|
|
7
|
+
DAYS: 'dd',
|
|
8
|
+
MONTH: 'MM',
|
|
9
|
+
YEAR: 'yyyy',
|
|
10
|
+
};
|
|
11
|
+
export const DateInputMask = {
|
|
12
|
+
DAYS: 'd0',
|
|
13
|
+
MONTH: 'M0',
|
|
14
|
+
YEAR: '0000',
|
|
15
|
+
};
|
|
16
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtZGF0ZS1vcmRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci9jZGsvZGF0ZS1pbnB1dC9zcmMvbGliL21vZGVscy9pbnB1dC1kYXRlLW9yZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE1BQU0sQ0FBQyxNQUFNLGNBQWMsR0FBRztJQUM1QixHQUFHLEVBQUUsS0FBSztJQUNWLEdBQUcsRUFBRSxLQUFLO0lBQ1YsR0FBRyxFQUFFLEtBQUs7Q0FDWCxDQUFDO0FBSUYsTUFBTSxDQUFDLE1BQU0sZUFBZSxHQUFHO0lBQzdCLElBQUksRUFBRSxJQUFJO0lBQ1YsS0FBSyxFQUFFLElBQUk7SUFDWCxJQUFJLEVBQUUsTUFBTTtDQUNiLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxhQUFhLEdBQUc7SUFDM0IsSUFBSSxFQUFFLElBQUk7SUFDVixLQUFLLEVBQUUsSUFBSTtJQUNYLElBQUksRUFBRSxNQUFNO0NBQ2IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB0eXBlIElucHV0RGF0ZU9yZGVyID0gKHR5cGVvZiBJbnB1dERhdGVPcmRlcilba2V5b2YgdHlwZW9mIElucHV0RGF0ZU9yZGVyXTtcblxuZXhwb3J0IGNvbnN0IElucHV0RGF0ZU9yZGVyID0ge1xuICBETVk6ICdETVknLFxuICBNRFk6ICdNRFknLFxuICBZTUQ6ICdZTUQnLFxufTtcblxuZXhwb3J0IHR5cGUgRGF0ZUlucHV0UGF0dGVybiA9IHR5cGVvZiBEYXRlSW5wdXRGb3JtYXQgfCB0eXBlb2YgRGF0ZUlucHV0TWFzaztcblxuZXhwb3J0IGNvbnN0IERhdGVJbnB1dEZvcm1hdCA9IHtcbiAgREFZUzogJ2RkJyxcbiAgTU9OVEg6ICdNTScsXG4gIFlFQVI6ICd5eXl5Jyxcbn07XG5cbmV4cG9ydCBjb25zdCBEYXRlSW5wdXRNYXNrID0ge1xuICBEQVlTOiAnZDAnLFxuICBNT05USDogJ00wJyxcbiAgWUVBUjogJzAwMDAnLFxufTtcbiJdfQ==
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { DateInputFormat, DateInputMask, InputDateOrder } from '../models/input-date-order';
|
|
2
|
+
function getDateInputPattern({ inputDateOrder, inputDateSeparator }, pattern) {
|
|
3
|
+
const patternList = {
|
|
4
|
+
[InputDateOrder.DMY]: `${pattern.DAYS}${inputDateSeparator}${pattern.MONTH}${inputDateSeparator}${pattern.YEAR}`,
|
|
5
|
+
[InputDateOrder.MDY]: `${pattern.MONTH}${inputDateSeparator}${pattern.DAYS}${inputDateSeparator}${pattern.YEAR}`,
|
|
6
|
+
[InputDateOrder.YMD]: `${pattern.YEAR}${inputDateSeparator}${pattern.MONTH}${inputDateSeparator}${pattern.DAYS}`,
|
|
7
|
+
};
|
|
8
|
+
return patternList[inputDateOrder];
|
|
9
|
+
}
|
|
10
|
+
/** @internal */
|
|
11
|
+
export function getDateInputFormat(config) {
|
|
12
|
+
return getDateInputPattern(config, DateInputFormat);
|
|
13
|
+
}
|
|
14
|
+
/** @internal */
|
|
15
|
+
export function getDateInputMask(config) {
|
|
16
|
+
return getDateInputPattern(config, DateInputMask);
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0LWRhdGUtaW5wdXQtcGF0dGVybi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci9jZGsvZGF0ZS1pbnB1dC9zcmMvbGliL3V0aWxzL2dldC1kYXRlLWlucHV0LXBhdHRlcm4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLGVBQWUsRUFBRSxhQUFhLEVBQW9CLGNBQWMsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBRTlHLFNBQVMsbUJBQW1CLENBQUMsRUFBRSxjQUFjLEVBQUUsa0JBQWtCLEVBQWMsRUFBRSxPQUF5QjtJQUN4RyxNQUFNLFdBQVcsR0FBbUM7UUFDbEQsQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLEVBQUUsR0FBRyxPQUFPLENBQUMsSUFBSSxHQUFHLGtCQUFrQixHQUFHLE9BQU8sQ0FBQyxLQUFLLEdBQUcsa0JBQWtCLEdBQUcsT0FBTyxDQUFDLElBQUksRUFBRTtRQUNoSCxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsRUFBRSxHQUFHLE9BQU8sQ0FBQyxLQUFLLEdBQUcsa0JBQWtCLEdBQUcsT0FBTyxDQUFDLElBQUksR0FBRyxrQkFBa0IsR0FBRyxPQUFPLENBQUMsSUFBSSxFQUFFO1FBQ2hILENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQyxFQUFFLEdBQUcsT0FBTyxDQUFDLElBQUksR0FBRyxrQkFBa0IsR0FBRyxPQUFPLENBQUMsS0FBSyxHQUFHLGtCQUFrQixHQUFHLE9BQU8sQ0FBQyxJQUFJLEVBQUU7S0FDakgsQ0FBQztJQUVGLE9BQU8sV0FBVyxDQUFDLGNBQWMsQ0FBQyxDQUFDO0FBQ3JDLENBQUM7QUFFRCxnQkFBZ0I7QUFDaEIsTUFBTSxVQUFVLGtCQUFrQixDQUFDLE1BQWtCO0lBQ25ELE9BQU8sbUJBQW1CLENBQUMsTUFBTSxFQUFFLGVBQWUsQ0FBQyxDQUFDO0FBQ3RELENBQUM7QUFFRCxnQkFBZ0I7QUFDaEIsTUFBTSxVQUFVLGdCQUFnQixDQUFDLE1BQWtCO0lBQ2pELE9BQU8sbUJBQW1CLENBQUMsTUFBTSxFQUFFLGFBQWEsQ0FBQyxDQUFDO0FBQ3BELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEYXRlQ29uZmlnIH0gZnJvbSAnLi4vZGF0ZS5jb25maWcnO1xuaW1wb3J0IHsgRGF0ZUlucHV0Rm9ybWF0LCBEYXRlSW5wdXRNYXNrLCBEYXRlSW5wdXRQYXR0ZXJuLCBJbnB1dERhdGVPcmRlciB9IGZyb20gJy4uL21vZGVscy9pbnB1dC1kYXRlLW9yZGVyJztcblxuZnVuY3Rpb24gZ2V0RGF0ZUlucHV0UGF0dGVybih7IGlucHV0RGF0ZU9yZGVyLCBpbnB1dERhdGVTZXBhcmF0b3IgfTogRGF0ZUNvbmZpZywgcGF0dGVybjogRGF0ZUlucHV0UGF0dGVybik6IHN0cmluZyB7XG4gIGNvbnN0IHBhdHRlcm5MaXN0OiBSZWNvcmQ8SW5wdXREYXRlT3JkZXIsIHN0cmluZz4gPSB7XG4gICAgW0lucHV0RGF0ZU9yZGVyLkRNWV06IGAke3BhdHRlcm4uREFZU30ke2lucHV0RGF0ZVNlcGFyYXRvcn0ke3BhdHRlcm4uTU9OVEh9JHtpbnB1dERhdGVTZXBhcmF0b3J9JHtwYXR0ZXJuLllFQVJ9YCxcbiAgICBbSW5wdXREYXRlT3JkZXIuTURZXTogYCR7cGF0dGVybi5NT05USH0ke2lucHV0RGF0ZVNlcGFyYXRvcn0ke3BhdHRlcm4uREFZU30ke2lucHV0RGF0ZVNlcGFyYXRvcn0ke3BhdHRlcm4uWUVBUn1gLFxuICAgIFtJbnB1dERhdGVPcmRlci5ZTURdOiBgJHtwYXR0ZXJuLllFQVJ9JHtpbnB1dERhdGVTZXBhcmF0b3J9JHtwYXR0ZXJuLk1PTlRIfSR7aW5wdXREYXRlU2VwYXJhdG9yfSR7cGF0dGVybi5EQVlTfWAsXG4gIH07XG5cbiAgcmV0dXJuIHBhdHRlcm5MaXN0W2lucHV0RGF0ZU9yZGVyXTtcbn1cblxuLyoqIEBpbnRlcm5hbCAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldERhdGVJbnB1dEZvcm1hdChjb25maWc6IERhdGVDb25maWcpOiBzdHJpbmcge1xuICByZXR1cm4gZ2V0RGF0ZUlucHV0UGF0dGVybihjb25maWcsIERhdGVJbnB1dEZvcm1hdCk7XG59XG5cbi8qKiBAaW50ZXJuYWwgKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXREYXRlSW5wdXRNYXNrKGNvbmZpZzogRGF0ZUNvbmZpZyk6IHN0cmluZyB7XG4gIHJldHVybiBnZXREYXRlSW5wdXRQYXR0ZXJuKGNvbmZpZywgRGF0ZUlucHV0TWFzayk7XG59XG4iXX0=
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { isValid, toDate } from 'date-fns';
|
|
2
|
+
import { DateInputFormat, InputDateOrder } from '../models/input-date-order';
|
|
3
|
+
const functionList = {
|
|
4
|
+
[InputDateOrder.DMY]: (splittedValue) => {
|
|
5
|
+
const [day, month, year] = splittedValue;
|
|
6
|
+
return { month, day, year };
|
|
7
|
+
},
|
|
8
|
+
[InputDateOrder.MDY]: (splittedValue) => {
|
|
9
|
+
const [month, day, year] = splittedValue;
|
|
10
|
+
return { month, day, year };
|
|
11
|
+
},
|
|
12
|
+
[InputDateOrder.YMD]: (splittedValue) => {
|
|
13
|
+
const [year, month, day] = splittedValue;
|
|
14
|
+
return { month, day, year };
|
|
15
|
+
},
|
|
16
|
+
};
|
|
17
|
+
function getDateCandidate({ inputDateOrder, inputDateSeparator }, value) {
|
|
18
|
+
const splittedValue = value.split(inputDateSeparator);
|
|
19
|
+
const { month, day, year } = functionList[inputDateOrder](splittedValue);
|
|
20
|
+
if (!month ||
|
|
21
|
+
!day ||
|
|
22
|
+
!year ||
|
|
23
|
+
month.length !== DateInputFormat.MONTH.length ||
|
|
24
|
+
day.length !== DateInputFormat.DAYS.length ||
|
|
25
|
+
year.length !== DateInputFormat.YEAR.length) {
|
|
26
|
+
return null;
|
|
27
|
+
}
|
|
28
|
+
return { month, day, year };
|
|
29
|
+
}
|
|
30
|
+
/** @internal */
|
|
31
|
+
export function getDateInputValueAsDate(config, value) {
|
|
32
|
+
const dateCandidate = getDateCandidate(config, value);
|
|
33
|
+
if (!dateCandidate)
|
|
34
|
+
return null;
|
|
35
|
+
const date = toDate(`${dateCandidate.month}.${dateCandidate.day}.${dateCandidate.year}`);
|
|
36
|
+
return isValid(date) ? date : null;
|
|
37
|
+
}
|
|
38
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0LWlucHV0LXZhbHVlLWFzLWRhdGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvY2RrL2RhdGUtaW5wdXQvc3JjL2xpYi91dGlscy9nZXQtaW5wdXQtdmFsdWUtYXMtZGF0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUUzQyxPQUFPLEVBQUUsZUFBZSxFQUFFLGNBQWMsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBUTdFLE1BQU0sWUFBWSxHQUFnRjtJQUNoRyxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLGFBQXVCLEVBQUUsRUFBRTtRQUNoRCxNQUFNLENBQUMsR0FBRyxFQUFFLEtBQUssRUFBRSxJQUFJLENBQUMsR0FBRyxhQUFhLENBQUM7UUFDekMsT0FBTyxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLENBQUM7SUFDOUIsQ0FBQztJQUNELENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsYUFBdUIsRUFBRSxFQUFFO1FBQ2hELE1BQU0sQ0FBQyxLQUFLLEVBQUUsR0FBRyxFQUFFLElBQUksQ0FBQyxHQUFHLGFBQWEsQ0FBQztRQUN6QyxPQUFPLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsQ0FBQztJQUM5QixDQUFDO0lBQ0QsQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxhQUF1QixFQUFFLEVBQUU7UUFDaEQsTUFBTSxDQUFDLElBQUksRUFBRSxLQUFLLEVBQUUsR0FBRyxDQUFDLEdBQUcsYUFBYSxDQUFDO1FBQ3pDLE9BQU8sRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxDQUFDO0lBQzlCLENBQUM7Q0FDRixDQUFDO0FBRUYsU0FBUyxnQkFBZ0IsQ0FBQyxFQUFFLGNBQWMsRUFBRSxrQkFBa0IsRUFBYyxFQUFFLEtBQWE7SUFDekYsTUFBTSxhQUFhLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO0lBRXRELE1BQU0sRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxHQUEyQixZQUFZLENBQUMsY0FBYyxDQUFDLENBQUMsYUFBYSxDQUFDLENBQUM7SUFFakcsSUFDRSxDQUFDLEtBQUs7UUFDTixDQUFDLEdBQUc7UUFDSixDQUFDLElBQUk7UUFDTCxLQUFLLENBQUMsTUFBTSxLQUFLLGVBQWUsQ0FBQyxLQUFLLENBQUMsTUFBTTtRQUM3QyxHQUFHLENBQUMsTUFBTSxLQUFLLGVBQWUsQ0FBQyxJQUFJLENBQUMsTUFBTTtRQUMxQyxJQUFJLENBQUMsTUFBTSxLQUFLLGVBQWUsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUMzQyxDQUFDO1FBQ0QsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQsT0FBTyxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLENBQUM7QUFDOUIsQ0FBQztBQUVELGdCQUFnQjtBQUNoQixNQUFNLFVBQVUsdUJBQXVCLENBQUMsTUFBa0IsRUFBRSxLQUFhO0lBQ3ZFLE1BQU0sYUFBYSxHQUFrQyxnQkFBZ0IsQ0FBQyxNQUFNLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFFckYsSUFBSSxDQUFDLGFBQWE7UUFBRSxPQUFPLElBQUksQ0FBQztJQUVoQyxNQUFNLElBQUksR0FBRyxNQUFNLENBQUMsR0FBRyxhQUFhLENBQUMsS0FBSyxJQUFJLGFBQWEsQ0FBQyxHQUFHLElBQUksYUFBYSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7SUFFekYsT0FBTyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO0FBQ3JDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpc1ZhbGlkLCB0b0RhdGUgfSBmcm9tICdkYXRlLWZucyc7XG5pbXBvcnQgeyBEYXRlQ29uZmlnIH0gZnJvbSAnLi4vZGF0ZS5jb25maWcnO1xuaW1wb3J0IHsgRGF0ZUlucHV0Rm9ybWF0LCBJbnB1dERhdGVPcmRlciB9IGZyb20gJy4uL21vZGVscy9pbnB1dC1kYXRlLW9yZGVyJztcblxuaW50ZXJmYWNlIERhdGVDYW5kaWRhdGVJbnRlcmZhY2Uge1xuICBtb250aDogc3RyaW5nO1xuICBkYXk6IHN0cmluZztcbiAgeWVhcjogc3RyaW5nO1xufVxuXG5jb25zdCBmdW5jdGlvbkxpc3Q6IFJlY29yZDxJbnB1dERhdGVPcmRlciwgKHNwbGl0dGVkVmFsdWU6IHN0cmluZ1tdKSA9PiBEYXRlQ2FuZGlkYXRlSW50ZXJmYWNlPiA9IHtcbiAgW0lucHV0RGF0ZU9yZGVyLkRNWV06IChzcGxpdHRlZFZhbHVlOiBzdHJpbmdbXSkgPT4ge1xuICAgIGNvbnN0IFtkYXksIG1vbnRoLCB5ZWFyXSA9IHNwbGl0dGVkVmFsdWU7XG4gICAgcmV0dXJuIHsgbW9udGgsIGRheSwgeWVhciB9O1xuICB9LFxuICBbSW5wdXREYXRlT3JkZXIuTURZXTogKHNwbGl0dGVkVmFsdWU6IHN0cmluZ1tdKSA9PiB7XG4gICAgY29uc3QgW21vbnRoLCBkYXksIHllYXJdID0gc3BsaXR0ZWRWYWx1ZTtcbiAgICByZXR1cm4geyBtb250aCwgZGF5LCB5ZWFyIH07XG4gIH0sXG4gIFtJbnB1dERhdGVPcmRlci5ZTURdOiAoc3BsaXR0ZWRWYWx1ZTogc3RyaW5nW10pID0+IHtcbiAgICBjb25zdCBbeWVhciwgbW9udGgsIGRheV0gPSBzcGxpdHRlZFZhbHVlO1xuICAgIHJldHVybiB7IG1vbnRoLCBkYXksIHllYXIgfTtcbiAgfSxcbn07XG5cbmZ1bmN0aW9uIGdldERhdGVDYW5kaWRhdGUoeyBpbnB1dERhdGVPcmRlciwgaW5wdXREYXRlU2VwYXJhdG9yIH06IERhdGVDb25maWcsIHZhbHVlOiBzdHJpbmcpOiBEYXRlQ2FuZGlkYXRlSW50ZXJmYWNlIHwgbnVsbCB7XG4gIGNvbnN0IHNwbGl0dGVkVmFsdWUgPSB2YWx1ZS5zcGxpdChpbnB1dERhdGVTZXBhcmF0b3IpO1xuXG4gIGNvbnN0IHsgbW9udGgsIGRheSwgeWVhciB9OiBEYXRlQ2FuZGlkYXRlSW50ZXJmYWNlID0gZnVuY3Rpb25MaXN0W2lucHV0RGF0ZU9yZGVyXShzcGxpdHRlZFZhbHVlKTtcblxuICBpZiAoXG4gICAgIW1vbnRoIHx8XG4gICAgIWRheSB8fFxuICAgICF5ZWFyIHx8XG4gICAgbW9udGgubGVuZ3RoICE9PSBEYXRlSW5wdXRGb3JtYXQuTU9OVEgubGVuZ3RoIHx8XG4gICAgZGF5Lmxlbmd0aCAhPT0gRGF0ZUlucHV0Rm9ybWF0LkRBWVMubGVuZ3RoIHx8XG4gICAgeWVhci5sZW5ndGggIT09IERhdGVJbnB1dEZvcm1hdC5ZRUFSLmxlbmd0aFxuICApIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIHJldHVybiB7IG1vbnRoLCBkYXksIHllYXIgfTtcbn1cblxuLyoqIEBpbnRlcm5hbCAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldERhdGVJbnB1dFZhbHVlQXNEYXRlKGNvbmZpZzogRGF0ZUNvbmZpZywgdmFsdWU6IHN0cmluZyk6IERhdGUgfCBudWxsIHtcbiAgY29uc3QgZGF0ZUNhbmRpZGF0ZTogRGF0ZUNhbmRpZGF0ZUludGVyZmFjZSB8IG51bGwgPSBnZXREYXRlQ2FuZGlkYXRlKGNvbmZpZywgdmFsdWUpO1xuXG4gIGlmICghZGF0ZUNhbmRpZGF0ZSkgcmV0dXJuIG51bGw7XG5cbiAgY29uc3QgZGF0ZSA9IHRvRGF0ZShgJHtkYXRlQ2FuZGlkYXRlLm1vbnRofS4ke2RhdGVDYW5kaWRhdGUuZGF5fS4ke2RhdGVDYW5kaWRhdGUueWVhcn1gKTtcblxuICByZXR1cm4gaXNWYWxpZChkYXRlKSA/IGRhdGUgOiBudWxsO1xufVxuIl19
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Generated bundle index. Do not edit.
|
|
3
|
+
*/
|
|
4
|
+
export * from './index';
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2R4LWFuZ3VsYXItY2RrLWRhdGUtaW5wdXQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvY2RrL2RhdGUtaW5wdXQvc3JjL29keC1hbmd1bGFyLWNkay1kYXRlLWlucHV0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxTQUFTLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vaW5kZXgnO1xuIl19
|
|
@@ -2,5 +2,4 @@ export * from './lib/datepicker.component';
|
|
|
2
2
|
export * from './lib/datepicker.config';
|
|
3
3
|
export * from './lib/datepicker.module';
|
|
4
4
|
export * from './lib/directives';
|
|
5
|
-
|
|
6
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvY29tcG9uZW50cy9kYXRlcGlja2VyL3NyYy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLDRCQUE0QixDQUFDO0FBQzNDLGNBQWMseUJBQXlCLENBQUM7QUFDeEMsY0FBYyx5QkFBeUIsQ0FBQztBQUN4QyxjQUFjLGtCQUFrQixDQUFDO0FBQ2pDLGNBQWMsY0FBYyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9saWIvZGF0ZXBpY2tlci5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZGF0ZXBpY2tlci5jb25maWcnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZGF0ZXBpY2tlci5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZGlyZWN0aXZlcyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2RlbHMnO1xuIl19
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvY29tcG9uZW50cy9kYXRlcGlja2VyL3NyYy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLDRCQUE0QixDQUFDO0FBQzNDLGNBQWMseUJBQXlCLENBQUM7QUFDeEMsY0FBYyx5QkFBeUIsQ0FBQztBQUN4QyxjQUFjLGtCQUFrQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9saWIvZGF0ZXBpY2tlci5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZGF0ZXBpY2tlci5jb25maWcnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZGF0ZXBpY2tlci5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZGlyZWN0aXZlcyc7XG4iXX0=
|
|
@@ -3,6 +3,7 @@ import { A11yModule } from '@angular/cdk/a11y';
|
|
|
3
3
|
import { booleanAttribute, ChangeDetectionStrategy, Component, ContentChild, ElementRef, EventEmitter, HostListener, input, Input, Output, ViewChild, ViewEncapsulation, } from '@angular/core';
|
|
4
4
|
import { detectControllerChanges } from '@odx/angular';
|
|
5
5
|
import { CustomFormControl } from '@odx/angular/cdk/custom-form-control';
|
|
6
|
+
import { getDateInputFormat, injectDateConfig } from '@odx/angular/cdk/date-input';
|
|
6
7
|
import { ActionGroupComponent } from '@odx/angular/components/action-group';
|
|
7
8
|
import { ButtonComponent } from '@odx/angular/components/button';
|
|
8
9
|
import { CalendarComponent } from '@odx/angular/components/calendar';
|
|
@@ -11,9 +12,7 @@ import { IconComponent } from '@odx/angular/components/icon';
|
|
|
11
12
|
import { CSSComponent } from '@odx/angular/internal';
|
|
12
13
|
import { deferFn, injectElement, Position, untilDestroyed } from '@odx/angular/utils';
|
|
13
14
|
import { format, startOfDay } from 'date-fns';
|
|
14
|
-
import { injectDatepickerConfig } from './datepicker.config';
|
|
15
15
|
import { DatepickerInputControlDirective } from './directives';
|
|
16
|
-
import { getDatepickerInputFormat } from './utils';
|
|
17
16
|
import * as i0 from "@angular/core";
|
|
18
17
|
import * as i1 from "@angular/cdk/a11y";
|
|
19
18
|
import * as i2 from "@odx/angular/components/dropdown";
|
|
@@ -35,7 +34,7 @@ let DatepickerComponent = class DatepickerComponent extends CustomFormControl {
|
|
|
35
34
|
constructor() {
|
|
36
35
|
super(null);
|
|
37
36
|
this.takeUntilDestroyed = untilDestroyed();
|
|
38
|
-
this.config =
|
|
37
|
+
this.config = injectDateConfig();
|
|
39
38
|
this.element = injectElement();
|
|
40
39
|
/**
|
|
41
40
|
* Represents the current date.
|
|
@@ -132,6 +131,17 @@ let DatepickerComponent = class DatepickerComponent extends CustomFormControl {
|
|
|
132
131
|
super.writeValue(value);
|
|
133
132
|
this.updateDateField(value);
|
|
134
133
|
}
|
|
134
|
+
/**
|
|
135
|
+
* Opens the datepicker dropdown.
|
|
136
|
+
*
|
|
137
|
+
* @param {KeyboardEvent} event
|
|
138
|
+
*/
|
|
139
|
+
openDatepicker(event) {
|
|
140
|
+
event?.stopPropagation();
|
|
141
|
+
if (this.isReadonly || this.isDisabled)
|
|
142
|
+
return;
|
|
143
|
+
this.dropdown.open(event);
|
|
144
|
+
}
|
|
135
145
|
updateInternalValue(value) {
|
|
136
146
|
this.updateValue(value);
|
|
137
147
|
this.updateDateField(value);
|
|
@@ -153,16 +163,10 @@ let DatepickerComponent = class DatepickerComponent extends CustomFormControl {
|
|
|
153
163
|
}
|
|
154
164
|
});
|
|
155
165
|
}
|
|
156
|
-
openDatepicker(event) {
|
|
157
|
-
event.stopPropagation();
|
|
158
|
-
if (this.isReadonly || this.isDisabled)
|
|
159
|
-
return;
|
|
160
|
-
this.dropdown.open(event);
|
|
161
|
-
}
|
|
162
166
|
updateDateField(date) {
|
|
163
167
|
if (!this.dateField)
|
|
164
168
|
return;
|
|
165
|
-
const dateFormat =
|
|
169
|
+
const dateFormat = getDateInputFormat(this.config);
|
|
166
170
|
this.dateField.nativeElementValue = date ? format(date, dateFormat) : '';
|
|
167
171
|
}
|
|
168
172
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DatepickerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
@@ -199,4 +203,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
199
203
|
type: HostListener,
|
|
200
204
|
args: ['keydown.alt.ArrowDown', ['$event']]
|
|
201
205
|
}] } });
|
|
202
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZXBpY2tlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvY29tcG9uZW50cy9kYXRlcGlja2VyL3NyYy9saWIvZGF0ZXBpY2tlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvY29tcG9uZW50cy9kYXRlcGlja2VyL3NyYy9saWIvZGF0ZXBpY2tlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQy9DLE9BQU8sRUFFTCxnQkFBZ0IsRUFDaEIsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxZQUFZLEVBQ1osVUFBVSxFQUNWLFlBQVksRUFDWixZQUFZLEVBQ1osS0FBSyxFQUNMLEtBQUssRUFDTCxNQUFNLEVBQ04sU0FBUyxFQUNULGlCQUFpQixHQUNsQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDdkQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDekUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDNUUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ2pFLE9BQU8sRUFBRSxpQkFBaUIsRUFBYyxNQUFNLGtDQUFrQyxDQUFDO0FBQ2pGLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxjQUFjLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUNyRixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDN0QsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3JELE9BQU8sRUFBRSxPQUFPLEVBQUUsYUFBYSxFQUFFLFFBQVEsRUFBRSxjQUFjLEVBQUUs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QiwrQkFBK0IsMEZBaEJsQyxpQkFBaUIsdUlBUVUsVUFBVSxrRUM5SWxELG9zQ0FxQ0EsMkNER1ksVUFBVSwwTEFBRSxvQkFBb0Isa0ZBQUUsZUFBZSx5R0FBRSxpQkFBaUIscU1BQUUsY0FBYywyZkFBRSxhQUFhOztBQUtsRyxtQkFBbUI7SUFUL0IsWUFBWSxDQUFDLFlBQVksQ0FBQzs7R0FTZCxtQkFBbUIsQ0FrTS9COzs0RkFsTVksbUJBQW1CO2tCQVIvQixTQUFTOytCQUNFLGdCQUFnQixjQUNkLElBQUksV0FDUCxDQUFDLFVBQVUsRUFBRSxvQkFBb0IsRUFBRSxlQUFlLEVBQUUsaUJBQWlCLEVBQUUsY0FBYyxFQUFFLGFBQWEsQ0FBQyxtQkFFN0YsdUJBQXVCLENBQUMsTUFBTSxpQkFDaEMsaUJBQWlCLENBQUMsSUFBSTt3REF1QzlCLFFBQVE7c0JBRGQsS0FBSztnQkFXQyxPQUFPO3NCQURiLEtBQUs7Z0JBV0MsT0FBTztzQkFEYixLQUFLO2dCQVVDLGdCQUFnQjtzQkFEdEIsS0FBSztnQkFpQkMsY0FBYztzQkFEcEIsTUFBTTtnQkFTQSxRQUFRO3NCQURkLFNBQVM7dUJBQUMsaUJBQWlCO2dCQVNyQixzQkFBc0I7c0JBRDVCLFNBQVM7dUJBQUMsaUJBQWlCLEVBQUUsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7Z0JBU3pELFNBQVM7c0JBRGYsWUFBWTt1QkFBQywrQkFBK0I7Z0JBMkVuQyxjQUFjO3NCQUR2QixZQUFZO3VCQUFDLHVCQUF1QixFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQTExeU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9hMTF5JztcbmltcG9ydCB7XG4gIEFmdGVyVmlld0luaXQsXG4gIGJvb2xlYW5BdHRyaWJ1dGUsXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIENvbnRlbnRDaGlsZCxcbiAgRWxlbWVudFJlZixcbiAgRXZlbnRFbWl0dGVyLFxuICBIb3N0TGlzdGVuZXIsXG4gIGlucHV0LFxuICBJbnB1dCxcbiAgT3V0cHV0LFxuICBWaWV3Q2hpbGQsXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGRldGVjdENvbnRyb2xsZXJDaGFuZ2VzIH0gZnJvbSAnQG9keC9hbmd1bGFyJztcbmltcG9ydCB7IEN1c3RvbUZvcm1Db250cm9sIH0gZnJvbSAnQG9keC9hbmd1bGFyL2Nkay9jdXN0b20tZm9ybS1jb250cm9sJztcbmltcG9ydCB7IEFjdGlvbkdyb3VwQ29tcG9uZW50IH0gZnJvbSAnQG9keC9hbmd1bGFyL2NvbXBvbmVudHMvYWN0aW9uLWdyb3VwJztcbmltcG9ydCB7IEJ1dHRvbkNvbXBvbmVudCB9IGZyb20gJ0BvZHgvYW5ndWxhci9jb21wb25lbnRzL2J1dHRvbic7XG5pbXBvcnQgeyBDYWxlbmRhckNvbXBvbmVudCwgRGF0ZUZpbHRlciB9IGZyb20gJ0BvZHgvYW5ndWxhci9jb21wb25lbnRzL2NhbGVuZGFyJztcbmltcG9ydCB7IERyb3Bkb3duRGlyZWN0aXZlLCBEcm9wZG93bk1vZHVsZSB9IGZyb20gJ0BvZHgvYW5ndWxhci9jb21wb25lbnRzL2Ryb3Bkb3duJztcbmltcG9ydCB7IEljb25Db21wb25lbnQgfSBmcm9tICdAb2R4L2FuZ3VsYXIvY29tcG9uZW50cy9pY29uJztcbmltcG9ydCB7IENTU0NvbXBvbmVudCB9IGZyb20gJ0BvZHgvYW5ndWxhci9pbnRlcm5hbCc7XG5pbXBvcnQgeyBkZWZlckZuLCBpbmplY3RFbGVtZW50LCBQb3NpdGlvbiwgdW50aWxEZXN0cm95ZWQgfSBmcm9tICdAb2R4L2FuZ3VsYXIvdXRpbHMnO1xuaW1wb3J0IHsgZm9ybWF0LCBzdGFydE9mRGF5IH0gZnJvbSAnZGF0ZS1mbnMnO1xuaW1wb3J0IHsgaW5qZWN0RGF0ZXBpY2tlckNvbmZpZyB9IGZyb20gJy4vZGF0ZXBpY2tlci5jb25maWcnO1xuaW1wb3J0IHsgRGF0ZXBpY2tlcklucHV0Q29udHJvbERpcmVjdGl2ZSB9IGZyb20gJy4vZGlyZWN0aXZlcyc7XG5pbXBvcnQgeyBnZXREYXRlcGlja2VySW5wdXRGb3JtYXQgfSBmcm9tICcuL3V0aWxzJztcblxuLyoqXG4gKiBSZXByZXNlbnRzIGEgZGF0ZXBpY2tlciBjb21wb25lbnQgZm9yIHNlbGVjdGluZyBhIGRhdGUuXG4gKiBFeHRlbmRzIHRoZSBgQ3VzdG9tRm9ybUNvbnRyb2xgIGNsYXNzIGFuZCBpbXBsZW1lbnRzIHRoZSBgQWZ0ZXJWaWV3SW5pdGAgaW50ZXJmYWNlLlxuICpcbiAqIEBzZWUge0N1c3RvbUZvcm1Db250cm9sfVxuICovXG5AQ1NTQ29tcG9uZW50KCdkYXRlcGlja2VyJylcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ29keC1kYXRlcGlja2VyJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0ExMXlNb2R1bGUsIEFjdGlvbkdyb3VwQ29tcG9uZW50LCBCdXR0b25Db21wb25lbnQsIENhbGVuZGFyQ29tcG9uZW50LCBEcm9wZG93bk1vZHVsZSwgSWNvbkNvbXBvbmVudF0sXG4gIHRlbXBsYXRlVXJsOiAnLi9kYXRlcGlja2VyLmNvbXBvbmVudC5odG1sJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG59KVxuZXhwb3J0IGNsYXNzIERhdGVwaWNrZXJDb21wb25lbnQgZXh0ZW5kcyBDdXN0b21Gb3JtQ29udHJvbDxEYXRlIHwgbnVsbD4gaW1wbGVtZW50cyBBZnRlclZpZXdJbml0IHtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IHRha2VVbnRpbERlc3Ryb3llZCA9IHVudGlsRGVzdHJveWVkKCk7XG5cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGNvbmZpZyA9IGluamVjdERhdGVwaWNrZXJDb25maWcoKTtcblxuICBwdWJsaWMgcmVhZG9ubHkgZWxlbWVudCA9IGluamVjdEVsZW1lbnQoKTtcblxuICAvKipcbiAgICogR2V0cyBhIHZhbHVlIGluZGljYXRpbmcgd2hldGhlciB0aGUgZGF0ZXBpY2tlciBpcyBjdXJyZW50bHkgb3Blbi5cbiAgICpcbiAgICogQHJldHVybnMge2Jvb2xlYW59XG4gICAqL1xuICBwdWJsaWMgZ2V0IGlzT3BlbigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gISF0aGlzLmRyb3Bkb3duLmlzT3BlbjtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXByZXNlbnRzIHRoZSBjdXJyZW50IGRhdGUuXG4gICAqXG4gICAqIEB0eXBlIHtEYXRlfVxuICAgKi9cbiAgcHVibGljIHRvZGF5ID0gbmV3IERhdGUoKTtcblxuICAvKipcbiAgICogVGhlIGZpbHRlciBmdW5jdGlvbiB1c2VkIHRvIGRldGVybWluZSBpZiBhIGRhdGUgc2hvdWxkIGJlIGluY2x1ZGVkIG9yIGV4Y2x1ZGVkIGluIHRoZSBkYXRlcGlja2VyLlxuICAgKiBJZiBzZXQgdG8gYG51bGxgLCBubyBmaWx0ZXJpbmcgd2lsbCBiZSBhcHBsaWVkLlxuICAgKlxuICAgKiBAdHlwZSB7RGF0ZUZpbHRlciB8IG51bGx9XG4gICAqIEBkZWZhdWx0IG51bGxcbiAgICpcbiAgICogQGV4YW1wbGVcbiAgICogYGBgdHNcbiAgICogLy8gRXhjbHVkZXMgbW9uZGF5cyBmcm9tIHRoZSBkYXRlcGlja2VyLlxuICAgKiBjb25zdCBmaWx0ZXJGbjogRGF0ZUZpbHRlciA9IChkYXRlKSA9PiBkYXRlLmdldERheSgpICE9PSAxO1xuICAgKiBgYGBcbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBmaWx0ZXJGbjogRGF0ZUZpbHRlciB8IG51bGwgPSBudWxsO1xuXG4gIC8qKlxuICAgKiBUaGUgbWluaW11bSBzZWxlY3RhYmxlIGRhdGUgZm9yIHRoZSBkYXRlcGlja2VyLlxuICAgKiBJZiBzZXQgdG8gbnVsbCwgdGhlcmUgaXMgbm8gbWluaW11bSBkYXRlIHJlc3RyaWN0aW9uLlxuICAgKlxuICAgKiBAdHlwZSB7RGF0ZSB8IG51bGx9XG4gICAqIEBkZWZhdWx0IG51bGxcbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBtaW5EYXRlOiBEYXRlIHwgbnVsbCA9IG51bGw7XG5cbiAgLyoqXG4gICAqIFRoZSBtYXhpbXVtIHNlbGVjdGFibGUgZGF0ZSBmb3IgdGhlIGRhdGVwaWNrZXIuXG4gICAqIElmIHNldCB0byBudWxsLCB0aGVyZSBpcyBubyBtYXhpbXVtIGRhdGUgcmVzdHJpY3Rpb24uXG4gICAqXG4gICAqIEB0eXBlIHtEYXRlIHwgbnVsbH1cbiAgICogQGRlZmF1bHQgbnVsbFxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIG1heERhdGU6IERhdGUgfCBudWxsID0gbnVsbDtcblxuICAvKipcbiAgICogVGhlIHBvc2l0aW9uIG9mIHRoZSBkcm9wZG93biByZWxhdGl2ZSB0byB0aGUgaW5wdXQgZmllbGQuXG4gICAqXG4gICAqIEB0eXBlIHtQb3NpdGlvbn1cbiAgICogQGRlZmF1bHQgUG9zaXRpb24uQk9UVE9NXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgZHJvcGRvd25Qb3NpdGlvbjogUG9zaXRpb24gPSAnYm90dG9tJztcblxuICAvKipcbiAgICogV2hlbiBzZXQgdG8gdHJ1ZSwgdGhlIHNlbGVjdCB3aWxsIGRpc3BsYXkgYSByZXNldCBidXR0b24uXG4gICAqXG4gICAqIEB0eXBlIHtib29sZWFufVxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgcHVibGljIGNsZWFyYWJsZSA9IGlucHV0KGZhbHNlLCB7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KTtcblxuICAvKipcbiAgICogRW1pdHMgdGhlIHNlbGVjdGVkIGRhdGUgd2hlbiBpdCBjaGFuZ2VzLlxuICAgKlxuICAgKiBAZW1pdHMge0RhdGV9XG4gICAqL1xuICBAT3V0cHV0KClcbiAgcHVibGljIHNlbGVjdGVkQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxEYXRlPigpO1xuXG4gIC8qKlxuICAgKiBUaGUgZHJvcGRvd24gZGlyZWN0aXZlIHVzZWQgaW4gdGhlIGRhdGVwaWNrZXIgY29tcG9uZW50LlxuICAgKlxuICAgKiBAdHlwZSB7RHJvcGRvd25EaXJlY3RpdmV9XG4gICAqL1xuICBAVmlld0NoaWxkKERyb3Bkb3duRGlyZWN0aXZlKVxuICBwdWJsaWMgZHJvcGRvd24hOiBEcm9wZG93bkRpcmVjdGl2ZTtcblxuICAvKipcbiAgICogVGhlIGRyb3Bkb3duIHRyaWdnZXIgZWxlbWVudCB1c2VkIGluIHRoZSBkYXRlcGlja2VyIGNvbXBvbmVudC5cbiAgICpcbiAgICogQHR5cGUge0VsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+fVxuICAgKi9cbiAgQFZpZXdDaGlsZCgnZHJvcGRvd25UcmlnZ2VyJywgeyByZWFkOiBFbGVtZW50UmVmLCBzdGF0aWM6IHRydWUgfSlcbiAgcHVibGljIGRyb3Bkb3duVHJpZ2dlckVsZW1lbnQhOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PjtcblxuICAvKipcbiAgICogVGhlIGRhdGUgZmllbGQgaW5wdXQgY29udHJvbCBkaXJlY3RpdmUgdXNlZCBpbiB0aGUgZGF0ZXBpY2tlciBjb21wb25lbnQuXG4gICAqXG4gICAqIEB0eXBlIHtEYXRlcGlja2VySW5wdXRDb250cm9sRGlyZWN0aXZlIHwgdW5kZWZpbmVkfVxuICAgKi9cbiAgQENvbnRlbnRDaGlsZChEYXRlcGlja2VySW5wdXRDb250cm9sRGlyZWN0aXZlKVxuICBwdWJsaWMgZGF0ZUZpZWxkPzogRGF0ZXBpY2tlcklucHV0Q29udHJvbERpcmVjdGl2ZTtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcihudWxsKTtcbiAgICBkZXRlY3RDb250cm9sbGVyQ2hhbmdlcyh0aGlzKS5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIHB1YmxpYyBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgdGhpcy5oYW5kbGVEYXRlRmllbGRDaGFuZ2VzKCk7XG4gICAgdGhpcy5oYW5kbGVEYXRlRmllbGRGb2N1cygpO1xuXG4gICAgZGVmZXJGbigoKSA9PiB7XG4gICAgICBpZiAoIXRoaXMudmFsdWUpIHJldHVybjtcbiAgICAgIHRoaXMudXBkYXRlRGF0ZUZpZWxkKHN0YXJ0T2ZEYXkodGhpcy52YWx1ZSkpO1xuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFNlbGVjdHMgYSBkYXRlLlxuICAgKlxuICAgKiBAcGFyYW0ge0RhdGUgfCBudWxsfSB2YWx1ZSAtIFRoZSBkYXRlIHZhbHVlIHRvIGJlIHNlbGVjdGVkLlxuICAgKi9cbiAgcHVibGljIHNlbGVjdERhdGUodmFsdWU6IERhdGUgfCBudWxsKTogdm9pZCB7XG4gICAgaWYgKCF2YWx1ZSkgcmV0dXJuO1xuXG4gICAgdGhpcy51cGRhdGVJbnRlcm5hbFZhbHVlKHZhbHVlKTtcblxuICAgIHRoaXMuc2VsZWN0ZWRDaGFuZ2UuZW1pdCh2YWx1ZSk7XG5cbiAgICB0aGlzLmRyb3Bkb3duLmNsb3NlKCk7XG4gIH1cblxuICAvKipcbiAgICogUmVzZXRzIHRoZSBkYXRlcGlja2VyJ3MgdmFsdWUgdG8gbnVsbC5cbiAgICovXG4gIHB1YmxpYyByZXNldCgpOiB2b2lkIHtcbiAgICB0aGlzLnVwZGF0ZUludGVybmFsVmFsdWUobnVsbCk7XG4gIH1cblxuICAvKipcbiAgICogQGludGVybmFsXG4gICAqIFdyaXRlcyBhIG5ldyB2YWx1ZSB0byB0aGUgZWxlbWVudC5cbiAgICogUGFydCBvZiB0aGUgQ29udHJvbFZhbHVlQWNjZXNzb3IgaW50ZXJmYWNlLlxuICAgKiBAcGFyYW0ge0RhdGUgfCBudWxsfSB2YWx1ZSAtIFRoZSBuZXcgdmFsdWUuXG4gICAqL1xuICBwdWJsaWMgb3ZlcnJpZGUgd3JpdGVWYWx1ZSh2YWx1ZTogRGF0ZSB8IG51bGwpOiB2b2lkIHtcbiAgICBzdXBlci53cml0ZVZhbHVlKHZhbHVlKTtcbiAgICB0aGlzLnVwZGF0ZURhdGVGaWVsZCh2YWx1ZSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgdXBkYXRlSW50ZXJuYWxWYWx1ZSh2YWx1ZTogRGF0ZSB8IG51bGwpOiB2b2lkIHtcbiAgICB0aGlzLnVwZGF0ZVZhbHVlKHZhbHVlKTtcbiAgICB0aGlzLnVwZGF0ZURhdGVGaWVsZCh2YWx1ZSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgaGFuZGxlRGF0ZUZpZWxkQ2hhbmdlcygpOiB2b2lkIHtcbiAgICB0aGlzLmRhdGVGaWVsZD8udmFsdWVDaGFuZ2UkLnBpcGUodGhpcy50YWtlVW50aWxEZXN0cm95ZWQoKSkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgIGlmICghdGhpcy5kYXRlRmllbGQ/LnZhbHVlQXNEYXRlKSByZXR1cm47XG4gICAgICB0aGlzLnVwZGF0ZVZhbHVlKHRoaXMuZGF0ZUZpZWxkPy52YWx1ZUFzRGF0ZSA/PyBudWxsKTtcbiAgICB9KTtcbiAgfVxuXG4gIHByb3RlY3RlZCBoYW5kbGVEYXRlRmllbGRGb2N1cygpOiB2b2lkIHtcbiAgICB0aGlzLmRhdGVGaWVsZD8uZm9jdXNlZC5waXBlKHRoaXMudGFrZVVudGlsRGVzdHJveWVkKCkpLnN1YnNjcmliZSgoaXNGb2N1c2VkKSA9PiB7XG4gICAgICBpZiAoIWlzRm9jdXNlZCkge1xuICAgICAgICB0aGlzLm9uVG91Y2hlZCgpO1xuICAgICAgfVxuICAgICAgaWYgKHRoaXMuaXNPcGVuKSB7XG4gICAgICAgIHRoaXMuZHJvcGRvd24uY2xvc2UoKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ2tleWRvd24uYWx0LkFycm93RG93bicsIFsnJGV2ZW50J10pXG4gIHByb3RlY3RlZCBvcGVuRGF0ZXBpY2tlcihldmVudDogS2V5Ym9hcmRFdmVudCkge1xuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuXG4gICAgaWYgKHRoaXMuaXNSZWFkb25seSB8fCB0aGlzLmlzRGlzYWJsZWQpIHJldHVybjtcblxuICAgIHRoaXMuZHJvcGRvd24ub3BlbihldmVudCk7XG4gIH1cblxuICBwcml2YXRlIHVwZGF0ZURhdGVGaWVsZChkYXRlOiBEYXRlIHwgbnVsbCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5kYXRlRmllbGQpIHJldHVybjtcblxuICAgIGNvbnN0IGRhdGVGb3JtYXQgPSBnZXREYXRlcGlja2VySW5wdXRGb3JtYXQodGhpcy5jb25maWcpO1xuICAgIHRoaXMuZGF0ZUZpZWxkLm5hdGl2ZUVsZW1lbnRWYWx1ZSA9IGRhdGUgPyBmb3JtYXQoZGF0ZSwgZGF0ZUZvcm1hdCkgOiAnJztcbiAgfVxufVxuIiwiPG5nLWNvbnRlbnQgc2VsZWN0PVwiaW5wdXRbb2R4RGF0ZXBpY2tlckNvbnRyb2xdXCIgLz5cblxuPG9keC1hY3Rpb24tZ3JvdXAgY2xhc3M9XCJvZHgtZGF0ZXBpY2tlcl9fdHJpZ2dlci13cmFwcGVyXCI+XG4gIEBpZiAoY2xlYXJhYmxlKCkgJiYgdmFsdWUpIHtcbiAgICA8YnV0dG9uIG9keEJ1dHRvbiBjbGFzcz1cIm9keC1kYXRlcGlja2VyX19jbGVhclwiIChjbGljayk9XCJyZXNldCgpXCIgc2l6ZT1cInNtYWxsXCIgYXJpYS1sYWJlbD1cIlJlc2V0IHRpbWVcIj5cbiAgICAgIDxvZHgtaWNvbiBuYW1lPVwiY2xvc2VcIiBpY29uU2V0PVwiY29yZVwiIC8+XG4gICAgPC9idXR0b24+XG4gIH1cbiAgPGJ1dHRvblxuICAgICNkcm9wZG93blRyaWdnZXJcbiAgICBvZHhCdXR0b25cbiAgICBzaXplPVwic21hbGxcIlxuICAgIHZhcmlhbnQ9XCJnaG9zdFwiXG4gICAgY2xhc3M9XCJvZHgtZGF0ZXBpY2tlcl9fdHJpZ2dlclwiXG4gICAgW29keERyb3Bkb3duXT1cImNhbGVuZGFyT3ZlcmxheVwiXG4gICAgW29keERyb3Bkb3duT3B0aW9uc109XCJ7IHBvc2l0aW9uOiBkcm9wZG93blBvc2l0aW9uIH1cIlxuICAgIFtvZHhEcm9wZG93blRyaWdnZXJFbGVtZW50XT1cImRyb3Bkb3duVHJpZ2dlckVsZW1lbnQubmF0aXZlRWxlbWVudFwiXG4gICAgW29keERyb3Bkb3duSG9zdF09XCJudWxsXCJcbiAgICBbb2R4RHJvcGRvd25SZWZlcmVuY2VFbGVtZW50XT1cImVsZW1lbnQubmF0aXZlRWxlbWVudFwiXG4gICAgKG9keERyb3Bkb3duQmVmb3JlQ2xvc2UpPVwib25Ub3VjaGVkKClcIlxuICA+XG4gICAgPG9keC1pY29uIG5hbWU9XCJjYWxlbmRhclwiIC8+XG4gIDwvYnV0dG9uPlxuICA8bmctY29udGVudCBzZWxlY3Q9XCJbb2R4QnV0dG9uXVwiIG5nUHJvamVjdEFzPVwiW29keEJ1dHRvbl1cIiAvPlxuPC9vZHgtYWN0aW9uLWdyb3VwPlxuXG48bmctdGVtcGxhdGUgI2NhbGVuZGFyT3ZlcmxheT5cbiAgPG9keC1jYWxlbmRhclxuICAgIFtzZWxlY3RlZERhdGVdPVwidmFsdWUgfHwgdG9kYXlcIlxuICAgIFtmaWx0ZXJGbl09XCJmaWx0ZXJGblwiXG4gICAgW21pbkRhdGVdPVwibWluRGF0ZVwiXG4gICAgW21heERhdGVdPVwibWF4RGF0ZVwiXG4gICAgY2RrVHJhcEZvY3VzXG4gICAgY2RrVHJhcEZvY3VzQXV0b0NhcHR1cmVcbiAgICAoc2VsZWN0ZWREYXRlQ2hhbmdlKT1cInNlbGVjdERhdGUoJGV2ZW50KVwiXG4gIC8+XG48L25nLXRlbXBsYXRlPlxuIl19
|
|
206
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZXBpY2tlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvY29tcG9uZW50cy9kYXRlcGlja2VyL3NyYy9saWIvZGF0ZXBpY2tlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvY29tcG9uZW50cy9kYXRlcGlja2VyL3NyYy9saWIvZGF0ZXBpY2tlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQy9DLE9BQU8sRUFFTCxnQkFBZ0IsRUFDaEIsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxZQUFZLEVBQ1osVUFBVSxFQUNWLFlBQVksRUFDWixZQUFZLEVBQ1osS0FBSyxFQUNMLEtBQUssRUFDTCxNQUFNLEVBQ04sU0FBUyxFQUNULGlCQUFpQixHQUNsQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDdkQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDekUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLGdCQUFnQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDbkYsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDNUUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ2pFLE9BQU8sRUFBRSxpQkFBaUIsRUFBYyxNQUFNLGtDQUFrQyxDQUFDO0FBQ2pGLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxjQUFjLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUNyRixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDN0QsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3JELE9BQU8sRUFBRSxPQUFPLEVBQUUsYUFBYSxFQUFFLFFBQVEsRUFBRSxjQUFjLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUN0RixPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUM5QyxPQUFPLEVBQUUsK0JBQStCLEVBQUUsTUFBTSxjQUFjLENBQUM7Ozs7QUFFL0Q7Ozs7O0dBS0c7QUFVSSxJQUFNLG1CQUFtQixHQUF6QixNQUFNLG1CQUFvQixTQUFRLGlCQUE4QjtJQU9yRTs7OztPQUlHO0lBQ0gsSUFBVyxNQUFNO1FBQ2YsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUM7SUFDaEMsQ0FBQztJQThGRDtRQUNFLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztRQTVHSyx1QkFBa0IsR0FBRyxjQUFjLEVBQUUsQ0FBQztRQUV0QyxXQUFNLEdBQUcsZ0JBQWdCLEVBQUUsQ0FBQztRQUUvQixZQUFPLEdBQUcsYUFBYSxFQUFFLENBQUM7UUFXMUM7Ozs7V0FJRztRQUNJLFVBQUssR0FBRyxJQUFJLElBQUksRUFBRSxDQUFDO1FBRTFCOzs7Ozs7Ozs7Ozs7V0FZRztRQUVJLGFBQVEsR0FBc0IsSUFBSSxDQUFDO1FBRTFDOzs7Ozs7V0FNRztRQUVJLFlBQU8sR0FBZ0IsSUFBSSxDQUFDO1FBRW5DOzs7Ozs7V0FNRztRQUVJLFlBQU8sR0FBZ0IsSUFBSSxDQUFDO1FBRW5DOzs7OztXQUtHO1FBRUkscUJBQWdCLEdBQWEsUUFBUSxDQUFDO1FBRTdDOzs7OztXQUtHO1FBQ0ksY0FBUyxHQUFHLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUUsQ0FBQyxDQUFDO1FBRWpFOzs7O1dBSUc7UUFFSSxtQkFBYyxHQUFHLElBQUksWUFBWSxFQUFRLENBQUM7UUE0Qi9DLHVCQUF1QixDQUFDLElBQUksQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFDO0lBQzVDLENBQUM7SUFFTSxlQUFlO1FBQ3BCLElBQUksQ0FBQyxzQkFBc0IsRUFBRSxDQUFDO1FBQzlCLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxDQUFDO1FBRTVCLE9BQU8sQ0FBQyxHQUFHLEVBQUU7WUFDWCxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUs7Z0JBQUUsT0FBTztZQUN4QixJQUFJLENBQUMsZUFBZSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUMvQyxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRDs7OztPQUlHO0lBQ0ksVUFBVSxDQUFDLEtBQWtCO1FBQ2xDLElBQUksQ0FBQyxLQUFLO1lBQUUsT0FBTztRQUVuQixJQUFJLENBQUMsbUJBQW1CLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFaEMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFaEMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUN4QixDQUFDO0lBRUQ7O09BRUc7SUFDSSxLQUFLO1FBQ1YsSUFBSSxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2pDLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNhLFVBQVUsQ0FBQyxLQUFrQjtRQUMzQyxLQUFLLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3hCLElBQUksQ0FBQyxlQUFlLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDOUIsQ0FBQztJQUVEOzs7O09BSUc7SUFFSSxjQUFjLENBQUMsS0FBcUI7UUFDekMsS0FBSyxFQUFFLGVBQWUsRUFBRSxDQUFDO1FBRXpCLElBQUksSUFBSSxDQUFDLFVBQVUsSUFBSSxJQUFJLENBQUMsVUFBVTtZQUFFLE9BQU87UUFFL0MsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDNUIsQ0FBQztJQUVTLG1CQUFtQixDQUFDLEtBQWtCO1FBQzlDLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDeEIsSUFBSSxDQUFDLGVBQWUsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM5QixDQUFDO0lBRVMsc0JBQXNCO1FBQzlCLElBQUksQ0FBQyxTQUFTLEVBQUUsWUFBWSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDMUUsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsV0FBVztnQkFBRSxPQUFPO1lBQ3pDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxXQUFXLElBQUksSUFBSSxDQUFDLENBQUM7UUFDeEQsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRVMsb0JBQW9CO1FBQzVCLElBQUksQ0FBQyxTQUFTLEVBQUUsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLFNBQVMsRUFBRSxFQUFFO1lBQzlFLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztnQkFDZixJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDbkIsQ0FBQztZQUNELElBQUksSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO2dCQUNoQixJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ3hCLENBQUM7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTyxlQUFlLENBQUMsSUFBaUI7UUFDdkMsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTO1lBQUUsT0FBTztRQUU1QixNQUFNLFVBQVUsR0FBRyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDbkQsSUFBSSxDQUFDLFNBQVMsQ0FBQyxrQkFBa0IsR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztJQUMzRSxDQUFDOytHQXRNVSxtQkFBbUI7bUdBQW5CLG1CQUFtQixzNUJBeUdoQiwrQkFBK0IsMEZBaEJsQyxpQkFBaUIsdUlBUVUsVUFBVSxrRUM3SWxELG9zQ0FxQ0EsMkNERVksVUFBVSwwTEFBRSxvQkFBb0Isa0ZBQUUsZUFBZSx5R0FBRSxpQkFBaUIscU1BQUUsY0FBYywyZkFBRSxhQUFhOztBQUtsRyxtQkFBbUI7SUFUL0IsWUFBWSxDQUFDLFlBQVksQ0FBQzs7R0FTZCxtQkFBbUIsQ0F1TS9COzs0RkF2TVksbUJBQW1CO2tCQVIvQixTQUFTOytCQUNFLGdCQUFnQixjQUNkLElBQUksV0FDUCxDQUFDLFVBQVUsRUFBRSxvQkFBb0IsRUFBRSxlQUFlLEVBQUUsaUJBQWlCLEVBQUUsY0FBYyxFQUFFLGFBQWEsQ0FBQyxtQkFFN0YsdUJBQXVCLENBQUMsTUFBTSxpQkFDaEMsaUJBQWlCLENBQUMsSUFBSTt3REF1QzlCLFFBQVE7c0JBRGQsS0FBSztnQkFXQyxPQUFPO3NCQURiLEtBQUs7Z0JBV0MsT0FBTztzQkFEYixLQUFLO2dCQVVDLGdCQUFnQjtzQkFEdEIsS0FBSztnQkFpQkMsY0FBYztzQkFEcEIsTUFBTTtnQkFTQSxRQUFRO3NCQURkLFNBQVM7dUJBQUMsaUJBQWlCO2dCQVNyQixzQkFBc0I7c0JBRDVCLFNBQVM7dUJBQUMsaUJBQWlCLEVBQUUsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7Z0JBU3pELFNBQVM7c0JBRGYsWUFBWTt1QkFBQywrQkFBK0I7Z0JBeUR0QyxjQUFjO3NCQURwQixZQUFZO3VCQUFDLHVCQUF1QixFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQTExeU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9hMTF5JztcbmltcG9ydCB7XG4gIEFmdGVyVmlld0luaXQsXG4gIGJvb2xlYW5BdHRyaWJ1dGUsXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIENvbnRlbnRDaGlsZCxcbiAgRWxlbWVudFJlZixcbiAgRXZlbnRFbWl0dGVyLFxuICBIb3N0TGlzdGVuZXIsXG4gIGlucHV0LFxuICBJbnB1dCxcbiAgT3V0cHV0LFxuICBWaWV3Q2hpbGQsXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGRldGVjdENvbnRyb2xsZXJDaGFuZ2VzIH0gZnJvbSAnQG9keC9hbmd1bGFyJztcbmltcG9ydCB7IEN1c3RvbUZvcm1Db250cm9sIH0gZnJvbSAnQG9keC9hbmd1bGFyL2Nkay9jdXN0b20tZm9ybS1jb250cm9sJztcbmltcG9ydCB7IGdldERhdGVJbnB1dEZvcm1hdCwgaW5qZWN0RGF0ZUNvbmZpZyB9IGZyb20gJ0BvZHgvYW5ndWxhci9jZGsvZGF0ZS1pbnB1dCc7XG5pbXBvcnQgeyBBY3Rpb25Hcm91cENvbXBvbmVudCB9IGZyb20gJ0BvZHgvYW5ndWxhci9jb21wb25lbnRzL2FjdGlvbi1ncm91cCc7XG5pbXBvcnQgeyBCdXR0b25Db21wb25lbnQgfSBmcm9tICdAb2R4L2FuZ3VsYXIvY29tcG9uZW50cy9idXR0b24nO1xuaW1wb3J0IHsgQ2FsZW5kYXJDb21wb25lbnQsIERhdGVGaWx0ZXIgfSBmcm9tICdAb2R4L2FuZ3VsYXIvY29tcG9uZW50cy9jYWxlbmRhcic7XG5pbXBvcnQgeyBEcm9wZG93bkRpcmVjdGl2ZSwgRHJvcGRvd25Nb2R1bGUgfSBmcm9tICdAb2R4L2FuZ3VsYXIvY29tcG9uZW50cy9kcm9wZG93bic7XG5pbXBvcnQgeyBJY29uQ29tcG9uZW50IH0gZnJvbSAnQG9keC9hbmd1bGFyL2NvbXBvbmVudHMvaWNvbic7XG5pbXBvcnQgeyBDU1NDb21wb25lbnQgfSBmcm9tICdAb2R4L2FuZ3VsYXIvaW50ZXJuYWwnO1xuaW1wb3J0IHsgZGVmZXJGbiwgaW5qZWN0RWxlbWVudCwgUG9zaXRpb24sIHVudGlsRGVzdHJveWVkIH0gZnJvbSAnQG9keC9hbmd1bGFyL3V0aWxzJztcbmltcG9ydCB7IGZvcm1hdCwgc3RhcnRPZkRheSB9IGZyb20gJ2RhdGUtZm5zJztcbmltcG9ydCB7IERhdGVwaWNrZXJJbnB1dENvbnRyb2xEaXJlY3RpdmUgfSBmcm9tICcuL2RpcmVjdGl2ZXMnO1xuXG4vKipcbiAqIFJlcHJlc2VudHMgYSBkYXRlcGlja2VyIGNvbXBvbmVudCBmb3Igc2VsZWN0aW5nIGEgZGF0ZS5cbiAqIEV4dGVuZHMgdGhlIGBDdXN0b21Gb3JtQ29udHJvbGAgY2xhc3MgYW5kIGltcGxlbWVudHMgdGhlIGBBZnRlclZpZXdJbml0YCBpbnRlcmZhY2UuXG4gKlxuICogQHNlZSB7Q3VzdG9tRm9ybUNvbnRyb2x9XG4gKi9cbkBDU1NDb21wb25lbnQoJ2RhdGVwaWNrZXInKVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnb2R4LWRhdGVwaWNrZXInLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQTExeU1vZHVsZSwgQWN0aW9uR3JvdXBDb21wb25lbnQsIEJ1dHRvbkNvbXBvbmVudCwgQ2FsZW5kYXJDb21wb25lbnQsIERyb3Bkb3duTW9kdWxlLCBJY29uQ29tcG9uZW50XSxcbiAgdGVtcGxhdGVVcmw6ICcuL2RhdGVwaWNrZXIuY29tcG9uZW50Lmh0bWwnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbn0pXG5leHBvcnQgY2xhc3MgRGF0ZXBpY2tlckNvbXBvbmVudCBleHRlbmRzIEN1c3RvbUZvcm1Db250cm9sPERhdGUgfCBudWxsPiBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQge1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgdGFrZVVudGlsRGVzdHJveWVkID0gdW50aWxEZXN0cm95ZWQoKTtcblxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgY29uZmlnID0gaW5qZWN0RGF0ZUNvbmZpZygpO1xuXG4gIHB1YmxpYyByZWFkb25seSBlbGVtZW50ID0gaW5qZWN0RWxlbWVudCgpO1xuXG4gIC8qKlxuICAgKiBHZXRzIGEgdmFsdWUgaW5kaWNhdGluZyB3aGV0aGVyIHRoZSBkYXRlcGlja2VyIGlzIGN1cnJlbnRseSBvcGVuLlxuICAgKlxuICAgKiBAcmV0dXJucyB7Ym9vbGVhbn1cbiAgICovXG4gIHB1YmxpYyBnZXQgaXNPcGVuKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhIXRoaXMuZHJvcGRvd24uaXNPcGVuO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlcHJlc2VudHMgdGhlIGN1cnJlbnQgZGF0ZS5cbiAgICpcbiAgICogQHR5cGUge0RhdGV9XG4gICAqL1xuICBwdWJsaWMgdG9kYXkgPSBuZXcgRGF0ZSgpO1xuXG4gIC8qKlxuICAgKiBUaGUgZmlsdGVyIGZ1bmN0aW9uIHVzZWQgdG8gZGV0ZXJtaW5lIGlmIGEgZGF0ZSBzaG91bGQgYmUgaW5jbHVkZWQgb3IgZXhjbHVkZWQgaW4gdGhlIGRhdGVwaWNrZXIuXG4gICAqIElmIHNldCB0byBgbnVsbGAsIG5vIGZpbHRlcmluZyB3aWxsIGJlIGFwcGxpZWQuXG4gICAqXG4gICAqIEB0eXBlIHtEYXRlRmlsdGVyIHwgbnVsbH1cbiAgICogQGRlZmF1bHQgbnVsbFxuICAgKlxuICAgKiBAZXhhbXBsZVxuICAgKiBgYGB0c1xuICAgKiAvLyBFeGNsdWRlcyBtb25kYXlzIGZyb20gdGhlIGRhdGVwaWNrZXIuXG4gICAqIGNvbnN0IGZpbHRlckZuOiBEYXRlRmlsdGVyID0gKGRhdGUpID0+IGRhdGUuZ2V0RGF5KCkgIT09IDE7XG4gICAqIGBgYFxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIGZpbHRlckZuOiBEYXRlRmlsdGVyIHwgbnVsbCA9IG51bGw7XG5cbiAgLyoqXG4gICAqIFRoZSBtaW5pbXVtIHNlbGVjdGFibGUgZGF0ZSBmb3IgdGhlIGRhdGVwaWNrZXIuXG4gICAqIElmIHNldCB0byBudWxsLCB0aGVyZSBpcyBubyBtaW5pbXVtIGRhdGUgcmVzdHJpY3Rpb24uXG4gICAqXG4gICAqIEB0eXBlIHtEYXRlIHwgbnVsbH1cbiAgICogQGRlZmF1bHQgbnVsbFxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIG1pbkRhdGU6IERhdGUgfCBudWxsID0gbnVsbDtcblxuICAvKipcbiAgICogVGhlIG1heGltdW0gc2VsZWN0YWJsZSBkYXRlIGZvciB0aGUgZGF0ZXBpY2tlci5cbiAgICogSWYgc2V0IHRvIG51bGwsIHRoZXJlIGlzIG5vIG1heGltdW0gZGF0ZSByZXN0cmljdGlvbi5cbiAgICpcbiAgICogQHR5cGUge0RhdGUgfCBudWxsfVxuICAgKiBAZGVmYXVsdCBudWxsXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgbWF4RGF0ZTogRGF0ZSB8IG51bGwgPSBudWxsO1xuXG4gIC8qKlxuICAgKiBUaGUgcG9zaXRpb24gb2YgdGhlIGRyb3Bkb3duIHJlbGF0aXZlIHRvIHRoZSBpbnB1dCBmaWVsZC5cbiAgICpcbiAgICogQHR5cGUge1Bvc2l0aW9ufVxuICAgKiBAZGVmYXVsdCBQb3NpdGlvbi5CT1RUT01cbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBkcm9wZG93blBvc2l0aW9uOiBQb3NpdGlvbiA9ICdib3R0b20nO1xuXG4gIC8qKlxuICAgKiBXaGVuIHNldCB0byB0cnVlLCB0aGUgc2VsZWN0IHdpbGwgZGlzcGxheSBhIHJlc2V0IGJ1dHRvbi5cbiAgICpcbiAgICogQHR5cGUge2Jvb2xlYW59XG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICBwdWJsaWMgY2xlYXJhYmxlID0gaW5wdXQoZmFsc2UsIHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pO1xuXG4gIC8qKlxuICAgKiBFbWl0cyB0aGUgc2VsZWN0ZWQgZGF0ZSB3aGVuIGl0IGNoYW5nZXMuXG4gICAqXG4gICAqIEBlbWl0cyB7RGF0ZX1cbiAgICovXG4gIEBPdXRwdXQoKVxuICBwdWJsaWMgc2VsZWN0ZWRDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPERhdGU+KCk7XG5cbiAgLyoqXG4gICAqIFRoZSBkcm9wZG93biBkaXJlY3RpdmUgdXNlZCBpbiB0aGUgZGF0ZXBpY2tlciBjb21wb25lbnQuXG4gICAqXG4gICAqIEB0eXBlIHtEcm9wZG93bkRpcmVjdGl2ZX1cbiAgICovXG4gIEBWaWV3Q2hpbGQoRHJvcGRvd25EaXJlY3RpdmUpXG4gIHB1YmxpYyBkcm9wZG93biE6IERyb3Bkb3duRGlyZWN0aXZlO1xuXG4gIC8qKlxuICAgKiBUaGUgZHJvcGRvd24gdHJpZ2dlciBlbGVtZW50IHVzZWQgaW4gdGhlIGRhdGVwaWNrZXIgY29tcG9uZW50LlxuICAgKlxuICAgKiBAdHlwZSB7RWxlbWVudFJlZjxIVE1MRWxlbWVudD59XG4gICAqL1xuICBAVmlld0NoaWxkKCdkcm9wZG93blRyaWdnZXInLCB7IHJlYWQ6IEVsZW1lbnRSZWYsIHN0YXRpYzogdHJ1ZSB9KVxuICBwdWJsaWMgZHJvcGRvd25UcmlnZ2VyRWxlbWVudCE6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+O1xuXG4gIC8qKlxuICAgKiBUaGUgZGF0ZSBmaWVsZCBpbnB1dCBjb250cm9sIGRpcmVjdGl2ZSB1c2VkIGluIHRoZSBkYXRlcGlja2VyIGNvbXBvbmVudC5cbiAgICpcbiAgICogQHR5cGUge0RhdGVwaWNrZXJJbnB1dENvbnRyb2xEaXJlY3RpdmUgfCB1bmRlZmluZWR9XG4gICAqL1xuICBAQ29udGVudENoaWxkKERhdGVwaWNrZXJJbnB1dENvbnRyb2xEaXJlY3RpdmUpXG4gIHB1YmxpYyBkYXRlRmllbGQ/OiBEYXRlcGlja2VySW5wdXRDb250cm9sRGlyZWN0aXZlO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKG51bGwpO1xuICAgIGRldGVjdENvbnRyb2xsZXJDaGFuZ2VzKHRoaXMpLnN1YnNjcmliZSgpO1xuICB9XG5cbiAgcHVibGljIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmhhbmRsZURhdGVGaWVsZENoYW5nZXMoKTtcbiAgICB0aGlzLmhhbmRsZURhdGVGaWVsZEZvY3VzKCk7XG5cbiAgICBkZWZlckZuKCgpID0+IHtcbiAgICAgIGlmICghdGhpcy52YWx1ZSkgcmV0dXJuO1xuICAgICAgdGhpcy51cGRhdGVEYXRlRmllbGQoc3RhcnRPZkRheSh0aGlzLnZhbHVlKSk7XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogU2VsZWN0cyBhIGRhdGUuXG4gICAqXG4gICAqIEBwYXJhbSB7RGF0ZSB8IG51bGx9IHZhbHVlIC0gVGhlIGRhdGUgdmFsdWUgdG8gYmUgc2VsZWN0ZWQuXG4gICAqL1xuICBwdWJsaWMgc2VsZWN0RGF0ZSh2YWx1ZTogRGF0ZSB8IG51bGwpOiB2b2lkIHtcbiAgICBpZiAoIXZhbHVlKSByZXR1cm47XG5cbiAgICB0aGlzLnVwZGF0ZUludGVybmFsVmFsdWUodmFsdWUpO1xuXG4gICAgdGhpcy5zZWxlY3RlZENoYW5nZS5lbWl0KHZhbHVlKTtcblxuICAgIHRoaXMuZHJvcGRvd24uY2xvc2UoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXNldHMgdGhlIGRhdGVwaWNrZXIncyB2YWx1ZSB0byBudWxsLlxuICAgKi9cbiAgcHVibGljIHJlc2V0KCk6IHZvaWQge1xuICAgIHRoaXMudXBkYXRlSW50ZXJuYWxWYWx1ZShudWxsKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAaW50ZXJuYWxcbiAgICogV3JpdGVzIGEgbmV3IHZhbHVlIHRvIHRoZSBlbGVtZW50LlxuICAgKiBQYXJ0IG9mIHRoZSBDb250cm9sVmFsdWVBY2Nlc3NvciBpbnRlcmZhY2UuXG4gICAqIEBwYXJhbSB7RGF0ZSB8IG51bGx9IHZhbHVlIC0gVGhlIG5ldyB2YWx1ZS5cbiAgICovXG4gIHB1YmxpYyBvdmVycmlkZSB3cml0ZVZhbHVlKHZhbHVlOiBEYXRlIHwgbnVsbCk6IHZvaWQge1xuICAgIHN1cGVyLndyaXRlVmFsdWUodmFsdWUpO1xuICAgIHRoaXMudXBkYXRlRGF0ZUZpZWxkKHZhbHVlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBPcGVucyB0aGUgZGF0ZXBpY2tlciBkcm9wZG93bi5cbiAgICpcbiAgICogQHBhcmFtIHtLZXlib2FyZEV2ZW50fSBldmVudFxuICAgKi9cbiAgQEhvc3RMaXN0ZW5lcigna2V5ZG93bi5hbHQuQXJyb3dEb3duJywgWyckZXZlbnQnXSlcbiAgcHVibGljIG9wZW5EYXRlcGlja2VyKGV2ZW50PzogS2V5Ym9hcmRFdmVudCkge1xuICAgIGV2ZW50Py5zdG9wUHJvcGFnYXRpb24oKTtcblxuICAgIGlmICh0aGlzLmlzUmVhZG9ubHkgfHwgdGhpcy5pc0Rpc2FibGVkKSByZXR1cm47XG5cbiAgICB0aGlzLmRyb3Bkb3duLm9wZW4oZXZlbnQpO1xuICB9XG5cbiAgcHJvdGVjdGVkIHVwZGF0ZUludGVybmFsVmFsdWUodmFsdWU6IERhdGUgfCBudWxsKTogdm9pZCB7XG4gICAgdGhpcy51cGRhdGVWYWx1ZSh2YWx1ZSk7XG4gICAgdGhpcy51cGRhdGVEYXRlRmllbGQodmFsdWUpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGhhbmRsZURhdGVGaWVsZENoYW5nZXMoKTogdm9pZCB7XG4gICAgdGhpcy5kYXRlRmllbGQ/LnZhbHVlQ2hhbmdlJC5waXBlKHRoaXMudGFrZVVudGlsRGVzdHJveWVkKCkpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICBpZiAoIXRoaXMuZGF0ZUZpZWxkPy52YWx1ZUFzRGF0ZSkgcmV0dXJuO1xuICAgICAgdGhpcy51cGRhdGVWYWx1ZSh0aGlzLmRhdGVGaWVsZD8udmFsdWVBc0RhdGUgPz8gbnVsbCk7XG4gICAgfSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgaGFuZGxlRGF0ZUZpZWxkRm9jdXMoKTogdm9pZCB7XG4gICAgdGhpcy5kYXRlRmllbGQ/LmZvY3VzZWQucGlwZSh0aGlzLnRha2VVbnRpbERlc3Ryb3llZCgpKS5zdWJzY3JpYmUoKGlzRm9jdXNlZCkgPT4ge1xuICAgICAgaWYgKCFpc0ZvY3VzZWQpIHtcbiAgICAgICAgdGhpcy5vblRvdWNoZWQoKTtcbiAgICAgIH1cbiAgICAgIGlmICh0aGlzLmlzT3Blbikge1xuICAgICAgICB0aGlzLmRyb3Bkb3duLmNsb3NlKCk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIHVwZGF0ZURhdGVGaWVsZChkYXRlOiBEYXRlIHwgbnVsbCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5kYXRlRmllbGQpIHJldHVybjtcblxuICAgIGNvbnN0IGRhdGVGb3JtYXQgPSBnZXREYXRlSW5wdXRGb3JtYXQodGhpcy5jb25maWcpO1xuICAgIHRoaXMuZGF0ZUZpZWxkLm5hdGl2ZUVsZW1lbnRWYWx1ZSA9IGRhdGUgPyBmb3JtYXQoZGF0ZSwgZGF0ZUZvcm1hdCkgOiAnJztcbiAgfVxufVxuIiwiPG5nLWNvbnRlbnQgc2VsZWN0PVwiaW5wdXRbb2R4RGF0ZXBpY2tlckNvbnRyb2xdXCIgLz5cblxuPG9keC1hY3Rpb24tZ3JvdXAgY2xhc3M9XCJvZHgtZGF0ZXBpY2tlcl9fdHJpZ2dlci13cmFwcGVyXCI+XG4gIEBpZiAoY2xlYXJhYmxlKCkgJiYgdmFsdWUpIHtcbiAgICA8YnV0dG9uIG9keEJ1dHRvbiBjbGFzcz1cIm9keC1kYXRlcGlja2VyX19jbGVhclwiIChjbGljayk9XCJyZXNldCgpXCIgc2l6ZT1cInNtYWxsXCIgYXJpYS1sYWJlbD1cIlJlc2V0IHRpbWVcIj5cbiAgICAgIDxvZHgtaWNvbiBuYW1lPVwiY2xvc2VcIiBpY29uU2V0PVwiY29yZVwiIC8+XG4gICAgPC9idXR0b24+XG4gIH1cbiAgPGJ1dHRvblxuICAgICNkcm9wZG93blRyaWdnZXJcbiAgICBvZHhCdXR0b25cbiAgICBzaXplPVwic21hbGxcIlxuICAgIHZhcmlhbnQ9XCJnaG9zdFwiXG4gICAgY2xhc3M9XCJvZHgtZGF0ZXBpY2tlcl9fdHJpZ2dlclwiXG4gICAgW29keERyb3Bkb3duXT1cImNhbGVuZGFyT3ZlcmxheVwiXG4gICAgW29keERyb3Bkb3duT3B0aW9uc109XCJ7IHBvc2l0aW9uOiBkcm9wZG93blBvc2l0aW9uIH1cIlxuICAgIFtvZHhEcm9wZG93blRyaWdnZXJFbGVtZW50XT1cImRyb3Bkb3duVHJpZ2dlckVsZW1lbnQubmF0aXZlRWxlbWVudFwiXG4gICAgW29keERyb3Bkb3duSG9zdF09XCJudWxsXCJcbiAgICBbb2R4RHJvcGRvd25SZWZlcmVuY2VFbGVtZW50XT1cImVsZW1lbnQubmF0aXZlRWxlbWVudFwiXG4gICAgKG9keERyb3Bkb3duQmVmb3JlQ2xvc2UpPVwib25Ub3VjaGVkKClcIlxuICA+XG4gICAgPG9keC1pY29uIG5hbWU9XCJjYWxlbmRhclwiIC8+XG4gIDwvYnV0dG9uPlxuICA8bmctY29udGVudCBzZWxlY3Q9XCJbb2R4QnV0dG9uXVwiIG5nUHJvamVjdEFzPVwiW29keEJ1dHRvbl1cIiAvPlxuPC9vZHgtYWN0aW9uLWdyb3VwPlxuXG48bmctdGVtcGxhdGUgI2NhbGVuZGFyT3ZlcmxheT5cbiAgPG9keC1jYWxlbmRhclxuICAgIFtzZWxlY3RlZERhdGVdPVwidmFsdWUgfHwgdG9kYXlcIlxuICAgIFtmaWx0ZXJGbl09XCJmaWx0ZXJGblwiXG4gICAgW21pbkRhdGVdPVwibWluRGF0ZVwiXG4gICAgW21heERhdGVdPVwibWF4RGF0ZVwiXG4gICAgY2RrVHJhcEZvY3VzXG4gICAgY2RrVHJhcEZvY3VzQXV0b0NhcHR1cmVcbiAgICAoc2VsZWN0ZWREYXRlQ2hhbmdlKT1cInNlbGVjdERhdGUoJGV2ZW50KVwiXG4gIC8+XG48L25nLXRlbXBsYXRlPlxuIl19
|