@progress/kendo-vue-inputs 3.4.3 → 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 (102) hide show
  1. package/dist/cdn/js/kendo-vue-inputs.js +1 -1
  2. package/dist/es/checkbox/Checkbox.js +3 -3
  3. package/dist/es/colors/ColorContrastLabels.js +8 -4
  4. package/dist/es/colors/ColorContrastSvg.js +65 -44
  5. package/dist/es/colors/ColorGradient.d.ts +3 -1
  6. package/dist/es/colors/ColorGradient.js +160 -57
  7. package/dist/es/colors/ColorInput.d.ts +3 -0
  8. package/dist/es/colors/ColorInput.js +82 -58
  9. package/dist/es/colors/ColorPalette.js +31 -17
  10. package/dist/es/colors/ColorPicker.d.ts +1 -0
  11. package/dist/es/colors/ColorPicker.js +90 -70
  12. package/dist/es/colors/FlatColorPicker.d.ts +41 -5
  13. package/dist/es/colors/FlatColorPicker.js +307 -110
  14. package/dist/es/colors/HexInput.d.ts +1 -0
  15. package/dist/es/colors/HexInput.js +33 -13
  16. package/dist/es/colors/Picker.js +20 -12
  17. package/dist/es/colors/interfaces/ColorGradientChangeEvent.d.ts +4 -0
  18. package/dist/es/colors/interfaces/ColorGradientProps.d.ts +12 -0
  19. package/dist/es/colors/interfaces/ColorPaletteChangeEvent.d.ts +0 -3
  20. package/dist/es/colors/interfaces/ColorPaletteProps.d.ts +8 -3
  21. package/dist/es/colors/interfaces/ColorPickerActiveColorClick.d.ts +0 -3
  22. package/dist/es/colors/interfaces/ColorPickerBlurEvent.d.ts +0 -3
  23. package/dist/es/colors/interfaces/ColorPickerChangeEvent.d.ts +4 -3
  24. package/dist/es/colors/interfaces/ColorPickerFocusEvent.d.ts +0 -3
  25. package/dist/es/colors/interfaces/ColorPickerPaletteSettings.d.ts +0 -3
  26. package/dist/es/colors/interfaces/ColorPickerPopupSettings.d.ts +0 -3
  27. package/dist/es/colors/interfaces/ColorPickerProps.d.ts +30 -4
  28. package/dist/es/colors/interfaces/ColorPickerView.d.ts +0 -3
  29. package/dist/es/colors/interfaces/FlatColorPickerViewChangeEvent.d.ts +13 -0
  30. package/dist/es/colors/interfaces/FlatColorPickerViewChangeEvent.js +0 -0
  31. package/dist/es/colors/interfaces/PickerProps.d.ts +4 -0
  32. package/dist/es/colors/utils/color-cache.d.ts +13 -0
  33. package/dist/es/colors/utils/color-cache.js +14 -0
  34. package/dist/es/colors/utils/color-parser.d.ts +7 -1
  35. package/dist/es/colors/utils/color-parser.js +11 -2
  36. package/dist/es/input/Input.d.ts +4 -0
  37. package/dist/es/input/Input.js +9 -4
  38. package/dist/es/input-separator/InputSeparator.js +1 -1
  39. package/dist/es/maskedtextbox/MaskedTextBox.js +1 -1
  40. package/dist/es/messages/index.d.ts +45 -0
  41. package/dist/es/messages/index.js +46 -0
  42. package/dist/es/numerictextbox/NumericTextBox.js +4 -1
  43. package/dist/es/numerictextbox/interfaces/NumericTextBoxProps.d.ts +4 -0
  44. package/dist/es/package-metadata.js +1 -1
  45. package/dist/es/radiobutton/RadioButton.js +2 -2
  46. package/dist/es/radiobutton/RadioGroup.js +2 -2
  47. package/dist/es/range-slider/RangeSlider.js +2 -2
  48. package/dist/es/slider/Slider.js +3 -3
  49. package/dist/es/slider/SliderLabel.js +1 -1
  50. package/dist/es/switch/Switch.js +1 -1
  51. package/dist/es/textarea/TextArea.js +1 -1
  52. package/dist/npm/checkbox/Checkbox.js +3 -3
  53. package/dist/npm/colors/ColorContrastLabels.js +8 -4
  54. package/dist/npm/colors/ColorContrastSvg.js +65 -44
  55. package/dist/npm/colors/ColorGradient.d.ts +3 -1
  56. package/dist/npm/colors/ColorGradient.js +161 -56
  57. package/dist/npm/colors/ColorInput.d.ts +3 -0
  58. package/dist/npm/colors/ColorInput.js +82 -57
  59. package/dist/npm/colors/ColorPalette.js +31 -17
  60. package/dist/npm/colors/ColorPicker.d.ts +1 -0
  61. package/dist/npm/colors/ColorPicker.js +91 -71
  62. package/dist/npm/colors/FlatColorPicker.d.ts +41 -5
  63. package/dist/npm/colors/FlatColorPicker.js +307 -107
  64. package/dist/npm/colors/HexInput.d.ts +1 -0
  65. package/dist/npm/colors/HexInput.js +31 -11
  66. package/dist/npm/colors/Picker.js +19 -11
  67. package/dist/npm/colors/interfaces/ColorGradientChangeEvent.d.ts +4 -0
  68. package/dist/npm/colors/interfaces/ColorGradientProps.d.ts +12 -0
  69. package/dist/npm/colors/interfaces/ColorPaletteChangeEvent.d.ts +0 -3
  70. package/dist/npm/colors/interfaces/ColorPaletteProps.d.ts +8 -3
  71. package/dist/npm/colors/interfaces/ColorPickerActiveColorClick.d.ts +0 -3
  72. package/dist/npm/colors/interfaces/ColorPickerBlurEvent.d.ts +0 -3
  73. package/dist/npm/colors/interfaces/ColorPickerChangeEvent.d.ts +4 -3
  74. package/dist/npm/colors/interfaces/ColorPickerFocusEvent.d.ts +0 -3
  75. package/dist/npm/colors/interfaces/ColorPickerPaletteSettings.d.ts +0 -3
  76. package/dist/npm/colors/interfaces/ColorPickerPopupSettings.d.ts +0 -3
  77. package/dist/npm/colors/interfaces/ColorPickerProps.d.ts +30 -4
  78. package/dist/npm/colors/interfaces/ColorPickerView.d.ts +0 -3
  79. package/dist/npm/colors/interfaces/FlatColorPickerViewChangeEvent.d.ts +13 -0
  80. package/dist/npm/colors/interfaces/FlatColorPickerViewChangeEvent.js +2 -0
  81. package/dist/npm/colors/interfaces/PickerProps.d.ts +4 -0
  82. package/dist/npm/colors/utils/color-cache.d.ts +13 -0
  83. package/dist/npm/colors/utils/color-cache.js +15 -1
  84. package/dist/npm/colors/utils/color-parser.d.ts +7 -1
  85. package/dist/npm/colors/utils/color-parser.js +12 -3
  86. package/dist/npm/input/Input.d.ts +4 -0
  87. package/dist/npm/input/Input.js +9 -4
  88. package/dist/npm/input-separator/InputSeparator.js +1 -1
  89. package/dist/npm/maskedtextbox/MaskedTextBox.js +1 -1
  90. package/dist/npm/messages/index.d.ts +45 -0
  91. package/dist/npm/messages/index.js +47 -1
  92. package/dist/npm/numerictextbox/NumericTextBox.js +4 -1
  93. package/dist/npm/numerictextbox/interfaces/NumericTextBoxProps.d.ts +4 -0
  94. package/dist/npm/package-metadata.js +1 -1
  95. package/dist/npm/radiobutton/RadioButton.js +2 -2
  96. package/dist/npm/radiobutton/RadioGroup.js +2 -2
  97. package/dist/npm/range-slider/RangeSlider.js +2 -2
  98. package/dist/npm/slider/Slider.js +3 -3
  99. package/dist/npm/slider/SliderLabel.js +1 -1
  100. package/dist/npm/switch/Switch.js +1 -1
  101. package/dist/npm/textarea/TextArea.js +1 -1
  102. package/package.json +11 -11
