@telia-ace/knowledge-widget-ui 1.0.47 → 1.0.48-next.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.js +120 -122
- package/dist/index.js.map +1 -1
- package/package.json +3 -3
package/dist/index.js
CHANGED
|
@@ -1,27 +1,27 @@
|
|
|
1
1
|
var He = Object.defineProperty, je = Object.defineProperties;
|
|
2
2
|
var Oe = Object.getOwnPropertyDescriptors;
|
|
3
3
|
var R = Object.getOwnPropertySymbols;
|
|
4
|
-
var
|
|
5
|
-
var
|
|
4
|
+
var re = Object.prototype.hasOwnProperty, se = Object.prototype.propertyIsEnumerable;
|
|
5
|
+
var oe = (t, e, a) => e in t ? He(t, e, { enumerable: !0, configurable: !0, writable: !0, value: a }) : t[e] = a, y = (t, e) => {
|
|
6
6
|
for (var a in e || (e = {}))
|
|
7
|
-
|
|
7
|
+
re.call(e, a) && oe(t, a, e[a]);
|
|
8
8
|
if (R)
|
|
9
9
|
for (var a of R(e))
|
|
10
|
-
se.call(e, a) &&
|
|
10
|
+
se.call(e, a) && oe(t, a, e[a]);
|
|
11
11
|
return t;
|
|
12
12
|
}, k = (t, e) => je(t, Oe(e));
|
|
13
13
|
var w = (t, e) => {
|
|
14
14
|
var a = {};
|
|
15
|
-
for (var
|
|
16
|
-
|
|
15
|
+
for (var o in t)
|
|
16
|
+
re.call(t, o) && e.indexOf(o) < 0 && (a[o] = t[o]);
|
|
17
17
|
if (t != null && R)
|
|
18
|
-
for (var
|
|
19
|
-
e.indexOf(
|
|
18
|
+
for (var o of R(t))
|
|
19
|
+
e.indexOf(o) < 0 && se.call(t, o) && (a[o] = t[o]);
|
|
20
20
|
return a;
|
|
21
21
|
};
|
|
22
22
|
import { css as $, keyframes as he } from "@emotion/react";
|
|
23
23
|
import d from "@emotion/styled";
|
|
24
|
-
import { useRouteData as ge, Link as Ye, Icon as H, List as
|
|
24
|
+
import { useRouteData as ge, Link as Ye, Icon as H, List as X, list as pe, invertedHoverButton as ye, Drawer as _e, ItemList as O, itemList as Y, Dropdown as $e, headingElement as Z, Text as ve, Button as ee, paddedBorderTabStyle as ie, Confirm as Ke, SymbolBadge as N, StyledText as U, convertToStringAttributes as xe, useKeyPress as W, useContainer as Ve, useEventListener as le, DateFormats as be, Timestamp as we, useIsTabbing as qe, usePrevious as Ge, TextLink as J, borderTabStyle as Q, Paragraph as Ue, genericHtml as Je, AnchorLink as Qe, WidgetLink as Xe } from "@telia-ace/widget-ui";
|
|
25
25
|
export * from "@telia-ace/widget-ui";
|
|
26
26
|
import n, { forwardRef as _, useCallback as z, useState as T, useEffect as K, useMemo as Ze, useRef as Ee, useImperativeHandle as et } from "react";
|
|
27
27
|
import { createParams as j, formatUrl as ce, appendClassNames as S, htmlParentContains as tt } from "@telia-ace/widget-utilities";
|
|
@@ -29,10 +29,10 @@ const at = ({
|
|
|
29
29
|
title: t = "",
|
|
30
30
|
className: e,
|
|
31
31
|
id: a,
|
|
32
|
-
parent:
|
|
32
|
+
parent: o,
|
|
33
33
|
connection: s,
|
|
34
34
|
type: i,
|
|
35
|
-
target:
|
|
35
|
+
target: r,
|
|
36
36
|
href: c,
|
|
37
37
|
children: m,
|
|
38
38
|
connectionKey: f
|
|
@@ -41,7 +41,7 @@ const at = ({
|
|
|
41
41
|
switch (i) {
|
|
42
42
|
case "default":
|
|
43
43
|
case "guide":
|
|
44
|
-
const { id: E, title: g } =
|
|
44
|
+
const { id: E, title: g } = o;
|
|
45
45
|
let v = f || s;
|
|
46
46
|
E !== a && !f && (v = void 0), u.routeName = l, u.params = j(k(y({}, h), {
|
|
47
47
|
guide: a,
|
|
@@ -50,23 +50,23 @@ const at = ({
|
|
|
50
50
|
}));
|
|
51
51
|
break;
|
|
52
52
|
case "link":
|
|
53
|
-
u.href = c, u.target =
|
|
53
|
+
u.href = c, u.target = r;
|
|
54
54
|
break;
|
|
55
55
|
}
|
|
56
56
|
return /* @__PURE__ */ n.createElement(Ye, y({ className: S(e, "humany-dialog-link") }, u), m || /* @__PURE__ */ n.createElement(n.Fragment, null, i === "link" && /* @__PURE__ */ n.createElement(H, { faIcon: "link" }), /* @__PURE__ */ n.createElement("span", null, t)));
|
|
57
|
-
}, ke = at, ta = _((s,
|
|
57
|
+
}, ke = at, ta = _((s, o) => {
|
|
58
58
|
var i = s, { className: t, dialog: e } = i, a = w(i, ["className", "dialog"]);
|
|
59
59
|
return e.length ? /* @__PURE__ */ n.createElement(
|
|
60
60
|
nt,
|
|
61
61
|
k(y({
|
|
62
62
|
className: S(t, "humany-dialog"),
|
|
63
63
|
items: e,
|
|
64
|
-
renderItem: (
|
|
64
|
+
renderItem: (r) => /* @__PURE__ */ n.createElement("li", { key: r.connection, "data-dialog": r.connection }, /* @__PURE__ */ n.createElement(ke, y({}, r)))
|
|
65
65
|
}, a), {
|
|
66
|
-
ref:
|
|
66
|
+
ref: o
|
|
67
67
|
})
|
|
68
68
|
) : null;
|
|
69
|
-
}), nt = d(
|
|
69
|
+
}), nt = d(X)`
|
|
70
70
|
${pe}
|
|
71
71
|
a {
|
|
72
72
|
min-width: 150px;
|
|
@@ -89,15 +89,15 @@ const at = ({
|
|
|
89
89
|
return (e = t.theme.sizes) == null ? void 0 : e.small;
|
|
90
90
|
}} 0 0;
|
|
91
91
|
}
|
|
92
|
-
`,
|
|
92
|
+
`, ot = (u) => {
|
|
93
93
|
var l = u, {
|
|
94
94
|
trigger: t,
|
|
95
95
|
header: e,
|
|
96
96
|
className: a,
|
|
97
|
-
animation:
|
|
97
|
+
animation: o,
|
|
98
98
|
fullScreen: s,
|
|
99
99
|
onToggle: i,
|
|
100
|
-
children:
|
|
100
|
+
children: r,
|
|
101
101
|
ref: c,
|
|
102
102
|
closeButtonAriaLabel: m
|
|
103
103
|
} = l, f = w(l, [
|
|
@@ -117,14 +117,14 @@ const at = ({
|
|
|
117
117
|
className: S(a, "humany-drawer-list"),
|
|
118
118
|
trigger: t,
|
|
119
119
|
header: e,
|
|
120
|
-
animation:
|
|
120
|
+
animation: o,
|
|
121
121
|
fullScreen: s,
|
|
122
122
|
onToggle: i,
|
|
123
123
|
closeButtonAriaLabel: m
|
|
124
124
|
},
|
|
125
|
-
/* @__PURE__ */ n.createElement(
|
|
125
|
+
/* @__PURE__ */ n.createElement(rt, y({}, f), r)
|
|
126
126
|
);
|
|
127
|
-
}, aa =
|
|
127
|
+
}, aa = ot, rt = d(O)`
|
|
128
128
|
${Y}
|
|
129
129
|
font-family: ${(t) => {
|
|
130
130
|
var e;
|
|
@@ -142,7 +142,7 @@ const at = ({
|
|
|
142
142
|
return (e = t.theme.fonts) == null ? void 0 : e.normal;
|
|
143
143
|
}};
|
|
144
144
|
}
|
|
145
|
-
`, st = ({ items: t, renderItem: e, trigger: a, header:
|
|
145
|
+
`, st = ({ items: t, renderItem: e, trigger: a, header: o, children: s }) => /* @__PURE__ */ n.createElement($e, { className: "humany-dropdown-actions", trigger: a }, /* @__PURE__ */ n.createElement(it, null, !!o && /* @__PURE__ */ n.createElement(lt, null, o), t && e && /* @__PURE__ */ n.createElement(ct, { items: t, renderItem: e }), s)), na = st, it = d.div`
|
|
146
146
|
background: #fff;
|
|
147
147
|
border: #ccc 1px solid;
|
|
148
148
|
box-shadow: 0px 0px 10px rgba(0, 0, 0, 0.1);
|
|
@@ -187,7 +187,7 @@ const at = ({
|
|
|
187
187
|
return (e = t.theme.sizes) == null ? void 0 : e.small;
|
|
188
188
|
}};
|
|
189
189
|
}
|
|
190
|
-
`, ct = d(
|
|
190
|
+
`, ct = d(X)`
|
|
191
191
|
list-style: none;
|
|
192
192
|
padding: 0;
|
|
193
193
|
margin: 0;
|
|
@@ -223,12 +223,12 @@ const at = ({
|
|
|
223
223
|
}
|
|
224
224
|
}
|
|
225
225
|
`, mt = (i) => {
|
|
226
|
-
var
|
|
226
|
+
var r = i, {
|
|
227
227
|
trigger: t,
|
|
228
228
|
className: e,
|
|
229
229
|
children: a,
|
|
230
|
-
closeButtonAriaLabel:
|
|
231
|
-
} =
|
|
230
|
+
closeButtonAriaLabel: o
|
|
231
|
+
} = r, s = w(r, [
|
|
232
232
|
"trigger",
|
|
233
233
|
"className",
|
|
234
234
|
"children",
|
|
@@ -238,12 +238,12 @@ const at = ({
|
|
|
238
238
|
$e,
|
|
239
239
|
{
|
|
240
240
|
className: S(e, "humany-dropdown-list"),
|
|
241
|
-
closeButtonAriaLabel:
|
|
241
|
+
closeButtonAriaLabel: o,
|
|
242
242
|
trigger: t
|
|
243
243
|
},
|
|
244
244
|
/* @__PURE__ */ n.createElement(dt, y({}, s), a)
|
|
245
245
|
);
|
|
246
|
-
},
|
|
246
|
+
}, oa = mt, dt = d(O)`
|
|
247
247
|
${Y}
|
|
248
248
|
font-family: ${(t) => {
|
|
249
249
|
var e;
|
|
@@ -252,7 +252,7 @@ const at = ({
|
|
|
252
252
|
> div {
|
|
253
253
|
${(t) => {
|
|
254
254
|
var e;
|
|
255
|
-
return
|
|
255
|
+
return Z(t)(
|
|
256
256
|
"> h1",
|
|
257
257
|
$`
|
|
258
258
|
font-size: ${(e = t.theme.fonts) == null ? void 0 : e.normal};
|
|
@@ -289,7 +289,7 @@ const at = ({
|
|
|
289
289
|
.humany-loader {
|
|
290
290
|
opacity: ${t["data-loading"] ? "1" : "0"};
|
|
291
291
|
}
|
|
292
|
-
`,
|
|
292
|
+
`, ra = d(H)`
|
|
293
293
|
&& {
|
|
294
294
|
font-size: ${(t) => {
|
|
295
295
|
var e;
|
|
@@ -308,7 +308,7 @@ const at = ({
|
|
|
308
308
|
var e;
|
|
309
309
|
return (e = t.theme.colors) == null ? void 0 : e.text;
|
|
310
310
|
}};
|
|
311
|
-
`, ft = d(
|
|
311
|
+
`, ft = d(ee)`
|
|
312
312
|
display: flex;
|
|
313
313
|
align-items: center;
|
|
314
314
|
|
|
@@ -340,20 +340,20 @@ const at = ({
|
|
|
340
340
|
addFavoriteTooltip: t,
|
|
341
341
|
removeFavoriteCancelLabel: e,
|
|
342
342
|
removeFavoriteConfirmLabel: a,
|
|
343
|
-
removeFavoriteHeader:
|
|
343
|
+
removeFavoriteHeader: o,
|
|
344
344
|
removeFavoriteLabel: s,
|
|
345
345
|
removeFavoriteTooltip: i,
|
|
346
|
-
id:
|
|
346
|
+
id: r,
|
|
347
347
|
isFavorite: c,
|
|
348
348
|
guideTitle: m,
|
|
349
349
|
buttonLabel: f = "",
|
|
350
350
|
actions: { addFavorite: u, removeFavorite: l }
|
|
351
351
|
}) => {
|
|
352
352
|
const h = z(() => {
|
|
353
|
-
l(
|
|
354
|
-
}, [
|
|
355
|
-
u(
|
|
356
|
-
}, [
|
|
353
|
+
l(r);
|
|
354
|
+
}, [r, l]), E = z(() => {
|
|
355
|
+
u(r);
|
|
356
|
+
}, [r, u]), g = `${c ? i : t}${m ? `: "${m}"` : ""}`;
|
|
357
357
|
return /* @__PURE__ */ n.createElement(n.Fragment, null, c ? /* @__PURE__ */ n.createElement(
|
|
358
358
|
Ke,
|
|
359
359
|
{
|
|
@@ -374,12 +374,12 @@ const at = ({
|
|
|
374
374
|
symbol: { type: "Svg", content: "star-empty" }
|
|
375
375
|
}
|
|
376
376
|
),
|
|
377
|
-
f && /* @__PURE__ */ n.createElement(
|
|
377
|
+
f && /* @__PURE__ */ n.createElement(U, null, f)
|
|
378
378
|
),
|
|
379
379
|
onConfirm: h,
|
|
380
380
|
cancelLabel: e,
|
|
381
381
|
confirmLabel: a,
|
|
382
|
-
header:
|
|
382
|
+
header: o,
|
|
383
383
|
text: s
|
|
384
384
|
}
|
|
385
385
|
) : /* @__PURE__ */ n.createElement(
|
|
@@ -394,7 +394,7 @@ const at = ({
|
|
|
394
394
|
"data-has-symbol": "true"
|
|
395
395
|
},
|
|
396
396
|
/* @__PURE__ */ n.createElement(N, { size: 16, symbol: { type: "Svg", content: "star-empty" } }),
|
|
397
|
-
f && /* @__PURE__ */ n.createElement(
|
|
397
|
+
f && /* @__PURE__ */ n.createElement(U, null, f)
|
|
398
398
|
));
|
|
399
399
|
}, gt = ht, me = d(ft)`
|
|
400
400
|
grid-area: favorite;
|
|
@@ -421,13 +421,13 @@ const at = ({
|
|
|
421
421
|
}
|
|
422
422
|
|
|
423
423
|
${(t) => {
|
|
424
|
-
var e, a,
|
|
424
|
+
var e, a, o, s, i, r, c;
|
|
425
425
|
return ((e = t.theme.colors) == null ? void 0 : e.text) && $`
|
|
426
426
|
svg {
|
|
427
427
|
stroke: ${(a = t.theme.colors) == null ? void 0 : a.text};
|
|
428
428
|
|
|
429
429
|
path {
|
|
430
|
-
stroke: ${(
|
|
430
|
+
stroke: ${(o = t.theme.colors) == null ? void 0 : o.text};
|
|
431
431
|
}
|
|
432
432
|
|
|
433
433
|
${t["data-favorite"] === "true" && `
|
|
@@ -448,7 +448,7 @@ const at = ({
|
|
|
448
448
|
fill: transparent;
|
|
449
449
|
}
|
|
450
450
|
` : `
|
|
451
|
-
fill: ${(
|
|
451
|
+
fill: ${(r = t.theme.colors) == null ? void 0 : r.text};
|
|
452
452
|
|
|
453
453
|
path {
|
|
454
454
|
fill: ${(c = t.theme.colors) == null ? void 0 : c.text};
|
|
@@ -465,10 +465,10 @@ const at = ({
|
|
|
465
465
|
},
|
|
466
466
|
direction: e = "horizontal",
|
|
467
467
|
className: a,
|
|
468
|
-
header:
|
|
468
|
+
header: o,
|
|
469
469
|
positive: s,
|
|
470
470
|
negative: i,
|
|
471
|
-
selected:
|
|
471
|
+
selected: r
|
|
472
472
|
} = u, c = w(u, [
|
|
473
473
|
"onFeedback",
|
|
474
474
|
"direction",
|
|
@@ -486,14 +486,13 @@ const at = ({
|
|
|
486
486
|
}, xe(c)), {
|
|
487
487
|
ref: m
|
|
488
488
|
}),
|
|
489
|
-
!!
|
|
489
|
+
!!o && /* @__PURE__ */ n.createElement(pt, null, o),
|
|
490
490
|
/* @__PURE__ */ n.createElement(
|
|
491
491
|
de,
|
|
492
492
|
{
|
|
493
493
|
className: "humany-feedback-button",
|
|
494
|
-
disabled: !!
|
|
495
|
-
"
|
|
496
|
-
"data-selected": o === "positive",
|
|
494
|
+
disabled: !!r,
|
|
495
|
+
"data-selected": r === "positive",
|
|
497
496
|
"data-direction": e,
|
|
498
497
|
onClick: () => t("positive")
|
|
499
498
|
},
|
|
@@ -504,9 +503,8 @@ const at = ({
|
|
|
504
503
|
de,
|
|
505
504
|
{
|
|
506
505
|
className: "humany-feedback-button",
|
|
507
|
-
disabled: !!
|
|
508
|
-
"
|
|
509
|
-
"data-selected": o === "negative",
|
|
506
|
+
disabled: !!r,
|
|
507
|
+
"data-selected": r === "negative",
|
|
510
508
|
"data-direction": e,
|
|
511
509
|
onClick: () => t("negative")
|
|
512
510
|
},
|
|
@@ -515,7 +513,7 @@ const at = ({
|
|
|
515
513
|
)
|
|
516
514
|
);
|
|
517
515
|
}
|
|
518
|
-
), pt = d(
|
|
516
|
+
), pt = d(U)`
|
|
519
517
|
font-weight: normal;
|
|
520
518
|
margin: 0 0 ${(t) => {
|
|
521
519
|
var e;
|
|
@@ -526,7 +524,7 @@ const at = ({
|
|
|
526
524
|
return (e = t.theme.fonts) == null ? void 0 : e.normal;
|
|
527
525
|
}};
|
|
528
526
|
display: block;
|
|
529
|
-
`, de = d(
|
|
527
|
+
`, de = d(ee)`
|
|
530
528
|
display: inline-block;
|
|
531
529
|
font-size: ${(t) => {
|
|
532
530
|
var e;
|
|
@@ -581,14 +579,14 @@ const at = ({
|
|
|
581
579
|
`;
|
|
582
580
|
}}
|
|
583
581
|
`, $t = () => {
|
|
584
|
-
const [t, e] = T(null), a = W("ArrowLeft"),
|
|
582
|
+
const [t, e] = T(null), a = W("ArrowLeft"), o = W("ArrowRight"), s = W("ArrowUp"), i = W("ArrowDown");
|
|
585
583
|
return K(() => {
|
|
586
|
-
e(a ? "left" :
|
|
587
|
-
}, [a,
|
|
584
|
+
e(a ? "left" : o ? "right" : s ? "up" : i ? "down" : null);
|
|
585
|
+
}, [a, o, s, i]), t;
|
|
588
586
|
}, la = $t, vt = (t, e) => {
|
|
589
|
-
const [a,
|
|
590
|
-
|
|
591
|
-
}, e), [e,
|
|
587
|
+
const [a, o] = T(t), s = z(() => setTimeout(() => {
|
|
588
|
+
o(t);
|
|
589
|
+
}, e), [e, o, t]);
|
|
592
590
|
return K(
|
|
593
591
|
() => {
|
|
594
592
|
const i = s();
|
|
@@ -599,17 +597,17 @@ const at = ({
|
|
|
599
597
|
[s]
|
|
600
598
|
), a;
|
|
601
599
|
}, ca = vt, xt = () => {
|
|
602
|
-
const t = Ve(), [e, a] = T([]),
|
|
600
|
+
const t = Ve(), [e, a] = T([]), o = t.get("favorites");
|
|
603
601
|
K(() => {
|
|
604
|
-
if (
|
|
605
|
-
a(
|
|
602
|
+
if (o) {
|
|
603
|
+
a(o.get());
|
|
606
604
|
const { events: m } = t.get("$widget");
|
|
607
605
|
return m.subscribe("widget:favorites-updated", (u, { updated: l }) => {
|
|
608
606
|
a([...l]);
|
|
609
607
|
});
|
|
610
608
|
}
|
|
611
609
|
}, []);
|
|
612
|
-
const s = (m) =>
|
|
610
|
+
const s = (m) => o ? o.add(m) : Promise.resolve([]), i = (m) => o ? o.remove(m) : Promise.resolve([]), r = () => o ? o.clear() : Promise.resolve([]), c = z(
|
|
613
611
|
(m) => e.indexOf(m) > -1 ? i(m) : s(m),
|
|
614
612
|
[e]
|
|
615
613
|
);
|
|
@@ -619,30 +617,30 @@ const at = ({
|
|
|
619
617
|
() => ({
|
|
620
618
|
addFavorite: s,
|
|
621
619
|
removeFavorite: i,
|
|
622
|
-
clearFavorites:
|
|
620
|
+
clearFavorites: r,
|
|
623
621
|
toggleFavorite: c
|
|
624
622
|
}),
|
|
625
623
|
[e]
|
|
626
624
|
)
|
|
627
625
|
];
|
|
628
626
|
}, bt = xt, ma = () => {
|
|
629
|
-
const [t, e] = T(!1), a = Ee(),
|
|
630
|
-
return le("mouseenter",
|
|
627
|
+
const [t, e] = T(!1), a = Ee(), o = z(() => e(!0), [e]), s = z(() => e(!1), [e]);
|
|
628
|
+
return le("mouseenter", o, a.current), le("mouseleave", s, a.current), [t, a];
|
|
631
629
|
}, wt = ({
|
|
632
630
|
format: t = be.YYYY_MM_DD_HH_MM,
|
|
633
631
|
className: e = "",
|
|
634
632
|
byLabel: a = "",
|
|
635
|
-
modifiedLabel:
|
|
633
|
+
modifiedLabel: o = "",
|
|
636
634
|
publishedLabel: s = "",
|
|
637
635
|
modifiedBy: i = "",
|
|
638
|
-
publishedBy:
|
|
636
|
+
publishedBy: r = "",
|
|
639
637
|
showModified: c = !1,
|
|
640
638
|
showPublished: m = !1,
|
|
641
639
|
modified: f,
|
|
642
640
|
published: u
|
|
643
641
|
}) => {
|
|
644
642
|
const l = m && u ? /* @__PURE__ */ n.createElement(ue, { format: t, timestamp: u }) : null, h = c && f ? /* @__PURE__ */ n.createElement(ue, { format: t, timestamp: f }) : null;
|
|
645
|
-
return !l && !h ? null : /* @__PURE__ */ n.createElement(
|
|
643
|
+
return !l && !h ? null : /* @__PURE__ */ n.createElement(G, { className: S(e, "humany-metadata") }, l && /* @__PURE__ */ n.createElement(G, { className: "humany-published" }, s, l, a && r && ` ${a.replace("{{editor}}", r)}`), h && /* @__PURE__ */ n.createElement(G, { className: "humany-modified" }, l && ", ", o, h, a && i && ` ${a.replace("{{editor}}", i)}`));
|
|
646
644
|
}, Et = wt, ue = d(we)`
|
|
647
645
|
&:not(:first-child) {
|
|
648
646
|
margin-left: 4px;
|
|
@@ -650,19 +648,19 @@ const at = ({
|
|
|
650
648
|
&:not(:last-child) {
|
|
651
649
|
margin-right: 4px;
|
|
652
650
|
}
|
|
653
|
-
`,
|
|
651
|
+
`, G = d(ve)`
|
|
654
652
|
font-style: italic;
|
|
655
653
|
`, kt = ({ tags: t }) => t.filter((e) => e.symbol).length ? /* @__PURE__ */ n.createElement(
|
|
656
654
|
Nt,
|
|
657
655
|
{
|
|
658
656
|
className: "humany-guide-list-tags",
|
|
659
657
|
items: t,
|
|
660
|
-
renderItem: ({ id: e, symbol: a, title:
|
|
658
|
+
renderItem: ({ id: e, symbol: a, title: o }) => a && /* @__PURE__ */ n.createElement("li", { key: e, "data-tag": e }, /* @__PURE__ */ n.createElement(Lt, { size: 18, symbol: a, title: o }))
|
|
661
659
|
}
|
|
662
|
-
) : null, da = _(({ title: t, id: e, route: a, symbolSize:
|
|
660
|
+
) : null, da = _(({ title: t, id: e, route: a, symbolSize: o, collapseUri: s, children: i }, r) => {
|
|
663
661
|
const { params: c } = ge();
|
|
664
|
-
return /* @__PURE__ */ n.createElement(zt, { ref:
|
|
665
|
-
|
|
662
|
+
return /* @__PURE__ */ n.createElement(zt, { ref: r, "data-guide": e }, /* @__PURE__ */ n.createElement(
|
|
663
|
+
J,
|
|
666
664
|
{
|
|
667
665
|
title: t,
|
|
668
666
|
"aria-label": t,
|
|
@@ -675,7 +673,7 @@ const at = ({
|
|
|
675
673
|
})),
|
|
676
674
|
text: t
|
|
677
675
|
},
|
|
678
|
-
/* @__PURE__ */ n.createElement(N, { size:
|
|
676
|
+
/* @__PURE__ */ n.createElement(N, { size: o, symbol: { type: "Svg", content: "caret-up" } })
|
|
679
677
|
), i);
|
|
680
678
|
}), zt = d.li`
|
|
681
679
|
> a {
|
|
@@ -692,14 +690,14 @@ const at = ({
|
|
|
692
690
|
}
|
|
693
691
|
`, ua = _(
|
|
694
692
|
(Gt, Fe) => {
|
|
695
|
-
var
|
|
693
|
+
var te = Gt, {
|
|
696
694
|
expandable: t = !1,
|
|
697
695
|
routing: e = {},
|
|
698
696
|
paramMappers: a = {},
|
|
699
|
-
symbolSize:
|
|
697
|
+
symbolSize: o = 11,
|
|
700
698
|
pageRole: s = "link",
|
|
701
699
|
pageCaret: i = "down",
|
|
702
|
-
showTags:
|
|
700
|
+
showTags: r = !1,
|
|
703
701
|
showFavoriteToggle: c = !1,
|
|
704
702
|
localPaging: m = !1,
|
|
705
703
|
onItemClick: f = () => {
|
|
@@ -718,7 +716,7 @@ const at = ({
|
|
|
718
716
|
removeFavoriteHeader: Se,
|
|
719
717
|
removeFavoriteLabel: Ne,
|
|
720
718
|
removeFavoriteTooltip: Le
|
|
721
|
-
} =
|
|
719
|
+
} = te, De = w(te, [
|
|
722
720
|
"expandable",
|
|
723
721
|
"routing",
|
|
724
722
|
"paramMappers",
|
|
@@ -743,13 +741,13 @@ const at = ({
|
|
|
743
741
|
"removeFavoriteLabel",
|
|
744
742
|
"removeFavoriteTooltip"
|
|
745
743
|
]);
|
|
746
|
-
const
|
|
744
|
+
const ae = qe(), F = Ee(), I = Ge(v), { guide: Ie = "guide", page: Ae = "index" } = e, {
|
|
747
745
|
guide: Te = ({ id: p }) => j({ guide: p }),
|
|
748
746
|
page: ne = () => j()
|
|
749
747
|
} = a, [Ce, Me] = bt();
|
|
750
748
|
et(Fe, () => F.current);
|
|
751
|
-
const
|
|
752
|
-
const { id: b, title: x, tags: D, published: P, modified: A, publishedBy: B, modifiedBy:
|
|
749
|
+
const V = (p) => {
|
|
750
|
+
const { id: b, title: x, tags: D, published: P, modified: A, publishedBy: B, modifiedBy: q } = p;
|
|
753
751
|
return /* @__PURE__ */ n.createElement(
|
|
754
752
|
"li",
|
|
755
753
|
{
|
|
@@ -758,7 +756,7 @@ const at = ({
|
|
|
758
756
|
"has-metadata": (!!(l != null && l.showPublished) && !!P || !!(l != null && l.showModified) && !!A).toString()
|
|
759
757
|
},
|
|
760
758
|
/* @__PURE__ */ n.createElement(
|
|
761
|
-
|
|
759
|
+
J,
|
|
762
760
|
{
|
|
763
761
|
className: "humany-guide-link",
|
|
764
762
|
title: x,
|
|
@@ -771,7 +769,7 @@ const at = ({
|
|
|
771
769
|
/* @__PURE__ */ n.createElement(
|
|
772
770
|
N,
|
|
773
771
|
{
|
|
774
|
-
size:
|
|
772
|
+
size: o,
|
|
775
773
|
symbol: {
|
|
776
774
|
type: "Svg",
|
|
777
775
|
content: t ? "caret-down" : "caret-right"
|
|
@@ -794,21 +792,21 @@ const at = ({
|
|
|
794
792
|
id: b
|
|
795
793
|
}
|
|
796
794
|
),
|
|
797
|
-
|
|
795
|
+
r && /* @__PURE__ */ n.createElement(kt, { tags: D }),
|
|
798
796
|
/* @__PURE__ */ n.createElement(
|
|
799
797
|
Dt,
|
|
800
798
|
k(y({}, l), {
|
|
801
|
-
indent: t ? void 0 :
|
|
799
|
+
indent: t ? void 0 : o,
|
|
802
800
|
modified: A,
|
|
803
801
|
published: P,
|
|
804
802
|
publishedBy: B,
|
|
805
|
-
modifiedBy:
|
|
803
|
+
modifiedBy: q
|
|
806
804
|
})
|
|
807
805
|
)
|
|
808
806
|
);
|
|
809
807
|
}, Pe = z(
|
|
810
|
-
(p, b, x) => L ? L(p, b, x,
|
|
811
|
-
[L,
|
|
808
|
+
(p, b, x) => L ? L(p, b, x, V) : V(p),
|
|
809
|
+
[L, V]
|
|
812
810
|
), Be = z(
|
|
813
811
|
(p) => {
|
|
814
812
|
m && (p.preventDefault(), u("page", ne()));
|
|
@@ -816,7 +814,7 @@ const at = ({
|
|
|
816
814
|
[u, m]
|
|
817
815
|
);
|
|
818
816
|
K(() => {
|
|
819
|
-
if (
|
|
817
|
+
if (I && I.length < v.length && F.current) {
|
|
820
818
|
const p = F.current.querySelectorAll(".humany-guide-list > ul > li"), b = p[I.length];
|
|
821
819
|
if (p.length === v.length && I.length) {
|
|
822
820
|
const x = p[I.length];
|
|
@@ -832,8 +830,8 @@ const at = ({
|
|
|
832
830
|
if (A.addedNodes) {
|
|
833
831
|
const B = Array.from(
|
|
834
832
|
A.addedNodes
|
|
835
|
-
).find((
|
|
836
|
-
B && tt(F.current, document.activeElement) && (
|
|
833
|
+
).find((q) => q.tagName === "A");
|
|
834
|
+
B && tt(F.current, document.activeElement) && (ae && B.focus(), P.disconnect());
|
|
837
835
|
}
|
|
838
836
|
});
|
|
839
837
|
}).observe(b, {
|
|
@@ -856,14 +854,14 @@ const at = ({
|
|
|
856
854
|
"data-item-count": v.length,
|
|
857
855
|
items: v,
|
|
858
856
|
renderItem: Pe,
|
|
859
|
-
isTabbing:
|
|
857
|
+
isTabbing: ae,
|
|
860
858
|
expandable: t ? "true" : "false",
|
|
861
|
-
"grid-items":
|
|
859
|
+
"grid-items": r || c || Re ? "true" : "false"
|
|
862
860
|
}, xe(De)), {
|
|
863
861
|
ref: F
|
|
864
862
|
}),
|
|
865
863
|
h ? /* @__PURE__ */ n.createElement(
|
|
866
|
-
|
|
864
|
+
J,
|
|
867
865
|
{
|
|
868
866
|
text: h,
|
|
869
867
|
title: h,
|
|
@@ -876,7 +874,7 @@ const at = ({
|
|
|
876
874
|
/* @__PURE__ */ n.createElement(
|
|
877
875
|
N,
|
|
878
876
|
{
|
|
879
|
-
size:
|
|
877
|
+
size: o,
|
|
880
878
|
symbol: { type: "Svg", content: `caret-${i}` }
|
|
881
879
|
}
|
|
882
880
|
)
|
|
@@ -897,7 +895,7 @@ const at = ({
|
|
|
897
895
|
text-decoration: none;
|
|
898
896
|
|
|
899
897
|
> div {
|
|
900
|
-
${(t) =>
|
|
898
|
+
${(t) => Z(t)(
|
|
901
899
|
"> h1",
|
|
902
900
|
$`
|
|
903
901
|
white-space: pre-wrap;
|
|
@@ -988,7 +986,7 @@ const at = ({
|
|
|
988
986
|
}}
|
|
989
987
|
|
|
990
988
|
&:focus-visible {
|
|
991
|
-
${
|
|
989
|
+
${Q}
|
|
992
990
|
text-decoration: underline;
|
|
993
991
|
}
|
|
994
992
|
|
|
@@ -1031,11 +1029,11 @@ const at = ({
|
|
|
1031
1029
|
}
|
|
1032
1030
|
|
|
1033
1031
|
&:focus-visible {
|
|
1034
|
-
${
|
|
1032
|
+
${Q}
|
|
1035
1033
|
text-decoration: underline;
|
|
1036
1034
|
}
|
|
1037
1035
|
}
|
|
1038
|
-
`, Nt = d(
|
|
1036
|
+
`, Nt = d(X)`
|
|
1039
1037
|
${pe}
|
|
1040
1038
|
display: flex;
|
|
1041
1039
|
margin: 0 0 0 auto;
|
|
@@ -1158,12 +1156,12 @@ const at = ({
|
|
|
1158
1156
|
"stroke-miterlimit": "10"
|
|
1159
1157
|
}
|
|
1160
1158
|
)))), Bt = Pt, Rt = (i) => {
|
|
1161
|
-
var
|
|
1159
|
+
var r = i, {
|
|
1162
1160
|
className: t,
|
|
1163
1161
|
showHeader: e,
|
|
1164
1162
|
notificationList: a,
|
|
1165
|
-
loading:
|
|
1166
|
-
} =
|
|
1163
|
+
loading: o
|
|
1164
|
+
} = r, s = w(r, [
|
|
1167
1165
|
"className",
|
|
1168
1166
|
"showHeader",
|
|
1169
1167
|
"notificationList",
|
|
@@ -1176,10 +1174,10 @@ const at = ({
|
|
|
1176
1174
|
notifications: h = [],
|
|
1177
1175
|
defaultHeaderOptions: E = { visible: !0 }
|
|
1178
1176
|
} = a || {};
|
|
1179
|
-
return !h.length && !
|
|
1177
|
+
return !h.length && !o ? null : /* @__PURE__ */ n.createElement(
|
|
1180
1178
|
Ht,
|
|
1181
1179
|
k(y({}, s), {
|
|
1182
|
-
"data-loading":
|
|
1180
|
+
"data-loading": o,
|
|
1183
1181
|
"data-show-header": typeof e == "boolean" ? e : E.visible,
|
|
1184
1182
|
className: S(t, "humany-notification-list"),
|
|
1185
1183
|
"data-notification-category": f,
|
|
@@ -1221,9 +1219,9 @@ const at = ({
|
|
|
1221
1219
|
)) : /* @__PURE__ */ n.createElement(fe, { html: L })
|
|
1222
1220
|
)
|
|
1223
1221
|
}),
|
|
1224
|
-
/* @__PURE__ */ n.createElement(Bt, { loading:
|
|
1222
|
+
/* @__PURE__ */ n.createElement(Bt, { loading: o })
|
|
1225
1223
|
);
|
|
1226
|
-
}, Wt = d(
|
|
1224
|
+
}, Wt = d(ee)`
|
|
1227
1225
|
display: flex;
|
|
1228
1226
|
justify-content: space-between;
|
|
1229
1227
|
align-items: center;
|
|
@@ -1251,7 +1249,7 @@ const at = ({
|
|
|
1251
1249
|
white-space: nowrap;
|
|
1252
1250
|
}
|
|
1253
1251
|
&:focus-visible {
|
|
1254
|
-
${
|
|
1252
|
+
${Q}
|
|
1255
1253
|
span {
|
|
1256
1254
|
color: ${(t) => {
|
|
1257
1255
|
var e;
|
|
@@ -1271,7 +1269,7 @@ const at = ({
|
|
|
1271
1269
|
}};
|
|
1272
1270
|
${(t) => !t["data-show-header"] && $`
|
|
1273
1271
|
> div {
|
|
1274
|
-
${
|
|
1272
|
+
${Z(t)(
|
|
1275
1273
|
"h1",
|
|
1276
1274
|
$`
|
|
1277
1275
|
display: none;
|
|
@@ -1297,9 +1295,9 @@ const at = ({
|
|
|
1297
1295
|
display: none;
|
|
1298
1296
|
&:not(:only-child) {
|
|
1299
1297
|
${(t) => {
|
|
1300
|
-
var e, a,
|
|
1298
|
+
var e, a, o;
|
|
1301
1299
|
return ((e = t.theme.sizes) == null ? void 0 : e.cardinal) && ((a = t.theme.sizes) == null ? void 0 : a.normal) && $`
|
|
1302
|
-
margin: ${(
|
|
1300
|
+
margin: ${(o = t.theme.sizes) == null ? void 0 : o.normal} 0;
|
|
1303
1301
|
`;
|
|
1304
1302
|
}}
|
|
1305
1303
|
}
|
|
@@ -1336,29 +1334,29 @@ const at = ({
|
|
|
1336
1334
|
return (e = t.theme.fonts) == null ? void 0 : e.small;
|
|
1337
1335
|
}};
|
|
1338
1336
|
font-weight: 300;
|
|
1339
|
-
`, fa = Rt, _t = (t) => new RegExp("^#", "i").test(t), Kt = (t) => (
|
|
1340
|
-
var s =
|
|
1337
|
+
`, fa = Rt, _t = (t) => new RegExp("^#", "i").test(t), Kt = (t) => (o) => {
|
|
1338
|
+
var s = o, { children: e } = s, a = w(s, ["children"]);
|
|
1341
1339
|
const {
|
|
1342
1340
|
implementation: i,
|
|
1343
|
-
name:
|
|
1341
|
+
name: r
|
|
1344
1342
|
} = t.get("$widget"), { href: c = "" } = a;
|
|
1345
1343
|
if (_t(c))
|
|
1346
1344
|
return /* @__PURE__ */ n.createElement(Qe, { smooth: !0, to: c }, e);
|
|
1347
1345
|
const m = i.bindings.map((l) => l.replace(/\./g, "\\.")).join("|"), u = new RegExp(`^((http[s]?:)?//)?(${m})/([^\\s]+)`).exec(c);
|
|
1348
1346
|
if (u && u.length >= 4) {
|
|
1349
1347
|
const l = u[4];
|
|
1350
|
-
if (i.widgets.get(l) && !l.startsWith("blob?") && !l.startsWith(
|
|
1348
|
+
if (i.widgets.get(l) && !l.startsWith("blob?") && !l.startsWith(r))
|
|
1351
1349
|
return /* @__PURE__ */ n.createElement(Xe, { widgetName: l }, e);
|
|
1352
1350
|
}
|
|
1353
1351
|
return /* @__PURE__ */ n.createElement("a", y({}, a), e);
|
|
1354
1352
|
}, Vt = Kt, qt = (t, e = []) => ({
|
|
1355
1353
|
transform: {
|
|
1356
1354
|
a: (a) => {
|
|
1357
|
-
const c = a, { children:
|
|
1355
|
+
const c = a, { children: o } = c, i = w(c, ["children"])["data-target"];
|
|
1358
1356
|
if (i && e.length) {
|
|
1359
1357
|
const m = e.find(({ connection: f }) => f === i);
|
|
1360
1358
|
if (m)
|
|
1361
|
-
return /* @__PURE__ */ n.createElement(ke, y({}, m),
|
|
1359
|
+
return /* @__PURE__ */ n.createElement(ke, y({}, m), o);
|
|
1362
1360
|
}
|
|
1363
1361
|
return Vt(t)(a);
|
|
1364
1362
|
}
|
|
@@ -1370,7 +1368,7 @@ export {
|
|
|
1370
1368
|
ta as DialogList,
|
|
1371
1369
|
aa as DrawerList,
|
|
1372
1370
|
na as DropdownActions,
|
|
1373
|
-
|
|
1371
|
+
oa as DropdownList,
|
|
1374
1372
|
gt as FavoriteButton,
|
|
1375
1373
|
ia as Feedback,
|
|
1376
1374
|
ua as GuideList,
|
|
@@ -1378,7 +1376,7 @@ export {
|
|
|
1378
1376
|
Tt as LoaderWrapper,
|
|
1379
1377
|
Et as Metadata,
|
|
1380
1378
|
fa as NotificationList,
|
|
1381
|
-
|
|
1379
|
+
ra as SmallCaret,
|
|
1382
1380
|
sa as StyledHeaderText,
|
|
1383
1381
|
ft as StyledListButton,
|
|
1384
1382
|
ha as guideRenderInstructions,
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../src/components/dialog-link.tsx","../src/components/dialog-list.tsx","../src/components/drawer-list.tsx","../src/components/dropdown-actions.tsx","../src/components/dropdown-list.tsx","../src/styles.ts","../src/components/favorite-button.tsx","../src/components/feedback.tsx","../src/hooks/use-arrow-keys.ts","../src/hooks/use-debounce.ts","../src/hooks/use-favorites.ts","../src/hooks/use-hover.ts","../src/components/metadata.tsx","../src/components/guide-list.tsx","../src/components/loader.tsx","../src/components/notification-list.tsx","../src/utils/embedded-link-mapper.tsx","../src/utils/guide-render-instructions.tsx"],"sourcesContent":["import { Icon, Link, useRouteData } from '@telia-ace/widget-ui';\nimport { appendClassNames, createParams, formatUrl } from '@telia-ace/widget-utilities';\nimport React from 'react';\nimport { LinkProps } from '../missing-type-exports';\n\nexport type Props = Merge<\n LinkProps,\n {\n parent: {\n id: string;\n title: string;\n };\n type: 'guide' | 'link' | 'default';\n connection?: string;\n connectionKey?: string;\n }\n>;\n\nconst DialogLink: React.FC<Props> = ({\n title = '',\n className,\n id,\n parent,\n connection,\n type,\n target,\n href,\n children,\n connectionKey,\n}) => {\n const props: any = {};\n const { name, params } = useRouteData();\n\n switch (type) {\n case 'default':\n case 'guide':\n const { id: parentId, title: parentTitle } = parent;\n\n let key = connectionKey || connection;\n\n if (parentId !== id && !connectionKey) {\n key = undefined;\n }\n\n props.routeName = name;\n props.params = createParams({\n ...params,\n guide: id,\n connection: key,\n uriName: id === parentId ? formatUrl(parentTitle) : formatUrl(title),\n });\n break;\n case 'link':\n props.href = href;\n props.target = target;\n break;\n }\n\n return (\n <Link className={appendClassNames(className, 'humany-dialog-link')} {...props}>\n {children || (\n <>\n {type === 'link' && <Icon faIcon=\"link\" />}\n <span>{title}</span>\n </>\n )}\n </Link>\n );\n};\n\nexport default DialogLink;\n","import styled from '@emotion/styled';\nimport { invertedHoverButton, List, list } from '@telia-ace/widget-ui';\nimport { appendClassNames } from '@telia-ace/widget-utilities';\nimport React, { forwardRef } from 'react';\nimport DialogLink, { Props as DialogLinkProps } from './dialog-link';\n\n// type Props = Merge<\n// React.ComponentProps<'ul'>,\n// {\n// dialog: DialogLinkProps[];\n// }\n// >;\ntype Props = {\n dialog: DialogLinkProps[];\n} & any;\n\nexport default forwardRef<HTMLUListElement, Props>(({ className, dialog, ...other }, ref) => {\n return !!dialog.length ? (\n <StyledList\n className={appendClassNames(className, 'humany-dialog')}\n items={dialog}\n renderItem={(item: DialogLinkProps) => (\n <li key={item.connection} data-dialog={item.connection}>\n <DialogLink {...item} />\n </li>\n )}\n {...other}\n ref={ref}\n />\n ) : null;\n});\n\nconst StyledList = styled(List)`\n ${list}\n a {\n min-width: 150px;\n max-width: 400px;\n display: block;\n white-space: normal;\n ${(p) =>\n p.theme.colors?.primary &&\n invertedHoverButton({\n primaryColor: p.theme.colors?.primary,\n secondaryColor: '#FFFFFF',\n theme: p.theme,\n })}\n }\n\n i {\n margin: 0 ${(p) => p.theme.sizes?.small} 0 0;\n }\n`;\n","import styled from '@emotion/styled';\nimport { Drawer, ItemList, itemList } from '@telia-ace/widget-ui';\nimport { appendClassNames } from '@telia-ace/widget-utilities';\nimport React from 'react';\nimport { DrawerProps, ItemListProps } from '../missing-type-exports';\n\ntype Props = Merge<ItemListProps, DrawerProps>;\n\nconst DrawerList: React.FC<Props> = ({\n trigger,\n header,\n className,\n animation,\n fullScreen,\n onToggle,\n children,\n ref,\n closeButtonAriaLabel,\n ...other\n}) => {\n return (\n <Drawer\n className={appendClassNames(className, 'humany-drawer-list')}\n trigger={trigger}\n header={header}\n animation={animation}\n fullScreen={fullScreen}\n onToggle={onToggle}\n closeButtonAriaLabel={closeButtonAriaLabel}\n >\n <StyledItemList {...other}>{children}</StyledItemList>\n </Drawer>\n );\n};\n\nexport default DrawerList;\n\nconst StyledItemList = styled(ItemList)<any>`\n ${itemList}\n font-family: ${(p) => p.theme.fonts?.type};\n padding: ${(p) => p.theme.sizes?.medium};\n > ul > li {\n overflow: visible;\n font-weight: 300;\n font-size: ${(p) => p.theme.fonts?.normal};\n }\n`;\n","import styled from '@emotion/styled';\nimport { Dropdown, ItemRenderer, List } from '@telia-ace/widget-ui';\nimport React from 'react';\n\ntype Props = {\n trigger: React.ReactElement;\n header?: React.ReactElement;\n items?: any[];\n renderItem?: ItemRenderer;\n className?: string;\n children?: React.ReactNode;\n};\n\nconst DropdownActions: React.FC<Props> = ({ items, renderItem, trigger, header, children }) => {\n return (\n <Dropdown className=\"humany-dropdown-actions\" trigger={trigger}>\n <Wrapper>\n {!!header && <Header>{header}</Header>}\n {items && renderItem && (\n <StyledList items={items} renderItem={renderItem}></StyledList>\n )}\n {children}\n </Wrapper>\n </Dropdown>\n );\n};\n\nexport default DropdownActions;\n\nconst Wrapper = styled.div`\n background: #fff;\n border: #ccc 1px solid;\n box-shadow: 0px 0px 10px rgba(0, 0, 0, 0.1);\n font-family: ${(p) => p.theme.fonts?.type};\n font-size: ${(p) => p.theme.fonts?.normal};\n`;\n\nconst Header = styled.div`\n padding: ${(p) => p.theme.sizes?.normal};\n padding-bottom: 0;\n font-size: ${(p) => p.theme.fonts?.normal};\n font-weight: normal;\n white-space: nowrap;\n display: flex;\n align-items: center;\n\n h1,\n h2,\n h3,\n h4,\n h5,\n h6 {\n margin: 0;\n font-weight: normal;\n padding-bottom: 0;\n }\n\n svg,\n i {\n margin-right: ${(p) => p.theme.sizes?.small};\n }\n`;\n\nconst StyledList = styled(List)`\n list-style: none;\n padding: 0;\n margin: 0;\n padding: ${(p) => p.theme.sizes?.small} 0;\n\n li {\n background: #fff;\n\n a {\n display: block;\n font-size: ${(p) => p.theme.fonts?.small};\n padding: ${(p) => `${p.theme.sizes?.small} ${p.theme.sizes?.normal}`};\n cursor: pointer;\n color: #555;\n text-decoration: none;\n\n &:hover {\n background: #f9f9f9;\n color: ${(p) => p.theme.colors?.primary};\n }\n }\n }\n`;\n","import { css } from '@emotion/react';\nimport styled from '@emotion/styled';\nimport { Dropdown, headingElement, ItemList, itemList } from '@telia-ace/widget-ui';\nimport { appendClassNames } from '@telia-ace/widget-utilities';\nimport React from 'react';\nimport { DropdownProps, ItemListProps } from '../missing-type-exports';\n\nexport type Props = Merge<DropdownProps, ItemListProps>;\n\nconst DropdownList: React.FC<Props> = ({\n trigger,\n className,\n children,\n closeButtonAriaLabel,\n ...other\n}) => {\n return (\n <Dropdown\n className={appendClassNames(className, 'humany-dropdown-list')}\n closeButtonAriaLabel={closeButtonAriaLabel}\n trigger={trigger}\n >\n <StyledItemList {...other}>{children}</StyledItemList>\n </Dropdown>\n );\n};\n\nexport default DropdownList;\n\nconst StyledItemList = styled(ItemList)<any>`\n ${itemList}\n font-family: ${(p) => p.theme.fonts?.type};\n > div {\n ${(p) =>\n headingElement(p)(\n '> h1',\n css`\n font-size: ${p.theme.fonts?.normal};\n line-height: 1.2em;\n `\n )}\n }\n > ul > li {\n overflow: visible;\n font-weight: 300;\n font-size: ${(p) => p.theme.fonts?.normal};\n\n a {\n display: inline-block;\n\n @media (hover: hover) {\n &:hover {\n text-decoration: underline;\n }\n }\n }\n }\n`;\n","import { css } from '@emotion/react';\nimport styled from '@emotion/styled';\nimport { Button, Icon, paddedBorderTabStyle, Text } from '@telia-ace/widget-ui';\n\nexport const loadingOpacity = (p: { 'data-loading': boolean }) => css`\n ${p['data-loading'] && 'position: relative;'};\n ${p['data-loading'] && 'min-height: 150px;'}\n > * {\n transition: 200ms ease-out opacity;\n opacity: ${p['data-loading'] ? '0.5' : '1'};\n }\n .humany-loader {\n opacity: ${p['data-loading'] ? '1' : '0'};\n }\n`;\n\nexport const SmallCaret = styled(Icon as any)`\n && {\n font-size: ${(p) => p.theme.fonts?.small};\n }\n width: 1.2em;\n`;\n\nexport const StyledHeaderText = styled(Text as any)`\n font-size: ${(p) => p.theme.fonts?.medium};\n font-weight: normal;\n line-height: 1.2em;\n color: ${(p) => p.theme.colors?.text};\n`;\n\nexport const StyledListButton = styled(Button as any)<any>`\n display: flex;\n align-items: center;\n\n ${(p: any) =>\n p['data-has-label'] === 'true' &&\n p['data-has-symbol'] === 'true' &&\n `\n svg, i {\n margin: 0 ${p.theme.sizes?.small} 0 0;\n }\n `}\n\n &:focus-visible {\n ${(p: any) => p['data-has-label'] === 'true' && paddedBorderTabStyle}\n\n svg, i {\n ${(p: any) =>\n p['data-has-label'] === 'false' &&\n p['data-has-symbol'] === 'true' &&\n css`\n ${paddedBorderTabStyle(p)}\n box-sizing: content-box;\n `}\n }\n }\n\n span {\n flex: 1;\n font-weight: 300;\n }\n`;\n","import { css } from '@emotion/react';\nimport styled from '@emotion/styled';\nimport { Confirm, StyledText, SymbolBadge } from '@telia-ace/widget-ui';\nimport React, { useCallback } from 'react';\nimport { FavoriteActions } from '../hooks';\nimport { StyledListButton } from '../styles';\n\ntype Props = {\n isFavorite: boolean;\n actions: FavoriteActions;\n id: string;\n addFavoriteTooltip?: string;\n removeFavoriteCancelLabel?: string;\n removeFavoriteConfirmLabel?: string;\n removeFavoriteHeader?: string;\n removeFavoriteLabel?: string;\n removeFavoriteTooltip?: string;\n buttonLabel?: string;\n guideTitle?: string;\n};\n\nconst FavoriteButton: React.FC<Props> = ({\n addFavoriteTooltip,\n removeFavoriteCancelLabel,\n removeFavoriteConfirmLabel,\n removeFavoriteHeader,\n removeFavoriteLabel,\n removeFavoriteTooltip,\n id,\n isFavorite,\n guideTitle,\n buttonLabel = '',\n actions: { addFavorite, removeFavorite },\n}) => {\n const remove = useCallback(() => {\n removeFavorite(id);\n }, [id, removeFavorite]);\n\n const add = useCallback(() => {\n addFavorite(id);\n }, [id, addFavorite]);\n\n const tooltip = `${isFavorite ? removeFavoriteTooltip : addFavoriteTooltip}${\n guideTitle ? `: \"${guideTitle}\"` : ''\n }`;\n\n return (\n <>\n {isFavorite ? (\n <Confirm\n trigger={\n <StyledButton\n className=\"humany-favorite-button\"\n title={tooltip}\n aria-label={tooltip}\n data-favorite=\"true\"\n data-has-label={buttonLabel ? 'true' : 'false'}\n data-has-symbol=\"true\"\n >\n <SymbolBadge\n size={16}\n symbol={{ type: 'Svg', content: 'star-empty' }}\n />\n {buttonLabel && <StyledText>{buttonLabel}</StyledText>}\n </StyledButton>\n }\n onConfirm={remove}\n cancelLabel={removeFavoriteCancelLabel}\n confirmLabel={removeFavoriteConfirmLabel}\n header={removeFavoriteHeader}\n text={removeFavoriteLabel}\n />\n ) : (\n <StyledButton\n className=\"humany-favorite-button\"\n title={tooltip}\n aria-label={tooltip}\n onClick={add}\n data-favorite=\"false\"\n data-has-label={buttonLabel ? 'true' : 'false'}\n data-has-symbol=\"true\"\n >\n <SymbolBadge size={16} symbol={{ type: 'Svg', content: 'star-empty' }} />\n {buttonLabel && <StyledText>{buttonLabel}</StyledText>}\n </StyledButton>\n )}\n </>\n );\n};\n\nexport default FavoriteButton;\n\nconst StyledButton = styled(StyledListButton)`\n grid-area: favorite;\n\n &:focus-visible {\n svg {\n ${(p: any) =>\n p['data-favorite'] === 'true'\n ? `\n fill: transparent;\n\n path {\n fill: transparent;\n }\n `\n : `\n fill: ${p.theme.colors?.text};\n\n path {\n fill: ${p.theme.colors?.text};\n }\n `}\n }\n }\n\n ${(p: any) =>\n p.theme.colors?.text &&\n css`\n svg {\n stroke: ${p.theme.colors?.text};\n\n path {\n stroke: ${p.theme.colors?.text};\n }\n\n ${p['data-favorite'] === 'true' &&\n `\n fill: ${p.theme.colors?.text};\n\n path {\n fill: ${p.theme.colors?.text};\n }\n `}\n }\n\n &:hover {\n svg {\n ${p['data-favorite'] === 'true'\n ? `\n fill: transparent;\n\n path {\n fill: transparent;\n }\n `\n : `\n fill: ${p.theme.colors?.text};\n\n path {\n fill: ${p.theme.colors?.text};\n }\n `}\n }\n }\n `}\n`;\n","import { css } from '@emotion/react';\nimport styled from '@emotion/styled';\nimport {\n Button,\n convertToStringAttributes,\n Icon,\n invertedHoverButton,\n StyledText,\n} from '@telia-ace/widget-ui';\nimport { appendClassNames } from '@telia-ace/widget-utilities';\nimport React, { forwardRef } from 'react';\n\nexport type Props = {\n onFeedback?: (feedback: 'positive' | 'negative') => void;\n positive?: string;\n negative?: string;\n header?: string;\n selected?: 'positive' | 'negative';\n direction?: 'horizontal' | 'vertical';\n} & any;\n\n// export type Props = Merge<\n// React.ComponentProps<'div'>,\n// {\n// onFeedback?: (feedback: 'positive' | 'negative') => void;\n// positive?: string;\n// negative?: string;\n// header?: string;\n// selected?: 'positive' | 'negative';\n// direction?: 'horizontal' | 'vertical';\n// }\n// >;\n\nexport default forwardRef<HTMLDivElement, Props>(\n (\n {\n onFeedback = () => {},\n direction = 'horizontal',\n className,\n header,\n positive,\n negative,\n selected,\n ...other\n },\n ref\n ) => {\n return (\n <Wrapper\n className={appendClassNames(className, 'humany-feedback')}\n data-direction={direction}\n {...convertToStringAttributes(other)}\n ref={ref}\n >\n {!!header && <Header>{header}</Header>}\n <FeedbackButton\n className=\"humany-feedback-button\"\n disabled={!!selected}\n aria-pressed={selected === 'positive'}\n data-selected={selected === 'positive'}\n data-direction={direction}\n onClick={() => onFeedback('positive')}\n >\n <Icon faIcon=\"smile-o\" />\n <span>{positive}</span>\n </FeedbackButton>\n <FeedbackButton\n className=\"humany-feedback-button\"\n disabled={!!selected}\n aria-pressed={selected === 'negative'}\n data-selected={selected === 'negative'}\n data-direction={direction}\n onClick={() => onFeedback('negative')}\n >\n <Icon faIcon=\"frown-o\" />\n <span>{negative}</span>\n </FeedbackButton>\n </Wrapper>\n );\n }\n);\n\nconst Header = styled(StyledText)`\n font-weight: normal;\n margin: 0 0 ${(p) => p.theme.sizes?.normal};\n font-size: ${(p) => p.theme.fonts?.normal};\n display: block;\n`;\n\nconst FeedbackButton = styled(Button)<{\n 'data-selected': boolean;\n 'data-direction': 'horizontal' | 'vertical';\n}>`\n display: inline-block;\n font-size: ${(p) => p.theme.fonts?.normal};\n font-weight: 300;\n && {\n margin-right: ${(p) => p.theme.sizes?.large};\n }\n\n ${(p) =>\n p['data-direction'] === 'horizontal' &&\n css`\n width: 225px;\n max-width: calc(50% - ${p.theme.sizes?.large} - ${p.theme.sizes?.small});\n `}\n\n ${(p) =>\n p['data-direction'] === 'vertical' &&\n css`\n min-width: 190px;\n `}\n\n ${(p) =>\n p.theme.colors?.primary &&\n invertedHoverButton({\n active: p['data-selected'],\n primaryColor: p.theme.colors?.primary,\n secondaryColor: '#FFFFFF',\n theme: p.theme,\n })}\n\n i {\n margin: 0 ${(p) => p.theme.sizes?.small} 0 0;\n }\n`;\n\nconst Wrapper = styled.div<{ 'data-direction': 'horizontal' | 'vertical' } & any>`\n ${(p) =>\n p['data-direction'] === 'vertical' &&\n css`\n > button {\n width: 100%;\n &:not(:last-child) {\n margin-bottom: ${p.theme.sizes?.normal};\n }\n }\n `}\n`;\n","import { useKeyPress } from '@telia-ace/widget-ui';\nimport { useEffect, useState } from 'react';\n\ntype ArrowKey = 'up' | 'down' | 'left' | 'right';\n\nconst useArrowKeys = (): ArrowKey | null => {\n // State for keeping track of whether key is pressed\n const [keyPressed, setKeyPressed] = useState<ArrowKey | null>(null);\n\n const left = useKeyPress('ArrowLeft');\n const right = useKeyPress('ArrowRight');\n const up = useKeyPress('ArrowUp');\n const down = useKeyPress('ArrowDown');\n\n const effect = () => {\n if (left) {\n setKeyPressed('left');\n } else if (right) {\n setKeyPressed('right');\n } else if (up) {\n setKeyPressed('up');\n } else if (down) {\n setKeyPressed('down');\n } else {\n setKeyPressed(null);\n }\n };\n\n useEffect(effect, [left, right, up, down]);\n\n return keyPressed;\n};\n\nexport default useArrowKeys;\n","import { useCallback, useEffect, useState } from 'react';\n\nconst useDebounce = (value: string, delay: number) => {\n // State and setters for debounced value\n const [debouncedValue, setDebouncedValue] = useState(value);\n\n const handler = useCallback(() => {\n // Update debounced value after delay\n return setTimeout(() => {\n setDebouncedValue(value);\n }, delay);\n }, [delay, setDebouncedValue, value]);\n\n useEffect(\n () => {\n const timeout = handler();\n\n // Cancel the timeout if value changes (also on delay change or unmount)\n // This is how we prevent debounced value from updating if value is changed\n // within the delay period. Timeout gets cleared and restarted.\n return () => {\n clearTimeout(timeout);\n };\n },\n [handler] // Only re-call effect if value or delay changes\n );\n\n return debouncedValue;\n};\n\nexport default useDebounce;\n","import { Widget } from '@telia-ace/knowledge-widget-core';\nimport { useContainer } from '@telia-ace/widget-ui';\nimport { useCallback, useEffect, useMemo, useState } from 'react';\n\nexport type FavoriteActions = {\n addFavorite: (guideId: string) => Promise<string[]>;\n clearFavorites: () => Promise<string[]>;\n removeFavorite: (guideId: string) => Promise<string[]>;\n toggleFavorite: (guideId: string) => Promise<string[]>;\n};\n\nconst useFavorites = (): [string[], FavoriteActions] => {\n const container = useContainer();\n const [favorites, setFavorites] = useState<string[]>([]);\n const platform = container.get('favorites');\n\n useEffect(() => {\n if (platform) {\n setFavorites(platform.get());\n\n const { events } = container.get('$widget') as Widget;\n const unsubscribe = events.subscribe('widget:favorites-updated', (_, { updated }) => {\n setFavorites([...updated]);\n });\n\n return unsubscribe;\n }\n }, []);\n\n const add = (guideId: string): Promise<string[]> => {\n if (!platform) {\n return Promise.resolve([]);\n }\n return platform.add(guideId);\n };\n\n const remove = (guideId: string) => {\n if (!platform) {\n return Promise.resolve([]);\n }\n return platform.remove(guideId);\n };\n\n const clear = () => {\n if (!platform) {\n return Promise.resolve([]);\n }\n return platform.clear();\n };\n\n const toggle = useCallback(\n (guideId: string) => {\n if (favorites.indexOf(guideId) > -1) {\n return remove(guideId);\n } else {\n return add(guideId);\n }\n },\n [favorites]\n );\n\n return [\n favorites,\n useMemo(\n () => ({\n addFavorite: add,\n removeFavorite: remove,\n clearFavorites: clear,\n toggleFavorite: toggle,\n }),\n [favorites]\n ),\n ];\n};\n\nexport default useFavorites;\n","import { useEventListener } from '@telia-ace/widget-ui';\nimport { useCallback, useRef, useState } from 'react';\n\nexport default (): [boolean, React.MutableRefObject<HTMLElement | undefined>] => {\n const [hovering, setHovering] = useState(false);\n const elem = useRef<HTMLElement>();\n\n const onMouseEnter = useCallback(() => setHovering(true), [setHovering]);\n\n const onMouseLeave = useCallback(() => setHovering(false), [setHovering]);\n\n useEventListener('mouseenter', onMouseEnter, elem.current);\n\n useEventListener('mouseleave', onMouseLeave, elem.current);\n\n return [hovering, elem];\n};\n","import styled from '@emotion/styled';\nimport { DateFormats, Text, Timestamp } from '@telia-ace/widget-ui';\nimport { appendClassNames } from '@telia-ace/widget-utilities';\nimport React from 'react';\n\nexport type Props = {\n className?: string;\n modified?: string;\n published?: string;\n modifiedBy?: string | null;\n publishedBy?: string | null;\n showModified?: boolean;\n showPublished?: boolean;\n modifiedLabel?: string;\n publishedLabel?: string;\n byLabel?: string;\n format?: DateFormats;\n};\n\nconst Metadata: React.FC<Props> = ({\n format = DateFormats.YYYY_MM_DD_HH_MM,\n className = '',\n byLabel = '',\n modifiedLabel = '',\n publishedLabel = '',\n modifiedBy = '',\n publishedBy = '',\n showModified = false,\n showPublished = false,\n modified,\n published,\n}) => {\n const publishedTimestamp =\n showPublished && published ? (\n <StyledTimestamp format={format} timestamp={published} />\n ) : null;\n const modifiedTimestamp =\n showModified && modified ? <StyledTimestamp format={format} timestamp={modified} /> : null;\n\n if (!publishedTimestamp && !modifiedTimestamp) {\n return null;\n }\n\n return (\n <StyledText className={appendClassNames(className, 'humany-metadata')}>\n {publishedTimestamp && (\n <StyledText className=\"humany-published\">\n {publishedLabel}\n {publishedTimestamp}\n {byLabel && publishedBy && ` ${byLabel.replace('{{editor}}', publishedBy)}`}\n </StyledText>\n )}\n {modifiedTimestamp && (\n <StyledText className=\"humany-modified\">\n {publishedTimestamp && ', '}\n {modifiedLabel}\n {modifiedTimestamp}\n {byLabel && modifiedBy && ` ${byLabel.replace('{{editor}}', modifiedBy)}`}\n </StyledText>\n )}\n </StyledText>\n );\n};\n\nexport default Metadata;\n\nconst StyledTimestamp = styled(Timestamp)`\n &:not(:first-child) {\n margin-left: 4px;\n }\n &:not(:last-child) {\n margin-right: 4px;\n }\n`;\n\nconst StyledText = styled(Text)`\n font-style: italic;\n`;\n","import { css } from '@emotion/react';\nimport styled from '@emotion/styled';\nimport { Guide, Symbol, Tag } from '@telia-ace/knowledge-widget-core';\nimport {\n borderTabStyle,\n convertToStringAttributes,\n DispatchAction,\n headingElement,\n ItemList,\n itemList,\n ItemRenderer,\n List,\n list,\n SymbolBadge,\n TextLink,\n useIsTabbing,\n usePrevious,\n useRouteData,\n} from '@telia-ace/widget-ui';\nimport {\n appendClassNames,\n createParams,\n htmlParentContains,\n Params,\n} from '@telia-ace/widget-utilities';\nimport React, { forwardRef, useCallback, useEffect, useImperativeHandle, useRef } from 'react';\nimport { useFavorites } from '../hooks';\nimport FavoriteButton from './favorite-button';\nimport Metadata, { Props as MetadataProps } from './metadata';\n\ntype Routing = {\n guide?: string;\n page?: string;\n};\n\ntype ParamMappers = {\n guide?: (guide: Guide) => Params;\n page?: () => Params;\n};\n\nexport type Props = {\n paramMappers?: ParamMappers;\n routing?: Routing;\n pageLabel?: string;\n symbolSize?: number;\n renderItem?: ItemRenderer;\n pageRole?: 'link' | 'button';\n pageCaret?: 'right' | 'down';\n showTags?: boolean;\n showFavoriteToggle?: boolean;\n addFavoriteTooltip?: string;\n removeFavoriteCancelLabel?: string;\n removeFavoriteConfirmLabel?: string;\n removeFavoriteHeader?: string;\n removeFavoriteLabel?: string;\n removeFavoriteTooltip?: string;\n metadata?: Partial<MetadataProps>;\n dispatch?: DispatchAction;\n localPaging?: boolean;\n expandable?: boolean;\n onItemClick?: (e: React.MouseEvent, guide: Guide) => void;\n} & any;\n\n// export type Props = Merge<\n// ItemListProps,\n// {\n// paramMappers?: ParamMappers;\n// routing?: Routing;\n// pageLabel?: string;\n// symbolSize?: number;\n// renderItem?: ItemRenderer;\n// pageRole?: 'link' | 'button';\n// pageCaret?: 'right' | 'down';\n// showTags?: boolean;\n// showFavoriteToggle?: boolean;\n// addFavoriteTooltip?: string;\n// removeFavoriteCancelLabel?: string;\n// removeFavoriteConfirmLabel?: string;\n// removeFavoriteHeader?: string;\n// removeFavoriteLabel?: string;\n// removeFavoriteTooltip?: string;\n// metadata?: Partial<MetadataProps>;\n// dispatch?: DispatchAction;\n// localPaging?: boolean;\n// expandable?: boolean;\n// onItemClick?: (e: React.MouseEvent, guide: Guide) => void;\n// }\n// >;\n\nconst Tags: React.FC<{ tags: Tag[] }> = ({ tags }) => {\n if (!tags.filter((t) => t.symbol).length) {\n return null;\n }\n\n return (\n <StyledTagList\n className=\"humany-guide-list-tags\"\n items={tags}\n renderItem={({ id, symbol, title }: Tag) =>\n symbol && (\n <li key={id} data-tag={id}>\n <StyledTagIcon size={18} symbol={symbol} title={title} />\n </li>\n )\n }\n />\n );\n};\n\nexport const AccordionListItem = forwardRef<\n HTMLLIElement,\n {\n title: string;\n id: string;\n route: string;\n symbolSize?: number;\n collapseUri?: string;\n children?: React.ReactNode;\n }\n>(({ title, id, route, symbolSize, collapseUri, children }, ref) => {\n const { params } = useRouteData();\n\n return (\n <ActiveAccordionListItem ref={ref} data-guide={id}>\n <TextLink\n title={title}\n aria-label={title}\n routeName={route}\n params={createParams({\n ...params,\n uriName: collapseUri ? collapseUri : undefined,\n id: undefined,\n guide: undefined,\n accordion: undefined,\n })}\n text={title}\n >\n <SymbolBadge size={symbolSize} symbol={{ type: 'Svg', content: 'caret-up' }} />\n </TextLink>\n {children}\n </ActiveAccordionListItem>\n );\n});\n\nconst ActiveAccordionListItem = styled.li`\n > a {\n grid-column: 1/-1;\n font-weight: bold;\n margin: 0 0 ${(p) => p.theme.sizes?.normal} 0;\n }\n\n > div {\n grid-column: 1/-1;\n }\n`;\n\nexport default forwardRef<HTMLDivElement, Props>(\n (\n {\n expandable = false,\n routing = {},\n paramMappers = {},\n symbolSize = 11,\n pageRole = 'link',\n pageCaret = 'down',\n showTags = false,\n showFavoriteToggle = false,\n localPaging = false,\n onItemClick = () => {},\n dispatch = () => {},\n metadata = {},\n pageLabel,\n className,\n children,\n items,\n renderItem,\n addFavoriteTooltip,\n removeFavoriteCancelLabel,\n removeFavoriteConfirmLabel,\n removeFavoriteHeader,\n removeFavoriteLabel,\n removeFavoriteTooltip,\n ...other\n },\n ref\n ) => {\n const isTabbing = useIsTabbing();\n const innerRef = useRef() as React.MutableRefObject<HTMLElement>;\n const prevItems = usePrevious(items);\n const { guide: guideRoute = 'guide', page: pageRoute = 'index' } = routing;\n const {\n guide: mapGuideParams = ({ id }: Guide) => createParams({ guide: id }),\n page: mapPageParams = () => createParams(),\n } = paramMappers;\n const [favorites, actions] = useFavorites();\n\n useImperativeHandle(ref, () => innerRef.current as any);\n\n const defaultRenderer: ItemRenderer = (guide: Guide) => {\n const { id, title, tags, published, modified, publishedBy, modifiedBy } = guide;\n\n return (\n <li\n key={id}\n data-guide={id}\n has-metadata={(\n (!!metadata?.showPublished && !!published) ||\n (!!metadata?.showModified && !!modified)\n ).toString()}\n >\n <TextLink\n className=\"humany-guide-link\"\n title={title}\n aria-label={title}\n routeName={guideRoute}\n onClick={(e: React.MouseEvent) => onItemClick(e, guide)}\n params={mapGuideParams(guide)}\n text={title}\n >\n <SymbolBadge\n size={symbolSize}\n symbol={{\n type: 'Svg',\n content: expandable ? 'caret-down' : 'caret-right',\n }}\n />\n </TextLink>\n {showFavoriteToggle && (\n <FavoriteButton\n guideTitle={title}\n addFavoriteTooltip={addFavoriteTooltip}\n removeFavoriteCancelLabel={removeFavoriteCancelLabel}\n removeFavoriteConfirmLabel={removeFavoriteConfirmLabel}\n removeFavoriteHeader={removeFavoriteHeader}\n removeFavoriteLabel={removeFavoriteLabel}\n removeFavoriteTooltip={removeFavoriteTooltip}\n isFavorite={favorites.indexOf(id) > -1}\n actions={actions}\n id={id}\n />\n )}\n {showTags && <Tags tags={tags} />}\n <StyledMetadata\n {...metadata}\n indent={expandable ? undefined : symbolSize}\n modified={modified}\n published={published}\n publishedBy={publishedBy}\n modifiedBy={modifiedBy}\n />\n </li>\n );\n };\n\n const renderer = useCallback(\n (guide: Guide, index: number, items: Guide[]) => {\n if (renderItem) {\n return renderItem(guide, index, items, defaultRenderer);\n }\n\n return defaultRenderer(guide, index, items);\n },\n [renderItem, defaultRenderer]\n );\n\n const onPageClick = useCallback(\n (e: React.MouseEvent) => {\n if (localPaging) {\n e.preventDefault();\n dispatch('page', mapPageParams());\n }\n },\n [dispatch, localPaging]\n );\n\n useEffect(() => {\n if (isTabbing && prevItems && prevItems.length < items.length && innerRef.current) {\n const elements = innerRef.current.querySelectorAll('.humany-guide-list > ul > li');\n const listItemElem = elements[prevItems.length] as HTMLElement;\n\n if (elements.length === items.length && prevItems.length) {\n const nextListItem = elements[prevItems.length] as HTMLElement;\n\n if (nextListItem) {\n const focusNext = nextListItem.querySelector(\n '.humany-guide-link'\n ) as HTMLElement | null;\n focusNext && focusNext.focus();\n }\n } else if (listItemElem) {\n const observer = new MutationObserver((mutations, observer) => {\n mutations.forEach((mutation) => {\n if (mutation.addedNodes) {\n const found = Array.from(\n mutation.addedNodes as NodeListOf<HTMLElement>\n ).find((node) => node.tagName === 'A');\n\n if (\n found &&\n htmlParentContains(innerRef.current, document.activeElement)\n ) {\n isTabbing && found.focus();\n observer.disconnect();\n }\n }\n });\n });\n\n observer.observe(listItemElem, {\n attributes: false,\n characterData: false,\n childList: true,\n subtree: true,\n attributeOldValue: false,\n characterDataOldValue: false,\n });\n }\n }\n });\n\n const hasMetaData = !!Object.keys(metadata).filter(\n (k) => typeof (metadata as any)[k] !== 'undefined'\n ).length;\n return (\n <StyledItemList\n className={appendClassNames(className, 'humany-guide-list')}\n data-item-count={items.length}\n items={items}\n renderItem={renderer}\n isTabbing={isTabbing}\n expandable={expandable ? 'true' : 'false'}\n grid-items={showTags || showFavoriteToggle || hasMetaData ? 'true' : 'false'}\n {...convertToStringAttributes(other)}\n ref={innerRef as React.Ref<HTMLDivElement>}\n >\n {pageLabel ? (\n <TextLink\n text={pageLabel}\n title={pageLabel}\n aria-label={pageLabel}\n routeName={pageRoute}\n role={pageRole}\n params={mapPageParams()}\n onClick={onPageClick}\n >\n <SymbolBadge\n size={symbolSize}\n symbol={{ type: 'Svg', content: `caret-${pageCaret}` }}\n />\n </TextLink>\n ) : null}\n {children}\n </StyledItemList>\n );\n }\n);\n\nconst StyledItemList = styled(ItemList)<{\n 'grid-items': 'true' | 'false';\n expandable: 'true' | 'false';\n isTabbing: boolean;\n}>`\n ${itemList}\n padding: ${(p) => p.theme.sizes?.large};\n overflow: auto;\n justify-content: flex-start;\n white-space: nowrap;\n font-weight: 300;\n text-decoration: none;\n\n > div {\n ${(p) =>\n headingElement(p)(\n '> h1',\n css`\n white-space: pre-wrap;\n `\n )}\n }\n\n > ul > li {\n ${(p) =>\n p['grid-items'] === 'true' &&\n css`\n display: grid;\n grid-template-columns: auto 1fr 1fr;\n gap: 0px 0px;\n grid-template-areas: '. favorite tags';\n align-items: center;\n\n > button {\n margin: 0 0 0 ${p.theme.sizes?.small};\n\n &[data-favorite='false'] {\n ${p.isTabbing ? 'opacity: 0;' : 'display: none;'};\n &:focus {\n opacity: 1;\n }\n }\n }\n\n > span {\n font-size: ${p.theme.fonts?.small};\n }\n\n &:hover {\n button[data-favorite='false'] {\n display: flex;\n justify-self: flex-start;\n }\n }\n\n &[has-metadata='true'] {\n grid-template-rows: 1fr 1fr;\n grid-template-areas:\n '. favorite tags'\n 'metadata metadata metadata';\n }\n `}\n > a {\n color: ${(p) => p.theme.colors?.primary};\n overflow: hidden;\n text-overflow: ellipsis;\n max-width: 100%;\n display: inline-block;\n\n svg {\n margin: 0 calc(${(p) => p.theme.sizes?.small}*2) 0 0;\n line {\n stroke: ${(p) => p.theme.colors?.primary};\n }\n }\n\n ${(p) =>\n p.expandable === 'true' &&\n css`\n display: flex;\n flex-direction: row-reverse;\n justify-content: flex-end;\n align-items: center;\n\n span {\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n svg {\n margin: 0 0 0 ${p.theme.sizes?.small};\n }\n `}\n\n &:focus-visible {\n ${borderTabStyle}\n text-decoration: underline;\n }\n\n @media (hover: hover) {\n &:hover {\n text-decoration: underline;\n }\n }\n }\n }\n\n > a {\n color: ${(p) => p.theme.colors?.text};\n margin: ${(p) => p.theme.sizes?.normal} 0 0;\n align-self: flex-start;\n align-items: center;\n display: flex;\n\n span {\n text-decoration: underline;\n }\n\n svg {\n margin: 0 calc(${(p) => p.theme.sizes?.small}*2) 0 0;\n line {\n stroke: ${(p) => p.theme.colors?.text};\n }\n }\n\n &:focus-visible {\n ${borderTabStyle}\n text-decoration: underline;\n }\n }\n`;\n\nconst StyledTagList = styled(List)`\n ${list}\n display: flex;\n margin: 0 0 0 auto;\n grid-area: tags;\n\n li,\n li:last-child {\n margin: 0 0 0 ${(p) => p.theme.sizes?.small};\n display: flex;\n align-items: center;\n justify-content: space-between;\n }\n`;\n\nconst StyledTagIcon = styled(SymbolBadge)<{ size: number; symbol: Symbol }>`\n display: block;\n color: ${(p) => p.theme.colors?.primary};\n ${(p: any) => {\n if (p.symbol.type === 'Uri') {\n return `\n width: ${p.size}px;\n height: ${p.size}px;\n `;\n }\n\n if (p.symbol.type === 'FontAwesome') {\n return `\n font-size: ${p.size}px;\n `;\n }\n }}\n`;\n\nconst StyledMetadata = styled(Metadata)<{ indent?: number }>`\n grid-area: metadata;\n text-overflow: ellipsis;\n overflow: hidden;\n font-size: ${(p) => p.theme.fonts?.small};\n ${(p) =>\n typeof p.indent === 'number' &&\n `text-indent: calc(${p.theme.sizes?.small} * 2 + ${p.indent}px);`}\n`;\n","import { keyframes } from '@emotion/react';\nimport styled from '@emotion/styled';\nimport React from 'react';\n\ntype Props = {\n loading: boolean | undefined;\n};\n\nconst spin = keyframes`\n 100% {\n transform: rotate(360deg);\n }\n`;\n\nconst dash = keyframes`\n 0% {\n stroke-dasharray: 1, 200;\n stroke-dashoffset: 0;\n }\n 50% {\n stroke-dasharray: 89, 200;\n stroke-dashoffset: -35px;\n }\n 100% {\n stroke-dasharray: 89, 200;\n stroke-dashoffset: -124px;\n }\n`;\n\nconst SpinnerSvg = styled.svg`\n animation: ${spin} 2s linear infinite;\n height: 100%;\n transform-origin: center center;\n width: 100%;\n position: absolute;\n top: 0;\n bottom: 0;\n left: 0;\n right: 0;\n margin: auto;\n transition: 200ms ease-out opacity;\n`;\n\nexport const Wrapper = styled.div<{ 'data-loading': boolean }>`\n position: absolute;\n top: 0;\n bottom: 0;\n left: 0;\n right: 0;\n height: 100%;\n width: 100%;\n pointer-events: ${(p) => (p['data-loading'] ? 'all' : 'none')};\n display: flex;\n flex-direction: column;\n justify-content: center;\n transition: 200ms ease-out opacity;\n box-sizing: border-box;\n overflow: hidden;\n\n .humany-spinner-svg {\n opacity: ${(p) => (p['data-loading'] ? '1' : '0')};\n }\n`;\n\nconst Spinner = styled.div`\n position: relative;\n margin: 0 auto;\n width: 100px;\n &:before {\n content: '';\n display: block;\n padding-top: 100%;\n }\n`;\n\nconst SpinnerCircle = styled.circle`\n stroke-dasharray: 1, 200;\n stroke-dashoffset: 0;\n animation: ${dash} 1.5s ease-in-out infinite;\n stroke-linecap: round;\n stroke: ${(p) => p.theme.colors?.primary};\n stroke-width: 2px;\n`;\n\nconst Loader: React.FC<Props> = ({ loading = false }) => {\n return (\n <Wrapper className=\"humany-loader\" data-loading={loading}>\n <Spinner className=\"humany-spinner\">\n <SpinnerSvg className=\"humany-spinner-svg\" viewBox=\"25 25 50 50\">\n <SpinnerCircle\n cx=\"50\"\n cy=\"50\"\n r=\"20\"\n fill=\"none\"\n stroke-width=\"2\"\n stroke-miterlimit=\"10\"\n />\n </SpinnerSvg>\n </Spinner>\n </Wrapper>\n );\n};\n\nexport default Loader;\n","import { css } from '@emotion/react';\nimport styled from '@emotion/styled';\nimport { Notification } from '@telia-ace/knowledge-widget-core';\nimport {\n borderTabStyle,\n Button,\n DateFormats,\n genericHtml,\n headingElement,\n itemList,\n ItemList,\n Paragraph,\n Symbol,\n SymbolBadge,\n Timestamp,\n} from '@telia-ace/widget-ui';\nimport { appendClassNames } from '@telia-ace/widget-utilities';\nimport React, { useState } from 'react';\nimport { loadingOpacity } from '../styles';\nimport Loader from './loader';\n\ntype Props = {\n className?: string;\n showHeader?: boolean;\n loading: boolean;\n notificationList?: {\n id: string;\n title?: string;\n symbol?: Symbol;\n notifications: Notification[];\n defaultHeaderOptions?: {\n visible: boolean;\n };\n };\n};\n\nconst NotificationList: React.FC<Props> = ({\n className,\n showHeader,\n notificationList,\n loading,\n ...other\n}) => {\n const [expanded, setExpanded] = useState<string | null>(null);\n\n const {\n id,\n title,\n symbol,\n notifications = [],\n defaultHeaderOptions = { visible: true },\n } = notificationList || {};\n\n if (!notifications.length && !loading) {\n return null;\n }\n\n return (\n <StyledItemList\n {...other}\n data-loading={loading}\n data-show-header={\n typeof showHeader === 'boolean' ? showHeader : defaultHeaderOptions.visible\n }\n className={appendClassNames(className, 'humany-notification-list')}\n data-notification-category={id}\n header={title}\n symbol={symbol}\n items={notifications}\n renderItem={({ id, title, body, modified, expandable }: Notification) => (\n <StyledItem\n key={id}\n data-notification={id}\n data-expanded={expandable ? expanded === id : true}\n >\n {expandable ? (\n <>\n <StyledButton\n title={title}\n aria-label={title}\n aria-expanded={expanded === id}\n onClick={() => setExpanded(expanded === id ? null : id)}\n >\n <span>{title}</span>\n <StyledSymbolBadge\n size={11}\n symbol={{\n type: 'Svg',\n content: `caret-${expanded === id ? 'up' : 'down'}`,\n }}\n />\n </StyledButton>\n <StyledParagraph html={body} />\n {modified && (\n <StyledTimestamp\n format={DateFormats.YYYY_MM_DD}\n timestamp={modified}\n />\n )}\n </>\n ) : (\n <StyledParagraph html={body} />\n )}\n </StyledItem>\n )}\n >\n <Loader loading={loading} />\n </StyledItemList>\n );\n};\n\nconst StyledButton = styled(Button)`\n display: flex;\n justify-content: space-between;\n align-items: center;\n width: 100%;\n text-align: left;\n svg,\n i {\n color: ${(p) => p.theme.colors?.primary};\n }\n span {\n color: ${(p) => p.theme.colors?.text};\n font-size: ${(p) => p.theme.fonts?.normal};\n overflow: hidden;\n text-overflow: ellipsis;\n flex: 1;\n white-space: nowrap;\n }\n &:focus-visible {\n ${borderTabStyle}\n span {\n color: ${(p) => p.theme.colors?.primary};\n text-decoration: underline;\n }\n }\n`;\n\nconst StyledItemList = styled(ItemList)<\n {\n 'data-loading': boolean;\n 'data-show-header': boolean;\n } & any\n>`\n ${loadingOpacity}\n ${itemList}\n overflow: hidden;\n justify-content: flex-start;\n padding: ${(p) => p.theme.sizes?.large};\n ${(p) =>\n !p['data-show-header'] &&\n css`\n > div {\n ${headingElement(p)(\n 'h1',\n css`\n display: none;\n `\n )}\n }\n `}\n\n @media (hover: hover) {\n button:hover {\n text-decoration: underline;\n }\n }\n`;\n\nconst StyledParagraph = styled(Paragraph)`\n ${genericHtml}\n font-weight: 300;\n\n p {\n white-space: normal;\n }\n`;\n\nconst StyledItem = styled.li<{ 'data-expanded': boolean }>`\n .humany-paragraph {\n display: none;\n &:not(:only-child) {\n ${(p) =>\n p.theme.sizes?.cardinal &&\n p.theme.sizes?.normal &&\n css`\n margin: ${p.theme.sizes?.normal} 0;\n `}\n }\n }\n\n ${(p) =>\n p['data-expanded'] &&\n css`\n .humany-paragraph {\n display: block;\n }\n `}\n\n > span {\n display: block;\n font-weight: 300;\n color: ${(p) => p.theme.colors?.accent};\n }\n`;\n\nconst StyledSymbolBadge = styled(SymbolBadge)`\n margin: 0 0 0 ${(p) => p.theme.sizes?.small};\n line {\n stroke: ${(p) => p.theme.colors?.primary};\n }\n`;\n\nconst StyledTimestamp = styled(Timestamp)`\n font-size: ${(p) => p.theme.fonts?.small};\n font-weight: 300;\n`;\n\nexport default NotificationList;\n","import { Implementation } from '@telia-ace/knowledge-widget-core';\nimport { AnchorLink, WidgetLink } from '@telia-ace/widget-ui';\nimport { Container } from '@webprovisions/platform';\nimport React from 'react';\n\n// Determine if href starts with a hashtag\nconst isAnchorLink = (href: string) => {\n const re = new RegExp('^#', 'i');\n const match = re.test(href);\n\n return match;\n};\n\nconst embeddedLinkMapper =\n (container: Container) =>\n ({ children, ...props }: any) => {\n const {\n implementation,\n name: currentWidgetName,\n }: { implementation: Implementation; name: string } = container.get('$widget');\n\n const { href = '' } = props;\n\n if (isAnchorLink(href)) {\n return (\n <AnchorLink smooth to={href}>\n {children}\n </AnchorLink>\n );\n }\n\n const escapedBindings = implementation.bindings\n .map((binding: string) => binding.replace(/\\./g, '\\\\.'))\n .join('|');\n const regexp = new RegExp(`^((http[s]?:)?\\/\\/)?(${escapedBindings})\\/([^\\\\s]+)`);\n\n const expArray = regexp.exec(href);\n\n if (expArray && expArray.length >= 4) {\n const targetWidgetName = expArray[4];\n const targetWidget = implementation.widgets.get(targetWidgetName);\n\n // blob links should not be treated as a widget link\n if (\n targetWidget &&\n !targetWidgetName.startsWith('blob?') &&\n !targetWidgetName.startsWith(currentWidgetName)\n ) {\n return <WidgetLink widgetName={targetWidgetName}>{children}</WidgetLink>;\n }\n }\n\n return <a {...props}>{children}</a>;\n };\n\nexport default embeddedLinkMapper;\n","import { Container } from '@webprovisions/platform';\nimport React from 'react';\nimport { DialogLink } from '../components';\nimport embeddedLinkMapper from './embedded-link-mapper';\n\nconst guideRenderInstructions = (container: Container, dialog: any[] = []) => {\n return {\n transform: {\n a: (attr: any) => {\n const { children, ...otherAttr } = attr;\n const connectionId = otherAttr['data-target'];\n if (connectionId && dialog.length) {\n const item = dialog.find(({ connection }: any) => connection === connectionId);\n if (item) {\n return <DialogLink {...item}>{children}</DialogLink>;\n }\n }\n\n const defaultInstructions = embeddedLinkMapper(container);\n\n return defaultInstructions(attr);\n },\n },\n };\n};\n\nexport default guideRenderInstructions;\n"],"names":["DialogLink","title","className","id","parent","connection","type","target","href","children","connectionKey","props","name","params","useRouteData","parentId","parentTitle","key","createParams","__spreadProps","__spreadValues","formatUrl","React","Link","appendClassNames","Icon","DialogLink$1","dialogList","forwardRef","_a","ref","_b","dialog","other","__objRest","StyledList","item","styled","List","list","p","invertedHoverButton","DrawerList","trigger","header","animation","fullScreen","onToggle","closeButtonAriaLabel","Drawer","StyledItemList","DrawerList$1","ItemList","itemList","DropdownActions","items","renderItem","Dropdown","Wrapper","Header","DropdownActions$1","DropdownList","DropdownList$1","headingElement","css","loadingOpacity","SmallCaret","StyledHeaderText","Text","StyledListButton","Button","paddedBorderTabStyle","FavoriteButton","addFavoriteTooltip","removeFavoriteCancelLabel","removeFavoriteConfirmLabel","removeFavoriteHeader","removeFavoriteLabel","removeFavoriteTooltip","isFavorite","guideTitle","buttonLabel","addFavorite","removeFavorite","remove","useCallback","add","tooltip","Confirm","StyledButton","SymbolBadge","StyledText","FavoriteButton$1","_c","_d","_e","_f","_g","feedback","onFeedback","direction","positive","negative","selected","convertToStringAttributes","FeedbackButton","useArrowKeys","keyPressed","setKeyPressed","useState","left","useKeyPress","right","up","down","useEffect","useArrowKeys$1","useDebounce","value","delay","debouncedValue","setDebouncedValue","handler","timeout","useDebounce$1","useFavorites","container","useContainer","favorites","setFavorites","platform","events","_","updated","guideId","clear","toggle","useMemo","useFavorites$1","useHover","hovering","setHovering","elem","useRef","onMouseEnter","onMouseLeave","useEventListener","Metadata","format","DateFormats","byLabel","modifiedLabel","publishedLabel","modifiedBy","publishedBy","showModified","showPublished","modified","published","publishedTimestamp","StyledTimestamp","modifiedTimestamp","Metadata$1","Timestamp","Tags","tags","t","StyledTagList","symbol","StyledTagIcon","AccordionListItem","route","symbolSize","collapseUri","ActiveAccordionListItem","TextLink","guideList","expandable","routing","paramMappers","pageRole","pageCaret","showTags","showFavoriteToggle","localPaging","onItemClick","dispatch","metadata","pageLabel","isTabbing","useIsTabbing","innerRef","prevItems","usePrevious","guideRoute","pageRoute","mapGuideParams","mapPageParams","actions","useImperativeHandle","defaultRenderer","guide","e","StyledMetadata","renderer","index","onPageClick","elements","listItemElem","nextListItem","focusNext","mutations","observer","mutation","found","node","htmlParentContains","hasMetaData","k","borderTabStyle","spin","keyframes","dash","SpinnerSvg","Spinner","SpinnerCircle","Loader","loading","Loader$1","NotificationList","showHeader","notificationList","expanded","setExpanded","notifications","defaultHeaderOptions","body","StyledItem","StyledSymbolBadge","StyledParagraph","Paragraph","genericHtml","NotificationList$1","isAnchorLink","embeddedLinkMapper","implementation","currentWidgetName","AnchorLink","escapedBindings","binding","expArray","targetWidgetName","WidgetLink","embeddedLinkMapper$1","guideRenderInstructions","attr","connectionId","guideRenderInstructions$1"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../src/components/dialog-link.tsx","../src/components/dialog-list.tsx","../src/components/drawer-list.tsx","../src/components/dropdown-actions.tsx","../src/components/dropdown-list.tsx","../src/styles.ts","../src/components/favorite-button.tsx","../src/components/feedback.tsx","../src/hooks/use-arrow-keys.ts","../src/hooks/use-debounce.ts","../src/hooks/use-favorites.ts","../src/hooks/use-hover.ts","../src/components/metadata.tsx","../src/components/guide-list.tsx","../src/components/loader.tsx","../src/components/notification-list.tsx","../src/utils/embedded-link-mapper.tsx","../src/utils/guide-render-instructions.tsx"],"sourcesContent":["import { Icon, Link, useRouteData } from '@telia-ace/widget-ui';\nimport { appendClassNames, createParams, formatUrl } from '@telia-ace/widget-utilities';\nimport React from 'react';\nimport { LinkProps } from '../missing-type-exports';\n\nexport type Props = Merge<\n LinkProps,\n {\n parent: {\n id: string;\n title: string;\n };\n type: 'guide' | 'link' | 'default';\n connection?: string;\n connectionKey?: string;\n }\n>;\n\nconst DialogLink: React.FC<Props> = ({\n title = '',\n className,\n id,\n parent,\n connection,\n type,\n target,\n href,\n children,\n connectionKey,\n}) => {\n const props: any = {};\n const { name, params } = useRouteData();\n\n switch (type) {\n case 'default':\n case 'guide':\n const { id: parentId, title: parentTitle } = parent;\n\n let key = connectionKey || connection;\n\n if (parentId !== id && !connectionKey) {\n key = undefined;\n }\n\n props.routeName = name;\n props.params = createParams({\n ...params,\n guide: id,\n connection: key,\n uriName: id === parentId ? formatUrl(parentTitle) : formatUrl(title),\n });\n break;\n case 'link':\n props.href = href;\n props.target = target;\n break;\n }\n\n return (\n <Link className={appendClassNames(className, 'humany-dialog-link')} {...props}>\n {children || (\n <>\n {type === 'link' && <Icon faIcon=\"link\" />}\n <span>{title}</span>\n </>\n )}\n </Link>\n );\n};\n\nexport default DialogLink;\n","import styled from '@emotion/styled';\nimport { invertedHoverButton, List, list } from '@telia-ace/widget-ui';\nimport { appendClassNames } from '@telia-ace/widget-utilities';\nimport React, { forwardRef } from 'react';\nimport DialogLink, { Props as DialogLinkProps } from './dialog-link';\n\n// type Props = Merge<\n// React.ComponentProps<'ul'>,\n// {\n// dialog: DialogLinkProps[];\n// }\n// >;\ntype Props = {\n dialog: DialogLinkProps[];\n} & any;\n\nexport default forwardRef<HTMLUListElement, Props>(({ className, dialog, ...other }, ref) => {\n return !!dialog.length ? (\n <StyledList\n className={appendClassNames(className, 'humany-dialog')}\n items={dialog}\n renderItem={(item: DialogLinkProps) => (\n <li key={item.connection} data-dialog={item.connection}>\n <DialogLink {...item} />\n </li>\n )}\n {...other}\n ref={ref}\n />\n ) : null;\n});\n\nconst StyledList = styled(List)`\n ${list}\n a {\n min-width: 150px;\n max-width: 400px;\n display: block;\n white-space: normal;\n ${(p) =>\n p.theme.colors?.primary &&\n invertedHoverButton({\n primaryColor: p.theme.colors?.primary,\n secondaryColor: '#FFFFFF',\n theme: p.theme,\n })}\n }\n\n i {\n margin: 0 ${(p) => p.theme.sizes?.small} 0 0;\n }\n`;\n","import styled from '@emotion/styled';\nimport { Drawer, ItemList, itemList } from '@telia-ace/widget-ui';\nimport { appendClassNames } from '@telia-ace/widget-utilities';\nimport React from 'react';\nimport { DrawerProps, ItemListProps } from '../missing-type-exports';\n\ntype Props = Merge<ItemListProps, DrawerProps>;\n\nconst DrawerList: React.FC<Props> = ({\n trigger,\n header,\n className,\n animation,\n fullScreen,\n onToggle,\n children,\n ref,\n closeButtonAriaLabel,\n ...other\n}) => {\n return (\n <Drawer\n className={appendClassNames(className, 'humany-drawer-list')}\n trigger={trigger}\n header={header}\n animation={animation}\n fullScreen={fullScreen}\n onToggle={onToggle}\n closeButtonAriaLabel={closeButtonAriaLabel}\n >\n <StyledItemList {...other}>{children}</StyledItemList>\n </Drawer>\n );\n};\n\nexport default DrawerList;\n\nconst StyledItemList = styled(ItemList)<any>`\n ${itemList}\n font-family: ${(p) => p.theme.fonts?.type};\n padding: ${(p) => p.theme.sizes?.medium};\n > ul > li {\n overflow: visible;\n font-weight: 300;\n font-size: ${(p) => p.theme.fonts?.normal};\n }\n`;\n","import styled from '@emotion/styled';\nimport { Dropdown, ItemRenderer, List } from '@telia-ace/widget-ui';\nimport React from 'react';\n\ntype Props = {\n trigger: React.ReactElement;\n header?: React.ReactElement;\n items?: any[];\n renderItem?: ItemRenderer;\n className?: string;\n children?: React.ReactNode;\n};\n\nconst DropdownActions: React.FC<Props> = ({ items, renderItem, trigger, header, children }) => {\n return (\n <Dropdown className=\"humany-dropdown-actions\" trigger={trigger}>\n <Wrapper>\n {!!header && <Header>{header}</Header>}\n {items && renderItem && (\n <StyledList items={items} renderItem={renderItem}></StyledList>\n )}\n {children}\n </Wrapper>\n </Dropdown>\n );\n};\n\nexport default DropdownActions;\n\nconst Wrapper = styled.div`\n background: #fff;\n border: #ccc 1px solid;\n box-shadow: 0px 0px 10px rgba(0, 0, 0, 0.1);\n font-family: ${(p) => p.theme.fonts?.type};\n font-size: ${(p) => p.theme.fonts?.normal};\n`;\n\nconst Header = styled.div`\n padding: ${(p) => p.theme.sizes?.normal};\n padding-bottom: 0;\n font-size: ${(p) => p.theme.fonts?.normal};\n font-weight: normal;\n white-space: nowrap;\n display: flex;\n align-items: center;\n\n h1,\n h2,\n h3,\n h4,\n h5,\n h6 {\n margin: 0;\n font-weight: normal;\n padding-bottom: 0;\n }\n\n svg,\n i {\n margin-right: ${(p) => p.theme.sizes?.small};\n }\n`;\n\nconst StyledList = styled(List)`\n list-style: none;\n padding: 0;\n margin: 0;\n padding: ${(p) => p.theme.sizes?.small} 0;\n\n li {\n background: #fff;\n\n a {\n display: block;\n font-size: ${(p) => p.theme.fonts?.small};\n padding: ${(p) => `${p.theme.sizes?.small} ${p.theme.sizes?.normal}`};\n cursor: pointer;\n color: #555;\n text-decoration: none;\n\n &:hover {\n background: #f9f9f9;\n color: ${(p) => p.theme.colors?.primary};\n }\n }\n }\n`;\n","import { css } from '@emotion/react';\nimport styled from '@emotion/styled';\nimport { Dropdown, headingElement, ItemList, itemList } from '@telia-ace/widget-ui';\nimport { appendClassNames } from '@telia-ace/widget-utilities';\nimport React from 'react';\nimport { DropdownProps, ItemListProps } from '../missing-type-exports';\n\nexport type Props = Merge<DropdownProps, ItemListProps>;\n\nconst DropdownList: React.FC<Props> = ({\n trigger,\n className,\n children,\n closeButtonAriaLabel,\n ...other\n}) => {\n return (\n <Dropdown\n className={appendClassNames(className, 'humany-dropdown-list')}\n closeButtonAriaLabel={closeButtonAriaLabel}\n trigger={trigger}\n >\n <StyledItemList {...other}>{children}</StyledItemList>\n </Dropdown>\n );\n};\n\nexport default DropdownList;\n\nconst StyledItemList = styled(ItemList)<any>`\n ${itemList}\n font-family: ${(p) => p.theme.fonts?.type};\n > div {\n ${(p) =>\n headingElement(p)(\n '> h1',\n css`\n font-size: ${p.theme.fonts?.normal};\n line-height: 1.2em;\n `\n )}\n }\n > ul > li {\n overflow: visible;\n font-weight: 300;\n font-size: ${(p) => p.theme.fonts?.normal};\n\n a {\n display: inline-block;\n\n @media (hover: hover) {\n &:hover {\n text-decoration: underline;\n }\n }\n }\n }\n`;\n","import { css } from '@emotion/react';\nimport styled from '@emotion/styled';\nimport { Button, Icon, paddedBorderTabStyle, Text } from '@telia-ace/widget-ui';\n\nexport const loadingOpacity = (p: { 'data-loading': boolean }) => css`\n ${p['data-loading'] && 'position: relative;'};\n ${p['data-loading'] && 'min-height: 150px;'}\n > * {\n transition: 200ms ease-out opacity;\n opacity: ${p['data-loading'] ? '0.5' : '1'};\n }\n .humany-loader {\n opacity: ${p['data-loading'] ? '1' : '0'};\n }\n`;\n\nexport const SmallCaret = styled(Icon as any)`\n && {\n font-size: ${(p) => p.theme.fonts?.small};\n }\n width: 1.2em;\n`;\n\nexport const StyledHeaderText = styled(Text as any)`\n font-size: ${(p) => p.theme.fonts?.medium};\n font-weight: normal;\n line-height: 1.2em;\n color: ${(p) => p.theme.colors?.text};\n`;\n\nexport const StyledListButton = styled(Button as any)<any>`\n display: flex;\n align-items: center;\n\n ${(p: any) =>\n p['data-has-label'] === 'true' &&\n p['data-has-symbol'] === 'true' &&\n `\n svg, i {\n margin: 0 ${p.theme.sizes?.small} 0 0;\n }\n `}\n\n &:focus-visible {\n ${(p: any) => p['data-has-label'] === 'true' && paddedBorderTabStyle}\n\n svg, i {\n ${(p: any) =>\n p['data-has-label'] === 'false' &&\n p['data-has-symbol'] === 'true' &&\n css`\n ${paddedBorderTabStyle(p)}\n box-sizing: content-box;\n `}\n }\n }\n\n span {\n flex: 1;\n font-weight: 300;\n }\n`;\n","import { css } from '@emotion/react';\nimport styled from '@emotion/styled';\nimport { Confirm, StyledText, SymbolBadge } from '@telia-ace/widget-ui';\nimport React, { useCallback } from 'react';\nimport { FavoriteActions } from '../hooks';\nimport { StyledListButton } from '../styles';\n\ntype Props = {\n isFavorite: boolean;\n actions: FavoriteActions;\n id: string;\n addFavoriteTooltip?: string;\n removeFavoriteCancelLabel?: string;\n removeFavoriteConfirmLabel?: string;\n removeFavoriteHeader?: string;\n removeFavoriteLabel?: string;\n removeFavoriteTooltip?: string;\n buttonLabel?: string;\n guideTitle?: string;\n};\n\nconst FavoriteButton: React.FC<Props> = ({\n addFavoriteTooltip,\n removeFavoriteCancelLabel,\n removeFavoriteConfirmLabel,\n removeFavoriteHeader,\n removeFavoriteLabel,\n removeFavoriteTooltip,\n id,\n isFavorite,\n guideTitle,\n buttonLabel = '',\n actions: { addFavorite, removeFavorite },\n}) => {\n const remove = useCallback(() => {\n removeFavorite(id);\n }, [id, removeFavorite]);\n\n const add = useCallback(() => {\n addFavorite(id);\n }, [id, addFavorite]);\n\n const tooltip = `${isFavorite ? removeFavoriteTooltip : addFavoriteTooltip}${\n guideTitle ? `: \"${guideTitle}\"` : ''\n }`;\n\n return (\n <>\n {isFavorite ? (\n <Confirm\n trigger={\n <StyledButton\n className=\"humany-favorite-button\"\n title={tooltip}\n aria-label={tooltip}\n data-favorite=\"true\"\n data-has-label={buttonLabel ? 'true' : 'false'}\n data-has-symbol=\"true\"\n >\n <SymbolBadge\n size={16}\n symbol={{ type: 'Svg', content: 'star-empty' }}\n />\n {buttonLabel && <StyledText>{buttonLabel}</StyledText>}\n </StyledButton>\n }\n onConfirm={remove}\n cancelLabel={removeFavoriteCancelLabel}\n confirmLabel={removeFavoriteConfirmLabel}\n header={removeFavoriteHeader}\n text={removeFavoriteLabel}\n />\n ) : (\n <StyledButton\n className=\"humany-favorite-button\"\n title={tooltip}\n aria-label={tooltip}\n onClick={add}\n data-favorite=\"false\"\n data-has-label={buttonLabel ? 'true' : 'false'}\n data-has-symbol=\"true\"\n >\n <SymbolBadge size={16} symbol={{ type: 'Svg', content: 'star-empty' }} />\n {buttonLabel && <StyledText>{buttonLabel}</StyledText>}\n </StyledButton>\n )}\n </>\n );\n};\n\nexport default FavoriteButton;\n\nconst StyledButton = styled(StyledListButton)`\n grid-area: favorite;\n\n &:focus-visible {\n svg {\n ${(p: any) =>\n p['data-favorite'] === 'true'\n ? `\n fill: transparent;\n\n path {\n fill: transparent;\n }\n `\n : `\n fill: ${p.theme.colors?.text};\n\n path {\n fill: ${p.theme.colors?.text};\n }\n `}\n }\n }\n\n ${(p: any) =>\n p.theme.colors?.text &&\n css`\n svg {\n stroke: ${p.theme.colors?.text};\n\n path {\n stroke: ${p.theme.colors?.text};\n }\n\n ${p['data-favorite'] === 'true' &&\n `\n fill: ${p.theme.colors?.text};\n\n path {\n fill: ${p.theme.colors?.text};\n }\n `}\n }\n\n &:hover {\n svg {\n ${p['data-favorite'] === 'true'\n ? `\n fill: transparent;\n\n path {\n fill: transparent;\n }\n `\n : `\n fill: ${p.theme.colors?.text};\n\n path {\n fill: ${p.theme.colors?.text};\n }\n `}\n }\n }\n `}\n`;\n","import { css } from '@emotion/react';\nimport styled from '@emotion/styled';\nimport {\n Button,\n convertToStringAttributes,\n Icon,\n invertedHoverButton,\n StyledText,\n} from '@telia-ace/widget-ui';\nimport { appendClassNames } from '@telia-ace/widget-utilities';\nimport React, { forwardRef } from 'react';\n\nexport type Props = {\n onFeedback?: (feedback: 'positive' | 'negative') => void;\n positive?: string;\n negative?: string;\n header?: string;\n selected?: 'positive' | 'negative';\n direction?: 'horizontal' | 'vertical';\n} & any;\n\n// export type Props = Merge<\n// React.ComponentProps<'div'>,\n// {\n// onFeedback?: (feedback: 'positive' | 'negative') => void;\n// positive?: string;\n// negative?: string;\n// header?: string;\n// selected?: 'positive' | 'negative';\n// direction?: 'horizontal' | 'vertical';\n// }\n// >;\n\nexport default forwardRef<HTMLDivElement, Props>(\n (\n {\n onFeedback = () => {},\n direction = 'horizontal',\n className,\n header,\n positive,\n negative,\n selected,\n ...other\n },\n ref\n ) => {\n return (\n <Wrapper\n className={appendClassNames(className, 'humany-feedback')}\n data-direction={direction}\n {...convertToStringAttributes(other)}\n ref={ref}\n >\n {!!header && <Header>{header}</Header>}\n <FeedbackButton\n className=\"humany-feedback-button\"\n disabled={!!selected}\n data-selected={selected === 'positive'}\n data-direction={direction}\n onClick={() => onFeedback('positive')}\n >\n <Icon faIcon=\"smile-o\" />\n <span>{positive}</span>\n </FeedbackButton>\n <FeedbackButton\n className=\"humany-feedback-button\"\n disabled={!!selected}\n data-selected={selected === 'negative'}\n data-direction={direction}\n onClick={() => onFeedback('negative')}\n >\n <Icon faIcon=\"frown-o\" />\n <span>{negative}</span>\n </FeedbackButton>\n </Wrapper>\n );\n }\n);\n\nconst Header = styled(StyledText)`\n font-weight: normal;\n margin: 0 0 ${(p) => p.theme.sizes?.normal};\n font-size: ${(p) => p.theme.fonts?.normal};\n display: block;\n`;\n\nconst FeedbackButton = styled(Button)<{\n 'data-selected': boolean;\n 'data-direction': 'horizontal' | 'vertical';\n}>`\n display: inline-block;\n font-size: ${(p) => p.theme.fonts?.normal};\n font-weight: 300;\n && {\n margin-right: ${(p) => p.theme.sizes?.large};\n }\n\n ${(p) =>\n p['data-direction'] === 'horizontal' &&\n css`\n width: 225px;\n max-width: calc(50% - ${p.theme.sizes?.large} - ${p.theme.sizes?.small});\n `}\n\n ${(p) =>\n p['data-direction'] === 'vertical' &&\n css`\n min-width: 190px;\n `}\n\n ${(p) =>\n p.theme.colors?.primary &&\n invertedHoverButton({\n active: p['data-selected'],\n primaryColor: p.theme.colors?.primary,\n secondaryColor: '#FFFFFF',\n theme: p.theme,\n })}\n\n i {\n margin: 0 ${(p) => p.theme.sizes?.small} 0 0;\n }\n`;\n\nconst Wrapper = styled.div<{ 'data-direction': 'horizontal' | 'vertical' } & any>`\n ${(p) =>\n p['data-direction'] === 'vertical' &&\n css`\n > button {\n width: 100%;\n &:not(:last-child) {\n margin-bottom: ${p.theme.sizes?.normal};\n }\n }\n `}\n`;\n","import { useKeyPress } from '@telia-ace/widget-ui';\nimport { useEffect, useState } from 'react';\n\ntype ArrowKey = 'up' | 'down' | 'left' | 'right';\n\nconst useArrowKeys = (): ArrowKey | null => {\n // State for keeping track of whether key is pressed\n const [keyPressed, setKeyPressed] = useState<ArrowKey | null>(null);\n\n const left = useKeyPress('ArrowLeft');\n const right = useKeyPress('ArrowRight');\n const up = useKeyPress('ArrowUp');\n const down = useKeyPress('ArrowDown');\n\n const effect = () => {\n if (left) {\n setKeyPressed('left');\n } else if (right) {\n setKeyPressed('right');\n } else if (up) {\n setKeyPressed('up');\n } else if (down) {\n setKeyPressed('down');\n } else {\n setKeyPressed(null);\n }\n };\n\n useEffect(effect, [left, right, up, down]);\n\n return keyPressed;\n};\n\nexport default useArrowKeys;\n","import { useCallback, useEffect, useState } from 'react';\n\nconst useDebounce = (value: string, delay: number) => {\n // State and setters for debounced value\n const [debouncedValue, setDebouncedValue] = useState(value);\n\n const handler = useCallback(() => {\n // Update debounced value after delay\n return setTimeout(() => {\n setDebouncedValue(value);\n }, delay);\n }, [delay, setDebouncedValue, value]);\n\n useEffect(\n () => {\n const timeout = handler();\n\n // Cancel the timeout if value changes (also on delay change or unmount)\n // This is how we prevent debounced value from updating if value is changed\n // within the delay period. Timeout gets cleared and restarted.\n return () => {\n clearTimeout(timeout);\n };\n },\n [handler] // Only re-call effect if value or delay changes\n );\n\n return debouncedValue;\n};\n\nexport default useDebounce;\n","import { Widget } from '@telia-ace/knowledge-widget-core';\nimport { useContainer } from '@telia-ace/widget-ui';\nimport { useCallback, useEffect, useMemo, useState } from 'react';\n\nexport type FavoriteActions = {\n addFavorite: (guideId: string) => Promise<string[]>;\n clearFavorites: () => Promise<string[]>;\n removeFavorite: (guideId: string) => Promise<string[]>;\n toggleFavorite: (guideId: string) => Promise<string[]>;\n};\n\nconst useFavorites = (): [string[], FavoriteActions] => {\n const container = useContainer();\n const [favorites, setFavorites] = useState<string[]>([]);\n const platform = container.get('favorites');\n\n useEffect(() => {\n if (platform) {\n setFavorites(platform.get());\n\n const { events } = container.get('$widget') as Widget;\n const unsubscribe = events.subscribe('widget:favorites-updated', (_, { updated }) => {\n setFavorites([...updated]);\n });\n\n return unsubscribe;\n }\n }, []);\n\n const add = (guideId: string): Promise<string[]> => {\n if (!platform) {\n return Promise.resolve([]);\n }\n return platform.add(guideId);\n };\n\n const remove = (guideId: string) => {\n if (!platform) {\n return Promise.resolve([]);\n }\n return platform.remove(guideId);\n };\n\n const clear = () => {\n if (!platform) {\n return Promise.resolve([]);\n }\n return platform.clear();\n };\n\n const toggle = useCallback(\n (guideId: string) => {\n if (favorites.indexOf(guideId) > -1) {\n return remove(guideId);\n } else {\n return add(guideId);\n }\n },\n [favorites]\n );\n\n return [\n favorites,\n useMemo(\n () => ({\n addFavorite: add,\n removeFavorite: remove,\n clearFavorites: clear,\n toggleFavorite: toggle,\n }),\n [favorites]\n ),\n ];\n};\n\nexport default useFavorites;\n","import { useEventListener } from '@telia-ace/widget-ui';\nimport { useCallback, useRef, useState } from 'react';\n\nexport default (): [boolean, React.MutableRefObject<HTMLElement | undefined>] => {\n const [hovering, setHovering] = useState(false);\n const elem = useRef<HTMLElement>();\n\n const onMouseEnter = useCallback(() => setHovering(true), [setHovering]);\n\n const onMouseLeave = useCallback(() => setHovering(false), [setHovering]);\n\n useEventListener('mouseenter', onMouseEnter, elem.current);\n\n useEventListener('mouseleave', onMouseLeave, elem.current);\n\n return [hovering, elem];\n};\n","import styled from '@emotion/styled';\nimport { DateFormats, Text, Timestamp } from '@telia-ace/widget-ui';\nimport { appendClassNames } from '@telia-ace/widget-utilities';\nimport React from 'react';\n\nexport type Props = {\n className?: string;\n modified?: string;\n published?: string;\n modifiedBy?: string | null;\n publishedBy?: string | null;\n showModified?: boolean;\n showPublished?: boolean;\n modifiedLabel?: string;\n publishedLabel?: string;\n byLabel?: string;\n format?: DateFormats;\n};\n\nconst Metadata: React.FC<Props> = ({\n format = DateFormats.YYYY_MM_DD_HH_MM,\n className = '',\n byLabel = '',\n modifiedLabel = '',\n publishedLabel = '',\n modifiedBy = '',\n publishedBy = '',\n showModified = false,\n showPublished = false,\n modified,\n published,\n}) => {\n const publishedTimestamp =\n showPublished && published ? (\n <StyledTimestamp format={format} timestamp={published} />\n ) : null;\n const modifiedTimestamp =\n showModified && modified ? <StyledTimestamp format={format} timestamp={modified} /> : null;\n\n if (!publishedTimestamp && !modifiedTimestamp) {\n return null;\n }\n\n return (\n <StyledText className={appendClassNames(className, 'humany-metadata')}>\n {publishedTimestamp && (\n <StyledText className=\"humany-published\">\n {publishedLabel}\n {publishedTimestamp}\n {byLabel && publishedBy && ` ${byLabel.replace('{{editor}}', publishedBy)}`}\n </StyledText>\n )}\n {modifiedTimestamp && (\n <StyledText className=\"humany-modified\">\n {publishedTimestamp && ', '}\n {modifiedLabel}\n {modifiedTimestamp}\n {byLabel && modifiedBy && ` ${byLabel.replace('{{editor}}', modifiedBy)}`}\n </StyledText>\n )}\n </StyledText>\n );\n};\n\nexport default Metadata;\n\nconst StyledTimestamp = styled(Timestamp)`\n &:not(:first-child) {\n margin-left: 4px;\n }\n &:not(:last-child) {\n margin-right: 4px;\n }\n`;\n\nconst StyledText = styled(Text)`\n font-style: italic;\n`;\n","import { css } from '@emotion/react';\nimport styled from '@emotion/styled';\nimport { Guide, Symbol, Tag } from '@telia-ace/knowledge-widget-core';\nimport {\n DispatchAction,\n ItemList,\n ItemRenderer,\n List,\n SymbolBadge,\n TextLink,\n borderTabStyle,\n convertToStringAttributes,\n headingElement,\n itemList,\n list,\n useIsTabbing,\n usePrevious,\n useRouteData,\n} from '@telia-ace/widget-ui';\nimport {\n Params,\n appendClassNames,\n createParams,\n htmlParentContains,\n} from '@telia-ace/widget-utilities';\nimport React, { forwardRef, useCallback, useEffect, useImperativeHandle, useRef } from 'react';\nimport { useFavorites } from '../hooks';\nimport FavoriteButton from './favorite-button';\nimport Metadata, { Props as MetadataProps } from './metadata';\n\ntype Routing = {\n guide?: string;\n page?: string;\n};\n\ntype ParamMappers = {\n guide?: (guide: Guide) => Params;\n page?: () => Params;\n};\n\nexport type Props = {\n paramMappers?: ParamMappers;\n routing?: Routing;\n pageLabel?: string;\n symbolSize?: number;\n renderItem?: ItemRenderer;\n pageRole?: 'link' | 'button';\n pageCaret?: 'right' | 'down';\n showTags?: boolean;\n showFavoriteToggle?: boolean;\n addFavoriteTooltip?: string;\n removeFavoriteCancelLabel?: string;\n removeFavoriteConfirmLabel?: string;\n removeFavoriteHeader?: string;\n removeFavoriteLabel?: string;\n removeFavoriteTooltip?: string;\n metadata?: Partial<MetadataProps>;\n dispatch?: DispatchAction;\n localPaging?: boolean;\n expandable?: boolean;\n onItemClick?: (e: React.MouseEvent, guide: Guide) => void;\n} & any;\n\n// export type Props = Merge<\n// ItemListProps,\n// {\n// paramMappers?: ParamMappers;\n// routing?: Routing;\n// pageLabel?: string;\n// symbolSize?: number;\n// renderItem?: ItemRenderer;\n// pageRole?: 'link' | 'button';\n// pageCaret?: 'right' | 'down';\n// showTags?: boolean;\n// showFavoriteToggle?: boolean;\n// addFavoriteTooltip?: string;\n// removeFavoriteCancelLabel?: string;\n// removeFavoriteConfirmLabel?: string;\n// removeFavoriteHeader?: string;\n// removeFavoriteLabel?: string;\n// removeFavoriteTooltip?: string;\n// metadata?: Partial<MetadataProps>;\n// dispatch?: DispatchAction;\n// localPaging?: boolean;\n// expandable?: boolean;\n// onItemClick?: (e: React.MouseEvent, guide: Guide) => void;\n// }\n// >;\n\nconst Tags: React.FC<{ tags: Tag[] }> = ({ tags }) => {\n if (!tags.filter((t) => t.symbol).length) {\n return null;\n }\n\n return (\n <StyledTagList\n className=\"humany-guide-list-tags\"\n items={tags}\n renderItem={({ id, symbol, title }: Tag) =>\n symbol && (\n <li key={id} data-tag={id}>\n <StyledTagIcon size={18} symbol={symbol} title={title} />\n </li>\n )\n }\n />\n );\n};\n\nexport const AccordionListItem = forwardRef<\n HTMLLIElement,\n {\n title: string;\n id: string;\n route: string;\n symbolSize?: number;\n collapseUri?: string;\n children?: React.ReactNode;\n }\n>(({ title, id, route, symbolSize, collapseUri, children }, ref) => {\n const { params } = useRouteData();\n\n return (\n <ActiveAccordionListItem ref={ref} data-guide={id}>\n <TextLink\n title={title}\n aria-label={title}\n routeName={route}\n params={createParams({\n ...params,\n uriName: collapseUri ? collapseUri : undefined,\n id: undefined,\n guide: undefined,\n accordion: undefined,\n })}\n text={title}\n >\n <SymbolBadge size={symbolSize} symbol={{ type: 'Svg', content: 'caret-up' }} />\n </TextLink>\n {children}\n </ActiveAccordionListItem>\n );\n});\n\nconst ActiveAccordionListItem = styled.li`\n > a {\n grid-column: 1/-1;\n font-weight: bold;\n margin: 0 0 ${(p) => p.theme.sizes?.normal} 0;\n }\n\n > div {\n grid-column: 1/-1;\n }\n`;\n\nexport default forwardRef<HTMLDivElement, Props>(\n (\n {\n expandable = false,\n routing = {},\n paramMappers = {},\n symbolSize = 11,\n pageRole = 'link',\n pageCaret = 'down',\n showTags = false,\n showFavoriteToggle = false,\n localPaging = false,\n onItemClick = () => {},\n dispatch = () => {},\n metadata = {},\n pageLabel,\n className,\n children,\n items,\n renderItem,\n addFavoriteTooltip,\n removeFavoriteCancelLabel,\n removeFavoriteConfirmLabel,\n removeFavoriteHeader,\n removeFavoriteLabel,\n removeFavoriteTooltip,\n ...other\n },\n ref\n ) => {\n const isTabbing = useIsTabbing();\n const innerRef = useRef() as React.MutableRefObject<HTMLElement>;\n const prevItems = usePrevious(items);\n const { guide: guideRoute = 'guide', page: pageRoute = 'index' } = routing;\n const {\n guide: mapGuideParams = ({ id }: Guide) => createParams({ guide: id }),\n page: mapPageParams = () => createParams(),\n } = paramMappers;\n const [favorites, actions] = useFavorites();\n\n useImperativeHandle(ref, () => innerRef.current as any);\n\n const defaultRenderer: ItemRenderer = (guide: Guide) => {\n const { id, title, tags, published, modified, publishedBy, modifiedBy } = guide;\n\n return (\n <li\n key={id}\n data-guide={id}\n has-metadata={(\n (!!metadata?.showPublished && !!published) ||\n (!!metadata?.showModified && !!modified)\n ).toString()}\n >\n <TextLink\n className=\"humany-guide-link\"\n title={title}\n aria-label={title}\n routeName={guideRoute}\n onClick={(e: React.MouseEvent) => onItemClick(e, guide)}\n params={mapGuideParams(guide)}\n text={title}\n >\n <SymbolBadge\n size={symbolSize}\n symbol={{\n type: 'Svg',\n content: expandable ? 'caret-down' : 'caret-right',\n }}\n />\n </TextLink>\n {showFavoriteToggle && (\n <FavoriteButton\n guideTitle={title}\n addFavoriteTooltip={addFavoriteTooltip}\n removeFavoriteCancelLabel={removeFavoriteCancelLabel}\n removeFavoriteConfirmLabel={removeFavoriteConfirmLabel}\n removeFavoriteHeader={removeFavoriteHeader}\n removeFavoriteLabel={removeFavoriteLabel}\n removeFavoriteTooltip={removeFavoriteTooltip}\n isFavorite={favorites.indexOf(id) > -1}\n actions={actions}\n id={id}\n />\n )}\n {showTags && <Tags tags={tags} />}\n <StyledMetadata\n {...metadata}\n indent={expandable ? undefined : symbolSize}\n modified={modified}\n published={published}\n publishedBy={publishedBy}\n modifiedBy={modifiedBy}\n />\n </li>\n );\n };\n\n const renderer = useCallback(\n (guide: Guide, index: number, items: Guide[]) => {\n if (renderItem) {\n return renderItem(guide, index, items, defaultRenderer);\n }\n\n return defaultRenderer(guide, index, items);\n },\n [renderItem, defaultRenderer]\n );\n\n const onPageClick = useCallback(\n (e: React.MouseEvent) => {\n if (localPaging) {\n e.preventDefault();\n dispatch('page', mapPageParams());\n }\n },\n [dispatch, localPaging]\n );\n\n useEffect(() => {\n if (prevItems && prevItems.length < items.length && innerRef.current) {\n const elements = innerRef.current.querySelectorAll('.humany-guide-list > ul > li');\n const listItemElem = elements[prevItems.length] as HTMLElement;\n\n if (elements.length === items.length && prevItems.length) {\n const nextListItem = elements[prevItems.length] as HTMLElement;\n\n if (nextListItem) {\n const focusNext = nextListItem.querySelector(\n '.humany-guide-link'\n ) as HTMLElement | null;\n focusNext && focusNext.focus();\n }\n } else if (listItemElem) {\n const observer = new MutationObserver((mutations, observer) => {\n mutations.forEach((mutation) => {\n if (mutation.addedNodes) {\n const found = Array.from(\n mutation.addedNodes as NodeListOf<HTMLElement>\n ).find((node) => node.tagName === 'A');\n\n if (\n found &&\n htmlParentContains(innerRef.current, document.activeElement)\n ) {\n isTabbing && found.focus();\n observer.disconnect();\n }\n }\n });\n });\n\n observer.observe(listItemElem, {\n attributes: false,\n characterData: false,\n childList: true,\n subtree: true,\n attributeOldValue: false,\n characterDataOldValue: false,\n });\n }\n }\n });\n\n const hasMetaData = !!Object.keys(metadata).filter(\n (k) => typeof (metadata as any)[k] !== 'undefined'\n ).length;\n return (\n <StyledItemList\n className={appendClassNames(className, 'humany-guide-list')}\n data-item-count={items.length}\n items={items}\n renderItem={renderer}\n isTabbing={isTabbing}\n expandable={expandable ? 'true' : 'false'}\n grid-items={showTags || showFavoriteToggle || hasMetaData ? 'true' : 'false'}\n {...convertToStringAttributes(other)}\n ref={innerRef as React.Ref<HTMLDivElement>}\n >\n {pageLabel ? (\n <TextLink\n text={pageLabel}\n title={pageLabel}\n aria-label={pageLabel}\n routeName={pageRoute}\n role={pageRole}\n params={mapPageParams()}\n onClick={onPageClick}\n >\n <SymbolBadge\n size={symbolSize}\n symbol={{ type: 'Svg', content: `caret-${pageCaret}` }}\n />\n </TextLink>\n ) : null}\n {children}\n </StyledItemList>\n );\n }\n);\n\nconst StyledItemList = styled(ItemList)<{\n 'grid-items': 'true' | 'false';\n expandable: 'true' | 'false';\n isTabbing: boolean;\n}>`\n ${itemList}\n padding: ${(p) => p.theme.sizes?.large};\n overflow: auto;\n justify-content: flex-start;\n white-space: nowrap;\n font-weight: 300;\n text-decoration: none;\n\n > div {\n ${(p) =>\n headingElement(p)(\n '> h1',\n css`\n white-space: pre-wrap;\n `\n )}\n }\n\n > ul > li {\n ${(p) =>\n p['grid-items'] === 'true' &&\n css`\n display: grid;\n grid-template-columns: auto 1fr 1fr;\n gap: 0px 0px;\n grid-template-areas: '. favorite tags';\n align-items: center;\n\n > button {\n margin: 0 0 0 ${p.theme.sizes?.small};\n\n &[data-favorite='false'] {\n ${p.isTabbing ? 'opacity: 0;' : 'display: none;'};\n &:focus {\n opacity: 1;\n }\n }\n }\n\n > span {\n font-size: ${p.theme.fonts?.small};\n }\n\n &:hover {\n button[data-favorite='false'] {\n display: flex;\n justify-self: flex-start;\n }\n }\n\n &[has-metadata='true'] {\n grid-template-rows: 1fr 1fr;\n grid-template-areas:\n '. favorite tags'\n 'metadata metadata metadata';\n }\n `}\n > a {\n color: ${(p) => p.theme.colors?.primary};\n overflow: hidden;\n text-overflow: ellipsis;\n max-width: 100%;\n display: inline-block;\n\n svg {\n margin: 0 calc(${(p) => p.theme.sizes?.small}*2) 0 0;\n line {\n stroke: ${(p) => p.theme.colors?.primary};\n }\n }\n\n ${(p) =>\n p.expandable === 'true' &&\n css`\n display: flex;\n flex-direction: row-reverse;\n justify-content: flex-end;\n align-items: center;\n\n span {\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n svg {\n margin: 0 0 0 ${p.theme.sizes?.small};\n }\n `}\n\n &:focus-visible {\n ${borderTabStyle}\n text-decoration: underline;\n }\n\n @media (hover: hover) {\n &:hover {\n text-decoration: underline;\n }\n }\n }\n }\n\n > a {\n color: ${(p) => p.theme.colors?.text};\n margin: ${(p) => p.theme.sizes?.normal} 0 0;\n align-self: flex-start;\n align-items: center;\n display: flex;\n\n span {\n text-decoration: underline;\n }\n\n svg {\n margin: 0 calc(${(p) => p.theme.sizes?.small}*2) 0 0;\n line {\n stroke: ${(p) => p.theme.colors?.text};\n }\n }\n\n &:focus-visible {\n ${borderTabStyle}\n text-decoration: underline;\n }\n }\n`;\n\nconst StyledTagList = styled(List)`\n ${list}\n display: flex;\n margin: 0 0 0 auto;\n grid-area: tags;\n\n li,\n li:last-child {\n margin: 0 0 0 ${(p) => p.theme.sizes?.small};\n display: flex;\n align-items: center;\n justify-content: space-between;\n }\n`;\n\nconst StyledTagIcon = styled(SymbolBadge)<{ size: number; symbol: Symbol }>`\n display: block;\n color: ${(p) => p.theme.colors?.primary};\n ${(p: any) => {\n if (p.symbol.type === 'Uri') {\n return `\n width: ${p.size}px;\n height: ${p.size}px;\n `;\n }\n\n if (p.symbol.type === 'FontAwesome') {\n return `\n font-size: ${p.size}px;\n `;\n }\n }}\n`;\n\nconst StyledMetadata = styled(Metadata)<{ indent?: number }>`\n grid-area: metadata;\n text-overflow: ellipsis;\n overflow: hidden;\n font-size: ${(p) => p.theme.fonts?.small};\n ${(p) =>\n typeof p.indent === 'number' &&\n `text-indent: calc(${p.theme.sizes?.small} * 2 + ${p.indent}px);`}\n`;\n","import { keyframes } from '@emotion/react';\nimport styled from '@emotion/styled';\nimport React from 'react';\n\ntype Props = {\n loading: boolean | undefined;\n};\n\nconst spin = keyframes`\n 100% {\n transform: rotate(360deg);\n }\n`;\n\nconst dash = keyframes`\n 0% {\n stroke-dasharray: 1, 200;\n stroke-dashoffset: 0;\n }\n 50% {\n stroke-dasharray: 89, 200;\n stroke-dashoffset: -35px;\n }\n 100% {\n stroke-dasharray: 89, 200;\n stroke-dashoffset: -124px;\n }\n`;\n\nconst SpinnerSvg = styled.svg`\n animation: ${spin} 2s linear infinite;\n height: 100%;\n transform-origin: center center;\n width: 100%;\n position: absolute;\n top: 0;\n bottom: 0;\n left: 0;\n right: 0;\n margin: auto;\n transition: 200ms ease-out opacity;\n`;\n\nexport const Wrapper = styled.div<{ 'data-loading': boolean }>`\n position: absolute;\n top: 0;\n bottom: 0;\n left: 0;\n right: 0;\n height: 100%;\n width: 100%;\n pointer-events: ${(p) => (p['data-loading'] ? 'all' : 'none')};\n display: flex;\n flex-direction: column;\n justify-content: center;\n transition: 200ms ease-out opacity;\n box-sizing: border-box;\n overflow: hidden;\n\n .humany-spinner-svg {\n opacity: ${(p) => (p['data-loading'] ? '1' : '0')};\n }\n`;\n\nconst Spinner = styled.div`\n position: relative;\n margin: 0 auto;\n width: 100px;\n &:before {\n content: '';\n display: block;\n padding-top: 100%;\n }\n`;\n\nconst SpinnerCircle = styled.circle`\n stroke-dasharray: 1, 200;\n stroke-dashoffset: 0;\n animation: ${dash} 1.5s ease-in-out infinite;\n stroke-linecap: round;\n stroke: ${(p) => p.theme.colors?.primary};\n stroke-width: 2px;\n`;\n\nconst Loader: React.FC<Props> = ({ loading = false }) => {\n return (\n <Wrapper className=\"humany-loader\" data-loading={loading}>\n <Spinner className=\"humany-spinner\">\n <SpinnerSvg className=\"humany-spinner-svg\" viewBox=\"25 25 50 50\">\n <SpinnerCircle\n cx=\"50\"\n cy=\"50\"\n r=\"20\"\n fill=\"none\"\n stroke-width=\"2\"\n stroke-miterlimit=\"10\"\n />\n </SpinnerSvg>\n </Spinner>\n </Wrapper>\n );\n};\n\nexport default Loader;\n","import { css } from '@emotion/react';\nimport styled from '@emotion/styled';\nimport { Notification } from '@telia-ace/knowledge-widget-core';\nimport {\n borderTabStyle,\n Button,\n DateFormats,\n genericHtml,\n headingElement,\n itemList,\n ItemList,\n Paragraph,\n Symbol,\n SymbolBadge,\n Timestamp,\n} from '@telia-ace/widget-ui';\nimport { appendClassNames } from '@telia-ace/widget-utilities';\nimport React, { useState } from 'react';\nimport { loadingOpacity } from '../styles';\nimport Loader from './loader';\n\ntype Props = {\n className?: string;\n showHeader?: boolean;\n loading: boolean;\n notificationList?: {\n id: string;\n title?: string;\n symbol?: Symbol;\n notifications: Notification[];\n defaultHeaderOptions?: {\n visible: boolean;\n };\n };\n};\n\nconst NotificationList: React.FC<Props> = ({\n className,\n showHeader,\n notificationList,\n loading,\n ...other\n}) => {\n const [expanded, setExpanded] = useState<string | null>(null);\n\n const {\n id,\n title,\n symbol,\n notifications = [],\n defaultHeaderOptions = { visible: true },\n } = notificationList || {};\n\n if (!notifications.length && !loading) {\n return null;\n }\n\n return (\n <StyledItemList\n {...other}\n data-loading={loading}\n data-show-header={\n typeof showHeader === 'boolean' ? showHeader : defaultHeaderOptions.visible\n }\n className={appendClassNames(className, 'humany-notification-list')}\n data-notification-category={id}\n header={title}\n symbol={symbol}\n items={notifications}\n renderItem={({ id, title, body, modified, expandable }: Notification) => (\n <StyledItem\n key={id}\n data-notification={id}\n data-expanded={expandable ? expanded === id : true}\n >\n {expandable ? (\n <>\n <StyledButton\n title={title}\n aria-label={title}\n aria-expanded={expanded === id}\n onClick={() => setExpanded(expanded === id ? null : id)}\n >\n <span>{title}</span>\n <StyledSymbolBadge\n size={11}\n symbol={{\n type: 'Svg',\n content: `caret-${expanded === id ? 'up' : 'down'}`,\n }}\n />\n </StyledButton>\n <StyledParagraph html={body} />\n {modified && (\n <StyledTimestamp\n format={DateFormats.YYYY_MM_DD}\n timestamp={modified}\n />\n )}\n </>\n ) : (\n <StyledParagraph html={body} />\n )}\n </StyledItem>\n )}\n >\n <Loader loading={loading} />\n </StyledItemList>\n );\n};\n\nconst StyledButton = styled(Button)`\n display: flex;\n justify-content: space-between;\n align-items: center;\n width: 100%;\n text-align: left;\n svg,\n i {\n color: ${(p) => p.theme.colors?.primary};\n }\n span {\n color: ${(p) => p.theme.colors?.text};\n font-size: ${(p) => p.theme.fonts?.normal};\n overflow: hidden;\n text-overflow: ellipsis;\n flex: 1;\n white-space: nowrap;\n }\n &:focus-visible {\n ${borderTabStyle}\n span {\n color: ${(p) => p.theme.colors?.primary};\n text-decoration: underline;\n }\n }\n`;\n\nconst StyledItemList = styled(ItemList)<\n {\n 'data-loading': boolean;\n 'data-show-header': boolean;\n } & any\n>`\n ${loadingOpacity}\n ${itemList}\n overflow: hidden;\n justify-content: flex-start;\n padding: ${(p) => p.theme.sizes?.large};\n ${(p) =>\n !p['data-show-header'] &&\n css`\n > div {\n ${headingElement(p)(\n 'h1',\n css`\n display: none;\n `\n )}\n }\n `}\n\n @media (hover: hover) {\n button:hover {\n text-decoration: underline;\n }\n }\n`;\n\nconst StyledParagraph = styled(Paragraph)`\n ${genericHtml}\n font-weight: 300;\n\n p {\n white-space: normal;\n }\n`;\n\nconst StyledItem = styled.li<{ 'data-expanded': boolean }>`\n .humany-paragraph {\n display: none;\n &:not(:only-child) {\n ${(p) =>\n p.theme.sizes?.cardinal &&\n p.theme.sizes?.normal &&\n css`\n margin: ${p.theme.sizes?.normal} 0;\n `}\n }\n }\n\n ${(p) =>\n p['data-expanded'] &&\n css`\n .humany-paragraph {\n display: block;\n }\n `}\n\n > span {\n display: block;\n font-weight: 300;\n color: ${(p) => p.theme.colors?.accent};\n }\n`;\n\nconst StyledSymbolBadge = styled(SymbolBadge)`\n margin: 0 0 0 ${(p) => p.theme.sizes?.small};\n line {\n stroke: ${(p) => p.theme.colors?.primary};\n }\n`;\n\nconst StyledTimestamp = styled(Timestamp)`\n font-size: ${(p) => p.theme.fonts?.small};\n font-weight: 300;\n`;\n\nexport default NotificationList;\n","import { Implementation } from '@telia-ace/knowledge-widget-core';\nimport { AnchorLink, WidgetLink } from '@telia-ace/widget-ui';\nimport { Container } from '@webprovisions/platform';\nimport React from 'react';\n\n// Determine if href starts with a hashtag\nconst isAnchorLink = (href: string) => {\n const re = new RegExp('^#', 'i');\n const match = re.test(href);\n\n return match;\n};\n\nconst embeddedLinkMapper =\n (container: Container) =>\n ({ children, ...props }: any) => {\n const {\n implementation,\n name: currentWidgetName,\n }: { implementation: Implementation; name: string } = container.get('$widget');\n\n const { href = '' } = props;\n\n if (isAnchorLink(href)) {\n return (\n <AnchorLink smooth to={href}>\n {children}\n </AnchorLink>\n );\n }\n\n const escapedBindings = implementation.bindings\n .map((binding: string) => binding.replace(/\\./g, '\\\\.'))\n .join('|');\n const regexp = new RegExp(`^((http[s]?:)?\\/\\/)?(${escapedBindings})\\/([^\\\\s]+)`);\n\n const expArray = regexp.exec(href);\n\n if (expArray && expArray.length >= 4) {\n const targetWidgetName = expArray[4];\n const targetWidget = implementation.widgets.get(targetWidgetName);\n\n // blob links should not be treated as a widget link\n if (\n targetWidget &&\n !targetWidgetName.startsWith('blob?') &&\n !targetWidgetName.startsWith(currentWidgetName)\n ) {\n return <WidgetLink widgetName={targetWidgetName}>{children}</WidgetLink>;\n }\n }\n\n return <a {...props}>{children}</a>;\n };\n\nexport default embeddedLinkMapper;\n","import { Container } from '@webprovisions/platform';\nimport React from 'react';\nimport { DialogLink } from '../components';\nimport embeddedLinkMapper from './embedded-link-mapper';\n\nconst guideRenderInstructions = (container: Container, dialog: any[] = []) => {\n return {\n transform: {\n a: (attr: any) => {\n const { children, ...otherAttr } = attr;\n const connectionId = otherAttr['data-target'];\n if (connectionId && dialog.length) {\n const item = dialog.find(({ connection }: any) => connection === connectionId);\n if (item) {\n return <DialogLink {...item}>{children}</DialogLink>;\n }\n }\n\n const defaultInstructions = embeddedLinkMapper(container);\n\n return defaultInstructions(attr);\n },\n },\n };\n};\n\nexport default guideRenderInstructions;\n"],"names":["DialogLink","title","className","id","parent","connection","type","target","href","children","connectionKey","props","name","params","useRouteData","parentId","parentTitle","key","createParams","__spreadProps","__spreadValues","formatUrl","React","Link","appendClassNames","Icon","DialogLink$1","dialogList","forwardRef","_a","ref","_b","dialog","other","__objRest","StyledList","item","styled","List","list","p","invertedHoverButton","DrawerList","trigger","header","animation","fullScreen","onToggle","closeButtonAriaLabel","Drawer","StyledItemList","DrawerList$1","ItemList","itemList","DropdownActions","items","renderItem","Dropdown","Wrapper","Header","DropdownActions$1","DropdownList","DropdownList$1","headingElement","css","loadingOpacity","SmallCaret","StyledHeaderText","Text","StyledListButton","Button","paddedBorderTabStyle","FavoriteButton","addFavoriteTooltip","removeFavoriteCancelLabel","removeFavoriteConfirmLabel","removeFavoriteHeader","removeFavoriteLabel","removeFavoriteTooltip","isFavorite","guideTitle","buttonLabel","addFavorite","removeFavorite","remove","useCallback","add","tooltip","Confirm","StyledButton","SymbolBadge","StyledText","FavoriteButton$1","_c","_d","_e","_f","_g","feedback","onFeedback","direction","positive","negative","selected","convertToStringAttributes","FeedbackButton","useArrowKeys","keyPressed","setKeyPressed","useState","left","useKeyPress","right","up","down","useEffect","useArrowKeys$1","useDebounce","value","delay","debouncedValue","setDebouncedValue","handler","timeout","useDebounce$1","useFavorites","container","useContainer","favorites","setFavorites","platform","events","_","updated","guideId","clear","toggle","useMemo","useFavorites$1","useHover","hovering","setHovering","elem","useRef","onMouseEnter","onMouseLeave","useEventListener","Metadata","format","DateFormats","byLabel","modifiedLabel","publishedLabel","modifiedBy","publishedBy","showModified","showPublished","modified","published","publishedTimestamp","StyledTimestamp","modifiedTimestamp","Metadata$1","Timestamp","Tags","tags","t","StyledTagList","symbol","StyledTagIcon","AccordionListItem","route","symbolSize","collapseUri","ActiveAccordionListItem","TextLink","guideList","expandable","routing","paramMappers","pageRole","pageCaret","showTags","showFavoriteToggle","localPaging","onItemClick","dispatch","metadata","pageLabel","isTabbing","useIsTabbing","innerRef","prevItems","usePrevious","guideRoute","pageRoute","mapGuideParams","mapPageParams","actions","useImperativeHandle","defaultRenderer","guide","e","StyledMetadata","renderer","index","onPageClick","elements","listItemElem","nextListItem","focusNext","mutations","observer","mutation","found","node","htmlParentContains","hasMetaData","k","borderTabStyle","spin","keyframes","dash","SpinnerSvg","Spinner","SpinnerCircle","Loader","loading","Loader$1","NotificationList","showHeader","notificationList","expanded","setExpanded","notifications","defaultHeaderOptions","body","StyledItem","StyledSymbolBadge","StyledParagraph","Paragraph","genericHtml","NotificationList$1","isAnchorLink","embeddedLinkMapper","implementation","currentWidgetName","AnchorLink","escapedBindings","binding","expArray","targetWidgetName","WidgetLink","embeddedLinkMapper$1","guideRenderInstructions","attr","connectionId","guideRenderInstructions$1"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@telia-ace/knowledge-widget-ui",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.48-next.1",
|
|
4
4
|
"description": "UI components used by ACE Knowledge Widgets.",
|
|
5
5
|
"license": "SEE LICENSE IN LICENSE.txt",
|
|
6
6
|
"author": "Telia Company AB",
|
|
@@ -21,11 +21,11 @@
|
|
|
21
21
|
},
|
|
22
22
|
"sideEffects": false,
|
|
23
23
|
"dependencies": {
|
|
24
|
-
"@telia-ace/knowledge-widget-core": "1.0.
|
|
24
|
+
"@telia-ace/knowledge-widget-core": "1.0.42-next.1",
|
|
25
25
|
"@telia-ace/widget-routing": "^1.0.27",
|
|
26
26
|
"@telia-ace/widget-ui": "^1.0.33",
|
|
27
27
|
"@telia-ace/widget-utilities": "^1.0.15",
|
|
28
|
-
"@webprovisions/platform": "1.1.3
|
|
28
|
+
"@webprovisions/platform": "^1.1.3"
|
|
29
29
|
},
|
|
30
30
|
"peerDependencies": {
|
|
31
31
|
"@emotion/react": "^11.10.5",
|