@taiga-ui/kit 2.54.1 → 2.55.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.
Files changed (74) hide show
  1. package/bundles/taiga-ui-kit-components-input-files.umd.js +11 -5
  2. package/bundles/taiga-ui-kit-components-input-files.umd.js.map +1 -1
  3. package/bundles/taiga-ui-kit-components-input-files.umd.min.js +1 -1
  4. package/bundles/taiga-ui-kit-components-input-files.umd.min.js.map +1 -1
  5. package/bundles/taiga-ui-kit-components-input-month-range.umd.js +1 -2
  6. package/bundles/taiga-ui-kit-components-input-month-range.umd.js.map +1 -1
  7. package/bundles/taiga-ui-kit-components-input-month-range.umd.min.js +1 -1
  8. package/bundles/taiga-ui-kit-components-input-month-range.umd.min.js.map +1 -1
  9. package/bundles/taiga-ui-kit-components-input-phone-international.umd.js +1 -0
  10. package/bundles/taiga-ui-kit-components-input-phone-international.umd.js.map +1 -1
  11. package/bundles/taiga-ui-kit-components-input-phone-international.umd.min.js +1 -1
  12. package/bundles/taiga-ui-kit-components-input-phone-international.umd.min.js.map +1 -1
  13. package/bundles/taiga-ui-kit-components-slider.umd.js +136 -84
  14. package/bundles/taiga-ui-kit-components-slider.umd.js.map +1 -1
  15. package/bundles/taiga-ui-kit-components-slider.umd.min.js +1 -1
  16. package/bundles/taiga-ui-kit-components-slider.umd.min.js.map +1 -1
  17. package/bundles/taiga-ui-kit-components-tabs.umd.js +4 -2
  18. package/bundles/taiga-ui-kit-components-tabs.umd.js.map +1 -1
  19. package/bundles/taiga-ui-kit-components-tabs.umd.min.js +1 -1
  20. package/bundles/taiga-ui-kit-components-tabs.umd.min.js.map +1 -1
  21. package/components/input-files/taiga-ui-kit-components-input-files.metadata.json +1 -1
  22. package/components/input-phone-international/taiga-ui-kit-components-input-phone-international.metadata.json +1 -1
  23. package/components/slider/{slider-key-steps.directive.d.ts → helpers/slider-key-steps.directive.d.ts} +1 -1
  24. package/components/slider/{slider-readonly.directive.d.ts → helpers/slider-readonly.directive.d.ts} +0 -0
  25. package/components/slider/helpers/slider-thumb-label/slider-thumb-label.component.d.ts +12 -0
  26. package/components/slider/index.d.ts +3 -2
  27. package/components/slider/slider.component.d.ts +1 -1
  28. package/components/slider/taiga-ui-kit-components-slider.metadata.json +1 -1
  29. package/components/tabs/taiga-ui-kit-components-tabs.metadata.json +1 -1
  30. package/esm2015/components/input-files/input-files.module.js +10 -3
  31. package/esm2015/components/input-month-range/input-month-range.component.js +3 -4
  32. package/esm2015/components/input-phone-international/const/countries.js +2 -1
  33. package/esm2015/components/slider/helpers/slider-key-steps.directive.js +103 -0
  34. package/esm2015/components/slider/helpers/slider-readonly.directive.js +79 -0
  35. package/esm2015/components/slider/helpers/slider-thumb-label/slider-thumb-label.component.js +40 -0
  36. package/esm2015/components/slider/index.js +4 -3
  37. package/esm2015/components/slider/slider.component.js +1 -1
  38. package/esm2015/components/slider/slider.module.js +6 -3
  39. package/esm2015/components/tabs/tabs-with-more/tabs-with-more.component.js +6 -4
  40. package/esm5/components/input-files/input-files.module.js +10 -3
  41. package/esm5/components/input-month-range/input-month-range.component.js +3 -4
  42. package/esm5/components/input-phone-international/const/countries.js +2 -1
  43. package/esm5/components/slider/helpers/slider-key-steps.directive.js +129 -0
  44. package/esm5/components/slider/helpers/slider-readonly.directive.js +87 -0
  45. package/esm5/components/slider/helpers/slider-thumb-label/slider-thumb-label.component.js +55 -0
  46. package/esm5/components/slider/index.js +4 -3
  47. package/esm5/components/slider/slider.component.js +1 -1
  48. package/esm5/components/slider/slider.module.js +6 -3
  49. package/esm5/components/tabs/tabs-with-more/tabs-with-more.component.js +6 -4
  50. package/fesm2015/taiga-ui-kit-components-input-files.js +9 -2
  51. package/fesm2015/taiga-ui-kit-components-input-files.js.map +1 -1
  52. package/fesm2015/taiga-ui-kit-components-input-month-range.js +2 -3
  53. package/fesm2015/taiga-ui-kit-components-input-month-range.js.map +1 -1
  54. package/fesm2015/taiga-ui-kit-components-input-phone-international.js +1 -0
  55. package/fesm2015/taiga-ui-kit-components-input-phone-international.js.map +1 -1
  56. package/fesm2015/taiga-ui-kit-components-slider.js +110 -74
  57. package/fesm2015/taiga-ui-kit-components-slider.js.map +1 -1
  58. package/fesm2015/taiga-ui-kit-components-tabs.js +5 -3
  59. package/fesm2015/taiga-ui-kit-components-tabs.js.map +1 -1
  60. package/fesm5/taiga-ui-kit-components-input-files.js +9 -2
  61. package/fesm5/taiga-ui-kit-components-input-files.js.map +1 -1
  62. package/fesm5/taiga-ui-kit-components-input-month-range.js +2 -3
  63. package/fesm5/taiga-ui-kit-components-input-month-range.js.map +1 -1
  64. package/fesm5/taiga-ui-kit-components-input-phone-international.js +1 -0
  65. package/fesm5/taiga-ui-kit-components-input-phone-international.js.map +1 -1
  66. package/fesm5/taiga-ui-kit-components-slider.js +137 -86
  67. package/fesm5/taiga-ui-kit-components-slider.js.map +1 -1
  68. package/fesm5/taiga-ui-kit-components-tabs.js +5 -3
  69. package/fesm5/taiga-ui-kit-components-tabs.js.map +1 -1
  70. package/package.json +4 -4
  71. package/esm2015/components/slider/slider-key-steps.directive.js +0 -103
  72. package/esm2015/components/slider/slider-readonly.directive.js +0 -79
  73. package/esm5/components/slider/slider-key-steps.directive.js +0 -129
  74. package/esm5/components/slider/slider-readonly.directive.js +0 -87