@@ -9,7 +9,7 @@ var Vue = require("vue");
9
9
 
10
10
  var allVue = Vue;
11
11
  var gh = allVue.h;
12
- var isV3 = allVue.version[0] === '3';
12
+ var isV3 = allVue.version && allVue.version[0] === '3';
13
13
 
14
14
  var kendo_vue_common_1 = require("@progress/kendo-vue-common");
15
15
 
@@ -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
- return this.backgroundColor !== undefined ? this.backgroundColor : this.currentBgColor || color_parser_1.getColorFromHue(this.hsva.h);
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,24 +260,29 @@ 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
216
270
  }
217
- }, [renderRectangleDragHandle.call(_this2)])]), this.computedBgColor && !this.isFirstRender && h(ColorContrastSvg_1.ColorContrastSvg, {
271
+ }, [renderRectangleDragHandle.call(_this2)])]), this.backgroundColor && !this.isFirstRender && h(ColorContrastSvg_1.ColorContrastSvg, {
218
272
  metrics: this.gradientWrapper ? this.getGradientRectMetrics() : undefined,
219
273
  attrs: this.v3 ? undefined : {
220
274
  metrics: this.gradientWrapper ? this.getGradientRectMetrics() : undefined,
221
275
  hsva: this.hsva,
222
- backgroundColor: this.computedBgColor
276
+ backgroundColor: this.backgroundColor
223
277
  },
224
278
  hsva: this.hsva,
225
- backgroundColor: this.computedBgColor
279
+ backgroundColor: this.backgroundColor
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,77 +323,73 @@ 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
- "focus": this.onFocus,
295
- "blur": this.onBlur,
296
346
  "hexchange": this.onHexChange
297
347
  },
298
348
  hex: this.hex,
299
- onFocus: this.onFocus,
300
- onBlur: this.onBlur,
301
349
  onHexchange: this.onHexChange,
302
350
  opacity: this.$props.opacity,
303
- disabled: this.$props.disabled
304
- }), this.computedBgColor && h(ColorContrastLabels_1.ColorContrastLabels, {
305
- bgColor: color_parser_1.getRGBA(this.computedBgColor),
351
+ disabled: this.$props.disabled,
352
+ ref: 'colorInput'
353
+ }), this.backgroundColor && h(ColorContrastLabels_1.ColorContrastLabels, {
354
+ bgColor: color_parser_1.getRGBA(this.backgroundColor),
306
355
  attrs: this.v3 ? undefined : {
307
- bgColor: color_parser_1.getRGBA(this.computedBgColor),
356
+ bgColor: color_parser_1.getRGBA(this.backgroundColor),
308
357
  rgba: this.rgba
309
358
  },
310
359
  rgba: this.rgba
311
360
  })]);
