@telia-ace/knowledge-widget-components-guide 1.0.24-next.2 → 1.0.24-next.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/guide.e602b80c.js +809 -0
- package/dist/guide.e602b80c.js.map +1 -0
- package/dist/index.js +40 -40
- package/dist/index.js.map +1 -1
- package/package.json +9 -8
- package/dist/guide.19e7d4a1.js +0 -810
- package/dist/guide.19e7d4a1.js.map +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"guide.19e7d4a1.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 { List, paddedBorderTabStyle, TextLink, useRouteData } from '@telia-ace/knowledge-widget-ui';\nimport { appendClassNames } from '@telia-ace/widget-utilities';\nimport React, { useMemo } from 'react';\nimport styled, { css } from 'styled-components';\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 forwardedAs={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 { 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 styled from 'styled-components';\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 { 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 styled from 'styled-components';\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 { 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 styled from 'styled-components';\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 { 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 styled from 'styled-components';\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 { 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 styled from 'styled-components';\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 { 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 styled, { css } from 'styled-components';\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 ${headingElement(\n 'h1',\n css`\n font-size: ${(p) => p.theme.fonts?.large};\n font-weight: normal;\n line-height: 1.6em;\n line-height: 1.6em;\n margin: 0 0 ${(p) => 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","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","Categories","categories","picker","PickerTypes","trail","setTrail","useState","container","useContainer","useEffect","buildCategoryTrail","id","result","Tooltip","segments","CategoryTrail","c","category","index","Text","SymbolBadge","CategorySeparator","StyledListButton","CategoriesSymbolBadge","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","DropdownList","getCurrentLanguageLabel","languages","l","Languages","other","__objRest","acc","key","item","currentLanguage","Trigger","LanguageButtonText","LanguageCaretSymbolBadge","LanguageLink","createParams","isEmpty","toolbar","guideCategories","language","Toolbar","toolbarLanguageHeader","toolbarFunctionsHeader","toolbarLanguageTooltip","toolbarFunctionsTooltip","Wrapper","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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"}
|