@loadsmart/loadsmart-ui 5.6.0 → 5.6.1

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
- `,ml=t.forwardRef((function(n,r){const o=t.useContext(ol);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(al,{role:"presentation",$align:c},l&&d.default.createElement(pl,null,l),a&&d.default.createElement(hl,Object.assign({ref:r,role:"menu","data-testid":"dropdown-menu"},s),a),i&&d.default.createElement(pl,null,i)):null}));function bl(n){const r=t.useContext(ol),{leading:o,children:a,trailing:l,onClick:i}=n,c=e.__rest(n,["leading","children","trailing","onClick"]),s=Wr(c.id);if(!r)throw new Error("DropdownMenuItem must be inside a DropdownContext");const{toggle:u}=r;return d.default.createElement(dl,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(il,null,o),d.default.createElement(sl,{id:s},a),l&&d.default.createElement(cl,null,l))}const wl={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",E_LOWERCASE:"e",DOT:".",PLUS:"+",MINUS:"-"};function vl(e){return e.keyCode>=37&&e.keyCode<=40&&0!==e.key.indexOf("Arrow")?`Arrow${e.key}`:e.key}function $l(e){const t=vl(e);return{is(e){const n=a.toArray(e).map((e=>wl[e]));return a.toArray(n).includes(t)}}}function kl(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&&!$l(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 yl=n.css`
1818
+ `,ml=t.forwardRef((function(n,r){const o=t.useContext(ol);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(al,{role:"presentation",$align:c},l&&d.default.createElement(pl,null,l),a&&d.default.createElement(hl,Object.assign({ref:r,role:"menu","data-testid":"dropdown-menu"},s),a),i&&d.default.createElement(pl,null,i)):null}));function bl(n){const r=t.useContext(ol),{leading:o,children:a,trailing:l,onClick:i}=n,c=e.__rest(n,["leading","children","trailing","onClick"]),s=Wr(c.id);if(!r)throw new Error("DropdownMenuItem must be inside a DropdownContext");const{toggle:u}=r;return d.default.createElement(dl,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(il,null,o),d.default.createElement(sl,{id:s},a),l&&d.default.createElement(cl,null,l))}const wl={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",E_LOWERCASE:"e",DOT:".",PLUS:"+",MINUS:"-"};function vl(e){return e.keyCode>=37&&e.keyCode<=40&&0!==e.key.indexOf("Arrow")?`Arrow${e.key}`:e.key}function $l(e){const t=vl(e);return{is(e){const n=a.toArray(e).map((e=>wl[e]));return a.toArray(n).includes(t)}}}function kl(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&&!$l(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 yl=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
  `,Ml=g.default.button.attrs({type:"button",tabIndex:-1})`
1935
1935
  ${ao(!0)}
1936
- `;function Al(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 kl(g,(function(){null==i||i(),o&&a()})),t.useEffect((function(){u({expanded:o,toggle:a,disabled:l})}),[l,o,a]),d.default.createElement(Sl,Object.assign({},c,{role:"menubar",ref:g}),d.default.createElement(ol.Provider,{value:s},d.default.createElement(Ml,{disabled:l,onClick:a},"Close"),r))}function Nl(e){const t=zl(e);return d.default.createElement(Al,Object.assign({},e,t))}Nl.Trigger=_l,Nl.Menu=ml,Nl.Section=function(t){const{children:n,header:r}=t,o=e.__rest(t,["children","header"]);return d.default.createElement(gl,Object.assign({"data-testid":"dropdown-menu-section"},o,{role:"presentation"}),d.default.createElement(ul,null,r),n)},Nl.Item=bl,Nl.Separator=fl;const{SelectableContext:Dl,useSelectable:Rl}=Sr(),Fl=t.createContext(null);function Ll(e,t="s",n=""){return 1!==e?t:n}const Bl=g.default(Ol)`
1936
+ `;function Al(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 kl(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(Sl,Object.assign({},c,{role:"menubar",ref:g}),d.default.createElement(ol.Provider,{value:s},d.default.createElement(Ml,{disabled:l,onClick:a},"Close"),r))}function Nl(e){const t=zl(e);return d.default.createElement(Al,Object.assign({},e,t))}Nl.Trigger=_l,Nl.Menu=ml,Nl.Section=function(t){const{children:n,header:r}=t,o=e.__rest(t,["children","header"]);return d.default.createElement(gl,Object.assign({"data-testid":"dropdown-menu-section"},o,{role:"presentation"}),d.default.createElement(ul,null,r),n)},Nl.Item=bl,Nl.Separator=fl;const{SelectableContext:Dl,useSelectable:Rl}=Sr(),Fl=t.createContext(null);function Ll(e,t="s",n=""){return 1!==e?t:n}const Bl=g.default(Ol)`
1937
1937
  background: ${r.getToken("color-neutral-white")};
1938
1938
  `,Il=g.default(jn)`
1939
1939
  ${Me`
@@ -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
- `,Ul=t.forwardRef((function(n,r){const{className:o}=n,a=e.__rest(n,["className"]),{disabled:l,expanded:i,toggle:c}=t.useContext(ol);return d.default.createElement(Bl,{className:o},d.default.createElement(Il,Object.assign({"data-testid":"select-trigger-search-field"},a,{ref:r,type:"search",disabled:l,onClick:function(){i||c()}})),d.default.createElement(Hl,null),d.default.createElement(_l.Handle,{"data-testid":"select-trigger-handle"}))})),Wl={getKey:e=>o.lodash_get(e,"value"),getLabel:e=>o.lodash_get(e,"label")};function Yl(e,t){return null==t?Wl:e[t]||Wl}function ql(e,t){const n=Array.from(e);if(Oe(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=ql(t,n);return Yl(e,r._type).getLabel(r)}}function Vl(e){return String(e||"").replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function Kl(e){return null==e?[]:Array.from(e.querySelectorAll("button")||[])}function Ql(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(Kl(e)),function(e){s.current=new MutationObserver((function(){u(Kl(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(!$l(t).is(r)||Oe(d))return;t.preventDefault();const o=function(e,t,n){const r={Tab:e=>e.shiftKey?-1:1,ArrowUp:()=>-1,ArrowDown:()=>1},o=(r[vl(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 Zl(e,t){return e.then((e=>[null,e])).catch((e=>(t&&Object.assign(e,t),[e,void 0])))}function Jl(e){e.target.select()}function Xl(e,t,n){const r=new Map(t);return e.forEach((e=>{const t=Yl(n,e._type);r.set(t.getKey(e),e)})),r}function ei(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(Vl(n),"i");for(const o of t){const[t,a]=yield e.__await(Zl(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=>Xl(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 ti(n){const r=ur(),{multiple:l,onQueryChange:i,onChange:c,onCreate:s,id:d,name:u,disabled:g=!1}=n,p=zl(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:Wl,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=Rl({selected:a.toArray(n.value||[]),multiple:l,adapters:f,onChange:t.useCallback((function(e){null==c||c({target:{id:d,name:u,value:ql(e,l)}})}),[d,l,u,c])}),b=t.useRef(),w=Ql({keys:["ARROW_UP","ARROW_DOWN"],onDeactivate(){var e;null===(e=b.current)||void 0===e||e.focus()}}),[v,$]=t.useState(Gl(f,m.selected,l)),k=ei({datasources:h,adapters:f}),y=t.useCallback((function(e){const t=Yl(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?"":Gl(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:Jl}}),[d,v,i,p,k]),C=t.useCallback((function(){return{onClick(){var e;$(""),m.clear(),k.reset(),null===(e=b.current)||void 0===e||e.focus()}}}),[k,m]),j=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||$(Gl(f,m.selected,l))}),[f,l,m.selected]),{status:k.status,options:k.get(),value:ql(m.selected,l),query:v,disabled:g,selectable:m,getMenuProps:j,getSelectableOption:y,getOption:x,getOptionProps:O,getTriggerProps:T,getClearProps:C,getDropdownProps:E,getCreatebleProps:_,isCreatable:z}}const ni=g.default.span`
1963
+ `,Ul=t.forwardRef((function(n,r){const{className:o}=n,a=e.__rest(n,["className"]),{disabled:l,expanded:i,toggle:c}=t.useContext(ol);return d.default.createElement(Bl,{className:o},d.default.createElement(Il,Object.assign({"data-testid":"select-trigger-search-field"},a,{ref:r,type:"search",disabled:l,onClick:function(){i||c()}})),d.default.createElement(Hl,null),d.default.createElement(_l.Handle,{"data-testid":"select-trigger-handle"}))}));function Wl(e){return null==e?[]:Array.from(e.querySelectorAll("button")||[])}function Yl(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(Wl(e)),function(e){s.current=new MutationObserver((function(){u(Wl(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(!$l(t).is(r)||Oe(d))return;t.preventDefault();const o=function(e,t,n){const r={Tab:e=>e.shiftKey?-1:1,ArrowUp:()=>-1,ArrowDown:()=>1},o=(r[vl(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 ql(e,t){return e.then((e=>[null,e])).catch((e=>(t&&Object.assign(e,t),[e,void 0])))}const Gl={getKey:e=>o.lodash_get(e,"value"),getLabel:e=>o.lodash_get(e,"label")};function Vl(e,t){return null==t?Gl:e[t]||Gl}function Kl(e,t){const n=Array.from(e);if(Oe(n))return null;if(t){const e=[];for(const[,t]of n)e.push(t);return e}{const[[,e]]=n;return e}}function Ql(e,t,n){if(0==t.size)return"";if(n)return"";{const r=Kl(t,n);return Vl(e,r._type).getLabel(r)}}function Zl(e){return String(e||"").replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function Jl(e){e.target.select()}function Xl(e,t,n){const r=new Map(t);return e.forEach((e=>{const t=Vl(n,e._type);r.set(t.getKey(e),e)})),r}function ei(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(Zl(n),"i");for(const o of t){const[t,a]=yield e.__await(ql(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=>Xl(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 ti(n){const r=ur(),{multiple:l,onQueryChange:i,onChange:c,onCreate:s,id:d,name:u,disabled:g=!1,onBlur:p}=n,h=zl(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:Gl,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=Rl({selected:a.toArray(n.value||[]),multiple:l,adapters:m,onChange:t.useCallback((function(e){null==c||c({target:{id:d,name:u,value:Kl(e,l)}})}),[d,l,u,c])}),w=t.useRef(),v=Yl({keys:["ARROW_UP","ARROW_DOWN"],onDeactivate(){var e;null===(e=w.current)||void 0===e||e.focus()}}),[$,k]=t.useState(Ql(m,b.selected,l)),y=ei({datasources:f,adapters:m}),x=t.useCallback((function(e){const t=Vl(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?"":Ql(m,b.selected,l)),y.reset(),null==p||p(e)}}}),[m,h.expanded,h.toggle,l,y,b.selected,p]),C=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:Jl}}),[d,$,i,h,y]),j=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(Ql(m,b.selected,l))}),[m,l,b.selected]),{status:y.status,options:y.get(),value:Kl(b.selected,l),query:$,disabled:g,selectable:b,getMenuProps:O,getSelectableOption:x,getOption:P,getOptionProps:_,getTriggerProps:C,getClearProps:j,getDropdownProps:T,getCreatebleProps:z,isCreatable:S}}const ni=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;