@telia-ace/knowledge-widget-ui 1.0.25 → 1.0.26-next.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE.txt +5 -5
- package/README.md +3 -3
- package/dist/components/dialog-link.d.ts +12 -12
- package/dist/components/dialog-list.d.ts +3 -7
- package/dist/components/drawer-list.d.ts +5 -5
- package/dist/components/dropdown-actions.d.ts +11 -11
- package/dist/components/dropdown-list.d.ts +5 -5
- package/dist/components/favorite-button.d.ts +17 -17
- package/dist/components/feedback.d.ts +11 -11
- package/dist/components/guide-list.d.ts +45 -46
- package/dist/components/index.d.ts +11 -11
- package/dist/components/loader.d.ts +9 -9
- package/dist/components/metadata.d.ts +17 -17
- package/dist/components/notification-list.d.ts +19 -19
- package/dist/hooks/index.d.ts +5 -5
- package/dist/hooks/use-arrow-keys.d.ts +3 -3
- package/dist/hooks/use-debounce.d.ts +2 -2
- package/dist/hooks/use-favorites.d.ts +8 -8
- package/dist/hooks/use-hover.d.ts +2 -2
- package/dist/index.d.ts +7 -7
- package/dist/index.js.map +1 -1
- package/dist/missing-type-exports.d.ts +47 -47
- package/dist/styles.d.ts +6 -6
- package/dist/utils/embedded-link-mapper.d.ts +4 -3
- package/dist/utils/guide-render-instructions.d.ts +8 -7
- package/dist/utils/index.d.ts +1 -1
- package/package.json +14 -15
package/LICENSE.txt
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
Copyright © 2021, Telia Company AB. All rights reserved.
|
|
2
|
-
|
|
3
|
-
THIS PACKAGE AND CONTAINING SOFTWARE IS PART OF
|
|
4
|
-
THE HUMANY SERVICE. BY USING THIS SOFTWARE YOU
|
|
5
|
-
AGREE TO THE FOLLOWING TERMS AND CONDITIONS:
|
|
1
|
+
Copyright © 2021, Telia Company AB. All rights reserved.
|
|
2
|
+
|
|
3
|
+
THIS PACKAGE AND CONTAINING SOFTWARE IS PART OF
|
|
4
|
+
THE HUMANY SERVICE. BY USING THIS SOFTWARE YOU
|
|
5
|
+
AGREE TO THE FOLLOWING TERMS AND CONDITIONS:
|
|
6
6
|
http://www.humany.com/legal
|
package/README.md
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
# `@telia-ace/knowledge-widget-ui`
|
|
2
|
-
|
|
3
|
-
Generic UI components for ACE knowledge widgets.
|
|
1
|
+
# `@telia-ace/knowledge-widget-ui`
|
|
2
|
+
|
|
3
|
+
Generic UI components for ACE knowledge widgets.
|
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
import { LinkProps } from '../missing-type-exports';
|
|
3
|
-
export declare type Props = Merge<LinkProps, {
|
|
4
|
-
parent: {
|
|
5
|
-
id: string;
|
|
6
|
-
title: string;
|
|
7
|
-
};
|
|
8
|
-
type: 'guide' | 'link' | 'default';
|
|
9
|
-
connection?: string;
|
|
10
|
-
}>;
|
|
11
|
-
declare const DialogLink: React.FC<Props>;
|
|
12
|
-
export default DialogLink;
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { LinkProps } from '../missing-type-exports';
|
|
3
|
+
export declare type Props = Merge<LinkProps, {
|
|
4
|
+
parent: {
|
|
5
|
+
id: string;
|
|
6
|
+
title: string;
|
|
7
|
+
};
|
|
8
|
+
type: 'guide' | 'link' | 'default';
|
|
9
|
+
connection?: string;
|
|
10
|
+
}>;
|
|
11
|
+
declare const DialogLink: React.FC<Props>;
|
|
12
|
+
export default DialogLink;
|
|
@@ -1,7 +1,3 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
dialog: DialogLinkProps[];
|
|
5
|
-
}>;
|
|
6
|
-
declare const _default: React.ForwardRefExoticComponent<Pick<Props, "dialog" | "key" | keyof import("react").HTMLAttributes<HTMLUListElement>> & React.RefAttributes<HTMLUListElement>>;
|
|
7
|
-
export default _default;
|
|
1
|
+
import React from 'react';
|
|
2
|
+
declare const _default: React.ForwardRefExoticComponent<Pick<any, string | number | symbol> & React.RefAttributes<HTMLUListElement>>;
|
|
3
|
+
export default _default;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
import { DrawerProps, ItemListProps } from '../missing-type-exports';
|
|
3
|
-
declare type Props = Merge<ItemListProps, DrawerProps>;
|
|
4
|
-
declare const DrawerList: React.FC<Props>;
|
|
5
|
-
export default DrawerList;
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { DrawerProps, ItemListProps } from '../missing-type-exports';
|
|
3
|
+
declare type Props = Merge<ItemListProps, DrawerProps>;
|
|
4
|
+
declare const DrawerList: React.FC<Props>;
|
|
5
|
+
export default DrawerList;
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import { ItemRenderer } from '@telia-ace/widget-ui';
|
|
2
|
-
import React from 'react';
|
|
3
|
-
declare type Props = {
|
|
4
|
-
trigger: React.ReactElement;
|
|
5
|
-
header?: React.ReactElement;
|
|
6
|
-
items?: any[];
|
|
7
|
-
renderItem?: ItemRenderer;
|
|
8
|
-
className?: string;
|
|
9
|
-
};
|
|
10
|
-
declare const DropdownActions: React.FC<Props>;
|
|
11
|
-
export default DropdownActions;
|
|
1
|
+
import { ItemRenderer } from '@telia-ace/widget-ui';
|
|
2
|
+
import React from 'react';
|
|
3
|
+
declare type Props = {
|
|
4
|
+
trigger: React.ReactElement;
|
|
5
|
+
header?: React.ReactElement;
|
|
6
|
+
items?: any[];
|
|
7
|
+
renderItem?: ItemRenderer;
|
|
8
|
+
className?: string;
|
|
9
|
+
};
|
|
10
|
+
declare const DropdownActions: React.FC<Props>;
|
|
11
|
+
export default DropdownActions;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
import { DropdownProps, ItemListProps } from '../missing-type-exports';
|
|
3
|
-
export declare type Props = Merge<DropdownProps, ItemListProps>;
|
|
4
|
-
declare const DropdownList: React.FC<Props>;
|
|
5
|
-
export default DropdownList;
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { DropdownProps, ItemListProps } from '../missing-type-exports';
|
|
3
|
+
export declare type Props = Merge<DropdownProps, ItemListProps>;
|
|
4
|
+
declare const DropdownList: React.FC<Props>;
|
|
5
|
+
export default DropdownList;
|
|
@@ -1,17 +1,17 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
import { FavoriteActions } from '../hooks';
|
|
3
|
-
declare type Props = {
|
|
4
|
-
isFavorite: boolean;
|
|
5
|
-
actions: FavoriteActions;
|
|
6
|
-
id: string;
|
|
7
|
-
addFavoriteTooltip?: string;
|
|
8
|
-
removeFavoriteCancelLabel?: string;
|
|
9
|
-
removeFavoriteConfirmLabel?: string;
|
|
10
|
-
removeFavoriteHeader?: string;
|
|
11
|
-
removeFavoriteLabel?: string;
|
|
12
|
-
removeFavoriteTooltip?: string;
|
|
13
|
-
buttonLabel?: string;
|
|
14
|
-
guideTitle?: string;
|
|
15
|
-
};
|
|
16
|
-
declare const FavoriteButton: React.FC<Props>;
|
|
17
|
-
export default FavoriteButton;
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { FavoriteActions } from '../hooks';
|
|
3
|
+
declare type Props = {
|
|
4
|
+
isFavorite: boolean;
|
|
5
|
+
actions: FavoriteActions;
|
|
6
|
+
id: string;
|
|
7
|
+
addFavoriteTooltip?: string;
|
|
8
|
+
removeFavoriteCancelLabel?: string;
|
|
9
|
+
removeFavoriteConfirmLabel?: string;
|
|
10
|
+
removeFavoriteHeader?: string;
|
|
11
|
+
removeFavoriteLabel?: string;
|
|
12
|
+
removeFavoriteTooltip?: string;
|
|
13
|
+
buttonLabel?: string;
|
|
14
|
+
guideTitle?: string;
|
|
15
|
+
};
|
|
16
|
+
declare const FavoriteButton: React.FC<Props>;
|
|
17
|
+
export default FavoriteButton;
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
export declare type Props =
|
|
3
|
-
onFeedback?: (feedback: 'positive' | 'negative') => void;
|
|
4
|
-
positive?: string;
|
|
5
|
-
negative?: string;
|
|
6
|
-
header?: string;
|
|
7
|
-
selected?: 'positive' | 'negative';
|
|
8
|
-
direction?: 'horizontal' | 'vertical';
|
|
9
|
-
}
|
|
10
|
-
declare const _default: React.ForwardRefExoticComponent<Pick<
|
|
11
|
-
export default _default;
|
|
1
|
+
import React from 'react';
|
|
2
|
+
export declare type Props = {
|
|
3
|
+
onFeedback?: (feedback: 'positive' | 'negative') => void;
|
|
4
|
+
positive?: string;
|
|
5
|
+
negative?: string;
|
|
6
|
+
header?: string;
|
|
7
|
+
selected?: 'positive' | 'negative';
|
|
8
|
+
direction?: 'horizontal' | 'vertical';
|
|
9
|
+
} & any;
|
|
10
|
+
declare const _default: React.ForwardRefExoticComponent<Pick<any, string | number | symbol> & React.RefAttributes<HTMLDivElement>>;
|
|
11
|
+
export default _default;
|
|
@@ -1,46 +1,45 @@
|
|
|
1
|
-
import { Guide } from '@telia-ace/knowledge-widget-core';
|
|
2
|
-
import { DispatchAction, ItemRenderer } from '@telia-ace/widget-ui';
|
|
3
|
-
import { Params } from '@telia-ace/widget-utilities';
|
|
4
|
-
import React from 'react';
|
|
5
|
-
import {
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
export default _default;
|
|
1
|
+
import { Guide } from '@telia-ace/knowledge-widget-core';
|
|
2
|
+
import { DispatchAction, ItemRenderer } from '@telia-ace/widget-ui';
|
|
3
|
+
import { Params } from '@telia-ace/widget-utilities';
|
|
4
|
+
import React from 'react';
|
|
5
|
+
import { Props as MetadataProps } from './metadata';
|
|
6
|
+
declare type Routing = {
|
|
7
|
+
guide?: string;
|
|
8
|
+
page?: string;
|
|
9
|
+
};
|
|
10
|
+
declare type ParamMappers = {
|
|
11
|
+
guide?: (guide: Guide) => Params;
|
|
12
|
+
page?: () => Params;
|
|
13
|
+
};
|
|
14
|
+
export declare type Props = {
|
|
15
|
+
paramMappers?: ParamMappers;
|
|
16
|
+
routing?: Routing;
|
|
17
|
+
pageLabel?: string;
|
|
18
|
+
symbolSize?: number;
|
|
19
|
+
renderItem?: ItemRenderer;
|
|
20
|
+
pageRole?: 'link' | 'button';
|
|
21
|
+
pageCaret?: 'right' | 'down';
|
|
22
|
+
showTags?: boolean;
|
|
23
|
+
showFavoriteToggle?: boolean;
|
|
24
|
+
addFavoriteTooltip?: string;
|
|
25
|
+
removeFavoriteCancelLabel?: string;
|
|
26
|
+
removeFavoriteConfirmLabel?: string;
|
|
27
|
+
removeFavoriteHeader?: string;
|
|
28
|
+
removeFavoriteLabel?: string;
|
|
29
|
+
removeFavoriteTooltip?: string;
|
|
30
|
+
metadata?: Partial<MetadataProps>;
|
|
31
|
+
dispatch?: DispatchAction;
|
|
32
|
+
localPaging?: boolean;
|
|
33
|
+
expandable?: boolean;
|
|
34
|
+
onItemClick?: (e: React.MouseEvent, guide: Guide) => void;
|
|
35
|
+
} & any;
|
|
36
|
+
export declare const AccordionListItem: React.ForwardRefExoticComponent<{
|
|
37
|
+
title: string;
|
|
38
|
+
id: string;
|
|
39
|
+
route: string;
|
|
40
|
+
symbolSize?: number | undefined;
|
|
41
|
+
collapseUri?: string | undefined;
|
|
42
|
+
children?: React.ReactNode;
|
|
43
|
+
} & React.RefAttributes<HTMLLIElement>>;
|
|
44
|
+
declare const _default: React.ForwardRefExoticComponent<Pick<any, string | number | symbol> & React.RefAttributes<HTMLDivElement>>;
|
|
45
|
+
export default _default;
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
export { default as DialogLink } from './dialog-link';
|
|
2
|
-
export { default as DialogList } from './dialog-list';
|
|
3
|
-
export { default as DrawerList } from './drawer-list';
|
|
4
|
-
export { default as DropdownActions } from './dropdown-actions';
|
|
5
|
-
export { default as DropdownList } from './dropdown-list';
|
|
6
|
-
export { default as FavoriteButton } from './favorite-button';
|
|
7
|
-
export { default as Feedback } from './feedback';
|
|
8
|
-
export { AccordionListItem, default as GuideList } from './guide-list';
|
|
9
|
-
export { default as Loader, Wrapper as LoaderWrapper } from './loader';
|
|
10
|
-
export { default as Metadata } from './metadata';
|
|
11
|
-
export { default as NotificationList } from './notification-list';
|
|
1
|
+
export { default as DialogLink } from './dialog-link';
|
|
2
|
+
export { default as DialogList } from './dialog-list';
|
|
3
|
+
export { default as DrawerList } from './drawer-list';
|
|
4
|
+
export { default as DropdownActions } from './dropdown-actions';
|
|
5
|
+
export { default as DropdownList } from './dropdown-list';
|
|
6
|
+
export { default as FavoriteButton } from './favorite-button';
|
|
7
|
+
export { default as Feedback } from './feedback';
|
|
8
|
+
export { AccordionListItem, default as GuideList } from './guide-list';
|
|
9
|
+
export { default as Loader, Wrapper as LoaderWrapper } from './loader';
|
|
10
|
+
export { default as Metadata } from './metadata';
|
|
11
|
+
export { default as NotificationList } from './notification-list';
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
declare type Props = {
|
|
3
|
-
loading: boolean | undefined;
|
|
4
|
-
};
|
|
5
|
-
export declare const Wrapper: import("styled-components").StyledComponent<"div", any, {
|
|
6
|
-
'data-loading': boolean;
|
|
7
|
-
}, never>;
|
|
8
|
-
declare const Loader: React.
|
|
9
|
-
export default Loader;
|
|
1
|
+
import React from 'react';
|
|
2
|
+
declare type Props = {
|
|
3
|
+
loading: boolean | undefined;
|
|
4
|
+
};
|
|
5
|
+
export declare const Wrapper: import("styled-components").StyledComponent<"div", any, {
|
|
6
|
+
'data-loading': boolean;
|
|
7
|
+
}, never>;
|
|
8
|
+
declare const Loader: React.FC<Props>;
|
|
9
|
+
export default Loader;
|
|
@@ -1,17 +1,17 @@
|
|
|
1
|
-
import { DateFormats } from '@telia-ace/widget-ui';
|
|
2
|
-
import React from 'react';
|
|
3
|
-
export declare type Props = {
|
|
4
|
-
className?: string;
|
|
5
|
-
modified?: string;
|
|
6
|
-
published?: string;
|
|
7
|
-
modifiedBy?: string | null;
|
|
8
|
-
publishedBy?: string | null;
|
|
9
|
-
showModified?: boolean;
|
|
10
|
-
showPublished?: boolean;
|
|
11
|
-
modifiedLabel?: string;
|
|
12
|
-
publishedLabel?: string;
|
|
13
|
-
byLabel?: string;
|
|
14
|
-
format?: DateFormats;
|
|
15
|
-
};
|
|
16
|
-
declare const Metadata: React.FC<Props>;
|
|
17
|
-
export default Metadata;
|
|
1
|
+
import { DateFormats } from '@telia-ace/widget-ui';
|
|
2
|
+
import React from 'react';
|
|
3
|
+
export declare type Props = {
|
|
4
|
+
className?: string;
|
|
5
|
+
modified?: string;
|
|
6
|
+
published?: string;
|
|
7
|
+
modifiedBy?: string | null;
|
|
8
|
+
publishedBy?: string | null;
|
|
9
|
+
showModified?: boolean;
|
|
10
|
+
showPublished?: boolean;
|
|
11
|
+
modifiedLabel?: string;
|
|
12
|
+
publishedLabel?: string;
|
|
13
|
+
byLabel?: string;
|
|
14
|
+
format?: DateFormats;
|
|
15
|
+
};
|
|
16
|
+
declare const Metadata: React.FC<Props>;
|
|
17
|
+
export default Metadata;
|
|
@@ -1,19 +1,19 @@
|
|
|
1
|
-
import { Notification } from '@telia-ace/knowledge-widget-core';
|
|
2
|
-
import { Symbol } from '@telia-ace/widget-ui';
|
|
3
|
-
import React from 'react';
|
|
4
|
-
declare type Props = {
|
|
5
|
-
className?: string;
|
|
6
|
-
showHeader?: boolean;
|
|
7
|
-
loading: boolean;
|
|
8
|
-
notificationList?: {
|
|
9
|
-
id: string;
|
|
10
|
-
title?: string;
|
|
11
|
-
symbol?: Symbol;
|
|
12
|
-
notifications: Notification[];
|
|
13
|
-
defaultHeaderOptions?: {
|
|
14
|
-
visible: boolean;
|
|
15
|
-
};
|
|
16
|
-
};
|
|
17
|
-
};
|
|
18
|
-
declare const NotificationList: React.FC<Props>;
|
|
19
|
-
export default NotificationList;
|
|
1
|
+
import { Notification } from '@telia-ace/knowledge-widget-core';
|
|
2
|
+
import { Symbol } from '@telia-ace/widget-ui';
|
|
3
|
+
import React from 'react';
|
|
4
|
+
declare type Props = {
|
|
5
|
+
className?: string;
|
|
6
|
+
showHeader?: boolean;
|
|
7
|
+
loading: boolean;
|
|
8
|
+
notificationList?: {
|
|
9
|
+
id: string;
|
|
10
|
+
title?: string;
|
|
11
|
+
symbol?: Symbol;
|
|
12
|
+
notifications: Notification[];
|
|
13
|
+
defaultHeaderOptions?: {
|
|
14
|
+
visible: boolean;
|
|
15
|
+
};
|
|
16
|
+
};
|
|
17
|
+
};
|
|
18
|
+
declare const NotificationList: React.FC<Props>;
|
|
19
|
+
export default NotificationList;
|
package/dist/hooks/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
export { default as useArrowKeys } from './use-arrow-keys';
|
|
2
|
-
export { default as useDebounce } from './use-debounce';
|
|
3
|
-
export { default as useFavorites } from './use-favorites';
|
|
4
|
-
export type { FavoriteActions } from './use-favorites';
|
|
5
|
-
export { default as useHover } from './use-hover';
|
|
1
|
+
export { default as useArrowKeys } from './use-arrow-keys';
|
|
2
|
+
export { default as useDebounce } from './use-debounce';
|
|
3
|
+
export { default as useFavorites } from './use-favorites';
|
|
4
|
+
export type { FavoriteActions } from './use-favorites';
|
|
5
|
+
export { default as useHover } from './use-hover';
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
declare type ArrowKey = 'up' | 'down' | 'left' | 'right';
|
|
2
|
-
declare const useArrowKeys: () => ArrowKey | null;
|
|
3
|
-
export default useArrowKeys;
|
|
1
|
+
declare type ArrowKey = 'up' | 'down' | 'left' | 'right';
|
|
2
|
+
declare const useArrowKeys: () => ArrowKey | null;
|
|
3
|
+
export default useArrowKeys;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
declare const useDebounce: (value: string, delay: number) => string;
|
|
2
|
-
export default useDebounce;
|
|
1
|
+
declare const useDebounce: (value: string, delay: number) => string;
|
|
2
|
+
export default useDebounce;
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
export declare type FavoriteActions = {
|
|
2
|
-
addFavorite: (guideId: string) => Promise<string[]>;
|
|
3
|
-
clearFavorites: () => Promise<string[]>;
|
|
4
|
-
removeFavorite: (guideId: string) => Promise<string[]>;
|
|
5
|
-
toggleFavorite: (guideId: string) => Promise<string[]>;
|
|
6
|
-
};
|
|
7
|
-
declare const useFavorites: () => [string[], FavoriteActions];
|
|
8
|
-
export default useFavorites;
|
|
1
|
+
export declare type FavoriteActions = {
|
|
2
|
+
addFavorite: (guideId: string) => Promise<string[]>;
|
|
3
|
+
clearFavorites: () => Promise<string[]>;
|
|
4
|
+
removeFavorite: (guideId: string) => Promise<string[]>;
|
|
5
|
+
toggleFavorite: (guideId: string) => Promise<string[]>;
|
|
6
|
+
};
|
|
7
|
+
declare const useFavorites: () => [string[], FavoriteActions];
|
|
8
|
+
export default useFavorites;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
declare const _default: () => [boolean, React.MutableRefObject<HTMLElement | undefined>];
|
|
2
|
-
export default _default;
|
|
1
|
+
declare const _default: () => [boolean, React.MutableRefObject<HTMLElement | undefined>];
|
|
2
|
+
export default _default;
|
package/dist/index.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { AccordionListItem, DialogLink, DialogList, DrawerList, DropdownActions, DropdownList, FavoriteButton, Feedback, GuideList, Loader, LoaderWrapper, Metadata, NotificationList } from './components';
|
|
2
|
-
import { FavoriteActions, useArrowKeys, useDebounce, useFavorites, useHover } from './hooks';
|
|
3
|
-
import { loadingOpacity, SmallCaret, StyledHeaderText, StyledListButton } from './styles';
|
|
4
|
-
import { guideRenderInstructions } from './utils';
|
|
5
|
-
export * from '@telia-ace/widget-ui';
|
|
6
|
-
export { useFavorites, useDebounce, useArrowKeys, useHover, guideRenderInstructions, Metadata, NotificationList, AccordionListItem, GuideList, DialogLink, DialogList, FavoriteButton, Feedback, Loader, LoaderWrapper, DrawerList, DropdownActions, DropdownList, SmallCaret, StyledHeaderText, StyledListButton, loadingOpacity, };
|
|
7
|
-
export type { FavoriteActions };
|
|
1
|
+
import { AccordionListItem, DialogLink, DialogList, DrawerList, DropdownActions, DropdownList, FavoriteButton, Feedback, GuideList, Loader, LoaderWrapper, Metadata, NotificationList } from './components';
|
|
2
|
+
import { FavoriteActions, useArrowKeys, useDebounce, useFavorites, useHover } from './hooks';
|
|
3
|
+
import { loadingOpacity, SmallCaret, StyledHeaderText, StyledListButton } from './styles';
|
|
4
|
+
import { guideRenderInstructions } from './utils';
|
|
5
|
+
export * from '@telia-ace/widget-ui';
|
|
6
|
+
export { useFavorites, useDebounce, useArrowKeys, useHover, guideRenderInstructions, Metadata, NotificationList, AccordionListItem, GuideList, DialogLink, DialogList, FavoriteButton, Feedback, Loader, LoaderWrapper, DrawerList, DropdownActions, DropdownList, SmallCaret, StyledHeaderText, StyledListButton, loadingOpacity, };
|
|
7
|
+
export type { FavoriteActions };
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../src/components/dialog-link.tsx","../src/components/dialog-list.tsx","../src/components/drawer-list.tsx","../src/components/dropdown-actions.tsx","../src/components/dropdown-list.tsx","../src/components/loader.tsx","../src/styles.ts","../src/components/favorite-button.tsx","../src/components/feedback.tsx","../src/hooks/use-arrow-keys.ts","../src/hooks/use-debounce.ts","../src/hooks/use-favorites.ts","../src/hooks/use-hover.ts","../src/components/metadata.tsx","../src/components/guide-list.tsx","../src/components/notification-list.tsx","../src/utils/embedded-link-mapper.tsx","../src/utils/guide-render-instructions.tsx"],"sourcesContent":["import { Icon, Link, useRouteData } from '@telia-ace/widget-ui';\r\nimport { appendClassNames, createParams, formatUrl } from '@telia-ace/widget-utilities';\r\nimport React from 'react';\r\nimport { LinkProps } from '../missing-type-exports';\r\n\r\nexport type Props = Merge<\r\n LinkProps,\r\n {\r\n parent: {\r\n id: string;\r\n title: string;\r\n };\r\n type: 'guide' | 'link' | 'default';\r\n connection?: string;\r\n }\r\n>;\r\n\r\nconst DialogLink: React.FC<Props> = ({\r\n title = '',\r\n className,\r\n id,\r\n parent,\r\n connection,\r\n type,\r\n target,\r\n href,\r\n children,\r\n}) => {\r\n const props: any = {};\r\n const { name, params } = useRouteData();\r\n\r\n switch (type) {\r\n case 'default':\r\n case 'guide':\r\n const { id: parentId, title: parentTitle } = parent;\r\n props.routeName = name;\r\n props.params = createParams({\r\n ...params,\r\n guide: id,\r\n connection: id === parentId ? connection : undefined,\r\n uriName: id === parentId ? formatUrl(parentTitle) : formatUrl(title),\r\n });\r\n break;\r\n case 'link':\r\n props.href = href;\r\n props.target = target;\r\n break;\r\n }\r\n\r\n return (\r\n <Link className={appendClassNames(className, 'humany-dialog-link')} {...props}>\r\n {children || (\r\n <>\r\n {type === 'link' && <Icon faIcon=\"link\" />}\r\n <span>{title}</span>\r\n </>\r\n )}\r\n </Link>\r\n );\r\n};\r\n\r\nexport default DialogLink;\r\n","import { invertedHoverButton, List, list } from '@telia-ace/widget-ui';\r\nimport { appendClassNames } from '@telia-ace/widget-utilities';\r\nimport React, { forwardRef } from 'react';\r\nimport styled from 'styled-components';\r\nimport DialogLink, { Props as DialogLinkProps } from './dialog-link';\r\n\r\ntype Props = Merge<\r\n React.ComponentProps<'ul'>,\r\n {\r\n dialog: DialogLinkProps[];\r\n }\r\n>;\r\n\r\nexport default forwardRef<HTMLUListElement, Props>(({ className, dialog, ...other }, ref) => {\r\n return !!dialog.length ? (\r\n <StyledList\r\n className={appendClassNames(className, 'humany-dialog')}\r\n items={dialog}\r\n renderItem={(item: DialogLinkProps) => (\r\n <li key={item.connection} data-dialog={item.connection}>\r\n <DialogLink {...item} />\r\n </li>\r\n )}\r\n {...other}\r\n ref={ref}\r\n />\r\n ) : null;\r\n});\r\n\r\nconst StyledList = styled(List)`\r\n ${list}\r\n a {\r\n min-width: 150px;\r\n max-width: 400px;\r\n display: block;\r\n white-space: normal;\r\n ${(p) =>\r\n invertedHoverButton({\r\n primaryColor: p.theme.colors?.primary,\r\n secondaryColor: '#FFFFFF',\r\n })}\r\n }\r\n\r\n i {\r\n margin: 0 ${(p) => p.theme.sizes?.small} 0 0;\r\n }\r\n`;\r\n","import { Drawer, ItemList, itemList } from '@telia-ace/widget-ui';\r\nimport { appendClassNames } from '@telia-ace/widget-utilities';\r\nimport React from 'react';\r\nimport styled from 'styled-components';\r\nimport { DrawerProps, ItemListProps } from '../missing-type-exports';\r\n\r\ntype Props = Merge<ItemListProps, DrawerProps>;\r\n\r\nconst DrawerList: React.FC<Props> = ({\r\n trigger,\r\n header,\r\n className,\r\n animation,\r\n fullScreen,\r\n onToggle,\r\n children,\r\n ref,\r\n closeButtonAriaLabel,\r\n ...other\r\n}) => {\r\n return (\r\n <Drawer\r\n className={appendClassNames(className, 'humany-drawer-list')}\r\n trigger={trigger}\r\n header={header}\r\n animation={animation}\r\n fullScreen={fullScreen}\r\n onToggle={onToggle}\r\n closeButtonAriaLabel={closeButtonAriaLabel}\r\n >\r\n <StyledItemList {...other}>{children}</StyledItemList>\r\n </Drawer>\r\n );\r\n};\r\n\r\nexport default DrawerList;\r\n\r\nconst StyledItemList = styled(ItemList)<any>`\r\n ${itemList}\r\n font-family: ${(p) => p.theme.fonts?.type};\r\n padding: ${(p) => p.theme.sizes?.medium};\r\n > ul > li {\r\n overflow: visible;\r\n font-weight: 300;\r\n font-size: ${(p) => p.theme.fonts?.normal};\r\n }\r\n`;\r\n","import { Dropdown, ItemRenderer, List } from '@telia-ace/widget-ui';\r\nimport React from 'react';\r\nimport styled from 'styled-components';\r\n\r\ntype Props = {\r\n trigger: React.ReactElement;\r\n header?: React.ReactElement;\r\n items?: any[];\r\n renderItem?: ItemRenderer;\r\n className?: string;\r\n};\r\n\r\nconst DropdownActions: React.FC<Props> = ({ items, renderItem, trigger, header, children }) => {\r\n return (\r\n <Dropdown className=\"humany-dropdown-actions\" trigger={trigger}>\r\n <Wrapper>\r\n {!!header && <Header>{header}</Header>}\r\n {items && renderItem && (\r\n <StyledList items={items} renderItem={renderItem}></StyledList>\r\n )}\r\n {children}\r\n </Wrapper>\r\n </Dropdown>\r\n );\r\n};\r\n\r\nexport default DropdownActions;\r\n\r\nconst Wrapper = styled.div`\r\n background: #fff;\r\n border: #ccc 1px solid;\r\n box-shadow: 0px 0px 10px rgba(0, 0, 0, 0.1);\r\n font-family: ${(p) => p.theme.fonts?.type};\r\n font-size: ${(p) => p.theme.fonts?.normal};\r\n`;\r\n\r\nconst Header = styled.div`\r\n padding: ${(p) => p.theme.sizes.normal};\r\n padding-bottom: 0;\r\n font-size: ${(p) => p.theme.fonts?.normal};\r\n font-weight: normal;\r\n white-space: nowrap;\r\n display: flex;\r\n align-items: center;\r\n\r\n h1,\r\n h2,\r\n h3,\r\n h4,\r\n h5,\r\n h6 {\r\n margin: 0;\r\n font-weight: normal;\r\n padding-bottom: 0;\r\n }\r\n\r\n svg,\r\n i {\r\n margin-right: ${(p) => p.theme.sizes.small};\r\n }\r\n`;\r\n\r\nconst StyledList = styled(List)`\r\n list-style: none;\r\n padding: 0;\r\n margin: 0;\r\n padding: ${(p) => p.theme.sizes.small} 0;\r\n\r\n li {\r\n background: #fff;\r\n\r\n a {\r\n display: block;\r\n font-size: ${(p) => p.theme.fonts?.small};\r\n padding: ${(p) => `${p.theme.sizes?.small} ${p.theme.sizes?.normal}`};\r\n cursor: pointer;\r\n color: #555;\r\n text-decoration: none;\r\n\r\n &:hover {\r\n background: #f9f9f9;\r\n color: ${(p) => p.theme.colors?.primary};\r\n }\r\n }\r\n }\r\n`;\r\n","import { Dropdown, headingElement, ItemList, itemList } from '@telia-ace/widget-ui';\r\nimport { appendClassNames } from '@telia-ace/widget-utilities';\r\nimport React from 'react';\r\nimport styled, { css } from 'styled-components';\r\nimport { DropdownProps, ItemListProps } from '../missing-type-exports';\r\n\r\nexport type Props = Merge<DropdownProps, ItemListProps>;\r\n\r\nconst DropdownList: React.FC<Props> = ({\r\n trigger,\r\n className,\r\n children,\r\n closeButtonAriaLabel,\r\n ...other\r\n}) => {\r\n return (\r\n <Dropdown\r\n className={appendClassNames(className, 'humany-dropdown-list')}\r\n closeButtonAriaLabel={closeButtonAriaLabel}\r\n trigger={trigger}\r\n >\r\n <StyledItemList {...other}>{children}</StyledItemList>\r\n </Dropdown>\r\n );\r\n};\r\n\r\nexport default DropdownList;\r\n\r\nconst StyledItemList = styled(ItemList)<any>`\r\n ${itemList}\r\n font-family: ${(p) => p.theme.fonts?.type};\r\n > div {\r\n ${headingElement(\r\n '> h1',\r\n css`\r\n font-size: ${(p) => p.theme.fonts?.normal};\r\n line-height: 1.2em;\r\n `\r\n )}\r\n }\r\n > ul > li {\r\n overflow: visible;\r\n font-weight: 300;\r\n font-size: ${(p) => p.theme.fonts?.normal};\r\n\r\n a {\r\n display: inline-block;\r\n\r\n @media (hover: hover) {\r\n &:hover {\r\n text-decoration: underline;\r\n }\r\n }\r\n }\r\n }\r\n`;\r\n","import React from 'react';\r\nimport styled, { keyframes } from 'styled-components';\r\n\r\ntype Props = {\r\n loading: boolean | undefined;\r\n};\r\n\r\nconst spin = keyframes`\r\n 100% {\r\n transform: rotate(360deg);\r\n }\r\n`;\r\n\r\nconst dash = keyframes`\r\n 0% {\r\n stroke-dasharray: 1, 200;\r\n stroke-dashoffset: 0;\r\n }\r\n 50% {\r\n stroke-dasharray: 89, 200;\r\n stroke-dashoffset: -35px;\r\n }\r\n 100% {\r\n stroke-dasharray: 89, 200;\r\n stroke-dashoffset: -124px;\r\n }\r\n`;\r\n\r\nconst SpinnerSvg = styled.svg`\r\n animation: ${spin} 2s linear infinite;\r\n height: 100%;\r\n transform-origin: center center;\r\n width: 100%;\r\n position: absolute;\r\n top: 0;\r\n bottom: 0;\r\n left: 0;\r\n right: 0;\r\n margin: auto;\r\n transition: 200ms ease-out opacity;\r\n`;\r\n\r\nexport const Wrapper = styled.div<{ 'data-loading': boolean }>`\r\n position: absolute;\r\n top: 0;\r\n bottom: 0;\r\n left: 0;\r\n right: 0;\r\n height: 100%;\r\n width: 100%;\r\n pointer-events: ${(p) => (p['data-loading'] ? 'all' : 'none')}\r\n display: flex;\r\n flex-direction: column;\r\n justify-content: center;\r\n transition: 200ms ease-out opacity;\r\n box-sizing: border-box;\r\n overflow: hidden;\r\n ${SpinnerSvg} {\r\n opacity: ${(p) => (p['data-loading'] ? '1' : '0')}\r\n }\r\n`;\r\n\r\nconst Spinner = styled.div`\r\n position: relative;\r\n margin: 0 auto;\r\n width: 100px;\r\n &:before {\r\n content: '';\r\n display: block;\r\n padding-top: 100%;\r\n }\r\n`;\r\n\r\nconst SpinnerCircle = styled.circle`\r\n stroke-dasharray: 1, 200;\r\n stroke-dashoffset: 0;\r\n animation: ${dash} 1.5s ease-in-out infinite;\r\n stroke-linecap: round;\r\n stroke: ${(p) => p.theme.colors?.primary};\r\n stroke-width: 2px;\r\n`;\r\n\r\nconst Loader: React.SFC<Props> = ({ loading = false }) => {\r\n return (\r\n <Wrapper className=\"humany-loader\" data-loading={loading}>\r\n <Spinner className=\"humany-spinner\">\r\n <SpinnerSvg viewBox=\"25 25 50 50\">\r\n <SpinnerCircle\r\n cx=\"50\"\r\n cy=\"50\"\r\n r=\"20\"\r\n fill=\"none\"\r\n stroke-width=\"2\"\r\n stroke-miterlimit=\"10\"\r\n />\r\n </SpinnerSvg>\r\n </Spinner>\r\n </Wrapper>\r\n );\r\n};\r\n\r\nexport default Loader;\r\n","import { Button, Icon, paddedBorderTabStyle, Text } from '@telia-ace/widget-ui';\r\nimport styled, { css } from 'styled-components';\r\nimport { Wrapper as LoaderWrapper } from './components/loader';\r\n\r\nexport const loadingOpacity = css<{ 'data-loading': boolean }>`\r\n ${(p) => p['data-loading'] && 'position: relative;'};\r\n ${(p) => p['data-loading'] && 'min-height: 150px;'}\r\n > * {\r\n transition: 200ms ease-out opacity;\r\n opacity: ${(p) => (p['data-loading'] ? '0.5' : '1')};\r\n }\r\n ${LoaderWrapper} {\r\n opacity: ${(p) => (p['data-loading'] ? '1' : '0')};\r\n }\r\n`;\r\n\r\nexport const SmallCaret = styled(Icon)`\r\n && {\r\n font-size: ${(p) => p.theme.fonts?.small};\r\n }\r\n width: 1.2em;\r\n`;\r\n\r\nexport const StyledHeaderText = styled(Text)`\r\n font-size: ${(p) => p.theme.fonts?.medium};\r\n font-weight: normal;\r\n line-height: 1.2em;\r\n color: ${(p) => p.theme.colors?.text};\r\n`;\r\n\r\nexport const StyledListButton = styled(Button)<any>`\r\n display: flex;\r\n align-items: center;\r\n\r\n ${(p: any) =>\r\n p['data-has-label'] === 'true' &&\r\n p['data-has-symbol'] === 'true' &&\r\n `\r\n svg, i {\r\n margin: 0 ${p.theme.sizes?.small} 0 0;\r\n }\r\n `}\r\n\r\n &:focus-visible {\r\n ${(p: any) => p['data-has-label'] === 'true' && paddedBorderTabStyle}\r\n\r\n svg, i {\r\n ${(p: any) =>\r\n p['data-has-label'] === 'false' &&\r\n p['data-has-symbol'] === 'true' &&\r\n css`\r\n ${paddedBorderTabStyle}\r\n box-sizing: content-box;\r\n `}\r\n }\r\n }\r\n\r\n span {\r\n flex: 1;\r\n font-weight: 300;\r\n }\r\n`;\r\n","import { Confirm, StyledText, SymbolBadge } from '@telia-ace/widget-ui';\r\nimport React, { useCallback } from 'react';\r\nimport styled, { css } from 'styled-components';\r\nimport { FavoriteActions } from '../hooks';\r\nimport { StyledListButton } from '../styles';\r\n\r\ntype Props = {\r\n isFavorite: boolean;\r\n actions: FavoriteActions;\r\n id: 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 buttonLabel?: string;\r\n guideTitle?: string;\r\n};\r\n\r\nconst FavoriteButton: React.FC<Props> = ({\r\n addFavoriteTooltip,\r\n removeFavoriteCancelLabel,\r\n removeFavoriteConfirmLabel,\r\n removeFavoriteHeader,\r\n removeFavoriteLabel,\r\n removeFavoriteTooltip,\r\n id,\r\n isFavorite,\r\n guideTitle,\r\n buttonLabel = '',\r\n actions: { addFavorite, removeFavorite },\r\n}) => {\r\n const remove = useCallback(() => {\r\n removeFavorite(id);\r\n }, [id, removeFavorite]);\r\n\r\n const add = useCallback(() => {\r\n addFavorite(id);\r\n }, [id, addFavorite]);\r\n\r\n const tooltip = `${isFavorite ? removeFavoriteTooltip : addFavoriteTooltip}${\r\n guideTitle ? `: \"${guideTitle}\"` : ''\r\n }`;\r\n\r\n return (\r\n <>\r\n {isFavorite ? (\r\n <Confirm\r\n trigger={\r\n <StyledButton\r\n className=\"humany-favorite-button\"\r\n title={tooltip}\r\n aria-label={tooltip}\r\n data-favorite=\"true\"\r\n data-has-label={buttonLabel ? 'true' : 'false'}\r\n data-has-symbol=\"true\"\r\n >\r\n <SymbolBadge\r\n size={16}\r\n symbol={{ type: 'Svg', content: 'star-empty' }}\r\n />\r\n {buttonLabel && <StyledText>{buttonLabel}</StyledText>}\r\n </StyledButton>\r\n }\r\n onConfirm={remove}\r\n cancelLabel={removeFavoriteCancelLabel}\r\n confirmLabel={removeFavoriteConfirmLabel}\r\n header={removeFavoriteHeader}\r\n text={removeFavoriteLabel}\r\n />\r\n ) : (\r\n <StyledButton\r\n className=\"humany-favorite-button\"\r\n title={tooltip}\r\n aria-label={tooltip}\r\n onClick={add}\r\n data-favorite=\"false\"\r\n data-has-label={buttonLabel ? 'true' : 'false'}\r\n data-has-symbol=\"true\"\r\n >\r\n <SymbolBadge size={16} symbol={{ type: 'Svg', content: 'star-empty' }} />\r\n {buttonLabel && <StyledText>{buttonLabel}</StyledText>}\r\n </StyledButton>\r\n )}\r\n </>\r\n );\r\n};\r\n\r\nexport default FavoriteButton;\r\n\r\nconst StyledButton = styled(StyledListButton)<any>`\r\n grid-area: favorite;\r\n\r\n &:focus-visible {\r\n svg {\r\n ${(p: any) =>\r\n p['data-favorite'] === 'true'\r\n ? `\r\n fill: transparent;\r\n\r\n path {\r\n fill: transparent;\r\n }\r\n `\r\n : `\r\n fill: ${p.theme.colors?.text};\r\n\r\n path {\r\n fill: ${p.theme.colors?.text};\r\n }\r\n `}\r\n }\r\n }\r\n\r\n ${(p: any) =>\r\n p.theme.colors?.text &&\r\n css`\r\n svg {\r\n stroke: ${p.theme.colors?.text};\r\n\r\n path {\r\n stroke: ${p.theme.colors?.text};\r\n }\r\n\r\n ${p['data-favorite'] === 'true' &&\r\n `\r\n fill: ${p.theme.colors?.text};\r\n\r\n path {\r\n fill: ${p.theme.colors?.text};\r\n }\r\n `}\r\n }\r\n\r\n &:hover {\r\n svg {\r\n ${p['data-favorite'] === 'true'\r\n ? `\r\n fill: transparent;\r\n\r\n path {\r\n fill: transparent;\r\n }\r\n `\r\n : `\r\n fill: ${p.theme.colors?.text};\r\n\r\n path {\r\n fill: ${p.theme.colors?.text};\r\n }\r\n `}\r\n }\r\n }\r\n `}\r\n`;\r\n","import {\r\n Button,\r\n convertToStringAttributes,\r\n Icon,\r\n invertedHoverButton,\r\n StyledText,\r\n} from '@telia-ace/widget-ui';\r\nimport { appendClassNames } from '@telia-ace/widget-utilities';\r\nimport React, { forwardRef } from 'react';\r\nimport styled, { css } from 'styled-components';\r\n\r\nexport type Props = Merge<\r\n React.ComponentProps<'div'>,\r\n {\r\n onFeedback?: (feedback: 'positive' | 'negative') => void;\r\n positive?: string;\r\n negative?: string;\r\n header?: string;\r\n selected?: 'positive' | 'negative';\r\n direction?: 'horizontal' | 'vertical';\r\n }\r\n>;\r\n\r\nexport default forwardRef<HTMLDivElement, Props>(\r\n (\r\n {\r\n onFeedback = () => {},\r\n direction = 'horizontal',\r\n className,\r\n header,\r\n positive,\r\n negative,\r\n selected,\r\n ...other\r\n },\r\n ref\r\n ) => {\r\n return (\r\n <Wrapper\r\n className={appendClassNames(className, 'humany-feedback')}\r\n data-direction={direction}\r\n {...convertToStringAttributes(other)}\r\n ref={ref}\r\n >\r\n {!!header && <Header>{header}</Header>}\r\n <FeedbackButton\r\n className=\"humany-feedback-button\"\r\n disabled={!!selected}\r\n aria-pressed={selected === 'positive'}\r\n data-selected={selected === 'positive'}\r\n data-direction={direction}\r\n onClick={() => onFeedback('positive')}\r\n >\r\n <Icon faIcon=\"smile-o\" />\r\n <span>{positive}</span>\r\n </FeedbackButton>\r\n <FeedbackButton\r\n className=\"humany-feedback-button\"\r\n disabled={!!selected}\r\n aria-pressed={selected === 'negative'}\r\n data-selected={selected === 'negative'}\r\n data-direction={direction}\r\n onClick={() => onFeedback('negative')}\r\n >\r\n <Icon faIcon=\"frown-o\" />\r\n <span>{negative}</span>\r\n </FeedbackButton>\r\n </Wrapper>\r\n );\r\n }\r\n);\r\n\r\nconst Header = styled(StyledText)`\r\n font-weight: normal;\r\n margin: 0 0 ${(p) => p.theme.sizes?.normal};\r\n font-size: ${(p) => p.theme.fonts?.normal};\r\n display: block;\r\n`;\r\n\r\nconst FeedbackButton = styled(Button)<{\r\n 'data-selected': boolean;\r\n 'data-direction': 'horizontal' | 'vertical';\r\n}>`\r\n display: inline-block;\r\n font-size: ${(p) => p.theme.fonts?.normal};\r\n font-weight: 300;\r\n && {\r\n margin-right: ${(p) => p.theme.sizes?.large};\r\n }\r\n\r\n ${(p) =>\r\n p['data-direction'] === 'horizontal' &&\r\n css`\r\n width: 225px;\r\n max-width: calc(50% - ${p.theme.sizes?.large} - ${p.theme.sizes?.small});\r\n `}\r\n\r\n ${(p) =>\r\n p['data-direction'] === 'vertical' &&\r\n css`\r\n min-width: 190px;\r\n `}\r\n\r\n ${(p) =>\r\n invertedHoverButton({\r\n active: p['data-selected'],\r\n primaryColor: p.theme.colors?.primary,\r\n secondaryColor: '#FFFFFF',\r\n })}\r\n\r\n i {\r\n margin: 0 ${(p) => p.theme.sizes?.small} 0 0;\r\n }\r\n`;\r\n\r\nconst Wrapper = styled.div<{ 'data-direction': 'horizontal' | 'vertical' } & any>`\r\n ${(p) =>\r\n p['data-direction'] === 'vertical' &&\r\n css`\r\n > button {\r\n width: 100%;\r\n &:not(:last-child) {\r\n margin-bottom: ${(p) => p.theme.sizes?.normal};\r\n }\r\n }\r\n `}\r\n`;\r\n","import { useKeyPress } from '@telia-ace/widget-ui';\r\nimport { useEffect, useState } from 'react';\r\n\r\ntype ArrowKey = 'up' | 'down' | 'left' | 'right';\r\n\r\nconst useArrowKeys = (): ArrowKey | null => {\r\n // State for keeping track of whether key is pressed\r\n const [keyPressed, setKeyPressed] = useState<ArrowKey | null>(null);\r\n\r\n const left = useKeyPress('ArrowLeft');\r\n const right = useKeyPress('ArrowRight');\r\n const up = useKeyPress('ArrowUp');\r\n const down = useKeyPress('ArrowDown');\r\n\r\n const effect = () => {\r\n if (left) {\r\n setKeyPressed('left');\r\n } else if (right) {\r\n setKeyPressed('right');\r\n } else if (up) {\r\n setKeyPressed('up');\r\n } else if (down) {\r\n setKeyPressed('down');\r\n } else {\r\n setKeyPressed(null);\r\n }\r\n };\r\n\r\n useEffect(effect, [left, right, up, down]);\r\n\r\n return keyPressed;\r\n};\r\n\r\nexport default useArrowKeys;\r\n","import { useCallback, useEffect, useState } from 'react';\r\n\r\nconst useDebounce = (value: string, delay: number) => {\r\n // State and setters for debounced value\r\n const [debouncedValue, setDebouncedValue] = useState(value);\r\n\r\n const handler = useCallback(() => {\r\n // Update debounced value after delay\r\n return setTimeout(() => {\r\n setDebouncedValue(value);\r\n }, delay);\r\n }, [delay, setDebouncedValue, value]);\r\n\r\n useEffect(\r\n () => {\r\n const timeout = handler();\r\n\r\n // Cancel the timeout if value changes (also on delay change or unmount)\r\n // This is how we prevent debounced value from updating if value is changed\r\n // within the delay period. Timeout gets cleared and restarted.\r\n return () => {\r\n clearTimeout(timeout);\r\n };\r\n },\r\n [handler] // Only re-call effect if value or delay changes\r\n );\r\n\r\n return debouncedValue;\r\n};\r\n\r\nexport default useDebounce;\r\n","import { Widget } from '@telia-ace/knowledge-widget-core';\r\nimport { useContainer } from '@telia-ace/widget-ui';\r\nimport { useCallback, useEffect, useMemo, useState } from 'react';\r\n\r\nexport type FavoriteActions = {\r\n addFavorite: (guideId: string) => Promise<string[]>;\r\n clearFavorites: () => Promise<string[]>;\r\n removeFavorite: (guideId: string) => Promise<string[]>;\r\n toggleFavorite: (guideId: string) => Promise<string[]>;\r\n};\r\n\r\nconst useFavorites = (): [string[], FavoriteActions] => {\r\n const container = useContainer();\r\n const [favorites, setFavorites] = useState<string[]>([]);\r\n const platform = container.get('favorites');\r\n\r\n useEffect(() => {\r\n if (platform) {\r\n setFavorites(platform.get());\r\n\r\n const { events } = container.get('$widget') as Widget;\r\n const unsubscribe = events.subscribe('widget:favorites-updated', (_, { updated }) => {\r\n setFavorites([...updated]);\r\n });\r\n\r\n return unsubscribe;\r\n }\r\n }, []);\r\n\r\n const add = (guideId: string): Promise<string[]> => {\r\n if (!platform) {\r\n return Promise.resolve([]);\r\n }\r\n return platform.add(guideId);\r\n };\r\n\r\n const remove = (guideId: string) => {\r\n if (!platform) {\r\n return Promise.resolve([]);\r\n }\r\n return platform.remove(guideId);\r\n };\r\n\r\n const clear = () => {\r\n if (!platform) {\r\n return Promise.resolve([]);\r\n }\r\n return platform.clear();\r\n };\r\n\r\n const toggle = useCallback(\r\n (guideId: string) => {\r\n if (favorites.indexOf(guideId) > -1) {\r\n return remove(guideId);\r\n } else {\r\n return add(guideId);\r\n }\r\n },\r\n [favorites]\r\n );\r\n\r\n return [\r\n favorites,\r\n useMemo(\r\n () => ({\r\n addFavorite: add,\r\n removeFavorite: remove,\r\n clearFavorites: clear,\r\n toggleFavorite: toggle,\r\n }),\r\n [favorites]\r\n ),\r\n ];\r\n};\r\n\r\nexport default useFavorites;\r\n","import { useEventListener } from '@telia-ace/widget-ui';\r\nimport { useCallback, useRef, useState } from 'react';\r\n\r\nexport default (): [boolean, React.MutableRefObject<HTMLElement | undefined>] => {\r\n const [hovering, setHovering] = useState(false);\r\n const elem = useRef<HTMLElement>();\r\n\r\n const onMouseEnter = useCallback(() => setHovering(true), [setHovering]);\r\n\r\n const onMouseLeave = useCallback(() => setHovering(false), [setHovering]);\r\n\r\n useEventListener('mouseenter', onMouseEnter, elem.current);\r\n\r\n useEventListener('mouseleave', onMouseLeave, elem.current);\r\n\r\n return [hovering, elem];\r\n};\r\n","import { DateFormats, Text, Timestamp } from '@telia-ace/widget-ui';\r\nimport { appendClassNames } from '@telia-ace/widget-utilities';\r\nimport React from 'react';\r\nimport styled from 'styled-components';\r\n\r\nexport type Props = {\r\n className?: string;\r\n modified?: string;\r\n published?: string;\r\n modifiedBy?: string | null;\r\n publishedBy?: string | null;\r\n showModified?: boolean;\r\n showPublished?: boolean;\r\n modifiedLabel?: string;\r\n publishedLabel?: string;\r\n byLabel?: string;\r\n format?: DateFormats;\r\n};\r\n\r\nconst Metadata: React.FC<Props> = ({\r\n format = DateFormats.YYYY_MM_DD_HH_MM,\r\n className = '',\r\n byLabel = '',\r\n modifiedLabel = '',\r\n publishedLabel = '',\r\n modifiedBy = '',\r\n publishedBy = '',\r\n showModified = false,\r\n showPublished = false,\r\n modified,\r\n published,\r\n}) => {\r\n const publishedTimestamp =\r\n showPublished && published ? (\r\n <StyledTimestamp format={format} timestamp={published} />\r\n ) : null;\r\n const modifiedTimestamp =\r\n showModified && modified ? <StyledTimestamp format={format} timestamp={modified} /> : null;\r\n\r\n if (!publishedTimestamp && !modifiedTimestamp) {\r\n return null;\r\n }\r\n\r\n return (\r\n <StyledText className={appendClassNames(className, 'humany-metadata')}>\r\n {publishedTimestamp && (\r\n <StyledText className=\"humany-published\">\r\n {publishedLabel}\r\n {publishedTimestamp}\r\n {byLabel && publishedBy && ` ${byLabel.replace('{{editor}}', publishedBy)}`}\r\n </StyledText>\r\n )}\r\n {modifiedTimestamp && (\r\n <StyledText className=\"humany-modified\">\r\n {publishedTimestamp && ', '}\r\n {modifiedLabel}\r\n {modifiedTimestamp}\r\n {byLabel && modifiedBy && ` ${byLabel.replace('{{editor}}', modifiedBy)}`}\r\n </StyledText>\r\n )}\r\n </StyledText>\r\n );\r\n};\r\n\r\nexport default Metadata;\r\n\r\nconst StyledTimestamp = styled(Timestamp)`\r\n &:not(:first-child) {\r\n margin-left: 4px;\r\n }\r\n &:not(:last-child) {\r\n margin-right: 4px;\r\n }\r\n`;\r\n\r\nconst StyledText = styled(Text)`\r\n font-style: italic;\r\n`;\r\n","import { Guide, Symbol, Tag } from '@telia-ace/knowledge-widget-core';\r\nimport {\r\n borderTabStyle,\r\n convertToStringAttributes,\r\n DispatchAction,\r\n headingElement,\r\n ItemList,\r\n itemList,\r\n ItemRenderer,\r\n List,\r\n list,\r\n SymbolBadge,\r\n TextLink,\r\n useIsTabbing,\r\n usePrevious,\r\n useRouteData,\r\n} from '@telia-ace/widget-ui';\r\nimport {\r\n appendClassNames,\r\n createParams,\r\n htmlParentContains,\r\n Params,\r\n} from '@telia-ace/widget-utilities';\r\nimport React, { forwardRef, useCallback, useEffect, useImperativeHandle, useRef } from 'react';\r\nimport styled, { css } from 'styled-components';\r\nimport { useFavorites } from '../hooks';\r\nimport { ItemListProps } from '../missing-type-exports';\r\nimport FavoriteButton from './favorite-button';\r\nimport Metadata, { Props as MetadataProps } from './metadata';\r\n\r\ntype Routing = {\r\n guide?: string;\r\n page?: string;\r\n};\r\n\r\ntype ParamMappers = {\r\n guide?: (guide: Guide) => Params;\r\n page?: () => Params;\r\n};\r\n\r\nexport type Props = Merge<\r\n ItemListProps,\r\n {\r\n paramMappers?: ParamMappers;\r\n routing?: Routing;\r\n pageLabel?: string;\r\n symbolSize?: number;\r\n renderItem?: ItemRenderer;\r\n pageRole?: 'link' | 'button';\r\n pageCaret?: 'right' | 'down';\r\n showTags?: boolean;\r\n showFavoriteToggle?: boolean;\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 metadata?: Partial<MetadataProps>;\r\n dispatch?: DispatchAction;\r\n localPaging?: boolean;\r\n expandable?: boolean;\r\n onItemClick?: (e: React.MouseEvent, guide: Guide) => void;\r\n }\r\n>;\r\n\r\nconst Tags: React.FC<{ tags: Tag[] }> = ({ tags }) => {\r\n if (!tags.filter((t) => t.symbol).length) {\r\n return null;\r\n }\r\n\r\n return (\r\n <StyledTagList\r\n className=\"humany-guide-list-tags\"\r\n items={tags}\r\n renderItem={({ id, symbol, title }: Tag) =>\r\n symbol && (\r\n <li key={id} data-tag={id}>\r\n <StyledTagIcon size={18} symbol={symbol} title={title} />\r\n </li>\r\n )\r\n }\r\n />\r\n );\r\n};\r\n\r\nexport const AccordionListItem = forwardRef<\r\n HTMLLIElement,\r\n {\r\n title: string;\r\n id: string;\r\n route: string;\r\n symbolSize?: number;\r\n collapseUri?: string;\r\n children?: React.ReactNode;\r\n }\r\n>(({ title, id, route, symbolSize, collapseUri, children }, ref) => {\r\n const { params } = useRouteData();\r\n\r\n return (\r\n <ActiveAccordionListItem ref={ref} data-guide={id}>\r\n <TextLink\r\n title={title}\r\n aria-label={title}\r\n routeName={route}\r\n params={createParams({\r\n ...params,\r\n uriName: collapseUri ? collapseUri : undefined,\r\n id: undefined,\r\n guide: undefined,\r\n accordion: undefined,\r\n })}\r\n text={title}\r\n >\r\n <SymbolBadge size={symbolSize} symbol={{ type: 'Svg', content: 'caret-up' }} />\r\n </TextLink>\r\n {children}\r\n </ActiveAccordionListItem>\r\n );\r\n});\r\n\r\nconst ActiveAccordionListItem = styled.li`\r\n > a { \r\n grid-column: 1 / -1\r\n font-weight: bold;\r\n margin: 0 0 ${(p) => p.theme.sizes?.normal} 0;\r\n }\r\n\r\n > div {\r\n grid-column: 1 / -1\r\n }\r\n`;\r\n\r\nexport default forwardRef<HTMLDivElement, Props>(\r\n (\r\n {\r\n expandable = false,\r\n routing = {},\r\n paramMappers = {},\r\n symbolSize = 11,\r\n pageRole = 'link',\r\n pageCaret = 'down',\r\n showTags = false,\r\n showFavoriteToggle = false,\r\n localPaging = false,\r\n onItemClick = () => {},\r\n dispatch = () => {},\r\n metadata = {},\r\n pageLabel,\r\n className,\r\n children,\r\n items,\r\n renderItem,\r\n addFavoriteTooltip,\r\n removeFavoriteCancelLabel,\r\n removeFavoriteConfirmLabel,\r\n removeFavoriteHeader,\r\n removeFavoriteLabel,\r\n removeFavoriteTooltip,\r\n ...other\r\n },\r\n ref\r\n ) => {\r\n const isTabbing = useIsTabbing();\r\n const innerRef = useRef() as React.MutableRefObject<HTMLElement>;\r\n const prevItems = usePrevious(items);\r\n const { guide: guideRoute = 'guide', page: pageRoute = 'index' } = routing;\r\n const {\r\n guide: mapGuideParams = ({ id }: Guide) => createParams({ guide: id }),\r\n page: mapPageParams = () => createParams(),\r\n } = paramMappers;\r\n const [favorites, actions] = useFavorites();\r\n\r\n useImperativeHandle(ref, () => innerRef.current as any);\r\n\r\n const defaultRenderer: ItemRenderer = (guide: Guide) => {\r\n const { id, title, tags, published, modified, publishedBy, modifiedBy } = guide;\r\n\r\n return (\r\n <li\r\n key={id}\r\n data-guide={id}\r\n has-metadata={(\r\n (!!metadata?.showPublished && !!published) ||\r\n (!!metadata?.showModified && !!modified)\r\n ).toString()}\r\n >\r\n <TextLink\r\n className=\"humany-guide-link\"\r\n title={title}\r\n aria-label={title}\r\n routeName={guideRoute}\r\n onClick={(e: React.MouseEvent) => onItemClick(e, guide)}\r\n params={mapGuideParams(guide)}\r\n text={title}\r\n >\r\n <SymbolBadge\r\n size={symbolSize}\r\n symbol={{\r\n type: 'Svg',\r\n content: expandable ? 'caret-down' : 'caret-right',\r\n }}\r\n />\r\n </TextLink>\r\n {showFavoriteToggle && (\r\n <FavoriteButton\r\n guideTitle={title}\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 isFavorite={favorites.indexOf(id) > -1}\r\n actions={actions}\r\n id={id}\r\n />\r\n )}\r\n {showTags && <Tags tags={tags} />}\r\n <StyledMetadata\r\n {...metadata}\r\n indent={expandable ? undefined : symbolSize}\r\n modified={modified}\r\n published={published}\r\n publishedBy={publishedBy}\r\n modifiedBy={modifiedBy}\r\n />\r\n </li>\r\n );\r\n };\r\n\r\n const renderer = useCallback(\r\n (guide: Guide, index: number, items: Guide[]) => {\r\n if (renderItem) {\r\n return renderItem(guide, index, items, defaultRenderer);\r\n }\r\n\r\n return defaultRenderer(guide, index, items);\r\n },\r\n [renderItem, defaultRenderer]\r\n );\r\n\r\n const onPageClick = useCallback(\r\n (e: React.MouseEvent) => {\r\n if (localPaging) {\r\n e.preventDefault();\r\n dispatch('page', mapPageParams());\r\n }\r\n },\r\n [dispatch, localPaging]\r\n );\r\n\r\n useEffect(() => {\r\n if (isTabbing && prevItems && prevItems.length < items.length && innerRef.current) {\r\n const elements = innerRef.current.querySelectorAll('.humany-guide-list > ul > li');\r\n const listItemElem = elements[prevItems.length] as HTMLElement;\r\n\r\n if (elements.length === items.length && prevItems.length) {\r\n const nextListItem = elements[prevItems.length] as HTMLElement;\r\n\r\n if (nextListItem) {\r\n const focusNext = nextListItem.querySelector(\r\n '.humany-guide-link'\r\n ) as HTMLElement | null;\r\n focusNext && focusNext.focus();\r\n }\r\n } else if (listItemElem) {\r\n const observer = new MutationObserver((mutations, observer) => {\r\n mutations.forEach((mutation) => {\r\n if (mutation.addedNodes) {\r\n const found = Array.from(\r\n mutation.addedNodes as NodeListOf<HTMLElement>\r\n ).find((node) => node.tagName === 'A');\r\n\r\n if (\r\n found &&\r\n htmlParentContains(innerRef.current, document.activeElement)\r\n ) {\r\n isTabbing && found.focus();\r\n observer.disconnect();\r\n }\r\n }\r\n });\r\n });\r\n\r\n observer.observe(listItemElem, {\r\n attributes: false,\r\n characterData: false,\r\n childList: true,\r\n subtree: true,\r\n attributeOldValue: false,\r\n characterDataOldValue: false,\r\n });\r\n }\r\n }\r\n });\r\n\r\n const hasMetaData = !!Object.keys(metadata).filter(\r\n (k) => typeof (metadata as any)[k] !== 'undefined'\r\n ).length;\r\n return (\r\n <StyledItemList\r\n className={appendClassNames(className, 'humany-guide-list')}\r\n data-item-count={items.length}\r\n items={items}\r\n renderItem={renderer}\r\n isTabbing={isTabbing}\r\n expandable={expandable ? 'true' : 'false'}\r\n grid-items={showTags || showFavoriteToggle || hasMetaData ? 'true' : 'false'}\r\n {...convertToStringAttributes(other)}\r\n ref={innerRef as React.Ref<HTMLDivElement>}\r\n >\r\n {pageLabel ? (\r\n <TextLink\r\n text={pageLabel}\r\n title={pageLabel}\r\n aria-label={pageLabel}\r\n routeName={pageRoute}\r\n role={pageRole}\r\n params={mapPageParams()}\r\n onClick={onPageClick}\r\n >\r\n <SymbolBadge\r\n size={symbolSize}\r\n symbol={{ type: 'Svg', content: `caret-${pageCaret}` }}\r\n />\r\n </TextLink>\r\n ) : null}\r\n {children}\r\n </StyledItemList>\r\n );\r\n }\r\n);\r\n\r\nconst StyledItemList = styled(ItemList)<{\r\n 'grid-items': 'true' | 'false';\r\n expandable: 'true' | 'false';\r\n isTabbing: boolean;\r\n}>`\r\n ${itemList}\r\n padding: ${(p) => p.theme.sizes?.large};\r\n overflow: auto;\r\n justify-content: flex-start;\r\n white-space: nowrap;\r\n font-weight: 300;\r\n text-decoration: none;\r\n\r\n > div {\r\n ${headingElement(\r\n '> h1',\r\n css`\r\n white-space: pre-wrap;\r\n `\r\n )}\r\n }\r\n\r\n > ul > li {\r\n ${(p) =>\r\n p['grid-items'] === 'true' &&\r\n css`\r\n display: grid;\r\n grid-template-columns: auto 1fr 1fr;\r\n gap: 0px 0px;\r\n grid-template-areas: '. favorite tags';\r\n align-items: center;\r\n\r\n > button {\r\n margin: 0 0 0 ${(p) => p.theme.sizes?.small};\r\n\r\n &[data-favorite='false'] {\r\n ${(p) => (p.isTabbing ? 'opacity: 0;' : 'display: none;')};\r\n &:focus {\r\n opacity: 1;\r\n }\r\n }\r\n }\r\n\r\n > span {\r\n font-size: ${(p) => p.theme.fonts?.small};\r\n }\r\n\r\n &:hover {\r\n button[data-favorite='false'] {\r\n display: flex;\r\n justify-self: flex-start;\r\n }\r\n }\r\n\r\n &[has-metadata='true'] {\r\n grid-template-rows: 1fr 1fr;\r\n grid-template-areas:\r\n '. favorite tags'\r\n 'metadata metadata metadata';\r\n }\r\n `}\r\n > a {\r\n color: ${(p) => p.theme.colors?.primary};\r\n overflow: hidden;\r\n text-overflow: ellipsis;\r\n max-width: 100%;\r\n display: inline-block;\r\n\r\n svg {\r\n margin: 0 calc(${(p) => p.theme.sizes?.small}*2) 0 0;\r\n line {\r\n stroke: ${(p) => p.theme.colors?.primary};\r\n }\r\n }\r\n\r\n ${(p) =>\r\n p.expandable === 'true' &&\r\n css`\r\n display: flex;\r\n flex-direction: row-reverse;\r\n justify-content: flex-end;\r\n align-items: center;\r\n\r\n span {\r\n overflow: hidden;\r\n text-overflow: ellipsis;\r\n }\r\n\r\n svg {\r\n margin: 0 0 0 ${(p) => p.theme.sizes?.small};\r\n }\r\n `}\r\n\r\n &:focus-visible {\r\n ${borderTabStyle}\r\n text-decoration: underline;\r\n }\r\n\r\n @media (hover: hover) {\r\n &:hover {\r\n text-decoration: underline;\r\n }\r\n }\r\n }\r\n }\r\n\r\n > a {\r\n color: ${(p) => p.theme.colors?.text};\r\n margin: ${(p) => p.theme.sizes?.normal} 0 0;\r\n align-self: flex-start;\r\n align-items: center;\r\n display: flex;\r\n\r\n span {\r\n text-decoration: underline;\r\n }\r\n\r\n svg {\r\n margin: 0 calc(${(p) => p.theme.sizes?.small}*2) 0 0;\r\n line {\r\n stroke: ${(p) => p.theme.colors?.text};\r\n }\r\n }\r\n\r\n &:focus-visible {\r\n ${borderTabStyle}\r\n text-decoration: underline;\r\n }\r\n }\r\n`;\r\n\r\nconst StyledTagList = styled(List)`\r\n ${list}\r\n display: flex;\r\n margin: 0 0 0 auto;\r\n grid-area: tags;\r\n\r\n li,\r\n li:last-child {\r\n margin: 0 0 0 ${(p) => p.theme.sizes?.small};\r\n display: flex;\r\n align-items: center;\r\n justify-content: space-between;\r\n }\r\n`;\r\n\r\nconst StyledTagIcon = styled(SymbolBadge)<{ size: number; symbol: Symbol }>`\r\n display: block;\r\n color: ${(p) => p.theme.colors?.primary};\r\n ${(p: any) => {\r\n if (p.symbol.type === 'Uri') {\r\n return `\r\n width: ${p.size}px;\r\n height: ${p.size}px;\r\n `;\r\n }\r\n\r\n if (p.symbol.type === 'FontAwesome') {\r\n return `\r\n font-size: ${p.size}px;\r\n `;\r\n }\r\n }}\r\n`;\r\n\r\nconst StyledMetadata = styled(Metadata)<{ indent?: number }>`\r\n grid-area: metadata;\r\n text-overflow: ellipsis;\r\n overflow: hidden;\r\n font-size: ${(p) => p.theme.fonts?.small};\r\n ${(p) =>\r\n typeof p.indent === 'number' &&\r\n `text-indent: calc(${p.theme.sizes?.small} * 2 + ${p.indent}px);`}\r\n`;\r\n","import { Notification } from '@telia-ace/knowledge-widget-core';\r\nimport {\r\n borderTabStyle,\r\n Button,\r\n DateFormats,\r\n genericHtml,\r\n headingElement,\r\n itemList,\r\n ItemList,\r\n Paragraph,\r\n Symbol,\r\n SymbolBadge,\r\n Timestamp,\r\n} from '@telia-ace/widget-ui';\r\nimport { appendClassNames } from '@telia-ace/widget-utilities';\r\nimport React, { useState } from 'react';\r\nimport styled, { css } from 'styled-components';\r\nimport { loadingOpacity } from '../styles';\r\nimport Loader from './loader';\r\n\r\ntype Props = {\r\n className?: string;\r\n showHeader?: boolean;\r\n loading: boolean;\r\n notificationList?: {\r\n id: string;\r\n title?: string;\r\n symbol?: Symbol;\r\n notifications: Notification[];\r\n defaultHeaderOptions?: {\r\n visible: boolean;\r\n };\r\n };\r\n};\r\n\r\nconst NotificationList: React.FC<Props> = ({\r\n className,\r\n showHeader,\r\n notificationList,\r\n loading,\r\n ...other\r\n}) => {\r\n const [expanded, setExpanded] = useState<string | null>(null);\r\n\r\n const {\r\n id,\r\n title,\r\n symbol,\r\n notifications = [],\r\n defaultHeaderOptions = { visible: true },\r\n } = notificationList || {};\r\n\r\n if (!notifications.length && !loading) {\r\n return null;\r\n }\r\n\r\n return (\r\n <StyledItemList\r\n {...other}\r\n data-loading={loading}\r\n data-show-header={\r\n typeof showHeader === 'boolean' ? showHeader : defaultHeaderOptions.visible\r\n }\r\n className={appendClassNames(className, 'humany-notification-list')}\r\n data-notification-category={id}\r\n header={title}\r\n symbol={symbol}\r\n items={notifications}\r\n renderItem={({ id, title, body, modified, expandable }: Notification) => (\r\n <StyledItem\r\n key={id}\r\n data-notification={id}\r\n data-expanded={expandable ? expanded === id : true}\r\n >\r\n {expandable ? (\r\n <>\r\n <StyledButton\r\n title={title}\r\n aria-label={title}\r\n aria-expanded={expanded === id}\r\n onClick={() => setExpanded(expanded === id ? null : id)}\r\n >\r\n <span>{title}</span>\r\n <StyledSymbolBadge\r\n size={11}\r\n symbol={{\r\n type: 'Svg',\r\n content: `caret-${expanded === id ? 'up' : 'down'}`,\r\n }}\r\n />\r\n </StyledButton>\r\n <StyledParagraph html={body} />\r\n {modified && (\r\n <StyledTimestamp\r\n format={DateFormats.YYYY_MM_DD}\r\n timestamp={modified}\r\n />\r\n )}\r\n </>\r\n ) : (\r\n <StyledParagraph html={body} />\r\n )}\r\n </StyledItem>\r\n )}\r\n >\r\n <Loader loading={loading} />\r\n </StyledItemList>\r\n );\r\n};\r\n\r\nconst StyledButton = styled(Button)`\r\n display: flex;\r\n justify-content: space-between;\r\n align-items: center;\r\n width: 100%;\r\n text-align: left;\r\n svg,\r\n i {\r\n color: ${(p) => p.theme.colors?.primary};\r\n }\r\n span {\r\n color: ${(p) => p.theme.colors?.text};\r\n font-size: ${(p) => p.theme.fonts?.normal};\r\n overflow: hidden;\r\n text-overflow: ellipsis;\r\n flex: 1;\r\n white-space: nowrap;\r\n }\r\n &:focus-visible {\r\n ${borderTabStyle}\r\n span {\r\n color: ${(p) => p.theme.colors?.primary};\r\n text-decoration: underline;\r\n }\r\n }\r\n`;\r\n\r\nconst StyledItemList = styled(ItemList)<\r\n {\r\n 'data-loading': boolean;\r\n 'data-show-header': boolean;\r\n } & any\r\n>`\r\n ${loadingOpacity}\r\n ${itemList}\r\n overflow: hidden;\r\n justify-content: flex-start;\r\n padding: ${(p) => p.theme.sizes?.large};\r\n ${(p) =>\r\n !p['data-show-header'] &&\r\n css`\r\n > div {\r\n ${headingElement(\r\n 'h1',\r\n css`\r\n display: none;\r\n `\r\n )}\r\n }\r\n `}\r\n\r\n @media (hover: hover) {\r\n button:hover {\r\n text-decoration: underline;\r\n }\r\n }\r\n`;\r\n\r\nconst StyledParagraph = styled(Paragraph)`\r\n ${genericHtml}\r\n font-weight: 300;\r\n\r\n p {\r\n white-space: normal;\r\n }\r\n`;\r\n\r\nconst StyledItem = styled.li<{ 'data-expanded': boolean }>`\r\n ${StyledParagraph} {\r\n display: none;\r\n &:not(:only-child) {\r\n ${(p) =>\r\n p.theme.sizes?.cardinal &&\r\n p.theme.sizes?.normal &&\r\n css`\r\n margin: ${p.theme.sizes?.normal} 0;\r\n `}\r\n }\r\n }\r\n\r\n ${(p) =>\r\n p['data-expanded'] &&\r\n css`\r\n ${StyledParagraph} {\r\n display: block;\r\n }\r\n `}\r\n\r\n > span {\r\n display: block;\r\n font-weight: 300;\r\n color: ${(p) => p.theme.colors?.accent};\r\n }\r\n`;\r\n\r\nconst StyledSymbolBadge = styled(SymbolBadge)`\r\n margin: 0 0 0 ${(p) => p.theme.sizes?.small};\r\n line {\r\n stroke: ${(p) => p.theme.colors?.primary};\r\n }\r\n`;\r\n\r\nconst StyledTimestamp = styled(Timestamp)`\r\n font-size: ${(p) => p.theme.fonts?.small};\r\n font-weight: 300;\r\n`;\r\n\r\nexport default NotificationList;\r\n","import { Implementation } from '@telia-ace/knowledge-widget-core';\r\nimport { AnchorLink, WidgetLink } from '@telia-ace/widget-ui';\r\nimport { Container } from '@webprovisions/platform';\r\nimport React from 'react';\r\n\r\n// Determine if href starts with a hashtag\r\nconst isAnchorLink = (href: string) => {\r\n const re = new RegExp('^#', 'i');\r\n const match = re.test(href);\r\n\r\n return match;\r\n};\r\n\r\nconst embeddedLinkMapper =\r\n (container: Container) =>\r\n ({ children, ...props }: any) => {\r\n const {\r\n implementation,\r\n name: currentWidgetName,\r\n }: { implementation: Implementation; name: string } = container.get('$widget');\r\n\r\n const { href = '' } = props;\r\n\r\n if (isAnchorLink(href)) {\r\n return (\r\n <AnchorLink smooth to={href}>\r\n {children}\r\n </AnchorLink>\r\n );\r\n }\r\n\r\n const escapedBindings = implementation.bindings\r\n .map((binding: string) => binding.replace(/\\./g, '\\\\.'))\r\n .join('|');\r\n const regexp = new RegExp(`^((http[s]?:)?\\/\\/)?(${escapedBindings})\\/([^\\\\s]+)`);\r\n\r\n const expArray = regexp.exec(href);\r\n\r\n if (expArray && expArray.length >= 4) {\r\n const targetWidgetName = expArray[4];\r\n const targetWidget = implementation.widgets.get(targetWidgetName);\r\n\r\n // blob links should not be treated as a widget link\r\n if (\r\n targetWidget &&\r\n !targetWidgetName.startsWith('blob?') &&\r\n !targetWidgetName.startsWith(currentWidgetName)\r\n ) {\r\n return <WidgetLink widgetName={targetWidgetName}>{children}</WidgetLink>;\r\n }\r\n }\r\n\r\n return <a {...props}>{children}</a>;\r\n };\r\n\r\nexport default embeddedLinkMapper;\r\n","import { Container } from '@webprovisions/platform';\r\nimport React from 'react';\r\nimport { DialogLink } from '../components';\r\nimport embeddedLinkMapper from './embedded-link-mapper';\r\n\r\nconst guideRenderInstructions = (container: Container, dialog: any[] = []) => {\r\n return {\r\n transform: {\r\n a: (attr: any) => {\r\n const { children, ...otherAttr } = attr;\r\n const connectionId = otherAttr['data-target'];\r\n if (connectionId && dialog.length) {\r\n const item = dialog.find(({ connection }: any) => connection === connectionId);\r\n if (item) {\r\n return <DialogLink {...item}>{children}</DialogLink>;\r\n }\r\n }\r\n\r\n const defaultInstructions = embeddedLinkMapper(container);\r\n\r\n return defaultInstructions(attr);\r\n },\r\n },\r\n };\r\n};\r\n\r\nexport default guideRenderInstructions;\r\n"],"names":["DialogLink","title","className","id","parent","connection","type","target","href","children","props","name","params","useRouteData","parentId","parentTitle","createParams","__spreadProps","__spreadValues","formatUrl","React","Link","appendClassNames","Icon","dialogList","forwardRef","_a","ref","_b","dialog","other","__objRest","StyledList","item","styled","List","list","p","invertedHoverButton","DrawerList","trigger","header","animation","fullScreen","onToggle","closeButtonAriaLabel","Drawer","StyledItemList","ItemList","itemList","DropdownActions","items","renderItem","Dropdown","Wrapper","Header","DropdownList","headingElement","css","spin","keyframes","dash","SpinnerSvg","Spinner","SpinnerCircle","Loader","loading","loadingOpacity","LoaderWrapper","SmallCaret","StyledHeaderText","Text","StyledListButton","Button","paddedBorderTabStyle","FavoriteButton","addFavoriteTooltip","removeFavoriteCancelLabel","removeFavoriteConfirmLabel","removeFavoriteHeader","removeFavoriteLabel","removeFavoriteTooltip","isFavorite","guideTitle","buttonLabel","addFavorite","removeFavorite","remove","useCallback","add","tooltip","Confirm","StyledButton","SymbolBadge","StyledText","_c","_d","_e","_f","_g","feedback","onFeedback","direction","positive","negative","selected","convertToStringAttributes","FeedbackButton","useArrowKeys","keyPressed","setKeyPressed","useState","left","useKeyPress","right","up","down","useEffect","useDebounce","value","delay","debouncedValue","setDebouncedValue","handler","timeout","useFavorites","container","useContainer","favorites","setFavorites","platform","events","_","updated","guideId","clear","toggle","useMemo","useHover","hovering","setHovering","elem","useRef","onMouseEnter","onMouseLeave","useEventListener","Metadata","format","DateFormats","byLabel","modifiedLabel","publishedLabel","modifiedBy","publishedBy","showModified","showPublished","modified","published","publishedTimestamp","StyledTimestamp","modifiedTimestamp","Timestamp","Tags","tags","t","StyledTagList","symbol","StyledTagIcon","AccordionListItem","route","symbolSize","collapseUri","ActiveAccordionListItem","TextLink","guideList","expandable","routing","paramMappers","pageRole","pageCaret","showTags","showFavoriteToggle","localPaging","onItemClick","dispatch","metadata","pageLabel","isTabbing","useIsTabbing","innerRef","prevItems","usePrevious","guideRoute","pageRoute","mapGuideParams","mapPageParams","actions","useImperativeHandle","defaultRenderer","guide","e","StyledMetadata","renderer","index","onPageClick","elements","listItemElem","nextListItem","focusNext","mutations","observer","mutation","found","node","htmlParentContains","hasMetaData","k","borderTabStyle","NotificationList","showHeader","notificationList","expanded","setExpanded","notifications","defaultHeaderOptions","body","StyledItem","StyledSymbolBadge","StyledParagraph","Paragraph","genericHtml","isAnchorLink","embeddedLinkMapper","implementation","currentWidgetName","AnchorLink","escapedBindings","binding","expArray","targetWidgetName","WidgetLink","guideRenderInstructions","attr","connectionId"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../src/components/dialog-link.tsx","../src/components/dialog-list.tsx","../src/components/drawer-list.tsx","../src/components/dropdown-actions.tsx","../src/components/dropdown-list.tsx","../src/components/loader.tsx","../src/styles.ts","../src/components/favorite-button.tsx","../src/components/feedback.tsx","../src/hooks/use-arrow-keys.ts","../src/hooks/use-debounce.ts","../src/hooks/use-favorites.ts","../src/hooks/use-hover.ts","../src/components/metadata.tsx","../src/components/guide-list.tsx","../src/components/notification-list.tsx","../src/utils/embedded-link-mapper.tsx","../src/utils/guide-render-instructions.tsx"],"sourcesContent":["import { Icon, Link, useRouteData } from '@telia-ace/widget-ui';\nimport { appendClassNames, createParams, formatUrl } from '@telia-ace/widget-utilities';\nimport React from 'react';\nimport { LinkProps } from '../missing-type-exports';\n\nexport type Props = Merge<\n LinkProps,\n {\n parent: {\n id: string;\n title: string;\n };\n type: 'guide' | 'link' | 'default';\n connection?: string;\n }\n>;\n\nconst DialogLink: React.FC<Props> = ({\n title = '',\n className,\n id,\n parent,\n connection,\n type,\n target,\n href,\n children,\n}) => {\n const props: any = {};\n const { name, params } = useRouteData();\n\n switch (type) {\n case 'default':\n case 'guide':\n const { id: parentId, title: parentTitle } = parent;\n props.routeName = name;\n props.params = createParams({\n ...params,\n guide: id,\n connection: id === parentId ? connection : undefined,\n uriName: id === parentId ? formatUrl(parentTitle) : formatUrl(title),\n });\n break;\n case 'link':\n props.href = href;\n props.target = target;\n break;\n }\n\n return (\n <Link className={appendClassNames(className, 'humany-dialog-link')} {...props}>\n {children || (\n <>\n {type === 'link' && <Icon faIcon=\"link\" />}\n <span>{title}</span>\n </>\n )}\n </Link>\n );\n};\n\nexport default DialogLink;\n","import { invertedHoverButton, List, list } from '@telia-ace/widget-ui';\nimport { appendClassNames } from '@telia-ace/widget-utilities';\nimport React, { forwardRef } from 'react';\nimport styled from 'styled-components';\nimport DialogLink, { Props as DialogLinkProps } from './dialog-link';\n\n// type Props = Merge<\n// React.ComponentProps<'ul'>,\n// {\n// dialog: DialogLinkProps[];\n// }\n// >;\ntype Props = {\n dialog: DialogLinkProps[];\n} & any;\n\nexport default forwardRef<HTMLUListElement, Props>(({ className, dialog, ...other }, ref) => {\n return !!dialog.length ? (\n <StyledList\n className={appendClassNames(className, 'humany-dialog')}\n items={dialog}\n renderItem={(item: DialogLinkProps) => (\n <li key={item.connection} data-dialog={item.connection}>\n <DialogLink {...item} />\n </li>\n )}\n {...other}\n ref={ref}\n />\n ) : null;\n});\n\nconst StyledList = styled(List)`\n ${list}\n a {\n min-width: 150px;\n max-width: 400px;\n display: block;\n white-space: normal;\n ${(p) =>\n invertedHoverButton({\n primaryColor: p.theme.colors?.primary,\n secondaryColor: '#FFFFFF',\n })}\n }\n\n i {\n margin: 0 ${(p) => p.theme.sizes?.small} 0 0;\n }\n`;\n","import { Drawer, ItemList, itemList } from '@telia-ace/widget-ui';\nimport { appendClassNames } from '@telia-ace/widget-utilities';\nimport React from 'react';\nimport styled from 'styled-components';\nimport { DrawerProps, ItemListProps } from '../missing-type-exports';\n\ntype Props = Merge<ItemListProps, DrawerProps>;\n\nconst DrawerList: React.FC<Props> = ({\n trigger,\n header,\n className,\n animation,\n fullScreen,\n onToggle,\n children,\n ref,\n closeButtonAriaLabel,\n ...other\n}) => {\n return (\n <Drawer\n className={appendClassNames(className, 'humany-drawer-list')}\n trigger={trigger}\n header={header}\n animation={animation}\n fullScreen={fullScreen}\n onToggle={onToggle}\n closeButtonAriaLabel={closeButtonAriaLabel}\n >\n <StyledItemList {...other}>{children}</StyledItemList>\n </Drawer>\n );\n};\n\nexport default DrawerList;\n\nconst StyledItemList = styled(ItemList)<any>`\n ${itemList}\n font-family: ${(p) => p.theme.fonts?.type};\n padding: ${(p) => p.theme.sizes?.medium};\n > ul > li {\n overflow: visible;\n font-weight: 300;\n font-size: ${(p) => p.theme.fonts?.normal};\n }\n`;\n","import { Dropdown, ItemRenderer, List } from '@telia-ace/widget-ui';\nimport React from 'react';\nimport styled from 'styled-components';\n\ntype Props = {\n trigger: React.ReactElement;\n header?: React.ReactElement;\n items?: any[];\n renderItem?: ItemRenderer;\n className?: string;\n};\n\nconst DropdownActions: React.FC<Props> = ({ items, renderItem, trigger, header, children }) => {\n return (\n <Dropdown className=\"humany-dropdown-actions\" trigger={trigger}>\n <Wrapper>\n {!!header && <Header>{header}</Header>}\n {items && renderItem && (\n <StyledList items={items} renderItem={renderItem}></StyledList>\n )}\n {children}\n </Wrapper>\n </Dropdown>\n );\n};\n\nexport default DropdownActions;\n\nconst Wrapper = styled.div`\n background: #fff;\n border: #ccc 1px solid;\n box-shadow: 0px 0px 10px rgba(0, 0, 0, 0.1);\n font-family: ${(p) => p.theme.fonts?.type};\n font-size: ${(p) => p.theme.fonts?.normal};\n`;\n\nconst Header = styled.div`\n padding: ${(p) => p.theme.sizes.normal};\n padding-bottom: 0;\n font-size: ${(p) => p.theme.fonts?.normal};\n font-weight: normal;\n white-space: nowrap;\n display: flex;\n align-items: center;\n\n h1,\n h2,\n h3,\n h4,\n h5,\n h6 {\n margin: 0;\n font-weight: normal;\n padding-bottom: 0;\n }\n\n svg,\n i {\n margin-right: ${(p) => p.theme.sizes.small};\n }\n`;\n\nconst StyledList = styled(List)`\n list-style: none;\n padding: 0;\n margin: 0;\n padding: ${(p) => p.theme.sizes.small} 0;\n\n li {\n background: #fff;\n\n a {\n display: block;\n font-size: ${(p) => p.theme.fonts?.small};\n padding: ${(p) => `${p.theme.sizes?.small} ${p.theme.sizes?.normal}`};\n cursor: pointer;\n color: #555;\n text-decoration: none;\n\n &:hover {\n background: #f9f9f9;\n color: ${(p) => p.theme.colors?.primary};\n }\n }\n }\n`;\n","import { Dropdown, headingElement, ItemList, itemList } from '@telia-ace/widget-ui';\nimport { appendClassNames } from '@telia-ace/widget-utilities';\nimport React from 'react';\nimport styled, { css } from 'styled-components';\nimport { DropdownProps, ItemListProps } from '../missing-type-exports';\n\nexport type Props = Merge<DropdownProps, ItemListProps>;\n\nconst DropdownList: React.FC<Props> = ({\n trigger,\n className,\n children,\n closeButtonAriaLabel,\n ...other\n}) => {\n return (\n <Dropdown\n className={appendClassNames(className, 'humany-dropdown-list')}\n closeButtonAriaLabel={closeButtonAriaLabel}\n trigger={trigger}\n >\n <StyledItemList {...other}>{children}</StyledItemList>\n </Dropdown>\n );\n};\n\nexport default DropdownList;\n\nconst StyledItemList = styled(ItemList)<any>`\n ${itemList}\n font-family: ${(p) => p.theme.fonts?.type};\n > div {\n ${headingElement(\n '> h1',\n css`\n font-size: ${(p) => p.theme.fonts?.normal};\n line-height: 1.2em;\n `\n )}\n }\n > ul > li {\n overflow: visible;\n font-weight: 300;\n font-size: ${(p) => p.theme.fonts?.normal};\n\n a {\n display: inline-block;\n\n @media (hover: hover) {\n &:hover {\n text-decoration: underline;\n }\n }\n }\n }\n`;\n","import React from 'react';\nimport styled, { keyframes } from 'styled-components';\n\ntype Props = {\n loading: boolean | undefined;\n};\n\nconst spin = keyframes`\n 100% {\n transform: rotate(360deg);\n }\n`;\n\nconst dash = keyframes`\n 0% {\n stroke-dasharray: 1, 200;\n stroke-dashoffset: 0;\n }\n 50% {\n stroke-dasharray: 89, 200;\n stroke-dashoffset: -35px;\n }\n 100% {\n stroke-dasharray: 89, 200;\n stroke-dashoffset: -124px;\n }\n`;\n\nconst SpinnerSvg = styled.svg`\n animation: ${spin} 2s linear infinite;\n height: 100%;\n transform-origin: center center;\n width: 100%;\n position: absolute;\n top: 0;\n bottom: 0;\n left: 0;\n right: 0;\n margin: auto;\n transition: 200ms ease-out opacity;\n`;\n\nexport const Wrapper = styled.div<{ 'data-loading': boolean }>`\n position: absolute;\n top: 0;\n bottom: 0;\n left: 0;\n right: 0;\n height: 100%;\n width: 100%;\n pointer-events: ${(p) => (p['data-loading'] ? 'all' : 'none')}\n display: flex;\n flex-direction: column;\n justify-content: center;\n transition: 200ms ease-out opacity;\n box-sizing: border-box;\n overflow: hidden;\n ${SpinnerSvg} {\n opacity: ${(p) => (p['data-loading'] ? '1' : '0')}\n }\n`;\n\nconst Spinner = styled.div`\n position: relative;\n margin: 0 auto;\n width: 100px;\n &:before {\n content: '';\n display: block;\n padding-top: 100%;\n }\n`;\n\nconst SpinnerCircle = styled.circle`\n stroke-dasharray: 1, 200;\n stroke-dashoffset: 0;\n animation: ${dash} 1.5s ease-in-out infinite;\n stroke-linecap: round;\n stroke: ${(p) => p.theme.colors?.primary};\n stroke-width: 2px;\n`;\n\nconst Loader: React.FC<Props> = ({ loading = false }) => {\n return (\n <Wrapper className=\"humany-loader\" data-loading={loading}>\n <Spinner className=\"humany-spinner\">\n <SpinnerSvg viewBox=\"25 25 50 50\">\n <SpinnerCircle\n cx=\"50\"\n cy=\"50\"\n r=\"20\"\n fill=\"none\"\n stroke-width=\"2\"\n stroke-miterlimit=\"10\"\n />\n </SpinnerSvg>\n </Spinner>\n </Wrapper>\n );\n};\n\nexport default Loader;\n","import { Button, Icon, paddedBorderTabStyle, Text } from '@telia-ace/widget-ui';\nimport styled, { css } from 'styled-components';\nimport { Wrapper as LoaderWrapper } from './components/loader';\n\nexport const loadingOpacity = css<{ 'data-loading': boolean }>`\n ${(p) => p['data-loading'] && 'position: relative;'};\n ${(p) => p['data-loading'] && 'min-height: 150px;'}\n > * {\n transition: 200ms ease-out opacity;\n opacity: ${(p) => (p['data-loading'] ? '0.5' : '1')};\n }\n ${LoaderWrapper} {\n opacity: ${(p) => (p['data-loading'] ? '1' : '0')};\n }\n`;\n\nexport const SmallCaret = styled(Icon as any)`\n && {\n font-size: ${(p) => p.theme.fonts?.small};\n }\n width: 1.2em;\n`;\n\nexport const StyledHeaderText = styled(Text as any)`\n font-size: ${(p) => p.theme.fonts?.medium};\n font-weight: normal;\n line-height: 1.2em;\n color: ${(p) => p.theme.colors?.text};\n`;\n\nexport const StyledListButton = styled(Button as any)<any>`\n display: flex;\n align-items: center;\n\n ${(p: any) =>\n p['data-has-label'] === 'true' &&\n p['data-has-symbol'] === 'true' &&\n `\n svg, i {\n margin: 0 ${p.theme.sizes?.small} 0 0;\n }\n `}\n\n &:focus-visible {\n ${(p: any) => p['data-has-label'] === 'true' && paddedBorderTabStyle}\n\n svg, i {\n ${(p: any) =>\n p['data-has-label'] === 'false' &&\n p['data-has-symbol'] === 'true' &&\n css`\n ${paddedBorderTabStyle}\n box-sizing: content-box;\n `}\n }\n }\n\n span {\n flex: 1;\n font-weight: 300;\n }\n`;\n","import { Confirm, StyledText, SymbolBadge } from '@telia-ace/widget-ui';\nimport React, { useCallback } from 'react';\nimport styled, { css } from 'styled-components';\nimport { FavoriteActions } from '../hooks';\nimport { StyledListButton } from '../styles';\n\ntype Props = {\n isFavorite: boolean;\n actions: FavoriteActions;\n id: string;\n addFavoriteTooltip?: string;\n removeFavoriteCancelLabel?: string;\n removeFavoriteConfirmLabel?: string;\n removeFavoriteHeader?: string;\n removeFavoriteLabel?: string;\n removeFavoriteTooltip?: string;\n buttonLabel?: string;\n guideTitle?: string;\n};\n\nconst FavoriteButton: React.FC<Props> = ({\n addFavoriteTooltip,\n removeFavoriteCancelLabel,\n removeFavoriteConfirmLabel,\n removeFavoriteHeader,\n removeFavoriteLabel,\n removeFavoriteTooltip,\n id,\n isFavorite,\n guideTitle,\n buttonLabel = '',\n actions: { addFavorite, removeFavorite },\n}) => {\n const remove = useCallback(() => {\n removeFavorite(id);\n }, [id, removeFavorite]);\n\n const add = useCallback(() => {\n addFavorite(id);\n }, [id, addFavorite]);\n\n const tooltip = `${isFavorite ? removeFavoriteTooltip : addFavoriteTooltip}${\n guideTitle ? `: \"${guideTitle}\"` : ''\n }`;\n\n return (\n <>\n {isFavorite ? (\n <Confirm\n trigger={\n <StyledButton\n className=\"humany-favorite-button\"\n title={tooltip}\n aria-label={tooltip}\n data-favorite=\"true\"\n data-has-label={buttonLabel ? 'true' : 'false'}\n data-has-symbol=\"true\"\n >\n <SymbolBadge\n size={16}\n symbol={{ type: 'Svg', content: 'star-empty' }}\n />\n {buttonLabel && <StyledText>{buttonLabel}</StyledText>}\n </StyledButton>\n }\n onConfirm={remove}\n cancelLabel={removeFavoriteCancelLabel}\n confirmLabel={removeFavoriteConfirmLabel}\n header={removeFavoriteHeader}\n text={removeFavoriteLabel}\n />\n ) : (\n <StyledButton\n className=\"humany-favorite-button\"\n title={tooltip}\n aria-label={tooltip}\n onClick={add}\n data-favorite=\"false\"\n data-has-label={buttonLabel ? 'true' : 'false'}\n data-has-symbol=\"true\"\n >\n <SymbolBadge size={16} symbol={{ type: 'Svg', content: 'star-empty' }} />\n {buttonLabel && <StyledText>{buttonLabel}</StyledText>}\n </StyledButton>\n )}\n </>\n );\n};\n\nexport default FavoriteButton;\n\nconst StyledButton = styled(StyledListButton)<any>`\n grid-area: favorite;\n\n &:focus-visible {\n svg {\n ${(p: any) =>\n p['data-favorite'] === 'true'\n ? `\n fill: transparent;\n\n path {\n fill: transparent;\n }\n `\n : `\n fill: ${p.theme.colors?.text};\n\n path {\n fill: ${p.theme.colors?.text};\n }\n `}\n }\n }\n\n ${(p: any) =>\n p.theme.colors?.text &&\n css`\n svg {\n stroke: ${p.theme.colors?.text};\n\n path {\n stroke: ${p.theme.colors?.text};\n }\n\n ${p['data-favorite'] === 'true' &&\n `\n fill: ${p.theme.colors?.text};\n\n path {\n fill: ${p.theme.colors?.text};\n }\n `}\n }\n\n &:hover {\n svg {\n ${p['data-favorite'] === 'true'\n ? `\n fill: transparent;\n\n path {\n fill: transparent;\n }\n `\n : `\n fill: ${p.theme.colors?.text};\n\n path {\n fill: ${p.theme.colors?.text};\n }\n `}\n }\n }\n `}\n`;\n","import {\n Button,\n convertToStringAttributes,\n Icon,\n invertedHoverButton,\n StyledText,\n} from '@telia-ace/widget-ui';\nimport { appendClassNames } from '@telia-ace/widget-utilities';\nimport React, { forwardRef } from 'react';\nimport styled, { css } from 'styled-components';\n\nexport type Props = {\n onFeedback?: (feedback: 'positive' | 'negative') => void;\n positive?: string;\n negative?: string;\n header?: string;\n selected?: 'positive' | 'negative';\n direction?: 'horizontal' | 'vertical';\n} & any;\n\n// export type Props = Merge<\n// React.ComponentProps<'div'>,\n// {\n// onFeedback?: (feedback: 'positive' | 'negative') => void;\n// positive?: string;\n// negative?: string;\n// header?: string;\n// selected?: 'positive' | 'negative';\n// direction?: 'horizontal' | 'vertical';\n// }\n// >;\n\nexport default forwardRef<HTMLDivElement, Props>(\n (\n {\n onFeedback = () => {},\n direction = 'horizontal',\n className,\n header,\n positive,\n negative,\n selected,\n ...other\n },\n ref\n ) => {\n return (\n <Wrapper\n className={appendClassNames(className, 'humany-feedback')}\n data-direction={direction}\n {...convertToStringAttributes(other)}\n ref={ref}\n >\n {!!header && <Header>{header}</Header>}\n <FeedbackButton\n className=\"humany-feedback-button\"\n disabled={!!selected}\n aria-pressed={selected === 'positive'}\n data-selected={selected === 'positive'}\n data-direction={direction}\n onClick={() => onFeedback('positive')}\n >\n <Icon faIcon=\"smile-o\" />\n <span>{positive}</span>\n </FeedbackButton>\n <FeedbackButton\n className=\"humany-feedback-button\"\n disabled={!!selected}\n aria-pressed={selected === 'negative'}\n data-selected={selected === 'negative'}\n data-direction={direction}\n onClick={() => onFeedback('negative')}\n >\n <Icon faIcon=\"frown-o\" />\n <span>{negative}</span>\n </FeedbackButton>\n </Wrapper>\n );\n }\n);\n\nconst Header = styled(StyledText)`\n font-weight: normal;\n margin: 0 0 ${(p) => p.theme.sizes?.normal};\n font-size: ${(p) => p.theme.fonts?.normal};\n display: block;\n`;\n\nconst FeedbackButton = styled(Button)<{\n 'data-selected': boolean;\n 'data-direction': 'horizontal' | 'vertical';\n}>`\n display: inline-block;\n font-size: ${(p) => p.theme.fonts?.normal};\n font-weight: 300;\n && {\n margin-right: ${(p) => p.theme.sizes?.large};\n }\n\n ${(p) =>\n p['data-direction'] === 'horizontal' &&\n css`\n width: 225px;\n max-width: calc(50% - ${p.theme.sizes?.large} - ${p.theme.sizes?.small});\n `}\n\n ${(p) =>\n p['data-direction'] === 'vertical' &&\n css`\n min-width: 190px;\n `}\n\n ${(p) =>\n invertedHoverButton({\n active: p['data-selected'],\n primaryColor: p.theme.colors?.primary,\n secondaryColor: '#FFFFFF',\n })}\n\n i {\n margin: 0 ${(p) => p.theme.sizes?.small} 0 0;\n }\n`;\n\nconst Wrapper = styled.div<{ 'data-direction': 'horizontal' | 'vertical' } & any>`\n ${(p) =>\n p['data-direction'] === 'vertical' &&\n css`\n > button {\n width: 100%;\n &:not(:last-child) {\n margin-bottom: ${(p) => p.theme.sizes?.normal};\n }\n }\n `}\n`;\n","import { useKeyPress } from '@telia-ace/widget-ui';\nimport { useEffect, useState } from 'react';\n\ntype ArrowKey = 'up' | 'down' | 'left' | 'right';\n\nconst useArrowKeys = (): ArrowKey | null => {\n // State for keeping track of whether key is pressed\n const [keyPressed, setKeyPressed] = useState<ArrowKey | null>(null);\n\n const left = useKeyPress('ArrowLeft');\n const right = useKeyPress('ArrowRight');\n const up = useKeyPress('ArrowUp');\n const down = useKeyPress('ArrowDown');\n\n const effect = () => {\n if (left) {\n setKeyPressed('left');\n } else if (right) {\n setKeyPressed('right');\n } else if (up) {\n setKeyPressed('up');\n } else if (down) {\n setKeyPressed('down');\n } else {\n setKeyPressed(null);\n }\n };\n\n useEffect(effect, [left, right, up, down]);\n\n return keyPressed;\n};\n\nexport default useArrowKeys;\n","import { useCallback, useEffect, useState } from 'react';\n\nconst useDebounce = (value: string, delay: number) => {\n // State and setters for debounced value\n const [debouncedValue, setDebouncedValue] = useState(value);\n\n const handler = useCallback(() => {\n // Update debounced value after delay\n return setTimeout(() => {\n setDebouncedValue(value);\n }, delay);\n }, [delay, setDebouncedValue, value]);\n\n useEffect(\n () => {\n const timeout = handler();\n\n // Cancel the timeout if value changes (also on delay change or unmount)\n // This is how we prevent debounced value from updating if value is changed\n // within the delay period. Timeout gets cleared and restarted.\n return () => {\n clearTimeout(timeout);\n };\n },\n [handler] // Only re-call effect if value or delay changes\n );\n\n return debouncedValue;\n};\n\nexport default useDebounce;\n","import { Widget } from '@telia-ace/knowledge-widget-core';\nimport { useContainer } from '@telia-ace/widget-ui';\nimport { useCallback, useEffect, useMemo, useState } from 'react';\n\nexport type FavoriteActions = {\n addFavorite: (guideId: string) => Promise<string[]>;\n clearFavorites: () => Promise<string[]>;\n removeFavorite: (guideId: string) => Promise<string[]>;\n toggleFavorite: (guideId: string) => Promise<string[]>;\n};\n\nconst useFavorites = (): [string[], FavoriteActions] => {\n const container = useContainer();\n const [favorites, setFavorites] = useState<string[]>([]);\n const platform = container.get('favorites');\n\n useEffect(() => {\n if (platform) {\n setFavorites(platform.get());\n\n const { events } = container.get('$widget') as Widget;\n const unsubscribe = events.subscribe('widget:favorites-updated', (_, { updated }) => {\n setFavorites([...updated]);\n });\n\n return unsubscribe;\n }\n }, []);\n\n const add = (guideId: string): Promise<string[]> => {\n if (!platform) {\n return Promise.resolve([]);\n }\n return platform.add(guideId);\n };\n\n const remove = (guideId: string) => {\n if (!platform) {\n return Promise.resolve([]);\n }\n return platform.remove(guideId);\n };\n\n const clear = () => {\n if (!platform) {\n return Promise.resolve([]);\n }\n return platform.clear();\n };\n\n const toggle = useCallback(\n (guideId: string) => {\n if (favorites.indexOf(guideId) > -1) {\n return remove(guideId);\n } else {\n return add(guideId);\n }\n },\n [favorites]\n );\n\n return [\n favorites,\n useMemo(\n () => ({\n addFavorite: add,\n removeFavorite: remove,\n clearFavorites: clear,\n toggleFavorite: toggle,\n }),\n [favorites]\n ),\n ];\n};\n\nexport default useFavorites;\n","import { useEventListener } from '@telia-ace/widget-ui';\nimport { useCallback, useRef, useState } from 'react';\n\nexport default (): [boolean, React.MutableRefObject<HTMLElement | undefined>] => {\n const [hovering, setHovering] = useState(false);\n const elem = useRef<HTMLElement>();\n\n const onMouseEnter = useCallback(() => setHovering(true), [setHovering]);\n\n const onMouseLeave = useCallback(() => setHovering(false), [setHovering]);\n\n useEventListener('mouseenter', onMouseEnter, elem.current);\n\n useEventListener('mouseleave', onMouseLeave, elem.current);\n\n return [hovering, elem];\n};\n","import { DateFormats, Text, Timestamp } from '@telia-ace/widget-ui';\nimport { appendClassNames } from '@telia-ace/widget-utilities';\nimport React from 'react';\nimport styled from 'styled-components';\n\nexport type Props = {\n className?: string;\n modified?: string;\n published?: string;\n modifiedBy?: string | null;\n publishedBy?: string | null;\n showModified?: boolean;\n showPublished?: boolean;\n modifiedLabel?: string;\n publishedLabel?: string;\n byLabel?: string;\n format?: DateFormats;\n};\n\nconst Metadata: React.FC<Props> = ({\n format = DateFormats.YYYY_MM_DD_HH_MM,\n className = '',\n byLabel = '',\n modifiedLabel = '',\n publishedLabel = '',\n modifiedBy = '',\n publishedBy = '',\n showModified = false,\n showPublished = false,\n modified,\n published,\n}) => {\n const publishedTimestamp =\n showPublished && published ? (\n <StyledTimestamp format={format} timestamp={published} />\n ) : null;\n const modifiedTimestamp =\n showModified && modified ? <StyledTimestamp format={format} timestamp={modified} /> : null;\n\n if (!publishedTimestamp && !modifiedTimestamp) {\n return null;\n }\n\n return (\n <StyledText className={appendClassNames(className, 'humany-metadata')}>\n {publishedTimestamp && (\n <StyledText className=\"humany-published\">\n {publishedLabel}\n {publishedTimestamp}\n {byLabel && publishedBy && ` ${byLabel.replace('{{editor}}', publishedBy)}`}\n </StyledText>\n )}\n {modifiedTimestamp && (\n <StyledText className=\"humany-modified\">\n {publishedTimestamp && ', '}\n {modifiedLabel}\n {modifiedTimestamp}\n {byLabel && modifiedBy && ` ${byLabel.replace('{{editor}}', modifiedBy)}`}\n </StyledText>\n )}\n </StyledText>\n );\n};\n\nexport default Metadata;\n\nconst StyledTimestamp = styled(Timestamp)`\n &:not(:first-child) {\n margin-left: 4px;\n }\n &:not(:last-child) {\n margin-right: 4px;\n }\n`;\n\nconst StyledText = styled(Text)`\n font-style: italic;\n`;\n","import { Guide, Symbol, Tag } from '@telia-ace/knowledge-widget-core';\nimport {\n borderTabStyle,\n convertToStringAttributes,\n DispatchAction,\n headingElement,\n ItemList,\n itemList,\n ItemRenderer,\n List,\n list,\n SymbolBadge,\n TextLink,\n useIsTabbing,\n usePrevious,\n useRouteData,\n} from '@telia-ace/widget-ui';\nimport {\n appendClassNames,\n createParams,\n htmlParentContains,\n Params,\n} from '@telia-ace/widget-utilities';\nimport React, { forwardRef, useCallback, useEffect, useImperativeHandle, useRef } from 'react';\nimport styled, { css } from 'styled-components';\nimport { useFavorites } from '../hooks';\nimport FavoriteButton from './favorite-button';\nimport Metadata, { Props as MetadataProps } from './metadata';\n\ntype Routing = {\n guide?: string;\n page?: string;\n};\n\ntype ParamMappers = {\n guide?: (guide: Guide) => Params;\n page?: () => Params;\n};\n\nexport type Props = {\n paramMappers?: ParamMappers;\n routing?: Routing;\n pageLabel?: string;\n symbolSize?: number;\n renderItem?: ItemRenderer;\n pageRole?: 'link' | 'button';\n pageCaret?: 'right' | 'down';\n showTags?: boolean;\n showFavoriteToggle?: boolean;\n addFavoriteTooltip?: string;\n removeFavoriteCancelLabel?: string;\n removeFavoriteConfirmLabel?: string;\n removeFavoriteHeader?: string;\n removeFavoriteLabel?: string;\n removeFavoriteTooltip?: string;\n metadata?: Partial<MetadataProps>;\n dispatch?: DispatchAction;\n localPaging?: boolean;\n expandable?: boolean;\n onItemClick?: (e: React.MouseEvent, guide: Guide) => void;\n} & any;\n\n// export type Props = Merge<\n// ItemListProps,\n// {\n// paramMappers?: ParamMappers;\n// routing?: Routing;\n// pageLabel?: string;\n// symbolSize?: number;\n// renderItem?: ItemRenderer;\n// pageRole?: 'link' | 'button';\n// pageCaret?: 'right' | 'down';\n// showTags?: boolean;\n// showFavoriteToggle?: boolean;\n// addFavoriteTooltip?: string;\n// removeFavoriteCancelLabel?: string;\n// removeFavoriteConfirmLabel?: string;\n// removeFavoriteHeader?: string;\n// removeFavoriteLabel?: string;\n// removeFavoriteTooltip?: string;\n// metadata?: Partial<MetadataProps>;\n// dispatch?: DispatchAction;\n// localPaging?: boolean;\n// expandable?: boolean;\n// onItemClick?: (e: React.MouseEvent, guide: Guide) => void;\n// }\n// >;\n\nconst Tags: React.FC<{ tags: Tag[] }> = ({ tags }) => {\n if (!tags.filter((t) => t.symbol).length) {\n return null;\n }\n\n return (\n <StyledTagList\n className=\"humany-guide-list-tags\"\n items={tags}\n renderItem={({ id, symbol, title }: Tag) =>\n symbol && (\n <li key={id} data-tag={id}>\n <StyledTagIcon size={18} symbol={symbol} title={title} />\n </li>\n )\n }\n />\n );\n};\n\nexport const AccordionListItem = forwardRef<\n HTMLLIElement,\n {\n title: string;\n id: string;\n route: string;\n symbolSize?: number;\n collapseUri?: string;\n children?: React.ReactNode;\n }\n>(({ title, id, route, symbolSize, collapseUri, children }, ref) => {\n const { params } = useRouteData();\n\n return (\n <ActiveAccordionListItem ref={ref} data-guide={id}>\n <TextLink\n title={title}\n aria-label={title}\n routeName={route}\n params={createParams({\n ...params,\n uriName: collapseUri ? collapseUri : undefined,\n id: undefined,\n guide: undefined,\n accordion: undefined,\n })}\n text={title}\n >\n <SymbolBadge size={symbolSize} symbol={{ type: 'Svg', content: 'caret-up' }} />\n </TextLink>\n {children}\n </ActiveAccordionListItem>\n );\n});\n\nconst ActiveAccordionListItem = styled.li`\n > a { \n grid-column: 1 / -1\n font-weight: bold;\n margin: 0 0 ${(p) => p.theme.sizes?.normal} 0;\n }\n\n > div {\n grid-column: 1 / -1\n }\n`;\n\nexport default forwardRef<HTMLDivElement, Props>(\n (\n {\n expandable = false,\n routing = {},\n paramMappers = {},\n symbolSize = 11,\n pageRole = 'link',\n pageCaret = 'down',\n showTags = false,\n showFavoriteToggle = false,\n localPaging = false,\n onItemClick = () => {},\n dispatch = () => {},\n metadata = {},\n pageLabel,\n className,\n children,\n items,\n renderItem,\n addFavoriteTooltip,\n removeFavoriteCancelLabel,\n removeFavoriteConfirmLabel,\n removeFavoriteHeader,\n removeFavoriteLabel,\n removeFavoriteTooltip,\n ...other\n },\n ref\n ) => {\n const isTabbing = useIsTabbing();\n const innerRef = useRef() as React.MutableRefObject<HTMLElement>;\n const prevItems = usePrevious(items);\n const { guide: guideRoute = 'guide', page: pageRoute = 'index' } = routing;\n const {\n guide: mapGuideParams = ({ id }: Guide) => createParams({ guide: id }),\n page: mapPageParams = () => createParams(),\n } = paramMappers;\n const [favorites, actions] = useFavorites();\n\n useImperativeHandle(ref, () => innerRef.current as any);\n\n const defaultRenderer: ItemRenderer = (guide: Guide) => {\n const { id, title, tags, published, modified, publishedBy, modifiedBy } = guide;\n\n return (\n <li\n key={id}\n data-guide={id}\n has-metadata={(\n (!!metadata?.showPublished && !!published) ||\n (!!metadata?.showModified && !!modified)\n ).toString()}\n >\n <TextLink\n className=\"humany-guide-link\"\n title={title}\n aria-label={title}\n routeName={guideRoute}\n onClick={(e: React.MouseEvent) => onItemClick(e, guide)}\n params={mapGuideParams(guide)}\n text={title}\n >\n <SymbolBadge\n size={symbolSize}\n symbol={{\n type: 'Svg',\n content: expandable ? 'caret-down' : 'caret-right',\n }}\n />\n </TextLink>\n {showFavoriteToggle && (\n <FavoriteButton\n guideTitle={title}\n addFavoriteTooltip={addFavoriteTooltip}\n removeFavoriteCancelLabel={removeFavoriteCancelLabel}\n removeFavoriteConfirmLabel={removeFavoriteConfirmLabel}\n removeFavoriteHeader={removeFavoriteHeader}\n removeFavoriteLabel={removeFavoriteLabel}\n removeFavoriteTooltip={removeFavoriteTooltip}\n isFavorite={favorites.indexOf(id) > -1}\n actions={actions}\n id={id}\n />\n )}\n {showTags && <Tags tags={tags} />}\n <StyledMetadata\n {...metadata}\n indent={expandable ? undefined : symbolSize}\n modified={modified}\n published={published}\n publishedBy={publishedBy}\n modifiedBy={modifiedBy}\n />\n </li>\n );\n };\n\n const renderer = useCallback(\n (guide: Guide, index: number, items: Guide[]) => {\n if (renderItem) {\n return renderItem(guide, index, items, defaultRenderer);\n }\n\n return defaultRenderer(guide, index, items);\n },\n [renderItem, defaultRenderer]\n );\n\n const onPageClick = useCallback(\n (e: React.MouseEvent) => {\n if (localPaging) {\n e.preventDefault();\n dispatch('page', mapPageParams());\n }\n },\n [dispatch, localPaging]\n );\n\n useEffect(() => {\n if (isTabbing && prevItems && prevItems.length < items.length && innerRef.current) {\n const elements = innerRef.current.querySelectorAll('.humany-guide-list > ul > li');\n const listItemElem = elements[prevItems.length] as HTMLElement;\n\n if (elements.length === items.length && prevItems.length) {\n const nextListItem = elements[prevItems.length] as HTMLElement;\n\n if (nextListItem) {\n const focusNext = nextListItem.querySelector(\n '.humany-guide-link'\n ) as HTMLElement | null;\n focusNext && focusNext.focus();\n }\n } else if (listItemElem) {\n const observer = new MutationObserver((mutations, observer) => {\n mutations.forEach((mutation) => {\n if (mutation.addedNodes) {\n const found = Array.from(\n mutation.addedNodes as NodeListOf<HTMLElement>\n ).find((node) => node.tagName === 'A');\n\n if (\n found &&\n htmlParentContains(innerRef.current, document.activeElement)\n ) {\n isTabbing && found.focus();\n observer.disconnect();\n }\n }\n });\n });\n\n observer.observe(listItemElem, {\n attributes: false,\n characterData: false,\n childList: true,\n subtree: true,\n attributeOldValue: false,\n characterDataOldValue: false,\n });\n }\n }\n });\n\n const hasMetaData = !!Object.keys(metadata).filter(\n (k) => typeof (metadata as any)[k] !== 'undefined'\n ).length;\n return (\n <StyledItemList\n className={appendClassNames(className, 'humany-guide-list')}\n data-item-count={items.length}\n items={items}\n renderItem={renderer}\n isTabbing={isTabbing}\n expandable={expandable ? 'true' : 'false'}\n grid-items={showTags || showFavoriteToggle || hasMetaData ? 'true' : 'false'}\n {...convertToStringAttributes(other)}\n ref={innerRef as React.Ref<HTMLDivElement>}\n >\n {pageLabel ? (\n <TextLink\n text={pageLabel}\n title={pageLabel}\n aria-label={pageLabel}\n routeName={pageRoute}\n role={pageRole}\n params={mapPageParams()}\n onClick={onPageClick}\n >\n <SymbolBadge\n size={symbolSize}\n symbol={{ type: 'Svg', content: `caret-${pageCaret}` }}\n />\n </TextLink>\n ) : null}\n {children}\n </StyledItemList>\n );\n }\n);\n\nconst StyledItemList = styled(ItemList)<{\n 'grid-items': 'true' | 'false';\n expandable: 'true' | 'false';\n isTabbing: boolean;\n}>`\n ${itemList}\n padding: ${(p) => p.theme.sizes?.large};\n overflow: auto;\n justify-content: flex-start;\n white-space: nowrap;\n font-weight: 300;\n text-decoration: none;\n\n > div {\n ${headingElement(\n '> h1',\n css`\n white-space: pre-wrap;\n `\n )}\n }\n\n > ul > li {\n ${(p) =>\n p['grid-items'] === 'true' &&\n css`\n display: grid;\n grid-template-columns: auto 1fr 1fr;\n gap: 0px 0px;\n grid-template-areas: '. favorite tags';\n align-items: center;\n\n > button {\n margin: 0 0 0 ${(p) => p.theme.sizes?.small};\n\n &[data-favorite='false'] {\n ${(p) => (p.isTabbing ? 'opacity: 0;' : 'display: none;')};\n &:focus {\n opacity: 1;\n }\n }\n }\n\n > span {\n font-size: ${(p) => p.theme.fonts?.small};\n }\n\n &:hover {\n button[data-favorite='false'] {\n display: flex;\n justify-self: flex-start;\n }\n }\n\n &[has-metadata='true'] {\n grid-template-rows: 1fr 1fr;\n grid-template-areas:\n '. favorite tags'\n 'metadata metadata metadata';\n }\n `}\n > a {\n color: ${(p) => p.theme.colors?.primary};\n overflow: hidden;\n text-overflow: ellipsis;\n max-width: 100%;\n display: inline-block;\n\n svg {\n margin: 0 calc(${(p) => p.theme.sizes?.small}*2) 0 0;\n line {\n stroke: ${(p) => p.theme.colors?.primary};\n }\n }\n\n ${(p) =>\n p.expandable === 'true' &&\n css`\n display: flex;\n flex-direction: row-reverse;\n justify-content: flex-end;\n align-items: center;\n\n span {\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n svg {\n margin: 0 0 0 ${(p) => p.theme.sizes?.small};\n }\n `}\n\n &:focus-visible {\n ${borderTabStyle}\n text-decoration: underline;\n }\n\n @media (hover: hover) {\n &:hover {\n text-decoration: underline;\n }\n }\n }\n }\n\n > a {\n color: ${(p) => p.theme.colors?.text};\n margin: ${(p) => p.theme.sizes?.normal} 0 0;\n align-self: flex-start;\n align-items: center;\n display: flex;\n\n span {\n text-decoration: underline;\n }\n\n svg {\n margin: 0 calc(${(p) => p.theme.sizes?.small}*2) 0 0;\n line {\n stroke: ${(p) => p.theme.colors?.text};\n }\n }\n\n &:focus-visible {\n ${borderTabStyle}\n text-decoration: underline;\n }\n }\n`;\n\nconst StyledTagList = styled(List)`\n ${list}\n display: flex;\n margin: 0 0 0 auto;\n grid-area: tags;\n\n li,\n li:last-child {\n margin: 0 0 0 ${(p) => p.theme.sizes?.small};\n display: flex;\n align-items: center;\n justify-content: space-between;\n }\n`;\n\nconst StyledTagIcon = styled(SymbolBadge)<{ size: number; symbol: Symbol }>`\n display: block;\n color: ${(p) => p.theme.colors?.primary};\n ${(p: any) => {\n if (p.symbol.type === 'Uri') {\n return `\n width: ${p.size}px;\n height: ${p.size}px;\n `;\n }\n\n if (p.symbol.type === 'FontAwesome') {\n return `\n font-size: ${p.size}px;\n `;\n }\n }}\n`;\n\nconst StyledMetadata = styled(Metadata)<{ indent?: number }>`\n grid-area: metadata;\n text-overflow: ellipsis;\n overflow: hidden;\n font-size: ${(p) => p.theme.fonts?.small};\n ${(p) =>\n typeof p.indent === 'number' &&\n `text-indent: calc(${p.theme.sizes?.small} * 2 + ${p.indent}px);`}\n`;\n","import { Notification } from '@telia-ace/knowledge-widget-core';\nimport {\n borderTabStyle,\n Button,\n DateFormats,\n genericHtml,\n headingElement,\n itemList,\n ItemList,\n Paragraph,\n Symbol,\n SymbolBadge,\n Timestamp,\n} from '@telia-ace/widget-ui';\nimport { appendClassNames } from '@telia-ace/widget-utilities';\nimport React, { useState } from 'react';\nimport styled, { css } from 'styled-components';\nimport { loadingOpacity } from '../styles';\nimport Loader from './loader';\n\ntype Props = {\n className?: string;\n showHeader?: boolean;\n loading: boolean;\n notificationList?: {\n id: string;\n title?: string;\n symbol?: Symbol;\n notifications: Notification[];\n defaultHeaderOptions?: {\n visible: boolean;\n };\n };\n};\n\nconst NotificationList: React.FC<Props> = ({\n className,\n showHeader,\n notificationList,\n loading,\n ...other\n}) => {\n const [expanded, setExpanded] = useState<string | null>(null);\n\n const {\n id,\n title,\n symbol,\n notifications = [],\n defaultHeaderOptions = { visible: true },\n } = notificationList || {};\n\n if (!notifications.length && !loading) {\n return null;\n }\n\n return (\n <StyledItemList\n {...other}\n data-loading={loading}\n data-show-header={\n typeof showHeader === 'boolean' ? showHeader : defaultHeaderOptions.visible\n }\n className={appendClassNames(className, 'humany-notification-list')}\n data-notification-category={id}\n header={title}\n symbol={symbol}\n items={notifications}\n renderItem={({ id, title, body, modified, expandable }: Notification) => (\n <StyledItem\n key={id}\n data-notification={id}\n data-expanded={expandable ? expanded === id : true}\n >\n {expandable ? (\n <>\n <StyledButton\n title={title}\n aria-label={title}\n aria-expanded={expanded === id}\n onClick={() => setExpanded(expanded === id ? null : id)}\n >\n <span>{title}</span>\n <StyledSymbolBadge\n size={11}\n symbol={{\n type: 'Svg',\n content: `caret-${expanded === id ? 'up' : 'down'}`,\n }}\n />\n </StyledButton>\n <StyledParagraph html={body} />\n {modified && (\n <StyledTimestamp\n format={DateFormats.YYYY_MM_DD}\n timestamp={modified}\n />\n )}\n </>\n ) : (\n <StyledParagraph html={body} />\n )}\n </StyledItem>\n )}\n >\n <Loader loading={loading} />\n </StyledItemList>\n );\n};\n\nconst StyledButton = styled(Button)`\n display: flex;\n justify-content: space-between;\n align-items: center;\n width: 100%;\n text-align: left;\n svg,\n i {\n color: ${(p) => p.theme.colors?.primary};\n }\n span {\n color: ${(p) => p.theme.colors?.text};\n font-size: ${(p) => p.theme.fonts?.normal};\n overflow: hidden;\n text-overflow: ellipsis;\n flex: 1;\n white-space: nowrap;\n }\n &:focus-visible {\n ${borderTabStyle}\n span {\n color: ${(p) => p.theme.colors?.primary};\n text-decoration: underline;\n }\n }\n`;\n\nconst StyledItemList = styled(ItemList)<\n {\n 'data-loading': boolean;\n 'data-show-header': boolean;\n } & any\n>`\n ${loadingOpacity}\n ${itemList}\n overflow: hidden;\n justify-content: flex-start;\n padding: ${(p) => p.theme.sizes?.large};\n ${(p) =>\n !p['data-show-header'] &&\n css`\n > div {\n ${headingElement(\n 'h1',\n css`\n display: none;\n `\n )}\n }\n `}\n\n @media (hover: hover) {\n button:hover {\n text-decoration: underline;\n }\n }\n`;\n\nconst StyledParagraph = styled(Paragraph)`\n ${genericHtml}\n font-weight: 300;\n\n p {\n white-space: normal;\n }\n`;\n\nconst StyledItem = styled.li<{ 'data-expanded': boolean }>`\n ${StyledParagraph} {\n display: none;\n &:not(:only-child) {\n ${(p) =>\n p.theme.sizes?.cardinal &&\n p.theme.sizes?.normal &&\n css`\n margin: ${p.theme.sizes?.normal} 0;\n `}\n }\n }\n\n ${(p) =>\n p['data-expanded'] &&\n css`\n ${StyledParagraph} {\n display: block;\n }\n `}\n\n > span {\n display: block;\n font-weight: 300;\n color: ${(p) => p.theme.colors?.accent};\n }\n`;\n\nconst StyledSymbolBadge = styled(SymbolBadge)`\n margin: 0 0 0 ${(p) => p.theme.sizes?.small};\n line {\n stroke: ${(p) => p.theme.colors?.primary};\n }\n`;\n\nconst StyledTimestamp = styled(Timestamp)`\n font-size: ${(p) => p.theme.fonts?.small};\n font-weight: 300;\n`;\n\nexport default NotificationList;\n","import { Implementation } from '@telia-ace/knowledge-widget-core';\nimport { AnchorLink, WidgetLink } from '@telia-ace/widget-ui';\nimport { Container } from '@webprovisions/platform';\nimport React from 'react';\n\n// Determine if href starts with a hashtag\nconst isAnchorLink = (href: string) => {\n const re = new RegExp('^#', 'i');\n const match = re.test(href);\n\n return match;\n};\n\nconst embeddedLinkMapper =\n (container: Container) =>\n ({ children, ...props }: any) => {\n const {\n implementation,\n name: currentWidgetName,\n }: { implementation: Implementation; name: string } = container.get('$widget');\n\n const { href = '' } = props;\n\n if (isAnchorLink(href)) {\n return (\n <AnchorLink smooth to={href}>\n {children}\n </AnchorLink>\n );\n }\n\n const escapedBindings = implementation.bindings\n .map((binding: string) => binding.replace(/\\./g, '\\\\.'))\n .join('|');\n const regexp = new RegExp(`^((http[s]?:)?\\/\\/)?(${escapedBindings})\\/([^\\\\s]+)`);\n\n const expArray = regexp.exec(href);\n\n if (expArray && expArray.length >= 4) {\n const targetWidgetName = expArray[4];\n const targetWidget = implementation.widgets.get(targetWidgetName);\n\n // blob links should not be treated as a widget link\n if (\n targetWidget &&\n !targetWidgetName.startsWith('blob?') &&\n !targetWidgetName.startsWith(currentWidgetName)\n ) {\n return <WidgetLink widgetName={targetWidgetName}>{children}</WidgetLink>;\n }\n }\n\n return <a {...props}>{children}</a>;\n };\n\nexport default embeddedLinkMapper;\n","import { Container } from '@webprovisions/platform';\nimport React from 'react';\nimport { DialogLink } from '../components';\nimport embeddedLinkMapper from './embedded-link-mapper';\n\nconst guideRenderInstructions = (container: Container, dialog: any[] = []) => {\n return {\n transform: {\n a: (attr: any) => {\n const { children, ...otherAttr } = attr;\n const connectionId = otherAttr['data-target'];\n if (connectionId && dialog.length) {\n const item = dialog.find(({ connection }: any) => connection === connectionId);\n if (item) {\n return <DialogLink {...item}>{children}</DialogLink>;\n }\n }\n\n const defaultInstructions = embeddedLinkMapper(container);\n\n return defaultInstructions(attr);\n },\n },\n };\n};\n\nexport default guideRenderInstructions;\n"],"names":["DialogLink","title","className","id","parent","connection","type","target","href","children","props","name","params","useRouteData","parentId","parentTitle","createParams","__spreadProps","__spreadValues","formatUrl","React","Link","appendClassNames","Icon","dialogList","forwardRef","_a","ref","_b","dialog","other","__objRest","StyledList","item","styled","List","list","p","invertedHoverButton","DrawerList","trigger","header","animation","fullScreen","onToggle","closeButtonAriaLabel","Drawer","StyledItemList","ItemList","itemList","DropdownActions","items","renderItem","Dropdown","Wrapper","Header","DropdownList","headingElement","css","spin","keyframes","dash","SpinnerSvg","Spinner","SpinnerCircle","Loader","loading","loadingOpacity","LoaderWrapper","SmallCaret","StyledHeaderText","Text","StyledListButton","Button","paddedBorderTabStyle","FavoriteButton","addFavoriteTooltip","removeFavoriteCancelLabel","removeFavoriteConfirmLabel","removeFavoriteHeader","removeFavoriteLabel","removeFavoriteTooltip","isFavorite","guideTitle","buttonLabel","addFavorite","removeFavorite","remove","useCallback","add","tooltip","Confirm","StyledButton","SymbolBadge","StyledText","_c","_d","_e","_f","_g","feedback","onFeedback","direction","positive","negative","selected","convertToStringAttributes","FeedbackButton","useArrowKeys","keyPressed","setKeyPressed","useState","left","useKeyPress","right","up","down","useEffect","useDebounce","value","delay","debouncedValue","setDebouncedValue","handler","timeout","useFavorites","container","useContainer","favorites","setFavorites","platform","events","_","updated","guideId","clear","toggle","useMemo","useHover","hovering","setHovering","elem","useRef","onMouseEnter","onMouseLeave","useEventListener","Metadata","format","DateFormats","byLabel","modifiedLabel","publishedLabel","modifiedBy","publishedBy","showModified","showPublished","modified","published","publishedTimestamp","StyledTimestamp","modifiedTimestamp","Timestamp","Tags","tags","t","StyledTagList","symbol","StyledTagIcon","AccordionListItem","route","symbolSize","collapseUri","ActiveAccordionListItem","TextLink","guideList","expandable","routing","paramMappers","pageRole","pageCaret","showTags","showFavoriteToggle","localPaging","onItemClick","dispatch","metadata","pageLabel","isTabbing","useIsTabbing","innerRef","prevItems","usePrevious","guideRoute","pageRoute","mapGuideParams","mapPageParams","actions","useImperativeHandle","defaultRenderer","guide","e","StyledMetadata","renderer","index","onPageClick","elements","listItemElem","nextListItem","focusNext","mutations","observer","mutation","found","node","htmlParentContains","hasMetaData","k","borderTabStyle","NotificationList","showHeader","notificationList","expanded","setExpanded","notifications","defaultHeaderOptions","body","StyledItem","StyledSymbolBadge","StyledParagraph","Paragraph","genericHtml","isAnchorLink","embeddedLinkMapper","implementation","currentWidgetName","AnchorLink","escapedBindings","binding","expArray","targetWidgetName","WidgetLink","guideRenderInstructions","attr","connectionId"],"mappings":"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"}
|
|
@@ -1,47 +1,47 @@
|
|
|
1
|
-
import { DrawerAnimationType, HtmlParseInstruction, ItemRenderer } from '@telia-ace/widget-ui';
|
|
2
|
-
import { ReactElement } from 'react';
|
|
3
|
-
export declare type LinkProps = Merge<React.ComponentProps<'a'>, {
|
|
4
|
-
disabled?: boolean;
|
|
5
|
-
routeName?: string;
|
|
6
|
-
params?: {
|
|
7
|
-
[key: string]: any;
|
|
8
|
-
};
|
|
9
|
-
to?: string;
|
|
10
|
-
}>;
|
|
11
|
-
export declare type DrawerProps = {
|
|
12
|
-
header?: string | React.ReactNode;
|
|
13
|
-
className?: string;
|
|
14
|
-
animation?: {
|
|
15
|
-
type: DrawerAnimationType;
|
|
16
|
-
duration?: number;
|
|
17
|
-
};
|
|
18
|
-
trigger: React.ReactElement;
|
|
19
|
-
fullScreen?: boolean;
|
|
20
|
-
closeButtonAriaLabel?: string;
|
|
21
|
-
onToggle?: (visible: boolean) => void;
|
|
22
|
-
};
|
|
23
|
-
export declare type ListProps = Merge<React.ComponentProps<'ul'>, {
|
|
24
|
-
renderItem: ItemRenderer;
|
|
25
|
-
items: any[];
|
|
26
|
-
renderLi?: boolean;
|
|
27
|
-
}>;
|
|
28
|
-
export declare type HtmlProps = Merge<React.ComponentProps<'div'>, {
|
|
29
|
-
html: string;
|
|
30
|
-
htmlParseInstruction?: HtmlParseInstruction;
|
|
31
|
-
}>;
|
|
32
|
-
export declare type ParagraphProps = Merge<HtmlProps, {
|
|
33
|
-
text?: string;
|
|
34
|
-
html?: string;
|
|
35
|
-
header?: string;
|
|
36
|
-
symbol?: Symbol;
|
|
37
|
-
}>;
|
|
38
|
-
export declare type ItemListProps = Merge<ListProps, ParagraphProps> & {
|
|
39
|
-
customHeader?: any;
|
|
40
|
-
ulProps?: any;
|
|
41
|
-
};
|
|
42
|
-
export declare type DropdownProps = {
|
|
43
|
-
className?: string;
|
|
44
|
-
children?: any;
|
|
45
|
-
trigger: ReactElement;
|
|
46
|
-
closeButtonAriaLabel?: string;
|
|
47
|
-
};
|
|
1
|
+
import { DrawerAnimationType, HtmlParseInstruction, ItemRenderer } from '@telia-ace/widget-ui';
|
|
2
|
+
import { ReactElement } from 'react';
|
|
3
|
+
export declare type LinkProps = Merge<React.ComponentProps<'a'>, {
|
|
4
|
+
disabled?: boolean;
|
|
5
|
+
routeName?: string;
|
|
6
|
+
params?: {
|
|
7
|
+
[key: string]: any;
|
|
8
|
+
};
|
|
9
|
+
to?: string;
|
|
10
|
+
}>;
|
|
11
|
+
export declare type DrawerProps = {
|
|
12
|
+
header?: string | React.ReactNode;
|
|
13
|
+
className?: string;
|
|
14
|
+
animation?: {
|
|
15
|
+
type: DrawerAnimationType;
|
|
16
|
+
duration?: number;
|
|
17
|
+
};
|
|
18
|
+
trigger: React.ReactElement;
|
|
19
|
+
fullScreen?: boolean;
|
|
20
|
+
closeButtonAriaLabel?: string;
|
|
21
|
+
onToggle?: (visible: boolean) => void;
|
|
22
|
+
};
|
|
23
|
+
export declare type ListProps = Merge<React.ComponentProps<'ul'>, {
|
|
24
|
+
renderItem: ItemRenderer;
|
|
25
|
+
items: any[];
|
|
26
|
+
renderLi?: boolean;
|
|
27
|
+
}>;
|
|
28
|
+
export declare type HtmlProps = Merge<React.ComponentProps<'div'>, {
|
|
29
|
+
html: string;
|
|
30
|
+
htmlParseInstruction?: HtmlParseInstruction;
|
|
31
|
+
}>;
|
|
32
|
+
export declare type ParagraphProps = Merge<HtmlProps, {
|
|
33
|
+
text?: string;
|
|
34
|
+
html?: string;
|
|
35
|
+
header?: string;
|
|
36
|
+
symbol?: Symbol;
|
|
37
|
+
}>;
|
|
38
|
+
export declare type ItemListProps = Merge<ListProps, ParagraphProps> & {
|
|
39
|
+
customHeader?: any;
|
|
40
|
+
ulProps?: any;
|
|
41
|
+
};
|
|
42
|
+
export declare type DropdownProps = {
|
|
43
|
+
className?: string;
|
|
44
|
+
children?: any;
|
|
45
|
+
trigger: ReactElement;
|
|
46
|
+
closeButtonAriaLabel?: string;
|
|
47
|
+
};
|
package/dist/styles.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
export declare const loadingOpacity: import("styled-components").FlattenInterpolation<import("styled-components").ThemedStyledProps<{
|
|
2
|
-
'data-loading': boolean;
|
|
3
|
-
}, any>>;
|
|
4
|
-
export declare const SmallCaret: import("styled-components").StyledComponent<
|
|
5
|
-
export declare const StyledHeaderText: import("styled-components").StyledComponent<
|
|
6
|
-
export declare const StyledListButton: import("styled-components").StyledComponent<
|
|
1
|
+
export declare const loadingOpacity: import("styled-components").FlattenInterpolation<import("styled-components").ThemedStyledProps<{
|
|
2
|
+
'data-loading': boolean;
|
|
3
|
+
}, any>>;
|
|
4
|
+
export declare const SmallCaret: import("styled-components").StyledComponent<any, any, object, string | number | symbol>;
|
|
5
|
+
export declare const StyledHeaderText: import("styled-components").StyledComponent<any, any, object, string | number | symbol>;
|
|
6
|
+
export declare const StyledListButton: import("styled-components").StyledComponent<any, any, any, string | number | symbol>;
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
import { Container } from '@webprovisions/platform';
|
|
3
|
+
declare const embeddedLinkMapper: (container: Container) => ({ children, ...props }: any) => JSX.Element;
|
|
4
|
+
export default embeddedLinkMapper;
|
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
};
|
|
7
|
-
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
import { Container } from '@webprovisions/platform';
|
|
3
|
+
declare const guideRenderInstructions: (container: Container, dialog?: any[]) => {
|
|
4
|
+
transform: {
|
|
5
|
+
a: (attr: any) => JSX.Element;
|
|
6
|
+
};
|
|
7
|
+
};
|
|
8
|
+
export default guideRenderInstructions;
|
package/dist/utils/index.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export { default as guideRenderInstructions } from './guide-render-instructions';
|
|
1
|
+
export { default as guideRenderInstructions } from './guide-render-instructions';
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@telia-ace/knowledge-widget-ui",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.26-next.1",
|
|
4
4
|
"description": "UI components used by ACE Knowledge Widgets.",
|
|
5
5
|
"license": "SEE LICENSE IN LICENSE.txt",
|
|
6
6
|
"author": "Telia Company AB",
|
|
@@ -26,25 +26,24 @@
|
|
|
26
26
|
},
|
|
27
27
|
"sideEffects": false,
|
|
28
28
|
"dependencies": {
|
|
29
|
-
"@telia-ace/knowledge-widget-core": "^1.0.
|
|
30
|
-
"@telia-ace/widget-routing": "^1.0.
|
|
31
|
-
"@telia-ace/widget-ui": "^1.0.
|
|
32
|
-
"@telia-ace/widget-utilities": "^1.0.
|
|
29
|
+
"@telia-ace/knowledge-widget-core": "^1.0.20-next.1",
|
|
30
|
+
"@telia-ace/widget-routing": "^1.0.17-next.2",
|
|
31
|
+
"@telia-ace/widget-ui": "^1.0.23-next.2",
|
|
32
|
+
"@telia-ace/widget-utilities": "^1.0.5-next.1",
|
|
33
33
|
"@webprovisions/platform": "^1.1.2"
|
|
34
34
|
},
|
|
35
35
|
"peerDependencies": {
|
|
36
|
-
"react": "^
|
|
37
|
-
"react-dom": "^
|
|
38
|
-
"react-router-dom": "^5.
|
|
39
|
-
"react-transition-group": "^4.
|
|
40
|
-
"styled-components": "^
|
|
36
|
+
"react": "^18.2.0",
|
|
37
|
+
"react-dom": "^18.2.0",
|
|
38
|
+
"react-router-dom": "^5.3.4",
|
|
39
|
+
"react-transition-group": "^4.4.5",
|
|
40
|
+
"styled-components": "^5.3.6"
|
|
41
41
|
},
|
|
42
42
|
"devDependencies": {
|
|
43
|
-
"@types/react": "^
|
|
44
|
-
"@types/react-dom": "^16.8.0",
|
|
43
|
+
"@types/react-dom": "^18.0.6",
|
|
45
44
|
"@types/react-router-dom": "^5.1.0",
|
|
46
|
-
"@types/react-transition-group": "^4.
|
|
47
|
-
"@types/styled-components": "^5.1.
|
|
45
|
+
"@types/react-transition-group": "^4.4.5",
|
|
46
|
+
"@types/styled-components": "^5.1.26"
|
|
48
47
|
},
|
|
49
|
-
"gitHead": "
|
|
48
|
+
"gitHead": "f334a15a2105e2dbb3e9914b96b2b44588c6b2ce"
|
|
50
49
|
}
|