312
361
  },
313
362
  methods: {
314
- // getDerivedStateFromProps(props: ColorGradientProps, state: ColorGradientState) {
315
- // if (props.value && !state.isFirstRender) {
316
- // // The component is in controlled mode.
317
- // return ColorGradientWithoutContext.getStateFromValue(props.value, state.guid);
318
- // }
319
- // return null;
320
- // },
321
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
+
322
370
  this.$emit('keydown', e);
323
371
  },
324
372
  onHexChange: function onHexChange(hex, value, event) {
373
+ var rgba = color_parser_1.getRGBA(value);
374
+
325
375
  if (this.isUncontrolled) {
326
376
  var hsva = color_parser_1.getHSV(value);
327
377
  this.currentHsva = hsva;
328
378
  this.currentBgColor = color_parser_1.getColorFromHue(hsva.h);
329
- this.currentRgba = color_parser_1.getRGBA(value);
379
+ this.currentRgba = rgba;
330
380
  this.currentHex = hex;
331
381
  } else {
332
382
  color_cache_1.cacheHex(this.guid, value, hex);
333
383
  }
334
384
 
335
- this.dispatchChangeEvent(value, event, event.nativeEvent);
385
+ this.dispatchChangeEvent(value, event.event, hex, value);
336
386
  },
