@progress/kendo-vue-inputs 3.4.4-dev.202207220925 → 3.4.5-dev.202208010452

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 (88) hide show
  1. package/dist/cdn/js/kendo-vue-inputs.js +1 -1
  2. package/dist/es/checkbox/Checkbox.js +2 -2
  3. package/dist/es/colors/ColorGradient.d.ts +2 -0
  4. package/dist/es/colors/ColorGradient.js +161 -77
  5. package/dist/es/colors/ColorInput.d.ts +3 -0
  6. package/dist/es/colors/ColorInput.js +80 -56
  7. package/dist/es/colors/ColorPalette.js +30 -16
  8. package/dist/es/colors/ColorPicker.d.ts +1 -0
  9. package/dist/es/colors/ColorPicker.js +91 -69
  10. package/dist/es/colors/FlatColorPicker.d.ts +41 -5
  11. package/dist/es/colors/FlatColorPicker.js +306 -109
  12. package/dist/es/colors/HexInput.d.ts +1 -0
  13. package/dist/es/colors/HexInput.js +16 -2
  14. package/dist/es/colors/Picker.js +19 -11
  15. package/dist/es/colors/interfaces/ColorGradientChangeEvent.d.ts +4 -0
  16. package/dist/es/colors/interfaces/ColorGradientProps.d.ts +12 -0
  17. package/dist/es/colors/interfaces/ColorPaletteChangeEvent.d.ts +0 -3
  18. package/dist/es/colors/interfaces/ColorPaletteProps.d.ts +8 -3
  19. package/dist/es/colors/interfaces/ColorPickerActiveColorClick.d.ts +0 -3
  20. package/dist/es/colors/interfaces/ColorPickerBlurEvent.d.ts +0 -3
  21. package/dist/es/colors/interfaces/ColorPickerChangeEvent.d.ts +4 -3
  22. package/dist/es/colors/interfaces/ColorPickerFocusEvent.d.ts +0 -3
  23. package/dist/es/colors/interfaces/ColorPickerPaletteSettings.d.ts +0 -3
  24. package/dist/es/colors/interfaces/ColorPickerPopupSettings.d.ts +0 -3
  25. package/dist/es/colors/interfaces/ColorPickerProps.d.ts +30 -4
  26. package/dist/es/colors/interfaces/ColorPickerView.d.ts +0 -3
  27. package/dist/es/colors/interfaces/FlatColorPickerViewChangeEvent.d.ts +13 -0
  28. package/dist/es/colors/interfaces/FlatColorPickerViewChangeEvent.js +0 -0
  29. package/dist/es/colors/interfaces/PickerProps.d.ts +4 -0
  30. package/dist/es/colors/utils/color-cache.d.ts +13 -0
  31. package/dist/es/colors/utils/color-cache.js +14 -0
  32. package/dist/es/colors/utils/color-parser.d.ts +7 -1
  33. package/dist/es/colors/utils/color-parser.js +11 -2
  34. package/dist/es/input/Input.d.ts +4 -0
  35. package/dist/es/input/Input.js +8 -3
  36. package/dist/es/messages/index.d.ts +45 -0
  37. package/dist/es/messages/index.js +46 -0
  38. package/dist/es/numerictextbox/NumericTextBox.js +3 -0
  39. package/dist/es/numerictextbox/interfaces/NumericTextBoxProps.d.ts +4 -0
  40. package/dist/es/package-metadata.js +1 -1
  41. package/dist/es/radiobutton/RadioButton.js +1 -1
  42. package/dist/es/radiobutton/RadioGroup.js +1 -1
  43. package/dist/es/range-slider/RangeSlider.js +1 -1
  44. package/dist/es/slider/Slider.js +2 -2
  45. package/dist/npm/checkbox/Checkbox.js +2 -2
  46. package/dist/npm/colors/ColorGradient.d.ts +2 -0
  47. package/dist/npm/colors/ColorGradient.js +161 -75
  48. package/dist/npm/colors/ColorInput.d.ts +3 -0
  49. package/dist/npm/colors/ColorInput.js +80 -55
  50. package/dist/npm/colors/ColorPalette.js +30 -16
  51. package/dist/npm/colors/ColorPicker.d.ts +1 -0
  52. package/dist/npm/colors/ColorPicker.js +92 -70
  53. package/dist/npm/colors/FlatColorPicker.d.ts +41 -5
  54. package/dist/npm/colors/FlatColorPicker.js +306 -106
  55. package/dist/npm/colors/HexInput.d.ts +1 -0
  56. package/dist/npm/colors/HexInput.js +16 -2
  57. package/dist/npm/colors/Picker.js +18 -10
  58. package/dist/npm/colors/interfaces/ColorGradientChangeEvent.d.ts +4 -0
  59. package/dist/npm/colors/interfaces/ColorGradientProps.d.ts +12 -0
  60. package/dist/npm/colors/interfaces/ColorPaletteChangeEvent.d.ts +0 -3
  61. package/dist/npm/colors/interfaces/ColorPaletteProps.d.ts +8 -3
  62. package/dist/npm/colors/interfaces/ColorPickerActiveColorClick.d.ts +0 -3
  63. package/dist/npm/colors/interfaces/ColorPickerBlurEvent.d.ts +0 -3
  64. package/dist/npm/colors/interfaces/ColorPickerChangeEvent.d.ts +4 -3
  65. package/dist/npm/colors/interfaces/ColorPickerFocusEvent.d.ts +0 -3
  66. package/dist/npm/colors/interfaces/ColorPickerPaletteSettings.d.ts +0 -3
  67. package/dist/npm/colors/interfaces/ColorPickerPopupSettings.d.ts +0 -3
  68. package/dist/npm/colors/interfaces/ColorPickerProps.d.ts +30 -4
  69. package/dist/npm/colors/interfaces/ColorPickerView.d.ts +0 -3
  70. package/dist/npm/colors/interfaces/FlatColorPickerViewChangeEvent.d.ts +13 -0
  71. package/dist/npm/colors/interfaces/FlatColorPickerViewChangeEvent.js +2 -0
  72. package/dist/npm/colors/interfaces/PickerProps.d.ts +4 -0
  73. package/dist/npm/colors/utils/color-cache.d.ts +13 -0
  74. package/dist/npm/colors/utils/color-cache.js +15 -1
  75. package/dist/npm/colors/utils/color-parser.d.ts +7 -1
  76. package/dist/npm/colors/utils/color-parser.js +12 -3
  77. package/dist/npm/input/Input.d.ts +4 -0
  78. package/dist/npm/input/Input.js +8 -3
  79. package/dist/npm/messages/index.d.ts +45 -0
  80. package/dist/npm/messages/index.js +47 -1
  81. package/dist/npm/numerictextbox/NumericTextBox.js +3 -0
  82. package/dist/npm/numerictextbox/interfaces/NumericTextBoxProps.d.ts +4 -0
  83. package/dist/npm/package-metadata.js +1 -1
  84. package/dist/npm/radiobutton/RadioButton.js +1 -1
  85. package/dist/npm/radiobutton/RadioGroup.js +1 -1
  86. package/dist/npm/range-slider/RangeSlider.js +1 -1
  87. package/dist/npm/slider/Slider.js +2 -2
  88. package/package.json +11 -11
