@ethlete/cdk 4.39.0 → 4.40.0
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 +6 -0
- package/esm2022/lib/components/forms/components/input/components/date-time-input/date-time-input.component.mjs +6 -3
- package/esm2022/lib/components/forms/directives/input/input.directive.mjs +8 -2
- package/fesm2022/ethlete-cdk.mjs +12 -3
- package/fesm2022/ethlete-cdk.mjs.map +1 -1
- package/lib/components/forms/components/input/components/date-time-input/date-time-input.component.d.ts +1 -1
- package/lib/components/forms/directives/input/input.directive.d.ts +3 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,11 @@
|
|
|
1
1
|
# @ethlete/cdk
|
|
2
2
|
|
|
3
|
+
## 4.40.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- [#2201](https://github.com/ethlete-io/ethdk/pull/2201) [`0026705`](https://github.com/ethlete-io/ethdk/commit/00267058ae260015b4424a8791acffedb3c11b55) Thanks [@mmurakaru](https://github.com/mmurakaru)! - Expose min and max attributes of datetime-local input
|
|
8
|
+
|
|
3
9
|
## 4.39.0
|
|
4
10
|
|
|
5
11
|
### Minor Changes
|
|
@@ -13,12 +13,15 @@ export class DateTimeInputComponent extends DecoratedInputBase {
|
|
|
13
13
|
this.dateInput = inject(DATE_TIME_INPUT_TOKEN);
|
|
14
14
|
}
|
|
15
15
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.3", ngImport: i0, type: DateTimeInputComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
16
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.3", type: DateTimeInputComponent, isStandalone: true, selector: "et-date-time-input", host: { classAttribute: "et-date-time-input" }, usesInheritance: true, hostDirectives: [{ directive: i1.DateTimeInputDirective }, { directive: i2.InputDirective, inputs: ["autocomplete", "autocomplete", "placeholder", "placeholder"] }], ngImport: i0, template: "<ng-content select=\"[etInputPrefix]\" />\n\n<input\n [attr.id]=\"input.id\"\n [attr.aria-labelledby]=\"input.labelId$ | async\"\n [required]=\"input.required$ | async\"\n [disabled]=\"input.disabled$ | async\"\n [attr.autocomplete]=\"input.autocomplete || null\"\n [attr.placeholder]=\"input.placeholder || null\"\n [attr.aria-describedby]=\"input.describedBy$ | async\"\n (input)=\"dateInput._onInputInteraction($event)\"\n (blur)=\"dateInput._controlTouched()\"\n class=\"et-input-native-control et-date-time-input-native-control\"\n type=\"datetime-local\"\n etNativeInputRef\n/>\n\n<ng-content select=\"[etInputSuffix]\" />\n", styles: [""], dependencies: [{ kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "directive", type: NativeInputRefDirective, selector: "input[etNativeInputRef], textarea[etNativeInputRef], select[etNativeInputRef], button[etNativeInputRef]" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
16
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.3", type: DateTimeInputComponent, isStandalone: true, selector: "et-date-time-input", host: { classAttribute: "et-date-time-input" }, usesInheritance: true, hostDirectives: [{ directive: i1.DateTimeInputDirective }, { directive: i2.InputDirective, inputs: ["autocomplete", "autocomplete", "placeholder", "placeholder", "min", "min", "max", "max"] }], ngImport: i0, template: "<ng-content select=\"[etInputPrefix]\" />\n\n<input\n [attr.id]=\"input.id\"\n [attr.aria-labelledby]=\"input.labelId$ | async\"\n [required]=\"input.required$ | async\"\n [disabled]=\"input.disabled$ | async\"\n [attr.autocomplete]=\"input.autocomplete || null\"\n [attr.placeholder]=\"input.placeholder || null\"\n [attr.min]=\"input.min || null\"\n [attr.max]=\"input.max || null\"\n [attr.aria-describedby]=\"input.describedBy$ | async\"\n (input)=\"dateInput._onInputInteraction($event)\"\n (blur)=\"dateInput._controlTouched()\"\n class=\"et-input-native-control et-date-time-input-native-control\"\n type=\"datetime-local\"\n etNativeInputRef\n/>\n\n<ng-content select=\"[etInputSuffix]\" />\n", styles: [""], dependencies: [{ kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "directive", type: NativeInputRefDirective, selector: "input[etNativeInputRef], textarea[etNativeInputRef], select[etNativeInputRef], button[etNativeInputRef]" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
17
17
|
}
|
|
18
18
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.3", ngImport: i0, type: DateTimeInputComponent, decorators: [{
|
|
19
19
|
type: Component,
|
|
20
20
|
args: [{ selector: 'et-date-time-input', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: {
|
|
21
21
|
class: 'et-date-time-input',
|
|
22
|
-
}, imports: [AsyncPipe, NativeInputRefDirective], hostDirectives: [
|
|
22
|
+
}, imports: [AsyncPipe, NativeInputRefDirective], hostDirectives: [
|
|
23
|
+
DateTimeInputDirective,
|
|
24
|
+
{ directive: InputDirective, inputs: ['autocomplete', 'placeholder', 'min', 'max'] },
|
|
25
|
+
], template: "<ng-content select=\"[etInputPrefix]\" />\n\n<input\n [attr.id]=\"input.id\"\n [attr.aria-labelledby]=\"input.labelId$ | async\"\n [required]=\"input.required$ | async\"\n [disabled]=\"input.disabled$ | async\"\n [attr.autocomplete]=\"input.autocomplete || null\"\n [attr.placeholder]=\"input.placeholder || null\"\n [attr.min]=\"input.min || null\"\n [attr.max]=\"input.max || null\"\n [attr.aria-describedby]=\"input.describedBy$ | async\"\n (input)=\"dateInput._onInputInteraction($event)\"\n (blur)=\"dateInput._controlTouched()\"\n class=\"et-input-native-control et-date-time-input-native-control\"\n type=\"datetime-local\"\n etNativeInputRef\n/>\n\n<ng-content select=\"[etInputSuffix]\" />\n" }]
|
|
23
26
|
}] });
|
|
24
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
27
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS10aW1lLWlucHV0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY2RrL3NyYy9saWIvY29tcG9uZW50cy9mb3Jtcy9jb21wb25lbnRzL2lucHV0L2NvbXBvbmVudHMvZGF0ZS10aW1lLWlucHV0L2RhdGUtdGltZS1pbnB1dC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2Nkay9zcmMvbGliL2NvbXBvbmVudHMvZm9ybXMvY29tcG9uZW50cy9pbnB1dC9jb21wb25lbnRzL2RhdGUtdGltZS1pbnB1dC9kYXRlLXRpbWUtaW5wdXQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzVDLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzlGLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQUNsRixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUN2RCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQzs7OztBQWtCakcsTUFBTSxPQUFPLHNCQUF1QixTQUFRLGtCQUFrQjtJQWhCOUQ7O1FBaUJxQixjQUFTLEdBQUcsTUFBTSxDQUFDLHFCQUFxQixDQUFDLENBQUM7S0FDOUQ7OEdBRlksc0JBQXNCO2tHQUF0QixzQkFBc0IsdVZDdkJuQyw0c0JBb0JBLHFEREhZLFNBQVMsOENBQUUsdUJBQXVCOzsyRkFNakMsc0JBQXNCO2tCQWhCbEMsU0FBUzsrQkFDRSxvQkFBb0IsY0FHbEIsSUFBSSxtQkFDQyx1QkFBdUIsQ0FBQyxNQUFNLGlCQUNoQyxpQkFBaUIsQ0FBQyxJQUFJLFFBQy9CO3dCQUNKLEtBQUssRUFBRSxvQkFBb0I7cUJBQzVCLFdBQ1EsQ0FBQyxTQUFTLEVBQUUsdUJBQXVCLENBQUMsa0JBQzdCO3dCQUNkLHNCQUFzQjt3QkFDdEIsRUFBRSxTQUFTLEVBQUUsY0FBYyxFQUFFLE1BQU0sRUFBRSxDQUFDLGNBQWMsRUFBRSxhQUFhLEVBQUUsS0FBSyxFQUFFLEtBQUssQ0FBQyxFQUFFO3FCQUNyRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFzeW5jUGlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBpbmplY3QsIFZpZXdFbmNhcHN1bGF0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBJbnB1dERpcmVjdGl2ZSB9IGZyb20gJy4uLy4uLy4uLy4uL2RpcmVjdGl2ZXMvaW5wdXQnO1xuaW1wb3J0IHsgTmF0aXZlSW5wdXRSZWZEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi8uLi8uLi9kaXJlY3RpdmVzL25hdGl2ZS1pbnB1dC1yZWYnO1xuaW1wb3J0IHsgRGVjb3JhdGVkSW5wdXRCYXNlIH0gZnJvbSAnLi4vLi4vLi4vLi4vdXRpbHMnO1xuaW1wb3J0IHsgREFURV9USU1FX0lOUFVUX1RPS0VOLCBEYXRlVGltZUlucHV0RGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlcy9kYXRlLXRpbWUtaW5wdXQnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdldC1kYXRlLXRpbWUtaW5wdXQnLFxuICB0ZW1wbGF0ZVVybDogJy4vZGF0ZS10aW1lLWlucHV0LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZGF0ZS10aW1lLWlucHV0LmNvbXBvbmVudC5zY3NzJ10sXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBob3N0OiB7XG4gICAgY2xhc3M6ICdldC1kYXRlLXRpbWUtaW5wdXQnLFxuICB9LFxuICBpbXBvcnRzOiBbQXN5bmNQaXBlLCBOYXRpdmVJbnB1dFJlZkRpcmVjdGl2ZV0sXG4gIGhvc3REaXJlY3RpdmVzOiBbXG4gICAgRGF0ZVRpbWVJbnB1dERpcmVjdGl2ZSxcbiAgICB7IGRpcmVjdGl2ZTogSW5wdXREaXJlY3RpdmUsIGlucHV0czogWydhdXRvY29tcGxldGUnLCAncGxhY2Vob2xkZXInLCAnbWluJywgJ21heCddIH0sXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIERhdGVUaW1lSW5wdXRDb21wb25lbnQgZXh0ZW5kcyBEZWNvcmF0ZWRJbnB1dEJhc2Uge1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgZGF0ZUlucHV0ID0gaW5qZWN0KERBVEVfVElNRV9JTlBVVF9UT0tFTik7XG59XG4iLCI8bmctY29udGVudCBzZWxlY3Q9XCJbZXRJbnB1dFByZWZpeF1cIiAvPlxuXG48aW5wdXRcbiAgW2F0dHIuaWRdPVwiaW5wdXQuaWRcIlxuICBbYXR0ci5hcmlhLWxhYmVsbGVkYnldPVwiaW5wdXQubGFiZWxJZCQgfCBhc3luY1wiXG4gIFtyZXF1aXJlZF09XCJpbnB1dC5yZXF1aXJlZCQgfCBhc3luY1wiXG4gIFtkaXNhYmxlZF09XCJpbnB1dC5kaXNhYmxlZCQgfCBhc3luY1wiXG4gIFthdHRyLmF1dG9jb21wbGV0ZV09XCJpbnB1dC5hdXRvY29tcGxldGUgfHwgbnVsbFwiXG4gIFthdHRyLnBsYWNlaG9sZGVyXT1cImlucHV0LnBsYWNlaG9sZGVyIHx8IG51bGxcIlxuICBbYXR0ci5taW5dPVwiaW5wdXQubWluIHx8IG51bGxcIlxuICBbYXR0ci5tYXhdPVwiaW5wdXQubWF4IHx8IG51bGxcIlxuICBbYXR0ci5hcmlhLWRlc2NyaWJlZGJ5XT1cImlucHV0LmRlc2NyaWJlZEJ5JCB8IGFzeW5jXCJcbiAgKGlucHV0KT1cImRhdGVJbnB1dC5fb25JbnB1dEludGVyYWN0aW9uKCRldmVudClcIlxuICAoYmx1cik9XCJkYXRlSW5wdXQuX2NvbnRyb2xUb3VjaGVkKClcIlxuICBjbGFzcz1cImV0LWlucHV0LW5hdGl2ZS1jb250cm9sIGV0LWRhdGUtdGltZS1pbnB1dC1uYXRpdmUtY29udHJvbFwiXG4gIHR5cGU9XCJkYXRldGltZS1sb2NhbFwiXG4gIGV0TmF0aXZlSW5wdXRSZWZcbi8+XG5cbjxuZy1jb250ZW50IHNlbGVjdD1cIltldElucHV0U3VmZml4XVwiIC8+XG4iXX0=
|
|
@@ -139,6 +139,8 @@ export class InputDirective {
|
|
|
139
139
|
this._id = `et-input-${++nextUniqueId}`;
|
|
140
140
|
this.autocomplete = null;
|
|
141
141
|
this.placeholder = null;
|
|
142
|
+
this.min = null;
|
|
143
|
+
this.max = null;
|
|
142
144
|
this.describedBy$ = this._formFieldStateService.describedBy$;
|
|
143
145
|
this.onInternalUpdate$ = this._inputStateService.onInternalUpdate$;
|
|
144
146
|
this.onExternalUpdate$ = this._inputStateService.onExternalUpdate$;
|
|
@@ -286,7 +288,7 @@ export class InputDirective {
|
|
|
286
288
|
}
|
|
287
289
|
}
|
|
288
290
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.3", ngImport: i0, type: InputDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
289
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.3", type: InputDirective, isStandalone: true, selector: "[etInput]", inputs: { autocomplete: "autocomplete", placeholder: "placeholder" }, host: { properties: { "attr.autocomplete": "null" }, classAttribute: "et-input" }, providers: [{ provide: INPUT_TOKEN, useExisting: InputDirective }], exportAs: ["etInput"], ngImport: i0 }); }
|
|
291
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.3", type: InputDirective, isStandalone: true, selector: "[etInput]", inputs: { autocomplete: "autocomplete", placeholder: "placeholder", min: "min", max: "max" }, host: { properties: { "attr.autocomplete": "null" }, classAttribute: "et-input" }, providers: [{ provide: INPUT_TOKEN, useExisting: InputDirective }], exportAs: ["etInput"], ngImport: i0 }); }
|
|
290
292
|
}
|
|
291
293
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.3", ngImport: i0, type: InputDirective, decorators: [{
|
|
292
294
|
type: Directive,
|
|
@@ -304,5 +306,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.3", ngImpor
|
|
|
304
306
|
type: Input
|
|
305
307
|
}], placeholder: [{
|
|
306
308
|
type: Input
|
|
309
|
+
}], min: [{
|
|
310
|
+
type: Input
|
|
311
|
+
}], max: [{
|
|
312
|
+
type: Input
|
|
307
313
|
}] } });
|
|
308
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jZGsvc3JjL2xpYi9jb21wb25lbnRzL2Zvcm1zL2RpcmVjdGl2ZXMvaW5wdXQvaW5wdXQuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQWUsTUFBTSxtQkFBbUIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDMUQsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsY0FBYyxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQXFCLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNsSCxPQUFPLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNwRSxPQUFPLEVBQUUsYUFBYSxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNyRCxPQUFPLEVBQWMsYUFBYSxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNqSCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMxRSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQzs7QUFHL0QsTUFBTSxDQUFDLE1BQU0sV0FBVyxHQUFHLElBQUksY0FBYyxDQUFpQiwwQkFBMEIsQ0FBQyxDQUFDO0FBRTFGLElBQUksWUFBWSxHQUFHLENBQUMsQ0FBQztBQVlyQixNQUFNLE9BQU8sY0FBYztJQWN6QixJQUFZLE9BQU87UUFDakIsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztZQUNyQixJQUFJLENBQUMsSUFBSSxDQUFDLGdCQUFn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bml0b3IsIEZvY3VzT3JpZ2luIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2ExMXknO1xuaW1wb3J0IHsgQXV0b2ZpbGxNb25pdG9yIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3RleHQtZmllbGQnO1xuaW1wb3J0IHsgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBJbmplY3Rpb25Ub2tlbiwgSW5qZWN0b3IsIElucHV0LCBPbkRlc3Ryb3ksIE9uSW5pdCwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtQ29udHJvbCwgTmdDb250cm9sLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgY3JlYXRlRGVzdHJveSwgZXF1YWwgfSBmcm9tICdAZXRobGV0ZS9jb3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUsIGNvbWJpbmVMYXRlc3QsIGRlYm91bmNlVGltZSwgZmlsdGVyLCBtYXAsIHBhaXJ3aXNlLCBzdGFydFdpdGgsIHRha2VVbnRpbCwgdGFwIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBGb3JtRmllbGRTdGF0ZVNlcnZpY2UsIElucHV0U3RhdGVTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMnO1xuaW1wb3J0IHsgRVhQT1NFX0lOUFVUX1ZBUlNfVE9LRU4gfSBmcm9tICcuLi9leHBvc2UtaW5wdXQtdmFycyc7XG5pbXBvcnQgeyBOYXRpdmVJbnB1dFJlZkRpcmVjdGl2ZSB9IGZyb20gJy4uL25hdGl2ZS1pbnB1dC1yZWYnO1xuXG5leHBvcnQgY29uc3QgSU5QVVRfVE9LRU4gPSBuZXcgSW5qZWN0aW9uVG9rZW48SW5wdXREaXJlY3RpdmU+KCdFVF9JTlBVVF9ESVJFQ1RJVkVfVE9LRU4nKTtcblxubGV0IG5leHRVbmlxdWVJZCA9IDA7XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1tldElucHV0XScsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGV4cG9ydEFzOiAnZXRJbnB1dCcsXG4gIGhvc3Q6IHtcbiAgICBjbGFzczogJ2V0LWlucHV0JyxcbiAgICAnW2F0dHIuYXV0b2NvbXBsZXRlXSc6ICdudWxsJyxcbiAgfSxcbiAgcHJvdmlkZXJzOiBbeyBwcm92aWRlOiBJTlBVVF9UT0tFTiwgdXNlRXhpc3Rpbmc6IElucHV0RGlyZWN0aXZlIH1dLFxufSlcbmV4cG9ydCBjbGFzcyBJbnB1dERpcmVjdGl2ZTxUID0gdW5rbm93biwgSiBleHRlbmRzIEhUTUxFbGVtZW50ID0gSFRNTEVsZW1lbnQ+IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICBwcml2YXRlIHJlYWRvbmx5IF9pbmplY3RvciA9IGluamVjdChJbmplY3Rvcik7XG4gIHByaXZhdGUgcmVhZG9ubHkgX2lucHV0U3RhdGVTZXJ2aWNlID0gaW5qZWN0PElucHV0U3RhdGVTZXJ2aWNlPFQsIEo+PihJbnB1dFN0YXRlU2VydmljZSk7XG4gIHByaXZhdGUgcmVhZG9ubHkgX2Zvcm1GaWVsZFN0YXRlU2VydmljZSA9IGluamVjdChGb3JtRmllbGRTdGF0ZVNlcnZpY2UpO1xuICBwcml2YXRlIHJlYWRvbmx5IF9uZ0NvbnRyb2wgPSBpbmplY3QoTmdDb250cm9sLCB7IG9wdGlvbmFsOiB0cnVlIH0pO1xuICBwcml2YXRlIHJlYWRvbmx5IF9kZXN0cm95JCA9IGNyZWF0ZURlc3Ryb3koKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfYXV0b2ZpbGxNb25pdG9yID0gaW5qZWN0KEF1dG9maWxsTW9uaXRvcik7XG4gIHByaXZhdGUgcmVhZG9ubHkgX2ZvY3VzTW9uaXRvciA9IGluamVjdChGb2N1c01vbml0b3IpO1xuICBwcml2YXRlIHJlYWRvbmx5IF9lbGVtZW50UmVmID0gaW5qZWN0PEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+PihFbGVtZW50UmVmKTtcblxuICBwcm90ZWN0ZWQgX25ldmVyRW1wdHlJbnB1dHMgPSBbJ2RhdGUnLCAnZGF0ZXRpbWUnLCAnZGF0ZXRpbWUtbG9jYWwnLCAnbW9udGgnLCAndGltZScsICd3ZWVrJ107XG5cbiAgcHJpdmF0ZSBfaW1wbGljaXRDb250cm9sPzogRm9ybUNvbnRyb2w8dW5rbm93bj47XG5cbiAgcHJpdmF0ZSBnZXQgY29udHJvbCgpIHtcbiAgICBpZiAoIXRoaXMuX25nQ29udHJvbCkge1xuICAgICAgaWYgKCF0aGlzLl9pbXBsaWNpdENvbnRyb2wpIHtcbiAgICAgICAgdGhpcy5faW1wbGljaXRDb250cm9sID0gbmV3IEZvcm1Db250cm9sKCk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiB0aGlzLl9pbXBsaWNpdENvbnRyb2w7XG4gICAgfVxuXG4gICAgaWYgKCF0aGlzLl9uZ0NvbnRyb2wuY29udHJvbCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdOZ0NvbnRyb2wuY29udHJvbCBjYW4gb25seSBiZSBhY2Nlc3NlZCBhZnRlciBjb25zdHJ1Y3Rpb24gcGhhc2UnKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5fbmdDb250cm9sLmNvbnRyb2w7XG4gIH1cblxuICBwcml2YXRlIHJlYWRvbmx5IF9pZCA9IGBldC1pbnB1dC0keysrbmV4dFVuaXF1ZUlkfWA7XG5cbiAgQElucHV0KClcbiAgYXV0b2NvbXBsZXRlOiBzdHJpbmcgfCBudWxsID0gbnVsbDtcblxuICBASW5wdXQoKVxuICBwbGFjZWhvbGRlcjogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG5cbiAgZ2V0IGlkKCkge1xuICAgIHJldHVybiB0aGlzLl9pZDtcbiAgfVxuXG4gIGdldCB2YWx1ZSQoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2lucHV0U3RhdGVTZXJ2aWNlLnZhbHVlJC5hc09ic2VydmFibGUoKTtcbiAgfVxuXG4gIGdldCB2YWx1ZSgpIHtcbiAgICByZXR1cm4gdGhpcy5faW5wdXRTdGF0ZVNlcnZpY2UudmFsdWUoKTtcbiAgfVxuXG4gIGdldCBsYXN0VXBkYXRlVHlwZSQoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2lucHV0U3RhdGVTZXJ2aWNlLmxhc3RVcGRhdGVUeXBlJC5hc09ic2VydmFibGUoKTtcbiAgfVxuXG4gIGdldCBsYXN0VXBkYXRlVHlwZSgpIHtcbiAgICByZXR1cm4gdGhpcy5faW5wdXRTdGF0ZVNlcnZpY2UubGFzdFVwZGF0ZVR5cGUoKTtcbiAgfVxuXG4gIGdldCB2YWx1ZUNoYW5nZSQoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2lucHV0U3RhdGVTZXJ2aWNlLnZhbHVlQ2hhbmdlJC5hc09ic2VydmFibGUoKTtcbiAgfVxuXG4gIGdldCBkaXNhYmxlZCQoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2lucHV0U3RhdGVTZXJ2aWNlLmRpc2FibGVkJC5hc09ic2VydmFibGUoKTtcbiAgfVxuXG4gIGdldCBkaXNhYmxlZCgpIHtcbiAgICByZXR1cm4gdGhpcy5faW5wdXRTdGF0ZVNlcnZpY2UuZGlzYWJsZWQoKTtcbiAgfVxuXG4gIGdldCBkaXNhYmxlZENoYW5nZSQoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2lucHV0U3RhdGVTZXJ2aWNlLmRpc2FibGVkQ2hhbmdlJC5hc09ic2VydmFibGUoKTtcbiAgfVxuXG4gIGdldCByZXF1aXJlZCQoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2lucHV0U3RhdGVTZXJ2aWNlLnJlcXVpcmVkJC5hc09ic2VydmFibGUoKTtcbiAgfVxuXG4gIGdldCByZXF1aXJlZCgpIHtcbiAgICByZXR1cm4gdGhpcy5faW5wdXRTdGF0ZVNlcnZpY2UucmVxdWlyZWQoKTtcbiAgfVxuXG4gIGdldCByZXF1aXJlZENoYW5nZSQoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2lucHV0U3RhdGVTZXJ2aWNlLnJlcXVpcmVkQ2hhbmdlJC5hc09ic2VydmFibGUoKTtcbiAgfVxuXG4gIGdldCBsYWJlbElkJCgpIHtcbiAgICByZXR1cm4gdGhpcy5fZm9ybUZpZWxkU3RhdGVTZXJ2aWNlLmxhYmVsSWQkLmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgZ2V0IGxhYmVsSWQoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2Zvcm1GaWVsZFN0YXRlU2VydmljZS5sYWJlbElkKCk7XG4gIH1cblxuICBnZXQgaW52YWxpZCQoKSB7XG4gICAgcmV0dXJuIHRoaXMuY29udHJvbC5zdGF0dXNDaGFuZ2VzLnBpcGUoXG4gICAgICBzdGFydFdpdGgodGhpcy5jb250cm9sLnN0YXR1cyksXG4gICAgICBtYXAoKHMpID0+IHMgPT09ICdJTlZBTElEJyksXG4gICAgKTtcbiAgfVxuXG4gIGdldCBpbnZhbGlkKCkge1xuICAgIHJldHVybiB0aGlzLmNvbnRyb2wuaW52YWxpZDtcbiAgfVxuXG4gIGdldCB1c2VzSW1wbGljaXRDb250cm9sJCgpIHtcbiAgICByZXR1cm4gdGhpcy5faW5wdXRTdGF0ZVNlcnZpY2UudXNlc0ltcGxpY2l0Q29udHJvbCQuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICBnZXQgdXNlc0ltcGxpY2l0Q29udHJvbCgpIHtcbiAgICByZXR1cm4gdGhpcy5faW5wdXRTdGF0ZVNlcnZpY2UudXNlc0ltcGxpY2l0Q29udHJvbCgpO1xuICB9XG5cbiAgZ2V0IG5hdGl2ZUlucHV0UmVmJCgpIHtcbiAgICByZXR1cm4gdGhpcy5faW5wdXRTdGF0ZVNlcnZpY2UubmF0aXZlSW5wdXRSZWYkLmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgZ2V0IG5hdGl2ZUlucHV0RWxlbWVudCQoKSB7XG4gICAgcmV0dXJuIHRoaXMubmF0aXZlSW5wdXRSZWYkLnBpcGUoXG4gICAgICBtYXAoKHJlZikgPT4ge1xuICAgICAgICBjb25zdCBlbCA9IHJlZj8uZWxlbWVudC5uYXRpdmVFbGVtZW50O1xuICAgICAgICBpZiAoIWVsIHx8ICEoJ3ZhbHVlJyBpbiBlbCkpIHJldHVybiBudWxsO1xuXG4gICAgICAgIHJldHVybiBlbDtcbiAgICAgIH0pLFxuICAgICk7XG4gIH1cblxuICBnZXQgbmF0aXZlSW5wdXRSZWYoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2lucHV0U3RhdGVTZXJ2aWNlLm5hdGl2ZUlucHV0UmVmKCk7XG4gIH1cblxuICBnZXQgYXV0b2ZpbGxlZCQoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2lucHV0U3RhdGVTZXJ2aWNlLmF1dG9maWxsZWQkLmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgZ2V0IGF1dG9maWxsZWQoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2lucHV0U3RhdGVTZXJ2aWNlLmF1dG9maWxsZWQoKTtcbiAgfVxuXG4gIGdldCBlcnJvcnMkKCkge1xuICAgIHJldHVybiB0aGlzLl9pbnB1dFN0YXRlU2VydmljZS5lcnJvcnMkLmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgZ2V0IGVycm9ycygpIHtcbiAgICByZXR1cm4gdGhpcy5faW5wdXRTdGF0ZVNlcnZpY2UuZXJyb3JzKCk7XG4gIH1cblxuICBnZXQgc2hvdWxkRGlzcGxheUVycm9yJCgpIHtcbiAgICByZXR1cm4gdGhpcy5faW5wdXRTdGF0ZVNlcnZpY2Uuc2hvdWxkRGlzcGxheUVycm9yJC5hc09ic2VydmFibGUoKTtcbiAgfVxuXG4gIGdldCBzaG91bGREaXNwbGF5RXJyb3IoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2lucHV0U3RhdGVTZXJ2aWNlLnNob3VsZERpc3BsYXlFcnJvcigpO1xuICB9XG5cbiAgZ2V0IGlzRm9jdXNlZFZpYSQoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2lucHV0U3RhdGVTZXJ2aWNlLmlzRm9jdXNlZFZpYSQuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICBnZXQgaXNGb2N1c2VkVmlhKCkge1xuICAgIHJldHVybiB0aGlzLl9pbnB1dFN0YXRlU2VydmljZS5pc0ZvY3VzZWRWaWEoKTtcbiAgfVxuXG4gIGdldCBlcnJvcklkJCgpIHtcbiAgICByZXR1cm4gdGhpcy5fZm9ybUZpZWxkU3RhdGVTZXJ2aWNlLmVycm9ySWQkLmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgZ2V0IGVycm9ySWQoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2Zvcm1GaWVsZFN0YXRlU2VydmljZS5lcnJvcklkKCk7XG4gIH1cblxuICBnZXQgaXNOZXZlckVtcHR5SW5wdXQkKCkge1xuICAgIHJldHVybiB0aGlzLl9pbnB1dFN0YXRlU2VydmljZS5pc05ldmVyRW1wdHlJbnB1dCQuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICBnZXQgaXNOZXZlckVtcHR5SW5wdXQoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2lucHV0U3RhdGVTZXJ2aWNlLmlzTmV2ZXJFbXB0eUlucHV0KCk7XG4gIH1cblxuICByZWFkb25seSBkZXNjcmliZWRCeSQgPSB0aGlzLl9mb3JtRmllbGRTdGF0ZVNlcnZpY2UuZGVzY3JpYmVkQnkkO1xuICByZWFkb25seSBvbkludGVybmFsVXBkYXRlJCA9IHRoaXMuX2lucHV0U3RhdGVTZXJ2aWNlLm9uSW50ZXJuYWxVcGRhdGUkO1xuICByZWFkb25seSBvbkV4dGVybmFsVXBkYXRlJCA9IHRoaXMuX2lucHV0U3RhdGVTZXJ2aWNlLm9uRXh0ZXJuYWxVcGRhdGUkO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHRoaXMuX2lucHV0U3RhdGVTZXJ2aWNlLnVzZXNJbXBsaWNpdENvbnRyb2wkLm5leHQoIXRoaXMuX25nQ29udHJvbCk7XG5cbiAgICBQcm9taXNlLnJlc29sdmUoKS50aGVuKCgpID0+IHtcbiAgICAgIGNvbnN0IGV4cG9zZUlucHV0VmFyc0RpcmVjdGl2ZSA9IHRoaXMuX2luamVjdG9yLmdldChFWFBPU0VfSU5QVVRfVkFSU19UT0tFTiwgbnVsbCwgeyBvcHRpb25hbDogdHJ1ZSB9KTtcblxuICAgICAgaWYgKGV4cG9zZUlucHV0VmFyc0RpcmVjdGl2ZSkge1xuICAgICAgICBleHBvc2VJbnB1dFZhcnNEaXJlY3RpdmUuX21vbml0b3JJbnB1dCh0aGlzIGFzIHVua25vd24gYXMgSW5wdXREaXJlY3RpdmUpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgY29uc3QgY29udHJvbFN0YXRlQ2hhbmdlcyQgPSBjb21iaW5lTGF0ZXN0KFtcbiAgICAgIHRoaXMuY29udHJvbC5zdGF0dXNDaGFuZ2VzLnBpcGUoc3RhcnRXaXRoKHRoaXMuY29udHJvbC5zdGF0dXMpKSxcbiAgICAgIHRoaXMuY29udHJvbC52YWx1ZUNoYW5nZXMucGlwZShzdGFydFdpdGgodGhpcy5jb250cm9sLnZhbHVlKSksXG4gICAgXSkucGlwZShcbiAgICAgIGRlYm91bmNlVGltZSgwKSxcbiAgICAgIG1hcCgoW3N0YXR1cywgdmFsdWVdKSA9PiAoeyBzdGF0dXMsIHZhbHVlIH0pKSxcbiAgICApO1xuXG4gICAgY29udHJvbFN0YXRlQ2hhbmdlcyRcbiAgICAgIC5waXBlKFxuICAgICAgICBtYXAoKCkgPT4gdGhpcy5jb250cm9sLmVycm9ycyksXG4gICAgICAgIGZpbHRlcigoZXJyb3JzKSA9PiAhZXF1YWwoZXJyb3JzLCB0aGlzLmVycm9ycykpLFxuICAgICAgICB0YXAoKGVycm9ycykgPT4gdGhpcy5faW5wdXRTdGF0ZVNlcnZpY2UuZXJyb3JzJC5uZXh0KGVycm9ycykpLFxuICAgICAgICB0YWtlVW50aWwodGhpcy5fZGVzdHJveSQpLFxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgpO1xuXG4gICAgY29udHJvbFN0YXRlQ2hhbmdlcyRcbiAgICAgIC5waXBlKFxuICAgICAgICB0YXAoKCkgPT4gdGhpcy5fZGV0ZWN0Q29udHJvbFJlcXVpcmVkVmFsaWRhdGlvbkNoYW5nZXMoKSksXG4gICAgICAgIHRhcCgoKSA9PiB0aGlzLl9kZXRlY3RDb250cm9sRGlzYWJsZWRDaGFuZ2VzKCkpLFxuICAgICAgICB0YWtlVW50aWwodGhpcy5fZGVzdHJveSQpLFxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgpO1xuXG4gICAgdGhpcy5jb250cm9sLnZhbHVlQ2hhbmdlc1xuICAgICAgPy5waXBlKFxuICAgICAgICB0YWtlVW50aWwodGhpcy5fZGVzdHJveSQpLFxuICAgICAgICB0YXAoKHZhbHVlKSA9PiB7XG4gICAgICAgICAgaWYgKHRoaXMuX2lucHV0U3RhdGVTZXJ2aWNlLmxhc3RVcGRhdGVUeXBlKCkgPT09ICdpbnRlcm5hbCcpIHtcbiAgICAgICAgICAgIHRoaXMuX2lucHV0U3RhdGVTZXJ2aWNlLmxhc3RVcGRhdGVUeXBlJC5uZXh0KG51bGwpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHRoaXMuX2lucHV0U3RhdGVTZXJ2aWNlLmxhc3RVcGRhdGVUeXBlJC5uZXh0KCdleHRlcm5hbCcpO1xuXG4gICAgICAgICAgdGhpcy5fdXBkYXRlVmFsdWUodmFsdWUpO1xuICAgICAgICB9KSxcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKTtcblxuICAgIHRoaXMubmF0aXZlSW5wdXRSZWYkXG4gICAgICAucGlwZShcbiAgICAgICAgcGFpcndpc2UoKSxcbiAgICAgICAgdGFwKChbcHJldmlvdXNOYXRpdmVJbnB1dFJlZiwgY3VycmVudE5hdGl2ZUlucHV0UmVmXSkgPT4ge1xuICAgICAgICAgIGlmIChwcmV2aW91c05hdGl2ZUlucHV0UmVmKSB7XG4gICAgICAgICAgICB0aGlzLl9hdXRvZmlsbE1vbml0b3Iuc3RvcE1vbml0b3JpbmcocHJldmlvdXNOYXRpdmVJbnB1dFJlZi5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGlmIChjdXJyZW50TmF0aXZlSW5wdXRSZWYpIHtcbiAgICAgICAgICAgIHRoaXMuX2F1dG9maWxsTW9uaXRvclxuICAgICAgICAgICAgICAubW9uaXRvcihjdXJyZW50TmF0aXZlSW5wdXRSZWYuZWxlbWVudC5uYXRpdmVFbGVtZW50KVxuICAgICAgICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5fZGVzdHJveSQpKVxuICAgICAgICAgICAgICAuc3Vic2NyaWJlKChldmVudCkgPT4gdGhpcy5fc2V0QXV0b2ZpbGxlZChldmVudC5pc0F1dG9maWxsZWQpKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5fc2V0QXV0b2ZpbGxlZChmYWxzZSk7XG4gICAgICAgICAgfVxuICAgICAgICB9KSxcbiAgICAgICAgdGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kkKSxcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKTtcblxuICAgIHRoaXMuX2ZvY3VzTW9uaXRvclxuICAgICAgLm1vbml0b3IodGhpcy5fZWxlbWVudFJlZiwgdHJ1ZSlcbiAgICAgIC5waXBlKFxuICAgICAgICB0YXAoKG9yaWdpbikgPT4ge1xuICAgICAgICAgIGlmICh0aGlzLl9pbnB1dFN0YXRlU2VydmljZS5kaXNhYmxlZCgpKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgdGhpcy5faW5wdXRTdGF0ZVNlcnZpY2UuaXNGb2N1c2VkVmlhJC5uZXh0KG9yaWdpbik7XG4gICAgICAgIH0pLFxuICAgICAgICB0YWtlVW50aWwodGhpcy5fZGVzdHJveSQpLFxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgpO1xuXG4gICAgdGhpcy5uYXRpdmVJbnB1dFJlZiRcbiAgICAgIC5waXBlKFxuICAgICAgICB0YXAoKG5hdGl2ZUlucHV0KSA9PiB7XG4gICAgICAgICAgY29uc3QgdHlwZSA9IG5hdGl2ZUlucHV0Py5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKCd0eXBlJyk7XG5cbiAgICAgICAgICBpZiAoIXR5cGUpIHJldHVybjtcblxuICAgICAgICAgIGlmICh0aGlzLl9uZXZlckVtcHR5SW5wdXRzLmluZGV4T2YodHlwZSkgPiAtMSkge1xuICAgICAgICAgICAgdGhpcy5faW5wdXRTdGF0ZVNlcnZpY2UuaXNOZXZlckVtcHR5SW5wdXQkLm5leHQodHJ1ZSk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuX2lucHV0U3RhdGVTZXJ2aWNlLmlzTmV2ZXJFbXB0eUlucHV0JC5uZXh0KGZhbHNlKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pLFxuICAgICAgICB0YWtlVW50aWwodGhpcy5fZGVzdHJveSQpLFxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgpO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgaWYgKHRoaXMubmF0aXZlSW5wdXRSZWYpIHtcbiAgICAgIHRoaXMuX2F1dG9maWxsTW9uaXRvci5zdG9wTW9uaXRvcmluZyh0aGlzLm5hdGl2ZUlucHV0UmVmLmVsZW1lbnQubmF0aXZlRWxlbWVudCk7XG4gICAgfVxuICB9XG5cbiAgZm9jdXNJbnB1dFZpYShvcmlnaW46IEZvY3VzT3JpZ2luID0gJ3Byb2dyYW0nKSB7XG4gICAgY29uc3QgaW5wdXRFbCA9IHRoaXMubmF0aXZlSW5wdXRSZWY/LmVsZW1lbnQ/Lm5hdGl2ZUVsZW1lbnQ7XG5cbiAgICBpZiAoaW5wdXRFbCkge1xuICAgICAgdGhpcy5fZm9jdXNNb25pdG9yLmZvY3VzVmlhKGlucHV0RWwsIG9yaWdpbik7XG4gICAgfVxuICB9XG5cbiAgX3VwZGF0ZVZhbHVlKHZhbHVlOiBULCBvcHRpb25zOiB7IGVtaXRFdmVudD86IGJvb2xlYW4gfSA9IHt9KSB7XG4gICAgaWYgKHZhbHVlID09PSB0aGlzLnZhbHVlIHx8IHRoaXMuZGlzYWJsZWQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCB7IGVtaXRFdmVudCA9IHRydWUgfSA9IG9wdGlvbnM7XG5cbiAgICB0aGlzLl9pbnB1dFN0YXRlU2VydmljZS52YWx1ZSQubmV4dCh2YWx1ZSk7XG4gICAgdGhpcy5faW5wdXRTdGF0ZVNlcnZpY2UubGFzdFVwZGF0ZVR5cGUkLm5leHQoJ2ludGVybmFsJyk7XG5cbiAgICBpZiAodGhpcy5jb250cm9sLnZhbHVlICE9PSB2YWx1ZSkge1xuICAgICAgdGhpcy5faW5wdXRTdGF0ZVNlcnZpY2UuX3ZhbHVlQ2hhbmdlKHZhbHVlKTtcbiAgICB9XG5cbiAgICBpZiAoZW1pdEV2ZW50KSB7XG4gICAgICB0aGlzLl9pbnB1dFN0YXRlU2VydmljZS52YWx1ZUNoYW5nZSQubmV4dCh2YWx1ZSk7XG4gICAgfVxuICB9XG5cbiAgX3VwZGF0ZURpc2FibGVkKHZhbHVlOiBib29sZWFuKSB7XG4gICAgaWYgKHZhbHVlID09PSB0aGlzLmRpc2FibGVkKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5faW5wdXRTdGF0ZVNlcnZpY2UuZGlzYWJsZWQkLm5leHQodmFsdWUpO1xuICAgIHRoaXMuX2lucHV0U3RhdGVTZXJ2aWNlLmRpc2FibGVkQ2hhbmdlJC5uZXh0KHZhbHVlKTtcbiAgfVxuXG4gIF9tYXJrQXNUb3VjaGVkKCkge1xuICAgIGlmICh0aGlzLmRpc2FibGVkIHx8IHRoaXMuY29udHJvbC50b3VjaGVkKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5faW5wdXRTdGF0ZVNlcnZpY2UuX3RvdWNoZWQoKTtcbiAgfVxuXG4gIF9zZXROYXRpdmVJbnB1dFJlZihyZWY6IE5hdGl2ZUlucHV0UmVmRGlyZWN0aXZlPEo+IHwgbnVsbCkge1xuICAgIGlmICh0aGlzLm5hdGl2ZUlucHV0UmVmID09PSByZWYpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLl9pbnB1dFN0YXRlU2VydmljZS5uYXRpdmVJbnB1dFJlZiQubmV4dChyZWYpO1xuICB9XG5cbiAgX3NldEF1dG9maWxsZWQodmFsdWU6IGJvb2xlYW4pIHtcbiAgICBpZiAodGhpcy5hdXRvZmlsbGVkID09PSB2YWx1ZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuX2lucHV0U3RhdGVTZXJ2aWNlLmF1dG9maWxsZWQkLm5leHQodmFsdWUpO1xuICB9XG5cbiAgX3NldFNob3VsZERpc3BsYXlFcnJvcih2YWx1ZTogYm9vbGVhbikge1xuICAgIGlmICh0aGlzLnNob3VsZERpc3BsYXlFcnJvciA9PT0gdmFsdWUpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLl9pbnB1dFN0YXRlU2VydmljZS5zaG91bGREaXNwbGF5RXJyb3IkLm5leHQodmFsdWUpO1xuICB9XG5cbiAgX3NldEVtcHR5SGVscGVyKHZhbHVlOiB1bmtub3duIHwgT2JzZXJ2YWJsZTx1bmtub3duPikge1xuICAgIHRoaXMuX2lucHV0U3RhdGVTZXJ2aWNlLmlzRW1wdHlIZWxwZXIkLm5leHQodmFsdWUpO1xuICB9XG5cbiAgcHJpdmF0ZSBfZGV0ZWN0Q29udHJvbFJlcXVpcmVkVmFsaWRhdGlvbkNoYW5nZXMoKSB7XG4gICAgY29uc3QgaGFzUmVxdWlyZWQgPSB0aGlzLmNvbnRyb2wuaGFzVmFsaWRhdG9yKFZhbGlkYXRvcnMucmVxdWlyZWQpID8/IGZhbHNlO1xuICAgIGNvbnN0IGhhc1JlcXVpcmVkVHJ1ZSA9IHRoaXMuY29udHJvbC5oYXNWYWxpZGF0b3IoVmFsaWRhdG9ycy5yZXF1aXJlZFRydWUpID8/IGZhbHNlO1xuXG4gICAgY29uc3QgaXNSZXF1aXJlZCA9IGhhc1JlcXVpcmVkIHx8IGhhc1JlcXVpcmVkVHJ1ZTtcblxuICAgIGlmIChpc1JlcXVpcmVkICE9PSB0aGlzLnJlcXVpcmVkKSB7XG4gICAgICB0aGlzLl9pbnB1dFN0YXRlU2VydmljZS5yZXF1aXJlZCQubmV4dChpc1JlcXVpcmVkKTtcbiAgICAgIHRoaXMuX2lucHV0U3RhdGVTZXJ2aWNlLnJlcXVpcmVkQ2hhbmdlJC5uZXh0KGlzUmVxdWlyZWQpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX2RldGVjdENvbnRyb2xEaXNhYmxlZENoYW5nZXMoKSB7XG4gICAgY29uc3QgaXNEaXNhYmxlZCA9IHRoaXMuY29udHJvbC5kaXNhYmxlZDtcblxuICAgIGlmIChpc0Rpc2FibGVkICE9PSB0aGlzLmRpc2FibGVkKSB7XG4gICAgICB0aGlzLl9pbnB1dFN0YXRlU2VydmljZS5kaXNhYmxlZCQubmV4dChpc0Rpc2FibGVkKTtcbiAgICAgIHRoaXMuX2lucHV0U3RhdGVTZXJ2aWNlLmRpc2FibGVkQ2hhbmdlJC5uZXh0KGlzRGlzYWJsZWQpO1xuICAgIH1cbiAgfVxufVxuIl19
|
|
314
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jZGsvc3JjL2xpYi9jb21wb25lbnRzL2Zvcm1zL2RpcmVjdGl2ZXMvaW5wdXQvaW5wdXQuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQWUsTUFBTSxtQkFBbUIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDMUQsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsY0FBYyxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQXFCLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNsSCxPQUFPLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNwRSxPQUFPLEVBQUUsYUFBYSxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNyRCxPQUFPLEVBQWMsYUFBYSxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNqSCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMxRSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQzs7QUFHL0QsTUFBTSxDQUFDLE1BQU0sV0FBVyxHQUFHLElBQUksY0FBYyxDQUFpQiwwQkFBMEIsQ0FBQyxDQUFDO0FBRTFGLElBQUksWUFBWSxHQUFHLENBQUMsQ0FBQztBQVlyQixNQUFNLE9BQU8sY0FBYztJQWN6QixJQUFZLE9BQU87UUFDakIsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztZQUNyQixJQUFJLENBQUMsSUFBSSxDQUFDLGdCQUFn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SU4sV0FBVztzQkFEVixLQUFLO2dCQUlOLEdBQUc7c0JBREYsS0FBSztnQkFJTixHQUFHO3NCQURGLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGb2N1c01vbml0b3IsIEZvY3VzT3JpZ2luIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2ExMXknO1xuaW1wb3J0IHsgQXV0b2ZpbGxNb25pdG9yIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3RleHQtZmllbGQnO1xuaW1wb3J0IHsgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBJbmplY3Rpb25Ub2tlbiwgSW5qZWN0b3IsIElucHV0LCBPbkRlc3Ryb3ksIE9uSW5pdCwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtQ29udHJvbCwgTmdDb250cm9sLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgY3JlYXRlRGVzdHJveSwgZXF1YWwgfSBmcm9tICdAZXRobGV0ZS9jb3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUsIGNvbWJpbmVMYXRlc3QsIGRlYm91bmNlVGltZSwgZmlsdGVyLCBtYXAsIHBhaXJ3aXNlLCBzdGFydFdpdGgsIHRha2VVbnRpbCwgdGFwIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBGb3JtRmllbGRTdGF0ZVNlcnZpY2UsIElucHV0U3RhdGVTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMnO1xuaW1wb3J0IHsgRVhQT1NFX0lOUFVUX1ZBUlNfVE9LRU4gfSBmcm9tICcuLi9leHBvc2UtaW5wdXQtdmFycyc7XG5pbXBvcnQgeyBOYXRpdmVJbnB1dFJlZkRpcmVjdGl2ZSB9IGZyb20gJy4uL25hdGl2ZS1pbnB1dC1yZWYnO1xuXG5leHBvcnQgY29uc3QgSU5QVVRfVE9LRU4gPSBuZXcgSW5qZWN0aW9uVG9rZW48SW5wdXREaXJlY3RpdmU+KCdFVF9JTlBVVF9ESVJFQ1RJVkVfVE9LRU4nKTtcblxubGV0IG5leHRVbmlxdWVJZCA9IDA7XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1tldElucHV0XScsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGV4cG9ydEFzOiAnZXRJbnB1dCcsXG4gIGhvc3Q6IHtcbiAgICBjbGFzczogJ2V0LWlucHV0JyxcbiAgICAnW2F0dHIuYXV0b2NvbXBsZXRlXSc6ICdudWxsJyxcbiAgfSxcbiAgcHJvdmlkZXJzOiBbeyBwcm92aWRlOiBJTlBVVF9UT0tFTiwgdXNlRXhpc3Rpbmc6IElucHV0RGlyZWN0aXZlIH1dLFxufSlcbmV4cG9ydCBjbGFzcyBJbnB1dERpcmVjdGl2ZTxUID0gdW5rbm93biwgSiBleHRlbmRzIEhUTUxFbGVtZW50ID0gSFRNTEVsZW1lbnQ+IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICBwcml2YXRlIHJlYWRvbmx5IF9pbmplY3RvciA9IGluamVjdChJbmplY3Rvcik7XG4gIHByaXZhdGUgcmVhZG9ubHkgX2lucHV0U3RhdGVTZXJ2aWNlID0gaW5qZWN0PElucHV0U3RhdGVTZXJ2aWNlPFQsIEo+PihJbnB1dFN0YXRlU2VydmljZSk7XG4gIHByaXZhdGUgcmVhZG9ubHkgX2Zvcm1GaWVsZFN0YXRlU2VydmljZSA9IGluamVjdChGb3JtRmllbGRTdGF0ZVNlcnZpY2UpO1xuICBwcml2YXRlIHJlYWRvbmx5IF9uZ0NvbnRyb2wgPSBpbmplY3QoTmdDb250cm9sLCB7IG9wdGlvbmFsOiB0cnVlIH0pO1xuICBwcml2YXRlIHJlYWRvbmx5IF9kZXN0cm95JCA9IGNyZWF0ZURlc3Ryb3koKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfYXV0b2ZpbGxNb25pdG9yID0gaW5qZWN0KEF1dG9maWxsTW9uaXRvcik7XG4gIHByaXZhdGUgcmVhZG9ubHkgX2ZvY3VzTW9uaXRvciA9IGluamVjdChGb2N1c01vbml0b3IpO1xuICBwcml2YXRlIHJlYWRvbmx5IF9lbGVtZW50UmVmID0gaW5qZWN0PEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+PihFbGVtZW50UmVmKTtcblxuICBwcm90ZWN0ZWQgX25ldmVyRW1wdHlJbnB1dHMgPSBbJ2RhdGUnLCAnZGF0ZXRpbWUnLCAnZGF0ZXRpbWUtbG9jYWwnLCAnbW9udGgnLCAndGltZScsICd3ZWVrJ107XG5cbiAgcHJpdmF0ZSBfaW1wbGljaXRDb250cm9sPzogRm9ybUNvbnRyb2w8dW5rbm93bj47XG5cbiAgcHJpdmF0ZSBnZXQgY29udHJvbCgpIHtcbiAgICBpZiAoIXRoaXMuX25nQ29udHJvbCkge1xuICAgICAgaWYgKCF0aGlzLl9pbXBsaWNpdENvbnRyb2wpIHtcbiAgICAgICAgdGhpcy5faW1wbGljaXRDb250cm9sID0gbmV3IEZvcm1Db250cm9sKCk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiB0aGlzLl9pbXBsaWNpdENvbnRyb2w7XG4gICAgfVxuXG4gICAgaWYgKCF0aGlzLl9uZ0NvbnRyb2wuY29udHJvbCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdOZ0NvbnRyb2wuY29udHJvbCBjYW4gb25seSBiZSBhY2Nlc3NlZCBhZnRlciBjb25zdHJ1Y3Rpb24gcGhhc2UnKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5fbmdDb250cm9sLmNvbnRyb2w7XG4gIH1cblxuICBwcml2YXRlIHJlYWRvbmx5IF9pZCA9IGBldC1pbnB1dC0keysrbmV4dFVuaXF1ZUlkfWA7XG5cbiAgQElucHV0KClcbiAgYXV0b2NvbXBsZXRlOiBzdHJpbmcgfCBudWxsID0gbnVsbDtcblxuICBASW5wdXQoKVxuICBwbGFjZWhvbGRlcjogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG5cbiAgQElucHV0KClcbiAgbWluOiBzdHJpbmcgfCBudWxsID0gbnVsbDtcblxuICBASW5wdXQoKVxuICBtYXg6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuXG4gIGdldCBpZCgpIHtcbiAgICByZXR1cm4gdGhpcy5faWQ7XG4gIH1cblxuICBnZXQgdmFsdWUkKCkge1xuICAgIHJldHVybiB0aGlzLl9pbnB1dFN0YXRlU2VydmljZS52YWx1ZSQuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICBnZXQgdmFsdWUoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2lucHV0U3RhdGVTZXJ2aWNlLnZhbHVlKCk7XG4gIH1cblxuICBnZXQgbGFzdFVwZGF0ZVR5cGUkKCkge1xuICAgIHJldHVybiB0aGlzLl9pbnB1dFN0YXRlU2VydmljZS5sYXN0VXBkYXRlVHlwZSQuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICBnZXQgbGFzdFVwZGF0ZVR5cGUoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2lucHV0U3RhdGVTZXJ2aWNlLmxhc3RVcGRhdGVUeXBlKCk7XG4gIH1cblxuICBnZXQgdmFsdWVDaGFuZ2UkKCkge1xuICAgIHJldHVybiB0aGlzLl9pbnB1dFN0YXRlU2VydmljZS52YWx1ZUNoYW5nZSQuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICBnZXQgZGlzYWJsZWQkKCkge1xuICAgIHJldHVybiB0aGlzLl9pbnB1dFN0YXRlU2VydmljZS5kaXNhYmxlZCQuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICBnZXQgZGlzYWJsZWQoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2lucHV0U3RhdGVTZXJ2aWNlLmRpc2FibGVkKCk7XG4gIH1cblxuICBnZXQgZGlzYWJsZWRDaGFuZ2UkKCkge1xuICAgIHJldHVybiB0aGlzLl9pbnB1dFN0YXRlU2VydmljZS5kaXNhYmxlZENoYW5nZSQuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICBnZXQgcmVxdWlyZWQkKCkge1xuICAgIHJldHVybiB0aGlzLl9pbnB1dFN0YXRlU2VydmljZS5yZXF1aXJlZCQuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICBnZXQgcmVxdWlyZWQoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2lucHV0U3RhdGVTZXJ2aWNlLnJlcXVpcmVkKCk7XG4gIH1cblxuICBnZXQgcmVxdWlyZWRDaGFuZ2UkKCkge1xuICAgIHJldHVybiB0aGlzLl9pbnB1dFN0YXRlU2VydmljZS5yZXF1aXJlZENoYW5nZSQuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICBnZXQgbGFiZWxJZCQoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2Zvcm1GaWVsZFN0YXRlU2VydmljZS5sYWJlbElkJC5hc09ic2VydmFibGUoKTtcbiAgfVxuXG4gIGdldCBsYWJlbElkKCkge1xuICAgIHJldHVybiB0aGlzLl9mb3JtRmllbGRTdGF0ZVNlcnZpY2UubGFiZWxJZCgpO1xuICB9XG5cbiAgZ2V0IGludmFsaWQkKCkge1xuICAgIHJldHVybiB0aGlzLmNvbnRyb2wuc3RhdHVzQ2hhbmdlcy5waXBlKFxuICAgICAgc3RhcnRXaXRoKHRoaXMuY29udHJvbC5zdGF0dXMpLFxuICAgICAgbWFwKChzKSA9PiBzID09PSAnSU5WQUxJRCcpLFxuICAgICk7XG4gIH1cblxuICBnZXQgaW52YWxpZCgpIHtcbiAgICByZXR1cm4gdGhpcy5jb250cm9sLmludmFsaWQ7XG4gIH1cblxuICBnZXQgdXNlc0ltcGxpY2l0Q29udHJvbCQoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2lucHV0U3RhdGVTZXJ2aWNlLnVzZXNJbXBsaWNpdENvbnRyb2wkLmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgZ2V0IHVzZXNJbXBsaWNpdENvbnRyb2woKSB7XG4gICAgcmV0dXJuIHRoaXMuX2lucHV0U3RhdGVTZXJ2aWNlLnVzZXNJbXBsaWNpdENvbnRyb2woKTtcbiAgfVxuXG4gIGdldCBuYXRpdmVJbnB1dFJlZiQoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2lucHV0U3RhdGVTZXJ2aWNlLm5hdGl2ZUlucHV0UmVmJC5hc09ic2VydmFibGUoKTtcbiAgfVxuXG4gIGdldCBuYXRpdmVJbnB1dEVsZW1lbnQkKCkge1xuICAgIHJldHVybiB0aGlzLm5hdGl2ZUlucHV0UmVmJC5waXBlKFxuICAgICAgbWFwKChyZWYpID0+IHtcbiAgICAgICAgY29uc3QgZWwgPSByZWY/LmVsZW1lbnQubmF0aXZlRWxlbWVudDtcbiAgICAgICAgaWYgKCFlbCB8fCAhKCd2YWx1ZScgaW4gZWwpKSByZXR1cm4gbnVsbDtcblxuICAgICAgICByZXR1cm4gZWw7XG4gICAgICB9KSxcbiAgICApO1xuICB9XG5cbiAgZ2V0IG5hdGl2ZUlucHV0UmVmKCkge1xuICAgIHJldHVybiB0aGlzLl9pbnB1dFN0YXRlU2VydmljZS5uYXRpdmVJbnB1dFJlZigpO1xuICB9XG5cbiAgZ2V0IGF1dG9maWxsZWQkKCkge1xuICAgIHJldHVybiB0aGlzLl9pbnB1dFN0YXRlU2VydmljZS5hdXRvZmlsbGVkJC5hc09ic2VydmFibGUoKTtcbiAgfVxuXG4gIGdldCBhdXRvZmlsbGVkKCkge1xuICAgIHJldHVybiB0aGlzLl9pbnB1dFN0YXRlU2VydmljZS5hdXRvZmlsbGVkKCk7XG4gIH1cblxuICBnZXQgZXJyb3JzJCgpIHtcbiAgICByZXR1cm4gdGhpcy5faW5wdXRTdGF0ZVNlcnZpY2UuZXJyb3JzJC5hc09ic2VydmFibGUoKTtcbiAgfVxuXG4gIGdldCBlcnJvcnMoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2lucHV0U3RhdGVTZXJ2aWNlLmVycm9ycygpO1xuICB9XG5cbiAgZ2V0IHNob3VsZERpc3BsYXlFcnJvciQoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2lucHV0U3RhdGVTZXJ2aWNlLnNob3VsZERpc3BsYXlFcnJvciQuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICBnZXQgc2hvdWxkRGlzcGxheUVycm9yKCkge1xuICAgIHJldHVybiB0aGlzLl9pbnB1dFN0YXRlU2VydmljZS5zaG91bGREaXNwbGF5RXJyb3IoKTtcbiAgfVxuXG4gIGdldCBpc0ZvY3VzZWRWaWEkKCkge1xuICAgIHJldHVybiB0aGlzLl9pbnB1dFN0YXRlU2VydmljZS5pc0ZvY3VzZWRWaWEkLmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgZ2V0IGlzRm9jdXNlZFZpYSgpIHtcbiAgICByZXR1cm4gdGhpcy5faW5wdXRTdGF0ZVNlcnZpY2UuaXNGb2N1c2VkVmlhKCk7XG4gIH1cblxuICBnZXQgZXJyb3JJZCQoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2Zvcm1GaWVsZFN0YXRlU2VydmljZS5lcnJvcklkJC5hc09ic2VydmFibGUoKTtcbiAgfVxuXG4gIGdldCBlcnJvcklkKCkge1xuICAgIHJldHVybiB0aGlzLl9mb3JtRmllbGRTdGF0ZVNlcnZpY2UuZXJyb3JJZCgpO1xuICB9XG5cbiAgZ2V0IGlzTmV2ZXJFbXB0eUlucHV0JCgpIHtcbiAgICByZXR1cm4gdGhpcy5faW5wdXRTdGF0ZVNlcnZpY2UuaXNOZXZlckVtcHR5SW5wdXQkLmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgZ2V0IGlzTmV2ZXJFbXB0eUlucHV0KCkge1xuICAgIHJldHVybiB0aGlzLl9pbnB1dFN0YXRlU2VydmljZS5pc05ldmVyRW1wdHlJbnB1dCgpO1xuICB9XG5cbiAgcmVhZG9ubHkgZGVzY3JpYmVkQnkkID0gdGhpcy5fZm9ybUZpZWxkU3RhdGVTZXJ2aWNlLmRlc2NyaWJlZEJ5JDtcbiAgcmVhZG9ubHkgb25JbnRlcm5hbFVwZGF0ZSQgPSB0aGlzLl9pbnB1dFN0YXRlU2VydmljZS5vbkludGVybmFsVXBkYXRlJDtcbiAgcmVhZG9ubHkgb25FeHRlcm5hbFVwZGF0ZSQgPSB0aGlzLl9pbnB1dFN0YXRlU2VydmljZS5vbkV4dGVybmFsVXBkYXRlJDtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICB0aGlzLl9pbnB1dFN0YXRlU2VydmljZS51c2VzSW1wbGljaXRDb250cm9sJC5uZXh0KCF0aGlzLl9uZ0NvbnRyb2wpO1xuXG4gICAgUHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKSA9PiB7XG4gICAgICBjb25zdCBleHBvc2VJbnB1dFZhcnNEaXJlY3RpdmUgPSB0aGlzLl9pbmplY3Rvci5nZXQoRVhQT1NFX0lOUFVUX1ZBUlNfVE9LRU4sIG51bGwsIHsgb3B0aW9uYWw6IHRydWUgfSk7XG5cbiAgICAgIGlmIChleHBvc2VJbnB1dFZhcnNEaXJlY3RpdmUpIHtcbiAgICAgICAgZXhwb3NlSW5wdXRWYXJzRGlyZWN0aXZlLl9tb25pdG9ySW5wdXQodGhpcyBhcyB1bmtub3duIGFzIElucHV0RGlyZWN0aXZlKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIGNvbnN0IGNvbnRyb2xTdGF0ZUNoYW5nZXMkID0gY29tYmluZUxhdGVzdChbXG4gICAgICB0aGlzLmNvbnRyb2wuc3RhdHVzQ2hhbmdlcy5waXBlKHN0YXJ0V2l0aCh0aGlzLmNvbnRyb2wuc3RhdHVzKSksXG4gICAgICB0aGlzLmNvbnRyb2wudmFsdWVDaGFuZ2VzLnBpcGUoc3RhcnRXaXRoKHRoaXMuY29udHJvbC52YWx1ZSkpLFxuICAgIF0pLnBpcGUoXG4gICAgICBkZWJvdW5jZVRpbWUoMCksXG4gICAgICBtYXAoKFtzdGF0dXMsIHZhbHVlXSkgPT4gKHsgc3RhdHVzLCB2YWx1ZSB9KSksXG4gICAgKTtcblxuICAgIGNvbnRyb2xTdGF0ZUNoYW5nZXMkXG4gICAgICAucGlwZShcbiAgICAgICAgbWFwKCgpID0+IHRoaXMuY29udHJvbC5lcnJvcnMpLFxuICAgICAgICBmaWx0ZXIoKGVycm9ycykgPT4gIWVxdWFsKGVycm9ycywgdGhpcy5lcnJvcnMpKSxcbiAgICAgICAgdGFwKChlcnJvcnMpID0+IHRoaXMuX2lucHV0U3RhdGVTZXJ2aWNlLmVycm9ycyQubmV4dChlcnJvcnMpKSxcbiAgICAgICAgdGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kkKSxcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKTtcblxuICAgIGNvbnRyb2xTdGF0ZUNoYW5nZXMkXG4gICAgICAucGlwZShcbiAgICAgICAgdGFwKCgpID0+IHRoaXMuX2RldGVjdENvbnRyb2xSZXF1aXJlZFZhbGlkYXRpb25DaGFuZ2VzKCkpLFxuICAgICAgICB0YXAoKCkgPT4gdGhpcy5fZGV0ZWN0Q29udHJvbERpc2FibGVkQ2hhbmdlcygpKSxcbiAgICAgICAgdGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kkKSxcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKTtcblxuICAgIHRoaXMuY29udHJvbC52YWx1ZUNoYW5nZXNcbiAgICAgID8ucGlwZShcbiAgICAgICAgdGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kkKSxcbiAgICAgICAgdGFwKCh2YWx1ZSkgPT4ge1xuICAgICAgICAgIGlmICh0aGlzLl9pbnB1dFN0YXRlU2VydmljZS5sYXN0VXBkYXRlVHlwZSgpID09PSAnaW50ZXJuYWwnKSB7XG4gICAgICAgICAgICB0aGlzLl9pbnB1dFN0YXRlU2VydmljZS5sYXN0VXBkYXRlVHlwZSQubmV4dChudWxsKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICB0aGlzLl9pbnB1dFN0YXRlU2VydmljZS5sYXN0VXBkYXRlVHlwZSQubmV4dCgnZXh0ZXJuYWwnKTtcblxuICAgICAgICAgIHRoaXMuX3VwZGF0ZVZhbHVlKHZhbHVlKTtcbiAgICAgICAgfSksXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKCk7XG5cbiAgICB0aGlzLm5hdGl2ZUlucHV0UmVmJFxuICAgICAgLnBpcGUoXG4gICAgICAgIHBhaXJ3aXNlKCksXG4gICAgICAgIHRhcCgoW3ByZXZpb3VzTmF0aXZlSW5wdXRSZWYsIGN1cnJlbnROYXRpdmVJbnB1dFJlZl0pID0+IHtcbiAgICAgICAgICBpZiAocHJldmlvdXNOYXRpdmVJbnB1dFJlZikge1xuICAgICAgICAgICAgdGhpcy5fYXV0b2ZpbGxNb25pdG9yLnN0b3BNb25pdG9yaW5nKHByZXZpb3VzTmF0aXZlSW5wdXRSZWYuZWxlbWVudC5uYXRpdmVFbGVtZW50KTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBpZiAoY3VycmVudE5hdGl2ZUlucHV0UmVmKSB7XG4gICAgICAgICAgICB0aGlzLl9hdXRvZmlsbE1vbml0b3JcbiAgICAgICAgICAgICAgLm1vbml0b3IoY3VycmVudE5hdGl2ZUlucHV0UmVmLmVsZW1lbnQubmF0aXZlRWxlbWVudClcbiAgICAgICAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kkKSlcbiAgICAgICAgICAgICAgLnN1YnNjcmliZSgoZXZlbnQpID0+IHRoaXMuX3NldEF1dG9maWxsZWQoZXZlbnQuaXNBdXRvZmlsbGVkKSk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuX3NldEF1dG9maWxsZWQoZmFsc2UpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSksXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLl9kZXN0cm95JCksXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKCk7XG5cbiAgICB0aGlzLl9mb2N1c01vbml0b3JcbiAgICAgIC5tb25pdG9yKHRoaXMuX2VsZW1lbnRSZWYsIHRydWUpXG4gICAgICAucGlwZShcbiAgICAgICAgdGFwKChvcmlnaW4pID0+IHtcbiAgICAgICAgICBpZiAodGhpcy5faW5wdXRTdGF0ZVNlcnZpY2UuZGlzYWJsZWQoKSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHRoaXMuX2lucHV0U3RhdGVTZXJ2aWNlLmlzRm9jdXNlZFZpYSQubmV4dChvcmlnaW4pO1xuICAgICAgICB9KSxcbiAgICAgICAgdGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kkKSxcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKTtcblxuICAgIHRoaXMubmF0aXZlSW5wdXRSZWYkXG4gICAgICAucGlwZShcbiAgICAgICAgdGFwKChuYXRpdmVJbnB1dCkgPT4ge1xuICAgICAgICAgIGNvbnN0IHR5cGUgPSBuYXRpdmVJbnB1dD8uZWxlbWVudC5uYXRpdmVFbGVtZW50LmdldEF0dHJpYnV0ZSgndHlwZScpO1xuXG4gICAgICAgICAgaWYgKCF0eXBlKSByZXR1cm47XG5cbiAgICAgICAgICBpZiAodGhpcy5fbmV2ZXJFbXB0eUlucHV0cy5pbmRleE9mKHR5cGUpID4gLTEpIHtcbiAgICAgICAgICAgIHRoaXMuX2lucHV0U3RhdGVTZXJ2aWNlLmlzTmV2ZXJFbXB0eUlucHV0JC5uZXh0KHRydWUpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLl9pbnB1dFN0YXRlU2VydmljZS5pc05ldmVyRW1wdHlJbnB1dCQubmV4dChmYWxzZSk7XG4gICAgICAgICAgfVxuICAgICAgICB9KSxcbiAgICAgICAgdGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kkKSxcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLm5hdGl2ZUlucHV0UmVmKSB7XG4gICAgICB0aGlzLl9hdXRvZmlsbE1vbml0b3Iuc3RvcE1vbml0b3JpbmcodGhpcy5uYXRpdmVJbnB1dFJlZi5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQpO1xuICAgIH1cbiAgfVxuXG4gIGZvY3VzSW5wdXRWaWEob3JpZ2luOiBGb2N1c09yaWdpbiA9ICdwcm9ncmFtJykge1xuICAgIGNvbnN0IGlucHV0RWwgPSB0aGlzLm5hdGl2ZUlucHV0UmVmPy5lbGVtZW50Py5uYXRpdmVFbGVtZW50O1xuXG4gICAgaWYgKGlucHV0RWwpIHtcbiAgICAgIHRoaXMuX2ZvY3VzTW9uaXRvci5mb2N1c1ZpYShpbnB1dEVsLCBvcmlnaW4pO1xuICAgIH1cbiAgfVxuXG4gIF91cGRhdGVWYWx1ZSh2YWx1ZTogVCwgb3B0aW9uczogeyBlbWl0RXZlbnQ/OiBib29sZWFuIH0gPSB7fSkge1xuICAgIGlmICh2YWx1ZSA9PT0gdGhpcy52YWx1ZSB8fCB0aGlzLmRpc2FibGVkKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgeyBlbWl0RXZlbnQgPSB0cnVlIH0gPSBvcHRpb25zO1xuXG4gICAgdGhpcy5faW5wdXRTdGF0ZVNlcnZpY2UudmFsdWUkLm5leHQodmFsdWUpO1xuICAgIHRoaXMuX2lucHV0U3RhdGVTZXJ2aWNlLmxhc3RVcGRhdGVUeXBlJC5uZXh0KCdpbnRlcm5hbCcpO1xuXG4gICAgaWYgKHRoaXMuY29udHJvbC52YWx1ZSAhPT0gdmFsdWUpIHtcbiAgICAgIHRoaXMuX2lucHV0U3RhdGVTZXJ2aWNlLl92YWx1ZUNoYW5nZSh2YWx1ZSk7XG4gICAgfVxuXG4gICAgaWYgKGVtaXRFdmVudCkge1xuICAgICAgdGhpcy5faW5wdXRTdGF0ZVNlcnZpY2UudmFsdWVDaGFuZ2UkLm5leHQodmFsdWUpO1xuICAgIH1cbiAgfVxuXG4gIF91cGRhdGVEaXNhYmxlZCh2YWx1ZTogYm9vbGVhbikge1xuICAgIGlmICh2YWx1ZSA9PT0gdGhpcy5kaXNhYmxlZCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuX2lucHV0U3RhdGVTZXJ2aWNlLmRpc2FibGVkJC5uZXh0KHZhbHVlKTtcbiAgICB0aGlzLl9pbnB1dFN0YXRlU2VydmljZS5kaXNhYmxlZENoYW5nZSQubmV4dCh2YWx1ZSk7XG4gIH1cblxuICBfbWFya0FzVG91Y2hlZCgpIHtcbiAgICBpZiAodGhpcy5kaXNhYmxlZCB8fCB0aGlzLmNvbnRyb2wudG91Y2hlZCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuX2lucHV0U3RhdGVTZXJ2aWNlLl90b3VjaGVkKCk7XG4gIH1cblxuICBfc2V0TmF0aXZlSW5wdXRSZWYocmVmOiBOYXRpdmVJbnB1dFJlZkRpcmVjdGl2ZTxKPiB8IG51bGwpIHtcbiAgICBpZiAodGhpcy5uYXRpdmVJbnB1dFJlZiA9PT0gcmVmKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5faW5wdXRTdGF0ZVNlcnZpY2UubmF0aXZlSW5wdXRSZWYkLm5leHQocmVmKTtcbiAgfVxuXG4gIF9zZXRBdXRvZmlsbGVkKHZhbHVlOiBib29sZWFuKSB7XG4gICAgaWYgKHRoaXMuYXV0b2ZpbGxlZCA9PT0gdmFsdWUpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLl9pbnB1dFN0YXRlU2VydmljZS5hdXRvZmlsbGVkJC5uZXh0KHZhbHVlKTtcbiAgfVxuXG4gIF9zZXRTaG91bGREaXNwbGF5RXJyb3IodmFsdWU6IGJvb2xlYW4pIHtcbiAgICBpZiAodGhpcy5zaG91bGREaXNwbGF5RXJyb3IgPT09IHZhbHVlKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5faW5wdXRTdGF0ZVNlcnZpY2Uuc2hvdWxkRGlzcGxheUVycm9yJC5uZXh0KHZhbHVlKTtcbiAgfVxuXG4gIF9zZXRFbXB0eUhlbHBlcih2YWx1ZTogdW5rbm93biB8IE9ic2VydmFibGU8dW5rbm93bj4pIHtcbiAgICB0aGlzLl9pbnB1dFN0YXRlU2VydmljZS5pc0VtcHR5SGVscGVyJC5uZXh0KHZhbHVlKTtcbiAgfVxuXG4gIHByaXZhdGUgX2RldGVjdENvbnRyb2xSZXF1aXJlZFZhbGlkYXRpb25DaGFuZ2VzKCkge1xuICAgIGNvbnN0IGhhc1JlcXVpcmVkID0gdGhpcy5jb250cm9sLmhhc1ZhbGlkYXRvcihWYWxpZGF0b3JzLnJlcXVpcmVkKSA/PyBmYWxzZTtcbiAgICBjb25zdCBoYXNSZXF1aXJlZFRydWUgPSB0aGlzLmNvbnRyb2wuaGFzVmFsaWRhdG9yKFZhbGlkYXRvcnMucmVxdWlyZWRUcnVlKSA/PyBmYWxzZTtcblxuICAgIGNvbnN0IGlzUmVxdWlyZWQgPSBoYXNSZXF1aXJlZCB8fCBoYXNSZXF1aXJlZFRydWU7XG5cbiAgICBpZiAoaXNSZXF1aXJlZCAhPT0gdGhpcy5yZXF1aXJlZCkge1xuICAgICAgdGhpcy5faW5wdXRTdGF0ZVNlcnZpY2UucmVxdWlyZWQkLm5leHQoaXNSZXF1aXJlZCk7XG4gICAgICB0aGlzLl9pbnB1dFN0YXRlU2VydmljZS5yZXF1aXJlZENoYW5nZSQubmV4dChpc1JlcXVpcmVkKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9kZXRlY3RDb250cm9sRGlzYWJsZWRDaGFuZ2VzKCkge1xuICAgIGNvbnN0IGlzRGlzYWJsZWQgPSB0aGlzLmNvbnRyb2wuZGlzYWJsZWQ7XG5cbiAgICBpZiAoaXNEaXNhYmxlZCAhPT0gdGhpcy5kaXNhYmxlZCkge1xuICAgICAgdGhpcy5faW5wdXRTdGF0ZVNlcnZpY2UuZGlzYWJsZWQkLm5leHQoaXNEaXNhYmxlZCk7XG4gICAgICB0aGlzLl9pbnB1dFN0YXRlU2VydmljZS5kaXNhYmxlZENoYW5nZSQubmV4dChpc0Rpc2FibGVkKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
|
package/fesm2022/ethlete-cdk.mjs
CHANGED
|
@@ -2305,6 +2305,8 @@ class InputDirective {
|
|
|
2305
2305
|
this._id = `et-input-${++nextUniqueId$5}`;
|
|
2306
2306
|
this.autocomplete = null;
|
|
2307
2307
|
this.placeholder = null;
|
|
2308
|
+
this.min = null;
|
|
2309
|
+
this.max = null;
|
|
2308
2310
|
this.describedBy$ = this._formFieldStateService.describedBy$;
|
|
2309
2311
|
this.onInternalUpdate$ = this._inputStateService.onInternalUpdate$;
|
|
2310
2312
|
this.onExternalUpdate$ = this._inputStateService.onExternalUpdate$;
|
|
@@ -2452,7 +2454,7 @@ class InputDirective {
|
|
|
2452
2454
|
}
|
|
2453
2455
|
}
|
|
2454
2456
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.3", ngImport: i0, type: InputDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
2455
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.3", type: InputDirective, isStandalone: true, selector: "[etInput]", inputs: { autocomplete: "autocomplete", placeholder: "placeholder" }, host: { properties: { "attr.autocomplete": "null" }, classAttribute: "et-input" }, providers: [{ provide: INPUT_TOKEN, useExisting: InputDirective }], exportAs: ["etInput"], ngImport: i0 }); }
|
|
2457
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.3", type: InputDirective, isStandalone: true, selector: "[etInput]", inputs: { autocomplete: "autocomplete", placeholder: "placeholder", min: "min", max: "max" }, host: { properties: { "attr.autocomplete": "null" }, classAttribute: "et-input" }, providers: [{ provide: INPUT_TOKEN, useExisting: InputDirective }], exportAs: ["etInput"], ngImport: i0 }); }
|
|
2456
2458
|
}
|
|
2457
2459
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.3", ngImport: i0, type: InputDirective, decorators: [{
|
|
2458
2460
|
type: Directive,
|
|
@@ -2470,6 +2472,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.3", ngImpor
|
|
|
2470
2472
|
type: Input
|
|
2471
2473
|
}], placeholder: [{
|
|
2472
2474
|
type: Input
|
|
2475
|
+
}], min: [{
|
|
2476
|
+
type: Input
|
|
2477
|
+
}], max: [{
|
|
2478
|
+
type: Input
|
|
2473
2479
|
}] } });
|
|
2474
2480
|
|
|
2475
2481
|
const NATIVE_INPUT_REF_TOKEN = new InjectionToken('ET_NATIVE_INPUT_REF_DIRECTIVE_TOKEN');
|
|
@@ -3344,13 +3350,16 @@ class DateTimeInputComponent extends DecoratedInputBase {
|
|
|
3344
3350
|
this.dateInput = inject(DATE_TIME_INPUT_TOKEN);
|
|
3345
3351
|
}
|
|
3346
3352
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.3", ngImport: i0, type: DateTimeInputComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
3347
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.3", type: DateTimeInputComponent, isStandalone: true, selector: "et-date-time-input", host: { classAttribute: "et-date-time-input" }, usesInheritance: true, hostDirectives: [{ directive: DateTimeInputDirective }, { directive: InputDirective, inputs: ["autocomplete", "autocomplete", "placeholder", "placeholder"] }], ngImport: i0, template: "<ng-content select=\"[etInputPrefix]\" />\n\n<input\n [attr.id]=\"input.id\"\n [attr.aria-labelledby]=\"input.labelId$ | async\"\n [required]=\"input.required$ | async\"\n [disabled]=\"input.disabled$ | async\"\n [attr.autocomplete]=\"input.autocomplete || null\"\n [attr.placeholder]=\"input.placeholder || null\"\n [attr.aria-describedby]=\"input.describedBy$ | async\"\n (input)=\"dateInput._onInputInteraction($event)\"\n (blur)=\"dateInput._controlTouched()\"\n class=\"et-input-native-control et-date-time-input-native-control\"\n type=\"datetime-local\"\n etNativeInputRef\n/>\n\n<ng-content select=\"[etInputSuffix]\" />\n", styles: [""], dependencies: [{ kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "directive", type: NativeInputRefDirective, selector: "input[etNativeInputRef], textarea[etNativeInputRef], select[etNativeInputRef], button[etNativeInputRef]" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
3353
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.3", type: DateTimeInputComponent, isStandalone: true, selector: "et-date-time-input", host: { classAttribute: "et-date-time-input" }, usesInheritance: true, hostDirectives: [{ directive: DateTimeInputDirective }, { directive: InputDirective, inputs: ["autocomplete", "autocomplete", "placeholder", "placeholder", "min", "min", "max", "max"] }], ngImport: i0, template: "<ng-content select=\"[etInputPrefix]\" />\n\n<input\n [attr.id]=\"input.id\"\n [attr.aria-labelledby]=\"input.labelId$ | async\"\n [required]=\"input.required$ | async\"\n [disabled]=\"input.disabled$ | async\"\n [attr.autocomplete]=\"input.autocomplete || null\"\n [attr.placeholder]=\"input.placeholder || null\"\n [attr.min]=\"input.min || null\"\n [attr.max]=\"input.max || null\"\n [attr.aria-describedby]=\"input.describedBy$ | async\"\n (input)=\"dateInput._onInputInteraction($event)\"\n (blur)=\"dateInput._controlTouched()\"\n class=\"et-input-native-control et-date-time-input-native-control\"\n type=\"datetime-local\"\n etNativeInputRef\n/>\n\n<ng-content select=\"[etInputSuffix]\" />\n", styles: [""], dependencies: [{ kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "directive", type: NativeInputRefDirective, selector: "input[etNativeInputRef], textarea[etNativeInputRef], select[etNativeInputRef], button[etNativeInputRef]" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
3348
3354
|
}
|
|
3349
3355
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.3", ngImport: i0, type: DateTimeInputComponent, decorators: [{
|
|
3350
3356
|
type: Component,
|
|
3351
3357
|
args: [{ selector: 'et-date-time-input', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: {
|
|
3352
3358
|
class: 'et-date-time-input',
|
|
3353
|
-
}, imports: [AsyncPipe, NativeInputRefDirective], hostDirectives: [
|
|
3359
|
+
}, imports: [AsyncPipe, NativeInputRefDirective], hostDirectives: [
|
|
3360
|
+
DateTimeInputDirective,
|
|
3361
|
+
{ directive: InputDirective, inputs: ['autocomplete', 'placeholder', 'min', 'max'] },
|
|
3362
|
+
], template: "<ng-content select=\"[etInputPrefix]\" />\n\n<input\n [attr.id]=\"input.id\"\n [attr.aria-labelledby]=\"input.labelId$ | async\"\n [required]=\"input.required$ | async\"\n [disabled]=\"input.disabled$ | async\"\n [attr.autocomplete]=\"input.autocomplete || null\"\n [attr.placeholder]=\"input.placeholder || null\"\n [attr.min]=\"input.min || null\"\n [attr.max]=\"input.max || null\"\n [attr.aria-describedby]=\"input.describedBy$ | async\"\n (input)=\"dateInput._onInputInteraction($event)\"\n (blur)=\"dateInput._controlTouched()\"\n class=\"et-input-native-control et-date-time-input-native-control\"\n type=\"datetime-local\"\n etNativeInputRef\n/>\n\n<ng-content select=\"[etInputSuffix]\" />\n" }]
|
|
3354
3363
|
}] });
|
|
3355
3364
|
|
|
3356
3365
|
const EMAIL_INPUT_TOKEN = new InjectionToken('ET_EMAIL_INPUT_DIRECTIVE_TOKEN');
|