@telia-ace/knowledge-widget-components-contact-list 1.0.21 → 1.0.23

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 CHANGED
@@ -1,6 +1,6 @@
1
- Copyright © 2021, Telia Company AB. All rights reserved.
2
-
3
- THIS PACKAGE AND CONTAINING SOFTWARE IS PART OF
4
- THE HUMANY SERVICE. BY USING THIS SOFTWARE YOU
5
- AGREE TO THE FOLLOWING TERMS AND CONDITIONS:
1
+ Copyright © 2021, Telia Company AB. All rights reserved.
2
+
3
+ THIS PACKAGE AND CONTAINING SOFTWARE IS PART OF
4
+ THE HUMANY SERVICE. BY USING THIS SOFTWARE YOU
5
+ AGREE TO THE FOLLOWING TERMS AND CONDITIONS:
6
6
  http://www.humany.com/legal
package/README.md CHANGED
@@ -1,3 +1,3 @@
1
- # `@telia-ace/knowledge-widget-components-contact-list`
2
-
3
- Contact list component for ACE Knowledge Widgets.
1
+ # `@telia-ace/knowledge-widget-components-contact-list`
2
+
3
+ Contact list component for ACE Knowledge Widgets.
@@ -1,21 +1,21 @@
1
- import { ContactMethodType } from '@telia-ace/knowledge-widget-adapters';
2
- import { Category, Guide } from '@telia-ace/knowledge-widget-core';
3
- import { FormComponentInstanceProperties } from '@telia-ace/widget-forms';
4
- import { Container } from '@webprovisions/platform';
5
- export declare type ContactListComponentProps = {
6
- deflectionHeader?: string;
7
- deflection?: {
8
- [contactCategoryId: string]: string[];
9
- };
10
- deflectionPageSize?: number;
11
- routes?: {
12
- contactCategory?: string;
13
- guide?: string;
14
- };
15
- categories?: Category[];
16
- contactMethods?: ContactMethodType[];
17
- guides?: Guide[];
18
- deflectionAccordion?: boolean;
19
- } & FormComponentInstanceProperties;
20
- export declare const ContactListComponent: (container: Container) => Promise<void>;
21
- export default ContactListComponent;
1
+ import { ContactMethodType } from '@telia-ace/knowledge-widget-adapters';
2
+ import { Category, Guide } from '@telia-ace/knowledge-widget-core';
3
+ import { FormComponentInstanceProperties } from '@telia-ace/widget-forms';
4
+ import { Container } from '@webprovisions/platform';
5
+ export declare type ContactListComponentProps = {
6
+ deflectionHeader?: string;
7
+ deflection?: {
8
+ [contactCategoryId: string]: string[];
9
+ };
10
+ deflectionPageSize?: number;
11
+ routes?: {
12
+ contactCategory?: string;
13
+ guide?: string;
14
+ };
15
+ categories?: Category[];
16
+ contactMethods?: ContactMethodType[];
17
+ guides?: Guide[];
18
+ deflectionAccordion?: boolean;
19
+ } & FormComponentInstanceProperties;
20
+ export declare const ContactListComponent: (container: Container) => Promise<void>;
21
+ export default ContactListComponent;
@@ -1,19 +1,19 @@
1
1
  var q = Object.defineProperty, J = Object.defineProperties;
2
2
  var K = Object.getOwnPropertyDescriptors;
3
3
  var $ = Object.getOwnPropertySymbols;