@@ -181,7 +181,7 @@ var RangeSliderVue2 = {
181
181
  dir: this.currentDir,
182
182
  "class": classNames('k-widget k-slider', {
183
183
  'k-rtl': this.currentDir === 'rtl',
184
- 'k-state-disabled': this.$props.disabled,
184
+ 'k-disabled': this.$props.disabled,
185
185
  'k-slider-vertical': this.$props.vertical,
186
186
  'k-slider-horizontal': !this.$props.vertical
187
187
  }, this.$props.class),
@@ -178,8 +178,8 @@ var SliderVue2 = {
178
178
  onBlur: this.onBlur,
179
179
  onKeydown: this.onKeyDown,
180
180
  "class": classNames('k-slider k-widget', {
181
- 'k-state-focused': this.currentFocused,
182
- 'k-state-disabled': this.$props.disabled,
181
+ 'k-focus': this.currentFocused,
182
+ 'k-disabled': this.$props.disabled,
183
183
  'k-slider-horizontal': !this.$props.vertical,
184
184
  'k-slider-vertical': this.$props.vertical
185
185
  }, this.$props.className)
@@ -214,11 +214,11 @@ var CheckboxVue2 = {
214
214
  this.defaultValidationMessage = this.localizeMessage(messages_1.checkboxValidation);
215
215
  this.optionalMessage = this.localizeMessage(messages_1.checkboxOptionalText);
216
216
  var checkboxClasses = kendo_vue_common_1.classNames({
217
- 'k-state-disabled': disabled
217
+ 'k-disabled': disabled
218
218
  });
219
219
  var inputClasses = kendo_vue_common_1.classNames((_a = {
220
220
  'k-checkbox': true
221
- }, _a["k-checkbox-" + kendo_vue_common_1.kendoThemeMaps.sizeMap[size]] = size, _a["k-rounded-" + kendo_vue_common_1.kendoThemeMaps.roundedMap[rounded]] = rounded, _a['k-state-indeterminate'] = this.indeterminateProp, _a['k-state-invalid k-invalid'] = !(this.isValid || validityStyles !== undefined || validityStyles === true), _a));
221
+ }, _a["k-checkbox-" + kendo_vue_common_1.kendoThemeMaps.sizeMap[size]] = size, _a["k-rounded-" + kendo_vue_common_1.kendoThemeMaps.roundedMap[rounded]] = rounded, _a['k-indeterminate'] = this.indeterminateProp, _a['k-invalid k-invalid'] = !(this.isValid || validityStyles !== undefined || validityStyles === true), _a));
222
222
 
