@telia-ace/knowledge-widget-components-guide 1.0.16 → 1.0.19

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.
@@ -0,0 +1 @@
1
+ {"version":3,"file":"guide.858ab7a6.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';\r\nimport { appendClassNames } from '@telia-ace/widget-utilities';\r\nimport React, { useMemo } from 'react';\r\nimport styled, { css } from 'styled-components';\r\nimport { AvailablePerspectives, GuideProps } from './guide-component';\r\n\r\ntype Props = {\r\n className?: string;\r\n defaultAnswerVersionLabel: string;\r\n availablePerspectives?: AvailablePerspectives[];\r\n guide: GuideProps;\r\n};\r\n\r\ntype Perspective = { label: string; connection: string };\r\n\r\nconst AnswerVersionPicker: React.FC<Props> = ({\r\n className,\r\n defaultAnswerVersionLabel,\r\n guide: { perspective: selectedPerspective, perspectives: guidePerspectives },\r\n availablePerspectives = [],\r\n}) => {\r\n const { name, params } = useRouteData();\r\n\r\n const perspectives: Perspective[] = useMemo(() => {\r\n if (!guidePerspectives || !availablePerspectives.length) {\r\n return [];\r\n }\r\n\r\n return availablePerspectives\r\n .filter(({ name }) => !!guidePerspectives[name])\r\n .map(({ name, title }) => {\r\n return { label: title, connection: guidePerspectives[name] };\r\n });\r\n }, [guidePerspectives, availablePerspectives]);\r\n\r\n return (\r\n <StyledList\r\n className={appendClassNames(className, 'humany-guide-answer-version-picker')}\r\n items={perspectives}\r\n renderItem={(perspective: Perspective) => {\r\n const label =\r\n perspective.label === 'Default' ? defaultAnswerVersionLabel : perspective.label;\r\n const selected = selectedPerspective === perspective.connection;\r\n const isRoot =\r\n selected && (!params.connection || selectedPerspective === params.connection);\r\n\r\n return (\r\n <li key={perspective.connection} data-version={perspective.connection}>\r\n <VersionLink\r\n key={perspective.connection}\r\n forwardedAs={isRoot ? 'span' : undefined}\r\n text={label}\r\n routeName={name}\r\n selected={selected}\r\n aria-label={label}\r\n title={label}\r\n params={{\r\n ...params,\r\n connection: perspective.connection,\r\n }}\r\n />\r\n </li>\r\n );\r\n }}\r\n />\r\n );\r\n};\r\n\r\nexport default AnswerVersionPicker;\r\n\r\nconst StyledList = styled(List)`\r\n display: flex;\r\n align-items: center;\r\n flex-wrap: wrap;\r\n\r\n list-style: none;\r\n padding: 0;\r\n margin: 0;\r\n\r\n li:not(:last-child) {\r\n margin: 0 calc(${(p) => p.theme.sizes?.small} * 2) 0 0;\r\n }\r\n\r\n li > span {\r\n cursor: default;\r\n }\r\n`;\r\n\r\nconst VersionLink = styled(TextLink)<{ selected: boolean }>`\r\n font-weight: 300;\r\n color: ${(p) => p.theme.colors?.text};\r\n text-decoration: none;\r\n\r\n ${(p) =>\r\n p.selected &&\r\n css`\r\n font-weight: bold;\r\n text-decoration: underline;\r\n `}\r\n\r\n &:focus {\r\n ${(p: any) => p.theme.accessibility?.isTabbing && paddedBorderTabStyle};\r\n }\r\n`;\r\n","import { ContactList } from '@telia-ace/knowledge-widget-adapters';\r\nimport {\r\n Feedback as FeedbackUi,\r\n StyledHeaderText,\r\n useDispatch,\r\n useProperties,\r\n} from '@telia-ace/knowledge-widget-ui';\r\nimport React from 'react';\r\nimport styled from 'styled-components';\r\nimport { GuideComponentProps } from './guide-component';\r\n\r\ntype Props = { backButtonShown?: boolean; accordion?: boolean };\r\n\r\nconst StyledContactList = styled(ContactList)<{\r\n accordion: 'true' | 'false';\r\n backButtonShown: 'true' | 'false';\r\n}>`\r\n border-top: ${(p) => p.theme.border};\r\n ${(p) => p.backButtonShown === 'true' && `border-bottom: ${p.theme.border};`}\r\n`;\r\n\r\nconst StyledFeedback = styled(FeedbackUi)<{ accordion: 'true' | 'false' }>`\r\n ${(p) => `padding: ${p.theme.sizes?.large} ${p.theme.sizes?.large};`}\r\n`;\r\n\r\nconst Recognition = styled(StyledHeaderText)<{ accordion: 'true' | 'false' }>`\r\n ${(p) => `padding: ${p.theme.sizes?.large} ${p.theme.sizes?.large};`}\r\n\r\n display: block;\r\n font-size: ${(p) => p.theme.fonts?.normal};\r\n font-weight: bold;\r\n`;\r\n\r\nconst Feedback: React.SFC<Props> = ({ backButtonShown = false, accordion = false }) => {\r\n const dispatch = useDispatch();\r\n const {\r\n loading = false,\r\n dialog = [],\r\n guide,\r\n\r\n handoverContactMethods = [],\r\n contactHeader,\r\n\r\n showFeedback,\r\n feedbackDirection = 'horizontal',\r\n feedbackRecognitionLabel,\r\n feedbackGiven,\r\n feedbackHeader,\r\n positiveFeedbackLabel,\r\n negativeFeedbackLabel,\r\n contactFeedbackLabel,\r\n } = useProperties<GuideComponentProps>();\r\n\r\n if (\r\n !showFeedback ||\r\n !guide ||\r\n !guide.allowFeedback ||\r\n (loading && !feedbackGiven) ||\r\n dialog.length\r\n ) {\r\n return null;\r\n }\r\n\r\n if (feedbackGiven && feedbackRecognitionLabel && !handoverContactMethods.length) {\r\n return (\r\n <Recognition accordion={accordion ? 'true' : 'false'}>\r\n {feedbackRecognitionLabel}\r\n </Recognition>\r\n );\r\n }\r\n\r\n return guide.hasHandover && handoverContactMethods.length ? (\r\n <StyledContactList\r\n backButtonShown={backButtonShown ? 'true' : 'false'}\r\n accordion={accordion ? 'true' : 'false'}\r\n header={contactHeader}\r\n contactMethods={handoverContactMethods}\r\n dispatch={dispatch}\r\n />\r\n ) : (\r\n <StyledFeedback\r\n accordion={accordion ? 'true' : 'false'}\r\n positive={positiveFeedbackLabel}\r\n negative={guide.hasHandover ? contactFeedbackLabel : negativeFeedbackLabel}\r\n header={feedbackHeader}\r\n selected={feedbackGiven}\r\n onFeedback={(feedback) => dispatch('feedback', feedback)}\r\n direction={feedbackDirection}\r\n />\r\n );\r\n};\r\n\r\nexport default Feedback;\r\n","import { Category, PickerTypes } from '@telia-ace/knowledge-widget-core';\r\nimport {\r\n StyledListButton,\r\n SymbolBadge,\r\n Text,\r\n Tooltip,\r\n useContainer,\r\n} from '@telia-ace/knowledge-widget-ui';\r\nimport { buildCategoryTrail } from '@telia-ace/widget-utilities';\r\nimport React, { useEffect, useState } from 'react';\r\nimport styled from 'styled-components';\r\nimport { GuideProps, ToolbarProps } from './guide-component';\r\n\r\ntype Props = {\r\n guide: GuideProps;\r\n toolbar: ToolbarProps;\r\n};\r\n\r\nconst Categories: React.FC<Props> = ({\r\n guide: { categories = [] },\r\n toolbar: { picker = PickerTypes.NONE },\r\n}) => {\r\n const [trail, setTrail] = useState<Category[][]>([]);\r\n const container = useContainer();\r\n\r\n useEffect(() => {\r\n buildCategoryTrail(\r\n 'index',\r\n categories.map((id) => id.toString()),\r\n container\r\n ).then((result) => {\r\n setTrail(result);\r\n });\r\n }, [categories]);\r\n\r\n if (!trail.length) {\r\n return null;\r\n }\r\n\r\n return (\r\n <Tooltip\r\n className=\"humany-guide-category-tooltip\"\r\n sticky={picker === PickerTypes.DRAWER}\r\n content={\r\n <>\r\n {trail.map((segments) => {\r\n return (\r\n <CategoryTrail\r\n className=\"humany-guide-category-trail\"\r\n key={segments.map((c) => c.id).join('.')}\r\n >\r\n {segments.map((category, index: number) => {\r\n return (\r\n <Text\r\n className=\"humany-guide-category-trail-segment\"\r\n key={category.id}\r\n >\r\n {category.symbol && index === 0 && (\r\n <SymbolBadge size={14} symbol={category.symbol} />\r\n )}\r\n {category.title}\r\n {index !== segments.length - 1 && (\r\n <CategorySeparator className=\"humany-category-separator\">\r\n /\r\n </CategorySeparator>\r\n )}\r\n </Text>\r\n );\r\n })}\r\n </CategoryTrail>\r\n );\r\n })}\r\n </>\r\n }\r\n >\r\n {picker === PickerTypes.DRAWER ? (\r\n <StyledListButton\r\n className=\"humany-guide-category-tooltip-button\"\r\n data-has-label=\"false\"\r\n data-has-symbol=\"true\"\r\n >\r\n <CategoriesSymbolBadge\r\n size={19}\r\n symbol={{ type: 'Svg', content: 'information' }}\r\n />\r\n </StyledListButton>\r\n ) : (\r\n <CategoriesSymbolBadge size={19} symbol={{ type: 'Svg', content: 'information' }} />\r\n )}\r\n </Tooltip>\r\n );\r\n};\r\n\r\nexport default Categories;\r\n\r\nconst CategoryTrail = styled.div`\r\n i,\r\n svg {\r\n margin: 0 ${(p) => p.theme.sizes?.small} 0 0;\r\n }\r\n\r\n &:not(:last-child) {\r\n margin: 0 0 ${(p) => p.theme.sizes?.small};\r\n }\r\n`;\r\n\r\nconst CategorySeparator = styled(Text)`\r\n margin: 0 ${(p) => p.theme.sizes?.small};\r\n`;\r\n\r\nconst CategoriesSymbolBadge = styled(SymbolBadge)`\r\n display: block;\r\n`;\r\n","import { PickerTypes } from '@telia-ace/knowledge-widget-core';\r\nimport {\r\n DispatchAction,\r\n DrawerAnimationType,\r\n DrawerList,\r\n DropdownList,\r\n FavoriteButton,\r\n StyledListButton,\r\n StyledText,\r\n SymbolBadge,\r\n useFavorites,\r\n} from '@telia-ace/knowledge-widget-ui';\r\nimport React, { useCallback, useMemo } from 'react';\r\nimport styled from 'styled-components';\r\nimport { GuideProps } from './guide-component';\r\n\r\nexport type FunctionListItem = {\r\n type: string;\r\n child: React.ReactNode;\r\n};\r\n\r\ntype Props = {\r\n header?: string;\r\n tooltip?: string;\r\n printActionLabel?: string;\r\n copyActionLabel?: string;\r\n addFavoriteTooltip?: string;\r\n removeFavoriteCancelLabel?: string;\r\n removeFavoriteConfirmLabel?: string;\r\n removeFavoriteHeader?: string;\r\n removeFavoriteLabel?: string;\r\n removeFavoriteTooltip?: string;\r\n toolbarFunctionsCloseButtonAriaLabel?: string;\r\n guide: GuideProps;\r\n allowCopy?: boolean;\r\n allowPrint?: boolean;\r\n showFavoriteToggle?: boolean;\r\n picker?: PickerTypes;\r\n dispatch: DispatchAction;\r\n};\r\n\r\nconst Functions: React.FC<Props> = ({\r\n header,\r\n tooltip,\r\n printActionLabel,\r\n copyActionLabel,\r\n addFavoriteTooltip,\r\n removeFavoriteCancelLabel,\r\n removeFavoriteConfirmLabel,\r\n removeFavoriteHeader,\r\n removeFavoriteLabel,\r\n removeFavoriteTooltip,\r\n toolbarFunctionsCloseButtonAriaLabel,\r\n allowCopy = false,\r\n allowPrint = false,\r\n showFavoriteToggle = false,\r\n picker = PickerTypes.NONE,\r\n guide,\r\n dispatch,\r\n}) => {\r\n const [favorites, actions] = useFavorites();\r\n\r\n const handleCopy = useCallback(\r\n (event) => {\r\n if (guide) {\r\n dispatch('copy', guide);\r\n }\r\n },\r\n [guide, dispatch]\r\n );\r\n\r\n const handlePrint = useCallback(() => {\r\n if (guide) {\r\n dispatch('print');\r\n }\r\n }, [guide, dispatch]);\r\n\r\n const items = useMemo(() => {\r\n const { id, title } = guide;\r\n\r\n const items: FunctionListItem[] = [];\r\n\r\n if (allowCopy) {\r\n items.push({\r\n type: 'copy',\r\n child: (\r\n <StyledListButton\r\n data-has-label={copyActionLabel ? 'true' : 'false'}\r\n data-has-symbol=\"true\"\r\n title={copyActionLabel}\r\n aria-label={printActionLabel}\r\n onClick={handleCopy}\r\n >\r\n <ColoredSymbolBadge size={16} symbol={{ type: 'Svg', content: 'copy' }} />\r\n {copyActionLabel && <StyledText>{copyActionLabel}</StyledText>}\r\n </StyledListButton>\r\n ),\r\n });\r\n }\r\n\r\n if (allowPrint) {\r\n items.push({\r\n type: 'print',\r\n child: (\r\n <StyledListButton\r\n data-has-label={printActionLabel ? 'true' : 'false'}\r\n data-has-symbol=\"true\"\r\n title={printActionLabel}\r\n aria-label={printActionLabel}\r\n onClick={handlePrint}\r\n >\r\n <ColoredSymbolBadge size={16} symbol={{ type: 'Svg', content: 'print' }} />\r\n {printActionLabel && <StyledText>{printActionLabel}</StyledText>}\r\n </StyledListButton>\r\n ),\r\n });\r\n }\r\n\r\n if (showFavoriteToggle) {\r\n const isFavorite = favorites.indexOf(id) > -1;\r\n items.push({\r\n type: 'favorite',\r\n child: (\r\n <FavoriteButton\r\n id={id}\r\n guideTitle={title}\r\n isFavorite={isFavorite}\r\n buttonLabel={isFavorite ? removeFavoriteTooltip : addFavoriteTooltip}\r\n addFavoriteTooltip={addFavoriteTooltip}\r\n removeFavoriteCancelLabel={removeFavoriteCancelLabel}\r\n removeFavoriteConfirmLabel={removeFavoriteConfirmLabel}\r\n removeFavoriteHeader={removeFavoriteHeader}\r\n removeFavoriteLabel={removeFavoriteLabel}\r\n removeFavoriteTooltip={removeFavoriteTooltip}\r\n actions={actions}\r\n />\r\n ),\r\n });\r\n }\r\n\r\n return items;\r\n }, [\r\n favorites,\r\n guide,\r\n allowCopy,\r\n allowPrint,\r\n showFavoriteToggle,\r\n printActionLabel,\r\n copyActionLabel,\r\n addFavoriteTooltip,\r\n removeFavoriteCancelLabel,\r\n removeFavoriteConfirmLabel,\r\n removeFavoriteHeader,\r\n removeFavoriteLabel,\r\n removeFavoriteTooltip,\r\n ]);\r\n\r\n if (!items.length) {\r\n return null;\r\n }\r\n\r\n const trigger = (\r\n <StyledTriggerButton\r\n tabIndex={0}\r\n title={tooltip}\r\n data-has-symbol=\"true\"\r\n data-has-label=\"false\"\r\n >\r\n <ColoredSymbolBadge symbol={{ type: 'Svg', content: 'options' }} size={18} />\r\n </StyledTriggerButton>\r\n );\r\n\r\n const renderListItem = ({ type, child }: FunctionListItem) => {\r\n return (\r\n <li key={type} data-function-type={type}>\r\n {child}\r\n </li>\r\n );\r\n };\r\n\r\n if (picker === PickerTypes.DROPDOWN) {\r\n return (\r\n <StyledDropdownList\r\n className=\"humany-guide-functions-dropdown-list\"\r\n header={header}\r\n items={items}\r\n trigger={trigger}\r\n renderItem={renderListItem}\r\n closeButtonAriaLabel={toolbarFunctionsCloseButtonAriaLabel}\r\n />\r\n );\r\n }\r\n\r\n if (picker === PickerTypes.DRAWER) {\r\n return (\r\n <DrawerList\r\n className=\"humany-guide-functions-drawer-list\"\r\n animation={{ type: DrawerAnimationType.SlideInBottom }}\r\n header={header}\r\n items={items}\r\n trigger={trigger}\r\n renderItem={renderListItem}\r\n closeButtonAriaLabel={toolbarFunctionsCloseButtonAriaLabel}\r\n />\r\n );\r\n }\r\n\r\n return null;\r\n};\r\n\r\nexport default Functions;\r\n\r\nconst ColoredSymbolBadge = styled(SymbolBadge)`\r\n circle {\r\n fill: ${(p) => p.theme.colors?.text};\r\n }\r\n\r\n line,\r\n path,\r\n rect {\r\n stroke: ${(p) => p.theme.colors?.text};\r\n }\r\n`;\r\n\r\nconst StyledDropdownList = styled(DropdownList)`\r\n display: block;\r\n min-height: auto;\r\n`;\r\n\r\nconst StyledTriggerButton = styled(StyledListButton)<any>`\r\n padding: calc(${(p) => p.theme.sizes?.small} * 2) 0;\r\n`;\r\n","import { LanguageProperties } from '@telia-ace/knowledge-widget-component-utilities';\r\nimport { PickerTypes } from '@telia-ace/knowledge-widget-core';\r\nimport {\r\n DrawerAnimationType,\r\n DrawerList,\r\n DropdownList,\r\n paddedBorderTabStyle,\r\n StyledListButton,\r\n SymbolBadge,\r\n Text,\r\n TextLink,\r\n useRouteData,\r\n} from '@telia-ace/knowledge-widget-ui';\r\nimport { createParams } from '@telia-ace/widget-utilities';\r\nimport React, { useMemo } from 'react';\r\nimport styled, { css } from 'styled-components';\r\nimport { GuideProps } from './guide-component';\r\n\r\nexport type LanguageListItem = {\r\n id: string;\r\n key: string;\r\n label: string;\r\n};\r\n\r\ntype Props = Merge<\r\n {\r\n header?: string;\r\n tooltip?: string;\r\n guide: GuideProps;\r\n picker?: PickerTypes;\r\n },\r\n LanguageProperties\r\n>;\r\n\r\nconst getCurrentLanguageLabel = (guide: GuideProps, languages: LanguageListItem[]) => {\r\n return languages.find((l) => l.id === guide.id)?.label || '';\r\n};\r\n\r\nconst Languages: React.FC<Props> = ({\r\n header,\r\n tooltip,\r\n picker = PickerTypes.NONE,\r\n guide,\r\n ...other\r\n}) => {\r\n const { name, params } = useRouteData();\r\n\r\n const items = useMemo(() => {\r\n return Object.keys(guide.translations || {}).reduce((acc: LanguageListItem[], key) => {\r\n const item: Partial<LanguageListItem> = {};\r\n item.key = key;\r\n item.id = (guide.translations || {})[key];\r\n item.label = (other as { [key: string]: string })[`${key}LanguageLabel`];\r\n\r\n if (item.id || item.label) {\r\n acc.push(item as LanguageListItem);\r\n }\r\n\r\n return acc;\r\n }, []);\r\n }, [guide, other]);\r\n\r\n if (!items.length) {\r\n return null;\r\n }\r\n\r\n const currentLanguage = getCurrentLanguageLabel(guide, items);\r\n\r\n const trigger = (\r\n <Trigger\r\n tabIndex={0}\r\n title={tooltip}\r\n data-has-symbol=\"true\"\r\n data-has-label={picker === PickerTypes.DROPDOWN && currentLanguage ? 'true' : 'false'}\r\n >\r\n {picker === PickerTypes.DROPDOWN && (\r\n <>\r\n {currentLanguage && <LanguageButtonText>{currentLanguage}</LanguageButtonText>}\r\n <LanguageCaretSymbolBadge\r\n symbol={{ type: 'Svg', content: 'caret-down' }}\r\n size={11}\r\n />\r\n </>\r\n )}\r\n {picker === PickerTypes.DRAWER && (\r\n <>\r\n <ColoredSymbolBadge symbol={{ type: 'Svg', content: 'language' }} size={20} />\r\n </>\r\n )}\r\n </Trigger>\r\n );\r\n\r\n const renderListItem = ({ label, key, id }: LanguageListItem) => {\r\n return (\r\n <li key={key} data-language={key}>\r\n <LanguageLink\r\n tabIndex={0}\r\n text={label}\r\n routeName={name}\r\n selected={guide.id === id}\r\n params={createParams({\r\n ...params,\r\n connection: undefined,\r\n guide: id,\r\n })}\r\n />\r\n </li>\r\n );\r\n };\r\n\r\n if (picker === PickerTypes.DROPDOWN) {\r\n return (\r\n <StyledDropdownList\r\n className=\"humany-guide-languages-dropdown-list\"\r\n header={header}\r\n items={items}\r\n trigger={trigger}\r\n renderItem={renderListItem}\r\n />\r\n );\r\n }\r\n\r\n if (picker === PickerTypes.DRAWER) {\r\n return (\r\n <DrawerList\r\n className=\"humany-guide-languages-drawer-list\"\r\n animation={{ type: DrawerAnimationType.SlideInBottom }}\r\n header={header}\r\n items={items}\r\n trigger={trigger}\r\n renderItem={renderListItem}\r\n />\r\n );\r\n }\r\n\r\n return null;\r\n};\r\n\r\nexport default Languages;\r\n\r\nconst Trigger = styled(StyledListButton)`\r\n &&& {\r\n margin: 0 ${(p) => `calc(${p.theme.sizes?.small} * 2)`} 0 0;\r\n }\r\n`;\r\n\r\nconst ColoredSymbolBadge = styled(SymbolBadge)`\r\n circle {\r\n fill: ${(p) => p.theme.colors?.text};\r\n }\r\n\r\n line,\r\n path,\r\n rect {\r\n stroke: ${(p) => p.theme.colors?.text};\r\n }\r\n`;\r\n\r\nconst LanguageButtonText = styled(Text)`\r\n margin: 0 ${(p) => p.theme.sizes?.small} 0 0;\r\n font-size: ${(p) => p.theme.fonts?.normal};\r\n`;\r\n\r\nconst LanguageCaretSymbolBadge = styled(SymbolBadge)`\r\n align-self: flex-end;\r\n stroke-width: 2px;\r\n stroke-linecap: round;\r\n\r\n && {\r\n width: 0.6em;\r\n height: 1em;\r\n }\r\n line {\r\n stroke: ${(p) => p.theme.colors?.text};\r\n }\r\n`;\r\n\r\nconst StyledDropdownList = styled(DropdownList)`\r\n display: block;\r\n min-height: auto;\r\n`;\r\n\r\nconst LanguageLink = styled(TextLink)<any>`\r\n color: ${(p) => (p.selected ? p.theme.colors?.primary : p.theme.colors?.text)};\r\n ${(p) => p.selected && 'font-weight: bold;'}\r\n\r\n &:focus {\r\n ${(p) =>\r\n p.theme.accessibility?.isTabbing\r\n ? css`\r\n ${paddedBorderTabStyle}\r\n text-decoration: underline;\r\n `\r\n : 'outline: none;'}\r\n }\r\n`;\r\n","import { PickerTypes } from '@telia-ace/knowledge-widget-core';\r\nimport { DispatchAction, useProperties } from '@telia-ace/knowledge-widget-ui';\r\nimport { appendClassNames } from '@telia-ace/widget-utilities';\r\nimport React from 'react';\r\nimport styled from 'styled-components';\r\nimport Categories from './categories';\r\nimport Functions from './functions';\r\nimport { GuideComponentProps, ToolbarProps } from './guide-component';\r\nimport Languages from './languages';\r\n\r\ntype Props = {\r\n className?: string;\r\n dispatch: DispatchAction;\r\n};\r\n\r\nconst isEmpty = (toolbar: ToolbarProps) => {\r\n const {\r\n allowCopy = false,\r\n allowPrint = false,\r\n guideCategories = false,\r\n language = false,\r\n showFavoriteToggle = false,\r\n picker = PickerTypes.NONE,\r\n } = toolbar;\r\n\r\n if (\r\n (!allowCopy && !allowPrint && !language && !showFavoriteToggle && !guideCategories) ||\r\n picker === PickerTypes.NONE\r\n ) {\r\n return true;\r\n }\r\n\r\n return false;\r\n};\r\n\r\nconst Toolbar: React.FC<Props> = ({ className = '', dispatch }) => {\r\n const {\r\n toolbarLanguageHeader,\r\n toolbarFunctionsHeader,\r\n toolbarLanguageTooltip,\r\n toolbarFunctionsTooltip,\r\n toolbarFunctionsCloseButtonAriaLabel,\r\n printActionLabel,\r\n copyActionLabel,\r\n addFavoriteTooltip,\r\n removeFavoriteCancelLabel,\r\n removeFavoriteConfirmLabel,\r\n removeFavoriteHeader,\r\n removeFavoriteLabel,\r\n removeFavoriteTooltip,\r\n guide,\r\n toolbar,\r\n ...other\r\n } = useProperties<GuideComponentProps>();\r\n\r\n if (!guide || !toolbar || isEmpty(toolbar)) {\r\n return null;\r\n }\r\n\r\n const { language, guideCategories, allowCopy, allowPrint, showFavoriteToggle, picker } =\r\n toolbar;\r\n\r\n return (\r\n <Wrapper className={appendClassNames('humany-guide-toolbar', className)}>\r\n {language && Object.keys(guide.translations || {}).length > 1 && (\r\n <Languages\r\n guide={guide}\r\n header={toolbarLanguageHeader}\r\n tooltip={toolbarLanguageTooltip}\r\n picker={picker}\r\n {...other}\r\n />\r\n )}\r\n {guideCategories && <Categories guide={guide} toolbar={toolbar} />}\r\n {(allowCopy || allowPrint || showFavoriteToggle) && (\r\n <Functions\r\n guide={guide}\r\n header={toolbarFunctionsHeader}\r\n tooltip={toolbarFunctionsTooltip}\r\n printActionLabel={printActionLabel}\r\n copyActionLabel={copyActionLabel}\r\n addFavoriteTooltip={addFavoriteTooltip}\r\n removeFavoriteCancelLabel={removeFavoriteCancelLabel}\r\n removeFavoriteConfirmLabel={removeFavoriteConfirmLabel}\r\n removeFavoriteHeader={removeFavoriteHeader}\r\n removeFavoriteLabel={removeFavoriteLabel}\r\n removeFavoriteTooltip={removeFavoriteTooltip}\r\n toolbarFunctionsCloseButtonAriaLabel={toolbarFunctionsCloseButtonAriaLabel}\r\n allowCopy={allowCopy}\r\n allowPrint={allowPrint}\r\n showFavoriteToggle={showFavoriteToggle}\r\n picker={picker}\r\n dispatch={dispatch}\r\n />\r\n )}\r\n </Wrapper>\r\n );\r\n};\r\n\r\nexport default Toolbar;\r\n\r\nconst Wrapper = styled.div`\r\n display: flex;\r\n align-items: center;\r\n justify-content: space-between;\r\n margin: 0 0 0 auto;\r\n\r\n > :not(:last-child) {\r\n margin: 0 calc(${(p) => p.theme.sizes?.small} * 2) 0 0;\r\n }\r\n`;\r\n","import { contactLink, ContactList } from '@telia-ace/knowledge-widget-adapters';\r\nimport { Component, NotFound } from '@telia-ace/knowledge-widget-types-grid';\r\nimport {\r\n Button,\r\n contentBox,\r\n createEmptyComponent,\r\n DialogList,\r\n genericHtml,\r\n guideRenderInstructions,\r\n headingElement,\r\n linkTabStyle,\r\n Loader,\r\n loadingOpacity,\r\n Metadata,\r\n Paragraph,\r\n useChildren,\r\n useContainer,\r\n useDispatch,\r\n useProperties,\r\n useRouteData,\r\n} from '@telia-ace/knowledge-widget-ui';\r\nimport { appendClassNames } from '@telia-ace/widget-utilities';\r\nimport React, { forwardRef, useCallback } from 'react';\r\nimport styled, { css } from 'styled-components';\r\nimport AnswerVersionPicker from './answer-version-picker';\r\nimport Feedback from './feedback';\r\nimport { GuideComponentProps } from './guide-component';\r\nimport Toolbar from './toolbar';\r\n\r\ntype Props = { className: string; accordion?: boolean };\r\n\r\nconst Guide = forwardRef<HTMLDivElement, Props>(\r\n ({ className, accordion = false, ...other }, ref) => {\r\n const {\r\n loading = false,\r\n dialog = [],\r\n contactMethods = [],\r\n showHeader = true,\r\n showAnswerVersions = false,\r\n defaultAnswerVersionLabel = 'Default',\r\n backButtonLabel,\r\n metadataByLabel,\r\n metadataModifiedLabel,\r\n metadataPublishedLabel,\r\n availablePerspectives,\r\n metadata,\r\n toolbar,\r\n guide,\r\n error,\r\n } = useProperties<GuideComponentProps>();\r\n const {\r\n params: { connection },\r\n } = useRouteData();\r\n const container = useContainer();\r\n const children = useChildren();\r\n const dispatch = useDispatch();\r\n\r\n const handleBackButtonClick = useCallback(() => {\r\n dispatch('back');\r\n }, [dispatch]);\r\n\r\n if (!guide && !error && !loading) {\r\n return createEmptyComponent(container, {\r\n ...other,\r\n className: appendClassNames(className, 'humany-guide'),\r\n });\r\n }\r\n\r\n const { id = '', title = '', body = '', translations = {} } = guide || {};\r\n\r\n if (error && error.status === 404) {\r\n return <NotFound showSearch={false} />;\r\n }\r\n\r\n const showBackButton = !!accordion && !!connection;\r\n const language = Object.keys(translations).find((key) => translations[key] === `${id}`);\r\n\r\n return (\r\n <Wrapper\r\n ref={ref}\r\n {...other}\r\n data-loading={loading}\r\n className={appendClassNames(className, 'humany-guide')}\r\n >\r\n <Content\r\n data-loading={loading}\r\n accordion={accordion ? 'true' : 'false'}\r\n className=\"humany-guide-content\"\r\n >\r\n {((showAnswerVersions && guide) || !!toolbar) && (\r\n <Top className=\"humany-guide-top\">\r\n {showAnswerVersions && guide && (\r\n <AnswerVersionPicker\r\n defaultAnswerVersionLabel={defaultAnswerVersionLabel}\r\n availablePerspectives={availablePerspectives}\r\n guide={guide}\r\n />\r\n )}\r\n {!!toolbar && <Toolbar dispatch={dispatch} />}\r\n </Top>\r\n )}\r\n {!!(title || body) && (\r\n <Body\r\n className=\"humany-guide-body\"\r\n accordion={accordion ? 'true' : 'false'}\r\n header={(showHeader && title) || undefined}\r\n html={body}\r\n htmlParseInstruction={guideRenderInstructions(container, dialog)}\r\n lang={language}\r\n />\r\n )}\r\n {dialog && body.indexOf('h-option-link') === -1 && (\r\n <StyledDialogList dialog={dialog} />\r\n )}\r\n <StyledContactList\r\n backButtonShown={showBackButton ? 'true' : 'false'}\r\n contactMethods={contactMethods}\r\n dispatch={dispatch}\r\n guideId={guide && guide.id}\r\n />\r\n {!contactMethods.length && (\r\n <Feedback backButtonShown={showBackButton} accordion={accordion} />\r\n )}\r\n {showBackButton && (\r\n <BackButton aria-label={backButtonLabel} onClick={handleBackButtonClick}>\r\n <Caret\r\n width=\"7\"\r\n height=\"13\"\r\n viewBox=\"0 0 7 13\"\r\n fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n >\r\n <line x1=\"6.64645\" y1=\"12.5513\" x2=\"0.648357\" y2=\"6.55319\" />\r\n <line x1=\"0.646447\" y1=\"6.64455\" x2=\"6.64454\" y2=\"0.646465\" />\r\n </Caret>\r\n {backButtonLabel && <span>{backButtonLabel}</span>}\r\n </BackButton>\r\n )}\r\n {metadata && (\r\n <StyledMetadata\r\n {...metadata}\r\n modified={guide?.modified}\r\n published={guide?.published}\r\n modifiedBy={guide?.modifiedBy}\r\n publishedBy={guide?.publishedBy}\r\n byLabel={metadataByLabel}\r\n modifiedLabel={metadataModifiedLabel}\r\n publishedLabel={metadataPublishedLabel}\r\n />\r\n )}\r\n {children.map((child) => (\r\n <StyledComponents\r\n key={child.id}\r\n id={child.id}\r\n branch=\"default\"\r\n {...{ embedded: true }}\r\n />\r\n ))}\r\n </Content>\r\n\r\n <Loader loading={loading} />\r\n </Wrapper>\r\n );\r\n }\r\n);\r\n\r\nexport default Guide;\r\n\r\nconst Wrapper = styled.div<{ 'data-loading': boolean }>`\r\n ${loadingOpacity}\r\n min-width: 0;\r\n`;\r\n\r\nconst Body = styled(Paragraph)<{ accordion: 'true' | 'false' }>`\r\n ${genericHtml}\r\n ${(p) => `padding: ${p.theme.sizes?.large};`}\r\n display: block;\r\n line-height: 1.6em;\r\n ${headingElement(\r\n 'h1',\r\n css`\r\n font-size: ${(p) => p.theme.fonts?.large};\r\n font-weight: normal;\r\n line-height: 1.6em;\r\n line-height: 1.6em;\r\n margin: 0 0 ${(p) => p.theme.sizes?.small};\r\n `\r\n )}\r\n\r\n p {\r\n font-weight: 300;\r\n font-size: ${(p) => p.theme.fonts?.normal};\r\n color: ${(p) => p.theme.colors?.text};\r\n a {\r\n display: inline;\r\n }\r\n }\r\n`;\r\n\r\nconst StyledContactList = styled(ContactList)<{ backButtonShown: 'true' | 'false' }>`\r\n border-top: ${(p) => p.theme.border};\r\n ${(p) => p.backButtonShown === 'true' && `border-bottom: ${p.theme.border};`}\r\n`;\r\n\r\nconst StyledDialogList = styled(DialogList)`\r\n ${(p) => `padding: 0 ${p.theme.sizes?.large} ${p.theme.sizes?.large};`}\r\n display: block;\r\n`;\r\n\r\nconst Top = styled.div`\r\n ${(p) => `padding: calc(${p.theme.sizes?.normal}*2) ${p.theme.sizes?.large};`}\r\n display: flex;\r\n justify-content: space-between;\r\n align-items: center;\r\n border-bottom: ${(p) => p.theme.border};\r\n border-radius: ${(p) => `${p.theme.borderRadius} ${p.theme.borderRadius}`} 0 0;\r\n background-color: #ffffff;\r\n`;\r\n\r\nconst Content = styled.div<{ 'data-loading': boolean; accordion: 'true' | 'false' } & any>`\r\n ${contentBox}\r\n display: block;\r\n > a {\r\n ${contactLink}\r\n }\r\n\r\n ${(p) =>\r\n p.accordion === 'true' &&\r\n css`\r\n white-space: normal;\r\n box-shadow: none;\r\n background-color: #fafafa;\r\n `}\r\n`;\r\n\r\nconst StyledMetadata = styled(Metadata)`\r\n display: block;\r\n ${(p) => `padding: calc(${p.theme.sizes?.normal}*2) ${p.theme.sizes?.large};`}\r\n font-weight: 300;\r\n font-size: ${(p) => p.theme.fonts?.normal};\r\n color: ${(p) => p.theme.colors?.text};\r\n border-top: ${(p) => p.theme.border};\r\n`;\r\n\r\nconst StyledComponents = styled(Component)`\r\n border-top: ${(p) => p.theme.border};\r\n`;\r\n\r\nconst BackButton = styled(Button)`\r\n ${(p) => `padding: ${p.theme.sizes?.normal} calc(${p.theme.sizes?.normal} * 2);`}\r\n color: ${(p) => p.theme.colors?.primary};\r\n text-decoration: underline;\r\n font-size: ${(p) => p.theme.fonts?.normal};\r\n span {\r\n font-weight: 300;\r\n }\r\n &:focus {\r\n ${(p) =>\r\n p.theme.accessibility?.isTabbing &&\r\n css`\r\n ${linkTabStyle}\r\n padding: ${(p) => `calc(${p.theme.sizes?.small} / 2) ${p.theme.sizes?.small}`};\r\n `};\r\n }\r\n`;\r\n\r\nconst Caret = styled.svg`\r\n margin-right: ${(p) => p.theme.sizes?.small};\r\n line {\r\n stroke: ${(p) => p.theme.colors?.primary};\r\n }\r\n`;\r\n"],"names":["StyledContactList","FeedbackUi","ColoredSymbolBadge","StyledDropdownList","Wrapper"],"mappings":"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"}
package/dist/index.js CHANGED
@@ -1,191 +1,132 @@
1
- var __defProp = Object.defineProperty;
2
- var __defProps = Object.defineProperties;
3
- var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
4
- var __getOwnPropSymbols = Object.getOwnPropertySymbols;
5
- var __hasOwnProp = Object.prototype.hasOwnProperty;
6
- var __propIsEnum = Object.prototype.propertyIsEnumerable;
7
- var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
8
- var __spreadValues = (a, b) => {
9
- for (var prop in b || (b = {}))
10
- if (__hasOwnProp.call(b, prop))
11
- __defNormalProp(a, prop, b[prop]);
12
- if (__getOwnPropSymbols)
13
- for (var prop of __getOwnPropSymbols(b)) {
14
- if (__propIsEnum.call(b, prop))
15
- __defNormalProp(a, prop, b[prop]);
16
- }
17
- return a;
18
- };
19
- var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
20
- import { updateForm, useForm, useExpand } from "@telia-ace/knowledge-widget-component-utilities";
21
- import { createEventSubscriber, extendComponent } from "@telia-ace/knowledge-widget-core";
22
- import { FeedbackType, DataType } from "@telia-ace/knowledge-widget-types-grid";
23
- import { createReactComponent } from "@telia-ace/knowledge-widget-ui";
24
- import * as clipboard from "clipboard-polyfill";
25
- var useFeedback = (container, controller) => {
26
- controller.actions.create("feedback", (input) => {
27
- const type = input === "negative" ? FeedbackType.Negative : FeedbackType.Positive;
28
- const { guide, submitButtonLabel = "Submit" } = controller.properties();
29
- if (guide) {
30
- const { connection, id, hasHandover } = guide;
31
- controller.writeProperties({
32
- feedbackGiven: input,
33
- loading: hasHandover && type === FeedbackType.Negative
34
- });
35
- const { events } = container.get("$widget");
36
- events.dispatch("tracking:feedback-given", {
37
- guide,
38
- categories: guide.categories,
39
- feedbackType: type.toLowerCase()
40
- });
41
- return container.getAsync("dataClient").then((dataClient) => {
42
- return dataClient.feedback(id, connection, type).then(() => {
43
- if (hasHandover && type === FeedbackType.Negative) {
44
- return dataClient.fetch(DataType.ContactMethods, { guideId: id }).then(({ contactMethods }) => {
45
- return controller.actions.dispatch("handover", {
46
- handoverContactMethods: contactMethods.map((cm) => __spreadProps(__spreadValues({}, cm), {
47
- body: updateForm(cm, {
48
- submit: submitButtonLabel
49
- })
50
- })),
51
- loading: false
52
- });
53
- });
54
- }
55
- });
1
+ var T = Object.defineProperty, x = Object.defineProperties;
2
+ var C = Object.getOwnPropertyDescriptors;
3
+ var b = Object.getOwnPropertySymbols;
4
+ var $ = Object.prototype.hasOwnProperty, M = Object.prototype.propertyIsEnumerable;
5
+ var v = (t, e, i) => e in t ? T(t, e, { enumerable: !0, configurable: !0, writable: !0, value: i }) : t[e] = i, u = (t, e) => {
6
+ for (var i in e || (e = {}))
7
+ $.call(e, i) && v(t, i, e[i]);
8
+ if (b)
9
+ for (var i of b(e))
10
+ M.call(e, i) && v(t, i, e[i]);
11
+ return t;
12
+ }, h = (t, e) => x(t, C(e));
13
+ import { updateForm as y, useForm as B, useExpand as F } from "@telia-ace/knowledge-widget-component-utilities";
14
+ import { createEventSubscriber as H, extendComponent as P } from "@telia-ace/knowledge-widget-core";
15
+ import { FeedbackType as m, DataType as k } from "@telia-ace/knowledge-widget-types-grid";
16
+ import { createReactComponent as A } from "@telia-ace/knowledge-widget-ui";
17
+ import * as w from "clipboard-polyfill";
18
+ const E = (t, e) => {
19
+ e.actions.create("feedback", (i) => {
20
+ const d = i === "negative" ? m.Negative : m.Positive, { guide: a, submitButtonLabel: s = "Submit" } = e.properties();
21
+ if (a) {
22
+ const { connection: r, id: n, hasHandover: o } = a;
23
+ e.writeProperties({
24
+ feedbackGiven: i,
25
+ loading: o && d === m.Negative
56
26
  });
27
+ const { events: c } = t.get("$widget");
28
+ return c.dispatch("tracking:feedback-given", {
29
+ guide: a,
30
+ categories: a.categories,
31
+ feedbackType: d.toLowerCase()
32
+ }), t.getAsync("dataClient").then((g) => g.feedback(n, r, d).then(() => {
33
+ if (o && d === m.Negative)
34
+ return g.fetch(k.ContactMethods, { guideId: n }).then(({ contactMethods: p }) => e.actions.dispatch("handover", {
35
+ handoverContactMethods: p.map((f) => h(u({}, f), {
36
+ body: y(f, {
37
+ submit: s
38
+ })
39
+ })),
40
+ loading: !1
41
+ }));
42
+ }));
57
43
  }
58
- });
59
- controller.actions.create("handover", (input) => {
60
- return controller.writeProperties(__spreadProps(__spreadValues({}, input), { loading: false }));
61
- });
62
- };
63
- const buildPlainText = ({ title, body }) => {
64
- let processedHtml = "";
65
- if (title && title.length) {
66
- processedHtml = title.trim();
67
- }
68
- if (body && body.length) {
69
- processedHtml = `${processedHtml.trim()}
70
- ${body.trim()}`;
71
- }
72
- const div = document.createElement("div");
73
- div.innerHTML = processedHtml;
74
- const links = Array.from(div.getElementsByTagName("a"));
75
- let plainText = div.innerText;
76
- links.forEach((a) => {
77
- plainText = plainText.replace(a.innerText, `[${a.href}] (${a.innerText})`);
78
- });
79
- return plainText;
80
- };
81
- const buildHtml = ({ title, body }) => {
82
- let processedHtml = "";
83
- if (title && title.length) {
84
- processedHtml = `<h2>${title.trim()}</h2>`;
85
- }
86
- if (body && body.length) {
87
- processedHtml = `${processedHtml.trim()}${body.trim()}`;
88
- }
89
- return processedHtml.trim();
90
- };
91
- const GuideComponent = (container) => {
92
- const { events } = container.get("$widget");
93
- const [subscribe, unsubscribe] = createEventSubscriber(events);
94
- return createReactComponent(container, "guide", import("./guide.js"), (component) => {
95
- const fetch = (params) => {
96
- component.writeProperties({
97
- loading: true,
44
+ }), e.actions.create("handover", (i) => e.writeProperties(h(u({}, i), { loading: !1 })));
45
+ }, G = ({ title: t, body: e }) => {
46
+ let i = "";
47
+ t && t.length && (i = t.trim()), e && e.length && (i = `${i.trim()}
48
+ ${e.trim()}`);
49
+ const d = document.createElement("div");
50
+ d.innerHTML = i;
51
+ const a = Array.from(d.getElementsByTagName("a"));
52
+ let s = d.innerText;
53
+ return a.forEach((r) => {
54
+ s = s.replace(r.innerText, `[${r.href}] (${r.innerText})`);
55
+ }), s;
56
+ }, L = ({ title: t, body: e }) => {
57
+ let i = "";
58
+ return t && t.length && (i = `<h2>${t.trim()}</h2>`), e && e.length && (i = `${i.trim()}${e.trim()}`), i.trim();
59
+ }, q = (t) => {
60
+ const { events: e } = t.get("$widget"), [i, d] = H(e);
61
+ return A(t, "guide", import("./guide.858ab7a6.js"), (a) => {
62
+ const s = (r) => {
63
+ a.writeProperties({
64
+ loading: !0,
98
65
  error: void 0,
99
66
  guide: void 0
100
- });
101
- component.actions.dispatch("fetch", { params });
67
+ }), a.actions.dispatch("fetch", { params: r });
102
68
  };
103
- component.actions.create("copy", (guide) => {
104
- const item = new clipboard.ClipboardItem({
105
- "text/html": new Blob([buildHtml(guide)], { type: "text/html" }),
106
- "text/plain": new Blob([buildPlainText(guide)], { type: "text/plain" })
107
- });
108
- return clipboard.write([item]).then(() => {
109
- events.dispatch("widget:menu-toggled", null);
69
+ a.actions.create("copy", (r) => {
70
+ const n = new w.ClipboardItem({
71
+ "text/html": new Blob([L(r)], { type: "text/html" }),
72
+ "text/plain": new Blob([G(r)], { type: "text/plain" })
110
73
  });
111
- });
112
- component.actions.create("print", () => {
113
- const elem = document.querySelector(".humany-guide .humany-paragraph");
114
- const a = window.open("", "", "height=500, width=500");
115
- events.dispatch("widget:menu-toggled", null);
116
- if (elem && a) {
117
- a.document.write(`<html><body>${elem.innerHTML}</body></html>`);
118
- a.document.close();
119
- a.print();
120
- }
121
- });
122
- component.actions.create("back", (data, options) => {
123
- if (options.preventDefault) {
124
- return;
125
- }
126
- return container.getAsync("router").then((router) => {
127
- router.goBack();
74
+ return w.write([n]).then(() => {
75
+ e.dispatch("widget:menu-toggled", null);
128
76
  });
129
- });
130
- component.actions.create("fetch", ({ contactMethods = [], dialog = [], guide, error }) => {
131
- if (error) {
132
- return component.actions.dispatch("fetched", {
133
- error,
77
+ }), a.actions.create("print", () => {
78
+ const r = document.querySelector(".humany-guide .humany-paragraph"), n = window.open("", "", "height=500, width=500");
79
+ e.dispatch("widget:menu-toggled", null), r && n && (n.document.write(`<html><body>${r.innerHTML}</body></html>`), n.document.close(), n.print());
80
+ }), a.actions.create("back", (r, n) => {
81
+ if (!n.preventDefault)
82
+ return t.getAsync("router").then((o) => {
83
+ o.goBack();
84
+ });
85
+ }), a.actions.create("fetch", ({ contactMethods: r = [], dialog: n = [], guide: o, error: c }) => {
86
+ if (c)
87
+ return a.actions.dispatch("fetched", {
88
+ error: c,
134
89
  guide: void 0,
135
90
  contactMethods: [],
136
91
  feedbackGiven: void 0,
137
92
  handoverContactMethods: [],
138
- showFeedback: false,
139
- loading: true
93
+ showFeedback: !1,
94
+ loading: !0
140
95
  });
141
- }
142
- const { showFeedback = true, submitButtonLabel = "Submit" } = component.properties();
143
- const properties = {
144
- showFeedback,
145
- dialog,
146
- guide,
96
+ const { showFeedback: g = !0, submitButtonLabel: p = "Submit" } = a.properties(), f = {
97
+ showFeedback: g,
98
+ dialog: n,
99
+ guide: o,
147
100
  feedbackGiven: void 0,
148
101
  handoverContactMethods: [],
149
- contactMethods: contactMethods.map((cm) => __spreadProps(__spreadValues({}, cm), {
150
- body: updateForm(cm, { submit: submitButtonLabel })
102
+ contactMethods: r.map((l) => h(u({}, l), {
103
+ body: y(l, { submit: p })
151
104
  }))
152
105
  };
153
- return component.actions.dispatch("fetched", __spreadProps(__spreadValues({}, properties), {
154
- loading: true
106
+ return a.actions.dispatch("fetched", h(u({}, f), {
107
+ loading: !0
155
108
  }));
109
+ }), a.actions.create("fetched", (r) => a.writeProperties(h(u({}, r), { loading: !1 }))), t.getAsync("router").then((r) => {
110
+ const { params: n } = r.getRouteData();
111
+ s(n);
112
+ }), i("router:changed", (r, { current: n }) => {
113
+ s(n.routeData.params);
114
+ }), E(t, a), B(t, a), F(a);
115
+ }).then(() => P(t, "guide", (a) => {
116
+ a.actions.watch("guide.fetch", (s, r) => {
117
+ const {
118
+ params: { guide: n, connection: o }
119
+ } = s;
120
+ return n ? t.getAsync("dataClient").then((c) => c.fetch(k.Guide, { connection: o, guideId: n })).then(r).catch((c) => {
121
+ if (c)
122
+ return r(c);
123
+ }) : r(s);
156
124
  });
157
- component.actions.create("fetched", (input) => {
158
- return component.writeProperties(__spreadProps(__spreadValues({}, input), { loading: false }));
159
- });
160
- container.getAsync("router").then((router) => {
161
- const { params } = router.getRouteData();
162
- fetch(params);
163
- });
164
- subscribe("router:changed", (event, { current }) => {
165
- fetch(current.routeData.params);
166
- });
167
- useFeedback(container, component);
168
- useForm(container, component);
169
- useExpand(component);
170
- }).then(() => {
171
- return extendComponent(container, "guide", (component) => {
172
- component.actions.watch("guide.fetch", (input, next) => {
173
- const {
174
- params: { guide, connection }
175
- } = input;
176
- if (guide) {
177
- return container.getAsync("dataClient").then((dataClient) => dataClient.fetch(DataType.Guide, { connection, guideId: guide })).then(next).catch((error) => {
178
- if (error) {
179
- return next(error);
180
- }
181
- });
182
- }
183
- return next(input);
184
- });
185
- });
186
- }).then(() => {
187
- unsubscribe();
125
+ })).then(() => {
126
+ d();
188
127
  });
189
128
  };
190
- export { GuideComponent as default };
129
+ export {
130
+ q as default
131
+ };
191
132
  //# 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';\r\nimport { ComponentNodeController } from '@telia-ace/knowledge-widget-core';\r\nimport {\r\n ContactsResult,\r\n DataClient,\r\n DataType,\r\n FeedbackType,\r\n} from '@telia-ace/knowledge-widget-types-grid';\r\nimport { Container } from '@webprovisions/platform';\r\nimport { GuideComponentProps } from './guide-component';\r\n\r\nexport default (container: Container, controller: ComponentNodeController) => {\r\n controller.actions.create('feedback', (input: 'negative' | 'positive') => {\r\n const type = input === 'negative' ? FeedbackType.Negative : FeedbackType.Positive;\r\n const { guide, submitButtonLabel = 'Submit' } =\r\n controller.properties<GuideComponentProps>();\r\n if (guide) {\r\n const { connection, id, hasHandover } = guide;\r\n controller.writeProperties({\r\n feedbackGiven: input,\r\n loading: hasHandover && type === FeedbackType.Negative,\r\n });\r\n\r\n const { events } = container.get('$widget');\r\n events.dispatch('tracking:feedback-given', {\r\n guide,\r\n categories: guide.categories,\r\n feedbackType: type.toLowerCase(),\r\n });\r\n\r\n return container.getAsync('dataClient').then((dataClient: DataClient) => {\r\n return dataClient.feedback(id, connection, type).then(() => {\r\n if (hasHandover && type === FeedbackType.Negative) {\r\n return dataClient\r\n .fetch(DataType.ContactMethods, { guideId: id })\r\n .then(({ contactMethods }: ContactsResult) => {\r\n return controller.actions.dispatch('handover', {\r\n handoverContactMethods: contactMethods.map((cm) => ({\r\n ...cm,\r\n body: updateForm(cm, {\r\n submit: submitButtonLabel,\r\n }),\r\n })),\r\n loading: false,\r\n });\r\n });\r\n }\r\n });\r\n });\r\n }\r\n });\r\n\r\n controller.actions.create('handover', (input) => {\r\n return controller.writeProperties({ ...input, loading: false });\r\n });\r\n};\r\n","import { ContactMethodType } from '@telia-ace/knowledge-widget-adapters';\r\nimport {\r\n FavoriteProperties,\r\n LanguageProperties,\r\n MetaDataProperties,\r\n updateForm,\r\n useExpand,\r\n useForm,\r\n} from '@telia-ace/knowledge-widget-component-utilities';\r\nimport {\r\n createEventSubscriber,\r\n DialogItem,\r\n extendComponent,\r\n PickerTypes,\r\n} from '@telia-ace/knowledge-widget-core';\r\nimport {\r\n DataClient,\r\n DataError,\r\n DataType,\r\n GuideResult,\r\n} from '@telia-ace/knowledge-widget-types-grid';\r\nimport { createReactComponent } from '@telia-ace/knowledge-widget-ui';\r\nimport { FormComponentInstanceProperties } from '@telia-ace/widget-forms';\r\nimport { RoutingService } from '@telia-ace/widget-routing';\r\nimport { Container, EventManager } from '@webprovisions/platform';\r\nimport * as clipboard from 'clipboard-polyfill';\r\nimport useFeedback from './use-feedback';\r\n\r\nexport type GuideProps = {\r\n id: string;\r\n title: string;\r\n body: string;\r\n connection: string;\r\n categories: number[];\r\n hasHandover: boolean;\r\n allowFeedback: boolean;\r\n perspectives: { [key: string]: string };\r\n translations?: { [key: string]: string };\r\n modified?: string;\r\n published?: string;\r\n publishedBy?: string | null;\r\n modifiedBy?: string | null;\r\n perspective: string | null;\r\n};\r\n\r\nexport type AvailablePerspectives = {\r\n name: string;\r\n title: string;\r\n};\r\n\r\nexport type GuideComponentProps = {\r\n showHeader?: boolean;\r\n showFeedback?: boolean;\r\n feedbackDirection?: 'horizontal' | 'vertical';\r\n feedbackGiven?: 'positive' | 'negative'; // internal\r\n contactMethods?: ContactMethodType[]; // internal\r\n handoverContactMethods?: ContactMethodType[]; // internal\r\n showAnswerVersions?: boolean;\r\n feedbackHeader?: string;\r\n contactHeader?: string;\r\n toolbarFunctionsHeader?: string;\r\n toolbarLanguageHeader?: string;\r\n positiveFeedbackLabel?: string;\r\n negativeFeedbackLabel?: string;\r\n contactFeedbackLabel?: string;\r\n feedbackRecognitionLabel?: string;\r\n defaultAnswerVersionLabel?: string;\r\n backButtonLabel?: string;\r\n toolbarFunctionsTooltip?: string;\r\n toolbarFunctionsCloseButtonAriaLabel?: string;\r\n copyActionLabel?: string;\r\n printActionLabel?: string;\r\n toolbarLanguageTooltip?: string;\r\n toolbar?: ToolbarProps;\r\n guide?: GuideProps; // internal\r\n dialog?: DialogItem[]; // internal\r\n error?: DataError; // internal\r\n availablePerspectives?: AvailablePerspectives[]; // internal\r\n} & FormComponentInstanceProperties &\r\n FavoriteProperties &\r\n MetaDataProperties &\r\n LanguageProperties;\r\n\r\nexport type ToolbarProps = {\r\n language?: boolean;\r\n guideCategories?: boolean;\r\n allowCopy?: boolean;\r\n allowPrint?: boolean;\r\n showFavoriteToggle?: boolean;\r\n picker?: PickerTypes;\r\n};\r\n\r\nconst buildPlainText = ({ title, body }: GuideProps): string => {\r\n let processedHtml = '';\r\n\r\n if (title && title.length) {\r\n processedHtml = title.trim();\r\n }\r\n\r\n if (body && body.length) {\r\n processedHtml = `${processedHtml.trim()}\\n${body.trim()}`;\r\n }\r\n\r\n const div = document.createElement('div');\r\n div.innerHTML = processedHtml;\r\n const links: HTMLAnchorElement[] = Array.from(div.getElementsByTagName('a'));\r\n\r\n let plainText = div.innerText;\r\n\r\n links.forEach((a) => {\r\n plainText = plainText.replace(a.innerText, `[${a.href}] (${a.innerText})`);\r\n });\r\n\r\n return plainText;\r\n};\r\n\r\nconst buildHtml = ({ title, body }: GuideProps): string => {\r\n let processedHtml = '';\r\n\r\n if (title && title.length) {\r\n processedHtml = `<h2>${title.trim()}</h2>`;\r\n }\r\n\r\n if (body && body.length) {\r\n processedHtml = `${processedHtml.trim()}${body.trim()}`;\r\n }\r\n\r\n return processedHtml.trim();\r\n};\r\n\r\nexport const GuideComponent = (container: Container) => {\r\n const { events }: { events: EventManager } = container.get('$widget');\r\n const [subscribe, unsubscribe] = createEventSubscriber(events);\r\n\r\n return createReactComponent(container, 'guide', import('./guide'), (component) => {\r\n const fetch = (params: { [key: string]: any }) => {\r\n component.writeProperties({\r\n loading: true,\r\n error: undefined,\r\n guide: undefined,\r\n });\r\n component.actions.dispatch('fetch', { params });\r\n };\r\n\r\n component.actions.create('copy', (guide: GuideProps) => {\r\n const item = new clipboard.ClipboardItem({\r\n 'text/html': new Blob([buildHtml(guide)], { type: 'text/html' }),\r\n 'text/plain': new Blob([buildPlainText(guide)], { type: 'text/plain' }),\r\n });\r\n\r\n return clipboard.write([item]).then(() => {\r\n events.dispatch('widget:menu-toggled', null);\r\n });\r\n });\r\n\r\n component.actions.create('print', () => {\r\n const elem = document.querySelector('.humany-guide .humany-paragraph');\r\n const a = window.open('', '', 'height=500, width=500');\r\n\r\n events.dispatch('widget:menu-toggled', null);\r\n if (elem && a) {\r\n a.document.write(`<html><body>${elem.innerHTML}</body></html>`);\r\n a.document.close();\r\n a.print();\r\n }\r\n });\r\n\r\n component.actions.create('back', (data, options) => {\r\n if (options.preventDefault) {\r\n return;\r\n }\r\n\r\n return container.getAsync('router').then((router: RoutingService) => {\r\n router.goBack();\r\n });\r\n });\r\n\r\n component.actions.create(\r\n 'fetch',\r\n ({ contactMethods = [], dialog = [], guide, error }: GuideResult) => {\r\n if (error) {\r\n return component.actions.dispatch('fetched', {\r\n error,\r\n guide: undefined,\r\n contactMethods: [],\r\n feedbackGiven: undefined,\r\n handoverContactMethods: [],\r\n showFeedback: false,\r\n loading: true,\r\n });\r\n }\r\n const { showFeedback = true, submitButtonLabel = 'Submit' } =\r\n component.properties<GuideComponentProps>();\r\n\r\n const properties: GuideComponentProps = {\r\n showFeedback,\r\n dialog,\r\n guide,\r\n feedbackGiven: undefined,\r\n handoverContactMethods: [],\r\n contactMethods: contactMethods.map((cm) => ({\r\n ...cm,\r\n body: updateForm(cm, { submit: submitButtonLabel }),\r\n })),\r\n };\r\n\r\n return component.actions.dispatch('fetched', {\r\n ...properties,\r\n loading: true,\r\n });\r\n }\r\n );\r\n\r\n component.actions.create('fetched', (input) => {\r\n return component.writeProperties({ ...input, loading: false });\r\n });\r\n\r\n container.getAsync('router').then((router) => {\r\n const { params } = router.getRouteData();\r\n fetch(params);\r\n });\r\n\r\n subscribe('router:changed', (event: any, { current }: any) => {\r\n fetch(current.routeData.params);\r\n });\r\n\r\n useFeedback(container, component);\r\n useForm(container, component);\r\n useExpand(component);\r\n })\r\n .then(() => {\r\n return extendComponent(container, 'guide', (component) => {\r\n component.actions.watch('guide.fetch', (input, next) => {\r\n const {\r\n params: { guide, connection },\r\n } = input;\r\n\r\n if (guide) {\r\n return container\r\n .getAsync('dataClient')\r\n .then((dataClient: DataClient) =>\r\n dataClient.fetch(DataType.Guide, { connection, guideId: guide })\r\n )\r\n .then(next)\r\n .catch((error) => {\r\n if (error) {\r\n return next(error);\r\n }\r\n });\r\n }\r\n\r\n return next(input);\r\n });\r\n });\r\n })\r\n .then(() => {\r\n unsubscribe();\r\n });\r\n};\r\n\r\nexport default GuideComponent;\r\n"],"names":[],"mappings":"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"}
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';\r\nimport { ComponentNodeController } from '@telia-ace/knowledge-widget-core';\r\nimport {\r\n ContactsResult,\r\n DataClient,\r\n DataType,\r\n FeedbackType,\r\n} from '@telia-ace/knowledge-widget-types-grid';\r\nimport { Container } from '@webprovisions/platform';\r\nimport { GuideComponentProps } from './guide-component';\r\n\r\nexport default (container: Container, controller: ComponentNodeController) => {\r\n controller.actions.create('feedback', (input: 'negative' | 'positive') => {\r\n const type = input === 'negative' ? FeedbackType.Negative : FeedbackType.Positive;\r\n const { guide, submitButtonLabel = 'Submit' } =\r\n controller.properties<GuideComponentProps>();\r\n if (guide) {\r\n const { connection, id, hasHandover } = guide;\r\n controller.writeProperties({\r\n feedbackGiven: input,\r\n loading: hasHandover && type === FeedbackType.Negative,\r\n });\r\n\r\n const { events } = container.get('$widget');\r\n events.dispatch('tracking:feedback-given', {\r\n guide,\r\n categories: guide.categories,\r\n feedbackType: type.toLowerCase(),\r\n });\r\n\r\n return container.getAsync('dataClient').then((dataClient: DataClient) => {\r\n return dataClient.feedback(id, connection, type).then(() => {\r\n if (hasHandover && type === FeedbackType.Negative) {\r\n return dataClient\r\n .fetch(DataType.ContactMethods, { guideId: id })\r\n .then(({ contactMethods }: ContactsResult) => {\r\n return controller.actions.dispatch('handover', {\r\n handoverContactMethods: contactMethods.map((cm) => ({\r\n ...cm,\r\n body: updateForm(cm, {\r\n submit: submitButtonLabel,\r\n }),\r\n })),\r\n loading: false,\r\n });\r\n });\r\n }\r\n });\r\n });\r\n }\r\n });\r\n\r\n controller.actions.create('handover', (input) => {\r\n return controller.writeProperties({ ...input, loading: false });\r\n });\r\n};\r\n","import { ContactMethodType } from '@telia-ace/knowledge-widget-adapters';\r\nimport {\r\n FavoriteProperties,\r\n LanguageProperties,\r\n MetaDataProperties,\r\n updateForm,\r\n useExpand,\r\n useForm,\r\n} from '@telia-ace/knowledge-widget-component-utilities';\r\nimport {\r\n createEventSubscriber,\r\n DialogItem,\r\n extendComponent,\r\n PickerTypes,\r\n} from '@telia-ace/knowledge-widget-core';\r\nimport {\r\n DataClient,\r\n DataError,\r\n DataType,\r\n GuideResult,\r\n} from '@telia-ace/knowledge-widget-types-grid';\r\nimport { createReactComponent } from '@telia-ace/knowledge-widget-ui';\r\nimport { FormComponentInstanceProperties } from '@telia-ace/widget-forms';\r\nimport { RoutingService } from '@telia-ace/widget-routing';\r\nimport { Container, EventManager } from '@webprovisions/platform';\r\nimport * as clipboard from 'clipboard-polyfill';\r\nimport useFeedback from './use-feedback';\r\n\r\nexport type GuideProps = {\r\n id: string;\r\n title: string;\r\n body: string;\r\n connection: string;\r\n categories: number[];\r\n hasHandover: boolean;\r\n allowFeedback: boolean;\r\n perspectives: { [key: string]: string };\r\n translations?: { [key: string]: string };\r\n modified?: string;\r\n published?: string;\r\n publishedBy?: string | null;\r\n modifiedBy?: string | null;\r\n perspective: string | null;\r\n};\r\n\r\nexport type AvailablePerspectives = {\r\n name: string;\r\n title: string;\r\n};\r\n\r\nexport type GuideComponentProps = {\r\n showHeader?: boolean;\r\n showFeedback?: boolean;\r\n feedbackDirection?: 'horizontal' | 'vertical';\r\n feedbackGiven?: 'positive' | 'negative'; // internal\r\n contactMethods?: ContactMethodType[]; // internal\r\n handoverContactMethods?: ContactMethodType[]; // internal\r\n showAnswerVersions?: boolean;\r\n feedbackHeader?: string;\r\n contactHeader?: string;\r\n toolbarFunctionsHeader?: string;\r\n toolbarLanguageHeader?: string;\r\n positiveFeedbackLabel?: string;\r\n negativeFeedbackLabel?: string;\r\n contactFeedbackLabel?: string;\r\n feedbackRecognitionLabel?: string;\r\n defaultAnswerVersionLabel?: string;\r\n backButtonLabel?: string;\r\n toolbarFunctionsTooltip?: string;\r\n toolbarFunctionsCloseButtonAriaLabel?: string;\r\n copyActionLabel?: string;\r\n printActionLabel?: string;\r\n toolbarLanguageTooltip?: string;\r\n toolbar?: ToolbarProps;\r\n guide?: GuideProps; // internal\r\n dialog?: DialogItem[]; // internal\r\n error?: DataError; // internal\r\n availablePerspectives?: AvailablePerspectives[]; // internal\r\n} & FormComponentInstanceProperties &\r\n FavoriteProperties &\r\n MetaDataProperties &\r\n LanguageProperties;\r\n\r\nexport type ToolbarProps = {\r\n language?: boolean;\r\n guideCategories?: boolean;\r\n allowCopy?: boolean;\r\n allowPrint?: boolean;\r\n showFavoriteToggle?: boolean;\r\n picker?: PickerTypes;\r\n};\r\n\r\nconst buildPlainText = ({ title, body }: GuideProps): string => {\r\n let processedHtml = '';\r\n\r\n if (title && title.length) {\r\n processedHtml = title.trim();\r\n }\r\n\r\n if (body && body.length) {\r\n processedHtml = `${processedHtml.trim()}\\n${body.trim()}`;\r\n }\r\n\r\n const div = document.createElement('div');\r\n div.innerHTML = processedHtml;\r\n const links: HTMLAnchorElement[] = Array.from(div.getElementsByTagName('a'));\r\n\r\n let plainText = div.innerText;\r\n\r\n links.forEach((a) => {\r\n plainText = plainText.replace(a.innerText, `[${a.href}] (${a.innerText})`);\r\n });\r\n\r\n return plainText;\r\n};\r\n\r\nconst buildHtml = ({ title, body }: GuideProps): string => {\r\n let processedHtml = '';\r\n\r\n if (title && title.length) {\r\n processedHtml = `<h2>${title.trim()}</h2>`;\r\n }\r\n\r\n if (body && body.length) {\r\n processedHtml = `${processedHtml.trim()}${body.trim()}`;\r\n }\r\n\r\n return processedHtml.trim();\r\n};\r\n\r\nexport const GuideComponent = (container: Container) => {\r\n const { events }: { events: EventManager } = container.get('$widget');\r\n const [subscribe, unsubscribe] = createEventSubscriber(events);\r\n\r\n return createReactComponent(container, 'guide', import('./guide'), (component) => {\r\n const fetch = (params: { [key: string]: any }) => {\r\n component.writeProperties({\r\n loading: true,\r\n error: undefined,\r\n guide: undefined,\r\n });\r\n component.actions.dispatch('fetch', { params });\r\n };\r\n\r\n component.actions.create('copy', (guide: GuideProps) => {\r\n const item = new clipboard.ClipboardItem({\r\n 'text/html': new Blob([buildHtml(guide)], { type: 'text/html' }),\r\n 'text/plain': new Blob([buildPlainText(guide)], { type: 'text/plain' }),\r\n });\r\n\r\n return clipboard.write([item]).then(() => {\r\n events.dispatch('widget:menu-toggled', null);\r\n });\r\n });\r\n\r\n component.actions.create('print', () => {\r\n const elem = document.querySelector('.humany-guide .humany-paragraph');\r\n const a = window.open('', '', 'height=500, width=500');\r\n\r\n events.dispatch('widget:menu-toggled', null);\r\n if (elem && a) {\r\n a.document.write(`<html><body>${elem.innerHTML}</body></html>`);\r\n a.document.close();\r\n a.print();\r\n }\r\n });\r\n\r\n component.actions.create('back', (data, options) => {\r\n if (options.preventDefault) {\r\n return;\r\n }\r\n\r\n return container.getAsync('router').then((router: RoutingService) => {\r\n router.goBack();\r\n });\r\n });\r\n\r\n component.actions.create(\r\n 'fetch',\r\n ({ contactMethods = [], dialog = [], guide, error }: GuideResult) => {\r\n if (error) {\r\n return component.actions.dispatch('fetched', {\r\n error,\r\n guide: undefined,\r\n contactMethods: [],\r\n feedbackGiven: undefined,\r\n handoverContactMethods: [],\r\n showFeedback: false,\r\n loading: true,\r\n });\r\n }\r\n const { showFeedback = true, submitButtonLabel = 'Submit' } =\r\n component.properties<GuideComponentProps>();\r\n\r\n const properties: GuideComponentProps = {\r\n showFeedback,\r\n dialog,\r\n guide,\r\n feedbackGiven: undefined,\r\n handoverContactMethods: [],\r\n contactMethods: contactMethods.map((cm) => ({\r\n ...cm,\r\n body: updateForm(cm, { submit: submitButtonLabel }),\r\n })),\r\n };\r\n\r\n return component.actions.dispatch('fetched', {\r\n ...properties,\r\n loading: true,\r\n });\r\n }\r\n );\r\n\r\n component.actions.create('fetched', (input) => {\r\n return component.writeProperties({ ...input, loading: false });\r\n });\r\n\r\n container.getAsync('router').then((router) => {\r\n const { params } = router.getRouteData();\r\n fetch(params);\r\n });\r\n\r\n subscribe('router:changed', (event: any, { current }: any) => {\r\n fetch(current.routeData.params);\r\n });\r\n\r\n useFeedback(container, component);\r\n useForm(container, component);\r\n useExpand(component);\r\n })\r\n .then(() => {\r\n return extendComponent(container, 'guide', (component) => {\r\n component.actions.watch('guide.fetch', (input, next) => {\r\n const {\r\n params: { guide, connection },\r\n } = input;\r\n\r\n if (guide) {\r\n return container\r\n .getAsync('dataClient')\r\n .then((dataClient: DataClient) =>\r\n dataClient.fetch(DataType.Guide, { connection, guideId: guide })\r\n )\r\n .then(next)\r\n .catch((error) => {\r\n if (error) {\r\n return next(error);\r\n }\r\n });\r\n }\r\n\r\n return next(input);\r\n });\r\n });\r\n })\r\n .then(() => {\r\n unsubscribe();\r\n });\r\n};\r\n\r\nexport default GuideComponent;\r\n"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,14 +1,14 @@
1
1
  {
2
2
  "name": "@telia-ace/knowledge-widget-components-guide",
3
- "version": "1.0.16",
3
+ "version": "1.0.19",
4
4
  "description": "Guide component for ACE Knowledge Widgets.",
5
5
  "license": "SEE LICENSE IN LICENSE.txt",
6
6
  "author": "Telia Company AB",
7
7
  "keywords": [
8
8
  "telia"
9
9
  ],
10
- "source": "src/index.ts",
11
- "module": "dist/index.js",
10
+ "main": "dist/index.js",
11
+ "type": "module",
12
12
  "types": "dist/index.d.ts",
13
13
  "files": [
14
14
  "LICENSE.txt",
@@ -25,13 +25,13 @@
25
25
  },
26
26
  "sideEffects": false,
27
27
  "dependencies": {
28
- "@telia-ace/knowledge-widget-adapters": "^1.0.22",
29
- "@telia-ace/knowledge-widget-component-utilities": "^1.0.16",
30
- "@telia-ace/knowledge-widget-core": "^1.0.13",
31
- "@telia-ace/knowledge-widget-types-grid": "^1.0.22",
32
- "@telia-ace/knowledge-widget-ui": "^1.0.19",
33
- "@telia-ace/widget-forms": "^1.0.17",
34
- "@telia-ace/widget-routing": "^1.0.11",
28
+ "@telia-ace/knowledge-widget-adapters": "^1.0.26",
29
+ "@telia-ace/knowledge-widget-component-utilities": "^1.0.19",
30
+ "@telia-ace/knowledge-widget-core": "^1.0.17",
31
+ "@telia-ace/knowledge-widget-types-grid": "^1.0.26",
32
+ "@telia-ace/knowledge-widget-ui": "^1.0.23",
33
+ "@telia-ace/widget-forms": "^1.0.20",
34
+ "@telia-ace/widget-routing": "^1.0.14",
35
35
  "@telia-ace/widget-utilities": "^1.0.2",
36
36
  "@webprovisions/platform": "^1.1.2",
37
37
  "clipboard-polyfill": "3.0.2"
@@ -46,5 +46,5 @@
46
46
  "@types/react-dom": "^16.8.0",
47
47
  "@types/styled-components": "^5.1.7"
48
48
  },
49
- "gitHead": "43581cc2553504251c952d927cc6c6743d2412ec"
49
+ "gitHead": "44efbdca7f57d6997132792020922c89b013c44d"
50
50
  }