@telia-ace/knowledge-widget-components-guide 1.0.39-next.4 → 1.0.39-next.6
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.
|
@@ -1,7 +1,7 @@
|
|
|
1
|
+
import { DataError } from '@telia-ace/knowledge-data-client';
|
|
1
2
|
import { ContactMethodType } from '@telia-ace/knowledge-widget-adapters';
|
|
2
3
|
import { FavoriteProperties, LanguageProperties, MetaDataProperties } from '@telia-ace/knowledge-widget-component-utilities';
|
|
3
4
|
import { DialogItem, PickerTypes } from '@telia-ace/knowledge-widget-core';
|
|
4
|
-
import { DataError } from '@telia-ace/knowledge-widget-types-grid';
|
|
5
5
|
import { FormComponentInstanceProperties } from '@telia-ace/widget-forms';
|
|
6
6
|
import { Container } from '@webprovisions/platform';
|
|
7
7
|
export type GuideProps = {
|
|
@@ -22,8 +22,8 @@ var F = (e, t) => {
|
|
|
22
22
|
import { css as G } from "@emotion/react";
|
|
23
23
|
import r from "@emotion/styled";
|
|
24
24
|
import { ContactList as oe, contactLink as pe } from "@telia-ace/knowledge-widget-adapters";
|
|
25
|
-
import {
|
|
26
|
-
import {
|
|
25
|
+
import { useRouteData as q, List as $e, TextLink as le, paddedBorderTabStyle as re, Feedback as Ee, StyledHeaderText as ke, useDispatch as se, useProperties as J, useContainer as ie, Tooltip as we, Text as K, SymbolBadge as O, StyledListButton as T, useFavorites as xe, StyledText as ne, FavoriteButton as Le, DrawerList as ce, DrawerAnimationType as me, DropdownList as de, useChildren as ze, Lightbox as Se, DialogLink as Be, embeddedLinkMapper as Ne, createEmptyComponent as Ce, Loader as ve, loadingOpacity as De, Paragraph as Re, genericHtml as Fe, headingElement as Te, DialogList as Oe, contentBox as Ie, Metadata as We, Button as He, linkTabStyle as Pe } from "@telia-ace/knowledge-widget-ui";
|
|
26
|
+
import { NotFound as Me, Component as je } from "@telia-ace/widget-types-grid";
|
|
27
27
|
import { appendClassNames as H, buildCategoryTrail as Ae, createParams as Ve } from "@telia-ace/widget-utilities";
|
|
28
28
|
import a, { useMemo as P, useState as Ge, useEffect as qe, useCallback as V, forwardRef as Je } from "react";
|
|
29
29
|
import { PickerTypes as p } from "@telia-ace/knowledge-widget-core";
|
|
@@ -59,7 +59,7 @@ const Ke = ({
|
|
|
59
59
|
}
|
|
60
60
|
}
|
|
61
61
|
);
|
|
62
|
-
}, Qe = Ke, Ue = r(
|
|
62
|
+
}, Qe = Ke, Ue = r($e)`
|
|
63
63
|
display: flex;
|
|
64
64
|
align-items: center;
|
|
65
65
|
flex-wrap: wrap;
|
|
@@ -97,12 +97,12 @@ const Ke = ({
|
|
|
97
97
|
`, Ye = r(oe)`
|
|
98
98
|
border-top: ${(e) => e.theme.border};
|
|
99
99
|
${(e) => e.backButtonShown === "true" && `border-bottom: ${e.theme.border};`}
|
|
100
|
-
`, Ze = r(
|
|
100
|
+
`, Ze = r(Ee)`
|
|
101
101
|
${(e) => {
|
|
102
102
|
var t, n;
|
|
103
103
|
return `padding: ${(t = e.theme.sizes) == null ? void 0 : t.large} ${(n = e.theme.sizes) == null ? void 0 : n.large};`;
|
|
104
104
|
}}
|
|
105
|
-
`, _e = r(
|
|
105
|
+
`, _e = r(ke)`
|
|
106
106
|
${(e) => {
|
|
107
107
|
var t, n;
|
|
108
108
|
return `padding: ${(t = e.theme.sizes) == null ? void 0 : t.large} ${(n = e.theme.sizes) == null ? void 0 : n.large};`;
|
|
@@ -165,7 +165,7 @@ const Ke = ({
|
|
|
165
165
|
o(c);
|
|
166
166
|
});
|
|
167
167
|
}, [e]), n.length ? /* @__PURE__ */ a.createElement(
|
|
168
|
-
|
|
168
|
+
we,
|
|
169
169
|
{
|
|
170
170
|
className: "humany-guide-category-tooltip",
|
|
171
171
|
sticky: t === p.DRAWER,
|
|
@@ -244,7 +244,7 @@ const Ke = ({
|
|
|
244
244
|
guide: s,
|
|
245
245
|
dispatch: k
|
|
246
246
|
}) => {
|
|
247
|
-
const [B, C] =
|
|
247
|
+
const [B, C] = xe(), i = V(
|
|
248
248
|
(y) => {
|
|
249
249
|
s && k("copy", s);
|
|
250
250
|
},
|
|
@@ -286,7 +286,7 @@ const Ke = ({
|
|
|
286
286
|
v.push({
|
|
287
287
|
type: "favorite",
|
|
288
288
|
child: /* @__PURE__ */ a.createElement(
|
|
289
|
-
|
|
289
|
+
Le,
|
|
290
290
|
{
|
|
291
291
|
id: y,
|
|
292
292
|
guideTitle: R,
|
|
@@ -619,9 +619,9 @@ const Ke = ({
|
|
|
619
619
|
error: L
|
|
620
620
|
} = J(), {
|
|
621
621
|
params: { connection: z }
|
|
622
|
-
} = q(), w = ie(), N =
|
|
622
|
+
} = q(), w = ie(), N = ze(), y = se(), R = P(() => ({
|
|
623
623
|
transform: {
|
|
624
|
-
img: (x) => /* @__PURE__ */ a.createElement(
|
|
624
|
+
img: (x) => /* @__PURE__ */ a.createElement(Se, { attrs: x, htmlBody: (i == null ? void 0 : i.body) || "" }),
|
|
625
625
|
a: (x) => {
|
|
626
626
|
const Y = x, { children: he } = Y, X = F(Y, ["children"])["data-target"];
|
|
627
627
|
if (X && h.length) {
|
|
@@ -629,21 +629,21 @@ const Ke = ({
|
|
|
629
629
|
({ connection: ge }) => ge === X
|
|
630
630
|
);
|
|
631
631
|
if (Z)
|
|
632
|
-
return /* @__PURE__ */ a.createElement(
|
|
632
|
+
return /* @__PURE__ */ a.createElement(Be, S({}, Z), he);
|
|
633
633
|
}
|
|
634
|
-
return
|
|
634
|
+
return Ne(w)(x);
|
|
635
635
|
}
|
|
636
636
|
}
|
|
637
637
|
}), [i, w, h]), v = V(() => {
|
|
638
638
|
y("back");
|
|
639
639
|
}, [y]);
|
|
640
640
|
if (!i && !L && !l)
|
|
641
|
-
return
|
|
641
|
+
return Ce(w, D(S({}, n), {
|
|
642
642
|
className: H(e, "humany-guide")
|
|
643
643
|
}));
|
|
644
644
|
const { id: I = "", title: Q = "", body: M = "", translations: U = {} } = i || {};
|
|
645
645
|
if (L && L.status === 404)
|
|
646
|
-
return /* @__PURE__ */ a.createElement(
|
|
646
|
+
return /* @__PURE__ */ a.createElement(Me, { showSearch: !1 });
|
|
647
647
|
const j = !!t && !!z, ue = Object.keys(U).find((x) => U[x] === `${I}`);
|
|
648
648
|
return /* @__PURE__ */ a.createElement(
|
|
649
649
|
xt,
|
|
@@ -724,14 +724,14 @@ const Ke = ({
|
|
|
724
724
|
}
|
|
725
725
|
))
|
|
726
726
|
),
|
|
727
|
-
/* @__PURE__ */ a.createElement(
|
|
727
|
+
/* @__PURE__ */ a.createElement(ve, { loading: l })
|
|
728
728
|
);
|
|
729
729
|
}
|
|
730
730
|
), xt = r.div`
|
|
731
|
-
${
|
|
731
|
+
${De}
|
|
732
732
|
min-width: 0;
|
|
733
|
-
`, Lt = r(
|
|
734
|
-
${
|
|
733
|
+
`, Lt = r(Re)`
|
|
734
|
+
${Fe}
|
|
735
735
|
${(e) => {
|
|
736
736
|
var t;
|
|
737
737
|
return `padding: ${(t = e.theme.sizes) == null ? void 0 : t.large};`;
|
|
@@ -741,7 +741,7 @@ const Ke = ({
|
|
|
741
741
|
|
|
742
742
|
${(e) => {
|
|
743
743
|
var t, n;
|
|
744
|
-
return
|
|
744
|
+
return Te(e)(
|
|
745
745
|
"h1",
|
|
746
746
|
G`
|
|
747
747
|
font-size: ${(t = e.theme.fonts) == null ? void 0 : t.large};
|
|
@@ -770,7 +770,7 @@ const Ke = ({
|
|
|
770
770
|
`, zt = r(oe)`
|
|
771
771
|
border-top: ${(e) => e.theme.border};
|
|
772
772
|
${(e) => e.backButtonShown === "true" && `border-bottom: ${e.theme.border};`}
|
|
773
|
-
`, St = r(
|
|
773
|
+
`, St = r(Oe)`
|
|
774
774
|
${(e) => {
|
|
775
775
|
var t, n;
|
|
776
776
|
return `padding: 0 ${(t = e.theme.sizes) == null ? void 0 : t.large} ${(n = e.theme.sizes) == null ? void 0 : n.large};`;
|
|
@@ -788,7 +788,7 @@ const Ke = ({
|
|
|
788
788
|
border-radius: ${(e) => `${e.theme.borderRadius} ${e.theme.borderRadius}`} 0 0;
|
|
789
789
|
background-color: #ffffff;
|
|
790
790
|
`, Nt = r.div`
|
|
791
|
-
${
|
|
791
|
+
${Ie}
|
|
792
792
|
display: block;
|
|
793
793
|
> a {
|
|
794
794
|
${pe}
|
|
@@ -799,7 +799,7 @@ const Ke = ({
|
|
|
799
799
|
box-shadow: none;
|
|
800
800
|
background-color: #fafafa;
|
|
801
801
|
`}
|
|
802
|
-
`, Ct = r(
|
|
802
|
+
`, Ct = r(We)`
|
|
803
803
|
display: block;
|
|
804
804
|
${(e) => {
|
|
805
805
|
var t, n;
|
|
@@ -815,9 +815,9 @@ const Ke = ({
|
|
|
815
815
|
return (t = e.theme.colors) == null ? void 0 : t.text;
|
|
816
816
|
}};
|
|
817
817
|
border-top: ${(e) => e.theme.border};
|
|
818
|
-
`, vt = r(
|
|
818
|
+
`, vt = r(je)`
|
|
819
819
|
border-top: ${(e) => e.theme.border};
|
|
820
|
-
`, Dt = r(
|
|
820
|
+
`, Dt = r(He)`
|
|
821
821
|
${(e) => {
|
|
822
822
|
var t, n;
|
|
823
823
|
return `padding: ${(t = e.theme.sizes) == null ? void 0 : t.normal} calc(${(n = e.theme.sizes) == null ? void 0 : n.normal} * 2);`;
|
|
@@ -835,7 +835,7 @@ const Ke = ({
|
|
|
835
835
|
font-weight: 300;
|
|
836
836
|
}
|
|
837
837
|
&:focus-visible {
|
|
838
|
-
${
|
|
838
|
+
${Pe}
|
|
839
839
|
padding: ${(e) => {
|
|
840
840
|
var t, n;
|
|
841
841
|
return `calc(${(t = e.theme.sizes) == null ? void 0 : t.small} / 2) ${(n = e.theme.sizes) == null ? void 0 : n.small}`;
|
|
@@ -856,4 +856,4 @@ const Ke = ({
|
|
|
856
856
|
export {
|
|
857
857
|
Gt as default
|
|
858
858
|
};
|
|
859
|
-
//# sourceMappingURL=guide.
|
|
859
|
+
//# sourceMappingURL=guide.429e61d5.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"guide.429e61d5.js","sources":["../src/answer-version-picker.tsx","../src/feedback.tsx","../src/categories.tsx","../src/functions.tsx","../src/languages.tsx","../src/toolbar.tsx","../src/guide.tsx"],"sourcesContent":["import { css } from '@emotion/react';\nimport styled from '@emotion/styled';\nimport { List, paddedBorderTabStyle, TextLink, useRouteData } from '@telia-ace/knowledge-widget-ui';\nimport { appendClassNames } from '@telia-ace/widget-utilities';\nimport React, { useMemo } from 'react';\nimport { AvailablePerspectives, GuideProps } from './guide-component';\n\ntype Props = {\n className?: string;\n defaultAnswerVersionLabel: string;\n availablePerspectives?: AvailablePerspectives[];\n guide: GuideProps;\n};\n\ntype Perspective = { label: string; connection: string };\n\nconst AnswerVersionPicker: React.FC<Props> = ({\n className,\n defaultAnswerVersionLabel,\n guide: { perspective: selectedPerspective, perspectives: guidePerspectives },\n availablePerspectives = [],\n}) => {\n const { name, params } = useRouteData();\n\n const perspectives: Perspective[] = useMemo(() => {\n if (!guidePerspectives || !availablePerspectives.length) {\n return [];\n }\n\n return availablePerspectives\n .filter(({ name }) => !!guidePerspectives[name])\n .map(({ name, title }) => {\n return { label: title, connection: guidePerspectives[name] };\n });\n }, [guidePerspectives, availablePerspectives]);\n\n return (\n <StyledList\n className={appendClassNames(className, 'humany-guide-answer-version-picker')}\n items={perspectives}\n renderItem={(perspective: Perspective) => {\n const label =\n perspective.label === 'Default' ? defaultAnswerVersionLabel : perspective.label;\n const selected = selectedPerspective === perspective.connection;\n const isRoot =\n selected && (!params.connection || selectedPerspective === params.connection);\n\n return (\n <li key={perspective.connection} data-version={perspective.connection}>\n <VersionLink\n key={perspective.connection}\n as={isRoot ? 'span' : undefined}\n text={label}\n routeName={name}\n selected={selected}\n aria-label={label}\n title={label}\n params={{\n ...params,\n connection: perspective.connection,\n }}\n />\n </li>\n );\n }}\n />\n );\n};\n\nexport default AnswerVersionPicker;\n\nconst StyledList = styled(List)`\n display: flex;\n align-items: center;\n flex-wrap: wrap;\n\n list-style: none;\n padding: 0;\n margin: 0;\n\n li:not(:last-child) {\n margin: 0 calc(${(p) => p.theme.sizes?.small} * 2) 0 0;\n }\n\n li > span {\n cursor: default;\n }\n`;\n\nconst VersionLink = styled(TextLink)<{ selected: boolean }>`\n font-weight: 300;\n color: ${(p) => p.theme.colors?.text};\n text-decoration: none;\n\n ${(p) =>\n p.selected &&\n css`\n font-weight: bold;\n text-decoration: underline;\n `}\n\n &:focus-visible {\n ${paddedBorderTabStyle};\n }\n`;\n","import styled from '@emotion/styled';\nimport { ContactList } from '@telia-ace/knowledge-widget-adapters';\nimport {\n Feedback as FeedbackUi,\n StyledHeaderText,\n useDispatch,\n useProperties,\n} from '@telia-ace/knowledge-widget-ui';\nimport React from 'react';\nimport { GuideComponentProps } from './guide-component';\n\ntype Props = { backButtonShown?: boolean; accordion?: boolean };\n\nconst StyledContactList = styled(ContactList)<{\n accordion: 'true' | 'false';\n backButtonShown: 'true' | 'false';\n}>`\n border-top: ${(p) => p.theme.border};\n ${(p) => p.backButtonShown === 'true' && `border-bottom: ${p.theme.border};`}\n`;\n\nconst StyledFeedback = styled(FeedbackUi)<{ accordion: 'true' | 'false' }>`\n ${(p) => `padding: ${p.theme.sizes?.large} ${p.theme.sizes?.large};`}\n`;\n\nconst Recognition = styled(StyledHeaderText)<{ accordion: 'true' | 'false' }>`\n ${(p) => `padding: ${p.theme.sizes?.large} ${p.theme.sizes?.large};`}\n\n display: block;\n font-size: ${(p) => p.theme.fonts?.normal};\n font-weight: bold;\n`;\n\nconst Feedback: React.FC<Props> = ({ backButtonShown = false, accordion = false }) => {\n const dispatch = useDispatch();\n const {\n loading = false,\n dialog = [],\n guide,\n\n handoverContactMethods = [],\n contactHeader,\n\n showFeedback,\n feedbackDirection = 'horizontal',\n feedbackRecognitionLabel,\n feedbackGiven,\n feedbackHeader,\n positiveFeedbackLabel,\n negativeFeedbackLabel,\n contactFeedbackLabel,\n } = useProperties<GuideComponentProps>();\n\n if (\n !showFeedback ||\n !guide ||\n !guide.allowFeedback ||\n (loading && !feedbackGiven) ||\n dialog.length\n ) {\n return null;\n }\n\n if (feedbackGiven && feedbackRecognitionLabel && !handoverContactMethods.length) {\n return (\n <Recognition accordion={accordion ? 'true' : 'false'}>\n {feedbackRecognitionLabel}\n </Recognition>\n );\n }\n\n return guide.hasHandover && handoverContactMethods.length ? (\n <StyledContactList\n backButtonShown={backButtonShown ? 'true' : 'false'}\n accordion={accordion ? 'true' : 'false'}\n header={contactHeader}\n contactMethods={handoverContactMethods}\n dispatch={dispatch}\n />\n ) : (\n <StyledFeedback\n accordion={accordion ? 'true' : 'false'}\n positive={positiveFeedbackLabel}\n negative={guide.hasHandover ? contactFeedbackLabel : negativeFeedbackLabel}\n header={feedbackHeader}\n selected={feedbackGiven}\n onFeedback={(feedback: any) => dispatch('feedback', feedback)}\n direction={feedbackDirection}\n />\n );\n};\n\nexport default Feedback;\n","import styled from '@emotion/styled';\nimport { Category, PickerTypes } from '@telia-ace/knowledge-widget-core';\nimport {\n StyledListButton,\n SymbolBadge,\n Text,\n Tooltip,\n useContainer,\n} from '@telia-ace/knowledge-widget-ui';\nimport { buildCategoryTrail } from '@telia-ace/widget-utilities';\nimport React, { useEffect, useState } from 'react';\nimport { GuideProps, ToolbarProps } from './guide-component';\n\ntype Props = {\n guide: GuideProps;\n toolbar: ToolbarProps;\n};\n\nconst Categories: React.FC<Props> = ({\n guide: { categories = [] },\n toolbar: { picker = PickerTypes.NONE },\n}) => {\n const [trail, setTrail] = useState<Category[][]>([]);\n const container = useContainer();\n\n useEffect(() => {\n buildCategoryTrail(\n 'index',\n categories.map((id) => id.toString()),\n container\n ).then((result) => {\n setTrail(result);\n });\n }, [categories]);\n\n if (!trail.length) {\n return null;\n }\n\n return (\n <Tooltip\n className=\"humany-guide-category-tooltip\"\n sticky={picker === PickerTypes.DRAWER}\n content={\n <>\n {trail.map((segments) => {\n return (\n <CategoryTrail\n className=\"humany-guide-category-trail\"\n key={segments.map((c) => c.id).join('.')}\n >\n {segments.map((category, index: number) => {\n return (\n <Text\n className=\"humany-guide-category-trail-segment\"\n key={category.id}\n >\n {category.symbol && index === 0 && (\n <SymbolBadge size={14} symbol={category.symbol} />\n )}\n {category.title}\n {index !== segments.length - 1 && (\n <CategorySeparator className=\"humany-category-separator\">\n /\n </CategorySeparator>\n )}\n </Text>\n );\n })}\n </CategoryTrail>\n );\n })}\n </>\n }\n >\n {picker === PickerTypes.DRAWER ? (\n <StyledListButton\n className=\"humany-guide-category-tooltip-button\"\n data-has-label=\"false\"\n data-has-symbol=\"true\"\n >\n <CategoriesSymbolBadge\n size={19}\n symbol={{ type: 'Svg', content: 'information' }}\n />\n </StyledListButton>\n ) : (\n <CategoriesSymbolBadge size={19} symbol={{ type: 'Svg', content: 'information' }} />\n )}\n </Tooltip>\n );\n};\n\nexport default Categories;\n\nconst CategoryTrail = styled.div`\n i,\n svg {\n margin: 0 ${(p) => p.theme.sizes?.small} 0 0;\n }\n\n &:not(:last-child) {\n margin: 0 0 ${(p) => p.theme.sizes?.small};\n }\n`;\n\nconst CategorySeparator = styled(Text)`\n margin: 0 ${(p) => p.theme.sizes?.small};\n`;\n\nconst CategoriesSymbolBadge = styled(SymbolBadge)`\n display: block;\n`;\n","import styled from '@emotion/styled';\nimport { PickerTypes } from '@telia-ace/knowledge-widget-core';\nimport {\n DispatchAction,\n DrawerAnimationType,\n DrawerList,\n DropdownList,\n FavoriteButton,\n StyledListButton,\n StyledText,\n SymbolBadge,\n useFavorites,\n} from '@telia-ace/knowledge-widget-ui';\nimport React, { useCallback, useMemo } from 'react';\nimport { GuideProps } from './guide-component';\n\nexport type FunctionListItem = {\n type: string;\n child: React.ReactNode;\n};\n\ntype Props = {\n header?: string;\n tooltip?: string;\n printActionLabel?: string;\n copyActionLabel?: string;\n addFavoriteTooltip?: string;\n removeFavoriteCancelLabel?: string;\n removeFavoriteConfirmLabel?: string;\n removeFavoriteHeader?: string;\n removeFavoriteLabel?: string;\n removeFavoriteTooltip?: string;\n toolbarFunctionsCloseButtonAriaLabel?: string;\n guide: GuideProps;\n allowCopy?: boolean;\n allowPrint?: boolean;\n showFavoriteToggle?: boolean;\n picker?: PickerTypes;\n dispatch: DispatchAction;\n};\n\nconst Functions: React.FC<Props> = ({\n header,\n tooltip,\n printActionLabel,\n copyActionLabel,\n addFavoriteTooltip,\n removeFavoriteCancelLabel,\n removeFavoriteConfirmLabel,\n removeFavoriteHeader,\n removeFavoriteLabel,\n removeFavoriteTooltip,\n toolbarFunctionsCloseButtonAriaLabel,\n allowCopy = false,\n allowPrint = false,\n showFavoriteToggle = false,\n picker = PickerTypes.NONE,\n guide,\n dispatch,\n}) => {\n const [favorites, actions] = useFavorites();\n\n const handleCopy = useCallback(\n (event: any) => {\n if (guide) {\n dispatch('copy', guide);\n }\n },\n [guide, dispatch]\n );\n\n const handlePrint = useCallback(() => {\n if (guide) {\n dispatch('print');\n }\n }, [guide, dispatch]);\n\n const items = useMemo(() => {\n const { id, title } = guide;\n\n const items: FunctionListItem[] = [];\n\n if (allowCopy) {\n items.push({\n type: 'copy',\n child: (\n <StyledListButton\n data-has-label={copyActionLabel ? 'true' : 'false'}\n data-has-symbol=\"true\"\n title={copyActionLabel}\n aria-label={printActionLabel}\n onClick={handleCopy}\n >\n <ColoredSymbolBadge size={16} symbol={{ type: 'Svg', content: 'copy' }} />\n {copyActionLabel && <StyledText>{copyActionLabel}</StyledText>}\n </StyledListButton>\n ),\n });\n }\n\n if (allowPrint) {\n items.push({\n type: 'print',\n child: (\n <StyledListButton\n data-has-label={printActionLabel ? 'true' : 'false'}\n data-has-symbol=\"true\"\n title={printActionLabel}\n aria-label={printActionLabel}\n onClick={handlePrint}\n >\n <ColoredSymbolBadge size={16} symbol={{ type: 'Svg', content: 'print' }} />\n {printActionLabel && <StyledText>{printActionLabel}</StyledText>}\n </StyledListButton>\n ),\n });\n }\n\n if (showFavoriteToggle) {\n const isFavorite = favorites.indexOf(id) > -1;\n items.push({\n type: 'favorite',\n child: (\n <FavoriteButton\n id={id}\n guideTitle={title}\n isFavorite={isFavorite}\n buttonLabel={isFavorite ? removeFavoriteTooltip : addFavoriteTooltip}\n addFavoriteTooltip={addFavoriteTooltip}\n removeFavoriteCancelLabel={removeFavoriteCancelLabel}\n removeFavoriteConfirmLabel={removeFavoriteConfirmLabel}\n removeFavoriteHeader={removeFavoriteHeader}\n removeFavoriteLabel={removeFavoriteLabel}\n removeFavoriteTooltip={removeFavoriteTooltip}\n actions={actions}\n />\n ),\n });\n }\n\n return items;\n }, [\n favorites,\n guide,\n allowCopy,\n allowPrint,\n showFavoriteToggle,\n printActionLabel,\n copyActionLabel,\n addFavoriteTooltip,\n removeFavoriteCancelLabel,\n removeFavoriteConfirmLabel,\n removeFavoriteHeader,\n removeFavoriteLabel,\n removeFavoriteTooltip,\n ]);\n\n if (!items.length) {\n return null;\n }\n\n const trigger = (\n <StyledTriggerButton\n tabIndex={0}\n title={tooltip}\n data-has-symbol=\"true\"\n data-has-label=\"false\"\n >\n <ColoredSymbolBadge symbol={{ type: 'Svg', content: 'options' }} size={18} />\n </StyledTriggerButton>\n );\n\n const renderListItem = ({ type, child }: FunctionListItem) => {\n return (\n <li key={type} data-function-type={type}>\n {child}\n </li>\n );\n };\n\n if (picker === PickerTypes.DROPDOWN) {\n return (\n <StyledDropdownList\n className=\"humany-guide-functions-dropdown-list\"\n header={header}\n items={items}\n trigger={trigger}\n renderItem={renderListItem}\n closeButtonAriaLabel={toolbarFunctionsCloseButtonAriaLabel}\n />\n );\n }\n\n if (picker === PickerTypes.DRAWER) {\n return (\n <DrawerList\n className=\"humany-guide-functions-drawer-list\"\n animation={{ type: DrawerAnimationType.SlideInBottom }}\n header={header}\n items={items}\n trigger={trigger}\n renderItem={renderListItem}\n closeButtonAriaLabel={toolbarFunctionsCloseButtonAriaLabel}\n />\n );\n }\n\n return null;\n};\n\nexport default Functions;\n\nconst ColoredSymbolBadge = styled(SymbolBadge)`\n circle {\n fill: ${(p) => p.theme.colors?.text};\n }\n\n line,\n path,\n rect {\n stroke: ${(p) => p.theme.colors?.text};\n }\n`;\n\nconst StyledDropdownList = styled(DropdownList)`\n display: block;\n min-height: auto;\n`;\n\nconst StyledTriggerButton = styled(StyledListButton)<any>`\n padding: calc(${(p) => p.theme.sizes?.small} * 2) 0;\n`;\n","import styled from '@emotion/styled';\nimport { LanguageProperties } from '@telia-ace/knowledge-widget-component-utilities';\nimport { PickerTypes } from '@telia-ace/knowledge-widget-core';\nimport {\n DrawerAnimationType,\n DrawerList,\n DropdownList,\n paddedBorderTabStyle,\n StyledListButton,\n SymbolBadge,\n Text,\n TextLink,\n useRouteData,\n} from '@telia-ace/knowledge-widget-ui';\nimport { createParams } from '@telia-ace/widget-utilities';\nimport React, { useMemo } from 'react';\nimport { GuideProps } from './guide-component';\n\nexport type LanguageListItem = {\n id: string;\n key: string;\n label: string;\n};\n\ntype Props = Merge<\n {\n header?: string;\n tooltip?: string;\n guide: GuideProps;\n picker?: PickerTypes;\n },\n LanguageProperties\n>;\n\nconst getCurrentLanguageLabel = (guide: GuideProps, languages: LanguageListItem[]) => {\n return languages.find((l) => l.id === guide.id)?.label || '';\n};\n\nconst Languages: React.FC<Props> = ({\n header,\n tooltip,\n picker = PickerTypes.NONE,\n guide,\n ...other\n}) => {\n const { name, params } = useRouteData();\n\n const items = useMemo(() => {\n return Object.keys(guide.translations || {}).reduce((acc: LanguageListItem[], key) => {\n const item: Partial<LanguageListItem> = {};\n item.key = key;\n item.id = (guide.translations || {})[key];\n item.label = (other as { [key: string]: string })[`${key}LanguageLabel`];\n\n if (item.id || item.label) {\n acc.push(item as LanguageListItem);\n }\n\n return acc;\n }, []);\n }, [guide, other]);\n\n if (!items.length) {\n return null;\n }\n\n const currentLanguage = getCurrentLanguageLabel(guide, items);\n\n const trigger = (\n <Trigger\n tabIndex={0}\n title={tooltip}\n data-has-symbol=\"true\"\n data-has-label={picker === PickerTypes.DROPDOWN && currentLanguage ? 'true' : 'false'}\n >\n {picker === PickerTypes.DROPDOWN && (\n <>\n {currentLanguage && <LanguageButtonText>{currentLanguage}</LanguageButtonText>}\n <LanguageCaretSymbolBadge\n symbol={{ type: 'Svg', content: 'caret-down' }}\n size={11}\n />\n </>\n )}\n {picker === PickerTypes.DRAWER && (\n <>\n <ColoredSymbolBadge symbol={{ type: 'Svg', content: 'language' }} size={20} />\n </>\n )}\n </Trigger>\n );\n\n const renderListItem = ({ label, key, id }: LanguageListItem) => {\n return (\n <li key={key} data-language={key}>\n <LanguageLink\n tabIndex={0}\n text={label}\n routeName={name}\n selected={guide.id === id}\n params={createParams({\n ...params,\n connection: undefined,\n guide: id,\n })}\n />\n </li>\n );\n };\n\n if (picker === PickerTypes.DROPDOWN) {\n return (\n <StyledDropdownList\n className=\"humany-guide-languages-dropdown-list\"\n header={header}\n items={items}\n trigger={trigger}\n renderItem={renderListItem}\n />\n );\n }\n\n if (picker === PickerTypes.DRAWER) {\n return (\n <DrawerList\n className=\"humany-guide-languages-drawer-list\"\n animation={{ type: DrawerAnimationType.SlideInBottom }}\n header={header}\n items={items}\n trigger={trigger}\n renderItem={renderListItem}\n />\n );\n }\n\n return null;\n};\n\nexport default Languages;\n\nconst Trigger = styled(StyledListButton)`\n &&& {\n margin: 0 ${(p) => `calc(${p.theme.sizes?.small} * 2)`} 0 0;\n }\n`;\n\nconst ColoredSymbolBadge = styled(SymbolBadge)`\n circle {\n fill: ${(p) => p.theme.colors?.text};\n }\n\n line,\n path,\n rect {\n stroke: ${(p) => p.theme.colors?.text};\n }\n`;\n\nconst LanguageButtonText = styled(Text)`\n margin: 0 ${(p) => p.theme.sizes?.small} 0 0;\n font-size: ${(p) => p.theme.fonts?.normal};\n`;\n\nconst LanguageCaretSymbolBadge = styled(SymbolBadge)`\n align-self: flex-end;\n stroke-width: 2px;\n stroke-linecap: round;\n\n && {\n width: 0.6em;\n height: 1em;\n }\n line {\n stroke: ${(p) => p.theme.colors?.text};\n }\n`;\n\nconst StyledDropdownList = styled(DropdownList)`\n display: block;\n min-height: auto;\n`;\n\nconst LanguageLink = styled(TextLink)<any>`\n color: ${(p) => (p.selected ? p.theme.colors?.primary : p.theme.colors?.text)};\n ${(p) => p.selected && 'font-weight: bold;'}\n\n outline: none;\n &:focus-visible {\n ${paddedBorderTabStyle}\n text-decoration: underline;\n }\n`;\n","import styled from '@emotion/styled';\nimport { PickerTypes } from '@telia-ace/knowledge-widget-core';\nimport { DispatchAction, useProperties } from '@telia-ace/knowledge-widget-ui';\nimport { appendClassNames } from '@telia-ace/widget-utilities';\nimport React from 'react';\nimport Categories from './categories';\nimport Functions from './functions';\nimport { GuideComponentProps, ToolbarProps } from './guide-component';\nimport Languages from './languages';\n\ntype Props = {\n className?: string;\n dispatch: DispatchAction;\n};\n\nconst isEmpty = (toolbar: ToolbarProps) => {\n const {\n allowCopy = false,\n allowPrint = false,\n guideCategories = false,\n language = false,\n showFavoriteToggle = false,\n picker = PickerTypes.NONE,\n } = toolbar;\n\n if (\n (!allowCopy && !allowPrint && !language && !showFavoriteToggle && !guideCategories) ||\n picker === PickerTypes.NONE\n ) {\n return true;\n }\n\n return false;\n};\n\nconst Toolbar: React.FC<Props> = ({ className = '', dispatch }) => {\n const {\n toolbarLanguageHeader,\n toolbarFunctionsHeader,\n toolbarLanguageTooltip,\n toolbarFunctionsTooltip,\n toolbarFunctionsCloseButtonAriaLabel,\n printActionLabel,\n copyActionLabel,\n addFavoriteTooltip,\n removeFavoriteCancelLabel,\n removeFavoriteConfirmLabel,\n removeFavoriteHeader,\n removeFavoriteLabel,\n removeFavoriteTooltip,\n guide,\n toolbar,\n ...other\n } = useProperties<GuideComponentProps>();\n\n if (!guide || !toolbar || isEmpty(toolbar)) {\n return null;\n }\n\n const { language, guideCategories, allowCopy, allowPrint, showFavoriteToggle, picker } =\n toolbar;\n\n return (\n <Wrapper className={appendClassNames('humany-guide-toolbar', className)}>\n {language && Object.keys(guide.translations || {}).length > 1 && (\n <Languages\n guide={guide}\n header={toolbarLanguageHeader}\n tooltip={toolbarLanguageTooltip}\n picker={picker}\n {...other}\n />\n )}\n {guideCategories && <Categories guide={guide} toolbar={toolbar} />}\n {(allowCopy || allowPrint || showFavoriteToggle) && (\n <Functions\n guide={guide}\n header={toolbarFunctionsHeader}\n tooltip={toolbarFunctionsTooltip}\n printActionLabel={printActionLabel}\n copyActionLabel={copyActionLabel}\n addFavoriteTooltip={addFavoriteTooltip}\n removeFavoriteCancelLabel={removeFavoriteCancelLabel}\n removeFavoriteConfirmLabel={removeFavoriteConfirmLabel}\n removeFavoriteHeader={removeFavoriteHeader}\n removeFavoriteLabel={removeFavoriteLabel}\n removeFavoriteTooltip={removeFavoriteTooltip}\n toolbarFunctionsCloseButtonAriaLabel={toolbarFunctionsCloseButtonAriaLabel}\n allowCopy={allowCopy}\n allowPrint={allowPrint}\n showFavoriteToggle={showFavoriteToggle}\n picker={picker}\n dispatch={dispatch}\n />\n )}\n </Wrapper>\n );\n};\n\nexport default Toolbar;\n\nconst Wrapper = styled.div`\n display: flex;\n align-items: center;\n justify-content: space-between;\n margin: 0 0 0 auto;\n\n > :not(:last-child) {\n margin: 0 calc(${(p) => p.theme.sizes?.small} * 2) 0 0;\n }\n`;\n","import { css } from '@emotion/react';\nimport styled from '@emotion/styled';\nimport { contactLink, ContactList } from '@telia-ace/knowledge-widget-adapters';\nimport {\n Button,\n contentBox,\n createEmptyComponent,\n DialogLink,\n DialogList,\n embeddedLinkMapper,\n genericHtml,\n headingElement,\n Lightbox,\n linkTabStyle,\n Loader,\n loadingOpacity,\n Metadata,\n Paragraph,\n useChildren,\n useContainer,\n useDispatch,\n useProperties,\n useRouteData,\n} from '@telia-ace/knowledge-widget-ui';\nimport { Component, NotFound } from '@telia-ace/widget-types-grid';\nimport { appendClassNames } from '@telia-ace/widget-utilities';\nimport React, { forwardRef, useCallback, useMemo } from 'react';\nimport AnswerVersionPicker from './answer-version-picker';\nimport Feedback from './feedback';\nimport { GuideComponentProps } from './guide-component';\nimport Toolbar from './toolbar';\n\ntype Props = { className: string; accordion?: boolean };\n\nconst Guide = forwardRef<HTMLDivElement, Props>(\n ({ className, accordion = false, ...other }, ref) => {\n const {\n loading = false,\n dialog = [],\n contactMethods = [],\n showHeader = true,\n showAnswerVersions = false,\n defaultAnswerVersionLabel = 'Default',\n backButtonLabel,\n metadataByLabel,\n metadataModifiedLabel,\n metadataPublishedLabel,\n availablePerspectives,\n metadata,\n toolbar,\n guide,\n error,\n } = useProperties<GuideComponentProps>();\n const {\n params: { connection },\n } = useRouteData();\n const container = useContainer();\n const children = useChildren();\n const dispatch = useDispatch();\n\n const transform = useMemo(() => {\n return {\n transform: {\n img: (attrs: any) => (\n <Lightbox attrs={attrs} htmlBody={guide?.body || ''}></Lightbox>\n ),\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(\n ({ connection }: any) => connection === connectionId\n );\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 }, [guide, container, dialog]);\n\n const handleBackButtonClick = useCallback(() => {\n dispatch('back');\n }, [dispatch]);\n\n if (!guide && !error && !loading) {\n return createEmptyComponent(container, {\n ...other,\n className: appendClassNames(className, 'humany-guide'),\n });\n }\n\n const { id = '', title = '', body = '', translations = {} } = guide || {};\n\n if (error && error.status === 404) {\n return <NotFound showSearch={false} />;\n }\n\n const showBackButton = !!accordion && !!connection;\n const language = Object.keys(translations).find((key) => translations[key] === `${id}`);\n\n return (\n <Wrapper\n ref={ref}\n {...other}\n data-loading={loading}\n className={appendClassNames(className, 'humany-guide')}\n >\n <Content\n data-loading={loading}\n accordion={accordion ? 'true' : 'false'}\n className=\"humany-guide-content\"\n >\n {((showAnswerVersions && guide) || !!toolbar) && (\n <Top className=\"humany-guide-top\">\n {showAnswerVersions && guide && (\n <AnswerVersionPicker\n defaultAnswerVersionLabel={defaultAnswerVersionLabel}\n availablePerspectives={availablePerspectives}\n guide={guide}\n />\n )}\n {!!toolbar && <Toolbar dispatch={dispatch} />}\n </Top>\n )}\n {!!(title || body) && (\n <Body\n className=\"humany-guide-body\"\n accordion={accordion ? 'true' : 'false'}\n header={(showHeader && title) || undefined}\n html={body}\n htmlParseInstruction={transform}\n lang={language}\n />\n )}\n {dialog && body.indexOf('h-option-link') === -1 && (\n <StyledDialogList dialog={dialog} />\n )}\n <StyledContactList\n backButtonShown={showBackButton ? 'true' : 'false'}\n contactMethods={contactMethods}\n dispatch={dispatch}\n guideId={guide && guide.id}\n />\n {!contactMethods.length && (\n <Feedback backButtonShown={showBackButton} accordion={accordion} />\n )}\n {showBackButton && (\n <BackButton aria-label={backButtonLabel} onClick={handleBackButtonClick}>\n <Caret\n width=\"7\"\n height=\"13\"\n viewBox=\"0 0 7 13\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <line x1=\"6.64645\" y1=\"12.5513\" x2=\"0.648357\" y2=\"6.55319\" />\n <line x1=\"0.646447\" y1=\"6.64455\" x2=\"6.64454\" y2=\"0.646465\" />\n </Caret>\n {backButtonLabel && <span>{backButtonLabel}</span>}\n </BackButton>\n )}\n {metadata && (\n <StyledMetadata\n {...metadata}\n modified={guide?.modified}\n published={guide?.published}\n modifiedBy={guide?.modifiedBy}\n publishedBy={guide?.publishedBy}\n byLabel={metadataByLabel}\n modifiedLabel={metadataModifiedLabel}\n publishedLabel={metadataPublishedLabel}\n />\n )}\n {children.map((child) => (\n <StyledComponents\n key={child.id}\n id={child.id}\n branch=\"default\"\n {...{ embedded: true }}\n />\n ))}\n </Content>\n\n <Loader loading={loading} />\n </Wrapper>\n );\n }\n);\n\nexport default Guide;\n\nconst Wrapper = styled.div<{ 'data-loading': boolean }>`\n ${loadingOpacity}\n min-width: 0;\n`;\n\nconst Body = styled(Paragraph)<{ accordion: 'true' | 'false' }>`\n ${genericHtml}\n ${(p) => `padding: ${p.theme.sizes?.large};`}\n display: block;\n line-height: 1.6em;\n\n ${(p) =>\n headingElement(p)(\n 'h1',\n css`\n font-size: ${p.theme.fonts?.large};\n font-weight: normal;\n line-height: 1.6em;\n line-height: 1.6em;\n margin: 0 0 ${p.theme.sizes?.small};\n `\n )}\n\n p {\n font-weight: 300;\n font-size: ${(p) => p.theme.fonts?.normal};\n color: ${(p) => p.theme.colors?.text};\n a {\n display: inline;\n }\n }\n`;\n\nconst StyledContactList = styled(ContactList)<{ backButtonShown: 'true' | 'false' }>`\n border-top: ${(p) => p.theme.border};\n ${(p) => p.backButtonShown === 'true' && `border-bottom: ${p.theme.border};`}\n`;\n\nconst StyledDialogList = styled(DialogList)`\n ${(p) => `padding: 0 ${p.theme.sizes?.large} ${p.theme.sizes?.large};`}\n display: block;\n`;\n\nconst Top = styled.div`\n ${(p) => `padding: calc(${p.theme.sizes?.normal}*2) ${p.theme.sizes?.large};`}\n display: flex;\n justify-content: space-between;\n align-items: center;\n border-bottom: ${(p) => p.theme.border};\n border-radius: ${(p) => `${p.theme.borderRadius} ${p.theme.borderRadius}`} 0 0;\n background-color: #ffffff;\n`;\n\nconst Content = styled.div<{ 'data-loading': boolean; accordion: 'true' | 'false' } & any>`\n ${contentBox}\n display: block;\n > a {\n ${contactLink}\n }\n\n ${(p) =>\n p.accordion === 'true' &&\n css`\n white-space: normal;\n box-shadow: none;\n background-color: #fafafa;\n `}\n`;\n\nconst StyledMetadata = styled(Metadata)`\n display: block;\n ${(p) => `padding: calc(${p.theme.sizes?.normal}*2) ${p.theme.sizes?.large};`}\n font-weight: 300;\n font-size: ${(p) => p.theme.fonts?.normal};\n color: ${(p) => p.theme.colors?.text};\n border-top: ${(p) => p.theme.border};\n`;\n\nconst StyledComponents = styled(Component)`\n border-top: ${(p) => p.theme.border};\n`;\n\nconst BackButton = styled(Button)`\n ${(p) => `padding: ${p.theme.sizes?.normal} calc(${p.theme.sizes?.normal} * 2);`}\n color: ${(p) => p.theme.colors?.primary};\n text-decoration: underline;\n font-size: ${(p) => p.theme.fonts?.normal};\n span {\n font-weight: 300;\n }\n &:focus-visible {\n ${linkTabStyle}\n padding: ${(p) => `calc(${p.theme.sizes?.small} / 2) ${p.theme.sizes?.small}`};\n }\n`;\n\nconst Caret = styled.svg`\n margin-right: ${(p) => p.theme.sizes?.small};\n line {\n stroke: ${(p) => p.theme.colors?.primary};\n }\n`;\n"],"names":["AnswerVersionPicker","className","defaultAnswerVersionLabel","selectedPerspective","guidePerspectives","availablePerspectives","name","params","useRouteData","perspectives","useMemo","title","React","StyledList","appendClassNames","perspective","label","selected","isRoot","VersionLink","__spreadProps","__spreadValues","AnswerVersionPicker$1","styled","List","p","_a","TextLink","css","paddedBorderTabStyle","StyledContactList","ContactList","StyledFeedback","FeedbackUi","_b","Recognition","StyledHeaderText","Feedback","backButtonShown","accordion","dispatch","useDispatch","loading","dialog","guide","handoverContactMethods","contactHeader","showFeedback","feedbackDirection","feedbackRecognitionLabel","feedbackGiven","feedbackHeader","positiveFeedbackLabel","negativeFeedbackLabel","contactFeedbackLabel","useProperties","feedback","Feedback$1","Categories","categories","picker","PickerTypes","trail","setTrail","useState","container","useContainer","useEffect","buildCategoryTrail","id","result","Tooltip","segments","CategoryTrail","c","category","index","Text","SymbolBadge","CategorySeparator","StyledListButton","CategoriesSymbolBadge","Categories$1","Functions","header","tooltip","printActionLabel","copyActionLabel","addFavoriteTooltip","removeFavoriteCancelLabel","removeFavoriteConfirmLabel","removeFavoriteHeader","removeFavoriteLabel","removeFavoriteTooltip","toolbarFunctionsCloseButtonAriaLabel","allowCopy","allowPrint","showFavoriteToggle","favorites","actions","useFavorites","handleCopy","useCallback","event","handlePrint","items","ColoredSymbolBadge","StyledText","isFavorite","FavoriteButton","trigger","StyledTriggerButton","renderListItem","type","child","StyledDropdownList","DrawerList","DrawerAnimationType","Functions$1","DropdownList","getCurrentLanguageLabel","languages","l","Languages","other","__objRest","acc","key","item","currentLanguage","Trigger","LanguageButtonText","LanguageCaretSymbolBadge","LanguageLink","createParams","Languages$1","isEmpty","toolbar","guideCategories","language","Toolbar","toolbarLanguageHeader","toolbarFunctionsHeader","toolbarLanguageTooltip","toolbarFunctionsTooltip","Wrapper","Toolbar$1","Guide","forwardRef","ref","contactMethods","showHeader","showAnswerVersions","backButtonLabel","metadataByLabel","metadataModifiedLabel","metadataPublishedLabel","metadata","error","connection","children","useChildren","transform","attrs","Lightbox","attr","connectionId","DialogLink","embeddedLinkMapper","handleBackButtonClick","createEmptyComponent","body","translations","NotFound","showBackButton","Content","Top","Body","StyledDialogList","BackButton","Caret","StyledMetadata","StyledComponents","Loader","loadingOpacity","Paragraph","genericHtml","headingElement","DialogList","contentBox","contactLink","Metadata","Component","Button","linkTabStyle"],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -1,21 +1,21 @@
|
|
|
1
|
-
var
|
|
2
|
-
var
|
|
1
|
+
var $ = Object.defineProperty, x = Object.defineProperties;
|
|
2
|
+
var C = Object.getOwnPropertyDescriptors;
|
|
3
3
|
var b = Object.getOwnPropertySymbols;
|
|
4
|
-
var
|
|
5
|
-
var v = (t, e, i) => e in t ?
|
|
4
|
+
var M = Object.prototype.hasOwnProperty, B = Object.prototype.propertyIsEnumerable;
|
|
5
|
+
var v = (t, e, i) => e in t ? $(t, e, { enumerable: !0, configurable: !0, writable: !0, value: i }) : t[e] = i, u = (t, e) => {
|
|
6
6
|
for (var i in e || (e = {}))
|
|
7
|
-
|
|
7
|
+
M.call(e, i) && v(t, i, e[i]);
|
|
8
8
|
if (b)
|
|
9
9
|
for (var i of b(e))
|
|
10
|
-
|
|
10
|
+
B.call(e, i) && v(t, i, e[i]);
|
|
11
11
|
return t;
|
|
12
|
-
}, h = (t, e) =>
|
|
13
|
-
import {
|
|
14
|
-
import {
|
|
15
|
-
import {
|
|
16
|
-
import { createReactComponent as
|
|
12
|
+
}, h = (t, e) => x(t, C(e));
|
|
13
|
+
import { FeedbackType as f, DataClient as k, DataType as y } from "@telia-ace/knowledge-data-client";
|
|
14
|
+
import { updateForm as T, useForm as F, useExpand as G } from "@telia-ace/knowledge-widget-component-utilities";
|
|
15
|
+
import { createEventSubscriber as H, extendComponent as P } from "@telia-ace/knowledge-widget-core";
|
|
16
|
+
import { createReactComponent as D } from "@telia-ace/knowledge-widget-ui";
|
|
17
17
|
import * as w from "clipboard-polyfill";
|
|
18
|
-
const
|
|
18
|
+
const E = (t, e) => {
|
|
19
19
|
e.actions.create("feedback", (i) => {
|
|
20
20
|
const d = i === "negative" ? f.Negative : f.Positive, { guide: a, submitButtonLabel: s = "Submit" } = e.properties();
|
|
21
21
|
if (a) {
|
|
@@ -29,11 +29,11 @@ const A = (t, e) => {
|
|
|
29
29
|
guide: a,
|
|
30
30
|
categories: a.categories,
|
|
31
31
|
feedbackType: d.toLowerCase()
|
|
32
|
-
}),
|
|
32
|
+
}), k.getInstance(t).then((g) => g.feedback(n, r, d).then(() => {
|
|
33
33
|
if (c && d === f.Negative)
|
|
34
|
-
return g.fetch(
|
|
34
|
+
return g.fetch(y.ContactMethods, { guideId: n }).then(({ contactMethods: p }) => e.actions.dispatch("handover", {
|
|
35
35
|
handoverContactMethods: p.map((m) => h(u({}, m), {
|
|
36
|
-
body:
|
|
36
|
+
body: T(m, {
|
|
37
37
|
submit: s
|
|
38
38
|
})
|
|
39
39
|
})),
|
|
@@ -42,7 +42,7 @@ const A = (t, e) => {
|
|
|
42
42
|
}));
|
|
43
43
|
}
|
|
44
44
|
}), e.actions.create("handover", (i) => e.writeProperties(h(u({}, i), { loading: !1 })));
|
|
45
|
-
},
|
|
45
|
+
}, I = ({ title: t, body: e }) => {
|
|
46
46
|
let i = "";
|
|
47
47
|
t && t.length && (i = t.trim()), e && e.length && (i = `${i.trim()}
|
|
48
48
|
${e.trim()}`);
|
|
@@ -56,9 +56,9 @@ ${e.trim()}`);
|
|
|
56
56
|
}, L = ({ title: t, body: e }) => {
|
|
57
57
|
let i = "";
|
|
58
58
|
return t && t.length && (i = `<h2>${t.trim()}</h2>`), e && e.length && (i = `${i.trim()}${e.trim()}`), i.trim();
|
|
59
|
-
},
|
|
60
|
-
const { events: e } = t.get("$widget"), [i, d] =
|
|
61
|
-
return
|
|
59
|
+
}, N = (t) => {
|
|
60
|
+
const { events: e } = t.get("$widget"), [i, d] = H(e);
|
|
61
|
+
return D(t, "guide", import("./guide.429e61d5.js"), (a) => {
|
|
62
62
|
const s = (r) => {
|
|
63
63
|
a.writeProperties({
|
|
64
64
|
loading: !0,
|
|
@@ -69,7 +69,7 @@ ${e.trim()}`);
|
|
|
69
69
|
a.actions.create("copy", (r) => {
|
|
70
70
|
const n = new w.ClipboardItem({
|
|
71
71
|
"text/html": new Blob([L(r)], { type: "text/html" }),
|
|
72
|
-
"text/plain": new Blob([
|
|
72
|
+
"text/plain": new Blob([I(r)], { type: "text/plain" })
|
|
73
73
|
});
|
|
74
74
|
return w.write([n]).then(() => {
|
|
75
75
|
e.dispatch("widget:menu-toggled", null);
|
|
@@ -102,7 +102,7 @@ ${e.trim()}`);
|
|
|
102
102
|
feedbackGiven: void 0,
|
|
103
103
|
handoverContactMethods: [],
|
|
104
104
|
contactMethods: r.map((l) => h(u({}, l), {
|
|
105
|
-
body:
|
|
105
|
+
body: T(l, { submit: p })
|
|
106
106
|
}))
|
|
107
107
|
};
|
|
108
108
|
return a.actions.dispatch("fetched", h(u({}, m), {
|
|
@@ -114,14 +114,14 @@ ${e.trim()}`);
|
|
|
114
114
|
s(n);
|
|
115
115
|
}), i("router:changed", (r, { current: n }) => {
|
|
116
116
|
s(n.routeData.params);
|
|
117
|
-
}),
|
|
118
|
-
}).then(() =>
|
|
117
|
+
}), E(t, a), F(t, a), G(a);
|
|
118
|
+
}).then(() => P(t, "guide", (a) => {
|
|
119
119
|
a.actions.watch("guide.fetch", (s, r) => {
|
|
120
120
|
const {
|
|
121
121
|
params: { guide: n, connection: c }
|
|
122
122
|
} = s;
|
|
123
|
-
return n ?
|
|
124
|
-
(o) => o.fetch(
|
|
123
|
+
return n ? k.getInstance(t).then(
|
|
124
|
+
(o) => o.fetch(y.Guide, { connection: c, guideId: n })
|
|
125
125
|
).then(r).catch((o) => {
|
|
126
126
|
if (o)
|
|
127
127
|
return r(o);
|
|
@@ -130,8 +130,8 @@ ${e.trim()}`);
|
|
|
130
130
|
})).then(() => {
|
|
131
131
|
d();
|
|
132
132
|
});
|
|
133
|
-
},
|
|
133
|
+
}, z = N;
|
|
134
134
|
export {
|
|
135
|
-
|
|
135
|
+
z as default
|
|
136
136
|
};
|
|
137
137
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../src/use-feedback.ts","../src/guide-component.ts"],"sourcesContent":["import { updateForm } from '@telia-ace/knowledge-widget-component-utilities';\nimport { ComponentNodeController } from '@telia-ace/knowledge-widget-core';\nimport {\n ContactsResult,\n DataClient,\n DataType,\n FeedbackType,\n} from '@telia-ace/knowledge-widget-types-grid';\nimport { Container } from '@webprovisions/platform';\nimport { GuideComponentProps } from './guide-component';\n\nexport default (container: Container, controller: ComponentNodeController) => {\n controller.actions.create('feedback', (input: 'negative' | 'positive') => {\n const type = input === 'negative' ? FeedbackType.Negative : FeedbackType.Positive;\n const { guide, submitButtonLabel = 'Submit' } =\n controller.properties<GuideComponentProps>();\n if (guide) {\n const { connection, id, hasHandover } = guide;\n controller.writeProperties({\n feedbackGiven: input,\n loading: hasHandover && type === FeedbackType.Negative,\n });\n\n const { events } = container.get('$widget');\n events.dispatch('tracking:feedback-given', {\n guide,\n categories: guide.categories,\n feedbackType: type.toLowerCase(),\n });\n\n return container.getAsync('dataClient').then((dataClient: DataClient) => {\n return dataClient.feedback(id, connection, type).then(() => {\n if (hasHandover && type === FeedbackType.Negative) {\n return dataClient\n .fetch(DataType.ContactMethods, { guideId: id })\n .then(({ contactMethods }: ContactsResult) => {\n return controller.actions.dispatch('handover', {\n handoverContactMethods: contactMethods.map((cm) => ({\n ...cm,\n body: updateForm(cm, {\n submit: submitButtonLabel,\n }),\n })),\n loading: false,\n });\n });\n }\n });\n });\n }\n });\n\n controller.actions.create('handover', (input) => {\n return controller.writeProperties({ ...input, loading: false });\n });\n};\n","import { ContactMethodType } from '@telia-ace/knowledge-widget-adapters';\nimport {\n FavoriteProperties,\n LanguageProperties,\n MetaDataProperties,\n updateForm,\n useExpand,\n useForm,\n} from '@telia-ace/knowledge-widget-component-utilities';\nimport {\n createEventSubscriber,\n DialogItem,\n extendComponent,\n PickerTypes,\n} from '@telia-ace/knowledge-widget-core';\nimport {\n DataClient,\n DataError,\n DataType,\n GuideResult,\n} from '@telia-ace/knowledge-widget-types-grid';\nimport { createReactComponent } from '@telia-ace/knowledge-widget-ui';\nimport { FormComponentInstanceProperties } from '@telia-ace/widget-forms';\nimport { RoutingService } from '@telia-ace/widget-routing';\nimport { Container, EventManager } from '@webprovisions/platform';\nimport * as clipboard from 'clipboard-polyfill';\nimport useFeedback from './use-feedback';\n\nexport type GuideProps = {\n id: string;\n title: string;\n body: string;\n connection: string;\n categories: number[];\n hasHandover: boolean;\n allowFeedback: boolean;\n perspectives: { [key: string]: string };\n translations?: { [key: string]: string };\n modified?: string;\n published?: string;\n publishedBy?: string | null;\n modifiedBy?: string | null;\n perspective: string | null;\n};\n\nexport type AvailablePerspectives = {\n name: string;\n title: string;\n};\n\nexport type GuideComponentProps = {\n showHeader?: boolean;\n showFeedback?: boolean;\n feedbackDirection?: 'horizontal' | 'vertical';\n feedbackGiven?: 'positive' | 'negative'; // internal\n contactMethods?: ContactMethodType[]; // internal\n handoverContactMethods?: ContactMethodType[]; // internal\n showAnswerVersions?: boolean;\n feedbackHeader?: string;\n contactHeader?: string;\n toolbarFunctionsHeader?: string;\n toolbarLanguageHeader?: string;\n positiveFeedbackLabel?: string;\n negativeFeedbackLabel?: string;\n contactFeedbackLabel?: string;\n feedbackRecognitionLabel?: string;\n defaultAnswerVersionLabel?: string;\n backButtonLabel?: string;\n toolbarFunctionsTooltip?: string;\n toolbarFunctionsCloseButtonAriaLabel?: string;\n copyActionLabel?: string;\n printActionLabel?: string;\n toolbarLanguageTooltip?: string;\n toolbar?: ToolbarProps;\n guide?: GuideProps; // internal\n dialog?: DialogItem[]; // internal\n error?: DataError; // internal\n availablePerspectives?: AvailablePerspectives[]; // internal\n} & FormComponentInstanceProperties &\n FavoriteProperties &\n MetaDataProperties &\n LanguageProperties;\n\nexport type ToolbarProps = {\n language?: boolean;\n guideCategories?: boolean;\n allowCopy?: boolean;\n allowPrint?: boolean;\n showFavoriteToggle?: boolean;\n picker?: PickerTypes;\n};\n\nconst buildPlainText = ({ title, body }: GuideProps): string => {\n let processedHtml = '';\n\n if (title && title.length) {\n processedHtml = title.trim();\n }\n\n if (body && body.length) {\n processedHtml = `${processedHtml.trim()}\\n${body.trim()}`;\n }\n\n const div = document.createElement('div');\n div.innerHTML = processedHtml;\n const links: HTMLAnchorElement[] = Array.from(div.getElementsByTagName('a'));\n\n let plainText = div.innerText;\n\n links.forEach((a) => {\n plainText = plainText.replace(a.innerText, `[${a.href}] (${a.innerText})`);\n });\n\n return plainText;\n};\n\nconst buildHtml = ({ title, body }: GuideProps): string => {\n let processedHtml = '';\n\n if (title && title.length) {\n processedHtml = `<h2>${title.trim()}</h2>`;\n }\n\n if (body && body.length) {\n processedHtml = `${processedHtml.trim()}${body.trim()}`;\n }\n\n return processedHtml.trim();\n};\n\nexport const GuideComponent = (container: Container) => {\n const { events }: { events: EventManager } = container.get('$widget');\n const [subscribe, unsubscribe] = createEventSubscriber(events);\n\n return createReactComponent(container, 'guide', import('./guide'), (component) => {\n const fetch = (params: { [key: string]: any }) => {\n component.writeProperties({\n loading: true,\n error: undefined,\n guide: undefined,\n });\n component.actions.dispatch('fetch', { params });\n };\n\n component.actions.create('copy', (guide: GuideProps) => {\n const item = new clipboard.ClipboardItem({\n 'text/html': new Blob([buildHtml(guide)], { type: 'text/html' }),\n 'text/plain': new Blob([buildPlainText(guide)], { type: 'text/plain' }),\n });\n\n return clipboard.write([item]).then(() => {\n events.dispatch('widget:menu-toggled', null);\n });\n });\n\n component.actions.create('print', () => {\n const elem = document.querySelector('.humany-guide .humany-paragraph');\n const a = window.open('', '', 'height=500, width=500');\n\n events.dispatch('widget:menu-toggled', null);\n if (elem && a) {\n a.document.write(`<html><body>${elem.innerHTML}</body></html>`);\n a.document.close();\n a.print();\n }\n });\n\n component.actions.create('back', (data, options) => {\n if (options.preventDefault) {\n return;\n }\n\n return container.getAsync('router').then((router: RoutingService) => {\n router.goBack();\n });\n });\n\n component.actions.create(\n 'fetch',\n ({ contactMethods = [], dialog = [], guide, error }: GuideResult) => {\n if (error) {\n return component.actions.dispatch('fetched', {\n error,\n guide: undefined,\n contactMethods: [],\n feedbackGiven: undefined,\n handoverContactMethods: [],\n showFeedback: false,\n loading: true,\n });\n }\n const { showFeedback = true, submitButtonLabel = 'Submit' } =\n component.properties<GuideComponentProps>();\n\n const properties: GuideComponentProps = {\n showFeedback,\n dialog,\n guide,\n feedbackGiven: undefined,\n handoverContactMethods: [],\n contactMethods: contactMethods.map((cm) => ({\n ...cm,\n body: updateForm(cm, { submit: submitButtonLabel }),\n })),\n };\n\n return component.actions.dispatch('fetched', {\n ...properties,\n loading: true,\n });\n }\n );\n\n component.actions.create('fetched', (input) => {\n return component.writeProperties({ ...input, loading: false });\n });\n\n container.getAsync('router').then((router) => {\n const { params } = router.getRouteData();\n fetch(params);\n });\n\n subscribe('router:changed', (event: any, { current }: any) => {\n fetch(current.routeData.params);\n });\n\n useFeedback(container, component);\n useForm(container, component);\n useExpand(component);\n })\n .then(() => {\n return extendComponent(container, 'guide', (component) => {\n component.actions.watch('guide.fetch', (input, next) => {\n const {\n params: { guide, connection },\n } = input;\n\n if (guide) {\n return container\n .getAsync('dataClient')\n .then((dataClient: DataClient) =>\n dataClient.fetch(DataType.Guide, { connection, guideId: guide })\n )\n .then(next)\n .catch((error) => {\n if (error) {\n return next(error);\n }\n });\n }\n\n return next(input);\n });\n });\n })\n .then(() => {\n unsubscribe();\n });\n};\n\nexport default GuideComponent;\n"],"names":["useFeedback","container","controller","input","type","FeedbackType","guide","submitButtonLabel","connection","id","hasHandover","events","dataClient","DataType","contactMethods","cm","__spreadProps","__spreadValues","updateForm","buildPlainText","title","body","processedHtml","div","links","plainText","a","buildHtml","GuideComponent","subscribe","unsubscribe","createEventSubscriber","createReactComponent","component","fetch","params","item","clipboard","elem","data","options","router","dialog","error","showFeedback","properties","event","current","useForm","useExpand","extendComponent","next","GuideComponent$1"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../src/use-feedback.ts","../src/guide-component.ts"],"sourcesContent":["import {\n ContactsResult,\n DataClient,\n DataType,\n FeedbackType,\n} from '@telia-ace/knowledge-data-client';\nimport { updateForm } from '@telia-ace/knowledge-widget-component-utilities';\nimport { ComponentNodeController } from '@telia-ace/knowledge-widget-core';\nimport { Container } from '@webprovisions/platform';\nimport { GuideComponentProps } from './guide-component';\n\nexport default (container: Container, controller: ComponentNodeController) => {\n controller.actions.create('feedback', (input: 'negative' | 'positive') => {\n const type = input === 'negative' ? FeedbackType.Negative : FeedbackType.Positive;\n const { guide, submitButtonLabel = 'Submit' } =\n controller.properties<GuideComponentProps>();\n if (guide) {\n const { connection, id, hasHandover } = guide;\n controller.writeProperties({\n feedbackGiven: input,\n loading: hasHandover && type === FeedbackType.Negative,\n });\n\n const { events } = container.get('$widget');\n events.dispatch('tracking:feedback-given', {\n guide,\n categories: guide.categories,\n feedbackType: type.toLowerCase(),\n });\n\n return DataClient.getInstance(container).then((dataClient) => {\n return dataClient.feedback(id, connection, type).then(() => {\n if (hasHandover && type === FeedbackType.Negative) {\n return dataClient\n .fetch(DataType.ContactMethods, { guideId: id })\n .then(({ contactMethods }: ContactsResult) => {\n return controller.actions.dispatch('handover', {\n handoverContactMethods: contactMethods.map((cm) => ({\n ...cm,\n body: updateForm(cm, {\n submit: submitButtonLabel,\n }),\n })),\n loading: false,\n });\n });\n }\n });\n });\n }\n });\n\n controller.actions.create('handover', (input) => {\n return controller.writeProperties({ ...input, loading: false });\n });\n};\n","import { DataClient, DataError, DataType, GuideResult } from '@telia-ace/knowledge-data-client';\nimport { ContactMethodType } from '@telia-ace/knowledge-widget-adapters';\nimport {\n FavoriteProperties,\n LanguageProperties,\n MetaDataProperties,\n updateForm,\n useExpand,\n useForm,\n} from '@telia-ace/knowledge-widget-component-utilities';\nimport {\n createEventSubscriber,\n DialogItem,\n extendComponent,\n PickerTypes,\n} from '@telia-ace/knowledge-widget-core';\nimport { createReactComponent } from '@telia-ace/knowledge-widget-ui';\nimport { FormComponentInstanceProperties } from '@telia-ace/widget-forms';\nimport { RoutingService } from '@telia-ace/widget-routing';\nimport { Container, EventManager } from '@webprovisions/platform';\nimport * as clipboard from 'clipboard-polyfill';\nimport useFeedback from './use-feedback';\n\nexport type GuideProps = {\n id: string;\n title: string;\n body: string;\n connection: string;\n categories: number[];\n hasHandover: boolean;\n allowFeedback: boolean;\n perspectives: { [key: string]: string };\n translations?: { [key: string]: string };\n modified?: string;\n published?: string;\n publishedBy?: string | null;\n modifiedBy?: string | null;\n perspective: string | null;\n};\n\nexport type AvailablePerspectives = {\n name: string;\n title: string;\n};\n\nexport type GuideComponentProps = {\n showHeader?: boolean;\n showFeedback?: boolean;\n feedbackDirection?: 'horizontal' | 'vertical';\n feedbackGiven?: 'positive' | 'negative'; // internal\n contactMethods?: ContactMethodType[]; // internal\n handoverContactMethods?: ContactMethodType[]; // internal\n showAnswerVersions?: boolean;\n feedbackHeader?: string;\n contactHeader?: string;\n toolbarFunctionsHeader?: string;\n toolbarLanguageHeader?: string;\n positiveFeedbackLabel?: string;\n negativeFeedbackLabel?: string;\n contactFeedbackLabel?: string;\n feedbackRecognitionLabel?: string;\n defaultAnswerVersionLabel?: string;\n backButtonLabel?: string;\n toolbarFunctionsTooltip?: string;\n toolbarFunctionsCloseButtonAriaLabel?: string;\n copyActionLabel?: string;\n printActionLabel?: string;\n toolbarLanguageTooltip?: string;\n toolbar?: ToolbarProps;\n guide?: GuideProps; // internal\n dialog?: DialogItem[]; // internal\n error?: DataError; // internal\n availablePerspectives?: AvailablePerspectives[]; // internal\n} & FormComponentInstanceProperties &\n FavoriteProperties &\n MetaDataProperties &\n LanguageProperties;\n\nexport type ToolbarProps = {\n language?: boolean;\n guideCategories?: boolean;\n allowCopy?: boolean;\n allowPrint?: boolean;\n showFavoriteToggle?: boolean;\n picker?: PickerTypes;\n};\n\nconst buildPlainText = ({ title, body }: GuideProps): string => {\n let processedHtml = '';\n\n if (title && title.length) {\n processedHtml = title.trim();\n }\n\n if (body && body.length) {\n processedHtml = `${processedHtml.trim()}\\n${body.trim()}`;\n }\n\n const div = document.createElement('div');\n div.innerHTML = processedHtml;\n const links: HTMLAnchorElement[] = Array.from(div.getElementsByTagName('a'));\n\n let plainText = div.innerText;\n\n links.forEach((a) => {\n plainText = plainText.replace(a.innerText, `[${a.href}] (${a.innerText})`);\n });\n\n return plainText;\n};\n\nconst buildHtml = ({ title, body }: GuideProps): string => {\n let processedHtml = '';\n\n if (title && title.length) {\n processedHtml = `<h2>${title.trim()}</h2>`;\n }\n\n if (body && body.length) {\n processedHtml = `${processedHtml.trim()}${body.trim()}`;\n }\n\n return processedHtml.trim();\n};\n\nexport const GuideComponent = (container: Container) => {\n const { events }: { events: EventManager } = container.get('$widget');\n const [subscribe, unsubscribe] = createEventSubscriber(events);\n\n return createReactComponent(container, 'guide', import('./guide'), (component) => {\n const fetch = (params: { [key: string]: any }) => {\n component.writeProperties({\n loading: true,\n error: undefined,\n guide: undefined,\n });\n component.actions.dispatch('fetch', { params });\n };\n\n component.actions.create('copy', (guide: GuideProps) => {\n const item = new clipboard.ClipboardItem({\n 'text/html': new Blob([buildHtml(guide)], { type: 'text/html' }),\n 'text/plain': new Blob([buildPlainText(guide)], { type: 'text/plain' }),\n });\n\n return clipboard.write([item]).then(() => {\n events.dispatch('widget:menu-toggled', null);\n });\n });\n\n component.actions.create('print', () => {\n const elem = document.querySelector('.humany-guide .humany-paragraph');\n const a = window.open('', '', 'height=500, width=500');\n\n events.dispatch('widget:menu-toggled', null);\n if (elem && a) {\n a.document.write(`<html><body>${elem.innerHTML}</body></html>`);\n a.document.close();\n a.print();\n }\n });\n\n component.actions.create('back', (data, options) => {\n if (options.preventDefault) {\n return;\n }\n\n return container.getAsync('router').then((router: RoutingService) => {\n router.goBack();\n });\n });\n\n component.actions.create(\n 'fetch',\n ({ contactMethods = [], dialog = [], guide, error }: GuideResult) => {\n if (error) {\n return component.actions.dispatch('fetched', {\n error,\n guide: undefined,\n contactMethods: [],\n feedbackGiven: undefined,\n handoverContactMethods: [],\n showFeedback: false,\n loading: true,\n });\n }\n const { showFeedback = true, submitButtonLabel = 'Submit' } =\n component.properties<GuideComponentProps>();\n\n const properties: GuideComponentProps = {\n showFeedback,\n dialog,\n guide,\n feedbackGiven: undefined,\n handoverContactMethods: [],\n contactMethods: contactMethods.map((cm) => ({\n ...cm,\n body: updateForm(cm, { submit: submitButtonLabel }),\n })),\n };\n\n return component.actions.dispatch('fetched', {\n ...properties,\n loading: true,\n });\n }\n );\n\n component.actions.create('fetched', (input) => {\n return component.writeProperties({ ...input, loading: false });\n });\n\n container.getAsync('router').then((router) => {\n const { params } = router.getRouteData();\n fetch(params);\n });\n\n subscribe('router:changed', (event: any, { current }: any) => {\n fetch(current.routeData.params);\n });\n\n useFeedback(container, component);\n useForm(container, component);\n useExpand(component);\n })\n .then(() => {\n return extendComponent(container, 'guide', (component) => {\n component.actions.watch('guide.fetch', (input, next) => {\n const {\n params: { guide, connection },\n } = input;\n\n if (guide) {\n return DataClient.getInstance(container)\n .then((dataClient) =>\n dataClient.fetch(DataType.Guide, { connection, guideId: guide })\n )\n .then(next)\n .catch((error) => {\n if (error) {\n return next(error);\n }\n });\n }\n\n return next(input);\n });\n });\n })\n .then(() => {\n unsubscribe();\n });\n};\n\nexport default GuideComponent;\n"],"names":["useFeedback","container","controller","input","type","FeedbackType","guide","submitButtonLabel","connection","id","hasHandover","events","DataClient","dataClient","DataType","contactMethods","cm","__spreadProps","__spreadValues","updateForm","buildPlainText","title","body","processedHtml","div","links","plainText","a","buildHtml","GuideComponent","subscribe","unsubscribe","createEventSubscriber","createReactComponent","component","fetch","params","item","clipboard","elem","data","options","router","dialog","error","showFeedback","properties","event","current","useForm","useExpand","extendComponent","next","GuideComponent$1"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@telia-ace/knowledge-widget-components-guide",
|
|
3
|
-
"version": "1.0.39-next.
|
|
3
|
+
"version": "1.0.39-next.6",
|
|
4
4
|
"description": "Guide component for ACE Knowledge Widgets.",
|
|
5
5
|
"license": "SEE LICENSE IN LICENSE.txt",
|
|
6
6
|
"author": "Telia Company AB",
|
|
@@ -21,13 +21,14 @@
|
|
|
21
21
|
},
|
|
22
22
|
"sideEffects": false,
|
|
23
23
|
"dependencies": {
|
|
24
|
-
"@telia-ace/knowledge-
|
|
25
|
-
"@telia-ace/knowledge-widget-
|
|
26
|
-
"@telia-ace/knowledge-widget-
|
|
27
|
-
"@telia-ace/knowledge-widget-
|
|
28
|
-
"@telia-ace/knowledge-widget-ui": "1.0.41-next.
|
|
24
|
+
"@telia-ace/knowledge-data-client": "1.0.2-next.2",
|
|
25
|
+
"@telia-ace/knowledge-widget-adapters": "1.0.45-next.6",
|
|
26
|
+
"@telia-ace/knowledge-widget-component-utilities": "1.0.39-next.6",
|
|
27
|
+
"@telia-ace/knowledge-widget-core": "1.0.35-next.6",
|
|
28
|
+
"@telia-ace/knowledge-widget-ui": "1.0.41-next.6",
|
|
29
29
|
"@telia-ace/widget-forms": "^1.0.28-next.0",
|
|
30
30
|
"@telia-ace/widget-routing": "^1.0.22-next.0",
|
|
31
|
+
"@telia-ace/widget-types-grid": "^1.0.30-next.0",
|
|
31
32
|
"@telia-ace/widget-utilities": "^1.0.10-next.0",
|
|
32
33
|
"@webprovisions/platform": "^1.1.2",
|
|
33
34
|
"clipboard-polyfill": "4.0.0-rc1"
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"guide.35a46def.js","sources":["../src/answer-version-picker.tsx","../src/feedback.tsx","../src/categories.tsx","../src/functions.tsx","../src/languages.tsx","../src/toolbar.tsx","../src/guide.tsx"],"sourcesContent":["import { css } from '@emotion/react';\nimport styled from '@emotion/styled';\nimport { List, paddedBorderTabStyle, TextLink, useRouteData } from '@telia-ace/knowledge-widget-ui';\nimport { appendClassNames } from '@telia-ace/widget-utilities';\nimport React, { useMemo } from 'react';\nimport { AvailablePerspectives, GuideProps } from './guide-component';\n\ntype Props = {\n className?: string;\n defaultAnswerVersionLabel: string;\n availablePerspectives?: AvailablePerspectives[];\n guide: GuideProps;\n};\n\ntype Perspective = { label: string; connection: string };\n\nconst AnswerVersionPicker: React.FC<Props> = ({\n className,\n defaultAnswerVersionLabel,\n guide: { perspective: selectedPerspective, perspectives: guidePerspectives },\n availablePerspectives = [],\n}) => {\n const { name, params } = useRouteData();\n\n const perspectives: Perspective[] = useMemo(() => {\n if (!guidePerspectives || !availablePerspectives.length) {\n return [];\n }\n\n return availablePerspectives\n .filter(({ name }) => !!guidePerspectives[name])\n .map(({ name, title }) => {\n return { label: title, connection: guidePerspectives[name] };\n });\n }, [guidePerspectives, availablePerspectives]);\n\n return (\n <StyledList\n className={appendClassNames(className, 'humany-guide-answer-version-picker')}\n items={perspectives}\n renderItem={(perspective: Perspective) => {\n const label =\n perspective.label === 'Default' ? defaultAnswerVersionLabel : perspective.label;\n const selected = selectedPerspective === perspective.connection;\n const isRoot =\n selected && (!params.connection || selectedPerspective === params.connection);\n\n return (\n <li key={perspective.connection} data-version={perspective.connection}>\n <VersionLink\n key={perspective.connection}\n as={isRoot ? 'span' : undefined}\n text={label}\n routeName={name}\n selected={selected}\n aria-label={label}\n title={label}\n params={{\n ...params,\n connection: perspective.connection,\n }}\n />\n </li>\n );\n }}\n />\n );\n};\n\nexport default AnswerVersionPicker;\n\nconst StyledList = styled(List)`\n display: flex;\n align-items: center;\n flex-wrap: wrap;\n\n list-style: none;\n padding: 0;\n margin: 0;\n\n li:not(:last-child) {\n margin: 0 calc(${(p) => p.theme.sizes?.small} * 2) 0 0;\n }\n\n li > span {\n cursor: default;\n }\n`;\n\nconst VersionLink = styled(TextLink)<{ selected: boolean }>`\n font-weight: 300;\n color: ${(p) => p.theme.colors?.text};\n text-decoration: none;\n\n ${(p) =>\n p.selected &&\n css`\n font-weight: bold;\n text-decoration: underline;\n `}\n\n &:focus-visible {\n ${paddedBorderTabStyle};\n }\n`;\n","import styled from '@emotion/styled';\nimport { ContactList } from '@telia-ace/knowledge-widget-adapters';\nimport {\n Feedback as FeedbackUi,\n StyledHeaderText,\n useDispatch,\n useProperties,\n} from '@telia-ace/knowledge-widget-ui';\nimport React from 'react';\nimport { GuideComponentProps } from './guide-component';\n\ntype Props = { backButtonShown?: boolean; accordion?: boolean };\n\nconst StyledContactList = styled(ContactList)<{\n accordion: 'true' | 'false';\n backButtonShown: 'true' | 'false';\n}>`\n border-top: ${(p) => p.theme.border};\n ${(p) => p.backButtonShown === 'true' && `border-bottom: ${p.theme.border};`}\n`;\n\nconst StyledFeedback = styled(FeedbackUi)<{ accordion: 'true' | 'false' }>`\n ${(p) => `padding: ${p.theme.sizes?.large} ${p.theme.sizes?.large};`}\n`;\n\nconst Recognition = styled(StyledHeaderText)<{ accordion: 'true' | 'false' }>`\n ${(p) => `padding: ${p.theme.sizes?.large} ${p.theme.sizes?.large};`}\n\n display: block;\n font-size: ${(p) => p.theme.fonts?.normal};\n font-weight: bold;\n`;\n\nconst Feedback: React.FC<Props> = ({ backButtonShown = false, accordion = false }) => {\n const dispatch = useDispatch();\n const {\n loading = false,\n dialog = [],\n guide,\n\n handoverContactMethods = [],\n contactHeader,\n\n showFeedback,\n feedbackDirection = 'horizontal',\n feedbackRecognitionLabel,\n feedbackGiven,\n feedbackHeader,\n positiveFeedbackLabel,\n negativeFeedbackLabel,\n contactFeedbackLabel,\n } = useProperties<GuideComponentProps>();\n\n if (\n !showFeedback ||\n !guide ||\n !guide.allowFeedback ||\n (loading && !feedbackGiven) ||\n dialog.length\n ) {\n return null;\n }\n\n if (feedbackGiven && feedbackRecognitionLabel && !handoverContactMethods.length) {\n return (\n <Recognition accordion={accordion ? 'true' : 'false'}>\n {feedbackRecognitionLabel}\n </Recognition>\n );\n }\n\n return guide.hasHandover && handoverContactMethods.length ? (\n <StyledContactList\n backButtonShown={backButtonShown ? 'true' : 'false'}\n accordion={accordion ? 'true' : 'false'}\n header={contactHeader}\n contactMethods={handoverContactMethods}\n dispatch={dispatch}\n />\n ) : (\n <StyledFeedback\n accordion={accordion ? 'true' : 'false'}\n positive={positiveFeedbackLabel}\n negative={guide.hasHandover ? contactFeedbackLabel : negativeFeedbackLabel}\n header={feedbackHeader}\n selected={feedbackGiven}\n onFeedback={(feedback: any) => dispatch('feedback', feedback)}\n direction={feedbackDirection}\n />\n );\n};\n\nexport default Feedback;\n","import styled from '@emotion/styled';\nimport { Category, PickerTypes } from '@telia-ace/knowledge-widget-core';\nimport {\n StyledListButton,\n SymbolBadge,\n Text,\n Tooltip,\n useContainer,\n} from '@telia-ace/knowledge-widget-ui';\nimport { buildCategoryTrail } from '@telia-ace/widget-utilities';\nimport React, { useEffect, useState } from 'react';\nimport { GuideProps, ToolbarProps } from './guide-component';\n\ntype Props = {\n guide: GuideProps;\n toolbar: ToolbarProps;\n};\n\nconst Categories: React.FC<Props> = ({\n guide: { categories = [] },\n toolbar: { picker = PickerTypes.NONE },\n}) => {\n const [trail, setTrail] = useState<Category[][]>([]);\n const container = useContainer();\n\n useEffect(() => {\n buildCategoryTrail(\n 'index',\n categories.map((id) => id.toString()),\n container\n ).then((result) => {\n setTrail(result);\n });\n }, [categories]);\n\n if (!trail.length) {\n return null;\n }\n\n return (\n <Tooltip\n className=\"humany-guide-category-tooltip\"\n sticky={picker === PickerTypes.DRAWER}\n content={\n <>\n {trail.map((segments) => {\n return (\n <CategoryTrail\n className=\"humany-guide-category-trail\"\n key={segments.map((c) => c.id).join('.')}\n >\n {segments.map((category, index: number) => {\n return (\n <Text\n className=\"humany-guide-category-trail-segment\"\n key={category.id}\n >\n {category.symbol && index === 0 && (\n <SymbolBadge size={14} symbol={category.symbol} />\n )}\n {category.title}\n {index !== segments.length - 1 && (\n <CategorySeparator className=\"humany-category-separator\">\n /\n </CategorySeparator>\n )}\n </Text>\n );\n })}\n </CategoryTrail>\n );\n })}\n </>\n }\n >\n {picker === PickerTypes.DRAWER ? (\n <StyledListButton\n className=\"humany-guide-category-tooltip-button\"\n data-has-label=\"false\"\n data-has-symbol=\"true\"\n >\n <CategoriesSymbolBadge\n size={19}\n symbol={{ type: 'Svg', content: 'information' }}\n />\n </StyledListButton>\n ) : (\n <CategoriesSymbolBadge size={19} symbol={{ type: 'Svg', content: 'information' }} />\n )}\n </Tooltip>\n );\n};\n\nexport default Categories;\n\nconst CategoryTrail = styled.div`\n i,\n svg {\n margin: 0 ${(p) => p.theme.sizes?.small} 0 0;\n }\n\n &:not(:last-child) {\n margin: 0 0 ${(p) => p.theme.sizes?.small};\n }\n`;\n\nconst CategorySeparator = styled(Text)`\n margin: 0 ${(p) => p.theme.sizes?.small};\n`;\n\nconst CategoriesSymbolBadge = styled(SymbolBadge)`\n display: block;\n`;\n","import styled from '@emotion/styled';\nimport { PickerTypes } from '@telia-ace/knowledge-widget-core';\nimport {\n DispatchAction,\n DrawerAnimationType,\n DrawerList,\n DropdownList,\n FavoriteButton,\n StyledListButton,\n StyledText,\n SymbolBadge,\n useFavorites,\n} from '@telia-ace/knowledge-widget-ui';\nimport React, { useCallback, useMemo } from 'react';\nimport { GuideProps } from './guide-component';\n\nexport type FunctionListItem = {\n type: string;\n child: React.ReactNode;\n};\n\ntype Props = {\n header?: string;\n tooltip?: string;\n printActionLabel?: string;\n copyActionLabel?: string;\n addFavoriteTooltip?: string;\n removeFavoriteCancelLabel?: string;\n removeFavoriteConfirmLabel?: string;\n removeFavoriteHeader?: string;\n removeFavoriteLabel?: string;\n removeFavoriteTooltip?: string;\n toolbarFunctionsCloseButtonAriaLabel?: string;\n guide: GuideProps;\n allowCopy?: boolean;\n allowPrint?: boolean;\n showFavoriteToggle?: boolean;\n picker?: PickerTypes;\n dispatch: DispatchAction;\n};\n\nconst Functions: React.FC<Props> = ({\n header,\n tooltip,\n printActionLabel,\n copyActionLabel,\n addFavoriteTooltip,\n removeFavoriteCancelLabel,\n removeFavoriteConfirmLabel,\n removeFavoriteHeader,\n removeFavoriteLabel,\n removeFavoriteTooltip,\n toolbarFunctionsCloseButtonAriaLabel,\n allowCopy = false,\n allowPrint = false,\n showFavoriteToggle = false,\n picker = PickerTypes.NONE,\n guide,\n dispatch,\n}) => {\n const [favorites, actions] = useFavorites();\n\n const handleCopy = useCallback(\n (event: any) => {\n if (guide) {\n dispatch('copy', guide);\n }\n },\n [guide, dispatch]\n );\n\n const handlePrint = useCallback(() => {\n if (guide) {\n dispatch('print');\n }\n }, [guide, dispatch]);\n\n const items = useMemo(() => {\n const { id, title } = guide;\n\n const items: FunctionListItem[] = [];\n\n if (allowCopy) {\n items.push({\n type: 'copy',\n child: (\n <StyledListButton\n data-has-label={copyActionLabel ? 'true' : 'false'}\n data-has-symbol=\"true\"\n title={copyActionLabel}\n aria-label={printActionLabel}\n onClick={handleCopy}\n >\n <ColoredSymbolBadge size={16} symbol={{ type: 'Svg', content: 'copy' }} />\n {copyActionLabel && <StyledText>{copyActionLabel}</StyledText>}\n </StyledListButton>\n ),\n });\n }\n\n if (allowPrint) {\n items.push({\n type: 'print',\n child: (\n <StyledListButton\n data-has-label={printActionLabel ? 'true' : 'false'}\n data-has-symbol=\"true\"\n title={printActionLabel}\n aria-label={printActionLabel}\n onClick={handlePrint}\n >\n <ColoredSymbolBadge size={16} symbol={{ type: 'Svg', content: 'print' }} />\n {printActionLabel && <StyledText>{printActionLabel}</StyledText>}\n </StyledListButton>\n ),\n });\n }\n\n if (showFavoriteToggle) {\n const isFavorite = favorites.indexOf(id) > -1;\n items.push({\n type: 'favorite',\n child: (\n <FavoriteButton\n id={id}\n guideTitle={title}\n isFavorite={isFavorite}\n buttonLabel={isFavorite ? removeFavoriteTooltip : addFavoriteTooltip}\n addFavoriteTooltip={addFavoriteTooltip}\n removeFavoriteCancelLabel={removeFavoriteCancelLabel}\n removeFavoriteConfirmLabel={removeFavoriteConfirmLabel}\n removeFavoriteHeader={removeFavoriteHeader}\n removeFavoriteLabel={removeFavoriteLabel}\n removeFavoriteTooltip={removeFavoriteTooltip}\n actions={actions}\n />\n ),\n });\n }\n\n return items;\n }, [\n favorites,\n guide,\n allowCopy,\n allowPrint,\n showFavoriteToggle,\n printActionLabel,\n copyActionLabel,\n addFavoriteTooltip,\n removeFavoriteCancelLabel,\n removeFavoriteConfirmLabel,\n removeFavoriteHeader,\n removeFavoriteLabel,\n removeFavoriteTooltip,\n ]);\n\n if (!items.length) {\n return null;\n }\n\n const trigger = (\n <StyledTriggerButton\n tabIndex={0}\n title={tooltip}\n data-has-symbol=\"true\"\n data-has-label=\"false\"\n >\n <ColoredSymbolBadge symbol={{ type: 'Svg', content: 'options' }} size={18} />\n </StyledTriggerButton>\n );\n\n const renderListItem = ({ type, child }: FunctionListItem) => {\n return (\n <li key={type} data-function-type={type}>\n {child}\n </li>\n );\n };\n\n if (picker === PickerTypes.DROPDOWN) {\n return (\n <StyledDropdownList\n className=\"humany-guide-functions-dropdown-list\"\n header={header}\n items={items}\n trigger={trigger}\n renderItem={renderListItem}\n closeButtonAriaLabel={toolbarFunctionsCloseButtonAriaLabel}\n />\n );\n }\n\n if (picker === PickerTypes.DRAWER) {\n return (\n <DrawerList\n className=\"humany-guide-functions-drawer-list\"\n animation={{ type: DrawerAnimationType.SlideInBottom }}\n header={header}\n items={items}\n trigger={trigger}\n renderItem={renderListItem}\n closeButtonAriaLabel={toolbarFunctionsCloseButtonAriaLabel}\n />\n );\n }\n\n return null;\n};\n\nexport default Functions;\n\nconst ColoredSymbolBadge = styled(SymbolBadge)`\n circle {\n fill: ${(p) => p.theme.colors?.text};\n }\n\n line,\n path,\n rect {\n stroke: ${(p) => p.theme.colors?.text};\n }\n`;\n\nconst StyledDropdownList = styled(DropdownList)`\n display: block;\n min-height: auto;\n`;\n\nconst StyledTriggerButton = styled(StyledListButton)<any>`\n padding: calc(${(p) => p.theme.sizes?.small} * 2) 0;\n`;\n","import styled from '@emotion/styled';\nimport { LanguageProperties } from '@telia-ace/knowledge-widget-component-utilities';\nimport { PickerTypes } from '@telia-ace/knowledge-widget-core';\nimport {\n DrawerAnimationType,\n DrawerList,\n DropdownList,\n paddedBorderTabStyle,\n StyledListButton,\n SymbolBadge,\n Text,\n TextLink,\n useRouteData,\n} from '@telia-ace/knowledge-widget-ui';\nimport { createParams } from '@telia-ace/widget-utilities';\nimport React, { useMemo } from 'react';\nimport { GuideProps } from './guide-component';\n\nexport type LanguageListItem = {\n id: string;\n key: string;\n label: string;\n};\n\ntype Props = Merge<\n {\n header?: string;\n tooltip?: string;\n guide: GuideProps;\n picker?: PickerTypes;\n },\n LanguageProperties\n>;\n\nconst getCurrentLanguageLabel = (guide: GuideProps, languages: LanguageListItem[]) => {\n return languages.find((l) => l.id === guide.id)?.label || '';\n};\n\nconst Languages: React.FC<Props> = ({\n header,\n tooltip,\n picker = PickerTypes.NONE,\n guide,\n ...other\n}) => {\n const { name, params } = useRouteData();\n\n const items = useMemo(() => {\n return Object.keys(guide.translations || {}).reduce((acc: LanguageListItem[], key) => {\n const item: Partial<LanguageListItem> = {};\n item.key = key;\n item.id = (guide.translations || {})[key];\n item.label = (other as { [key: string]: string })[`${key}LanguageLabel`];\n\n if (item.id || item.label) {\n acc.push(item as LanguageListItem);\n }\n\n return acc;\n }, []);\n }, [guide, other]);\n\n if (!items.length) {\n return null;\n }\n\n const currentLanguage = getCurrentLanguageLabel(guide, items);\n\n const trigger = (\n <Trigger\n tabIndex={0}\n title={tooltip}\n data-has-symbol=\"true\"\n data-has-label={picker === PickerTypes.DROPDOWN && currentLanguage ? 'true' : 'false'}\n >\n {picker === PickerTypes.DROPDOWN && (\n <>\n {currentLanguage && <LanguageButtonText>{currentLanguage}</LanguageButtonText>}\n <LanguageCaretSymbolBadge\n symbol={{ type: 'Svg', content: 'caret-down' }}\n size={11}\n />\n </>\n )}\n {picker === PickerTypes.DRAWER && (\n <>\n <ColoredSymbolBadge symbol={{ type: 'Svg', content: 'language' }} size={20} />\n </>\n )}\n </Trigger>\n );\n\n const renderListItem = ({ label, key, id }: LanguageListItem) => {\n return (\n <li key={key} data-language={key}>\n <LanguageLink\n tabIndex={0}\n text={label}\n routeName={name}\n selected={guide.id === id}\n params={createParams({\n ...params,\n connection: undefined,\n guide: id,\n })}\n />\n </li>\n );\n };\n\n if (picker === PickerTypes.DROPDOWN) {\n return (\n <StyledDropdownList\n className=\"humany-guide-languages-dropdown-list\"\n header={header}\n items={items}\n trigger={trigger}\n renderItem={renderListItem}\n />\n );\n }\n\n if (picker === PickerTypes.DRAWER) {\n return (\n <DrawerList\n className=\"humany-guide-languages-drawer-list\"\n animation={{ type: DrawerAnimationType.SlideInBottom }}\n header={header}\n items={items}\n trigger={trigger}\n renderItem={renderListItem}\n />\n );\n }\n\n return null;\n};\n\nexport default Languages;\n\nconst Trigger = styled(StyledListButton)`\n &&& {\n margin: 0 ${(p) => `calc(${p.theme.sizes?.small} * 2)`} 0 0;\n }\n`;\n\nconst ColoredSymbolBadge = styled(SymbolBadge)`\n circle {\n fill: ${(p) => p.theme.colors?.text};\n }\n\n line,\n path,\n rect {\n stroke: ${(p) => p.theme.colors?.text};\n }\n`;\n\nconst LanguageButtonText = styled(Text)`\n margin: 0 ${(p) => p.theme.sizes?.small} 0 0;\n font-size: ${(p) => p.theme.fonts?.normal};\n`;\n\nconst LanguageCaretSymbolBadge = styled(SymbolBadge)`\n align-self: flex-end;\n stroke-width: 2px;\n stroke-linecap: round;\n\n && {\n width: 0.6em;\n height: 1em;\n }\n line {\n stroke: ${(p) => p.theme.colors?.text};\n }\n`;\n\nconst StyledDropdownList = styled(DropdownList)`\n display: block;\n min-height: auto;\n`;\n\nconst LanguageLink = styled(TextLink)<any>`\n color: ${(p) => (p.selected ? p.theme.colors?.primary : p.theme.colors?.text)};\n ${(p) => p.selected && 'font-weight: bold;'}\n\n outline: none;\n &:focus-visible {\n ${paddedBorderTabStyle}\n text-decoration: underline;\n }\n`;\n","import styled from '@emotion/styled';\nimport { PickerTypes } from '@telia-ace/knowledge-widget-core';\nimport { DispatchAction, useProperties } from '@telia-ace/knowledge-widget-ui';\nimport { appendClassNames } from '@telia-ace/widget-utilities';\nimport React from 'react';\nimport Categories from './categories';\nimport Functions from './functions';\nimport { GuideComponentProps, ToolbarProps } from './guide-component';\nimport Languages from './languages';\n\ntype Props = {\n className?: string;\n dispatch: DispatchAction;\n};\n\nconst isEmpty = (toolbar: ToolbarProps) => {\n const {\n allowCopy = false,\n allowPrint = false,\n guideCategories = false,\n language = false,\n showFavoriteToggle = false,\n picker = PickerTypes.NONE,\n } = toolbar;\n\n if (\n (!allowCopy && !allowPrint && !language && !showFavoriteToggle && !guideCategories) ||\n picker === PickerTypes.NONE\n ) {\n return true;\n }\n\n return false;\n};\n\nconst Toolbar: React.FC<Props> = ({ className = '', dispatch }) => {\n const {\n toolbarLanguageHeader,\n toolbarFunctionsHeader,\n toolbarLanguageTooltip,\n toolbarFunctionsTooltip,\n toolbarFunctionsCloseButtonAriaLabel,\n printActionLabel,\n copyActionLabel,\n addFavoriteTooltip,\n removeFavoriteCancelLabel,\n removeFavoriteConfirmLabel,\n removeFavoriteHeader,\n removeFavoriteLabel,\n removeFavoriteTooltip,\n guide,\n toolbar,\n ...other\n } = useProperties<GuideComponentProps>();\n\n if (!guide || !toolbar || isEmpty(toolbar)) {\n return null;\n }\n\n const { language, guideCategories, allowCopy, allowPrint, showFavoriteToggle, picker } =\n toolbar;\n\n return (\n <Wrapper className={appendClassNames('humany-guide-toolbar', className)}>\n {language && Object.keys(guide.translations || {}).length > 1 && (\n <Languages\n guide={guide}\n header={toolbarLanguageHeader}\n tooltip={toolbarLanguageTooltip}\n picker={picker}\n {...other}\n />\n )}\n {guideCategories && <Categories guide={guide} toolbar={toolbar} />}\n {(allowCopy || allowPrint || showFavoriteToggle) && (\n <Functions\n guide={guide}\n header={toolbarFunctionsHeader}\n tooltip={toolbarFunctionsTooltip}\n printActionLabel={printActionLabel}\n copyActionLabel={copyActionLabel}\n addFavoriteTooltip={addFavoriteTooltip}\n removeFavoriteCancelLabel={removeFavoriteCancelLabel}\n removeFavoriteConfirmLabel={removeFavoriteConfirmLabel}\n removeFavoriteHeader={removeFavoriteHeader}\n removeFavoriteLabel={removeFavoriteLabel}\n removeFavoriteTooltip={removeFavoriteTooltip}\n toolbarFunctionsCloseButtonAriaLabel={toolbarFunctionsCloseButtonAriaLabel}\n allowCopy={allowCopy}\n allowPrint={allowPrint}\n showFavoriteToggle={showFavoriteToggle}\n picker={picker}\n dispatch={dispatch}\n />\n )}\n </Wrapper>\n );\n};\n\nexport default Toolbar;\n\nconst Wrapper = styled.div`\n display: flex;\n align-items: center;\n justify-content: space-between;\n margin: 0 0 0 auto;\n\n > :not(:last-child) {\n margin: 0 calc(${(p) => p.theme.sizes?.small} * 2) 0 0;\n }\n`;\n","import { css } from '@emotion/react';\nimport styled from '@emotion/styled';\nimport { contactLink, ContactList } from '@telia-ace/knowledge-widget-adapters';\nimport { Component, NotFound } from '@telia-ace/knowledge-widget-types-grid';\nimport {\n Button,\n contentBox,\n createEmptyComponent,\n DialogLink,\n DialogList,\n embeddedLinkMapper,\n genericHtml,\n headingElement,\n Lightbox,\n linkTabStyle,\n Loader,\n loadingOpacity,\n Metadata,\n Paragraph,\n useChildren,\n useContainer,\n useDispatch,\n useProperties,\n useRouteData,\n} from '@telia-ace/knowledge-widget-ui';\nimport { appendClassNames } from '@telia-ace/widget-utilities';\nimport React, { forwardRef, useCallback, useMemo } from 'react';\nimport AnswerVersionPicker from './answer-version-picker';\nimport Feedback from './feedback';\nimport { GuideComponentProps } from './guide-component';\nimport Toolbar from './toolbar';\n\ntype Props = { className: string; accordion?: boolean };\n\nconst Guide = forwardRef<HTMLDivElement, Props>(\n ({ className, accordion = false, ...other }, ref) => {\n const {\n loading = false,\n dialog = [],\n contactMethods = [],\n showHeader = true,\n showAnswerVersions = false,\n defaultAnswerVersionLabel = 'Default',\n backButtonLabel,\n metadataByLabel,\n metadataModifiedLabel,\n metadataPublishedLabel,\n availablePerspectives,\n metadata,\n toolbar,\n guide,\n error,\n } = useProperties<GuideComponentProps>();\n const {\n params: { connection },\n } = useRouteData();\n const container = useContainer();\n const children = useChildren();\n const dispatch = useDispatch();\n\n const transform = useMemo(() => {\n return {\n transform: {\n img: (attrs: any) => (\n <Lightbox attrs={attrs} htmlBody={guide?.body || ''}></Lightbox>\n ),\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(\n ({ connection }: any) => connection === connectionId\n );\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 }, [guide, container, dialog]);\n\n const handleBackButtonClick = useCallback(() => {\n dispatch('back');\n }, [dispatch]);\n\n if (!guide && !error && !loading) {\n return createEmptyComponent(container, {\n ...other,\n className: appendClassNames(className, 'humany-guide'),\n });\n }\n\n const { id = '', title = '', body = '', translations = {} } = guide || {};\n\n if (error && error.status === 404) {\n return <NotFound showSearch={false} />;\n }\n\n const showBackButton = !!accordion && !!connection;\n const language = Object.keys(translations).find((key) => translations[key] === `${id}`);\n\n return (\n <Wrapper\n ref={ref}\n {...other}\n data-loading={loading}\n className={appendClassNames(className, 'humany-guide')}\n >\n <Content\n data-loading={loading}\n accordion={accordion ? 'true' : 'false'}\n className=\"humany-guide-content\"\n >\n {((showAnswerVersions && guide) || !!toolbar) && (\n <Top className=\"humany-guide-top\">\n {showAnswerVersions && guide && (\n <AnswerVersionPicker\n defaultAnswerVersionLabel={defaultAnswerVersionLabel}\n availablePerspectives={availablePerspectives}\n guide={guide}\n />\n )}\n {!!toolbar && <Toolbar dispatch={dispatch} />}\n </Top>\n )}\n {!!(title || body) && (\n <Body\n className=\"humany-guide-body\"\n accordion={accordion ? 'true' : 'false'}\n header={(showHeader && title) || undefined}\n html={body}\n htmlParseInstruction={transform}\n lang={language}\n />\n )}\n {dialog && body.indexOf('h-option-link') === -1 && (\n <StyledDialogList dialog={dialog} />\n )}\n <StyledContactList\n backButtonShown={showBackButton ? 'true' : 'false'}\n contactMethods={contactMethods}\n dispatch={dispatch}\n guideId={guide && guide.id}\n />\n {!contactMethods.length && (\n <Feedback backButtonShown={showBackButton} accordion={accordion} />\n )}\n {showBackButton && (\n <BackButton aria-label={backButtonLabel} onClick={handleBackButtonClick}>\n <Caret\n width=\"7\"\n height=\"13\"\n viewBox=\"0 0 7 13\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <line x1=\"6.64645\" y1=\"12.5513\" x2=\"0.648357\" y2=\"6.55319\" />\n <line x1=\"0.646447\" y1=\"6.64455\" x2=\"6.64454\" y2=\"0.646465\" />\n </Caret>\n {backButtonLabel && <span>{backButtonLabel}</span>}\n </BackButton>\n )}\n {metadata && (\n <StyledMetadata\n {...metadata}\n modified={guide?.modified}\n published={guide?.published}\n modifiedBy={guide?.modifiedBy}\n publishedBy={guide?.publishedBy}\n byLabel={metadataByLabel}\n modifiedLabel={metadataModifiedLabel}\n publishedLabel={metadataPublishedLabel}\n />\n )}\n {children.map((child) => (\n <StyledComponents\n key={child.id}\n id={child.id}\n branch=\"default\"\n {...{ embedded: true }}\n />\n ))}\n </Content>\n\n <Loader loading={loading} />\n </Wrapper>\n );\n }\n);\n\nexport default Guide;\n\nconst Wrapper = styled.div<{ 'data-loading': boolean }>`\n ${loadingOpacity}\n min-width: 0;\n`;\n\nconst Body = styled(Paragraph)<{ accordion: 'true' | 'false' }>`\n ${genericHtml}\n ${(p) => `padding: ${p.theme.sizes?.large};`}\n display: block;\n line-height: 1.6em;\n\n ${(p) =>\n headingElement(p)(\n 'h1',\n css`\n font-size: ${p.theme.fonts?.large};\n font-weight: normal;\n line-height: 1.6em;\n line-height: 1.6em;\n margin: 0 0 ${p.theme.sizes?.small};\n `\n )}\n\n p {\n font-weight: 300;\n font-size: ${(p) => p.theme.fonts?.normal};\n color: ${(p) => p.theme.colors?.text};\n a {\n display: inline;\n }\n }\n`;\n\nconst StyledContactList = styled(ContactList)<{ backButtonShown: 'true' | 'false' }>`\n border-top: ${(p) => p.theme.border};\n ${(p) => p.backButtonShown === 'true' && `border-bottom: ${p.theme.border};`}\n`;\n\nconst StyledDialogList = styled(DialogList)`\n ${(p) => `padding: 0 ${p.theme.sizes?.large} ${p.theme.sizes?.large};`}\n display: block;\n`;\n\nconst Top = styled.div`\n ${(p) => `padding: calc(${p.theme.sizes?.normal}*2) ${p.theme.sizes?.large};`}\n display: flex;\n justify-content: space-between;\n align-items: center;\n border-bottom: ${(p) => p.theme.border};\n border-radius: ${(p) => `${p.theme.borderRadius} ${p.theme.borderRadius}`} 0 0;\n background-color: #ffffff;\n`;\n\nconst Content = styled.div<{ 'data-loading': boolean; accordion: 'true' | 'false' } & any>`\n ${contentBox}\n display: block;\n > a {\n ${contactLink}\n }\n\n ${(p) =>\n p.accordion === 'true' &&\n css`\n white-space: normal;\n box-shadow: none;\n background-color: #fafafa;\n `}\n`;\n\nconst StyledMetadata = styled(Metadata)`\n display: block;\n ${(p) => `padding: calc(${p.theme.sizes?.normal}*2) ${p.theme.sizes?.large};`}\n font-weight: 300;\n font-size: ${(p) => p.theme.fonts?.normal};\n color: ${(p) => p.theme.colors?.text};\n border-top: ${(p) => p.theme.border};\n`;\n\nconst StyledComponents = styled(Component)`\n border-top: ${(p) => p.theme.border};\n`;\n\nconst BackButton = styled(Button)`\n ${(p) => `padding: ${p.theme.sizes?.normal} calc(${p.theme.sizes?.normal} * 2);`}\n color: ${(p) => p.theme.colors?.primary};\n text-decoration: underline;\n font-size: ${(p) => p.theme.fonts?.normal};\n span {\n font-weight: 300;\n }\n &:focus-visible {\n ${linkTabStyle}\n padding: ${(p) => `calc(${p.theme.sizes?.small} / 2) ${p.theme.sizes?.small}`};\n }\n`;\n\nconst Caret = styled.svg`\n margin-right: ${(p) => p.theme.sizes?.small};\n line {\n stroke: ${(p) => p.theme.colors?.primary};\n }\n`;\n"],"names":["AnswerVersionPicker","className","defaultAnswerVersionLabel","selectedPerspective","guidePerspectives","availablePerspectives","name","params","useRouteData","perspectives","useMemo","title","React","StyledList","appendClassNames","perspective","label","selected","isRoot","VersionLink","__spreadProps","__spreadValues","AnswerVersionPicker$1","styled","List","p","_a","TextLink","css","paddedBorderTabStyle","StyledContactList","ContactList","StyledFeedback","FeedbackUi","_b","Recognition","StyledHeaderText","Feedback","backButtonShown","accordion","dispatch","useDispatch","loading","dialog","guide","handoverContactMethods","contactHeader","showFeedback","feedbackDirection","feedbackRecognitionLabel","feedbackGiven","feedbackHeader","positiveFeedbackLabel","negativeFeedbackLabel","contactFeedbackLabel","useProperties","feedback","Feedback$1","Categories","categories","picker","PickerTypes","trail","setTrail","useState","container","useContainer","useEffect","buildCategoryTrail","id","result","Tooltip","segments","CategoryTrail","c","category","index","Text","SymbolBadge","CategorySeparator","StyledListButton","CategoriesSymbolBadge","Categories$1","Functions","header","tooltip","printActionLabel","copyActionLabel","addFavoriteTooltip","removeFavoriteCancelLabel","removeFavoriteConfirmLabel","removeFavoriteHeader","removeFavoriteLabel","removeFavoriteTooltip","toolbarFunctionsCloseButtonAriaLabel","allowCopy","allowPrint","showFavoriteToggle","favorites","actions","useFavorites","handleCopy","useCallback","event","handlePrint","items","ColoredSymbolBadge","StyledText","isFavorite","FavoriteButton","trigger","StyledTriggerButton","renderListItem","type","child","StyledDropdownList","DrawerList","DrawerAnimationType","Functions$1","DropdownList","getCurrentLanguageLabel","languages","l","Languages","other","__objRest","acc","key","item","currentLanguage","Trigger","LanguageButtonText","LanguageCaretSymbolBadge","LanguageLink","createParams","Languages$1","isEmpty","toolbar","guideCategories","language","Toolbar","toolbarLanguageHeader","toolbarFunctionsHeader","toolbarLanguageTooltip","toolbarFunctionsTooltip","Wrapper","Toolbar$1","Guide","forwardRef","ref","contactMethods","showHeader","showAnswerVersions","backButtonLabel","metadataByLabel","metadataModifiedLabel","metadataPublishedLabel","metadata","error","connection","children","useChildren","transform","attrs","Lightbox","attr","connectionId","DialogLink","embeddedLinkMapper","handleBackButtonClick","createEmptyComponent","body","translations","NotFound","showBackButton","Content","Top","Body","StyledDialogList","BackButton","Caret","StyledMetadata","StyledComponents","Loader","loadingOpacity","Paragraph","genericHtml","headingElement","DialogList","contentBox","contactLink","Metadata","Component","Button","linkTabStyle"],"mappings":"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"}
|