@progress/kendo-react-listbox 13.3.0 → 13.4.0-develop.2
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.
- package/ListBox.d.ts +28 -0
- package/ListBox.js +1 -1
- package/ListBox.mjs +8 -8
- package/ListBoxToolbar.d.ts +24 -0
- package/ListBoxToolbar.js +1 -1
- package/ListBoxToolbar.mjs +10 -10
- package/dist/cdn/js/kendo-react-listbox.js +1 -1
- package/index.d.mts +10 -424
- package/index.d.ts +10 -424
- package/interfaces/Enums.d.ts +17 -0
- package/interfaces/ListBoxEvents.d.ts +75 -0
- package/interfaces/ListBoxProps.d.ts +215 -0
- package/interfaces/ListBoxToolBarProps.d.ts +55 -0
- package/messages/index.d.ts +47 -0
- package/package-metadata.d.ts +12 -0
- package/package-metadata.mjs +12 -0
- package/package.json +11 -5
- package/utils.d.ts +38 -0
package/ListBox.d.ts
ADDED
|
@@ -0,0 +1,28 @@
|
|
|
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 { ListBoxProps } from './interfaces/ListBoxProps.js';
|
|
9
|
+
import * as React from 'react';
|
|
10
|
+
/**
|
|
11
|
+
* The ListBox ref.
|
|
12
|
+
*/
|
|
13
|
+
export interface ListBoxHandle {
|
|
14
|
+
/**
|
|
15
|
+
* The current element or `null` if there is no one.
|
|
16
|
+
*/
|
|
17
|
+
element: HTMLDivElement | null;
|
|
18
|
+
/**
|
|
19
|
+
* The props value of the ListBox.
|
|
20
|
+
*/
|
|
21
|
+
props: ListBoxProps;
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* The ListBox component.
|
|
25
|
+
*/
|
|
26
|
+
export declare const ListBox: React.ForwardRefExoticComponent<ListBoxProps & React.RefAttributes<ListBoxHandle | null>>;
|
|
27
|
+
/** @hidden */
|
|
28
|
+
export type ListBox = ListBoxHandle;
|
package/ListBox.js
CHANGED
|
@@ -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 G=require("react"),u=require("prop-types"),a=require("@progress/kendo-react-common"),R=require("./interfaces/Enums.js");function U(n){const f=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(n){for(const
|
|
8
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const G=require("react"),u=require("prop-types"),a=require("@progress/kendo-react-common"),R=require("./interfaces/Enums.js");function U(n){const f=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(n){for(const d in n)if(d!=="default"){const y=Object.getOwnPropertyDescriptor(n,d);Object.defineProperty(f,d,y.get?y:{enumerable:!0,get:()=>n[d]})}}return f.default=n,Object.freeze(f)}const s=U(G),k=s.forwardRef((n,f)=>{const{id:d,style:y,data:c,textField:h,className:T,valueField:S,selectedField:D,onDrop:L,onKeyDown:v,onDragStart:C,onDragLeave:N,onDragOver:F,onItemClick:z,onItemSelect:g,onKeyboardNavigate:m,size:b=E.size,draggable:_=E.draggable,toolbarPosition:K=E.toolbarPosition}=n,x=s.useRef(null),O=s.useRef(null),w=s.useRef(null),o=s.useCallback(()=>({element:w.current,props:n}),[]);s.useImperativeHandle(O,o),s.useImperativeHandle(f,()=>O.current);const P=d+"-accessibility-id",I=a.kendoThemeMaps.sizeMap[b]||b,q=t=>{if(D)return!!t[D]},A=t=>h?t[h]:t.toString(),j=t=>{v&&a.dispatchEvent(v,t,o(),void 0)},B=t=>{t.target.classList.contains("k-list-content")&&(n.data.length>0?a.dispatchEvent(n.onDrop,t,o(),{dataItem:n.data[n.data.length-1]}):a.dispatchEvent(n.onDrop,t,o(),{dataItem:null}))},M=()=>K===R.toolbarPosition.NONE||n.toolbar===void 0?`k-listbox-actions-${E.toolbarPosition}`:`k-listbox-actions-${K}`,H=t=>{N&&t.target.classList.contains("k-list-content")&&a.dispatchEvent(N,t,o(),void 0)},p=s.useMemo(()=>new a.Navigation({root:x,selectors:[".k-list-item"],tabIndex:0,keyboardEvents:{keydown:{Space:(t,i,e)=>{const r=i.elements.indexOf(t);e.metaKey&&a.dispatchEvent(g,e,o(),{dataItem:c[r]}),a.dispatchEvent(g,e,o(),{dataItem:c[r]})},ArrowDown:(t,i,e)=>{if(e.metaKey&&e.shiftKey)a.dispatchEvent(m,e,o(),{actionName:"moveDown"});else if(e.metaKey&&!e.shiftKey)e.preventDefault(),i.focusNext(t);else if(!(e.shiftKey&&!e.metaKey)){e.preventDefault();const r=i.elements.indexOf(t),l=c[r+1];l&&(a.dispatchEvent(g,e,o(),{dataItem:l}),i.focusNext(t))}},ArrowUp:(t,i,e)=>{if(e.metaKey&&e.shiftKey)a.dispatchEvent(m,e,o(),{actionName:"moveUp"});else if(e.metaKey&&!e.shiftKey)e.preventDefault(),i.focusPrevious(t);else if(!(e.shiftKey&&!e.metaKey)){e.preventDefault();const r=i.elements.indexOf(t),l=c[r-1];l&&(a.dispatchEvent(g,e,o(),{dataItem:l}),i.focusPrevious(t))}},ArrowLeft:(t,i,e)=>{e.metaKey&&e.shiftKey?a.dispatchEvent(m,e,o(),{actionName:"transferAllFrom"}):e.metaKey&&a.dispatchEvent(m,e,o(),{actionName:"transferFrom"})},ArrowRight:(t,i,e)=>{e.metaKey&&e.shiftKey?a.dispatchEvent(m,e,o(),{actionName:"transferAllTo"}):e.metaKey&&a.dispatchEvent(m,e,o(),{actionName:"transferTo"})},Backspace:(t,i,e)=>{a.dispatchEvent(m,e,o(),{actionName:"remove"})}}}}),[c]),$=s.useCallback(p.triggerKeyboardEvent.bind(p),[c]);return s.useEffect(()=>(p.initializeRovingTab(),()=>p.removeFocusListener()),[c]),s.createElement("div",{id:d,ref:w,style:y,unselectable:"on",className:a.classNames(T,"k-listbox",{[`k-listbox-${I}`]:b},M())},n.toolbar&&s.createElement(n.toolbar,null),s.createElement("div",{className:"k-list-scroller k-selectable","data-role":"selectable",ref:x,onDragOver:t=>t.preventDefault(),onDrop:B,onDragLeave:H,onKeyDown:$},s.createElement("div",{className:a.classNames("k-list",{[`k-list-${I}`]:b})},s.createElement("div",{className:"k-list-content"},s.createElement("ul",{className:"k-list-ul",role:"listbox","aria-label":"listbox-container",onKeyDown:j},c.map((t,i)=>{const e=q(t),r={className:a.classNames("k-list-item",{"k-selected":e}),role:"option",key:i,id:P+i,"aria-selected":e,"data-uid":P+i,draggable:_,onDragStart:l=>{a.dispatchEvent(C,l,o(),{dataItem:t})},onDragOver:l=>{l.preventDefault(),a.dispatchEvent(F,l,o(),{dataItem:t})},onDrop:l=>{a.dispatchEvent(L,l,o(),{dataItem:t})},onClick:l=>{a.dispatchEvent(z,l,o(),{dataItem:t})}};return n.item?s.createElement(n.item,{selected:e,dataItem:t,...r,key:r.key},s.createElement("span",{className:"k-list-item-text"},t.name)):s.createElement("li",{...r,key:r.key},s.createElement("span",{className:"k-list-item-text"},A(t)))}))))),s.createElement("select",{style:{display:"none"},multiple:!0,"data-role":"listbox"},c.map((t,i)=>{const e=t[S||h];return s.createElement("option",{key:i,value:e},e)})))}),E={toolbarPosition:R.toolbarPosition.RIGHT,draggable:!0,size:void 0};k.propTypes={size:u.oneOf(["small","medium","large"]),toolbarPosition:u.oneOf(["none","top","bottom","left","right"]),textField:u.string.isRequired,valueField:u.string,selectedField:u.string,data:u.array.isRequired};k.displayName="ListBoxInner";exports.ListBox=k;
|
package/ListBox.mjs
CHANGED
|
@@ -18,11 +18,11 @@ const R = a.forwardRef((n, T) => {
|
|
|
18
18
|
className: L,
|
|
19
19
|
valueField: C,
|
|
20
20
|
selectedField: K,
|
|
21
|
-
onDrop:
|
|
21
|
+
onDrop: v,
|
|
22
22
|
onKeyDown: x,
|
|
23
|
-
onDragStart:
|
|
23
|
+
onDragStart: z,
|
|
24
24
|
onDragLeave: N,
|
|
25
|
-
onDragOver:
|
|
25
|
+
onDragOver: S,
|
|
26
26
|
onItemClick: A,
|
|
27
27
|
onItemSelect: d,
|
|
28
28
|
onKeyboardNavigate: m,
|
|
@@ -156,17 +156,17 @@ const R = a.forwardRef((n, T) => {
|
|
|
156
156
|
draggable: $,
|
|
157
157
|
onDragStart: (l) => {
|
|
158
158
|
s(
|
|
159
|
-
|
|
159
|
+
z,
|
|
160
160
|
l,
|
|
161
161
|
o(),
|
|
162
162
|
{ dataItem: t }
|
|
163
163
|
);
|
|
164
164
|
},
|
|
165
165
|
onDragOver: (l) => {
|
|
166
|
-
l.preventDefault(), s(
|
|
166
|
+
l.preventDefault(), s(S, l, o(), { dataItem: t });
|
|
167
167
|
},
|
|
168
168
|
onDrop: (l) => {
|
|
169
|
-
s(
|
|
169
|
+
s(v, l, o(), { dataItem: t });
|
|
170
170
|
},
|
|
171
171
|
onClick: (l) => {
|
|
172
172
|
s(A, l, o(), { dataItem: t });
|
|
@@ -193,10 +193,10 @@ const R = a.forwardRef((n, T) => {
|
|
|
193
193
|
}), g = {
|
|
194
194
|
toolbarPosition: O.RIGHT,
|
|
195
195
|
draggable: !0,
|
|
196
|
-
size:
|
|
196
|
+
size: void 0
|
|
197
197
|
};
|
|
198
198
|
R.propTypes = {
|
|
199
|
-
size: f.oneOf([
|
|
199
|
+
size: f.oneOf(["small", "medium", "large"]),
|
|
200
200
|
toolbarPosition: f.oneOf(["none", "top", "bottom", "left", "right"]),
|
|
201
201
|
textField: f.string.isRequired,
|
|
202
202
|
valueField: f.string,
|
|
@@ -0,0 +1,24 @@
|
|
|
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 { ListBoxToolbarProps } from './interfaces/ListBoxToolBarProps.js';
|
|
9
|
+
import { ListBoxToolbarEvent } from './interfaces/ListBoxEvents.js';
|
|
10
|
+
import * as React from 'react';
|
|
11
|
+
/**
|
|
12
|
+
* @hidden
|
|
13
|
+
*/
|
|
14
|
+
interface ListBoxToolbarHandle {
|
|
15
|
+
onToolClick?: (event: ListBoxToolbarEvent) => void;
|
|
16
|
+
props: ListBoxToolbarProps;
|
|
17
|
+
context: {};
|
|
18
|
+
state: {};
|
|
19
|
+
refs: {};
|
|
20
|
+
}
|
|
21
|
+
export declare const ListBoxToolbar: React.ForwardRefExoticComponent<ListBoxToolbarProps & React.RefAttributes<ListBoxToolbarHandle | null>>;
|
|
22
|
+
/** @hidden */
|
|
23
|
+
export type ListBoxToolbar = ListBoxToolbarHandle;
|
|
24
|
+
export {};
|
package/ListBoxToolbar.js
CHANGED
|
@@ -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 P=require("react"),f=require("prop-types"),k=require("@progress/kendo-react-common"),B=require("@progress/kendo-react-buttons"),j=require("@progress/kendo-react-intl"),o=require("@progress/kendo-svg-icons"),U=require("./messages/index.js");function _(l){const g=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(l){for(const i in l)if(i!=="default"){const b=Object.getOwnPropertyDescriptor(l,i);Object.defineProperty(g,i,b.get?b:{enumerable:!0,get:()=>l[i]})}}return g.default=l,Object.freeze(g)}const r=_(P),D=[{name:"moveUp",iconName:"caret-alt-up",svgIcon:o.caretAltUpIcon},{name:"moveDown",iconName:"caret-alt-down",svgIcon:o.caretAltDownIcon},{name:"transferTo",iconName:"caret-alt-right",svgIcon:o.caretAltRightIcon},{name:"transferFrom",iconName:"caret-alt-left",svgIcon:o.caretAltLeftIcon},{name:"transferAllTo",iconName:"caret-double-alt-right",svgIcon:o.caretDoubleAltRightIcon},{name:"transferAllFrom",iconName:"caret-double-alt-left",svgIcon:o.caretDoubleAltLeftIcon},{name:"remove",iconName:"x",svgIcon:o.xIcon}],p=r.forwardRef((l,g)=>{const{tools:i,dir:b,onToolClick:w,size:L=h.size,data:d=h.data,dataConnected:n=h.dataConnected,selectedField:C=h.selectedField}=l,F=j.useLocalization(),A=r.useRef(null),T=r.useRef(null),x=r.useCallback(()=>({onToolClick:w,props:l,context:{},state:{},refs:{}}),[]);r.useImperativeHandle(T,x),r.useImperativeHandle(g,()=>T.current);const y=(t,e,c)=>{c.preventDefault(),e.focusNext(t)},N=(t,e,c)=>{c.preventDefault(),e.focusPrevious(t)},v=r.useMemo(()=>new k.Navigation({root:A,selectors:[".k-button:not([disabled])"],tabIndex:0,keyboardEvents:{keydown:{ArrowDown:y,ArrowRight:y,ArrowUp:N,ArrowLeft:N,Enter:(t,e,c)=>{t.click(),e.focusElement(e.current,t)}}}}),[]),S=r.useCallback(v.triggerKeyboardEvent.bind(v),[]);r.useEffect(()=>(v.initializeRovingTab(),()=>v.removeFocusListener()),[]);const q=t=>{switch(t.name){case"caret-alt-right":return o.caretAltLeftIcon;case"caret-alt-left":return o.caretAltRightIcon;case"caret-double-alt-right":return o.caretDoubleAltLeftIcon;case"caret-double-alt-left":return o.caretDoubleAltRightIcon}return t},E=t=>{switch(t){case"caret-alt-right":return"caret-alt-left";case"caret-alt-left":return"caret-alt-right";case"caret-double-alt-right":return"caret-double-alt-left";case"caret-double-alt-left":return"caret-double-alt-right"}return t},O=(t,e)=>{k.dispatchEvent(w,t,x(),{toolName:e})},z=t=>{let e=!0;const c=C||"selected",a=d.length,I=n.length,u=d.findIndex(s=>s[c]===!0)>=0,m=n.findIndex(s=>s[c]===!0)>=0;switch(t){case"moveUp":u?e=d.length>0?d[0].selected:!0:m?e=n.length>0?n[0].selected:!0:e=!0;break;case"moveDown":u?e=d[a-1]?d[a-1].selected:!0:m?e=n.length>0?n[I-1].selected:!0:e=!0;break;case"transferTo":e=!(n&&u);break;case"transferFrom":n?e=!(n&&m):e=!0;break;case"transferAllTo":e=!(n&&d.length>0);break;case"transferAllFrom":e=!(n&&n.length>0);break;case"remove":e=!(u||m);break}return e},R=b==="rtl";return r.createElement("div",{className:k.classNames("k-listbox-actions"),ref:A,onKeyDown:S},i&&i.map((t,e)=>{const c=D.findIndex(s=>s.name===t),a=D[c],I=z(a.name),u=`listbox.${a.name}`,m=F.toLanguageString(u,U.messages[u]);return r.createElement(B.Button,{size:L,key:e,disabled:I,"data-command":a.name,title:m,"aria-label":m,icon:R?E(a.iconName):a.iconName,svgIcon:R?q(a.svgIcon):a.svgIcon,onClick:s=>{s.preventDefault(),O(s,a.name)}})}))}),h={data:[],dataConnected:[],selectedField:"selected",size:
|
|
8
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const P=require("react"),f=require("prop-types"),k=require("@progress/kendo-react-common"),B=require("@progress/kendo-react-buttons"),j=require("@progress/kendo-react-intl"),o=require("@progress/kendo-svg-icons"),U=require("./messages/index.js");function _(l){const g=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(l){for(const i in l)if(i!=="default"){const b=Object.getOwnPropertyDescriptor(l,i);Object.defineProperty(g,i,b.get?b:{enumerable:!0,get:()=>l[i]})}}return g.default=l,Object.freeze(g)}const r=_(P),D=[{name:"moveUp",iconName:"caret-alt-up",svgIcon:o.caretAltUpIcon},{name:"moveDown",iconName:"caret-alt-down",svgIcon:o.caretAltDownIcon},{name:"transferTo",iconName:"caret-alt-right",svgIcon:o.caretAltRightIcon},{name:"transferFrom",iconName:"caret-alt-left",svgIcon:o.caretAltLeftIcon},{name:"transferAllTo",iconName:"caret-double-alt-right",svgIcon:o.caretDoubleAltRightIcon},{name:"transferAllFrom",iconName:"caret-double-alt-left",svgIcon:o.caretDoubleAltLeftIcon},{name:"remove",iconName:"x",svgIcon:o.xIcon}],p=r.forwardRef((l,g)=>{const{tools:i,dir:b,onToolClick:w,size:L=h.size,data:d=h.data,dataConnected:n=h.dataConnected,selectedField:C=h.selectedField}=l,F=j.useLocalization(),A=r.useRef(null),T=r.useRef(null),x=r.useCallback(()=>({onToolClick:w,props:l,context:{},state:{},refs:{}}),[]);r.useImperativeHandle(T,x),r.useImperativeHandle(g,()=>T.current);const y=(t,e,c)=>{c.preventDefault(),e.focusNext(t)},N=(t,e,c)=>{c.preventDefault(),e.focusPrevious(t)},v=r.useMemo(()=>new k.Navigation({root:A,selectors:[".k-button:not([disabled])"],tabIndex:0,keyboardEvents:{keydown:{ArrowDown:y,ArrowRight:y,ArrowUp:N,ArrowLeft:N,Enter:(t,e,c)=>{t.click(),e.focusElement(e.current,t)}}}}),[]),S=r.useCallback(v.triggerKeyboardEvent.bind(v),[]);r.useEffect(()=>(v.initializeRovingTab(),()=>v.removeFocusListener()),[]);const q=t=>{switch(t.name){case"caret-alt-right":return o.caretAltLeftIcon;case"caret-alt-left":return o.caretAltRightIcon;case"caret-double-alt-right":return o.caretDoubleAltLeftIcon;case"caret-double-alt-left":return o.caretDoubleAltRightIcon}return t},E=t=>{switch(t){case"caret-alt-right":return"caret-alt-left";case"caret-alt-left":return"caret-alt-right";case"caret-double-alt-right":return"caret-double-alt-left";case"caret-double-alt-left":return"caret-double-alt-right"}return t},O=(t,e)=>{k.dispatchEvent(w,t,x(),{toolName:e})},z=t=>{let e=!0;const c=C||"selected",a=d.length,I=n.length,u=d.findIndex(s=>s[c]===!0)>=0,m=n.findIndex(s=>s[c]===!0)>=0;switch(t){case"moveUp":u?e=d.length>0?d[0].selected:!0:m?e=n.length>0?n[0].selected:!0:e=!0;break;case"moveDown":u?e=d[a-1]?d[a-1].selected:!0:m?e=n.length>0?n[I-1].selected:!0:e=!0;break;case"transferTo":e=!(n&&u);break;case"transferFrom":n?e=!(n&&m):e=!0;break;case"transferAllTo":e=!(n&&d.length>0);break;case"transferAllFrom":e=!(n&&n.length>0);break;case"remove":e=!(u||m);break}return e},R=b==="rtl";return r.createElement("div",{className:k.classNames("k-listbox-actions"),ref:A,onKeyDown:S},i&&i.map((t,e)=>{const c=D.findIndex(s=>s.name===t),a=D[c],I=z(a.name),u=`listbox.${a.name}`,m=F.toLanguageString(u,U.messages[u]);return r.createElement(B.Button,{size:L,key:e,disabled:I,"data-command":a.name,title:m,"aria-label":m,icon:R?E(a.iconName):a.iconName,svgIcon:R?q(a.svgIcon):a.svgIcon,onClick:s=>{s.preventDefault(),O(s,a.name)}})}))}),h={data:[],dataConnected:[],selectedField:"selected",size:void 0};p.propTypes={data:f.array.isRequired,dataConnected:f.array.isRequired,tools:f.array,selectedField:f.string,dir:f.string,size:f.oneOf(["small","medium","large"])};p.displayName="ListBoxToolbarInner";exports.ListBoxToolbar=p;
|
package/ListBoxToolbar.mjs
CHANGED
|
@@ -26,7 +26,7 @@ const N = [
|
|
|
26
26
|
dir: R,
|
|
27
27
|
onToolClick: v,
|
|
28
28
|
size: C = u.size,
|
|
29
|
-
data:
|
|
29
|
+
data: s = u.data,
|
|
30
30
|
dataConnected: a = u.dataConnected,
|
|
31
31
|
selectedField: E = u.selectedField
|
|
32
32
|
} = g, z = _(), h = n.useRef(null), p = n.useRef(null), I = n.useCallback(
|
|
@@ -95,34 +95,34 @@ const N = [
|
|
|
95
95
|
O(v, t, I(), { toolName: e });
|
|
96
96
|
}, H = (t) => {
|
|
97
97
|
let e = !0;
|
|
98
|
-
const o = E || "selected", r =
|
|
98
|
+
const o = E || "selected", r = s.length, f = a.length, l = s.findIndex((c) => c[o] === !0) >= 0, i = a.findIndex((c) => c[o] === !0) >= 0;
|
|
99
99
|
switch (t) {
|
|
100
100
|
case "moveUp":
|
|
101
|
-
|
|
101
|
+
l ? e = s.length > 0 ? s[0].selected : !0 : i ? e = a.length > 0 ? a[0].selected : !0 : e = !0;
|
|
102
102
|
break;
|
|
103
103
|
case "moveDown":
|
|
104
|
-
|
|
104
|
+
l ? e = s[r - 1] ? s[r - 1].selected : !0 : i ? e = a.length > 0 ? a[f - 1].selected : !0 : e = !0;
|
|
105
105
|
break;
|
|
106
106
|
case "transferTo":
|
|
107
|
-
e = !(a &&
|
|
107
|
+
e = !(a && l);
|
|
108
108
|
break;
|
|
109
109
|
case "transferFrom":
|
|
110
110
|
a ? e = !(a && i) : e = !0;
|
|
111
111
|
break;
|
|
112
112
|
case "transferAllTo":
|
|
113
|
-
e = !(a &&
|
|
113
|
+
e = !(a && s.length > 0);
|
|
114
114
|
break;
|
|
115
115
|
case "transferAllFrom":
|
|
116
116
|
e = !(a && a.length > 0);
|
|
117
117
|
break;
|
|
118
118
|
case "remove":
|
|
119
|
-
e = !(
|
|
119
|
+
e = !(l || i);
|
|
120
120
|
break;
|
|
121
121
|
}
|
|
122
122
|
return e;
|
|
123
123
|
}, x = R === "rtl";
|
|
124
124
|
return /* @__PURE__ */ n.createElement("div", { className: q("k-listbox-actions"), ref: h, onKeyDown: S }, b && b.map((t, e) => {
|
|
125
|
-
const o = N.findIndex((c) => c.name === t), r = N[o], f = H(r.name),
|
|
125
|
+
const o = N.findIndex((c) => c.name === t), r = N[o], f = H(r.name), l = `listbox.${r.name}`, i = z.toLanguageString(l, J[l]);
|
|
126
126
|
return /* @__PURE__ */ n.createElement(
|
|
127
127
|
M,
|
|
128
128
|
{
|
|
@@ -144,7 +144,7 @@ const N = [
|
|
|
144
144
|
data: [],
|
|
145
145
|
dataConnected: [],
|
|
146
146
|
selectedField: "selected",
|
|
147
|
-
size:
|
|
147
|
+
size: void 0
|
|
148
148
|
};
|
|
149
149
|
F.propTypes = {
|
|
150
150
|
data: d.array.isRequired,
|
|
@@ -152,7 +152,7 @@ F.propTypes = {
|
|
|
152
152
|
tools: d.array,
|
|
153
153
|
selectedField: d.string,
|
|
154
154
|
dir: d.string,
|
|
155
|
-
size: d.oneOf([
|
|
155
|
+
size: d.oneOf(["small", "medium", "large"])
|
|
156
156
|
};
|
|
157
157
|
F.displayName = "ListBoxToolbarInner";
|
|
158
158
|
export {
|
|
@@ -12,4 +12,4 @@
|
|
|
12
12
|
* Licensed under commercial license. See LICENSE.md in the package root for more information
|
|
13
13
|
*-------------------------------------------------------------------------------------------
|
|
14
14
|
*/
|
|
15
|
-
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("react"),require("prop-types"),require("@progress/kendo-react-common"),require("@progress/kendo-react-buttons"),require("@progress/kendo-react-intl"),require("@progress/kendo-svg-icons")):"function"==typeof define&&define.amd?define(["exports","react","prop-types","@progress/kendo-react-common","@progress/kendo-react-buttons","@progress/kendo-react-intl","@progress/kendo-svg-icons"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).KendoReactListbox={},e.React,e.PropTypes,e.KendoReactCommon,e.KendoReactButtons,e.KendoReactIntl,e.KendoSvgIcons)}(this,(function(e,t,a,o,n,r,s){"use strict";function l(e){var t=Object.create(null);return e&&Object.keys(e).forEach((function(a){if("default"!==a){var o=Object.getOwnPropertyDescriptor(e,a);Object.defineProperty(t,a,o.get?o:{enumerable:!0,get:function(){return e[a]}})}})),t.default=e,Object.freeze(t)}var i=l(t),c=(e=>(e.TOP="top",e.BOTTOM="bottom",e.LEFT="left",e.RIGHT="right",e.NONE="none",e))(c||{});const d=i.forwardRef(((e,t)=>{const{id:a,style:n,data:r,textField:s,className:l,valueField:d,selectedField:u,onDrop:f,onKeyDown:p,onDragStart:v,onDragLeave:b,onDragOver:g,onItemClick:x,onItemSelect:h,onKeyboardNavigate:D,size:k=m.size,draggable:y=m.draggable,toolbarPosition:I=m.toolbarPosition}=e,E=i.useRef(null),w=i.useRef(null),T=i.useRef(null),N=i.useCallback((()=>({element:T.current,props:e})),[]);i.useImperativeHandle(w,N),i.useImperativeHandle(t,(()=>w.current));const B=a+"-accessibility-id",O=o.kendoThemeMaps.sizeMap[k]||k,K=i.useMemo((()=>new o.Navigation({root:E,selectors:[".k-list-item"],tabIndex:0,keyboardEvents:{keydown:{Space:(e,t,a)=>{const n=t.elements.indexOf(e);a.metaKey&&o.dispatchEvent(h,a,N(),{dataItem:r[n]}),o.dispatchEvent(h,a,N(),{dataItem:r[n]})},ArrowDown:(e,t,a)=>{if(a.metaKey&&a.shiftKey)o.dispatchEvent(D,a,N(),{actionName:"moveDown"});else if(a.metaKey&&!a.shiftKey)a.preventDefault(),t.focusNext(e);else if(!a.shiftKey||a.metaKey){a.preventDefault();const n=t.elements.indexOf(e),s=r[n+1];s&&(o.dispatchEvent(h,a,N(),{dataItem:s}),t.focusNext(e))}},ArrowUp:(e,t,a)=>{if(a.metaKey&&a.shiftKey)o.dispatchEvent(D,a,N(),{actionName:"moveUp"});else if(a.metaKey&&!a.shiftKey)a.preventDefault(),t.focusPrevious(e);else if(!a.shiftKey||a.metaKey){a.preventDefault();const n=t.elements.indexOf(e),s=r[n-1];s&&(o.dispatchEvent(h,a,N(),{dataItem:s}),t.focusPrevious(e))}},ArrowLeft:(e,t,a)=>{a.metaKey&&a.shiftKey?o.dispatchEvent(D,a,N(),{actionName:"transferAllFrom"}):a.metaKey&&o.dispatchEvent(D,a,N(),{actionName:"transferFrom"})},ArrowRight:(e,t,a)=>{a.metaKey&&a.shiftKey?o.dispatchEvent(D,a,N(),{actionName:"transferAllTo"}):a.metaKey&&o.dispatchEvent(D,a,N(),{actionName:"transferTo"})},Backspace:(e,t,a)=>{o.dispatchEvent(D,a,N(),{actionName:"remove"})}}}})),[r]),A=i.useCallback(K.triggerKeyboardEvent.bind(K),[r]);return i.useEffect((()=>(K.initializeRovingTab(),()=>K.removeFocusListener())),[r]),i.createElement("div",{id:a,ref:T,style:n,unselectable:"on",className:o.classNames(l,"k-listbox",{[`k-listbox-${O}`]:k},I===c.NONE||void 0===e.toolbar?`k-listbox-actions-${m.toolbarPosition}`:`k-listbox-actions-${I}`)},e.toolbar&&i.createElement(e.toolbar,null),i.createElement("div",{className:"k-list-scroller k-selectable","data-role":"selectable",ref:E,onDragOver:e=>e.preventDefault(),onDrop:t=>{t.target.classList.contains("k-list-content")&&(e.data.length>0?o.dispatchEvent(e.onDrop,t,N(),{dataItem:e.data[e.data.length-1]}):o.dispatchEvent(e.onDrop,t,N(),{dataItem:null}))},onDragLeave:e=>{b&&e.target.classList.contains("k-list-content")&&o.dispatchEvent(b,e,N(),void 0)},onKeyDown:A},i.createElement("div",{className:o.classNames("k-list",{[`k-list-${O}`]:k})},i.createElement("div",{className:"k-list-content"},i.createElement("ul",{className:"k-list-ul",role:"listbox","aria-label":"listbox-container",onKeyDown:e=>{p&&o.dispatchEvent(p,e,N(),void 0)}},r.map(((t,a)=>{const n=(e=>{if(u)return!!e[u]})(t),r={className:o.classNames("k-list-item",{"k-selected":n}),role:"option",key:a,id:B+a,"aria-selected":n,"data-uid":B+a,draggable:y,onDragStart:e=>{o.dispatchEvent(v,e,N(),{dataItem:t})},onDragOver:e=>{e.preventDefault(),o.dispatchEvent(g,e,N(),{dataItem:t})},onDrop:e=>{o.dispatchEvent(f,e,N(),{dataItem:t})},onClick:e=>{o.dispatchEvent(x,e,N(),{dataItem:t})}};return e.item?i.createElement(e.item,{selected:n,dataItem:t,...r,key:r.key},i.createElement("span",{className:"k-list-item-text"},t.name)):i.createElement("li",{...r,key:r.key},i.createElement("span",{className:"k-list-item-text"},(e=>s?e[s]:e.toString())(t)))})))))),i.createElement("select",{style:{display:"none"},multiple:!0,"data-role":"listbox"},r.map(((e,t)=>{const a=e[d||s];return i.createElement("option",{key:t,value:a},a)}))))})),m={toolbarPosition:c.RIGHT,draggable:!0,size:"medium"};d.propTypes={size:a.oneOf([null,"small","medium","large"]),toolbarPosition:a.oneOf(["none","top","bottom","left","right"]),textField:a.string.isRequired,valueField:a.string,selectedField:a.string,data:a.array.isRequired},d.displayName="ListBoxInner";const u={"listbox.moveUp":"Move Up","listbox.moveDown":"Move Down","listbox.transferTo":"Transfer To","listbox.transferFrom":"Transfer From","listbox.transferAllTo":"Transfer All To","listbox.transferAllFrom":"Transfer All From","listbox.remove":"Delete"},f=[{name:"moveUp",iconName:"caret-alt-up",svgIcon:s.caretAltUpIcon},{name:"moveDown",iconName:"caret-alt-down",svgIcon:s.caretAltDownIcon},{name:"transferTo",iconName:"caret-alt-right",svgIcon:s.caretAltRightIcon},{name:"transferFrom",iconName:"caret-alt-left",svgIcon:s.caretAltLeftIcon},{name:"transferAllTo",iconName:"caret-double-alt-right",svgIcon:s.caretDoubleAltRightIcon},{name:"transferAllFrom",iconName:"caret-double-alt-left",svgIcon:s.caretDoubleAltLeftIcon},{name:"remove",iconName:"x",svgIcon:s.xIcon}],p=i.forwardRef(((e,t)=>{const{tools:a,dir:l,onToolClick:c,size:d=v.size,data:m=v.data,dataConnected:p=v.dataConnected,selectedField:b=v.selectedField}=e,g=r.useLocalization(),x=i.useRef(null),h=i.useRef(null),D=i.useCallback((()=>({onToolClick:c,props:e,context:{},state:{},refs:{}})),[]);i.useImperativeHandle(h,D),i.useImperativeHandle(t,(()=>h.current));const k=(e,t,a)=>{a.preventDefault(),t.focusNext(e)},y=(e,t,a)=>{a.preventDefault(),t.focusPrevious(e)},I=i.useMemo((()=>new o.Navigation({root:x,selectors:[".k-button:not([disabled])"],tabIndex:0,keyboardEvents:{keydown:{ArrowDown:k,ArrowRight:k,ArrowUp:y,ArrowLeft:y,Enter:(e,t,a)=>{e.click(),t.focusElement(t.current,e)}}}})),[]),E=i.useCallback(I.triggerKeyboardEvent.bind(I),[]);i.useEffect((()=>(I.initializeRovingTab(),()=>I.removeFocusListener())),[]);const w=e=>{switch(e.name){case"caret-alt-right":return s.caretAltLeftIcon;case"caret-alt-left":return s.caretAltRightIcon;case"caret-double-alt-right":return s.caretDoubleAltLeftIcon;case"caret-double-alt-left":return s.caretDoubleAltRightIcon}return e},T=e=>{switch(e){case"caret-alt-right":return"caret-alt-left";case"caret-alt-left":return"caret-alt-right";case"caret-double-alt-right":return"caret-double-alt-left";case"caret-double-alt-left":return"caret-double-alt-right"}return e},N="rtl"===l;return i.createElement("div",{className:o.classNames("k-listbox-actions"),ref:x,onKeyDown:E},a&&a.map(((e,t)=>{const a=f.findIndex((t=>t.name===e)),r=f[a],s=(e=>{let t=!0;const a=b||"selected",o=m.length,n=p.length,r=m.findIndex((e=>!0===e[a]))>=0,s=p.findIndex((e=>!0===e[a]))>=0;switch(e){case"moveUp":t=r?!(m.length>0)||m[0].selected:!s||!(p.length>0)||p[0].selected;break;case"moveDown":t=r?!m[o-1]||m[o-1].selected:!s||!(p.length>0)||p[n-1].selected;break;case"transferTo":t=!(p&&r);break;case"transferFrom":t=!p||!(p&&s);break;case"transferAllTo":t=!(p&&m.length>0);break;case"transferAllFrom":t=!(p&&p.length>0);break;case"remove":t=!(r||s)}return t})(r.name),l=`listbox.${r.name}`,v=g.toLanguageString(l,u[l]);return i.createElement(n.Button,{size:d,key:t,disabled:s,"data-command":r.name,title:v,"aria-label":v,icon:N?T(r.iconName):r.iconName,svgIcon:N?w(r.svgIcon):r.svgIcon,onClick:e=>{e.preventDefault(),((e,t)=>{o.dispatchEvent(c,e,D(),{toolName:t})})(e,r.name)}})})))})),v={data:[],dataConnected:[],selectedField:"selected",size:"medium"};p.propTypes={data:a.array.isRequired,dataConnected:a.array.isRequired,tools:a.array,selectedField:a.string,dir:a.string,size:a.oneOf([null,"small","medium","large"])},p.displayName="ListBoxToolbarInner";const b=(e,t,a)=>{const o=a.splice(e,1)[0];return a.splice(t,0,o),a},g=o.withIdHOC(d);g.displayName="KendoReactListBox",e.ListBox=g,e.ListBoxToolbar=p,e.moveItem=b,e.processListBoxData=(e=[],t=[],a,o)=>{let n=[],r=[],s=[];const l={listBoxOneData:e,listBoxTwoData:t};switch(a){case"moveUp":n=[...e],n.forEach(((e,t)=>{e[o]&&(n=b(t,t-1,n))})),s=[...t],s.forEach(((e,t)=>{e[o]&&(s=b(t,t-1,s))})),l.listBoxOneData=n,l.listBoxTwoData=s;break;case"moveDown":n=e.reverse(),n.forEach(((e,t)=>{e[o]&&(n=b(t,t-1,n))})),s=t.reverse(),s.forEach(((e,t)=>{e[o]&&(s=b(t,t-1,s))})),l.listBoxOneData=[...n].reverse(),l.listBoxTwoData=[...s].reverse();break;case"transferTo":n=e.filter((e=>!e[o])),r=e.filter((e=>e[o])),s=t.concat(r),l.listBoxOneData=n,l.listBoxTwoData=s;break;case"transferFrom":s=t.filter((e=>!e[o])),r=t.filter((e=>e[o])),n=e.concat(r),l.listBoxOneData=n,l.listBoxTwoData=s;break;case"transferAllTo":l.listBoxOneData=[],l.listBoxTwoData=t.concat(e);break;case"transferAllFrom":l.listBoxOneData=t.concat(e),l.listBoxTwoData=[];break;case"remove":s=t.filter((e=>!e[o])),n=e.filter((e=>!e[o])),l.listBoxOneData=n,l.listBoxTwoData=s}return l},e.processListBoxDragAndDrop=(e=[],t=[],a,o,n)=>{const r=e.findIndex((e=>e[n]===a[n])),s=t.findIndex((e=>e[n]===a[n])),l=null!==o?e.findIndex((e=>e[n]===o[n])):-1,i=null!==o?t.findIndex((e=>e[n]===o[n])):-1,c=r>=0,d=s>=0,m=l>=0,u=i>=0,f=[...e],p=[...t];return c&&m?{listBoxOneData:b(r,l,e),listBoxTwoData:t}:d&&u?{listBoxOneData:e,listBoxTwoData:b(s,i,t)}:c&&(u||null===o)?(null===o?p.push(e[r]):p.splice(i+1,0,e[r]),f.splice(r,1),{listBoxOneData:f,listBoxTwoData:p}):d&&(m||null===o)?(null===o?f.push(t[s]):f.splice(l+1,0,t[s]),p.splice(s,1),{listBoxOneData:f,listBoxTwoData:p}):{listBoxOneData:e,listBoxTwoData:t}}}));
|
|
15
|
+
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("react"),require("prop-types"),require("@progress/kendo-react-common"),require("@progress/kendo-react-buttons"),require("@progress/kendo-react-intl"),require("@progress/kendo-svg-icons")):"function"==typeof define&&define.amd?define(["exports","react","prop-types","@progress/kendo-react-common","@progress/kendo-react-buttons","@progress/kendo-react-intl","@progress/kendo-svg-icons"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).KendoReactListbox={},e.React,e.PropTypes,e.KendoReactCommon,e.KendoReactButtons,e.KendoReactIntl,e.KendoSvgIcons)}(this,function(e,t,a,o,n,r,s){"use strict";function l(e){var t=Object.create(null);return e&&Object.keys(e).forEach(function(a){if("default"!==a){var o=Object.getOwnPropertyDescriptor(e,a);Object.defineProperty(t,a,o.get?o:{enumerable:!0,get:function(){return e[a]}})}}),t.default=e,Object.freeze(t)}var i=l(t),c=(e=>(e.TOP="top",e.BOTTOM="bottom",e.LEFT="left",e.RIGHT="right",e.NONE="none",e))(c||{});const d=i.forwardRef((e,t)=>{const{id:a,style:n,data:r,textField:s,className:l,valueField:d,selectedField:f,onDrop:u,onKeyDown:p,onDragStart:v,onDragLeave:b,onDragOver:g,onItemClick:x,onItemSelect:h,onKeyboardNavigate:D,size:k=m.size,draggable:y=m.draggable,toolbarPosition:I=m.toolbarPosition}=e,E=i.useRef(null),w=i.useRef(null),T=i.useRef(null),N=i.useCallback(()=>({element:T.current,props:e}),[]);i.useImperativeHandle(w,N),i.useImperativeHandle(t,()=>w.current);const B=a+"-accessibility-id",O=o.kendoThemeMaps.sizeMap[k]||k,K=i.useMemo(()=>new o.Navigation({root:E,selectors:[".k-list-item"],tabIndex:0,keyboardEvents:{keydown:{Space:(e,t,a)=>{const n=t.elements.indexOf(e);a.metaKey&&o.dispatchEvent(h,a,N(),{dataItem:r[n]}),o.dispatchEvent(h,a,N(),{dataItem:r[n]})},ArrowDown:(e,t,a)=>{if(a.metaKey&&a.shiftKey)o.dispatchEvent(D,a,N(),{actionName:"moveDown"});else if(a.metaKey&&!a.shiftKey)a.preventDefault(),t.focusNext(e);else if(!a.shiftKey||a.metaKey){a.preventDefault();const n=t.elements.indexOf(e),s=r[n+1];s&&(o.dispatchEvent(h,a,N(),{dataItem:s}),t.focusNext(e))}},ArrowUp:(e,t,a)=>{if(a.metaKey&&a.shiftKey)o.dispatchEvent(D,a,N(),{actionName:"moveUp"});else if(a.metaKey&&!a.shiftKey)a.preventDefault(),t.focusPrevious(e);else if(!a.shiftKey||a.metaKey){a.preventDefault();const n=t.elements.indexOf(e),s=r[n-1];s&&(o.dispatchEvent(h,a,N(),{dataItem:s}),t.focusPrevious(e))}},ArrowLeft:(e,t,a)=>{a.metaKey&&a.shiftKey?o.dispatchEvent(D,a,N(),{actionName:"transferAllFrom"}):a.metaKey&&o.dispatchEvent(D,a,N(),{actionName:"transferFrom"})},ArrowRight:(e,t,a)=>{a.metaKey&&a.shiftKey?o.dispatchEvent(D,a,N(),{actionName:"transferAllTo"}):a.metaKey&&o.dispatchEvent(D,a,N(),{actionName:"transferTo"})},Backspace:(e,t,a)=>{o.dispatchEvent(D,a,N(),{actionName:"remove"})}}}}),[r]),A=i.useCallback(K.triggerKeyboardEvent.bind(K),[r]);return i.useEffect(()=>(K.initializeRovingTab(),()=>K.removeFocusListener()),[r]),i.createElement("div",{id:a,ref:T,style:n,unselectable:"on",className:o.classNames(l,"k-listbox",{[`k-listbox-${O}`]:k},I===c.NONE||void 0===e.toolbar?`k-listbox-actions-${m.toolbarPosition}`:`k-listbox-actions-${I}`)},e.toolbar&&i.createElement(e.toolbar,null),i.createElement("div",{className:"k-list-scroller k-selectable","data-role":"selectable",ref:E,onDragOver:e=>e.preventDefault(),onDrop:t=>{t.target.classList.contains("k-list-content")&&(e.data.length>0?o.dispatchEvent(e.onDrop,t,N(),{dataItem:e.data[e.data.length-1]}):o.dispatchEvent(e.onDrop,t,N(),{dataItem:null}))},onDragLeave:e=>{b&&e.target.classList.contains("k-list-content")&&o.dispatchEvent(b,e,N(),void 0)},onKeyDown:A},i.createElement("div",{className:o.classNames("k-list",{[`k-list-${O}`]:k})},i.createElement("div",{className:"k-list-content"},i.createElement("ul",{className:"k-list-ul",role:"listbox","aria-label":"listbox-container",onKeyDown:e=>{p&&o.dispatchEvent(p,e,N(),void 0)}},r.map((t,a)=>{const n=(e=>{if(f)return!!e[f]})(t),r={className:o.classNames("k-list-item",{"k-selected":n}),role:"option",key:a,id:B+a,"aria-selected":n,"data-uid":B+a,draggable:y,onDragStart:e=>{o.dispatchEvent(v,e,N(),{dataItem:t})},onDragOver:e=>{e.preventDefault(),o.dispatchEvent(g,e,N(),{dataItem:t})},onDrop:e=>{o.dispatchEvent(u,e,N(),{dataItem:t})},onClick:e=>{o.dispatchEvent(x,e,N(),{dataItem:t})}};return e.item?i.createElement(e.item,{selected:n,dataItem:t,...r,key:r.key},i.createElement("span",{className:"k-list-item-text"},t.name)):i.createElement("li",{...r,key:r.key},i.createElement("span",{className:"k-list-item-text"},(e=>s?e[s]:e.toString())(t)))}))))),i.createElement("select",{style:{display:"none"},multiple:!0,"data-role":"listbox"},r.map((e,t)=>{const a=e[d||s];return i.createElement("option",{key:t,value:a},a)})))}),m={toolbarPosition:c.RIGHT,draggable:!0,size:void 0};d.propTypes={size:a.oneOf(["small","medium","large"]),toolbarPosition:a.oneOf(["none","top","bottom","left","right"]),textField:a.string.isRequired,valueField:a.string,selectedField:a.string,data:a.array.isRequired},d.displayName="ListBoxInner";const f="listbox.moveUp",u="listbox.moveDown",p="listbox.transferTo",v="listbox.transferFrom",b="listbox.transferAllTo",g="listbox.transferAllFrom",x="listbox.remove",h={[f]:"Move Up",[u]:"Move Down",[p]:"Transfer To",[v]:"Transfer From",[b]:"Transfer All To",[g]:"Transfer All From",[x]:"Delete"},D=[{name:"moveUp",iconName:"caret-alt-up",svgIcon:s.caretAltUpIcon},{name:"moveDown",iconName:"caret-alt-down",svgIcon:s.caretAltDownIcon},{name:"transferTo",iconName:"caret-alt-right",svgIcon:s.caretAltRightIcon},{name:"transferFrom",iconName:"caret-alt-left",svgIcon:s.caretAltLeftIcon},{name:"transferAllTo",iconName:"caret-double-alt-right",svgIcon:s.caretDoubleAltRightIcon},{name:"transferAllFrom",iconName:"caret-double-alt-left",svgIcon:s.caretDoubleAltLeftIcon},{name:"remove",iconName:"x",svgIcon:s.xIcon}],k=i.forwardRef((e,t)=>{const{tools:a,dir:l,onToolClick:c,size:d=y.size,data:m=y.data,dataConnected:f=y.dataConnected,selectedField:u=y.selectedField}=e,p=r.useLocalization(),v=i.useRef(null),b=i.useRef(null),g=i.useCallback(()=>({onToolClick:c,props:e,context:{},state:{},refs:{}}),[]);i.useImperativeHandle(b,g),i.useImperativeHandle(t,()=>b.current);const x=(e,t,a)=>{a.preventDefault(),t.focusNext(e)},k=(e,t,a)=>{a.preventDefault(),t.focusPrevious(e)},I=i.useMemo(()=>new o.Navigation({root:v,selectors:[".k-button:not([disabled])"],tabIndex:0,keyboardEvents:{keydown:{ArrowDown:x,ArrowRight:x,ArrowUp:k,ArrowLeft:k,Enter:(e,t,a)=>{e.click(),t.focusElement(t.current,e)}}}}),[]),E=i.useCallback(I.triggerKeyboardEvent.bind(I),[]);i.useEffect(()=>(I.initializeRovingTab(),()=>I.removeFocusListener()),[]);const w=e=>{switch(e.name){case"caret-alt-right":return s.caretAltLeftIcon;case"caret-alt-left":return s.caretAltRightIcon;case"caret-double-alt-right":return s.caretDoubleAltLeftIcon;case"caret-double-alt-left":return s.caretDoubleAltRightIcon}return e},T=e=>{switch(e){case"caret-alt-right":return"caret-alt-left";case"caret-alt-left":return"caret-alt-right";case"caret-double-alt-right":return"caret-double-alt-left";case"caret-double-alt-left":return"caret-double-alt-right"}return e},N="rtl"===l;return i.createElement("div",{className:o.classNames("k-listbox-actions"),ref:v,onKeyDown:E},a&&a.map((e,t)=>{const a=D.findIndex(t=>t.name===e),r=D[a],s=(e=>{let t=!0;const a=u||"selected",o=m.length,n=f.length,r=m.findIndex(e=>!0===e[a])>=0,s=f.findIndex(e=>!0===e[a])>=0;switch(e){case"moveUp":t=r?!(m.length>0)||m[0].selected:!s||!(f.length>0)||f[0].selected;break;case"moveDown":t=r?!m[o-1]||m[o-1].selected:!s||!(f.length>0)||f[n-1].selected;break;case"transferTo":t=!(f&&r);break;case"transferFrom":t=!f||!(f&&s);break;case"transferAllTo":t=!(f&&m.length>0);break;case"transferAllFrom":t=!(f&&f.length>0);break;case"remove":t=!(r||s)}return t})(r.name),l=`listbox.${r.name}`,v=p.toLanguageString(l,h[l]);return i.createElement(n.Button,{size:d,key:t,disabled:s,"data-command":r.name,title:v,"aria-label":v,icon:N?T(r.iconName):r.iconName,svgIcon:N?w(r.svgIcon):r.svgIcon,onClick:e=>{e.preventDefault(),((e,t)=>{o.dispatchEvent(c,e,g(),{toolName:t})})(e,r.name)}})}))}),y={data:[],dataConnected:[],selectedField:"selected",size:void 0};k.propTypes={data:a.array.isRequired,dataConnected:a.array.isRequired,tools:a.array,selectedField:a.string,dir:a.string,size:a.oneOf(["small","medium","large"])},k.displayName="ListBoxToolbarInner";const I=(e,t,a)=>{const o=a.splice(e,1)[0];return a.splice(t,0,o),a},E=o.withIdHOC(d);E.displayName="KendoReactListBox",e.ListBox=E,e.ListBoxToolbar=k,e.moveItem=I,e.processListBoxData=(e=[],t=[],a,o)=>{let n=[],r=[],s=[];const l={listBoxOneData:e,listBoxTwoData:t};switch(a){case"moveUp":n=[...e],n.forEach((e,t)=>{e[o]&&(n=I(t,t-1,n))}),s=[...t],s.forEach((e,t)=>{e[o]&&(s=I(t,t-1,s))}),l.listBoxOneData=n,l.listBoxTwoData=s;break;case"moveDown":n=e.reverse(),n.forEach((e,t)=>{e[o]&&(n=I(t,t-1,n))}),s=t.reverse(),s.forEach((e,t)=>{e[o]&&(s=I(t,t-1,s))}),l.listBoxOneData=[...n].reverse(),l.listBoxTwoData=[...s].reverse();break;case"transferTo":n=e.filter(e=>!e[o]),r=e.filter(e=>e[o]),s=t.concat(r),l.listBoxOneData=n,l.listBoxTwoData=s;break;case"transferFrom":s=t.filter(e=>!e[o]),r=t.filter(e=>e[o]),n=e.concat(r),l.listBoxOneData=n,l.listBoxTwoData=s;break;case"transferAllTo":l.listBoxOneData=[],l.listBoxTwoData=t.concat(e);break;case"transferAllFrom":l.listBoxOneData=t.concat(e),l.listBoxTwoData=[];break;case"remove":s=t.filter(e=>!e[o]),n=e.filter(e=>!e[o]),l.listBoxOneData=n,l.listBoxTwoData=s}return l},e.processListBoxDragAndDrop=(e=[],t=[],a,o,n)=>{const r=e.findIndex(e=>e[n]===a[n]),s=t.findIndex(e=>e[n]===a[n]),l=null!==o?e.findIndex(e=>e[n]===o[n]):-1,i=null!==o?t.findIndex(e=>e[n]===o[n]):-1,c=r>=0,d=s>=0,m=l>=0,f=i>=0,u=[...e],p=[...t];return c&&m?{listBoxOneData:I(r,l,e),listBoxTwoData:t}:d&&f?{listBoxOneData:e,listBoxTwoData:I(s,i,t)}:c&&(f||null===o)?(null===o?p.push(e[r]):p.splice(i+1,0,e[r]),u.splice(r,1),{listBoxOneData:u,listBoxTwoData:p}):d&&(m||null===o)?(null===o?u.push(t[s]):u.splice(l+1,0,t[s]),p.splice(s,1),{listBoxOneData:u,listBoxTwoData:p}):{listBoxOneData:e,listBoxTwoData:t}}});
|