@telia-ace/knowledge-widget-components-search 1.1.1-rc.2 → 1.1.1-rc.3

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/index.js CHANGED
@@ -1 +1 @@
1
- "use strict";const e=require("./index-0aec4054.js");require("react/jsx-runtime");require("@emotion/styled");require("@emotion/react");require("react");require("react-transition-group");require("react-dom");require("react-router-dom");module.exports=e.SearchComponent;
1
+ "use strict";const p=require("@telia-ace/knowledge-data-client"),T=require("@telia-ace/knowledge-widget-core"),R=require("@telia-ace/knowledge-widget-ui"),d=require("@telia-ace/widget-utilities"),b=n=>!!n.guideCategoryId||n.tagIds.length>0,A=(n,r)=>{const c=d.categoryTrail(n,r),l=d.getCategoryTrailAsObjects(c,r);return c.map(C=>{var h;return((h=l.get(C))==null?void 0:h.title)||""}).join(" / ")},y=n=>{const r=d.deepClone(n);return r.sort((c,l)=>c.title>l.title?1:-1),r.forEach(c=>{c.items&&(c.items=y(c.items))}),r},m=n=>R.createReactComponent(n,"search",Promise.resolve().then(()=>require("./search-1918060e.js")),r=>{const{events:c}=n.get("$widget"),[l,I]=T.createEventSubscriber(c),C=async a=>{const t=a.tag?a.tag.split(","):[],e=a.guideCategory,s=a.phrase||"",{activeFilterBadges:g}=r.properties(),o=await v({}),i=await w({tagId:a.tag,searchPhrase:s}),f=e?d.findCategoryById(e,i):null,u=t.reduce((P,k)=>{const q=o.find(D=>D.id===k);return q&&P.push(q),P},[]);r.writeProperties({activeFilterBadges:{...g,tag:u,guideCategory:f,tooltip:A(e,i)||null}})};r.actions.create("search",async a=>{const{route:t="search",patchParams:e=!1}=r.properties(),{filters:s,filtersChanged:g,value:o}=a;if(o.length>0||(b(s)||g)&&!s.initial){const i=await n.getAsync("router"),{params:f}=i.getRouteData();let u={guide:void 0,id:void 0,accordion:void 0,contactMethod:void 0};u.phrase=o.length>0?encodeURIComponent(o):"",e&&(u={...f,...u}),(s!=null&&s.guideCategoryId||g)&&(u.guideCategory=s.guideCategoryId||void 0),((s==null?void 0:s.tagIds.length)>0||g)&&(s.tagIds.length>0?u.tag=s.tagIds.join(","):u.tag=void 0),i.navigate(t,d.createParams(u))}}),r.actions.create("clear",(a,t)=>{a.navigateToHome&&n.getAsync("router").then(e=>{const{name:s}=e.getInitialRoute();e.navigate(s)})});const h=()=>n.getAsync("router").then(a=>a.getRouteData().params);r.actions.create("quick-filter:add",async a=>{const{category:t,tagIds:e=[],initial:s}=a,g=await n.getAsync("router"),{params:o}=g.getRouteData(),i=o.tag?o.tag.split(","):[];r.actions.dispatch("search",{filtersChanged:!0,filters:{guideCategoryId:t,tagIds:[...new Set([...i,...e])]},value:o.phrase||""})}),r.actions.create("quick-filter:remove",({types:a,ids:t=[]})=>{const{activeFilterBadges:e}=r.properties();n.getAsync("router").then(s=>{var o;const{params:g}=s.getRouteData();r.actions.dispatch("search",{filtersChanged:!0,filters:{guideCategoryId:a.indexOf("guideCategory")>-1?null:(o=e==null?void 0:e.guideCategory)==null?void 0:o.id,tagIds:a.indexOf("tag")>-1?((e==null?void 0:e.tag)||[]).filter(i=>!(t!=null&&t.includes(i.id))).map(i=>i.id):(e==null?void 0:e.tag.map(i=>i.id))||[]},value:g.phrase||""})})}),r.actions.create("quick-filter:close",()=>r.writeProperties({quickFilter:{items:[],loading:!1,open:!1}})),r.actions.create("quick-filter:open",({symbol:a,type:t})=>(r.writeProperties({quickFilter:{type:t,symbol:a,items:[],loading:!0,open:!0}}),h().then(({tag:e,guideCategory:s,phrase:g})=>{if(t==="guideCategory")return w({tagId:e,searchPhrase:g}).then(o=>{const i=d.deepClone(o);r.writeProperties({quickFilter:{items:y(i),loading:!1}})});if(t==="tag")return v({categories:s,searchPhrase:g}).then(o=>{const i=d.deepClone(o);r.writeProperties({quickFilter:{items:y(i),loading:!1}})})})));const w=a=>p.DataClient.getInstance(n).then(t=>t.fetch(p.DataType.GuideCategories,a)).then(t=>t.categories||[]),v=a=>p.DataClient.getInstance(n).then(t=>t.fetch(p.DataType.TagsOnGuides,a)).then((t=[])=>t);return h().then(a=>{C(a)}),l("router:changed",(a,{current:t})=>{const{routeData:{params:e}}=t;C(e)}),l("data-client:fetched",(a,t)=>{const{filterBadges:e}=r.properties(),s=typeof e=="object"?!!e.tag:!!e;t.type==="match"&&s&&h().then(({tag:g})=>{const{tags:o=[]}=t.response,i=o.find(f=>f.id===g)||null;r.writeProperties({filters:{tag:i}})})}),()=>{I()}});module.exports=m;
package/index.mjs CHANGED
@@ -1,11 +1,163 @@
1
- import { H as d } from "./index-7592842b.mjs";
2
- import "react/jsx-runtime";
3
- import "@emotion/styled";
4
- import "@emotion/react";
5
- import "react";
6
- import "react-transition-group";
7
- import "react-dom";
8
- import "react-router-dom";
1
+ import { DataClient as P, DataType as R } from "@telia-ace/knowledge-data-client";
2
+ import { createEventSubscriber as k } from "@telia-ace/knowledge-widget-core";
3
+ import { createReactComponent as q } from "@telia-ace/knowledge-widget-ui";
4
+ import { createParams as A, deepClone as p, findCategoryById as D, categoryTrail as j, getCategoryTrailAsObjects as O } from "@telia-ace/widget-utilities";
5
+ const x = (g) => !!g.guideCategoryId || g.tagIds.length > 0, F = (g, r) => {
6
+ const c = j(g, r), d = O(c, r);
7
+ return c.map((f) => {
8
+ var l;
9
+ return ((l = d.get(f)) == null ? void 0 : l.title) || "";
10
+ }).join(" / ");
11
+ }, y = (g) => {
12
+ const r = p(g);
13
+ return r.sort((c, d) => c.title > d.title ? 1 : -1), r.forEach((c) => {
14
+ c.items && (c.items = y(c.items));
15
+ }), r;
16
+ }, U = (g) => q(
17
+ g,
18
+ "search",
19
+ import("./search-ec5355e8.mjs"),
20
+ (r) => {
21
+ const { events: c } = g.get("$widget"), [d, C] = k(c), f = async (a) => {
22
+ const e = a.tag ? a.tag.split(",") : [], t = a.guideCategory, s = a.phrase || "", { activeFilterBadges: n } = r.properties(), o = await v({}), i = await I({
23
+ tagId: a.tag,
24
+ searchPhrase: s
25
+ }), h = t ? D(
26
+ t,
27
+ i
28
+ ) : null, u = e.reduce((m, T) => {
29
+ const w = o.find((b) => b.id === T);
30
+ return w && m.push(w), m;
31
+ }, []);
32
+ r.writeProperties({
33
+ activeFilterBadges: {
34
+ ...n,
35
+ tag: u,
36
+ guideCategory: h,
37
+ tooltip: F(t, i) || null
38
+ }
39
+ });
40
+ };
41
+ r.actions.create(
42
+ "search",
43
+ async (a) => {
44
+ const { route: e = "search", patchParams: t = !1 } = r.properties(), { filters: s, filtersChanged: n, value: o } = a;
45
+ if (o.length > 0 || (x(s) || n) && !s.initial) {
46
+ const i = await g.getAsync("router"), { params: h } = i.getRouteData();
47
+ let u = {
48
+ guide: void 0,
49
+ id: void 0,
50
+ accordion: void 0,
51
+ contactMethod: void 0
52
+ };
53
+ u.phrase = o.length > 0 ? encodeURIComponent(o) : "", t && (u = {
54
+ ...h,
55
+ ...u
56
+ }), (s != null && s.guideCategoryId || n) && (u.guideCategory = s.guideCategoryId || void 0), ((s == null ? void 0 : s.tagIds.length) > 0 || n) && (s.tagIds.length > 0 ? u.tag = s.tagIds.join(",") : u.tag = void 0), i.navigate(e, A(u));
57
+ }
58
+ }
59
+ ), r.actions.create("clear", (a, e) => {
60
+ a.navigateToHome && g.getAsync("router").then((t) => {
61
+ const { name: s } = t.getInitialRoute();
62
+ t.navigate(s);
63
+ });
64
+ });
65
+ const l = () => g.getAsync("router").then((a) => a.getRouteData().params);
66
+ r.actions.create(
67
+ "quick-filter:add",
68
+ async (a) => {
69
+ const { category: e, tagIds: t = [], initial: s } = a, n = await g.getAsync("router"), { params: o } = n.getRouteData(), i = o.tag ? o.tag.split(",") : [];
70
+ r.actions.dispatch("search", {
71
+ filtersChanged: !0,
72
+ filters: {
73
+ guideCategoryId: e,
74
+ tagIds: [.../* @__PURE__ */ new Set([...i, ...t])]
75
+ },
76
+ value: o.phrase || ""
77
+ });
78
+ }
79
+ ), r.actions.create(
80
+ "quick-filter:remove",
81
+ ({ types: a, ids: e = [] }) => {
82
+ const { activeFilterBadges: t } = r.properties();
83
+ g.getAsync("router").then((s) => {
84
+ var o;
85
+ const { params: n } = s.getRouteData();
86
+ r.actions.dispatch("search", {
87
+ filtersChanged: !0,
88
+ filters: {
89
+ guideCategoryId: a.indexOf("guideCategory") > -1 ? null : (o = t == null ? void 0 : t.guideCategory) == null ? void 0 : o.id,
90
+ tagIds: a.indexOf("tag") > -1 ? ((t == null ? void 0 : t.tag) || []).filter((i) => !(e != null && e.includes(i.id))).map((i) => i.id) : (t == null ? void 0 : t.tag.map((i) => i.id)) || []
91
+ },
92
+ value: n.phrase || ""
93
+ });
94
+ });
95
+ }
96
+ ), r.actions.create("quick-filter:close", () => r.writeProperties({
97
+ quickFilter: {
98
+ items: [],
99
+ loading: !1,
100
+ open: !1
101
+ }
102
+ })), r.actions.create("quick-filter:open", ({ symbol: a, type: e }) => (r.writeProperties({
103
+ quickFilter: {
104
+ type: e,
105
+ symbol: a,
106
+ items: [],
107
+ loading: !0,
108
+ open: !0
109
+ }
110
+ }), l().then(({ tag: t, guideCategory: s, phrase: n }) => {
111
+ if (e === "guideCategory")
112
+ return I({
113
+ tagId: t,
114
+ searchPhrase: n
115
+ }).then((o) => {
116
+ const i = p(o);
117
+ r.writeProperties({
118
+ quickFilter: {
119
+ items: y(i),
120
+ loading: !1
121
+ }
122
+ });
123
+ });
124
+ if (e === "tag")
125
+ return v({
126
+ categories: s,
127
+ searchPhrase: n
128
+ }).then((o) => {
129
+ const i = p(o);
130
+ r.writeProperties({
131
+ quickFilter: {
132
+ items: y(i),
133
+ loading: !1
134
+ }
135
+ });
136
+ });
137
+ })));
138
+ const I = (a) => P.getInstance(g).then(
139
+ (e) => e.fetch(R.GuideCategories, a)
140
+ ).then(
141
+ (e) => e.categories || []
142
+ ), v = (a) => P.getInstance(g).then((e) => e.fetch(R.TagsOnGuides, a)).then((e = []) => e);
143
+ return l().then((a) => {
144
+ f(a);
145
+ }), d("router:changed", (a, { current: e }) => {
146
+ const {
147
+ routeData: { params: t }
148
+ } = e;
149
+ f(t);
150
+ }), d("data-client:fetched", (a, e) => {
151
+ const { filterBadges: t } = r.properties(), s = typeof t == "object" ? !!t.tag : !!t;
152
+ e.type === "match" && s && l().then(({ tag: n }) => {
153
+ const { tags: o = [] } = e.response, i = o.find((h) => h.id === n) || null;
154
+ r.writeProperties({ filters: { tag: i } });
155
+ });
156
+ }), () => {
157
+ C();
158
+ };
159
+ }
160
+ );
9
161
  export {
10
- d as default
162
+ U as default
11
163
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@telia-ace/knowledge-widget-components-search",
3
- "version": "1.1.1-rc.2",
3
+ "version": "1.1.1-rc.3",
4
4
  "main": "./index.js",
5
5
  "types": "./index.d.ts",
6
6
  "exports": {
@@ -10,12 +10,12 @@
10
10
  }
11
11
  },
