@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.
- package/LICENSE.txt +6 -0
- package/README.md +3 -0
- package/lib/answer-version-picker.d.ts +10 -0
- package/lib/answer-version-picker.js +75 -0
- package/lib/categories.d.ts +8 -0
- package/lib/categories.js +80 -0
- package/lib/feedback.d.ts +7 -0
- package/lib/feedback.js +34 -0
- package/lib/functions.d.ts +29 -0
- package/lib/functions.js +129 -0
- package/lib/guide-component.d.ts +69 -0
- package/lib/guide-component.js +196 -0
- package/lib/guide.d.ts +7 -0
- package/lib/guide.js +117 -0
- package/lib/index.d.ts +2 -0
- package/lib/index.js +7 -0
- package/lib/languages.d.ts +17 -0
- package/lib/languages.js +110 -0
- package/lib/toolbar.d.ts +8 -0
- package/lib/toolbar.js +62 -0
- package/lib/use-feedback.d.ts +4 -0
- package/lib/use-feedback.js +54 -0
- package/lib-esm/answer-version-picker.d.ts +10 -0
- package/lib-esm/answer-version-picker.js +50 -0
- package/lib-esm/categories.d.ts +8 -0
- package/lib-esm/categories.js +52 -0
- package/lib-esm/feedback.d.ts +7 -0
- package/lib-esm/feedback.js +29 -0
- package/lib-esm/functions.d.ts +29 -0
- package/lib-esm/functions.js +101 -0
- package/lib-esm/guide-component.d.ts +69 -0
- package/lib-esm/guide-component.js +166 -0
- package/lib-esm/guide.d.ts +7 -0
- package/lib-esm/guide.js +89 -0
- package/lib-esm/index.d.ts +2 -0
- package/lib-esm/index.js +2 -0
- package/lib-esm/languages.d.ts +17 -0
- package/lib-esm/languages.js +85 -0
- package/lib-esm/toolbar.d.ts +8 -0
- package/lib-esm/toolbar.js +57 -0
- package/lib-esm/use-feedback.d.ts +4 -0
- package/lib-esm/use-feedback.js +52 -0
- package/package.json +47 -0
package/LICENSE.txt
ADDED
package/README.md
ADDED
|
@@ -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,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;
|
package/lib/feedback.js
ADDED
|
@@ -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;
|
package/lib/functions.js
ADDED
|
@@ -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;
|