@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 +1 -1
- package/index.mjs +161 -9
- package/package.json +7 -7
- package/search-1918060e.js +220 -0
- package/search-ec5355e8.mjs +973 -0
- package/detached-component-56fe2c89.js +0 -1
- package/detached-component-cbb384dc.mjs +0 -27
- package/index-0aec4054.js +0 -1724
- package/index-373df3a5.js +0 -6
- package/index-5c9c2abf.mjs +0 -883
- package/index-7592842b.mjs +0 -7417
- package/search-37ab93f5.js +0 -281
- package/search-d41ce4de.mjs +0 -1520
package/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";const
|
|
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 {
|
|
2
|
-
import "
|
|
3
|
-
import "@
|
|
4
|
-
import "@
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
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
|
-
|
|
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.
|
|
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.
|
|
14
|
-
"@telia-ace/knowledge-widget-ui": "^1.1.1-rc.
|
|
15
|
-
"@telia-ace/widget-utilities": "^1.1.1-rc.
|
|
16
|
-
"@telia-ace/knowledge-data-client": "^1.1.1-rc.
|
|
17
|
-
"@telia-ace/widget-routing": "^1.1.1-rc.
|
|
18
|
-
"@telia-ace/widget-types-grid": "^1.1.1-rc.
|
|
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;
|