12
12
  "dependencies": {
13
- "@telia-ace/knowledge-widget-core": "^1.1.1-rc.2",
14
- "@telia-ace/knowledge-widget-ui": "^1.1.1-rc.2",
15
- "@telia-ace/widget-utilities": "^1.1.1-rc.2",
16
- "@telia-ace/knowledge-data-client": "^1.1.1-rc.2",
17
- "@telia-ace/widget-routing": "^1.1.1-rc.2",
18
- "@telia-ace/widget-types-grid": "^1.1.1-rc.2",
13
+ "@telia-ace/knowledge-widget-core": "^1.1.1-rc.3",
14
+ "@telia-ace/knowledge-widget-ui": "^1.1.1-rc.3",
15
+ "@telia-ace/widget-utilities": "^1.1.1-rc.3",
16
+ "@telia-ace/knowledge-data-client": "^1.1.1-rc.3",
17
+ "@telia-ace/widget-routing": "^1.1.1-rc.3",
18
+ "@telia-ace/widget-types-grid": "^1.1.1-rc.3",
19
19
  "@webprovisions/platform": "^1.1.4"
20
20
  },
21
21
  "peerDependencies": {
@@ -0,0 +1,220 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const m=require("react/jsx-runtime"),T=require("@emotion/react"),z=require("@emotion/styled"),r=require("@telia-ace/knowledge-widget-ui"),ne=require("@telia-ace/widget-types-grid"),F=require("@telia-ace/widget-utilities"),h=require("react"),oe=({text:e,className:t,filterType:s,handleClick:l,deleteAriaLabel:d="",...u})=>{const o=h.useRef(),[S,C]=h.useState(document.activeElement===o.current);return m.jsxs(r.Text,{className:F.appendClassNames(t,"humany-filter-badge",S?"humany-filter-badge-focused":""),onKeyDown:$=>{$.key==="Enter"&&l($,s)},children:[e,m.jsx(r.Link,{...u,ref:o,tabIndex:0,onFocus:()=>{C(!0)},onBlur:()=>{C(!1)},role:"button","aria-label":d.replace("{{item}}",e),onClick:$=>l($,s),children:m.jsx(r.SymbolBadge,{size:13,symbol:{type:"Svg",content:"close"}})})]})},re=({inputHasFocus:e,searchContainerRef:t,showTag:s,showGuideCategory:l,position:d})=>{const{activeFilterBadges:u,deleteFilterBadgeAriaLabel:o=""}=r.useProperties(),S=r.useDispatch(),{name:C,params:$}=r.useRouteData(),[A,p]=h.useState(!1),v=h.useCallback(a=>{const{key:c}=a;["ArrowLeft","ArrowRight"].indexOf(c)===-1&&p(!1)},[]);r.useEventListener("keydown",v,window),r.useEventListener("click",v,window);const{guideCategory:E,tag:y,tooltip:w}=u||{},f=a=>{const c=a.querySelectorAll(".humany-filter-badge > a");return{badges:c,index:Array.from(c).findIndex(b=>document.activeElement===b)}},n=h.useCallback((a,c,b)=>{a.preventDefault(),S("quick-filter:remove",{types:[c],ids:[b]})},[S]),g=(a,c)=>{if(!t)return;const{badges:b,index:k}=f(t);if(b.length){let I=null;a==="left"?k===-1?I=b.item(b.length-1):k>0&&(I=b.item(k-1)):a==="right"&&(k===b.length-1?c&&c.focus():b.item(k+1)&&(I=b.item(k+1))),I&&(I.focus(),p(!0))}};r.useKeyPress("ArrowLeft",h.useCallback(()=>{if(!t)return;const{index:a}=f(t);if(e||a>-1){const c=t.querySelector('[data-type="search"]'),b=c&&c.selectionStart!==null&&c.selectionStart<=0,k=a>-1;(b||k)&&g("left",c)}},[e,t])),r.useKeyPress("ArrowRight",h.useCallback(()=>{if(!t)return;const{index:a}=f(t);if(a>-1){const c=t.querySelector('[data-type="search"]');a>-1&&g("right",c)}},[t])),r.useKeyPress("Backspace",h.useCallback(a=>{if(!t)return;let c=[];const{index:b}=f(t),k=t.querySelector('[data-type="search"]');if(b>-1)b===0?l?c=["guideCategory"]:s&&(c=["tag"]):b===1&&(c=["tag"]);else{const x=document.activeElement===k;k&&k.selectionStart!==null&&k.selectionStart<=0&&x&&(u!=null&&u.tag.length?c=["tag"]:u!=null&&u.guideCategory&&(c=["guideCategory"]))}if(c.length>0){a.preventDefault();let x;if(c.includes("tag")){const D=u==null?void 0:u.tag.at(-1);x=D==null?void 0:D.id}S("quick-filter:remove",{types:c,ids:[x]})}},[t,u,s,l,S]));const i=h.useCallback(a=>a==="guideCategory"&&E&&l?m.jsx(X,{text:`@${E.title}`,routeName:C,filterType:"guideCategory",handleClick:n,deleteAriaLabel:o,params:{...$,guideCategory:void 0}}):a==="tag"&&(y!=null&&y.length)&&s?y.map(c=>{const b=y.reduce((k,I)=>(I.id!==c.id&&k.push(I.id),k),[]);return m.jsx(X,{className:"humany-filter-badge",text:`#${c.title}`,routeName:C,filterType:"tag",handleClick:k=>n(k,"tag",c.id),deleteAriaLabel:o,params:{...$,tag:b}},c.id)}):null,[E,y,C,$,l,s,A,n]);return!E&&!y?null:m.jsxs(ie,{className:"humany-filter-badges",position:d,children:[E&&w?m.jsx(r.Tooltip,{content:m.jsx(m.Fragment,{children:w}),sticky:!1,children:i("guideCategory")}):i("guideCategory"),y&&i("tag")]})},ie=z.div`
2
+ display: flex;
3
+ align-items: center;
4
+ flex-wrap: wrap;
5
+
6
+ ${e=>{var t,s;return e.position==="inside"?T.css`
7
+ &:not(:first-child) {
8
+ margin: 0 0 0 ${(t=e.theme.sizes)==null?void 0:t.normal};
9
+ }
10
+ `:T.css`
11
+ margin: ${(s=e.theme.sizes)==null?void 0:s.small} 0 0 0;
12
+ span:first-child {
13
+ margin-left: 0;
14
+ }
15
+ `}}
16
+ `,X=z(oe)`
17
+ display: flex;
18
+ align-items: center;
19
+ padding: ${e=>{var t,s;return`${(t=e.theme.sizes)==null?void 0:t.small} calc(${(s=e.theme.sizes)==null?void 0:s.normal}/2) `}};
20
+ background-color: ${e=>{var t;return(t=e.theme.colors)==null?void 0:t.primary}};
21
+ border-radius: ${e=>e.theme.borderRadius};
22
+ font-weight: 300;
23
+ font-size: ${e=>{var t;return(t=e.theme.fonts)==null?void 0:t.normal}};
24
+ font-style: italic;
25
+ color: #ffffff;
26
+ text-decoration: none;
27
+ white-space: nowrap;
28
+
29
+ margin: calc(${e=>{var t;return(t=e.theme.sizes)==null?void 0:t.small}} / 2);
30
+
31
+ &.humany-filter-badge-focused:focus-within {
32
+ ${r.borderTabStyle}
33
+ background-color: transparent;
34
+
35
+ svg {
36
+ path {
37
+ stroke: ${e=>{var t;return(t=e.theme.colors)==null?void 0:t.primary}};
38
+ }
39
+ }
40
+ a {
41
+ outline: none;
42
+ }
43
+ }
44
+
45
+ svg {
46
+ width: 17px;
47
+ height: 11px;
48
+ margin: 1px 0 0 ${e=>{var t;return(t=e.theme.sizes)==null?void 0:t.small}};
49
+ path {
50
+ stroke: #ffffff;
51
+ stroke-width: 2px;
52
+ }
53
+ order: 1;
54
+ }
55
+ `,N=(e,t)=>!t||!e?!0:e.toLowerCase().indexOf(t.toLowerCase())>-1,ae=(e=[],t,s)=>{if(!s)return e;const l=F.deepClone(e);if(t==="tag")return l.filter(o=>N(o.title,s));const d=ce(l,s);return Y(l,o=>d.indexOf(o.id)>-1)},Y=(e,t)=>e.filter(s=>(s.items&&s.items.length&&(s.items=Y(s.items,t)),t(s))),ce=(e,t)=>{const l=Z(e).filter(u=>N(u.title,t)).map(u=>u.id);let d=[];return l.forEach(u=>{const o=F.categoryTrail(u,e);d=d.concat(o)}),d},Z=e=>{let t=[];return e.forEach(s=>{t.push(s),Array.isArray(s.items)&&(t=t.concat(Z(s.items)))}),t},K=e=>{const t=Array.from((e==null?void 0:e.getElementsByTagName("A"))||[]).filter(s=>s.getAttribute("disabled")===null);return{anchors:t,focusedIndex:t.findIndex(s=>document.activeElement===s)}},le=e=>e?e.querySelector('[data-type="search"], input[type="search"]'):null,W=e=>{if(!e)return;const t=le(e);t&&t.focus()},ue=({filterPhrase:e,items:t,filterType:s,filterContainer:l,searchContainer:d,inputHasFocus:u})=>{const[o,S]=h.useState(t||[]),[C,$]=h.useState(null),A=r.useDispatch(),{activeFilterBadges:p,quickFilters:v}=r.useProperties(),E=typeof v=="object"&&!!v.autoSelect||typeof v=="boolean"&&!!v;h.useEffect(()=>{S(ae(t,s,e))},[e,s,t]),h.useEffect(()=>{var f;if(l){const{anchors:n}=K(l),g=(f=n[0])==null?void 0:f.getAttribute("data-id");g&&$(g)}},[o,l]);const y=h.useCallback((f,n)=>{let g=((p==null?void 0:p.tag)||[]).map(a=>a.id);n==="tag"&&f.id&&(g=g.includes(f.id)?g.filter(a=>a!==f.id):[...g,f.id]);const i={category:p!=null&&p.guideCategory?p.guideCategory.id:void 0,tagIds:g};n==="guideCategory"&&(i.category=f.id),A("quick-filter:add",i)},[p,A]),w=f=>f==="guideCategory"?{renderItem:(n,g)=>m.jsx(J,{autoSelect:E&&u&&n.id===C,disabled:!N(n.title,e),tabIndex:N(n.title,e)?0:-1,onKeyDown:i=>{i.key==="Enter"&&y(n,f)},"data-level":g,onClick:()=>{y(n,f)},"data-id":n.id,children:m.jsx(G,{title:n.title,phrase:e,matches:N(n.title,e)})})}:{renderLi:!0,renderItem:n=>m.jsx(J,{autoSelect:E&&u&&n.id===C,onKeyDown:g=>{g.key==="Enter"&&y(n,f)},onClick:()=>{y(n,f)},"data-id":n.id,children:m.jsx(G,{symbol:"#",title:n.title,phrase:e,matches:N(n.title,e)})})};return r.useEventListener("keydown",f=>{var I;const{key:n}=f;if(!l||!(n==="ArrowDown"||n==="ArrowUp"||n==="Enter"))return;const{anchors:g,focusedIndex:i}=K(l);if(n==="Enter"){if(u&&E){const x=(I=g[0])==null?void 0:I.getAttribute("data-id");x&&y({id:x},s)}return}const a=()=>{var x;return(x=g[0])==null?void 0:x.focus()},c=()=>{var x;return(x=g[g.length-1])==null?void 0:x.focus()},b=()=>{var x;return(x=g[i+1])==null?void 0:x.focus()},k=()=>{var x;return(x=g[i-1])==null?void 0:x.focus()};u?(f.preventDefault(),n==="ArrowDown"?a():c()):i>-1&&(f.preventDefault(),n==="ArrowDown"?g.length>i+1?b():W(d):i-1<0?W(d):k())},window),m.jsx(r.ItemTree,{tree:o,renderEmpty:!1,ulProps:{role:"listbox"},liProps:{role:"option"},...w(s)})},G=({title:e,phrase:t,matches:s,symbol:l=""})=>{const d=()=>{if(!s||!t)return[e];const C=e.toLowerCase().indexOf(t.toLowerCase()),$=e.substr(0,C),A=e.slice(C,C+t.length),p=e.substr(C+t.length);return[$,A,p]},[u,o,S]=d();return m.jsxs(r.Text,{children:[l,u,o?m.jsx("strong",{children:o}):null,S||null]})},de=T.css`
56
+ opacity: 0.5;
57
+ pointer-events: none;
58
+ `,H=e=>{var t,s;return T.css`
59
+ background-color: ${(t=e.theme.colors)==null?void 0:t.text};
60
+ color: #ffffff;
61
+ outline: none;
62
+
63
+ span:first-child {
64
+ border-color: ${(s=e.theme.colors)==null?void 0:s.text};
65
+ }
66
+ `},J=z(r.Link)`
67
+ display: block;
68
+ text-decoration: none;
69
+ font-size: ${e=>{var t;return(t=e.theme.fonts)==null?void 0:t.normal}};
70
+
71
+ ${e=>e.disabled&&de}
72
+ color: ${e=>{var t;return(t=e.theme.colors)==null?void 0:t.text}};
73
+ background-color: transparent;
74
+
75
+ span {
76
+ display: block;
77
+ ${e=>{var t,s,l,d;return e["data-level"]?`padding: calc(${(t=e.theme.sizes)==null?void 0:t.normal} / 2) ${(s=e.theme.sizes)==null?void 0:s.normal};`:`padding: calc(${(l=e.theme.sizes)==null?void 0:l.normal} / 2) ${(d=e.theme.sizes)==null?void 0:d.medium}; `}}
78
+ ${e=>e["data-level"]&&"border-left: 2px solid"}
79
+ }
80
+
81
+ span:first-child {
82
+ border-color: #e7e7e7;
83
+ }
84
+
85
+ ${e=>{var t;return e["data-level"]&&`padding: 0 calc(${(t=e.theme.sizes)==null?void 0:t.medium} * ${e["data-level"]});`}}
86
+
87
+ ${e=>e.autoSelect&&H}
88
+
89
+ &:hover,
90
+ &:focus {
91
+ ${H}
92
+ }
93
+ `,fe=({phrase:e="",inputHasFocus:t,searchContainerRef:s})=>{const{quickFilter:l={open:!1,loading:!1,symbol:"",type:"",items:[]},activeFilterBadges:d,noMatchesLabel:u="No matching items"}=r.useProperties(),[o,S]=r.useScroll(!0),C=r.useContainer(),{events:$}=C.get("$widget"),A=h.useRef(),p=h.useCallback(i=>(i&&i.addEventListener("keydown",()=>{K(i).focusedIndex>-1&&$.subscribeOnce("router:changed",()=>{W(s)})},!0),A.current=i,i),[s]),{items:v=[],symbol:E,type:y,open:w,loading:f}=l,n=h.useMemo(()=>{const i=((d==null?void 0:d.tag)||[]).map(a=>a.id);return v.filter(a=>!i.includes(a.id))},[v,d]);if(!w||!E)return null;const g=e.slice(e.indexOf(E)+1);return m.jsxs(ge,{ref:p,"data-loading":f,className:F.appendClassNames("humany-quick-filter-dropdown",[y==="guideCategory","humany-quick-filter-guide-categories"],[y==="tag","humany-quick-filter-tags"]),children:[m.jsx(he,{className:"humany-quick-filter-dropdown-inner",css:o,ref:S,children:n.length>0?m.jsx(ue,{filterType:y,items:n,filterPhrase:g,filterContainer:S.current,searchContainer:s,inputHasFocus:t}):m.jsx(me,{children:u})}),m.jsx(r.Loader,{loading:f})]})},ge=z.div`
94
+ ${e=>r.contentBox(e)};
95
+ position: absolute;
96
+ top: calc(100% + ${e=>{var t;return(t=e.theme.sizes)==null?void 0:t.normal}});
97
+ left: 0;
98
+ right: 0;
99
+ z-index: 1;
100
+ overflow: hidden;
101
+ `,he=z.div`
102
+ max-height: 300px;
103
+ overflow: auto;
104
+ padding: ${e=>{var t;return(t=e.theme.sizes)==null?void 0:t.medium}} 0;
105
+ ${e=>e.css}
106
+ ul {
107
+ list-style: none;
108
+ padding: 0;
109
+ margin: 0;
110
+ }
111
+ li div {
112
+ ${e=>{var t;return`margin: ${(t=e.theme.sizes)==null?void 0:t.normal} 0;`}}
113
+ }
114
+ `,me=z.p`
115
+ margin: 0 ${e=>{var t;return(t=e.theme.sizes)==null?void 0:t.normal}};
116
+ color: ${e=>{var t;return(t=e.theme.colors)==null?void 0:t.text}};
117
+ `,P=(e,t)=>{if(e&&!t||!e&&t)return!0;if(e&&t){if(!Array.isArray(e)&&!Array.isArray(t)){if(e.id!==t.id)return!0}else if(!((l,d)=>l.length===d.length?l.every((u,o)=>u===d[o]):!1)(e,t))return!0}return!1},pe=(e,t={},s=!0)=>{const l=r.useDispatch(),{quickFilters:d=!1,quickFilter:u={open:!1},activeFilterBadges:o,filterBadges:S=!1,incremental:C=600}=r.useProperties(),$=r.useDebounce(e,typeof C=="boolean"?600:C),A=r.usePrevious($),p=r.usePrevious(o),v=h.useRef(null),E=h.useCallback((n="")=>{var g;if(S){const i=P(o==null?void 0:o.guideCategory,p==null?void 0:p.guideCategory)||P(o==null?void 0:o.tag,p==null?void 0:p.tag);return l("search",{value:n,filtersChanged:i,filters:{tagIds:((o==null?void 0:o.tag)||[]).map(a=>a.id),guideCategoryId:((g=o==null?void 0:o.guideCategory)==null?void 0:g.id)||null}})}return l("search",{value:n})},[l,o]),y=h.useCallback(n=>{l("clear",{navigateToHome:n})},[l]),w=n=>d?n.replace(/([@#].*)/g,""):n,f=h.useCallback(n=>{if(u.open&&n.preventDefault){n.preventDefault();return}const g=document.activeElement,i=v.current&&typeof v.current.contains=="function"?v.current.contains(g):!1,a=w(e);typeof n=="boolean"&&n||a.length&&i||o!=null&&o.guideCategory||o!=null&&o.tag.length&&i?E(a):y(i)},[v,e,u,y,o,E]);return h.useEffect(()=>{const n=P(o==null?void 0:o.guideCategory,p==null?void 0:p.guideCategory)||P(o==null?void 0:o.tag,p==null?void 0:p.tag),g=$&&w($),i=A&&w(A);typeof i<"u"&&i!==g&&g!==t.phrase&&s&&!u.open&&f(n)},[$,u.open,o,f]),h.useEffect(()=>{if(e&&d){const n=typeof d=="boolean"&&!!d||typeof d=="object"&&!!d.guideCategory,g=typeof d=="boolean"&&!!d||typeof d=="object"&&!!d.tag;n&&e.indexOf("@")===e.length-1&&l("quick-filter:open",{type:"guideCategory",symbol:"@"}),g&&e.indexOf("#")===e.length-1&&l("quick-filter:open",{type:"tag",symbol:"#"})}u.open&&e.indexOf("@")===-1&&e.indexOf("#")===-1&&l("quick-filter:close")},[e]),[f,y,v]},ye=({className:e,...t})=>{const{showSearchButton:s,showClearButton:l,role:d="search",autoFocus:u,placeholder:o,searchButtonLabel:S,clearButtonLabel:C,ariaLabel:$,route:A="search",incremental:p=!0,showChildren:v=!1,quickFilter:E,quickFilters:y,filterBadges:w}=r.useProperties(),{params:f}=r.useRouteData(),[n,g]=h.useState(!1),[i,a]=h.useState(f.phrase||""),[c,b]=h.useState({guideCategory:!1,tag:!1}),k=r.useContainer(),I=r.useChildren(),x=r.useDispatch(),{position:D="inside"}=typeof w=="object"?w:{};h.useEffect(()=>{const{guideCategory:j,tag:q}=f,L=typeof w=="object"?!!w.guideCategory:!!w,se=typeof w=="object"?!!w.tag:!!w;b({guideCategory:L&&!!j,tag:se&&!!q})},[w,f]),r.useWidgetEvent("router:changed",()=>{if(E){const{open:j,symbol:q}=E;if(j){if(q){const L=i.replace(i.slice(i.indexOf(q)),"");a(L)}x("quick-filter:close")}}},[E,i,a,x]);const[M,O,B]=pe(i,f,!!p);h.useEffect(()=>{a(f.phrase||"")},[f.phrase]);const _=h.useCallback(j=>{a(j)},[a]),R=h.useCallback(()=>{x("quick-filter:close").then(()=>O(!0))},[x,O]),V=h.useCallback(()=>{var j,q;u&&!n&&((q=(j=B.current)==null?void 0:j.getElementsByTagName("input")[0])==null||q.focus())},[u,n,B]),ee=h.useCallback(()=>{k.getAsync("router").then(j=>{const q=j.getInitialRoute(),L=j.getRouteData();(q==null?void 0:q.name)===L.name&&(q==null?void 0:q.name)!==A?a(""):O(!0)})},[k,a,O]),U=j=>{if(j!==D)return null;if(c.guideCategory||c.tag)return m.jsx(re,{position:j,inputHasFocus:n,showGuideCategory:c.guideCategory,showTag:c.tag,searchContainerRef:B.current})};r.useTransitionEnd(V);const Q=l&&(c.guideCategory||c.tag||i),te=y?r.convertToStringAttributes({role:"combobox","aria-autocomplete":"list",autoComplete:"off","aria-haspopup":"listbox"}):{};return m.jsxs(be,{...t,ref:B,role:d,className:F.appendClassNames(e,"humany-search"),"data-has-phrase":!!i,"data-has-focus":n,"data-has-search-symbol":s?"true":"false",children:[m.jsxs(xe,{action:".",onSubmit:j=>{var q,L;j.preventDefault(),(L=(q=B.current)==null?void 0:q.getElementsByTagName("input")[0])==null||L.blur()},"data-has-focus":n,children:[s&&m.jsx(ke,{"aria-label":S,type:"submit",title:S,disabled:!i,onClick:M,"data-has-phrase":!!i,"data-has-focus":n,children:m.jsx(r.SymbolBadge,{size:32,symbol:{type:"Svg",content:"search"}})}),U("inside"),m.jsx(r.Input,{crossOrigin:void 0,type:"search","aria-label":$,...te,placeholder:c.guideCategory||c.tag?"":o,onFocusChange:g,onEscape:R,onEnter:M,onChange:_,value:i}),Q&&m.jsx(Ce,{"aria-label":C,type:"reset",hasFocus:n,title:C,onClick:ee,children:m.jsx(r.SymbolBadge,{size:27,symbol:{type:"Svg",content:"clear"}})}),v&&!Q&&I.map(j=>m.jsx(ne.Component,{id:j.id,branch:"default"},j.id)),m.jsx(fe,{inputHasFocus:n,phrase:i,searchContainerRef:B.current})]}),U("below")]})},be=z.div`
118
+ ${r.contentBox};
119
+ width: 100%;
120
+ padding: ${e=>{var t;return(t=e.theme.sizes)==null?void 0:t.large}};
121
+
122
+ input {
123
+ background-color: transparent;
124
+ border: none;
125
+ outline: none;
126
+ min-width: 25%;
127
+ flex: 1;
128
+ font-size: ${e=>{var t;return(t=e.theme.fonts)==null?void 0:t.normal}};
129
+ font-weight: 300;
130
+ font-style: italic;
131
+ padding: 1em 0;
132
+ color: ${e=>{var t;return(t=e.theme.colors)==null?void 0:t.text}};
133
+ -webkit-appearance: none;
134
+
135
+ ${e=>{var t;return e["data-has-search-symbol"]==="true"&&`text-indent: ${(t=e.theme.sizes)==null?void 0:t.normal};`}}
136
+
137
+ ::placeholder {
138
+ color: ${e=>{var t;return(t=e.theme.colors)==null?void 0:t.text}};
139
+ }
140
+ /* removes the 'X' from IE */
141
+ &[type='search']::-ms-clear {
142
+ display: none;
143
+ width: 0;
144
+ height: 0;
145
+ }
146
+ &[type='search']::-ms-reveal {
147
+ display: none;
148
+ width: 0;
149
+ height: 0;
150
+ }
151
+
152
+ /* removes the 'X' from Chrome */
153
+ &[type='search']::-webkit-search-decoration,
154
+ &[type='search']::-webkit-search-cancel-button,
155
+ &[type='search']::-webkit-search-results-button,
156
+ &[type='search']::-webkit-search-results-decoration {
157
+ display: none;
158
+ }
159
+
160
+ &:focus {
161
+ outline: none;
162
+ }
163
+ }
164
+
165
+ button {
166
+ background: transparent;
167
+ border: none;
168
+ padding: 0;
169
+ font-size: ${e=>{var t;return(t=e.theme.fonts)==null?void 0:t.large}};
170
+ transition: color 200ms ease-out;
171
+ color: ${e=>{var t;return e["data-has-focus"]||e["data-has-phrase"]?(t=e.theme.colors)==null?void 0:t.primary:"#000000"}};
172
+ cursor: pointer;
173
+ > svg {
174
+ height: 100%;
175
+ }
176
+ }
177
+ `,xe=z.form`
178
+ display: flex;
179
+ flex-wrap: nowrap;
180
+ align-items: center;
181
+ border: ${e=>e.theme.inputBorder};
182
+ border-radius: ${e=>e.theme.borderRadius};
183
+ background-color: #ffffff;
184
+ position: relative;
185
+ padding: 0 ${e=>{var t;return(t=e.theme.sizes)==null?void 0:t.normal}};
186
+
187
+ ${e=>{var t,s;return e["data-has-focus"]&&T.css`
188
+ ${(t=e.theme.accessibility)!=null&&t.isTabbing?r.borderTabStyle(e):`
189
+ border-color: ${(s=e.theme.colors)==null?void 0:s.primary};
190
+ outline: none;
191
+ input {
192
+ outline: none;
193
+ }
194
+ `}
195
+ `}};
196
+ `,ke=z(r.Button)`
197
+ padding: 0;
198
+ height: 2em;
199
+
200
+ svg {
201
+ circle,
202
+ line {
203
+ stroke: ${e=>{var t;return e["data-has-focus"]?(t=e.theme.colors)==null?void 0:t.primary:"#000000"}};
204
+ }
205
+ }
206
+ `,Ce=z(r.Button)`
207
+ &:focus-visible svg {
208
+ ${r.borderTabStyle}
209
+ }
210
+
211
+ svg {
212
+ vertical-align: top;
213
+
214
+ circle,
215
+ line,
216
+ path {
217
+ stroke: ${e=>{var t,s;return e.hasFocus?(t=e.theme.colors)==null?void 0:t.primary:(s=e.theme.colors)==null?void 0:s.text}};
218
+ }
219
+ }
220
+ `;exports.default=ye;