@progress/kendo-angular-inputs 7.4.0-dev.202109021544 → 7.5.0-dev.202110261427

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 (60) hide show
  1. package/dist/cdn/js/kendo-angular-inputs.js +2 -2
  2. package/dist/cdn/main.js +1 -1
  3. package/dist/es/colorpicker/color-gradient.component.js +19 -7
  4. package/dist/es/colorpicker/color-input.component.js +36 -8
  5. package/dist/es/colorpicker/color-palette.component.js +13 -11
  6. package/dist/es/colorpicker/constants.js +24 -0
  7. package/dist/es/colorpicker/contrast-validation.component.js +57 -0
  8. package/dist/es/colorpicker/contrast.component.js +72 -0
  9. package/dist/es/colorpicker/localization/messages.js +12 -0
  10. package/dist/es/colorpicker/models/rgb.js +4 -0
  11. package/dist/es/colorpicker/utils/color-parser.js +52 -0
  12. package/dist/es/colorpicker.module.js +5 -1
  13. package/dist/es/index.js +2 -0
  14. package/dist/es/numerictextbox/numerictextbox.component.js +2 -2
  15. package/dist/es/numerictextbox/utils.js +8 -0
  16. package/dist/es/package-metadata.js +1 -1
  17. package/dist/es2015/colorpicker/color-gradient.component.d.ts +9 -0
  18. package/dist/es2015/colorpicker/color-gradient.component.js +46 -15
  19. package/dist/es2015/colorpicker/color-input.component.d.ts +14 -6
  20. package/dist/es2015/colorpicker/color-input.component.js +123 -87
  21. package/dist/es2015/colorpicker/color-palette.component.d.ts +14 -5
  22. package/dist/es2015/colorpicker/color-palette.component.js +19 -16
  23. package/dist/es2015/colorpicker/constants.d.ts +25 -0
  24. package/dist/es2015/colorpicker/constants.js +24 -0
  25. package/dist/es2015/colorpicker/contrast-validation.component.d.ts +18 -0
  26. package/dist/es2015/colorpicker/contrast-validation.component.js +54 -0
  27. package/dist/es2015/colorpicker/contrast.component.d.ts +21 -0
  28. package/dist/es2015/colorpicker/contrast.component.js +72 -0
  29. package/dist/es2015/colorpicker/localization/messages.d.ts +12 -0
  30. package/dist/es2015/colorpicker/localization/messages.js +12 -0
  31. package/dist/es2015/colorpicker/models/rgb.d.ts +12 -0
  32. package/dist/es2015/colorpicker/models/rgb.js +4 -0
  33. package/dist/es2015/colorpicker/utils/color-parser.d.ts +25 -0
  34. package/dist/es2015/colorpicker/utils/color-parser.js +52 -0
  35. package/dist/es2015/colorpicker.module.js +5 -1
  36. package/dist/es2015/index.d.ts +2 -0
  37. package/dist/es2015/index.js +2 -0
  38. package/dist/es2015/index.metadata.json +1 -1
  39. package/dist/es2015/numerictextbox/numerictextbox.component.js +2 -2
  40. package/dist/es2015/numerictextbox/utils.d.ts +4 -0
  41. package/dist/es2015/numerictextbox/utils.js +8 -0
  42. package/dist/es2015/package-metadata.js +1 -1
  43. package/dist/fesm2015/index.js +394 -121
  44. package/dist/fesm5/index.js +276 -28
  45. package/dist/npm/colorpicker/color-gradient.component.js +24 -12
  46. package/dist/npm/colorpicker/color-input.component.js +35 -7
  47. package/dist/npm/colorpicker/color-palette.component.js +13 -11
  48. package/dist/npm/colorpicker/constants.js +26 -0
  49. package/dist/npm/colorpicker/contrast-validation.component.js +59 -0
  50. package/dist/npm/colorpicker/contrast.component.js +74 -0
  51. package/dist/npm/colorpicker/localization/messages.js +12 -0
  52. package/dist/npm/colorpicker/models/rgb.js +6 -0
  53. package/dist/npm/colorpicker/utils/color-parser.js +52 -0
  54. package/dist/npm/colorpicker.module.js +5 -1
  55. package/dist/npm/index.js +4 -0
  56. package/dist/npm/numerictextbox/numerictextbox.component.js +1 -1
  57. package/dist/npm/numerictextbox/utils.js +8 -0
  58. package/dist/npm/package-metadata.js +1 -1
  59. package/dist/systemjs/kendo-angular-inputs.js +1 -1
  60. package/package.json +4 -4
@@ -12,15 +12,13 @@ var utils_2 = require("../common/utils");
12
12
  var kendo_angular_common_1 = require("@progress/kendo-angular-common");
13
13
  var dom_utils_1 = require("../common/dom-utils");
14
14
  var slider_component_1 = require("../slider/slider.component");
15
- var DEFAULT_OUTPUT_FORMAT = 'rgba';
16
- var DEFAULT_BACKGROUND_COLOR = 'rgba(255, 0, 0, 1)';
17
15
  var kendo_angular_l10n_1 = require("@progress/kendo-angular-l10n");
18
16
  var rxjs_1 = require("rxjs");
19
17
  var colorgradient_localization_service_1 = require("./localization/colorgradient-localization.service");
20
18
  var color_input_component_1 = require("./color-input.component");
21
19
  var operators_1 = require("rxjs/operators");
20
+ var constants_1 = require("./constants");
22
21
  var serial = 0;
