@vibe/core 3.63.0-alpha-7f1d0.0 → 3.63.0-alpha-f3bbe.0

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.
@@ -1,2 +1,2 @@
1
- import{slicedToArray as e}from"../../../../_virtual/_rollupPluginBabelHelpers.js";import o,{useState as t,useRef as n}from"react";import r from"../hooks/useDropdownMultiSelect.js";import l from"../components/DropdownWrapperUI.js";var i=function(i){var s=i.options,u=i.isMenuOpen,c=i.autoFocus,d=i.defaultValue,a=i.value,p=i.onChange,g=i.onMenuOpen,m=i.onMenuClose,f=i.onOptionSelect,O=i.clearable,v=void 0===O||O,b=i.showSelectedOptions,I=void 0===b||b,P=i.filterOption,h=i.dropdownRef,j=i.onClear,M=i.onOptionRemove,w=i.onFocus,C=i.onBlur,S=i.size,x=void 0===S?"medium":S,B=t(Array.isArray(d)?d:[]),k=e(B,2),y=k[0],D=k[1],F=t(!1),R=e(F,2),A=R[0],T=R[1],V=n(void 0),z=r(s,y,D,u,c,d,a,(function(e){null==p||p(e,V.current),V.current=void 0}),g,m,f,I,P),L=z.isOpen,_=z.highlightedIndex,E=z.getToggleButtonProps,H=z.getLabelProps,U=z.getMenuProps,W=z.getItemProps,q=z.reset,G=z.toggleMenu,J=z.filteredOptions,K=z.selectedItems,N=z.addSelectedItem,Q=z.removeSelectedItem,X=z.getDropdownProps,Y=Object.assign(Object.assign({},i),{isOpen:L,inputValue:null,highlightedIndex:_,selectedItem:void 0,selectedItems:K||[],filteredOptions:J,clearable:v,getToggleButtonProps:function(e){return E(Object.assign(Object.assign({},e||{}),{disabled:i.readOnly||i.disabled,onFocus:function(e){T(!0),null==w||w(e)},onBlur:function(e){T(!1),null==C||C(e)}}))},getLabelProps:H,getMenuProps:U,getItemProps:function(e){var o=W(e);return Object.assign(Object.assign({},o),{onClick:function(e){V.current=e,o.onClick&&o.onClick(e)}})},reset:q,getDropdownProps:X,contextOnClear:function(e){V.current=e,q(),void 0===a&&D([]),null==j||j()},contextOnOptionRemove:function(e,o){V.current=o,Q&&Q(e),null==M||M(e)},addSelectedItem:N,removeSelectedItem:Q,size:x,toggleMenu:G,isFocused:A});return o.createElement(l,{contextValue:Y,dropdownRef:h})};export{i as default};
1
+ import{slicedToArray as e}from"../../../../_virtual/_rollupPluginBabelHelpers.js";import t,{useState as n,useRef as r}from"react";import o from"../hooks/useDropdownMultiSelect.js";import i from"../components/DropdownWrapperUI.js";var a=function(a){var l=a.options,u=a.isMenuOpen,s=a.autoFocus,c=a.defaultValue,p=a.value,d=a.onChange,g=a.onMenuOpen,m=a.onMenuClose,f=a.onOptionSelect,v=a.clearable,y=void 0===v||v,K=a.showSelectedOptions,O=void 0===K||K,b=a.filterOption,P=a.dropdownRef,h=a.onClear,T=a.onOptionRemove,S=a.onFocus,I=a.onBlur,D=a.size,j=void 0===D?"medium":D,M=n(Array.isArray(c)?c:[]),X=e(M,2),w=X[0],C=X[1],E=n(!1),x=e(E,2),Y=x[0],B=x[1],k=r(void 0),F=o(l,w,C,u,s,c,p,(function(e){null==d||d(e,k.current),k.current=void 0}),g,m,f,O,b),R=F.isOpen,A=F.highlightedIndex,V=F.getToggleButtonProps,z=F.getLabelProps,L=F.getMenuProps,_=F.getItemProps,H=F.reset,U=F.toggleMenu,W=F.filteredOptions,q=F.selectedItems,G=F.addSelectedItem,J=F.removeSelectedItem,N=F.getDropdownProps,Q=Object.assign(Object.assign({},a),{isOpen:R,inputValue:null,highlightedIndex:A,selectedItem:void 0,selectedItems:q||[],filteredOptions:W,clearable:y,getToggleButtonProps:function(e){return V(Object.assign(Object.assign({},e||{}),{disabled:a.readOnly||a.disabled,onFocus:function(e){B(!0),null==S||S(e)},onBlur:function(e){B(!1),null==I||I(e)}}))},getLabelProps:z,getMenuProps:L,getItemProps:function(e){var t=_(e);return Object.assign(Object.assign({},t),{onClick:function(e){k.current={type:e.type,clientX:e.clientX,clientY:e.clientY,target:e.target,currentTarget:e.currentTarget,ctrlKey:e.ctrlKey,shiftKey:e.shiftKey,altKey:e.altKey,metaKey:e.metaKey,button:e.button,timeStamp:e.timeStamp,isTrusted:e.isTrusted,nativeEvent:e.nativeEvent,preventDefault:function(){return e.preventDefault()},stopPropagation:function(){return e.stopPropagation()}},t.onClick&&t.onClick(e)}})},reset:H,getDropdownProps:N,contextOnClear:function(e){if(e&&"clientX"in e){var t=e;k.current={type:t.type,clientX:t.clientX,clientY:t.clientY,target:t.target,currentTarget:t.currentTarget,ctrlKey:t.ctrlKey,shiftKey:t.shiftKey,altKey:t.altKey,metaKey:t.metaKey,button:t.button,timeStamp:t.timeStamp,isTrusted:t.isTrusted,nativeEvent:t.nativeEvent,preventDefault:function(){return t.preventDefault()},stopPropagation:function(){return t.stopPropagation()}}}H(),void 0===p&&C([]),null==h||h()},contextOnOptionRemove:function(e,t){if(t&&"clientX"in t){var n=t;k.current={type:n.type,clientX:n.clientX,clientY:n.clientY,target:n.target,currentTarget:n.currentTarget,ctrlKey:n.ctrlKey,shiftKey:n.shiftKey,altKey:n.altKey,metaKey:n.metaKey,button:n.button,timeStamp:n.timeStamp,isTrusted:n.isTrusted,nativeEvent:n.nativeEvent,preventDefault:function(){return n.preventDefault()},stopPropagation:function(){return n.stopPropagation()}}}J&&J(e),null==T||T(e)},addSelectedItem:G,removeSelectedItem:J,size:j,toggleMenu:U,isFocused:Y});return t.createElement(i,{contextValue:Q,dropdownRef:P})};export{a as default};
2
2
  //# sourceMappingURL=DropdownMultiSelectController.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"DropdownMultiSelectController.js","sources":["../../../../../../src/components/DropdownNew/modes/DropdownMultiSelectController.tsx"],"sourcesContent":["import React, { useState, useRef } from \"react\";\nimport { type DropdownMultiControllerProps } from \"../Dropdown.types\";\nimport useDropdownMultiSelect from \"../hooks/useDropdownMultiSelect\";\nimport { type BaseListItemData } from \"../../BaseListItem\";\nimport { type DropdownContextProps } from \"../context/DropdownContext.types\";\nimport DropdownWrapperUI from \"../components/DropdownWrapperUI\";\n\nconst DropdownMultiSelectController = <Item extends BaseListItemData<Record<string, unknown>>>(\n props: DropdownMultiControllerProps<Item>\n) => {\n const {\n options,\n isMenuOpen: isMenuOpenProp,\n autoFocus,\n defaultValue,\n value,\n onChange,\n onMenuOpen,\n onMenuClose,\n onOptionSelect,\n clearable = true,\n showSelectedOptions = true,\n filterOption,\n dropdownRef,\n onClear,\n onOptionRemove,\n onFocus,\n onBlur,\n size = \"medium\"\n } = props;\n\n const initialMultiSelectedItems = Array.isArray(defaultValue) ? defaultValue : [];\n const [multiSelectedItemsState, setMultiSelectedItemsState] = useState<Item[]>(initialMultiSelectedItems);\n const [isFocused, setIsFocused] = useState(false);\n const currentEventRef = useRef<React.SyntheticEvent | undefined>(undefined);\n\n // Wrapper for onChange that includes the current event\n const onChangeWithEvent = (options: Item[]) => {\n onChange?.(options, currentEventRef.current);\n currentEventRef.current = undefined; // Clear after use\n };\n\n const {\n isOpen,\n highlightedIndex,\n getToggleButtonProps,\n getLabelProps,\n getMenuProps,\n getItemProps,\n reset: hookReset,\n toggleMenu,\n filteredOptions,\n selectedItems: hookSelectedItems,\n addSelectedItem: hookAddSelectedItem,\n removeSelectedItem: hookRemoveSelectedItem,\n getDropdownProps\n } = useDropdownMultiSelect<Item>(\n options,\n multiSelectedItemsState,\n setMultiSelectedItemsState,\n isMenuOpenProp,\n autoFocus,\n defaultValue,\n value,\n onChangeWithEvent,\n onMenuOpen,\n onMenuClose,\n onOptionSelect,\n showSelectedOptions,\n filterOption\n );\n\n const contextValue: DropdownContextProps<Item> = {\n ...props,\n isOpen,\n inputValue: null,\n highlightedIndex,\n selectedItem: undefined,\n selectedItems: hookSelectedItems || [],\n filteredOptions,\n clearable,\n getToggleButtonProps: (toggleOptions?: Record<string, unknown>) => {\n return getToggleButtonProps({\n ...(toggleOptions || {}),\n disabled: props.readOnly || props.disabled,\n onFocus: (event: React.FocusEvent<HTMLDivElement>) => {\n setIsFocused(true);\n onFocus?.(event);\n },\n onBlur: (event: React.FocusEvent<HTMLDivElement>) => {\n setIsFocused(false);\n onBlur?.(event);\n }\n });\n },\n getLabelProps,\n getMenuProps,\n getItemProps: (itemOptions: { item: Item; index: number }) => {\n const originalProps = getItemProps(itemOptions);\n return {\n ...originalProps,\n onClick: (event: React.MouseEvent) => {\n // Capture the event for the onChange callback\n currentEventRef.current = event;\n // Call the original onClick which will trigger the onChange through the hook\n if (originalProps.onClick) {\n originalProps.onClick(event);\n }\n }\n };\n },\n reset: hookReset,\n getDropdownProps,\n contextOnClear: (event?: React.SyntheticEvent) => {\n // Capture the event for the onChange callback that will be triggered by hookReset\n currentEventRef.current = event;\n hookReset();\n if (value === undefined) {\n setMultiSelectedItemsState([]);\n }\n onClear?.();\n },\n contextOnOptionRemove: (option: Item, event?: React.SyntheticEvent) => {\n // Capture the event for the onChange callback\n currentEventRef.current = event;\n if (hookRemoveSelectedItem) {\n hookRemoveSelectedItem(option);\n }\n onOptionRemove?.(option);\n },\n addSelectedItem: hookAddSelectedItem,\n removeSelectedItem: hookRemoveSelectedItem,\n size,\n toggleMenu,\n isFocused\n };\n\n return <DropdownWrapperUI contextValue={contextValue} dropdownRef={dropdownRef} />;\n};\n\nexport default DropdownMultiSelectController;\n"],"names":["DropdownMultiSelectController","props","options","isMenuOpenProp","isMenuOpen","autoFocus","defaultValue","value","onChange","onMenuOpen","onMenuClose","onOptionSelect","_props$clearable","clearable","_props$showSelectedOp","showSelectedOptions","filterOption","dropdownRef","onClear","onOptionRemove","onFocus","onBlur","_props$size","size","_useState","useState","Array","isArray","_useState2","_slicedToArray","multiSelectedItemsState","setMultiSelectedItemsState","_useState3","_useState4","isFocused","setIsFocused","currentEventRef","useRef","undefined","_useDropdownMultiSele","useDropdownMultiSelect","current","isOpen","highlightedIndex","getToggleButtonProps","getLabelProps","getMenuProps","getItemProps","hookReset","reset","toggleMenu","filteredOptions","hookSelectedItems","selectedItems","hookAddSelectedItem","addSelectedItem","hookRemoveSelectedItem","removeSelectedItem","getDropdownProps","contextValue","inputValue","selectedItem","toggleOptions","disabled","readOnly","event","itemOptions","originalProps","Object","assign","onClick","contextOnClear","contextOnOptionRemove","option","React","createElement","DropdownWrapperUI"],"mappings":"sOAOA,IAAMA,EAAgC,SACpCC,GAEA,IACEC,EAkBED,EAlBFC,QACYC,EAiBVF,EAjBFG,WACAC,EAgBEJ,EAhBFI,UACAC,EAeEL,EAfFK,aACAC,EAcEN,EAdFM,MACAC,EAaEP,EAbFO,SACAC,EAYER,EAZFQ,WACAC,EAWET,EAXFS,YACAC,EAUEV,EAVFU,eAAcC,EAUZX,EATFY,UAAAA,OAAY,IAAHD,GAAOA,EAAAE,EASdb,EARFc,oBAAAA,OAAsB,IAAHD,GAAOA,EAC1BE,EAOEf,EAPFe,aACAC,EAMEhB,EANFgB,YACAC,EAKEjB,EALFiB,QACAC,EAIElB,EAJFkB,eACAC,EAGEnB,EAHFmB,QACAC,EAEEpB,EAFFoB,OAAMC,EAEJrB,EADFsB,KAAAA,OAAO,IAAHD,EAAG,SAAQA,EAIjBE,EAA8DC,EAD5BC,MAAMC,QAAQrB,GAAgBA,EAAe,IAC0BsB,EAAAC,EAAAL,EAAA,GAAlGM,EAAuBF,EAAA,GAAEG,EAA0BH,EAAA,GAC1DI,EAAkCP,GAAS,GAAMQ,EAAAJ,EAAAG,EAAA,GAA1CE,EAASD,EAAA,GAAEE,EAAYF,EAAA,GACxBG,EAAkBC,OAAyCC,GAQjEC,EAcIC,EACFtC,EACA4B,EACAC,EACA5B,EACAE,EACAC,EACAC,GA1BwB,SAACL,GACzBM,SAAAA,EAAWN,EAASkC,EAAgBK,SACpCL,EAAgBK,aAAUH,IA0B1B7B,EACAC,EACAC,EACAI,EACAC,GA1BA0B,EAAMH,EAANG,OACAC,EAAgBJ,EAAhBI,iBACAC,EAAoBL,EAApBK,qBACAC,EAAaN,EAAbM,cACAC,EAAYP,EAAZO,aACAC,EAAYR,EAAZQ,aACOC,EAAST,EAAhBU,MACAC,EAAUX,EAAVW,WACAC,EAAeZ,EAAfY,gBACeC,EAAiBb,EAAhCc,cACiBC,EAAmBf,EAApCgB,gBACoBC,EAAsBjB,EAA1CkB,mBACAC,EAAgBnB,EAAhBmB,iBAiBIC,iCACD1D,GAAK,CACRyC,OAAAA,EACAkB,WAAY,KACZjB,iBAAAA,EACAkB,kBAAcvB,EACde,cAAeD,GAAqB,GACpCD,gBAAAA,EACAtC,UAAAA,EACA+B,qBAAsB,SAACkB,GACrB,OAAOlB,iCACDkB,GAAiB,CAAA,GACrB,CAAAC,SAAU9D,EAAM+D,UAAY/D,EAAM8D,SAClC3C,QAAS,SAAC6C,GACR9B,GAAa,GACbf,SAAAA,EAAU6C,EACX,EACD5C,OAAQ,SAAC4C,GACP9B,GAAa,GACbd,SAAAA,EAAS4C,EACX,IAEH,EACDpB,cAAAA,EACAC,aAAAA,EACAC,aAAc,SAACmB,GACb,IAAMC,EAAgBpB,EAAamB,GACnC,OAAAE,OAAAC,OAAAD,OAAAC,OAAA,CAAA,EACKF,GACH,CAAAG,QAAS,SAACL,GAER7B,EAAgBK,QAAUwB,EAEtBE,EAAcG,SAChBH,EAAcG,QAAQL,EAE1B,GAEH,EACDhB,MAAOD,EACPU,iBAAAA,EACAa,eAAgB,SAACN,GAEf7B,EAAgBK,QAAUwB,EAC1BjB,SACcV,IAAV/B,GACFwB,EAA2B,IAE7Bb,SAAAA,GACD,EACDsD,sBAAuB,SAACC,EAAcR,GAEpC7B,EAAgBK,QAAUwB,EACtBT,GACFA,EAAuBiB,GAEzBtD,SAAAA,EAAiBsD,EAClB,EACDlB,gBAAiBD,EACjBG,mBAAoBD,EACpBjC,KAAAA,EACA2B,WAAAA,EACAhB,UAAAA,IAGF,OAAOwC,EAAAC,cAACC,EAAiB,CAACjB,aAAcA,EAAc1C,YAAaA,GACrE"}
