All Downloads are FREE. Search and download functionalities are using the official Maven repository.

theme.keycloak.v2.admin.resources.assets.DraggableTable-88759caa.js Maven / Gradle / Ivy

There is a newer version: 25.0.1
Show newest version
import{u as N,r as u,c8 as o,j as a}from"./index-f33eb656.js";import{s as m}from"./data-list-7d55714c.js";import{T as X,O as Y,P as R,Q as C,R as B,S as I,aj as K}from"./Td-137060bd.js";function V({keyField:g,columns:h,data:f,actions:x,onDragFinish:A,...y}){const{t:p}=N("authentication"),i=u.useRef(null),[s,c]=u.useState({draggedItemId:"",draggingToItemIndex:-1,dragging:!1,tempItemOrder:[""]}),T=u.useMemo(()=>f.map(e=>o(e,g)),[f]),L=e=>{e.dataTransfer.effectAllowed="move",e.dataTransfer.setData("text/plain",e.currentTarget.id);const t=e.currentTarget.id;e.currentTarget.classList.add(m.modifiers.ghostRow),e.currentTarget.setAttribute("aria-pressed","true"),c({...s,draggedItemId:t,dragging:!0})},O=(e,t,r)=>{const n=e.indexOf(t);if(n===r)return e;const d=e.splice(n,1);return e.splice(r,0,d[0]),e},b=e=>{if(!i.current)return;const t=i.current,r=Array.from(t.children);if(!r.map(n=>n.id).every((n,d)=>n===e[d])){for(;t.firstChild;)t.removeChild(t.lastChild);e.forEach(n=>{t.appendChild(r.find(d=>d.id===n))})}},v=()=>{Array.from(i.current?.children||[]).forEach(e=>{e.classList.remove(m.modifiers.ghostRow),e.setAttribute("aria-pressed","false")}),c({...s,draggedItemId:"",draggingToItemIndex:-1,dragging:!1})},E=e=>{j(e)||(b(T),c({...s,draggingToItemIndex:-1}))},j=e=>{const t=i.current.getBoundingClientRect();return e.clientX>t.x&&e.clientXt.y&&e.clientY{j(e)?A(s.draggedItemId,s.tempItemOrder):v()},D=e=>{e.preventDefault();const r=e.target.closest("tr");if(!r||i.current&&!i.current.contains(r)||r.id===s.draggedItemId)return null;{const n=r.id,d=Array.from(i.current?.children||[]).findIndex(l=>l.id===n);if(d!==s.draggingToItemIndex){const l=O(T,s.draggedItemId,d);b(l),c({...s,draggingToItemIndex:d,tempItemOrder:l})}}},$=e=>{const t=e.target;t.classList.remove(m.modifiers.ghostRow),t.setAttribute("aria-pressed","false"),c({...s,draggedItemId:"",draggingToItemIndex:-1,dragging:!1})},w=e=>{if(e.thTooltipText)return{popover:a.jsx("div",{children:p(e.thTooltipText)}),ariaLabel:p(e.thTooltipText)}};return a.jsxs(X,{"aria-label":"Draggable table",className:s.dragging?m.modifiers.dragOver:"",...y,children:[a.jsx(Y,{children:a.jsxs(R,{children:[a.jsx(C,{"aria-hidden":"true"}),h.map(e=>a.jsx(C,{info:w(e),children:p(e.displayKey||e.name)},e.name))]})}),a.jsx(B,{ref:i,onDragOver:D,onDrop:D,onDragLeave:E,children:f.map(e=>a.jsxs(R,{id:o(e,g),draggable:!0,onDrop:S,onDragEnd:$,onDragStart:L,children:[a.jsx(I,{draggableRow:{id:`draggable-row-${o(e,g)}`}}),h.map(t=>a.jsx(I,{dataLabel:t.name,children:t.cellRenderer?t.cellRenderer(e):o(e,t.name)},`${o(e,g)}_${t.name}`)),x&&a.jsx(I,{isActionCell:!0,children:a.jsx(K,{items:x.map(({isActionable:t,...r})=>t?{...r,isDisabled:!t(e)}:r),rowData:e})})]},o(e,g)))})]})}export{V as D};
//# sourceMappingURL=DraggableTable-88759caa.js.map




© 2015 - 2024 Weber Informatics LLC | Privacy Policy