@telia-ace/knowledge-widget-components-guide-category-dropdown 1.0.47 → 1.1.1-rc.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/index.js ADDED
@@ -0,0 +1 @@
1
+ "use strict";const e=require("./index-b2a67e58.js");require("react/jsx-runtime");require("react");require("react-dom");module.exports=e.GuideCategoryDropdownComponent;
package/index.mjs ADDED
@@ -0,0 +1,7 @@
1
+ import { G as i } from "./index-34f1725b.mjs";
2
+ import "react/jsx-runtime";
3
+ import "react";
4
+ import "react-dom";
5
+ export {
6
+ i as default
7
+ };
package/package.json CHANGED
@@ -1,49 +1,25 @@
1
1
  {
2
2
  "name": "@telia-ace/knowledge-widget-components-guide-category-dropdown",
3
- "version": "1.0.47",
4
- "description": "Guide category dropdown component for ACE Knowledge Widgets.",
5
- "license": "SEE LICENSE IN LICENSE.txt",
6
- "author": "Telia Company AB",
7
- "keywords": [
8
- "telia"
9
- ],
10
- "main": "dist/index.js",
11
- "sourceMain": "src/index.ts",
12
- "type": "module",
13
- "types": "dist/index.d.ts",
14
- "files": [
15
- "LICENSE.txt",
16
- "README.md",
17
- "dist/"
18
- ],
19
- "publishConfig": {
20
- "access": "public"
3
+ "version": "1.1.1-rc.0",
4
+ "main": "./index.js",
5
+ "types": "./index.d.ts",
6
+ "exports": {
7
+ ".": {
8
+ "import": "./index.mjs",
9
+ "require": "./index.js"
10
+ }
21
11
  },
22
- "sideEffects": false,
23
12
  "dependencies": {
24
- "@telia-ace/knowledge-data-client": "1.0.10",
25
- "@telia-ace/knowledge-widget-component-utilities": "1.0.47",
26
- "@telia-ace/knowledge-widget-core": "1.0.43",
27
- "@telia-ace/knowledge-widget-ui": "1.0.49",
28
- "@telia-ace/widget-utilities": "^1.0.17",
13
+ "@telia-ace/knowledge-widget-core": "^1.1.1-rc.0",
14
+ "@telia-ace/knowledge-widget-component-utilities": "^1.1.1-rc.0",
15
+ "@telia-ace/knowledge-widget-ui": "^1.1.1-rc.0",
16
+ "@telia-ace/widget-utilities": "^1.1.1-rc.0",
17
+ "@telia-ace/knowledge-data-client": "^1.1.1-rc.0",
29
18
  "@webprovisions/platform": "^1.1.4"
30
19
  },
31
20
  "peerDependencies": {
32
- "@emotion/react": "^11.10.5",
33
- "@emotion/styled": "^11.10.5",
34
- "react": "^18.2.0",
35
- "react-dom": "^18.2.0"
36
- },
37
- "devDependencies": {
38
- "@emotion/react": "^11.11.1",
39
- "@emotion/styled": "^11.11.0",
40
- "@types/react": "^18.2.22",
41
- "@types/react-dom": "^18.2.7",
42
- "react": "^18.2.0",
43
- "react-dom": "^18.2.0"
44
- },
45
- "scripts": {
46
- "clean": "rimraf ./dist",
47
- "build": "rimraf ./dist && tsc -emitDeclarationOnly && vite build"
21
+ "@emotion/react": "11.11.1",
22
+ "react": "18.2.0",
23
+ "@emotion/styled": "11.11.0"
48
24
  }
49
25
  }
package/LICENSE.txt DELETED
@@ -1,6 +0,0 @@
1
- Copyright © 2021, Telia Company AB. All rights reserved.
2
-
3
- THIS PACKAGE AND CONTAINING SOFTWARE IS PART OF
4
- THE HUMANY SERVICE. BY USING THIS SOFTWARE YOU
5
- AGREE TO THE FOLLOWING TERMS AND CONDITIONS:
6
- http://www.humany.com/legal
package/README.md DELETED
@@ -1,3 +0,0 @@
1
- # `@telia-ace/knowledge-widget-components-guide-category-dropdown`
2
-
3
- Guide category dropdown component for ACE Knowledge Widgets.
@@ -1,289 +0,0 @@
1
- var P = Object.defineProperty, W = Object.defineProperties;
2
- var H = Object.getOwnPropertyDescriptors;
3
- var E = Object.getOwnPropertySymbols;
4
- var L = Object.prototype.hasOwnProperty, S = Object.prototype.propertyIsEnumerable;
5
- var I = (e, t, a) => t in e ? P(e, t, { enumerable: !0, configurable: !0, writable: !0, value: a }) : e[t] = a, c = (e, t) => {
6
- for (var a in t || (t = {}))
7
- L.call(t, a) && I(e, a, t[a]);
8
- if (E)
9
- for (var a of E(t))
10
- S.call(t, a) && I(e, a, t[a]);
11
- return e;
12
- }, x = (e, t) => W(e, H(t));
13
- var D = (e, t) => {
14
- var a = {};
15
- for (var n in e)
16
- L.call(e, n) && t.indexOf(n) < 0 && (a[n] = e[n]);
17
- if (e != null && E)
18
- for (var n of E(e))
19
- t.indexOf(n) < 0 && S.call(e, n) && (a[n] = e[n]);
20
- return a;
21
- };
22
- import { loadingOpacity as U, contentBox as q, borderTabStyle as J, Link as K, linkTabStyle as Q, List as V, list as X, Text as k, useProperties as T, useHover as Y, SymbolBadge as f, useRouteData as Z, useContainer as _, useIsTabbing as ee, createEmptyComponent as te } from "@telia-ace/knowledge-widget-ui";
23
- import { appendClassNames as F, createParams as oe, formatUrl as ae } from "@telia-ace/widget-utilities";
24
- import o, { useState as G, useEffect as ne } from "react";
25
- import { initialRouteFallback as re } from "@telia-ace/knowledge-widget-component-utilities";
26
- import { css as C } from "@emotion/react";
27
- import m from "@emotion/styled";
28
- const le = m.div`
29
- ${U}
30
- ${q}
31
- overflow: hidden;
32
- min-height: 50px;
33
- ${(e) => e["data-toggler-in-focus"] && e.isTabbing && C`
34
- && {
35
- ${J(e)}
36
- }
37
- `};
38
- `, ie = m.button`
39
- background: none;
40
- border: 0;
41
- outline: 0;
42
- display: block;
43
- cursor: pointer;
44
- padding: 0;
45
- font-size: ${(e) => {
46
- var t;
47
- return (t = e.theme.fonts) == null ? void 0 : t.normal;
48
- }};
49
- text-align: end;
50
- flex: 1 0 auto;
51
- svg {
52
- path,
53
- line {
54
- stroke: ${(e) => {
55
- var t;
56
- return (t = e.theme.colors) == null ? void 0 : t.text;
57
- }};
58
- }
59
- }
60
- `, M = (e) => {
61
- var t, a, n, d, g, s, r, u;
62
- return C`
63
- font-size: ${(t = e.theme.fonts) == null ? void 0 : t.normal};
64
- text-align: left;
65
- text-align: left;
66
- text-decoration: none;
67
- font-weight: 300;
68
- display: flex;
69
- align-items: center;
70
- padding: ${(a = e.theme.sizes) == null ? void 0 : a.small};
71
- padding-left: ${(n = e.theme.sizes) == null ? void 0 : n.large};
72
- cursor: pointer;
73
- overflow: hidden;
74
- ${e.selected ? C`
75
- border-left: 2px solid ${(d = e.theme.colors) == null ? void 0 : d.primary};
76
- color: ${(g = e.theme.colors) == null ? void 0 : g.primary};
77
- ` : C`
78
- color: ${(s = e.theme.colors) == null ? void 0 : s.text};
79
- `};
80
-
81
- span {
82
- overflow: hidden;
83
- text-overflow: ellipsis;
84
- }
85
-
86
- i {
87
- margin-right: ${(r = e.theme.sizes) == null ? void 0 : r.normal};
88
- font-size: ${(u = e.theme.fonts) == null ? void 0 : u.medium};
89
- min-height: 1em;
90
- min-width: 1em;
91
- }
92
- `;
93
- }, se = m.div`
94
- ${M}
95
- `, ce = m(K)`
96
- ${M}
97
- &:focus {
98
- outline: none;
99
- }
100
- &:focus-visible {
101
- span {
102
- ${Q};
103
- }
104
- }
105
- `, me = m.div`
106
- display: flex;
107
- justify-content: space-between;
108
- padding-right: ${(e) => {
109
- var t;
110
- return (t = e.theme.sizes) == null ? void 0 : t.large;
111
- }};
112
- min-height: 52px;
113
- white-space: nowrap;
114
-
115
- && {
116
- font-weight: normal;
117
-
118
- a {
119
- font-weight: normal;
120
- }
121
- }
122
- .humany-guide-category-dropdown-item {
123
- font-weight: normal;
124
- }
125
- `, de = m(V)`
126
- ${X}
127
- display: flex;
128
- justify-content: center;
129
- flex-direction: column;
130
- margin-right: ${(e) => {
131
- var t;
132
- return (t = e.theme.sizes) == null ? void 0 : t.medium;
133
- }};
134
- margin-left: ${(e) => {
135
- var t;
136
- return (t = e.theme.sizes) == null ? void 0 : t.large;
137
- }};
138
- margin-bottom: 22px;
139
- border-left: ${(e) => e.theme.border};
140
- li {
141
- margin: 0 0 ${(e) => {
142
- var t;
143
- return (t = e.theme.sizes) == null ? void 0 : t.normal;
144
- }} -2px;
145
- }
146
- li:last-child {
147
- margin: 0 0 0 -2px;
148
- }
149
- flex-basis: 100%;
150
- border-width: 2px;
151
- `, ge = m(k)`
152
- margin: 0 0 0 ${(e) => {
153
- var t;
154
- return (t = e.theme.sizes) == null ? void 0 : t.small;
155
- }};
156
- `, i = {
157
- Wrapper: le,
158
- Toggler: ie,
159
- List: de,
160
- Item: se,
161
- Link: ce,
162
- TopItem: me,
163
- MatchCount: ge
164
- }, ue = ({ matches: e }) => {
165
- const { showMatchCount: t = !1 } = T();
166
- return !t || typeof e == "undefined" ? null : /* @__PURE__ */ o.createElement(i.MatchCount, null, "(", e, ")");
167
- }, z = ue, pe = ({ item: e, guideCategory: t }) => {
168
- const {
169
- route: a = "browse",
170
- categoryAriaLabel: n = "",
171
- activeCategoryAriaLabel: d = "",
172
- fallbackOnInitialRoute: g = !1
173
- } = T(), [s, r] = Y(), { id: u, title: p, symbol: h, activeSymbol: b } = e, l = t === u;
174
- return /* @__PURE__ */ o.createElement("li", { ref: r }, /* @__PURE__ */ o.createElement(
175
- i.Link,
176
- x(c({}, re(e, a, g, "category")), {
177
- "aria-pressed": l,
178
- "aria-label": (l ? d : n).replace(
179
- "{{category}}",
180
- p
181
- ),
182
- className: "humany-guide-category-dropdown-link",
183
- "aria-current": l,
184
- selected: l
185
- }),
186
- (l || s) && b ? /* @__PURE__ */ o.createElement(f, { symbol: b }) : h && /* @__PURE__ */ o.createElement(f, { symbol: h }),
187
- /* @__PURE__ */ o.createElement(k, null, p),
188
- /* @__PURE__ */ o.createElement(z, c({}, e))
189
- ));
190
- }, ye = pe, Ce = (a) => {
191
- var n = a, { className: e } = n, t = D(n, ["className"]);
192
- const d = Z(), [g, s] = G(!1), {
193
- parent: r,
194
- route: u = "browse",
195
- categories: p = [],
196
- loading: h = !1
197
- } = T(), b = _(), [l, w] = G(!1), { params: B } = d, O = ee(), { guideCategory: v, tag: R, phrase: j, sorting: A } = B;
198
- if (ne(() => {
199
- l && w(!1);
200
- }, [v]), h || !r || !p.length)
201
- return te(b, x(c({}, t), {
202
- className: F(e, "humany-guide-category-dropdown")
203
- }));
204
- const y = p.find(($) => $.id === v) || r, N = y.activeSymbol || y.symbol;
205
- return /* @__PURE__ */ o.createElement(
206
- i.Wrapper,
207
- x(c({}, t), {
208
- "data-loading": !1,
209
- "data-toggler-in-focus": g,
210
- "aria-expanded": l,
211
- isTabbing: O,
212
- className: F(e, "humany-guide-category-dropdown")
213
- }),
214
- l ? /* @__PURE__ */ o.createElement(o.Fragment, null, /* @__PURE__ */ o.createElement(i.TopItem, { className: "humany-guide-category-dropdown-top-item" }, /* @__PURE__ */ o.createElement(
215
- i.Link,
216
- {
217
- className: "humany-guide-category-dropdown-link",
218
- routeName: u,
219
- params: oe({
220
- tag: R,
221
- phrase: j,
222
- sorting: A,
223
- guideCategory: r.id,
224
- uriName: ae(r.title)
225
- }),
226
- selected: !1
227
- },
228
- r.symbol ? /* @__PURE__ */ o.createElement(f, { symbol: r.symbol }) : null,
229
- /* @__PURE__ */ o.createElement(k, null, r.title),
230
- /* @__PURE__ */ o.createElement(z, c({}, r))
231
- ), /* @__PURE__ */ o.createElement(
232
- i.Toggler,
233
- {
234
- onBlur: () => s(!1),
235
- onFocus: () => s(!0),
236
- className: "humany-guide-category-dropdown-toggler",
237
- onClick: () => {
238
- w(!l);
239
- },
240
- "aria-expanded": "true",
241
- "aria-label": y.title
242
- },
243
- /* @__PURE__ */ o.createElement(f, { size: 18, symbol: { type: "Svg", content: "caret-up" } })
244
- )), /* @__PURE__ */ o.createElement(
245
- i.List,
246
- {
247
- className: "humany-guide-category-dropdown-open",
248
- items: p,
249
- renderItem: ($) => /* @__PURE__ */ o.createElement(
250
- ye,
251
- {
252
- key: $.id,
253
- item: $,
254
- guideCategory: v
255
- }
256
- )
257
- }
258
- )) : /* @__PURE__ */ o.createElement(i.TopItem, { className: "humany-guide-category-dropdown-top-item" }, /* @__PURE__ */ o.createElement(
259
- i.Item,
260
- {
261
- className: "humany-guide-category-dropdown-item",
262
- onClick: () => {
263
- w(!l);
264
- },
265
- selected: !1
266
- },
267
- N ? /* @__PURE__ */ o.createElement(f, { symbol: N }) : null,
268
- /* @__PURE__ */ o.createElement(k, null, y.title),
269
- /* @__PURE__ */ o.createElement(z, c({}, y))
270
- ), /* @__PURE__ */ o.createElement(
271
- i.Toggler,
272
- {
273
- onBlur: () => s(!1),
274
- onFocus: () => s(!0),
275
- className: "humany-guide-category-dropdown-toggler",
276
- onClick: () => {
277
- w(!l);
278
- },
279
- "aria-expanded": "false",
280
- "aria-label": y.title
281
- },
282
- /* @__PURE__ */ o.createElement(f, { size: 18, symbol: { type: "Svg", content: "caret-down" } })
283
- ))
284
- );
285
- };
286
- export {
287
- Ce as default
288
- };
289
- //# sourceMappingURL=guide-category-dropdown.f83881bc.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"guide-category-dropdown.f83881bc.js","sources":["../src/guide-category-dropdown.styles.ts","../src/guide-category-dropdown-match-count.tsx","../src/guide-category-dropdown-item.tsx","../src/guide-category-dropdown.tsx"],"sourcesContent":["import { css, Theme } from '@emotion/react';\nimport styled from '@emotion/styled';\nimport {\n borderTabStyle,\n contentBox,\n Link as BaseLink,\n linkTabStyle,\n List as BaseList,\n list,\n loadingOpacity,\n Text,\n} from '@telia-ace/knowledge-widget-ui';\n\n// FUTURE TODO: Look into the typescript error when removing \": any\".\nconst Wrapper: any = styled.div<any>`\n ${loadingOpacity}\n ${contentBox}\n overflow: hidden;\n min-height: 50px;\n ${(p) =>\n p['data-toggler-in-focus'] &&\n p.isTabbing &&\n css`\n && {\n ${borderTabStyle(p)}\n }\n `};\n`;\n\n// FUTURE TODO: Look into the typescript error when removing \": any\".\nconst Toggler: any = styled.button`\n background: none;\n border: 0;\n outline: 0;\n display: block;\n cursor: pointer;\n padding: 0;\n font-size: ${(p) => p.theme.fonts?.normal};\n text-align: end;\n flex: 1 0 auto;\n svg {\n path,\n line {\n stroke: ${(p) => p.theme.colors?.text};\n }\n }\n`;\n\nconst styling = (p: { theme: Theme; selected: boolean }) => css`\n font-size: ${p.theme.fonts?.normal};\n text-align: left;\n text-align: left;\n text-decoration: none;\n font-weight: 300;\n display: flex;\n align-items: center;\n padding: ${p.theme.sizes?.small};\n padding-left: ${p.theme.sizes?.large};\n cursor: pointer;\n overflow: hidden;\n ${p.selected\n ? css`\n border-left: 2px solid ${p.theme.colors?.primary};\n color: ${p.theme.colors?.primary};\n `\n : css`\n color: ${p.theme.colors?.text};\n `};\n\n span {\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n i {\n margin-right: ${p.theme.sizes?.normal};\n font-size: ${p.theme.fonts?.medium};\n min-height: 1em;\n min-width: 1em;\n }\n`;\n\n// FUTURE TODO: Look into the typescript error when removing \": any\".\nconst Item: any = styled.div`\n ${styling}\n`;\n\nconst Link: any = styled(BaseLink)<any>`\n ${styling}\n &:focus {\n outline: none;\n }\n &:focus-visible {\n span {\n ${linkTabStyle};\n }\n }\n`;\n\n// FUTURE TODO: Look into the typescript error when removing \": any\".\nconst TopItem: any = styled.div`\n display: flex;\n justify-content: space-between;\n padding-right: ${(p) => p.theme.sizes?.large};\n min-height: 52px;\n white-space: nowrap;\n\n && {\n font-weight: normal;\n\n a {\n font-weight: normal;\n }\n }\n .humany-guide-category-dropdown-item {\n font-weight: normal;\n }\n`;\n\n// FUTURE TODO: Look into the typescript error when removing \": any\".\nconst List: any = styled(BaseList)<any>`\n ${list}\n display: flex;\n justify-content: center;\n flex-direction: column;\n margin-right: ${(p) => p.theme.sizes?.medium};\n margin-left: ${(p) => p.theme.sizes?.large};\n margin-bottom: 22px;\n border-left: ${(p) => p.theme.border};\n li {\n margin: 0 0 ${(p) => p.theme.sizes?.normal} -2px;\n }\n li:last-child {\n margin: 0 0 0 -2px;\n }\n flex-basis: 100%;\n border-width: 2px;\n`;\n\n// FUTURE TODO: Look into the typescript error when removing \": any\".\nconst MatchCount: any = styled(Text)`\n margin: 0 0 0 ${(p) => p.theme.sizes?.small};\n`;\n\nexport default {\n Wrapper,\n Toggler,\n List,\n Item,\n Link,\n TopItem,\n MatchCount,\n};\n","import { Category } from '@telia-ace/knowledge-widget-core';\nimport { useProperties } from '@telia-ace/knowledge-widget-ui';\nimport React from 'react';\nimport { GuideCategoryDropdownComponentProps } from './guide-category-dropdown-component';\nimport Styled from './guide-category-dropdown.styles';\n\nconst GuideCategoryDropdownMatchCount: React.FC<Category> = ({ matches }) => {\n const { showMatchCount = false } = useProperties<GuideCategoryDropdownComponentProps>();\n\n if (!showMatchCount || typeof matches === 'undefined') {\n return null;\n }\n\n return <Styled.MatchCount>({matches})</Styled.MatchCount>;\n};\n\nexport default GuideCategoryDropdownMatchCount;\n","import { initialRouteFallback } from '@telia-ace/knowledge-widget-component-utilities';\nimport { Category } from '@telia-ace/knowledge-widget-core';\nimport { SymbolBadge, Text, useHover, useProperties } from '@telia-ace/knowledge-widget-ui';\nimport React from 'react';\nimport { GuideCategoryDropdownComponentProps } from './guide-category-dropdown-component';\nimport GuideCategoryDropdownMatchCount from './guide-category-dropdown-match-count';\nimport Styled from './guide-category-dropdown.styles';\n\ntype Props = {\n item: Category;\n guideCategory: string;\n};\n\nconst GuideCategoryDropdownItem: React.FC<Props> = ({ item, guideCategory }) => {\n const {\n route = 'browse',\n categoryAriaLabel = '',\n activeCategoryAriaLabel = '',\n fallbackOnInitialRoute = false,\n } = useProperties<GuideCategoryDropdownComponentProps>();\n const [hovering, elem] = useHover();\n const { id, title, symbol, activeSymbol } = item;\n\n const selected = guideCategory === id;\n return (\n <li ref={elem as any}>\n <Styled.Link\n {...initialRouteFallback(item, route, fallbackOnInitialRoute, 'category')}\n aria-pressed={selected}\n aria-label={(selected ? activeCategoryAriaLabel : categoryAriaLabel).replace(\n '{{category}}',\n title\n )}\n className=\"humany-guide-category-dropdown-link\"\n aria-current={selected}\n selected={selected}\n >\n {(selected || hovering) && activeSymbol ? (\n <SymbolBadge symbol={activeSymbol} />\n ) : (\n symbol && <SymbolBadge symbol={symbol} />\n )}\n <Text>{title}</Text>\n <GuideCategoryDropdownMatchCount {...item} />\n </Styled.Link>\n </li>\n );\n};\n\nexport default GuideCategoryDropdownItem;\n","import { Category } from '@telia-ace/knowledge-widget-core';\nimport {\n createEmptyComponent,\n SymbolBadge,\n Text,\n useContainer,\n useIsTabbing,\n useProperties,\n useRouteData,\n} from '@telia-ace/knowledge-widget-ui';\nimport { appendClassNames, createParams, formatUrl } from '@telia-ace/widget-utilities';\nimport React, { useEffect, useState } from 'react';\nimport { GuideCategoryDropdownComponentProps } from './guide-category-dropdown-component';\nimport GuideCategoryDropdownItem from './guide-category-dropdown-item';\nimport GuideCategoryDropdownMatchCount from './guide-category-dropdown-match-count';\nimport Styled from './guide-category-dropdown.styles';\n\ntype Props = {\n className: string;\n};\n\nconst GuideCategoryDropdown: React.FC<Props> = ({ className, ...other }) => {\n const routeData = useRouteData();\n const [togglerFocus, setTogglerFocus] = useState(false);\n const {\n parent,\n route = 'browse',\n categories = [],\n loading = false,\n } = useProperties<GuideCategoryDropdownComponentProps>();\n const container = useContainer();\n const [isOpen, setIsOpen] = useState(false);\n const { params } = routeData;\n const isTabbing = useIsTabbing();\n const { guideCategory, tag, phrase, sorting } = params;\n\n useEffect(() => {\n if (isOpen) {\n setIsOpen(false);\n }\n }, [guideCategory]);\n\n if (loading || !parent || !categories.length) {\n return createEmptyComponent(container, {\n ...other,\n className: appendClassNames(className, 'humany-guide-category-dropdown'),\n });\n }\n\n const selected = categories.find((category) => category.id === guideCategory) || parent;\n const selectedSymbol = selected.activeSymbol || selected.symbol;\n\n return (\n <Styled.Wrapper\n {...other}\n data-loading={false}\n data-toggler-in-focus={togglerFocus}\n aria-expanded={isOpen}\n isTabbing={isTabbing}\n className={appendClassNames(className, 'humany-guide-category-dropdown')}\n >\n {isOpen ? (\n <>\n <Styled.TopItem className=\"humany-guide-category-dropdown-top-item\">\n <Styled.Link\n className=\"humany-guide-category-dropdown-link\"\n routeName={route}\n params={createParams({\n tag,\n phrase,\n sorting,\n guideCategory: parent.id,\n uriName: formatUrl(parent.title),\n })}\n selected={false}\n >\n {parent.symbol ? <SymbolBadge symbol={parent.symbol} /> : null}\n <Text>{parent.title}</Text>\n <GuideCategoryDropdownMatchCount {...parent} />\n </Styled.Link>\n <Styled.Toggler\n onBlur={() => setTogglerFocus(false)}\n onFocus={() => setTogglerFocus(true)}\n className=\"humany-guide-category-dropdown-toggler\"\n onClick={() => {\n setIsOpen(!isOpen);\n }}\n aria-expanded=\"true\"\n aria-label={selected.title}\n >\n <SymbolBadge size={18} symbol={{ type: 'Svg', content: 'caret-up' }} />\n </Styled.Toggler>\n </Styled.TopItem>\n <Styled.List\n className=\"humany-guide-category-dropdown-open\"\n items={categories}\n renderItem={(item: Category) => (\n <GuideCategoryDropdownItem\n key={item.id}\n item={item}\n guideCategory={guideCategory}\n />\n )}\n />\n </>\n ) : (\n <Styled.TopItem className=\"humany-guide-category-dropdown-top-item\">\n <Styled.Item\n className=\"humany-guide-category-dropdown-item\"\n onClick={() => {\n setIsOpen(!isOpen);\n }}\n selected={false}\n >\n {selectedSymbol ? <SymbolBadge symbol={selectedSymbol} /> : null}\n <Text>{selected.title}</Text>\n <GuideCategoryDropdownMatchCount {...selected} />\n </Styled.Item>\n <Styled.Toggler\n onBlur={() => setTogglerFocus(false)}\n onFocus={() => setTogglerFocus(true)}\n className=\"humany-guide-category-dropdown-toggler\"\n onClick={() => {\n setIsOpen(!isOpen);\n }}\n aria-expanded=\"false\"\n aria-label={selected.title}\n >\n <SymbolBadge size={18} symbol={{ type: 'Svg', content: 'caret-down' }} />\n </Styled.Toggler>\n </Styled.TopItem>\n )}\n </Styled.Wrapper>\n );\n};\n\nexport default GuideCategoryDropdown;\n"],"names":["Wrapper","styled","loadingOpacity","contentBox","p","css","borderTabStyle","Toggler","_a","styling","_b","_c","_d","_e","_f","_g","_h","Item","Link","BaseLink","linkTabStyle","TopItem","List","BaseList","list","MatchCount","Text","Styled","GuideCategoryDropdownMatchCount","matches","showMatchCount","useProperties","GuideCategoryDropdownMatchCount$1","GuideCategoryDropdownItem","item","guideCategory","route","categoryAriaLabel","activeCategoryAriaLabel","fallbackOnInitialRoute","hovering","elem","useHover","id","title","symbol","activeSymbol","selected","React","__spreadProps","__spreadValues","initialRouteFallback","SymbolBadge","GuideCategoryDropdownItem$1","GuideCategoryDropdown","className","other","__objRest","routeData","useRouteData","togglerFocus","setTogglerFocus","useState","parent","categories","loading","container","useContainer","isOpen","setIsOpen","params","isTabbing","useIsTabbing","tag","phrase","sorting","useEffect","createEmptyComponent","appendClassNames","category","selectedSymbol","createParams","formatUrl"],"mappings":"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"}
package/dist/index.js DELETED
@@ -1,79 +0,0 @@
1
- import { DataClient as b, DataType as v } from "@telia-ace/knowledge-data-client";
2
- import { createEventSubscriber as C, extendComponent as D } from "@telia-ace/knowledge-widget-core";
3
- import { createReactComponent as P } from "@telia-ace/knowledge-widget-ui";
4
- const y = (e, n, a) => !a || a.length < 1 ? n : h(e, n, null, a), h = (e, n, a, o) => {
5
- if (e.find((s) => s.id === o) || !o)
6
- return a || n;
7
- for (let s = 0; s < e.length; s += 1) {
8
- const t = e[s];
9
- if (t.items) {
10
- const r = h(t.items, n, t, o);
11
- if (r)
12
- return r;
13
- }
14
- }
15
- }, R = (e) => e.matches && e.matches > 0, G = (e) => {
16
- const { events: n } = e.get("$widget"), [a, o] = C(n);
17
- return P(
18
- e,
19
- "guide-category-dropdown",
20
- import("./guide-category-dropdown.f83881bc.js"),
21
- (i) => {
22
- const s = (t) => {
23
- i.writeProperties({ loading: !0 }), i.actions.dispatch("fetch", { params: t }).then(() => {
24
- i.writeProperties({ loading: !1 });
25
- });
26
- };
27
- i.actions.create("fetch", ({ parent: t, categories: r }) => {
28
- i.writeProperties({
29
- parent: t,
30
- categories: r,
31
- loading: !1
32
- });
33
- }), e.getAsync("router").then((t) => {
34
- const { params: r } = t.getRouteData();
35
- s(r);
36
- }), a("router:changed", (t, { current: r }) => {
37
- s(r.routeData.params);
38
- });
39
- }
40
- ).then(() => D(e, "guide-category-dropdown", (i) => {
41
- i.actions.watch("guide-category-dropdown.fetch", (s, t) => {
42
- const {
43
- matchFilters: r = {
44
- search: !1,
45
- tag: !1
46
- },
47
- rootCategoryHeader: u
48
- } = i.properties(), {
49
- params: { phrase: l, guideCategory: g, tag: p }
50
- } = s;
51
- return b.getInstance(e).then((m) => m.fetch(v.GuideCategories, {
52
- searchPhrase: r.search ? l : void 0,
53
- tagId: r.tag ? p : void 0
54
- }).then(({ categories: d, matches: w }) => {
55
- var f;
56
- const c = y(
57
- d,
58
- {
59
- matches: w,
60
- id: "0",
61
- title: u,
62
- items: d
63
- },
64
- g
65
- );
66
- return t({
67
- parent: c,
68
- categories: (f = c == null ? void 0 : c.items) == null ? void 0 : f.filter(R)
69
- });
70
- }));
71
- });
72
- })).then(() => {
73
- o();
74
- });
75
- };
76
- export {
77
- G as default
78
- };
79
- //# sourceMappingURL=index.js.map
package/dist/index.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sources":["../src/guide-category-dropdown-component.ts"],"sourcesContent":["import { CategoriesResult, DataClient, DataType } from '@telia-ace/knowledge-data-client';\nimport { MatchFilterProperties } from '@telia-ace/knowledge-widget-component-utilities';\nimport { Category, createEventSubscriber, extendComponent } from '@telia-ace/knowledge-widget-core';\nimport { createReactComponent } from '@telia-ace/knowledge-widget-ui';\nimport { Container } from '@webprovisions/platform';\n\nconst findParentAndSiblings = (\n categories: Category[],\n root: Category,\n currentCategoryId: string\n): Category | undefined => {\n if (!currentCategoryId || currentCategoryId.length < 1) {\n return root;\n }\n return findRecursive(categories, root, null, currentCategoryId);\n};\n\nconst findRecursive = (\n categories: Category[],\n root: Category,\n previous: Category | null,\n currentCategoryId: string\n): Category | undefined => {\n const filtered = categories.find((c) => c.id === currentCategoryId);\n if (filtered || !currentCategoryId) {\n if (!previous) {\n return root;\n }\n return previous;\n }\n\n for (let i = 0; i < categories.length; i += 1) {\n const cat = categories[i];\n if (cat.items) {\n const result = findRecursive(cat.items, root, cat, currentCategoryId);\n if (result) {\n return result;\n }\n }\n }\n};\n\nconst filterEmptyCategories = (category: Category) => category.matches && category.matches > 0;\n\nexport type GuideCategoryDropdownComponentProps = {\n matchFilters?: Partial<MatchFilterProperties>;\n rootCategoryHeader: string;\n route?: string;\n categoryAriaLabel?: string;\n activeCategoryAriaLabel?: string;\n parent?: Category; // internal\n categories?: Category[]; // internal\n showMatchCount?: boolean;\n fallbackOnInitialRoute?: boolean;\n};\n\nexport default (container: Container) => {\n const { events } = container.get('$widget');\n const [subscribe, unsubscribe] = createEventSubscriber(events);\n\n return createReactComponent(\n container,\n 'guide-category-dropdown',\n import('./guide-category-dropdown'),\n (component) => {\n const fetch = (params: { [key: string]: any }) => {\n component.writeProperties({ loading: true });\n component.actions.dispatch('fetch', { params }).then(() => {\n component.writeProperties({ loading: false });\n });\n };\n\n component.actions.create('fetch', ({ parent, categories }) => {\n component.writeProperties({\n parent,\n categories,\n loading: false,\n });\n });\n\n container.getAsync('router').then((router) => {\n const { params } = router.getRouteData();\n fetch(params);\n });\n\n subscribe('router:changed', (event: any, { current }: any) => {\n fetch(current.routeData.params);\n });\n }\n )\n .then(() => {\n return extendComponent(container, 'guide-category-dropdown', (component) => {\n component.actions.watch('guide-category-dropdown.fetch', (input, next) => {\n const {\n matchFilters = {\n search: false,\n tag: false,\n },\n rootCategoryHeader,\n } = component.properties<GuideCategoryDropdownComponentProps>();\n const {\n params: { phrase, guideCategory, tag },\n } = input;\n return DataClient.getInstance(container).then((dataClient) => {\n return dataClient\n .fetch(DataType.GuideCategories, {\n searchPhrase: matchFilters.search ? phrase : undefined,\n tagId: matchFilters.tag ? tag : undefined,\n })\n .then(({ categories, matches }: CategoriesResult) => {\n const parent = findParentAndSiblings(\n categories,\n {\n matches,\n id: '0',\n title: rootCategoryHeader,\n items: categories,\n },\n guideCategory\n );\n\n return next({\n parent,\n categories: parent?.items?.filter(filterEmptyCategories),\n });\n });\n });\n });\n });\n })\n .then(() => {\n unsubscribe();\n });\n};\n"],"names":["findParentAndSiblings","categories","root","currentCategoryId","findRecursive","previous","c","i","cat","result","filterEmptyCategories","category","GuideCategoryDropdownComponent","container","events","subscribe","unsubscribe","createEventSubscriber","createReactComponent","component","fetch","params","parent","router","event","current","extendComponent","input","next","matchFilters","rootCategoryHeader","phrase","guideCategory","tag","DataClient","dataClient","DataType","matches","_a"],"mappings":"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"}
File without changes