1
+ {"version":3,"file":"DropdownMultiSelectController.js","sources":["../../../../../../src/components/DropdownNew/modes/DropdownMultiSelectController.tsx"],"sourcesContent":["import React, { useState, useRef } from \"react\";\nimport { type DropdownMultiControllerProps } from \"../Dropdown.types\";\nimport useDropdownMultiSelect from \"../hooks/useDropdownMultiSelect\";\nimport { type BaseListItemData } from \"../../BaseListItem\";\nimport { type DropdownContextProps } from \"../context/DropdownContext.types\";\nimport DropdownWrapperUI from \"../components/DropdownWrapperUI\";\n\nconst DropdownMultiSelectController = <Item extends BaseListItemData<Record<string, unknown>>>(\n props: DropdownMultiControllerProps<Item>\n) => {\n const {\n options,\n isMenuOpen: isMenuOpenProp,\n autoFocus,\n defaultValue,\n value,\n onChange,\n onMenuOpen,\n onMenuClose,\n onOptionSelect,\n clearable = true,\n showSelectedOptions = true,\n filterOption,\n dropdownRef,\n onClear,\n onOptionRemove,\n onFocus,\n onBlur,\n size = \"medium\"\n } = props;\n\n const initialMultiSelectedItems = Array.isArray(defaultValue) ? defaultValue : [];\n const [multiSelectedItemsState, setMultiSelectedItemsState] = useState<Item[]>(initialMultiSelectedItems);\n const [isFocused, setIsFocused] = useState(false);\n const currentEventRef = useRef<\n | {\n type: string;\n clientX: number;\n clientY: number;\n target: EventTarget | null;\n currentTarget: EventTarget | null;\n ctrlKey: boolean;\n shiftKey: boolean;\n altKey: boolean;\n metaKey: boolean;\n button: number;\n timeStamp: number;\n isTrusted: boolean;\n nativeEvent: Event;\n preventDefault: () => void;\n stopPropagation: () => void;\n }\n | undefined\n >(undefined);\n\n // Wrapper for onChange that includes the current event\n const onChangeWithEvent = (options: Item[]) => {\n onChange?.(options, currentEventRef.current as unknown as React.SyntheticEvent);\n currentEventRef.current = undefined; // Clear after use\n };\n\n const {\n isOpen,\n highlightedIndex,\n getToggleButtonProps,\n getLabelProps,\n getMenuProps,\n getItemProps,\n reset: hookReset,\n toggleMenu,\n filteredOptions,\n selectedItems: hookSelectedItems,\n addSelectedItem: hookAddSelectedItem,\n removeSelectedItem: hookRemoveSelectedItem,\n getDropdownProps\n } = useDropdownMultiSelect<Item>(\n options,\n multiSelectedItemsState,\n setMultiSelectedItemsState,\n isMenuOpenProp,\n autoFocus,\n defaultValue,\n value,\n onChangeWithEvent,\n onMenuOpen,\n onMenuClose,\n onOptionSelect,\n showSelectedOptions,\n filterOption\n );\n\n const contextValue: DropdownContextProps<Item> = {\n ...props,\n isOpen,\n inputValue: null,\n highlightedIndex,\n selectedItem: undefined,\n selectedItems: hookSelectedItems || [],\n filteredOptions,\n clearable,\n getToggleButtonProps: (toggleOptions?: Record<string, unknown>) => {\n return getToggleButtonProps({\n ...(toggleOptions || {}),\n disabled: props.readOnly || props.disabled,\n onFocus: (event: React.FocusEvent<HTMLDivElement>) => {\n setIsFocused(true);\n onFocus?.(event);\n },\n onBlur: (event: React.FocusEvent<HTMLDivElement>) => {\n setIsFocused(false);\n onBlur?.(event);\n }\n });\n },\n getLabelProps,\n getMenuProps,\n getItemProps: (itemOptions: { item: Item; index: number }) => {\n const originalProps = getItemProps(itemOptions);\n return {\n ...originalProps,\n onClick: (event: React.MouseEvent) => {\n // Capture specific event properties immediately before they get nullified\n currentEventRef.current = {\n type: event.type,\n clientX: event.clientX,\n clientY: event.clientY,\n target: event.target,\n currentTarget: event.currentTarget,\n ctrlKey: event.ctrlKey,\n shiftKey: event.shiftKey,\n altKey: event.altKey,\n metaKey: event.metaKey,\n button: event.button,\n timeStamp: event.timeStamp,\n isTrusted: event.isTrusted,\n nativeEvent: event.nativeEvent,\n preventDefault: () => event.preventDefault(),\n stopPropagation: () => event.stopPropagation()\n };\n // Call the original onClick which will trigger the onChange through the hook\n if (originalProps.onClick) {\n originalProps.onClick(event);\n }\n }\n };\n },\n reset: hookReset,\n getDropdownProps,\n contextOnClear: (event?: React.SyntheticEvent) => {\n // Capture the event for the onChange callback that will be triggered by hookReset\n if (event && \"clientX\" in event) {\n const mouseEvent = event as React.MouseEvent;\n currentEventRef.current = {\n type: mouseEvent.type,\n clientX: mouseEvent.clientX,\n clientY: mouseEvent.clientY,\n target: mouseEvent.target,\n currentTarget: mouseEvent.currentTarget,\n ctrlKey: mouseEvent.ctrlKey,\n shiftKey: mouseEvent.shiftKey,\n altKey: mouseEvent.altKey,\n metaKey: mouseEvent.metaKey,\n button: mouseEvent.button,\n timeStamp: mouseEvent.timeStamp,\n isTrusted: mouseEvent.isTrusted,\n nativeEvent: mouseEvent.nativeEvent,\n preventDefault: () => mouseEvent.preventDefault(),\n stopPropagation: () => mouseEvent.stopPropagation()\n };\n }\n hookReset();\n if (value === undefined) {\n setMultiSelectedItemsState([]);\n }\n onClear?.();\n },\n contextOnOptionRemove: (option: Item, event?: React.SyntheticEvent) => {\n // Capture the event for the onChange callback\n if (event && \"clientX\" in event) {\n const mouseEvent = event as React.MouseEvent;\n currentEventRef.current = {\n type: mouseEvent.type,\n clientX: mouseEvent.clientX,\n clientY: mouseEvent.clientY,\n target: mouseEvent.target,\n currentTarget: mouseEvent.currentTarget,\n ctrlKey: mouseEvent.ctrlKey,\n shiftKey: mouseEvent.shiftKey,\n altKey: mouseEvent.altKey,\n metaKey: mouseEvent.metaKey,\n button: mouseEvent.button,\n timeStamp: mouseEvent.timeStamp,\n isTrusted: mouseEvent.isTrusted,\n nativeEvent: mouseEvent.nativeEvent,\n preventDefault: () => mouseEvent.preventDefault(),\n stopPropagation: () => mouseEvent.stopPropagation()\n };\n }\n if (hookRemoveSelectedItem) {\n hookRemoveSelectedItem(option);\n }\n onOptionRemove?.(option);\n },\n addSelectedItem: hookAddSelectedItem,\n removeSelectedItem: hookRemoveSelectedItem,\n size,\n toggleMenu,\n isFocused\n };\n\n return <DropdownWrapperUI contextValue={contextValue} dropdownRef={dropdownRef} />;\n};\n\nexport default DropdownMultiSelectController;\n"],"names":["DropdownMultiSelectController","props","options","isMenuOpenProp","isMenuOpen","autoFocus","defaultValue","value","onChange","onMenuOpen","onMenuClose","onOptionSelect","_props$clearable","clearable","_props$showSelectedOp","showSelectedOptions","filterOption","dropdownRef","onClear","onOptionRemove","onFocus","onBlur","_props$size","size","_useState","useState","Array","isArray","_useState2","_slicedToArray","multiSelectedItemsState","setMultiSelectedItemsState","_useState3","_useState4","isFocused","setIsFocused","currentEventRef","useRef","undefined","_useDropdownMultiSele","useDropdownMultiSelect","current","isOpen","highlightedIndex","getToggleButtonProps","getLabelProps","getMenuProps","getItemProps","hookReset","reset","toggleMenu","filteredOptions","hookSelectedItems","selectedItems","hookAddSelectedItem","addSelectedItem","hookRemoveSelectedItem","removeSelectedItem","getDropdownProps","contextValue","inputValue","selectedItem","toggleOptions","disabled","readOnly","event","itemOptions","originalProps","Object","assign","onClick","type","clientX","clientY","target","currentTarget","ctrlKey","shiftKey","altKey","metaKey","button","timeStamp","isTrusted","nativeEvent","preventDefault","stopPropagation","contextOnClear","mouseEvent","contextOnOptionRemove","option","React","createElement","DropdownWrapperUI"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- import{slicedToArray as e}from"../../../../_virtual/_rollupPluginBabelHelpers.js";import o,{useState as t,useRef as n}from"react";import l from"../hooks/useDropdownSelect.js";import r from"../components/DropdownWrapperUI.js";var i=function(i){var s=i.options,u=i.autoFocus,c=i.isMenuOpen,a=i.defaultValue,d=i.value,p=i.onChange,g=i.onMenuOpen,m=i.onMenuClose,f=i.onOptionSelect,O=i.showSelectedOptions,v=void 0===O||O,b=i.filterOption,h=i.clearable,I=void 0===h||h,j=i.searchable,P=void 0!==j&&j,C=i.multi,M=void 0!==C&&C,x=i.dropdownRef,w=i.onClear,B=i.onFocus,F=i.onBlur,S=i.size,k=void 0===S?"medium":S,R=t(!1),T=e(R,2),V=T[0],y=T[1],z=n(void 0),D=l(s,u,c,a,d,(function(e){null==p||p(e,z.current),z.current=void 0}),g,m,f,v,b),L=D.isOpen,_=D.highlightedIndex,A=D.getToggleButtonProps,E=D.getLabelProps,H=D.getMenuProps,U=D.getItemProps,W=D.reset,q=D.toggleMenu,G=D.filteredOptions,J=D.selectedItem,K=Object.assign(Object.assign({},i),{isOpen:L,highlightedIndex:_,selectedItem:J,filteredOptions:G,getToggleButtonProps:function(e){return A(Object.assign(Object.assign({},e||{}),{disabled:i.readOnly||i.disabled,onFocus:function(e){y(!0),null==B||B(e)},onBlur:function(e){y(!1),null==F||F(e)}}))},getLabelProps:E,getMenuProps:H,getItemProps:function(e){var o=U(e);return Object.assign(Object.assign({},o),{onClick:function(e){z.current=e,o.onClick&&o.onClick(e)}})},reset:W,inputValue:null,selectedItems:[],addSelectedItem:void 0,removeSelectedItem:void 0,contextOnClear:function(e){z.current=e,W(),null==w||w()},contextOnOptionRemove:function(){},clearable:I,searchable:P,multi:M,autoFocus:u,onClear:w,size:k,toggleMenu:q,isFocused:V});return o.createElement(r,{contextValue:K,dropdownRef:x})};export{i as default};
1
+ import{slicedToArray as e}from"../../../../_virtual/_rollupPluginBabelHelpers.js";import t,{useState as n,useRef as o}from"react";import r from"../hooks/useDropdownSelect.js";import i from"../components/DropdownWrapperUI.js";var l=function(l){var a=l.options,u=l.autoFocus,s=l.isMenuOpen,c=l.defaultValue,p=l.value,d=l.onChange,g=l.onMenuOpen,m=l.onMenuClose,f=l.onOptionSelect,v=l.showSelectedOptions,y=void 0===v||v,b=l.filterOption,O=l.clearable,K=void 0===O||O,h=l.searchable,P=void 0!==h&&h,T=l.multi,I=void 0!==T&&T,j=l.dropdownRef,S=l.onClear,C=l.onFocus,M=l.onBlur,x=l.size,D=void 0===x?"medium":x,w=n(!1),B=e(w,2),E=B[0],F=B[1],X=o(void 0),k=r(a,u,s,c,p,(function(e){null==d||d(e,X.current),X.current=void 0}),g,m,f,y,b),Y=k.isOpen,R=k.highlightedIndex,V=k.getToggleButtonProps,z=k.getLabelProps,L=k.getMenuProps,_=k.getItemProps,A=k.reset,H=k.toggleMenu,U=k.filteredOptions,W=k.selectedItem,q=Object.assign(Object.assign({},l),{isOpen:Y,highlightedIndex:R,selectedItem:W,filteredOptions:U,getToggleButtonProps:function(e){return V(Object.assign(Object.assign({},e||{}),{disabled:l.readOnly||l.disabled,onFocus:function(e){F(!0),null==C||C(e)},onBlur:function(e){F(!1),null==M||M(e)}}))},getLabelProps:z,getMenuProps:L,getItemProps:function(e){var t=_(e);return Object.assign(Object.assign({},t),{onClick:function(e){X.current={type:e.type,clientX:e.clientX,clientY:e.clientY,target:e.target,currentTarget:e.currentTarget,ctrlKey:e.ctrlKey,shiftKey:e.shiftKey,altKey:e.altKey,metaKey:e.metaKey,button:e.button,timeStamp:e.timeStamp,isTrusted:e.isTrusted,nativeEvent:e.nativeEvent,preventDefault:function(){return e.preventDefault()},stopPropagation:function(){return e.stopPropagation()}},t.onClick&&t.onClick(e)}})},reset:A,inputValue:null,selectedItems:[],addSelectedItem:void 0,removeSelectedItem:void 0,contextOnClear:function(e){if(e&&"clientX"in e){var t=e;X.current={type:t.type,clientX:t.clientX,clientY:t.clientY,target:t.target,currentTarget:t.currentTarget,ctrlKey:t.ctrlKey,shiftKey:t.shiftKey,altKey:t.altKey,metaKey:t.metaKey,button:t.button,timeStamp:t.timeStamp,isTrusted:t.isTrusted,nativeEvent:t.nativeEvent,preventDefault:function(){return t.preventDefault()},stopPropagation:function(){return t.stopPropagation()}}}A(),null==S||S()},contextOnOptionRemove:function(){},clearable:K,searchable:P,multi:I,autoFocus:u,onClear:S,size:D,toggleMenu:H,isFocused:E});return t.createElement(i,{contextValue:q,dropdownRef:j})};export{l as default};
2
2
  //# sourceMappingURL=DropdownSelectController.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"DropdownSelectController.js","sources":["../../../../../../src/components/DropdownNew/modes/DropdownSelectController.tsx"],"sourcesContent":["import React, { useState, useRef } from \"react\";\nimport { type DropdownSingleControllerProps } from \"../Dropdown.types\";\nimport useDropdownSelect from \"../hooks/useDropdownSelect\";\nimport { type BaseListItemData } from \"../../BaseListItem\";\nimport { type DropdownContextProps } from \"../context/DropdownContext.types\";\nimport DropdownWrapperUI from \"../components/DropdownWrapperUI\";\n\nconst DropdownSelectController = <Item extends BaseListItemData<Record<string, unknown>>>(\n props: DropdownSingleControllerProps<Item>\n) => {\n const {\n options,\n autoFocus,\n isMenuOpen: isMenuOpenProp,\n defaultValue,\n value,\n onChange,\n onMenuOpen,\n onMenuClose,\n onOptionSelect,\n showSelectedOptions = true,\n filterOption,\n clearable = true,\n searchable = false,\n multi = false,\n dropdownRef,\n onClear,\n onFocus,\n onBlur,\n size = \"medium\"\n } = props;\n\n const [isFocused, setIsFocused] = useState(false);\n const currentEventRef = useRef<React.SyntheticEvent | undefined>(undefined);\n\n // Wrapper for onChange that includes the current event\n const onChangeWithEvent = (option: Item | null) => {\n onChange?.(option, currentEventRef.current);\n currentEventRef.current = undefined; // Clear after use\n };\n\n const {\n isOpen,\n highlightedIndex,\n getToggleButtonProps,\n getLabelProps,\n getMenuProps,\n getItemProps,\n reset: hookReset,\n toggleMenu,\n filteredOptions,\n selectedItem: hookSelectedItem\n } = useDropdownSelect<Item>(\n options,\n autoFocus,\n isMenuOpenProp,\n defaultValue,\n value,\n onChangeWithEvent,\n onMenuOpen,\n onMenuClose,\n onOptionSelect,\n showSelectedOptions,\n filterOption\n );\n\n const contextValue: DropdownContextProps<Item> = {\n ...props,\n isOpen,\n highlightedIndex,\n selectedItem: hookSelectedItem,\n filteredOptions,\n getToggleButtonProps: (toggleOptions?: Record<string, unknown>) => {\n return getToggleButtonProps({\n ...(toggleOptions || {}),\n disabled: props.readOnly || props.disabled,\n onFocus: (event: React.FocusEvent<HTMLDivElement>) => {\n setIsFocused(true);\n onFocus?.(event);\n },\n onBlur: (event: React.FocusEvent<HTMLDivElement>) => {\n setIsFocused(false);\n onBlur?.(event);\n }\n });\n },\n getLabelProps,\n getMenuProps,\n getItemProps: (itemOptions: { item: Item; index: number }) => {\n const originalProps = getItemProps(itemOptions);\n return {\n ...originalProps,\n onClick: (event: React.MouseEvent) => {\n // Capture the event for the onChange callback\n currentEventRef.current = event;\n // Call the original onClick which will trigger the onChange through the hook\n if (originalProps.onClick) {\n originalProps.onClick(event);\n }\n }\n };\n },\n reset: hookReset,\n inputValue: null,\n selectedItems: [],\n addSelectedItem: undefined,\n removeSelectedItem: undefined,\n contextOnClear: (event?: React.SyntheticEvent) => {\n // Capture the event for the onChange callback that will be triggered by hookReset\n currentEventRef.current = event;\n hookReset();\n onClear?.();\n },\n contextOnOptionRemove: () => {},\n clearable,\n searchable,\n multi,\n autoFocus,\n onClear,\n size,\n toggleMenu,\n isFocused\n };\n\n return <DropdownWrapperUI contextValue={contextValue} dropdownRef={dropdownRef} />;\n};\n\nexport default DropdownSelectController;\n"],"names":["DropdownSelectController","props","options","autoFocus","isMenuOpenProp","isMenuOpen","defaultValue","value","onChange","onMenuOpen","onMenuClose","onOptionSelect","_props$showSelectedOp","showSelectedOptions","filterOption","_props$clearable","clearable","_props$searchable","searchable","_props$multi","multi","dropdownRef","onClear","onFocus","onBlur","_props$size","size","_useState","useState","_useState2","_slicedToArray","isFocused","setIsFocused","currentEventRef","useRef","undefined","_useDropdownSelect","useDropdownSelect","option","current","isOpen","highlightedIndex","getToggleButtonProps","getLabelProps","getMenuProps","getItemProps","hookReset","reset","toggleMenu","filteredOptions","hookSelectedItem","selectedItem","contextValue","Object","assign","toggleOptions","disabled","readOnly","event","itemOptions","originalProps","onClick","inputValue","selectedItems","addSelectedItem","removeSelectedItem","contextOnClear","contextOnOptionRemove","React","createElement","DropdownWrapperUI"],"mappings":"iOAOA,IAAMA,EAA2B,SAC/BC,GAEA,IACEC,EAmBED,EAnBFC,QACAC,EAkBEF,EAlBFE,UACYC,EAiBVH,EAjBFI,WACAC,EAgBEL,EAhBFK,aACAC,EAeEN,EAfFM,MACAC,EAcEP,EAdFO,SACAC,EAaER,EAbFQ,WACAC,EAYET,EAZFS,YACAC,EAWEV,EAXFU,eAAcC,EAWZX,EAVFY,oBAAAA,OAAsB,IAAHD,GAAOA,EAC1BE,EASEb,EATFa,aAAYC,EASVd,EARFe,UAAAA,OAAY,IAAHD,GAAOA,EAAAE,EAQdhB,EAPFiB,WAAAA,OAAa,IAAHD,GAAQA,EAAAE,EAOhBlB,EANFmB,MAAAA,OAAQ,IAAHD,GAAQA,EACbE,EAKEpB,EALFoB,YACAC,EAIErB,EAJFqB,QACAC,EAGEtB,EAHFsB,QACAC,EAEEvB,EAFFuB,OAAMC,EAEJxB,EADFyB,KAAAA,OAAO,IAAHD,EAAG,SAAQA,EAGjBE,EAAkCC,GAAS,GAAMC,EAAAC,EAAAH,EAAA,GAA1CI,EAASF,EAAA,GAAEG,EAAYH,EAAA,GACxBI,EAAkBC,OAAyCC,GAQjEC,EAWIC,EACFnC,EACAC,EACAC,EACAE,EACAC,GArBwB,SAAC+B,GACzB9B,SAAAA,EAAW8B,EAAQL,EAAgBM,SACnCN,EAAgBM,aAAUJ,IAqB1B1B,EACAC,EACAC,EACAE,EACAC,GArBA0B,EAAMJ,EAANI,OACAC,EAAgBL,EAAhBK,iBACAC,EAAoBN,EAApBM,qBACAC,EAAaP,EAAbO,cACAC,EAAYR,EAAZQ,aACAC,EAAYT,EAAZS,aACOC,EAASV,EAAhBW,MACAC,EAAUZ,EAAVY,WACAC,EAAeb,EAAfa,gBACcC,EAAgBd,EAA9Be,aAeIC,EAAYC,OAAAC,OAAAD,OAAAC,OAAA,CAAA,EACbrD,GAAK,CACRuC,OAAAA,EACAC,iBAAAA,EACAU,aAAcD,EACdD,gBAAAA,EACAP,qBAAsB,SAACa,GACrB,OAAOb,iCACDa,GAAiB,CAAA,GACrB,CAAAC,SAAUvD,EAAMwD,UAAYxD,EAAMuD,SAClCjC,QAAS,SAACmC,GACR1B,GAAa,GACbT,SAAAA,EAAUmC,EACX,EACDlC,OAAQ,SAACkC,GACP1B,GAAa,GACbR,SAAAA,EAASkC,EACX,IAEH,EACDf,cAAAA,EACAC,aAAAA,EACAC,aAAc,SAACc,GACb,IAAMC,EAAgBf,EAAac,GACnC,OAAAN,OAAAC,OAAAD,OAAAC,OAAA,CAAA,EACKM,GACH,CAAAC,QAAS,SAACH,GAERzB,EAAgBM,QAAUmB,EAEtBE,EAAcC,SAChBD,EAAcC,QAAQH,EAE1B,GAEH,EACDX,MAAOD,EACPgB,WAAY,KACZC,cAAe,GACfC,qBAAiB7B,EACjB8B,wBAAoB9B,EACpB+B,eAAgB,SAACR,GAEfzB,EAAgBM,QAAUmB,EAC1BZ,IACAxB,SAAAA,GACD,EACD6C,sBAAuB,WAAQ,EAC/BnD,UAAAA,EACAE,WAAAA,EACAE,MAAAA,EACAjB,UAAAA,EACAmB,QAAAA,EACAI,KAAAA,EACAsB,WAAAA,EACAjB,UAAAA,IAGF,OAAOqC,EAAAC,cAACC,EAAiB,CAAClB,aAAcA,EAAc/B,YAAaA,GACrE"}
1
+ {"version":3,"file":"DropdownSelectController.js","sources":["../../../../../../src/components/DropdownNew/modes/DropdownSelectController.tsx"],"sourcesContent":["import React, { useState, useRef } from \"react\";\nimport { type DropdownSingleControllerProps } from \"../Dropdown.types\";\nimport useDropdownSelect from \"../hooks/useDropdownSelect\";\nimport { type BaseListItemData } from \"../../BaseListItem\";\nimport { type DropdownContextProps } from \"../context/DropdownContext.types\";\nimport DropdownWrapperUI from \"../components/DropdownWrapperUI\";\n\nconst DropdownSelectController = <Item extends BaseListItemData<Record<string, unknown>>>(\n props: DropdownSingleControllerProps<Item>\n) => {\n const {\n options,\n autoFocus,\n isMenuOpen: isMenuOpenProp,\n defaultValue,\n value,\n onChange,\n onMenuOpen,\n onMenuClose,\n onOptionSelect,\n showSelectedOptions = true,\n filterOption,\n clearable = true,\n searchable = false,\n multi = false,\n dropdownRef,\n onClear,\n onFocus,\n onBlur,\n size = \"medium\"\n } = props;\n\n const [isFocused, setIsFocused] = useState(false);\n const currentEventRef = useRef<\n | {\n type: string;\n clientX: number;\n clientY: number;\n target: EventTarget | null;\n currentTarget: EventTarget | null;\n ctrlKey: boolean;\n shiftKey: boolean;\n altKey: boolean;\n metaKey: boolean;\n button: number;\n timeStamp: number;\n isTrusted: boolean;\n nativeEvent: Event;\n preventDefault: () => void;\n stopPropagation: () => void;\n }\n | undefined\n >(undefined);\n\n // Wrapper for onChange that includes the current event\n const onChangeWithEvent = (option: Item | null) => {\n onChange?.(option, currentEventRef.current as unknown as React.SyntheticEvent);\n currentEventRef.current = undefined; // Clear after use\n };\n\n const {\n isOpen,\n highlightedIndex,\n getToggleButtonProps,\n getLabelProps,\n getMenuProps,\n getItemProps,\n reset: hookReset,\n toggleMenu,\n filteredOptions,\n selectedItem: hookSelectedItem\n } = useDropdownSelect<Item>(\n options,\n autoFocus,\n isMenuOpenProp,\n defaultValue,\n value,\n onChangeWithEvent,\n onMenuOpen,\n onMenuClose,\n onOptionSelect,\n showSelectedOptions,\n filterOption\n );\n\n const contextValue: DropdownContextProps<Item> = {\n ...props,\n isOpen,\n highlightedIndex,\n selectedItem: hookSelectedItem,\n filteredOptions,\n getToggleButtonProps: (toggleOptions?: Record<string, unknown>) => {\n return getToggleButtonProps({\n ...(toggleOptions || {}),\n disabled: props.readOnly || props.disabled,\n onFocus: (event: React.FocusEvent<HTMLDivElement>) => {\n setIsFocused(true);\n onFocus?.(event);\n },\n onBlur: (event: React.FocusEvent<HTMLDivElement>) => {\n setIsFocused(false);\n onBlur?.(event);\n }\n });\n },\n getLabelProps,\n getMenuProps,\n getItemProps: (itemOptions: { item: Item; index: number }) => {\n const originalProps = getItemProps(itemOptions);\n return {\n ...originalProps,\n onClick: (event: React.MouseEvent) => {\n // Capture specific event properties immediately before they get nullified\n currentEventRef.current = {\n type: event.type,\n clientX: event.clientX,\n clientY: event.clientY,\n target: event.target,\n currentTarget: event.currentTarget,\n ctrlKey: event.ctrlKey,\n shiftKey: event.shiftKey,\n altKey: event.altKey,\n metaKey: event.metaKey,\n button: event.button,\n timeStamp: event.timeStamp,\n isTrusted: event.isTrusted,\n nativeEvent: event.nativeEvent,\n preventDefault: () => event.preventDefault(),\n stopPropagation: () => event.stopPropagation()\n };\n // Call the original onClick which will trigger the onChange through the hook\n if (originalProps.onClick) {\n originalProps.onClick(event);\n }\n }\n };\n },\n reset: hookReset,\n inputValue: null,\n selectedItems: [],\n addSelectedItem: undefined,\n removeSelectedItem: undefined,\n contextOnClear: (event?: React.SyntheticEvent) => {\n // Capture the event for the onChange callback that will be triggered by hookReset\n if (event && \"clientX\" in event) {\n const mouseEvent = event as React.MouseEvent;\n currentEventRef.current = {\n type: mouseEvent.type,\n clientX: mouseEvent.clientX,\n clientY: mouseEvent.clientY,\n target: mouseEvent.target,\n currentTarget: mouseEvent.currentTarget,\n ctrlKey: mouseEvent.ctrlKey,\n shiftKey: mouseEvent.shiftKey,\n altKey: mouseEvent.altKey,\n metaKey: mouseEvent.metaKey,\n button: mouseEvent.button,\n timeStamp: mouseEvent.timeStamp,\n isTrusted: mouseEvent.isTrusted,\n nativeEvent: mouseEvent.nativeEvent,\n preventDefault: () => mouseEvent.preventDefault(),\n stopPropagation: () => mouseEvent.stopPropagation()\n };\n }\n hookReset();\n onClear?.();\n },\n contextOnOptionRemove: () => {},\n clearable,\n searchable,\n multi,\n autoFocus,\n onClear,\n size,\n toggleMenu,\n isFocused\n };\n\n return <DropdownWrapperUI contextValue={contextValue} dropdownRef={dropdownRef} />;\n};\n\nexport default DropdownSelectController;\n"],"names":["DropdownSelectController","props","options","autoFocus","isMenuOpenProp","isMenuOpen","defaultValue","value","onChange","onMenuOpen","onMenuClose","onOptionSelect","_props$showSelectedOp","showSelectedOptions","filterOption","_props$clearable","clearable","_props$searchable","searchable","_props$multi","multi","dropdownRef","onClear","onFocus","onBlur","_props$size","size","_useState","useState","_useState2","_slicedToArray","isFocused","setIsFocused","currentEventRef","useRef","undefined","_useDropdownSelect","useDropdownSelect","option","current","isOpen","highlightedIndex","getToggleButtonProps","getLabelProps","getMenuProps","getItemProps","hookReset","reset","toggleMenu","filteredOptions","hookSelectedItem","selectedItem","contextValue","Object","assign","toggleOptions","disabled","readOnly","event","itemOptions","originalProps","onClick","type","clientX","clientY","target","currentTarget","ctrlKey","shiftKey","altKey","metaKey","button","timeStamp","isTrusted","nativeEvent","preventDefault","stopPropagation","inputValue","selectedItems","addSelectedItem","removeSelectedItem","contextOnClear","mouseEvent","contextOnOptionRemove","React","createElement","DropdownWrapperUI"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- import{slicedToArray as e}from"../../../../_virtual/_rollupPluginBabelHelpers.js";import o,{useState as t,useRef as n}from"react";import r from"../hooks/useDropdownMultiSelect.js";import l from"../components/DropdownWrapperUI.js";var i=function(i){var s=i.options,u=i.isMenuOpen,c=i.autoFocus,d=i.defaultValue,a=i.value,p=i.onChange,g=i.onMenuOpen,m=i.onMenuClose,f=i.onOptionSelect,O=i.clearable,v=void 0===O||O,b=i.showSelectedOptions,I=void 0===b||b,P=i.filterOption,h=i.dropdownRef,j=i.onClear,M=i.onOptionRemove,w=i.onFocus,C=i.onBlur,S=i.size,x=void 0===S?"medium":S,B=t(Array.isArray(d)?d:[]),k=e(B,2),y=k[0],D=k[1],F=t(!1),R=e(F,2),A=R[0],T=R[1],V=n(void 0),z=r(s,y,D,u,c,d,a,(function(e){null==p||p(e,V.current),V.current=void 0}),g,m,f,I,P),L=z.isOpen,_=z.highlightedIndex,E=z.getToggleButtonProps,H=z.getLabelProps,U=z.getMenuProps,W=z.getItemProps,q=z.reset,G=z.toggleMenu,J=z.filteredOptions,K=z.selectedItems,N=z.addSelectedItem,Q=z.removeSelectedItem,X=z.getDropdownProps,Y=Object.assign(Object.assign({},i),{isOpen:L,inputValue:null,highlightedIndex:_,selectedItem:void 0,selectedItems:K||[],filteredOptions:J,clearable:v,getToggleButtonProps:function(e){return E(Object.assign(Object.assign({},e||{}),{disabled:i.readOnly||i.disabled,onFocus:function(e){T(!0),null==w||w(e)},onBlur:function(e){T(!1),null==C||C(e)}}))},getLabelProps:H,getMenuProps:U,getItemProps:function(e){var o=W(e);return Object.assign(Object.assign({},o),{onClick:function(e){V.current=e,o.onClick&&o.onClick(e)}})},reset:q,getDropdownProps:X,contextOnClear:function(e){V.current=e,q(),void 0===a&&D([]),null==j||j()},contextOnOptionRemove:function(e,o){V.current=o,Q&&Q(e),null==M||M(e)},addSelectedItem:N,removeSelectedItem:Q,size:x,toggleMenu:G,isFocused:A});return o.createElement(l,{contextValue:Y,dropdownRef:h})};export{i as default};
1
+ import{slicedToArray as e}from"../../../../_virtual/_rollupPluginBabelHelpers.js";import t,{useState as n,useRef as r}from"react";import o from"../hooks/useDropdownMultiSelect.js";import i from"../components/DropdownWrapperUI.js";var a=function(a){var l=a.options,u=a.isMenuOpen,s=a.autoFocus,c=a.defaultValue,p=a.value,d=a.onChange,g=a.onMenuOpen,m=a.onMenuClose,f=a.onOptionSelect,v=a.clearable,y=void 0===v||v,K=a.showSelectedOptions,O=void 0===K||K,b=a.filterOption,P=a.dropdownRef,h=a.onClear,T=a.onOptionRemove,S=a.onFocus,I=a.onBlur,D=a.size,j=void 0===D?"medium":D,M=n(Array.isArray(c)?c:[]),X=e(M,2),w=X[0],C=X[1],E=n(!1),x=e(E,2),Y=x[0],B=x[1],k=r(void 0),F=o(l,w,C,u,s,c,p,(function(e){null==d||d(e,k.current),k.current=void 0}),g,m,f,O,b),R=F.isOpen,A=F.highlightedIndex,V=F.getToggleButtonProps,z=F.getLabelProps,L=F.getMenuProps,_=F.getItemProps,H=F.reset,U=F.toggleMenu,W=F.filteredOptions,q=F.selectedItems,G=F.addSelectedItem,J=F.removeSelectedItem,N=F.getDropdownProps,Q=Object.assign(Object.assign({},a),{isOpen:R,inputValue:null,highlightedIndex:A,selectedItem:void 0,selectedItems:q||[],filteredOptions:W,clearable:y,getToggleButtonProps:function(e){return V(Object.assign(Object.assign({},e||{}),{disabled:a.readOnly||a.disabled,onFocus:function(e){B(!0),null==S||S(e)},onBlur:function(e){B(!1),null==I||I(e)}}))},getLabelProps:z,getMenuProps:L,getItemProps:function(e){var t=_(e);return Object.assign(Object.assign({},t),{onClick:function(e){k.current={type:e.type,clientX:e.clientX,clientY:e.clientY,target:e.target,currentTarget:e.currentTarget,ctrlKey:e.ctrlKey,shiftKey:e.shiftKey,altKey:e.altKey,metaKey:e.metaKey,button:e.button,timeStamp:e.timeStamp,isTrusted:e.isTrusted,nativeEvent:e.nativeEvent,preventDefault:function(){return e.preventDefault()},stopPropagation:function(){return e.stopPropagation()}},t.onClick&&t.onClick(e)}})},reset:H,getDropdownProps:N,contextOnClear:function(e){if(e&&"clientX"in e){var t=e;k.current={type:t.type,clientX:t.clientX,clientY:t.clientY,target:t.target,currentTarget:t.currentTarget,ctrlKey:t.ctrlKey,shiftKey:t.shiftKey,altKey:t.altKey,metaKey:t.metaKey,button:t.button,timeStamp:t.timeStamp,isTrusted:t.isTrusted,nativeEvent:t.nativeEvent,preventDefault:function(){return t.preventDefault()},stopPropagation:function(){return t.stopPropagation()}}}H(),void 0===p&&C([]),null==h||h()},contextOnOptionRemove:function(e,t){if(t&&"clientX"in t){var n=t;k.current={type:n.type,clientX:n.clientX,clientY:n.clientY,target:n.target,currentTarget:n.currentTarget,ctrlKey:n.ctrlKey,shiftKey:n.shiftKey,altKey:n.altKey,metaKey:n.metaKey,button:n.button,timeStamp:n.timeStamp,isTrusted:n.isTrusted,nativeEvent:n.nativeEvent,preventDefault:function(){return n.preventDefault()},stopPropagation:function(){return n.stopPropagation()}}}J&&J(e),null==T||T(e)},addSelectedItem:G,removeSelectedItem:J,size:j,toggleMenu:U,isFocused:Y});return t.createElement(i,{contextValue:Q,dropdownRef:P})};export{a as default};
2
2
  //# sourceMappingURL=DropdownMultiSelectController.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"DropdownMultiSelectController.js","sources":["../../../../../src/components/DropdownNew/modes/DropdownMultiSelectController.tsx"],"sourcesContent":["import React, { useState, useRef } from \"react\";\nimport { type DropdownMultiControllerProps } from \"../Dropdown.types\";\nimport useDropdownMultiSelect from \"../hooks/useDropdownMultiSelect\";\nimport { type BaseListItemData } from \"../../BaseListItem\";\nimport { type DropdownContextProps } from \"../context/DropdownContext.types\";\nimport DropdownWrapperUI from \"../components/DropdownWrapperUI\";\n\nconst DropdownMultiSelectController = <Item extends BaseListItemData<Record<string, unknown>>>(\n props: DropdownMultiControllerProps<Item>\n) => {\n const {\n options,\n isMenuOpen: isMenuOpenProp,\n autoFocus,\n defaultValue,\n value,\n onChange,\n onMenuOpen,\n onMenuClose,\n onOptionSelect,\n clearable = true,\n showSelectedOptions = true,\n filterOption,\n dropdownRef,\n onClear,\n onOptionRemove,\n onFocus,\n onBlur,\n size = \"medium\"\n } = props;\n\n const initialMultiSelectedItems = Array.isArray(defaultValue) ? defaultValue : [];\n const [multiSelectedItemsState, setMultiSelectedItemsState] = useState<Item[]>(initialMultiSelectedItems);\n const [isFocused, setIsFocused] = useState(false);\n const currentEventRef = useRef<React.SyntheticEvent | undefined>(undefined);\n\n // Wrapper for onChange that includes the current event\n const onChangeWithEvent = (options: Item[]) => {\n onChange?.(options, currentEventRef.current);\n currentEventRef.current = undefined; // Clear after use\n };\n\n const {\n isOpen,\n highlightedIndex,\n getToggleButtonProps,\n getLabelProps,\n getMenuProps,\n getItemProps,\n reset: hookReset,\n toggleMenu,\n filteredOptions,\n selectedItems: hookSelectedItems,\n addSelectedItem: hookAddSelectedItem,\n removeSelectedItem: hookRemoveSelectedItem,\n getDropdownProps\n } = useDropdownMultiSelect<Item>(\n options,\n multiSelectedItemsState,\n setMultiSelectedItemsState,\n isMenuOpenProp,\n autoFocus,\n defaultValue,\n value,\n onChangeWithEvent,\n onMenuOpen,\n onMenuClose,\n onOptionSelect,\n showSelectedOptions,\n filterOption\n );\n\n const contextValue: DropdownContextProps<Item> = {\n ...props,\n isOpen,\n inputValue: null,\n highlightedIndex,\n selectedItem: undefined,\n selectedItems: hookSelectedItems || [],\n filteredOptions,\n clearable,\n getToggleButtonProps: (toggleOptions?: Record<string, unknown>) => {\n return getToggleButtonProps({\n ...(toggleOptions || {}),\n disabled: props.readOnly || props.disabled,\n onFocus: (event: React.FocusEvent<HTMLDivElement>) => {\n setIsFocused(true);\n onFocus?.(event);\n },\n onBlur: (event: React.FocusEvent<HTMLDivElement>) => {\n setIsFocused(false);\n onBlur?.(event);\n }\n });\n },\n getLabelProps,\n getMenuProps,\n getItemProps: (itemOptions: { item: Item; index: number }) => {\n const originalProps = getItemProps(itemOptions);\n return {\n ...originalProps,\n onClick: (event: React.MouseEvent) => {\n // Capture the event for the onChange callback\n currentEventRef.current = event;\n // Call the original onClick which will trigger the onChange through the hook\n if (originalProps.onClick) {\n originalProps.onClick(event);\n }\n }\n };\n },\n reset: hookReset,\n getDropdownProps,\n contextOnClear: (event?: React.SyntheticEvent) => {\n // Capture the event for the onChange callback that will be triggered by hookReset\n currentEventRef.current = event;\n hookReset();\n if (value === undefined) {\n setMultiSelectedItemsState([]);\n }\n onClear?.();\n },\n contextOnOptionRemove: (option: Item, event?: React.SyntheticEvent) => {\n // Capture the event for the onChange callback\n currentEventRef.current = event;\n if (hookRemoveSelectedItem) {\n hookRemoveSelectedItem(option);\n }\n onOptionRemove?.(option);\n },\n addSelectedItem: hookAddSelectedItem,\n removeSelectedItem: hookRemoveSelectedItem,\n size,\n toggleMenu,\n isFocused\n };\n\n return <DropdownWrapperUI contextValue={contextValue} dropdownRef={dropdownRef} />;\n};\n\nexport default DropdownMultiSelectController;\n"],"names":["DropdownMultiSelectController","props","options","isMenuOpenProp","isMenuOpen","autoFocus","defaultValue","value","onChange","onMenuOpen","onMenuClose","onOptionSelect","_props$clearable","clearable","_props$showSelectedOp","showSelectedOptions","filterOption","dropdownRef","onClear","onOptionRemove","onFocus","onBlur","_props$size","size","_useState","useState","Array","isArray","_useState2","_slicedToArray","multiSelectedItemsState","setMultiSelectedItemsState","_useState3","_useState4","isFocused","setIsFocused","currentEventRef","useRef","undefined","_useDropdownMultiSele","useDropdownMultiSelect","current","isOpen","highlightedIndex","getToggleButtonProps","getLabelProps","getMenuProps","getItemProps","hookReset","reset","toggleMenu","filteredOptions","hookSelectedItems","selectedItems","hookAddSelectedItem","addSelectedItem","hookRemoveSelectedItem","removeSelectedItem","getDropdownProps","contextValue","inputValue","selectedItem","toggleOptions","disabled","readOnly","event","itemOptions","originalProps","Object","assign","onClick","contextOnClear","contextOnOptionRemove","option","React","createElement","DropdownWrapperUI"],"mappings":"sOAOA,IAAMA,EAAgC,SACpCC,GAEA,IACEC,EAkBED,EAlBFC,QACYC,EAiBVF,EAjBFG,WACAC,EAgBEJ,EAhBFI,UACAC,EAeEL,EAfFK,aACAC,EAcEN,EAdFM,MACAC,EAaEP,EAbFO,SACAC,EAYER,EAZFQ,WACAC,EAWET,EAXFS,YACAC,EAUEV,EAVFU,eAAcC,EAUZX,EATFY,UAAAA,OAAY,IAAHD,GAAOA,EAAAE,EASdb,EARFc,oBAAAA,OAAsB,IAAHD,GAAOA,EAC1BE,EAOEf,EAPFe,aACAC,EAMEhB,EANFgB,YACAC,EAKEjB,EALFiB,QACAC,EAIElB,EAJFkB,eACAC,EAGEnB,EAHFmB,QACAC,EAEEpB,EAFFoB,OAAMC,EAEJrB,EADFsB,KAAAA,OAAO,IAAHD,EAAG,SAAQA,EAIjBE,EAA8DC,EAD5BC,MAAMC,QAAQrB,GAAgBA,EAAe,IAC0BsB,EAAAC,EAAAL,EAAA,GAAlGM,EAAuBF,EAAA,GAAEG,EAA0BH,EAAA,GAC1DI,EAAkCP,GAAS,GAAMQ,EAAAJ,EAAAG,EAAA,GAA1CE,EAASD,EAAA,GAAEE,EAAYF,EAAA,GACxBG,EAAkBC,OAAyCC,GAQjEC,EAcIC,EACFtC,EACA4B,EACAC,EACA5B,EACAE,EACAC,EACAC,GA1BwB,SAACL,GACzBM,SAAAA,EAAWN,EAASkC,EAAgBK,SACpCL,EAAgBK,aAAUH,IA0B1B7B,EACAC,EACAC,EACAI,EACAC,GA1BA0B,EAAMH,EAANG,OACAC,EAAgBJ,EAAhBI,iBACAC,EAAoBL,EAApBK,qBACAC,EAAaN,EAAbM,cACAC,EAAYP,EAAZO,aACAC,EAAYR,EAAZQ,aACOC,EAAST,EAAhBU,MACAC,EAAUX,EAAVW,WACAC,EAAeZ,EAAfY,gBACeC,EAAiBb,EAAhCc,cACiBC,EAAmBf,EAApCgB,gBACoBC,EAAsBjB,EAA1CkB,mBACAC,EAAgBnB,EAAhBmB,iBAiBIC,iCACD1D,GAAK,CACRyC,OAAAA,EACAkB,WAAY,KACZjB,iBAAAA,EACAkB,kBAAcvB,EACde,cAAeD,GAAqB,GACpCD,gBAAAA,EACAtC,UAAAA,EACA+B,qBAAsB,SAACkB,GACrB,OAAOlB,iCACDkB,GAAiB,CAAA,GACrB,CAAAC,SAAU9D,EAAM+D,UAAY/D,EAAM8D,SAClC3C,QAAS,SAAC6C,GACR9B,GAAa,GACbf,SAAAA,EAAU6C,EACX,EACD5C,OAAQ,SAAC4C,GACP9B,GAAa,GACbd,SAAAA,EAAS4C,EACX,IAEH,EACDpB,cAAAA,EACAC,aAAAA,EACAC,aAAc,SAACmB,GACb,IAAMC,EAAgBpB,EAAamB,GACnC,OAAAE,OAAAC,OAAAD,OAAAC,OAAA,CAAA,EACKF,GACH,CAAAG,QAAS,SAACL,GAER7B,EAAgBK,QAAUwB,EAEtBE,EAAcG,SAChBH,EAAcG,QAAQL,EAE1B,GAEH,EACDhB,MAAOD,EACPU,iBAAAA,EACAa,eAAgB,SAACN,GAEf7B,EAAgBK,QAAUwB,EAC1BjB,SACcV,IAAV/B,GACFwB,EAA2B,IAE7Bb,SAAAA,GACD,EACDsD,sBAAuB,SAACC,EAAcR,GAEpC7B,EAAgBK,QAAUwB,EACtBT,GACFA,EAAuBiB,GAEzBtD,SAAAA,EAAiBsD,EAClB,EACDlB,gBAAiBD,EACjBG,mBAAoBD,EACpBjC,KAAAA,EACA2B,WAAAA,EACAhB,UAAAA,IAGF,OAAOwC,EAAAC,cAACC,EAAiB,CAACjB,aAAcA,EAAc1C,YAAaA,GACrE"}
1
+ {"version":3,"file":"DropdownMultiSelectController.js","sources":["../../../../../src/components/DropdownNew/modes/DropdownMultiSelectController.tsx"],"sourcesContent":["import React, { useState, useRef } from \"react\";\nimport { type DropdownMultiControllerProps } from \"../Dropdown.types\";\nimport useDropdownMultiSelect from \"../hooks/useDropdownMultiSelect\";\nimport { type BaseListItemData } from \"../../BaseListItem\";\nimport { type DropdownContextProps } from \"../context/DropdownContext.types\";\nimport DropdownWrapperUI from \"../components/DropdownWrapperUI\";\n\nconst DropdownMultiSelectController = <Item extends BaseListItemData<Record<string, unknown>>>(\n props: DropdownMultiControllerProps<Item>\n) => {\n const {\n options,\n isMenuOpen: isMenuOpenProp,\n autoFocus,\n defaultValue,\n value,\n onChange,\n onMenuOpen,\n onMenuClose,\n onOptionSelect,\n clearable = true,\n showSelectedOptions = true,\n filterOption,\n dropdownRef,\n onClear,\n onOptionRemove,\n onFocus,\n onBlur,\n size = \"medium\"\n } = props;\n\n const initialMultiSelectedItems = Array.isArray(defaultValue) ? defaultValue : [];\n const [multiSelectedItemsState, setMultiSelectedItemsState] = useState<Item[]>(initialMultiSelectedItems);\n const [isFocused, setIsFocused] = useState(false);\n const currentEventRef = useRef<\n | {\n type: string;\n clientX: number;\n clientY: number;\n target: EventTarget | null;\n currentTarget: EventTarget | null;\n ctrlKey: boolean;\n shiftKey: boolean;\n altKey: boolean;\n metaKey: boolean;\n button: number;\n timeStamp: number;\n isTrusted: boolean;\n nativeEvent: Event;\n preventDefault: () => void;\n stopPropagation: () => void;\n }\n | undefined\n >(undefined);\n\n // Wrapper for onChange that includes the current event\n const onChangeWithEvent = (options: Item[]) => {\n onChange?.(options, currentEventRef.current as unknown as React.SyntheticEvent);\n currentEventRef.current = undefined; // Clear after use\n };\n\n const {\n isOpen,\n highlightedIndex,\n getToggleButtonProps,\n getLabelProps,\n getMenuProps,\n getItemProps,\n reset: hookReset,\n toggleMenu,\n filteredOptions,\n selectedItems: hookSelectedItems,\n addSelectedItem: hookAddSelectedItem,\n removeSelectedItem: hookRemoveSelectedItem,\n getDropdownProps\n } = useDropdownMultiSelect<Item>(\n options,\n multiSelectedItemsState,\n setMultiSelectedItemsState,\n isMenuOpenProp,\n autoFocus,\n defaultValue,\n value,\n onChangeWithEvent,\n onMenuOpen,\n onMenuClose,\n onOptionSelect,\n showSelectedOptions,\n filterOption\n );\n\n const contextValue: DropdownContextProps<Item> = {\n ...props,\n isOpen,\n inputValue: null,\n highlightedIndex,\n selectedItem: undefined,\n selectedItems: hookSelectedItems || [],\n filteredOptions,\n clearable,\n getToggleButtonProps: (toggleOptions?: Record<string, unknown>) => {\n return getToggleButtonProps({\n ...(toggleOptions || {}),\n disabled: props.readOnly || props.disabled,\n onFocus: (event: React.FocusEvent<HTMLDivElement>) => {\n setIsFocused(true);\n onFocus?.(event);\n },\n onBlur: (event: React.FocusEvent<HTMLDivElement>) => {\n setIsFocused(false);\n onBlur?.(event);\n }\n });\n },\n getLabelProps,\n getMenuProps,\n getItemProps: (itemOptions: { item: Item; index: number }) => {\n const originalProps = getItemProps(itemOptions);\n return {\n ...originalProps,\n onClick: (event: React.MouseEvent) => {\n // Capture specific event properties immediately before they get nullified\n currentEventRef.current = {\n type: event.type,\n clientX: event.clientX,\n clientY: event.clientY,\n target: event.target,\n currentTarget: event.currentTarget,\n ctrlKey: event.ctrlKey,\n shiftKey: event.shiftKey,\n altKey: event.altKey,\n metaKey: event.metaKey,\n button: event.button,\n timeStamp: event.timeStamp,\n isTrusted: event.isTrusted,\n nativeEvent: event.nativeEvent,\n preventDefault: () => event.preventDefault(),\n stopPropagation: () => event.stopPropagation()\n };\n // Call the original onClick which will trigger the onChange through the hook\n if (originalProps.onClick) {\n originalProps.onClick(event);\n }\n }\n };\n },\n reset: hookReset,\n getDropdownProps,\n contextOnClear: (event?: React.SyntheticEvent) => {\n // Capture the event for the onChange callback that will be triggered by hookReset\n if (event && \"clientX\" in event) {\n const mouseEvent = event as React.MouseEvent;\n currentEventRef.current = {\n type: mouseEvent.type,\n clientX: mouseEvent.clientX,\n clientY: mouseEvent.clientY,\n target: mouseEvent.target,\n currentTarget: mouseEvent.currentTarget,\n ctrlKey: mouseEvent.ctrlKey,\n shiftKey: mouseEvent.shiftKey,\n altKey: mouseEvent.altKey,\n metaKey: mouseEvent.metaKey,\n button: mouseEvent.button,\n timeStamp: mouseEvent.timeStamp,\n isTrusted: mouseEvent.isTrusted,\n nativeEvent: mouseEvent.nativeEvent,\n preventDefault: () => mouseEvent.preventDefault(),\n stopPropagation: () => mouseEvent.stopPropagation()\n };\n }\n hookReset();\n if (value === undefined) {\n setMultiSelectedItemsState([]);\n }\n onClear?.();\n },\n contextOnOptionRemove: (option: Item, event?: React.SyntheticEvent) => {\n // Capture the event for the onChange callback\n if (event && \"clientX\" in event) {\n const mouseEvent = event as React.MouseEvent;\n currentEventRef.current = {\n type: mouseEvent.type,\n clientX: mouseEvent.clientX,\n clientY: mouseEvent.clientY,\n target: mouseEvent.target,\n currentTarget: mouseEvent.currentTarget,\n ctrlKey: mouseEvent.ctrlKey,\n shiftKey: mouseEvent.shiftKey,\n altKey: mouseEvent.altKey,\n metaKey: mouseEvent.metaKey,\n button: mouseEvent.button,\n timeStamp: mouseEvent.timeStamp,\n isTrusted: mouseEvent.isTrusted,\n nativeEvent: mouseEvent.nativeEvent,\n preventDefault: () => mouseEvent.preventDefault(),\n stopPropagation: () => mouseEvent.stopPropagation()\n };\n }\n if (hookRemoveSelectedItem) {\n hookRemoveSelectedItem(option);\n }\n onOptionRemove?.(option);\n },\n addSelectedItem: hookAddSelectedItem,\n removeSelectedItem: hookRemoveSelectedItem,\n size,\n toggleMenu,\n isFocused\n };\n\n return <DropdownWrapperUI contextValue={contextValue} dropdownRef={dropdownRef} />;\n};\n\nexport default DropdownMultiSelectController;\n"],"names":["DropdownMultiSelectController","props","options","isMenuOpenProp","isMenuOpen","autoFocus","defaultValue","value","onChange","onMenuOpen","onMenuClose","onOptionSelect","_props$clearable","clearable","_props$showSelectedOp","showSelectedOptions","filterOption","dropdownRef","onClear","onOptionRemove","onFocus","onBlur","_props$size","size","_useState","useState","Array","isArray","_useState2","_slicedToArray","multiSelectedItemsState","setMultiSelectedItemsState","_useState3","_useState4","isFocused","setIsFocused","currentEventRef","useRef","undefined","_useDropdownMultiSele","useDropdownMultiSelect","current","isOpen","highlightedIndex","getToggleButtonProps","getLabelProps","getMenuProps","getItemProps","hookReset","reset","toggleMenu","filteredOptions","hookSelectedItems","selectedItems","hookAddSelectedItem","addSelectedItem","hookRemoveSelectedItem","removeSelectedItem","getDropdownProps","contextValue","inputValue","selectedItem","toggleOptions","disabled","readOnly","event","itemOptions","originalProps","Object","assign","onClick","type","clientX","clientY","target","currentTarget","ctrlKey","shiftKey","altKey","metaKey","button","timeStamp","isTrusted","nativeEvent","preventDefault","stopPropagation","contextOnClear","mouseEvent","contextOnOptionRemove","option","React","createElement","DropdownWrapperUI"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- import{slicedToArray as e}from"../../../../_virtual/_rollupPluginBabelHelpers.js";import o,{useState as t,useRef as n}from"react";import l from"../hooks/useDropdownSelect.js";import r from"../components/DropdownWrapperUI.js";var i=function(i){var s=i.options,u=i.autoFocus,c=i.isMenuOpen,a=i.defaultValue,d=i.value,p=i.onChange,g=i.onMenuOpen,m=i.onMenuClose,f=i.onOptionSelect,O=i.showSelectedOptions,v=void 0===O||O,b=i.filterOption,h=i.clearable,I=void 0===h||h,j=i.searchable,P=void 0!==j&&j,C=i.multi,M=void 0!==C&&C,x=i.dropdownRef,w=i.onClear,B=i.onFocus,F=i.onBlur,S=i.size,k=void 0===S?"medium":S,R=t(!1),T=e(R,2),V=T[0],y=T[1],z=n(void 0),D=l(s,u,c,a,d,(function(e){null==p||p(e,z.current),z.current=void 0}),g,m,f,v,b),L=D.isOpen,_=D.highlightedIndex,A=D.getToggleButtonProps,E=D.getLabelProps,H=D.getMenuProps,U=D.getItemProps,W=D.reset,q=D.toggleMenu,G=D.filteredOptions,J=D.selectedItem,K=Object.assign(Object.assign({},i),{isOpen:L,highlightedIndex:_,selectedItem:J,filteredOptions:G,getToggleButtonProps:function(e){return A(Object.assign(Object.assign({},e||{}),{disabled:i.readOnly||i.disabled,onFocus:function(e){y(!0),null==B||B(e)},onBlur:function(e){y(!1),null==F||F(e)}}))},getLabelProps:E,getMenuProps:H,getItemProps:function(e){var o=U(e);return Object.assign(Object.assign({},o),{onClick:function(e){z.current=e,o.onClick&&o.onClick(e)}})},reset:W,inputValue:null,selectedItems:[],addSelectedItem:void 0,removeSelectedItem:void 0,contextOnClear:function(e){z.current=e,W(),null==w||w()},contextOnOptionRemove:function(){},clearable:I,searchable:P,multi:M,autoFocus:u,onClear:w,size:k,toggleMenu:q,isFocused:V});return o.createElement(r,{contextValue:K,dropdownRef:x})};export{i as default};
1
+ import{slicedToArray as e}from"../../../../_virtual/_rollupPluginBabelHelpers.js";import t,{useState as n,useRef as o}from"react";import r from"../hooks/useDropdownSelect.js";import i from"../components/DropdownWrapperUI.js";var l=function(l){var a=l.options,u=l.autoFocus,s=l.isMenuOpen,c=l.defaultValue,p=l.value,d=l.onChange,g=l.onMenuOpen,m=l.onMenuClose,f=l.onOptionSelect,v=l.showSelectedOptions,y=void 0===v||v,b=l.filterOption,O=l.clearable,K=void 0===O||O,h=l.searchable,P=void 0!==h&&h,T=l.multi,I=void 0!==T&&T,j=l.dropdownRef,S=l.onClear,C=l.onFocus,M=l.onBlur,x=l.size,D=void 0===x?"medium":x,w=n(!1),B=e(w,2),E=B[0],F=B[1],X=o(void 0),k=r(a,u,s,c,p,(function(e){null==d||d(e,X.current),X.current=void 0}),g,m,f,y,b),Y=k.isOpen,R=k.highlightedIndex,V=k.getToggleButtonProps,z=k.getLabelProps,L=k.getMenuProps,_=k.getItemProps,A=k.reset,H=k.toggleMenu,U=k.filteredOptions,W=k.selectedItem,q=Object.assign(Object.assign({},l),{isOpen:Y,highlightedIndex:R,selectedItem:W,filteredOptions:U,getToggleButtonProps:function(e){return V(Object.assign(Object.assign({},e||{}),{disabled:l.readOnly||l.disabled,onFocus:function(e){F(!0),null==C||C(e)},onBlur:function(e){F(!1),null==M||M(e)}}))},getLabelProps:z,getMenuProps:L,getItemProps:function(e){var t=_(e);return Object.assign(Object.assign({},t),{onClick:function(e){X.current={type:e.type,clientX:e.clientX,clientY:e.clientY,target:e.target,currentTarget:e.currentTarget,ctrlKey:e.ctrlKey,shiftKey:e.shiftKey,altKey:e.altKey,metaKey:e.metaKey,button:e.button,timeStamp:e.timeStamp,isTrusted:e.isTrusted,nativeEvent:e.nativeEvent,preventDefault:function(){return e.preventDefault()},stopPropagation:function(){return e.stopPropagation()}},t.onClick&&t.onClick(e)}})},reset:A,inputValue:null,selectedItems:[],addSelectedItem:void 0,removeSelectedItem:void 0,contextOnClear:function(e){if(e&&"clientX"in e){var t=e;X.current={type:t.type,clientX:t.clientX,clientY:t.clientY,target:t.target,currentTarget:t.currentTarget,ctrlKey:t.ctrlKey,shiftKey:t.shiftKey,altKey:t.altKey,metaKey:t.metaKey,button:t.button,timeStamp:t.timeStamp,isTrusted:t.isTrusted,nativeEvent:t.nativeEvent,preventDefault:function(){return t.preventDefault()},stopPropagation:function(){return t.stopPropagation()}}}A(),null==S||S()},contextOnOptionRemove:function(){},clearable:K,searchable:P,multi:I,autoFocus:u,onClear:S,size:D,toggleMenu:H,isFocused:E});return t.createElement(i,{contextValue:q,dropdownRef:j})};export{l as default};
2
2
  //# sourceMappingURL=DropdownSelectController.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"DropdownSelectController.js","sources":["../../../../../src/components/DropdownNew/modes/DropdownSelectController.tsx"],"sourcesContent":["import React, { useState, useRef } from \"react\";\nimport { type DropdownSingleControllerProps } from \"../Dropdown.types\";\nimport useDropdownSelect from \"../hooks/useDropdownSelect\";\nimport { type BaseListItemData } from \"../../BaseListItem\";\nimport { type DropdownContextProps } from \"../context/DropdownContext.types\";\nimport DropdownWrapperUI from \"../components/DropdownWrapperUI\";\n\nconst DropdownSelectController = <Item extends BaseListItemData<Record<string, unknown>>>(\n props: DropdownSingleControllerProps<Item>\n) => {\n const {\n options,\n autoFocus,\n isMenuOpen: isMenuOpenProp,\n defaultValue,\n value,\n onChange,\n onMenuOpen,\n onMenuClose,\n onOptionSelect,\n showSelectedOptions = true,\n filterOption,\n clearable = true,\n searchable = false,\n multi = false,\n dropdownRef,\n onClear,\n onFocus,\n onBlur,\n size = \"medium\"\n } = props;\n\n const [isFocused, setIsFocused] = useState(false);\n const currentEventRef = useRef<React.SyntheticEvent | undefined>(undefined);\n\n // Wrapper for onChange that includes the current event\n const onChangeWithEvent = (option: Item | null) => {\n onChange?.(option, currentEventRef.current);\n currentEventRef.current = undefined; // Clear after use\n };\n\n const {\n isOpen,\n highlightedIndex,\n getToggleButtonProps,\n getLabelProps,\n getMenuProps,\n getItemProps,\n reset: hookReset,\n toggleMenu,\n filteredOptions,\n selectedItem: hookSelectedItem\n } = useDropdownSelect<Item>(\n options,\n autoFocus,\n isMenuOpenProp,\n defaultValue,\n value,\n onChangeWithEvent,\n onMenuOpen,\n onMenuClose,\n onOptionSelect,\n showSelectedOptions,\n filterOption\n );\n\n const contextValue: DropdownContextProps<Item> = {\n ...props,\n isOpen,\n highlightedIndex,\n selectedItem: hookSelectedItem,\n filteredOptions,\n getToggleButtonProps: (toggleOptions?: Record<string, unknown>) => {\n return getToggleButtonProps({\n ...(toggleOptions || {}),\n disabled: props.readOnly || props.disabled,\n onFocus: (event: React.FocusEvent<HTMLDivElement>) => {\n setIsFocused(true);\n onFocus?.(event);\n },\n onBlur: (event: React.FocusEvent<HTMLDivElement>) => {\n setIsFocused(false);\n onBlur?.(event);\n }\n });\n },\n getLabelProps,\n getMenuProps,\n getItemProps: (itemOptions: { item: Item; index: number }) => {\n const originalProps = getItemProps(itemOptions);\n return {\n ...originalProps,\n onClick: (event: React.MouseEvent) => {\n // Capture the event for the onChange callback\n currentEventRef.current = event;\n // Call the original onClick which will trigger the onChange through the hook\n if (originalProps.onClick) {\n originalProps.onClick(event);\n }\n }\n };\n },\n reset: hookReset,\n inputValue: null,\n selectedItems: [],\n addSelectedItem: undefined,\n removeSelectedItem: undefined,\n contextOnClear: (event?: React.SyntheticEvent) => {\n // Capture the event for the onChange callback that will be triggered by hookReset\n currentEventRef.current = event;\n hookReset();\n onClear?.();\n },\n contextOnOptionRemove: () => {},\n clearable,\n searchable,\n multi,\n autoFocus,\n onClear,\n size,\n toggleMenu,\n isFocused\n };\n\n return <DropdownWrapperUI contextValue={contextValue} dropdownRef={dropdownRef} />;\n};\n\nexport default DropdownSelectController;\n"],"names":["DropdownSelectController","props","options","autoFocus","isMenuOpenProp","isMenuOpen","defaultValue","value","onChange","onMenuOpen","onMenuClose","onOptionSelect","_props$showSelectedOp","showSelectedOptions","filterOption","_props$clearable","clearable","_props$searchable","searchable","_props$multi","multi","dropdownRef","onClear","onFocus","onBlur","_props$size","size","_useState","useState","_useState2","_slicedToArray","isFocused","setIsFocused","currentEventRef","useRef","undefined","_useDropdownSelect","useDropdownSelect","option","current","isOpen","highlightedIndex","getToggleButtonProps","getLabelProps","getMenuProps","getItemProps","hookReset","reset","toggleMenu","filteredOptions","hookSelectedItem","selectedItem","contextValue","Object","assign","toggleOptions","disabled","readOnly","event","itemOptions","originalProps","onClick","inputValue","selectedItems","addSelectedItem","removeSelectedItem","contextOnClear","contextOnOptionRemove","React","createElement","DropdownWrapperUI"],"mappings":"iOAOA,IAAMA,EAA2B,SAC/BC,GAEA,IACEC,EAmBED,EAnBFC,QACAC,EAkBEF,EAlBFE,UACYC,EAiBVH,EAjBFI,WACAC,EAgBEL,EAhBFK,aACAC,EAeEN,EAfFM,MACAC,EAcEP,EAdFO,SACAC,EAaER,EAbFQ,WACAC,EAYET,EAZFS,YACAC,EAWEV,EAXFU,eAAcC,EAWZX,EAVFY,oBAAAA,OAAsB,IAAHD,GAAOA,EAC1BE,EASEb,EATFa,aAAYC,EASVd,EARFe,UAAAA,OAAY,IAAHD,GAAOA,EAAAE,EAQdhB,EAPFiB,WAAAA,OAAa,IAAHD,GAAQA,EAAAE,EAOhBlB,EANFmB,MAAAA,OAAQ,IAAHD,GAAQA,EACbE,EAKEpB,EALFoB,YACAC,EAIErB,EAJFqB,QACAC,EAGEtB,EAHFsB,QACAC,EAEEvB,EAFFuB,OAAMC,EAEJxB,EADFyB,KAAAA,OAAO,IAAHD,EAAG,SAAQA,EAGjBE,EAAkCC,GAAS,GAAMC,EAAAC,EAAAH,EAAA,GAA1CI,EAASF,EAAA,GAAEG,EAAYH,EAAA,GACxBI,EAAkBC,OAAyCC,GAQjEC,EAWIC,EACFnC,EACAC,EACAC,EACAE,EACAC,GArBwB,SAAC+B,GACzB9B,SAAAA,EAAW8B,EAAQL,EAAgBM,SACnCN,EAAgBM,aAAUJ,IAqB1B1B,EACAC,EACAC,EACAE,EACAC,GArBA0B,EAAMJ,EAANI,OACAC,EAAgBL,EAAhBK,iBACAC,EAAoBN,EAApBM,qBACAC,EAAaP,EAAbO,cACAC,EAAYR,EAAZQ,aACAC,EAAYT,EAAZS,aACOC,EAASV,EAAhBW,MACAC,EAAUZ,EAAVY,WACAC,EAAeb,EAAfa,gBACcC,EAAgBd,EAA9Be,aAeIC,EAAYC,OAAAC,OAAAD,OAAAC,OAAA,CAAA,EACbrD,GAAK,CACRuC,OAAAA,EACAC,iBAAAA,EACAU,aAAcD,EACdD,gBAAAA,EACAP,qBAAsB,SAACa,GACrB,OAAOb,iCACDa,GAAiB,CAAA,GACrB,CAAAC,SAAUvD,EAAMwD,UAAYxD,EAAMuD,SAClCjC,QAAS,SAACmC,GACR1B,GAAa,GACbT,SAAAA,EAAUmC,EACX,EACDlC,OAAQ,SAACkC,GACP1B,GAAa,GACbR,SAAAA,EAASkC,EACX,IAEH,EACDf,cAAAA,EACAC,aAAAA,EACAC,aAAc,SAACc,GACb,IAAMC,EAAgBf,EAAac,GACnC,OAAAN,OAAAC,OAAAD,OAAAC,OAAA,CAAA,EACKM,GACH,CAAAC,QAAS,SAACH,GAERzB,EAAgBM,QAAUmB,EAEtBE,EAAcC,SAChBD,EAAcC,QAAQH,EAE1B,GAEH,EACDX,MAAOD,EACPgB,WAAY,KACZC,cAAe,GACfC,qBAAiB7B,EACjB8B,wBAAoB9B,EACpB+B,eAAgB,SAACR,GAEfzB,EAAgBM,QAAUmB,EAC1BZ,IACAxB,SAAAA,GACD,EACD6C,sBAAuB,WAAQ,EAC/BnD,UAAAA,EACAE,WAAAA,EACAE,MAAAA,EACAjB,UAAAA,EACAmB,QAAAA,EACAI,KAAAA,EACAsB,WAAAA,EACAjB,UAAAA,IAGF,OAAOqC,EAAAC,cAACC,EAAiB,CAAClB,aAAcA,EAAc/B,YAAaA,GACrE"}
1
+ {"version":3,"file":"DropdownSelectController.js","sources":["../../../../../src/components/DropdownNew/modes/DropdownSelectController.tsx"],"sourcesContent":["import React, { useState, useRef } from \"react\";\nimport { type DropdownSingleControllerProps } from \"../Dropdown.types\";\nimport useDropdownSelect from \"../hooks/useDropdownSelect\";\nimport { type BaseListItemData } from \"../../BaseListItem\";\nimport { type DropdownContextProps } from \"../context/DropdownContext.types\";\nimport DropdownWrapperUI from \"../components/DropdownWrapperUI\";\n\nconst DropdownSelectController = <Item extends BaseListItemData<Record<string, unknown>>>(\n props: DropdownSingleControllerProps<Item>\n) => {\n const {\n options,\n autoFocus,\n isMenuOpen: isMenuOpenProp,\n defaultValue,\n value,\n onChange,\n onMenuOpen,\n onMenuClose,\n onOptionSelect,\n showSelectedOptions = true,\n filterOption,\n clearable = true,\n searchable = false,\n multi = false,\n dropdownRef,\n onClear,\n onFocus,\n onBlur,\n size = \"medium\"\n } = props;\n\n const [isFocused, setIsFocused] = useState(false);\n const currentEventRef = useRef<\n | {\n type: string;\n clientX: number;\n clientY: number;\n target: EventTarget | null;\n currentTarget: EventTarget | null;\n ctrlKey: boolean;\n shiftKey: boolean;\n altKey: boolean;\n metaKey: boolean;\n button: number;\n timeStamp: number;\n isTrusted: boolean;\n nativeEvent: Event;\n preventDefault: () => void;\n stopPropagation: () => void;\n }\n | undefined\n >(undefined);\n\n // Wrapper for onChange that includes the current event\n const onChangeWithEvent = (option: Item | null) => {\n onChange?.(option, currentEventRef.current as unknown as React.SyntheticEvent);\n currentEventRef.current = undefined; // Clear after use\n };\n\n const {\n isOpen,\n highlightedIndex,\n getToggleButtonProps,\n getLabelProps,\n getMenuProps,\n getItemProps,\n reset: hookReset,\n toggleMenu,\n filteredOptions,\n selectedItem: hookSelectedItem\n } = useDropdownSelect<Item>(\n options,\n autoFocus,\n isMenuOpenProp,\n defaultValue,\n value,\n onChangeWithEvent,\n onMenuOpen,\n onMenuClose,\n onOptionSelect,\n showSelectedOptions,\n filterOption\n );\n\n const contextValue: DropdownContextProps<Item> = {\n ...props,\n isOpen,\n highlightedIndex,\n selectedItem: hookSelectedItem,\n filteredOptions,\n getToggleButtonProps: (toggleOptions?: Record<string, unknown>) => {\n return getToggleButtonProps({\n ...(toggleOptions || {}),\n disabled: props.readOnly || props.disabled,\n onFocus: (event: React.FocusEvent<HTMLDivElement>) => {\n setIsFocused(true);\n onFocus?.(event);\n },\n onBlur: (event: React.FocusEvent<HTMLDivElement>) => {\n setIsFocused(false);\n onBlur?.(event);\n }\n });\n },\n getLabelProps,\n getMenuProps,\n getItemProps: (itemOptions: { item: Item; index: number }) => {\n const originalProps = getItemProps(itemOptions);\n return {\n ...originalProps,\n onClick: (event: React.MouseEvent) => {\n // Capture specific event properties immediately before they get nullified\n currentEventRef.current = {\n type: event.type,\n clientX: event.clientX,\n clientY: event.clientY,\n target: event.target,\n currentTarget: event.currentTarget,\n ctrlKey: event.ctrlKey,\n shiftKey: event.shiftKey,\n altKey: event.altKey,\n metaKey: event.metaKey,\n button: event.button,\n timeStamp: event.timeStamp,\n isTrusted: event.isTrusted,\n nativeEvent: event.nativeEvent,\n preventDefault: () => event.preventDefault(),\n stopPropagation: () => event.stopPropagation()\n };\n // Call the original onClick which will trigger the onChange through the hook\n if (originalProps.onClick) {\n originalProps.onClick(event);\n }\n }\n };\n },\n reset: hookReset,\n inputValue: null,\n selectedItems: [],\n addSelectedItem: undefined,\n removeSelectedItem: undefined,\n contextOnClear: (event?: React.SyntheticEvent) => {\n // Capture the event for the onChange callback that will be triggered by hookReset\n if (event && \"clientX\" in event) {\n const mouseEvent = event as React.MouseEvent;\n currentEventRef.current = {\n type: mouseEvent.type,\n clientX: mouseEvent.clientX,\n clientY: mouseEvent.clientY,\n target: mouseEvent.target,\n currentTarget: mouseEvent.currentTarget,\n ctrlKey: mouseEvent.ctrlKey,\n shiftKey: mouseEvent.shiftKey,\n altKey: mouseEvent.altKey,\n metaKey: mouseEvent.metaKey,\n button: mouseEvent.button,\n timeStamp: mouseEvent.timeStamp,\n isTrusted: mouseEvent.isTrusted,\n nativeEvent: mouseEvent.nativeEvent,\n preventDefault: () => mouseEvent.preventDefault(),\n stopPropagation: () => mouseEvent.stopPropagation()\n };\n }\n hookReset();\n onClear?.();\n },\n contextOnOptionRemove: () => {},\n clearable,\n searchable,\n multi,\n autoFocus,\n onClear,\n size,\n toggleMenu,\n isFocused\n };\n\n return <DropdownWrapperUI contextValue={contextValue} dropdownRef={dropdownRef} />;\n};\n\nexport default DropdownSelectController;\n"],"names":["DropdownSelectController","props","options","autoFocus","isMenuOpenProp","isMenuOpen","defaultValue","value","onChange","onMenuOpen","onMenuClose","onOptionSelect","_props$showSelectedOp","showSelectedOptions","filterOption","_props$clearable","clearable","_props$searchable","searchable","_props$multi","multi","dropdownRef","onClear","onFocus","onBlur","_props$size","size","_useState","useState","_useState2","_slicedToArray","isFocused","setIsFocused","currentEventRef","useRef","undefined","_useDropdownSelect","useDropdownSelect","option","current","isOpen","highlightedIndex","getToggleButtonProps","getLabelProps","getMenuProps","getItemProps","hookReset","reset","toggleMenu","filteredOptions","hookSelectedItem","selectedItem","contextValue","Object","assign","toggleOptions","disabled","readOnly","event","itemOptions","originalProps","onClick","type","clientX","clientY","target","currentTarget","ctrlKey","shiftKey","altKey","metaKey","button","timeStamp","isTrusted","nativeEvent","preventDefault","stopPropagation","inputValue","selectedItems","addSelectedItem","removeSelectedItem","contextOnClear","mouseEvent","contextOnOptionRemove","React","createElement","DropdownWrapperUI"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vibe/core",
3
- "version": "3.63.0-alpha-7f1d0.0",
3
+ "version": "3.63.0-alpha-f3bbe.0",
4
4
  "description": "Official monday.com UI resources for application development in React.js",
5
5
  "repository": {
6
6
  "type": "git",
@@ -255,7 +255,7 @@
255
255
  "tsx": "^4.20.3",
256
256
  "typescript": "^4.7.3",
257
257
  "typescript-plugin-css-modules": "^4.2.1",
258
- "vibe-storybook-components": "1.0.4-alpha-7f1d0.0",
258
+ "vibe-storybook-components": "1.0.4-alpha-f3bbe.0",
259
259
  "vite": "^5.3.1",
260
260
  "vitest": "^1.6.0"
261
261
  },
@@ -276,5 +276,5 @@
276
276
  "browserslist": [
277
277
  "extends browserslist-config-monday"
278
278
  ],
279
- "gitHead": "c384f6aff37386331a2e1b6ed0e0258af1a48906"
279
+ "gitHead": "f9a1871c7f02acae19e540cd662c09cb79375544"
280
280
  }