@progress/kendo-react-data-tools 7.5.0-develop.9 → 8.0.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.
@@ -6,140 +6,170 @@
6
6
  *-------------------------------------------------------------------------------------------
7
7
  */
8
8
  "use client";
9
- import { guid as S, getActiveElement as C, Keys as f } from "@progress/kendo-react-common";
10
- import { tableKeyboardNavigationTools as a, findId as y, findNextIdByRowIndex as h, findNextIdByCellIndex as F, getHeaderElement as R, getBodyElement as A, getNavigatableId as D } from "./utils.mjs";
11
- const k = (e) => {
12
- const { navigatable: o, contextStateRef: n, navigationStateRef: t, idPrefix: c } = e;
13
- o && (n.current = {
9
+ import { guid as k, getActiveElement as A, Keys as l } from "@progress/kendo-react-common";
10
+ import { focusFirstDataElement as D, getFirstDataCell as N, tableKeyboardNavigationTools as o, getCurrentIdIndexes as F, getFirstRowDataCell as w, getLastRowDataCell as M, getLastDataCell as P, getHeaderElement as K, getBodyElement as L, getNoRecordsElement as T, getNavigatableId as B, findNextIdByRowIndex as H, findNextIdByCellIndex as U } from "./utils.mjs";
11
+ const R = (e) => {
12
+ const { navigatable: c, contextStateRef: n, navigationStateRef: t, idPrefix: r } = e;
13
+ c && (n.current = {
14
14
  activeId: "",
15
15
  level: 0
16
16
  }, t.current = {
17
17
  activeElementIsFocused: !1,
18
18
  prevNavigationIndexes: void 0,
19
- idPrefix: c || S(),
19
+ idPrefix: r || k(),
20
20
  navigationMatrix: [],
21
21
  lastHeaderIndex: -1
22
22
  });
23
- }, w = (e) => {
24
- const { scope: o, contextStateRef: n, navigationStateRef: t } = e;
25
- if (n.current && t.current && o) {
26
- N(e);
27
- const c = t.current.navigationMatrix.flat().find((r) => r.endsWith("cell"));
28
- if (c) {
29
- const r = a.getActiveNavDataElement(o, c);
30
- r && (n.current.activeId = c, r.setAttribute("tabIndex", "0"));
23
+ }, h = (e) => {
24
+ const { scope: c, contextStateRef: n, navigationStateRef: t } = e;
25
+ if (n.current && t.current && c) {
26
+ b(e);
27
+ const r = N(t.current.navigationMatrix);
28
+ if (r) {
29
+ const a = o.getActiveNavDataElement(c, r);
30
+ a && (n.current.activeId = r, a.setAttribute("tabIndex", "0"));
31
31
  }
32
32
  }
33
- }, M = (e) => {
34
- const { contextStateRef: o, navigationStateRef: n, document: t } = e;
35
- if (o.current && n.current && t) {
36
- const c = C(t), r = a.getNavigatableId(c);
37
- r && r === o.current.activeId && (n.current.activeElementIsFocused = !0);
33
+ }, O = (e) => {
34
+ const { contextStateRef: c, navigationStateRef: n, document: t } = e;
35
+ if (c.current && n.current && t) {
36
+ const r = A(t), a = o.getNavigatableId(r);
37
+ a && a === c.current.activeId && (n.current.activeElementIsFocused = !0);
38
38
  }
39
- }, B = (e) => {
40
- const { scope: o, contextStateRef: n, navigationStateRef: t } = e;
41
- if (N(e), n.current && t.current && o) {
42
- if (!a.getActiveNavDataElement(o, n.current.activeId)) {
43
- const r = t.current.navigationMatrix[0][0], i = a.getActiveNavDataElement(o, r);
44
- r && i && (n.current.activeId = r, i.setAttribute("tabIndex", "0"), t.current.activeElementIsFocused && i.focus());
39
+ }, G = (e) => {
40
+ const { scope: c, contextStateRef: n, navigationStateRef: t, focusFirst: r } = e;
41
+ if (r && (R(e), h(e), D(e)), b(e), n.current && t.current && c) {
42
+ if (!o.getActiveNavDataElement(c, n.current.activeId)) {
43
+ const f = N(t.current.navigationMatrix), i = o.getActiveNavDataElement(c, f);
44
+ f && i && (n.current.activeId = f, i.setAttribute("tabIndex", "0"), t.current.activeElementIsFocused && i.focus());
45
45
  }
46
46
  t.current.activeElementIsFocused = !1;
47
47
  }
48
- }, K = (e, o) => {
49
- const { contextStateRef: n } = o;
48
+ }, V = (e, c) => {
49
+ const { contextStateRef: n } = c;
50
50
  if (e.isDefaultPrevented() || !n.current)
51
51
  return;
52
- const t = e.target, c = a.getNavigatableId(t);
53
- if (c && c !== n.current.activeId) {
54
- const r = a.getClosestScope(t);
55
- if (!r)
52
+ const t = e.target, r = o.getNavigatableId(t);
53
+ if (r && r !== n.current.activeId) {
54
+ const a = o.getClosestScope(t);
55
+ if (!a)
56
56
  return;
57
- const i = a.getActiveNavDataElement(r, n.current.activeId);
58
- i && i.setAttribute("tabIndex", "-1"), t.setAttribute("tabIndex", "0"), n.current.activeId = c;
57
+ const f = o.getActiveNavDataElement(a, n.current.activeId);
58
+ f && f.setAttribute("tabIndex", "-1"), t.setAttribute("tabIndex", "0"), n.current.activeId = r;
59
59
  }
60
- }, P = (e, o) => {
60
+ }, W = (e, c) => {
61
61
  const {
62
62
  contextStateRef: n,
63
63
  navigationStateRef: t,
64
- onNavigationAction: c
65
- } = o;
64
+ onNavigationAction: r
65
+ } = c;
66
66
  if (e.isDefaultPrevented() || !n.current || !t.current)
67
67
  return;
68
- if (e.keyCode === f.esc) {
69
- const l = a.getClosestNavigatableElement(e.target);
70
- a.focusElement({ elementForFocus: l, event: e, contextStateRef: n });
68
+ let a;
69
+ if (e.keyCode === l.esc) {
70
+ a = o.getClosestNavigatableElement(e.target), o.focusElement({ elementForFocus: a, event: e, contextStateRef: n });
71
71
  return;
72
72
  }
73
- const r = e.target, i = r.className.indexOf("k-checkbox") === -1 ? r : a.getClosestNavigatableElement(r), v = a.getNavigatableId(i), m = a.getNavigatableLevel(i), I = a.getClosestScope(i), u = t.current.navigationMatrix;
74
- if (m !== void 0 && I) {
75
- if (e.keyCode === f.enter) {
76
- const l = a.getNavigatableElement(i, { level: m + 1 });
77
- if (l) {
78
- a.focusElement({
79
- elementForFocus: l,
73
+ const f = e.target, i = f.className.indexOf("k-checkbox") === -1 ? f : o.getClosestNavigatableElement(f), g = o.getNavigatableId(i), E = g == null ? void 0 : g.endsWith("column"), x = o.getNavigatableLevel(i), u = o.getClosestScope(i), v = t.current.navigationMatrix, I = e.metaKey || e.ctrlKey, m = F(t, v, g);
74
+ if (x !== void 0 && u) {
75
+ if (e.keyCode === l.enter) {
76
+ const s = o.getNavigatableElement(i, { level: x + 1 });
77
+ if (s) {
78
+ o.focusElement({
79
+ elementForFocus: s,
80
80
  event: e,
81
81
  contextStateRef: n,
82
82
  prevElement: i
83
83
  });
84
84
  return;
85
85
  } else {
86
- const E = a.getFocusableElements(i)[0];
87
- a.focusElement({ elementForFocus: E, event: e, contextStateRef: n, prevElement: i });
86
+ a = o.getFocusableElements(i)[0], o.focusElement({ elementForFocus: a, event: e, contextStateRef: n, prevElement: i });
88
87
  return;
89
88
  }
90
89
  }
91
- if (e.keyCode === f.up || e.keyCode === f.down || e.keyCode === f.left || e.keyCode === f.right) {
92
- const l = e.keyCode === f.up || e.keyCode === f.left, E = e.keyCode === f.up || e.keyCode === f.down;
93
- let g;
94
- if (t.current && t.current.prevNavigationIndexes) {
95
- const [d, s] = t.current.prevNavigationIndexes;
96
- u[d][s] === v ? g = t.current.prevNavigationIndexes : g = y(u, v);
97
- } else
98
- g = y(u, v);
99
- if (g) {
100
- const [d, s] = g, [x, p] = E ? h(d, s, v, u, l) : F(d, s, v, u, l);
101
- if (x) {
102
- const b = a.getActiveNavDataElement(I, x);
103
- a.focusElement({ elementForFocus: b, event: e, contextStateRef: n, prevElement: i }), t.current.prevNavigationIndexes = p, c && c({ focusElement: b, event: e });
104
- }
90
+ if (e.keyCode === l.home && m)
91
+ if (I)
92
+ D(
93
+ {
94
+ scope: u,
95
+ navigationStateRef: t,
96
+ contextStateRef: n
97
+ },
98
+ e
99
+ );
100
+ else {
101
+ const s = w(t.current.navigationMatrix, m[0]);
102
+ a = o.getActiveNavDataElement(u, s), o.focusElement({ elementForFocus: a, event: e, contextStateRef: n });
103
+ }
104
+ if (e.keyCode === l.end && m)
105
+ if (I) {
106
+ const s = P(t.current.navigationMatrix);
107
+ a = o.getActiveNavDataElement(u, s), o.focusElement({ elementForFocus: a, event: e, contextStateRef: n });
108
+ } else {
109
+ const s = M(t.current.navigationMatrix, m[0]);
110
+ a = o.getActiveNavDataElement(u, s), o.focusElement({ elementForFocus: a, event: e, contextStateRef: n });
105
111
  }
112
+ if (e.keyCode === l.up || e.keyCode === l.down || e.keyCode === l.left || e.keyCode === l.right) {
113
+ const s = e.keyCode === l.up || e.keyCode === l.left, d = e.keyCode === l.up || e.keyCode === l.down;
114
+ if (m) {
115
+ const [p, C] = m, [y, S] = d ? H(p, C, g, v, s) : U(p, C, g, v, s);
116
+ y && (a = o.getActiveNavDataElement(u, y), o.focusElement({ elementForFocus: a, event: e, contextStateRef: n, prevElement: i }), t.current.prevNavigationIndexes = S);
117
+ }
118
+ }
119
+ if (I && e.keyCode === l.left && E) {
120
+ r && r({ focusElement: i, event: e, action: "reorderToLeft" }), e.preventDefault();
121
+ return;
122
+ }
123
+ if (I && e.keyCode === l.right && E) {
124
+ r && r({ focusElement: i, event: e, action: "reorderToRight" }), e.preventDefault();
125
+ return;
126
+ }
127
+ if (e.keyCode === l.pageUp) {
128
+ r && r({ focusElement: a, event: e, action: "moveToNextPage" }), e.preventDefault();
129
+ return;
130
+ }
131
+ if (e.keyCode === l.pageDown) {
132
+ r && r({ focusElement: a, event: e, action: "moveToPrevPage" }), e.preventDefault();
133
+ return;
106
134
  }
135
+ r && r({ focusElement: a, event: e });
107
136
  }
108
- }, N = (e) => {
109
- const { navigationStateRef: o, scope: n } = e;
110
- if (!o.current || !n)
137
+ }, b = (e) => {
138
+ const { navigationStateRef: c, scope: n } = e;
139
+ if (!c.current || !n)
111
140
  return;
112
- const t = [], c = R(n), r = A(n);
113
- if (!c || !r)
141
+ const t = [], r = K(n), a = L(n), f = T(n) || { children: [] };
142
+ if (!r || !a)
114
143
  return;
115
- const i = Array.from(c.children), v = Array.from(r.children);
116
- [...i, ...v].forEach((m, I) => {
117
- Array.from(m.children).forEach((u) => {
118
- const l = D(u);
119
- if (!l)
144
+ const i = Array.from(r.children), g = Array.from(a.children);
145
+ [...i, ...g, f].forEach((E, x) => {
146
+ Array.from(E.children).forEach((u) => {
147
+ const v = B(u);
148
+ if (!v)
120
149
  return;
121
- const E = u.rowSpan || 1, g = u.colSpan || 1;
122
- let d;
123
- for (let s = I, x = I + E; s < x; s++) {
124
- if (t[s] || (t[s] = []), d === void 0) {
125
- const p = t[s].findIndex((b) => !b);
126
- d = p > -1 ? p : t[s].length;
150
+ const I = u.rowSpan || 1, m = u.colSpan || 1;
151
+ let s;
152
+ for (let d = x, p = x + I; d < p; d++) {
153
+ if (t[d] || (t[d] = []), s === void 0) {
154
+ const C = t[d].findIndex((y) => !y);
155
+ s = C > -1 ? C : t[d].length;
127
156
  }
128
- t[s][d] = l || "";
157
+ t[d][s] = v || "";
129
158
  }
130
- for (let s = d + 1, x = d + g; s < x; s++)
131
- t[I][s] = l || "";
159
+ for (let d = s + 1, p = s + m; d < p; d++)
160
+ t[x][d] = v || "";
132
161
  });
133
- }), o.current.navigationMatrix = t.filter((m) => !!m), o.current.lastHeaderIndex = i.length - 1;
134
- }, U = {
135
- onConstructor: k,
136
- onComponentDidMount: w,
137
- onGetSnapshotBeforeUpdate: M,
138
- onComponentDidUpdate: B,
139
- onFocus: K,
140
- onKeyDown: P,
141
- generateMatrix: N
162
+ }), c.current.navigationMatrix = t.filter((E) => !!E), c.current.lastHeaderIndex = i.length - 1;
163
+ }, z = {
164
+ onConstructor: R,
165
+ onComponentDidMount: h,
166
+ onGetSnapshotBeforeUpdate: O,
167
+ onComponentDidUpdate: G,
168
+ onFocus: V,
169
+ onKeyDown: W,
170
+ generateMatrix: b,
171
+ focusFirstDataElement: D
142
172
  };
143
173
  export {
144
- U as tableKeyboardNavigation
174
+ z as tableKeyboardNavigation
145
175
  };
@@ -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 client";"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const s=require("@progress/kendo-react-common"),o=require("./constants.js"),i=(e,t,n="cell")=>`${t}_${e}_${n}`,A=e=>{if(e)return parseInt(e.getAttribute(o.KEYBOARD_NAV_DATA_LEVEL)||"",10)},E=e=>{if(!e)return;const t=e.getAttribute(o.KEYBOARD_NAV_DATA_ID);return t||void 0},u=e=>e?!!e.getAttribute(o.KEYBOARD_NAV_DATA_ID):!1,g=(e,t={level:0})=>e.querySelector(`[${o.KEYBOARD_NAV_DATA_LEVEL}='${t.level}']`),d=e=>e&&e.parentElement&&e.parentElement.closest(`[${o.KEYBOARD_NAV_DATA_LEVEL}]`),N=(e,t)=>e.querySelector(`[${o.KEYBOARD_NAV_DATA_ID}='${t}']`),_=e=>e&&e.parentElement&&e.parentElement.closest(`[${o.KEYBOARD_NAV_DATA_SCOPE}]`),f=e=>e.querySelector(`[${o.KEYBOARD_NAV_DATA_HEADER}]`),b=e=>e.querySelector(`[${o.KEYBOARD_NAV_DATA_BODY}]`),v=(e,t={focusable:!1})=>{const n=t.focusable?s.FOCUSABLE_ELEMENTS:s.TABBABLE_ELEMENTS;return Array.from(e.querySelectorAll(n.join(",")))},D=(e,t={level:0})=>{if(!e)return[];const n=s.FOCUSABLE_ELEMENTS.map(l=>l+`[${o.KEYBOARD_NAV_DATA_LEVEL}='${t.level}']`).join(",");return Array.from(e.querySelectorAll(n))},I=(e={level:0})=>{const t=s.FOCUSABLE_ELEMENTS.map(n=>n+`[${o.KEYBOARD_NAV_DATA_LEVEL}='${e.level}']`).join(",");return n=>n.matches(t)},m=e=>{const{elementForFocus:t,event:n,contextStateRef:l,prevElement:a}=e;if(l.current&&t&&t.focus){n.preventDefault();const r=t.querySelector(".k-checkbox-wrap .k-checkbox");r&&r.focus?r.focus():t.focus(),u(t)&&(t.setAttribute("tabIndex","0"),l.current.activeId=E(t)),a&&u(a)&&a.setAttribute("tabIndex","-1")}},B=e=>e.current?e.current.idPrefix:"",L=(e,t,n,l,a)=>{if(!n)return[];let r=e+(a?-1:1);for(;r>=0&&r<l.length;){const c=l[r][t];if(c!==n)return[c,[r,t]];r=r+(a?-1:1)}return[]},T=(e,t,n,l,a)=>{if(!n)return[];let r=t+(a?-1:1);for(;r>=0&&r<l[e].length;){const c=l[e][r];if(c!==n)return[c,[e,r]];r=r+(a?-1:1)}return[]},x=(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]}},y=e=>e.current?e.current.navigationMatrix.length:0,O=e=>e?`${e}${o.KEYBOARD_NAV_FILTER_COL_SUFFIX}`:"",S={generateNavigatableId:i,getNavigatableId:E,getNavigatableLevel:A,getNavigatableElement:g,getClosestNavigatableElement:d,getActiveNavDataElement:N,getClosestScope:_,getHeaderElement:f,getBodyElement:b,getFocusableElements:v,getNavigatableElements:D,filterNavigatableElements:I,focusElement:m,getIdPrefix:B,isNavigatable:u,findNextIdByRowIndex:L,findNextIdByCellIndex:T,findId:x,getNextNavigationIndex:y,getFilterColumnId:O};exports.filterNavigatableElements=I;exports.findId=x;exports.findNextIdByCellIndex=T;exports.findNextIdByRowIndex=L;exports.focusElement=m;exports.generateNavigatableId=i;exports.getActiveNavDataElement=N;exports.getBodyElement=b;exports.getClosestNavigatableElement=d;exports.getClosestScope=_;exports.getFilterColumnId=O;exports.getFocusableElements=v;exports.getHeaderElement=f;exports.getIdPrefix=B;exports.getNavigatableElement=g;exports.getNavigatableElements=D;exports.getNavigatableId=E;exports.getNavigatableLevel=A;exports.getNextNavigationIndex=y;exports.isNavigatable=u;exports.tableKeyboardNavigationTools=S;
8
+ "use client";"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const c=require("@progress/kendo-react-common"),a=require("./constants.js"),d=(e,t,r="cell")=>`${t}_${e}_${r}`,f=e=>{if(e)return parseInt(e.getAttribute(a.KEYBOARD_NAV_DATA_LEVEL)||"",10)},E=e=>{if(!e)return;const t=e.getAttribute(a.KEYBOARD_NAV_DATA_ID);return t||void 0},u=e=>e?!!e.getAttribute(a.KEYBOARD_NAV_DATA_ID):!1,N=(e,t={level:0})=>e.querySelector(`[${a.KEYBOARD_NAV_DATA_LEVEL}='${t.level}']`),_=e=>e&&e.parentElement&&e.parentElement.closest(`[${a.KEYBOARD_NAV_DATA_LEVEL}]`),g=(e,t)=>e.querySelector(`[${a.KEYBOARD_NAV_DATA_ID}='${t}']`),D=e=>e&&e.parentElement&&e.parentElement.closest(`[${a.KEYBOARD_NAV_DATA_SCOPE}]`),I=e=>e.querySelector(`[${a.KEYBOARD_NAV_DATA_HEADER}]`),v=e=>e.querySelector(`[${a.KEYBOARD_NAV_DATA_BODY}]`),O=e=>e.querySelector(".k-grid-norecords"),b=(e,t)=>{const{scope:r,navigationStateRef:n,contextStateRef:o}=e;if(!n.current||!r)return;const l=R(n.current.navigationMatrix),s=g(r,l);A({elementForFocus:s,contextStateRef:o,event:t})},m=(e,t={focusable:!1})=>{const r=t.focusable?c.FOCUSABLE_ELEMENTS:c.TABBABLE_ELEMENTS;return Array.from(e.querySelectorAll(r.join(",")))},x=(e,t={level:0})=>{if(!e)return[];const r=c.FOCUSABLE_ELEMENTS.map(n=>n+`[${a.KEYBOARD_NAV_DATA_LEVEL}='${t.level}']`).join(",");return Array.from(e.querySelectorAll(r))},C=(e={level:0})=>{const t=c.FOCUSABLE_ELEMENTS.map(r=>r+`[${a.KEYBOARD_NAV_DATA_LEVEL}='${e.level}']`).join(",");return r=>r.matches(t)},A=e=>{const{elementForFocus:t,event:r,contextStateRef:n,prevElement:o}=e;if(n.current&&t&&t.focus){r==null||r.preventDefault();const l=t.querySelector(".k-checkbox-wrap .k-checkbox");l&&l.focus?l.focus():t.focus(),u(t)&&(t.setAttribute("tabIndex","0"),n.current.activeId=E(t)),o&&u(o)&&o.setAttribute("tabIndex","-1")}},B=e=>e.current?e.current.idPrefix:"",L=(e,t,r,n,o)=>{if(!r)return[];let l=e+(o?-1:1);for(;l>=0&&l<n.length;){const s=n[l][t];if(s!==r)return[s,[l,t]];l=l+(o?-1:1)}return[]},y=(e,t,r,n,o)=>{if(!r)return[];let l=t+(o?-1:1);for(;l>=0&&l<n[e].length;){const s=n[e][l];if(s!==r)return[s,[e,l]];l=l+(o?-1:1)}return[]},i=(e,t)=>{if(t){for(let r=0;r<e.length;r++)for(let n=0;n<e[r].length;n++)if(e[r][n]===t)return[r,n]}},F=e=>e.current?e.current.navigationMatrix.length:0,R=e=>e.flat().find(t=>t.endsWith("cell")),S=e=>e.flat().reverse().find(t=>t.endsWith("cell")),V=(e,t)=>e[t][0],$=(e,t)=>Array.from(e[t]).reverse()[0],T=e=>e?`${e}${a.KEYBOARD_NAV_FILTER_COL_SUFFIX}`:"",p=(e,t,r)=>{let n;if(e.current&&e.current.prevNavigationIndexes){const[o,l]=e.current.prevNavigationIndexes;t[o][l]===r?n=e.current.prevNavigationIndexes:n=i(t,r)}else n=i(t,r);return n},K={generateNavigatableId:d,getNavigatableId:E,getNavigatableLevel:f,getNavigatableElement:N,getClosestNavigatableElement:_,getActiveNavDataElement:g,getClosestScope:D,getHeaderElement:I,getBodyElement:v,getFocusableElements:m,getNavigatableElements:x,filterNavigatableElements:C,focusElement:A,getIdPrefix:B,isNavigatable:u,findNextIdByRowIndex:L,findNextIdByCellIndex:y,findId:i,getNextNavigationIndex:F,getFilterColumnId:T,focusFirstDataElement:b};exports.filterNavigatableElements=C;exports.findId=i;exports.findNextIdByCellIndex=y;exports.findNextIdByRowIndex=L;exports.focusElement=A;exports.focusFirstDataElement=b;exports.generateNavigatableId=d;exports.getActiveNavDataElement=g;exports.getBodyElement=v;exports.getClosestNavigatableElement=_;exports.getClosestScope=D;exports.getCurrentIdIndexes=p;exports.getFilterColumnId=T;exports.getFirstDataCell=R;exports.getFirstRowDataCell=V;exports.getFocusableElements=m;exports.getHeaderElement=I;exports.getIdPrefix=B;exports.getLastDataCell=S;exports.getLastRowDataCell=$;exports.getNavigatableElement=N;exports.getNavigatableElements=x;exports.getNavigatableId=E;exports.getNavigatableLevel=f;exports.getNextNavigationIndex=F;exports.getNoRecordsElement=O;exports.isNavigatable=u;exports.tableKeyboardNavigationTools=K;
@@ -6,107 +6,133 @@
6
6
  *-------------------------------------------------------------------------------------------
7
7
  */
8
8
  "use client";
9
- import { FOCUSABLE_ELEMENTS as a, TABBABLE_ELEMENTS as f } from "@progress/kendo-react-common";
10
- import { KEYBOARD_NAV_DATA_LEVEL as u, KEYBOARD_NAV_DATA_ID as i, KEYBOARD_NAV_DATA_SCOPE as E, KEYBOARD_NAV_DATA_HEADER as d, KEYBOARD_NAV_DATA_BODY as g, KEYBOARD_NAV_FILTER_COL_SUFFIX as b } from "./constants.mjs";
11
- const _ = (e, t, r = "cell") => `${t}_${e}_${r}`, N = (e) => {
9
+ import { FOCUSABLE_ELEMENTS as i, TABBABLE_ELEMENTS as g } from "@progress/kendo-react-common";
10
+ import { KEYBOARD_NAV_DATA_LEVEL as s, KEYBOARD_NAV_DATA_ID as f, KEYBOARD_NAV_DATA_SCOPE as I, KEYBOARD_NAV_DATA_HEADER as N, KEYBOARD_NAV_DATA_BODY as v, KEYBOARD_NAV_FILTER_COL_SUFFIX as b } from "./constants.mjs";
11
+ const _ = (e, t, r = "cell") => `${t}_${e}_${r}`, D = (e) => {
12
12
  if (e)
13
- return parseInt(e.getAttribute(u) || "", 10);
14
- }, A = (e) => {
13
+ return parseInt(e.getAttribute(s) || "", 10);
14
+ }, d = (e) => {
15
15
  if (!e)
16
16
  return;
17
- const t = e.getAttribute(i);
17
+ const t = e.getAttribute(f);
18
18
  return t || void 0;
19
- }, s = (e) => e ? !!e.getAttribute(i) : !1, v = (e, t = { level: 0 }) => e.querySelector(`[${u}='${t.level}']`), I = (e) => e && e.parentElement && e.parentElement.closest(`[${u}]`), m = (e, t) => e.querySelector(`[${i}='${t}']`), $ = (e) => e && e.parentElement && e.parentElement.closest(`[${E}]`), D = (e) => e.querySelector(`[${d}]`), B = (e) => e.querySelector(`[${g}]`), p = (e, t = { focusable: !1 }) => {
20
- const r = t.focusable ? a : f;
19
+ }, u = (e) => e ? !!e.getAttribute(f) : !1, x = (e, t = { level: 0 }) => e.querySelector(`[${s}='${t.level}']`), m = (e) => e && e.parentElement && e.parentElement.closest(`[${s}]`), A = (e, t) => e.querySelector(`[${f}='${t}']`), p = (e) => e && e.parentElement && e.parentElement.closest(`[${I}]`), $ = (e) => e.querySelector(`[${N}]`), y = (e) => e.querySelector(`[${v}]`), V = (e) => e.querySelector(".k-grid-norecords"), B = (e, t) => {
20
+ const {
21
+ scope: r,
22
+ navigationStateRef: n,
23
+ contextStateRef: l
24
+ } = e;
25
+ if (!n.current || !r)
26
+ return;
27
+ const o = R(n.current.navigationMatrix), c = A(r, o);
28
+ E({ elementForFocus: c, contextStateRef: l, event: t });
29
+ }, C = (e, t = { focusable: !1 }) => {
30
+ const r = t.focusable ? i : g;
21
31
  return Array.from(e.querySelectorAll(r.join(",")));
22
- }, x = (e, t = { level: 0 }) => {
32
+ }, h = (e, t = { level: 0 }) => {
23
33
  if (!e)
24
34
  return [];
25
- const r = a.map((l) => l + `[${u}='${t.level}']`).join(",");
35
+ const r = i.map((n) => n + `[${s}='${t.level}']`).join(",");
26
36
  return Array.from(e.querySelectorAll(r));
27
- }, y = (e = { level: 0 }) => {
28
- const t = a.map(
29
- (r) => r + `[${u}='${e.level}']`
37
+ }, F = (e = { level: 0 }) => {
38
+ const t = i.map(
39
+ (r) => r + `[${s}='${e.level}']`
30
40
  ).join(",");
31
41
  return (r) => r.matches(t);
32
- }, S = (e) => {
33
- const { elementForFocus: t, event: r, contextStateRef: l, prevElement: o } = e;
34
- if (l.current && t && t.focus) {
35
- r.preventDefault();
36
- const n = t.querySelector(".k-checkbox-wrap .k-checkbox");
37
- n && n.focus ? n.focus() : t.focus(), s(t) && (t.setAttribute("tabIndex", "0"), l.current.activeId = A(t)), o && s(o) && o.setAttribute("tabIndex", "-1");
42
+ }, E = (e) => {
43
+ const { elementForFocus: t, event: r, contextStateRef: n, prevElement: l } = e;
44
+ if (n.current && t && t.focus) {
45
+ r == null || r.preventDefault();
46
+ const o = t.querySelector(".k-checkbox-wrap .k-checkbox");
47
+ o && o.focus ? o.focus() : t.focus(), u(t) && (t.setAttribute("tabIndex", "0"), n.current.activeId = d(t)), l && u(l) && l.setAttribute("tabIndex", "-1");
38
48
  }
39
- }, h = (e) => e.current ? e.current.idPrefix : "", O = (e, t, r, l, o) => {
49
+ }, S = (e) => e.current ? e.current.idPrefix : "", L = (e, t, r, n, l) => {
40
50
  if (!r)
41
51
  return [];
42
- let n = e + (o ? -1 : 1);
43
- for (; n >= 0 && n < l.length; ) {
44
- const c = l[n][t];
52
+ let o = e + (l ? -1 : 1);
53
+ for (; o >= 0 && o < n.length; ) {
54
+ const c = n[o][t];
45
55
  if (c !== r)
46
- return [c, [n, t]];
47
- n = n + (o ? -1 : 1);
56
+ return [c, [o, t]];
57
+ o = o + (l ? -1 : 1);
48
58
  }
49
59
  return [];
50
- }, T = (e, t, r, l, o) => {
60
+ }, O = (e, t, r, n, l) => {
51
61
  if (!r)
52
62
  return [];
53
- let n = t + (o ? -1 : 1);
54
- for (; n >= 0 && n < l[e].length; ) {
55
- const c = l[e][n];
63
+ let o = t + (l ? -1 : 1);
64
+ for (; o >= 0 && o < n[e].length; ) {
65
+ const c = n[e][o];
56
66
  if (c !== r)
57
- return [c, [e, n]];
58
- n = n + (o ? -1 : 1);
67
+ return [c, [e, o]];
68
+ o = o + (l ? -1 : 1);
59
69
  }
60
70
  return [];
61
- }, C = (e, t) => {
71
+ }, a = (e, t) => {
62
72
  if (t) {
63
73
  for (let r = 0; r < e.length; r++)
64
- for (let l = 0; l < e[r].length; l++)
65
- if (e[r][l] === t)
66
- return [r, l];
74
+ for (let n = 0; n < e[r].length; n++)
75
+ if (e[r][n] === t)
76
+ return [r, n];
67
77
  }
68
- }, L = (e) => e.current ? e.current.navigationMatrix.length : 0, F = (e) => e ? `${e}${b}` : "", R = {
78
+ }, T = (e) => e.current ? e.current.navigationMatrix.length : 0, R = (e) => e.flat().find((t) => t.endsWith("cell")), Y = (e) => e.flat().reverse().find((t) => t.endsWith("cell")), k = (e, t) => e[t][0], j = (e, t) => Array.from(e[t]).reverse()[0], q = (e) => e ? `${e}${b}` : "", P = (e, t, r) => {
79
+ let n;
80
+ if (e.current && e.current.prevNavigationIndexes) {
81
+ const [l, o] = e.current.prevNavigationIndexes;
82
+ t[l][o] === r ? n = e.current.prevNavigationIndexes : n = a(t, r);
83
+ } else
84
+ n = a(t, r);
85
+ return n;
86
+ }, H = {
69
87
  generateNavigatableId: _,
70
- getNavigatableId: A,
71
- getNavigatableLevel: N,
72
- getNavigatableElement: v,
73
- getClosestNavigatableElement: I,
74
- getActiveNavDataElement: m,
75
- getClosestScope: $,
76
- getHeaderElement: D,
77
- getBodyElement: B,
78
- getFocusableElements: p,
79
- getNavigatableElements: x,
80
- filterNavigatableElements: y,
81
- focusElement: S,
82
- getIdPrefix: h,
83
- isNavigatable: s,
84
- findNextIdByRowIndex: O,
85
- findNextIdByCellIndex: T,
86
- findId: C,
87
- getNextNavigationIndex: L,
88
- getFilterColumnId: F
88
+ getNavigatableId: d,
89
+ getNavigatableLevel: D,
90
+ getNavigatableElement: x,
91
+ getClosestNavigatableElement: m,
92
+ getActiveNavDataElement: A,
93
+ getClosestScope: p,
94
+ getHeaderElement: $,
95
+ getBodyElement: y,
96
+ getFocusableElements: C,
97
+ getNavigatableElements: h,
98
+ filterNavigatableElements: F,
99
+ focusElement: E,
100
+ getIdPrefix: S,
101
+ isNavigatable: u,
102
+ findNextIdByRowIndex: L,
103
+ findNextIdByCellIndex: O,
104
+ findId: a,
105
+ getNextNavigationIndex: T,
106
+ getFilterColumnId: q,
107
+ focusFirstDataElement: B
89
108
  };
90
109
  export {
91
- y as filterNavigatableElements,
92
- C as findId,
93
- T as findNextIdByCellIndex,
94
- O as findNextIdByRowIndex,
95
- S as focusElement,
110
+ F as filterNavigatableElements,
111
+ a as findId,
112
+ O as findNextIdByCellIndex,
113
+ L as findNextIdByRowIndex,
114
+ E as focusElement,
115
+ B as focusFirstDataElement,
96
116
  _ as generateNavigatableId,
97
- m as getActiveNavDataElement,
98
- B as getBodyElement,
99
- I as getClosestNavigatableElement,
100
- $ as getClosestScope,
101
- F as getFilterColumnId,
102
- p as getFocusableElements,
103
- D as getHeaderElement,
104
- h as getIdPrefix,
105
- v as getNavigatableElement,
106
- x as getNavigatableElements,
107
- A as getNavigatableId,
108
- N as getNavigatableLevel,
109
- L as getNextNavigationIndex,
110
- s as isNavigatable,
111
- R as tableKeyboardNavigationTools
117
+ A as getActiveNavDataElement,
118
+ y as getBodyElement,
119
+ m as getClosestNavigatableElement,
120
+ p as getClosestScope,
121
+ P as getCurrentIdIndexes,
122
+ q as getFilterColumnId,
123
+ R as getFirstDataCell,
124
+ k as getFirstRowDataCell,
125
+ C as getFocusableElements,
126
+ $ as getHeaderElement,
127
+ S as getIdPrefix,
128
+ Y as getLastDataCell,
129
+ j as getLastRowDataCell,
130
+ x as getNavigatableElement,
131
+ h as getNavigatableElements,
132
+ d as getNavigatableId,
133
+ D as getNavigatableLevel,
134
+ T as getNextNavigationIndex,
135
+ V as getNoRecordsElement,
136
+ u as isNavigatable,
137
+ H as tableKeyboardNavigationTools
112
138
  };
@@ -10,7 +10,7 @@ const e = {
10
10
  name: "@progress/kendo-react-data-tools",
11
11
  productName: "KendoReact",
12
12
  productCodes: ["KENDOUIREACT", "KENDOUICOMPLETE"],
13
- publishDate: 1714143475,
13
+ publishDate: 1715583246,
14
14
  version: "",
15
15
  licensingDocsUrl: "https://www.telerik.com/kendo-react-ui/components/my-license/"
16
16
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@progress/kendo-react-data-tools",
3
- "version": "7.5.0-develop.9",
3
+ "version": "8.0.0-develop.1",
4
4
  "description": "Includes React Pager & React Filter component, an intuitive interface to create complex filter descriptions. KendoReact Data Tools package",
5
5
  "author": "Progress",
6
6
  "license": "SEE LICENSE IN LICENSE.md",
@@ -25,15 +25,15 @@
25
25
  "@progress/kendo-data-query": "^1.0.0",
26
26
  "@progress/kendo-drawing": "^1.20.1",
27
27
  "@progress/kendo-licensing": "^1.3.4",
28
- "@progress/kendo-react-animation": "7.5.0-develop.9",
29
- "@progress/kendo-react-buttons": "7.5.0-develop.9",
30
- "@progress/kendo-react-common": "7.5.0-develop.9",
31
- "@progress/kendo-react-dateinputs": "7.5.0-develop.9",
32
- "@progress/kendo-react-dropdowns": "7.5.0-develop.9",
33
- "@progress/kendo-react-inputs": "7.5.0-develop.9",
34
- "@progress/kendo-react-intl": "7.5.0-develop.9",
35
- "@progress/kendo-react-popup": "7.5.0-develop.9",
36
- "@progress/kendo-svg-icons": "^2.1.0",
28
+ "@progress/kendo-react-animation": "8.0.0-develop.1",
29
+ "@progress/kendo-react-buttons": "8.0.0-develop.1",
30
+ "@progress/kendo-react-common": "8.0.0-develop.1",
31
+ "@progress/kendo-react-dateinputs": "8.0.0-develop.1",
32
+ "@progress/kendo-react-dropdowns": "8.0.0-develop.1",
33
+ "@progress/kendo-react-inputs": "8.0.0-develop.1",
34
+ "@progress/kendo-react-intl": "8.0.0-develop.1",
35
+ "@progress/kendo-react-popup": "8.0.0-develop.1",
36
+ "@progress/kendo-svg-icons": "^3.0.0",
37
37
  "react": "^16.8.2 || ^17.0.0 || ^18.0.0",
38
38
  "react-dom": "^16.8.2 || ^17.0.0 || ^18.0.0"
39
39
  },
@@ -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 client";"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const B=require("react"),G=require("react-dom"),p=require("@progress/kendo-react-common"),t=require("./utils.js");function q(l){const c=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(l){for(const r in l)if(r!=="default"){const y=Object.getOwnPropertyDescriptor(l,r);Object.defineProperty(c,r,y.get?y:{enumerable:!0,get:()=>l[r]})}}return c.default=l,Object.freeze(c)}const n=q(B),J=q(G),L=l=>{var C;const{onRelease:c,childRef:r}=l,{enabled:y,drag:I,mode:d,cell:T}=t.getSelectionOptions(l.selectable),u=n.useRef(null),D=n.useRef(null),R=n.useRef({clientX:0,clientY:0}),[K,b]=n.useState(null),M=n.useRef(),v=n.useRef(!1),h=n.useRef(!1),j=n.useCallback(m=>{const{event:e}=m;h.current=t.isInNonSelectable(e.originalEvent.target),!(h.current||!u.current)&&(M.current=t.relativeContextElement(u.current.element),R.current={clientY:e.clientY,clientX:e.clientX})},[]),_=n.useCallback(m=>{const{event:e}=m,{clientX:o,clientY:s}=R.current;if(!h.current&&!(!I||d==="single")&&((Math.abs(s-e.clientY)>5||Math.abs(o-e.clientX)>5)&&(v.current=!0),v.current)){const a=t.getOffset(M.current);b({top:Math.min(s,e.clientY)-a.top,left:Math.min(o,e.clientX)-a.left,width:Math.abs(e.clientX-o),height:Math.abs(e.clientY-s)})}},[b,I,d]),F=n.useCallback(m=>{const{event:e}=m,{clientX:o,clientY:s}=R.current;if(h.current||!u.current)return;const a=u.current.element&&u.current.element.ownerDocument;if(a){if(v.current){const f=Math.min(s,e.clientY),E=Math.min(o,e.clientX),x=Math.max(s,e.clientY),g=Math.max(o,e.clientX),i=D.current;if(!i)return;i.style.visibility="hidden";const S=a.elementFromPoint(E,f),w=a.elementFromPoint(g,x);if(i.style.visibility="",!S||!w)return;const O=t.closestTagName(S,"TD"),z=t.closestTagName(O,"TR"),P=t.closestTagName(w,"TD"),A=t.closestTagName(P,"TR"),X=t.getColumnIndex(O),Y=t.getRowIndex(z),N=t.getColumnIndex(P),k=t.getRowIndex(A);X!==void 0&&Y!==void 0&&N!==void 0&&k!==void 0&&c({nativeEvent:e.originalEvent,startRowIndex:Y,startColIndex:X,endRowIndex:k,endColIndex:N,altKey:e.altKey,shiftKey:e.shiftKey,ctrlKey:e.ctrlKey,metaKey:e.metaKey,mode:d,cell:T,isDrag:!0})}else{const f=a.elementFromPoint(o,s);if(!f)return;const E=t.closestTagName(f,"TD"),x=t.closestTagName(f,"TR"),g=t.getColumnIndex(E),i=t.getRowIndex(x);E&&x&&i!==void 0&&g!==void 0&&c({nativeEvent:e.originalEvent,startRowIndex:i,startColIndex:g,endRowIndex:i,endColIndex:g,altKey:e.altKey,shiftKey:e.shiftKey,ctrlKey:e.ctrlKey,metaKey:e.metaKey,mode:d,cell:T,isDrag:!1})}b(null),v.current=!1,R.current={clientX:0,clientY:0}}},[b,d,T,c]),H=p.useDocument(D);return y?n.createElement(n.Fragment,null,n.createElement(p.Draggable,{onPress:j,onDrag:_,onRelease:F,ref:u,childRef:r},l.children),K&&J.createPortal(n.createElement("div",{ref:D,style:{...K,position:"fixed"},className:"k-marquee k-marquee-color"}),(C=H())==null?void 0:C.body)):n.cloneElement(n.Children.only(l.children),{ref:r})};exports.TableSelection=L;
8
+ "use client";"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const V=require("react"),W=require("react-dom"),j=require("@progress/kendo-react-common"),t=require("./utils.js");function F(l){const s=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(l){for(const a in l)if(a!=="default"){const g=Object.getOwnPropertyDescriptor(l,a);Object.defineProperty(s,a,g.get?g:{enumerable:!0,get:()=>l[a]})}}return s.default=l,Object.freeze(s)}const n=F(V),Z=F(W),$=l=>{var C;const{onRelease:s,childRef:a}=l,{enabled:g,drag:I,mode:i,cell:T}=t.getSelectionOptions(l.selectable),o=n.useRef(null),X=n.useRef(null),y=n.useRef({clientX:0,clientY:0,scrollX:0,scrollY:0,pressedElement:null}),[K,R]=n.useState(null),M=n.useRef(),b=n.useRef(!1),v=n.useRef(!1),_=n.useCallback(u=>{const{event:e}=u;if(v.current=t.isInNonSelectable(e.originalEvent.target),v.current||!o.current)return;M.current=t.relativeContextElement(o.current.element);const r=o.current.element&&o.current.element.ownerDocument;if(!r)return;const c=r.elementFromPoint(e.clientX,e.clientY);y.current={clientY:e.clientY,clientX:e.clientX,scrollX:e.scrollX,scrollY:e.scrollY,pressedElement:c}},[]),H=n.useCallback(u=>{const{event:e}=u,{clientX:r,clientY:c}=y.current;if(!v.current&&!(!I||i==="single")&&((Math.abs(c-e.clientY)>5||Math.abs(r-e.clientX)>5)&&(b.current=!0),b.current)){const E=t.getOffset(M.current);R({top:Math.min(c,e.clientY)-E.top,left:Math.min(r,e.clientX)-E.left,width:Math.abs(e.clientX-r),height:Math.abs(e.clientY-c)})}},[R,I,i]),z=n.useCallback(u=>{const{event:e}=u,{clientX:r,clientY:c,scrollX:E,scrollY:B,pressedElement:G}=y.current;if(v.current||!o.current)return;const h=o.current.element&&o.current.element.ownerDocument;if(h){if(b.current){const m=e.scrollY-B,D=e.scrollX-E,x=Math.min(c,e.clientY),d=Math.min(r,e.clientX),f=Math.max(c,e.clientY),J=Math.max(r,e.clientX),Y=X.current;if(!Y)return;Y.style.visibility="hidden";const L=h.elementFromPoint(d,x),S=m>0||D>0?G:L,w=h.elementFromPoint(J,f);if(Y.style.visibility="",!S||!w)return;const P=t.closestTagName(S,"TD"),Q=t.closestTagName(P,"TR"),p=t.closestTagName(w,"TD"),U=t.closestTagName(p,"TR"),O=t.getColumnIndex(P),N=t.getRowIndex(Q),k=t.getColumnIndex(p),q=t.getRowIndex(U);O!==void 0&&N!==void 0&&k!==void 0&&q!==void 0&&s({nativeEvent:e.originalEvent,startRowIndex:N,startColIndex:O,endRowIndex:q,endColIndex:k,altKey:e.altKey,shiftKey:e.shiftKey,ctrlKey:e.ctrlKey,metaKey:e.metaKey,mode:i,cell:T,isDrag:!0})}else{const m=h.elementFromPoint(r,c);if(!m)return;const D=t.closestTagName(m,"TD"),x=t.closestTagName(m,"TR"),d=t.getColumnIndex(D),f=t.getRowIndex(x);D&&x&&f!==void 0&&d!==void 0&&s({nativeEvent:e.originalEvent,startRowIndex:f,startColIndex:d,endRowIndex:f,endColIndex:d,altKey:e.altKey,shiftKey:e.shiftKey,ctrlKey:e.ctrlKey,metaKey:e.metaKey,mode:i,cell:T,isDrag:!1})}R(null),b.current=!1,y.current={clientX:0,clientY:0,scrollX:0,scrollY:0,pressedElement:null}}},[R,i,T,s]),A=j.useDocument(X);return g?n.createElement(n.Fragment,null,n.createElement(j.Draggable,{onPress:_,onDrag:H,onRelease:z,ref:o,childRef:a},l.children),K&&Z.createPortal(n.createElement("div",{ref:X,style:{...K,position:"fixed"},className:"k-marquee k-marquee-color"}),(C=A())==null?void 0:C.body)):n.cloneElement(n.Children.only(l.children),{ref:a})};exports.TableSelection=$;