@loadsmart/loadsmart-ui 5.1.1 → 5.2.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,5 +1,5 @@
1
- import type { ButtonHTMLAttributes, HTMLAttributes, ReactNode } from 'react';
2
1
  import type { ButtonProps } from "../Button";
2
+ import type { ButtonHTMLAttributes, HTMLAttributes, ReactNode } from 'react';
3
3
  export interface useDropdownProps {
4
4
  expanded: boolean;
5
5
  toggle: () => void;
@@ -12,7 +12,7 @@ export interface useDropdownReturn {
12
12
  }
13
13
  export interface DropdownProps extends Omit<HTMLAttributes<HTMLDivElement>, 'onChange' | 'onBlur'> {
14
14
  disabled?: boolean;
15
- onBlur?: () => void;
15
+ onBlur?: (event?: MouseEvent | TouchEvent | KeyboardEvent) => void;
16
16
  }
17
17
  export interface GenericDropdownProps extends DropdownProps, useDropdownProps {
18
18
  }
@@ -1,8 +1,4 @@
1
- import type { HTMLAttributes } from 'react';
2
- export interface DropdownProps extends Omit<HTMLAttributes<HTMLDivElement>, 'onChange' | 'onBlur'> {
3
- disabled?: boolean;
4
- onBlur?: () => void;
5
- }
1
+ import type { DropdownProps } from './Dropdown.types';
6
2
  export interface useDropdownProps {
7
3
  expanded: boolean;
8
4
  toggle: () => void;
@@ -1,9 +1,9 @@
1
1
  import EventLike from "../../utils/types/EventLike";
2
- import type { ChangeEvent, FocusEvent, ComponentType, HTMLAttributes } from 'react';
3
- import type { DropdownProps, DropdownMenuItemProps } from "../Dropdown";
2
+ import type { DropdownMenuItemProps, DropdownProps } from "../Dropdown";
4
3
  import type { TextFieldProps } from "../TextField";
5
- import type { SelectableAdapter, Selectable, SelectableKeyType, SelectableState } from "../../hooks/useSelectable";
4
+ import type { Selectable, SelectableAdapter, SelectableKeyType, SelectableState } from "../../hooks/useSelectable";
6
5
  import { useSelectableReturn } from "../../hooks/useSelectable/useSelectable.types";
6
+ import type { ChangeEvent, ComponentType, FocusEvent, HTMLAttributes } from 'react';
7
7
  export declare type Option = Selectable;
8
8
  export interface GenericOption {
9
9
  label: string;
@@ -98,7 +98,7 @@ export declare type useSelectReturn = {
98
98
  getDropdownProps: () => {
99
99
  toggle: () => void;
100
100
  expanded: boolean;
101
- onBlur: () => void;
101
+ onBlur: (event?: MouseEvent | TouchEvent | KeyboardEvent) => void;
102
102
  };
103
103
  getCreatebleProps: () => CreatableProps;
104
104
  isCreatable: () => boolean;
@@ -1,3 +1,3 @@
1
1
  import type { RefObject } from 'react';
2
- declare function useClickOutside<T extends HTMLElement>(container: RefObject<T>, callback: () => void, disabled?: boolean): void;
2
+ declare function useClickOutside<T extends HTMLElement>(container: RefObject<T>, callback: (event?: MouseEvent | TouchEvent | KeyboardEvent) => void, disabled?: boolean): void;
3
3
  export default useClickOutside;
package/dist/index.js CHANGED
@@ -1,4 +1,4 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("./DragDropFile.context-cf460901.js"),t=require("react"),n=require("styled-components"),r=require("./theming/index.js"),o=require("./loadsmart.theme-37a60d56.js"),a=require("./toArray-b56541b4.js"),l=require("./prop-06c02f6d.js"),i=require("react-dom");function c(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}function s(e){if(e&&e.__esModule)return e;var t=Object.create(null);return e&&Object.keys(e).forEach((function(n){if("default"!==n){var r=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,r.get?r:{enumerable:!0,get:function(){return e[n]}})}})),t.default=e,Object.freeze(t)}var d=c(t),u=s(t),g=c(n),p=c(i);function h(e){return`\n transition-property: ${(null==e?void 0:e.property)||"background, border-color, box-shadow, color, fill, left, stroke, transform, opacity"};\n transition-timing-function: ${(null==e?void 0:e.timingFunction)||"cubic-bezier(0.4, 0, 0.2, 1)"};\n transition-duration: ${(null==e?void 0:e.duration)||"450ms"};\n transition-delay: 0ms;\n `}const f=g.default.span`
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("./DragDropFile.context-cf460901.js"),t=require("react"),n=require("styled-components"),r=require("./theming/index.js"),o=require("./loadsmart.theme-63c13988.js"),a=require("./toArray-b56541b4.js"),l=require("./prop-0c635ee9.js"),i=require("react-dom");function c(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}function s(e){if(e&&e.__esModule)return e;var t=Object.create(null);return e&&Object.keys(e).forEach((function(n){if("default"!==n){var r=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,r.get?r:{enumerable:!0,get:function(){return e[n]}})}})),t.default=e,Object.freeze(t)}var d=c(t),u=s(t),g=c(n),p=c(i);function h(e){return`\n transition-property: ${(null==e?void 0:e.property)||"background, border-color, box-shadow, color, fill, left, stroke, transform, opacity"};\n transition-timing-function: ${(null==e?void 0:e.timingFunction)||"cubic-bezier(0.4, 0, 0.2, 1)"};\n transition-duration: ${(null==e?void 0:e.duration)||"450ms"};\n transition-delay: 0ms;\n `}const f=g.default.span`
2
2
  display: inline-flex;
3
3
  align-items: center;
4
4
  justify-content: center;
@@ -1815,7 +1815,7 @@
1815
1815
 
1816
1816
  border: 0;
1817
1817
  border-bottom: 2px solid ${r.getToken("card-separator-background")};
1818
- `,hl=t.forwardRef((function(n,r){const o=t.useContext(nl);if(!o)throw new Error("DropdownMenu must be inside a DropdownContext");const{children:a,header:l,footer:i,align:c="start"}=n,s=e.__rest(n,["children","header","footer","align"]),{expanded:u}=o;return u?d.default.createElement(rl,{role:"presentation",$align:c},l&&d.default.createElement(ul,null,l),a&&d.default.createElement(gl,Object.assign({ref:r,role:"menu","data-testid":"dropdown-menu"},s),a),i&&d.default.createElement(ul,null,i)):null}));function fl(n){const r=t.useContext(nl),{leading:o,children:a,trailing:l,onClick:i}=n,c=e.__rest(n,["leading","children","trailing","onClick"]),s=Hr(c.id);if(!r)throw new Error("DropdownMenuItem must be inside a DropdownContext");const{toggle:u}=r;return d.default.createElement(cl,Object.assign({role:"menuitem",type:"button","data-testid":"dropdown-menu-item"},c,{"aria-labelledby":s,onClick:e=>{e.persist();(null==i?void 0:i(e))||u()}}),o&&d.default.createElement(al,null,o),d.default.createElement(il,{id:s},a),l&&d.default.createElement(ll,null,l))}const ml={ALT:"Alt",ARROW_DOWN:"ArrowDown",ARROW_LEFT:"ArrowLeft",ARROW_RIGHT:"ArrowRight",ARROW_UP:"ArrowUp",CONTROL:"Control",ENTER:"Enter",ESCAPE:"Escape",SHIFT:"Shift",SPACE:" ",TAB:"Tab"};function bl(e){return e.keyCode>=37&&e.keyCode<=40&&0!==e.key.indexOf("Arrow")?`Arrow${e.key}`:e.key}function wl(e){const t=bl(e);return{is(e){const n=a.toArray(e).map((e=>ml[e]));return a.toArray(n).includes(t)}}}function vl(e,n,r=!1){const[o,a]=t.useState(!1),l=t.useCallback((function(){return e.current}),[e]),i=t.useCallback((function(e){var t;if(!l()||r)return;const i=e.target,c=null===(t=l())||void 0===t?void 0:t.contains(i);!o&&c?a(!0):!o||c&&!wl(e).is("ESCAPE")||(a(!1),n())}),[o,n,r,l]);t.useEffect((()=>(document.addEventListener("mousedown",i,!0),document.addEventListener("touchend",i,!0),document.addEventListener("keyup",i),()=>{document.removeEventListener("mousedown",i,!0),document.removeEventListener("touchend",i,!0),document.removeEventListener("keyup",i)})),[i])}const $l=n.css`
1818
+ `,hl=t.forwardRef((function(n,r){const o=t.useContext(nl);if(!o)throw new Error("DropdownMenu must be inside a DropdownContext");const{children:a,header:l,footer:i,align:c="start"}=n,s=e.__rest(n,["children","header","footer","align"]),{expanded:u}=o;return u?d.default.createElement(rl,{role:"presentation",$align:c},l&&d.default.createElement(ul,null,l),a&&d.default.createElement(gl,Object.assign({ref:r,role:"menu","data-testid":"dropdown-menu"},s),a),i&&d.default.createElement(ul,null,i)):null}));function fl(n){const r=t.useContext(nl),{leading:o,children:a,trailing:l,onClick:i}=n,c=e.__rest(n,["leading","children","trailing","onClick"]),s=Hr(c.id);if(!r)throw new Error("DropdownMenuItem must be inside a DropdownContext");const{toggle:u}=r;return d.default.createElement(cl,Object.assign({role:"menuitem",type:"button","data-testid":"dropdown-menu-item"},c,{"aria-labelledby":s,onClick:e=>{e.persist();(null==i?void 0:i(e))||u()}}),o&&d.default.createElement(al,null,o),d.default.createElement(il,{id:s},a),l&&d.default.createElement(ll,null,l))}const ml={ALT:"Alt",ARROW_DOWN:"ArrowDown",ARROW_LEFT:"ArrowLeft",ARROW_RIGHT:"ArrowRight",ARROW_UP:"ArrowUp",CONTROL:"Control",ENTER:"Enter",ESCAPE:"Escape",SHIFT:"Shift",SPACE:" ",TAB:"Tab"};function bl(e){return e.keyCode>=37&&e.keyCode<=40&&0!==e.key.indexOf("Arrow")?`Arrow${e.key}`:e.key}function wl(e){const t=bl(e);return{is(e){const n=a.toArray(e).map((e=>ml[e]));return a.toArray(n).includes(t)}}}function vl(e,n,r=!1){const[o,a]=t.useState(!1),l=t.useCallback((function(){return e.current}),[e]),i=t.useCallback((function(e){var t;if(!l()||r)return;const i=e.target,c=null===(t=l())||void 0===t?void 0:t.contains(i);!o&&c?a(!0):!o||c&&!wl(e).is("ESCAPE")||(a(!1),n(e))}),[o,n,r,l]);t.useEffect((()=>(document.addEventListener("mousedown",i,!0),document.addEventListener("touchend",i,!0),document.addEventListener("keyup",i),()=>{document.removeEventListener("mousedown",i,!0),document.removeEventListener("touchend",i,!0),document.removeEventListener("keyup",i)})),[i])}const $l=n.css`
1819
1819
  &[aria-expanded='true'] {
1820
1820
  color: ${r.getToken("color-accent")};
1821
1821
  }
@@ -1933,7 +1933,7 @@
1933
1933
  position: relative;
1934
1934
  `,zl=g.default.button.attrs({type:"button",tabIndex:-1})`
1935
1935
  ${ro(!0)}
1936
- `;function Sl(n){const{children:r,expanded:o,toggle:a,disabled:l=!1,onBlur:i}=n,c=e.__rest(n,["children","expanded","toggle","disabled","onBlur"]),[s,u]=t.useState({expanded:o,toggle:a,disabled:l}),g=t.useRef(null);return vl(g,(function(){null==i||i(),o&&a()})),t.useEffect((function(){u({expanded:o,toggle:a,disabled:l})}),[l,o,a]),d.default.createElement(_l,Object.assign({},c,{role:"menubar",ref:g}),d.default.createElement(nl.Provider,{value:s},d.default.createElement(zl,{disabled:l,onClick:a},"Close"),r))}function Ml(e){const t=Ol(e);return d.default.createElement(Sl,Object.assign({},e,t))}Ml.Trigger=Cl,Ml.Menu=hl,Ml.Section=function(t){const{children:n,header:r}=t,o=e.__rest(t,["children","header"]);return d.default.createElement(dl,Object.assign({"data-testid":"dropdown-menu-section"},o,{role:"presentation"}),d.default.createElement(sl,null,r),n)},Ml.Item=fl,Ml.Separator=pl;const{SelectableContext:Al,useSelectable:Nl}=_r(),Dl=t.createContext(null);function Fl(e,t="s",n=""){return 1!==e?t:n}const Rl=g.default(jl)`
1936
+ `;function Sl(n){const{children:r,expanded:o,toggle:a,disabled:l=!1,onBlur:i}=n,c=e.__rest(n,["children","expanded","toggle","disabled","onBlur"]),[s,u]=t.useState({expanded:o,toggle:a,disabled:l}),g=t.useRef(null);return vl(g,(function(e){null==i||i(e),o&&a()})),t.useEffect((function(){u({expanded:o,toggle:a,disabled:l})}),[l,o,a]),d.default.createElement(_l,Object.assign({},c,{role:"menubar",ref:g}),d.default.createElement(nl.Provider,{value:s},d.default.createElement(zl,{disabled:l,onClick:a},"Close"),r))}function Ml(e){const t=Ol(e);return d.default.createElement(Sl,Object.assign({},e,t))}Ml.Trigger=Cl,Ml.Menu=hl,Ml.Section=function(t){const{children:n,header:r}=t,o=e.__rest(t,["children","header"]);return d.default.createElement(dl,Object.assign({"data-testid":"dropdown-menu-section"},o,{role:"presentation"}),d.default.createElement(sl,null,r),n)},Ml.Item=fl,Ml.Separator=pl;const{SelectableContext:Al,useSelectable:Nl}=_r(),Dl=t.createContext(null);function Fl(e,t="s",n=""){return 1!==e?t:n}const Rl=g.default(jl)`
1937
1937
  background: ${r.getToken("color-neutral-white")};
1938
1938
  `,Bl=g.default(Tn)`
1939
1939
  ${ze`
@@ -1960,7 +1960,7 @@
1960
1960
  border-right-color: ${r.getToken("color-neutral-light")};
1961
1961
  border-right-width: 1px;
1962
1962
  border-right-style: solid;
1963
- `,Il=t.forwardRef((function(n,r){const{className:o}=n,a=e.__rest(n,["className"]),{disabled:l,expanded:i,toggle:c}=t.useContext(nl);return d.default.createElement(Rl,{className:o},d.default.createElement(Bl,Object.assign({"data-testid":"select-trigger-search-field"},a,{ref:r,type:"search",disabled:l,onClick:function(){i||c()}})),d.default.createElement(Ll,null),d.default.createElement(Cl.Handle,{"data-testid":"select-trigger-handle"}))})),Hl={getKey:e=>o.lodash_get(e,"value"),getLabel:e=>o.lodash_get(e,"label")};function Wl(e,t){return null==t?Hl:e[t]||Hl}function Ul(e,t){const n=Array.from(e);if(je(n))return null;if(t){const e=[];for(const[,t]of n)e.push(t);return e}{const[[,e]]=n;return e}}function Yl(e,t,n){if(0==t.size)return"";if(n)return"";{const r=Ul(t,n);return Wl(e,r._type).getLabel(r)}}function ql(e){return String(e||"").replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function Vl(e){return null==e?[]:Array.from(e.querySelectorAll("button")||[])}function Gl(e){const{keys:n,onActivate:r,onDeactivate:o}=e,[a,l]=t.useState(!1),[i,c]=t.useState(-1),s=t.useRef(),[d,u]=t.useState([]);function g(){var e;c(-1),s.current&&(null===(e=s.current)||void 0===e||e.disconnect())}const p=t.useCallback((function(e){null!=e?(u(Vl(e)),function(e){s.current=new MutationObserver((function(){u(Vl(e))})),s.current.observe(e,{childList:!0})}(e)):g()}),[]);t.useEffect((function(){return function(){g()}}),[]),t.useEffect((function(){function e(e){const t=e,r=[...n||["TAB"]];if(!wl(t).is(r)||je(d))return;t.preventDefault();const o=function(e,t,n){const r={Tab:e=>e.shiftKey?-1:1,ArrowUp:()=>-1,ArrowDown:()=>1},o=(r[bl(e)]||function(){return 0})(e);return-1===t&&-1===o?(o+n)%n:(t+o+n)%n}(t,i,d.length);c(o),d[o].focus()}return a&&document.addEventListener("keydown",e),function(){document.removeEventListener("keydown",e)}}),[a,n,i,d]);const h=t.useCallback((function(){l(!0),null==r||r()}),[r]),f=t.useCallback((function(){l(!1),null==o||o()}),[o]);return{containerRef:p,active:a,activate:h,deactivate:f}}function Kl(e,t){return e.then((e=>[null,e])).catch((e=>(t&&Object.assign(e,t),[e,void 0])))}function Ql(e){e.target.select()}function Zl(e,t,n){const r=new Map(t);return e.forEach((e=>{const t=Wl(n,e._type);r.set(t.getKey(e),e)})),r}function Jl(n){const{datasources:r,adapters:o}=n,[a,l]=t.useState(new Map),[i,c]=t.useState("idle"),s=t.useRef();function d(){null!=s.current&&clearTimeout(s.current)}const u=t.useCallback((function(t){function n(){var n,a;return e.__awaiter(this,void 0,void 0,(function*(){l(new Map),c("querying");try{for(var i,s=e.__asyncValues(function(t,n){return e.__asyncGenerator(this,arguments,(function*(){const r=new RegExp(ql(n),"i");for(const o of t){const[t,a]=yield e.__await(Kl(Promise.resolve(o.fetch({query:n,regex:r}))));if(!t){const t=(a||[]).map((e=>Object.assign(Object.assign({},e),{_type:o.type})));yield yield e.__await(t)}}}))}(r,t));!(i=yield s.next()).done;){const e=i.value;l((t=>Zl(e,t,o)))}}catch(e){n={error:e}}finally{try{i&&!i.done&&(a=s.return)&&(yield a.call(s))}finally{if(n)throw n.error}}c("queried")}))}d(),c("pending-query"),s.current=setTimeout((()=>{n()}),750)}),[o,r]),g=t.useCallback((function(){c("idle"),l(new Map)}),[]),p=t.useCallback((function(){return Array.from(a.values())}),[a]),h=t.useCallback((function(){g(),u("")}),[g,u]),f=t.useCallback((function(e){return a.get(e)}),[a]);return t.useEffect((()=>()=>{d()}),[]),{get:p,fetch:u,clear:g,status:i,getOptionByKey:f,reset:h}}function Xl(n){const r=sr(),{multiple:l,onQueryChange:i,onChange:c,onCreate:s,id:d,name:u,disabled:g=!1}=n,p=Ol(n),h=t.useMemo((()=>function(e){let t=[];var n;return t=t.concat(e.datasources||[]),t=t.concat((n=e.options)?[function(){return{type:"generic",adapter:Hl,fetch:function({regex:e}){return n.filter((({label:t})=>e.test(t)))}}}]:[]),t.map((e=>e()))}(n)),[n.datasources,n.options]),f=t.useMemo((()=>function(e){return a.toArray(e).reduce(((e,t)=>Object.assign(Object.assign({},e),{[t.type]:t.adapter})),{})}(h)),[h]),m=Nl({selected:a.toArray(n.value||[]),multiple:l,adapters:f,onChange:t.useCallback((function(e){null==c||c({target:{id:d,name:u,value:Ul(e,l)}})}),[d,l,u,c])}),b=t.useRef(),w=Gl({keys:["ARROW_UP","ARROW_DOWN"],onDeactivate(){var e;null===(e=b.current)||void 0===e||e.focus()}}),[v,$]=t.useState(Yl(f,m.selected,l)),k=Jl({datasources:h,adapters:f}),y=t.useCallback((function(e){const t=Wl(f,e._type),n=t.getKey(e);return{label:t.getLabel(e),value:n,checked:m.selected.has(n)}}),[f,m.selected]),x=t.useCallback((function(e){let t=k.getOptionByKey(e);return t||(t=m.selected.get(e)),t}),[k,m.selected]),P=t.useCallback((function(e){m.toggle(e)}),[m]),E=t.useCallback((function(){return{toggle:p.toggle,expanded:p.expanded,onBlur(){$(l?"":Yl(f,m.selected,l)),k.reset()}}}),[f,p.expanded,p.toggle,l,k,m.selected]),T=t.useCallback((function(){return{id:d,ref(e){null!=e&&(b.current=e)},value:v,onChange(e){null==i||i(e);const t=e.target.value;$(t),p.expand(),k.fetch(t)},onFocus:Ql}}),[d,v,i,p,k]),j=t.useCallback((function(){return{onClick(){var e;$(""),m.clear(),k.reset(),null===(e=b.current)||void 0===e||e.focus()}}}),[k,m]),C=t.useCallback((function(){return{ref:w.containerRef,role:"listbox"}}),[w.containerRef]),O=t.useCallback((function({option:e}){const{value:t,checked:n,label:r}=y(e);return{role:"option","aria-selected":n,id:String(t),onClick:()=>(l||$(n?"":r),P(e),l),tabIndex:-1}}),[y,P,l]),_=t.useCallback((function(){return{onClick:function(){return function(){e.__awaiter(this,void 0,void 0,(function*(){if(!o.isFunction(s))return;const e=s(v);let t;var n;e&&(n=e,t=a.isObject(n)&&o.isFunction(n.then)?yield e:e),k.fetch(v),t&&P(t)}))}(),l},tabIndex:-1}}),[l,s,v,k,P]),z=t.useCallback((function(){const e=e=>y(e).label.toLocaleLowerCase()===v.toLocaleLowerCase();return o.isFunction(s)&&Boolean(v)&&"queried"===k.status&&!!a.isNil([...k.get(),...Array.from(m.selected.values())].find(e))}),[y,s,k,v,m.selected]);return t.useEffect((function(){k.fetch("")}),[h]),t.useEffect((function(){(n.autoFocus||r)&&(p.expanded?w.activate():w.deactivate())}),[p.expanded]),t.useEffect((function(){l||$(Yl(f,m.selected,l))}),[f,l,m.selected]),{status:k.status,options:k.get(),value:Ul(m.selected,l),query:v,disabled:g,selectable:m,getMenuProps:C,getSelectableOption:y,getOption:x,getOptionProps:O,getTriggerProps:T,getClearProps:j,getDropdownProps:E,getCreatebleProps:_,isCreatable:z}}const ei=g.default.span`
1963
+ `,Il=t.forwardRef((function(n,r){const{className:o}=n,a=e.__rest(n,["className"]),{disabled:l,expanded:i,toggle:c}=t.useContext(nl);return d.default.createElement(Rl,{className:o},d.default.createElement(Bl,Object.assign({"data-testid":"select-trigger-search-field"},a,{ref:r,type:"search",disabled:l,onClick:function(){i||c()}})),d.default.createElement(Ll,null),d.default.createElement(Cl.Handle,{"data-testid":"select-trigger-handle"}))}));function Hl(e){return null==e?[]:Array.from(e.querySelectorAll("button")||[])}function Wl(e){const{keys:n,onActivate:r,onDeactivate:o}=e,[a,l]=t.useState(!1),[i,c]=t.useState(-1),s=t.useRef(),[d,u]=t.useState([]);function g(){var e;c(-1),s.current&&(null===(e=s.current)||void 0===e||e.disconnect())}const p=t.useCallback((function(e){null!=e?(u(Hl(e)),function(e){s.current=new MutationObserver((function(){u(Hl(e))})),s.current.observe(e,{childList:!0})}(e)):g()}),[]);t.useEffect((function(){return function(){g()}}),[]),t.useEffect((function(){function e(e){const t=e,r=[...n||["TAB"]];if(!wl(t).is(r)||je(d))return;t.preventDefault();const o=function(e,t,n){const r={Tab:e=>e.shiftKey?-1:1,ArrowUp:()=>-1,ArrowDown:()=>1},o=(r[bl(e)]||function(){return 0})(e);return-1===t&&-1===o?(o+n)%n:(t+o+n)%n}(t,i,d.length);c(o),d[o].focus()}return a&&document.addEventListener("keydown",e),function(){document.removeEventListener("keydown",e)}}),[a,n,i,d]);const h=t.useCallback((function(){l(!0),null==r||r()}),[r]),f=t.useCallback((function(){l(!1),null==o||o()}),[o]);return{containerRef:p,active:a,activate:h,deactivate:f}}function Ul(e,t){return e.then((e=>[null,e])).catch((e=>(t&&Object.assign(e,t),[e,void 0])))}const Yl={getKey:e=>o.lodash_get(e,"value"),getLabel:e=>o.lodash_get(e,"label")};function ql(e,t){return null==t?Yl:e[t]||Yl}function Vl(e,t){const n=Array.from(e);if(je(n))return null;if(t){const e=[];for(const[,t]of n)e.push(t);return e}{const[[,e]]=n;return e}}function Gl(e,t,n){if(0==t.size)return"";if(n)return"";{const r=Vl(t,n);return ql(e,r._type).getLabel(r)}}function Kl(e){return String(e||"").replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function Ql(e){e.target.select()}function Zl(e,t,n){const r=new Map(t);return e.forEach((e=>{const t=ql(n,e._type);r.set(t.getKey(e),e)})),r}function Jl(n){const{datasources:r,adapters:o}=n,[a,l]=t.useState(new Map),[i,c]=t.useState("idle"),s=t.useRef();function d(){null!=s.current&&clearTimeout(s.current)}const u=t.useCallback((function(t){function n(){var n,a;return e.__awaiter(this,void 0,void 0,(function*(){l(new Map),c("querying");try{for(var i,s=e.__asyncValues(function(t,n){return e.__asyncGenerator(this,arguments,(function*(){const r=new RegExp(Kl(n),"i");for(const o of t){const[t,a]=yield e.__await(Ul(Promise.resolve(o.fetch({query:n,regex:r}))));if(!t){const t=(a||[]).map((e=>Object.assign(Object.assign({},e),{_type:o.type})));yield yield e.__await(t)}}}))}(r,t));!(i=yield s.next()).done;){const e=i.value;l((t=>Zl(e,t,o)))}}catch(e){n={error:e}}finally{try{i&&!i.done&&(a=s.return)&&(yield a.call(s))}finally{if(n)throw n.error}}c("queried")}))}d(),c("pending-query"),s.current=setTimeout((()=>{n()}),750)}),[o,r]),g=t.useCallback((function(){c("idle"),l(new Map)}),[]),p=t.useCallback((function(){return Array.from(a.values())}),[a]),h=t.useCallback((function(){g(),u("")}),[g,u]),f=t.useCallback((function(e){return a.get(e)}),[a]);return t.useEffect((()=>()=>{d()}),[]),{get:p,fetch:u,clear:g,status:i,getOptionByKey:f,reset:h}}function Xl(n){const r=sr(),{multiple:l,onQueryChange:i,onChange:c,onCreate:s,id:d,name:u,disabled:g=!1,onBlur:p}=n,h=Ol(n),f=t.useMemo((()=>function(e){let t=[];var n;return t=t.concat(e.datasources||[]),t=t.concat((n=e.options)?[function(){return{type:"generic",adapter:Yl,fetch:function({regex:e}){return n.filter((({label:t})=>e.test(t)))}}}]:[]),t.map((e=>e()))}(n)),[n.datasources,n.options]),m=t.useMemo((()=>function(e){return a.toArray(e).reduce(((e,t)=>Object.assign(Object.assign({},e),{[t.type]:t.adapter})),{})}(f)),[f]),b=Nl({selected:a.toArray(n.value||[]),multiple:l,adapters:m,onChange:t.useCallback((function(e){null==c||c({target:{id:d,name:u,value:Vl(e,l)}})}),[d,l,u,c])}),w=t.useRef(),v=Wl({keys:["ARROW_UP","ARROW_DOWN"],onDeactivate(){var e;null===(e=w.current)||void 0===e||e.focus()}}),[$,k]=t.useState(Gl(m,b.selected,l)),y=Jl({datasources:f,adapters:m}),x=t.useCallback((function(e){const t=ql(m,e._type),n=t.getKey(e);return{label:t.getLabel(e),value:n,checked:b.selected.has(n)}}),[m,b.selected]),P=t.useCallback((function(e){let t=y.getOptionByKey(e);return t||(t=b.selected.get(e)),t}),[y,b.selected]),E=t.useCallback((function(e){b.toggle(e)}),[b]),T=t.useCallback((function(){return{toggle:h.toggle,expanded:h.expanded,onBlur(e){k(l?"":Gl(m,b.selected,l)),y.reset(),null==p||p(e)}}}),[m,h.expanded,h.toggle,l,y,b.selected,p]),j=t.useCallback((function(){return{id:d,ref(e){null!=e&&(w.current=e)},value:$,onChange(e){null==i||i(e);const t=e.target.value;k(t),h.expand(),y.fetch(t)},onFocus:Ql}}),[d,$,i,h,y]),C=t.useCallback((function(){return{onClick(){var e;k(""),b.clear(),y.reset(),null===(e=w.current)||void 0===e||e.focus()}}}),[y,b]),O=t.useCallback((function(){return{ref:v.containerRef,role:"listbox"}}),[v.containerRef]),_=t.useCallback((function({option:e}){const{value:t,checked:n,label:r}=x(e);return{role:"option","aria-selected":n,id:String(t),onClick:()=>(l||k(n?"":r),E(e),l),tabIndex:-1}}),[x,E,l]),z=t.useCallback((function(){return{onClick:function(){return function(){e.__awaiter(this,void 0,void 0,(function*(){if(!o.isFunction(s))return;const e=s($);let t;var n;e&&(n=e,t=a.isObject(n)&&o.isFunction(n.then)?yield e:e),y.fetch($),t&&E(t)}))}(),l},tabIndex:-1}}),[l,s,$,y,E]),S=t.useCallback((function(){const e=e=>x(e).label.toLocaleLowerCase()===$.toLocaleLowerCase();return o.isFunction(s)&&Boolean($)&&"queried"===y.status&&!!a.isNil([...y.get(),...Array.from(b.selected.values())].find(e))}),[x,s,y,$,b.selected]);return t.useEffect((function(){y.fetch("")}),[f]),t.useEffect((function(){(n.autoFocus||r)&&(h.expanded?v.activate():v.deactivate())}),[h.expanded]),t.useEffect((function(){l||k(Gl(m,b.selected,l))}),[m,l,b.selected]),{status:y.status,options:y.get(),value:Vl(b.selected,l),query:$,disabled:g,selectable:b,getMenuProps:O,getSelectableOption:x,getOption:P,getOptionProps:_,getTriggerProps:j,getClearProps:C,getDropdownProps:T,getCreatebleProps:z,isCreatable:S}}const ei=g.default.span`
1964
1964
  /* highlightMatch splits the label into separate HTML elements, thus we need
1965
1965
  to preserve white-spaces, otherwise the browser wouldn't render them. */
1966
1966
  white-space: pre;