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

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 +152 -47
  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 +89 -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 +153 -46
  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 +90 -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,7 +74,12 @@ 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);
@@ -68,9 +90,9 @@ var ColorGradientVue2 = {
68
90
  return this.$props.value === undefined;
69
91
  },
70
92
  computedValue: function computedValue() {
71
- var value = this.value || this.defaultValue || this.currentValue || color_parser_1.parseColor(DEFAULT_SELECTED_COLOR, FORMAT);
93
+ var value = this.value || this.defaultValue || this.modelValue || this.modelRgbaValue || this.currentValue || color_parser_1.parseColor(DEFAULT_SELECTED_COLOR, FORMAT);
72
94
 
73
- if (!misc_1.isPresent(color_parser_1.parseColor(value, 'hex'))) {
95
+ if (!misc_1.isPresent(color_parser_1.parseColor(value, 'hex', this.opacity))) {
74
96
  // Validate/sanitize the input.
75
97
  value = DEFAULT_SELECTED_COLOR;
76
98
  }
@@ -84,10 +106,13 @@ var ColorGradientVue2 = {
84
106
  return this.currentRgba || color_cache_1.getCachedRgba(this.guid, this.computedValue) || color_parser_1.getRGBA(this.computedValue);
85
107
  },
86
108
  hex: function hex() {
87
- return this.currentHex || color_cache_1.getCachedHex(this.guid, this.computedValue) || color_parser_1.parseColor(this.computedValue, 'hex');
109
+ return this.currentHex || color_cache_1.getCachedHex(this.guid, this.computedValue) || color_parser_1.parseColor(this.computedValue, 'hex', this.opacity);
88
110
  },
89
111
  computedBgColor: function computedBgColor() {
90
112
  return this.currentBgColor || color_parser_1.getColorFromHue(this.hsva.h);
113
+ },
114
+ computedTabIndex: function computedTabIndex() {
115
+ return this.innerTabIndex !== undefined ? this.innerTabIndex : this.focused ? 0 : -1;
91
116
  }
92
117
  },
93
118
  data: function data() {
@@ -97,7 +122,8 @@ var ColorGradientVue2 = {
97
122
  isFirstRender: true,
98
123
  currentHsva: undefined,
99
124
  currentRgba: undefined,
100
- currentHex: undefined
125
+ currentHex: undefined,
126
+ focused: false
101
127
  };
102
128
  },
103
129
  mounted: function mounted() {
@@ -118,8 +144,7 @@ var ColorGradientVue2 = {
118
144
  color_cache_1.removeCachedColor(this.guid);
119
145
  },
120
146
  updated: function updated() {
121
- // if (prevState.backgroundColor !== this.backgroundColor) {
122
- this.setAlphaSliderBackground(this.computedBgColor); // }
147
+ this.setAlphaSliderBackground(this.computedBgColor);
123
148
  },
124
149
  // @ts-ignore
125
150
  setup: !isV3 ? undefined : function () {
@@ -138,6 +163,8 @@ var ColorGradientVue2 = {
138
163
  var className = kendo_vue_common_1.classNames('k-colorgradient', {
139
164
  'k-disabled': this.$props.disabled
140
165
  });
166
+ var localizationService = kendo_vue_intl_1.provideLocalizationService(this);
167
+ var dragHandle = localizationService.toLanguageString(messages_1.colorGradientDragHandle, messages_1.messages[messages_1.colorGradientDragHandle]);
141
168
 
142
169
  var renderRectangleDragHandle = function renderRectangleDragHandle() {
143
170
  var style = {};
@@ -152,7 +179,24 @@ var ColorGradientVue2 = {
152
179
 
153
180
  return h("div", {
154
181
  "class": "k-hsv-draghandle k-draghandle",
155
- style: style
182
+ role: "slider",
183
+ attrs: this.v3 ? undefined : {
184
+ role: "slider",
185
+ "aria-label": dragHandle + ("" + (this.value || 'none')),
186
+ "aria-valuenow": Math.round(this.hsva.s * 100),
187
+ "aria-valuetext": "\n saturation: " + Math.round(this.hsva.s * 100) + "%,\n value: " + Math.round(this.hsva.v * 100) + "%",
188
+ tabindex: this.computedTabIndex
189
+ },
190
+ "aria-label": dragHandle + ("" + (this.value || 'none')),
191
+ "aria-valuenow": Math.round(this.hsva.s * 100),
192
+ "aria-valuetext": "\n saturation: " + Math.round(this.hsva.s * 100) + "%,\n value: " + Math.round(this.hsva.v * 100) + "%",
193
+ tabindex: this.computedTabIndex,
194
+ onKeydown: this.dragKeyDown,
195
+ on: this.v3 ? undefined : {
196
+ "keydown": this.dragKeyDown
197
+ },
198
+ style: style,
199
+ ref: kendo_vue_common_1.setRef(this, 'draghandle')
156
200
  });
157
201
  };
158
202
 
@@ -160,23 +204,25 @@ var ColorGradientVue2 = {
160
204
  id: this.$props.id,
161
205
  attrs: this.v3 ? undefined : {
162
206
  id: this.$props.id,
163
- "aria-disabled": this.$props.disabled ? 'true' : undefined,
207
+ role: this.$props.tabIndex !== -1 ? 'textbox' : undefined,
208
+ "aria-disabled": this.$props.disabled,
164
209
  tabindex: kendo_vue_common_1.getTabIndex(this.$props.tabIndex, this.$props.disabled),
165
210
  "aria-labelledby": this.$props.ariaLabelledBy,
166
211
  "aria-describedby": this.$props.ariaDescribedBy
167
212
  },
168
213
  "class": className,
169
- "aria-disabled": this.$props.disabled ? 'true' : undefined,
214
+ role: this.$props.tabIndex !== -1 ? 'textbox' : undefined,
215
+ "aria-disabled": this.$props.disabled,
170
216
  tabindex: kendo_vue_common_1.getTabIndex(this.$props.tabIndex, this.$props.disabled),
171
217
  "aria-labelledby": this.$props.ariaLabelledBy,
172
218
  "aria-describedby": this.$props.ariaDescribedBy,
173
- onFocus: this.onFocus,
219
+ onFocusin: this.onFocus,
174
220
  on: this.v3 ? undefined : {
175
- "focus": this.onFocus,
176
- "blur": this.onBlur,
221
+ "focusin": this.onFocus,
222
+ "focusout": this.onBlur,
177
223
  "keydown": this.onKeyDownHandler
178
224
  },
179
- onBlur: this.onBlur,
225
+ onFocusout: this.onBlur,
180
226
  onKeydown: this.onKeyDownHandler
181
227
  }, [h("div", {
182
228
  "class": "k-colorgradient-canvas k-hstack"
@@ -200,6 +246,10 @@ var ColorGradientVue2 = {
200
246
  style: {
201
247
  touchAction: 'none'
202
248
  },
249
+ tabindex: -1,
250
+ attrs: _this2.v3 ? undefined : {
251
+ tabindex: -1
252
+ },
203
253
  onClick: _this2.onGradientWrapperClick,
204
254
  on: _this2.v3 ? undefined : {
205
255
  "click": _this2.onGradientWrapperClick
@@ -210,6 +260,10 @@ var ColorGradientVue2 = {
210
260
  style: {
211
261
  touchAction: 'none'
212
262
  },
263
+ tabindex: -1,
264
+ attrs: _this2.v3 ? undefined : {
265
+ tabindex: -1
266
+ },
213
267
  onClick: _this2.onGradientWrapperClick,
214
268
  on: _this2.v3 ? undefined : {
215
269
  "click": _this2.onGradientWrapperClick
@@ -226,8 +280,9 @@ var ColorGradientVue2 = {
226
280
  })]), h("div", {
227
281
  "class": "k-hsv-controls k-hstack"
228
282
  }, [h(main_1.Slider, {
229
- value: this.hsva.h,
283
+ tabIndex: this.computedTabIndex,
230
284
  attrs: this.v3 ? undefined : {
285
+ tabIndex: this.computedTabIndex,
231
286
  value: this.hsva.h,
232
287
  buttons: false,
233
288
  vertical: true,
@@ -236,6 +291,7 @@ var ColorGradientVue2 = {
236
291
  step: 5,
237
292
  disabled: this.$props.disabled
238
293
  },
294
+ value: this.hsva.h,
239
295
  buttons: false,
240
296
  vertical: true,
241
297
  min: 0,
@@ -243,17 +299,14 @@ var ColorGradientVue2 = {
243
299
  step: 5,
244
300
  onChange: this.onHueSliderChange,
245
301
  on: this.v3 ? undefined : {
246
- "change": this.onHueSliderChange,
247
- "focus": this.onFocus,
248
- "blur": this.onBlur
302
+ "change": this.onHueSliderChange
249
303
  },
250
- onFocus: this.onFocus,
251
- onBlur: this.onBlur,
252
304
  "class": "k-hue-slider k-colorgradient-slider",
253
305
  disabled: this.$props.disabled
254
306
  }), this.$props.opacity && h(main_1.Slider, {
255
- value: misc_1.isPresent(this.hsva.a) ? this.hsva.a * 100 : 100,
307
+ tabIndex: this.computedTabIndex,
256
308
  attrs: this.v3 ? undefined : {
309
+ tabIndex: this.computedTabIndex,
257
310
  value: misc_1.isPresent(this.hsva.a) ? this.hsva.a * 100 : 100,
258
311
  buttons: false,
259
312
  vertical: true,
@@ -262,6 +315,7 @@ var ColorGradientVue2 = {
262
315
  step: 1,
263
316
  disabled: this.$props.disabled
264
317
  },
318
+ value: misc_1.isPresent(this.hsva.a) ? this.hsva.a * 100 : 100,
265
319
  buttons: false,
266
320
  vertical: true,
267
321
  min: 0,
@@ -269,36 +323,33 @@ var ColorGradientVue2 = {
269
323
  step: 1,
270
324
  onChange: this.onAlphaSliderChange,
271
325
  on: this.v3 ? undefined : {
272
- "change": this.onAlphaSliderChange,
273
- "focus": this.onFocus,
274
- "blur": this.onBlur
326
+ "change": this.onAlphaSliderChange
275
327
  },
276
- onFocus: this.onFocus,
277
- onBlur: this.onBlur,
278
328
  "class": "k-alpha-slider k-colorgradient-slider",
279
329
  disabled: this.$props.disabled,
280
330
  ref: this.v3 ? function (el) {
281
331
  _this.alphaSliderRef = el;
282
332
  } : 'alphaSlider'
283
333
  })])]), h(ColorInput_1.ColorInput, {
284
- rgba: this.rgba,
334
+ tabIndex: this.computedTabIndex,
285
335
  attrs: this.v3 ? undefined : {
336
+ tabIndex: this.computedTabIndex,
286
337
  rgba: this.rgba,
287
338
  hex: this.hex,
288
339
  opacity: this.$props.opacity,
289
340
  disabled: this.$props.disabled
290
341
  },
342
+ rgba: this.rgba,
291
343
  onRgbachange: this.onRgbaChange,
292
344
  on: this.v3 ? undefined : {
293
345
  "rgbachange": this.onRgbaChange,
294
- "blur": this.onBlur,
295
346
  "hexchange": this.onHexChange
296
347
  },
297
348
  hex: this.hex,
298
- onBlur: this.onBlur,
299
349
  onHexchange: this.onHexChange,
300
350
  opacity: this.$props.opacity,
301
- disabled: this.$props.disabled
351
+ disabled: this.$props.disabled,
352
+ ref: 'colorInput'
302
353
  }), this.backgroundColor && h(ColorContrastLabels_1.ColorContrastLabels, {
303
354
  bgColor: color_parser_1.getRGBA(this.backgroundColor),
304
355
  attrs: this.v3 ? undefined : {
@@ -309,35 +360,36 @@ var ColorGradientVue2 = {
309
360
  })]);
310
361
  },
311
362
  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
363
  onKeyDownHandler: function onKeyDownHandler(e) {
364
+ var element = this.$el;
365
+
366
+ if (this.innerTabIndex === undefined) {
367
+ this.focused = kendo_vue_common_1.focusContainer(e, element);
368
+ }
369
+
320
370
  this.$emit('keydown', e);
321
371
  },
322
372
  onHexChange: function onHexChange(hex, value, event) {
373
+ var rgba = color_parser_1.getRGBA(value);
374
+
323
375
  if (this.isUncontrolled) {
324
376
  var hsva = color_parser_1.getHSV(value);
325
377
  this.currentHsva = hsva;
326
378
  this.currentBgColor = color_parser_1.getColorFromHue(hsva.h);
327
- this.currentRgba = color_parser_1.getRGBA(value);
379
+ this.currentRgba = rgba;
328
380
  this.currentHex = hex;
329
381
  } else {
330
382
  color_cache_1.cacheHex(this.guid, value, hex);
331
383
  }
332
384
 
333
- this.dispatchChangeEvent(value, event, event.event);
385
+ this.dispatchChangeEvent(value, event.event, hex, value);
334
386
  },
335
387
  onRgbaChange: function onRgbaChange(rgba, event) {
336
388
  var value = color_parser_1.getColorFromRGBA(rgba);
389
+ var hex = color_parser_1.parseColor(value, 'hex', this.opacity);
337
390
 
338
391
  if (this.isUncontrolled) {
339
392
  var hsva = color_parser_1.getHSV(value);
340
- var hex = color_parser_1.parseColor(value, 'hex');
341
393
  this.currentHsva = hsva;
342
394
  this.currentBgColor = color_parser_1.getColorFromHue(hsva.h);
343
395
  this.currentRgba = rgba;
@@ -346,7 +398,7 @@ var ColorGradientVue2 = {
346
398
  color_cache_1.cacheRgba(this.guid, value, rgba);
347
399
  }
348
400
 
349
- this.dispatchChangeEvent(value, event.event);
401
+ this.dispatchChangeEvent(value, event.event, hex, value);
350
402
  },
351
403
  onAlphaSliderChange: function onAlphaSliderChange(event) {
352
404
  this.handleHsvaChange(Object.assign({}, this.hsva, {
@@ -366,8 +418,53 @@ var ColorGradientVue2 = {
366
418
  this.gradientWrapper.classList.remove('k-dragging');
367
419
  },
368
420
  onGradientWrapperClick: function onGradientWrapperClick(event) {
421
+ this.firstFocusable = kendo_vue_common_1.getRef(this, 'draghandle');
422
+ this.firstFocusable.focus();
369
423
  this.changePosition(event);
370
424
  },
425
+ move: function move(e, prop, d) {
426
+ var c = this.hsva;
427
+ c[prop] += d * (e.shiftKey ? 0.01 : 0.05);
428
+
429
+ if (c[prop] < 0) {
430
+ c[prop] = 0;
431
+ }
432
+
433
+ if (c[prop] > 1) {
434
+ c[prop] = 1;
435
+ }
436
+
437
+ e.preventDefault();
438
+ this.handleHsvaChange(c, e);
439
+ },
440
+ dragKeyDown: function dragKeyDown(e) {
441
+ switch (e.keyCode) {
442
+ case kendo_vue_common_1.Keys.left:
443
+ this.move(e, 's', -1);
444
+ break;
445
+
446
+ case kendo_vue_common_1.Keys.right:
447
+ this.move(e, 's', 1);
448
+ break;
449
+
450
+ case kendo_vue_common_1.Keys.up:
451
+ this.move(e, 'v', 1);
452
+ break;
453
+
454
+ case kendo_vue_common_1.Keys.down:
455
+ this.move(e, 'v', -1);
456
+ break;
457
+
458
+ case kendo_vue_common_1.Keys.enter:
459
+ break;
460
+
461
+ case kendo_vue_common_1.Keys.esc:
462
+ break;
463
+
464
+ default:
465
+ break;
466
+ }
467
+ },
371
468
  changePosition: function changePosition(event) {
372
469
  var gradientRectMetrics = this.getGradientRectMetrics();
373
470
  var deltaX = event.clientX - gradientRectMetrics.left;
@@ -382,9 +479,10 @@ var ColorGradientVue2 = {
382
479
  },
383
480
  handleHsvaChange: function handleHsvaChange(hsva, event) {
384
481
  var value = color_parser_1.getColorFromHSV(hsva);
482
+ var hex = color_parser_1.parseColor(value, 'hex', this.opacity);
483
+ var rgba = color_parser_1.parseColor(value, 'rgba');
385
484
 
386
485
  if (this.isUncontrolled) {
387
- var hex = color_parser_1.parseColor(value, 'hex');
388
486
  this.currentHsva = hsva;
389
487
  this.currentBgColor = color_parser_1.getColorFromHue(hsva.h);
390
488
  this.currentRgba = color_parser_1.getRGBA(value);
@@ -393,14 +491,18 @@ var ColorGradientVue2 = {
393
491
  color_cache_1.cacheHsva(this.guid, value, hsva);
394
492
  }
395
493
 
396
- this.dispatchChangeEvent(value, event);
494
+ this.dispatchChangeEvent(value, event, hex, rgba);
397
495
  },
398
- dispatchChangeEvent: function dispatchChangeEvent(value, event) {
496
+ dispatchChangeEvent: function dispatchChangeEvent(value, event, hex, rgbaValue) {
399
497
  this.currentValue = value;
498
+ this.$emit('changemodel', hex);
499
+ this.$emit('update:modelRgbaValue', rgbaValue);
500
+ this.$emit('update:modelValue', hex);
400
501
  this.$emit('change', {
401
502
  event: event,
402
503
  target: this,
403
- value: value
504
+ value: hex,
505
+ rgbaValue: rgbaValue
404
506
  });
405
507
  },
406
508
  onFocus: function onFocus(event) {
@@ -434,7 +536,12 @@ var ColorGradientVue2 = {
434
536
  };
435
537
  },
436
538
  focus: function focus() {
437
- kendo_vue_common_1.focusFirstFocusableChild(this.$el);
539
+ var _this = this;
540
+
541
+ this.focused = true;
542
+ setTimeout(function () {
543
+ kendo_vue_common_1.focusFirstFocusableChild(_this.$el);
544
+ }, 1);
438
545
  }
439
546
  }
440
547
  };
@@ -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