@telia-ace/knowledge-widget-components-guide 1.0.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.
Files changed (43) hide show
  1. package/LICENSE.txt +6 -0
  2. package/README.md +3 -0
  3. package/lib/answer-version-picker.d.ts +10 -0
  4. package/lib/answer-version-picker.js +75 -0
  5. package/lib/categories.d.ts +8 -0
  6. package/lib/categories.js +80 -0
  7. package/lib/feedback.d.ts +7 -0
  8. package/lib/feedback.js +34 -0
  9. package/lib/functions.d.ts +29 -0
  10. package/lib/functions.js +129 -0
  11. package/lib/guide-component.d.ts +69 -0
  12. package/lib/guide-component.js +196 -0
  13. package/lib/guide.d.ts +7 -0
  14. package/lib/guide.js +117 -0
  15. package/lib/index.d.ts +2 -0
  16. package/lib/index.js +7 -0
  17. package/lib/languages.d.ts +17 -0
  18. package/lib/languages.js +110 -0
  19. package/lib/toolbar.d.ts +8 -0
  20. package/lib/toolbar.js +62 -0
  21. package/lib/use-feedback.d.ts +4 -0
  22. package/lib/use-feedback.js +54 -0
  23. package/lib-esm/answer-version-picker.d.ts +10 -0
  24. package/lib-esm/answer-version-picker.js +50 -0
  25. package/lib-esm/categories.d.ts +8 -0
  26. package/lib-esm/categories.js +52 -0
  27. package/lib-esm/feedback.d.ts +7 -0
  28. package/lib-esm/feedback.js +29 -0
  29. package/lib-esm/functions.d.ts +29 -0
  30. package/lib-esm/functions.js +101 -0
  31. package/lib-esm/guide-component.d.ts +69 -0
  32. package/lib-esm/guide-component.js +166 -0
  33. package/lib-esm/guide.d.ts +7 -0
  34. package/lib-esm/guide.js +89 -0
  35. package/lib-esm/index.d.ts +2 -0
  36. package/lib-esm/index.js +2 -0
  37. package/lib-esm/languages.d.ts +17 -0
  38. package/lib-esm/languages.js +85 -0
  39. package/lib-esm/toolbar.d.ts +8 -0
  40. package/lib-esm/toolbar.js +57 -0
  41. package/lib-esm/use-feedback.d.ts +4 -0
  42. package/lib-esm/use-feedback.js +52 -0
  43. package/package.json +47 -0