4
- var v = Object.prototype.hasOwnProperty, w = Object.prototype.propertyIsEnumerable;
5
- var U = (t, e, a) => e in t ? q(t, e, { enumerable: !0, configurable: !0, writable: !0, value: a }) : t[e] = a, g = (t, e) => {
4
+ var U = Object.prototype.hasOwnProperty, w = Object.prototype.propertyIsEnumerable;
5
+ var T = (t, e, a) => e in t ? q(t, e, { enumerable: !0, configurable: !0, writable: !0, value: a }) : t[e] = a, g = (t, e) => {
6
6
  for (var a in e || (e = {}))
7
- v.call(e, a) && U(t, a, e[a]);
7
+ U.call(e, a) && T(t, a, e[a]);
8
8
  if ($)
9
9
  for (var a of $(e))
10
- w.call(e, a) && U(t, a, e[a]);
10
+ w.call(e, a) && T(t, a, e[a]);
11
11
  return t;
12
12
  }, p = (t, e) => J(t, K(e));
13
13
  var B = (t, e) => {
14
14
  var a = {};
15
15
  for (var n in t)
16
- v.call(t, n) && e.indexOf(n) < 0 && (a[n] = t[n]);
16
+ U.call(t, n) && e.indexOf(n) < 0 && (a[n] = t[n]);
17
17
  if (t != null && $)
18
18
  for (var n of $(t))
19
19
  e.indexOf(n) < 0 && w.call(t, n) && (a[n] = t[n]);
@@ -21,18 +21,18 @@ var B = (t, e) => {
21
21
  };
22
22
  import { ContactList as Q, contactItemList as V, contactLink as W } from "@telia-ace/knowledge-widget-adapters";
23
23
  import { GuideList as X, contentBox as A, loadingOpacity as M, useRouteData as z, useComponentDescriptor as Y, useContainer as F, useChildren as Z, useDispatch as H, AccordionListItem as _, createEmptyComponent as O, Loader as G, ItemList as tt, Link as et, borderTabStyle as nt, useProperties as at, SymbolBadge as ot, StyledText as ct } from "@telia-ace/knowledge-widget-ui";
24
- import { formatUrl as T, appendClassNames as b, createParams as j, findCategoryById as rt } from "@telia-ace/widget-utilities";
24
+ import { formatUrl as v, appendClassNames as I, createParams as j, findCategoryById as rt } from "@telia-ace/widget-utilities";
25
25
  import o, { useCallback as it } from "react";
26
- import I from "styled-components";
26
+ import k from "styled-components";
27
27
  import { Component as st } from "@telia-ace/knowledge-widget-types-grid";
28
- const mt = (P) => {
28
+ const lt = (P) => {
29
29
  var s = P, {
30
30
  className: t,
31
31
  guides: e,
32
32
  header: a,
33
33
  accordion: n,
34
- loading: l,
35
- route: k = "guide",
34
+ loading: m,
35
+ route: S = "guide",
36
36
  categoryTitle: y
37
37
  } = s, f = B(s, [
38
38
  "className",
@@ -45,53 +45,56 @@ const mt = (P) => {
45
45
  ]);
46
46
  const {
47
47
  name: d,
48
- params: { contactCategory: S = 0, guide: C }
49
- } = z(), { name: r } = Y(), x = F(), h = Z(), N = H(), D = it((c, i, E, m) => {
50
- const { id: u, title: L } = c;
51
- return n && C === u ? /* @__PURE__ */ o.createElement(_, {
52
- key: u,
53
- id: u,
54
- title: L,
55
- route: d,
56
- collapseUri: y && T(y)
57
- }, h.map((R) => /* @__PURE__ */ o.createElement(st, {
58
- key: R.id,
59
- id: R.id,
60
- branch: "default",
61
- accordion: n
62
- }))) : m ? m(c, i, E, m) : null;
63
- }, [n, h, C]);
64
- return !e.length && !l ? O(x, p(g({}, f), {
65
- className: b(t, "humany-deflection-list")
66
- })) : /* @__PURE__ */ o.createElement(lt, p(g({}, f), {
67
- "data-loading": l,
68
- className: b(t, "humany-deflection-list"),
48
+ params: { contactCategory: b = 0, guide: C }
49
+ } = z(), { name: r } = Y(), x = F(), h = Z(), N = H(), D = it(
50
+ (c, i, E, l) => {
51
+ const { id: u, title: L } = c;
52
+ return n && C === u ? /* @__PURE__ */ o.createElement(_, {
53
+ key: u,
54
+ id: u,
55
+ title: L,
56
+ route: d,
57
+ collapseUri: y && v(y)
58
+ }, h.map((R) => /* @__PURE__ */ o.createElement(st, {
59
+ key: R.id,
60
+ id: R.id,
61
+ branch: "default",
62
+ accordion: n
63
+ }))) : l ? l(c, i, E, l) : null;
64
+ },
65
+ [n, h, C]
66
+ );
67
+ return !e.length && !m ? O(x, p(g({}, f), {
68
+ className: I(t, "humany-deflection-list")
69
+ })) : /* @__PURE__ */ o.createElement(mt, p(g({}, f), {
70
+ "data-loading": m,
71
+ className: I(t, "humany-deflection-list"),
69
72
  items: e,
70
73
  header: a,
71
74
  expandable: !!n,
72
75
  renderItem: D,
73
76
  dispatch: N,
74
77
  routing: {
75
- guide: k
78
+ guide: S
76
79
  },
77
80
  paramMappers: {
78
81
  guide: ({ id: c, title: i }) => j({
79
- contactCategory: S,
82
+ contactCategory: b,
80
83
  guide: c,
81
84
  accordion: n ? r : void 0,
82
- uriName: T(i)
85
+ uriName: v(i)
83
86
  })
84
87
  }
85
88
  }), /* @__PURE__ */ o.createElement(G, {
86
- loading: l
89
+ loading: m
87
90
  }));
88
- }, lt = I(X)`
91
+ }, mt = k(X)`
89
92
  ${A}
90
93
  ${M}
91
- `, dt = I(Q)`
94
+ `, dt = k(Q)`
92
95
  ${M}
93
96
  ${A}
94
- `, ut = I(tt)`
97
+ `, ut = k(tt)`
95
98
  ${M}
96
99
  ${A}
97
100
  ${V}
@@ -103,37 +106,34 @@ const mt = (P) => {
103
106
  text-align: center;
104
107
  }
105
108
  }
106
- `, gt = I(et)`
107
- &:focus {
108
- ${(t) => {
109
- var e;
110
- return ((e = t.theme.accessibility) == null ? void 0 : e.isTabbing) && nt;
111
- }};
109
+ `, gt = k(et)`
110
+ &:focus-visible {
111
+ ${nt};
112
112
  }
113
113
 
114
114
  ${W}
115
115
  `, $t = (a) => {
116
116
  var n = a, { className: t } = n, e = B(n, ["className"]);
117
- const l = H(), k = F(), y = z(), {
117
+ const m = H(), S = F(), y = z(), {
118
118
  deflectionHeader: f = "",
119
119
  routes: P = {},
120
120
  contactMethods: s = [],
121
121
  categories: d = [],
122
- guides: S = [],
122
+ guides: b = [],
123
123
  deflectionAccordion: C = !1,
124
124
  loading: r = !1
125
125
  } = at(), { contactCategory: x, guide: h = "guide" } = P;
126
126
  if (!d.length && !s.length && !r)
127
- return O(k, p(g({}, e), {
128
- className: b(t, "humany-contact-category-list")
127
+ return O(S, p(g({}, e), {
128
+ className: I(t, "humany-contact-category-list")
129
129
  }));
130
130
  const {
131
131
  name: N,
132
132
  params: { contactCategory: D }
133
133
  } = y, c = rt(D, d);
134
- return s.length ? /* @__PURE__ */ o.createElement(o.Fragment, null, /* @__PURE__ */ o.createElement(mt, {
134
+ return s.length ? /* @__PURE__ */ o.createElement(o.Fragment, null, /* @__PURE__ */ o.createElement(lt, {
135
135
  className: t,
136
- guides: S,
136
+ guides: b,
137
137
  categoryTitle: c && c.title,
138
138
  header: f,
139
139
  route: h,
@@ -143,24 +143,24 @@ const mt = (P) => {
143
143
  "data-loading": r,
144
144
  className: t,
145
145
  contactMethods: s,
146
- dispatch: l
146
+ dispatch: m
147
147
  }, /* @__PURE__ */ o.createElement(G, {
148
148
  loading: r
149
149
  }))) : /* @__PURE__ */ o.createElement(ut, p(g({}, e), {
150
150
  "data-loading": r,
151
- className: b(t, "humany-contact-category-list"),
151
+ className: I(t, "humany-contact-category-list"),
152
152
  items: c && c.items || d,
153
- renderItem: ({ id: i, title: E, symbol: m, matches: u, items: L }) => !!u || L && !!L.length ? /* @__PURE__ */ o.createElement("li", {
153
+ renderItem: ({ id: i, title: E, symbol: l, matches: u, items: L }) => !!u || L && !!L.length ? /* @__PURE__ */ o.createElement("li", {
154
154
  key: i,
155
155
  "data-contact-category": i
156
156
  }, /* @__PURE__ */ o.createElement(gt, {
157
157
  routeName: x || N,
158
158
  params: j({
159
159
  contactCategory: i,
160
- uriName: T(E)
160
+ uriName: v(E)
161
161
  })
162
- }, m && /* @__PURE__ */ o.createElement(ot, {
163
- symbol: m
162
+ }, l && /* @__PURE__ */ o.createElement(ot, {
163
+ symbol: l
164
164
  }), /* @__PURE__ */ o.createElement(ct, null, E))) : null
165
165
  }), /* @__PURE__ */ o.createElement(G, {
166
166
  loading: r
@@ -169,4 +169,4 @@ const mt = (P) => {
169
169
  export {
170
170
  $t as default
171
171
  };
172
- //# sourceMappingURL=contact-list.c6d26333.js.map
172
+ //# sourceMappingURL=contact-list.1f012daa.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"contact-list.1f012daa.js","sources":["../src/deflection-list.tsx","../src/contact-list.tsx"],"sourcesContent":["import { Guide } from '@telia-ace/knowledge-widget-core';\r\nimport { Component } from '@telia-ace/knowledge-widget-types-grid';\r\nimport {\r\n AccordionListItem,\r\n contentBox,\r\n createEmptyComponent,\r\n GuideList,\r\n ItemRenderer,\r\n Loader,\r\n loadingOpacity,\r\n useChildren,\r\n useComponentDescriptor,\r\n useContainer,\r\n useDispatch,\r\n useRouteData,\r\n} from '@telia-ace/knowledge-widget-ui';\r\nimport { appendClassNames, createParams, formatUrl } from '@telia-ace/widget-utilities';\r\nimport React, { useCallback } from 'react';\r\nimport styled from 'styled-components';\r\n\r\ntype Props = {\r\n className: string;\r\n guides: Guide[];\r\n header: string;\r\n accordion?: boolean;\r\n route?: string;\r\n loading: boolean;\r\n categoryTitle?: string;\r\n};\r\n\r\nconst DeflectionList: React.SFC<Props> = ({\r\n className,\r\n guides,\r\n header,\r\n accordion,\r\n loading,\r\n route = 'guide',\r\n categoryTitle,\r\n ...other\r\n}) => {\r\n const {\r\n name: routeName,\r\n params: { contactCategory = 0, guide: currentGuideId },\r\n } = useRouteData();\r\n const { name: componentName } = useComponentDescriptor();\r\n const container = useContainer();\r\n const children = useChildren();\r\n const dispatch = useDispatch();\r\n\r\n const renderItem: ItemRenderer = useCallback(\r\n (guide, index, items, defaultRenderer) => {\r\n const { id, title } = guide;\r\n if (accordion && currentGuideId === id) {\r\n return (\r\n <AccordionListItem\r\n key={id}\r\n id={id}\r\n title={title}\r\n route={routeName}\r\n collapseUri={categoryTitle && formatUrl(categoryTitle)}\r\n >\r\n {children.map((child) => (\r\n <Component\r\n key={child.id}\r\n id={child.id}\r\n branch=\"default\"\r\n {...{ accordion }}\r\n />\r\n ))}\r\n </AccordionListItem>\r\n );\r\n }\r\n\r\n return defaultRenderer ? defaultRenderer(guide, index, items, defaultRenderer) : null;\r\n },\r\n [accordion, children, currentGuideId]\r\n );\r\n\r\n if (!guides.length && !loading) {\r\n return createEmptyComponent(container, {\r\n ...other,\r\n className: appendClassNames(className, 'humany-deflection-list'),\r\n });\r\n }\r\n\r\n return (\r\n <StyledGuideList\r\n {...other}\r\n data-loading={loading}\r\n className={appendClassNames(className, 'humany-deflection-list')}\r\n items={guides}\r\n header={header}\r\n expandable={!!accordion}\r\n renderItem={renderItem}\r\n dispatch={dispatch}\r\n routing={{\r\n guide: route,\r\n }}\r\n paramMappers={{\r\n guide: ({ id, title }: Guide) =>\r\n createParams({\r\n contactCategory,\r\n guide: id,\r\n accordion: accordion ? componentName : undefined,\r\n uriName: formatUrl(title),\r\n }),\r\n }}\r\n >\r\n <Loader loading={loading} />\r\n </StyledGuideList>\r\n );\r\n};\r\n\r\nconst StyledGuideList = styled(GuideList)<{ 'data-loading': boolean } & any>`\r\n ${contentBox}\r\n ${loadingOpacity}\r\n`;\r\n\r\nexport default DeflectionList;\r\n","import {\r\n contactItemList,\r\n contactLink,\r\n ContactList as ContactListUi,\r\n} from '@telia-ace/knowledge-widget-adapters';\r\nimport { Category } from '@telia-ace/knowledge-widget-core';\r\nimport {\r\n borderTabStyle,\r\n contentBox,\r\n createEmptyComponent,\r\n ItemList,\r\n Link,\r\n Loader,\r\n loadingOpacity,\r\n StyledText,\r\n SymbolBadge,\r\n useContainer,\r\n useDispatch,\r\n useProperties,\r\n useRouteData,\r\n} from '@telia-ace/knowledge-widget-ui';\r\nimport {\r\n appendClassNames,\r\n createParams,\r\n findCategoryById,\r\n formatUrl,\r\n} from '@telia-ace/widget-utilities';\r\nimport React from 'react';\r\nimport styled from 'styled-components';\r\nimport { ContactListComponentProps } from './contact-list-component';\r\nimport DeflectionList from './deflection-list';\r\n\r\nconst StyledContactList = styled(ContactListUi)<any>`\r\n ${loadingOpacity}\r\n ${contentBox}\r\n`;\r\n\r\nconst StyledItemList = styled(ItemList)<any>`\r\n ${loadingOpacity}\r\n ${contentBox}\r\n ${contactItemList}\r\n\r\n && {\r\n i {\r\n font-size: 25px;\r\n width: 1.28571429em;\r\n text-align: center;\r\n }\r\n }\r\n`;\r\n\r\nconst StyledLink = styled(Link)<any>`\r\n &:focus-visible {\r\n ${borderTabStyle};\r\n }\r\n\r\n ${contactLink}\r\n`;\r\n\r\ntype Props = {\r\n className: string;\r\n};\r\n\r\nconst ContactList: React.SFC<Props> = ({ className, ...other }) => {\r\n const dispatch = useDispatch();\r\n const container = useContainer();\r\n const routeData = useRouteData();\r\n const {\r\n deflectionHeader = '',\r\n routes = {},\r\n contactMethods = [],\r\n categories = [],\r\n guides = [],\r\n deflectionAccordion = false,\r\n loading = false,\r\n } = useProperties<ContactListComponentProps>();\r\n\r\n const { contactCategory: contactCategoryRoute, guide: guideRoute = 'guide' } = routes;\r\n\r\n if (!categories.length && !contactMethods.length && !loading) {\r\n return createEmptyComponent(container, {\r\n ...other,\r\n className: appendClassNames(className, 'humany-contact-category-list'),\r\n });\r\n }\r\n\r\n const {\r\n name,\r\n params: { contactCategory },\r\n } = routeData;\r\n\r\n const selectedCategory: Category = findCategoryById(contactCategory, categories);\r\n\r\n return !contactMethods.length ? (\r\n <StyledItemList\r\n {...other}\r\n data-loading={loading}\r\n className={appendClassNames(className, 'humany-contact-category-list')}\r\n items={(selectedCategory && selectedCategory.items) || categories}\r\n renderItem={({ id, title, symbol, matches, items }: Category) =>\r\n !!matches || (items && !!items.length) ? (\r\n <li key={id} data-contact-category={id}>\r\n <StyledLink\r\n routeName={contactCategoryRoute || name}\r\n params={createParams({\r\n contactCategory: id,\r\n uriName: formatUrl(title),\r\n })}\r\n >\r\n {symbol && <SymbolBadge symbol={symbol} />}\r\n <StyledText>{title}</StyledText>\r\n </StyledLink>\r\n </li>\r\n ) : null\r\n }\r\n >\r\n <Loader loading={loading} />\r\n </StyledItemList>\r\n ) : (\r\n <>\r\n <DeflectionList\r\n className={className}\r\n guides={guides}\r\n categoryTitle={selectedCategory && selectedCategory.title}\r\n header={deflectionHeader}\r\n route={guideRoute}\r\n accordion={deflectionAccordion}\r\n loading={loading}\r\n />\r\n <StyledContactList\r\n data-loading={loading}\r\n className={className}\r\n contactMethods={contactMethods}\r\n dispatch={dispatch}\r\n >\r\n <Loader loading={loading} />\r\n </StyledContactList>\r\n </>\r\n );\r\n};\r\n\r\nexport default ContactList;\r\n"],"names":["DeflectionList","_a","_b","className","guides","header","accordion","loading","route","categoryTitle","other","__objRest","routeName","contactCategory","currentGuideId","useRouteData","componentName","useComponentDescriptor","container","useContainer","children","useChildren","dispatch","useDispatch","renderItem","useCallback","guide","index","items","defaultRenderer","id","title","React","AccordionListItem","formatUrl","child","Component","createEmptyComponent","__spreadProps","__spreadValues","appendClassNames","StyledGuideList","createParams","Loader","styled","GuideList","contentBox","loadingOpacity","StyledContactList","ContactListUi","StyledItemList","ItemList","contactItemList","StyledLink","Link","borderTabStyle","contactLink","ContactList","routeData","deflectionHeader","routes","contactMethods","categories","deflectionAccordion","useProperties","contactCategoryRoute","guideRoute","name","selectedCategory","findCategoryById","symbol","matches","SymbolBadge","StyledText"],"mappings":"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"}
@@ -1,6 +1,6 @@
1
- import React from 'react';
2
- declare type Props = {
3
- className: string;
4
- };
5
- declare const ContactList: React.SFC<Props>;
6
- export default ContactList;
1
+ import React from 'react';
2
+ declare type Props = {
3
+ className: string;
4
+ };
5
+ declare const ContactList: React.SFC<Props>;
6
+ export default ContactList;
@@ -1,13 +1,13 @@
1
- import { Guide } from '@telia-ace/knowledge-widget-core';
2
- import React from 'react';
3
- declare type Props = {
4
- className: string;
5
- guides: Guide[];
6
- header: string;
7
- accordion?: boolean;
8
- route?: string;
9
- loading: boolean;
10
- categoryTitle?: string;
11
- };
12
- declare const DeflectionList: React.SFC<Props>;
13
- export default DeflectionList;
1
+ import { Guide } from '@telia-ace/knowledge-widget-core';
2
+ import React from 'react';
3
+ declare type Props = {
4
+ className: string;
5
+ guides: Guide[];
6
+ header: string;
7
+ accordion?: boolean;
8
+ route?: string;
9
+ loading: boolean;
10
+ categoryTitle?: string;
11
+ };
12
+ declare const DeflectionList: React.SFC<Props>;
13
+ export default DeflectionList;
package/dist/index.d.ts CHANGED
@@ -1,2 +1,2 @@
1
- import ContactListComponent from './contact-list-component';
2
- export default ContactListComponent;
1
+ import ContactListComponent from './contact-list-component';
2
+ export default ContactListComponent;
package/dist/index.js CHANGED
@@ -16,28 +16,33 @@ import { DataType as M } from "@telia-ace/knowledge-widget-types-grid";
16
16
  import { createReactComponent as K } from "@telia-ace/knowledge-widget-ui";
17
17
  const J = (t) => {
18
18
  const { events: e } = t.get("$widget"), [c, A] = z(e);
19
- return K(t, "contact-list", import("./contact-list.c6d26333.js"), (r) => {
20
- const a = (s) => {
21
- r.writeProperties({ loading: !0, contactMethods: [], categories: [] }), r.actions.dispatch("fetch", { params: s });
22
- };
23
- r.actions.create("fetch", (s) => {
24
- const { submitButtonLabel: o = "Submit" } = r.properties(), h = (s.contactMethods || []).map((i) => d(u({}, i), {
25
- body: I(i, { submit: o })
26
- }));
27
- return r.actions.dispatch("fetched", d(u({}, s), {
28
- contactMethods: h,
29
- loading: !0
30
- }));
31
- }), r.actions.create("fetched", (s) => r.writeProperties(d(u({}, s), {
32
- guides: s.guides || [],
33
- loading: !1
34
- }))), t.getAsync("router").then((s) => {
35
- const { params: o } = s.getRouteData();
36
- a(o);
37
- }), c("router:changed", (s, { current: o }) => {
38
- a(o.routeData.params);
39
- }), L(t, r), R(r);
40
- }).then(() => B(t, "contact-list", (r) => {
19
+ return K(
20
+ t,
21
+ "contact-list",
22
+ import("./contact-list.1f012daa.js"),
23
+ (r) => {
24
+ const a = (s) => {
25
+ r.writeProperties({ loading: !0, contactMethods: [], categories: [] }), r.actions.dispatch("fetch", { params: s });
26
+ };
27
+ r.actions.create("fetch", (s) => {
28
+ const { submitButtonLabel: o = "Submit" } = r.properties(), h = (s.contactMethods || []).map((i) => d(u({}, i), {
29
+ body: I(i, { submit: o })
30
+ }));
31
+ return r.actions.dispatch("fetched", d(u({}, s), {
32
+ contactMethods: h,
33
+ loading: !0
34
+ }));
35
+ }), r.actions.create("fetched", (s) => r.writeProperties(d(u({}, s), {
36
+ guides: s.guides || [],
37
+ loading: !1
38
+ }))), t.getAsync("router").then((s) => {
39
+ const { params: o } = s.getRouteData();
40
+ a(o);
41
+ }), c("router:changed", (s, { current: o }) => {
42
+ a(o.routeData.params);
43
+ }), L(t, r), R(r);
44
+ }
45
+ ).then(() => B(t, "contact-list", (r) => {
41
46
  r.actions.watch("contact-list.fetch", (a, s) => {
42
47
  const {
43
48
  deflection: o = {},
@@ -56,7 +61,13 @@ const J = (t) => {
56
61
  return (C = o[y]) != null && C.length ? f.fetch(M.Guides, {
57
62
  categories: o[y],
58
63
  take: h
59
- }).then((n) => i && l && D === r.node.name ? j(n, f, { guide: l }) : new Promise((S) => S(n))).then(({ guides: n }) => s({ guides: n, contactMethods: m, categories: p })) : s({ contactMethods: m, categories: p });
64
+ }).then((n) => i && l && D === r.node.name ? j(
65
+ n,
66
+ f,
67
+ { guide: l }
68
+ ) : new Promise(
69
+ (S) => S(n)
70
+ )).then(({ guides: n }) => s({ guides: n, contactMethods: m, categories: p })) : s({ contactMethods: m, categories: p });
60
71
  }));
61
72
  });
62
73
  })).then(() => {
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../src/contact-list-component.ts"],"sourcesContent":["import { ContactMethodType } from '@telia-ace/knowledge-widget-adapters';\nimport {\n fetchAccordionGuideIfMissing,\n updateForm,\n useExpand,\n useForm,\n} from '@telia-ace/knowledge-widget-component-utilities';\nimport {\n Category,\n createEventSubscriber,\n extendComponent,\n Guide,\n} from '@telia-ace/knowledge-widget-core';\nimport {\n ContactsResult,\n DataClient,\n DataType,\n MatchResult,\n} from '@telia-ace/knowledge-widget-types-grid';\nimport { createReactComponent } from '@telia-ace/knowledge-widget-ui';\nimport { FormComponentInstanceProperties } from '@telia-ace/widget-forms';\nimport { Container } from '@webprovisions/platform';\n\nexport type ContactListComponentProps = {\n deflectionHeader?: string;\n deflection?: { [contactCategoryId: string]: string[] };\n deflectionPageSize?: number;\n routes?: {\n contactCategory?: string;\n guide?: string;\n };\n categories?: Category[]; // internal\n contactMethods?: ContactMethodType[]; // internal\n guides?: Guide[]; // internal\n deflectionAccordion?: boolean;\n} & FormComponentInstanceProperties;\n\nexport const ContactListComponent = (container: Container) => {\n const { events } = container.get('$widget');\n const [subscribe, unsubscribe] = createEventSubscriber(events);\n\n return createReactComponent(\n container,\n 'contact-list',\n import('./contact-list'),\n (component) => {\n const fetch = (params: { [key: string]: any }) => {\n component.writeProperties({ loading: true, contactMethods: [], categories: [] });\n component.actions.dispatch('fetch', { params });\n };\n\n component.actions.create('fetch', (data) => {\n const { submitButtonLabel = 'Submit' } =\n component.properties<ContactListComponentProps>();\n\n const contactMethods = (data.contactMethods || []).map((cm: ContactMethodType) => ({\n ...cm,\n body: updateForm(cm, { submit: submitButtonLabel }),\n }));\n\n return component.actions.dispatch('fetched', {\n ...data,\n contactMethods,\n loading: true,\n });\n });\n\n component.actions.create('fetched', (input) => {\n return component.writeProperties({\n ...input,\n guides: input.guides || [],\n loading: false,\n });\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 useForm(container, component);\n useExpand(component);\n }\n )\n .then(() => {\n return extendComponent(container, 'contact-list', (component) => {\n component.actions.watch('contact-list.fetch', (input, next) => {\n const {\n deflection = {},\n deflectionPageSize = 5,\n deflectionAccordion,\n } = component.properties<ContactListComponentProps>();\n const { params = {} } = input;\n const {\n contactCategory,\n guide: guideParam,\n accordion: accordionParam,\n } = params;\n return container.getAsync('dataClient').then((dataClient: DataClient) => {\n return dataClient\n .fetch(DataType.ContactMethodCategories, {\n contactMethodCategoryId: contactCategory,\n })\n .then(({ contactMethods, categories }: ContactsResult) => {\n const deflectionKeys = Object.keys(deflection);\n const currentCategory =\n deflectionKeys.length === 1 && !contactCategory\n ? deflectionKeys[0]\n : contactCategory;\n\n if (deflection[currentCategory]?.length) {\n return dataClient\n .fetch(DataType.Guides, {\n categories: deflection[currentCategory],\n take: deflectionPageSize,\n })\n .then((data: MatchResult) => {\n if (\n deflectionAccordion &&\n guideParam &&\n accordionParam === component.node.name\n ) {\n return fetchAccordionGuideIfMissing(\n data,\n dataClient,\n { guide: guideParam }\n );\n }\n return new Promise<MatchResult>((resolve) =>\n resolve(data)\n );\n })\n .then(({ guides }: MatchResult) => {\n return next({ guides, contactMethods, categories });\n });\n }\n\n return next({ contactMethods, categories });\n });\n });\n });\n });\n })\n .then(() => {\n unsubscribe();\n });\n};\n\nexport default ContactListComponent;\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAqCa,MAAA,IAAuB,CAAC,MAAyB;AAC1D,QAAM,EAAE,cAAW,EAAU,IAAI,SAAS,GACpC,CAAC,GAAW,KAAe,EAAsB,CAAM;AAE7D,SAAO,EACH,GACA,gBACA,OAAO,+BACP,CAAC,MAAc;AACL,UAAA,IAAQ,CAAC,MAAmC;AACpC,QAAA,gBAAgB,EAAE,SAAS,IAAM,gBAAgB,IAAI,YAAY,CAAC,EAAA,CAAG,GAC/E,EAAU,QAAQ,SAAS,SAAS,EAAE,UAAQ,CAAA;AAAA,IAAA;AAGlD,MAAU,QAAQ,OAAO,SAAS,CAAC,MAAS;AACxC,YAAM,EAAE,uBAAoB,aACxB,EAAU,WAAsC,GAE9C,IAAuB,GAAA,kBAAkB,CAAA,GAAI,IAAI,CAAC,MAA2B,QAC5E,IAD4E;AAAA,QAE/E,MAAM,EAAW,GAAI,EAAE,QAAQ,GAAmB;AAAA,MACpD,EAAA;AAEK,aAAA,EAAU,QAAQ,SAAS,WAAW,QACtC,IADsC;AAAA,QAEzC;AAAA,QACA,SAAS;AAAA,MAAA,EACZ;AAAA,IAAA,CACJ,GAED,EAAU,QAAQ,OAAO,WAAW,CAAC,MAC1B,EAAU,gBAAgB,QAC1B,IAD0B;AAAA,MAE7B,QAAQ,EAAM,UAAU,CAAC;AAAA,MACzB,SAAS;AAAA,IAAA,EACZ,CACJ,GAED,EAAU,SAAS,QAAQ,EAAE,KAAK,CAAC,MAAW;AACpC,YAAA,EAAE,cAAW,EAAO,aAAa;AACvC,QAAM,CAAM;AAAA,IAAA,CACf,GAED,EAAU,kBAAkB,CAAC,GAAY,EAAE,iBAAmB;AACpD,QAAA,EAAQ,UAAU,MAAM;AAAA,IAAA,CACjC,GAED,EAAQ,GAAW,CAAS,GAC5B,EAAU,CAAS;AAAA,EAAA,CAE3B,EACK,KAAK,MACK,EAAgB,GAAW,gBAAgB,CAAC,MAAc;AAC7D,MAAU,QAAQ,MAAM,sBAAsB,CAAC,GAAO,MAAS;AACrD,YAAA;AAAA,QACF,gBAAa,CAAC;AAAA,QACd,wBAAqB;AAAA,QACrB;AAAA,UACA,EAAU,cACR,EAAE,YAAS,OAAO,GAClB;AAAA,QACF;AAAA,QACA,OAAO;AAAA,QACP,WAAW;AAAA,UACX;AACJ,aAAO,EAAU,SAAS,YAAY,EAAE,KAAK,CAAC,MACnC,EACF,MAAM,EAAS,yBAAyB;AAAA,QACrC,yBAAyB;AAAA,MAC5B,CAAA,EACA,KAAK,CAAC,EAAE,mBAAgB,oBAAiC;;AAChD,cAAA,IAAiB,OAAO,KAAK,CAAU,GACvC,IACF,EAAe,WAAW,KAAK,CAAC,IAC1B,EAAe,KACf;AAEN,eAAA,OAAW,OAAX,UAA6B,SACtB,EACF,MAAM,EAAS,QAAQ;AAAA,UACpB,YAAY,EAAW;AAAA,UACvB,MAAM;AAAA,QAAA,CACT,EACA,KAAK,CAAC,MAEC,KACA,KACA,MAAmB,EAAU,KAAK,OAE3B,EACH,GACA,GACA,EAAE,OAAO,GACb,IAEG,IAAI,QAAqB,CAAC,MAC7B,EAAQ,CAAI,CAChB,CACH,EACA,KAAK,CAAC,EAAE,gBACE,EAAK,EAAE,WAAQ,mBAAgB,cAAY,CAAA,CACrD,IAGF,EAAK,EAAE,mBAAgB,cAAY,CAAA;AAAA,MAAA,CAC7C,CACR;AAAA,IAAA,CACJ;AAAA,EAAA,CACJ,CACJ,EACA,KAAK,MAAM;AACI;EAAA,CACf;AACT;"}
1
+ {"version":3,"file":"index.js","sources":["../src/contact-list-component.ts"],"sourcesContent":["import { ContactMethodType } from '@telia-ace/knowledge-widget-adapters';\r\nimport {\r\n fetchAccordionGuideIfMissing,\r\n updateForm,\r\n useExpand,\r\n useForm,\r\n} from '@telia-ace/knowledge-widget-component-utilities';\r\nimport {\r\n Category,\r\n createEventSubscriber,\r\n extendComponent,\r\n Guide,\r\n} from '@telia-ace/knowledge-widget-core';\r\nimport {\r\n ContactsResult,\r\n DataClient,\r\n DataType,\r\n MatchResult,\r\n} from '@telia-ace/knowledge-widget-types-grid';\r\nimport { createReactComponent } from '@telia-ace/knowledge-widget-ui';\r\nimport { FormComponentInstanceProperties } from '@telia-ace/widget-forms';\r\nimport { Container } from '@webprovisions/platform';\r\n\r\nexport type ContactListComponentProps = {\r\n deflectionHeader?: string;\r\n deflection?: { [contactCategoryId: string]: string[] };\r\n deflectionPageSize?: number;\r\n routes?: {\r\n contactCategory?: string;\r\n guide?: string;\r\n };\r\n categories?: Category[]; // internal\r\n contactMethods?: ContactMethodType[]; // internal\r\n guides?: Guide[]; // internal\r\n deflectionAccordion?: boolean;\r\n} & FormComponentInstanceProperties;\r\n\r\nexport const ContactListComponent = (container: Container) => {\r\n const { events } = container.get('$widget');\r\n const [subscribe, unsubscribe] = createEventSubscriber(events);\r\n\r\n return createReactComponent(\r\n container,\r\n 'contact-list',\r\n import('./contact-list'),\r\n (component) => {\r\n const fetch = (params: { [key: string]: any }) => {\r\n component.writeProperties({ loading: true, contactMethods: [], categories: [] });\r\n component.actions.dispatch('fetch', { params });\r\n };\r\n\r\n component.actions.create('fetch', (data) => {\r\n const { submitButtonLabel = 'Submit' } =\r\n component.properties<ContactListComponentProps>();\r\n\r\n const contactMethods = (data.contactMethods || []).map((cm: ContactMethodType) => ({\r\n ...cm,\r\n body: updateForm(cm, { submit: submitButtonLabel }),\r\n }));\r\n\r\n return component.actions.dispatch('fetched', {\r\n ...data,\r\n contactMethods,\r\n loading: true,\r\n });\r\n });\r\n\r\n component.actions.create('fetched', (input) => {\r\n return component.writeProperties({\r\n ...input,\r\n guides: input.guides || [],\r\n loading: false,\r\n });\r\n });\r\n\r\n container.getAsync('router').then((router) => {\r\n const { params } = router.getRouteData();\r\n fetch(params);\r\n });\r\n\r\n subscribe('router:changed', (event: any, { current }: any) => {\r\n fetch(current.routeData.params);\r\n });\r\n\r\n useForm(container, component);\r\n useExpand(component);\r\n }\r\n )\r\n .then(() => {\r\n return extendComponent(container, 'contact-list', (component) => {\r\n component.actions.watch('contact-list.fetch', (input, next) => {\r\n const {\r\n deflection = {},\r\n deflectionPageSize = 5,\r\n deflectionAccordion,\r\n } = component.properties<ContactListComponentProps>();\r\n const { params = {} } = input;\r\n const {\r\n contactCategory,\r\n guide: guideParam,\r\n accordion: accordionParam,\r\n } = params;\r\n return container.getAsync('dataClient').then((dataClient: DataClient) => {\r\n return dataClient\r\n .fetch(DataType.ContactMethodCategories, {\r\n contactMethodCategoryId: contactCategory,\r\n })\r\n .then(({ contactMethods, categories }: ContactsResult) => {\r\n const deflectionKeys = Object.keys(deflection);\r\n const currentCategory =\r\n deflectionKeys.length === 1 && !contactCategory\r\n ? deflectionKeys[0]\r\n : contactCategory;\r\n\r\n if (deflection[currentCategory]?.length) {\r\n return dataClient\r\n .fetch(DataType.Guides, {\r\n categories: deflection[currentCategory],\r\n take: deflectionPageSize,\r\n })\r\n .then((data: MatchResult) => {\r\n if (\r\n deflectionAccordion &&\r\n guideParam &&\r\n accordionParam === component.node.name\r\n ) {\r\n return fetchAccordionGuideIfMissing(\r\n data,\r\n dataClient,\r\n { guide: guideParam }\r\n );\r\n }\r\n return new Promise<MatchResult>((resolve) =>\r\n resolve(data)\r\n );\r\n })\r\n .then(({ guides }: MatchResult) => {\r\n return next({ guides, contactMethods, categories });\r\n });\r\n }\r\n\r\n return next({ contactMethods, categories });\r\n });\r\n });\r\n });\r\n });\r\n })\r\n .then(() => {\r\n unsubscribe();\r\n });\r\n};\r\n\r\nexport default ContactListComponent;\r\n"],"names":["ContactListComponent","container","events","subscribe","unsubscribe","createEventSubscriber","createReactComponent","component","fetch","params","data","submitButtonLabel","contactMethods","cm","__spreadProps","__spreadValues","updateForm","input","router","event","current","useForm","useExpand","extendComponent","next","deflection","deflectionPageSize","deflectionAccordion","contactCategory","guideParam","accordionParam","dataClient","DataType","categories","deflectionKeys","currentCategory","_a","fetchAccordionGuideIfMissing","resolve","guides"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@telia-ace/knowledge-widget-components-contact-list",
3
- "version": "1.0.21",
3
+ "version": "1.0.23",
4
4
  "description": "Contact list component for ACE Knowledge Widgets.",
5
5
  "license": "SEE LICENSE IN LICENSE.txt",
6
6
  "author": "Telia Company AB",
@@ -8,6 +8,7 @@
8
8
  "telia"
9
9
  ],
10
10
  "main": "dist/index.js",
11
+ "sourceMain": "src/index.ts",
11
12
  "type": "module",
12
13
  "types": "dist/index.d.ts",
13
14
  "files": [
@@ -25,13 +26,13 @@
25
26
  },
26
27
  "sideEffects": false,
27
28
  "dependencies": {
28
- "@telia-ace/knowledge-widget-adapters": "^1.0.27",
29
- "@telia-ace/knowledge-widget-component-utilities": "^1.0.21",
30
- "@telia-ace/knowledge-widget-core": "^1.0.17",
31
- "@telia-ace/knowledge-widget-types-grid": "^1.0.28",
32
- "@telia-ace/knowledge-widget-ui": "^1.0.23",
33
- "@telia-ace/widget-forms": "^1.0.20",
34
- "@telia-ace/widget-utilities": "^1.0.2",
29
+ "@telia-ace/knowledge-widget-adapters": "^1.0.29",
30
+ "@telia-ace/knowledge-widget-component-utilities": "^1.0.23",
31
+ "@telia-ace/knowledge-widget-core": "^1.0.19",
32
+ "@telia-ace/knowledge-widget-types-grid": "^1.0.30",
33
+ "@telia-ace/knowledge-widget-ui": "^1.0.25",
34
+ "@telia-ace/widget-forms": "^1.0.22",
35
+ "@telia-ace/widget-utilities": "^1.0.4",
35
36
  "@webprovisions/platform": "^1.1.2"
36
37
  },
37
38
  "peerDependencies": {
@@ -44,5 +45,5 @@
44
45
  "@types/react-dom": "^16.8.0",
45
46
  "@types/styled-components": "^5.1.7"
46
47
  },
47
- "gitHead": "038c3d0914f7298d2bb74a80c7a679c7450633f9"
48
+ "gitHead": "db190a67f912245c4145c037972fac2039bda698"
48
49
  }
@@ -1 +0,0 @@
1
- {"version":3,"file":"contact-list.c6d26333.js","sources":["../src/deflection-list.tsx","../src/contact-list.tsx"],"sourcesContent":["import { Guide } from '@telia-ace/knowledge-widget-core';\nimport { Component } from '@telia-ace/knowledge-widget-types-grid';\nimport {\n AccordionListItem,\n contentBox,\n createEmptyComponent,\n GuideList,\n ItemRenderer,\n Loader,\n loadingOpacity,\n useChildren,\n useComponentDescriptor,\n useContainer,\n useDispatch,\n useRouteData,\n} from '@telia-ace/knowledge-widget-ui';\nimport { appendClassNames, createParams, formatUrl } from '@telia-ace/widget-utilities';\nimport React, { useCallback } from 'react';\nimport styled from 'styled-components';\n\ntype Props = {\n className: string;\n guides: Guide[];\n header: string;\n accordion?: boolean;\n route?: string;\n loading: boolean;\n categoryTitle?: string;\n};\n\nconst DeflectionList: React.SFC<Props> = ({\n className,\n guides,\n header,\n accordion,\n loading,\n route = 'guide',\n categoryTitle,\n ...other\n}) => {\n const {\n name: routeName,\n params: { contactCategory = 0, guide: currentGuideId },\n } = useRouteData();\n const { name: componentName } = useComponentDescriptor();\n const container = useContainer();\n const children = useChildren();\n const dispatch = useDispatch();\n\n const renderItem: ItemRenderer = useCallback(\n (guide, index, items, defaultRenderer) => {\n const { id, title } = guide;\n if (accordion && currentGuideId === id) {\n return (\n <AccordionListItem\n key={id}\n id={id}\n title={title}\n route={routeName}\n collapseUri={categoryTitle && formatUrl(categoryTitle)}\n >\n {children.map((child) => (\n <Component\n key={child.id}\n id={child.id}\n branch=\"default\"\n {...{ accordion }}\n />\n ))}\n </AccordionListItem>\n );\n }\n\n return defaultRenderer ? defaultRenderer(guide, index, items, defaultRenderer) : null;\n },\n [accordion, children, currentGuideId]\n );\n\n if (!guides.length && !loading) {\n return createEmptyComponent(container, {\n ...other,\n className: appendClassNames(className, 'humany-deflection-list'),\n });\n }\n\n return (\n <StyledGuideList\n {...other}\n data-loading={loading}\n className={appendClassNames(className, 'humany-deflection-list')}\n items={guides}\n header={header}\n expandable={!!accordion}\n renderItem={renderItem}\n dispatch={dispatch}\n routing={{\n guide: route,\n }}\n paramMappers={{\n guide: ({ id, title }: Guide) =>\n createParams({\n contactCategory,\n guide: id,\n accordion: accordion ? componentName : undefined,\n uriName: formatUrl(title),\n }),\n }}\n >\n <Loader loading={loading} />\n </StyledGuideList>\n );\n};\n\nconst StyledGuideList = styled(GuideList)<{ 'data-loading': boolean } & any>`\n ${contentBox}\n ${loadingOpacity}\n`;\n\nexport default DeflectionList;\n","import {\n contactItemList,\n contactLink,\n ContactList as ContactListUi,\n} from '@telia-ace/knowledge-widget-adapters';\nimport { Category } from '@telia-ace/knowledge-widget-core';\nimport {\n borderTabStyle,\n contentBox,\n createEmptyComponent,\n ItemList,\n Link,\n Loader,\n loadingOpacity,\n StyledText,\n SymbolBadge,\n useContainer,\n useDispatch,\n useProperties,\n useRouteData,\n} from '@telia-ace/knowledge-widget-ui';\nimport {\n appendClassNames,\n createParams,\n findCategoryById,\n formatUrl,\n} from '@telia-ace/widget-utilities';\nimport React from 'react';\nimport styled from 'styled-components';\nimport { ContactListComponentProps } from './contact-list-component';\nimport DeflectionList from './deflection-list';\n\nconst StyledContactList = styled(ContactListUi)<any>`\n ${loadingOpacity}\n ${contentBox}\n`;\n\nconst StyledItemList = styled(ItemList)<any>`\n ${loadingOpacity}\n ${contentBox}\n ${contactItemList}\n\n && {\n i {\n font-size: 25px;\n width: 1.28571429em;\n text-align: center;\n }\n }\n`;\n\nconst StyledLink = styled(Link)<any>`\n &:focus {\n ${(p) => p.theme.accessibility?.isTabbing && borderTabStyle};\n }\n\n ${contactLink}\n`;\n\ntype Props = {\n className: string;\n};\n\nconst ContactList: React.SFC<Props> = ({ className, ...other }) => {\n const dispatch = useDispatch();\n const container = useContainer();\n const routeData = useRouteData();\n const {\n deflectionHeader = '',\n routes = {},\n contactMethods = [],\n categories = [],\n guides = [],\n deflectionAccordion = false,\n loading = false,\n } = useProperties<ContactListComponentProps>();\n\n const { contactCategory: contactCategoryRoute, guide: guideRoute = 'guide' } = routes;\n\n if (!categories.length && !contactMethods.length && !loading) {\n return createEmptyComponent(container, {\n ...other,\n className: appendClassNames(className, 'humany-contact-category-list'),\n });\n }\n\n const {\n name,\n params: { contactCategory },\n } = routeData;\n\n const selectedCategory: Category = findCategoryById(contactCategory, categories);\n\n return !contactMethods.length ? (\n <StyledItemList\n {...other}\n data-loading={loading}\n className={appendClassNames(className, 'humany-contact-category-list')}\n items={(selectedCategory && selectedCategory.items) || categories}\n renderItem={({ id, title, symbol, matches, items }: Category) =>\n !!matches || (items && !!items.length) ? (\n <li key={id} data-contact-category={id}>\n <StyledLink\n routeName={contactCategoryRoute || name}\n params={createParams({\n contactCategory: id,\n uriName: formatUrl(title),\n })}\n >\n {symbol && <SymbolBadge symbol={symbol} />}\n <StyledText>{title}</StyledText>\n </StyledLink>\n </li>\n ) : null\n }\n >\n <Loader loading={loading} />\n </StyledItemList>\n ) : (\n <>\n <DeflectionList\n className={className}\n guides={guides}\n categoryTitle={selectedCategory && selectedCategory.title}\n header={deflectionHeader}\n route={guideRoute}\n accordion={deflectionAccordion}\n loading={loading}\n />\n <StyledContactList\n data-loading={loading}\n className={className}\n contactMethods={contactMethods}\n dispatch={dispatch}\n >\n <Loader loading={loading} />\n </StyledContactList>\n </>\n );\n};\n\nexport default ContactList;\n"],"names":["ContactListUi"],"mappings":"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"}