@telia-ace/knowledge-widget-components-guide 1.0.39-next.3 → 1.0.39-next.5

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/dist/index.js CHANGED
@@ -1,5 +1,5 @@
1
- var C = Object.defineProperty, T = Object.defineProperties;
2
- var $ = Object.getOwnPropertyDescriptors;
1
+ var C = Object.defineProperty, $ = Object.defineProperties;
2
+ var T = Object.getOwnPropertyDescriptors;
3
3
  var b = Object.getOwnPropertySymbols;
4
4
  var x = Object.prototype.hasOwnProperty, M = Object.prototype.propertyIsEnumerable;
5
5
  var v = (t, e, i) => e in t ? C(t, e, { enumerable: !0, configurable: !0, writable: !0, value: i }) : t[e] = i, u = (t, e) => {
@@ -9,31 +9,32 @@ var v = (t, e, i) => e in t ? C(t, e, { enumerable: !0, configurable: !0, writab
9
9
  for (var i of b(e))
10
10
  M.call(e, i) && v(t, i, e[i]);
11
11
  return t;
12
- }, h = (t, e) => T(t, $(e));
13
- import { updateForm as y, useForm as B, useExpand as F } from "@telia-ace/knowledge-widget-component-utilities";
14
- import { createEventSubscriber as G, extendComponent as H } from "@telia-ace/knowledge-widget-core";
15
- import { FeedbackType as f, DataType as k } from "@telia-ace/knowledge-widget-types-grid";
12
+ }, h = (t, e) => $(t, T(e));
13
+ import { updateForm as k, useForm as D, useExpand as B } from "@telia-ace/knowledge-widget-component-utilities";
14
+ import { createEventSubscriber as F, extendComponent as G } from "@telia-ace/knowledge-widget-core";
15
+ import { FeedbackType as f, DataType as y, DataClient as H } from "@telia-ace/knowledge-widget-types-grid";
16
16
  import { createReactComponent as P } from "@telia-ace/knowledge-widget-ui";
17
17
  import * as w from "clipboard-polyfill";
18
- const A = (t, e) => {
18
+ import { DataClient as E } from "@telia-ace/knowledge-data-client";
19
+ const I = (t, e) => {
19
20
  e.actions.create("feedback", (i) => {
20
- const d = i === "negative" ? f.Negative : f.Positive, { guide: a, submitButtonLabel: s = "Submit" } = e.properties();
21
+ const o = i === "negative" ? f.Negative : f.Positive, { guide: a, submitButtonLabel: s = "Submit" } = e.properties();
21
22
  if (a) {
22
23
  const { connection: r, id: n, hasHandover: c } = a;
23
24
  e.writeProperties({
24
25
  feedbackGiven: i,
25
- loading: c && d === f.Negative
26
+ loading: c && o === f.Negative
26
27
  });
27
- const { events: o } = t.get("$widget");
28
- return o.dispatch("tracking:feedback-given", {
28
+ const { events: d } = t.get("$widget");
29
+ return d.dispatch("tracking:feedback-given", {
29
30
  guide: a,
30
31
  categories: a.categories,
31
- feedbackType: d.toLowerCase()
32
- }), t.getAsync("dataClient").then((g) => g.feedback(n, r, d).then(() => {
33
- if (c && d === f.Negative)
34
- return g.fetch(k.ContactMethods, { guideId: n }).then(({ contactMethods: p }) => e.actions.dispatch("handover", {
32
+ feedbackType: o.toLowerCase()
33
+ }), E.getInstance(t).then((g) => g.feedback(n, r, o).then(() => {
34
+ if (c && o === f.Negative)
35
+ return g.fetch(y.ContactMethods, { guideId: n }).then(({ contactMethods: p }) => e.actions.dispatch("handover", {
35
36
  handoverContactMethods: p.map((m) => h(u({}, m), {
36
- body: y(m, {
37
+ body: k(m, {
37
38
  submit: s
38
39
  })
39
40
  })),
@@ -42,22 +43,22 @@ const A = (t, e) => {
42
43
  }));
43
44
  }
44
45
  }), e.actions.create("handover", (i) => e.writeProperties(h(u({}, i), { loading: !1 })));
45
- }, E = ({ title: t, body: e }) => {
46
+ }, L = ({ title: t, body: e }) => {
46
47
  let i = "";
47
48
  t && t.length && (i = t.trim()), e && e.length && (i = `${i.trim()}
48
49
  ${e.trim()}`);
49
- const d = document.createElement("div");
50
- d.innerHTML = i;
51
- const a = Array.from(d.getElementsByTagName("a"));
52
- let s = d.innerText;
50
+ const o = document.createElement("div");
51
+ o.innerHTML = i;
52
+ const a = Array.from(o.getElementsByTagName("a"));
53
+ let s = o.innerText;
53
54
  return a.forEach((r) => {
54
55
  s = s.replace(r.innerText, `[${r.href}] (${r.innerText})`);
55
56
  }), s;
56
- }, L = ({ title: t, body: e }) => {
57
+ }, N = ({ title: t, body: e }) => {
57
58
  let i = "";
58
59
  return t && t.length && (i = `<h2>${t.trim()}</h2>`), e && e.length && (i = `${i.trim()}${e.trim()}`), i.trim();
59
- }, D = (t) => {
60
- const { events: e } = t.get("$widget"), [i, d] = G(e);
60
+ }, S = (t) => {
61
+ const { events: e } = t.get("$widget"), [i, o] = F(e);
61
62
  return P(t, "guide", import("./guide.35a46def.js"), (a) => {
62
63
  const s = (r) => {
63
64
  a.writeProperties({
@@ -68,8 +69,8 @@ ${e.trim()}`);
68
69
  };
69
70
  a.actions.create("copy", (r) => {
70
71
  const n = new w.ClipboardItem({
71
- "text/html": new Blob([L(r)], { type: "text/html" }),
72
- "text/plain": new Blob([E(r)], { type: "text/plain" })
72
+ "text/html": new Blob([N(r)], { type: "text/html" }),
73
+ "text/plain": new Blob([L(r)], { type: "text/plain" })
73
74
  });
74
75
  return w.write([n]).then(() => {
75
76
  e.dispatch("widget:menu-toggled", null);
@@ -84,10 +85,10 @@ ${e.trim()}`);
84
85
  });
85
86
  }), a.actions.create(
86
87
  "fetch",
87
- ({ contactMethods: r = [], dialog: n = [], guide: c, error: o }) => {
88
- if (o)
88
+ ({ contactMethods: r = [], dialog: n = [], guide: c, error: d }) => {
89
+ if (d)
89
90
  return a.actions.dispatch("fetched", {
90
- error: o,
91
+ error: d,
91
92
  guide: void 0,
92
93
  contactMethods: [],
93
94
  feedbackGiven: void 0,
@@ -102,7 +103,7 @@ ${e.trim()}`);
102
103
  feedbackGiven: void 0,
103
104
  handoverContactMethods: [],
104
105
  contactMethods: r.map((l) => h(u({}, l), {
105
- body: y(l, { submit: p })
106
+ body: k(l, { submit: p })
106
107
  }))
107
108
  };
108
109
  return a.actions.dispatch("fetched", h(u({}, m), {
@@ -114,24 +115,24 @@ ${e.trim()}`);
114
115
  s(n);
115
116
  }), i("router:changed", (r, { current: n }) => {
116
117
  s(n.routeData.params);
117
- }), A(t, a), B(t, a), F(a);
118
- }).then(() => H(t, "guide", (a) => {
118
+ }), I(t, a), D(t, a), B(a);
119
+ }).then(() => G(t, "guide", (a) => {
119
120
  a.actions.watch("guide.fetch", (s, r) => {
120
121
  const {
121
122
  params: { guide: n, connection: c }
122
123
  } = s;
123
- return n ? t.getAsync("dataClient").then(
124
- (o) => o.fetch(k.Guide, { connection: c, guideId: n })
125
- ).then(r).catch((o) => {
126
- if (o)
127
- return r(o);
124
+ return n ? H.getInstance(t).then(
125
+ (d) => d.fetch(y.Guide, { connection: c, guideId: n })
126
+ ).then(r).catch((d) => {
127
+ if (d)
128
+ return r(d);
128
129
  }) : r(s);
129
130
  });
130
131
  })).then(() => {
131
- d();
132
+ o();
132
133
  });
133
- }, j = D;
134
+ }, K = S;
134
135
  export {
135
- j as default
136
+ K as default
136
137
  };
137
138
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../src/use-feedback.ts","../src/guide-component.ts"],"sourcesContent":["import { updateForm } from '@telia-ace/knowledge-widget-component-utilities';\nimport { ComponentNodeController } from '@telia-ace/knowledge-widget-core';\nimport {\n ContactsResult,\n DataClient,\n DataType,\n FeedbackType,\n} from '@telia-ace/knowledge-widget-types-grid';\nimport { Container } from '@webprovisions/platform';\nimport { GuideComponentProps } from './guide-component';\n\nexport default (container: Container, controller: ComponentNodeController) => {\n controller.actions.create('feedback', (input: 'negative' | 'positive') => {\n const type = input === 'negative' ? FeedbackType.Negative : FeedbackType.Positive;\n const { guide, submitButtonLabel = 'Submit' } =\n controller.properties<GuideComponentProps>();\n if (guide) {\n const { connection, id, hasHandover } = guide;\n controller.writeProperties({\n feedbackGiven: input,\n loading: hasHandover && type === FeedbackType.Negative,\n });\n\n const { events } = container.get('$widget');\n events.dispatch('tracking:feedback-given', {\n guide,\n categories: guide.categories,\n feedbackType: type.toLowerCase(),\n });\n\n return container.getAsync('dataClient').then((dataClient: DataClient) => {\n return dataClient.feedback(id, connection, type).then(() => {\n if (hasHandover && type === FeedbackType.Negative) {\n return dataClient\n .fetch(DataType.ContactMethods, { guideId: id })\n .then(({ contactMethods }: ContactsResult) => {\n return controller.actions.dispatch('handover', {\n handoverContactMethods: contactMethods.map((cm) => ({\n ...cm,\n body: updateForm(cm, {\n submit: submitButtonLabel,\n }),\n })),\n loading: false,\n });\n });\n }\n });\n });\n }\n });\n\n controller.actions.create('handover', (input) => {\n return controller.writeProperties({ ...input, loading: false });\n });\n};\n","import { ContactMethodType } from '@telia-ace/knowledge-widget-adapters';\nimport {\n FavoriteProperties,\n LanguageProperties,\n MetaDataProperties,\n updateForm,\n useExpand,\n useForm,\n} from '@telia-ace/knowledge-widget-component-utilities';\nimport {\n createEventSubscriber,\n DialogItem,\n extendComponent,\n PickerTypes,\n} from '@telia-ace/knowledge-widget-core';\nimport {\n DataClient,\n DataError,\n DataType,\n GuideResult,\n} from '@telia-ace/knowledge-widget-types-grid';\nimport { createReactComponent } from '@telia-ace/knowledge-widget-ui';\nimport { FormComponentInstanceProperties } from '@telia-ace/widget-forms';\nimport { RoutingService } from '@telia-ace/widget-routing';\nimport { Container, EventManager } from '@webprovisions/platform';\nimport * as clipboard from 'clipboard-polyfill';\nimport useFeedback from './use-feedback';\n\nexport type GuideProps = {\n id: string;\n title: string;\n body: string;\n connection: string;\n categories: number[];\n hasHandover: boolean;\n allowFeedback: boolean;\n perspectives: { [key: string]: string };\n translations?: { [key: string]: string };\n modified?: string;\n published?: string;\n publishedBy?: string | null;\n modifiedBy?: string | null;\n perspective: string | null;\n};\n\nexport type AvailablePerspectives = {\n name: string;\n title: string;\n};\n\nexport type GuideComponentProps = {\n showHeader?: boolean;\n showFeedback?: boolean;\n feedbackDirection?: 'horizontal' | 'vertical';\n feedbackGiven?: 'positive' | 'negative'; // internal\n contactMethods?: ContactMethodType[]; // internal\n handoverContactMethods?: ContactMethodType[]; // internal\n showAnswerVersions?: boolean;\n feedbackHeader?: string;\n contactHeader?: string;\n toolbarFunctionsHeader?: string;\n toolbarLanguageHeader?: string;\n positiveFeedbackLabel?: string;\n negativeFeedbackLabel?: string;\n contactFeedbackLabel?: string;\n feedbackRecognitionLabel?: string;\n defaultAnswerVersionLabel?: string;\n backButtonLabel?: string;\n toolbarFunctionsTooltip?: string;\n toolbarFunctionsCloseButtonAriaLabel?: string;\n copyActionLabel?: string;\n printActionLabel?: string;\n toolbarLanguageTooltip?: string;\n toolbar?: ToolbarProps;\n guide?: GuideProps; // internal\n dialog?: DialogItem[]; // internal\n error?: DataError; // internal\n availablePerspectives?: AvailablePerspectives[]; // internal\n} & FormComponentInstanceProperties &\n FavoriteProperties &\n MetaDataProperties &\n LanguageProperties;\n\nexport type ToolbarProps = {\n language?: boolean;\n guideCategories?: boolean;\n allowCopy?: boolean;\n allowPrint?: boolean;\n showFavoriteToggle?: boolean;\n picker?: PickerTypes;\n};\n\nconst buildPlainText = ({ title, body }: GuideProps): string => {\n let processedHtml = '';\n\n if (title && title.length) {\n processedHtml = title.trim();\n }\n\n if (body && body.length) {\n processedHtml = `${processedHtml.trim()}\\n${body.trim()}`;\n }\n\n const div = document.createElement('div');\n div.innerHTML = processedHtml;\n const links: HTMLAnchorElement[] = Array.from(div.getElementsByTagName('a'));\n\n let plainText = div.innerText;\n\n links.forEach((a) => {\n plainText = plainText.replace(a.innerText, `[${a.href}] (${a.innerText})`);\n });\n\n return plainText;\n};\n\nconst buildHtml = ({ title, body }: GuideProps): string => {\n let processedHtml = '';\n\n if (title && title.length) {\n processedHtml = `<h2>${title.trim()}</h2>`;\n }\n\n if (body && body.length) {\n processedHtml = `${processedHtml.trim()}${body.trim()}`;\n }\n\n return processedHtml.trim();\n};\n\nexport const GuideComponent = (container: Container) => {\n const { events }: { events: EventManager } = container.get('$widget');\n const [subscribe, unsubscribe] = createEventSubscriber(events);\n\n return createReactComponent(container, 'guide', import('./guide'), (component) => {\n const fetch = (params: { [key: string]: any }) => {\n component.writeProperties({\n loading: true,\n error: undefined,\n guide: undefined,\n });\n component.actions.dispatch('fetch', { params });\n };\n\n component.actions.create('copy', (guide: GuideProps) => {\n const item = new clipboard.ClipboardItem({\n 'text/html': new Blob([buildHtml(guide)], { type: 'text/html' }),\n 'text/plain': new Blob([buildPlainText(guide)], { type: 'text/plain' }),\n });\n\n return clipboard.write([item]).then(() => {\n events.dispatch('widget:menu-toggled', null);\n });\n });\n\n component.actions.create('print', () => {\n const elem = document.querySelector('.humany-guide .humany-paragraph');\n const a = window.open('', '', 'height=500, width=500');\n\n events.dispatch('widget:menu-toggled', null);\n if (elem && a) {\n a.document.write(`<html><body>${elem.innerHTML}</body></html>`);\n a.document.close();\n a.print();\n }\n });\n\n component.actions.create('back', (data, options) => {\n if (options.preventDefault) {\n return;\n }\n\n return container.getAsync('router').then((router: RoutingService) => {\n router.goBack();\n });\n });\n\n component.actions.create(\n 'fetch',\n ({ contactMethods = [], dialog = [], guide, error }: GuideResult) => {\n if (error) {\n return component.actions.dispatch('fetched', {\n error,\n guide: undefined,\n contactMethods: [],\n feedbackGiven: undefined,\n handoverContactMethods: [],\n showFeedback: false,\n loading: true,\n });\n }\n const { showFeedback = true, submitButtonLabel = 'Submit' } =\n component.properties<GuideComponentProps>();\n\n const properties: GuideComponentProps = {\n showFeedback,\n dialog,\n guide,\n feedbackGiven: undefined,\n handoverContactMethods: [],\n contactMethods: contactMethods.map((cm) => ({\n ...cm,\n body: updateForm(cm, { submit: submitButtonLabel }),\n })),\n };\n\n return component.actions.dispatch('fetched', {\n ...properties,\n loading: true,\n });\n }\n );\n\n component.actions.create('fetched', (input) => {\n return component.writeProperties({ ...input, loading: false });\n });\n\n container.getAsync('router').then((router) => {\n const { params } = router.getRouteData();\n fetch(params);\n });\n\n subscribe('router:changed', (event: any, { current }: any) => {\n fetch(current.routeData.params);\n });\n\n useFeedback(container, component);\n useForm(container, component);\n useExpand(component);\n })\n .then(() => {\n return extendComponent(container, 'guide', (component) => {\n component.actions.watch('guide.fetch', (input, next) => {\n const {\n params: { guide, connection },\n } = input;\n\n if (guide) {\n return container\n .getAsync('dataClient')\n .then((dataClient: DataClient) =>\n dataClient.fetch(DataType.Guide, { connection, guideId: guide })\n )\n .then(next)\n .catch((error) => {\n if (error) {\n return next(error);\n }\n });\n }\n\n return next(input);\n });\n });\n })\n .then(() => {\n unsubscribe();\n });\n};\n\nexport default GuideComponent;\n"],"names":["useFeedback","container","controller","input","type","FeedbackType","guide","submitButtonLabel","connection","id","hasHandover","events","dataClient","DataType","contactMethods","cm","__spreadProps","__spreadValues","updateForm","buildPlainText","title","body","processedHtml","div","links","plainText","a","buildHtml","GuideComponent","subscribe","unsubscribe","createEventSubscriber","createReactComponent","component","fetch","params","item","clipboard","elem","data","options","router","dialog","error","showFeedback","properties","event","current","useForm","useExpand","extendComponent","next","GuideComponent$1"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../src/use-feedback.ts","../src/guide-component.ts"],"sourcesContent":["import { DataClient } from '@telia-ace/knowledge-data-client';\nimport { updateForm } from '@telia-ace/knowledge-widget-component-utilities';\nimport { ComponentNodeController } from '@telia-ace/knowledge-widget-core';\nimport { ContactsResult, DataType, FeedbackType } from '@telia-ace/knowledge-widget-types-grid';\nimport { Container } from '@webprovisions/platform';\nimport { GuideComponentProps } from './guide-component';\n\nexport default (container: Container, controller: ComponentNodeController) => {\n controller.actions.create('feedback', (input: 'negative' | 'positive') => {\n const type = input === 'negative' ? FeedbackType.Negative : FeedbackType.Positive;\n const { guide, submitButtonLabel = 'Submit' } =\n controller.properties<GuideComponentProps>();\n if (guide) {\n const { connection, id, hasHandover } = guide;\n controller.writeProperties({\n feedbackGiven: input,\n loading: hasHandover && type === FeedbackType.Negative,\n });\n\n const { events } = container.get('$widget');\n events.dispatch('tracking:feedback-given', {\n guide,\n categories: guide.categories,\n feedbackType: type.toLowerCase(),\n });\n\n return DataClient.getInstance(container).then((dataClient) => {\n return dataClient.feedback(id, connection, type).then(() => {\n if (hasHandover && type === FeedbackType.Negative) {\n return dataClient\n .fetch(DataType.ContactMethods, { guideId: id })\n .then(({ contactMethods }: ContactsResult) => {\n return controller.actions.dispatch('handover', {\n handoverContactMethods: contactMethods.map((cm) => ({\n ...cm,\n body: updateForm(cm, {\n submit: submitButtonLabel,\n }),\n })),\n loading: false,\n });\n });\n }\n });\n });\n }\n });\n\n controller.actions.create('handover', (input) => {\n return controller.writeProperties({ ...input, loading: false });\n });\n};\n","import { ContactMethodType } from '@telia-ace/knowledge-widget-adapters';\nimport {\n FavoriteProperties,\n LanguageProperties,\n MetaDataProperties,\n updateForm,\n useExpand,\n useForm,\n} from '@telia-ace/knowledge-widget-component-utilities';\nimport {\n createEventSubscriber,\n DialogItem,\n extendComponent,\n PickerTypes,\n} from '@telia-ace/knowledge-widget-core';\nimport {\n DataClient,\n DataError,\n DataType,\n GuideResult,\n} from '@telia-ace/knowledge-widget-types-grid';\nimport { createReactComponent } from '@telia-ace/knowledge-widget-ui';\nimport { FormComponentInstanceProperties } from '@telia-ace/widget-forms';\nimport { RoutingService } from '@telia-ace/widget-routing';\nimport { Container, EventManager } from '@webprovisions/platform';\nimport * as clipboard from 'clipboard-polyfill';\nimport useFeedback from './use-feedback';\n\nexport type GuideProps = {\n id: string;\n title: string;\n body: string;\n connection: string;\n categories: number[];\n hasHandover: boolean;\n allowFeedback: boolean;\n perspectives: { [key: string]: string };\n translations?: { [key: string]: string };\n modified?: string;\n published?: string;\n publishedBy?: string | null;\n modifiedBy?: string | null;\n perspective: string | null;\n};\n\nexport type AvailablePerspectives = {\n name: string;\n title: string;\n};\n\nexport type GuideComponentProps = {\n showHeader?: boolean;\n showFeedback?: boolean;\n feedbackDirection?: 'horizontal' | 'vertical';\n feedbackGiven?: 'positive' | 'negative'; // internal\n contactMethods?: ContactMethodType[]; // internal\n handoverContactMethods?: ContactMethodType[]; // internal\n showAnswerVersions?: boolean;\n feedbackHeader?: string;\n contactHeader?: string;\n toolbarFunctionsHeader?: string;\n toolbarLanguageHeader?: string;\n positiveFeedbackLabel?: string;\n negativeFeedbackLabel?: string;\n contactFeedbackLabel?: string;\n feedbackRecognitionLabel?: string;\n defaultAnswerVersionLabel?: string;\n backButtonLabel?: string;\n toolbarFunctionsTooltip?: string;\n toolbarFunctionsCloseButtonAriaLabel?: string;\n copyActionLabel?: string;\n printActionLabel?: string;\n toolbarLanguageTooltip?: string;\n toolbar?: ToolbarProps;\n guide?: GuideProps; // internal\n dialog?: DialogItem[]; // internal\n error?: DataError; // internal\n availablePerspectives?: AvailablePerspectives[]; // internal\n} & FormComponentInstanceProperties &\n FavoriteProperties &\n MetaDataProperties &\n LanguageProperties;\n\nexport type ToolbarProps = {\n language?: boolean;\n guideCategories?: boolean;\n allowCopy?: boolean;\n allowPrint?: boolean;\n showFavoriteToggle?: boolean;\n picker?: PickerTypes;\n};\n\nconst buildPlainText = ({ title, body }: GuideProps): string => {\n let processedHtml = '';\n\n if (title && title.length) {\n processedHtml = title.trim();\n }\n\n if (body && body.length) {\n processedHtml = `${processedHtml.trim()}\\n${body.trim()}`;\n }\n\n const div = document.createElement('div');\n div.innerHTML = processedHtml;\n const links: HTMLAnchorElement[] = Array.from(div.getElementsByTagName('a'));\n\n let plainText = div.innerText;\n\n links.forEach((a) => {\n plainText = plainText.replace(a.innerText, `[${a.href}] (${a.innerText})`);\n });\n\n return plainText;\n};\n\nconst buildHtml = ({ title, body }: GuideProps): string => {\n let processedHtml = '';\n\n if (title && title.length) {\n processedHtml = `<h2>${title.trim()}</h2>`;\n }\n\n if (body && body.length) {\n processedHtml = `${processedHtml.trim()}${body.trim()}`;\n }\n\n return processedHtml.trim();\n};\n\nexport const GuideComponent = (container: Container) => {\n const { events }: { events: EventManager } = container.get('$widget');\n const [subscribe, unsubscribe] = createEventSubscriber(events);\n\n return createReactComponent(container, 'guide', import('./guide'), (component) => {\n const fetch = (params: { [key: string]: any }) => {\n component.writeProperties({\n loading: true,\n error: undefined,\n guide: undefined,\n });\n component.actions.dispatch('fetch', { params });\n };\n\n component.actions.create('copy', (guide: GuideProps) => {\n const item = new clipboard.ClipboardItem({\n 'text/html': new Blob([buildHtml(guide)], { type: 'text/html' }),\n 'text/plain': new Blob([buildPlainText(guide)], { type: 'text/plain' }),\n });\n\n return clipboard.write([item]).then(() => {\n events.dispatch('widget:menu-toggled', null);\n });\n });\n\n component.actions.create('print', () => {\n const elem = document.querySelector('.humany-guide .humany-paragraph');\n const a = window.open('', '', 'height=500, width=500');\n\n events.dispatch('widget:menu-toggled', null);\n if (elem && a) {\n a.document.write(`<html><body>${elem.innerHTML}</body></html>`);\n a.document.close();\n a.print();\n }\n });\n\n component.actions.create('back', (data, options) => {\n if (options.preventDefault) {\n return;\n }\n\n return container.getAsync('router').then((router: RoutingService) => {\n router.goBack();\n });\n });\n\n component.actions.create(\n 'fetch',\n ({ contactMethods = [], dialog = [], guide, error }: GuideResult) => {\n if (error) {\n return component.actions.dispatch('fetched', {\n error,\n guide: undefined,\n contactMethods: [],\n feedbackGiven: undefined,\n handoverContactMethods: [],\n showFeedback: false,\n loading: true,\n });\n }\n const { showFeedback = true, submitButtonLabel = 'Submit' } =\n component.properties<GuideComponentProps>();\n\n const properties: GuideComponentProps = {\n showFeedback,\n dialog,\n guide,\n feedbackGiven: undefined,\n handoverContactMethods: [],\n contactMethods: contactMethods.map((cm) => ({\n ...cm,\n body: updateForm(cm, { submit: submitButtonLabel }),\n })),\n };\n\n return component.actions.dispatch('fetched', {\n ...properties,\n loading: true,\n });\n }\n );\n\n component.actions.create('fetched', (input) => {\n return component.writeProperties({ ...input, loading: false });\n });\n\n container.getAsync('router').then((router) => {\n const { params } = router.getRouteData();\n fetch(params);\n });\n\n subscribe('router:changed', (event: any, { current }: any) => {\n fetch(current.routeData.params);\n });\n\n useFeedback(container, component);\n useForm(container, component);\n useExpand(component);\n })\n .then(() => {\n return extendComponent(container, 'guide', (component) => {\n component.actions.watch('guide.fetch', (input, next) => {\n const {\n params: { guide, connection },\n } = input;\n\n if (guide) {\n return DataClient.getInstance(container)\n .then((dataClient) =>\n dataClient.fetch(DataType.Guide, { connection, guideId: guide })\n )\n .then(next)\n .catch((error) => {\n if (error) {\n return next(error);\n }\n });\n }\n\n return next(input);\n });\n });\n })\n .then(() => {\n unsubscribe();\n });\n};\n\nexport default GuideComponent;\n"],"names":["useFeedback","container","controller","input","type","FeedbackType","guide","submitButtonLabel","connection","id","hasHandover","events","DataClient","dataClient","DataType","contactMethods","cm","__spreadProps","__spreadValues","updateForm","buildPlainText","title","body","processedHtml","div","links","plainText","a","buildHtml","GuideComponent","subscribe","unsubscribe","createEventSubscriber","createReactComponent","component","fetch","params","item","clipboard","elem","data","options","router","dialog","error","showFeedback","properties","event","current","useForm","useExpand","extendComponent","next","GuideComponent$1"],"mappings":";;;;;;;;;;;;;;;;;;AAOA,MAAAA,IAAe,CAACC,GAAsBC,MAAwC;AAC1E,EAAAA,EAAW,QAAQ,OAAO,YAAY,CAACC,MAAmC;AACtE,UAAMC,IAAOD,MAAU,aAAaE,EAAa,WAAWA,EAAa,UACnE,EAAE,OAAAC,GAAO,mBAAAC,IAAoB,SAAS,IACxCL,EAAW;AACf,QAAII,GAAO;AACP,YAAM,EAAE,YAAAE,GAAY,IAAAC,GAAI,aAAAC,EAAA,IAAgBJ;AACxC,MAAAJ,EAAW,gBAAgB;AAAA,QACvB,eAAeC;AAAA,QACf,SAASO,KAAeN,MAASC,EAAa;AAAA,MAAA,CACjD;AAED,YAAM,EAAE,QAAAM,EAAW,IAAAV,EAAU,IAAI,SAAS;AAC1C,aAAAU,EAAO,SAAS,2BAA2B;AAAA,QACvC,OAAAL;AAAA,QACA,YAAYA,EAAM;AAAA,QAClB,cAAcF,EAAK,YAAY;AAAA,MAAA,CAClC,GAEMQ,EAAW,YAAYX,CAAS,EAAE,KAAK,CAACY,MACpCA,EAAW,SAASJ,GAAID,GAAYJ,CAAI,EAAE,KAAK,MAAM;AACpD,YAAAM,KAAeN,MAASC,EAAa;AACrC,iBAAOQ,EACF,MAAMC,EAAS,gBAAgB,EAAE,SAASL,EAAG,CAAC,EAC9C,KAAK,CAAC,EAAE,gBAAAM,QACEb,EAAW,QAAQ,SAAS,YAAY;AAAA,YAC3C,wBAAwBa,EAAe,IAAI,CAACC,MAAQC,EAAAC,EAAA,IAC7CF,IAD6C;AAAA,cAEhD,MAAMG,EAAWH,GAAI;AAAA,gBACjB,QAAQT;AAAA,cAAA,CACX;AAAA,YAAA,EACH;AAAA,YACF,SAAS;AAAA,UAAA,CACZ,CACJ;AAAA,MACT,CACH,CACJ;AAAA,IACL;AAAA,EAAA,CACH,GAEDL,EAAW,QAAQ,OAAO,YAAY,CAACC,MAC5BD,EAAW,gBAAgBe,EAAAC,EAAA,IAAKf,IAAL,EAAY,SAAS,KAAO,CACjE;AACL,GCyCMiB,IAAiB,CAAC,EAAE,OAAAC,GAAO,MAAAC,QAA+B;AAC5D,MAAIC,IAAgB;AAEhB,EAAAF,KAASA,EAAM,WACfE,IAAgBF,EAAM,SAGtBC,KAAQA,EAAK,WACGC,IAAA,GAAGA,EAAc;EAAWD,EAAK,KAAK;AAGpD,QAAAE,IAAM,SAAS,cAAc,KAAK;AACxC,EAAAA,EAAI,YAAYD;AAChB,QAAME,IAA6B,MAAM,KAAKD,EAAI,qBAAqB,GAAG,CAAC;AAE3E,MAAIE,IAAYF,EAAI;AAEd,SAAAC,EAAA,QAAQ,CAACE,MAAM;AACL,IAAAD,IAAAA,EAAU,QAAQC,EAAE,WAAW,IAAIA,EAAE,UAAUA,EAAE,YAAY;AAAA,EAAA,CAC5E,GAEMD;AACX,GAEME,IAAY,CAAC,EAAE,OAAAP,GAAO,MAAAC,QAA+B;AACvD,MAAIC,IAAgB;AAEhB,SAAAF,KAASA,EAAM,WACCE,IAAA,OAAOF,EAAM,KAAK,WAGlCC,KAAQA,EAAK,WACbC,IAAgB,GAAGA,EAAc,KAAK,IAAID,EAAK,KAAK,MAGjDC,EAAc;AACzB,GAEaM,IAAiB,CAAC5B,MAAyB;AACpD,QAAM,EAAE,QAAAU,EAAqC,IAAAV,EAAU,IAAI,SAAS,GAC9D,CAAC6B,GAAWC,CAAW,IAAIC,EAAsBrB,CAAM;AAE7D,SAAOsB,EAAqBhC,GAAW,SAAS,OAAO,wBAAY,CAACiC,MAAc;AACxE,UAAAC,IAAQ,CAACC,MAAmC;AAC9C,MAAAF,EAAU,gBAAgB;AAAA,QACtB,SAAS;AAAA,QACT,OAAO;AAAA,QACP,OAAO;AAAA,MAAA,CACV,GACDA,EAAU,QAAQ,SAAS,SAAS,EAAE,QAAAE,EAAQ,CAAA;AAAA,IAAA;AAGlD,IAAAF,EAAU,QAAQ,OAAO,QAAQ,CAAC5B,MAAsB;AAC9C,YAAA+B,IAAO,IAAIC,EAAU,cAAc;AAAA,QACrC,aAAa,IAAI,KAAK,CAACV,EAAUtB,CAAK,CAAC,GAAG,EAAE,MAAM,aAAa;AAAA,QAC/D,cAAc,IAAI,KAAK,CAACc,EAAed,CAAK,CAAC,GAAG,EAAE,MAAM,cAAc;AAAA,MAAA,CACzE;AAED,aAAOgC,EAAU,MAAM,CAACD,CAAI,CAAC,EAAE,KAAK,MAAM;AAC/B,QAAA1B,EAAA,SAAS,uBAAuB,IAAI;AAAA,MAAA,CAC9C;AAAA,IAAA,CACJ,GAESuB,EAAA,QAAQ,OAAO,SAAS,MAAM;AAC9B,YAAAK,IAAO,SAAS,cAAc,iCAAiC,GAC/DZ,IAAI,OAAO,KAAK,IAAI,IAAI,uBAAuB;AAE9C,MAAAhB,EAAA,SAAS,uBAAuB,IAAI,GACvC4B,KAAQZ,MACRA,EAAE,SAAS,MAAM,eAAeY,EAAK,yBAAyB,GAC9DZ,EAAE,SAAS,SACXA,EAAE,MAAM;AAAA,IACZ,CACH,GAEDO,EAAU,QAAQ,OAAO,QAAQ,CAACM,GAAMC,MAAY;AAChD,UAAI,CAAAA,EAAQ;AAIZ,eAAOxC,EAAU,SAAS,QAAQ,EAAE,KAAK,CAACyC,MAA2B;AACjE,UAAAA,EAAO,OAAO;AAAA,QAAA,CACjB;AAAA,IAAA,CACJ,GAEDR,EAAU,QAAQ;AAAA,MACd;AAAA,MACA,CAAC,EAAE,gBAAAnB,IAAiB,IAAI,QAAA4B,IAAS,CAAA,GAAI,OAAArC,GAAO,OAAAsC,QAAyB;AACjE,YAAIA;AACO,iBAAAV,EAAU,QAAQ,SAAS,WAAW;AAAA,YACzC,OAAAU;AAAA,YACA,OAAO;AAAA,YACP,gBAAgB,CAAC;AAAA,YACjB,eAAe;AAAA,YACf,wBAAwB,CAAC;AAAA,YACzB,cAAc;AAAA,YACd,SAAS;AAAA,UAAA,CACZ;AAEL,cAAM,EAAE,cAAAC,IAAe,IAAM,mBAAAtC,IAAoB,aAC7C2B,EAAU,cAERY,IAAkC;AAAA,UACpC,cAAAD;AAAA,UACA,QAAAF;AAAA,UACA,OAAArC;AAAA,UACA,eAAe;AAAA,UACf,wBAAwB,CAAC;AAAA,UACzB,gBAAgBS,EAAe,IAAI,CAACC,MAAQC,EAAAC,EAAA,IACrCF,IADqC;AAAA,YAExC,MAAMG,EAAWH,GAAI,EAAE,QAAQT,GAAmB;AAAA,UAAA,EACpD;AAAA,QAAA;AAGC,eAAA2B,EAAU,QAAQ,SAAS,WAAWjB,EAAAC,EAAA,IACtC4B,IADsC;AAAA,UAEzC,SAAS;AAAA,QAAA,EACZ;AAAA,MACL;AAAA,IAAA,GAGJZ,EAAU,QAAQ,OAAO,WAAW,CAAC/B,MAC1B+B,EAAU,gBAAgBjB,EAAAC,EAAA,IAAKf,IAAL,EAAY,SAAS,KAAO,CAChE,GAEDF,EAAU,SAAS,QAAQ,EAAE,KAAK,CAACyC,MAAW;AAC1C,YAAM,EAAE,QAAAN,EAAA,IAAWM,EAAO,aAAa;AACvC,MAAAP,EAAMC,CAAM;AAAA,IAAA,CACf,GAEDN,EAAU,kBAAkB,CAACiB,GAAY,EAAE,SAAAC,QAAmB;AACpD,MAAAb,EAAAa,EAAQ,UAAU,MAAM;AAAA,IAAA,CACjC,GAEDhD,EAAYC,GAAWiC,CAAS,GAChCe,EAAQhD,GAAWiC,CAAS,GAC5BgB,EAAUhB,CAAS;AAAA,EAAA,CACtB,EACI,KAAK,MACKiB,EAAgBlD,GAAW,SAAS,CAACiC,MAAc;AACtD,IAAAA,EAAU,QAAQ,MAAM,eAAe,CAAC/B,GAAOiD,MAAS;AAC9C,YAAA;AAAA,QACF,QAAQ,EAAE,OAAA9C,GAAO,YAAAE,EAAW;AAAA,MAC5B,IAAAL;AAEJ,aAAIG,IACOM,EAAW,YAAYX,CAAS,EAClC;AAAA,QAAK,CAACY,MACHA,EAAW,MAAMC,EAAS,OAAO,EAAE,YAAAN,GAAY,SAASF,GAAO;AAAA,QAElE,KAAK8C,CAAI,EACT,MAAM,CAACR,MAAU;AACd,YAAIA;AACA,iBAAOQ,EAAKR,CAAK;AAAA,MACrB,CACH,IAGFQ,EAAKjD,CAAK;AAAA,IAAA,CACpB;AAAA,EAAA,CACJ,CACJ,EACA,KAAK,MAAM;AACI,IAAA4B;EAAA,CACf;AACT,GAEAsB,IAAexB;"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@telia-ace/knowledge-widget-components-guide",
3
- "version": "1.0.39-next.3",
3
+ "version": "1.0.39-next.5",
4
4
  "description": "Guide component for ACE Knowledge Widgets.",
5
5
  "license": "SEE LICENSE IN LICENSE.txt",
6
6
  "author": "Telia Company AB",
@@ -21,11 +21,12 @@
21
21
  },
22
22
  "sideEffects": false,
23
23
  "dependencies": {
24
- "@telia-ace/knowledge-widget-adapters": "1.0.45-next.3",
25
- "@telia-ace/knowledge-widget-component-utilities": "1.0.39-next.3",
26
- "@telia-ace/knowledge-widget-core": "1.0.35-next.3",
27
- "@telia-ace/knowledge-widget-types-grid": "1.0.46-next.3",
28
- "@telia-ace/knowledge-widget-ui": "1.0.41-next.3",
24
+ "@telia-ace/knowledge-data-client": "1.0.2-next.1",
25
+ "@telia-ace/knowledge-widget-adapters": "1.0.45-next.5",
26
+ "@telia-ace/knowledge-widget-component-utilities": "1.0.39-next.5",
27
+ "@telia-ace/knowledge-widget-core": "1.0.35-next.5",
28
+ "@telia-ace/knowledge-widget-types-grid": "1.0.46-next.5",
29
+ "@telia-ace/knowledge-widget-ui": "1.0.41-next.5",
29
30
  "@telia-ace/widget-forms": "^1.0.28-next.0",
30
31
  "@telia-ace/widget-routing": "^1.0.22-next.0",
31
32
  "@telia-ace/widget-utilities": "^1.0.10-next.0",