@@ -1,129 +0,0 @@
1
- import { __decorate, __extends, __param } from "tslib";
2
- import { ChangeDetectorRef, Directive, ElementRef, HostListener, Inject, Input, Optional, Output, Pipe, PipeTransform, Self, } from '@angular/core';
3
- import { NgControl } from '@angular/forms';
4
- import { AbstractTuiControl, clamp, isNativeFocused, tuiAssert, tuiDefaultProp, typedFromEvent, } from '@taiga-ui/cdk';
5
- import { tuiCheckKeyStepsHaveMinMaxPercents, tuiKeyStepValueToPercentage, tuiPercentageToKeyStepValue, } from '@taiga-ui/kit/utils';
6
- import { map } from 'rxjs/operators';
7
- import { TuiSliderComponent } from './slider.component';
8
- // @dynamic
9
- var TuiSliderKeyStepsDirective = /** @class */ (function (_super) {
10
- __extends(TuiSliderKeyStepsDirective, _super);
11
- function TuiSliderKeyStepsDirective(control, changeDetectorRef, elementRef, slider) {
12
- var _this = _super.call(this, control, changeDetectorRef) || this;
13
- _this.elementRef = elementRef;
14
- _this.slider = slider;
15
- _this.keySteps = [];
16
- _this.keyStepsInput = typedFromEvent(_this.elementRef.nativeElement, 'input').pipe(map(function () { return _this.controlValue; }));
17
- return _this;
18
- }
19
- Object.defineProperty(TuiSliderKeyStepsDirective.prototype, "nativeFocusableElement", {
20
- get: function () {
21
- return this.computedDisabled ? null : this.elementRef.nativeElement;
22
- },
23
- enumerable: true,
24
- configurable: true
25
- });
26
- Object.defineProperty(TuiSliderKeyStepsDirective.prototype, "focused", {
27
- get: function () {
28
- return isNativeFocused(this.nativeFocusableElement);
29
- },
30
- enumerable: true,
31
- configurable: true
32
- });
33
- Object.defineProperty(TuiSliderKeyStepsDirective.prototype, "min", {
34
- get: function () {
35
- var _a;
36
- return ((_a = this.keySteps[0]) === null || _a === void 0 ? void 0 : _a[1]) || 0;
37
- },
38
- enumerable: true,
39
- configurable: true
40
- });
41
- Object.defineProperty(TuiSliderKeyStepsDirective.prototype, "max", {
42
- get: function () {
43
- var _a;
44
- return ((_a = this.keySteps[this.keySteps.length - 1]) === null || _a === void 0 ? void 0 : _a[1]) || 100;
45
- },
46
- enumerable: true,
47
- configurable: true
48
- });
49
- Object.defineProperty(TuiSliderKeyStepsDirective.prototype, "controlValue", {
50
- get: function () {
51
- return tuiPercentageToKeyStepValue(this.slider.valuePercentage, this.keySteps);
52
- },
53
- enumerable: true,
54
- configurable: true
55
- });
56
- TuiSliderKeyStepsDirective.prototype.updateControlValue = function () {
57
- this.updateValue(this.controlValue);
58
- };
59
- TuiSliderKeyStepsDirective.prototype.writeValue = function (controlValue) {
60
- if (controlValue === null) {
61
- return;
62
- }
63
- var clampedControlValue = clamp(controlValue, this.min, this.max);
64
- tuiAssert.assert(controlValue === clampedControlValue, '\n[SliderKeySteps]: You cannot programmatically set value which is less/more than min/max');
65
- this.slider.value = this.transformToNativeValue(clampedControlValue);
66
- };
67
- TuiSliderKeyStepsDirective.prototype.getFallbackValue = function () {
68
- return 0;
69
- };
70
- TuiSliderKeyStepsDirective.prototype.transformToNativeValue = function (controlValue) {
71
- var _a = this.slider, min = _a.min, max = _a.max;
72
- var newValuePercentage = tuiKeyStepValueToPercentage(controlValue, this.keySteps);
73
- return (newValuePercentage * (max - min)) / 100 + min;
74
- };
75
- TuiSliderKeyStepsDirective.ctorParameters = function () { return [
76
- { type: NgControl, decorators: [{ type: Optional }, { type: Self }, { type: Inject, args: [NgControl,] }] },
77
- { type: ChangeDetectorRef, decorators: [{ type: Inject, args: [ChangeDetectorRef,] }] },
78
- { type: ElementRef, decorators: [{ type: Inject, args: [ElementRef,] }] },
79
- { type: TuiSliderComponent, decorators: [{ type: Inject, args: [TuiSliderComponent,] }] }
80
- ]; };
81
- __decorate([
82
- Input(),
83
- tuiDefaultProp(tuiCheckKeyStepsHaveMinMaxPercents, 'Should contain min and max values')
84
- ], TuiSliderKeyStepsDirective.prototype, "keySteps", void 0);
85
- __decorate([
86
- Output()
87
- ], TuiSliderKeyStepsDirective.prototype, "keyStepsInput", void 0);
88
- __decorate([
89
- HostListener('change')
90
- ], TuiSliderKeyStepsDirective.prototype, "updateControlValue", null);
91
- TuiSliderKeyStepsDirective = __decorate([
92
- Directive({
93
- selector: 'input[tuiSlider][keySteps]',
94
- host: {
95
- '[attr.data-key-steps]': 'true',
96
- '[attr.aria-valuenow]': 'controlValue',
97
- '[attr.aria-valuemin]': 'min',
98
- '[attr.aria-valuemax]': 'max',
99
- },
100
- }),
101
- __param(0, Optional()),
102
- __param(0, Self()),
103
- __param(0, Inject(NgControl)),
104
- __param(1, Inject(ChangeDetectorRef)),
105
- __param(2, Inject(ElementRef)),
106
- __param(3, Inject(TuiSliderComponent))
107
- ], TuiSliderKeyStepsDirective);
108
- return TuiSliderKeyStepsDirective;
109
- }(AbstractTuiControl));
110
- export { TuiSliderKeyStepsDirective };
111
- /**
112
- * @deprecated DONT USE IT! It is just temporary solution for internal purposes only. We will delete it in next major release.
113
- * TODO delete it in v3.0
114
- *
115
- */
116
- var TuiSliderTickLabelPipe = /** @class */ (function () {
117
- function TuiSliderTickLabelPipe() {
118
- }
119
- TuiSliderTickLabelPipe.prototype.transform = function (tickIndex, totalSegments, keySteps) {
120
- var percentage = (100 / totalSegments) * tickIndex;
121
- return tuiPercentageToKeyStepValue(percentage, keySteps);
122
- };
123
- TuiSliderTickLabelPipe = __decorate([
124
- Pipe({ name: 'tuiSliderTickLabel' })
125
- ], TuiSliderTickLabelPipe);
126
- return TuiSliderTickLabelPipe;
127
- }());
128
- export { TuiSliderTickLabelPipe };
129
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2xpZGVyLWtleS1zdGVwcy5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AdGFpZ2EtdWkva2l0L2NvbXBvbmVudHMvc2xpZGVyLyIsInNvdXJjZXMiOlsic2xpZGVyLWtleS1zdGVwcy5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFDSCxpQkFBaUIsRUFDakIsU0FBUyxFQUNULFVBQVUsRUFDVixZQUFZLEVBQ1osTUFBTSxFQUNOLEtBQUssRUFDTCxRQUFRLEVBQ1IsTUFBTSxFQUNOLElBQUksRUFDSixhQUFhLEVBQ2IsSUFBSSxHQUNQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUN6QyxPQUFPLEVBQ0gsa0JBQWtCLEVBQ2xCLEtBQUssRUFDTCxlQUFlLEVBQ2YsU0FBUyxFQUNULGNBQWMsRUFFZCxjQUFjLEdBQ2pCLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFDSCxrQ0FBa0MsRUFDbEMsMkJBQTJCLEVBQzNCLDJCQUEyQixHQUM5QixNQUFNLHFCQUFxQixDQUFDO0FBQzdCLE9BQU8sRUFBQyxHQUFHLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUVuQyxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSxvQkFBb0IsQ0FBQztBQUV0RCxXQUFXO0FBVVg7SUFDWSw4Q0FBMEI7SUFtQ2xDLG9DQUlJLE9BQXlCLEVBQ0UsaUJBQW9DLEVBQzFCLFVBQXdDLEVBQ2hDLE1BQTBCO1FBUDNFLFlBU0ksa0JBQU0sT0FBTyxFQUFFLGlCQUFpQixDQUFDLFNBQ3BDO1FBSndDLGdCQUFVLEdBQVYsVUFBVSxDQUE4QjtRQUNoQyxZQUFNLEdBQU4sTUFBTSxDQUFvQjtRQWxDM0UsY0FBUSxHQUFnQixFQUFFLENBQUM7UUFHM0IsbUJBQWEsR0FBRyxjQUFjLENBQUMsS0FBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLEVBQUUsT0FBTyxDQUFDLENBQUMsSUFB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N0Isc0JBQXNCLEVBQUUsS0FBSzthQUNoQztTQUNKLENBQUM7UUFzQ08sV0FBQSxRQUFRLEVBQUUsQ0FBQTtRQUNWLFdBQUEsSUFBSSxFQUFFLENBQUE7UUFDTixXQUFBLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQTtRQUVqQixXQUFBLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFBO1FBQ3pCLFdBQUEsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFBO1FBQ2xCLFdBQUEsTUFBTSxDQUFDLGtCQUFrQixDQUFDLENBQUE7T0EzQ3RCLDBCQUEwQixDQWlGdEM7SUFBRCxpQ0FBQztDQUFBLEFBakZELENBQ1ksa0JBQWtCLEdBZ0Y3QjtTQWpGWSwwQkFBMEI7QUFtRnZDOzs7O0dBSUc7QUFFSDtJQUFBO0lBTUEsQ0FBQztJQUxHLDBDQUFTLEdBQVQsVUFBVSxTQUFpQixFQUFFLGFBQXFCLEVBQUUsUUFBcUI7UUFDckUsSUFBTSxVQUFVLEdBQUcsQ0FBQyxHQUFHLEdBQUcsYUFBYSxDQUFDLEdBQUcsU0FBUyxDQUFDO1FBRXJELE9BQU8sMkJBQTJCLENBQUMsVUFBVSxFQUFFLFFBQVEsQ0FBQyxDQUFDO0lBQzdELENBQUM7SUFMUSxzQkFBc0I7UUFEbEMsSUFBSSxDQUFDLEVBQUMsSUFBSSxFQUFFLG9CQUFvQixFQUFDLENBQUM7T0FDdEIsc0JBQXNCLENBTWxDO0lBQUQsNkJBQUM7Q0FBQSxBQU5ELElBTUM7U0FOWSxzQkFBc0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIERpcmVjdGl2ZSxcbiAgICBFbGVtZW50UmVmLFxuICAgIEhvc3RMaXN0ZW5lcixcbiAgICBJbmplY3QsXG4gICAgSW5wdXQsXG4gICAgT3B0aW9uYWwsXG4gICAgT3V0cHV0LFxuICAgIFBpcGUsXG4gICAgUGlwZVRyYW5zZm9ybSxcbiAgICBTZWxmLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7TmdDb250cm9sfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQge1xuICAgIEFic3RyYWN0VHVpQ29udHJvbCxcbiAgICBjbGFtcCxcbiAgICBpc05hdGl2ZUZvY3VzZWQsXG4gICAgdHVpQXNzZXJ0LFxuICAgIHR1aURlZmF1bHRQcm9wLFxuICAgIFR1aUZvY3VzYWJsZUVsZW1lbnRBY2Nlc3NvcixcbiAgICB0eXBlZEZyb21FdmVudCxcbn0gZnJvbSAnQHRhaWdhLXVpL2Nkayc7XG5pbXBvcnQge1R1aUtleVN0ZXBzfSBmcm9tICdAdGFpZ2EtdWkva2l0L3R5cGVzJztcbmltcG9ydCB7XG4gICAgdHVpQ2hlY2tLZXlTdGVwc0hhdmVNaW5NYXhQZXJjZW50cyxcbiAgICB0dWlLZXlTdGVwVmFsdWVUb1BlcmNlbnRhZ2UsXG4gICAgdHVpUGVyY2VudGFnZVRvS2V5U3RlcFZhbHVlLFxufSBmcm9tICdAdGFpZ2EtdWkva2l0L3V0aWxzJztcbmltcG9ydCB7bWFwfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7VHVpU2xpZGVyQ29tcG9uZW50fSBmcm9tICcuL3NsaWRlci5jb21wb25lbnQnO1xuXG4vLyBAZHluYW1pY1xuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdpbnB1dFt0dWlTbGlkZXJdW2tleVN0ZXBzXScsXG4gICAgaG9zdDoge1xuICAgICAgICAnW2F0dHIuZGF0YS1rZXktc3RlcHNdJzogJ3RydWUnLFxuICAgICAgICAnW2F0dHIuYXJpYS12YWx1ZW5vd10nOiAnY29udHJvbFZhbHVlJyxcbiAgICAgICAgJ1thdHRyLmFyaWEtdmFsdWVtaW5dJzogJ21pbicsXG4gICAgICAgICdbYXR0ci5hcmlhLXZhbHVlbWF4XSc6ICdtYXgnLFxuICAgIH0sXG59KVxuZXhwb3J0IGNsYXNzIFR1aVNsaWRlcktleVN0ZXBzRGlyZWN0aXZlXG4gICAgZXh0ZW5kcyBBYnN0cmFjdFR1aUNvbnRyb2w8bnVtYmVyPlxuICAgIGltcGxlbWVudHMgVHVpRm9jdXNhYmxlRWxlbWVudEFjY2Vzc29yXG57XG4gICAgQElucHV0KClcbiAgICBAdHVpRGVmYXVsdFByb3AoXG4gICAgICAgIHR1aUNoZWNrS2V5U3RlcHNIYXZlTWluTWF4UGVyY2VudHMsXG4gICAgICAgICdTaG91bGQgY29udGFpbiBtaW4gYW5kIG1heCB2YWx1ZXMnLFxuICAgIClcbiAgICBrZXlTdGVwczogVHVpS2V5U3RlcHMgPSBbXTtcblxuICAgIEBPdXRwdXQoKVxuICAgIGtleVN0ZXBzSW5wdXQgPSB0eXBlZEZyb21FdmVudCh0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgJ2lucHV0JykucGlwZShcbiAgICAgICAgbWFwKCgpID0+IHRoaXMuY29udHJvbFZhbHVlKSxcbiAgICApO1xuXG4gICAgZ2V0IG5hdGl2ZUZvY3VzYWJsZUVsZW1lbnQoKTogSFRNTElucHV0RWxlbWVudCB8IG51bGwge1xuICAgICAgICByZXR1cm4gdGhpcy5jb21wdXRlZERpc2FibGVkID8gbnVsbCA6IHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50O1xuICAgIH1cblxuICAgIGdldCBmb2N1c2VkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gaXNOYXRpdmVGb2N1c2VkKHRoaXMubmF0aXZlRm9jdXNhYmxlRWxlbWVudCk7XG4gICAgfVxuXG4gICAgZ2V0IG1pbigpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gdGhpcy5rZXlTdGVwc1swXT8uWzFdIHx8IDA7XG4gICAgfVxuXG4gICAgZ2V0IG1heCgpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gdGhpcy5rZXlTdGVwc1t0aGlzLmtleVN0ZXBzLmxlbmd0aCAtIDFdPy5bMV0gfHwgMTAwO1xuICAgIH1cblxuICAgIGdldCBjb250cm9sVmFsdWUoKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIHR1aVBlcmNlbnRhZ2VUb0tleVN0ZXBWYWx1ZSh0aGlzLnNsaWRlci52YWx1ZVBlcmNlbnRhZ2UsIHRoaXMua2V5U3RlcHMpO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBAT3B0aW9uYWwoKVxuICAgICAgICBAU2VsZigpXG4gICAgICAgIEBJbmplY3QoTmdDb250cm9sKVxuICAgICAgICBjb250cm9sOiBOZ0NvbnRyb2wgfCBudWxsLFxuICAgICAgICBASW5qZWN0KENoYW5nZURldGVjdG9yUmVmKSBjaGFuZ2VEZXRlY3RvclJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgICAgIEBJbmplY3QoRWxlbWVudFJlZikgcHJpdmF0ZSByZWFkb25seSBlbGVtZW50UmVmOiBFbGVtZW50UmVmPEhUTUxJbnB1dEVsZW1lbnQ+LFxuICAgICAgICBASW5qZWN0KFR1aVNsaWRlckNvbXBvbmVudCkgcHJpdmF0ZSByZWFkb25seSBzbGlkZXI6IFR1aVNsaWRlckNvbXBvbmVudCxcbiAgICApIHtcbiAgICAgICAgc3VwZXIoY29udHJvbCwgY2hhbmdlRGV0ZWN0b3JSZWYpO1xuICAgIH1cblxuICAgIEBIb3N0TGlzdGVuZXIoJ2NoYW5nZScpXG4gICAgdXBkYXRlQ29udHJvbFZhbHVlKCk6IHZvaWQge1xuICAgICAgICB0aGlzLnVwZGF0ZVZhbHVlKHRoaXMuY29udHJvbFZhbHVlKTtcbiAgICB9XG5cbiAgICB3cml0ZVZhbHVlKGNvbnRyb2xWYWx1ZTogbnVtYmVyIHwgbnVsbCk6IHZvaWQge1xuICAgICAgICBpZiAoY29udHJvbFZhbHVlID09PSBudWxsKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBjbGFtcGVkQ29udHJvbFZhbHVlID0gY2xhbXAoY29udHJvbFZhbHVlLCB0aGlzLm1pbiwgdGhpcy5tYXgpO1xuXG4gICAgICAgIHR1aUFzc2VydC5hc3NlcnQoXG4gICAgICAgICAgICBjb250cm9sVmFsdWUgPT09IGNsYW1wZWRDb250cm9sVmFsdWUsXG4gICAgICAgICAgICAnXFxuW1NsaWRlcktleVN0ZXBzXTogWW91IGNhbm5vdCBwcm9ncmFtbWF0aWNhbGx5IHNldCB2YWx1ZSB3aGljaCBpcyBsZXNzL21vcmUgdGhhbiBtaW4vbWF4JyxcbiAgICAgICAgKTtcblxuICAgICAgICB0aGlzLnNsaWRlci52YWx1ZSA9IHRoaXMudHJhbnNmb3JtVG9OYXRpdmVWYWx1ZShjbGFtcGVkQ29udHJvbFZhbHVlKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZ2V0RmFsbGJhY2tWYWx1ZSgpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gMDtcbiAgICB9XG5cbiAgICBwcml2YXRlIHRyYW5zZm9ybVRvTmF0aXZlVmFsdWUoY29udHJvbFZhbHVlOiBudW1iZXIpOiBudW1iZXIge1xuICAgICAgICBjb25zdCB7bWluLCBtYXh9ID0gdGhpcy5zbGlkZXI7XG4gICAgICAgIGNvbnN0IG5ld1ZhbHVlUGVyY2VudGFnZSA9IHR1aUtleVN0ZXBWYWx1ZVRvUGVyY2VudGFnZShcbiAgICAgICAgICAgIGNvbnRyb2xWYWx1ZSxcbiAgICAgICAgICAgIHRoaXMua2V5U3RlcHMsXG4gICAgICAgICk7XG5cbiAgICAgICAgcmV0dXJuIChuZXdWYWx1ZVBlcmNlbnRhZ2UgKiAobWF4IC0gbWluKSkgLyAxMDAgKyBtaW47XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIERPTlQgVVNFIElUISBJdCBpcyBqdXN0IHRlbXBvcmFyeSBzb2x1dGlvbiBmb3IgaW50ZXJuYWwgcHVycG9zZXMgb25seS4gV2Ugd2lsbCBkZWxldGUgaXQgaW4gbmV4dCBtYWpvciByZWxlYXNlLlxuICogVE9ETyBkZWxldGUgaXQgaW4gdjMuMFxuICpcbiAqL1xuQFBpcGUoe25hbWU6ICd0dWlTbGlkZXJUaWNrTGFiZWwnfSlcbmV4cG9ydCBjbGFzcyBUdWlTbGlkZXJUaWNrTGFiZWxQaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XG4gICAgdHJhbnNmb3JtKHRpY2tJbmRleDogbnVtYmVyLCB0b3RhbFNlZ21lbnRzOiBudW1iZXIsIGtleVN0ZXBzOiBUdWlLZXlTdGVwcyk6IG51bWJlciB7XG4gICAgICAgIGNvbnN0IHBlcmNlbnRhZ2UgPSAoMTAwIC8gdG90YWxTZWdtZW50cykgKiB0aWNrSW5kZXg7XG5cbiAgICAgICAgcmV0dXJuIHR1aVBlcmNlbnRhZ2VUb0tleVN0ZXBWYWx1ZShwZXJjZW50YWdlLCBrZXlTdGVwcyk7XG4gICAgfVxufVxuIl19
@@ -1,87 +0,0 @@
1
- import { __decorate, __param, __read } from "tslib";
2
- import { DOCUMENT } from '@angular/common';
3
- import { Directive, ElementRef, HostListener, Inject, Input } from '@angular/core';
4
- import { tuiCoerceBooleanProperty, tuiDefaultProp, TuiDestroyService, typedFromEvent, } from '@taiga-ui/cdk';
5
- import { combineLatest, merge, Observable } from 'rxjs';
6
- import { filter, mapTo, takeUntil, tap } from 'rxjs/operators';
7
- var SLIDER_INTERACTION_KEYS = new Set([
8
- 'ArrowLeft',
9
- 'ArrowRight',
10
- 'ArrowUp',
11
- 'ArrowDown',
12
- 'Home',
13
- 'End',
14
- 'PageUp',
15
- 'PageDown',
16
- ]);
17
- /**
18
- * Native <input type='range' readonly> doesn't work.
19
- * This directive imitates this native behaviour.
20
- */
21
- // @dynamic
22
- var TuiSliderReadonlyDirective = /** @class */ (function () {
23
- function TuiSliderReadonlyDirective(elementRef, documentRef, destroy$) {
24
- var _this = this;
25
- this.readonly = true;
26
- var touchStart$ = typedFromEvent(elementRef.nativeElement, 'touchstart', {
27
- passive: false,
28
- });
29
- var touchMove$ = typedFromEvent(documentRef, 'touchmove', {
30
- passive: false,
31
- });
32
- var touchEnd$ = typedFromEvent(documentRef, 'touchend', {
33
- passive: true,
34
- });
35
- var shouldPreventMove$ = merge(touchStart$.pipe(tap(function (e) { return _this.preventEvent(e); }), mapTo(true)), touchEnd$.pipe(mapTo(false)));
36
- /**
37
- * @bad TODO think about another solution.
38
- * Keep in mind that preventing touch event (on slider) inside `@HostListener('touchstart')` doesn't work for mobile chrome.
39
- */
40
- combineLatest([touchMove$, shouldPreventMove$])
41
- .pipe(filter(function (_a) {
42
- var _b = __read(_a, 2), _ = _b[0], shouldPreventMove = _b[1];
43
- return shouldPreventMove;
44
- }), takeUntil(destroy$))
45
- .subscribe(function (_a) {
46
- var _b = __read(_a, 1), moveEvent = _b[0];
47
- return _this.preventEvent(moveEvent);
48
- });
49
- }
50
- TuiSliderReadonlyDirective.prototype.preventEvent = function (event) {
51
- if (event.cancelable && tuiCoerceBooleanProperty(this.readonly)) {
52
- event.preventDefault();
53
- }
54
- };
55
- TuiSliderReadonlyDirective.prototype.preventKeyboardInteraction = function (event) {
56
- if (SLIDER_INTERACTION_KEYS.has(event.key)) {
57
- this.preventEvent(event);
58
- }
59
- };
60
- TuiSliderReadonlyDirective.ctorParameters = function () { return [
61
- { type: ElementRef, decorators: [{ type: Inject, args: [ElementRef,] }] },
62
- { type: Document, decorators: [{ type: Inject, args: [DOCUMENT,] }] },
63
- { type: Observable, decorators: [{ type: Inject, args: [TuiDestroyService,] }] }
64
- ]; };
65
- __decorate([
66
- Input(),
67
- tuiDefaultProp()
68
- ], TuiSliderReadonlyDirective.prototype, "readonly", void 0);
69
- __decorate([
70
- HostListener('mousedown', ['$event'])
71
- ], TuiSliderReadonlyDirective.prototype, "preventEvent", null);
72
- __decorate([
73
- HostListener('keydown', ['$event'])
74
- ], TuiSliderReadonlyDirective.prototype, "preventKeyboardInteraction", null);
75
- TuiSliderReadonlyDirective = __decorate([
76
- Directive({
77
- selector: 'input[tuiSlider][readonly]',
78
- providers: [TuiDestroyService],
79
- }),
80
- __param(0, Inject(ElementRef)),
81
- __param(1, Inject(DOCUMENT)),
82
- __param(2, Inject(TuiDestroyService))
83
- ], TuiSliderReadonlyDirective);
84
- return TuiSliderReadonlyDirective;
85
- }());
86
- export { TuiSliderReadonlyDirective };
87
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2xpZGVyLXJlYWRvbmx5LmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0B0YWlnYS11aS9raXQvY29tcG9uZW50cy9zbGlkZXIvIiwic291cmNlcyI6WyJzbGlkZXItcmVhZG9ubHkuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDekMsT0FBTyxFQUFDLFNBQVMsRUFBRSxVQUFVLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDakYsT0FBTyxFQUNILHdCQUF3QixFQUN4QixjQUFjLEVBQ2QsaUJBQWlCLEVBQ2pCLGNBQWMsR0FDakIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFDLGFBQWEsRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBQ3RELE9BQU8sRUFBQyxNQUFNLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUU3RCxJQUFNLHVCQUF1QixHQUFHLElBQUksR0FBRyxDQUFDO0lBQ3BDLFdBQVc7SUFDWCxZQUFZO0lBQ1osU0FBUztJQUNULFdBQVc7SUFDWCxNQUFNO0lBQ04sS0FBSztJQUNMLFFBQVE7SUFDUixVQUFVO0NBQ2IsQ0FBQyxDQUFDO0FBRUg7OztHQUdHO0FBQ0gsV0FBVztBQUtYO0lBS0ksb0NBQ3dCLFVBQXdDLEVBQzFDLFdBQXFCLEVBRXZDLFFBQTZCO1FBSmpDLGlCQWtDQztRQXBDRCxhQUFRLEdBQXFCLElBQUksQ0FBQztRQVE5QixJQUFNLFdBQVcsR0FBRyxjQUFjLENBQUMsVUFBVSxDQUFDLGFBQWEsRUFBRSxZQUFZLEVBQUU7WUFDdkUsT0FBTyxFQUFFLEtBQUs7U0FDakIsQ0FBQyxDQUFDO1FBQ0gsSUFBTSxVQUFVLEdBQUcsY0FBYyxDQUFDLFdBQVcsRUFBRSxXQUFXLEVBQUU7WUFDeEQsT0FBTyxFQUFFLEtBQUs7U0FDakIsQ0FBQyxDQUFDO1FBQ0gsSUFBTSxTQUFTLEdBQUcsY0FBYyxDQUFDLFdBQVcsRUFBRSxVQUFVLEVBQUU7WUFDdEQsT0FBTyxFQUFFLElBQUk7U0FDaEIsQ0FBQyxDQUFDO1FBRUgsSUFBTSxrQkFBa0IsR0FBRyxLQUFLLENBQzVCLFdBQVcsQ0FBQyxJQUFJLENBQ1osR0FBRyxDQUFDLFVBQUEsQ0FBQyxJQUFJLE9BQUEsS0FBSSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsRUFBcEIsQ0FBb0IsQ0FBQyxFQUM5QixLQUFLLENBQUMsSUFBSSxDQUFDLENBQ2QsRUFDRCxTQUFTLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUMvQixDQUFDO1FBRUY7OztXQUdHO1FBQ0gsYUFBYSxDQUFDLENBQUMsVUFBVSxFQUFFLGtCQUFrQixDQUFDLENBQUM7YUFDMUMsSUFBSSxDQUNELE1BQU0sQ0FBQyxVQUFDLEVBQXNCO2dCQUF0QixrQkFBc0IsRUFBckIsU0FBQyxFQUFFLHlCQUFpQjtZQUFNLE9BQUEsaUJBQWlCO1FBQWpCLENBQWlCLENBQUMsRUFDckQsU0FBUyxDQUFDLFFBQVEsQ0FBQyxDQUN0QjthQUNBLFNBQVMsQ0FBQyxVQUFDLEVBQVc7Z0JBQVgsa0JBQVcsRUFBVixpQkFBUztZQUFNLE9BQUEsS0FBSSxDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUM7UUFBNUIsQ0FBNEIsQ0FBQyxDQUFDO0lBQ2xFLENBQUM7SUFHRCxpREFBWSxHQUFaLFVBQWEsS0FBWTtRQUNyQixJQUFJLEtBQUssQ0FBQyxVQUFVLElBQUksd0JBQXdCLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxFQUFFO1lBQzdELEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztTQUMxQjtJQUNMLENBQUM7SUFHRCwrREFBMEIsR0FBMUIsVUFBMkIsS0FBb0I7UUFDM0MsSUFBSSx1QkFBdUIsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxFQUFFO1lBQ3hDLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDNUI7SUFDTCxDQUFDOztnQkEvQ21DLFVBQVUsdUJBQXpDLE1BQU0sU0FBQyxVQUFVO2dCQUNhLFFBQVEsdUJBQXRDLE1BQU0sU0FBQyxRQUFRO2dCQUVOLFVBQVUsdUJBRG5CLE1BQU0sU0FBQyxpQkFBaUI7O0lBTDdCO1FBRkMsS0FBSyxFQUFFO1FBQ1AsY0FBYyxFQUFFO2dFQUNpQjtJQXVDbEM7UUFEQyxZQUFZLENBQUMsV0FBVyxFQUFFLENBQUMsUUFBUSxDQUFDLENBQUM7a0VBS3JDO0lBR0Q7UUFEQyxZQUFZLENBQUMsU0FBUyxFQUFFLENBQUMsUUFBUSxDQUFDLENBQUM7Z0ZBS25DO0lBckRRLDBCQUEwQjtRQUp0QyxTQUFTLENBQUM7WUFDUCxRQUFRLEVBQUUsNEJBQTRCO1lBQ3RDLFNBQVMsRUFBRSxDQUFDLGlCQUFpQixDQUFDO1NBQ2pDLENBQUM7UUFPTyxXQUFBLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQTtRQUNsQixXQUFBLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQTtRQUNoQixXQUFBLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFBO09BUnJCLDBCQUEwQixDQXNEdEM7SUFBRCxpQ0FBQztDQUFBLEFBdERELElBc0RDO1NBdERZLDBCQUEwQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7RE9DVU1FTlR9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge0RpcmVjdGl2ZSwgRWxlbWVudFJlZiwgSG9zdExpc3RlbmVyLCBJbmplY3QsIElucHV0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gICAgdHVpQ29lcmNlQm9vbGVhblByb3BlcnR5LFxuICAgIHR1aURlZmF1bHRQcm9wLFxuICAgIFR1aURlc3Ryb3lTZXJ2aWNlLFxuICAgIHR5cGVkRnJvbUV2ZW50LFxufSBmcm9tICdAdGFpZ2EtdWkvY2RrJztcbmltcG9ydCB7Y29tYmluZUxhdGVzdCwgbWVyZ2UsIE9ic2VydmFibGV9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtmaWx0ZXIsIG1hcFRvLCB0YWtlVW50aWwsIHRhcH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5jb25zdCBTTElERVJfSU5URVJBQ1RJT05fS0VZUyA9IG5ldyBTZXQoW1xuICAgICdBcnJvd0xlZnQnLFxuICAgICdBcnJvd1JpZ2h0JyxcbiAgICAnQXJyb3dVcCcsXG4gICAgJ0Fycm93RG93bicsXG4gICAgJ0hvbWUnLFxuICAgICdFbmQnLFxuICAgICdQYWdlVXAnLFxuICAgICdQYWdlRG93bicsXG5dKTtcblxuLyoqXG4gKiBOYXRpdmUgPGlucHV0IHR5cGU9J3JhbmdlJyByZWFkb25seT4gZG9lc24ndCB3b3JrLlxuICogVGhpcyBkaXJlY3RpdmUgaW1pdGF0ZXMgdGhpcyBuYXRpdmUgYmVoYXZpb3VyLlxuICovXG4vLyBAZHluYW1pY1xuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdpbnB1dFt0dWlTbGlkZXJdW3JlYWRvbmx5XScsXG4gICAgcHJvdmlkZXJzOiBbVHVpRGVzdHJveVNlcnZpY2VdLFxufSlcbmV4cG9ydCBjbGFzcyBUdWlTbGlkZXJSZWFkb25seURpcmVjdGl2ZSB7XG4gICAgQElucHV0KClcbiAgICBAdHVpRGVmYXVsdFByb3AoKVxuICAgIHJlYWRvbmx5OiBzdHJpbmcgfCBib29sZWFuID0gdHJ1ZTtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBASW5qZWN0KEVsZW1lbnRSZWYpIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWY8SFRNTElucHV0RWxlbWVudD4sXG4gICAgICAgIEBJbmplY3QoRE9DVU1FTlQpIGRvY3VtZW50UmVmOiBEb2N1bWVudCxcbiAgICAgICAgQEluamVjdChUdWlEZXN0cm95U2VydmljZSlcbiAgICAgICAgZGVzdHJveSQ6IE9ic2VydmFibGU8dW5rbm93bj4sXG4gICAgKSB7XG4gICAgICAgIGNvbnN0IHRvdWNoU3RhcnQkID0gdHlwZWRGcm9tRXZlbnQoZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCAndG91Y2hzdGFydCcsIHtcbiAgICAgICAgICAgIHBhc3NpdmU6IGZhbHNlLFxuICAgICAgICB9KTtcbiAgICAgICAgY29uc3QgdG91Y2hNb3ZlJCA9IHR5cGVkRnJvbUV2ZW50KGRvY3VtZW50UmVmLCAndG91Y2htb3ZlJywge1xuICAgICAgICAgICAgcGFzc2l2ZTogZmFsc2UsXG4gICAgICAgIH0pO1xuICAgICAgICBjb25zdCB0b3VjaEVuZCQgPSB0eXBlZEZyb21FdmVudChkb2N1bWVudFJlZiwgJ3RvdWNoZW5kJywge1xuICAgICAgICAgICAgcGFzc2l2ZTogdHJ1ZSxcbiAgICAgICAgfSk7XG5cbiAgICAgICAgY29uc3Qgc2hvdWxkUHJldmVudE1vdmUkID0gbWVyZ2UoXG4gICAgICAgICAgICB0b3VjaFN0YXJ0JC5waXBlKFxuICAgICAgICAgICAgICAgIHRhcChlID0+IHRoaXMucHJldmVudEV2ZW50KGUpKSxcbiAgICAgICAgICAgICAgICBtYXBUbyh0cnVlKSxcbiAgICAgICAgICAgICksXG4gICAgICAgICAgICB0b3VjaEVuZCQucGlwZShtYXBUbyhmYWxzZSkpLFxuICAgICAgICApO1xuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAYmFkIFRPRE8gdGhpbmsgYWJvdXQgYW5vdGhlciBzb2x1dGlvbi5cbiAgICAgICAgICogS2VlcCBpbiBtaW5kIHRoYXQgcHJldmVudGluZyB0b3VjaCBldmVudCAob24gc2xpZGVyKSBpbnNpZGUgYEBIb3N0TGlzdGVuZXIoJ3RvdWNoc3RhcnQnKWAgZG9lc24ndCB3b3JrIGZvciBtb2JpbGUgY2hyb21lLlxuICAgICAgICAgKi9cbiAgICAgICAgY29tYmluZUxhdGVzdChbdG91Y2hNb3ZlJCwgc2hvdWxkUHJldmVudE1vdmUkXSlcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIGZpbHRlcigoW18sIHNob3VsZFByZXZlbnRNb3ZlXSkgPT4gc2hvdWxkUHJldmVudE1vdmUpLFxuICAgICAgICAgICAgICAgIHRha2VVbnRpbChkZXN0cm95JCksXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAuc3Vic2NyaWJlKChbbW92ZUV2ZW50XSkgPT4gdGhpcy5wcmV2ZW50RXZlbnQobW92ZUV2ZW50KSk7XG4gICAgfVxuXG4gICAgQEhvc3RMaXN0ZW5lcignbW91c2Vkb3duJywgWyckZXZlbnQnXSlcbiAgICBwcmV2ZW50RXZlbnQoZXZlbnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgICAgIGlmIChldmVudC5jYW5jZWxhYmxlICYmIHR1aUNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh0aGlzLnJlYWRvbmx5KSkge1xuICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBIb3N0TGlzdGVuZXIoJ2tleWRvd24nLCBbJyRldmVudCddKVxuICAgIHByZXZlbnRLZXlib2FyZEludGVyYWN0aW9uKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XG4gICAgICAgIGlmIChTTElERVJfSU5URVJBQ1RJT05fS0VZUy5oYXMoZXZlbnQua2V5KSkge1xuICAgICAgICAgICAgdGhpcy5wcmV2ZW50RXZlbnQoZXZlbnQpO1xuICAgICAgICB9XG4gICAgfVxufVxuIl19