@expofp/floorplan 3.7.12 → 3.7.14
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/browser/{Button-Dp-1wfLj.js → Button-4OtQtOG8.js} +6 -6
- package/dist/browser/{CookieConsent-UbVPNP_g.js → CookieConsent-Dm81FEY7.js} +7 -7
- package/dist/browser/{Debug-IpaJ3D5l.js → Debug-CSmIMhir.js} +7 -7
- package/dist/browser/{Demo-BRmtcFaU.js → Demo-Dbx4V8Am.js} +9 -9
- package/dist/browser/{Free-DhkFj4AI.js → Free-DSEXaC59.js} +9 -9
- package/dist/browser/{Gallery-D1B1XcD0.js → Gallery-Dr3GctSL.js} +9 -9
- package/dist/browser/{GpsLoader-C3PgDGHI.js → GpsLoader-Dk4JZZx5.js} +9 -9
- package/dist/browser/{KioskStore-CNzLKtaC.js → KioskStore-W-Hz1t-w.js} +3 -3
- package/dist/browser/{MaplibreAdapter-BTYIiOqg.js → MaplibreAdapter-AoRQBAcj.js} +9 -9
- package/dist/browser/{Modal-DtaZZupi.js → Modal-DWUur9BF.js} +9 -9
- package/dist/browser/{PermissionNotice-K7Q7JAxX.js → PermissionNotice-JyxyrSUM.js} +6 -6
- package/dist/browser/{SetKioskMode-B_G87JoB.js → SetKioskMode-BPOGUgkg.js} +8 -8
- package/dist/browser/{ShowKiosk-jMUnw5gY.js → ShowKiosk-CWLlKXZx.js} +10 -10
- package/dist/browser/{TouchHand-leVYUkuq.js → TouchHand-DZSuCWr6.js} +4 -4
- package/dist/browser/{ViewerMenuPanel-CCDcquI4.js → ViewerMenuPanel-BdY41W_c.js} +8 -8
- package/dist/browser/{add-debug-secret-listener-C-JR9Ndm.js → add-debug-secret-listener-CGOLQUgG.js} +1 -1
- package/dist/browser/{boolean-editor-ZaLkkIhl.js → boolean-editor-DI_vvFTP.js} +9 -9
- package/dist/browser/{bootIntercom-La1Gbr9W.js → bootIntercom-quAPFZAE.js} +2 -2
- package/dist/browser/{browser-uRgYcK1d.js → browser-DlhYrwXK.js} +2 -2
- package/dist/browser/bundle.json +60 -60
- package/dist/browser/{classnames-BOFL_fWL.js → classnames-BVuXstWD.js} +2 -2
- package/dist/browser/{client-Bt5XsM5t.js → client-DUDp3FO6.js} +4 -4
- package/dist/browser/{components-BYOqShlV.js → components-BzdtZ8we.js} +666 -646
- package/dist/browser/{createWayfinding-DetDiQAF.js → createWayfinding-9R1Ad54u.js} +6 -6
- package/dist/browser/{debug-overlay-n-lupv7u.js → debug-overlay-BBkpUI_U.js} +10 -10
- package/dist/browser/{debug-ui-kC5nITo4.js → debug-ui-DPXgzWj0.js} +6 -6
- package/dist/browser/{dist-mddcPm2g.js → dist-BqrsnXFB.js} +3 -3
- package/dist/browser/{dist-DdM03Frp.js → dist-DI7wNQDr.js} +6 -6
- package/dist/browser/{dist-CrGDVpbF.js → dist-DaevYQLF.js} +5 -5
- package/dist/browser/{efp-debug-init-BgMoMxzf.js → efp-debug-init-D8AFmzIs.js} +2 -2
- package/dist/browser/{enum-editor-BzjZBYLo.js → enum-editor-BHdQQ9YQ.js} +11 -11
- package/dist/browser/{es5-DSGL_8Pr.js → es5-aZZVJGwp.js} +2 -2
- package/dist/browser/{event-not-found-BDJhSscy.js → event-not-found-kDjGLV71.js} +1 -1
- package/dist/browser/{exports-DRXpgjkZ.js → exports-BNiZgURk.js} +1 -1
- package/dist/browser/{favicon--Rjz5XT1.js → favicon-BSJGUX6s.js} +1 -1
- package/dist/browser/{fetch-retry.umd-D3bFI5MG.js → fetch-retry.umd-Dro6WyY0.js} +2 -2
- package/dist/browser/{flex-BCKynbBJ.js → flex-DuO5mbMx.js} +5 -5
- package/dist/browser/{floorplan.loader-Dg_H5gYA.js → floorplan.loader-DPjrz3qN.js} +11 -11
- package/dist/browser/{floorplan.ready-IQiDAa_k.js → floorplan.ready-C7fMAZwR.js} +12 -12
- package/dist/browser/{fuse-CkKVo9Fi.js → fuse-BIsJdqTh.js} +2 -2
- package/dist/browser/{i18n-DK1Dorm1.js → i18n-CmO0-klU.js} +452 -456
- package/dist/browser/index.js +12 -12
- package/dist/browser/{is-webview-ChS7Vcfp.js → is-webview-XdlsikhT.js} +1 -1
- package/dist/browser/{jsx-runtime-CZhkgN1G.js → jsx-runtime-Bie-olX0.js} +2 -2
- package/dist/browser/{lib-BH3_jWHa.js → lib-BYZ5PF0i.js} +4 -4
- package/dist/browser/{loadImage-yNWg6TmE.js → loadImage-BwaNRNg0.js} +4 -4
- package/dist/browser/{logDeviceInfo-Cy9P0keY.js → logDeviceInfo-BC1TDW1S.js} +9 -9
- package/dist/browser/{main-CaBol2LY.js → main-NShWO1p7.js} +1 -1
- package/dist/browser/{mobx-BJ71h_AE.js → mobx-Bt0-8mq_.js} +4 -4
- package/dist/browser/{particles.min-CFKXcyO6.js → particles.min-BlWWxwbi.js} +2 -2
- package/dist/browser/{prop-types-B5wpzTbC.js → prop-types-CFnvasfK.js} +2 -2
- package/dist/browser/{react-DxwACvnD.js → react-BoKK15JS.js} +2 -2
- package/dist/browser/{react-dom--YA3ksFS.js → react-dom-C_amxX3E.js} +3 -3
- package/dist/browser/{reset-all-settings-CR2DSRYI.js → reset-all-settings-Dvo1ZxIV.js} +7 -7
- package/dist/browser/{rolldown-runtime-Det1W0r9.js → rolldown-runtime-C99yYids.js} +1 -1
- package/dist/browser/{settings-CWQ6DS_R.js → settings-Dv03O6N0.js} +2 -2
- package/dist/browser/{settings-item-BfFY2ner.js → settings-item-Ck5y4AAY.js} +6 -6
- package/dist/browser/{store-BgkvE4Wv.js → store-BFcLRTV3.js} +12 -12
- package/dist/browser/{string-editor-G-JHYUnb.js → string-editor-k7g-yojj.js} +7 -7
- package/dist/browser/{theme-M47O89pU.js → theme-aANVI2Xd.js} +8 -8
- package/dist/browser/{ui-B3CStk-I.js → ui-C37p2j8b.js} +8 -8
- package/dist/browser/{useRenderTarget-Dhsbyc7R.js → useRenderTarget-kmCBLSgD.js} +4 -4
- package/dist/esm/components/AlertContainer.d.ts +1 -4
- package/dist/esm/components/AlertContainer.js +1 -1
- package/dist/esm/components/AutocompleteContainer.d.ts +4 -0
- package/dist/esm/components/AutocompleteContainer.js +1 -0
- package/dist/esm/components/RoutePlanner/RoutePlannerStartPoint.js +1 -1
- package/dist/esm/components/WayfindingTemplate.d.ts +2 -2
- package/dist/esm/components/WayfindingTemplate.js +1 -1
- package/dist/esm/components/index.d.ts +2 -2
- package/dist/esm/components/index.js +1 -1
- package/dist/esm/ui/Autocomplete/Autocomplete.d.ts +21 -0
- package/dist/esm/ui/Autocomplete/Autocomplete.js +1 -0
- package/dist/esm/ui/Autocomplete/index.d.ts +3 -0
- package/dist/esm/ui/Autocomplete/index.js +1 -0
- package/dist/esm/ui/shared/hooks/useOnClickOutside.d.ts +4 -0
- package/dist/esm/ui/shared/hooks/useOnClickOutside.js +1 -0
- package/dist/esm/utils/browser.js +1 -1
- package/package.json +3 -3
- package/dist/esm/components/Autocomplete.d.ts +0 -17
- package/dist/esm/components/Autocomplete.js +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
export{default as SessionsFiltersModal}from"./SessionsFiltersModal";export{default as Sessions}from"./Sessions";export{default as Tours}from"./Tours";export{default as TourPoints}from"./TourPoints";export{default as ToursList}from"./ToursList";export{default as AlertContainer}from"./AlertContainer";export{default as
|
|
1
|
+
export{default as SessionsFiltersModal}from"./SessionsFiltersModal";export{default as Sessions}from"./Sessions";export{default as Tours}from"./Tours";export{default as TourPoints}from"./TourPoints";export{default as ToursList}from"./ToursList";export{default as AlertContainer}from"./AlertContainer";export{default as AutocompleteContainer}from"./AutocompleteContainer";export{BaseFilterModal}from"./BaseFilterModal";export{default as Badge}from"../ui/Badge";export{default as Bookmarks}from"./Bookmarks";export{default as Visited}from"./Visited";export{default as Booth}from"./Booth/Booth";export{BoothOnHold}from"./Booth/BoothOnHold";export{BoothReserved}from"./Booth/BoothReserved";export{BoothWithoutExhibitor}from"./Booth/BoothWithoutExhibitor";export{default as Button}from"../ui/Button";export{default as Category}from"./Category";export{CategoryFilterModal}from"./CategoryFilterModal";export{default as Checkbox}from"../ui/Checkbox";export{default as CheckboxButton}from"../ui/CheckboxButton";export{default as CookieConsent}from"./CookieConsent";export{default as Controls}from"./Controls";export{default as Demo}from"./Demo";export{default as EntityItemContainer}from"./EntityItemContainer";export{default as EntityList}from"./EntityList";export{default as EntityListRow}from"./EntityListRow";export{default as ErrorBoundary}from"./ErrorBoundary";export{default as Event}from"./Event";export{default as EventBadge}from"./EventBadge";export{SearchButtons}from"./SearchButtons";export{ShortcutsToolbar}from"./Shortcuts";export{ShortcutButton}from"./Shortcuts";export{ShortcutsFiltersButton}from"./Shortcuts";export{default as Exhibitor}from"./Exhibitor";export{default as Filter}from"./Filter";export{default as LevelSelector}from"./LevelSelector";export{default as Gallery}from"./Gallery/Gallery";export{default as HeatmapLegend}from"./HeatmapLegendContainer";export{default as HighlightTextContainer}from"./HighlightTextContainer";export{default as Language}from"./Language";export{default as LanguageRow}from"./LanguageRow";export{default as LargeMessage}from"./LargeMessage";export{default as Layout}from"./Layout";export{default as Spinner}from"../ui/Spinner";export{default as LevelBadge}from"./LevelBadgeContainer";export{default as List}from"./List";export{default as LogoOverlay}from"./LogoOverlay";export{default as MapControls}from"./MapControls";export{default as MarketMaterialList}from"./MarketMaterialList";export{default as Menu}from"./Menu";export{default as MobileToggleButton}from"./MobileToggleButton";export{default as Modal}from"./Modal";export{default as MultiSelectGroups}from"./MultiSelectGroups";export{default as Overlay}from"./Overlay";export{default as OverlayGrip}from"./OverlayGripContainer";export{default as OverlayParticles}from"./OverlayParticles";export{default as Radio}from"../ui/Radio";export{default as RebookingNotes}from"./RebookingNotes";export{default as RebookingRadioGroup}from"./RebookingRadioGroup";export{default as RouteQR}from"./RouteQR";export{default as Schedule}from"./Schedule";export{default as Search}from"./Search";export{default as SearchBox}from"./SearchBox";export{default as Share}from"./Share";export{default as ShowMoreButton}from"./ShowMoreButton";export{default as SidebarActions}from"./SidebarActions";export{default as SimpleRow}from"./SimpleRow";export{useToast}from"./Toast";export{default as ToggleButton}from"../ui/ToggleButton";export{default as ToggleSwitch}from"../ui/ToggleSwitch";export{default as TouchHand}from"../ui/TouchHand";export{default as RoutePlanner}from"./RoutePlanner/RoutePlanner";export{default as Wayfinding}from"./Wayfinding";export{default as WayfindingFloorSelectorContainer}from"./WayfindingFloorSelectorContainer";export{default as WayfindingTemplate}from"./WayfindingTemplate";export{default as WayInformation}from"./WayInformation";export{default as Ws}from"./Ws";export{default as YahRow}from"./YahRow";export{default as ScrollableRow}from"./ScrollableRowContainer";export{default as PermissionNotice}from"../ui/PermissionNotice";
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import './Autocomplete.scss';
|
|
2
|
+
import React from 'react';
|
|
3
|
+
export interface AutocompleteOptionObject {
|
|
4
|
+
value: string;
|
|
5
|
+
label: string;
|
|
6
|
+
exhibitorId?: number;
|
|
7
|
+
}
|
|
8
|
+
export interface AutocompleteProps {
|
|
9
|
+
placeholder: string;
|
|
10
|
+
options: AutocompleteOptionObject[];
|
|
11
|
+
value?: AutocompleteOptionObject;
|
|
12
|
+
showClear?: boolean;
|
|
13
|
+
onChange?: (value: AutocompleteOptionObject | undefined) => void;
|
|
14
|
+
renderTarget?: HTMLElement | null;
|
|
15
|
+
noOptionsLabel: string;
|
|
16
|
+
ariaLabel: string;
|
|
17
|
+
clearLabel: string;
|
|
18
|
+
}
|
|
19
|
+
declare const Autocomplete: ({ placeholder, options, value, showClear, onChange, renderTarget, noOptionsLabel, ariaLabel, clearLabel, }: AutocompleteProps) => React.JSX.Element;
|
|
20
|
+
export default Autocomplete;
|
|
21
|
+
//# sourceMappingURL=Autocomplete.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{jsx as c,jsxs as F,Fragment as oe}from"react/jsx-runtime";import"./Autocomplete.scss";import re from"classnames";import{useEffect as N,useId as le,useMemo as se,useRef as v,useState as O}from"react";import{createPortal as ce}from"react-dom";import ie from"../shared/hooks/useOnClickOutside";const ue=({placeholder:S,options:i,value:k,showClear:A=!1,onChange:T,renderTarget:B,noOptionsLabel:j,ariaLabel:P,clearLabel:K})=>{const E=B,f=v(null),a=v(null),m=v(null),d=v(null),x=le(),L=e=>`${x}-option-${e}`,M=e=>e.value,w=e=>e.label,V=(e,t)=>e.value===t.value&&e.exhibitorId===t.exhibitorId,R=e=>i.findIndex(t=>V(t,e)),z=e=>i.find(t=>V(t,e)),[r,h]=O(null),[n,l]=O(null),[o,u]=O(!1),[g,U]=O({top:0,left:0,width:0}),b=k?z(k):void 0,D=b?R(b):null,I=r!==null?r:b?w(b):"",s=se(()=>{if(!r)return[];const e=r.toLowerCase();return i.filter(t=>w(t).toLowerCase().includes(e))},[r,i]),p=()=>{if(f.current&&o){const e=f.current.getBoundingClientRect();U({top:e.bottom+window.scrollY+4,left:e.left+window.scrollX,width:e.width})}};N(()=>{if(o)return p(),window.addEventListener("scroll",p,!0),window.addEventListener("resize",p),()=>{window.removeEventListener("scroll",p,!0),window.removeEventListener("resize",p)}},[o]),N(()=>{if(n===null||!m.current)return;m.current.querySelectorAll("li")[n]?.scrollIntoView({block:"nearest"})},[n]),ie([f,m],()=>{u(!1)}),N(()=>()=>{d.current&&clearTimeout(d.current)},[]);const _=e=>{h(null),T?.(e)},q=e=>{_(e),l(null),u(!1),a.current?.blur()},$=(e=!1)=>{_(void 0),l(null),e&&a.current?.focus()},X=()=>{u(!0)},Y=()=>{d.current&&clearTimeout(d.current),d.current=setTimeout(()=>{h(null)},200)},G=()=>{if(!I&&n===null||r&&n===null)return;const e=s.length>0?s:i;if(n!==null&&e[n]){const t=e[n];_(t)}l(null),u(!1),a.current?.blur()},H=()=>{!o||n===0||n===null||l(n-1)},J=()=>{if(!o){l(D??0),u(!0);return}const e=s.length>0?s:i,t=n===null?0:n+1;t<e.length&&l(t)},Q=e=>{switch(e.key){case"Enter":G();break;case"ArrowUp":H();break;case"ArrowDown":J();break;case"Delete":$(!0);break;case"Escape":r?(h(null),l(D)):(e.preventDefault(),u(!1),a.current?.blur());break}},W=e=>{h(e.target.value),u(!0),l(null)},Z=()=>{const e=s.length>0?s:i;return r&&s.length===0?c("div",{className:"efp-autocomplete__empty",children:j}):c("ul",{role:"listbox",id:x,children:e.map((t,y)=>{const ee=y===n,C=s.length===0&&y===D,te=ee?"is-focus":C?"is-active":void 0;return c("li",{id:L(y),role:"option","aria-selected":C,className:te,onMouseDown:ne=>ne.preventDefault(),onClick:()=>q(t),children:w(t)},`${M(t)}-${w(t)}`)})})};return F(oe,{children:[c("div",{ref:f,className:re("efp-autocomplete",{"is-open":o,"with-clear":o&&A}),children:F("div",{className:"efp-autocomplete__inner",children:[c("input",{type:"search",className:"efp-autocomplete__input",role:"combobox","aria-label":P,"aria-autocomplete":"list","aria-expanded":o,"aria-controls":o?x:void 0,"aria-activedescendant":o&&n!==null?L(n):void 0,onChange:W,onFocus:X,onBlur:Y,onKeyDown:Q,value:I,placeholder:S,ref:a}),A&&o&&I&&c("button",{type:"button",className:"efp-autocomplete__clear","aria-label":K,onMouseDown:e=>{e.preventDefault(),$(!0)}})]})}),o&&E&&ce(c("div",{ref:m,className:"efp-autocomplete-options",style:{top:`${g.top}px`,left:`${g.left}px`,width:`${g.width}px`},children:c("div",{className:"efp-autocomplete-options__scroll",children:Z()})}),E)]})};export default ue;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export{default}from"./Autocomplete";
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { type RefObject } from 'react';
|
|
2
|
+
declare function useOnClickOutside(refs: RefObject<HTMLElement | null> | RefObject<HTMLElement | null>[], handler: (event: MouseEvent | TouchEvent) => void): void;
|
|
3
|
+
export default useOnClickOutside;
|
|
4
|
+
//# sourceMappingURL=useOnClickOutside.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{useEffect as o,useRef as u}from"react";function a(r,n){const s=u(n);o(()=>{s.current=n},[n]),o(()=>{const t=e=>{(Array.isArray(r)?r:[r]).some(c=>{if(!c.current)return!1;const i=e.target;return c.current.contains(i)||e.composed&&c.current.contains(e.composedPath()[0])})||s.current(e)};return document.addEventListener("click",t),document.addEventListener("touchstart",t),()=>{document.removeEventListener("click",t),document.removeEventListener("touchstart",t)}},[])}export default a;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import r from"bowser";
|
|
1
|
+
import r from"bowser";const o=window.navigator.userAgent,e=r.getParser(o);export default e;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@expofp/floorplan",
|
|
3
|
-
"version": "3.7.
|
|
3
|
+
"version": "3.7.14",
|
|
4
4
|
"repository": {
|
|
5
5
|
"type": "git",
|
|
6
6
|
"url": "https://github.com/expofp/efp-app.git",
|
|
@@ -73,8 +73,8 @@
|
|
|
73
73
|
"tslib": "^2.3.0",
|
|
74
74
|
"uuid": "^9.0.1",
|
|
75
75
|
"zod": "4.3.5",
|
|
76
|
-
"@expofp/debug": "3.7.
|
|
77
|
-
"@expofp/resolve": "3.7.
|
|
76
|
+
"@expofp/debug": "3.7.14",
|
|
77
|
+
"@expofp/resolve": "3.7.14"
|
|
78
78
|
},
|
|
79
79
|
"devDependencies": {
|
|
80
80
|
"@babel/plugin-proposal-decorators": "^8.0.2",
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
import './Autocomplete.scss';
|
|
2
|
-
import React from 'react';
|
|
3
|
-
export interface AutocompleteOptionObject {
|
|
4
|
-
value: string;
|
|
5
|
-
label: string;
|
|
6
|
-
exhibitorId?: number;
|
|
7
|
-
}
|
|
8
|
-
export interface AutocompleteProps {
|
|
9
|
-
placeholder: string;
|
|
10
|
-
options: AutocompleteOptionObject[];
|
|
11
|
-
value?: AutocompleteOptionObject;
|
|
12
|
-
showClear?: boolean;
|
|
13
|
-
onChange?: (value: AutocompleteOptionObject) => void;
|
|
14
|
-
}
|
|
15
|
-
declare const Autocomplete: React.FC<AutocompleteProps>;
|
|
16
|
-
export default Autocomplete;
|
|
17
|
-
//# sourceMappingURL=Autocomplete.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{jsx as u,jsxs as B,Fragment as te}from"react/jsx-runtime";import"./Autocomplete.scss";import ne from"classnames";import{useEffect as j,useRef as I,useState as f}from"react";import{createPortal as re}from"react-dom";import{t as oe}from"../utils/i18n";import se from"../utils/useOnClickOutside";import{useRenderTarget as le}from"../utils/useRenderTarget";const x={ENTER:13,ESCAPE:27,ARROW_UP:38,ARROW_DOWN:40,DELETE:46},ce=({placeholder:K,options:o,value:s,showClear:y=!1,onChange:U})=>{const L=le(),E=I(null),m=I(null),P=I(null),p=I(!1),A=e=>e.value,a=e=>e.label,b=e=>o.findIndex(t=>t.value===e.value&&t.label===e.label),S=e=>{if(e)return o.find(t=>t.value===e.value&&t.label===e.label)},V=()=>{if(!s)return"";const e=S(s);return e?a(e):""},[c,v]=f([]),[D,R]=f(V()),[F,_]=f(s?b(s):null),[n,i]=f(F),[l,d]=f(!1),[T,C]=f(""),[k,$]=f({top:0,left:0,width:0}),w=()=>{if(E.current&&l){const e=E.current.getBoundingClientRect();$({top:e.bottom+window.scrollY+4,left:e.left+window.scrollX,width:e.width})}};j(()=>{if(l)return w(),window.addEventListener("scroll",w,!0),window.addEventListener("resize",w),()=>{window.removeEventListener("scroll",w,!0),window.removeEventListener("resize",w)}},[l]),se([E,P],()=>{d(!1)});const N=e=>{const t=S(e);R(t?a(t):""),C(""),v([]),U?.(e)};j(()=>{if(p.current){p.current=!1;return}const e=s?b(s):-1,t=e>=0?o[e]:null;_(e>=0?e:null),i(e>=0?e:null),R(t?a(t):""),C(""),v([])},[s,o]);const z=e=>{const t=b(e);p.current=!0,N(e),_(t),i(t),d(!1),m.current?.blur()},M=e=>{e.preventDefault(),e.stopPropagation();const t=e.currentTarget,r=t.getAttribute("data-value")||t.innerText,h=t.getAttribute("data-label")||t.innerText,O=o.find(g=>A(g)===r&&a(g)===h)??o.find(g=>A(g)===r);v([]),z(O)},W=(e=!1)=>{N(void 0),_(null),i(null),e&&m.current?.focus()},Y=()=>{d(!0)},X=()=>{setTimeout(()=>{if(p.current){p.current=!1;return}!D&&s&&N(s)},200)},q=()=>{if(!D&&n===null||T&&n===null)return;p.current=!0;const e=c.length>0?c:o;if(n!==null&&e[n]){const t=e[n],r=b(t);N(t),_(r),i(r)}d(!1),m.current?.blur()},G=()=>{!l||n===0||n===null||i(n-1)},H=()=>{if(!l){d(!0);return}const e=c.length>0?c:o,t=n===null?0:n+1;t<e.length&&i(t)},J=e=>{switch(e.keyCode){case x.ENTER:q();break;case x.ARROW_UP:G();break;case x.ARROW_DOWN:H();break;case x.DELETE:W(!0);break;case x.ESCAPE:T||(e.preventDefault(),d(!1),m.current?.blur());break}},Q=e=>{const t=e.target.value,r=t.toLowerCase(),h=t?o.filter(O=>a(O).toLowerCase().includes(r)):[];d(!0),R(t),C(t),i(null),v(h)},Z=()=>{const e=c.length>0?c:o;return T&&c.length===0?u("div",{className:"efp-autocomplete__empty",children:oe("No options")}):u("ul",{children:e.map((t,r)=>{const h=r===n,O=c.length===0&&r===F;return u("li",{className:h?"is-focus":O?"is-active":void 0,"data-value":A(t),"data-label":a(t),onMouseDown:ee=>ee.preventDefault(),onClick:M,children:a(t)},r)})})};return B(te,{children:[u("div",{ref:E,className:ne("efp-autocomplete",{"is-open":l,"with-clear":l&&y}),children:B("div",{className:"efp-autocomplete__inner",children:[u("input",{type:"search",className:"efp-autocomplete__input",onChange:Q,onFocus:Y,onBlur:X,onKeyDown:J,value:D,placeholder:K,ref:m}),y&&l&&D&&u("div",{className:"efp-autocomplete__clear",onMouseDown:e=>{e.preventDefault(),W(!0)}})]})}),l&&L&&re(u("div",{ref:P,className:"efp-autocomplete-options",style:{top:`${k.top}px`,left:`${k.left}px`,width:`${k.width}px`},children:u("div",{className:"efp-autocomplete-options__scroll",children:Z()})}),L)]})};export default ce;
|