223
223
  var checkboxInput = function checkboxInput() {
224
224
  return h("input", {
@@ -13,6 +13,8 @@ export interface ColorGradientState {
13
13
  guidId: string;
14
14
  gradientWrapper: any;
15
15
  alphaSlider: any;
16
+ firstFocusable: any;
17
+ lastFocusable: any;
16
18
  }
17
19
  /**
18
20
  * @hidden
@@ -31,6 +31,10 @@ var ColorContrastLabels_1 = require("./ColorContrastLabels");
31
31
 
32
32
  var ColorContrastSvg_1 = require("./ColorContrastSvg");
33
33
 
34
+ var kendo_vue_intl_1 = require("@progress/kendo-vue-intl");
35
+
36
+ var messages_1 = require("../messages");
37
+
34
38
  var FORMAT = 'rgba';
35
39
  var DEFAULT_SELECTED_COLOR = 'rgba(255, 255, 255, 1)';
36
40
  /**
@@ -39,14 +43,27 @@ var DEFAULT_SELECTED_COLOR = 'rgba(255, 255, 255, 1)';
39
43
 
40
44
  var ColorGradientVue2 = {
41
45
  name: 'KendoColorGradient',
46
+ model: {
47
+ event: 'changemodel'
48
+ },
42
49
  // @ts-ignore
43
50
  emits: {
44
51
  'change': null,
45
52
  'focus': null,
46
53
  'blur': null,
54
+ 'changemodel': null,
55
+ 'update:modelValue': null,
56
+ 'update:modelRgbaValue': null,
47
57
  'keydown': null
48
58
  },
59
+ inject: {
60
+ kendoLocalizationService: {
61
+ default: null
62
+ }
63
+ },
49
64
  props: {
65
+ modelValue: String,
66
+ modelRgbaValue: String,
50
67
  defaultValue: String,
51
68
  value: String,
52
69
  opacity: {
@@ -57,20 +74,22 @@ var ColorGradientVue2 = {
57
74
  disabled: Boolean,
58
75
  id: String,
59
76
  ariaLabelledBy: String,
60
- ariaDescribedBy: String
77
+ ariaDescribedBy: String,
78
+ tabIndex: Number,
79
+ innerTabIndex: {
80
+ type: Number,
81
+ default: undefined
82
+ }
61
83
  },
62
84
  created: function created() {
63
85
  kendo_vue_common_2.validatePackage(package_metadata_1.packageMetadata);
64
86
  this.guid = kendo_vue_common_1.guid();
65
87
  },
66
88
  computed: {
67
- isUncontrolled: function isUncontrolled() {
68
- return this.$props.value === undefined;
69
- },
70
89
  computedValue: function computedValue() {
71
- var value = this.value || this.defaultValue || this.currentValue || color_parser_1.parseColor(DEFAULT_SELECTED_COLOR, FORMAT);
90
+ var value = this.value || this.defaultValue || this.modelValue || this.modelRgbaValue || this.currentValue || color_parser_1.parseColor(DEFAULT_SELECTED_COLOR, FORMAT);
72
91
 
73
- if (!misc_1.isPresent(color_parser_1.parseColor(value, 'hex'))) {
92
+ if (!misc_1.isPresent(color_parser_1.parseColor(value, 'hex', this.opacity))) {
74
93
  // Validate/sanitize the input.
75
94
  value = DEFAULT_SELECTED_COLOR;
76
95
  }
@@ -84,10 +103,13 @@ var ColorGradientVue2 = {
84
103
  return this.currentRgba || color_cache_1.getCachedRgba(this.guid, this.computedValue) || color_parser_1.getRGBA(this.computedValue);
85
104
  },
86
105
  hex: function hex() {
87
- return this.currentHex || color_cache_1.getCachedHex(this.guid, this.computedValue) || color_parser_1.parseColor(this.computedValue, 'hex');
106
+ return this.currentHex || color_cache_1.getCachedHex(this.guid, this.computedValue) || color_parser_1.parseColor(this.computedValue, 'hex', this.opacity);
88
107
  },
89
108
  computedBgColor: function computedBgColor() {
90
109
  return this.currentBgColor || color_parser_1.getColorFromHue(this.hsva.h);
110
+ },
111
+ computedTabIndex: function computedTabIndex() {
112
+ return this.innerTabIndex !== undefined ? this.innerTabIndex : this.focused ? 0 : -1;
91
113
  }
92
114
  },
93
115
  data: function data() {
@@ -97,7 +119,8 @@ var ColorGradientVue2 = {
97
119
  isFirstRender: true,
98
120
  currentHsva: undefined,
99
121
  currentRgba: undefined,
100
- currentHex: undefined
122
+ currentHex: undefined,
123
+ focused: false
101
124
  };
102
125
  },
103
126
  mounted: function mounted() {
@@ -118,8 +141,7 @@ var ColorGradientVue2 = {
118
141
  color_cache_1.removeCachedColor(this.guid);
119
142
  },
120
143
  updated: function updated() {
121
- // if (prevState.backgroundColor !== this.backgroundColor) {
122
- this.setAlphaSliderBackground(this.computedBgColor); // }
144
+ this.setAlphaSliderBackground(this.computedBgColor);
123
145
  },
124
146
  // @ts-ignore
125
147
  setup: !isV3 ? undefined : function () {
@@ -138,6 +160,8 @@ var ColorGradientVue2 = {
138
160
  var className = kendo_vue_common_1.classNames('k-colorgradient', {
139
161
  'k-disabled': this.$props.disabled
140
162
  });
163
+ var localizationService = kendo_vue_intl_1.provideLocalizationService(this);
164
+ var dragHandle = localizationService.toLanguageString(messages_1.colorGradientDragHandle, messages_1.messages[messages_1.colorGradientDragHandle]);
141
165
 
142
166
  var renderRectangleDragHandle = function renderRectangleDragHandle() {
143
167
  var style = {};
@@ -152,7 +176,24 @@ var ColorGradientVue2 = {
152
176
 
153
177
  return h("div", {
154
178
  "class": "k-hsv-draghandle k-draghandle",
155
- style: style
179
+ role: "slider",
180
+ attrs: this.v3 ? undefined : {
181
+ role: "slider",
182
+ "aria-label": dragHandle + ("" + (this.value || 'none')),
183
+ "aria-valuenow": Math.round(this.hsva.s * 100),
184
+ "aria-valuetext": "\n saturation: " + Math.round(this.hsva.s * 100) + "%,\n value: " + Math.round(this.hsva.v * 100) + "%",
185
+ tabindex: this.computedTabIndex
186
+ },
187
+ "aria-label": dragHandle + ("" + (this.value || 'none')),
188
+ "aria-valuenow": Math.round(this.hsva.s * 100),
189
+ "aria-valuetext": "\n saturation: " + Math.round(this.hsva.s * 100) + "%,\n value: " + Math.round(this.hsva.v * 100) + "%",
190
+ tabindex: this.computedTabIndex,
191
+ onKeydown: this.dragKeyDown,
192
+ on: this.v3 ? undefined : {
193
+ "keydown": this.dragKeyDown
194
+ },
195
+ style: style,
196
+ ref: kendo_vue_common_1.setRef(this, 'draghandle')
156
197
  });
157
198
  };
158
199
 
@@ -160,13 +201,15 @@ var ColorGradientVue2 = {
160
201
  id: this.$props.id,
161
202
  attrs: this.v3 ? undefined : {
162
203
  id: this.$props.id,
163
- "aria-disabled": this.$props.disabled ? 'true' : undefined,
204
+ role: this.$props.tabIndex !== -1 ? 'textbox' : undefined,
205
+ "aria-disabled": this.$props.disabled,
164
206
  tabindex: kendo_vue_common_1.getTabIndex(this.$props.tabIndex, this.$props.disabled),
165
207
  "aria-labelledby": this.$props.ariaLabelledBy,
166
208
  "aria-describedby": this.$props.ariaDescribedBy
167
209
  },
168
210
  "class": className,
169
- "aria-disabled": this.$props.disabled ? 'true' : undefined,
211
+ role: this.$props.tabIndex !== -1 ? 'textbox' : undefined,
212
+ "aria-disabled": this.$props.disabled,
170
213
  tabindex: kendo_vue_common_1.getTabIndex(this.$props.tabIndex, this.$props.disabled),
171
214
  "aria-labelledby": this.$props.ariaLabelledBy,
172
215
  "aria-describedby": this.$props.ariaDescribedBy,
@@ -200,6 +243,10 @@ var ColorGradientVue2 = {
200
243
  style: {
201
244
  touchAction: 'none'
202
245
  },
246
+ tabindex: -1,
247
+ attrs: _this2.v3 ? undefined : {
248
+ tabindex: -1
249
+ },
203
250
  onClick: _this2.onGradientWrapperClick,
204
251
  on: _this2.v3 ? undefined : {
205
252
  "click": _this2.onGradientWrapperClick
@@ -210,6 +257,10 @@ var ColorGradientVue2 = {
210
257
  style: {
211
258
  touchAction: 'none'
212
259
  },
260
+ tabindex: -1,
261
+ attrs: _this2.v3 ? undefined : {
262
+ tabindex: -1
263
+ },
213
264
  onClick: _this2.onGradientWrapperClick,
214
265
  on: _this2.v3 ? undefined : {
215
266
  "click": _this2.onGradientWrapperClick
@@ -226,8 +277,9 @@ var ColorGradientVue2 = {
226
277
  })]), h("div", {
227
278
  "class": "k-hsv-controls k-hstack"
228
279
  }, [h(main_1.Slider, {
229
- value: this.hsva.h,
280
+ tabIndex: this.computedTabIndex,
230
281
  attrs: this.v3 ? undefined : {
282
+ tabIndex: this.computedTabIndex,
231
283
  value: this.hsva.h,
232
284
  buttons: false,
233
285
  vertical: true,
@@ -236,6 +288,7 @@ var ColorGradientVue2 = {
236
288
  step: 5,
237
289
  disabled: this.$props.disabled
238
290
  },
291
+ value: this.hsva.h,
239
292
  buttons: false,
240
293
  vertical: true,
241
294
  min: 0,
@@ -243,17 +296,14 @@ var ColorGradientVue2 = {
243
296
  step: 5,
244
297
  onChange: this.onHueSliderChange,
245
298
  on: this.v3 ? undefined : {
246
- "change": this.onHueSliderChange,
247
- "focus": this.onFocus,
248
- "blur": this.onBlur
299
+ "change": this.onHueSliderChange
249
300
  },
250
- onFocus: this.onFocus,
251
- onBlur: this.onBlur,
252
301
  "class": "k-hue-slider k-colorgradient-slider",
253
302
  disabled: this.$props.disabled
254
303
  }), this.$props.opacity && h(main_1.Slider, {
255
- value: misc_1.isPresent(this.hsva.a) ? this.hsva.a * 100 : 100,
304
+ tabIndex: this.computedTabIndex,
256
305
  attrs: this.v3 ? undefined : {
306
+ tabIndex: this.computedTabIndex,
257
307
  value: misc_1.isPresent(this.hsva.a) ? this.hsva.a * 100 : 100,
258
308
  buttons: false,
259
309
  vertical: true,
@@ -262,6 +312,7 @@ var ColorGradientVue2 = {
262
312
  step: 1,
263
313
  disabled: this.$props.disabled
264
314
  },
315
+ value: misc_1.isPresent(this.hsva.a) ? this.hsva.a * 100 : 100,
265
316
  buttons: false,
266
317
  vertical: true,
267
318
  min: 0,
@@ -269,36 +320,33 @@ var ColorGradientVue2 = {
269
320
  step: 1,
270
321
  onChange: this.onAlphaSliderChange,
271
322
  on: this.v3 ? undefined : {
272
- "change": this.onAlphaSliderChange,
273
- "focus": this.onFocus,
274
- "blur": this.onBlur
323
+ "change": this.onAlphaSliderChange
275
324
  },
276
- onFocus: this.onFocus,
277
- onBlur: this.onBlur,
278
325
  "class": "k-alpha-slider k-colorgradient-slider",
279
326
  disabled: this.$props.disabled,
280
327
  ref: this.v3 ? function (el) {
281
328
  _this.alphaSliderRef = el;
282
329
  } : 'alphaSlider'
283
330
  })])]), h(ColorInput_1.ColorInput, {
284
- rgba: this.rgba,
331
+ tabIndex: this.computedTabIndex,
285
332
  attrs: this.v3 ? undefined : {
333
+ tabIndex: this.computedTabIndex,
286
334
  rgba: this.rgba,
287
335
  hex: this.hex,
288
336
  opacity: this.$props.opacity,
289
337
  disabled: this.$props.disabled
290
338
  },
339
+ rgba: this.rgba,
291
340
  onRgbachange: this.onRgbaChange,
292
341
  on: this.v3 ? undefined : {
293
342
  "rgbachange": this.onRgbaChange,
294
- "blur": this.onBlur,
295
343
  "hexchange": this.onHexChange
296
344
  },
297
345
  hex: this.hex,
298
- onBlur: this.onBlur,
299
346
  onHexchange: this.onHexChange,
300
347
  opacity: this.$props.opacity,
301
- disabled: this.$props.disabled
348
+ disabled: this.$props.disabled,
349
+ ref: 'colorInput'
302
350
  }), this.backgroundColor && h(ColorContrastLabels_1.ColorContrastLabels, {
303
351
  bgColor: color_parser_1.getRGBA(this.backgroundColor),
304
352
  attrs: this.v3 ? undefined : {
@@ -309,44 +357,33 @@ var ColorGradientVue2 = {
309
357
  })]);
310
358
  },
311
359
  methods: {
312
- // getDerivedStateFromProps(props: ColorGradientProps, state: ColorGradientState) {
313
- // if (props.value && !state.isFirstRender) {
314
- // // The component is in controlled mode.
315
- // return ColorGradientWithoutContext.getStateFromValue(props.value, state.guid);
316
- // }
317
- // return null;
318
- // },
319
360
  onKeyDownHandler: function onKeyDownHandler(e) {
361
+ var element = this.$el;
362
+
363
+ if (this.innerTabIndex === undefined) {
364
+ this.focused = kendo_vue_common_1.focusContainer(e, element);
365
+ }
366
+
320
367
  this.$emit('keydown', e);
321
368
  },
322
369
  onHexChange: function onHexChange(hex, value, event) {
323
- if (this.isUncontrolled) {
324
- var hsva = color_parser_1.getHSV(value);
325
- this.currentHsva = hsva;
326
- this.currentBgColor = color_parser_1.getColorFromHue(hsva.h);
327
- this.currentRgba = color_parser_1.getRGBA(value);
328
- this.currentHex = hex;
329
- } else {
330
- color_cache_1.cacheHex(this.guid, value, hex);
331
- }
332
-
333
- this.dispatchChangeEvent(value, event, event.event);
370
+ var rgba = color_parser_1.getRGBA(value);
371
+ var hsva = color_parser_1.getHSV(value);
372
+ this.currentHsva = hsva;
373
+ this.currentBgColor = color_parser_1.getColorFromHue(hsva.h);
374
+ this.currentRgba = rgba;
375
+ this.currentHex = hex;
376
+ this.dispatchChangeEvent(value, event.event, hex, value);
334
377
  },
335
378
  onRgbaChange: function onRgbaChange(rgba, event) {
336
379
  var value = color_parser_1.getColorFromRGBA(rgba);
337
-
338
- if (this.isUncontrolled) {
339
- var hsva = color_parser_1.getHSV(value);
340
- var hex = color_parser_1.parseColor(value, 'hex');
341
- this.currentHsva = hsva;
342
- this.currentBgColor = color_parser_1.getColorFromHue(hsva.h);
343
- this.currentRgba = rgba;
344
- this.currentHex = hex;
345
- } else {
346
- color_cache_1.cacheRgba(this.guid, value, rgba);
347
- }
348
-
349
- this.dispatchChangeEvent(value, event.event);
380
+ var hex = color_parser_1.parseColor(value, 'hex', this.opacity);
381
+ var hsva = color_parser_1.getHSV(value);
382
+ this.currentHsva = hsva;
383
+ this.currentBgColor = color_parser_1.getColorFromHue(hsva.h);
384
+ this.currentRgba = rgba;
385
+ this.currentHex = hex;
386
+ this.dispatchChangeEvent(value, event.event, hex, value);
350
387
  },
351
388
  onAlphaSliderChange: function onAlphaSliderChange(event) {
352
389
  this.handleHsvaChange(Object.assign({}, this.hsva, {
@@ -366,8 +403,53 @@ var ColorGradientVue2 = {
366
403
  this.gradientWrapper.classList.remove('k-dragging');
367
404
  },
368
405
  onGradientWrapperClick: function onGradientWrapperClick(event) {
406
+ this.firstFocusable = kendo_vue_common_1.getRef(this, 'draghandle');
407
+ this.firstFocusable.focus();
369
408
  this.changePosition(event);
370
409
  },
410
+ move: function move(e, prop, d) {
411
+ var c = this.hsva;
412
+ c[prop] += d * (e.shiftKey ? 0.01 : 0.05);
413
+
414
+ if (c[prop] < 0) {
415
+ c[prop] = 0;
416
+ }
417
+
418
+ if (c[prop] > 1) {
419
+ c[prop] = 1;
420
+ }
421
+
422
+ e.preventDefault();
423
+ this.handleHsvaChange(c, e);
424
+ },
425
+ dragKeyDown: function dragKeyDown(e) {
426
+ switch (e.keyCode) {
427
+ case kendo_vue_common_1.Keys.left:
428
+ this.move(e, 's', -1);
429
+ break;
430
+
431
+ case kendo_vue_common_1.Keys.right:
432
+ this.move(e, 's', 1);
433
+ break;
434
+
435
+ case kendo_vue_common_1.Keys.up:
436
+ this.move(e, 'v', 1);
437
+ break;
438
+
439
+ case kendo_vue_common_1.Keys.down:
440
+ this.move(e, 'v', -1);
441
+ break;
442
+
443
+ case kendo_vue_common_1.Keys.enter:
444
+ break;
445
+
446
+ case kendo_vue_common_1.Keys.esc:
447
+ break;
448
+
449
+ default:
450
+ break;
451
+ }
452
+ },
371
453
  changePosition: function changePosition(event) {
372
454
  var gradientRectMetrics = this.getGradientRectMetrics();
373
455
  var deltaX = event.clientX - gradientRectMetrics.left;
@@ -382,25 +464,24 @@ var ColorGradientVue2 = {
382
464
  },
383
465
  handleHsvaChange: function handleHsvaChange(hsva, event) {
384
466
  var value = color_parser_1.getColorFromHSV(hsva);
385
-
386
- if (this.isUncontrolled) {
387
- var hex = color_parser_1.parseColor(value, 'hex');
388
- this.currentHsva = hsva;
389
- this.currentBgColor = color_parser_1.getColorFromHue(hsva.h);
390
- this.currentRgba = color_parser_1.getRGBA(value);
391
- this.currentHex = hex;
392
- } else {
393
- color_cache_1.cacheHsva(this.guid, value, hsva);
394
- }
395
-
396
- this.dispatchChangeEvent(value, event);
467
+ var hex = color_parser_1.parseColor(value, 'hex', this.opacity);
468
+ var rgba = color_parser_1.parseColor(value, 'rgba');
469
+ this.currentHsva = hsva;
470
+ this.currentBgColor = color_parser_1.getColorFromHue(hsva.h);
471
+ this.currentRgba = color_parser_1.getRGBA(value);
472
+ this.currentHex = hex;
473
+ this.dispatchChangeEvent(value, event, hex, rgba);
397
474
  },
398
- dispatchChangeEvent: function dispatchChangeEvent(value, event) {
475
+ dispatchChangeEvent: function dispatchChangeEvent(value, event, hex, rgbaValue) {
399
476
  this.currentValue = value;
477
+ this.$emit('changemodel', hex);
478
+ this.$emit('update:modelRgbaValue', rgbaValue);
479
+ this.$emit('update:modelValue', hex);
400
480
  this.$emit('change', {
401
481
  event: event,
402
482
  target: this,
403
- value: value
483
+ value: hex,
484
+ rgbaValue: rgbaValue
404
485
  });
405
486
  },
406
487
  onFocus: function onFocus(event) {
@@ -434,7 +515,12 @@ var ColorGradientVue2 = {
434
515
  };
435
516
  },
436
517
  focus: function focus() {
437
- kendo_vue_common_1.focusFirstFocusableChild(this.$el);
518
+ var _this = this;
519
+
520
+ this.focused = true;
521
+ setTimeout(function () {
522
+ kendo_vue_common_1.focusFirstFocusableChild(_this.$el);
523
+ }, 1);
438
524
  }
439
525
  }
440
526
  };
@@ -9,6 +9,7 @@ import { RGBA } from './models/rgba';
9
9
  * @hidden
10
10
  */
11
11
  export interface ColorInputProps {
12
+ tabIndex?: number;
12
13
  rgba: RGBA;
13
14
  onRgbaChange?: (rgba: RGBA, event: NumericTextBoxChangeEvent) => void;
14
15
  hex: string;
@@ -20,6 +21,8 @@ export interface ColorInputProps {
20
21
  * @hidden
21
22
  */
22
23
  export interface ColorInputState {
24
+ lastFocusable: any;
25
+ hexInputId: string;
23
26
  }
24
27
  /**
25
28
  * @hidden