23
- var DRAGHANDLE_MOVE_SPEED = 5;
24
22
  /**
25
23
  * The ColorGradient component enables smooth color transitions and provides options for selecting specific colors over the drag handle.
26
24
  * The ColorGradient is independently used by `kendo-colorpicker` and can be directly added to the page.
@@ -70,7 +68,7 @@ var ColorGradientComponent = /** @class */ (function () {
70
68
  /**
71
69
  * @hidden
72
70
  */
73
- this.backgroundColor = DEFAULT_BACKGROUND_COLOR;
71
+ this.backgroundColor = constants_1.DEFAULT_GRADIENT_BACKGROUND_COLOR;
74
72
  /**
75
73
  * @hidden
76
74
  *
@@ -88,7 +86,7 @@ var ColorGradientComponent = /** @class */ (function () {
88
86
  * * (Default) `rgba`
89
87
  * * `hex`
90
88
  */
91
- this.format = DEFAULT_OUTPUT_FORMAT;
89
+ this.format = constants_1.DEFAULT_OUTPUT_FORMAT;
92
90
  this._tabindex = 0;
93
91
  this.listeners = [];
94
92
  this.updateValues = new rxjs_1.Subject();
@@ -202,6 +200,16 @@ var ColorGradientComponent = /** @class */ (function () {
202
200
  enumerable: true,
203
201
  configurable: true
204
202
  });
203
+ Object.defineProperty(ColorGradientComponent.prototype, "contrastToolVisible", {
204
+ /**
205
+ * @hidden
206
+ */
207
+ get: function () {
208
+ return typeof this.contrastTool === 'string' && this.contrastTool !== '';
209
+ },
210
+ enumerable: true,
211
+ configurable: true
212
+ });
205
213
  ColorGradientComponent.prototype.ngAfterViewInit = function () {
206
214
  this.updateUI();
207
215
  this.cdr.detectChanges();
@@ -287,16 +295,16 @@ var ColorGradientComponent = /** @class */ (function () {
287
295
  var keyboardMoveY = 0;
288
296
  switch (args.key) {
289
297
  case 'ArrowRight':
290
- keyboardMoveX = DRAGHANDLE_MOVE_SPEED;
298
+ keyboardMoveX = constants_1.DRAGHANDLE_MOVE_SPEED;
291
299
  break;
292
300
  case 'ArrowLeft':
293
- keyboardMoveX = -DRAGHANDLE_MOVE_SPEED;
301
+ keyboardMoveX = -constants_1.DRAGHANDLE_MOVE_SPEED;
294
302
  break;
295
303
  case 'ArrowUp':
296
- keyboardMoveY = -DRAGHANDLE_MOVE_SPEED;
304
+ keyboardMoveY = -constants_1.DRAGHANDLE_MOVE_SPEED;
297
305
  break;
298
306
  case 'ArrowDown':
299
- keyboardMoveY = DRAGHANDLE_MOVE_SPEED;
307
+ keyboardMoveY = constants_1.DRAGHANDLE_MOVE_SPEED;
300
308
  break;
301
309
  default: break;
302
310
  }
@@ -516,8 +524,7 @@ var ColorGradientComponent = /** @class */ (function () {
516
524
  };
517
525
  var ColorGradientComponent_1;
518
526
  tslib_1.__decorate([
519
- core_1.HostBinding('class.k-widget'),
520
- core_1.HostBinding('class.k-flatcolorpicker'),
527
+ core_1.HostBinding('class.k-colorgradient'),
521
528
  tslib_1.__metadata("design:type", Boolean)
522
529
  ], ColorGradientComponent.prototype, "hostClasses", void 0);
523
530
  tslib_1.__decorate([
@@ -573,6 +580,10 @@ var ColorGradientComponent = /** @class */ (function () {
573
580
  tslib_1.__metadata("design:type", String),
574
581
  tslib_1.__metadata("design:paramtypes", [String])
575
582
  ], ColorGradientComponent.prototype, "value", null);
583
+ tslib_1.__decorate([
584
+ core_1.Input(),
585
+ tslib_1.__metadata("design:type", String)
586
+ ], ColorGradientComponent.prototype, "contrastTool", void 0);
576
587
  tslib_1.__decorate([
577
588
  core_1.Input(),
578
589
  tslib_1.__metadata("design:type", Number),
@@ -625,7 +636,8 @@ var ColorGradientComponent = /** @class */ (function () {
625
636
  useValue: 'kendo.colorgradient'
626
637
  }
627
638
  ],
628
- template: "\n <ng-container kendoColorGradientLocalizedMessages\n i18n-colorGradientNoColor=\"kendo.colorgradient.colorGradientNoColor|The aria-label applied to the ColorGradient component when the value is empty.\"\n colorGradientNoColor=\"Colorgradient no color chosen\"\n i18n-colorGradientHandle=\"kendo.colorgradient.colorGradientHandle|The title for the gradient color drag handle chooser.\"\n colorGradientHandle=\"Choose color\"\n i18n-clearButton=\"kendo.colorgradient.clearButton|The title for the clear button.\"\n clearButton=\"Clear value\"\n i18n-hueSliderHandle=\"kendo.colorgradient.hueSliderHandle|The title for the hue slider handle.\"\n hueSliderHandle=\"Set hue\"\n i18n-opacitySliderHandle=\"kendo.colorgradient.opacitySliderHandle|The title for the opacity slider handle.\"\n opacitySliderHandle=\"Set opacity\"\n i18n-hexInputPlaceholder=\"kendo.colorgradient.hexInputPlaceholder|The placeholder for the HEX color input.\"\n hexInputPlaceholder=\"HEX Color\"\n i18n-redInputPlaceholder=\"kendo.colorgradient.redInputPlaceholder|The placeholder for the red color input.\"\n redInputPlaceholder=\"Red\"\n i18n-greenInputPlaceholder=\"kendo.colorgradient.greenInputPlaceholder|The placeholder for the green color input.\"\n greenInputPlaceholder=\"Green\"\n i18n-blueInputPlaceholder=\"kendo.colorgradient.blueInputPlaceholder|The placeholder for the blue color input.\"\n blueInputPlaceholder=\"Blue\"\n i18n-alphaInputPlaceholder=\"kendo.colorgradient.alphaInputPlaceholder|The placeholder for the alpha input.\"\n alphaInputPlaceholder=\"Alpha\">\n </ng-container>\n <div class=\"k-hbox k-hsv-wrap\">\n <div class=\"k-hsv-rectangle\" [style.background-color]=\"backgroundColor\">\n <div\n #gradientWrapper\n kendoDraggable\n class=\"k-hsv-gradient\"\n (click)=\"changePosition($event)\"\n (kendoPress)=\"handleDragPress($event)\"\n (kendoDrag)=\"onHandleDrag($event)\"\n (kendoRelease)=\"onHandleRelease()\">\n <div\n #gradientDragHandle\n class=\"k-draghandle\"\n tabindex=\"0\"\n [attr.title]=\"colorGradientHandleTitle\"\n [attr.aria-label]=\"colorGradientHandleAriaLabel\"\n >\n </div>\n </div>\n </div>\n <div class=\"k-hbox k-sliders-wrap {{ clearButton ? 'k-sliders-wrap-clearable' : '' }}\">\n <span class=\"k-clear-color k-button k-bare k-button-icon\"\n *ngIf=\"clearButton\"\n (click)=\"reset()\"\n (keydown.enter)=\"reset()\"\n (keydown.space)=\"reset()\"\n [attr.aria-label]=\"clearButtonTitle\"\n [attr.title]=\"clearButtonTitle\"\n tabindex=\"0\">\n <span class=\"k-icon k-i-reset-color\"></span>\n </span>\n <kendo-slider\n class=\"k-hue-slider\"\n [dragHandleTitle]=\"hueSliderTitle\"\n [disabled]=\"disabled\"\n [readonly]=\"readonly\"\n [showButtons]=\"false\"\n [tickPlacement]=\"'none'\"\n [vertical]=\"true\"\n [min]=\"0\"\n [max]=\"360\"\n [smallStep]=\"5\"\n [largeStep]=\"10\"\n [(value)]=\"hsva.h\"\n (valueChange)=\"handleHueSliderChange($event)\"\n >\n </kendo-slider>\n <kendo-slider\n *ngIf=\"opacity && format === 'rgba'\"\n #alphaSlider\n class=\"k-alpha-slider\"\n [dragHandleTitle]=\"opacitySliderTitle\"\n [disabled]=\"disabled\"\n [readonly]=\"readonly\"\n [showButtons]=\"false\"\n [tickPlacement]=\"'none'\"\n [vertical]=\"true\"\n [min]=\"0\"\n [max]=\"100\"\n [smallStep]=\"1\"\n [largeStep]=\"10\"\n [value]=\"alphaSliderValue\"\n (valueChange)=\"handleAlphaSliderChange($event)\"\n >\n </kendo-slider>\n </div>\n </div>\n <kendo-colorinput #inputs\n [opacity]=\"opacity\"\n [value]=\"value\"\n [disabled]=\"disabled\"\n [readonly]=\"readonly\"\n (valueChange)=\"handleInputsValueChange($event)\"\n >\n </kendo-colorinput>\n"
639
+ template: "\n <ng-container kendoColorGradientLocalizedMessages\n i18n-colorGradientNoColor=\"kendo.colorgradient.colorGradientNoColor|The aria-label applied to the ColorGradient component when the value is empty.\"\n colorGradientNoColor=\"Colorgradient no color chosen\"\n i18n-colorGradientHandle=\"kendo.colorgradient.colorGradientHandle|The title for the gradient color drag handle chooser.\"\n colorGradientHandle=\"Choose color\"\n i18n-clearButton=\"kendo.colorgradient.clearButton|The title for the clear button.\"\n clearButton=\"Clear value\"\n i18n-hueSliderHandle=\"kendo.colorgradient.hueSliderHandle|The title for the hue slider handle.\"\n hueSliderHandle=\"Set hue\"\n i18n-opacitySliderHandle=\"kendo.colorgradient.opacitySliderHandle|The title for the opacity slider handle.\"\n opacitySliderHandle=\"Set opacity\"\n i18n-hexInputPlaceholder=\"kendo.colorgradient.hexInputPlaceholder|The placeholder for the HEX color input.\"\n hexInputPlaceholder=\"HEX Color\"\n i18n-redInputPlaceholder=\"kendo.colorgradient.redInputPlaceholder|The placeholder for the red color input.\"\n redInputPlaceholder=\"Red\"\n i18n-greenInputPlaceholder=\"kendo.colorgradient.greenInputPlaceholder|The placeholder for the green color input.\"\n greenInputPlaceholder=\"Green\"\n i18n-blueInputPlaceholder=\"kendo.colorgradient.blueInputPlaceholder|The placeholder for the blue color input.\"\n blueInputPlaceholder=\"Blue\"\n i18n-alphaInputPlaceholder=\"kendo.colorgradient.alphaInputPlaceholder|The placeholder for the alpha input.\"\n alphaInputPlaceholder=\"Alpha\"\n i18n-passContrast=\"kendo.colorgradient.passContrast|The pass message for the contrast tool.\"\n passContrast=\"Pass\"\n i18n-failContrast=\"kendo.colorgradient.failContrast|The fail message for the contrast tool.\"\n failContrast=\"Fail\"\n i18n-contrastRatio=\"kendo.colorgradient.contrastRatio|The contrast ratio message for the contrast tool.\"\n contrastRatio=\"Contrast ratio\">\n </ng-container>\n <div class=\"k-colorgradient-canvas k-hstack\">\n <div class=\"k-hsv-rectangle\" [style.background]=\"backgroundColor\">\n <div\n #gradientWrapper\n kendoDraggable\n class=\"k-hsv-gradient\"\n (click)=\"changePosition($event)\"\n (kendoPress)=\"handleDragPress($event)\"\n (kendoDrag)=\"onHandleDrag($event)\"\n (kendoRelease)=\"onHandleRelease()\">\n <div\n #gradientDragHandle\n class=\"k-hsv-draghandle k-draghandle\"\n tabindex=\"0\"\n [attr.title]=\"colorGradientHandleTitle\"\n [attr.aria-label]=\"colorGradientHandleAriaLabel\"\n >\n </div>\n </div>\n </div>\n <div class=\"k-hsv-controls k-hstack {{ clearButton ? 'k-sliders-wrap-clearable' : '' }}\">\n <span class=\"k-clear-color k-button k-flat k-button-icon\"\n *ngIf=\"clearButton\"\n (click)=\"reset()\"\n (keydown.enter)=\"reset()\"\n (keydown.space)=\"reset()\"\n [attr.aria-label]=\"clearButtonTitle\"\n [attr.title]=\"clearButtonTitle\"\n tabindex=\"0\">\n <span class=\"k-icon k-i-reset-color\"></span>\n </span>\n <kendo-slider\n [ngClass]=\"{'k-align-self-end': clearButton}\"\n class=\"k-hue-slider k-colorgradient-slider\"\n [dragHandleTitle]=\"hueSliderTitle\"\n [disabled]=\"disabled\"\n [readonly]=\"readonly\"\n [showButtons]=\"false\"\n [tickPlacement]=\"'none'\"\n [vertical]=\"true\"\n [min]=\"0\"\n [max]=\"360\"\n [smallStep]=\"5\"\n [largeStep]=\"10\"\n [(value)]=\"hsva.h\"\n (valueChange)=\"handleHueSliderChange($event)\"\n >\n </kendo-slider>\n <kendo-slider\n *ngIf=\"opacity && format === 'rgba'\"\n #alphaSlider\n [ngClass]=\"{'k-align-self-end': clearButton}\"\n class=\"k-alpha-slider k-colorgradient-slider\"\n [dragHandleTitle]=\"opacitySliderTitle\"\n [disabled]=\"disabled\"\n [readonly]=\"readonly\"\n [showButtons]=\"false\"\n [tickPlacement]=\"'none'\"\n [vertical]=\"true\"\n [min]=\"0\"\n [max]=\"100\"\n [smallStep]=\"1\"\n [largeStep]=\"10\"\n [value]=\"alphaSliderValue\"\n (valueChange)=\"handleAlphaSliderChange($event)\"\n >\n </kendo-slider>\n </div>\n </div>\n <kendo-colorinput #inputs\n [opacity]=\"opacity\"\n [formatView]=\"format\"\n [value]=\"value\"\n [disabled]=\"disabled\"\n [readonly]=\"readonly\"\n (valueChange)=\"handleInputsValueChange($event)\"\n >\n </kendo-colorinput>\n <div class=\"k-colorgradient-color-contrast k-vbox\" *ngIf=\"contrastToolVisible\"\n kendoContrastTool\n [value]=\"value\"\n [ratio]=\"contrastTool\">\n </div>\n ",
640
+ styles: ["\n .k-clear-color {\n position: absolute;\n left: 50%;\n transform: translateX(-50%);\n }\n .k-align-self-end {\n height: 140px;\n }\n "]
629
641
  }),
630
642
  tslib_1.__metadata("design:paramtypes", [core_1.ElementRef,
631
643
  core_1.NgZone,
@@ -10,13 +10,15 @@ var utils_1 = require("./utils");
10
10
  var utils_2 = require("../common/utils");
11
11
  var kendo_angular_common_1 = require("@progress/kendo-angular-common");
12
12
  var kendo_angular_l10n_1 = require("@progress/kendo-angular-l10n");
13
+ var rxjs_1 = require("rxjs");
13
14
  /**
14
15
  * @hidden
15
16
  */
16
17
  var ColorInputComponent = /** @class */ (function () {
17
- function ColorInputComponent(localization, host) {
18
+ function ColorInputComponent(localization, host, renderer) {
18
19
  this.localization = localization;
19
20
  this.host = host;
21
+ this.renderer = renderer;
20
22
  /**
21
23
  * Sets whether the alpha slider will be shown.
22
24
  */
@@ -38,6 +40,7 @@ var ColorInputComponent = /** @class */ (function () {
38
40
  * The rgba inputs values.
39
41
  */
40
42
  this.rgba = {};
43
+ this.subscriptions = new rxjs_1.Subscription();
41
44
  }
42
45
  Object.defineProperty(ColorInputComponent.prototype, "isFocused", {
43
46
  /**
@@ -64,6 +67,14 @@ var ColorInputComponent = /** @class */ (function () {
64
67
  enumerable: true,
65
68
  configurable: true
66
69
  });
70
+ ColorInputComponent.prototype.ngAfterViewInit = function () {
71
+ this.initDomEvents();
72
+ };
73
+ ColorInputComponent.prototype.ngOnDestroy = function () {
74
+ if (this.subscriptions) {
75
+ this.subscriptions.unsubscribe();
76
+ }
77
+ };
67
78
  ColorInputComponent.prototype.ngOnChanges = function (changes) {
68
79
  if (utils_2.isPresent(changes.value) && !this.isFocused) {
69
80
  this.hex = utils_1.parseColor(this.value, 'hex');
@@ -99,12 +110,23 @@ var ColorInputComponent = /** @class */ (function () {
99
110
  ColorInputComponent.prototype.handleHexInputBlur = function () {
100
111
  this.hex = utils_1.parseColor(this.value, 'hex');
101
112
  };
102
- /**
103
- * @hidden
104
- */
105
113
  ColorInputComponent.prototype.textFor = function (key) {
106
114
  return this.localization.get(key);
107
115
  };
116
+ ColorInputComponent.prototype.toggleFormatView = function () {
117
+ this.formatView = this.formatView === 'hex' ? 'rgba' : 'hex';
118
+ };
119
+ ColorInputComponent.prototype.initDomEvents = function () {
120
+ var _this = this;
121
+ if (!this.host) {
122
+ return;
123
+ }
124
+ this.subscriptions.add(this.renderer.listen(this.toggleFormatButton.nativeElement, 'click', function () { return _this.toggleFormatView(); }));
125
+ };
126
+ tslib_1.__decorate([
127
+ core_1.Input(),
128
+ tslib_1.__metadata("design:type", String)
129
+ ], ColorInputComponent.prototype, "formatView", void 0);
108
130
  tslib_1.__decorate([
109
131
  core_1.Input(),
110
132
  tslib_1.__metadata("design:type", String)
@@ -126,20 +148,26 @@ var ColorInputComponent = /** @class */ (function () {
126
148
  tslib_1.__metadata("design:type", core_1.EventEmitter)
127
149
  ], ColorInputComponent.prototype, "valueChange", void 0);
128
150
  tslib_1.__decorate([
129
- core_1.HostBinding('class.k-colorinputs'),
151
+ core_1.HostBinding('class.k-colorgradient-inputs'),
152
+ core_1.HostBinding('class.k-hstack'),
130
153
  tslib_1.__metadata("design:type", Boolean)
131
154
  ], ColorInputComponent.prototype, "colorInputClass", void 0);
132
155
  tslib_1.__decorate([
133
156
  core_1.ViewChild('opacityInput', { read: core_1.ElementRef, static: false }),
134
157
  tslib_1.__metadata("design:type", core_1.ElementRef)
135
158
  ], ColorInputComponent.prototype, "opacityInput", void 0);
159
+ tslib_1.__decorate([
160
+ core_1.ViewChild('toggleFormatButton', { static: false }),
161
+ tslib_1.__metadata("design:type", core_1.ElementRef)
162
+ ], ColorInputComponent.prototype, "toggleFormatButton", void 0);
136
163
  ColorInputComponent = tslib_1.__decorate([
137
164
  core_1.Component({
138
165
  selector: 'kendo-colorinput',
139
- template: "\n <div class=\"k-hbox k-gradient-values\">\n <input\n #hexInput\n class=\"k-textbox k-hex-value\"\n [disabled]=\"disabled\"\n [readonly]=\"readonly\"\n [value]=\"hex || ''\"\n [placeholder]=\"textFor('hexInputPlaceholder')\"\n (blur)=\"handleHexInputBlur()\"\n (input)=\"handleHexValueChange(hexInput.value)\"\n />\n <kendo-numerictextbox\n [disabled]=\"disabled\"\n [readonly]=\"readonly\"\n [min]=\"0\"\n [max]=\"255\"\n [placeholder]=\"textFor('redInputPlaceholder')\"\n [(value)]=\"rgba.r\"\n [autoCorrect]=\"true\"\n [spinners]=\"false\"\n [format]=\"'n'\"\n [decimals]=\"0\"\n (blur)=\"handleRgbaInputBlur()\"\n (valueChange)=\"handleRgbaValueChange()\"\n >\n </kendo-numerictextbox>\n <kendo-numerictextbox\n [disabled]=\"disabled\"\n [readonly]=\"readonly\"\n [min]=\"0\"\n [max]=\"255\"\n [placeholder]=\"textFor('greenInputPlaceholder')\"\n [(value)]=\"rgba.g\"\n [autoCorrect]=\"true\"\n [spinners]=\"false\"\n [format]=\"'n'\"\n [decimals]=\"0\"\n (blur)=\"handleRgbaInputBlur()\"\n (valueChange)=\"handleRgbaValueChange()\"\n >\n </kendo-numerictextbox>\n <kendo-numerictextbox\n [disabled]=\"disabled\"\n [readonly]=\"readonly\"\n [min]=\"0\"\n [max]=\"255\"\n [placeholder]=\"textFor('blueInputPlaceholder')\"\n [(value)]=\"rgba.b\"\n [autoCorrect]=\"true\"\n [spinners]=\"false\"\n [format]=\"'n'\"\n [decimals]=\"0\"\n (blur)=\"handleRgbaInputBlur()\"\n (valueChange)=\"handleRgbaValueChange()\"\n >\n </kendo-numerictextbox>\n <kendo-numerictextbox #opacityInput\n *ngIf=\"opacity\"\n [disabled]=\"disabled\"\n [readonly]=\"readonly\"\n [min]=\"0\"\n [max]=\"1\"\n [placeholder]=\"textFor('alphaInputPlaceholder')\"\n [(value)]=\"rgba.a\"\n [autoCorrect]=\"true\"\n [spinners]=\"false\"\n [step]=\"0.01\"\n [format]=\"'n2'\"\n [decimals]=\"2\"\n (blur)=\"handleRgbaInputBlur()\"\n (valueChange)=\"handleRgbaValueChange()\"\n >\n </kendo-numerictextbox>\n </div>\n <div class=\"k-hbox k-gradient-values\">\n <div class=\"k-hex-value\">hex</div>\n <div>r</div>\n <div>g</div>\n <div>b</div>\n <div *ngIf=\"opacity\">a</div>\n </div>\n "
166
+ template: "\n <div class=\"k-vstack\">\n <button class=\"k-colorgradient-toggle-mode k-button k-icon-button k-flat\" #toggleFormatButton>\n <span class=\"k-button-icon k-icon k-i-arrows-kpi\"></span>\n </button>\n </div>\n <input *ngIf=\"formatView === 'hex'\"\n #hexInput\n class=\"k-textbox k-hex-value\"\n [disabled]=\"disabled\"\n [readonly]=\"readonly\"\n [value]=\"hex || ''\"\n [placeholder]=\"textFor('hexInputPlaceholder')\"\n (blur)=\"handleHexInputBlur()\"\n (input)=\"handleHexValueChange(hexInput.value)\"\n />\n <ng-container *ngIf=\"formatView === 'rgba'\">\n <div class=\"k-vstack\">\n <kendo-numerictextbox\n #red\n [disabled]=\"disabled\"\n [readonly]=\"readonly\"\n [min]=\"0\"\n [max]=\"255\"\n [placeholder]=\"textFor('redInputPlaceholder')\"\n [(value)]=\"rgba.r\"\n [autoCorrect]=\"true\"\n [spinners]=\"false\"\n [format]=\"'n'\"\n [decimals]=\"0\"\n (blur)=\"handleRgbaInputBlur()\"\n (valueChange)=\"handleRgbaValueChange()\">\n </kendo-numerictextbox>\n <label [for]=\"red.focusableId\" class=\"k-colorgradient-input-label\">R</label>\n </div>\n <div class=\"k-vstack\">\n <kendo-numerictextbox\n #green\n [disabled]=\"disabled\"\n [readonly]=\"readonly\"\n [min]=\"0\"\n [max]=\"255\"\n [placeholder]=\"textFor('greenInputPlaceholder')\"\n [(value)]=\"rgba.g\"\n [autoCorrect]=\"true\"\n [spinners]=\"false\"\n [format]=\"'n'\"\n [decimals]=\"0\"\n (blur)=\"handleRgbaInputBlur()\"\n (valueChange)=\"handleRgbaValueChange()\">\n </kendo-numerictextbox>\n <label [for]=\"green.focusableId\" class=\"k-colorgradient-input-label\">G</label>\n </div>\n <div class=\"k-vstack\">\n <kendo-numerictextbox\n #blue\n [disabled]=\"disabled\"\n [readonly]=\"readonly\"\n [min]=\"0\"\n [max]=\"255\"\n [placeholder]=\"textFor('blueInputPlaceholder')\"\n [(value)]=\"rgba.b\"\n [autoCorrect]=\"true\"\n [spinners]=\"false\"\n [format]=\"'n'\"\n [decimals]=\"0\"\n (blur)=\"handleRgbaInputBlur()\"\n (valueChange)=\"handleRgbaValueChange()\">\n </kendo-numerictextbox>\n <label [for]=\"blue.focusableId\" class=\"k-colorgradient-input-label\">B</label>\n </div>\n <div class=\"k-vstack\" *ngIf=\"opacity\">\n <kendo-numerictextbox #opacityInput\n #alpha\n [disabled]=\"disabled\"\n [readonly]=\"readonly\"\n [min]=\"0\"\n [max]=\"1\"\n [placeholder]=\"textFor('alphaInputPlaceholder')\"\n [(value)]=\"rgba.a\"\n [autoCorrect]=\"true\"\n [spinners]=\"false\"\n [step]=\"0.01\"\n [format]=\"'n2'\"\n [decimals]=\"2\"\n (blur)=\"handleRgbaInputBlur()\"\n (valueChange)=\"handleRgbaValueChange()\">\n </kendo-numerictextbox>\n <label [for]=\"alpha.focusableId\" class=\"k-colorgradient-input-label\">A</label>\n </div>\n </ng-container>\n "
140
167
  }),
141
168
  tslib_1.__metadata("design:paramtypes", [kendo_angular_l10n_1.LocalizationService,
142
- core_1.ElementRef])
169
+ core_1.ElementRef,
170
+ core_1.Renderer2])
143
171
  ], ColorInputComponent);
144
172
  return ColorInputComponent;
145
173
  }());
@@ -270,15 +270,18 @@ var ColorPaletteComponent = /** @class */ (function () {
270
270
  */
271
271
  ColorPaletteComponent.prototype.handleHostBlur = function () {
272
272
  this.notifyNgTouched();
273
+ this.handleCellFocusOnBlur();
273
274
  };
274
275
  /**
275
276
  * @hidden
276
277
  */
277
- ColorPaletteComponent.prototype.handleCellSelection = function (value, focusedCell) {
278
+ ColorPaletteComponent.prototype.handleCellSelection = function (value, cell) {
278
279
  if (this.readonly) {
279
280
  return;
280
281
  }
281
- this.focusedCell = focusedCell;
282
+ this.selectedCell = cell;
283
+ this.focusedCell = this.selectedCell;
284
+ this.focusInComponent = true;
282
285
  var parsedColor = utils_1.parseColor(value, this.format, false);
283
286
  this.cellSelection.emit(parsedColor);
284
287
  if (this.value !== parsedColor) {
@@ -291,8 +294,8 @@ var ColorPaletteComponent = /** @class */ (function () {
291
294
  this.selection = parsedColor;
292
295
  this.selectionChange.emit(parsedColor);
293
296
  }
294
- if (focusedCell) {
295
- this.activeCellId = "" + this.focusedCell.row + this.focusedCell.col;
297
+ if (cell) {
298
+ this.activeCellId = this.selectedCell.row + "-" + this.selectedCell.col;
296
299
  }
297
300
  };
298
301
  /**
@@ -338,6 +341,10 @@ var ColorPaletteComponent = /** @class */ (function () {
338
341
  this.notifyNgChanged(undefined);
339
342
  }
340
343
  };
344
+ ColorPaletteComponent.prototype.handleCellFocusOnBlur = function () {
345
+ this.focusInComponent = false;
346
+ this.focusedCell = this.selectedCell;
347
+ };
341
348
  ColorPaletteComponent.prototype.setRows = function () {
342
349
  if (!utils_2.isPresent(this.palette)) {
343
350
  return;
@@ -350,11 +357,7 @@ var ColorPaletteComponent = /** @class */ (function () {
350
357
  return;
351
358
  }
352
359
  this.focusedCell = this.service.getNextCell(this.focusedCell, horizontalStep, verticalStep);
353
- var selection = this.service.getColorAt(this.focusedCell);
354
- if (this.selection !== selection) {
355
- this.selection = selection;
356
- this.selectionChange.emit(selection);
357
- }
360
+ this.focusInComponent = true;
358
361
  };
359
362
  ColorPaletteComponent.prototype.setHostElementAriaLabel = function () {
360
363
  var parsed = utils_1.parseColor(this.value, this.format);
@@ -435,7 +438,6 @@ var ColorPaletteComponent = /** @class */ (function () {
435
438
  tslib_1.__metadata("design:paramtypes", [])
436
439
  ], ColorPaletteComponent.prototype, "hostTabindex", null);
437
440
  tslib_1.__decorate([
438
- core_1.HostBinding('class.k-widget'),
439
441
  core_1.HostBinding('class.k-colorpalette'),
440
442
  tslib_1.__metadata("design:type", Boolean)
441
443
  ], ColorPaletteComponent.prototype, "hostClasses", void 0);
@@ -485,7 +487,7 @@ var ColorPaletteComponent = /** @class */ (function () {
485
487
  useValue: 'kendo.colorpalette'
486
488
  }
487
489
  ],
488
- template: "\n <ng-container kendoColorPaletteLocalizedMessages\n i18n-colorPaletteNoColor=\"kendo.colorpalette.colorPaletteNoColor|The aria-label applied to the ColorPalette component when the value is empty.\"\n colorPaletteNoColor=\"Colorpalette no color chosen\">\n </ng-container>\n <div role=\"listbox\"\n [attr.aria-activedescendant]=\"activeCellId\">\n <table class=\"k-palette k-reset\">\n <tbody>\n <tr *ngFor=\"let row of colorRows; let rowIndex = index\">\n <td *ngFor=\"let color of row; let colIndex = index\"\n role=\"option\"\n [class.k-state-selected]=\"focusedCell?.row === rowIndex && focusedCell?.col === colIndex\"\n [attr.aria-selected]=\"focusedCell?.row === rowIndex && focusedCell?.col === colIndex\"\n [attr.aria-label]=\"color\"\n class=\"k-item\"\n [id]=\"rowIndex + '' + colIndex\"\n [attr.value]=\"color\"\n (click)=\"handleCellSelection(color, { row: rowIndex, col: colIndex })\"\n [ngStyle]=\"{\n backgroundColor: color,\n width: tileLayout.width + 'px',\n height: tileLayout.height + 'px',\n minWidth: tileLayout.width + 'px'\n }\">\n </td>\n </tr>\n </tbody>\n </table>\n </div>\n "
490
+ template: "\n <ng-container kendoColorPaletteLocalizedMessages\n i18n-colorPaletteNoColor=\"kendo.colorpalette.colorPaletteNoColor|The aria-label applied to the ColorPalette component when the value is empty.\"\n colorPaletteNoColor=\"Colorpalette no color chosen\">\n </ng-container>\n <div role=\"listbox\" class=\"k-colorpalette-table-wrap\"\n [attr.aria-activedescendant]=\"activeCellId\">\n <table class=\"k-colorpalette-table k-palette\">\n <tbody>\n <tr *ngFor=\"let row of colorRows; let rowIndex = index\">\n <td *ngFor=\"let color of row; let colIndex = index\"\n role=\"option\"\n [class.k-state-selected]=\"selectedCell?.row === rowIndex && selectedCell?.col === colIndex\"\n [class.k-state-focus]=\"focusInComponent && focusedCell?.row === rowIndex && focusedCell?.col === colIndex\"\n [attr.aria-selected]=\"selectedCell?.row === rowIndex && selectedCell?.col === colIndex\"\n [attr.aria-label]=\"color\"\n class=\"k-colorpalette-tile\"\n [id]=\"rowIndex + '-' + colIndex\"\n [attr.value]=\"color\"\n (click)=\"handleCellSelection(color, { row: rowIndex, col: colIndex })\"\n [ngStyle]=\"{\n backgroundColor: color,\n width: tileLayout.width + 'px',\n height: tileLayout.height + 'px',\n minWidth: tileLayout.width + 'px'\n }\">\n </td>\n </tr>\n </tbody>\n </table>\n </div>\n "
489
491
  }),
490
492
  tslib_1.__metadata("design:paramtypes", [core_1.ElementRef,
491
493
  color_palette_service_1.ColorPaletteService,
@@ -0,0 +1,26 @@
1
+ /**-----------------------------------------------------------------------------------------
2
+ * Copyright © 2021 Progress Software Corporation. All rights reserved.
3
+ * Licensed under commercial license. See LICENSE.md in the project root for more information
4
+ *-------------------------------------------------------------------------------------------*/
5
+ "use strict";
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ /**
8
+ * @hidden
9
+ */
10
+ exports.DEFAULT_OUTPUT_FORMAT = 'rgba';
11
+ /**
12
+ * @hidden
13
+ */
14
+ exports.DEFAULT_GRADIENT_BACKGROUND_COLOR = 'rgba(255, 0, 0, 1)';
15
+ /**
16
+ * @hidden
17
+ */
18
+ exports.DRAGHANDLE_MOVE_SPEED = 5;
19
+ /**
20
+ * @hidden
21
+ */
22
+ exports.AAA_RATIO = 7.0;
23
+ /**
24
+ * @hidden
25
+ */
26
+ exports.AA_RATIO = 4.5;
@@ -0,0 +1,59 @@
1
+ /**-----------------------------------------------------------------------------------------
2
+ * Copyright © 2021 Progress Software Corporation. All rights reserved.
3
+ * Licensed under commercial license. See LICENSE.md in the project root for more information
4
+ *-------------------------------------------------------------------------------------------*/
5
+ "use strict";
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ var tslib_1 = require("tslib");
8
+ var kendo_angular_l10n_1 = require("@progress/kendo-angular-l10n");
9
+ var core_1 = require("@angular/core");
10
+ /**
11
+ * @hidden
12
+ */
13
+ var ContrastValidationComponent = /** @class */ (function () {
14
+ function ContrastValidationComponent(localization) {
15
+ this.localization = localization;
16
+ }
17
+ Object.defineProperty(ContrastValidationComponent.prototype, "passMessage", {
18
+ get: function () {
19
+ return this.localization.get('passContrast');
20
+ },
21
+ enumerable: true,
22
+ configurable: true
23
+ });
24
+ Object.defineProperty(ContrastValidationComponent.prototype, "failMessage", {
25
+ get: function () {
26
+ return this.localization.get('failContrast');
27
+ },
28
+ enumerable: true,
29
+ configurable: true
30
+ });
31
+ Object.defineProperty(ContrastValidationComponent.prototype, "contrastText", {
32
+ get: function () {
33
+ return this.type + ": " + this.ratio.toFixed(1);
34
+ },
35
+ enumerable: true,
36
+ configurable: true
37
+ });
38
+ tslib_1.__decorate([
39
+ core_1.Input(),
40
+ tslib_1.__metadata("design:type", String)
41
+ ], ContrastValidationComponent.prototype, "type", void 0);
42
+ tslib_1.__decorate([
43
+ core_1.Input(),
44
+ tslib_1.__metadata("design:type", Number)
45
+ ], ContrastValidationComponent.prototype, "ratio", void 0);
46
+ tslib_1.__decorate([
47
+ core_1.Input(),
48
+ tslib_1.__metadata("design:type", Boolean)
49
+ ], ContrastValidationComponent.prototype, "pass", void 0);
50
+ ContrastValidationComponent = tslib_1.__decorate([
51
+ core_1.Component({
52
+ selector: '[kendoContrastValidation]',
53
+ template: "\n <span>{{contrastText}}</span>\n <span class=\"k-contrast-validation k-text-success\" *ngIf=\"pass\">\n {{passMessage}}\n <span class=\"k-icon k-i-check\"></span>\n </span>\n <span class=\"k-contrast-validation k-text-error\" *ngIf=\"!pass\">\n {{failMessage}}\n <span class=\"k-icon k-i-close\"></span>\n </span>\n "
54
+ }),
55
+ tslib_1.__metadata("design:paramtypes", [kendo_angular_l10n_1.LocalizationService])
56
+ ], ContrastValidationComponent);
57
+ return ContrastValidationComponent;
58
+ }());
59
+ exports.ContrastValidationComponent = ContrastValidationComponent;
@@ -0,0 +1,74 @@
1
+ /**-----------------------------------------------------------------------------------------
2
+ * Copyright © 2021 Progress Software Corporation. All rights reserved.
3
+ * Licensed under commercial license. See LICENSE.md in the project root for more information
4
+ *-------------------------------------------------------------------------------------------*/
5
+ "use strict";
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ var tslib_1 = require("tslib");
8
+ var kendo_angular_l10n_1 = require("@progress/kendo-angular-l10n");
9
+ var core_1 = require("@angular/core");
10
+ var utils_1 = require("./utils");
11
+ var constants_1 = require("./constants");
12
+ /**
13
+ * @hidden
14
+ */
15
+ var ContrastComponent = /** @class */ (function () {
16
+ function ContrastComponent(localization) {
17
+ this.localization = localization;
18
+ this.aaRatio = constants_1.AA_RATIO;
19
+ this.aaaRatio = constants_1.AAA_RATIO;
20
+ }
21
+ Object.defineProperty(ContrastComponent.prototype, "formatedRatio", {
22
+ get: function () {
23
+ return this.contrastRatio.toFixed(2);
24
+ },
25
+ enumerable: true,
26
+ configurable: true
27
+ });
28
+ Object.defineProperty(ContrastComponent.prototype, "contrastRatioMessage", {
29
+ get: function () {
30
+ return this.localization.get('contrastRatio');
31
+ },
32
+ enumerable: true,
33
+ configurable: true
34
+ });
35
+ Object.defineProperty(ContrastComponent.prototype, "satisfiesAACondition", {
36
+ get: function () {
37
+ return this.contrastRatio >= this.aaRatio;
38
+ },
39
+ enumerable: true,
40
+ configurable: true
41
+ });
42
+ Object.defineProperty(ContrastComponent.prototype, "satisfiesAAACondition", {
43
+ get: function () {
44
+ return this.contrastRatio >= this.aaaRatio;
45
+ },
46
+ enumerable: true,
47
+ configurable: true
48
+ });
49
+ Object.defineProperty(ContrastComponent.prototype, "contrastRatio", {
50
+ get: function () {
51
+ var contrast = utils_1.getContrastFromTwoRGBAs(utils_1.getRGBA(this.value), utils_1.getRGBA(this.ratio));
52
+ return contrast;
53
+ },
54
+ enumerable: true,
55
+ configurable: true
56
+ });
57
+ tslib_1.__decorate([
58
+ core_1.Input(),
59
+ tslib_1.__metadata("design:type", String)
60
+ ], ContrastComponent.prototype, "value", void 0);
61
+ tslib_1.__decorate([
62
+ core_1.Input(),
63
+ tslib_1.__metadata("design:type", String)
64
+ ], ContrastComponent.prototype, "ratio", void 0);
65
+ ContrastComponent = tslib_1.__decorate([
66
+ core_1.Component({
67
+ selector: '[kendoContrastTool]',
68
+ template: "\n <div class=\"k-contrast-ratio\">\n <span class=\"k-contrast-ratio-text\">{{contrastRatioMessage}}: {{formatedRatio}}</span>\n <span class=\"k-contrast-validation k-text-success\" *ngIf=\"satisfiesAACondition\">\n <span class=\"k-icon k-i-check\"></span>\n <span class=\"k-icon k-i-check\" *ngIf=\"satisfiesAAACondition\"></span>\n </span>\n <span class=\"k-contrast-validation k-text-error\" *ngIf=\"!satisfiesAACondition\">\n <span class=\"k-icon k-i-close\"></span>\n </span>\n </div>\n <div kendoContrastValidation\n type=\"AA\"\n [ratio]=\"aaaRatio\"\n [pass]=\"satisfiesAACondition\">\n </div>\n <div kendoContrastValidation\n type=\"AAA\"\n [ratio]=\"aaaRatio\"\n [pass]=\"satisfiesAAACondition\">\n </div>\n "
69
+ }),
70
+ tslib_1.__metadata("design:paramtypes", [kendo_angular_l10n_1.LocalizationService])
71
+ ], ContrastComponent);
72
+ return ContrastComponent;
73
+ }());
74
+ exports.ContrastComponent = ContrastComponent;
@@ -59,6 +59,18 @@ var ColorPickerMessages = /** @class */ (function (_super) {
59
59
  core_1.Input(),
60
60
  tslib_1.__metadata("design:type", String)
61
61
  ], ColorPickerMessages.prototype, "alphaInputPlaceholder", void 0);
62
+ tslib_1.__decorate([
63
+ core_1.Input(),
64
+ tslib_1.__metadata("design:type", String)
65
+ ], ColorPickerMessages.prototype, "passContrast", void 0);
66
+ tslib_1.__decorate([
67
+ core_1.Input(),
68
+ tslib_1.__metadata("design:type", String)
69
+ ], ColorPickerMessages.prototype, "failContrast", void 0);
70
+ tslib_1.__decorate([
71
+ core_1.Input(),
72
+ tslib_1.__metadata("design:type", String)
73
+ ], ColorPickerMessages.prototype, "contrastRatio", void 0);
62
74
  return ColorPickerMessages;
63
75
  }(kendo_angular_l10n_1.ComponentMessages));
64
76
  exports.ColorPickerMessages = ColorPickerMessages;
@@ -0,0 +1,6 @@
1
+ /**-----------------------------------------------------------------------------------------
2
+ * Copyright © 2021 Progress Software Corporation. All rights reserved.
3
+ * Licensed under commercial license. See LICENSE.md in the project root for more information
4
+ *-------------------------------------------------------------------------------------------*/
5
+ "use strict";
6
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -106,3 +106,55 @@ function nameFormat(value, safe) {
106
106
  return key;
107
107
  }
108
108
  exports.nameFormat = nameFormat;
109
+ /**
110
+ * @hidden
111
+ *
112
+ * Returns the RGB object representation of the color based on the background color.
113
+ */
114
+ exports.getRGBFromRGBA = function (foregroundColor, backgroundColor) {
115
+ var r1 = utils_1.fitIntoBounds(foregroundColor.r, 0, 255);
116
+ var g1 = utils_1.fitIntoBounds(foregroundColor.g, 0, 255);
117
+ var b1 = utils_1.fitIntoBounds(foregroundColor.b, 0, 255);
118
+ var a1 = utils_1.fitIntoBounds(foregroundColor.a, 0, 1);
119
+ var r2 = utils_1.fitIntoBounds(backgroundColor.r, 0, 255);
120
+ var g2 = utils_1.fitIntoBounds(backgroundColor.g, 0, 255);
121
+ var b2 = utils_1.fitIntoBounds(backgroundColor.b, 0, 255);
122
+ return {
123
+ r: Math.round(((1 - a1) * r2) + (a1 * r1)),
124
+ g: Math.round(((1 - a1) * g2) + (a1 * g1)),
125
+ b: Math.round(((1 - a1) * b2) + (a1 * b1))
126
+ };
127
+ };
128
+ /**
129
+ * @hidden
130
+ *
131
+ * Returns the relative luminance.
132
+ */
133
+ exports.getLuminance = function (rgb) {
134
+ var a = [rgb.r, rgb.g, rgb.b].map(function (v) {
135
+ v /= 255;
136
+ return v <= 0.03928
137
+ ? v / 12.92
138
+ : Math.pow((v + 0.055) / 1.055, 2.4);
139
+ });
140
+ return a[0] * 0.2126 + a[1] * 0.7152 + a[2] * 0.0722;
141
+ };
142
+ /**
143
+ * @hidden
144
+ *
145
+ * Returns the color contrast.
146
+ */
147
+ exports.getContrast = function (luminance1, luminance2) {
148
+ var brightest = Math.max(luminance1, luminance2);
149
+ var darkest = Math.min(luminance1, luminance2);
150
+ return (brightest + 0.05)
151
+ / (darkest + 0.05);
152
+ };
153
+ /**
154
+ * @hidden
155
+ *
156
+ * Returns the color contrast from two RGBA colors.
157
+ */
158
+ exports.getContrastFromTwoRGBAs = function (a, b) {
159
+ return exports.getContrast(exports.getLuminance(exports.getRGBFromRGBA(a, b)), exports.getLuminance(exports.getRGBFromRGBA(b, { r: 0, g: 0, b: 0, a: 1 })));
160
+ };
@@ -18,6 +18,8 @@ var color_input_component_1 = require("./colorpicker/color-input.component");
18
18
  var custom_messages_component_1 = require("./colorpicker/localization/custom-messages.component");
19
19
  var localized_colorpicker_messages_directive_1 = require("./colorpicker/localization/localized-colorpicker-messages.directive");
20
20
  var focus_on_dom_ready_directive_1 = require("./colorpicker/focus-on-dom-ready.directive");
21
+ var contrast_validation_component_1 = require("./colorpicker/contrast-validation.component");
22
+ var contrast_component_1 = require("./colorpicker/contrast.component");
21
23
  var PUBLIC_DIRECTIVES = [
22
24
  colorpicker_component_1.ColorPickerComponent,
23
25
  color_palette_component_1.ColorPaletteComponent,
@@ -27,7 +29,9 @@ var PUBLIC_DIRECTIVES = [
27
29
  ];
28
30
  var INTERNAL_DIRECTIVES = [
29
31
  color_input_component_1.ColorInputComponent,
30
- focus_on_dom_ready_directive_1.FocusOnDomReadyDirective
32
+ focus_on_dom_ready_directive_1.FocusOnDomReadyDirective,
33
+ contrast_component_1.ContrastComponent,
34
+ contrast_validation_component_1.ContrastValidationComponent
31
35
  ];
32
36
  /**
33
37
  * Represents the [NgModule]({{ site.data.urls.angular['ngmoduleapi'] }})
package/dist/npm/index.js CHANGED
@@ -13,6 +13,10 @@ var checkbox_module_1 = require("./checkbox.module");
13
13
  exports.CheckBoxModule = checkbox_module_1.CheckBoxModule
14
14
  var color_input_component_1 = require("./colorpicker/color-input.component");
15
15
  exports.ColorInputComponent = color_input_component_1.ColorInputComponent
16
+ var contrast_validation_component_1 = require("./colorpicker/contrast-validation.component");
17
+ exports.ContrastValidationComponent = contrast_validation_component_1.ContrastValidationComponent
18
+ var contrast_component_1 = require("./colorpicker/contrast.component");
19
+ exports.ContrastComponent = contrast_component_1.ContrastComponent
16
20
  var focus_on_dom_ready_directive_1 = require("./colorpicker/focus-on-dom-ready.directive");
17
21
  exports.FocusOnDomReadyDirective = focus_on_dom_ready_directive_1.FocusOnDomReadyDirective
18
22
  var colorgradient_localization_service_1 = require("./colorpicker/localization/colorgradient-localization.service");
@@ -535,7 +535,7 @@ var NumericTextBoxComponent = /** @class */ (function () {
535
535
  });
536
536
  NumericTextBoxComponent.prototype.arrowPress = function (direction, e) {
537
537
  e.preventDefault();
538
- if (this.isDisabled) {
538
+ if (this.isDisabled || utils_2.isRightClick(e)) {
539
539
  return;
540
540
  }
541
541
  if (!kendo_common_1.mobileOS) {
@@ -84,3 +84,11 @@ exports.extractSignificantNumericChars = function (formattedString, separator) {
84
84
  var significantCharacters = separator + "0123456789-";
85
85
  return formattedString.split('').reduce(function (acc, curr) { return significantCharacters.includes(curr) ? ++acc : acc; }, 0);
86
86
  };
87
+ /**
88
+ * @hidden
89
+ */
90
+ exports.isRightClick = function (event) {
91
+ var isRightClickIE = event.button && event.button === 2;
92
+ var isRightClickOther = event.which && event.which === 3;
93
+ return isRightClickIE || isRightClickOther;
94
+ };
@@ -11,7 +11,7 @@ exports.packageMetadata = {
11
11
  name: '@progress/kendo-angular-inputs',
12
12
  productName: 'Kendo UI for Angular',
13
13
  productCodes: ['KENDOUIANGULAR', 'KENDOUICOMPLETE'],
14
- publishDate: 1630597338,
14
+ publishDate: 1635258302,
15
15
  version: '',
16
16
  licensingDocsUrl: 'https://www.telerik.com/kendo-angular-ui/my-license/?utm_medium=product&utm_source=kendoangular&utm_campaign=kendo-ui-angular-purchase-license-keys-warning'
17
17
  };