@progress/kendo-vue-layout 3.7.4-dev.202212300853 → 3.7.4-dev.202301120847

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 (56) hide show
  1. package/dist/cdn/js/kendo-vue-layout.js +1 -1
  2. package/dist/es/bottomnavigation/BottomNavigationItem.js +2 -2
  3. package/dist/es/drawer/DrawerItem.js +17 -7
  4. package/dist/es/drawer/DrawerNavigation.js +2 -2
  5. package/dist/es/menu/components/MenuItemArrow.js +9 -5
  6. package/dist/es/messages/main.d.ts +15 -0
  7. package/dist/es/messages/main.js +16 -0
  8. package/dist/es/package-metadata.js +1 -1
  9. package/dist/es/panelbar/PanelBarItem.js +5 -1
  10. package/dist/es/splitter/SplitterBar.js +49 -12
  11. package/dist/es/splitter/SplitterPane.js +5 -1
  12. package/dist/es/stepper/Step.js +4 -4
  13. package/dist/es/stepper/Stepper.js +11 -0
  14. package/dist/es/stepper/messages/main.d.ts +5 -0
  15. package/dist/es/stepper/messages/main.js +5 -0
  16. package/dist/es/tilelayout/Tile.d.ts +2 -0
  17. package/dist/es/tilelayout/Tile.js +25 -3
  18. package/dist/es/tilelayout/TileLayout.js +32 -9
  19. package/dist/es/tilelayout/interfaces/main.d.ts +8 -0
  20. package/dist/esm/bottomnavigation/BottomNavigationItem.js +2 -2
  21. package/dist/esm/drawer/DrawerItem.js +17 -7
  22. package/dist/esm/drawer/DrawerNavigation.js +2 -2
  23. package/dist/esm/menu/components/MenuItemArrow.js +9 -5
  24. package/dist/esm/messages/main.d.ts +15 -0
  25. package/dist/esm/messages/main.js +16 -0
  26. package/dist/esm/package-metadata.js +1 -1
  27. package/dist/esm/panelbar/PanelBarItem.js +5 -1
  28. package/dist/esm/splitter/SplitterBar.js +49 -12
  29. package/dist/esm/splitter/SplitterPane.js +5 -1
  30. package/dist/esm/stepper/Step.js +4 -4
  31. package/dist/esm/stepper/Stepper.js +11 -0
  32. package/dist/esm/stepper/messages/main.d.ts +5 -0
  33. package/dist/esm/stepper/messages/main.js +5 -0
  34. package/dist/esm/tilelayout/Tile.d.ts +2 -0
  35. package/dist/esm/tilelayout/Tile.js +25 -3
  36. package/dist/esm/tilelayout/TileLayout.js +32 -9
  37. package/dist/esm/tilelayout/interfaces/main.d.ts +8 -0
  38. package/dist/npm/bottomnavigation/BottomNavigationItem.js +2 -2
  39. package/dist/npm/drawer/DrawerItem.js +17 -7
  40. package/dist/npm/drawer/DrawerNavigation.js +2 -2
  41. package/dist/npm/menu/components/MenuItemArrow.js +9 -5
  42. package/dist/npm/messages/main.d.ts +15 -0
  43. package/dist/npm/messages/main.js +19 -0
  44. package/dist/npm/package-metadata.js +1 -1
  45. package/dist/npm/panelbar/PanelBarItem.js +5 -1
  46. package/dist/npm/splitter/SplitterBar.js +49 -12
  47. package/dist/npm/splitter/SplitterPane.js +5 -1
  48. package/dist/npm/stepper/Step.js +4 -4
  49. package/dist/npm/stepper/Stepper.js +11 -0
  50. package/dist/npm/stepper/messages/main.d.ts +5 -0
  51. package/dist/npm/stepper/messages/main.js +6 -1
  52. package/dist/npm/tilelayout/Tile.d.ts +2 -0
  53. package/dist/npm/tilelayout/Tile.js +25 -3
  54. package/dist/npm/tilelayout/TileLayout.js +31 -8
  55. package/dist/npm/tilelayout/interfaces/main.d.ts +8 -0
  56. package/package.json +17 -15
@@ -16,6 +16,8 @@ var allVue = Vue;
16
16
  var gh = allVue.h;
17
17
  var isV3 = allVue.version && allVue.version[0] === '3';
