@progress/kendo-react-dropdowns 14.5.0-develop.13 → 14.5.0-develop.15
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/AutoComplete/AutoComplete.d.ts +4 -23
- package/AutoComplete/AutoComplete.js +1 -1
- package/AutoComplete/AutoComplete.mjs +206 -196
- package/AutoComplete/AutoCompleteProps.d.ts +18 -1
- package/AutoCompleteMcpWrapper.d.ts +17 -0
- package/AutoCompleteMcpWrapper.js +8 -0
- package/AutoCompleteMcpWrapper.mjs +18 -0
- package/ComboBox/ComboBox.d.ts +1 -1
- package/ComboBox/ComboBox.js +1 -1
- package/ComboBox/ComboBox.mjs +224 -224
- package/ComboBox/ComboBoxProps.d.ts +6 -1
- package/ComboBoxMcpWrapper.d.ts +17 -0
- package/ComboBoxMcpWrapper.js +8 -0
- package/ComboBoxMcpWrapper.mjs +18 -0
- package/DropDownList/DropDownList.js +1 -1
- package/DropDownList/DropDownList.mjs +283 -282
- package/DropDownList/DropDownListProps.d.ts +6 -1
- package/DropDownTree/DropDownTree.js +1 -1
- package/DropDownTree/DropDownTree.mjs +206 -200
- package/DropDownTree/DropDownTreeProps.d.ts +18 -1
- package/MultiSelect/MultiSelect.d.ts +2 -1
- package/MultiSelect/MultiSelect.js +1 -1
- package/MultiSelect/MultiSelect.mjs +182 -175
- package/MultiSelect/MultiSelectProps.d.ts +6 -1
- package/MultiSelect/TagList.js +1 -1
- package/MultiSelect/TagList.mjs +1 -1
- package/MultiSelectMcpWrapper.d.ts +17 -0
- package/MultiSelectMcpWrapper.js +8 -0
- package/MultiSelectMcpWrapper.mjs +18 -0
- package/MultiSelectTree/MultiSelectTree.js +1 -1
- package/MultiSelectTree/MultiSelectTree.mjs +237 -221
- package/MultiSelectTree/MultiSelectTreeProps.d.ts +12 -0
- package/common/ClearButton.js +1 -1
- package/common/ClearButton.mjs +6 -7
- package/common/List.d.ts +1 -0
- package/common/List.js +1 -1
- package/common/List.mjs +84 -81
- package/common/ListFilter.js +1 -1
- package/common/ListFilter.mjs +20 -17
- package/common/SearchBar.d.ts +1 -0
- package/common/SearchBar.js +1 -1
- package/common/SearchBar.mjs +7 -7
- package/dist/cdn/js/kendo-react-dropdowns.js +1 -1
- package/index.d.mts +9 -3
- package/index.d.ts +9 -3
- package/index.js +1 -1
- package/index.mjs +51 -47
- package/messages/index.d.ts +14 -4
- package/messages/index.js +1 -1
- package/messages/index.mjs +15 -11
- package/package-metadata.js +1 -1
- package/package-metadata.mjs +2 -2
- package/package.json +10 -10
|
@@ -10,7 +10,7 @@ import { VirtualizationSettings, DropDownsPopupSettings } from '../common/settin
|
|
|
10
10
|
import { ListGroupItemProps } from '../common/ListGroupItem.js';
|
|
11
11
|
import { GroupStickyHeaderProps } from '../common/GroupStickyHeader.js';
|
|
12
12
|
import { ListItemProps } from '../common/ListItem.js';
|
|
13
|
-
import { DropDownsClassStructure, FormComponentProps, SVGIcon } from '@progress/kendo-react-common';
|
|
13
|
+
import { DropDownsClassStructure, FormComponentProps, SVGIcon, WebMcpProps } from '@progress/kendo-react-common';
|
|
14
14
|
import { DropDownListHandle } from './models/index.js';
|
|
15
15
|
/**
|
|
16
16
|
* Represents the object of the `filterChange` DropDownList event.
|
|
@@ -602,6 +602,11 @@ export interface DropDownListProps extends FormComponentProps {
|
|
|
602
602
|
* ```
|
|
603
603
|
*/
|
|
604
604
|
skipDisabledItems?: boolean;
|
|
605
|
+
/**
|
|
606
|
+
* Enables Web MCP tool registration for this component.
|
|
607
|
+
* Requires a parent `WebMcpProvider` from `@progress/kendo-react-webmcp`.
|
|
608
|
+
*/
|
|
609
|
+
webMcp?: boolean | WebMcpProps;
|
|
605
610
|
/**
|
|
606
611
|
* @hidden
|
|
607
612
|
*/
|
|
@@ -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 et=require("react"),n=require("prop-types"),a=require("@progress/kendo-react-common"),tt=require("@progress/kendo-react-popup"),nt=require("@progress/kendo-react-intl"),Ie=require("@progress/kendo-react-treeview"),Se=require("../package-metadata.js"),G=require("../common/utils.js"),ot=require("./useDropdownWidth.js"),at=require("./ListNoData.js"),E=require("../messages/index.js"),rt=require("@progress/kendo-react-labels"),Re=require("../common/ListFilter.js"),st=require("@progress/kendo-react-buttons"),Te=require("@progress/kendo-svg-icons"),it=require("../common/AdaptiveMode.js"),lt=require("@progress/kendo-react-layout");function ct(u){const v=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(u){for(const C in u)if(C!=="default"){const x=Object.getOwnPropertyDescriptor(u,C);Object.defineProperty(v,C,x.get?x:{enumerable:!0,get:()=>u[C]})}}return v.default=u,Object.freeze(v)}const t=ct(et),{sizeMap:ut,roundedMap:dt}=a.kendoThemeMaps,pt=12e3,ft=2e3,vt="Please select a value from the list!",mt=u=>t.createElement("span",{className:"k-input-value-text"},u.children),Me=u=>u.split("_").map(v=>parseInt(v,10)),gt=(u,v)=>{const{validationMessage:C,valid:x,required:s}=u;return{customError:C!==void 0,valid:!!(x!==void 0?x:!s||v),valueMissing:!v}},re={selectField:"selected",subItemsField:"items",popupSettings:{animate:!0,width:"200px",height:"200px"},data:[],required:!1,style:{},validityStyles:!0,size:void 0,rounded:void 0,fillMode:void 0},Pe=a.createPropsContext(),se=t.forwardRef((u,v)=>{const C=!a.validatePackage(Se.packageMetadata,{component:"DropDownTree"}),x=a.getLicenseMessage(Se.packageMetadata),s=a.usePropsContext(Pe,u),r={...re,...s},qe=a.useId(),ie=r.id||qe,{data:N,dataItemKey:L,popupSettings:m={},style:V,opened:d,disabled:R,onOpen:W=a.noop,onClose:g=a.noop,placeholder:j,label:T,name:Ke,selectField:Z,subItemsField:z,validationMessage:$,valid:Oe,required:J,validityStyles:Ne}=r,Q=a.getTabIndex(r.tabIndex,R),i=t.useRef(null),b=t.useRef(null),M=t.useRef(null),Y=t.useRef(null),U=t.useRef(null),D=t.useRef(null),X=t.useRef(!1),[le,Le]=t.useState(void 0),w=r.value!==void 0,y=w?r.value:le!==void 0?le:r.defaultValue,B=G.isPresent(y),ee=B?G.getItemValue(y,r.textField):"",te=gt({validationMessage:$,valid:Oe,required:J},B),ce=t.useContext(a.ZIndexContext),Ve=ce?ce+ft:pt,We=t.useCallback(()=>b.current&&b.current.focus(),[]);t.useImperativeHandle(i,()=>({props:r,element:b.current,focus:We})),t.useImperativeHandle(v,()=>i.current);const F=a.useRtl(b,r.dir),ze={width:ot.useDropdownWidth(b,re,{...re.popupSettings,...m},V),...F!==void 0?{direction:F}:{}},[Be,ue]=t.useState(!1),l=d!==void 0?d:Be,[f,ne]=t.useState(!1),[oe,Ae]=t.useState(),[de,_e]=t.useState(""),pe=a.useAdaptiveModeContext(),k=!!(oe&&pe&&oe<=pe.medium&&r.adaptive),He=t.useCallback(()=>{U.current&&U.current.setCustomValidity&&U.current.setCustomValidity(te.valid?"":$===void 0?vt:$)},[$,te]);t.useEffect(He),t.useEffect(()=>{const e=a.canUseDOM&&window.ResizeObserver&&new window.ResizeObserver(Qe.bind(void 0));return document!=null&&document.body&&e&&e.observe(document.body),()=>{document!=null&&document.body&&e&&e.disconnect()}},[]);const fe=t.useCallback(e=>{if(!l){if(W){const o={...e};W.call(void 0,o)}d===void 0&&ue(!0)}},[l,d,W]),I=t.useCallback(e=>{if(l){if(g){const o={...e};g.call(void 0,o)}d===void 0&&(ue(!1),k&&setTimeout(()=>{var o;h((o=Y.current)==null?void 0:o.element)},300))}},[l,d,g,k]),ve=t.useCallback(e=>{if(!e.isDefaultPrevented()&&i.current){ne(!0);const o={syntheticEvent:e,nativeEvent:e.nativeEvent,target:i.current};(l?I:fe)(o)}},[l,d,W,g]),P=t.useCallback(e=>{X.current=!0,e(),window.setTimeout(()=>X.current=!1,0)},[]),je=t.useCallback(e=>{var S,we;const{keyCode:o,altKey:c}=e,p=D.current&&D.current.element;if(!i.current||e.isDefaultPrevented()&&((S=M.current)==null?void 0:S.element)===e.target)return;const K={syntheticEvent:e,nativeEvent:e.nativeEvent,target:i.current};if(l)if(o===a.Keys.esc||c&&o===a.Keys.up)e.preventDefault(),I(K);else if(p&&p.querySelector(".k-focus")&&(o===a.Keys.up||o===a.Keys.down||o===a.Keys.left||o===a.Keys.right||o===a.Keys.home||o===a.Keys.end)){if(o===a.Keys.up&&((we=M.current)!=null&&we.element)){const H=Array.from(p.querySelectorAll(".k-treeview-item")),Fe=[...H].reverse().find(O=>O==null?void 0:O.querySelector(".k-focus"));if(Fe&&H.indexOf(Fe)===0)return P(()=>{var O;h((O=M.current)==null?void 0:O.element)})}P(a.noop)}else o===a.Keys.down&&P(()=>{var H;h(((H=M.current)==null?void 0:H.element)||p)});else c&&o===a.Keys.down?(e.preventDefault(),fe(K)):l||o===a.Keys.esc&&ye(e)},[l,d,W,g]),me=t.useCallback(e=>{const{keyCode:o,altKey:c}=e;c||o!==a.Keys.up&&o!==a.Keys.down||(e.preventDefault(),P(o===a.Keys.up?()=>{h(b.current)}:()=>{var p;h((p=D.current)==null?void 0:p.element)}))},[]),h=t.useCallback(e=>{e&&P(()=>e.focus())},[]),Ze=t.useCallback(e=>{var o;m.onOpen&&m.onOpen(e),!f&&l&&!d?I({target:i.current}):s.filterable?h((o=M.current)==null?void 0:o.element):h(D.current&&D.current.element)},[g,s.filterable,f,d,l]),$e=t.useCallback(e=>{m.onClose&&m.onClose(e),f&&h(b.current)},[f]),Ue=t.useCallback(e=>{if(!f&&!X.current&&(ne(!0),s.onFocus&&i.current)){const o={syntheticEvent:e,nativeEvent:e.nativeEvent,target:i.current};s.onFocus.call(void 0,o)}},[f,s.onFocus]),Xe=t.useCallback(e=>{if(f&&!X.current&&i.current){ne(!1);const o={syntheticEvent:e,nativeEvent:e.nativeEvent,target:i.current};if(s.onBlur){const c={...o};s.onBlur.call(void 0,c)}k||I(o)}},[f,s.onBlur,l,d,g]),Ge=t.useCallback(()=>{f&&P(a.noop),k&&setTimeout(()=>{var e;h((e=Y.current)==null?void 0:e.element)},300)},[f,k]),ge=t.useCallback((e,o,c)=>{if(s.onChange){const p={value:o,level:c?Me(c):[],...e};s.onChange.call(void 0,p)}w||Le(o)},[s.onChange,w]),be=t.useCallback(e=>{if(G.areSame(e.item,y,L)||!i.current)return;const{item:o,itemHierarchicalIndex:c,nativeEvent:p,syntheticEvent:K}=e,S={syntheticEvent:K,nativeEvent:p,target:i.current};ge(S,o,c),I(S)},[w,y,s.onChange,L,l,d,g]),ye=t.useCallback(e=>{if(!i.current)return;const o={syntheticEvent:e,nativeEvent:e.nativeEvent,target:i.current};ge(o,null),I(o),e.preventDefault()},[w,s.onChange,l,d,g]),he=t.useCallback(e=>{if(e.syntheticEvent.stopPropagation(),s.onExpandChange&&i.current){const{item:o,itemHierarchicalIndex:c,nativeEvent:p,syntheticEvent:K}=e,S={level:Me(c),item:o,nativeEvent:p,syntheticEvent:K,target:i.current};s.onExpandChange.call(void 0,S)}},[s.onExpandChange]),Ee=t.useCallback(e=>{if(s.onFilterChange&&i.current){const c={filter:{field:s.textField,operator:"contains",value:e.target.value},syntheticEvent:e.syntheticEvent,nativeEvent:e.nativeEvent,target:i.current};s.onFilterChange.call(void 0,c),s.filter===void 0&&_e(e.target.value)}},[s.onFilterChange,s.filter,s.textField]),Je=()=>{const e=r.filterable?t.createElement(Re,{value:r.filter===void 0?de:r.filter,ref:Y,onChange:Ee,onKeyDown:me,size:"large",rounded:A,fillMode:_,placeholder:j}):null,o={title:r.adaptiveTitle||T,subTitle:r.adaptiveSubtitle,expand:l,onClose:c=>I(c),windowWidth:oe,mobileFilter:e};return t.createElement(it.AdaptiveMode,{...o},t.createElement(lt.ActionSheetContent,null,N.length>0?t.createElement(Ie.TreeView,{ref:D,tabIndex:Q,data:Ce,focusIdField:L,textField:r.textField,selectField:Z,expandField:r.expandField,childrenField:z,expandIcons:!0,onItemClick:be,onExpandChange:he,size:"large",item:r.item,dir:F,animate:!1}):t.createElement(ke,null,ae.toLanguageString(E.nodata,E.messages[E.nodata]))))},Qe=t.useCallback(e=>{for(const o of e)Ae(o.target.clientWidth)},[]),Ce=t.useMemo(()=>w||!B?N:a.mapTree(N,z,e=>a.extendDataItem(e,z,{[Z]:G.areSame(e,y,L)})),[N,y,w,B,Z,z]),ke=r.listNoData||at.ListNoData,Ye=r.valueHolder||mt,ae=nt.useLocalization(),xe=!Ne||te.valid,{size:q,rounded:A,fillMode:_}=r,De=t.createElement(t.Fragment,null,t.createElement("span",{className:a.classNames("k-dropdowntree k-picker",r.className,{[`k-picker-${ut[q]||q}`]:q,[`k-rounded-${dt[A]||A}`]:A,[`k-picker-${_}`]:_,"k-focus":f,"k-invalid":!xe,"k-loading":r.loading,"k-required":J,"k-disabled":r.disabled}),tabIndex:Q,accessKey:r.accessKey,id:ie,style:T?{...V,width:void 0}:V,dir:F,ref:b,onKeyDown:R?void 0:je,onMouseDown:Ge,onClick:R?void 0:ve,onFocus:k?e=>ve(e):Ue,onBlur:Xe,role:"combobox","aria-haspopup":"tree","aria-expanded":l,"aria-disabled":R,"aria-label":T,"aria-labelledby":r.ariaLabelledBy,"aria-describedby":r.ariaDescribedBy,"aria-required":J},t.createElement("span",{className:"k-input-inner"},(ee||j)&&t.createElement(Ye,{item:y},ee||j)),r.loading&&t.createElement(a.IconWrap,{className:"k-input-loading-icon",name:"loading"}),B&&!R&&t.createElement("span",{onClick:ye,className:"k-clear-value",title:ae.toLanguageString(E.clear,E.messages[E.clear]),role:"button",tabIndex:-1,onMouseDown:e=>e.preventDefault()},t.createElement(a.IconWrap,{name:"x",icon:Te.xIcon})),t.createElement(st.Button,{tabIndex:-1,type:"button","aria-label":"select",className:"k-input-button",size:q,fillMode:_,icon:"chevron-down",svgIcon:Te.chevronDownIcon}),t.createElement("select",{name:Ke,ref:U,tabIndex:-1,"aria-hidden":!0,title:T,style:{opacity:0,width:1,border:0,zIndex:-1,position:"absolute",left:"50%"}},t.createElement("option",{value:r.valueMap?r.valueMap.call(void 0,y):y})),!k&&t.createElement(a.ZIndexContext.Provider,{value:Ve},t.createElement(tt.Popup,{...m,className:a.classNames(m.className,{"k-rtl":F==="rtl"}),popupClass:a.classNames(m.popupClass,"k-dropdowntree-popup k-list-container"),style:ze,anchor:m.anchor||b.current,show:l,onOpen:Ze,onClose:$e},r.filterable&&t.createElement(Re,{value:r.filter===void 0?de:r.filter,ref:M,onChange:Ee,onKeyDown:me,size:q,rounded:A,fillMode:_,renderListFilterWrapper:!0,renderPrefixSeparator:!0}),N.length>0?t.createElement(Ie.TreeView,{style:{height:m.height},ref:D,tabIndex:Q,data:Ce,focusIdField:L,textField:r.textField,selectField:Z,expandField:r.expandField,childrenField:z,expandIcons:!0,onItemClick:be,onExpandChange:he,size:q,item:r.item,dir:F,animate:!1}):t.createElement(ke,null,ae.toLanguageString(E.nodata,E.messages[E.nodata])),C&&t.createElement(a.WatermarkOverlay,{message:x})))),k&&Je());return T?t.createElement(rt.FloatingLabel,{label:T,editorValue:ee,editorPlaceholder:j,editorValid:xe,editorDisabled:R,editorId:ie,style:{width:V?V.width:void 0},children:De,dir:F}):De}),bt={opened:n.bool,disabled:n.bool,dir:n.string,tabIndex:n.number,accessKey:n.string,data:n.array,value:n.any,valueMap:n.func,placeholder:n.string,dataItemKey:n.string.isRequired,textField:n.string.isRequired,selectField:n.string,expandField:n.string,subItemsField:n.string,className:n.string,style:n.object,label:n.string,validationMessage:n.string,validityStyles:n.bool,valid:n.bool,required:n.bool,name:n.string,id:n.string,ariaLabelledBy:n.string,ariaDescribedBy:n.string,filterable:n.bool,filter:n.string,loading:n.bool,popupSettings:n.shape({animate:n.oneOfType([n.bool,n.shape({openDuration:n.number,closeDuration:n.number})]),popupClass:n.string,className:n.string,appendTo:n.any,width:n.oneOfType([n.string,n.number]),height:n.oneOfType([n.string,n.number])}),onOpen:n.func,onClose:n.func,onFocus:n.func,onBlur:n.func,onChange:n.func,onFilterChange:n.func,onExpandChange:n.func,item:n.func,valueHolder:n.func,listNoData:n.func,adaptiveTitle:n.string,adaptiveSubtitle:n.string,adaptive:n.bool};se.displayName="KendoReactDropDownTree";se.propTypes=bt;exports.DropDownTree=se;exports.DropDownTreePropsContext=Pe;
|
|
8
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const nt=require("react"),n=require("prop-types"),a=require("@progress/kendo-react-common"),ot=require("@progress/kendo-react-popup"),at=require("@progress/kendo-react-intl"),Re=require("@progress/kendo-react-treeview"),Te=require("../package-metadata.js"),Q=require("../common/utils.js"),rt=require("./useDropdownWidth.js"),st=require("./ListNoData.js"),f=require("../messages/index.js"),it=require("@progress/kendo-react-labels"),Me=require("../common/ListFilter.js"),lt=require("@progress/kendo-react-buttons"),Pe=require("@progress/kendo-svg-icons"),ct=require("../common/AdaptiveMode.js"),ut=require("@progress/kendo-react-layout");function dt(u){const m=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(u){for(const C in u)if(C!=="default"){const w=Object.getOwnPropertyDescriptor(u,C);Object.defineProperty(m,C,w.get?w:{enumerable:!0,get:()=>u[C]})}}return m.default=u,Object.freeze(m)}const t=dt(nt),{sizeMap:pt,roundedMap:ft}=a.kendoThemeMaps,vt=12e3,mt=2e3,gt="Please select a value from the list!",bt=u=>t.createElement("span",{className:"k-input-value-text"},u.children),qe=u=>u.split("_").map(m=>parseInt(m,10)),yt=(u,m)=>{const{validationMessage:C,valid:w,required:s}=u;return{customError:C!==void 0,valid:!!(w!==void 0?w:!s||m),valueMissing:!m}},ie={selectField:"selected",subItemsField:"items",popupSettings:{animate:!0,width:"200px",height:"200px"},data:[],required:!1,style:{},validityStyles:!0,size:void 0,rounded:void 0,fillMode:void 0},Ke=a.createPropsContext(),le=t.forwardRef((u,m)=>{const C=!a.validatePackage(Te.packageMetadata,{component:"DropDownTree"}),w=a.getLicenseMessage(Te.packageMetadata),s=a.usePropsContext(Ke,u),r={...ie,...s},Oe=a.useId(),j=r.id||Oe,Y=`${j}-treeview`,ce=`${j}-value`,{data:N,dataItemKey:L,popupSettings:g={},style:V,opened:d,disabled:R,onOpen:W=a.noop,onClose:b=a.noop,placeholder:Z,label:T,name:Ne,selectField:$,subItemsField:A,validationMessage:U,valid:Le,required:ee,validityStyles:Ve}=r,te=a.getTabIndex(r.tabIndex,R),i=t.useRef(null),y=t.useRef(null),M=t.useRef(null),ne=t.useRef(null),X=t.useRef(null),x=t.useRef(null),G=t.useRef(!1),[ue,We]=t.useState(void 0),D=r.value!==void 0,h=D?r.value:ue!==void 0?ue:r.defaultValue,B=Q.isPresent(h),oe=B?Q.getItemValue(h,r.textField):"",ae=yt({validationMessage:U,valid:Le,required:ee},B),de=t.useContext(a.ZIndexContext),Ae=de?de+mt:vt,Be=t.useCallback(()=>y.current&&y.current.focus(),[]);t.useImperativeHandle(i,()=>({props:r,element:y.current,focus:Be})),t.useImperativeHandle(m,()=>i.current),a.useWebMcpRegister("dropdowntree",i,r,r.webMcp);const I=a.useRtl(y,r.dir),ze={width:rt.useDropdownWidth(y,ie,{...ie.popupSettings,...g},V),...I!==void 0?{direction:I}:{}},[_e,pe]=t.useState(!1),l=d!==void 0?d:_e,[v,re]=t.useState(!1),[se,He]=t.useState(),[fe,je]=t.useState(""),ve=a.useAdaptiveModeContext(),k=!!(se&&ve&&se<=ve.medium&&r.adaptive),Ze=t.useCallback(()=>{X.current&&X.current.setCustomValidity&&X.current.setCustomValidity(ae.valid?"":U===void 0?gt:U)},[U,ae]);t.useEffect(Ze),t.useEffect(()=>{const e=a.canUseDOM&&window.ResizeObserver&&new window.ResizeObserver(et.bind(void 0));return document!=null&&document.body&&e&&e.observe(document.body),()=>{document!=null&&document.body&&e&&e.disconnect()}},[]);const me=t.useCallback(e=>{if(!l){if(W){const o={...e};W.call(void 0,o)}d===void 0&&pe(!0)}},[l,d,W]),F=t.useCallback(e=>{if(l){if(b){const o={...e};b.call(void 0,o)}d===void 0&&(pe(!1),k&&setTimeout(()=>{var o;E((o=ne.current)==null?void 0:o.element)},300))}},[l,d,b,k]),ge=t.useCallback(e=>{if(!e.isDefaultPrevented()&&i.current){re(!0);const o={syntheticEvent:e,nativeEvent:e.nativeEvent,target:i.current};(l?F:me)(o)}},[l,d,W,b]),P=t.useCallback(e=>{G.current=!0,e(),window.setTimeout(()=>G.current=!1,0)},[]),$e=t.useCallback(e=>{var S,Fe;const{keyCode:o,altKey:c}=e,p=x.current&&x.current.element;if(!i.current||e.isDefaultPrevented()&&((S=M.current)==null?void 0:S.element)===e.target)return;const K={syntheticEvent:e,nativeEvent:e.nativeEvent,target:i.current};if(l)if(o===a.Keys.esc||c&&o===a.Keys.up)e.preventDefault(),F(K);else if(p&&p.querySelector(".k-focus")&&(o===a.Keys.up||o===a.Keys.down||o===a.Keys.left||o===a.Keys.right||o===a.Keys.home||o===a.Keys.end)){if(o===a.Keys.up&&((Fe=M.current)!=null&&Fe.element)){const H=Array.from(p.querySelectorAll(".k-treeview-item")),Se=[...H].reverse().find(O=>O==null?void 0:O.querySelector(".k-focus"));if(Se&&H.indexOf(Se)===0)return P(()=>{var O;E((O=M.current)==null?void 0:O.element)})}P(a.noop)}else o===a.Keys.down&&P(()=>{var H;E(((H=M.current)==null?void 0:H.element)||p)});else c&&o===a.Keys.down?(e.preventDefault(),me(K)):l||o===a.Keys.esc&&Ee(e)},[l,d,W,b]),be=t.useCallback(e=>{const{keyCode:o,altKey:c}=e;c||o!==a.Keys.up&&o!==a.Keys.down||(e.preventDefault(),P(o===a.Keys.up?()=>{E(y.current)}:()=>{var p;E((p=x.current)==null?void 0:p.element)}))},[]),E=t.useCallback(e=>{e&&P(()=>e.focus())},[]),Ue=t.useCallback(e=>{var o;g.onOpen&&g.onOpen(e),!v&&l&&!d?F({target:i.current}):s.filterable?E((o=M.current)==null?void 0:o.element):E(x.current&&x.current.element)},[b,s.filterable,v,d,l]),Xe=t.useCallback(e=>{g.onClose&&g.onClose(e),v&&E(y.current)},[v]),Ge=t.useCallback(e=>{if(!v&&!G.current&&(re(!0),s.onFocus&&i.current)){const o={syntheticEvent:e,nativeEvent:e.nativeEvent,target:i.current};s.onFocus.call(void 0,o)}},[v,s.onFocus]),Je=t.useCallback(e=>{if(v&&!G.current&&i.current){re(!1);const o={syntheticEvent:e,nativeEvent:e.nativeEvent,target:i.current};if(s.onBlur){const c={...o};s.onBlur.call(void 0,c)}k||F(o)}},[v,s.onBlur,l,d,b]),Qe=t.useCallback(()=>{v&&P(a.noop),k&&setTimeout(()=>{var e;E((e=ne.current)==null?void 0:e.element)},300)},[v,k]),ye=t.useCallback((e,o,c)=>{if(s.onChange){const p={value:o,level:c?qe(c):[],...e};s.onChange.call(void 0,p)}D||We(o)},[s.onChange,D]),he=t.useCallback(e=>{if(Q.areSame(e.item,h,L)||!i.current)return;const{item:o,itemHierarchicalIndex:c,nativeEvent:p,syntheticEvent:K}=e,S={syntheticEvent:K,nativeEvent:p,target:i.current};ye(S,o,c),F(S)},[D,h,s.onChange,L,l,d,b]),Ee=t.useCallback(e=>{if(!i.current)return;const o={syntheticEvent:e,nativeEvent:e.nativeEvent,target:i.current};ye(o,null),F(o),e.preventDefault()},[D,s.onChange,l,d,b]),Ce=t.useCallback(e=>{if(e.syntheticEvent.stopPropagation(),s.onExpandChange&&i.current){const{item:o,itemHierarchicalIndex:c,nativeEvent:p,syntheticEvent:K}=e,S={level:qe(c),item:o,nativeEvent:p,syntheticEvent:K,target:i.current};s.onExpandChange.call(void 0,S)}},[s.onExpandChange]),ke=t.useCallback(e=>{if(s.onFilterChange&&i.current){const c={filter:{field:s.textField,operator:"contains",value:e.target.value},syntheticEvent:e.syntheticEvent,nativeEvent:e.nativeEvent,target:i.current};s.onFilterChange.call(void 0,c),s.filter===void 0&&je(e.target.value)}},[s.onFilterChange,s.filter,s.textField]),Ye=()=>{const e=r.filterable?t.createElement(Me,{value:r.filter===void 0?fe:r.filter,ref:ne,onChange:ke,onKeyDown:be,size:"large",rounded:z,fillMode:_,placeholder:Z}):null,o={title:r.adaptiveTitle||T,subTitle:r.adaptiveSubtitle,expand:l,onClose:c=>F(c),windowWidth:se,mobileFilter:e};return t.createElement(ct.AdaptiveMode,{...o},t.createElement(ut.ActionSheetContent,null,N.length>0?t.createElement(Re.TreeView,{id:Y,ref:x,tabIndex:te,data:we,focusIdField:L,textField:r.textField,selectField:$,expandField:r.expandField,childrenField:A,expandIcons:!0,onItemClick:he,onExpandChange:Ce,size:"large",item:r.item,dir:I,animate:!1}):t.createElement(xe,null,J.toLanguageString(f.nodata,f.messages[f.nodata]))))},et=t.useCallback(e=>{for(const o of e)He(o.target.clientWidth)},[]),we=t.useMemo(()=>D||!B?N:a.mapTree(N,A,e=>a.extendDataItem(e,A,{[$]:Q.areSame(e,h,L)})),[N,h,D,B,$,A]),xe=r.listNoData||st.ListNoData,tt=r.valueHolder||bt,J=at.useLocalization(),De=!Ve||ae.valid,{size:q,rounded:z,fillMode:_}=r,Ie=t.createElement(t.Fragment,null,t.createElement("span",{className:a.classNames("k-dropdowntree k-picker",r.className,{[`k-picker-${pt[q]||q}`]:q,[`k-rounded-${ft[z]||z}`]:z,[`k-picker-${_}`]:_,"k-focus":v,"k-invalid":!De,"k-loading":r.loading,"k-required":ee,"k-disabled":r.disabled}),tabIndex:te,accessKey:r.accessKey,id:j,style:T?{...V,width:void 0}:V,dir:I,ref:y,onKeyDown:R?void 0:$e,onMouseDown:Qe,onClick:R?void 0:ge,onFocus:k?e=>ge(e):Ge,onBlur:Je,role:"combobox","aria-haspopup":"tree","aria-expanded":l,"aria-disabled":R,"aria-label":r.ariaLabel||T,"aria-labelledby":r.ariaLabelledBy,"aria-controls":l?Y:void 0,"aria-describedby":r.ariaDescribedBy||(l?ce:void 0),"aria-required":ee||void 0},t.createElement("span",{className:"k-input-inner",id:ce},(oe||Z)&&t.createElement(tt,{item:h},oe||Z)),r.loading&&t.createElement(a.IconWrap,{className:"k-input-loading-icon",name:"loading"}),B&&!R&&t.createElement("span",{onClick:Ee,className:"k-clear-value",title:J.toLanguageString(f.clear,f.messages[f.clear]),role:"button",tabIndex:-1,onMouseDown:e=>e.preventDefault()},t.createElement(a.IconWrap,{name:"x",icon:Pe.xIcon})),t.createElement(lt.Button,{tabIndex:-1,type:"button","aria-label":J.toLanguageString(f.dropDownListArrowBtnAriaLabel,f.messages[f.dropDownListArrowBtnAriaLabel]),className:"k-input-button",size:q,fillMode:_,icon:"chevron-down",svgIcon:Pe.chevronDownIcon}),t.createElement("select",{name:Ne,ref:X,tabIndex:-1,"aria-hidden":!0,title:T,style:{opacity:0,width:1,border:0,zIndex:-1,position:"absolute",left:"50%"}},t.createElement("option",{value:r.valueMap?r.valueMap.call(void 0,h):h})),!k&&t.createElement(a.ZIndexContext.Provider,{value:Ae},t.createElement(ot.Popup,{...g,className:a.classNames(g.className,{"k-rtl":I==="rtl"}),popupClass:a.classNames(g.popupClass,"k-dropdowntree-popup k-list-container"),style:ze,anchor:g.anchor||y.current,show:l,onOpen:Ue,onClose:Xe},r.filterable&&t.createElement(Me,{value:r.filter===void 0?fe:r.filter,ref:M,onChange:ke,onKeyDown:be,size:q,rounded:z,fillMode:_,renderListFilterWrapper:!0,renderPrefixSeparator:!0}),N.length>0?t.createElement(Re.TreeView,{id:Y,style:{height:g.height},ref:x,tabIndex:te,data:we,focusIdField:L,textField:r.textField,selectField:$,expandField:r.expandField,childrenField:A,expandIcons:!0,onItemClick:he,onExpandChange:Ce,size:q,item:r.item,dir:I,animate:!1}):t.createElement(xe,null,J.toLanguageString(f.nodata,f.messages[f.nodata])),C&&t.createElement(a.WatermarkOverlay,{message:w})))),k&&Ye());return T?t.createElement(it.FloatingLabel,{label:T,editorValue:oe,editorPlaceholder:Z,editorValid:De,editorDisabled:R,editorId:j,style:{width:V?V.width:void 0},children:Ie,dir:I}):Ie}),ht={opened:n.bool,disabled:n.bool,dir:n.string,tabIndex:n.number,accessKey:n.string,data:n.array,value:n.any,valueMap:n.func,placeholder:n.string,dataItemKey:n.string.isRequired,textField:n.string.isRequired,selectField:n.string,expandField:n.string,subItemsField:n.string,className:n.string,style:n.object,label:n.string,validationMessage:n.string,validityStyles:n.bool,valid:n.bool,required:n.bool,name:n.string,id:n.string,ariaLabelledBy:n.string,ariaDescribedBy:n.string,filterable:n.bool,filter:n.string,loading:n.bool,popupSettings:n.shape({animate:n.oneOfType([n.bool,n.shape({openDuration:n.number,closeDuration:n.number})]),popupClass:n.string,className:n.string,appendTo:n.any,width:n.oneOfType([n.string,n.number]),height:n.oneOfType([n.string,n.number])}),onOpen:n.func,onClose:n.func,onFocus:n.func,onBlur:n.func,onChange:n.func,onFilterChange:n.func,onExpandChange:n.func,item:n.func,valueHolder:n.func,listNoData:n.func,adaptiveTitle:n.string,adaptiveSubtitle:n.string,adaptive:n.bool};le.displayName="KendoReactDropDownTree";le.propTypes=ht;exports.DropDownTree=le;exports.DropDownTreePropsContext=Ke;
|