package/LICENSE.txt ADDED
@@ -0,0 +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:
6
+ http://www.humany.com/legal
package/README.md ADDED
@@ -0,0 +1,3 @@
1
+ # `@telia-ace/widget-services`
2
+
3
+ Services for ACE Widgets.
@@ -0,0 +1,10 @@
1
+ import React from 'react';
2
+ import { AvailablePerspectives, GuideProps } from './guide-component';
3
+ declare type Props = {
4
+ className?: string;
5
+ defaultAnswerVersionLabel: string;
6
+ availablePerspectives?: AvailablePerspectives[];
7
+ guide: GuideProps;
8
+ };
9
+ declare const AnswerVersionPicker: React.FC<Props>;
10
+ export default AnswerVersionPicker;
@@ -0,0 +1,75 @@
1
+ "use strict";
2
+ var __makeTemplateObject = (this && this.__makeTemplateObject) || function (cooked, raw) {
3
+ if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; }
4
+ return cooked;
5
+ };
6
+ var __assign = (this && this.__assign) || function () {
7
+ __assign = Object.assign || function(t) {
8
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
9
+ s = arguments[i];
10
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
11
+ t[p] = s[p];
12
+ }
13
+ return t;
14
+ };
15
+ return __assign.apply(this, arguments);
16
+ };
17
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
18
+ if (k2 === undefined) k2 = k;
19
+ var desc = Object.getOwnPropertyDescriptor(m, k);
20
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
21
+ desc = { enumerable: true, get: function() { return m[k]; } };
22
+ }
23
+ Object.defineProperty(o, k2, desc);
24
+ }) : (function(o, m, k, k2) {
25
+ if (k2 === undefined) k2 = k;
26
+ o[k2] = m[k];
27
+ }));
28
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
29
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
30
+ }) : function(o, v) {
31
+ o["default"] = v;
32
+ });
33
+ var __importStar = (this && this.__importStar) || function (mod) {
34
+ if (mod && mod.__esModule) return mod;
35
+ var result = {};
36
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
37
+ __setModuleDefault(result, mod);
38
+ return result;
39
+ };
40
+ Object.defineProperty(exports, "__esModule", { value: true });
41
+ var knowledge_widget_ui_1 = require("@telia-ace/knowledge-widget-ui");
42
+ var widget_utilities_1 = require("@telia-ace/widget-utilities");
43
+ var react_1 = __importStar(require("react"));
44
+ var styled_components_1 = __importStar(require("styled-components"));
45
+ var AnswerVersionPicker = function (_a) {
46
+ var className = _a.className, defaultAnswerVersionLabel = _a.defaultAnswerVersionLabel, _b = _a.guide, selectedPerspective = _b.perspective, guidePerspectives = _b.perspectives, _c = _a.availablePerspectives, availablePerspectives = _c === void 0 ? [] : _c;
47
+ var _d = (0, knowledge_widget_ui_1.useRouteData)(), name = _d.name, params = _d.params;
48
+ var perspectives = (0, react_1.useMemo)(function () {
49
+ if (!guidePerspectives || !availablePerspectives.length) {
50
+ return [];
51
+ }
52
+ return availablePerspectives
53
+ .filter(function (_a) {
54
+ var name = _a.name;
55
+ return !!guidePerspectives[name];
56
+ })
57
+ .map(function (_a) {
58
+ var name = _a.name, title = _a.title;
59
+ return { label: title, connection: guidePerspectives[name] };
60
+ });
61
+ }, [guidePerspectives, availablePerspectives]);
62
+ return (react_1.default.createElement(StyledList, { className: (0, widget_utilities_1.appendClassNames)(className, 'humany-guide-answer-version-picker'), items: perspectives, renderItem: function (perspective) {
63
+ var label = perspective.label === 'Default' ? defaultAnswerVersionLabel : perspective.label;
64
+ var selected = selectedPerspective === perspective.connection;
65
+ var isRoot = selected && (!params.connection || selectedPerspective === params.connection);
66
+ return (react_1.default.createElement("li", { key: perspective.connection, "data-version": perspective.connection },
67
+ react_1.default.createElement(VersionLink, { key: perspective.connection, forwardedAs: isRoot ? 'span' : undefined, text: label, routeName: name, selected: selected, "aria-label": label, title: label, params: __assign(__assign({}, params), { connection: perspective.connection }) })));
68
+ } }));
69
+ };
70
+ exports.default = AnswerVersionPicker;
71
+ var StyledList = (0, styled_components_1.default)(knowledge_widget_ui_1.List)(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n display: flex;\n align-items: center;\n flex-wrap: wrap;\n\n list-style: none;\n padding: 0;\n margin: 0;\n\n li:not(:last-child) {\n margin: 0 calc(", " * 2) 0 0;\n }\n\n li > span {\n cursor: default;\n }\n"], ["\n display: flex;\n align-items: center;\n flex-wrap: wrap;\n\n list-style: none;\n padding: 0;\n margin: 0;\n\n li:not(:last-child) {\n margin: 0 calc(", " * 2) 0 0;\n }\n\n li > span {\n cursor: default;\n }\n"])), function (p) { var _a; return (_a = p.theme.sizes) === null || _a === void 0 ? void 0 : _a.small; });
72
+ var VersionLink = (0, styled_components_1.default)(knowledge_widget_ui_1.TextLink)(templateObject_3 || (templateObject_3 = __makeTemplateObject(["\n font-weight: 300;\n color: ", ";\n text-decoration: none;\n\n ", "\n\n &:focus {\n ", ";\n }\n"], ["\n font-weight: 300;\n color: ", ";\n text-decoration: none;\n\n ", "\n\n &:focus {\n ", ";\n }\n"])), function (p) { var _a; return (_a = p.theme.colors) === null || _a === void 0 ? void 0 : _a.text; }, function (p) {
73
+ return p.selected && (0, styled_components_1.css)(templateObject_2 || (templateObject_2 = __makeTemplateObject(["\n font-weight: bold;\n text-decoration: underline;\n "], ["\n font-weight: bold;\n text-decoration: underline;\n "])));
74
+ }, function (p) { var _a; return ((_a = p.theme.accessibility) === null || _a === void 0 ? void 0 : _a.isTabbing) && knowledge_widget_ui_1.paddedBorderTabStyle; });
75
+ var templateObject_1, templateObject_2, templateObject_3;
@@ -0,0 +1,8 @@
1
+ import React from 'react';
2
+ import { GuideProps, ToolbarProps } from './guide-component';
3
+ declare type Props = {
4
+ guide: GuideProps;
5
+ toolbar: ToolbarProps;
6
+ };
7
+ declare const Categories: React.FC<Props>;
8
+ export default Categories;
@@ -0,0 +1,80 @@
1
+ "use strict";
2
+ var __makeTemplateObject = (this && this.__makeTemplateObject) || function (cooked, raw) {
3
+ if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; }
4
+ return cooked;
5
+ };
6
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
7
+ if (k2 === undefined) k2 = k;
8
+ var desc = Object.getOwnPropertyDescriptor(m, k);
9
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
10
+ desc = { enumerable: true, get: function() { return m[k]; } };
11
+ }
12
+ Object.defineProperty(o, k2, desc);
13
+ }) : (function(o, m, k, k2) {
14
+ if (k2 === undefined) k2 = k;
15
+ o[k2] = m[k];
16
+ }));
17
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
18
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
19
+ }) : function(o, v) {
20
+ o["default"] = v;
21
+ });
22
+ var __importStar = (this && this.__importStar) || function (mod) {
23
+ if (mod && mod.__esModule) return mod;
24
+ var result = {};
25
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
26
+ __setModuleDefault(result, mod);
27
+ return result;
28
+ };
29
+ var __read = (this && this.__read) || function (o, n) {
30
+ var m = typeof Symbol === "function" && o[Symbol.iterator];
31
+ if (!m) return o;
32
+ var i = m.call(o), r, ar = [], e;
33
+ try {
34
+ while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
35
+ }
36
+ catch (error) { e = { error: error }; }
37
+ finally {
38
+ try {
39
+ if (r && !r.done && (m = i["return"])) m.call(i);
40
+ }
41
+ finally { if (e) throw e.error; }
42
+ }
43
+ return ar;
44
+ };
45
+ var __importDefault = (this && this.__importDefault) || function (mod) {
46
+ return (mod && mod.__esModule) ? mod : { "default": mod };
47
+ };
48
+ Object.defineProperty(exports, "__esModule", { value: true });
49
+ var knowledge_widget_core_1 = require("@telia-ace/knowledge-widget-core");
50
+ var knowledge_widget_ui_1 = require("@telia-ace/knowledge-widget-ui");
51
+ var widget_utilities_1 = require("@telia-ace/widget-utilities");
52
+ var react_1 = __importStar(require("react"));
53
+ var styled_components_1 = __importDefault(require("styled-components"));
54
+ var Categories = function (_a) {
55
+ var _b = _a.guide.categories, categories = _b === void 0 ? [] : _b, _c = _a.toolbar.picker, picker = _c === void 0 ? knowledge_widget_core_1.PickerTypes.NONE : _c;
56
+ var _d = __read((0, react_1.useState)([]), 2), trail = _d[0], setTrail = _d[1];
57
+ var container = (0, knowledge_widget_ui_1.useContainer)();
58
+ (0, react_1.useEffect)(function () {
59
+ (0, widget_utilities_1.buildCategoryTrail)('index', categories.map(function (id) { return id.toString(); }), container).then(function (result) {
60
+ setTrail(result);
61
+ });
62
+ }, [categories]);
63
+ if (!trail.length) {
64
+ return null;
65
+ }
66
+ return (react_1.default.createElement(knowledge_widget_ui_1.Tooltip, { className: "humany-guide-category-tooltip", sticky: picker === knowledge_widget_core_1.PickerTypes.DRAWER, content: react_1.default.createElement(react_1.default.Fragment, null, trail.map(function (segments) {
67
+ return (react_1.default.createElement(CategoryTrail, { className: "humany-guide-category-trail", key: segments.map(function (c) { return c.id; }).join('.') }, segments.map(function (category, index) {
68
+ return (react_1.default.createElement(knowledge_widget_ui_1.Text, { className: "humany-guide-category-trail-segment", key: category.id },
69
+ category.symbol && index === 0 && (react_1.default.createElement(knowledge_widget_ui_1.SymbolBadge, { size: 14, symbol: category.symbol })),
70
+ category.title,
71
+ index !== segments.length - 1 && (react_1.default.createElement(CategorySeparator, { className: "humany-category-separator" }, "/"))));
72
+ })));
73
+ })) }, picker === knowledge_widget_core_1.PickerTypes.DRAWER ? (react_1.default.createElement(knowledge_widget_ui_1.StyledListButton, { className: "humany-guide-category-tooltip-button", "data-has-label": "false", "data-has-symbol": "true" },
74
+ react_1.default.createElement(CategoriesSymbolBadge, { size: 19, symbol: { type: 'Svg', content: 'information' } }))) : (react_1.default.createElement(CategoriesSymbolBadge, { size: 19, symbol: { type: 'Svg', content: 'information' } }))));
75
+ };
76
+ exports.default = Categories;
77
+ var CategoryTrail = styled_components_1.default.div(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n i,\n svg {\n margin: 0 ", " 0 0;\n }\n\n &:not(:last-child) {\n margin: 0 0 ", ";\n }\n"], ["\n i,\n svg {\n margin: 0 ", " 0 0;\n }\n\n &:not(:last-child) {\n margin: 0 0 ", ";\n }\n"])), function (p) { var _a; return (_a = p.theme.sizes) === null || _a === void 0 ? void 0 : _a.small; }, function (p) { var _a; return (_a = p.theme.sizes) === null || _a === void 0 ? void 0 : _a.small; });
78
+ var CategorySeparator = (0, styled_components_1.default)(knowledge_widget_ui_1.Text)(templateObject_2 || (templateObject_2 = __makeTemplateObject(["\n margin: 0 ", ";\n"], ["\n margin: 0 ", ";\n"])), function (p) { var _a; return (_a = p.theme.sizes) === null || _a === void 0 ? void 0 : _a.small; });
79
+ var CategoriesSymbolBadge = (0, styled_components_1.default)(knowledge_widget_ui_1.SymbolBadge)(templateObject_3 || (templateObject_3 = __makeTemplateObject(["\n display: block;\n"], ["\n display: block;\n"])));
80
+ var templateObject_1, templateObject_2, templateObject_3;
@@ -0,0 +1,7 @@
1
+ import React from 'react';
2
+ declare type Props = {
3
+ backButtonShown?: boolean;
4
+ accordion?: boolean;
5
+ };
6
+ declare const Feedback: React.SFC<Props>;
7
+ export default Feedback;
@@ -0,0 +1,34 @@
1
+ "use strict";
2
+ var __makeTemplateObject = (this && this.__makeTemplateObject) || function (cooked, raw) {
3
+ if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; }
4
+ return cooked;
5
+ };
6
+ var __importDefault = (this && this.__importDefault) || function (mod) {
7
+ return (mod && mod.__esModule) ? mod : { "default": mod };
8
+ };
9
+ Object.defineProperty(exports, "__esModule", { value: true });
10
+ var knowledge_widget_adapters_1 = require("@telia-ace/knowledge-widget-adapters");
11
+ var knowledge_widget_ui_1 = require("@telia-ace/knowledge-widget-ui");
12
+ var react_1 = __importDefault(require("react"));
13
+ var styled_components_1 = __importDefault(require("styled-components"));
14
+ var StyledContactList = (0, styled_components_1.default)(knowledge_widget_adapters_1.ContactList)(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n border-top: ", ";\n ", "\n"], ["\n border-top: ", ";\n ", "\n"])), function (p) { return p.theme.border; }, function (p) { return p.backButtonShown === 'true' && "border-bottom: ".concat(p.theme.border, ";"); });
15
+ var StyledFeedback = (0, styled_components_1.default)(knowledge_widget_ui_1.Feedback)(templateObject_2 || (templateObject_2 = __makeTemplateObject(["\n ", "\n"], ["\n ", "\n"])), function (p) { var _a, _b; return "padding: ".concat((_a = p.theme.sizes) === null || _a === void 0 ? void 0 : _a.large, " ").concat((_b = p.theme.sizes) === null || _b === void 0 ? void 0 : _b.large, ";"); });
16
+ var Recognition = (0, styled_components_1.default)(knowledge_widget_ui_1.StyledHeaderText)(templateObject_3 || (templateObject_3 = __makeTemplateObject(["\n ", "\n\n display: block;\n font-size: ", ";\n font-weight: bold;\n"], ["\n ", "\n\n display: block;\n font-size: ", ";\n font-weight: bold;\n"])), function (p) { var _a, _b; return "padding: ".concat((_a = p.theme.sizes) === null || _a === void 0 ? void 0 : _a.large, " ").concat((_b = p.theme.sizes) === null || _b === void 0 ? void 0 : _b.large, ";"); }, function (p) { var _a; return (_a = p.theme.fonts) === null || _a === void 0 ? void 0 : _a.normal; });
17
+ var Feedback = function (_a) {
18
+ var _b = _a.backButtonShown, backButtonShown = _b === void 0 ? false : _b, _c = _a.accordion, accordion = _c === void 0 ? false : _c;
19
+ var dispatch = (0, knowledge_widget_ui_1.useDispatch)();
20
+ var _d = (0, knowledge_widget_ui_1.useProperties)(), _e = _d.loading, loading = _e === void 0 ? false : _e, _f = _d.dialog, dialog = _f === void 0 ? [] : _f, guide = _d.guide, _g = _d.handoverContactMethods, handoverContactMethods = _g === void 0 ? [] : _g, contactHeader = _d.contactHeader, showFeedback = _d.showFeedback, _h = _d.feedbackDirection, feedbackDirection = _h === void 0 ? 'horizontal' : _h, feedbackRecognitionLabel = _d.feedbackRecognitionLabel, feedbackGiven = _d.feedbackGiven, feedbackHeader = _d.feedbackHeader, positiveFeedbackLabel = _d.positiveFeedbackLabel, negativeFeedbackLabel = _d.negativeFeedbackLabel, contactFeedbackLabel = _d.contactFeedbackLabel;
21
+ if (!showFeedback ||
22
+ !guide ||
23
+ !guide.allowFeedback ||
24
+ (loading && !feedbackGiven) ||
25
+ dialog.length) {
26
+ return null;
27
+ }
28
+ if (feedbackGiven && feedbackRecognitionLabel && !handoverContactMethods.length) {
29
+ return (react_1.default.createElement(Recognition, { accordion: accordion ? 'true' : 'false' }, feedbackRecognitionLabel));
30
+ }
31
+ return guide.hasHandover && handoverContactMethods.length ? (react_1.default.createElement(StyledContactList, { backButtonShown: backButtonShown ? 'true' : 'false', accordion: accordion ? 'true' : 'false', header: contactHeader, contactMethods: handoverContactMethods, dispatch: dispatch })) : (react_1.default.createElement(StyledFeedback, { accordion: accordion ? 'true' : 'false', positive: positiveFeedbackLabel, negative: guide.hasHandover ? contactFeedbackLabel : negativeFeedbackLabel, header: feedbackHeader, selected: feedbackGiven, onFeedback: function (feedback) { return dispatch('feedback', feedback); }, direction: feedbackDirection }));
32
+ };
33
+ exports.default = Feedback;
34
+ var templateObject_1, templateObject_2, templateObject_3;
@@ -0,0 +1,29 @@
1
+ import { PickerTypes } from '@telia-ace/knowledge-widget-core';
2
+ import { DispatchAction } from '@telia-ace/knowledge-widget-ui';
3
+ import React from 'react';
4
+ import { GuideProps } from './guide-component';
5
+ export declare type FunctionListItem = {
6
+ type: string;
7
+ child: React.ReactNode;
8
+ };
9
+ declare type Props = {
10
+ header?: string;
11
+ tooltip?: string;
12
+ printActionLabel?: string;
13
+ copyActionLabel?: string;
14
+ addFavoriteTooltip?: string;
15
+ removeFavoriteCancelLabel?: string;
16
+ removeFavoriteConfirmLabel?: string;
17
+ removeFavoriteHeader?: string;
18
+ removeFavoriteLabel?: string;
19
+ removeFavoriteTooltip?: string;
20
+ toolbarFunctionsCloseButtonAriaLabel?: string;
21
+ guide: GuideProps;
22
+ allowCopy?: boolean;
23
+ allowPrint?: boolean;
24
+ showFavoriteToggle?: boolean;
25
+ picker?: PickerTypes;
26
+ dispatch: DispatchAction;
27
+ };
28
+ declare const Functions: React.FC<Props>;
29
+ export default Functions;
@@ -0,0 +1,129 @@
1
+ "use strict";
2
+ var __makeTemplateObject = (this && this.__makeTemplateObject) || function (cooked, raw) {
3
+ if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; }
4
+ return cooked;
5
+ };
6
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
7
+ if (k2 === undefined) k2 = k;
8
+ var desc = Object.getOwnPropertyDescriptor(m, k);
9
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
10
+ desc = { enumerable: true, get: function() { return m[k]; } };
11
+ }
12
+ Object.defineProperty(o, k2, desc);
13
+ }) : (function(o, m, k, k2) {
14
+ if (k2 === undefined) k2 = k;
15
+ o[k2] = m[k];
16
+ }));
17
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
18
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
19
+ }) : function(o, v) {
20
+ o["default"] = v;
21
+ });
22
+ var __importStar = (this && this.__importStar) || function (mod) {
23
+ if (mod && mod.__esModule) return mod;
24
+ var result = {};
25
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
26
+ __setModuleDefault(result, mod);
27
+ return result;
28
+ };
29
+ var __read = (this && this.__read) || function (o, n) {
30
+ var m = typeof Symbol === "function" && o[Symbol.iterator];
31
+ if (!m) return o;
32
+ var i = m.call(o), r, ar = [], e;
33
+ try {
34
+ while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
35
+ }
36
+ catch (error) { e = { error: error }; }
37
+ finally {
38
+ try {
39
+ if (r && !r.done && (m = i["return"])) m.call(i);
40
+ }
41
+ finally { if (e) throw e.error; }
42
+ }
43
+ return ar;
44
+ };
45
+ var __importDefault = (this && this.__importDefault) || function (mod) {
46
+ return (mod && mod.__esModule) ? mod : { "default": mod };
47
+ };
48
+ Object.defineProperty(exports, "__esModule", { value: true });
49
+ var knowledge_widget_core_1 = require("@telia-ace/knowledge-widget-core");
50
+ var knowledge_widget_ui_1 = require("@telia-ace/knowledge-widget-ui");
51
+ var react_1 = __importStar(require("react"));
52
+ var styled_components_1 = __importDefault(require("styled-components"));
53
+ var Functions = function (_a) {
54
+ var header = _a.header, tooltip = _a.tooltip, printActionLabel = _a.printActionLabel, copyActionLabel = _a.copyActionLabel, addFavoriteTooltip = _a.addFavoriteTooltip, removeFavoriteCancelLabel = _a.removeFavoriteCancelLabel, removeFavoriteConfirmLabel = _a.removeFavoriteConfirmLabel, removeFavoriteHeader = _a.removeFavoriteHeader, removeFavoriteLabel = _a.removeFavoriteLabel, removeFavoriteTooltip = _a.removeFavoriteTooltip, toolbarFunctionsCloseButtonAriaLabel = _a.toolbarFunctionsCloseButtonAriaLabel, _b = _a.allowCopy, allowCopy = _b === void 0 ? false : _b, _c = _a.allowPrint, allowPrint = _c === void 0 ? false : _c, _d = _a.showFavoriteToggle, showFavoriteToggle = _d === void 0 ? false : _d, _e = _a.picker, picker = _e === void 0 ? knowledge_widget_core_1.PickerTypes.NONE : _e, guide = _a.guide, dispatch = _a.dispatch;
55
+ var _f = __read((0, knowledge_widget_ui_1.useFavorites)(), 2), favorites = _f[0], actions = _f[1];
56
+ var handleCopy = (0, react_1.useCallback)(function (event) {
57
+ if (guide) {
58
+ dispatch('copy', guide);
59
+ }
60
+ }, [guide, dispatch]);
61
+ var handlePrint = (0, react_1.useCallback)(function () {
62
+ if (guide) {
63
+ dispatch('print');
64
+ }
65
+ }, [guide, dispatch]);
66
+ var items = (0, react_1.useMemo)(function () {
67
+ var id = guide.id, title = guide.title;
68
+ var items = [];
69
+ if (allowCopy) {
70
+ items.push({
71
+ type: 'copy',
72
+ child: (react_1.default.createElement(knowledge_widget_ui_1.StyledListButton, { "data-has-label": copyActionLabel ? 'true' : 'false', "data-has-symbol": "true", title: copyActionLabel, "aria-label": printActionLabel, onClick: handleCopy },
73
+ react_1.default.createElement(ColoredSymbolBadge, { size: 16, symbol: { type: 'Svg', content: 'copy' } }),
74
+ copyActionLabel && react_1.default.createElement(knowledge_widget_ui_1.StyledText, null, copyActionLabel))),
75
+ });
76
+ }
77
+ if (allowPrint) {
78
+ items.push({
79
+ type: 'print',
80
+ child: (react_1.default.createElement(knowledge_widget_ui_1.StyledListButton, { "data-has-label": printActionLabel ? 'true' : 'false', "data-has-symbol": "true", title: printActionLabel, "aria-label": printActionLabel, onClick: handlePrint },
81
+ react_1.default.createElement(ColoredSymbolBadge, { size: 16, symbol: { type: 'Svg', content: 'print' } }),
82
+ printActionLabel && react_1.default.createElement(knowledge_widget_ui_1.StyledText, null, printActionLabel))),
83
+ });
84
+ }
85
+ if (showFavoriteToggle) {
86
+ var isFavorite = favorites.indexOf(id) > -1;
87
+ items.push({
88
+ type: 'favorite',
89
+ child: (react_1.default.createElement(knowledge_widget_ui_1.FavoriteButton, { id: id, guideTitle: title, isFavorite: isFavorite, buttonLabel: isFavorite ? removeFavoriteTooltip : addFavoriteTooltip, addFavoriteTooltip: addFavoriteTooltip, removeFavoriteCancelLabel: removeFavoriteCancelLabel, removeFavoriteConfirmLabel: removeFavoriteConfirmLabel, removeFavoriteHeader: removeFavoriteHeader, removeFavoriteLabel: removeFavoriteLabel, removeFavoriteTooltip: removeFavoriteTooltip, actions: actions })),
90
+ });
91
+ }
92
+ return items;
93
+ }, [
94
+ favorites,
95
+ guide,
96
+ allowCopy,
97
+ allowPrint,
98
+ showFavoriteToggle,
99
+ printActionLabel,
100
+ copyActionLabel,
101
+ addFavoriteTooltip,
102
+ removeFavoriteCancelLabel,
103
+ removeFavoriteConfirmLabel,
104
+ removeFavoriteHeader,
105
+ removeFavoriteLabel,
106
+ removeFavoriteTooltip,
107
+ ]);
108
+ if (!items.length) {
109
+ return null;
110
+ }
111
+ var trigger = (react_1.default.createElement(StyledTriggerButton, { tabIndex: 0, title: tooltip, "data-has-symbol": "true", "data-has-label": "false" },
112
+ react_1.default.createElement(ColoredSymbolBadge, { symbol: { type: 'Svg', content: 'options' }, size: 18 })));
113
+ var renderListItem = function (_a) {
114
+ var type = _a.type, child = _a.child;
115
+ return (react_1.default.createElement("li", { key: type, "data-function-type": type }, child));
116
+ };
117
+ if (picker === knowledge_widget_core_1.PickerTypes.DROPDOWN) {
118
+ return (react_1.default.createElement(StyledDropdownList, { className: "humany-guide-functions-dropdown-list", header: header, items: items, trigger: trigger, renderItem: renderListItem, closeButtonAriaLabel: toolbarFunctionsCloseButtonAriaLabel }));
119
+ }
120
+ if (picker === knowledge_widget_core_1.PickerTypes.DRAWER) {
121
+ return (react_1.default.createElement(knowledge_widget_ui_1.DrawerList, { className: "humany-guide-functions-drawer-list", animation: { type: knowledge_widget_ui_1.DrawerAnimationType.SlideInBottom }, header: header, items: items, trigger: trigger, renderItem: renderListItem, closeButtonAriaLabel: toolbarFunctionsCloseButtonAriaLabel }));
122
+ }
123
+ return null;
124
+ };
125
+ exports.default = Functions;
126
+ var ColoredSymbolBadge = (0, styled_components_1.default)(knowledge_widget_ui_1.SymbolBadge)(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n circle {\n fill: ", ";\n }\n\n line,\n path,\n rect {\n stroke: ", ";\n }\n"], ["\n circle {\n fill: ", ";\n }\n\n line,\n path,\n rect {\n stroke: ", ";\n }\n"])), function (p) { var _a; return (_a = p.theme.colors) === null || _a === void 0 ? void 0 : _a.text; }, function (p) { var _a; return (_a = p.theme.colors) === null || _a === void 0 ? void 0 : _a.text; });
127
+ var StyledDropdownList = (0, styled_components_1.default)(knowledge_widget_ui_1.DropdownList)(templateObject_2 || (templateObject_2 = __makeTemplateObject(["\n display: block;\n min-height: auto;\n"], ["\n display: block;\n min-height: auto;\n"])));
128
+ var StyledTriggerButton = (0, styled_components_1.default)(knowledge_widget_ui_1.StyledListButton)(templateObject_3 || (templateObject_3 = __makeTemplateObject(["\n padding: calc(", " * 2) 0;\n"], ["\n padding: calc(", " * 2) 0;\n"])), function (p) { var _a; return (_a = p.theme.sizes) === null || _a === void 0 ? void 0 : _a.small; });
129
+ var templateObject_1, templateObject_2, templateObject_3;
@@ -0,0 +1,69 @@
1
+ import { ContactMethodType } from '@telia-ace/knowledge-widget-adapters';
2
+ import { FavoriteProperties, LanguageProperties, MetaDataProperties } from '@telia-ace/knowledge-widget-component-utilities';
3
+ import { DialogItem, PickerTypes } from '@telia-ace/knowledge-widget-core';
4
+ import { DataError } from '@telia-ace/knowledge-widget-types-grid';
5
+ import { FormComponentInstanceProperties } from '@telia-ace/widget-forms';
6
+ import { Container } from '@webprovisions/platform';
7
+ export declare type GuideProps = {
8
+ id: string;
9
+ title: string;
10
+ body: string;
11
+ connection: string;
12
+ categories: number[];
13
+ hasHandover: boolean;
14
+ allowFeedback: boolean;
15
+ perspectives: {
16
+ [key: string]: string;
17
+ };
18
+ translations?: {
19
+ [key: string]: string;
20
+ };
21
+ modified?: string;
22
+ published?: string;
23
+ publishedBy?: string | null;
24
+ modifiedBy?: string | null;
25
+ perspective: string | null;
26
+ };
27
+ export declare type AvailablePerspectives = {
28
+ name: string;
29
+ title: string;
30
+ };
31
+ export declare type GuideComponentProps = {
32
+ showHeader?: boolean;
33
+ showFeedback?: boolean;
34
+ feedbackDirection?: 'horizontal' | 'vertical';
35
+ feedbackGiven?: 'positive' | 'negative';
36
+ contactMethods?: ContactMethodType[];
37
+ handoverContactMethods?: ContactMethodType[];
38
+ showAnswerVersions?: boolean;
39
+ feedbackHeader?: string;
40
+ contactHeader?: string;
41
+ toolbarFunctionsHeader?: string;
42
+ toolbarLanguageHeader?: string;
43
+ positiveFeedbackLabel?: string;
44
+ negativeFeedbackLabel?: string;
45
+ contactFeedbackLabel?: string;
46
+ feedbackRecognitionLabel?: string;
47
+ defaultAnswerVersionLabel?: string;
48
+ backButtonLabel?: string;
49
+ toolbarFunctionsTooltip?: string;
50
+ toolbarFunctionsCloseButtonAriaLabel?: string;
51
+ copyActionLabel?: string;
52
+ printActionLabel?: string;
53
+ toolbarLanguageTooltip?: string;
54
+ toolbar?: ToolbarProps;
55
+ guide?: GuideProps;
56
+ dialog?: DialogItem[];
57
+ error?: DataError;
58
+ availablePerspectives?: AvailablePerspectives[];
59
+ } & FormComponentInstanceProperties & FavoriteProperties & MetaDataProperties & LanguageProperties;
60
+ export declare type ToolbarProps = {
61
+ language?: boolean;
62
+ guideCategories?: boolean;
63
+ allowCopy?: boolean;
64
+ allowPrint?: boolean;
65
+ showFavoriteToggle?: boolean;
66
+ picker?: PickerTypes;
67
+ };
68
+ export declare const GuideComponent: (container: Container) => Promise<void>;
69
+ export default GuideComponent;