@telia-ace/knowledge-widget-components-tag-list 1.0.14 → 1.0.17

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,84 +1,54 @@
1
- var __defProp = Object.defineProperty;
2
- var __defProps = Object.defineProperties;
3
- var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
4
- var __getOwnPropSymbols = Object.getOwnPropertySymbols;
5
- var __hasOwnProp = Object.prototype.hasOwnProperty;
6
- var __propIsEnum = Object.prototype.propertyIsEnumerable;
7
- var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
8
- var __spreadValues = (a, b) => {
9
- for (var prop in b || (b = {}))
10
- if (__hasOwnProp.call(b, prop))
11
- __defNormalProp(a, prop, b[prop]);
12
- if (__getOwnPropSymbols)
13
- for (var prop of __getOwnPropSymbols(b)) {
14
- if (__propIsEnum.call(b, prop))
15
- __defNormalProp(a, prop, b[prop]);
16
- }
17
- return a;
18
- };
19
- var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
20
- import { createEventSubscriber, extendComponent } from "@telia-ace/knowledge-widget-core";
21
- import { DataType } from "@telia-ace/knowledge-widget-types-grid";
22
- import { createReactComponent } from "@telia-ace/knowledge-widget-ui";
23
- const TagListComponent = (container) => {
24
- return createReactComponent(container, "tag-list", import("./tag-list.js"), (component) => {
25
- const { events } = container.get("$widget");
26
- const [subscribe, unsubscribe] = createEventSubscriber(events);
27
- component.actions.create("fetch", ({ items = [] }) => {
28
- return component.actions.dispatch("fetched", {
29
- items,
30
- loading: true
31
- });
32
- });
33
- component.actions.create("fetched", (input) => {
34
- return component.writeProperties(__spreadProps(__spreadValues({}, input), { loading: false }));
35
- });
36
- const fetch = (input = {}) => {
37
- component.writeProperties({ loading: true, error: void 0 });
38
- component.actions.dispatch("fetch", input);
39
- };
40
- container.getAsync("router").then((router) => {
41
- const { params } = router.getRouteData();
42
- fetch(params);
43
- });
44
- subscribe("router:changed", (event, { current }) => {
45
- fetch(current.routeData.params);
46
- });
47
- return () => {
48
- unsubscribe();
49
- };
50
- }).then(() => {
51
- return extendComponent(container, "tag-list", (component) => {
52
- component.actions.watch("tag-list.fetch", (input, next) => {
53
- return container.getAsync("dataClient").then((dataClient) => {
54
- const { static: staticTags = false, rootTagLabel = "" } = component.properties();
55
- const { phrase, guideCategory, tag } = input;
56
- return dataClient.fetch(staticTags ? DataType.Tags : DataType.TagsOnGuides, {
57
- searchPhrase: phrase,
58
- categories: guideCategory,
59
- tagId: tag
60
- }).then((tags = []) => {
61
- if (staticTags) {
62
- const indexOfRoot = tags.findIndex((tag2) => tag2.id === "0");
63
- if (indexOfRoot > -1) {
64
- tags.unshift(tags.splice(indexOfRoot, 1)[0]);
65
- }
66
- }
67
- return next({
68
- items: tags.map((t) => {
69
- if (t.id === "0") {
70
- t.title = rootTagLabel;
71
- }
72
- return t;
73
- })
74
- });
75
- }).catch((e) => {
76
- return next({ items: [] });
77
- });
78
- });
1
+ var T = Object.defineProperty, C = Object.defineProperties;
2
+ var v = Object.getOwnPropertyDescriptors;
3
+ var d = Object.getOwnPropertySymbols;
4
+ var w = Object.prototype.hasOwnProperty, y = Object.prototype.propertyIsEnumerable;
5
+ var h = (e, t, r) => t in e ? T(e, t, { enumerable: !0, configurable: !0, writable: !0, value: r }) : e[t] = r, f = (e, t) => {
6
+ for (var r in t || (t = {}))
7
+ w.call(t, r) && h(e, r, t[r]);
8
+ if (d)
9
+ for (var r of d(t))
10
+ y.call(t, r) && h(e, r, t[r]);
11
+ return e;
12
+ }, g = (e, t) => C(e, v(t));
13
+ import { createEventSubscriber as x, extendComponent as D } from "@telia-ace/knowledge-widget-core";
14
+ import { DataType as p } from "@telia-ace/knowledge-widget-types-grid";
15
+ import { createReactComponent as P } from "@telia-ace/knowledge-widget-ui";
16
+ const O = (e) => P(e, "tag-list", import("./tag-list.316a76ef.js"), (t) => {
17
+ const { events: r } = e.get("$widget"), [o, u] = x(r);
18
+ t.actions.create("fetch", ({ items: a = [] }) => t.actions.dispatch("fetched", {
19
+ items: a,
20
+ loading: !0
21
+ })), t.actions.create("fetched", (a) => t.writeProperties(g(f({}, a), { loading: !1 })));
22
+ const i = (a = {}) => {
23
+ t.writeProperties({ loading: !0, error: void 0 }), t.actions.dispatch("fetch", a);
24
+ };
25
+ return e.getAsync("router").then((a) => {
26
+ const { params: c } = a.getRouteData();
27
+ i(c);
28
+ }), o("router:changed", (a, { current: c }) => {
29
+ i(c.routeData.params);
30
+ }), () => {
31
+ u();
32
+ };
33
+ }).then(() => D(e, "tag-list", (t) => {
34
+ t.actions.watch("tag-list.fetch", (r, o) => e.getAsync("dataClient").then((u) => {
35
+ const { static: i = !1, rootTagLabel: a = "" } = t.properties(), { phrase: c, guideCategory: l, tag: m } = r;
36
+ return u.fetch(i ? p.Tags : p.TagsOnGuides, {
37
+ searchPhrase: c,
38
+ categories: l,
39
+ tagId: m
40
+ }).then((n = []) => {
41
+ if (i) {
42
+ const s = n.findIndex((b) => b.id === "0");
43
+ s > -1 && n.unshift(n.splice(s, 1)[0]);
44
+ }
45
+ return o({
46
+ items: n.map((s) => (s.id === "0" && (s.title = a), s))
79
47
  });
80
- });
81
- });
48
+ }).catch((n) => o({ items: [] }));
49
+ }));
50
+ }));
51
+ export {
52
+ O as default
82
53
  };
83
- export { TagListComponent as default };
84
54
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../src/tag-list-component.ts"],"sourcesContent":["import { createEventSubscriber, extendComponent, Tag } from '@telia-ace/knowledge-widget-core';\r\nimport { DataClient, DataType, TagsResult } from '@telia-ace/knowledge-widget-types-grid';\r\nimport { createReactComponent } from '@telia-ace/knowledge-widget-ui';\r\nimport { Params } from '@telia-ace/widget-utilities';\r\nimport { Container } from '@webprovisions/platform';\r\n\r\nexport type TagListComponentProps = {\r\n header: string;\r\n route?: string;\r\n items: Tag[]; // internal\r\n style?: 'badge' | 'pill';\r\n showMatchCount?: boolean;\r\n showIcons?: boolean;\r\n static?: boolean;\r\n rootTagLabel?: string;\r\n fallbackOnInitialRoute?: boolean;\r\n itemAriaLabel?: string;\r\n};\r\n\r\nconst TagListComponent = (container: Container) => {\r\n return createReactComponent(container, 'tag-list', import('./tag-list'), (component) => {\r\n const { events } = container.get('$widget');\r\n const [subscribe, unsubscribe] = createEventSubscriber(events);\r\n\r\n component.actions.create('fetch', ({ items = [] }) => {\r\n return component.actions.dispatch('fetched', {\r\n items,\r\n loading: true,\r\n });\r\n });\r\n\r\n component.actions.create('fetched', (input) => {\r\n return component.writeProperties({ ...input, loading: false });\r\n });\r\n\r\n const fetch = (input: Params = {}) => {\r\n component.writeProperties({ loading: true, error: undefined });\r\n\r\n component.actions.dispatch('fetch', input);\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 return () => {\r\n unsubscribe();\r\n };\r\n }).then(() => {\r\n return extendComponent(container, 'tag-list', (component) => {\r\n component.actions.watch('tag-list.fetch', (input, next) => {\r\n return container.getAsync('dataClient').then((dataClient: DataClient) => {\r\n const { static: staticTags = false, rootTagLabel = '' } =\r\n component.properties() as TagListComponentProps;\r\n\r\n const { phrase, guideCategory, tag } = input;\r\n\r\n return dataClient\r\n .fetch(staticTags ? DataType.Tags : DataType.TagsOnGuides, {\r\n searchPhrase: phrase,\r\n categories: guideCategory,\r\n tagId: tag,\r\n })\r\n .then((tags: TagsResult = []) => {\r\n if (staticTags) {\r\n const indexOfRoot = tags.findIndex((tag) => tag.id === '0');\r\n\r\n if (indexOfRoot > -1) {\r\n tags.unshift(tags.splice(indexOfRoot, 1)[0]);\r\n }\r\n }\r\n\r\n return next({\r\n items: tags.map((t) => {\r\n if (t.id === '0') {\r\n t.title = rootTagLabel;\r\n }\r\n\r\n return t;\r\n }),\r\n });\r\n })\r\n .catch((e) => {\r\n return next({ items: [] });\r\n });\r\n });\r\n });\r\n });\r\n });\r\n};\r\n\r\nexport default TagListComponent;\r\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAmBM,MAAA,mBAAmB,CAAC,cAAyB;AAC/C,SAAO,qBAAqB,WAAW,YAAY,OAAO,kBAAe,CAAC,cAAc;AACpF,UAAM,EAAE,WAAW,UAAU,IAAI,SAAS;AAC1C,UAAM,CAAC,WAAW,eAAe,sBAAsB,MAAM;AAE7D,cAAU,QAAQ,OAAO,SAAS,CAAC,EAAE,QAAQ,CAAA,QAAS;AAC3C,aAAA,UAAU,QAAQ,SAAS,WAAW;AAAA,QACzC;AAAA,QACA,SAAS;AAAA,MAAA,CACZ;AAAA,IAAA,CACJ;AAED,cAAU,QAAQ,OAAO,WAAW,CAAC,UAAU;AAC3C,aAAO,UAAU,gBAAgB,iCAAK,QAAL,EAAY,SAAS,QAAO;AAAA,IAAA,CAChE;AAED,UAAM,QAAQ,CAAC,QAAgB,OAAO;AAClC,gBAAU,gBAAgB,EAAE,SAAS,MAAM,OAAO,QAAW;AAEnD,gBAAA,QAAQ,SAAS,SAAS,KAAK;AAAA,IAAA;AAG7C,cAAU,SAAS,QAAQ,EAAE,KAAK,CAAC,WAAW;AACpC,YAAA,EAAE,WAAW,OAAO,aAAa;AACvC,YAAM,MAAM;AAAA,IAAA,CACf;AAED,cAAU,kBAAkB,CAAC,OAAY,EAAE,cAAmB;AACpD,YAAA,QAAQ,UAAU,MAAM;AAAA,IAAA,CACjC;AAED,WAAO,MAAM;AACG;IAAA;AAAA,EAChB,CACH,EAAE,KAAK,MAAM;AACV,WAAO,gBAAgB,WAAW,YAAY,CAAC,cAAc;AACzD,gBAAU,QAAQ,MAAM,kBAAkB,CAAC,OAAO,SAAS;AACvD,eAAO,UAAU,SAAS,YAAY,EAAE,KAAK,CAAC,eAA2B;AACrE,gBAAM,EAAE,QAAQ,aAAa,OAAO,eAAe,OAC/C,UAAU;AAER,gBAAA,EAAE,QAAQ,eAAe,QAAQ;AAEvC,iBAAO,WACF,MAAM,aAAa,SAAS,OAAO,SAAS,cAAc;AAAA,YACvD,cAAc;AAAA,YACd,YAAY;AAAA,YACZ,OAAO;AAAA,UACV,CAAA,EACA,KAAK,CAAC,OAAmB,OAAO;AAC7B,gBAAI,YAAY;AACZ,oBAAM,cAAc,KAAK,UAAU,CAAC,SAAQ,KAAI,OAAO,GAAG;AAE1D,kBAAI,cAAc,IAAI;AAClB,qBAAK,QAAQ,KAAK,OAAO,aAAa,CAAC,EAAE,EAAE;AAAA,cAC/C;AAAA,YACJ;AAEA,mBAAO,KAAK;AAAA,cACR,OAAO,KAAK,IAAI,CAAC,MAAM;AACf,oBAAA,EAAE,OAAO,KAAK;AACd,oBAAE,QAAQ;AAAA,gBACd;AAEO,uBAAA;AAAA,cAAA,CACV;AAAA,YAAA,CACJ;AAAA,UAAA,CACJ,EACA,MAAM,CAAC,MAAM;AACV,mBAAO,KAAK,EAAE,OAAO,CAAA,EAAI,CAAA;AAAA,UAAA,CAC5B;AAAA,QAAA,CACR;AAAA,MAAA,CACJ;AAAA,IAAA,CACJ;AAAA,EAAA,CACJ;AACL;;"}
1
+ {"version":3,"file":"index.js","sources":["../src/tag-list-component.ts"],"sourcesContent":["import { createEventSubscriber, extendComponent, Tag } from '@telia-ace/knowledge-widget-core';\r\nimport { DataClient, DataType, TagsResult } from '@telia-ace/knowledge-widget-types-grid';\r\nimport { createReactComponent } from '@telia-ace/knowledge-widget-ui';\r\nimport { Params } from '@telia-ace/widget-utilities';\r\nimport { Container } from '@webprovisions/platform';\r\n\r\nexport type TagListComponentProps = {\r\n header: string;\r\n route?: string;\r\n items: Tag[]; // internal\r\n style?: 'badge' | 'pill';\r\n showMatchCount?: boolean;\r\n showIcons?: boolean;\r\n static?: boolean;\r\n rootTagLabel?: string;\r\n fallbackOnInitialRoute?: boolean;\r\n itemAriaLabel?: string;\r\n};\r\n\r\nconst TagListComponent = (container: Container) => {\r\n return createReactComponent(container, 'tag-list', import('./tag-list'), (component) => {\r\n const { events } = container.get('$widget');\r\n const [subscribe, unsubscribe] = createEventSubscriber(events);\r\n\r\n component.actions.create('fetch', ({ items = [] }) => {\r\n return component.actions.dispatch('fetched', {\r\n items,\r\n loading: true,\r\n });\r\n });\r\n\r\n component.actions.create('fetched', (input) => {\r\n return component.writeProperties({ ...input, loading: false });\r\n });\r\n\r\n const fetch = (input: Params = {}) => {\r\n component.writeProperties({ loading: true, error: undefined });\r\n\r\n component.actions.dispatch('fetch', input);\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 return () => {\r\n unsubscribe();\r\n };\r\n }).then(() => {\r\n return extendComponent(container, 'tag-list', (component) => {\r\n component.actions.watch('tag-list.fetch', (input, next) => {\r\n return container.getAsync('dataClient').then((dataClient: DataClient) => {\r\n const { static: staticTags = false, rootTagLabel = '' } =\r\n component.properties() as TagListComponentProps;\r\n\r\n const { phrase, guideCategory, tag } = input;\r\n\r\n return dataClient\r\n .fetch(staticTags ? DataType.Tags : DataType.TagsOnGuides, {\r\n searchPhrase: phrase,\r\n categories: guideCategory,\r\n tagId: tag,\r\n })\r\n .then((tags: TagsResult = []) => {\r\n if (staticTags) {\r\n const indexOfRoot = tags.findIndex((tag) => tag.id === '0');\r\n\r\n if (indexOfRoot > -1) {\r\n tags.unshift(tags.splice(indexOfRoot, 1)[0]);\r\n }\r\n }\r\n\r\n return next({\r\n items: tags.map((t) => {\r\n if (t.id === '0') {\r\n t.title = rootTagLabel;\r\n }\r\n\r\n return t;\r\n }),\r\n });\r\n })\r\n .catch((e) => {\r\n return next({ items: [] });\r\n });\r\n });\r\n });\r\n });\r\n });\r\n};\r\n\r\nexport default TagListComponent;\r\n"],"names":[],"mappings":";;;;;;;;;;;;;;;AAmBM,MAAA,IAAmB,CAAC,MACf,EAAqB,GAAW,YAAY,OAAO,2BAAe,CAAC,MAAc;AACpF,QAAM,EAAE,cAAW,EAAU,IAAI,SAAS,GACpC,CAAC,GAAW,KAAe,EAAsB,CAAM;AAE7D,IAAU,QAAQ,OAAO,SAAS,CAAC,EAAE,WAAQ,CAAA,QAClC,EAAU,QAAQ,SAAS,WAAW;AAAA,IACzC;AAAA,IACA,SAAS;AAAA,EAAA,CACZ,CACJ,GAED,EAAU,QAAQ,OAAO,WAAW,CAAC,MAC1B,EAAU,gBAAgB,QAAK,IAAL,EAAY,SAAS,KAAO,CAChE;AAED,QAAM,IAAQ,CAAC,IAAgB,OAAO;AAClC,MAAU,gBAAgB,EAAE,SAAS,IAAM,OAAO,QAAW,GAEnD,EAAA,QAAQ,SAAS,SAAS,CAAK;AAAA,EAAA;AAG7C,WAAU,SAAS,QAAQ,EAAE,KAAK,CAAC,MAAW;AACpC,UAAA,EAAE,cAAW,EAAO,aAAa;AACvC,MAAM,CAAM;AAAA,EAAA,CACf,GAED,EAAU,kBAAkB,CAAC,GAAY,EAAE,iBAAmB;AACpD,MAAA,EAAQ,UAAU,MAAM;AAAA,EAAA,CACjC,GAEM,MAAM;AACG;EAAA;AAChB,CACH,EAAE,KAAK,MACG,EAAgB,GAAW,YAAY,CAAC,MAAc;AACzD,IAAU,QAAQ,MAAM,kBAAkB,CAAC,GAAO,MACvC,EAAU,SAAS,YAAY,EAAE,KAAK,CAAC,MAA2B;AACrE,UAAM,EAAE,QAAQ,IAAa,IAAO,kBAAe,OAC/C,EAAU,cAER,EAAE,WAAQ,kBAAe,WAAQ;AAEvC,WAAO,EACF,MAAM,IAAa,EAAS,OAAO,EAAS,cAAc;AAAA,MACvD,cAAc;AAAA,MACd,YAAY;AAAA,MACZ,OAAO;AAAA,IACV,CAAA,EACA,KAAK,CAAC,IAAmB,OAAO;AAC7B,UAAI,GAAY;AACZ,cAAM,IAAc,EAAK,UAAU,CAAC,MAAQ,EAAI,OAAO,GAAG;AAE1D,QAAI,IAAc,MACd,EAAK,QAAQ,EAAK,OAAO,GAAa,CAAC,EAAE,EAAE;AAAA,MAEnD;AAEA,aAAO,EAAK;AAAA,QACR,OAAO,EAAK,IAAI,CAAC,MACT,GAAE,OAAO,OACT,GAAE,QAAQ,IAGP,EACV;AAAA,MAAA,CACJ;AAAA,IAAA,CACJ,EACA,MAAM,CAAC,MACG,EAAK,EAAE,OAAO,CAAA,EAAI,CAAA,CAC5B;AAAA,EAAA,CACR,CACJ;AAAA,CACJ,CACJ;"}
@@ -0,0 +1,206 @@
1
+ var P = Object.defineProperty, D = Object.defineProperties;
2
+ var U = Object.getOwnPropertyDescriptors;
3
+ var d = Object.getOwnPropertySymbols;
4
+ var w = Object.prototype.hasOwnProperty, L = Object.prototype.propertyIsEnumerable;
5
+ var z = (e, t, a) => t in e ? P(e, t, { enumerable: !0, configurable: !0, writable: !0, value: a }) : e[t] = a, h = (e, t) => {
6
+ for (var a in t || (t = {}))
7
+ w.call(t, a) && z(e, a, t[a]);
8
+ if (d)
9
+ for (var a of d(t))
10
+ L.call(t, a) && z(e, a, t[a]);
11
+ return e;
12
+ }, g = (e, t) => D(e, U(t));
13
+ var S = (e, t) => {
14
+ var a = {};
15
+ for (var o in e)
16
+ w.call(e, o) && t.indexOf(o) < 0 && (a[o] = e[o]);
17
+ if (e != null && d)
18
+ for (var o of d(e))
19
+ t.indexOf(o) < 0 && L.call(e, o) && (a[o] = e[o]);
20
+ return a;
21
+ };
22
+ import { initialRouteFallback as q } from "@telia-ace/knowledge-widget-component-utilities";
23
+ import { useProperties as G, useContainer as H, useRouteData as J, createEmptyComponent as K, Loader as Q, ItemList as V, contentBox as W, itemList as X, loadingOpacity as Y, TextLink as T, borderTabStyle as v, Text as Z, SymbolBadge as _ } from "@telia-ace/knowledge-widget-ui";
24
+ import { appendClassNames as E } from "@telia-ace/widget-utilities";
25
+ import r from "react";
26
+ import l, { css as i } from "styled-components";
27
+ const ee = (e, t, a) => e && a ? /* @__PURE__ */ r.createElement(k, {
28
+ symbol: a,
29
+ size: 18
30
+ }) : t ? /* @__PURE__ */ r.createElement(k, {
31
+ symbol: t,
32
+ size: 18
33
+ }) : null, he = (a) => {
34
+ var o = a, { className: e } = o, t = S(o, ["className"]);
35
+ const {
36
+ route: C = "search",
37
+ items: p = [],
38
+ header: I,
39
+ loading: n = !1,
40
+ style: f = "badge",
41
+ showMatchCount: R = !1,
42
+ showIcons: A = !1,
43
+ static: s = !1,
44
+ fallbackOnInitialRoute: B = !1,
45
+ itemAriaLabel: b
46
+ } = G(), j = H(), { params: y } = J();
47
+ if (!p.length && (!n || s))
48
+ return K(j, g(h({}, t), {
49
+ className: E(e, "humany-tag-list")
50
+ }));
51
+ const F = f === "badge" ? ae : oe;
52
+ return /* @__PURE__ */ r.createElement(te, g(h({}, t), {
53
+ "data-loading": !s && n,
54
+ className: E(e, "humany-tag-list"),
55
+ header: !s && n ? "" : I,
56
+ items: p,
57
+ type: f,
58
+ renderItem: (c) => {
59
+ const { id: $, title: x, defaultIcon: M, activeIcon: N, matches: m } = c, u = y.tag === c.id || !y.tag && c.id === "0", O = b && b.replace("{{title}}", x).replace("{{matches}}", `${m}`);
60
+ return /* @__PURE__ */ r.createElement(se, {
61
+ key: $,
62
+ notAllowed: (s && !m && f === "pill").toString(),
63
+ "data-tag": $
64
+ }, /* @__PURE__ */ r.createElement(F, g(h({}, q(c, C, B, "tag")), {
65
+ role: "button",
66
+ "aria-pressed": u,
67
+ "aria-label": O,
68
+ disabled: s && !m,
69
+ selected: u,
70
+ text: x
71
+ }), A && ee(u, M, N), R && /* @__PURE__ */ r.createElement(re, null, `(${m})`)));
72
+ }
73
+ }), !s && /* @__PURE__ */ r.createElement(Q, {
74
+ loading: n
75
+ }));
76
+ }, te = l(V)`
77
+ ${W}
78
+ ${X}
79
+ ${Y}
80
+ justify-content: flex-start;
81
+ padding: ${(e) => {
82
+ var t;
83
+ return (t = e.theme.sizes) == null ? void 0 : t.large;
84
+ }};
85
+ ul {
86
+ display: flex;
87
+ flex-wrap: wrap;
88
+ ${(e) => e.type === "pill" && i`
89
+ justify-content: center;
90
+ `}
91
+
92
+ li {
93
+ margin: 0 ${(e) => {
94
+ var t, a;
95
+ return `${(t = e.theme.sizes) == null ? void 0 : t.small} ${(a = e.theme.sizes) == null ? void 0 : a.small}`;
96
+ }} 0;
97
+ }
98
+ }
99
+ `, ae = l(T)`
100
+ padding: 8px 15px;
101
+ background-color: ${(e) => {
102
+ var t, a;
103
+ return e.selected ? (t = e.theme.colors) == null ? void 0 : t.text : (a = e.theme.colors) == null ? void 0 : a.primary;
104
+ }};
105
+ border-radius: ${(e) => e.theme.borderRadius};
106
+ font-weight: 300;
107
+ font-size: ${(e) => {
108
+ var t;
109
+ return (t = e.theme.fonts) == null ? void 0 : t.normal;
110
+ }};
111
+ display: flex;
112
+ align-items: center;
113
+ color: #ffffff;
114
+
115
+ &:focus {
116
+ ${(e) => {
117
+ var t;
118
+ return ((t = e.theme.accessibility) == null ? void 0 : t.isTabbing) && i`
119
+ ${v}
120
+ padding: 6px 15px;
121
+ background-color: transparent;
122
+ `;
123
+ }};
124
+ }
125
+
126
+ @media (hover: hover) {
127
+ &:hover {
128
+ background-color: ${(e) => {
129
+ var t, a;
130
+ return e.selected ? (t = e.theme.colors) == null ? void 0 : t.primary : (a = e.theme.colors) == null ? void 0 : a.text;
131
+ }};
132
+ }
133
+ }
134
+ `, oe = l(T)`
135
+ border: 1px solid ${(e) => {
136
+ var t;
137
+ return e.selected ? (t = e.theme.colors) == null ? void 0 : t.text : "transparent";
138
+ }};
139
+ line-height: 2em;
140
+ border-radius: 1em;
141
+ padding: 0 0.5em;
142
+ display: flex;
143
+ align-items: center;
144
+ font-weight: ${(e) => e.selected ? "normal" : 300};
145
+ color: ${(e) => {
146
+ var t;
147
+ return (t = e.theme.colors) == null ? void 0 : t.text;
148
+ }};
149
+
150
+ &:disabled {
151
+ color: ${(e) => {
152
+ var t;
153
+ return (t = e.theme.colors) == null ? void 0 : t.textLight;
154
+ }};
155
+ }
156
+
157
+ &:focus {
158
+ ${(e) => {
159
+ var t;
160
+ return ((t = e.theme.accessibility) == null ? void 0 : t.isTabbing) && i`
161
+ ${v}
162
+ border-radius: 1em;
163
+ `;
164
+ }}
165
+ }
166
+
167
+ @media (hover: hover) {
168
+ &:hover {
169
+ border: 1px solid ${(e) => {
170
+ var t;
171
+ return (t = e.theme.colors) == null ? void 0 : t.text;
172
+ }};
173
+ }
174
+ }
175
+
176
+ ${(e) => e.disabled && i`
177
+ opacity: 0.5;
178
+ `}
179
+ `, re = l(Z)`
180
+ order: 2;
181
+ margin-left: ${(e) => e.theme.sizes.small};
182
+ `, k = l(_)`
183
+ margin-right: ${(e) => {
184
+ var t;
185
+ return (t = e.theme.sizes) == null ? void 0 : t.small;
186
+ }};
187
+ ${(e) => {
188
+ if (e.symbol.type === "Uri")
189
+ return `
190
+ width: ${e.size}px;
191
+ height: ${e.size}px;
192
+ `;
193
+ if (e.symbol.type === "FontAwesome")
194
+ return `
195
+ font-size: ${e.size}px;
196
+ `;
197
+ }}
198
+ `, se = l.li`
199
+ ${(e) => e.notAllowed === "true" && i`
200
+ cursor: not-allowed;
201
+ `}
202
+ `;
203
+ export {
204
+ he as default
205
+ };
206
+ //# sourceMappingURL=tag-list.316a76ef.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tag-list.316a76ef.js","sources":["../src/tag-list.tsx"],"sourcesContent":["import { initialRouteFallback } from '@telia-ace/knowledge-widget-component-utilities';\r\nimport { Symbol, Tag } from '@telia-ace/knowledge-widget-core';\r\nimport {\r\n borderTabStyle,\r\n contentBox,\r\n createEmptyComponent,\r\n ItemList,\r\n itemList,\r\n Loader,\r\n loadingOpacity,\r\n SymbolBadge,\r\n Text,\r\n TextLink,\r\n useContainer,\r\n useProperties,\r\n useRouteData,\r\n} from '@telia-ace/knowledge-widget-ui';\r\nimport { appendClassNames } from '@telia-ace/widget-utilities';\r\nimport React from 'react';\r\nimport styled, { css } from 'styled-components';\r\nimport { TagListComponentProps } from './tag-list-component';\r\n\r\ntype Props = {\r\n className: string;\r\n};\r\n\r\nconst getIcon = (selected: boolean, defaultIcon?: Symbol, activeIcon?: Symbol) => {\r\n if (selected && activeIcon) {\r\n return <StyledSymbolBadge symbol={activeIcon} size={18} />;\r\n }\r\n if (defaultIcon) {\r\n return <StyledSymbolBadge symbol={defaultIcon} size={18} />;\r\n }\r\n return null;\r\n};\r\n\r\nconst TagList: React.SFC<Props> = ({ className, ...other }) => {\r\n const {\r\n route = 'search',\r\n items = [],\r\n header,\r\n loading = false,\r\n style = 'badge',\r\n showMatchCount = false,\r\n showIcons = false,\r\n static: staticTags = false,\r\n fallbackOnInitialRoute = false,\r\n itemAriaLabel,\r\n } = useProperties<TagListComponentProps>();\r\n const container = useContainer();\r\n const { params } = useRouteData();\r\n\r\n if (!items.length && (!loading || staticTags)) {\r\n return createEmptyComponent(container, {\r\n ...other,\r\n className: appendClassNames(className, 'humany-tag-list'),\r\n });\r\n }\r\n\r\n const Component = style === 'badge' ? StyledBadge : StyledPill;\r\n\r\n return (\r\n <StyledItemList\r\n {...other}\r\n data-loading={!staticTags && loading}\r\n className={appendClassNames(className, 'humany-tag-list')}\r\n header={!staticTags && loading ? '' : header}\r\n items={items}\r\n type={style}\r\n renderItem={(item: Tag) => {\r\n const { id, title, defaultIcon, activeIcon, matches } = item;\r\n const selected = params.tag === item.id || (!params.tag && item.id === '0');\r\n\r\n const ariaLabel =\r\n itemAriaLabel &&\r\n itemAriaLabel.replace('{{title}}', title).replace('{{matches}}', `${matches}`);\r\n\r\n return (\r\n <StyledLi\r\n key={id}\r\n notAllowed={(staticTags && !matches && style === 'pill').toString()}\r\n data-tag={id}\r\n >\r\n <Component\r\n {...initialRouteFallback(item, route, fallbackOnInitialRoute, 'tag')}\r\n role=\"button\"\r\n aria-pressed={selected}\r\n aria-label={ariaLabel}\r\n disabled={staticTags && !matches}\r\n selected={selected}\r\n text={title}\r\n >\r\n {showIcons && getIcon(selected, defaultIcon, activeIcon)}\r\n {showMatchCount && (\r\n <StyledMatchCount>{`(${matches})`}</StyledMatchCount>\r\n )}\r\n </Component>\r\n </StyledLi>\r\n );\r\n }}\r\n >\r\n {!staticTags && <Loader loading={loading} />}\r\n </StyledItemList>\r\n );\r\n};\r\n\r\nexport default TagList;\r\n\r\nconst StyledItemList = styled(ItemList)<{ 'data-loading': boolean } & any>`\r\n ${contentBox}\r\n ${itemList}\r\n ${loadingOpacity}\r\n justify-content: flex-start;\r\n padding: ${(p) => p.theme.sizes?.large};\r\n ul {\r\n display: flex;\r\n flex-wrap: wrap;\r\n ${(p) =>\r\n p.type === 'pill' &&\r\n css`\r\n justify-content: center;\r\n `}\r\n\r\n li {\r\n margin: 0 ${(p) => `${p.theme.sizes?.small} ${p.theme.sizes?.small}`} 0;\r\n }\r\n }\r\n`;\r\n\r\nconst StyledBadge = styled(TextLink)<any>`\r\n padding: 8px 15px;\r\n background-color: ${(p) => (p.selected ? p.theme.colors?.text : p.theme.colors?.primary)};\r\n border-radius: ${(p) => p.theme.borderRadius};\r\n font-weight: 300;\r\n font-size: ${(p) => p.theme.fonts?.normal};\r\n display: flex;\r\n align-items: center;\r\n color: #ffffff;\r\n\r\n &:focus {\r\n ${(p) =>\r\n p.theme.accessibility?.isTabbing &&\r\n css`\r\n ${borderTabStyle}\r\n padding: 6px 15px;\r\n background-color: transparent;\r\n `};\r\n }\r\n\r\n @media (hover: hover) {\r\n &:hover {\r\n background-color: ${(p) =>\r\n p.selected ? p.theme.colors?.primary : p.theme.colors?.text};\r\n }\r\n }\r\n`;\r\n\r\nconst StyledPill = styled(TextLink)<any>`\r\n border: 1px solid ${(p) => (p.selected ? p.theme.colors?.text : 'transparent')};\r\n line-height: 2em;\r\n border-radius: 1em;\r\n padding: 0 0.5em;\r\n display: flex;\r\n align-items: center;\r\n font-weight: ${(p) => (p.selected ? 'normal' : 300)};\r\n color: ${(p) => p.theme.colors?.text};\r\n\r\n &:disabled {\r\n color: ${(p) => p.theme.colors?.textLight};\r\n }\r\n\r\n &:focus {\r\n ${(p) =>\r\n p.theme.accessibility?.isTabbing &&\r\n css`\r\n ${borderTabStyle}\r\n border-radius: 1em;\r\n `}\r\n }\r\n\r\n @media (hover: hover) {\r\n &:hover {\r\n border: 1px solid ${(p) => p.theme.colors?.text};\r\n }\r\n }\r\n\r\n ${(p) =>\r\n p.disabled &&\r\n css`\r\n opacity: 0.5;\r\n `}\r\n`;\r\n\r\nconst StyledMatchCount = styled(Text)<any>`\r\n order: 2;\r\n margin-left: ${(p) => p.theme.sizes.small};\r\n`;\r\n\r\nconst StyledSymbolBadge = styled(SymbolBadge)<{ size: number; symbol: Symbol }>`\r\n margin-right: ${(p) => p.theme.sizes?.small};\r\n ${(p: any) => {\r\n if (p.symbol.type === 'Uri') {\r\n return `\r\n width: ${p.size}px;\r\n height: ${p.size}px;\r\n `;\r\n }\r\n\r\n if (p.symbol.type === 'FontAwesome') {\r\n return `\r\n font-size: ${p.size}px;\r\n `;\r\n }\r\n }}\r\n`;\r\n\r\nconst StyledLi = styled.li<{ notAllowed: string }>`\r\n ${(p) =>\r\n p.notAllowed === 'true' &&\r\n css`\r\n cursor: not-allowed;\r\n `}\r\n`;\r\n"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,13 +1,17 @@
1
1
  {
2
2
  "name": "@telia-ace/knowledge-widget-components-tag-list",
3
- "version": "1.0.14",
3
+ "version": "1.0.17",
4
4
  "description": "Tag list component for ACE Knowledge Widgets.",
5
5
  "license": "SEE LICENSE IN LICENSE.txt",
6
6
  "author": "Telia Company AB",
7
7
  "keywords": [
8
8
  "telia"
9
9
  ],
10
- "module": "dist/index.js",
10
+ "exports": {
11
+ "development": "./src/index.ts",
12
+ "default": "./dist/index.js"
13
+ },
14
+ "type": "module",
11
15
  "types": "dist/index.d.ts",
12
16
  "files": [
13
17
  "LICENSE.txt",
@@ -24,10 +28,10 @@
24
28
  },
25
29
  "sideEffects": false,
26
30
  "dependencies": {
27
- "@telia-ace/knowledge-widget-component-utilities": "^1.0.14",
28
- "@telia-ace/knowledge-widget-core": "^1.0.12",
29
- "@telia-ace/knowledge-widget-types-grid": "^1.0.20",
30
- "@telia-ace/knowledge-widget-ui": "^1.0.17",
31
+ "@telia-ace/knowledge-widget-component-utilities": "^1.0.17",
32
+ "@telia-ace/knowledge-widget-core": "^1.0.14",
33
+ "@telia-ace/knowledge-widget-types-grid": "^1.0.23",
34
+ "@telia-ace/knowledge-widget-ui": "^1.0.20",
31
35
  "@telia-ace/widget-utilities": "^1.0.2",
32
36
  "@webprovisions/platform": "^1.1.2"
33
37
  },
@@ -41,5 +45,5 @@
41
45
  "@types/react-dom": "^16.8.0",
42
46
  "@types/styled-components": "^5.1.7"
43
47
  },
44
- "gitHead": "57266a657101df06d2160176ffe83e431c4ae92a"
48
+ "gitHead": "ccf2f3c55b373a7e23227e155d7573259abfacb1"
45
49
  }
package/dist/tag-list.js DELETED
@@ -1,236 +0,0 @@
1
- var __defProp = Object.defineProperty;
2
- var __defProps = Object.defineProperties;
3
- var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
4
- var __getOwnPropSymbols = Object.getOwnPropertySymbols;
5
- var __hasOwnProp = Object.prototype.hasOwnProperty;
6
- var __propIsEnum = Object.prototype.propertyIsEnumerable;
7
- var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
8
- var __spreadValues = (a, b) => {
9
- for (var prop in b || (b = {}))
10
- if (__hasOwnProp.call(b, prop))
11
- __defNormalProp(a, prop, b[prop]);
12
- if (__getOwnPropSymbols)
13
- for (var prop of __getOwnPropSymbols(b)) {
14
- if (__propIsEnum.call(b, prop))
15
- __defNormalProp(a, prop, b[prop]);
16
- }
17
- return a;
18
- };
19
- var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
20
- var __objRest = (source, exclude) => {
21
- var target = {};
22
- for (var prop in source)
23
- if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)
24
- target[prop] = source[prop];
25
- if (source != null && __getOwnPropSymbols)
26
- for (var prop of __getOwnPropSymbols(source)) {
27
- if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))
28
- target[prop] = source[prop];
29
- }
30
- return target;
31
- };
32
- import { initialRouteFallback } from "@telia-ace/knowledge-widget-component-utilities";
33
- import { useProperties, useContainer, useRouteData, createEmptyComponent, Loader, ItemList, contentBox, itemList, loadingOpacity, TextLink, borderTabStyle, Text, SymbolBadge } from "@telia-ace/knowledge-widget-ui";
34
- import { appendClassNames } from "@telia-ace/widget-utilities";
35
- import React from "react";
36
- import styled, { css } from "styled-components";
37
- const getIcon = (selected, defaultIcon, activeIcon) => {
38
- if (selected && activeIcon) {
39
- return /* @__PURE__ */ React.createElement(StyledSymbolBadge, {
40
- symbol: activeIcon,
41
- size: 18
42
- });
43
- }
44
- if (defaultIcon) {
45
- return /* @__PURE__ */ React.createElement(StyledSymbolBadge, {
46
- symbol: defaultIcon,
47
- size: 18
48
- });
49
- }
50
- return null;
51
- };
52
- const TagList = (_a) => {
53
- var _b = _a, { className } = _b, other = __objRest(_b, ["className"]);
54
- const {
55
- route = "search",
56
- items = [],
57
- header,
58
- loading = false,
59
- style = "badge",
60
- showMatchCount = false,
61
- showIcons = false,
62
- static: staticTags = false,
63
- fallbackOnInitialRoute = false,
64
- itemAriaLabel
65
- } = useProperties();
66
- const container = useContainer();
67
- const { params } = useRouteData();
68
- if (!items.length && (!loading || staticTags)) {
69
- return createEmptyComponent(container, __spreadProps(__spreadValues({}, other), {
70
- className: appendClassNames(className, "humany-tag-list")
71
- }));
72
- }
73
- const Component = style === "badge" ? StyledBadge : StyledPill;
74
- return /* @__PURE__ */ React.createElement(StyledItemList, __spreadProps(__spreadValues({}, other), {
75
- "data-loading": !staticTags && loading,
76
- className: appendClassNames(className, "humany-tag-list"),
77
- header: !staticTags && loading ? "" : header,
78
- items,
79
- type: style,
80
- renderItem: (item) => {
81
- const { id, title, defaultIcon, activeIcon, matches } = item;
82
- const selected = params.tag === item.id || !params.tag && item.id === "0";
83
- const ariaLabel = itemAriaLabel && itemAriaLabel.replace("{{title}}", title).replace("{{matches}}", `${matches}`);
84
- return /* @__PURE__ */ React.createElement(StyledLi, {
85
- key: id,
86
- notAllowed: (staticTags && !matches && style === "pill").toString(),
87
- "data-tag": id
88
- }, /* @__PURE__ */ React.createElement(Component, __spreadProps(__spreadValues({}, initialRouteFallback(item, route, fallbackOnInitialRoute, "tag")), {
89
- role: "button",
90
- "aria-pressed": selected,
91
- "aria-label": ariaLabel,
92
- disabled: staticTags && !matches,
93
- selected,
94
- text: title
95
- }), showIcons && getIcon(selected, defaultIcon, activeIcon), showMatchCount && /* @__PURE__ */ React.createElement(StyledMatchCount, null, `(${matches})`)));
96
- }
97
- }), !staticTags && /* @__PURE__ */ React.createElement(Loader, {
98
- loading
99
- }));
100
- };
101
- const StyledItemList = styled(ItemList)`
102
- ${contentBox}
103
- ${itemList}
104
- ${loadingOpacity}
105
- justify-content: flex-start;
106
- padding: ${(p) => {
107
- var _a;
108
- return (_a = p.theme.sizes) == null ? void 0 : _a.large;
109
- }};
110
- ul {
111
- display: flex;
112
- flex-wrap: wrap;
113
- ${(p) => p.type === "pill" && css`
114
- justify-content: center;
115
- `}
116
-
117
- li {
118
- margin: 0 ${(p) => {
119
- var _a, _b;
120
- return `${(_a = p.theme.sizes) == null ? void 0 : _a.small} ${(_b = p.theme.sizes) == null ? void 0 : _b.small}`;
121
- }} 0;
122
- }
123
- }
124
- `;
125
- const StyledBadge = styled(TextLink)`
126
- padding: 8px 15px;
127
- background-color: ${(p) => {
128
- var _a, _b;
129
- return p.selected ? (_a = p.theme.colors) == null ? void 0 : _a.text : (_b = p.theme.colors) == null ? void 0 : _b.primary;
130
- }};
131
- border-radius: ${(p) => p.theme.borderRadius};
132
- font-weight: 300;
133
- font-size: ${(p) => {
134
- var _a;
135
- return (_a = p.theme.fonts) == null ? void 0 : _a.normal;
136
- }};
137
- display: flex;
138
- align-items: center;
139
- color: #ffffff;
140
-
141
- &:focus {
142
- ${(p) => {
143
- var _a;
144
- return ((_a = p.theme.accessibility) == null ? void 0 : _a.isTabbing) && css`
145
- ${borderTabStyle}
146
- padding: 6px 15px;
147
- background-color: transparent;
148
- `;
149
- }};
150
- }
151
-
152
- @media (hover: hover) {
153
- &:hover {
154
- background-color: ${(p) => {
155
- var _a, _b;
156
- return p.selected ? (_a = p.theme.colors) == null ? void 0 : _a.primary : (_b = p.theme.colors) == null ? void 0 : _b.text;
157
- }};
158
- }
159
- }
160
- `;
161
- const StyledPill = styled(TextLink)`
162
- border: 1px solid ${(p) => {
163
- var _a;
164
- return p.selected ? (_a = p.theme.colors) == null ? void 0 : _a.text : "transparent";
165
- }};
166
- line-height: 2em;
167
- border-radius: 1em;
168
- padding: 0 0.5em;
169
- display: flex;
170
- align-items: center;
171
- font-weight: ${(p) => p.selected ? "normal" : 300};
172
- color: ${(p) => {
173
- var _a;
174
- return (_a = p.theme.colors) == null ? void 0 : _a.text;
175
- }};
176
-
177
- &:disabled {
178
- color: ${(p) => {
179
- var _a;
180
- return (_a = p.theme.colors) == null ? void 0 : _a.textLight;
181
- }};
182
- }
183
-
184
- &:focus {
185
- ${(p) => {
186
- var _a;
187
- return ((_a = p.theme.accessibility) == null ? void 0 : _a.isTabbing) && css`
188
- ${borderTabStyle}
189
- border-radius: 1em;
190
- `;
191
- }}
192
- }
193
-
194
- @media (hover: hover) {
195
- &:hover {
196
- border: 1px solid ${(p) => {
197
- var _a;
198
- return (_a = p.theme.colors) == null ? void 0 : _a.text;
199
- }};
200
- }
201
- }
202
-
203
- ${(p) => p.disabled && css`
204
- opacity: 0.5;
205
- `}
206
- `;
207
- const StyledMatchCount = styled(Text)`
208
- order: 2;
209
- margin-left: ${(p) => p.theme.sizes.small};
210
- `;
211
- const StyledSymbolBadge = styled(SymbolBadge)`
212
- margin-right: ${(p) => {
213
- var _a;
214
- return (_a = p.theme.sizes) == null ? void 0 : _a.small;
215
- }};
216
- ${(p) => {
217
- if (p.symbol.type === "Uri") {
218
- return `
219
- width: ${p.size}px;
220
- height: ${p.size}px;
221
- `;
222
- }
223
- if (p.symbol.type === "FontAwesome") {
224
- return `
225
- font-size: ${p.size}px;
226
- `;
227
- }
228
- }}
229
- `;
230
- const StyledLi = styled.li`
231
- ${(p) => p.notAllowed === "true" && css`
232
- cursor: not-allowed;
233
- `}
234
- `;
235
- export { TagList as default };
236
- //# sourceMappingURL=tag-list.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"tag-list.js","sources":["../src/tag-list.tsx"],"sourcesContent":["import { initialRouteFallback } from '@telia-ace/knowledge-widget-component-utilities';\r\nimport { Symbol, Tag } from '@telia-ace/knowledge-widget-core';\r\nimport {\r\n borderTabStyle,\r\n contentBox,\r\n createEmptyComponent,\r\n ItemList,\r\n itemList,\r\n Loader,\r\n loadingOpacity,\r\n SymbolBadge,\r\n Text,\r\n TextLink,\r\n useContainer,\r\n useProperties,\r\n useRouteData,\r\n} from '@telia-ace/knowledge-widget-ui';\r\nimport { appendClassNames } from '@telia-ace/widget-utilities';\r\nimport React from 'react';\r\nimport styled, { css } from 'styled-components';\r\nimport { TagListComponentProps } from './tag-list-component';\r\n\r\ntype Props = {\r\n className: string;\r\n};\r\n\r\nconst getIcon = (selected: boolean, defaultIcon?: Symbol, activeIcon?: Symbol) => {\r\n if (selected && activeIcon) {\r\n return <StyledSymbolBadge symbol={activeIcon} size={18} />;\r\n }\r\n if (defaultIcon) {\r\n return <StyledSymbolBadge symbol={defaultIcon} size={18} />;\r\n }\r\n return null;\r\n};\r\n\r\nconst TagList: React.SFC<Props> = ({ className, ...other }) => {\r\n const {\r\n route = 'search',\r\n items = [],\r\n header,\r\n loading = false,\r\n style = 'badge',\r\n showMatchCount = false,\r\n showIcons = false,\r\n static: staticTags = false,\r\n fallbackOnInitialRoute = false,\r\n itemAriaLabel,\r\n } = useProperties<TagListComponentProps>();\r\n const container = useContainer();\r\n const { params } = useRouteData();\r\n\r\n if (!items.length && (!loading || staticTags)) {\r\n return createEmptyComponent(container, {\r\n ...other,\r\n className: appendClassNames(className, 'humany-tag-list'),\r\n });\r\n }\r\n\r\n const Component = style === 'badge' ? StyledBadge : StyledPill;\r\n\r\n return (\r\n <StyledItemList\r\n {...other}\r\n data-loading={!staticTags && loading}\r\n className={appendClassNames(className, 'humany-tag-list')}\r\n header={!staticTags && loading ? '' : header}\r\n items={items}\r\n type={style}\r\n renderItem={(item: Tag) => {\r\n const { id, title, defaultIcon, activeIcon, matches } = item;\r\n const selected = params.tag === item.id || (!params.tag && item.id === '0');\r\n\r\n const ariaLabel =\r\n itemAriaLabel &&\r\n itemAriaLabel.replace('{{title}}', title).replace('{{matches}}', `${matches}`);\r\n\r\n return (\r\n <StyledLi\r\n key={id}\r\n notAllowed={(staticTags && !matches && style === 'pill').toString()}\r\n data-tag={id}\r\n >\r\n <Component\r\n {...initialRouteFallback(item, route, fallbackOnInitialRoute, 'tag')}\r\n role=\"button\"\r\n aria-pressed={selected}\r\n aria-label={ariaLabel}\r\n disabled={staticTags && !matches}\r\n selected={selected}\r\n text={title}\r\n >\r\n {showIcons && getIcon(selected, defaultIcon, activeIcon)}\r\n {showMatchCount && (\r\n <StyledMatchCount>{`(${matches})`}</StyledMatchCount>\r\n )}\r\n </Component>\r\n </StyledLi>\r\n );\r\n }}\r\n >\r\n {!staticTags && <Loader loading={loading} />}\r\n </StyledItemList>\r\n );\r\n};\r\n\r\nexport default TagList;\r\n\r\nconst StyledItemList = styled(ItemList)<{ 'data-loading': boolean } & any>`\r\n ${contentBox}\r\n ${itemList}\r\n ${loadingOpacity}\r\n justify-content: flex-start;\r\n padding: ${(p) => p.theme.sizes?.large};\r\n ul {\r\n display: flex;\r\n flex-wrap: wrap;\r\n ${(p) =>\r\n p.type === 'pill' &&\r\n css`\r\n justify-content: center;\r\n `}\r\n\r\n li {\r\n margin: 0 ${(p) => `${p.theme.sizes?.small} ${p.theme.sizes?.small}`} 0;\r\n }\r\n }\r\n`;\r\n\r\nconst StyledBadge = styled(TextLink)<any>`\r\n padding: 8px 15px;\r\n background-color: ${(p) => (p.selected ? p.theme.colors?.text : p.theme.colors?.primary)};\r\n border-radius: ${(p) => p.theme.borderRadius};\r\n font-weight: 300;\r\n font-size: ${(p) => p.theme.fonts?.normal};\r\n display: flex;\r\n align-items: center;\r\n color: #ffffff;\r\n\r\n &:focus {\r\n ${(p) =>\r\n p.theme.accessibility?.isTabbing &&\r\n css`\r\n ${borderTabStyle}\r\n padding: 6px 15px;\r\n background-color: transparent;\r\n `};\r\n }\r\n\r\n @media (hover: hover) {\r\n &:hover {\r\n background-color: ${(p) =>\r\n p.selected ? p.theme.colors?.primary : p.theme.colors?.text};\r\n }\r\n }\r\n`;\r\n\r\nconst StyledPill = styled(TextLink)<any>`\r\n border: 1px solid ${(p) => (p.selected ? p.theme.colors?.text : 'transparent')};\r\n line-height: 2em;\r\n border-radius: 1em;\r\n padding: 0 0.5em;\r\n display: flex;\r\n align-items: center;\r\n font-weight: ${(p) => (p.selected ? 'normal' : 300)};\r\n color: ${(p) => p.theme.colors?.text};\r\n\r\n &:disabled {\r\n color: ${(p) => p.theme.colors?.textLight};\r\n }\r\n\r\n &:focus {\r\n ${(p) =>\r\n p.theme.accessibility?.isTabbing &&\r\n css`\r\n ${borderTabStyle}\r\n border-radius: 1em;\r\n `}\r\n }\r\n\r\n @media (hover: hover) {\r\n &:hover {\r\n border: 1px solid ${(p) => p.theme.colors?.text};\r\n }\r\n }\r\n\r\n ${(p) =>\r\n p.disabled &&\r\n css`\r\n opacity: 0.5;\r\n `}\r\n`;\r\n\r\nconst StyledMatchCount = styled(Text)<any>`\r\n order: 2;\r\n margin-left: ${(p) => p.theme.sizes.small};\r\n`;\r\n\r\nconst StyledSymbolBadge = styled(SymbolBadge)<{ size: number; symbol: Symbol }>`\r\n margin-right: ${(p) => p.theme.sizes?.small};\r\n ${(p: any) => {\r\n if (p.symbol.type === 'Uri') {\r\n return `\r\n width: ${p.size}px;\r\n height: ${p.size}px;\r\n `;\r\n }\r\n\r\n if (p.symbol.type === 'FontAwesome') {\r\n return `\r\n font-size: ${p.size}px;\r\n `;\r\n }\r\n }}\r\n`;\r\n\r\nconst StyledLi = styled.li<{ notAllowed: string }>`\r\n ${(p) =>\r\n p.notAllowed === 'true' &&\r\n css`\r\n cursor: not-allowed;\r\n `}\r\n`;\r\n"],"names":[],"mappings":"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"}