337
387
  onRgbaChange: function onRgbaChange(rgba, event) {
338
388
  var value = color_parser_1.getColorFromRGBA(rgba);
389
+ var hex = color_parser_1.parseColor(value, 'hex', this.opacity);
339
390
 
340
391
  if (this.isUncontrolled) {
341
392
  var hsva = color_parser_1.getHSV(value);
342
- var hex = color_parser_1.parseColor(value, 'hex');
343
393
  this.currentHsva = hsva;
344
394
  this.currentBgColor = color_parser_1.getColorFromHue(hsva.h);
345
395
  this.currentRgba = rgba;
@@ -348,7 +398,7 @@ var ColorGradientVue2 = {
348
398
  color_cache_1.cacheRgba(this.guid, value, rgba);
349
399
  }
350
400
 
351
- this.dispatchChangeEvent(value, event.event);
401
+ this.dispatchChangeEvent(value, event.event, hex, value);
352
402
  },
353
403
  onAlphaSliderChange: function onAlphaSliderChange(event) {
354
404
  this.handleHsvaChange(Object.assign({}, this.hsva, {
@@ -368,8 +418,53 @@ var ColorGradientVue2 = {
368
418
  this.gradientWrapper.classList.remove('k-dragging');
369
419
  },
370
420
  onGradientWrapperClick: function onGradientWrapperClick(event) {
421
+ this.firstFocusable = kendo_vue_common_1.getRef(this, 'draghandle');
422
+ this.firstFocusable.focus();
371
423
  this.changePosition(event);
372
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
+ },
373
468
  changePosition: function changePosition(event) {
374
469
  var gradientRectMetrics = this.getGradientRectMetrics();
375
470
  var deltaX = event.clientX - gradientRectMetrics.left;
@@ -384,9 +479,10 @@ var ColorGradientVue2 = {
384
479
  },
385
480
  handleHsvaChange: function handleHsvaChange(hsva, event) {
386
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');
387
484
 
388
485
  if (this.isUncontrolled) {
389
- var hex = color_parser_1.parseColor(value, 'hex');
390
486
  this.currentHsva = hsva;
391
487
  this.currentBgColor = color_parser_1.getColorFromHue(hsva.h);
392
488
  this.currentRgba = color_parser_1.getRGBA(value);
@@ -395,14 +491,18 @@ var ColorGradientVue2 = {
395
491
  color_cache_1.cacheHsva(this.guid, value, hsva);
396
492
  }
397
493
 
398
- this.dispatchChangeEvent(value, event);
494
+ this.dispatchChangeEvent(value, event, hex, rgba);
399
495
  },
400
- dispatchChangeEvent: function dispatchChangeEvent(value, event) {
496
+ dispatchChangeEvent: function dispatchChangeEvent(value, event, hex, rgbaValue) {
401
497
  this.currentValue = value;
498
+ this.$emit('changemodel', hex);
499
+ this.$emit('update:modelRgbaValue', rgbaValue);
500
+ this.$emit('update:modelValue', hex);
402
501
  this.$emit('change', {
403
502
  event: event,
404
503
  target: this,
405
- value: value
504
+ value: hex,
505
+ rgbaValue: rgbaValue
406
506
  });
407
507
  },
408
508
  onFocus: function onFocus(event) {
@@ -436,7 +536,12 @@ var ColorGradientVue2 = {
436
536
  };
437
537
  },
438
538
  focus: function focus() {
439
- 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);
440
545
  }
441
546
  }
442
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