@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
@@ -0,0 +1,196 @@
1
+ "use strict";
2
+ var __assign = (this && this.__assign) || function () {
3
+ __assign = Object.assign || function(t) {
4
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
5
+ s = arguments[i];
6
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
+ t[p] = s[p];
8
+ }
9
+ return t;
10
+ };
11
+ return __assign.apply(this, arguments);
12
+ };
13
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
14
+ if (k2 === undefined) k2 = k;
15
+ var desc = Object.getOwnPropertyDescriptor(m, k);
16
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
17
+ desc = { enumerable: true, get: function() { return m[k]; } };
18
+ }
19
+ Object.defineProperty(o, k2, desc);
20
+ }) : (function(o, m, k, k2) {
21
+ if (k2 === undefined) k2 = k;
22
+ o[k2] = m[k];
23
+ }));
24
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
25
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
26
+ }) : function(o, v) {
27
+ o["default"] = v;
28
+ });
29
+ var __importStar = (this && this.__importStar) || function (mod) {
30
+ if (mod && mod.__esModule) return mod;
31
+ var result = {};
32
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
33
+ __setModuleDefault(result, mod);
34
+ return result;
35
+ };
36
+ var __read = (this && this.__read) || function (o, n) {
37
+ var m = typeof Symbol === "function" && o[Symbol.iterator];
38
+ if (!m) return o;
39
+ var i = m.call(o), r, ar = [], e;
40
+ try {
41
+ while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
42
+ }
43
+ catch (error) { e = { error: error }; }
44
+ finally {
45
+ try {
46
+ if (r && !r.done && (m = i["return"])) m.call(i);
47
+ }
48
+ finally { if (e) throw e.error; }
49
+ }
50
+ return ar;
51
+ };
52
+ var __importDefault = (this && this.__importDefault) || function (mod) {
53
+ return (mod && mod.__esModule) ? mod : { "default": mod };
54
+ };
55
+ Object.defineProperty(exports, "__esModule", { value: true });
56
+ exports.GuideComponent = void 0;
57
+ var knowledge_widget_component_utilities_1 = require("@telia-ace/knowledge-widget-component-utilities");
58
+ var knowledge_widget_core_1 = require("@telia-ace/knowledge-widget-core");
59
+ var knowledge_widget_types_grid_1 = require("@telia-ace/knowledge-widget-types-grid");
60
+ var knowledge_widget_ui_1 = require("@telia-ace/knowledge-widget-ui");
61
+ var clipboard = __importStar(require("clipboard-polyfill"));
62
+ var use_feedback_1 = __importDefault(require("./use-feedback"));
63
+ var buildPlainText = function (_a) {
64
+ var title = _a.title, body = _a.body;
65
+ var processedHtml = '';
66
+ if (title && title.length) {
67
+ processedHtml = title.trim();
68
+ }
69
+ if (body && body.length) {
70
+ processedHtml = "".concat(processedHtml.trim(), "\n").concat(body.trim());
71
+ }
72
+ var div = document.createElement('div');
73
+ div.innerHTML = processedHtml;
74
+ var links = Array.from(div.getElementsByTagName('a'));
75
+ var plainText = div.innerText;
76
+ links.forEach(function (a) {
77
+ plainText = plainText.replace(a.innerText, "[".concat(a.href, "] (").concat(a.innerText, ")"));
78
+ });
79
+ return plainText;
80
+ };
81
+ var buildHtml = function (_a) {
82
+ var title = _a.title, body = _a.body;
83
+ var processedHtml = '';
84
+ if (title && title.length) {
85
+ processedHtml = "<h2>".concat(title.trim(), "</h2>");
86
+ }
87
+ if (body && body.length) {
88
+ processedHtml = "".concat(processedHtml.trim()).concat(body.trim());
89
+ }
90
+ return processedHtml.trim();
91
+ };
92
+ var GuideComponent = function (container) {
93
+ var events = container.get('$widget').events;
94
+ var _a = __read((0, knowledge_widget_core_1.createEventSubscriber)(events), 2), subscribe = _a[0], unsubscribe = _a[1];
95
+ return (0, knowledge_widget_ui_1.createReactComponent)(container, 'guide', Promise.resolve().then(function () { return __importStar(require('./guide')); }), function (component) {
96
+ var fetch = function (params) {
97
+ component.writeProperties({
98
+ loading: true,
99
+ error: undefined,
100
+ guide: undefined,
101
+ });
102
+ component.actions.dispatch('fetch', { params: params });
103
+ };
104
+ component.actions.create('copy', function (guide) {
105
+ var item = new clipboard.ClipboardItem({
106
+ 'text/html': new Blob([buildHtml(guide)], { type: 'text/html' }),
107
+ 'text/plain': new Blob([buildPlainText(guide)], { type: 'text/plain' }),
108
+ });
109
+ return clipboard.write([item]).then(function () {
110
+ events.dispatch('widget:menu-toggled', null);
111
+ });
112
+ });
113
+ component.actions.create('print', function () {
114
+ var elem = document.querySelector('.humany-guide .humany-paragraph');
115
+ var a = window.open('', '', 'height=500, width=500');
116
+ events.dispatch('widget:menu-toggled', null);
117
+ if (elem && a) {
118
+ a.document.write("<html><body>".concat(elem.innerHTML, "</body></html>"));
119
+ a.document.close();
120
+ a.print();
121
+ }
122
+ });
123
+ component.actions.create('back', function (data, options) {
124
+ if (options.preventDefault) {
125
+ return;
126
+ }
127
+ return container.getAsync('router').then(function (router) {
128
+ router.goBack();
129
+ });
130
+ });
131
+ component.actions.create('fetch', function (_a) {
132
+ var _b = _a.contactMethods, contactMethods = _b === void 0 ? [] : _b, _c = _a.dialog, dialog = _c === void 0 ? [] : _c, guide = _a.guide, error = _a.error;
133
+ if (error) {
134
+ return component.actions.dispatch('fetched', {
135
+ error: error,
136
+ guide: undefined,
137
+ contactMethods: [],
138
+ feedbackGiven: undefined,
139
+ handoverContactMethods: [],
140
+ showFeedback: false,
141
+ loading: true,
142
+ });
143
+ }
144
+ var _d = component.properties(), _e = _d.showFeedback, showFeedback = _e === void 0 ? true : _e, _f = _d.submitButtonLabel, submitButtonLabel = _f === void 0 ? 'Submit' : _f;
145
+ var properties = {
146
+ showFeedback: showFeedback,
147
+ dialog: dialog,
148
+ guide: guide,
149
+ feedbackGiven: undefined,
150
+ handoverContactMethods: [],
151
+ contactMethods: contactMethods.map(function (cm) { return (__assign(__assign({}, cm), { body: (0, knowledge_widget_component_utilities_1.updateForm)(cm, { submit: submitButtonLabel }) })); }),
152
+ };
153
+ return component.actions.dispatch('fetched', __assign(__assign({}, properties), { loading: true }));
154
+ });
155
+ component.actions.create('fetched', function (input) {
156
+ return component.writeProperties(__assign(__assign({}, input), { loading: false }));
157
+ });
158
+ container.getAsync('router').then(function (router) {
159
+ var params = router.getRouteData().params;
160
+ fetch(params);
161
+ });
162
+ subscribe('router:changed', function (event, _a) {
163
+ var current = _a.current;
164
+ fetch(current.routeData.params);
165
+ });
166
+ (0, use_feedback_1.default)(container, component);
167
+ (0, knowledge_widget_component_utilities_1.useForm)(container, component);
168
+ (0, knowledge_widget_component_utilities_1.useExpand)(component);
169
+ })
170
+ .then(function () {
171
+ return (0, knowledge_widget_core_1.extendComponent)(container, 'guide', function (component) {
172
+ component.actions.watch('guide.fetch', function (input, next) {
173
+ var _a = input.params, guide = _a.guide, connection = _a.connection;
174
+ if (guide) {
175
+ return container
176
+ .getAsync('dataClient')
177
+ .then(function (dataClient) {
178
+ return dataClient.fetch(knowledge_widget_types_grid_1.DataType.Guide, { connection: connection, guideId: guide });
179
+ })
180
+ .then(next)
181
+ .catch(function (error) {
182
+ if (error) {
183
+ return next(error);
184
+ }
185
+ });
186
+ }
187
+ return next(input);
188
+ });
189
+ });
190
+ })
191
+ .then(function () {
192
+ unsubscribe();
193
+ });
194
+ };
195
+ exports.GuideComponent = GuideComponent;
196
+ exports.default = exports.GuideComponent;
package/lib/guide.d.ts ADDED
@@ -0,0 +1,7 @@
1
+ import React from 'react';
2
+ declare type Props = {
3
+ className: string;
4
+ accordion?: boolean;
5
+ };
6
+ declare const Guide: React.ForwardRefExoticComponent<Props & React.RefAttributes<HTMLDivElement>>;
7
+ export default Guide;
package/lib/guide.js ADDED
@@ -0,0 +1,117 @@
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
+ var __rest = (this && this.__rest) || function (s, e) {
41
+ var t = {};
42
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
43
+ t[p] = s[p];
44
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
45
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
46
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
47
+ t[p[i]] = s[p[i]];
48
+ }
49
+ return t;
50
+ };
51
+ var __importDefault = (this && this.__importDefault) || function (mod) {
52
+ return (mod && mod.__esModule) ? mod : { "default": mod };
53
+ };
54
+ Object.defineProperty(exports, "__esModule", { value: true });
55
+ var knowledge_widget_adapters_1 = require("@telia-ace/knowledge-widget-adapters");
56
+ var knowledge_widget_types_grid_1 = require("@telia-ace/knowledge-widget-types-grid");
57
+ var knowledge_widget_ui_1 = require("@telia-ace/knowledge-widget-ui");
58
+ var widget_utilities_1 = require("@telia-ace/widget-utilities");
59
+ var react_1 = __importStar(require("react"));
60
+ var styled_components_1 = __importStar(require("styled-components"));
61
+ var answer_version_picker_1 = __importDefault(require("./answer-version-picker"));
62
+ var feedback_1 = __importDefault(require("./feedback"));
63
+ var toolbar_1 = __importDefault(require("./toolbar"));
64
+ var Guide = (0, react_1.forwardRef)(function (_a, ref) {
65
+ var className = _a.className, _b = _a.accordion, accordion = _b === void 0 ? false : _b, other = __rest(_a, ["className", "accordion"]);
66
+ var _c = (0, knowledge_widget_ui_1.useProperties)(), _d = _c.loading, loading = _d === void 0 ? false : _d, _e = _c.dialog, dialog = _e === void 0 ? [] : _e, _f = _c.contactMethods, contactMethods = _f === void 0 ? [] : _f, _g = _c.showHeader, showHeader = _g === void 0 ? true : _g, _h = _c.showAnswerVersions, showAnswerVersions = _h === void 0 ? false : _h, _j = _c.defaultAnswerVersionLabel, defaultAnswerVersionLabel = _j === void 0 ? 'Default' : _j, backButtonLabel = _c.backButtonLabel, metadataByLabel = _c.metadataByLabel, metadataModifiedLabel = _c.metadataModifiedLabel, metadataPublishedLabel = _c.metadataPublishedLabel, availablePerspectives = _c.availablePerspectives, metadata = _c.metadata, toolbar = _c.toolbar, guide = _c.guide, error = _c.error;
67
+ var connection = (0, knowledge_widget_ui_1.useRouteData)().params.connection;
68
+ var container = (0, knowledge_widget_ui_1.useContainer)();
69
+ var children = (0, knowledge_widget_ui_1.useChildren)();
70
+ var dispatch = (0, knowledge_widget_ui_1.useDispatch)();
71
+ var handleBackButtonClick = (0, react_1.useCallback)(function () {
72
+ dispatch('back');
73
+ }, [dispatch]);
74
+ if (!guide && !error && !loading) {
75
+ return (0, knowledge_widget_ui_1.createEmptyComponent)(container, __assign(__assign({}, other), { className: (0, widget_utilities_1.appendClassNames)(className, 'humany-guide') }));
76
+ }
77
+ var _k = guide || {}, _l = _k.id, id = _l === void 0 ? '' : _l, _m = _k.title, title = _m === void 0 ? '' : _m, _o = _k.body, body = _o === void 0 ? '' : _o, _p = _k.translations, translations = _p === void 0 ? {} : _p;
78
+ if (error && error.status === 404) {
79
+ return react_1.default.createElement(knowledge_widget_types_grid_1.NotFound, { showSearch: false });
80
+ }
81
+ var showBackButton = !!accordion && !!connection;
82
+ var language = Object.keys(translations).find(function (key) { return translations[key] === "".concat(id); });
83
+ return (react_1.default.createElement(Wrapper, __assign({ ref: ref }, other, { "data-loading": loading, className: (0, widget_utilities_1.appendClassNames)(className, 'humany-guide') }),
84
+ react_1.default.createElement(Content, { "data-loading": loading, accordion: accordion ? 'true' : 'false', className: "humany-guide-content" },
85
+ ((showAnswerVersions && guide) || !!toolbar) && (react_1.default.createElement(Top, { className: "humany-guide-top" },
86
+ showAnswerVersions && guide && (react_1.default.createElement(answer_version_picker_1.default, { defaultAnswerVersionLabel: defaultAnswerVersionLabel, availablePerspectives: availablePerspectives, guide: guide })),
87
+ !!toolbar && react_1.default.createElement(toolbar_1.default, { dispatch: dispatch }))),
88
+ !!(title || body) && (react_1.default.createElement(Body, { className: "humany-guide-body", accordion: accordion ? 'true' : 'false', header: (showHeader && title) || undefined, html: body, htmlParseInstruction: (0, knowledge_widget_ui_1.guideRenderInstructions)(container, dialog), lang: language })),
89
+ dialog && body.indexOf('h-option-link') === -1 && (react_1.default.createElement(StyledDialogList, { dialog: dialog })),
90
+ react_1.default.createElement(StyledContactList, { backButtonShown: showBackButton ? 'true' : 'false', contactMethods: contactMethods, dispatch: dispatch, guideId: guide && guide.id }),
91
+ !contactMethods.length && (react_1.default.createElement(feedback_1.default, { backButtonShown: showBackButton, accordion: accordion })),
92
+ showBackButton && (react_1.default.createElement(BackButton, { "aria-label": backButtonLabel, onClick: handleBackButtonClick },
93
+ react_1.default.createElement(Caret, { width: "7", height: "13", viewBox: "0 0 7 13", fill: "none", xmlns: "http://www.w3.org/2000/svg" },
94
+ react_1.default.createElement("line", { x1: "6.64645", y1: "12.5513", x2: "0.648357", y2: "6.55319" }),
95
+ react_1.default.createElement("line", { x1: "0.646447", y1: "6.64455", x2: "6.64454", y2: "0.646465" })),
96
+ backButtonLabel && react_1.default.createElement("span", null, backButtonLabel))),
97
+ metadata && (react_1.default.createElement(StyledMetadata, __assign({}, metadata, { modified: guide === null || guide === void 0 ? void 0 : guide.modified, published: guide === null || guide === void 0 ? void 0 : guide.published, modifiedBy: guide === null || guide === void 0 ? void 0 : guide.modifiedBy, publishedBy: guide === null || guide === void 0 ? void 0 : guide.publishedBy, byLabel: metadataByLabel, modifiedLabel: metadataModifiedLabel, publishedLabel: metadataPublishedLabel }))),
98
+ children.map(function (child) { return (react_1.default.createElement(StyledComponents, __assign({ key: child.id, id: child.id, branch: "default" }, { embedded: true }))); })),
99
+ react_1.default.createElement(knowledge_widget_ui_1.Loader, { loading: loading })));
100
+ });
101
+ exports.default = Guide;
102
+ var Wrapper = styled_components_1.default.div(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n ", "\n min-width: 0;\n"], ["\n ", "\n min-width: 0;\n"])), knowledge_widget_ui_1.loadingOpacity);
103
+ var Body = (0, styled_components_1.default)(knowledge_widget_ui_1.Paragraph)(templateObject_3 || (templateObject_3 = __makeTemplateObject(["\n ", "\n ", "\n display: block;\n line-height: 1.6em;\n ", "\n\n p {\n font-weight: 300;\n font-size: ", ";\n color: ", ";\n a {\n display: inline;\n }\n }\n"], ["\n ", "\n ", "\n display: block;\n line-height: 1.6em;\n ", "\n\n p {\n font-weight: 300;\n font-size: ", ";\n color: ", ";\n a {\n display: inline;\n }\n }\n"])), knowledge_widget_ui_1.genericHtml, function (p) { var _a; return "padding: ".concat((_a = p.theme.sizes) === null || _a === void 0 ? void 0 : _a.large, ";"); }, (0, knowledge_widget_ui_1.headingElement)('h1', (0, styled_components_1.css)(templateObject_2 || (templateObject_2 = __makeTemplateObject(["\n font-size: ", ";\n font-weight: normal;\n line-height: 1.6em;\n line-height: 1.6em;\n margin: 0 0 ", ";\n "], ["\n font-size: ", ";\n font-weight: normal;\n line-height: 1.6em;\n line-height: 1.6em;\n margin: 0 0 ", ";\n "])), function (p) { var _a; return (_a = p.theme.fonts) === null || _a === void 0 ? void 0 : _a.large; }, 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.fonts) === null || _a === void 0 ? void 0 : _a.normal; }, function (p) { var _a; return (_a = p.theme.colors) === null || _a === void 0 ? void 0 : _a.text; });
104
+ var StyledContactList = (0, styled_components_1.default)(knowledge_widget_adapters_1.ContactList)(templateObject_4 || (templateObject_4 = __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, ";"); });
105
+ var StyledDialogList = (0, styled_components_1.default)(knowledge_widget_ui_1.DialogList)(templateObject_5 || (templateObject_5 = __makeTemplateObject(["\n ", "\n display: block;\n"], ["\n ", "\n display: block;\n"])), function (p) { var _a, _b; return "padding: 0 ".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, ";"); });
106
+ var Top = styled_components_1.default.div(templateObject_6 || (templateObject_6 = __makeTemplateObject(["\n ", "\n display: flex;\n justify-content: space-between;\n align-items: center;\n border-bottom: ", ";\n border-radius: ", " 0 0;\n background-color: #ffffff;\n"], ["\n ", "\n display: flex;\n justify-content: space-between;\n align-items: center;\n border-bottom: ", ";\n border-radius: ", " 0 0;\n background-color: #ffffff;\n"])), function (p) { var _a, _b; return "padding: calc(".concat((_a = p.theme.sizes) === null || _a === void 0 ? void 0 : _a.normal, "*2) ").concat((_b = p.theme.sizes) === null || _b === void 0 ? void 0 : _b.large, ";"); }, function (p) { return p.theme.border; }, function (p) { return "".concat(p.theme.borderRadius, " ").concat(p.theme.borderRadius); });
107
+ var Content = styled_components_1.default.div(templateObject_8 || (templateObject_8 = __makeTemplateObject(["\n ", "\n display: block;\n > a {\n ", "\n }\n\n ", "\n"], ["\n ", "\n display: block;\n > a {\n ", "\n }\n\n ", "\n"])), knowledge_widget_ui_1.contentBox, knowledge_widget_adapters_1.contactLink, function (p) {
108
+ return p.accordion === 'true' && (0, styled_components_1.css)(templateObject_7 || (templateObject_7 = __makeTemplateObject(["\n white-space: normal;\n box-shadow: none;\n background-color: #fafafa;\n "], ["\n white-space: normal;\n box-shadow: none;\n background-color: #fafafa;\n "])));
109
+ });
110
+ var StyledMetadata = (0, styled_components_1.default)(knowledge_widget_ui_1.Metadata)(templateObject_9 || (templateObject_9 = __makeTemplateObject(["\n display: block;\n ", "\n font-weight: 300;\n font-size: ", ";\n color: ", ";\n border-top: ", ";\n"], ["\n display: block;\n ", "\n font-weight: 300;\n font-size: ", ";\n color: ", ";\n border-top: ", ";\n"])), function (p) { var _a, _b; return "padding: calc(".concat((_a = p.theme.sizes) === null || _a === void 0 ? void 0 : _a.normal, "*2) ").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; }, function (p) { var _a; return (_a = p.theme.colors) === null || _a === void 0 ? void 0 : _a.text; }, function (p) { return p.theme.border; });
111
+ var StyledComponents = (0, styled_components_1.default)(knowledge_widget_types_grid_1.Component)(templateObject_10 || (templateObject_10 = __makeTemplateObject(["\n border-top: ", ";\n"], ["\n border-top: ", ";\n"])), function (p) { return p.theme.border; });
112
+ var BackButton = (0, styled_components_1.default)(knowledge_widget_ui_1.Button)(templateObject_12 || (templateObject_12 = __makeTemplateObject(["\n ", "\n color: ", ";\n text-decoration: underline;\n font-size: ", ";\n span {\n font-weight: 300;\n }\n &:focus {\n ", ";\n }\n"], ["\n ", "\n color: ", ";\n text-decoration: underline;\n font-size: ", ";\n span {\n font-weight: 300;\n }\n &:focus {\n ", ";\n }\n"])), function (p) { var _a, _b; return "padding: ".concat((_a = p.theme.sizes) === null || _a === void 0 ? void 0 : _a.normal, " calc(").concat((_b = p.theme.sizes) === null || _b === void 0 ? void 0 : _b.normal, " * 2);"); }, function (p) { var _a; return (_a = p.theme.colors) === null || _a === void 0 ? void 0 : _a.primary; }, function (p) { var _a; return (_a = p.theme.fonts) === null || _a === void 0 ? void 0 : _a.normal; }, function (p) {
113
+ var _a;
114
+ return ((_a = p.theme.accessibility) === null || _a === void 0 ? void 0 : _a.isTabbing) && (0, styled_components_1.css)(templateObject_11 || (templateObject_11 = __makeTemplateObject(["\n ", "\n padding: ", ";\n "], ["\n ", "\n padding: ", ";\n "])), knowledge_widget_ui_1.linkTabStyle, function (p) { var _a, _b; return "calc(".concat((_a = p.theme.sizes) === null || _a === void 0 ? void 0 : _a.small, " / 2) ").concat((_b = p.theme.sizes) === null || _b === void 0 ? void 0 : _b.small); });
115
+ });
116
+ var Caret = styled_components_1.default.svg(templateObject_13 || (templateObject_13 = __makeTemplateObject(["\n margin-right: ", ";\n line {\n stroke: ", ";\n }\n"], ["\n margin-right: ", ";\n line {\n stroke: ", ";\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.colors) === null || _a === void 0 ? void 0 : _a.primary; });
117
+ var templateObject_1, templateObject_2, templateObject_3, templateObject_4, templateObject_5, templateObject_6, templateObject_7, templateObject_8, templateObject_9, templateObject_10, templateObject_11, templateObject_12, templateObject_13;
package/lib/index.d.ts ADDED
@@ -0,0 +1,2 @@
1
+ import GuideComponent from './guide-component';
2
+ export default GuideComponent;
package/lib/index.js ADDED
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ var guide_component_1 = __importDefault(require("./guide-component"));
7
+ exports.default = guide_component_1.default;
@@ -0,0 +1,17 @@
1
+ import { LanguageProperties } from '@telia-ace/knowledge-widget-component-utilities';
2
+ import { PickerTypes } from '@telia-ace/knowledge-widget-core';
3
+ import React from 'react';
4
+ import { GuideProps } from './guide-component';
5
+ export declare type LanguageListItem = {
6
+ id: string;
7
+ key: string;
8
+ label: string;
9
+ };
10
+ declare type Props = Merge<{
11
+ header?: string;
12
+ tooltip?: string;
13
+ guide: GuideProps;
14
+ picker?: PickerTypes;
15
+ }, LanguageProperties>;
16
+ declare const Languages: React.FC<Props>;
17
+ export default Languages;
@@ -0,0 +1,110 @@
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
+ var __rest = (this && this.__rest) || function (s, e) {
41
+ var t = {};
42
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
43
+ t[p] = s[p];
44
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
45
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
46
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
47
+ t[p[i]] = s[p[i]];
48
+ }
49
+ return t;
50
+ };
51
+ Object.defineProperty(exports, "__esModule", { value: true });
52
+ var knowledge_widget_core_1 = require("@telia-ace/knowledge-widget-core");
53
+ var knowledge_widget_ui_1 = require("@telia-ace/knowledge-widget-ui");
54
+ var widget_utilities_1 = require("@telia-ace/widget-utilities");
55
+ var react_1 = __importStar(require("react"));
56
+ var styled_components_1 = __importStar(require("styled-components"));
57
+ var getCurrentLanguageLabel = function (guide, languages) {
58
+ var _a;
59
+ return ((_a = languages.find(function (l) { return l.id === guide.id; })) === null || _a === void 0 ? void 0 : _a.label) || '';
60
+ };
61
+ var Languages = function (_a) {
62
+ var header = _a.header, tooltip = _a.tooltip, _b = _a.picker, picker = _b === void 0 ? knowledge_widget_core_1.PickerTypes.NONE : _b, guide = _a.guide, other = __rest(_a, ["header", "tooltip", "picker", "guide"]);
63
+ var _c = (0, knowledge_widget_ui_1.useRouteData)(), name = _c.name, params = _c.params;
64
+ var items = (0, react_1.useMemo)(function () {
65
+ return Object.keys(guide.translations || {}).reduce(function (acc, key) {
66
+ var item = {};
67
+ item.key = key;
68
+ item.id = (guide.translations || {})[key];
69
+ item.label = other["".concat(key, "LanguageLabel")];
70
+ if (item.id || item.label) {
71
+ acc.push(item);
72
+ }
73
+ return acc;
74
+ }, []);
75
+ }, [guide, other]);
76
+ if (!items.length) {
77
+ return null;
78
+ }
79
+ var currentLanguage = getCurrentLanguageLabel(guide, items);
80
+ var trigger = (react_1.default.createElement(Trigger, { tabIndex: 0, title: tooltip, "data-has-symbol": "true", "data-has-label": picker === knowledge_widget_core_1.PickerTypes.DROPDOWN && currentLanguage ? 'true' : 'false' },
81
+ picker === knowledge_widget_core_1.PickerTypes.DROPDOWN && (react_1.default.createElement(react_1.default.Fragment, null,
82
+ currentLanguage && react_1.default.createElement(LanguageButtonText, null, currentLanguage),
83
+ react_1.default.createElement(LanguageCaretSymbolBadge, { symbol: { type: 'Svg', content: 'caret-down' }, size: 11 }))),
84
+ picker === knowledge_widget_core_1.PickerTypes.DRAWER && (react_1.default.createElement(react_1.default.Fragment, null,
85
+ react_1.default.createElement(ColoredSymbolBadge, { symbol: { type: 'Svg', content: 'language' }, size: 20 })))));
86
+ var renderListItem = function (_a) {
87
+ var label = _a.label, key = _a.key, id = _a.id;
88
+ return (react_1.default.createElement("li", { key: key, "data-language": key },
89
+ react_1.default.createElement(LanguageLink, { tabIndex: 0, text: label, routeName: name, selected: guide.id === id, params: (0, widget_utilities_1.createParams)(__assign(__assign({}, params), { connection: undefined, guide: id })) })));
90
+ };
91
+ if (picker === knowledge_widget_core_1.PickerTypes.DROPDOWN) {
92
+ return (react_1.default.createElement(StyledDropdownList, { className: "humany-guide-languages-dropdown-list", header: header, items: items, trigger: trigger, renderItem: renderListItem }));
93
+ }
94
+ if (picker === knowledge_widget_core_1.PickerTypes.DRAWER) {
95
+ return (react_1.default.createElement(knowledge_widget_ui_1.DrawerList, { className: "humany-guide-languages-drawer-list", animation: { type: knowledge_widget_ui_1.DrawerAnimationType.SlideInBottom }, header: header, items: items, trigger: trigger, renderItem: renderListItem }));
96
+ }
97
+ return null;
98
+ };
99
+ exports.default = Languages;
100
+ var Trigger = (0, styled_components_1.default)(knowledge_widget_ui_1.StyledListButton)(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n &&& {\n margin: 0 ", " 0 0;\n }\n"], ["\n &&& {\n margin: 0 ", " 0 0;\n }\n"])), function (p) { var _a; return "calc(".concat((_a = p.theme.sizes) === null || _a === void 0 ? void 0 : _a.small, " * 2)"); });
101
+ var ColoredSymbolBadge = (0, styled_components_1.default)(knowledge_widget_ui_1.SymbolBadge)(templateObject_2 || (templateObject_2 = __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; });
102
+ var LanguageButtonText = (0, styled_components_1.default)(knowledge_widget_ui_1.Text)(templateObject_3 || (templateObject_3 = __makeTemplateObject(["\n margin: 0 ", " 0 0;\n font-size: ", ";\n"], ["\n margin: 0 ", " 0 0;\n font-size: ", ";\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.fonts) === null || _a === void 0 ? void 0 : _a.normal; });
103
+ var LanguageCaretSymbolBadge = (0, styled_components_1.default)(knowledge_widget_ui_1.SymbolBadge)(templateObject_4 || (templateObject_4 = __makeTemplateObject(["\n align-self: flex-end;\n stroke-width: 2px;\n stroke-linecap: round;\n\n && {\n width: 0.6em;\n height: 1em;\n }\n line {\n stroke: ", ";\n }\n"], ["\n align-self: flex-end;\n stroke-width: 2px;\n stroke-linecap: round;\n\n && {\n width: 0.6em;\n height: 1em;\n }\n line {\n stroke: ", ";\n }\n"])), function (p) { var _a; return (_a = p.theme.colors) === null || _a === void 0 ? void 0 : _a.text; });
104
+ var StyledDropdownList = (0, styled_components_1.default)(knowledge_widget_ui_1.DropdownList)(templateObject_5 || (templateObject_5 = __makeTemplateObject(["\n display: block;\n min-height: auto;\n"], ["\n display: block;\n min-height: auto;\n"])));
105
+ var LanguageLink = (0, styled_components_1.default)(knowledge_widget_ui_1.TextLink)(templateObject_7 || (templateObject_7 = __makeTemplateObject(["\n color: ", ";\n ", "\n\n &:focus {\n ", "\n }\n"], ["\n color: ", ";\n ", "\n\n &:focus {\n ", "\n }\n"])), function (p) { var _a, _b; return (p.selected ? (_a = p.theme.colors) === null || _a === void 0 ? void 0 : _a.primary : (_b = p.theme.colors) === null || _b === void 0 ? void 0 : _b.text); }, function (p) { return p.selected && 'font-weight: bold;'; }, function (p) {
106
+ var _a;
107
+ return ((_a = p.theme.accessibility) === null || _a === void 0 ? void 0 : _a.isTabbing)
108
+ ? (0, styled_components_1.css)(templateObject_6 || (templateObject_6 = __makeTemplateObject(["\n ", "\n text-decoration: underline;\n "], ["\n ", "\n text-decoration: underline;\n "])), knowledge_widget_ui_1.paddedBorderTabStyle) : 'outline: none;';
109
+ });
110
+ var templateObject_1, templateObject_2, templateObject_3, templateObject_4, templateObject_5, templateObject_6, templateObject_7;
@@ -0,0 +1,8 @@
1
+ import { DispatchAction } from '@telia-ace/knowledge-widget-ui';
2
+ import React from 'react';
3
+ declare type Props = {
4
+ className?: string;
5
+ dispatch: DispatchAction;
6
+ };
7
+ declare const Toolbar: React.FC<Props>;
8
+ export default Toolbar;
package/lib/toolbar.js ADDED
@@ -0,0 +1,62 @@
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 __rest = (this && this.__rest) || function (s, e) {
18
+ var t = {};
19
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
20
+ t[p] = s[p];
21
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
22
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
23
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
24
+ t[p[i]] = s[p[i]];
25
+ }
26
+ return t;
27
+ };
28
+ var __importDefault = (this && this.__importDefault) || function (mod) {
29
+ return (mod && mod.__esModule) ? mod : { "default": mod };
30
+ };
31
+ Object.defineProperty(exports, "__esModule", { value: true });
32
+ var knowledge_widget_core_1 = require("@telia-ace/knowledge-widget-core");
33
+ var knowledge_widget_ui_1 = require("@telia-ace/knowledge-widget-ui");
34
+ var widget_utilities_1 = require("@telia-ace/widget-utilities");
35
+ var react_1 = __importDefault(require("react"));
36
+ var styled_components_1 = __importDefault(require("styled-components"));
37
+ var categories_1 = __importDefault(require("./categories"));
38
+ var functions_1 = __importDefault(require("./functions"));
39
+ var languages_1 = __importDefault(require("./languages"));
40
+ var isEmpty = function (toolbar) {
41
+ var _a = toolbar.allowCopy, allowCopy = _a === void 0 ? false : _a, _b = toolbar.allowPrint, allowPrint = _b === void 0 ? false : _b, _c = toolbar.guideCategories, guideCategories = _c === void 0 ? false : _c, _d = toolbar.language, language = _d === void 0 ? false : _d, _e = toolbar.showFavoriteToggle, showFavoriteToggle = _e === void 0 ? false : _e, _f = toolbar.picker, picker = _f === void 0 ? knowledge_widget_core_1.PickerTypes.NONE : _f;
42
+ if ((!allowCopy && !allowPrint && !language && !showFavoriteToggle && !guideCategories) ||
43
+ picker === knowledge_widget_core_1.PickerTypes.NONE) {
44
+ return true;
45
+ }
46
+ return false;
47
+ };
48
+ var Toolbar = function (_a) {
49
+ var _b = _a.className, className = _b === void 0 ? '' : _b, dispatch = _a.dispatch;
50
+ var _c = (0, knowledge_widget_ui_1.useProperties)(), toolbarLanguageHeader = _c.toolbarLanguageHeader, toolbarFunctionsHeader = _c.toolbarFunctionsHeader, toolbarLanguageTooltip = _c.toolbarLanguageTooltip, toolbarFunctionsTooltip = _c.toolbarFunctionsTooltip, toolbarFunctionsCloseButtonAriaLabel = _c.toolbarFunctionsCloseButtonAriaLabel, printActionLabel = _c.printActionLabel, copyActionLabel = _c.copyActionLabel, addFavoriteTooltip = _c.addFavoriteTooltip, removeFavoriteCancelLabel = _c.removeFavoriteCancelLabel, removeFavoriteConfirmLabel = _c.removeFavoriteConfirmLabel, removeFavoriteHeader = _c.removeFavoriteHeader, removeFavoriteLabel = _c.removeFavoriteLabel, removeFavoriteTooltip = _c.removeFavoriteTooltip, guide = _c.guide, toolbar = _c.toolbar, other = __rest(_c, ["toolbarLanguageHeader", "toolbarFunctionsHeader", "toolbarLanguageTooltip", "toolbarFunctionsTooltip", "toolbarFunctionsCloseButtonAriaLabel", "printActionLabel", "copyActionLabel", "addFavoriteTooltip", "removeFavoriteCancelLabel", "removeFavoriteConfirmLabel", "removeFavoriteHeader", "removeFavoriteLabel", "removeFavoriteTooltip", "guide", "toolbar"]);
51
+ if (!guide || !toolbar || isEmpty(toolbar)) {
52
+ return null;
53
+ }
54
+ var language = toolbar.language, guideCategories = toolbar.guideCategories, allowCopy = toolbar.allowCopy, allowPrint = toolbar.allowPrint, showFavoriteToggle = toolbar.showFavoriteToggle, picker = toolbar.picker;
55
+ return (react_1.default.createElement(Wrapper, { className: (0, widget_utilities_1.appendClassNames)('humany-guide-toolbar', className) },
56
+ language && Object.keys(guide.translations || {}).length > 1 && (react_1.default.createElement(languages_1.default, __assign({ guide: guide, header: toolbarLanguageHeader, tooltip: toolbarLanguageTooltip, picker: picker }, other))),
57
+ guideCategories && react_1.default.createElement(categories_1.default, { guide: guide, toolbar: toolbar }),
58
+ (allowCopy || allowPrint || showFavoriteToggle) && (react_1.default.createElement(functions_1.default, { guide: guide, header: toolbarFunctionsHeader, tooltip: toolbarFunctionsTooltip, printActionLabel: printActionLabel, copyActionLabel: copyActionLabel, addFavoriteTooltip: addFavoriteTooltip, removeFavoriteCancelLabel: removeFavoriteCancelLabel, removeFavoriteConfirmLabel: removeFavoriteConfirmLabel, removeFavoriteHeader: removeFavoriteHeader, removeFavoriteLabel: removeFavoriteLabel, removeFavoriteTooltip: removeFavoriteTooltip, toolbarFunctionsCloseButtonAriaLabel: toolbarFunctionsCloseButtonAriaLabel, allowCopy: allowCopy, allowPrint: allowPrint, showFavoriteToggle: showFavoriteToggle, picker: picker, dispatch: dispatch }))));
59
+ };
60
+ exports.default = Toolbar;
61
+ var Wrapper = styled_components_1.default.div(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n display: flex;\n align-items: center;\n justify-content: space-between;\n margin: 0 0 0 auto;\n\n > :not(:last-child) {\n margin: 0 calc(", " * 2) 0 0;\n }\n"], ["\n display: flex;\n align-items: center;\n justify-content: space-between;\n margin: 0 0 0 auto;\n\n > :not(:last-child) {\n margin: 0 calc(", " * 2) 0 0;\n }\n"])), function (p) { var _a; return (_a = p.theme.sizes) === null || _a === void 0 ? void 0 : _a.small; });
62
+ var templateObject_1;
@@ -0,0 +1,4 @@
1
+ import { ComponentNodeController } from '@telia-ace/knowledge-widget-core';
2
+ import { Container } from '@webprovisions/platform';
3
+ declare const _default: (container: Container, controller: ComponentNodeController) => void;
4
+ export default _default;
@@ -0,0 +1,54 @@
1
+ "use strict";
2
+ var __assign = (this && this.__assign) || function () {
3
+ __assign = Object.assign || function(t) {
4
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
5
+ s = arguments[i];
6
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
+ t[p] = s[p];
8
+ }
9
+ return t;
10
+ };
11
+ return __assign.apply(this, arguments);
12
+ };
13
+ Object.defineProperty(exports, "__esModule", { value: true });
14
+ var knowledge_widget_component_utilities_1 = require("@telia-ace/knowledge-widget-component-utilities");
15
+ var knowledge_widget_types_grid_1 = require("@telia-ace/knowledge-widget-types-grid");
16
+ exports.default = (function (container, controller) {
17
+ controller.actions.create('feedback', function (input) {
18
+ var type = input === 'negative' ? knowledge_widget_types_grid_1.FeedbackType.Negative : knowledge_widget_types_grid_1.FeedbackType.Positive;
19
+ var _a = controller.properties(), guide = _a.guide, _b = _a.submitButtonLabel, submitButtonLabel = _b === void 0 ? 'Submit' : _b;
20
+ if (guide) {
21
+ var connection_1 = guide.connection, id_1 = guide.id, hasHandover_1 = guide.hasHandover;
22
+ controller.writeProperties({
23
+ feedbackGiven: input,
24
+ loading: hasHandover_1 && type === knowledge_widget_types_grid_1.FeedbackType.Negative,
25
+ });
26
+ var events = container.get('$widget').events;
27
+ events.dispatch('tracking:feedback-given', {
28
+ guide: guide,
29
+ categories: guide.categories,
30
+ feedbackType: type.toLowerCase(),
31
+ });
32
+ return container.getAsync('dataClient').then(function (dataClient) {
33
+ return dataClient.feedback(id_1, connection_1, type).then(function () {
34
+ if (hasHandover_1 && type === knowledge_widget_types_grid_1.FeedbackType.Negative) {
35
+ return dataClient
36
+ .fetch(knowledge_widget_types_grid_1.DataType.ContactMethods, { guideId: id_1 })
37
+ .then(function (_a) {
38
+ var contactMethods = _a.contactMethods;
39
+ return controller.actions.dispatch('handover', {
40
+ handoverContactMethods: contactMethods.map(function (cm) { return (__assign(__assign({}, cm), { body: (0, knowledge_widget_component_utilities_1.updateForm)(cm, {
41
+ submit: submitButtonLabel,
42
+ }) })); }),
43
+ loading: false,
44
+ });
45
+ });
46
+ }
47
+ });
48
+ });
49
+ }
50
+ });
51
+ controller.actions.create('handover', function (input) {
52
+ return controller.writeProperties(__assign(__assign({}, input), { loading: false }));
53
+ });
54
+ });
@@ -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;