@progress/kendo-vue-data-tools 8.0.3-develop.3 → 8.1.0-develop.1

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.
@@ -36,11 +36,39 @@ export declare const getClosestNavigatableElement: (target: HTMLElement) => Elem
36
36
  /**
37
37
  * @hidden
38
38
  */
39
- export declare const getActiveElement: (scope: HTMLElement, activeId?: string) => HTMLElement;
39
+ export declare const getActiveNavDataElement: (scope: HTMLElement, activeId?: string) => HTMLElement;
40
40
  /**
41
41
  * @hidden
42
42
  */
43
43
  export declare const getClosestScope: (target: HTMLElement) => Element;
44
+ /**
45
+ * @hidden
46
+ */
47
+ export declare const getClosestCancelButton: (target: HTMLElement) => Element;
48
+ /**
49
+ * @hidden
50
+ */
51
+ export declare const getRemoveButtonByAriaRowIndex: (ariaRowIndex: number) => Element;
52
+ /**
53
+ * @hidden
54
+ */
55
+ export declare const getTableCellByKeyboardNavId: (navId: string) => Element;
56
+ /**
57
+ * @hidden
58
+ */
59
+ export declare const getRowAriaRowIndex: (target: HTMLElement) => any;
60
+ /**
61
+ * @hidden
62
+ */
63
+ declare function waitForElementToBeVisible(selector: string, parentElement: Element | null, timeout?: number): Promise<boolean | Element>;
64
+ /**
65
+ * @hidden
66
+ */
67
+ export declare const getClosestEditButton: (target: HTMLElement) => Promise<boolean | Element>;
68
+ /**
69
+ * @hidden
70
+ */
71
+ export declare const getParentCell: (target: HTMLElement) => Element;
44
72
  /**
45
73
  * @hidden
46
74
  */
@@ -49,6 +77,22 @@ export declare const getHeaderElement: (scope: HTMLElement) => Element;
49
77
  * @hidden
50
78
  */
51
79
  export declare const getBodyElement: (scope: HTMLElement) => Element;
80
+ /**
81
+ * @hidden
82
+ */
83
+ export declare const getNoRecordsElement: (scope: HTMLElement) => Element;
84
+ /**
85
+ * @hidden
86
+ */
87
+ export declare const focusFirstEditor: (newEditableRow: Element) => void;
88
+ /**
89
+ * @hidden
90
+ */
91
+ export declare const focusFirstDataElement: (options: {
92
+ scope?: HTMLElement;
93
+ kbContext: TableKeyboardNavigationContextType;
94
+ navigation: TableKeyboardNavigationStateType;
95
+ }, event?: any) => void;
52
96
  /**
53
97
  * @hidden
54
98
  */
