UNPKG

@progress/kendo-react-data-tools

Version:

Includes React Pager & React Filter component, an intuitive interface to create complex filter descriptions. KendoReact Data Tools package

9 lines (8 loc) 6.76 kB
/** * @license *------------------------------------------------------------------------------------------- * Copyright © 2025 Progress Software Corporation. All rights reserved. * Licensed under commercial license. See LICENSE.md in the package root for more information *------------------------------------------------------------------------------------------- */ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const g=require("@progress/kendo-react-common"),a=require("./constants.js"),m=(e,t,r="cell")=>`${t}_${e}_${r}`,B=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,x=(e,t={level:0})=>e.querySelector(`[${a.KEYBOARD_NAV_DATA_LEVEL}='${t.level}']`),N=e=>e&&e.parentElement&&e.parentElement.closest(`[${a.KEYBOARD_NAV_DATA_LEVEL}]`),v=(e,t)=>e.querySelector(`[${a.KEYBOARD_NAV_DATA_ID}='${t}']`),y=e=>e&&e.parentElement&&e.parentElement.closest(`[${a.KEYBOARD_NAV_DATA_SCOPE}]`),w=e=>{const t=e&&e.parentElement&&e.parentElement.closest(".k-grid-edit-row");return t&&t.querySelector("."+a.KEYBOARD_NAV_CANCEL_BUTTON_CLASS)},T=e=>document.querySelector(`[aria-rowindex="${e}"] .k-grid-remove-command`),u=e=>document.querySelector(`[data-keyboardnavid="${e}"]`),p=e=>{var n;const t=e&&e.parentElement&&e.parentElement.closest(".k-table-row");let r;return(n=t==null?void 0:t.parentElement)==null||n.childNodes.forEach(l=>{if(t===l){const o=l.previousSibling;r={current:t.getAttribute("aria-rowindex"),prev:o&&o.getAttribute("aria-rowindex")}}}),r};async function R(e,t,r=5e3){const n=Date.now();if(t)for(;Date.now()-n<r;){const l=t.querySelector(e);if(l)return l;await new Promise(o=>setTimeout(o,20))}return!1}const L=async e=>{const t=e&&e.parentElement&&e.parentElement.closest(".k-grid-edit-row");return await R("."+a.KEYBOARD_NAV_EDIT_BUTTON_CLASS,t)},S=e=>(e==null?void 0:e.closest(".k-table-td"))||null,F=e=>e.querySelector(`[${a.KEYBOARD_NAV_DATA_HEADER}]`),O=e=>e.querySelector(`[${a.KEYBOARD_NAV_DATA_BODY}]`),W=e=>e.querySelector(".k-grid-norecords"),X=e=>{const t=e.querySelector(".k-grid-edit-cell"),r=t&&t.querySelector("input");r?r.focus():t&&t.firstChild.focus()},h=(e,t)=>{const{scope:r,navigationStateRef:n,contextStateRef:l}=e;if(!n.current||!r)return;const o=M(n.current.navigationMatrix),s=v(r,o);C({elementForFocus:s,contextStateRef:l,event:t})},V=(e,t={focusable:!1})=>{const r=t.focusable?g.FOCUSABLE_ELEMENTS:g.TABBABLE_ELEMENTS;return Array.from(e.querySelectorAll(r.join(",")))},$=(e,t={level:0})=>{if(!e)return[];const r=g.FOCUSABLE_ELEMENTS.map(n=>n+`[${a.KEYBOARD_NAV_DATA_LEVEL}='${t.level}']`).join(",");return Array.from(e.querySelectorAll(r))},k=(e={level:0})=>{const t=g.FOCUSABLE_ELEMENTS.map(r=>r+`[${a.KEYBOARD_NAV_DATA_LEVEL}='${e.level}']`).join(",");return r=>r.matches(t)},C=e=>{const{elementForFocus:t,event:r,contextStateRef:n,prevElement:l}=e;if(n.current&&t&&t.focus){r==null||r.preventDefault();const o=t.querySelector(".k-checkbox-wrap .k-checkbox");o&&o.focus?o.focus():t.focus(),A(t)&&(t.setAttribute("tabIndex","0"),n.current.activeId=b(t)),l&&A(l)&&l.setAttribute("tabIndex","-1")}},K=e=>e.current?e.current.idPrefix:"",q=(e,t,r,n,l)=>{if(!r)return[];let o=e+(l?-1:1);for(;o>=0&&o<n.length;){const s=n[o][t];if(s!==r)return[s,[o,t]];o=o+(l?-1:1)}return[]},d=(e,t,r,n,l)=>{if(!r)return[];let o=t+(l?-1:1);for(;o>=0&&n[e]&&o<n[e].length;){const s=n[e][o];if(s!==r)return[s,[e,o]];o=o+(l?-1:1)}return[]},f=(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]}},_=(e,t,r)=>{let n;do if(e=e+1,n=t[r-e],n&&n.editable)break;while(r-e>=0);return n},Y=(e,t,r,n)=>{var I;let l;const[o,s]=e;let c;const i=0,E=t.length;return c=_(i,t,s),c?l=d(o,c.ariaColumnIndex,r,n,!0):(c=_(i,t,E),l=d(o-1,c.ariaColumnIndex,r,n,!0)),{prevCell:l&&l[0]&&u(l[0]),elementToFocus:l&&l[0]&&((I=u(l[0]))==null?void 0:I.getAttribute("role"))}},D=(e,t,r)=>{let n;do if(e=e+1,n=t[r+e],n&&n.editable)break;while(r+e-1<t.length);return n},P=(e,t,r,n)=>{var o;let l;if(e){const[s,c]=e;let i,E=0;i=D(E,t,c),i?l=d(s,i.ariaColumnIndex,r,n,!0):(E=-1,i=D(E,t,0),l=d(s+1,i.ariaColumnIndex,r,n,!0))}return{nextCell:l&&l[0]&&u(l[0]),elementToFocus:l&&l[0]&&((o=u(l[0]))==null?void 0:o.getAttribute("role"))}},U=e=>e.current?e.current.navigationMatrix.length:0,M=e=>e.flat().find(t=>t.endsWith("cell")),z=e=>e.flat().reverse().find(t=>t.endsWith("cell")),G=(e,t)=>e[t][0],J=(e,t)=>Array.from(e[t]).reverse()[0],j=e=>e?`${e}${a.KEYBOARD_NAV_FILTER_COL_SUFFIX}`:"",Q=(e,t,r)=>{let n;if(e.current&&e.current.prevNavigationIndexes){const[l,o]=e.current.prevNavigationIndexes,s=t[l];s&&s[o]===r?n=e.current.prevNavigationIndexes:n=f(t,r)}else n=f(t,r);return n},H=e=>{var t;return((t=N(e))==null?void 0:t.getAttribute("data-keyboardnavid"))||e.getAttribute("data-keyboardnavid")},Z={generateNavigatableId:m,getNavigatableId:b,getNavigatableLevel:B,getNavigatableElement:x,getClosestNavigatableElement:N,getActiveNavDataElement:v,getClosestScope:y,getHeaderElement:F,getBodyElement:O,getFocusableElements:V,getNavigatableElements:$,filterNavigatableElements:k,focusElement:C,getIdPrefix:K,isNavigatable:A,findNextIdByRowIndex:q,findNextIdByCellIndex:d,findId:f,getNextNavigationIndex:U,getFilterColumnId:j,focusFirstDataElement:h,getClosestCancelButton:w,getClosestEditButton:L,getRowAriaRowIndex:p,getRemoveButtonByAriaRowIndex:T,getTableCellByKeyboardNavId:u,getParentCell:S,waitForElementToBeVisible:R,getNextEditableCell:P,getPrevEditableCell:Y,getClosestCellNavId:H};exports.filterNavigatableElements=k;exports.findId=f;exports.findNextIdByCellIndex=d;exports.findNextIdByRowIndex=q;exports.focusElement=C;exports.focusFirstDataElement=h;exports.focusFirstEditor=X;exports.generateNavigatableId=m;exports.getActiveNavDataElement=v;exports.getBodyElement=O;exports.getClosestCancelButton=w;exports.getClosestCellNavId=H;exports.getClosestEditButton=L;exports.getClosestNavigatableElement=N;exports.getClosestScope=y;exports.getCurrentIdIndexes=Q;exports.getFilterColumnId=j;exports.getFirstDataCell=M;exports.getFirstRowDataCell=G;exports.getFocusableElements=V;exports.getHeaderElement=F;exports.getIdPrefix=K;exports.getLastDataCell=z;exports.getLastRowDataCell=J;exports.getNavigatableElement=x;exports.getNavigatableElements=$;exports.getNavigatableId=b;exports.getNavigatableLevel=B;exports.getNextEditableCell=P;exports.getNextNavigationIndex=U;exports.getNoRecordsElement=W;exports.getParentCell=S;exports.getPrevEditableCell=Y;exports.getRemoveButtonByAriaRowIndex=T;exports.getRowAriaRowIndex=p;exports.getTableCellByKeyboardNavId=u;exports.isNavigatable=A;exports.tableKeyboardNavigationTools=Z;