@telia-ace/knowledge-widget-components-search 1.0.43 → 1.0.44-next.0

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,156 +1,173 @@
1
- var A = Object.defineProperty, D = Object.defineProperties;
2
- var O = Object.getOwnPropertyDescriptors;
3
- var b = Object.getOwnPropertySymbols;
4
- var j = Object.prototype.hasOwnProperty, F = Object.prototype.propertyIsEnumerable;
5
- var I = (a, e, o) => e in a ? A(a, e, { enumerable: !0, configurable: !0, writable: !0, value: o }) : a[e] = o, c = (a, e) => {
6
- for (var o in e || (e = {}))
7
- j.call(e, o) && I(a, o, e[o]);
8
- if (b)
9
- for (var o of b(e))
10
- F.call(e, o) && I(a, o, e[o]);
1
+ var D = Object.defineProperty, j = Object.defineProperties;
2
+ var E = Object.getOwnPropertyDescriptors;
3
+ var T = Object.getOwnPropertySymbols;
4
+ var O = Object.prototype.hasOwnProperty, S = Object.prototype.propertyIsEnumerable;
5
+ var w = (a, e, s) => e in a ? D(a, e, { enumerable: !0, configurable: !0, writable: !0, value: s }) : a[e] = s, l = (a, e) => {
6
+ for (var s in e || (e = {}))
7
+ O.call(e, s) && w(a, s, e[s]);
8
+ if (T)
9
+ for (var s of T(e))
10
+ S.call(e, s) && w(a, s, e[s]);
11
11
  return a;
12
- }, h = (a, e) => D(a, O(e));
13
- import { DataClient as T, DataType as R } from "@telia-ace/knowledge-data-client";
14
- import { createEventSubscriber as S } from "@telia-ace/knowledge-widget-core";
15
- import { createReactComponent as x } from "@telia-ace/knowledge-widget-ui";
16
- import { createParams as E, findCategoryById as G, deepClone as p, categoryTrail as M, getCategoryTrailAsObjects as $ } from "@telia-ace/widget-utilities";
17
- const B = (a) => !!a.guideCategory || !!a.tag, H = (a, e) => {
18
- const o = M(a, e), f = $(o, e);
19
- return o.map((C) => {
12
+ }, h = (a, e) => j(a, E(e));
13
+ import { DataClient as b, DataType as R } from "@telia-ace/knowledge-data-client";
14
+ import { createEventSubscriber as x } from "@telia-ace/knowledge-widget-core";
15
+ import { createReactComponent as G } from "@telia-ace/knowledge-widget-ui";
16
+ import { createParams as M, findCategoryById as $, deepClone as P, categoryTrail as H, getCategoryTrailAsObjects as N } from "@telia-ace/widget-utilities";
17
+ const U = (a) => !!a.guideCategory || a.tag.length > 0, _ = (a, e) => {
18
+ const s = H(a, e), f = N(s, e);
19
+ return s.map((C) => {
20
20
  var y;
21
21
  return ((y = f.get(C)) == null ? void 0 : y.title) || "";
22
22
  }).join(" / ");
23
- }, v = (a) => {
24
- const e = p(a);
25
- return e.sort((o, f) => o.title > f.title ? 1 : -1), e.forEach((o) => {
26
- o.items && (o.items = v(o.items));
23
+ }, m = (a) => {
24
+ const e = P(a);
25
+ return e.sort((s, f) => s.title > f.title ? 1 : -1), e.forEach((s) => {
26
+ s.items && (s.items = m(s.items));
27
27
  }), e;
28
- }, U = (a) => x(a, "search", import("./search.9f859d14.js"), (e) => {
29
- const { events: o } = a.get("$widget"), [f, P] = S(o), C = (i) => {
30
- var r, n;
31
- const { activeFilterBadges: t } = e.properties();
32
- (((r = t == null ? void 0 : t.guideCategory) == null ? void 0 : r.id) !== i.guideCategory || ((n = t == null ? void 0 : t.tag) == null ? void 0 : n.id) !== i.tag) && e.actions.dispatch("quick-filter:add", {
33
- tag: i.tag,
28
+ }, z = (a) => G(a, "search", import("./search.d8394d6a.js"), (e) => {
29
+ const { events: s } = a.get("$widget"), [f, I] = x(s), C = (i) => {
30
+ var g;
31
+ const { activeFilterBadges: r } = e.properties();
32
+ let t = [];
33
+ i.tag && i.tag.includes(",") ? t = i.tag.split(",") : i.tag && (t = [i.tag]);
34
+ const n = t.filter((o) => !(r == null ? void 0 : r.tag.find((c) => c.id === o))), u = ((r == null ? void 0 : r.tag) || []).filter((o) => !t.includes(o.id));
35
+ (((g = r == null ? void 0 : r.guideCategory) == null ? void 0 : g.id) !== i.guideCategory || n.length > 0) && e.actions.dispatch("quick-filter:add", {
36
+ tagIds: i.tag ? i.tag.split(",") : [],
34
37
  category: i.guideCategory,
35
38
  initial: !0
39
+ }), u.forEach((o) => {
40
+ e.actions.dispatch("quick-filter:remove", { types: ["tag"], id: o.id });
36
41
  });
37
42
  };
38
- e.actions.create("search", (i) => {
39
- const { value: t, filters: r, filtersChanged: n } = i, { route: u = "search", patchParams: g = !1 } = e.properties();
40
- (t.length > 0 || (B(r) || n) && !(r != null && r.initial)) && a.getAsync("router").then((s) => {
41
- var q, w;
42
- const { params: d } = s.getRouteData();
43
- let l = {
44
- guide: void 0,
45
- id: void 0,
46
- accordion: void 0,
47
- contactMethod: void 0
48
- };
49
- l.phrase = t.length > 0 ? encodeURIComponent(t) : "", g && (l = c(c({}, d), l)), ((r == null ? void 0 : r.guideCategory) || n) && (l.guideCategory = ((q = r.guideCategory) == null ? void 0 : q.id) || void 0), ((r == null ? void 0 : r.tag) || n) && (l.tag = ((w = r.tag) == null ? void 0 : w.id) || void 0), s.navigate(u, E(l));
50
- });
51
- }), e.actions.create("clear", (i, t) => {
52
- i.navigateToHome && a.getAsync("router").then((r) => {
53
- const { name: n } = r.getInitialRoute();
54
- r.navigate(n);
43
+ e.actions.create(
44
+ "search",
45
+ (i) => {
46
+ const { value: r, filters: t, filtersChanged: n } = i, { route: u = "search", patchParams: g = !1 } = e.properties();
47
+ (r.length > 0 || (U(t) || n) && !(t != null && t.initial)) && a.getAsync("router").then((o) => {
48
+ var p;
49
+ const { params: d } = o.getRouteData();
50
+ let c = {
51
+ guide: void 0,
52
+ id: void 0,
53
+ accordion: void 0,
54
+ contactMethod: void 0
55
+ };
56
+ c.phrase = r.length > 0 ? encodeURIComponent(r) : "", g && (c = l(l({}, d), c)), ((t == null ? void 0 : t.guideCategory) || n) && (c.guideCategory = ((p = t.guideCategory) == null ? void 0 : p.id) || void 0), ((t == null ? void 0 : t.tag.length) > 0 || n) && (t.tag.length > 0 ? c.tag = t.tag.map((v) => v.id).join(",") : c.tag = void 0), o.navigate(u, M(c));
57
+ });
58
+ }
59
+ ), e.actions.create("clear", (i, r) => {
60
+ i.navigateToHome && a.getAsync("router").then((t) => {
61
+ const { name: n } = t.getInitialRoute();
62
+ t.navigate(n);
55
63
  });
56
64
  });
57
65
  const y = () => a.getAsync("router").then((i) => i.getRouteData().params);
58
66
  e.actions.create(
59
67
  "quick-filter:add",
60
68
  (i) => {
61
- const { category: t, tag: r, initial: n } = i, { activeFilterBadges: u } = e.properties(), g = u || {
69
+ const { category: r, tagIds: t, initial: n } = i, { activeFilterBadges: u } = e.properties(), g = u || {
62
70
  initial: n,
63
71
  guideCategory: null,
64
- tag: null,
72
+ tag: [],
65
73
  tooltip: null
66
74
  };
67
- return Promise.resolve().then(() => t ? m({}).then((s) => {
68
- const d = G(t, s) || null;
69
- return h(c({}, g), {
75
+ return Promise.resolve().then(() => r ? k({}).then((o) => {
76
+ const d = $(r, o) || null;
77
+ return h(l({}, g), {
70
78
  guideCategory: d,
71
- tooltip: H(t, s) || null
79
+ tooltip: _(r, o) || null
72
80
  });
73
- }) : h(c({}, g), {
81
+ }) : h(l({}, g), {
74
82
  guideCategory: null,
75
83
  tooltip: null
76
- })).then((s) => r ? k({}).then((d) => h(c({}, s), {
77
- tag: d.find((l) => l.id === r) || null
78
- })) : h(c({}, s), {
79
- tag: null
80
- })).then((s) => e.writeProperties({
81
- activeFilterBadges: h(c({}, s), { initial: !!n })
84
+ })).then((o) => t ? q({}).then((d) => {
85
+ let c = [];
86
+ return t.forEach((p) => {
87
+ const v = d.find((A) => A.id === p);
88
+ v && c.push(v);
89
+ }), h(l({}, o), {
90
+ tag: c
91
+ });
92
+ }) : h(l({}, o), {
93
+ tag: []
94
+ })).then((o) => e.writeProperties({
95
+ activeFilterBadges: h(l({}, o), { initial: !!n })
82
96
  }));
83
97
  }
84
- ), e.actions.create("quick-filter:remove", ({ types: i }) => {
85
- const { activeFilterBadges: t } = e.properties();
86
- e.writeProperties({
87
- activeFilterBadges: h(c({}, t), {
88
- initial: !1,
89
- guideCategory: i.indexOf("guideCategory") > -1 ? null : t == null ? void 0 : t.guideCategory,
90
- tag: i.indexOf("tag") > -1 ? null : t == null ? void 0 : t.tag
91
- })
92
- });
93
- }), e.actions.create("quick-filter:close", () => e.writeProperties({
98
+ ), e.actions.create(
99
+ "quick-filter:remove",
100
+ ({ types: i, id: r }) => {
101
+ const { activeFilterBadges: t } = e.properties();
102
+ e.writeProperties({
103
+ activeFilterBadges: h(l({}, t), {
104
+ initial: !1,
105
+ guideCategory: i.indexOf("guideCategory") > -1 ? null : t == null ? void 0 : t.guideCategory,
106
+ tag: i.indexOf("tag") > -1 ? t == null ? void 0 : t.tag.filter((n) => n.id !== r) : t == null ? void 0 : t.tag
107
+ })
108
+ });
109
+ }
110
+ ), e.actions.create("quick-filter:close", () => e.writeProperties({
94
111
  quickFilter: {
95
112
  items: [],
96
113
  loading: !1,
97
114
  open: !1
98
115
  }
99
- })), e.actions.create("quick-filter:open", ({ symbol: i, type: t }) => (e.writeProperties({
116
+ })), e.actions.create("quick-filter:open", ({ symbol: i, type: r }) => (e.writeProperties({
100
117
  quickFilter: {
101
- type: t,
118
+ type: r,
102
119
  symbol: i,
103
120
  items: [],
104
121
  loading: !0,
105
122
  open: !0
106
123
  }
107
- }), y().then(({ tag: r, guideCategory: n, phrase: u }) => {
108
- if (t === "guideCategory")
109
- return m({
110
- tagId: r,
124
+ }), y().then(({ tag: t, guideCategory: n, phrase: u }) => {
125
+ if (r === "guideCategory")
126
+ return k({
127
+ tagId: t,
111
128
  searchPhrase: u
112
129
  }).then((g) => {
113
- const s = p(g);
130
+ const o = P(g);
114
131
  e.writeProperties({
115
132
  quickFilter: {
116
- items: v(s),
133
+ items: m(o),
117
134
  loading: !1
118
135
  }
119
136
  });
120
137
  });
121
- if (t === "tag")
122
- return k({
138
+ if (r === "tag")
139
+ return q({
123
140
  categories: n,
124
141
  searchPhrase: u
125
142
  }).then((g) => {
126
- const s = p(g);
143
+ const o = P(g);
127
144
  e.writeProperties({
128
145
  quickFilter: {
129
- items: v(s),
146
+ items: m(o),
130
147
  loading: !1
131
148
  }
132
149
  });
133
150
  });
134
151
  })));
135
- const m = (i) => T.getInstance(a).then((t) => t.fetch(R.GuideCategories, i)).then((t) => t.categories || []), k = (i) => T.getInstance(a).then((t) => t.fetch(R.TagsOnGuides, i)).then((t = []) => t);
152
+ const k = (i) => b.getInstance(a).then((r) => r.fetch(R.GuideCategories, i)).then((r) => r.categories || []), q = (i) => b.getInstance(a).then((r) => r.fetch(R.TagsOnGuides, i)).then((r = []) => r);
136
153
  return y().then((i) => {
137
154
  C(i);
138
- }), f("router:changed", (i, { current: t }) => {
155
+ }), f("router:changed", (i, { current: r }) => {
139
156
  const {
140
- routeData: { params: r }
141
- } = t;
142
- C(r);
143
- }), f("data-client:fetched", (i, t) => {
144
- const { filterBadges: r } = e.properties(), n = typeof r == "object" ? !!r.tag : !!r;
145
- t.type === "match" && n && y().then(({ tag: u }) => {
146
- const { tags: g = [] } = t.response, s = g.find((d) => d.id === u) || null;
147
- e.writeProperties({ filters: { tag: s } });
157
+ routeData: { params: t }
158
+ } = r;
159
+ C(t);
160
+ }), f("data-client:fetched", (i, r) => {
161
+ const { filterBadges: t } = e.properties(), n = typeof t == "object" ? !!t.tag : !!t;
162
+ r.type === "match" && n && y().then(({ tag: u }) => {
163
+ const { tags: g = [] } = r.response, o = g.find((d) => d.id === u) || null;
164
+ e.writeProperties({ filters: { tag: o } });
148
165
  });
149
166
  }), () => {
150
- P();
167
+ I();
151
168
  };
152
- }), N = U;
169
+ }), W = z;
153
170
  export {
154
- N as default
171
+ W as default
155
172
  };
156
173
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../src/search-component.ts"],"sourcesContent":["import {\n CategoriesResult,\n DataClient,\n DataType,\n MatchResult,\n QueryParameters,\n TagsResult,\n} from '@telia-ace/knowledge-data-client';\nimport { Category, createEventSubscriber, Tag } from '@telia-ace/knowledge-widget-core';\nimport { createReactComponent } from '@telia-ace/knowledge-widget-ui';\nimport { RoutingService } from '@telia-ace/widget-routing';\nimport {\n categoryTrail,\n createParams,\n deepClone,\n findCategoryById,\n getCategoryTrailAsObjects,\n Params,\n} from '@telia-ace/widget-utilities';\nimport { Container } from '@webprovisions/platform';\n\nexport type SearchComponentProps = {\n route?: string;\n role?: string;\n\n showSearchButton: boolean;\n showClearButton: boolean;\n showChildren: boolean;\n\n searchButtonLabel: string;\n clearButtonLabel: string;\n ariaLabel?: string;\n\n placeholder: string;\n autoFocus: boolean;\n incremental?: boolean | number;\n\n filterBadges?: FilterConfig | boolean;\n activeFilterBadges?: ActiveFilterBadges; // internal\n deleteFilterBadgeAriaLabel?: string;\n\n quickFilters?: FilterConfig | boolean;\n quickFilter?: Filter; // internal\n\n patchParams?: boolean;\n};\n\nexport type Filter = {\n items?: Category[] | Tag[];\n type?: 'guideCategory' | 'tag';\n symbol?: string;\n loading: boolean;\n open: boolean;\n};\n\nexport type ActiveFilterBadges = {\n guideCategory?: Category | null;\n tag?: Tag | null;\n tooltip?: string | null;\n initial?: boolean;\n};\n\nexport type FilterConfig = {\n autoSelect?: boolean;\n guideCategory?: boolean;\n tag?: boolean;\n position?: 'inside' | 'below';\n};\n\nconst hasActiveFilterBadge = (filters: ActiveFilterBadges) => {\n return !!filters.guideCategory || !!filters.tag;\n};\n\nconst getTooltip = (categoryId: string, categories: Category[]) => {\n const trailIds: string[] = categoryTrail(categoryId, categories);\n const categoryMap = getCategoryTrailAsObjects(trailIds, categories);\n const trail = trailIds.map((id) => categoryMap.get(id)?.title || '').join(' / ');\n return trail;\n};\n\nconst sortRecursive = (items: any[]) => {\n const clone = deepClone(items);\n\n clone.sort((a: any, b: any) => {\n if (a.title > b.title) {\n return 1;\n }\n return -1;\n });\n\n clone.forEach((item: any) => {\n if (item.items) {\n item.items = sortRecursive(item.items);\n }\n });\n\n return clone;\n};\n\nconst SearchComponent = (container: Container) => {\n return createReactComponent(container, 'search', import('./search'), (component) => {\n const { events } = container.get('$widget');\n const [subscribe, unsubscribe] = createEventSubscriber(events);\n\n const load = (params: Params) => {\n const { activeFilterBadges } = component.properties<SearchComponentProps>();\n\n if (\n activeFilterBadges?.guideCategory?.id !== params.guideCategory ||\n activeFilterBadges?.tag?.id !== params.tag\n ) {\n component.actions.dispatch('quick-filter:add', {\n tag: params.tag,\n category: params.guideCategory,\n initial: true,\n });\n }\n };\n\n component.actions.create('search', (data) => {\n const { value, filters, filtersChanged } = data;\n const { route = 'search', patchParams = false } =\n component.properties<SearchComponentProps>();\n\n if (\n value.length > 0 ||\n ((hasActiveFilterBadge(filters) || filtersChanged) && !filters?.initial)\n ) {\n container.getAsync('router').then((router: RoutingService) => {\n const { params } = router.getRouteData();\n\n let searchParams: { [key: string]: string | undefined } = {\n guide: undefined,\n id: undefined,\n accordion: undefined,\n contactMethod: undefined,\n };\n\n searchParams.phrase = value.length > 0 ? encodeURIComponent(value) : '';\n\n if (patchParams) {\n searchParams = {\n ...params,\n ...searchParams,\n };\n }\n\n if (filters?.guideCategory || filtersChanged) {\n searchParams.guideCategory = filters.guideCategory?.id || undefined;\n }\n\n if (filters?.tag || filtersChanged) {\n searchParams.tag = filters.tag?.id || undefined;\n }\n\n router.navigate(route, createParams(searchParams));\n });\n }\n });\n\n component.actions.create('clear', (data, options) => {\n if (data.navigateToHome) {\n container.getAsync('router').then((router: RoutingService) => {\n const { name }: any = router.getInitialRoute();\n router.navigate(name);\n });\n }\n });\n\n const getRouterParams: () => Promise<Params> = () =>\n container\n .getAsync('router')\n .then((router: RoutingService) => router.getRouteData().params);\n\n component.actions.create(\n 'quick-filter:add',\n (data: { category?: string; tag?: string; initial?: boolean }) => {\n const { category, tag, initial } = data;\n const { activeFilterBadges: previous } =\n component.properties<SearchComponentProps>();\n\n const activeFilterBadges: ActiveFilterBadges = previous || {\n initial,\n guideCategory: null,\n tag: null,\n tooltip: null,\n };\n\n return Promise.resolve()\n .then(() => {\n if (category) {\n return fetchCategories({}).then((categories) => {\n const categoryItem =\n <Category | null>findCategoryById(category, categories) || null;\n return {\n ...activeFilterBadges,\n guideCategory: categoryItem,\n tooltip: getTooltip(category, categories) || null,\n };\n });\n }\n return {\n ...activeFilterBadges,\n guideCategory: null,\n tooltip: null,\n };\n })\n .then((next) => {\n if (tag) {\n return fetchTags({}).then((tags) => {\n return {\n ...next,\n tag: tags.find((t) => t.id === tag) || null,\n };\n });\n }\n return {\n ...next,\n tag: null,\n };\n })\n .then((next) => {\n return component.writeProperties({\n activeFilterBadges: { ...next, initial: !!initial },\n });\n });\n }\n );\n\n component.actions.create('quick-filter:remove', ({ types }: { types: string[] }) => {\n const { activeFilterBadges } = component.properties<SearchComponentProps>();\n\n component.writeProperties({\n activeFilterBadges: {\n ...activeFilterBadges,\n initial: false,\n guideCategory:\n types.indexOf('guideCategory') > -1\n ? null\n : activeFilterBadges?.guideCategory,\n tag: types.indexOf('tag') > -1 ? null : activeFilterBadges?.tag,\n },\n });\n });\n\n component.actions.create('quick-filter:close', () => {\n return component.writeProperties({\n quickFilter: {\n items: [],\n loading: false,\n open: false,\n },\n });\n });\n\n component.actions.create('quick-filter:open', ({ symbol, type }) => {\n component.writeProperties({\n quickFilter: {\n type,\n symbol,\n items: [],\n loading: true,\n open: true,\n },\n });\n\n return getRouterParams().then(({ tag, guideCategory, phrase }) => {\n if (type === 'guideCategory') {\n return fetchCategories({\n tagId: tag,\n searchPhrase: phrase,\n }).then((items) => {\n const clone = deepClone(items);\n\n component.writeProperties({\n quickFilter: {\n items: sortRecursive(clone),\n loading: false,\n },\n });\n });\n }\n\n if (type === 'tag') {\n return fetchTags({\n categories: guideCategory,\n searchPhrase: phrase,\n }).then((items) => {\n const clone = deepClone(items);\n component.writeProperties({\n quickFilter: {\n items: sortRecursive(clone),\n loading: false,\n },\n });\n });\n }\n });\n });\n\n const fetchCategories = (params: QueryParameters) => {\n return DataClient.getInstance(container)\n .then((dataClient) => dataClient.fetch(DataType.GuideCategories, params))\n .then((categoriesResult: CategoriesResult) => categoriesResult.categories || []);\n };\n\n const fetchTags = (params: QueryParameters) => {\n return DataClient.getInstance(container)\n .then((dataClient) => dataClient.fetch(DataType.TagsOnGuides, params))\n .then((tags: TagsResult = []) => tags);\n };\n\n getRouterParams().then((params) => {\n load(params);\n });\n\n subscribe('router:changed', (_, { current }) => {\n const {\n routeData: { params },\n } = current;\n load(params);\n });\n\n subscribe('data-client:fetched', (event, data) => {\n const { filterBadges } = component.properties<SearchComponentProps>();\n\n const showTag = typeof filterBadges === 'object' ? !!filterBadges.tag : !!filterBadges;\n\n if (data.type === 'match' && showTag) {\n getRouterParams().then(({ tag: tagId }) => {\n const { tags = [] }: MatchResult = data.response;\n const tag = tags.find((t) => t.id === tagId) || null;\n component.writeProperties({ filters: { tag } });\n });\n }\n });\n\n return () => {\n unsubscribe();\n };\n });\n};\n\nexport default SearchComponent;\n"],"names":["hasActiveFilterBadge","filters","getTooltip","categoryId","categories","trailIds","categoryTrail","categoryMap","getCategoryTrailAsObjects","id","_a","sortRecursive","items","clone","deepClone","a","b","item","SearchComponent","container","createReactComponent","component","events","subscribe","unsubscribe","createEventSubscriber","load","params","activeFilterBadges","_b","data","value","filtersChanged","route","patchParams","router","searchParams","__spreadValues","createParams","options","name","getRouterParams","category","tag","initial","previous","fetchCategories","categoryItem","findCategoryById","__spreadProps","next","fetchTags","tags","t","types","symbol","type","guideCategory","phrase","DataClient","dataClient","DataType","categoriesResult","_","current","event","filterBadges","showTag","tagId","SearchComponent$1"],"mappings":";;;;;;;;;;;;;;;;AAqEA,MAAMA,IAAuB,CAACC,MACnB,CAAC,CAACA,EAAQ,iBAAiB,CAAC,CAACA,EAAQ,KAG1CC,IAAa,CAACC,GAAoBC,MAA2B;AACzD,QAAAC,IAAqBC,EAAcH,GAAYC,CAAU,GACzDG,IAAcC,EAA0BH,GAAUD,CAAU;AAE3D,SADOC,EAAS,IAAI,CAACI,MAAO;;AAAA,aAAAC,IAAAH,EAAY,IAAIE,CAAE,MAAlB,gBAAAC,EAAqB,UAAS;AAAA,GAAE,EAAE,KAAK,KAAK;AAEnF,GAEMC,IAAgB,CAACC,MAAiB;AAC9B,QAAAC,IAAQC,EAAUF,CAAK;AAEvB,SAAAC,EAAA,KAAK,CAACE,GAAQC,MACZD,EAAE,QAAQC,EAAE,QACL,IAEJ,EACV,GAEKH,EAAA,QAAQ,CAACI,MAAc;AACzB,IAAIA,EAAK,UACAA,EAAA,QAAQN,EAAcM,EAAK,KAAK;AAAA,EACzC,CACH,GAEMJ;AACX,GAEMK,IAAkB,CAACC,MACdC,EAAqBD,GAAW,UAAU,OAAO,yBAAa,CAACE,MAAc;AAChF,QAAM,EAAE,QAAAC,EAAW,IAAAH,EAAU,IAAI,SAAS,GACpC,CAACI,GAAWC,CAAW,IAAIC,EAAsBH,CAAM,GAEvDI,IAAO,CAACC,MAAmB;;AAC7B,UAAM,EAAE,oBAAAC,EAAA,IAAuBP,EAAU,WAAiC;AAGtE,OAAAX,IAAAkB,KAAA,gBAAAA,EAAoB,kBAApB,gBAAAlB,EAAmC,QAAOiB,EAAO,mBACjDE,IAAAD,KAAA,gBAAAA,EAAoB,QAApB,gBAAAC,EAAyB,QAAOF,EAAO,QAE7BN,EAAA,QAAQ,SAAS,oBAAoB;AAAA,MAC3C,KAAKM,EAAO;AAAA,MACZ,UAAUA,EAAO;AAAA,MACjB,SAAS;AAAA,IAAA,CACZ;AAAA,EACL;AAGJ,EAAAN,EAAU,QAAQ,OAAO,UAAU,CAACS,MAAS;AACzC,UAAM,EAAE,OAAAC,GAAO,SAAA9B,GAAS,gBAAA+B,EAAA,IAAmBF,GACrC,EAAE,OAAAG,IAAQ,UAAU,aAAAC,IAAc,OACpCb,EAAU;AAGV,KAAAU,EAAM,SAAS,MACb/B,EAAqBC,CAAO,KAAK+B,MAAmB,EAAC/B,KAAA,QAAAA,EAAS,aAEhEkB,EAAU,SAAS,QAAQ,EAAE,KAAK,CAACgB,MAA2B;;AAC1D,YAAM,EAAE,QAAAR,EAAA,IAAWQ,EAAO,aAAa;AAEvC,UAAIC,IAAsD;AAAA,QACtD,OAAO;AAAA,QACP,IAAI;AAAA,QACJ,WAAW;AAAA,QACX,eAAe;AAAA,MAAA;AAGnB,MAAAA,EAAa,SAASL,EAAM,SAAS,IAAI,mBAAmBA,CAAK,IAAI,IAEjEG,MACeE,IAAAC,IAAA,IACRV,IACAS,OAIPnC,KAAA,gBAAAA,EAAS,kBAAiB+B,OACbI,EAAA,kBAAgB1B,IAAAT,EAAQ,kBAAR,gBAAAS,EAAuB,OAAM,WAG1DT,KAAA,gBAAAA,EAAS,QAAO+B,OACHI,EAAA,QAAMP,IAAA5B,EAAQ,QAAR,gBAAA4B,EAAa,OAAM,SAG1CM,EAAO,SAASF,GAAOK,EAAaF,CAAY,CAAC;AAAA,IAAA,CACpD;AAAA,EACL,CACH,GAEDf,EAAU,QAAQ,OAAO,SAAS,CAACS,GAAMS,MAAY;AACjD,IAAIT,EAAK,kBACLX,EAAU,SAAS,QAAQ,EAAE,KAAK,CAACgB,MAA2B;AAC1D,YAAM,EAAE,MAAAK,EAAA,IAAcL,EAAO,gBAAgB;AAC7C,MAAAA,EAAO,SAASK,CAAI;AAAA,IAAA,CACvB;AAAA,EACL,CACH;AAED,QAAMC,IAAyC,MAC3CtB,EACK,SAAS,QAAQ,EACjB,KAAK,CAACgB,MAA2BA,EAAO,aAAa,EAAE,MAAM;AAEtE,EAAAd,EAAU,QAAQ;AAAA,IACd;AAAA,IACA,CAACS,MAAiE;AAC9D,YAAM,EAAE,UAAAY,GAAU,KAAAC,GAAK,SAAAC,EAAA,IAAYd,GAC7B,EAAE,oBAAoBe,EAAS,IACjCxB,EAAU,WAAiC,GAEzCO,IAAyCiB,KAAY;AAAA,QACvD,SAAAD;AAAA,QACA,eAAe;AAAA,QACf,KAAK;AAAA,QACL,SAAS;AAAA,MAAA;AAGb,aAAO,QAAQ,UACV,KAAK,MACEF,IACOI,EAAgB,CAAE,CAAA,EAAE,KAAK,CAAC1C,MAAe;AAC5C,cAAM2C,IACeC,EAAiBN,GAAUtC,CAAU,KAAK;AACxD,eAAA6C,EAAAZ,EAAA,IACAT,IADA;AAAA,UAEH,eAAemB;AAAA,UACf,SAAS7C,EAAWwC,GAAUtC,CAAU,KAAK;AAAA,QAAA;AAAA,MACjD,CACH,IAEE6C,EAAAZ,EAAA,IACAT,IADA;AAAA,QAEH,eAAe;AAAA,QACf,SAAS;AAAA,MAAA,EAEhB,EACA,KAAK,CAACsB,MACCP,IACOQ,EAAU,CAAE,CAAA,EAAE,KAAK,CAACC,MAChBH,EAAAZ,EAAA,IACAa,IADA;AAAA,QAEH,KAAKE,EAAK,KAAK,CAACC,MAAMA,EAAE,OAAOV,CAAG,KAAK;AAAA,MAAA,EAE9C,IAEEM,EAAAZ,EAAA,IACAa,IADA;AAAA,QAEH,KAAK;AAAA,MAAA,EAEZ,EACA,KAAK,CAACA,MACI7B,EAAU,gBAAgB;AAAA,QAC7B,oBAAoB4B,EAAAZ,EAAA,IAAKa,IAAL,EAAW,SAAS,CAAC,CAACN,EAAQ;AAAA,MAAA,CACrD,CACJ;AAAA,IACT;AAAA,EAAA,GAGJvB,EAAU,QAAQ,OAAO,uBAAuB,CAAC,EAAE,OAAAiC,QAAiC;AAChF,UAAM,EAAE,oBAAA1B,EAAA,IAAuBP,EAAU,WAAiC;AAE1E,IAAAA,EAAU,gBAAgB;AAAA,MACtB,oBAAoB4B,EAAAZ,EAAA,IACbT,IADa;AAAA,QAEhB,SAAS;AAAA,QACT,eACI0B,EAAM,QAAQ,eAAe,IAAI,KAC3B,OACA1B,KAAA,gBAAAA,EAAoB;AAAA,QAC9B,KAAK0B,EAAM,QAAQ,KAAK,IAAI,KAAK,OAAO1B,KAAA,gBAAAA,EAAoB;AAAA,MAChE;AAAA,IAAA,CACH;AAAA,EAAA,CACJ,GAESP,EAAA,QAAQ,OAAO,sBAAsB,MACpCA,EAAU,gBAAgB;AAAA,IAC7B,aAAa;AAAA,MACT,OAAO,CAAC;AAAA,MACR,SAAS;AAAA,MACT,MAAM;AAAA,IACV;AAAA,EAAA,CACH,CACJ,GAEDA,EAAU,QAAQ,OAAO,qBAAqB,CAAC,EAAE,QAAAkC,GAAQ,MAAAC,SACrDnC,EAAU,gBAAgB;AAAA,IACtB,aAAa;AAAA,MACT,MAAAmC;AAAA,MACA,QAAAD;AAAA,MACA,OAAO,CAAC;AAAA,MACR,SAAS;AAAA,MACT,MAAM;AAAA,IACV;AAAA,EAAA,CACH,GAEMd,IAAkB,KAAK,CAAC,EAAE,KAAAE,GAAK,eAAAc,GAAe,QAAAC,QAAa;AAC9D,QAAIF,MAAS;AACT,aAAOV,EAAgB;AAAA,QACnB,OAAOH;AAAA,QACP,cAAce;AAAA,MAAA,CACjB,EAAE,KAAK,CAAC9C,MAAU;AACT,cAAAC,IAAQC,EAAUF,CAAK;AAE7B,QAAAS,EAAU,gBAAgB;AAAA,UACtB,aAAa;AAAA,YACT,OAAOV,EAAcE,CAAK;AAAA,YAC1B,SAAS;AAAA,UACb;AAAA,QAAA,CACH;AAAA,MAAA,CACJ;AAGL,QAAI2C,MAAS;AACT,aAAOL,EAAU;AAAA,QACb,YAAYM;AAAA,QACZ,cAAcC;AAAA,MAAA,CACjB,EAAE,KAAK,CAAC9C,MAAU;AACT,cAAAC,IAAQC,EAAUF,CAAK;AAC7B,QAAAS,EAAU,gBAAgB;AAAA,UACtB,aAAa;AAAA,YACT,OAAOV,EAAcE,CAAK;AAAA,YAC1B,SAAS;AAAA,UACb;AAAA,QAAA,CACH;AAAA,MAAA,CACJ;AAAA,EACL,CACH,EACJ;AAEK,QAAAiC,IAAkB,CAACnB,MACdgC,EAAW,YAAYxC,CAAS,EAClC,KAAK,CAACyC,MAAeA,EAAW,MAAMC,EAAS,iBAAiBlC,CAAM,CAAC,EACvE,KAAK,CAACmC,MAAuCA,EAAiB,cAAc,CAAA,CAAE,GAGjFX,IAAY,CAACxB,MACRgC,EAAW,YAAYxC,CAAS,EAClC,KAAK,CAACyC,MAAeA,EAAW,MAAMC,EAAS,cAAclC,CAAM,CAAC,EACpE,KAAK,CAACyB,IAAmB,CAAA,MAAOA,CAAI;AAG7B,SAAAX,EAAA,EAAE,KAAK,CAACd,MAAW;AAC/B,IAAAD,EAAKC,CAAM;AAAA,EAAA,CACd,GAEDJ,EAAU,kBAAkB,CAACwC,GAAG,EAAE,SAAAC,QAAc;AACtC,UAAA;AAAA,MACF,WAAW,EAAE,QAAArC,EAAO;AAAA,IACpB,IAAAqC;AACJ,IAAAtC,EAAKC,CAAM;AAAA,EAAA,CACd,GAESJ,EAAA,uBAAuB,CAAC0C,GAAOnC,MAAS;AAC9C,UAAM,EAAE,cAAAoC,EAAA,IAAiB7C,EAAU,WAAiC,GAE9D8C,IAAU,OAAOD,KAAiB,WAAW,CAAC,CAACA,EAAa,MAAM,CAAC,CAACA;AAEtE,IAAApC,EAAK,SAAS,WAAWqC,KACzB1B,IAAkB,KAAK,CAAC,EAAE,KAAK2B,QAAY;AACvC,YAAM,EAAE,MAAAhB,IAAO,CAAA,MAAoBtB,EAAK,UAClCa,IAAMS,EAAK,KAAK,CAACC,MAAMA,EAAE,OAAOe,CAAK,KAAK;AAChD,MAAA/C,EAAU,gBAAgB,EAAE,SAAS,EAAE,KAAAsB,EAAA,EAAO,CAAA;AAAA,IAAA,CACjD;AAAA,EACL,CACH,GAEM,MAAM;AACG,IAAAnB;EAAA;AAChB,CACH,GAGL6C,IAAenD;"}
1
+ {"version":3,"file":"index.js","sources":["../src/search-component.ts"],"sourcesContent":["import {\n CategoriesResult,\n DataClient,\n DataType,\n MatchResult,\n QueryParameters,\n TagsResult,\n} from '@telia-ace/knowledge-data-client';\nimport { Category, createEventSubscriber, Tag } from '@telia-ace/knowledge-widget-core';\nimport { createReactComponent } from '@telia-ace/knowledge-widget-ui';\nimport { RoutingService } from '@telia-ace/widget-routing';\nimport {\n categoryTrail,\n createParams,\n deepClone,\n findCategoryById,\n getCategoryTrailAsObjects,\n Params,\n} from '@telia-ace/widget-utilities';\nimport { Container } from '@webprovisions/platform';\n\nexport type SearchComponentProps = {\n route?: string;\n role?: string;\n\n showSearchButton: boolean;\n showClearButton: boolean;\n showChildren: boolean;\n\n searchButtonLabel: string;\n clearButtonLabel: string;\n ariaLabel?: string;\n\n noMatchesLabel?: string;\n\n placeholder: string;\n autoFocus: boolean;\n incremental?: boolean | number;\n\n filterBadges?: FilterConfig | boolean;\n activeFilterBadges?: ActiveFilterBadges; // internal\n deleteFilterBadgeAriaLabel?: string;\n\n quickFilters?: FilterConfig | boolean;\n quickFilter?: Filter; // internal\n\n patchParams?: boolean;\n};\n\nexport type Filter = {\n items?: Category[] | Tag[];\n type?: 'guideCategory' | 'tag';\n symbol?: string;\n loading: boolean;\n open: boolean;\n};\n\nexport type ActiveFilterBadges = {\n guideCategory?: Category | null;\n tag: Tag[];\n tooltip?: string | null;\n initial?: boolean;\n};\n\nexport type FilterConfig = {\n autoSelect?: boolean;\n guideCategory?: boolean;\n tag?: boolean;\n position?: 'inside' | 'below';\n};\n\nconst hasActiveFilterBadge = (filters: ActiveFilterBadges) => {\n return !!filters.guideCategory || filters.tag.length > 0;\n};\n\nconst getTooltip = (categoryId: string, categories: Category[]) => {\n const trailIds: string[] = categoryTrail(categoryId, categories);\n const categoryMap = getCategoryTrailAsObjects(trailIds, categories);\n const trail = trailIds.map((id) => categoryMap.get(id)?.title || '').join(' / ');\n return trail;\n};\n\nconst sortRecursive = (items: any[]) => {\n const clone = deepClone(items);\n\n clone.sort((a: any, b: any) => {\n if (a.title > b.title) {\n return 1;\n }\n return -1;\n });\n\n clone.forEach((item: any) => {\n if (item.items) {\n item.items = sortRecursive(item.items);\n }\n });\n\n return clone;\n};\n\nconst SearchComponent = (container: Container) => {\n return createReactComponent(container, 'search', import('./search'), (component) => {\n const { events } = container.get('$widget');\n const [subscribe, unsubscribe] = createEventSubscriber(events);\n\n const load = (params: Params) => {\n const { activeFilterBadges } = component.properties<SearchComponentProps>();\n\n let tagIds: string[] = [];\n\n if (params.tag && params.tag.includes(',')) {\n tagIds = params.tag.split(',');\n } else if (params.tag) {\n tagIds = [params.tag];\n }\n\n const tagsNotAdded = tagIds.filter((tag) => {\n const added = activeFilterBadges?.tag.find((t) => t.id === tag);\n\n return !added;\n });\n\n const removedTags = (activeFilterBadges?.tag || []).filter((t) => {\n const removed = !tagIds.includes(t.id);\n\n return removed;\n });\n\n if (\n activeFilterBadges?.guideCategory?.id !== params.guideCategory ||\n tagsNotAdded.length > 0\n ) {\n component.actions.dispatch('quick-filter:add', {\n tagIds: params.tag ? params.tag.split(',') : [],\n category: params.guideCategory,\n initial: true,\n });\n }\n\n // tags no longer existing in the params should be removed\n removedTags.forEach((t) => {\n component.actions.dispatch('quick-filter:remove', { types: ['tag'], id: t.id });\n });\n };\n\n component.actions.create(\n 'search',\n (data: { filters: ActiveFilterBadges; filtersChanged: boolean; value: any }) => {\n const { value, filters, filtersChanged } = data;\n const { route = 'search', patchParams = false } =\n component.properties<SearchComponentProps>();\n\n if (\n value.length > 0 ||\n ((hasActiveFilterBadge(filters) || filtersChanged) && !filters?.initial)\n ) {\n container.getAsync('router').then((router: RoutingService) => {\n const { params } = router.getRouteData();\n\n let searchParams: { [key: string]: string | undefined } = {\n guide: undefined,\n id: undefined,\n accordion: undefined,\n contactMethod: undefined,\n };\n\n searchParams.phrase = value.length > 0 ? encodeURIComponent(value) : '';\n\n if (patchParams) {\n searchParams = {\n ...params,\n ...searchParams,\n };\n }\n\n if (filters?.guideCategory || filtersChanged) {\n searchParams.guideCategory = filters.guideCategory?.id || undefined;\n }\n\n if (filters?.tag.length > 0 || filtersChanged) {\n if (filters.tag.length > 0) {\n searchParams.tag = filters.tag.map((t) => t.id).join(',');\n } else {\n searchParams.tag = undefined;\n }\n }\n\n router.navigate(route, createParams(searchParams));\n });\n }\n }\n );\n\n component.actions.create('clear', (data, options) => {\n if (data.navigateToHome) {\n container.getAsync('router').then((router: RoutingService) => {\n const { name }: any = router.getInitialRoute();\n router.navigate(name);\n });\n }\n });\n\n const getRouterParams: () => Promise<Params> = () =>\n container\n .getAsync('router')\n .then((router: RoutingService) => router.getRouteData().params);\n\n component.actions.create(\n 'quick-filter:add',\n (data: { category?: string; tagIds: string[]; initial?: boolean }) => {\n const { category, tagIds, initial } = data;\n const { activeFilterBadges: previous } =\n component.properties<SearchComponentProps>();\n\n const activeFilterBadges: ActiveFilterBadges = previous || {\n initial,\n guideCategory: null,\n tag: [],\n tooltip: null,\n };\n\n return Promise.resolve()\n .then(() => {\n if (category) {\n return fetchCategories({}).then((categories) => {\n const categoryItem =\n <Category | null>findCategoryById(category, categories) || null;\n return {\n ...activeFilterBadges,\n guideCategory: categoryItem,\n tooltip: getTooltip(category, categories) || null,\n };\n });\n }\n return {\n ...activeFilterBadges,\n guideCategory: null,\n tooltip: null,\n };\n })\n .then((next) => {\n if (tagIds) {\n return fetchTags({}).then((tags) => {\n let matchingTags: Tag[] = [];\n tagIds.forEach((tagId) => {\n const match = tags.find((other) => other.id === tagId);\n\n if (match) {\n matchingTags.push(match);\n }\n });\n\n return {\n ...next,\n tag: matchingTags,\n };\n });\n }\n return {\n ...next,\n tag: [],\n };\n })\n .then((next) => {\n return component.writeProperties({\n activeFilterBadges: { ...next, initial: !!initial },\n });\n });\n }\n );\n\n component.actions.create(\n 'quick-filter:remove',\n ({ types, id }: { types: string[]; id?: string }) => {\n const { activeFilterBadges } = component.properties<SearchComponentProps>();\n\n component.writeProperties({\n activeFilterBadges: {\n ...activeFilterBadges,\n initial: false,\n guideCategory:\n types.indexOf('guideCategory') > -1\n ? null\n : activeFilterBadges?.guideCategory,\n tag:\n types.indexOf('tag') > -1\n ? activeFilterBadges?.tag.filter((t) => t.id !== id)\n : activeFilterBadges?.tag,\n },\n });\n }\n );\n\n component.actions.create('quick-filter:close', () => {\n return component.writeProperties({\n quickFilter: {\n items: [],\n loading: false,\n open: false,\n },\n });\n });\n\n component.actions.create('quick-filter:open', ({ symbol, type }) => {\n component.writeProperties({\n quickFilter: {\n type,\n symbol,\n items: [],\n loading: true,\n open: true,\n },\n });\n\n return getRouterParams().then(({ tag, guideCategory, phrase }) => {\n if (type === 'guideCategory') {\n return fetchCategories({\n tagId: tag,\n searchPhrase: phrase,\n }).then((items) => {\n const clone = deepClone(items);\n\n component.writeProperties({\n quickFilter: {\n items: sortRecursive(clone),\n loading: false,\n },\n });\n });\n }\n\n if (type === 'tag') {\n return fetchTags({\n categories: guideCategory,\n searchPhrase: phrase,\n }).then((items) => {\n const clone = deepClone(items);\n component.writeProperties({\n quickFilter: {\n items: sortRecursive(clone),\n loading: false,\n },\n });\n });\n }\n });\n });\n\n const fetchCategories = (params: QueryParameters) => {\n return DataClient.getInstance(container)\n .then((dataClient) => dataClient.fetch(DataType.GuideCategories, params))\n .then((categoriesResult: CategoriesResult) => categoriesResult.categories || []);\n };\n\n const fetchTags = (params: QueryParameters) => {\n return DataClient.getInstance(container)\n .then((dataClient) => dataClient.fetch(DataType.TagsOnGuides, params))\n .then((tags: TagsResult = []) => tags);\n };\n\n getRouterParams().then((params) => {\n load(params);\n });\n\n subscribe('router:changed', (_, { current }) => {\n const {\n routeData: { params },\n } = current;\n load(params);\n });\n\n subscribe('data-client:fetched', (event, data) => {\n const { filterBadges } = component.properties<SearchComponentProps>();\n\n const showTag = typeof filterBadges === 'object' ? !!filterBadges.tag : !!filterBadges;\n\n if (data.type === 'match' && showTag) {\n getRouterParams().then(({ tag: tagId }) => {\n const { tags = [] }: MatchResult = data.response;\n const tag = tags.find((t) => t.id === tagId) || null;\n component.writeProperties({ filters: { tag } });\n });\n }\n });\n\n return () => {\n unsubscribe();\n };\n });\n};\n\nexport default SearchComponent;\n"],"names":["hasActiveFilterBadge","filters","getTooltip","categoryId","categories","trailIds","categoryTrail","categoryMap","getCategoryTrailAsObjects","id","_a","sortRecursive","items","clone","deepClone","a","b","item","SearchComponent","container","createReactComponent","component","events","subscribe","unsubscribe","createEventSubscriber","load","params","activeFilterBadges","tagIds","tagsNotAdded","tag","t","removedTags","data","value","filtersChanged","route","patchParams","router","searchParams","__spreadValues","createParams","options","name","getRouterParams","category","initial","previous","fetchCategories","categoryItem","findCategoryById","__spreadProps","next","fetchTags","tags","matchingTags","tagId","match","other","types","symbol","type","guideCategory","phrase","DataClient","dataClient","DataType","categoriesResult","_","current","event","filterBadges","showTag","SearchComponent$1"],"mappings":"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"}
@@ -9,6 +9,7 @@ export type SearchComponentProps = {
9
9
  searchButtonLabel: string;
10
10
  clearButtonLabel: string;
11
11
  ariaLabel?: string;
12
+ noMatchesLabel?: string;
12
13
  placeholder: string;
13
14
  autoFocus: boolean;
14
15
  incremental?: boolean | number;
@@ -28,7 +29,7 @@ export type Filter = {
28
29
  };
29
30
  export type ActiveFilterBadges = {
30
31
  guideCategory?: Category | null;
31
- tag?: Tag | null;
32
+ tag: Tag[];
32
33
  tooltip?: string | null;
33
34
  initial?: boolean;
34
35
  };