@@ -73,7 +117,7 @@ export declare const filterNavigatableElements: (options?: {
73
117
  export declare const focusElement: (options: {
74
118
  elementForFocus: HTMLElement;
75
119
  prevElement?: HTMLElement;
76
- kbContext?: TableKeyboardNavigationContextType;
120
+ kbContext: TableKeyboardNavigationContextType;
77
121
  event: any;
78
122
  }) => void;
79
123
  /**
@@ -106,14 +150,82 @@ export declare const findNextIdByCellIndex: (rowIndex: number, initialCellIndex:
106
150
  * @hidden
107
151
  */
108
152
  export declare const findId: (navigationMatrix: string[][], cellId?: string) => number[] | undefined;
153
+ /**
154
+ * @hidden
155
+ */
156
+ export declare const getPrevEditableCell: (currentIdIndexes: number[], columns: any[], elementId: string | undefined, matrix: string[][]) => {
157
+ prevCell: Element;
158
+ elementToFocus: string;
159
+ };
160
+ /**
161
+ * @hidden
162
+ */
163
+ export declare const getNextEditableCell: (currentIdIndexes: number[], columns: any[], elementId: string | undefined, matrix: string[][]) => {
164
+ nextCell: Element;
165
+ elementToFocus: string;
166
+ };
109
167
  /**
110
168
  * @hidden
111
169
  */
112
170
  export declare const getNextNavigationIndex: (navigation?: TableKeyboardNavigationStateType) => number;
171
+ /**
172
+ * @hidden
173
+ */
174
+ export declare const getFirstDataCell: (navigationMatrix: string[][]) => string;
175
+ /**
176
+ * @hidden
177
+ */
178
+ export declare const getLastDataCell: (navigationMatrix: string[][]) => string;
179
+ /**
180
+ * @hidden
181
+ */
182
+ export declare const getFirstRowDataCell: (navigationMatrix: string[][], rowIndex: number) => string;
183
+ /**
184
+ * @hidden
185
+ */
186
+ export declare const getLastRowDataCell: (navigationMatrix: string[][], rowIndex: number) => string;
113
187
  /**
114
188
  * @hidden
115
189
  */
116
190
  export declare const getFilterColumnId: (columnId: string) => string;
191
+ /**
192
+ * @hidden
193
+ */
194
+ export declare const getCurrentIdIndexes: (navigation: TableKeyboardNavigationStateType | undefined, matrix: string[][], elementId: string | undefined) => number[] | undefined;
195
+ /**
196
+ * @hidden
197
+ */
198
+ export declare const getClosestCellNavId: (element: HTMLElement) => string;
199
+ /**
200
+ * Gets the parent stacked cell wrapper element.
201
+ *
202
+ * @hidden
203
+ */
204
+ export declare const getStackedCellWrapper: (target: HTMLElement) => HTMLElement | null;
205
+ /**
206
+ * Gets all focusable elements within a stacked cell.
207
+ *
208
+ * @hidden
209
+ */
210
+ export declare const getStackedCellFocusableElements: (cellElement: HTMLElement) => HTMLElement[];
211
+ /**
212
+ * Finds the next stacked cell sibling in the specified direction.
213
+ *
214
+ * @hidden
215
+ */
216
+ export declare const getNextStackedCell: (currentCell: HTMLElement, direction: 'next' | 'prev') => HTMLElement | null;
217
+ /**
218
+ * Gets the table cell (td) that contains the stacked cells.
219
+ *
220
+ * @hidden
221
+ */
222
+ export declare const getStackedCellContainer: (stackedCell: HTMLElement) => HTMLElement | null;
223
+ /**
224
+ * Focuses an element within a stacked cell, or the cell itself if no focusable found.
225
+ *
226
+ * @hidden
227
+ */
228
+ export declare const focusStackedCellElement: (cellElement: HTMLElement, preferredIndex?: number) => void;
117
229
  /**
118
230
  * @hidden
119
231
  */
@@ -125,7 +237,7 @@ export declare const tableKeyboardNavigationTools: {
125
237
  level: number;
126
238
  }) => HTMLElement;
127
239
  getClosestNavigatableElement: (target: HTMLElement) => Element;
128
- getActiveElement: (scope: HTMLElement, activeId?: string) => HTMLElement;
240
+ getActiveNavDataElement: (scope: HTMLElement, activeId?: string) => HTMLElement;
129
241
  getClosestScope: (target: HTMLElement) => Element;
130
242
  getHeaderElement: (scope: HTMLElement) => Element;
131
243
  getBodyElement: (scope: HTMLElement) => Element;
@@ -141,7 +253,7 @@ export declare const tableKeyboardNavigationTools: {
141
253
  focusElement: (options: {
142
254
  elementForFocus: HTMLElement;
143
255
  prevElement?: HTMLElement;
144
- kbContext?: TableKeyboardNavigationContextType;
256
+ kbContext: TableKeyboardNavigationContextType;
145
257
  event: any;
146
258
  }) => void;
147
259
  getIdPrefix: (navigation?: TableKeyboardNavigationStateType) => string;
@@ -165,4 +277,31 @@ export declare const tableKeyboardNavigationTools: {
165
277
  findId: (navigationMatrix: string[][], cellId?: string) => number[] | undefined;
166
278
  getNextNavigationIndex: (navigation?: TableKeyboardNavigationStateType) => number;
167
279
  getFilterColumnId: (columnId: string) => string;
280
+ focusFirstDataElement: (options: {
281
+ scope?: HTMLElement;
282
+ kbContext: TableKeyboardNavigationContextType;
283
+ navigation: TableKeyboardNavigationStateType;
284
+ }, event?: any) => void;
285
+ getClosestCancelButton: (target: HTMLElement) => Element;
286
+ getClosestEditButton: (target: HTMLElement) => Promise<boolean | Element>;
287
+ getRowAriaRowIndex: (target: HTMLElement) => any;
288
+ getRemoveButtonByAriaRowIndex: (ariaRowIndex: number) => Element;
289
+ getTableCellByKeyboardNavId: (navId: string) => Element;
290
+ getParentCell: (target: HTMLElement) => Element;
291
+ waitForElementToBeVisible: typeof waitForElementToBeVisible;
292
+ getNextEditableCell: (currentIdIndexes: number[], columns: any[], elementId: string | undefined, matrix: string[][]) => {
293
+ nextCell: Element;
294
+ elementToFocus: string;
295
+ };
296
+ getPrevEditableCell: (currentIdIndexes: number[], columns: any[], elementId: string | undefined, matrix: string[][]) => {
297
+ prevCell: Element;
298
+ elementToFocus: string;
299
+ };
300
+ getClosestCellNavId: (element: HTMLElement) => string;
301
+ getStackedCellWrapper: (target: HTMLElement) => HTMLElement | null;
302
+ getStackedCellFocusableElements: (cellElement: HTMLElement) => HTMLElement[];
303
+ getNextStackedCell: (currentCell: HTMLElement, direction: 'next' | 'prev') => HTMLElement | null;
304
+ getStackedCellContainer: (stackedCell: HTMLElement) => HTMLElement | null;
305
+ focusStackedCellElement: (cellElement: HTMLElement, preferredIndex?: number) => void;
168
306
  };
307
+ export {};
@@ -5,4 +5,4 @@
5
5
  * Licensed under commercial license. See LICENSE.md in the package root for more information
6
6
  *-------------------------------------------------------------------------------------------
7
7
  */
8
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=require("./constants.js"),i=(e,t,n="cell")=>`${t}_${e}_${n}`,c=e=>{if(e)return parseInt(e.getAttribute(r.KEYBOARD_NAV_DATA_LEVEL)||"",10)},A=e=>{if(!e)return;const t=e.getAttribute(r.KEYBOARD_NAV_DATA_ID);return t||void 0},E=e=>e?!!e.getAttribute(r.KEYBOARD_NAV_DATA_ID):!1,u=(e,t={level:0})=>e.querySelector(`[${r.KEYBOARD_NAV_DATA_LEVEL}='${t.level}']`),g=e=>e.parentElement&&e.parentElement.closest(`[${r.KEYBOARD_NAV_DATA_LEVEL}]`),d=(e,t)=>e.querySelector(`[${r.KEYBOARD_NAV_DATA_ID}='${t}']`),_=e=>e.parentElement&&e.parentElement.closest(`[${r.KEYBOARD_NAV_DATA_SCOPE}]`),N=e=>e.querySelector(`[${r.KEYBOARD_NAV_DATA_HEADER}]`),f=e=>e.querySelector(`[${r.KEYBOARD_NAV_DATA_BODY}]`),b=(e,t={focusable:!1})=>{let n=t.focusable?r.FOCUSABLE_ELEMENTS:r.TABBABLE_ELEMENTS;return Array.from(e.querySelectorAll(n.join(",")))},v=(e,t={level:0})=>{if(!e)return[];let n=r.FOCUSABLE_ELEMENTS.map(l=>l+`[${r.KEYBOARD_NAV_DATA_LEVEL}='${t.level}']`).join(",");return Array.from(e.querySelectorAll(n))},I=(e={level:0})=>{let t=r.FOCUSABLE_ELEMENTS.map(n=>n+`[${r.KEYBOARD_NAV_DATA_LEVEL}='${e.level}']`).join(",");return n=>n.matches(t)},D=e=>{const{elementForFocus:t,event:n,kbContext:l,prevElement:o}=e;l&&t&&t.focus&&(n.preventDefault(),t.focus(),E(t)&&(t.setAttribute("tabIndex","0"),l.activeId=A(t)),o&&E(o)&&o.setAttribute("tabIndex","-1"))},B=e=>e?e.idPrefix:"",m=(e,t,n,l,o)=>{if(!n)return[];let a=e+(o?-1:1);for(;a>=0&&a<l.length;){const s=l[a][t];if(s!==n)return[s,[a,t]];a=a+(o?-1:1)}return[]},L=(e,t,n,l,o)=>{if(!n)return[];let a=t+(o?-1:1);for(;a>=0&&a<l[e].length;){const s=l[e][a];if(s!==n)return[s,[e,a]];a=a+(o?-1:1)}return[]},T=(e,t)=>{if(t){for(let n=0;n<e.length;n++)for(let l=0;l<e[n].length;l++)if(e[n][l]===t)return[n,l]}},O=e=>e?e.navigationMatrix.length:0,S=e=>e?`${e}${r.KEYBOARD_NAV_FILTER_COL_SUFFIX}`:"",y={generateNavigatableId:i,getNavigatableId:A,getNavigatableLevel:c,getNavigatableElement:u,getClosestNavigatableElement:g,getActiveElement:d,getClosestScope:_,getHeaderElement:N,getBodyElement:f,getFocusableElements:b,getNavigatableElements:v,filterNavigatableElements:I,focusElement:D,getIdPrefix:B,isNavigatable:E,findNextIdByRowIndex:m,findNextIdByCellIndex:L,findId:T,getNextNavigationIndex:O,getFilterColumnId:S};exports.filterNavigatableElements=I;exports.findId=T;exports.findNextIdByCellIndex=L;exports.findNextIdByRowIndex=m;exports.focusElement=D;exports.generateNavigatableId=i;exports.getActiveElement=d;exports.getBodyElement=f;exports.getClosestNavigatableElement=g;exports.getClosestScope=_;exports.getFilterColumnId=S;exports.getFocusableElements=b;exports.getHeaderElement=N;exports.getIdPrefix=B;exports.getNavigatableElement=u;exports.getNavigatableElements=v;exports.getNavigatableId=A;exports.getNavigatableLevel=c;exports.getNextNavigationIndex=O;exports.isNavigatable=E;exports.tableKeyboardNavigationTools=y;
8
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const E=require("@progress/kendo-vue-common"),a=require("./constants.js"),S=(e,t,n="cell")=>`${t}_${e}_${n}`,x=e=>{if(e)return parseInt(e.getAttribute(a.KEYBOARD_NAV_DATA_LEVEL)||"",10)},b=e=>{if(!e)return;const t=e.getAttribute(a.KEYBOARD_NAV_DATA_ID);return t||void 0},A=e=>e?!!e.getAttribute(a.KEYBOARD_NAV_DATA_ID):!1,y=(e,t={level:0})=>e.querySelector(`[${a.KEYBOARD_NAV_DATA_LEVEL}='${t.level}']`),N=e=>e.parentElement&&e.parentElement.closest(`[${a.KEYBOARD_NAV_DATA_LEVEL}]`),C=(e,t)=>e.querySelector(`[${a.KEYBOARD_NAV_DATA_ID}='${t}']`),k=e=>e.parentElement&&e.parentElement.closest(`[${a.KEYBOARD_NAV_DATA_SCOPE}]`),T=e=>{var n;const t=((n=e==null?void 0:e.parentElement)==null?void 0:n.closest(".k-grid-edit-row"))||null;return t==null?void 0:t.querySelector("."+a.KEYBOARD_NAV_CANCEL_BUTTON_CLASS)},w=e=>document.querySelector(`[aria-rowindex="${e}"] .k-grid-remove-command`),u=e=>document.querySelector(`[data-keyboardnavid="${e}"]`),L=e=>{var l,r;const t=(l=e==null?void 0:e.parentElement)==null?void 0:l.closest(".k-table-row");let n;return(r=t==null?void 0:t.parentElement)==null||r.childNodes.forEach(o=>{if(t===o){const s=o.previousSibling;n={current:t.getAttribute("aria-rowindex"),prev:s==null?void 0:s.getAttribute("aria-rowindex")}}}),n};async function R(e,t,n=5e3){const l=Date.now();if(t)for(;Date.now()-l<n;){const r=t.querySelector(e);if(r)return r;await new Promise(o=>setTimeout(o,20))}return!1}const p=async e=>{var l;const t=((l=e==null?void 0:e.parentElement)==null?void 0:l.closest(".k-grid-edit-row"))||null;return await R("."+a.KEYBOARD_NAV_EDIT_BUTTON_CLASS,t)},F=e=>(e==null?void 0:e.closest(".k-table-td"))||null,O=e=>e.querySelector(`[${a.KEYBOARD_NAV_DATA_HEADER}]`),V=e=>e.querySelector(`[${a.KEYBOARD_NAV_DATA_BODY}]`),Q=e=>e.querySelector(".k-grid-norecords"),h=(e,t)=>{const{scope:n,navigation:l,kbContext:r}=e;if(!l||!n)return;const o=j(l.navigationMatrix),s=C(n,o);_({elementForFocus:s,kbContext:r,event:t})},I=(e,t={focusable:!1})=>{const n=t.focusable?E.FOCUSABLE_ELEMENTS:E.TABBABLE_ELEMENTS;return Array.from(e.querySelectorAll(n.join(",")))},$=(e,t={level:0})=>{if(!e)return[];const n=E.FOCUSABLE_ELEMENTS.map(l=>l+`[${a.KEYBOARD_NAV_DATA_LEVEL}='${t.level}']`).join(",");return Array.from(e.querySelectorAll(n))},K=(e={level:0})=>{const t=E.FOCUSABLE_ELEMENTS.map(n=>n+`[${a.KEYBOARD_NAV_DATA_LEVEL}='${e.level}']`).join(",");return n=>n.matches(t)},_=e=>{const{elementForFocus:t,event:n,kbContext:l,prevElement:r}=e;if(l&&t&&t.focus){n==null||n.preventDefault();const o=t.querySelector(".k-checkbox-wrap .k-checkbox");o!=null&&o.focus?o.focus():t.focus(),A(t)&&(t.setAttribute("tabIndex","0"),l.activeId=b(t)),r&&A(r)&&r.setAttribute("tabIndex","-1")}},q=e=>e?e.idPrefix:"",Y=(e,t,n,l,r)=>{if(!n)return[];let o=e+(r?-1:1);for(;o>=0&&o<l.length;){const s=l[o][t];if(s!==n)return[s,[o,t]];o=o+(r?-1:1)}return[]},d=(e,t,n,l,r)=>{if(!n)return[];let o=t+(r?-1:1);for(;o>=0&&l[e]&&o<l[e].length;){const s=l[e][o];if(s!==n)return[s,[e,o]];o=o+(r?-1:1)}return[]},f=(e,t)=>{if(t){for(let n=0;n<e.length;n++)for(let l=0;l<e[n].length;l++)if(e[n][l]===t)return[n,l]}},v=(e,t,n)=>{let l;do if(e=e+1,l=t[n-e],l!=null&&l.editable)break;while(n-e>=0);return l},P=(e,t,n,l)=>{var m;let r;const[o,s]=e;let i;const c=0,g=t.length;return i=v(c,t,s),i?r=d(o,i.ariaColumnIndex,n,l,!0):(i=v(c,t,g),r=d(o-1,i.ariaColumnIndex,n,l,!0)),{prevCell:(r==null?void 0:r[0])&&u(r[0]),elementToFocus:(r==null?void 0:r[0])&&((m=u(r[0]))==null?void 0:m.getAttribute("role"))}},B=(e,t,n)=>{let l;do if(e=e+1,l=t[n+e],l!=null&&l.editable)break;while(n+e-1<t.length);return l},U=(e,t,n,l)=>{var o;let r;if(e){const[s,i]=e;let c,g=0;c=B(g,t,i),c?r=d(s,c.ariaColumnIndex,n,l,!0):(g=-1,c=B(g,t,0),r=d(s+1,c.ariaColumnIndex,n,l,!0))}return{nextCell:(r==null?void 0:r[0])&&u(r[0]),elementToFocus:(r==null?void 0:r[0])&&((o=u(r[0]))==null?void 0:o.getAttribute("role"))}},M=e=>{var t;return(t=e==null?void 0:e.navigationMatrix.length)!=null?t:0},j=e=>e.flat().find(t=>t.endsWith("cell")),Z=e=>e.flat().reverse().find(t=>t.endsWith("cell")),ee=(e,t)=>e[t][0],te=(e,t)=>Array.from(e[t]).reverse()[0],W=e=>e?`${e}${a.KEYBOARD_NAV_FILTER_COL_SUFFIX}`:"",ne=(e,t,n)=>{let l;if(e!=null&&e.prevNavigationIndexes){const[r,o]=e.prevNavigationIndexes,s=t[r];(s==null?void 0:s[o])===n?l=e.prevNavigationIndexes:l=f(t,n)}else l=f(t,n);return l},H=e=>{var t;return((t=N(e))==null?void 0:t.getAttribute("data-keyboardnavid"))||e.getAttribute("data-keyboardnavid")},X=e=>e.closest(".k-grid-stack-cell"),D=e=>I(e,{focusable:!0}),z=(e,t)=>{var o;const n=e.closest(".k-table-td");if(!n)return null;const l=Array.from(n.querySelectorAll(".k-grid-stack-cell")),r=l.indexOf(e);return r===-1?null:t==="next"?r<l.length-1?l[r+1]:l[0]:r>0?l[r-1]:(o=l.at(-1))!=null?o:null},G=e=>e.closest(".k-table-td, td.k-table-td[tabindex]"),J=(e,t=0)=>{const n=D(e);n.length>0?(n[t]||n[0]).focus():e.focus()},le={generateNavigatableId:S,getNavigatableId:b,getNavigatableLevel:x,getNavigatableElement:y,getClosestNavigatableElement:N,getActiveNavDataElement:C,getClosestScope:k,getHeaderElement:O,getBodyElement:V,getFocusableElements:I,getNavigatableElements:$,filterNavigatableElements:K,focusElement:_,getIdPrefix:q,isNavigatable:A,findNextIdByRowIndex:Y,findNextIdByCellIndex:d,findId:f,getNextNavigationIndex:M,getFilterColumnId:W,focusFirstDataElement:h,getClosestCancelButton:T,getClosestEditButton:p,getRowAriaRowIndex:L,getRemoveButtonByAriaRowIndex:w,getTableCellByKeyboardNavId:u,getParentCell:F,waitForElementToBeVisible:R,getNextEditableCell:U,getPrevEditableCell:P,getClosestCellNavId:H,getStackedCellWrapper:X,getStackedCellFocusableElements:D,getNextStackedCell:z,getStackedCellContainer:G,focusStackedCellElement:J};exports.filterNavigatableElements=K;exports.findId=f;exports.findNextIdByCellIndex=d;exports.findNextIdByRowIndex=Y;exports.focusElement=_;exports.focusFirstDataElement=h;exports.focusStackedCellElement=J;exports.generateNavigatableId=S;exports.getActiveNavDataElement=C;exports.getBodyElement=V;exports.getClosestCancelButton=T;exports.getClosestCellNavId=H;exports.getClosestEditButton=p;exports.getClosestNavigatableElement=N;exports.getClosestScope=k;exports.getCurrentIdIndexes=ne;exports.getFilterColumnId=W;exports.getFirstDataCell=j;exports.getFirstRowDataCell=ee;exports.getFocusableElements=I;exports.getHeaderElement=O;exports.getIdPrefix=q;exports.getLastDataCell=Z;exports.getLastRowDataCell=te;exports.getNavigatableElement=y;exports.getNavigatableElements=$;exports.getNavigatableId=b;exports.getNavigatableLevel=x;exports.getNextEditableCell=U;exports.getNextNavigationIndex=M;exports.getNextStackedCell=z;exports.getNoRecordsElement=Q;exports.getParentCell=F;exports.getPrevEditableCell=P;exports.getRemoveButtonByAriaRowIndex=w;exports.getRowAriaRowIndex=L;exports.getStackedCellContainer=G;exports.getStackedCellFocusableElements=D;exports.getStackedCellWrapper=X;exports.getTableCellByKeyboardNavId=u;exports.isNavigatable=A;exports.tableKeyboardNavigationTools=le;
@@ -5,102 +5,241 @@
5
5
  * Licensed under commercial license. See LICENSE.md in the package root for more information
6
6
  *-------------------------------------------------------------------------------------------
7
7
  */
8
- import { KEYBOARD_NAV_FILTER_COL_SUFFIX as E, KEYBOARD_NAV_DATA_ID as a, FOCUSABLE_ELEMENTS as i, KEYBOARD_NAV_DATA_LEVEL as u, TABBABLE_ELEMENTS as f, KEYBOARD_NAV_DATA_BODY as g, KEYBOARD_NAV_DATA_HEADER as d, KEYBOARD_NAV_DATA_SCOPE as _ } from "./constants.mjs";
9
- const b = (e, t, r = "cell") => `${t}_${e}_${r}`, N = (e) => {
8
+ import { FOCUSABLE_ELEMENTS as E, TABBABLE_ELEMENTS as v } from "@progress/kendo-vue-common";
9
+ import { KEYBOARD_NAV_EDIT_BUTTON_CLASS as B, KEYBOARD_NAV_CANCEL_BUTTON_CLASS as p, KEYBOARD_NAV_FILTER_COL_SUFFIX as w, KEYBOARD_NAV_DATA_ID as g, KEYBOARD_NAV_DATA_LEVEL as f, KEYBOARD_NAV_DATA_BODY as T, KEYBOARD_NAV_DATA_HEADER as h, KEYBOARD_NAV_DATA_SCOPE as $ } from "./constants.mjs";
10
+ const F = (e, t, r = "cell") => `${t}_${e}_${r}`, R = (e) => {
10
11
  if (e)
11
- return parseInt(e.getAttribute(u) || "", 10);
12
- }, A = (e) => {
12
+ return parseInt(e.getAttribute(f) || "", 10);
13
+ }, m = (e) => {
13
14
  if (!e)
14
15
  return;
15
- const t = e.getAttribute(a);
16
+ const t = e.getAttribute(g);
16
17
  return t || void 0;
17
- }, c = (e) => e ? !!e.getAttribute(a) : !1, I = (e, t = { level: 0 }) => e.querySelector(`[${u}='${t.level}']`), v = (e) => e.parentElement && e.parentElement.closest(`[${u}]`), $ = (e, t) => e.querySelector(`[${a}='${t}']`), m = (e) => e.parentElement && e.parentElement.closest(`[${_}]`), B = (e) => e.querySelector(`[${d}]`), D = (e) => e.querySelector(`[${g}]`), y = (e, t = { focusable: !1 }) => {
18
- let r = t.focusable ? i : f;
18
+ }, A = (e) => e ? !!e.getAttribute(g) : !1, L = (e, t = { level: 0 }) => e.querySelector(`[${f}='${t.level}']`), _ = (e) => e.parentElement && e.parentElement.closest(`[${f}]`), x = (e, t) => e.querySelector(`[${g}='${t}']`), O = (e) => e.parentElement && e.parentElement.closest(`[${$}]`), q = (e) => {
19
+ var r;
20
+ const t = ((r = e == null ? void 0 : e.parentElement) == null ? void 0 : r.closest(".k-grid-edit-row")) || null;
21
+ return t == null ? void 0 : t.querySelector("." + p);
22
+ }, K = (e) => document.querySelector(`[aria-rowindex="${e}"] .k-grid-remove-command`), i = (e) => document.querySelector(`[data-keyboardnavid="${e}"]`), V = (e) => {
23
+ var n, l;
24
+ const t = (n = e == null ? void 0 : e.parentElement) == null ? void 0 : n.closest(".k-table-row");
25
+ let r;
26
+ return (l = t == null ? void 0 : t.parentElement) == null || l.childNodes.forEach((o) => {
27
+ if (t === o) {
28
+ const s = o.previousSibling;
29
+ r = {
30
+ current: t.getAttribute("aria-rowindex"),
31
+ prev: s == null ? void 0 : s.getAttribute("aria-rowindex")
32
+ };
33
+ }
34
+ }), r;
35
+ };
36
+ async function y(e, t, r = 5e3) {
37
+ const n = Date.now();
38
+ if (t)
39
+ for (; Date.now() - n < r; ) {
40
+ const l = t.querySelector(e);
41
+ if (l)
42
+ return l;
43
+ await new Promise((o) => setTimeout(o, 20));
44
+ }
45
+ return !1;
46
+ }
47
+ const Y = async (e) => {
48
+ var n;
49
+ const t = ((n = e == null ? void 0 : e.parentElement) == null ? void 0 : n.closest(".k-grid-edit-row")) || null;
50
+ return await y("." + B, t);
51
+ }, P = (e) => (e == null ? void 0 : e.closest(".k-table-td")) || null, U = (e) => e.querySelector(`[${h}]`), j = (e) => e.querySelector(`[${T}]`), ae = (e) => e.querySelector(".k-grid-norecords"), W = (e, t) => {
52
+ const { scope: r, navigation: n, kbContext: l } = e;
53
+ if (!n || !r)
54
+ return;
55
+ const o = Z(n.navigationMatrix), s = x(r, o);
56
+ S({ elementForFocus: s, kbContext: l, event: t });
57
+ }, D = (e, t = { focusable: !1 }) => {
58
+ const r = t.focusable ? E : v;
19
59
  return Array.from(e.querySelectorAll(r.join(",")));
20
- }, S = (e, t = { level: 0 }) => {
60
+ }, H = (e, t = { level: 0 }) => {
21
61
  if (!e)
22
62
  return [];
23
- let r = i.map((n) => n + `[${u}='${t.level}']`).join(",");
63
+ const r = E.map((n) => n + `[${f}='${t.level}']`).join(",");
24
64
  return Array.from(e.querySelectorAll(r));
25
- }, p = (e = { level: 0 }) => {
26
- let t = i.map(
27
- (r) => r + `[${u}='${e.level}']`
28
- ).join(",");
65
+ }, M = (e = { level: 0 }) => {
66
+ const t = E.map((r) => r + `[${f}='${e.level}']`).join(",");
29
67
  return (r) => r.matches(t);
30
- }, x = (e) => {
31
- const { elementForFocus: t, event: r, kbContext: n, prevElement: o } = e;
32
- n && t && t.focus && (r.preventDefault(), t.focus(), c(t) && (t.setAttribute("tabIndex", "0"), n.activeId = A(t)), o && c(o) && o.setAttribute("tabIndex", "-1"));
33
- }, O = (e) => e ? e.idPrefix : "", T = (e, t, r, n, o) => {
68
+ }, S = (e) => {
69
+ const { elementForFocus: t, event: r, kbContext: n, prevElement: l } = e;
70
+ if (n && t && t.focus) {
71
+ r == null || r.preventDefault();
72
+ const o = t.querySelector(".k-checkbox-wrap .k-checkbox");
73
+ o != null && o.focus ? o.focus() : t.focus(), A(t) && (t.setAttribute("tabIndex", "0"), n.activeId = m(t)), l && A(l) && l.setAttribute("tabIndex", "-1");
74
+ }
75
+ }, X = (e) => e ? e.idPrefix : "", z = (e, t, r, n, l) => {
34
76
  if (!r)
35
77
  return [];
36
- let l = e + (o ? -1 : 1);
37
- for (; l >= 0 && l < n.length; ) {
38
- const s = n[l][t];
78
+ let o = e + (l ? -1 : 1);
79
+ for (; o >= 0 && o < n.length; ) {
80
+ const s = n[o][t];
39
81
  if (s !== r)
40
- return [s, [l, t]];
41
- l = l + (o ? -1 : 1);
82
+ return [s, [o, t]];
83
+ o = o + (l ? -1 : 1);
42
84
  }
43
85
  return [];
44
- }, C = (e, t, r, n, o) => {
86
+ }, d = (e, t, r, n, l) => {
45
87
  if (!r)
46
88
  return [];
47
- let l = t + (o ? -1 : 1);
48
- for (; l >= 0 && l < n[e].length; ) {
49
- const s = n[e][l];
89
+ let o = t + (l ? -1 : 1);
90
+ for (; o >= 0 && n[e] && o < n[e].length; ) {
91
+ const s = n[e][o];
50
92
  if (s !== r)
51
- return [s, [e, l]];
52
- l = l + (o ? -1 : 1);
93
+ return [s, [e, o]];
94
+ o = o + (l ? -1 : 1);
53
95
  }
54
96
  return [];
55
- }, L = (e, t) => {
97
+ }, b = (e, t) => {
56
98
  if (t) {
57
99
  for (let r = 0; r < e.length; r++)
58
100
  for (let n = 0; n < e[r].length; n++)
59
101
  if (e[r][n] === t)
60
102
  return [r, n];
61
103
  }
62
- }, h = (e) => e ? e.navigationMatrix.length : 0, F = (e) => e ? `${e}${E}` : "", K = {
63
- generateNavigatableId: b,
64
- getNavigatableId: A,
65
- getNavigatableLevel: N,
66
- getNavigatableElement: I,
67
- getClosestNavigatableElement: v,
68
- getActiveElement: $,
69
- getClosestScope: m,
70
- getHeaderElement: B,
71
- getBodyElement: D,
72
- getFocusableElements: y,
73
- getNavigatableElements: S,
74
- filterNavigatableElements: p,
75
- focusElement: x,
76
- getIdPrefix: O,
77
- isNavigatable: c,
78
- findNextIdByRowIndex: T,
79
- findNextIdByCellIndex: C,
80
- findId: L,
81
- getNextNavigationIndex: h,
82
- getFilterColumnId: F
104
+ }, I = (e, t, r) => {
105
+ let n;
106
+ do
107
+ if (e = e + 1, n = t[r - e], n != null && n.editable)
108
+ break;
109
+ while (r - e >= 0);
110
+ return n;
111
+ }, G = (e, t, r, n) => {
112
+ var N;
113
+ let l;
114
+ const [o, s] = e;
115
+ let u;
116
+ const c = 0, a = t.length;
117
+ return u = I(c, t, s), u ? l = d(o, u.ariaColumnIndex, r, n, !0) : (u = I(c, t, a), l = d(o - 1, u.ariaColumnIndex, r, n, !0)), {
118
+ prevCell: (l == null ? void 0 : l[0]) && i(l[0]),
119
+ elementToFocus: (l == null ? void 0 : l[0]) && ((N = i(l[0])) == null ? void 0 : N.getAttribute("role"))
120
+ };
121
+ }, C = (e, t, r) => {
122
+ let n;
123
+ do
124
+ if (e = e + 1, n = t[r + e], n != null && n.editable)
125
+ break;
126
+ while (r + e - 1 < t.length);
127
+ return n;
128
+ }, J = (e, t, r, n) => {
129
+ var o;
130
+ let l;
131
+ if (e) {
132
+ const [s, u] = e;
133
+ let c, a = 0;
134
+ c = C(a, t, u), c ? l = d(s, c.ariaColumnIndex, r, n, !0) : (a = -1, c = C(a, t, 0), l = d(s + 1, c.ariaColumnIndex, r, n, !0));
135
+ }
136
+ return {
137
+ nextCell: (l == null ? void 0 : l[0]) && i(l[0]),
138
+ elementToFocus: (l == null ? void 0 : l[0]) && ((o = i(l[0])) == null ? void 0 : o.getAttribute("role"))
139
+ };
140
+ }, Q = (e) => {
141
+ var t;
142
+ return (t = e == null ? void 0 : e.navigationMatrix.length) != null ? t : 0;
143
+ }, Z = (e) => e.flat().find((t) => t.endsWith("cell")), ie = (e) => e.flat().reverse().find((t) => t.endsWith("cell")), de = (e, t) => e[t][0], fe = (e, t) => Array.from(e[t]).reverse()[0], ee = (e) => e ? `${e}${w}` : "", Ae = (e, t, r) => {
144
+ let n;
145
+ if (e != null && e.prevNavigationIndexes) {
146
+ const [l, o] = e.prevNavigationIndexes, s = t[l];
147
+ (s == null ? void 0 : s[o]) === r ? n = e.prevNavigationIndexes : n = b(t, r);
148
+ } else
149
+ n = b(t, r);
150
+ return n;
151
+ }, te = (e) => {
152
+ var t;
153
+ return ((t = _(e)) == null ? void 0 : t.getAttribute("data-keyboardnavid")) || e.getAttribute("data-keyboardnavid");
154
+ }, re = (e) => e.closest(".k-grid-stack-cell"), k = (e) => D(e, { focusable: !0 }), ne = (e, t) => {
155
+ var o;
156
+ const r = e.closest(".k-table-td");
157
+ if (!r)
158
+ return null;
159
+ const n = Array.from(r.querySelectorAll(".k-grid-stack-cell")), l = n.indexOf(e);
160
+ return l === -1 ? null : t === "next" ? l < n.length - 1 ? n[l + 1] : n[0] : l > 0 ? n[l - 1] : (o = n.at(-1)) != null ? o : null;
161
+ }, le = (e) => e.closest(".k-table-td, td.k-table-td[tabindex]"), oe = (e, t = 0) => {
162
+ const r = k(e);
163
+ r.length > 0 ? (r[t] || r[0]).focus() : e.focus();
164
+ }, be = {
165
+ generateNavigatableId: F,
166
+ getNavigatableId: m,
167
+ getNavigatableLevel: R,
168
+ getNavigatableElement: L,
169
+ getClosestNavigatableElement: _,
170
+ getActiveNavDataElement: x,
171
+ getClosestScope: O,
172
+ getHeaderElement: U,
173
+ getBodyElement: j,
174
+ getFocusableElements: D,
175
+ getNavigatableElements: H,
176
+ filterNavigatableElements: M,
177
+ focusElement: S,
178
+ getIdPrefix: X,
179
+ isNavigatable: A,
180
+ findNextIdByRowIndex: z,
181
+ findNextIdByCellIndex: d,
182
+ findId: b,
183
+ getNextNavigationIndex: Q,
184
+ getFilterColumnId: ee,
185
+ focusFirstDataElement: W,
186
+ getClosestCancelButton: q,
187
+ getClosestEditButton: Y,
188
+ getRowAriaRowIndex: V,
189
+ getRemoveButtonByAriaRowIndex: K,
190
+ getTableCellByKeyboardNavId: i,
191
+ getParentCell: P,
192
+ waitForElementToBeVisible: y,
193
+ getNextEditableCell: J,
194
+ getPrevEditableCell: G,
195
+ getClosestCellNavId: te,
196
+ getStackedCellWrapper: re,
197
+ getStackedCellFocusableElements: k,
198
+ getNextStackedCell: ne,
199
+ getStackedCellContainer: le,
200
+ focusStackedCellElement: oe
83
201
  };
84
202
  export {
85
- p as filterNavigatableElements,
86
- L as findId,
87
- C as findNextIdByCellIndex,
88
- T as findNextIdByRowIndex,
89
- x as focusElement,
90
- b as generateNavigatableId,
91
- $ as getActiveElement,
92
- D as getBodyElement,
93
- v as getClosestNavigatableElement,
94
- m as getClosestScope,
95
- F as getFilterColumnId,
96
- y as getFocusableElements,
97
- B as getHeaderElement,
98
- O as getIdPrefix,
99
- I as getNavigatableElement,
100
- S as getNavigatableElements,
101
- A as getNavigatableId,
102
- N as getNavigatableLevel,
103
- h as getNextNavigationIndex,
104
- c as isNavigatable,
105
- K as tableKeyboardNavigationTools
203
+ M as filterNavigatableElements,
204
+ b as findId,
205
+ d as findNextIdByCellIndex,
206
+ z as findNextIdByRowIndex,
207
+ S as focusElement,
208
+ W as focusFirstDataElement,
209
+ oe as focusStackedCellElement,
210
+ F as generateNavigatableId,
211
+ x as getActiveNavDataElement,
212
+ j as getBodyElement,
213
+ q as getClosestCancelButton,
214
+ te as getClosestCellNavId,
215
+ Y as getClosestEditButton,
216
+ _ as getClosestNavigatableElement,
217
+ O as getClosestScope,
218
+ Ae as getCurrentIdIndexes,
219
+ ee as getFilterColumnId,
220
+ Z as getFirstDataCell,
221
+ de as getFirstRowDataCell,
222
+ D as getFocusableElements,
223
+ U as getHeaderElement,
224
+ X as getIdPrefix,
225
+ ie as getLastDataCell,
226
+ fe as getLastRowDataCell,
227
+ L as getNavigatableElement,
228
+ H as getNavigatableElements,
229
+ m as getNavigatableId,
230
+ R as getNavigatableLevel,
231
+ J as getNextEditableCell,
232
+ Q as getNextNavigationIndex,
233
+ ne as getNextStackedCell,
234
+ ae as getNoRecordsElement,
235
+ P as getParentCell,
236
+ G as getPrevEditableCell,
237
+ K as getRemoveButtonByAriaRowIndex,
238
+ V as getRowAriaRowIndex,
239
+ le as getStackedCellContainer,
240
+ k as getStackedCellFocusableElements,
241
+ re as getStackedCellWrapper,
242
+ i as getTableCellByKeyboardNavId,
243
+ A as isNavigatable,
244
+ be as tableKeyboardNavigationTools
106
245
  };
@@ -5,4 +5,4 @@
5
5
  * Licensed under commercial license. See LICENSE.md in the package root for more information
6
6
  *-------------------------------------------------------------------------------------------
7
7
  */
8
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e={name:"@progress/kendo-vue-data-tools",productName:"Kendo UI for Vue",productCode:"KENDOUIVUE",productCodes:["KENDOUIVUE"],publishDate: 1773401544,version:"8.0.3-develop.3",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"};exports.packageMetadata=e;
8
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e={name:"@progress/kendo-vue-data-tools",productName:"Kendo UI for Vue",productCode:"KENDOUIVUE",productCodes:["KENDOUIVUE"],publishDate: 1773766983,version:"8.1.0-develop.1",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"};exports.packageMetadata=e;
@@ -10,8 +10,8 @@ const e = {
10
10
  productName: "Kendo UI for Vue",
11
11
  productCode: "KENDOUIVUE",
12
12
  productCodes: ["KENDOUIVUE"],
13
- publishDate: 1773401544,
14
- version: "8.0.3-develop.3",
13
+ publishDate: 1773766983,
14
+ version: "8.1.0-develop.1",
15
15
  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"
16
16
  };
17
17
  export {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@progress/kendo-vue-data-tools",
3
- "version": "8.0.3-develop.3",
3
+ "version": "8.1.0-develop.1",
4
4
  "description": "TODO",
5
5
  "author": "Progress",
6
6
  "license": "SEE LICENSE IN LICENSE.md",
@@ -26,14 +26,14 @@
26
26
  "peerDependencies": {
27
27
  "@progress/kendo-data-query": "^1.7.0",
28
28
  "@progress/kendo-licensing": "^1.7.2",
29
- "@progress/kendo-vue-animation": "8.0.3-develop.3",
30
- "@progress/kendo-vue-buttons": "8.0.3-develop.3",
31
- "@progress/kendo-vue-common": "8.0.3-develop.3",
32
- "@progress/kendo-vue-dateinputs": "8.0.3-develop.3",
33
- "@progress/kendo-vue-dropdowns": "8.0.3-develop.3",
34
- "@progress/kendo-vue-inputs": "8.0.3-develop.3",
35
- "@progress/kendo-vue-intl": "8.0.3-develop.3",
36
- "@progress/kendo-vue-popup": "8.0.3-develop.3",
29
+ "@progress/kendo-vue-animation": "8.1.0-develop.1",
30
+ "@progress/kendo-vue-buttons": "8.1.0-develop.1",
31
+ "@progress/kendo-vue-common": "8.1.0-develop.1",
32
+ "@progress/kendo-vue-dateinputs": "8.1.0-develop.1",
33
+ "@progress/kendo-vue-dropdowns": "8.1.0-develop.1",
34
+ "@progress/kendo-vue-inputs": "8.1.0-develop.1",
35
+ "@progress/kendo-vue-intl": "8.1.0-develop.1",
36
+ "@progress/kendo-vue-popup": "8.1.0-develop.1",
37
37
  "@progress/kendo-svg-icons": "^4.4.0",
38
38
  "vue": "^3.0.2"
39
39
  },
@@ -54,7 +54,7 @@
54
54
  "package": {
55
55
  "productName": "Kendo UI for Vue",
56
56
  "productCode": "KENDOUIVUE",
57
- "publishDate": 1773401544,
57
+ "publishDate": 1773766983,
58
58
  "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"
59
59
  }
60
60
  },
@@ -0,0 +1,33 @@
1
+ /**
2
+ * @license
3
+ *-------------------------------------------------------------------------------------------
4
+ * Copyright © 2026 Progress Software Corporation. All rights reserved.
5
+ * Licensed under commercial license. See LICENSE.md in the package root for more information
6
+ *-------------------------------------------------------------------------------------------
7
+ */
8
+ import { PropType } from 'vue';
9
+ import { TableSelectableSettings } from './TableSelectableSettings';
10
+ import { TableDragSelectionReleaseEvent } from './events';
11
+ /**
12
+ * The descriptor used to define the selected state of a data-item.
13
+ */
14
+ export type SelectDescriptor = {
15
+ [id: string]: boolean | number[];
16
+ };
17
+ /** @hidden */
18
+ export interface TableSelectionProps {
19
+ selectable?: TableSelectableSettings;
20
+ }
21
+ /** @hidden */
22
+ declare const TableSelection: import('vue').DefineComponent<import('vue').ExtractPropTypes<{
23
+ selectable: PropType<TableSelectableSettings>;
24
+ }>, () => import('vue').VNode<import('vue').RendererNode, import('vue').RendererElement, {
25
+ [key: string]: any;
26
+ }>[], {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
27
+ release: (event: TableDragSelectionReleaseEvent) => true;
28
+ }, string, import('vue').PublicProps, Readonly<import('vue').ExtractPropTypes<{
29
+ selectable: PropType<TableSelectableSettings>;
30
+ }>> & Readonly<{
31
+ onRelease?: (event: TableDragSelectionReleaseEvent) => any;
32
+ }>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
33
+ export { TableSelection };