18
18
  import { getTabIndex, getDefaultSlots, Icon } from '@progress/kendo-vue-common';
19
+ import { provideLocalizationService } from '@progress/kendo-vue-intl';
20
+ import { separatorAriaMessage, messages } from '../messages/main.js';
19
21
  /**
20
22
  * @hidden
21
23
  */
@@ -37,6 +39,9 @@ var DrawerItemVue2 = {
37
39
  inject: {
38
40
  kendoDrawer: {
39
41
  default: null
42
+ },
43
+ kendoLocalizationService: {
44
+ default: null
40
45
  }
41
46
  },
42
47
  computed: {
@@ -73,22 +78,27 @@ var DrawerItemVue2 = {
73
78
  expanded = _b.expanded,
74
79
  mini = _b.mini,
75
80
  item = _b.item;
81
+ var ariaLabelSeparator = provideLocalizationService(this).toLanguageString(separatorAriaMessage, messages[separatorAriaMessage]);
76
82
  return separator ? h("li", {
77
83
  "class": 'k-drawer-item k-drawer-separator',
78
- role: "presentation",
84
+ role: "separator",
79
85
  attrs: this.v3 ? undefined : {
80
- role: "presentation"
81
- }
86
+ role: "separator",
87
+ "aria-label": ariaLabelSeparator
88
+ },
89
+ "aria-label": ariaLabelSeparator
82
90
  }) : h("li", {
83
91
  "class": this.itemClassNames,
84
- role: "option",
92
+ role: "menuitem",
85
93
  attrs: this.v3 ? undefined : {
86
- role: "option",
87
- "aria-selected": selected,
94
+ role: "menuitem",
95
+ "aria-label": text,
96
+ "aria-current": selected,
88
97
  "aria-disabled": disabled,
89
98
  tabindex: getTabIndex(tabIndex, disabled)
90
99
  },
91
- "aria-selected": selected,
100
+ "aria-label": text,
101
+ "aria-current": selected,
92
102
  "aria-disabled": disabled,
93
103
  onClick: this.handleClick,
94
104
  on: this.v3 ? undefined : {
@@ -125,9 +125,9 @@ var DrawerNavigationVue2 = {
125
125
  var drawerAnimation = expanded ? mode === 'push' ? expandPush : expandOverlay : mode === 'push' ? collapsePush : dir === 'ltr' && position === 'start' || dir === 'rtl' && position === 'end' ? mini ? collapseOverlayMini : collapseOverlay : mini ? collapseOverlayMini : collapseOverlayRtl;
126
126
  var drawerItems = items && h("ul", {
127
127
  "class": 'k-drawer-items',
128
- role: "listbox",
128
+ role: "menu",
129
129
  attrs: this.v3 ? undefined : {
130
- role: "listbox",
130
+ role: "menu",
131
131
  title: "drawer-list",
132
132
  "aria-expanded": expanded
133
133
  },
@@ -3,7 +3,6 @@ import * as Vue from 'vue';
3
3
  var allVue = Vue;
4
4
  var gh = allVue.h;
5
5
  var isV3 = allVue.version && allVue.version[0] === '3';
6
- import { Icon } from '@progress/kendo-vue-common';
7
6
  import { getChildrenPosition } from '../utils/misc.js';
8
7
  /**
9
8
  * @hidden
@@ -37,11 +36,16 @@ var MenuItemArrowVue2 = {
37
36
  render: function render(createElement) {
38
37
  var h = gh || createElement;
39
38
  return h("span", {
40
- "class": "k-menu-expand-arrow"
41
- }, [h(Icon, {
42
- name: this.getArrowName(),
39
+ "class": "k-menu-expand-arrow",
40
+ "aria-hidden": "true",
43
41
  attrs: this.v3 ? undefined : {
44
- name: this.getArrowName()
42
+ "aria-hidden": "true"
43
+ }
44
+ }, [h("span", {
45
+ "class": this.getArrowName(),
46
+ role: "presentation",
47
+ attrs: this.v3 ? undefined : {
48
+ role: "presentation"
45
49
  }
46
50
  })]);
47
51
  },
@@ -0,0 +1,15 @@
1
+ /**
2
+ * @hidden
3
+ */
4
+ export declare const separatorAriaMessage = "drawer.separatorAriaMessage";
5
+ /**
6
+ * @hidden
7
+ */
8
+ export declare const splitterPaneLabel = "splitter.splitterPaneLabel";
9
+ /**
10
+ * @hidden
11
+ */
12
+ export declare const messages: {
13
+ "drawer.separatorAriaMessage": string;
14
+ "splitter.splitterPaneLabel": string;
15
+ };
@@ -0,0 +1,16 @@
1
+ var _a;
2
+ /**
3
+ * @hidden
4
+ */
5
+ export var separatorAriaMessage = 'drawer.separatorAriaMessage';
6
+ /**
7
+ * @hidden
8
+ */
9
+ export var splitterPaneLabel = 'splitter.splitterPaneLabel';
10
+ /**
11
+ * @hidden
12
+ */
13
+ export var messages = (_a = {},
14
+ _a[separatorAriaMessage] = 'Separator',
15
+ _a[splitterPaneLabel] = 'Splitter pane',
16
+ _a);
@@ -5,7 +5,7 @@ export var packageMetadata = {
5
5
  name: '@progress/kendo-vue-layout',
6
6
  productName: 'Kendo UI for Vue',
7
7
  productCodes: ['KENDOUIVUE', 'KENDOUICOMPLETE'],
8
- publishDate: 1672389706,
8
+ publishDate: 1673512228,
9
9
  version: '',
10
10
  licensingDocsUrl: 'https://www.telerik.com/kendo-vue-ui/my-license/?utm_medium=product&utm_source=kendovue&utm_campaign=kendo-ui-vue-purchase-license-keys-warning'
11
11
  };
@@ -16,6 +16,7 @@ var allVue = Vue;
16
16
  var gh = allVue.h;
17
17
  var isV3 = allVue.version && allVue.version[0] === '3';
18
18
  import { classNames, getTemplate, Icon } from '@progress/kendo-vue-common';
19
+ import { chevronUpIcon, chevronDownIcon } from '@progress/kendo-svg-icons';
19
20
  import { PanelBarGroup } from './PanelBarGroup.js';
20
21
  /**
21
22
  * @hidden
@@ -95,6 +96,7 @@ var PanelBarItemVue2 = {
95
96
  }, headerClassName);
96
97
  var panelBarItemArrowClassName = classNames('k-panelbar-toggle', (_a = {}, _a['k-panelbar-collapse'] = expanded && hasContent, _a['k-panelbar-expand'] = !expanded && hasContent, _a));
97
98
  var itemIconName = expanded ? 'chevron-up' : 'chevron-down';
99
+ var itemIconSVG = expanded ? chevronUpIcon : chevronDownIcon;
98
100
  var iconElement = function iconElement() {
99
101
  if (this.imageUrl) {
100
102
  return h("img", {
@@ -125,8 +127,10 @@ var PanelBarItemVue2 = {
125
127
  var arrow = !disabled && (items || content) ? h(Icon, {
126
128
  name: itemIconName,
127
129
  attrs: this.v3 ? undefined : {
128
- name: itemIconName
130
+ name: itemIconName,
131
+ icon: itemIconSVG
129
132
  },
133
+ icon: itemIconSVG,
130
134
  "class": panelBarItemArrowClassName
131
135
  }) : null;
132
136
  var group = items || content ? h(PanelBarGroup, {
@@ -4,6 +4,9 @@ var allVue = Vue;
4
4
  var gh = allVue.h;
5
5
  var isV3 = allVue.version && allVue.version[0] === '3';
6
6
  import { classNames, Draggable, Icon, Keys } from '@progress/kendo-vue-common';
7
+ import { provideLocalizationService } from '@progress/kendo-vue-intl';
8
+ import { splitterPaneLabel, messages } from '../messages/main.js';
9
+ import { caretAltDownIcon, caretAltLeftIcon, caretAltRightIcon, caretAltUpIcon } from '@progress/kendo-svg-icons';
7
10
  /**
8
11
  * @hidden
9
12
  */
@@ -51,6 +54,11 @@ var SplitterBarVue2 = {
51
54
  return this.$props.orientation === 'horizontal';
52
55
  }
53
56
  },
57
+ inject: {
58
+ kendoLocalizationService: {
59
+ default: null
60
+ }
61
+ },
54
62
  data: function data() {
55
63
  return {
56
64
  focused: false
@@ -79,7 +87,10 @@ var SplitterBarVue2 = {
79
87
  var isHorizontal = this.isHorizontal;
80
88
  var barClasses = classNames('k-splitbar', (_a = {}, _a['k-focus'] = this.focused, _a['k-splitbar-horizontal'] = isHorizontal, _a['k-splitbar-vertical'] = !isHorizontal, _a['k-splitbar-draggable-horizontal'] = isHorizontal && isDraggable, _a['k-splitbar-draggable-vertical'] = !isHorizontal && isDraggable, _a['k-splitbar-static-horizontal'] = isHorizontal && isStatic, _a['k-splitbar-static-vertical'] = !isHorizontal && isStatic, _a));
81
89
  var previousArrowName = this.previousArrowName(isHorizontal);
90
+ var previousArrowSVG = this.previousArrowSVG(isHorizontal);
82
91
  var nextArrowName = this.nextArrowName(isHorizontal);
92
+ var nextArrowSVG = this.nextArrowSVG(isHorizontal);
93
+ var paneLabel = provideLocalizationService(this).toLanguageString(splitterPaneLabel, messages[splitterPaneLabel]);
83
94
  return (
84
95
  // @ts-ignore function children
85
96
  h(Draggable, {
@@ -109,7 +120,9 @@ var SplitterBarVue2 = {
109
120
  tabindex: isStatic ? -1 : 0,
110
121
  attrs: _this2.v3 ? undefined : {
111
122
  tabindex: isStatic ? -1 : 0,
112
- role: 'separator'
123
+ role: 'separator',
124
+ ariaLabel: paneLabel,
125
+ ariaOrientation: _this2.isHorizontal ? 'vertical' : 'horizontal'
113
126
  },
114
127
  role: 'separator',
115
128
  "class": barClasses,
@@ -125,7 +138,9 @@ var SplitterBarVue2 = {
125
138
  },
126
139
  onFocusout: _this2.onBlur,
127
140
  onDblclick: _this2.onToggle,
128
- onKeydown: _this2.onKeyDown
141
+ onKeydown: _this2.onKeyDown,
142
+ ariaLabel: paneLabel,
143
+ ariaOrientation: _this2.isHorizontal ? 'vertical' : 'horizontal'
129
144
  }, [_this2.prev.collapsible && h("span", {
130
145
  "class": 'k-collapse-prev',
131
146
  onClick: _this2.onPrevToggle,
@@ -135,8 +150,10 @@ var SplitterBarVue2 = {
135
150
  }, [h(Icon, {
136
151
  name: previousArrowName,
137
152
  attrs: _this2.v3 ? undefined : {
138
- name: previousArrowName
139
- }
153
+ name: previousArrowName,
154
+ icon: previousArrowSVG
155
+ },
156
+ icon: previousArrowSVG
140
157
  })]), h("div", {
141
158
  "class": 'k-resize-handle'
142
159
  }), _this2.next.collapsible && h("span", {
@@ -148,14 +165,18 @@ var SplitterBarVue2 = {
148
165
  }, [h(Icon, {
149
166
  name: nextArrowName,
150
167
  attrs: _this2.v3 ? undefined : {
151
- name: nextArrowName
152
- }
168
+ name: nextArrowName,
169
+ icon: nextArrowSVG
170
+ },
171
+ icon: nextArrowSVG
153
172
  })])])];
154
173
  } : [h("div", {
155
174
  tabindex: isStatic ? -1 : 0,
156
175
  attrs: _this2.v3 ? undefined : {
157
176
  tabindex: isStatic ? -1 : 0,
158
- role: 'separator'
177
+ role: 'separator',
178
+ ariaLabel: paneLabel,
179
+ ariaOrientation: _this2.isHorizontal ? 'vertical' : 'horizontal'
159
180
  },
160
181
  role: 'separator',
161
182
  "class": barClasses,
@@ -171,7 +192,9 @@ var SplitterBarVue2 = {
171
192
  },
172
193
  onFocusout: _this2.onBlur,
173
194
  onDblclick: _this2.onToggle,
174
- onKeydown: _this2.onKeyDown
195
+ onKeydown: _this2.onKeyDown,
196
+ ariaLabel: paneLabel,
197
+ ariaOrientation: _this2.isHorizontal ? 'vertical' : 'horizontal'
175
198
  }, [_this2.prev.collapsible && h("span", {
176
199
  "class": 'k-collapse-prev',
177
200
  onClick: _this2.onPrevToggle,
@@ -181,8 +204,10 @@ var SplitterBarVue2 = {
181
204
  }, [h(Icon, {
182
205
  name: previousArrowName,
183
206
  attrs: _this2.v3 ? undefined : {
184
- name: previousArrowName
185
- }
207
+ name: previousArrowName,
208
+ icon: previousArrowSVG
209
+ },
210
+ icon: previousArrowSVG
186
211
  })]), h("div", {
187
212
  "class": 'k-resize-handle'
188
213
  }), _this2.next.collapsible && h("span", {
@@ -194,8 +219,10 @@ var SplitterBarVue2 = {
194
219
  }, [h(Icon, {
195
220
  name: nextArrowName,
196
221
  attrs: _this2.v3 ? undefined : {
197
- name: nextArrowName
198
- }
222
+ name: nextArrowName,
223
+ icon: nextArrowSVG
224
+ },
225
+ icon: nextArrowSVG
199
226
  })])])])
200
227
  );
201
228
  },
@@ -275,10 +302,20 @@ var SplitterBarVue2 = {
275
302
  var isCollapsed = prev.collapsed;
276
303
  return isHorizontal && !isCollapsed ? 'caret-alt-left' : isHorizontal && isCollapsed ? 'caret-alt-right' : !isHorizontal && !isCollapsed ? 'caret-alt-up' : !isHorizontal && isCollapsed ? 'caret-alt-down' : '';
277
304
  },
305
+ previousArrowSVG: function previousArrowSVG(isHorizontal) {
306
+ var prev = this.$props.prev;
307
+ var isCollapsed = prev.collapsed;
308
+ return isHorizontal && !isCollapsed ? caretAltLeftIcon : isHorizontal && isCollapsed ? caretAltRightIcon : !isHorizontal && !isCollapsed ? caretAltUpIcon : !isHorizontal && isCollapsed ? caretAltDownIcon : undefined;
309
+ },
278
310
  nextArrowName: function nextArrowName(isHorizontal) {
279
311
  var next = this.$props.next;
280
312
  var isCollapsed = next.collapsed;
281
313
  return isHorizontal && !isCollapsed ? 'caret-alt-right' : isHorizontal && isCollapsed ? 'caret-alt-left' : !isHorizontal && !isCollapsed ? 'caret-alt-down' : !isHorizontal && isCollapsed ? 'caret-alt-up' : '';
314
+ },
315
+ nextArrowSVG: function nextArrowSVG(isHorizontal) {
316
+ var next = this.$props.next;
317
+ var isCollapsed = next.collapsed;
318
+ return isHorizontal && !isCollapsed ? caretAltRightIcon : isHorizontal && isCollapsed ? caretAltLeftIcon : !isHorizontal && !isCollapsed ? caretAltDownIcon : !isHorizontal && isCollapsed ? caretAltUpIcon : undefined;
282
319
  }
283
320
  }
284
321
  };
@@ -63,7 +63,11 @@ var SplitterPaneVue2 = {
63
63
  });
64
64
  return h("div", {
65
65
  style: style,
66
- "class": paneClasses
66
+ "class": paneClasses,
67
+ role: 'group',
68
+ attrs: this.v3 ? undefined : {
69
+ role: 'group'
70
+ }
67
71
  }, [!collapsed || keepMounted ? content : undefined, overlay ? h("div", {
68
72
  "class": 'k-splitter-overlay k-overlay'
69
73
  }) : undefined]);
@@ -162,8 +162,8 @@ var StepVue2 = {
162
162
  title: label ? label : undefined,
163
163
  attrs: this.v3 ? undefined : {
164
164
  title: label ? label : undefined,
165
- tabindex: focused ? tabIndex : -1,
166
- "aria-current": current ? 'step' : undefined,
165
+ tabIndex: tabIndex ? tabIndex : current ? 0 : -1,
166
+ "aria-current": current ? true : undefined,
167
167
  "aria-disabled": disabled || !allowClick || undefined,
168
168
  "aria-invalid": isValid !== undefined && !isValid || undefined
169
169
  },
@@ -173,8 +173,8 @@ var StepVue2 = {
173
173
  "focusin": this.handleFocus
174
174
  },
175
175
  onFocusin: this.handleFocus,
176
- tabindex: focused ? tabIndex : -1,
177
- "aria-current": current ? 'step' : undefined,
176
+ tabIndex: tabIndex ? tabIndex : current ? 0 : -1,
177
+ "aria-current": current ? true : undefined,
178
178
  "aria-disabled": disabled || !allowClick || undefined,
179
179
  "aria-invalid": isValid !== undefined && !isValid || undefined
180
180
  }, [!item ? [stepIndicator.call(this), stepLabel.call(this)] : defaultSlots])]);
@@ -21,6 +21,8 @@ import { ProgressBar } from '@progress/kendo-vue-progressbars';
21
21
  import { DEFAULT_ANIMATION_DURATION, NO_ANIMATION } from './contants.js';
22
22
  import { validatePackage, isRtl, templateRendering, getListeners, getTemplate } from '@progress/kendo-vue-common';
23
23
  import { packageMetadata } from '../package-metadata.js';
24
+ import { messages, ariaLabel } from './messages/main.js';
25
+ import { provideLocalizationService } from '@progress/kendo-vue-intl';
24
26
  /**
25
27
  * @hidden
26
28
  */
@@ -29,6 +31,11 @@ var StepperVue2 = {
29
31
  model: {
30
32
  event: 'changemodel'
31
33
  },
34
+ inject: {
35
+ kendoLocalizationService: {
36
+ default: null
37
+ }
38
+ },
32
39
  props: {
33
40
  animationDuration: {
34
41
  type: [Boolean, Number],
@@ -150,6 +157,8 @@ var StepperVue2 = {
150
157
  orientation = _a.orientation;
151
158
  var value = this.computedValue;
152
159
  var animation = typeof animationDuration === 'number' ? animationDuration : animationDuration !== false ? DEFAULT_ANIMATION_DURATION : NO_ANIMATION;
160
+ var localizationService = provideLocalizationService(this);
161
+ var progressbarAriaLabelMessage = localizationService.toLanguageString(ariaLabel, messages[ariaLabel]);
153
162
  var steps = items && items.map(function (element, index) {
154
163
  var step = this.$props.item ? templateRendering.call(this, this.$props.item, getListeners.call(this)) : undefined;
155
164
  var stepDefaultRendering =
@@ -254,6 +263,7 @@ var StepperVue2 = {
254
263
  duration: animation
255
264
  },
256
265
  "aria-hidden": true,
266
+ "aria-label": progressbarAriaLabelMessage,
257
267
  max: this.numOfSteps - 1,
258
268
  labelVisible: false,
259
269
  orientation: orientation,
@@ -263,6 +273,7 @@ var StepperVue2 = {
263
273
  tabIndex: -1
264
274
  },
265
275
  "aria-hidden": true,
276
+ "aria-label": progressbarAriaLabelMessage,
266
277
  max: this.numOfSteps - 1,
267
278
  labelVisible: false,
268
279
  orientation: orientation,
@@ -2,9 +2,14 @@
2
2
  * @hidden
3
3
  */
4
4
  export declare const optionalText = "stepper.optionalText";
5
+ /**
6
+ * @hidden
7
+ */
8
+ export declare const ariaLabel = "stepper.ariaLabel";
5
9
  /**
6
10
  * @hidden
7
11
  */
8
12
  export declare const messages: {
9
13
  "stepper.optionalText": string;
14
+ "stepper.ariaLabel": string;
10
15
  };
@@ -3,9 +3,14 @@ var _a;
3
3
  * @hidden
4
4
  */
5
5
  export var optionalText = 'stepper.optionalText';
6
+ /**
7
+ * @hidden
8
+ */
9
+ export var ariaLabel = 'stepper.ariaLabel';
6
10
  /**
7
11
  * @hidden
8
12
  */
9
13
  export var messages = (_a = {},
10
14
  _a[optionalText] = '(Optional)',
15
+ _a[ariaLabel] = 'Progressbar',
11
16
  _a);
@@ -12,6 +12,8 @@ export interface TileProps extends TileLayoutItem {
12
12
  index: number;
13
13
  defaultPosition: TileStrictPosition;
14
14
  ignoreDrag?: (event: any) => boolean;
15
+ tabIndex: number;
16
+ ariaDescribedBy: string;
15
17
  }
16
18
  /**
17
19
  * @hidden
@@ -46,7 +46,12 @@ var TileVue2 = {
46
46
  reorderable: {
47
47
  type: Boolean,
48
48
  default: true
49
- }
49
+ },
50
+ tabIndex: {
51
+ type: Number,
52
+ default: 0
53
+ },
54
+ ariaDescribedBy: String
50
55
  },
51
56
  created: function created() {
52
57
  this.oldSize = {};
@@ -79,7 +84,8 @@ var TileVue2 = {
79
84
  },
80
85
  data: function data() {
81
86
  return {
82
- rtl: false
87
+ rtl: false,
88
+ grabbed: false
83
89
  };
84
90
  },
85
91
  mounted: function mounted() {
@@ -192,7 +198,21 @@ var TileVue2 = {
192
198
  "class": this.wrapperClass,
193
199
  style: {
194
200
  height: '100%'
195
- }
201
+ },
202
+ role: 'listitem',
203
+ attrs: this.v3 ? undefined : {
204
+ role: 'listitem',
205
+ tabIndex: this.$props.tabIndex,
206
+ "aria-keyshortcuts": 'Enter',
207
+ "aria-dropeffect": 'execute',
208
+ "aria-grabbed": this.grabbed ? true : false,
209
+ "aria-ariaDescribedBy": this.$props.ariaDescribedBy
210
+ },
211
+ tabIndex: this.$props.tabIndex,
212
+ "aria-keyshortcuts": 'Enter',
213
+ "aria-dropeffect": 'execute',
214
+ "aria-grabbed": this.grabbed ? true : false,
215
+ "aria-ariaDescribedBy": this.$props.ariaDescribedBy
196
216
  }, [defaultSlots, resizable && resizable !== 'vertical' && h(ResizeHandlers, {
197
217
  onPress: this.handlePress,
198
218
  on: this.v3 ? undefined : {
@@ -318,6 +338,7 @@ var TileVue2 = {
318
338
  }
319
339
  dragElement.classList.remove('k-cursor-grab');
320
340
  dragElement.classList.add('k-cursor-grabbing');
341
+ this.grabbed = true;
321
342
  var rec = dragElement.getBoundingClientRect();
322
343
  this.pressXY = {
323
344
  x: e.clientX,
@@ -386,6 +407,7 @@ var TileVue2 = {
386
407
  dragElement.style.height = '100%';
387
408
  dragElement.classList.remove('k-cursor-grabbing');
388
409
  dragElement.classList.add('k-cursor-grab');
410
+ this.grabbed = false;
389
411
  }
390
412
  }
391
413
  }
@@ -3,7 +3,7 @@ import * as Vue from 'vue';
3
3
  var allVue = Vue;
4
4
  var gh = allVue.h;
5
5
  var isV3 = allVue.version && allVue.version[0] === '3';
6
- import { getListeners, getTemplate, getter, templateRendering, validatePackage } from '@progress/kendo-vue-common';
6
+ import { getListeners, getTemplate, getter, templateRendering, validatePackage, guid } from '@progress/kendo-vue-common';
7
7
  import { packageMetadata } from '../package-metadata.js';
8
8
  import { Tile } from './Tile.js';
9
9
  /**
@@ -114,12 +114,16 @@ var TileLayoutVue2 = {
114
114
  dir: this.$props.dir,
115
115
  attrs: this.v3 ? undefined : {
116
116
  dir: this.$props.dir,
117
- id: this.$props.id
117
+ id: this.$props.id,
118
+ role: 'list'
118
119
  },
119
120
  "class": this.wrapperClass,
120
121
  style: tileLayoutStyles,
121
- id: this.$props.id
122
+ id: this.$props.id,
123
+ role: 'list'
122
124
  }, [items.map(function (tile, index) {
125
+ var _this = this;
126
+ var tileTitleId = tile && tile.id || guid();
123
127
  var item = templateRendering.call(this, tile.item, getListeners.call(this));
124
128
  var itemContent = getTemplate.call(this, {
125
129
  h: h,
@@ -130,13 +134,20 @@ var TileLayoutVue2 = {
130
134
  var headerContent = getTemplate.call(this, {
131
135
  h: h,
132
136
  template: header,
133
- defaultRendering: null
137
+ defaultRendering: null,
138
+ additionalProps: {
139
+ id: tileTitleId,
140
+ headerText: tile.headerText
141
+ }
134
142
  });
135
143
  var body = templateRendering.call(this, tile.body, getListeners.call(this));
136
144
  var bodyContent = getTemplate.call(this, {
137
145
  h: h,
138
146
  template: body,
139
- defaultRendering: null
147
+ defaultRendering: null,
148
+ additionalProps: {
149
+ bodyText: tile.bodyText
150
+ }
140
151
  });
141
152
  return (
142
153
  // @ts-ignore function children
@@ -154,7 +165,9 @@ var TileLayoutVue2 = {
154
165
  reorderable: tile.reorderable,
155
166
  hintClass: tile.hintClass,
156
167
  hintStyle: tile.hintStyle,
157
- ignoreDrag: this.$props.ignoreDrag
168
+ ignoreDrag: this.$props.ignoreDrag,
169
+ "aria-describedby": tileTitleId,
170
+ "tab-index": tile.tabIndex
158
171
  },
159
172
  index: index,
160
173
  resizable: tile.resizable,
@@ -163,19 +176,29 @@ var TileLayoutVue2 = {
163
176
  "class": tile.class,
164
177
  hintClass: tile.hintClass,
165
178
  hintStyle: tile.hintStyle,
166
- ignoreDrag: this.$props.ignoreDrag
179
+ ignoreDrag: this.$props.ignoreDrag,
180
+ "aria-describedby": tileTitleId,
181
+ "tab-index": tile.tabIndex
167
182
  }, this.v3 ? function () {
168
183
  return [tile.item ? itemContent : [h("div", {
169
184
  "class": "k-tilelayout-item-header k-card-header"
170
185
  }, [tile.header ? headerContent : h("h5", {
171
- "class": 'k-card-title'
186
+ "class": 'k-card-title',
187
+ id: tileTitleId,
188
+ attrs: _this.v3 ? undefined : {
189
+ id: tileTitleId
190
+ }
172
191
  }, [tile.headerText])]), h("div", {
173
192
  "class": 'k-tilelayout-item-body k-card-body'
174
193
  }, [tile.body ? bodyContent : tile.bodyText])]];
175
194
  } : [tile.item ? itemContent : [h("div", {
176
195
  "class": "k-tilelayout-item-header k-card-header"
177
196
  }, [tile.header ? headerContent : h("h5", {
178
- "class": 'k-card-title'
197
+ "class": 'k-card-title',
198
+ id: tileTitleId,
199
+ attrs: _this.v3 ? undefined : {
200
+ id: tileTitleId
201
+ }
179
202
  }, [tile.headerText])]), h("div", {
180
203
  "class": 'k-tilelayout-item-body k-card-body'
181
204
  }, [tile.body ? bodyContent : tile.bodyText])]])
@@ -48,6 +48,10 @@ export interface TileLayoutItem {
48
48
  * ([see example]({% slug tiles_tilelayout %}#toc-custom-rendering)).
49
49
  */
50
50
  item?: any;
51
+ /**
52
+ * Specifies the id of each Tile if needed to be user-defined. By default the id is automatically generated.
53
+ */
54
+ id?: any;
51
55
  /**
52
56
  * Specifies if the user is allowed to resize the TileLayoutItem and in which direction
53
57
  * ([see example]({% slug tiles_tilelayout %}#toc-resizing)).
@@ -60,6 +64,10 @@ export interface TileLayoutItem {
60
64
  * If `reorderable` is not specified, the dragging functionality of the TileLayoutItem will be enabled.
61
65
  */
62
66
  reorderable?: boolean;
67
+ /**
68
+ * Specifies if the tabIndex of each TileLayout tile if the scenario requires it. Defaults to `0`.
69
+ */
70
+ tabIndex?: number;
63
71
  }
64
72
  /**
65
73
  * Specifies the position of each tile.
@@ -86,7 +86,7 @@ var BottomNavigationItemVue2 = {
86
86
  role: 'link',
87
87
  id: id,
88
88
  tabIndex: tabIndex,
89
- "aria-selected": selected,
89
+ "aria-current": selected,
90
90
  "aria-disabled": disabled
91
91
  },
92
92
  id: id,
@@ -97,7 +97,7 @@ var BottomNavigationItemVue2 = {
97
97
  "keydown": this.handleKeyDown
98
98
  },
99
99
  onKeydown: this.handleKeyDown,
100
- "aria-selected": selected,
100
+ "aria-current": selected,
101
101
  "aria-disabled": disabled
102
102
  }, [this.$props.item ? content : [icon && h(kendo_vue_common_1.Icon, {
103
103
  name: icon,