@telia-ace/widget-utilities 1.0.18-next.0 → 1.0.18

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,86 +1,115 @@
1
- var O = Object.getOwnPropertySymbols;
2
- var L = Object.prototype.hasOwnProperty, B = Object.prototype.propertyIsEnumerable;
3
- var x = (e, t) => {
4
- var o = {};
5
- for (var r in e)
6
- L.call(e, r) && t.indexOf(r) < 0 && (o[r] = e[r]);
7
- if (e != null && O)
8
- for (var r of O(e))
9
- t.indexOf(r) < 0 && B.call(e, r) && (o[r] = e[r]);
10
- return o;
1
+ var x = Object.getOwnPropertySymbols;
2
+ var U = Object.prototype.hasOwnProperty, z = Object.prototype.propertyIsEnumerable;
3
+ var v = (o, t) => {
4
+ if (t = Symbol[o])
5
+ return t;
6
+ throw Error("Symbol." + o + " is not defined");
11
7
  };
12
- function I(e) {
8
+ var T = (o, t) => {
9
+ var e = {};
10
+ for (var r in o)
11
+ U.call(o, r) && t.indexOf(r) < 0 && (e[r] = o[r]);
12
+ if (o != null && x)
13
+ for (var r of x(o))
14
+ t.indexOf(r) < 0 && z.call(o, r) && (e[r] = o[r]);
15
+ return e;
16
+ };
17
+ var V = function(o, t) {
18
+ this[0] = o, this[1] = t;
19
+ };
20
+ var N = (o) => {
21
+ var t = o[v("asyncIterator")], e = !1, r, i = {};
22
+ return t == null ? (t = o[v("iterator")](), r = (n) => i[n] = (s) => t[n](s)) : (t = t.call(o), r = (n) => i[n] = (s) => {
23
+ if (e) {
24
+ if (e = !1, n === "throw")
25
+ throw s;
26
+ return s;
27
+ }
28
+ return e = !0, {
29
+ done: !1,
30
+ value: new V(new Promise((a) => {
31
+ var c = t[n](s);
32
+ if (!(c instanceof Object))
33
+ throw TypeError("Object expected");
34
+ a(c);
35
+ }), 1)
36
+ };
37
+ }), i[v("iterator")] = () => i, r("next"), "throw" in t ? r("throw") : i.throw = (n) => {
38
+ throw n;
39
+ }, "return" in t && r("return"), i;
40
+ };
41
+ function W(o) {
13
42
  const t = [];
14
- return e.forEach((o) => {
15
- t.indexOf(o) === -1 && t.push(o);
43
+ return o.forEach((e) => {
44
+ t.indexOf(e) === -1 && t.push(e);
16
45
  }), t;
17
46
  }
18
- function k(e = "", t = "") {
19
- const o = e.split(" ").concat(t.split(" "));
20
- return I(o).join(" ").trim();
47
+ function w(o = "", t = "") {
48
+ const e = o.split(" ").concat(t.split(" "));
49
+ return W(e).join(" ").trim();
21
50
  }
22
- function U(e, t) {
23
- if (e) {
51
+ function M(o, t) {
52
+ if (o) {
24
53
  if (typeof t == "string")
25
54
  return t;
26
55
  if (Array.isArray(t)) {
27
- let o = "";
28
- return t.forEach((r) => o = k(o, r)), o;
56
+ let e = "";
57
+ return t.forEach((r) => e = w(e, r)), e;
29
58
  }
30
59
  }
31
60
  }
32
- function X(...e) {
61
+ function rt(...o) {
33
62
  let t = "";
34
- return e.length && e.forEach((o) => {
35
- typeof o == "string" ? t = k(t, o) : Array.isArray(o) ? t = k(t, U(...o)) : typeof o != "undefined" && o !== null && process.env.NODE_ENV !== "production" && p.warn(
63
+ return o.length && o.forEach((e) => {
64
+ typeof e == "string" ? t = w(t, e) : Array.isArray(e) ? t = w(t, M(...e)) : typeof e != "undefined" && e !== null && process.env.NODE_ENV !== "production" && L.warn(
36
65
  "appendClassNames: arguments either haveto be a string or [boolean, ...string[]]. Passed args:",
37
- ...e
66
+ ...o
38
67
  );
39
68
  }), t;
40
69
  }
41
- const z = (e, t) => {
42
- let o, r = [];
43
- return (i) => (clearTimeout(o), new Promise((n, a) => {
44
- r.push([i, n, a]), o = setTimeout(() => {
45
- let f = t();
70
+ const Y = (o, t) => {
71
+ let e, r = [];
72
+ return (i) => (clearTimeout(e), new Promise((n, s) => {
73
+ r.push([i, n, s]), e = setTimeout(() => {
74
+ let a = t();
46
75
  r.forEach(([c, g, m]) => {
47
- f = c(f);
48
- }), r = [], n(f);
49
- }, e);
76
+ a = c(a);
77
+ }), r = [], n(a);
78
+ }, o);
50
79
  }));
51
- }, tt = z;
52
- function T(e) {
80
+ }, it = Y;
81
+ function E(o) {
53
82
  const t = {};
54
- if (typeof e == "number" || typeof e == "string")
55
- return e;
56
- for (const o in e)
57
- if (e.hasOwnProperty(o)) {
58
- const r = e[o], i = o.substring(0, 1).toLowerCase() + o.substring(1);
83
+ if (typeof o == "number" || typeof o == "string")
84
+ return o;
85
+ for (const e in o)
86
+ if (o.hasOwnProperty(e)) {
87
+ const r = o[e], i = e.substring(0, 1).toLowerCase() + e.substring(1);
59
88
  if (Object.prototype.toString.call(r) === "[object Array]") {
60
89
  t[i] = [];
61
- for (let n = 0, a = r.length; n < a; n++)
62
- t[i].push(T(r[n]));
90
+ for (let n = 0, s = r.length; n < s; n++)
91
+ t[i].push(E(r[n]));
63
92
  } else
64
- r !== null && typeof r == "object" ? t[i] = T(r) : t[i] = r;
93
+ r !== null && typeof r == "object" ? t[i] = E(r) : t[i] = r;
65
94
  }
66
95
  return t;
67
96
  }
68
- function N(e = {}) {
69
- const $ = e, {
97
+ function j(o = {}) {
98
+ const O = o, {
70
99
  phrase: t = "",
71
- category: o,
100
+ category: e,
72
101
  guideCategory: r,
73
102
  contactCategory: i,
74
103
  take: n,
75
- connectionKey: a,
76
- accordion: f,
104
+ connectionKey: s,
105
+ accordion: a,
77
106
  id: c,
78
107
  uriName: g,
79
108
  sorting: m,
80
109
  tag: u,
81
110
  tagId: l,
82
111
  tagTitle: h
83
- } = $, P = x($, [
112
+ } = O, I = T(O, [
84
113
  "phrase",
85
114
  "category",
86
115
  "guideCategory",
@@ -94,26 +123,26 @@ function N(e = {}) {
94
123
  "tag",
95
124
  "tagId",
96
125
  "tagTitle"
97
- ]), s = {};
98
- return Object.keys(P).forEach((A) => {
99
- typeof e[A] == "string" && (s[A] = e[A]);
100
- }), typeof t == "string" && t.length && (s.phrase = t), t === null && (s.phrase = t), typeof r == "string" && r !== "0" && (s.guideCategory = r), typeof r == "number" && r !== 0 && (s.guideCategory = r), typeof r == "object" && r !== null && (typeof r.id == "string" && r.id !== "0" && (s.guideCategory = r.id), typeof r.id == "number" && r.id !== 0 && (s.guideCategory = r.id)), typeof i == "string" && i !== "0" && (s.contactCategory = i), typeof i == "number" && i !== 0 && (s.contactCategory = i), typeof i == "object" && i !== null && (typeof i.id == "string" && i.id !== "0" && (s.contactCategory = i.id), typeof i.id == "number" && i.id !== 0 && (s.contactCategory = i.id)), typeof o == "string" && o !== "0" && (s.category = o), typeof o == "number" && o !== 0 && (s.category = o), typeof o == "object" && o !== null && (typeof o.id == "string" && o.id !== "0" && (s.category = o.id), typeof o.id == "number" && o.id !== 0 && (s.category = o.id)), c && (s.id = c), g && (+s.category || +s.guideCategory || +s.guide || +s.contactCategory || +s.contactMethod) && (s.uriName = g), a && (s.connectionKey = a), n && (s.take = n), m && (s.sorting = m), typeof f == "string" && f.length > 0 && (s.accordion = f), typeof u == "string" && u !== "0" && (s.tag = u), typeof u == "number" && u !== 0 && (s.tag = u), Array.isArray(u) && u.length && (s.tag = u), (typeof l == "string" || typeof l == "number") && (s.tagId = l), typeof h == "string" && (s.tagTitle = h), typeof s.tag == "string" && (s.tag = s.tag.split(",")), s;
126
+ ]), f = {};
127
+ return Object.keys(I).forEach((A) => {
128
+ typeof o[A] == "string" && (f[A] = o[A]);
129
+ }), typeof t == "string" && t.length && (f.phrase = t), t === null && (f.phrase = t), typeof r == "string" && r !== "0" && (f.guideCategory = r), typeof r == "number" && r !== 0 && (f.guideCategory = r), typeof r == "object" && r !== null && (typeof r.id == "string" && r.id !== "0" && (f.guideCategory = r.id), typeof r.id == "number" && r.id !== 0 && (f.guideCategory = r.id)), typeof i == "string" && i !== "0" && (f.contactCategory = i), typeof i == "number" && i !== 0 && (f.contactCategory = i), typeof i == "object" && i !== null && (typeof i.id == "string" && i.id !== "0" && (f.contactCategory = i.id), typeof i.id == "number" && i.id !== 0 && (f.contactCategory = i.id)), typeof e == "string" && e !== "0" && (f.category = e), typeof e == "number" && e !== 0 && (f.category = e), typeof e == "object" && e !== null && (typeof e.id == "string" && e.id !== "0" && (f.category = e.id), typeof e.id == "number" && e.id !== 0 && (f.category = e.id)), c && (f.id = c), g && (+f.category || +f.guideCategory || +f.guide || +f.contactCategory || +f.contactMethod) && (f.uriName = g), s && (f.connectionKey = s), n && (f.take = n), m && (f.sorting = m), typeof a == "string" && a.length > 0 && (f.accordion = a), typeof u == "string" && u !== "0" && (f.tag = u), typeof u == "number" && u !== 0 && (f.tag = u), Array.isArray(u) && u.length && (f.tag = u), (typeof l == "string" || typeof l == "number") && (f.tagId = l), typeof h == "string" && (f.tagTitle = h), typeof f.tag == "string" && (f.tag = f.tag.split(",")), f;
101
130
  }
102
- function* q(e) {
103
- if (e)
104
- for (let t = 0; t < e.length; t++) {
105
- const o = e[t];
106
- yield o, o.items && (yield* q(o.items));
131
+ function* D(o) {
132
+ if (o)
133
+ for (let t = 0; t < o.length; t++) {
134
+ const e = o[t];
135
+ yield e, e.items && (yield* N(D(e.items)));
107
136
  }
108
137
  }
109
- const V = (e, t) => {
110
- const o = q(t);
111
- let r = o.next(), i = null;
138
+ const F = (o, t) => {
139
+ const e = D(t);
140
+ let r = e.next(), i = null;
112
141
  for (; !r.done; )
113
- r.value.id === e && (i = r.value), r = o.next();
142
+ r.value.id === o && (i = r.value), r = e.next();
114
143
  return i;
115
- }, W = V, M = (e) => {
116
- if (!e)
144
+ }, K = F, Z = (o) => {
145
+ if (!o)
117
146
  return "";
118
147
  const t = [
119
148
  { from: /[äæǽ]+/gi, to: "ae" },
@@ -205,164 +234,164 @@ const V = (e, t) => {
205
234
  { from: /[ю]+/gi, to: "yu" },
206
235
  { from: /[Я]+/gi, to: "Ya" },
207
236
  { from: /[я]+/gi, to: "ya" }
208
- ], o = /[^a-zA-Z0-9]+/g, r = /[-]$/;
209
- let i = e;
237
+ ], e = /[^a-zA-Z0-9]+/g, r = /[-]$/;
238
+ let i = o;
210
239
  for (const n in t)
211
- t.hasOwnProperty(n) && t[n].from.test(e) && (i = i.replace(t[n].from, t[n].to));
212
- return i = i.replace(o, "-"), i = i.replace(r, ""), i = i.toLowerCase(), i || "humany";
213
- }, E = M;
214
- function S(e, t = {}, o) {
215
- return e.forEach((r) => {
216
- o && (t[+r.id] = o), r.items && S(r.items, t, r.id);
240
+ t.hasOwnProperty(n) && t[n].from.test(o) && (i = i.replace(t[n].from, t[n].to));
241
+ return i = i.replace(e, "-"), i = i.replace(r, ""), i = i.toLowerCase(), i || "humany";
242
+ }, q = Z;
243
+ function P(o, t = {}, e) {
244
+ return o.forEach((r) => {
245
+ e && (t[+r.id] = e), r.items && P(r.items, t, r.id);
217
246
  }), t;
218
247
  }
219
- function Y(e, t, o = [e], r = S(t)) {
220
- const i = (a) => {
221
- const f = r[+a];
222
- f && (o.unshift(f), i(f));
223
- }, n = r[+e];
224
- return n && (o.unshift(n), i(n)), o;
248
+ function J(o, t, e = [o], r = P(t)) {
249
+ const i = (s) => {
250
+ const a = r[+s];
251
+ a && (e.unshift(a), i(a));
252
+ }, n = r[+o];
253
+ return n && (e.unshift(n), i(n)), e;
225
254
  }
226
- const F = (e, t) => typeof e == "undefined" || typeof t == "undefined" ? /* @__PURE__ */ new Map() : new Map(
227
- e.map((o) => {
228
- const r = W(o, t);
229
- return [o, r];
255
+ const Q = (o, t) => typeof o == "undefined" || typeof t == "undefined" ? /* @__PURE__ */ new Map() : new Map(
256
+ o.map((e) => {
257
+ const r = K(e, t);
258
+ return [e, r];
230
259
  })
231
- ), et = (e, t, o, r = "guide-categories") => o.getAsync("dataClient").then((i) => i.fetch(r, { expandCategories: "descendants" }).then(({ categories: n }) => {
232
- const a = (f) => {
233
- const c = Y(f, n), g = F(c, n), m = [];
260
+ ), nt = (o, t, e, r = "guide-categories") => e.getAsync("dataClient").then((i) => i.fetch(r, { expandCategories: "descendants" }).then(({ categories: n }) => {
261
+ const s = (a) => {
262
+ const c = J(a, n), g = Q(c, n), m = [];
234
263
  return c.forEach((u) => {
235
264
  const l = g.get(u);
236
265
  l && m.push({
237
- routeName: e,
266
+ routeName: o,
238
267
  title: l.title,
239
268
  symbol: l.symbol,
240
269
  id: l.id,
241
- routeParams: N(r === "contact-method-categories" ? {
270
+ routeParams: j(r === "contact-method-categories" ? {
242
271
  contactCategory: l.id,
243
- uriName: E(l.title)
272
+ uriName: q(l.title)
244
273
  } : {
245
274
  guideCategory: l.id,
246
- uriName: E(l.title)
275
+ uriName: q(l.title)
247
276
  })
248
277
  });
249
278
  }), m;
250
279
  };
251
- return Array.isArray(t) ? t.reduce((f, c) => {
252
- const g = a(c);
253
- return g.length > 0 && f.push(g), f;
254
- }, []) : a(t);
255
- })), K = (e) => {
256
- let t, o;
257
- e.split(",")[0].indexOf("base64") !== -1 ? t = atob(e.split(",")[1]) : t = decodeURI(e.split(",")[1]), o = e.split(",")[0].split(":")[1].split(";")[0];
280
+ return Array.isArray(t) ? t.reduce((a, c) => {
281
+ const g = s(c);
282
+ return g.length > 0 && a.push(g), a;
283
+ }, []) : s(t);
284
+ })), R = (o) => {
285
+ let t, e;
286
+ o.split(",")[0].indexOf("base64") !== -1 ? t = atob(o.split(",")[1]) : t = decodeURI(o.split(",")[1]), e = o.split(",")[0].split(":")[1].split(";")[0];
258
287
  const r = [];
259
288
  for (let i = 0; i < t.length; i++)
260
289
  r[i] = t.charCodeAt(i);
261
- return new Blob([new Uint8Array(r)], { type: o });
262
- }, ot = K;
263
- function rt(...e) {
264
- return process.env.NODE_ENV !== "production" && console && console.warn(...e);
290
+ return new Blob([new Uint8Array(r)], { type: e });
291
+ }, st = R;
292
+ function ft(...o) {
293
+ return process.env.NODE_ENV !== "production" && console && console.warn(...o);
265
294
  }
266
- const C = (e, t, ...o) => typeof t == "string" ? e(`[humany] ${t}`, ...o) : e(t, ...o), y = class {
295
+ const C = (o, t, ...e) => typeof t == "string" ? o(`[humany] ${t}`, ...e) : o(t, ...e), y = class p {
267
296
  constructor() {
268
- this.keys = [], this.log = (e, ...t) => this.lookup(e, () => y.log(...t)), this.warn = (e, ...t) => this.lookup(e, () => y.warn(...t)), this.error = (e, ...t) => this.lookup(e, () => y.error(...t)), this.info = (e, ...t) => this.lookup(e, () => y.info(...t));
297
+ this.keys = [], this.log = (t, ...e) => this.lookup(t, () => p.log(...e)), this.warn = (t, ...e) => this.lookup(t, () => p.warn(...e)), this.error = (t, ...e) => this.lookup(t, () => p.error(...e)), this.info = (t, ...e) => this.lookup(t, () => p.info(...e));
269
298
  }
270
- lookup(e, t) {
271
- this.keys.indexOf(e) === -1 && (this.keys.push(e), t());
299
+ lookup(t, e) {
300
+ this.keys.indexOf(t) === -1 && (this.keys.push(t), e());
272
301
  }
273
302
  };
274
- let p = y;
275
- p.log = (...e) => C(console.log, ...e);
276
- p.warn = (...e) => C(console.warn, ...e);
277
- p.error = (...e) => C(console.error, ...e);
278
- p.info = (...e) => C(console.info, ...e);
279
- const D = (e) => {
280
- let t = {}, o, r;
281
- if (typeof e != "object" || e === null)
282
- return e;
283
- t = Array.isArray(e) ? [] : {};
284
- for (r in e)
285
- o = e[r], t[r] = typeof o == "object" && o !== null ? D(o) : o;
303
+ y.log = (...o) => C(console.log, ...o);
304
+ y.warn = (...o) => C(console.warn, ...o);
305
+ y.error = (...o) => C(console.error, ...o);
306
+ y.info = (...o) => C(console.info, ...o);
307
+ let L = y;
308
+ const B = (o) => {
309
+ let t = {}, e, r;
310
+ if (typeof o != "object" || o === null)
311
+ return o;
312
+ t = Array.isArray(o) ? [] : {};
313
+ for (r in o)
314
+ e = o[r], t[r] = typeof e == "object" && e !== null ? B(e) : e;
286
315
  return t;
287
- }, j = D, it = (e) => {
288
- if (!e)
316
+ }, S = B, at = (o) => {
317
+ if (!o)
289
318
  return null;
290
319
  const t = localStorage.getItem(
291
- `humany_${_(e.tenant + e.name)}`
320
+ `humany_${_(o.tenant + o.name)}`
292
321
  );
293
322
  if (t) {
294
- const { activeStickyWidget: o } = JSON.parse(t);
295
- if (o && o.value && e.widgets.get(o.value)) {
323
+ const { activeStickyWidget: e } = JSON.parse(t);
324
+ if (e && e.value && o.widgets.get(e.value)) {
296
325
  const i = document.createElement("a");
297
326
  i.setAttribute(
298
327
  "href",
299
- `//${e.bindings[0]}/${o.value}`
328
+ `//${o.bindings[0]}/${e.value}`
300
329
  ), document.body.appendChild(i);
301
330
  }
302
331
  }
303
- }, nt = (e, t = !1) => {
304
- const o = new Date(e);
305
- let r = `${o.getMonth() + 1}`, i = `${o.getDate()}`;
306
- const n = o.getFullYear();
332
+ }, ct = (o, t = !1) => {
333
+ const e = new Date(o);
334
+ let r = `${e.getMonth() + 1}`, i = `${e.getDate()}`;
335
+ const n = e.getFullYear();
307
336
  if (r.length < 2 && (r = `0${r}`), i.length < 2 && (i = `0${i}`), t) {
308
- let a = `${o.getHours()}`, f = `${o.getMinutes()}`;
309
- return a.length < 2 && (a = `0${a}`), f.length < 2 && (f = `0${f}`), `${[n, r, i].join("-")} ${[a, f].join(":")}`;
337
+ let s = `${e.getHours()}`, a = `${e.getMinutes()}`;
338
+ return s.length < 2 && (s = `0${s}`), a.length < 2 && (a = `0${a}`), `${[n, r, i].join("-")} ${[s, a].join(":")}`;
310
339
  }
311
340
  return [n, r, i].join("-");
312
341
  };
313
- function st(e) {
342
+ function ut(o) {
314
343
  const t = document.cookie;
315
344
  if (t.length > 0) {
316
- let o = t.indexOf(`${e}=`);
317
- if (o !== -1) {
318
- o = o + e.length + 1;
319
- let r = t.indexOf(";", o);
320
- return r === -1 && (r = t.length), unescape(t.substring(o, r));
345
+ let e = t.indexOf(`${o}=`);
346
+ if (e !== -1) {
347
+ e = e + o.length + 1;
348
+ let r = t.indexOf(";", e);
349
+ return r === -1 && (r = t.length), unescape(t.substring(e, r));
321
350
  }
322
351
  }
323
352
  return null;
324
353
  }
325
- function _(e) {
354
+ function _(o) {
326
355
  let t = 0;
327
- if (e.length === 0)
356
+ if (o.length === 0)
328
357
  return t.toString();
329
- for (let o = 0; o < e.length; o++) {
330
- const r = e.charCodeAt(o);
358
+ for (let e = 0; e < o.length; e++) {
359
+ const r = o.charCodeAt(e);
331
360
  t = (t << 5) - t + r, t = t & t;
332
361
  }
333
362
  return t.toString();
334
363
  }
335
- const ft = (e, t) => {
336
- if (!e || !t)
364
+ const lt = (o, t) => {
365
+ if (!o || !t)
337
366
  return !0;
338
- let o = t.parentNode, r = !1;
339
- for (; o !== null; )
340
- o === e && (r = !0), o = o.parentNode;
367
+ let e = t.parentNode, r = !1;
368
+ for (; e !== null; )
369
+ e === o && (r = !0), e = e.parentNode;
341
370
  return r;
342
371
  };
343
- function at(e) {
344
- return e.replace(/([a-z])([A-Z])/g, "$1-$2").replace(/\s+/g, "-").toLowerCase();
372
+ function gt(o) {
373
+ return o.replace(/([a-z])([A-Z])/g, "$1-$2").replace(/\s+/g, "-").toLowerCase();
345
374
  }
346
- class Z {
347
- constructor(t, o) {
348
- this.lockWarningTime = t, this.lockErrorTime = o, this.tasks = [], this.current = Promise.resolve(), this.next = this.next.bind(this);
375
+ class H {
376
+ constructor(t, e) {
377
+ this.lockWarningTime = t, this.lockErrorTime = e, this.tasks = [], this.current = Promise.resolve(), this.next = this.next.bind(this);
349
378
  }
350
- add(t, o, r, i) {
351
- this.tasks.push({ task: t, resolve: o, reject: r, done: i }), this.next();
379
+ add(t, e, r, i) {
380
+ this.tasks.push({ task: t, resolve: e, reject: r, done: i }), this.next();
352
381
  }
353
382
  next() {
354
383
  this.current = this.current.then(() => {
355
384
  const t = this.tasks.shift();
356
385
  if (t) {
357
- let o;
386
+ let e;
358
387
  const r = setTimeout(() => {
359
- process.env.NODE_ENV !== "production" && p.warn(
388
+ process.env.NODE_ENV !== "production" && L.warn(
360
389
  `A lock has exceeded ${this.lockWarningTime} ms. Waiting additional ${this.lockErrorTime} ms before rejecting the task.`,
361
390
  t
362
- ), o = setTimeout(() => {
391
+ ), e = setTimeout(() => {
363
392
  t.reject("lock timeout exceeded");
364
393
  }, this.lockErrorTime);
365
- }, this.lockWarningTime), i = Promise.resolve(t.task()).then((n) => (clearTimeout(r), clearTimeout(o), n));
394
+ }, this.lockWarningTime), i = Promise.resolve(t.task()).then((n) => (clearTimeout(r), clearTimeout(e), n));
366
395
  return Promise.resolve(i).then(this.next).then(
367
396
  () => i.then((n) => {
368
397
  t.done(), t.resolve(n);
@@ -374,56 +403,56 @@ class Z {
374
403
  }
375
404
  }
376
405
  const b = /* @__PURE__ */ new WeakMap();
377
- function ct(e, t = 5e3, o = 1e3) {
378
- return b.has(e) || b.set(e, new Z(t, o)), (r) => new Promise((i, n) => {
379
- const a = b.get(e);
380
- a.add(r, i, n, () => {
381
- a.tasks.length || b.delete(e);
406
+ function mt(o, t = 5e3, e = 1e3) {
407
+ return b.has(o) || b.set(o, new H(t, e)), (r) => new Promise((i, n) => {
408
+ const s = b.get(o);
409
+ s.add(r, i, n, () => {
410
+ s.tasks.length || b.delete(o);
382
411
  });
383
412
  });
384
413
  }
385
- const v = (e) => !!e && typeof e == "object" && !Array.isArray(e), J = (e, ...t) => {
386
- const o = j(e), r = j(t);
387
- return w(o, ...r);
388
- }, w = (e, ...t) => {
414
+ const k = (o) => !!o && typeof o == "object" && !Array.isArray(o), G = (o, ...t) => {
415
+ const e = S(o), r = S(t);
416
+ return $(e, ...r);
417
+ }, $ = (o, ...t) => {
389
418
  if (!t.length)
390
- return e;
391
- const o = t.shift();
392
- if (v(e) && v(o))
393
- for (const r in o)
394
- v(o[r]) ? (e[r] || Object.assign(e, { [r]: {} }), w(e[r], o[r])) : Object.assign(e, { [r]: o[r] });
395
- return w(e, ...t);
396
- }, ut = J, Q = (e, t) => {
397
- const o = () => t.querySelectorAll("[data-loading=true]").length > 0, i = (() => {
398
- let a = !1;
419
+ return o;
420
+ const e = t.shift();
421
+ if (k(o) && k(e))
422
+ for (const r in e)
423
+ k(e[r]) ? (o[r] || Object.assign(o, { [r]: {} }), $(o[r], e[r])) : Object.assign(o, { [r]: e[r] });
424
+ return $(o, ...t);
425
+ }, dt = G, X = (o, t) => {
426
+ const e = () => t.querySelectorAll("[data-loading=true]").length > 0, i = (() => {
427
+ let s = !1;
399
428
  return () => {
400
- if (a)
429
+ if (s)
401
430
  return;
402
- e.get("$widget").events.dispatch("widget:data-loaded", {
431
+ o.get("$widget").events.dispatch("widget:data-loaded", {
403
432
  element: t
404
- }), a = !0;
433
+ }), s = !0;
405
434
  };
406
435
  })();
407
- if (!o())
436
+ if (!e())
408
437
  return i();
409
- new MutationObserver((a, f) => {
410
- a.find(
438
+ new MutationObserver((s, a) => {
439
+ s.find(
411
440
  (g) => g.type === "attributes" && g.attributeName === "data-loading"
412
- ) && !o() && (f.disconnect(), i());
441
+ ) && !e() && (a.disconnect(), i());
413
442
  }).observe(t, {
414
443
  attributes: !0,
415
444
  childList: !0,
416
445
  subtree: !0
417
446
  });
418
- }, R = (e, t) => {
419
- e.get("$widget").container.getAsync("components").then((r) => {
447
+ }, tt = (o, t) => {
448
+ o.get("$widget").container.getAsync("components").then((r) => {
420
449
  r.events.subscribeOnce("components:component-model-initialized", () => {
421
450
  let i = r.nodes.visible.reduce(
422
- (f, c) => (!c.name || !c.type || c.type === "view" || c.type === "root" || c.attributes.layout.size === "none" || t.querySelector(`[data-name="${c.name}"]`) || f.push(c.name), f),
451
+ (a, c) => (!c.name || !c.type || c.type === "view" || c.type === "root" || c.attributes.layout.size === "none" || t.querySelector(`[data-name="${c.name}"]`) || a.push(c.name), a),
423
452
  []
424
453
  ), n = !1;
425
- new MutationObserver((f, c) => {
426
- f.forEach((g) => {
454
+ new MutationObserver((a, c) => {
455
+ a.forEach((g) => {
427
456
  if (g.addedNodes) {
428
457
  const m = Array.from(
429
458
  g.addedNodes
@@ -431,7 +460,7 @@ const v = (e) => !!e && typeof e == "object" && !Array.isArray(e), J = (e, ...t)
431
460
  const h = l.getAttribute && l.getAttribute("data-name");
432
461
  return h && i.indexOf(h) > -1 && u.push(h), u;
433
462
  }, []);
434
- i = i.filter((u) => m.indexOf(u) === -1), !n && i.length === 0 && (n = !0, Q(e, t), c.disconnect());
463
+ i = i.filter((u) => m.indexOf(u) === -1), !n && i.length === 0 && (n = !0, X(o, t), c.disconnect());
435
464
  }
436
465
  });
437
466
  }).observe(t, {
@@ -444,72 +473,72 @@ const v = (e) => !!e && typeof e == "object" && !Array.isArray(e), J = (e, ...t)
444
473
  });
445
474
  });
446
475
  });
447
- }, lt = R, H = (e = {}) => (Object.keys(e).forEach((t) => {
448
- (e[t] === null || typeof e[t] == "undefined") && delete e[t];
449
- }), e), gt = H;
450
- function mt(e, t, o) {
476
+ }, ht = tt, et = (o = {}) => (Object.keys(o).forEach((t) => {
477
+ (o[t] === null || typeof o[t] == "undefined") && delete o[t];
478
+ }), o), pt = et;
479
+ function yt(o, t, e) {
451
480
  let r = "";
452
- if (o) {
481
+ if (e) {
453
482
  const i = /* @__PURE__ */ new Date();
454
- i.setTime(i.getTime() + o * 24 * 60 * 60 * 1e3), r = `; expires=${i.toUTCString()}`;
483
+ i.setTime(i.getTime() + e * 24 * 60 * 60 * 1e3), r = `; expires=${i.toUTCString()}`;
455
484
  }
456
- document.cookie = `${e}=${t}${r}; path=/`;
485
+ document.cookie = `${o}=${t}${r}; path=/`;
457
486
  }
458
- const dt = (e, t) => {
459
- let o = !0;
460
- return Object.keys(e).length !== Object.keys(t).length || Object.keys(e).some((i) => !Object.keys(t).some((a) => i === a)) ? !1 : (Object.keys(e).forEach((i) => {
461
- if (o) {
462
- const n = typeof e[i] == "undefined" ? "" : e[i], a = typeof t[i] == "undefined" ? "" : t[i];
463
- o = n.toString() === a.toString();
487
+ const bt = (o, t) => {
488
+ let e = !0;
489
+ return Object.keys(o).length !== Object.keys(t).length || Object.keys(o).some((i) => !Object.keys(t).some((s) => i === s)) ? !1 : (Object.keys(o).forEach((i) => {
490
+ if (e) {
491
+ const n = typeof o[i] == "undefined" ? "" : o[i], s = typeof t[i] == "undefined" ? "" : t[i];
492
+ e = n.toString() === s.toString();
464
493
  }
465
- }), o);
494
+ }), e);
466
495
  }, d = () => Math.floor((1 + Math.random()) * 65536).toString(16).substring(1);
467
- function ht() {
496
+ function Ct() {
468
497
  return d() + d() + "-" + d() + "-" + d() + "-" + d() + "-" + d() + d() + d();
469
498
  }
470
- class pt {
499
+ class At {
471
500
  constructor(t) {
472
- this.queue = [], this.queueAttemptCalls = 0, this.callCount = 5, this.add = (o) => {
473
- this.queue.push(o), this.queueAttempt = setInterval(this.processQueue, 1e3);
501
+ this.queue = [], this.queueAttemptCalls = 0, this.callCount = 5, this.add = (e) => {
502
+ this.queue.push(e), this.queueAttempt = setInterval(this.processQueue, 1e3);
474
503
  }, this.processQueue = () => {
475
504
  if (this.queue.length > 0) {
476
- const o = [];
505
+ const e = [];
477
506
  this.queue.forEach((r, i) => {
478
507
  const n = r();
479
- typeof n == "function" && (n(), o.push(i));
480
- }), this.queue = this.queue.filter((r, i) => !(o.indexOf(i) > -1)), this.queueAttempt && clearInterval(this.queueAttempt);
508
+ typeof n == "function" && (n(), e.push(i));
509
+ }), this.queue = this.queue.filter((r, i) => !(e.indexOf(i) > -1)), this.queueAttempt && clearInterval(this.queueAttempt);
481
510
  }
482
511
  this.queueAttemptCalls > this.callCount && (clearInterval(this.queueAttempt), this.queueAttemptCalls = 0), this.queueAttemptCalls = this.queueAttemptCalls + 1;
483
512
  }, t && t.callCount && (this.callCount = t.callCount);
484
513
  }
485
514
  }
486
515
  export {
487
- p as Logger,
488
- pt as WaitFor,
489
- X as appendClassNames,
490
- et as buildCategoryTrail,
491
- T as camilize,
492
- Y as categoryTrail,
493
- tt as createBatch,
494
- N as createParams,
495
- ot as dataURItoBlob,
496
- rt as debugLog,
497
- j as deepClone,
498
- it as findAndActivateStoredWidgets,
499
- W as findCategoryById,
500
- nt as formatDate,
501
- E as formatUrl,
502
- F as getCategoryTrailAsObjects,
503
- st as getCookie,
516
+ L as Logger,
517
+ At as WaitFor,
518
+ rt as appendClassNames,
519
+ nt as buildCategoryTrail,
520
+ E as camilize,
521
+ J as categoryTrail,
522
+ it as createBatch,
523
+ j as createParams,
524
+ st as dataURItoBlob,
525
+ ft as debugLog,
526
+ S as deepClone,
527
+ at as findAndActivateStoredWidgets,
528
+ K as findCategoryById,
529
+ ct as formatDate,
530
+ q as formatUrl,
531
+ Q as getCategoryTrailAsObjects,
532
+ ut as getCookie,
504
533
  _ as hash,
505
- ft as htmlParentContains,
506
- at as kebabCase,
507
- ct as lock,
508
- ut as mergeDeep,
509
- lt as notifyDataLoaded,
510
- gt as removeNullAndUndefinedValues,
511
- mt as setCookie,
512
- dt as shallowCompare,
513
- ht as uuid
534
+ lt as htmlParentContains,
535
+ gt as kebabCase,
536
+ mt as lock,
537
+ dt as mergeDeep,
538
+ ht as notifyDataLoaded,
539
+ pt as removeNullAndUndefinedValues,
540
+ yt as setCookie,
541
+ bt as shallowCompare,
542
+ Ct as uuid
514
543
  };
515
544
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../src/append-class-names.ts","../src/batch.ts","../src/camilize.ts","../src/create-params.ts","../src/find-category-by-id.ts","../src/format-url.ts","../src/category-trail.ts","../src/data-uri-to-blob.ts","../src/debug.ts","../src/deep-clone.ts","../src/find-and-activate-stored-widgets.ts","../src/format-date.ts","../src/get-cookie.ts","../src/hash.ts","../src/html-parent-contains.ts","../src/kebab-case.ts","../src/lock.ts","../src/merge-deep.ts","../src/notify-data-loaded.ts","../src/remove-null-and-undefined-values.ts","../src/set-cookie.ts","../src/shallow-compare.ts","../src/uuid.ts","../src/wait-for.ts"],"sourcesContent":["import { Logger } from '.';\n\ntype ArgumentHandler = string | [boolean, string | string[]] | undefined;\n\nexport function uniqueClassArray(classNames: string[]) {\n const classArray: string[] = [];\n classNames.forEach((c) => {\n if (classArray.indexOf(c) === -1) {\n classArray.push(c);\n }\n });\n return classArray;\n}\n\nexport function append(className1 = '', className2 = '') {\n const classNames = className1.split(' ').concat(className2.split(' '));\n return uniqueClassArray(classNames).join(' ').trim();\n}\n\nexport function handleFunctionArgument(expression: boolean, classes: string | string[]) {\n if (Boolean(expression)) {\n if (typeof classes === 'string') {\n return classes;\n }\n if (Array.isArray(classes)) {\n let className = '';\n classes.forEach((c) => (className = append(className, c)));\n return className;\n }\n }\n}\n\nexport default function appendClassNames(...args: ArgumentHandler[]): string {\n let className: string = '';\n if (args.length) {\n args.forEach((argument: ArgumentHandler) => {\n if (typeof argument === 'string') {\n className = append(className, argument as string);\n } else if (Array.isArray(argument)) {\n className = append(className, handleFunctionArgument(...argument));\n } else if (typeof argument !== 'undefined' && argument !== null) {\n if (process.env.NODE_ENV !== 'production') {\n Logger.warn(\n 'appendClassNames: arguments either have' +\n 'to be a string or [boolean, ...string[]]. Passed args:',\n ...args\n );\n }\n }\n });\n }\n return className;\n}\n","export type BatchFunction<T> = (acc: T) => T;\nexport type Batch<T> = (fn: BatchFunction<T>) => Promise<T>;\n\nconst createBatch = <T>(delay: number, createFallback: () => T): Batch<T> => {\n let timeout: ReturnType<typeof setTimeout>;\n let queue: [BatchFunction<T>, (value: T | PromiseLike<T>) => void, (reason?: any) => void][] =\n [];\n\n return (fn: BatchFunction<T>): Promise<T> => {\n clearTimeout(timeout);\n return new Promise<T>((resolve, reject) => {\n queue.push([fn, resolve, reject]);\n timeout = setTimeout(() => {\n let acc = createFallback();\n queue.forEach(([fn, resolve, reject]) => {\n acc = fn(acc);\n });\n queue = [];\n resolve(acc);\n }, delay);\n });\n };\n};\n\nexport default createBatch;\n","export default function camilize(obj: any): any {\n const camilizedObject: any = {};\n if (typeof obj === 'number' || typeof obj === 'string') {\n return obj;\n }\n for (const prop in obj) {\n if (obj.hasOwnProperty(prop)) {\n const p = obj[prop];\n const camilizedProp = prop.substring(0, 1).toLowerCase() + prop.substring(1);\n if (Object.prototype.toString.call(p) === '[object Array]') {\n camilizedObject[camilizedProp] = [];\n for (let i = 0, c = p.length; i < c; i++) {\n // tslint:disable-line no-increment-decrement\n camilizedObject[camilizedProp].push(camilize(p[i]));\n }\n } else if (p !== null && typeof p === 'object') {\n camilizedObject[camilizedProp] = camilize(p);\n } else {\n camilizedObject[camilizedProp] = p;\n }\n }\n }\n return camilizedObject;\n}\n","export type Input = {\n phrase?: string;\n category?: ParamValue;\n guideCategory?: ParamValue;\n contactCategory?: ParamValue;\n take?: number;\n connectionKey?: string;\n id?: string;\n uriName?: string;\n sorting?: string;\n tag?: string | string[];\n tagId?: string | number;\n tagTitle?: string;\n} & { [key: string]: ParamValue };\n\nexport type ParamValue = string | number | any;\n\nexport type Params = { [key: string]: ParamValue };\n\nexport default function createParams(args: Input = {}): Params {\n const {\n phrase = '',\n category,\n guideCategory,\n contactCategory,\n take,\n connectionKey,\n accordion,\n id,\n uriName,\n sorting,\n tag,\n tagId,\n tagTitle,\n ...other\n } = args;\n const params: Params = {};\n\n Object.keys(other).forEach((k) => {\n if (typeof args[k] === 'string') {\n params[k] = args[k];\n }\n });\n\n if (typeof phrase === 'string' && phrase.length) {\n params.phrase = phrase;\n }\n\n if (phrase === null) {\n params.phrase = phrase;\n }\n\n if (typeof guideCategory === 'string' && guideCategory !== '0') {\n params.guideCategory = guideCategory;\n }\n if (typeof guideCategory === 'number' && guideCategory !== 0) {\n params.guideCategory = guideCategory;\n }\n if (typeof guideCategory === 'object' && guideCategory !== null) {\n if (typeof guideCategory.id === 'string' && guideCategory.id !== '0') {\n params.guideCategory = guideCategory.id;\n }\n if (typeof guideCategory.id === 'number' && guideCategory.id !== 0) {\n params.guideCategory = guideCategory.id;\n }\n }\n\n if (typeof contactCategory === 'string' && contactCategory !== '0') {\n params.contactCategory = contactCategory;\n }\n if (typeof contactCategory === 'number' && contactCategory !== 0) {\n params.contactCategory = contactCategory;\n }\n if (typeof contactCategory === 'object' && contactCategory !== null) {\n if (typeof contactCategory.id === 'string' && contactCategory.id !== '0') {\n params.contactCategory = contactCategory.id;\n }\n if (typeof contactCategory.id === 'number' && contactCategory.id !== 0) {\n params.contactCategory = contactCategory.id;\n }\n }\n\n if (typeof category === 'string' && category !== '0') {\n params.category = category;\n }\n if (typeof category === 'number' && category !== 0) {\n params.category = category;\n }\n if (typeof category === 'object' && category !== null) {\n if (typeof category.id === 'string' && category.id !== '0') {\n params.category = category.id;\n }\n if (typeof category.id === 'number' && category.id !== 0) {\n params.category = category.id;\n }\n }\n\n if (id) {\n params.id = id;\n }\n\n if (\n uriName &&\n (!!+params.category ||\n !!+params.guideCategory ||\n !!+params.guide ||\n !!+params.contactCategory ||\n !!+params.contactMethod)\n ) {\n params.uriName = uriName;\n }\n\n if (connectionKey) {\n params.connectionKey = connectionKey;\n }\n\n if (take) {\n params.take = take;\n }\n\n if (sorting) {\n params.sorting = sorting;\n }\n\n if (typeof accordion === 'string' && accordion.length > 0) {\n params.accordion = accordion;\n }\n\n if (typeof tag === 'string' && tag !== '0') {\n params.tag = tag;\n }\n if (typeof tag === 'number' && tag !== 0) {\n params.tag = tag;\n }\n if (Array.isArray(tag) && tag.length) {\n params.tag = tag;\n }\n\n if (typeof tagId === 'string' || typeof tagId === 'number') {\n params.tagId = tagId;\n }\n if (typeof tagTitle === 'string') {\n params.tagTitle = tagTitle;\n }\n\n if (typeof params.tag === 'string') {\n params.tag = params.tag.split(',');\n }\n\n return params;\n}\n","/**\n * Recursively find items\n * @param data Data to look in\n */\nfunction* processData(data: any[]): any {\n if (!data) {\n return;\n }\n\n // tslint:disable-next-line:no-increment-decrement\n for (let i = 0; i < data.length; i++) {\n const val = data[i];\n yield val;\n\n if (val.items) {\n yield* processData(val.items);\n }\n }\n}\n\n/**\n * Find a category by it's ID\n * @param id Id of category to find\n */\nconst findCategoryById = (id: string, categories: any) => {\n const it = processData(categories);\n let res = it.next();\n\n let found = null;\n\n while (!res.done) {\n if (res.value.id === id) {\n found = res.value;\n }\n\n res = it.next();\n }\n\n return found;\n};\n\nexport default findCategoryById;\n","const formatUrl = (url: string): string => {\n if (!url) {\n return '';\n }\n\n const replacements = [\n { from: /[äæǽ]+/gi, to: 'ae' },\n { from: /[öœ]+/gi, to: 'oe' },\n { from: /[ü]+/gi, to: 'ue' },\n { from: /[Ä]+/gi, to: 'Ae' },\n { from: /[Ü]+/gi, to: 'Ue' },\n { from: /[Ö]+/gi, to: 'Oe' },\n { from: /[ÀÁÂÃÄÅǺĀĂĄǍΑΆẢẠẦẪẨẬẰẮẴẲẶА]+/gi, to: 'A' },\n { from: /[àáâãåǻāăąǎªαάảạầấẫẩậằắẵẳặа]+/gi, to: 'a' },\n { from: /[Б]+/gi, to: 'B' },\n { from: /[б]+/gi, to: 'b' },\n { from: /[ÇĆĈĊČ]+/gi, to: 'C' },\n { from: /[çćĉċč]+/gi, to: 'c' },\n { from: /[Д]+/gi, to: 'D' },\n { from: /[д]+/gi, to: 'd' },\n { from: /[ÐĎĐΔ]+/gi, to: 'Dj' },\n { from: /[ðďđδ]+/gi, to: 'dj' },\n { from: /[ÈÉÊËĒĔĖĘĚΕΈẼẺẸỀẾỄỂỆЕЭ]+/gi, to: 'E' },\n { from: /[èéêëēĕėęěέεẽẻẹềếễểệеэ]+/gi, to: 'e' },\n { from: /[Ф]+/gi, to: 'F' },\n { from: /[ф]+/gi, to: 'f' },\n { from: /[ĜĞĠĢΓГҐ]+/gi, to: 'G' },\n { from: /[ĝğġģγгґ]+/gi, to: 'g' },\n { from: /[ĤĦ]+/gi, to: 'H' },\n { from: /[ĥħ]+/gi, to: 'h' },\n { from: /[ÌÍÎÏĨĪĬǏĮİΗΉΊΙΪỈỊИЫ]+/gi, to: 'I' },\n { from: /[ìíîïĩīĭǐįıηήίιϊỉịиыї]+/gi, to: 'i' },\n { from: /[Ĵ]+/gi, to: 'J' },\n { from: /[ĵ]+/gi, to: 'j' },\n { from: /[ĶΚК]+/gi, to: 'K' },\n { from: /[ķκк]+/gi, to: 'k' },\n { from: /[ĹĻĽĿŁΛЛ]+/gi, to: 'L' },\n { from: /[ĺļľŀłλл]+/gi, to: 'l' },\n { from: /[М]+/gi, to: 'M' },\n { from: /[м]+/gi, to: 'm' },\n { from: /[ÑŃŅŇΝН]+/gi, to: 'N' },\n { from: /[ñńņňʼnνн]+/gi, to: 'n' },\n { from: /[ÒÓÔÕŌŎǑŐƠØǾΟΌΩΏỎỌỒỐỖỔỘỜỚỠỞỢО]+/gi, to: 'O' },\n { from: /[òóôõōŏǒőơøǿºοόωώỏọồốỗổộờớỡởợо]+/gi, to: 'o' },\n { from: /[П]+/gi, to: 'P' },\n { from: /[п]+/gi, to: 'p' },\n { from: /[ŔŖŘΡР]+/gi, to: 'R' },\n { from: /[ŕŗřρр]+/gi, to: 'r' },\n { from: /[ŚŜŞȘŠΣС]+/gi, to: 'S' },\n { from: /[śŝşșšſσςс]+/gi, to: 's' },\n { from: /[ȚŢŤŦτТ]+/gi, to: 'T' },\n { from: /[țţťŧт]+/gi, to: 't' },\n { from: /[ÙÚÛŨŪŬŮŰŲƯǓǕǗǙǛŨỦỤỪỨỮỬỰУ]+/gi, to: 'U' },\n { from: /[ùúûũūŭůűųưǔǖǘǚǜυύϋủụừứữửựу]+/gi, to: 'u' },\n { from: /[ÝŸŶΥΎΫỲỸỶỴЙ]+/gi, to: 'Y' },\n { from: /[ýÿŷỳỹỷỵй]+/gi, to: 'y' },\n { from: /[В]+/gi, to: 'V' },\n { from: /[в]+/gi, to: 'v' },\n { from: /[Ŵ]+/gi, to: 'W' },\n { from: /[ŵ]+/gi, to: 'w' },\n { from: /[ŹŻŽΖЗ]+/gi, to: 'Z' },\n { from: /[źżžζз]+/gi, to: 'z' },\n { from: /[ÆǼ]+/gi, to: 'AE' },\n { from: /[ß]+/gi, to: 'ss' },\n { from: /[IJ]+/gi, to: 'IJ' },\n { from: /[ij]+/gi, to: 'ij' },\n { from: /[Œ]+/gi, to: 'OE' },\n { from: /[ƒ]+/gi, to: 'f' },\n { from: /[ξ]+/gi, to: 'ks' },\n { from: /[π]+/gi, to: 'p' },\n { from: /[β]+/gi, to: 'v' },\n { from: /[μ]+/gi, to: 'm' },\n { from: /[ψ]+/gi, to: 'ps' },\n { from: /[Ё]+/gi, to: 'Yo' },\n { from: /[ё]+/gi, to: 'yo' },\n { from: /[Є]+/gi, to: 'Ye' },\n { from: /[є]+/gi, to: 'ye' },\n { from: /[Ї]+/gi, to: 'Yi' },\n { from: /[Ж]+/gi, to: 'Zh' },\n { from: /[ж]+/gi, to: 'zh' },\n { from: /[Х]+/gi, to: 'Kh' },\n { from: /[х]+/gi, to: 'kh' },\n { from: /[Ц]+/gi, to: 'Ts' },\n { from: /[ц]+/gi, to: 'ts' },\n { from: /[Ч]+/gi, to: 'Ch' },\n { from: /[ч]+/gi, to: 'ch' },\n { from: /[Ш]+/gi, to: 'Sh' },\n { from: /[ш]+/gi, to: 'sh' },\n { from: /[Щ]+/gi, to: 'Shch' },\n { from: /[щ]+/gi, to: 'shch' },\n { from: /[ЪъЬь]+/gi, to: '' },\n { from: /[Ю]+/gi, to: 'Yu' },\n { from: /[ю]+/gi, to: 'yu' },\n { from: /[Я]+/gi, to: 'Ya' },\n { from: /[я]+/gi, to: 'ya' },\n ];\n\n const alphanumericExpression = /[^a-zA-Z0-9]+/g;\n const trailingDashExpression = /[-]$/;\n\n let parsed = url;\n\n for (const i in replacements) {\n if (replacements.hasOwnProperty(i) && replacements[i].from.test(url)) {\n parsed = parsed.replace(replacements[i].from, replacements[i].to);\n }\n }\n\n parsed = parsed.replace(alphanumericExpression, '-');\n parsed = parsed.replace(trailingDashExpression, '');\n parsed = parsed.toLowerCase();\n\n return parsed || 'humany';\n};\n\nexport default formatUrl;\n","import { Container } from '@webprovisions/platform';\nimport createParams from './create-params';\nimport { default as findCategoryById } from './find-category-by-id';\nimport formatUrl from './format-url';\n\ntype Item = { id: string; items?: Item[]; title: string; symbol?: any };\n\ntype ChildParentStructure = {\n [key: number]: string;\n};\n\nfunction childParentStructure(\n items: Item[],\n structure: ChildParentStructure = {},\n parent?: string\n) {\n items.forEach((item: Item) => {\n if (parent) {\n structure[+item.id] = parent;\n }\n if (item.items) {\n childParentStructure(item.items, structure, item.id);\n }\n });\n return structure;\n}\n\nexport function categoryTrail(\n id: string,\n items: Item[],\n ids: string[] = [id],\n structure: ChildParentStructure = childParentStructure(items)\n): string[] {\n const addAncestors = (id: string) => {\n const parentId = structure[+id];\n if (parentId) {\n ids.unshift(parentId);\n addAncestors(parentId);\n }\n };\n\n const parentId = structure[+id];\n if (parentId) {\n ids.unshift(parentId);\n addAncestors(parentId);\n }\n\n return ids;\n}\n\nexport const getCategoryTrailAsObjects = (\n trail: string[],\n categories: Item[]\n): Map<string, Item> => {\n if (typeof trail === 'undefined' || typeof categories === 'undefined') {\n return new Map();\n }\n\n return new Map(\n trail.map((categoryId: any): [string, any] => {\n const category = findCategoryById(categoryId, categories);\n\n return [categoryId, category];\n })\n );\n};\n\nexport const buildCategoryTrail = (\n routeName: string,\n categoryIds: string | string[],\n container: Container,\n dataType: 'guide-categories' | 'contact-method-categories' = 'guide-categories'\n): Promise<any[]> => {\n return container.getAsync('dataClient').then((dataClient) => {\n return dataClient\n .fetch(dataType, { expandCategories: 'descendants' })\n .then(({ categories }: any) => {\n const buildTrail = (id: string) => {\n const trail: string[] = categoryTrail(id, categories);\n const objectTrail = getCategoryTrailAsObjects(trail, categories);\n\n const result: any[] = [];\n\n trail.forEach((categoryId) => {\n const category = objectTrail.get(categoryId);\n if (category) {\n result.push({\n routeName,\n title: category.title,\n symbol: category.symbol,\n id: category.id,\n routeParams:\n dataType === 'contact-method-categories'\n ? createParams({\n contactCategory: category.id,\n uriName: formatUrl(category.title),\n })\n : createParams({\n guideCategory: category.id,\n uriName: formatUrl(category.title),\n }),\n });\n }\n });\n\n return result;\n };\n\n if (Array.isArray(categoryIds)) {\n return categoryIds.reduce<any>((acc, id) => {\n const result = buildTrail(id);\n\n if (result.length > 0) {\n acc.push(result);\n }\n\n return acc;\n }, []);\n }\n\n return buildTrail(categoryIds);\n });\n });\n};\n","const dataURItoBlob = (dataURI: string) => {\n let byteString;\n let mimestring;\n\n if (dataURI.split(',')[0].indexOf('base64') !== -1) {\n byteString = atob(dataURI.split(',')[1]);\n } else {\n byteString = decodeURI(dataURI.split(',')[1]);\n }\n\n mimestring = dataURI.split(',')[0].split(':')[1].split(';')[0];\n\n const content = [];\n for (let i = 0; i < byteString.length; i++) {\n // tslint:disable-line no-increment-decrement\n content[i] = byteString.charCodeAt(i);\n }\n\n return new Blob([new Uint8Array(content)], { type: mimestring });\n};\n\nexport default dataURItoBlob;\n","/**\n * Checks if process.env.NODE_ENV === 'production'\n * and passes arguments to console.warn().\n */\nexport function debugLog(...args: any[]) {\n return process.env.NODE_ENV !== 'production' && console && console.warn(...args);\n}\n\ntype Print = (message?: any, ...optionalParams: any[]) => void;\n\nconst print = (print: Print, msgOrObj?: any, ...args: any[]) => {\n if (typeof msgOrObj === 'string') {\n return print(`[humany] ${msgOrObj}`, ...args);\n }\n return print(msgOrObj, ...args);\n};\n\n/**\n * Simple internal log-handler\n */\nexport class Logger {\n private keys: string[] = [];\n\n private lookup(key: string, fn: () => void): void {\n if (this.keys.indexOf(key) === -1) {\n this.keys.push(key);\n fn();\n }\n }\n\n /**\n * Passes args to console.log\n */\n static log = (...args: any[]) => print(console.log, ...args);\n\n /**\n * Passes args to console.warn\n */\n static warn = (...args: any[]) => print(console.warn, ...args);\n\n /**\n * Passes args to console.error\n */\n static error = (...args: any[]) => print(console.error, ...args);\n\n /**\n * Passes args to console.info\n */\n static info = (...args: any[]) => print(console.info, ...args);\n\n /**\n * Checks if key already has been logged.\n * If not, passes following args to console.log\n * and stores key in logged messages.\n */\n public log = (key: string, ...args: any[]): void => this.lookup(key, () => Logger.log(...args));\n\n /**\n * Checks if key already has been logged.\n * If not, passes following args to console.warn\n * and stores key in logged messages.\n */\n public warn = (key: string, ...args: any[]): void =>\n this.lookup(key, () => Logger.warn(...args));\n\n /**\n * Checks if key already has been logged.\n * If not, passes following args to console.error\n * and stores key in logged messages.\n */\n public error = (key: string, ...args: any[]): void =>\n this.lookup(key, () => Logger.error(...args));\n\n /**\n * Checks if key already has been logged.\n * If not, passes following args to console.info\n * and stores key in logged messages.\n */\n public info = (key: string, ...args: any[]): void =>\n this.lookup(key, () => Logger.info(...args));\n}\n","// todo: consolidate with merge in component platform\nconst deepClone = <Type>(data: Type): Type => {\n let out: any = {};\n let value;\n let key;\n\n // If it's not an object return the original data\n if (typeof data !== 'object' || data === null) {\n return data;\n }\n\n // Create array if data is array, otherwise create an object\n out = Array.isArray(data) ? [] : {};\n\n for (key in data) {\n value = (data as { [key: string]: any })[key];\n\n // Copy nested objects and arrays recursively\n out[key] = typeof value === 'object' && value !== null ? deepClone(value) : value;\n }\n\n return out;\n};\n\nexport default deepClone;\n","import { hash } from '.';\n\n/**\n * Looks for stored widgets on the implementation in localStorage\n * and adds a trigger link to the DOM.\n *\n * TODO: A more robust version have been discussed, where the storageService is added to the\n * implementation instead of the widget.\n */\nexport default (implementation: any) => {\n if (!implementation) {\n return null;\n }\n\n const implementationStorage = localStorage.getItem(\n `humany_${hash(implementation.tenant + implementation.name)}`\n );\n\n if (implementationStorage) {\n const { activeStickyWidget } = JSON.parse(implementationStorage);\n if (activeStickyWidget && activeStickyWidget.value) {\n const widget = implementation.widgets.get(activeStickyWidget.value);\n if (widget) {\n const el = document.createElement('a');\n el.setAttribute(\n 'href',\n `//${implementation.bindings[0]}/${activeStickyWidget.value}`\n );\n document.body.appendChild(el);\n }\n }\n }\n};\n","export default (date: any, includeTime: boolean = false) => {\n const d = new Date(date);\n let month = `${d.getMonth() + 1}`;\n let day = `${d.getDate()}`;\n const year = d.getFullYear();\n\n if (month.length < 2) month = `0${month}`;\n if (day.length < 2) day = `0${day}`;\n\n if (includeTime) {\n let hours = `${d.getHours()}`;\n let minutes = `${d.getMinutes()}`;\n\n if (hours.length < 2) hours = `0${hours}`;\n if (minutes.length < 2) minutes = `0${minutes}`;\n\n return `${[year, month, day].join('-')} ${[hours, minutes].join(':')}`;\n }\n\n return [year, month, day].join('-');\n};\n","export default function getCookie(cookieName: string) {\n const documentCookie = document.cookie;\n if (documentCookie.length > 0) {\n let start = documentCookie.indexOf(`${cookieName}=`);\n if (start !== -1) {\n start = start + cookieName.length + 1;\n let end = documentCookie.indexOf(';', start);\n if (end === -1) {\n end = documentCookie.length;\n }\n return unescape(documentCookie.substring(start, end));\n }\n }\n return null;\n}\n","export default function (s: string): string {\n let hash = 0;\n if (s.length === 0) {\n return hash.toString();\n }\n // tslint:disable-next-line:no-increment-decrement\n for (let i = 0; i < s.length; i++) {\n const char = s.charCodeAt(i);\n hash = (hash << 5) - hash + char;\n hash = hash & hash;\n }\n return hash.toString();\n}\n","/**\n * Checks whether or not the passed child is a descendant\n * of the passed parent.\n * Will return true if falsey parent or child.\n */\nexport default (parent: HTMLElement | Window, child: Element | null): boolean => {\n if (!parent || !child) {\n return true;\n }\n\n let node = child.parentNode;\n let hasChild = false;\n while (node !== null) {\n if (node === parent) {\n hasChild = true;\n }\n node = node.parentNode;\n }\n\n return hasChild;\n};\n","export default function kebabCase(string: string) {\n return string\n .replace(/([a-z])([A-Z])/g, '$1-$2')\n .replace(/\\s+/g, '-')\n .toLowerCase();\n}\n","import { Logger } from './debug';\n\ntype Task = () => Promise<any> | any;\n\nclass Queue {\n tasks: {\n task: Task;\n resolve: (data?: any) => any;\n reject: (data?: any) => any;\n done: () => void;\n }[] = [];\n current: Promise<any> = Promise.resolve();\n\n constructor(private lockWarningTime: number, private lockErrorTime: number) {\n this.next = this.next.bind(this);\n }\n\n add(\n task: Task,\n resolve: (data?: any) => any,\n reject: (data?: any) => any,\n done: () => void\n ): void {\n this.tasks.push({ task, resolve, reject, done });\n this.next();\n }\n\n next(): void {\n this.current = this.current.then(() => {\n const next = this.tasks.shift();\n if (next) {\n let errorTimeout: any; // NodeJS.Timeout\n const warningTimeout = setTimeout(() => {\n if (process.env.NODE_ENV !== 'production') {\n // tslint:disable-next-line max-line-length\n Logger.warn(\n `A lock has exceeded ${this.lockWarningTime} ms. Waiting additional ${this.lockErrorTime} ms before rejecting the task.`,\n next\n );\n }\n errorTimeout = setTimeout(() => {\n next.reject('lock timeout exceeded');\n }, this.lockErrorTime);\n }, this.lockWarningTime);\n const taskPromise = Promise.resolve(next.task()).then((result) => {\n clearTimeout(warningTimeout);\n clearTimeout(errorTimeout);\n return result;\n });\n return Promise.resolve(taskPromise)\n .then(this.next)\n .then(() =>\n taskPromise.then((data) => {\n next.done();\n next.resolve(data);\n })\n )\n .catch((reason) => {\n next.done();\n next.reject(reason);\n return this.next();\n });\n }\n return Promise.resolve();\n });\n }\n}\n\nexport type AddTask = (task: Task) => Promise<any>;\n\nconst locks = new WeakMap();\n\n/**\n * Creates a lock for the specified owner that allows only one executing\n * task simultaneously.\n * @param key Lock owner.\n */\nexport default function lock(key: object, lockWarningTime = 5000, lockErrorTime = 1000): AddTask {\n if (!locks.has(key)) {\n locks.set(key, new Queue(lockWarningTime, lockErrorTime));\n }\n return (task: Task): Promise<any> => {\n return new Promise((resolve, reject) => {\n const queue: Queue = locks.get(key);\n queue.add(task, resolve, reject, () => {\n if (!queue.tasks.length) {\n locks.delete(key);\n }\n });\n });\n };\n}\n","import deepClone from './deep-clone';\n\nconst isObject = (item: any): boolean => {\n return !!item && typeof item === 'object' && !Array.isArray(item);\n};\n\n/**\n * @param target Target to merge into\n * @param sources Source to merge into target\n * @returns Clone (new reference) with merged sources\n */\nconst mergeDeep = <Target, Source>(target: Target, ...sources: Source[]): Target & Source => {\n const clonedTarget = deepClone(target);\n const clonedSources = deepClone(sources);\n return mergeDeepRecursive(clonedTarget, ...clonedSources);\n};\n\nconst mergeDeepRecursive = (target: any, ...sources: any[]): any => {\n if (!sources.length) return target;\n const source = sources.shift();\n\n if (isObject(target) && isObject(source)) {\n for (const key in source) {\n if (isObject(source[key])) {\n if (!target[key]) Object.assign(target, { [key]: {} });\n mergeDeepRecursive(target[key], source[key]);\n } else {\n Object.assign(target, { [key]: source[key] });\n }\n }\n }\n return mergeDeepRecursive(target, ...sources);\n};\n\nexport default mergeDeep;\n","import { Container, Widget } from '@webprovisions/platform';\n\n/**\n * Dispatch widget:data-loaded event when all components\n * is considered to be finished loading their initial data\n */\nconst watchForLoadingComplete = (container: Container, widgetDOMElement: HTMLElement) => {\n const isLoading = () => widgetDOMElement.querySelectorAll('[data-loading=true]').length > 0;\n\n const complete = () => {\n let dispatched = false;\n\n return () => {\n if (dispatched) {\n return;\n }\n const widget: Widget = container.get('$widget');\n\n widget.events.dispatch('widget:data-loaded', {\n element: widgetDOMElement,\n });\n dispatched = true;\n };\n };\n\n const handleComplete = complete();\n\n if (!isLoading()) {\n return handleComplete();\n }\n\n const observer = new MutationObserver((mutations, observer) => {\n const check = mutations.find(\n (mutation) =>\n mutation.type === 'attributes' && mutation.attributeName === 'data-loading'\n );\n\n if (check && !isLoading()) {\n observer.disconnect();\n handleComplete();\n }\n });\n\n observer.observe(widgetDOMElement, {\n attributes: true,\n childList: true,\n subtree: true,\n });\n};\n\n/**\n * Wait for all visible components to render\n */\nconst notifyDataLoaded = (viewOutletContainer: Container, widgetDOMElement: HTMLElement) => {\n const widget: Widget = viewOutletContainer.get('$widget');\n\n widget.container.getAsync('components').then((components: any) => {\n components.events.subscribeOnce('components:component-model-initialized', () => {\n // Store the names of all visible components we should wait for\n let waitingFor: string[] = components.nodes.visible.reduce(\n (acc: string[], node: any) => {\n if (\n !node.name ||\n !node.type ||\n node.type === 'view' ||\n node.type === 'root' ||\n node.attributes.layout.size === 'none' ||\n widgetDOMElement.querySelector(`[data-name=\"${node.name}\"]`)\n ) {\n return acc;\n }\n\n acc.push(node.name);\n return acc;\n },\n []\n );\n\n let complete = false;\n const observer = new MutationObserver((mutations, observer) => {\n mutations.forEach((mutation) => {\n if (mutation.addedNodes) {\n const componentElements = Array.from(\n mutation.addedNodes as NodeListOf<HTMLElement>\n ).reduce<string[]>((acc, element) => {\n const dataName =\n element.getAttribute && element.getAttribute('data-name');\n\n if (dataName && waitingFor.indexOf(dataName) > -1) {\n acc.push(dataName);\n }\n return acc;\n }, []);\n\n // Remove added elements from the list of elements we are waiting for\n waitingFor = waitingFor.filter((name: string) => {\n return componentElements.indexOf(name) === -1;\n });\n\n // When the list is empty, we are finished waiting for components to render\n if (!complete && waitingFor.length === 0) {\n complete = true;\n // Creates a new observer that observes data-loading changes\n watchForLoadingComplete(viewOutletContainer, widgetDOMElement);\n observer.disconnect();\n }\n }\n });\n });\n\n observer.observe(widgetDOMElement, {\n attributes: false,\n characterData: false,\n childList: true,\n subtree: true,\n attributeOldValue: false,\n characterDataOldValue: false,\n });\n });\n });\n};\n\nexport default notifyDataLoaded;\n","const removeNullAndUndefinedValues = (object: { [key: string]: any } = {}) => {\n Object.keys(object).forEach((key) => {\n if (object[key] === null || typeof object[key] === 'undefined') {\n delete object[key];\n }\n });\n return object;\n};\n\nexport default removeNullAndUndefinedValues;\n","export default function setCookie(cookieName: string, value: any, days: number) {\n let expires = '';\n if (days) {\n const date = new Date();\n date.setTime(date.getTime() + days * 24 * 60 * 60 * 1000);\n expires = `; expires=${date.toUTCString()}`;\n }\n document.cookie = `${cookieName}=${value}${expires}; path=/`;\n}\n","export default (a: { [key: string]: any }, b: { [key: string]: any }): boolean => {\n let equal = true;\n\n if (Object.keys(a).length !== Object.keys(b).length) {\n return false;\n }\n const missingKey = Object.keys(a).some((key) => {\n const found = Object.keys(b).some((bKey) => {\n return key === bKey;\n });\n\n return !found;\n });\n\n if (missingKey) {\n return false;\n }\n\n Object.keys(a).forEach((key) => {\n if (equal) {\n const c = typeof a[key] === 'undefined' ? '' : a[key];\n const d = typeof b[key] === 'undefined' ? '' : b[key];\n equal = c.toString() === d.toString();\n }\n });\n\n return equal;\n};\n","const s4 = () => {\n return Math.floor((1 + Math.random()) * 0x10000)\n .toString(16)\n .substring(1);\n};\n\nexport default function uuid() {\n // tslint:disable-next-line prefer-template\n return s4() + s4() + '-' + s4() + '-' + s4() + '-' + s4() + '-' + s4() + s4() + s4();\n}\n","type Action = (...args: any[]) => Function | false;\n\nexport type WaitForOptions = {\n callCount?: number;\n};\n\nexport default class WaitFor {\n private queue: Action[] = [];\n private queueAttempt: any;\n private queueAttemptCalls: number = 0;\n private callCount = 5;\n\n constructor(options?: WaitForOptions) {\n if (options && options.callCount) {\n this.callCount = options.callCount;\n }\n }\n\n /**\n * Add action to the queue\n */\n add = (action: Action) => {\n this.queue.push(action);\n\n this.queueAttempt = setInterval(this.processQueue, 1000);\n };\n\n /**\n * Go through queue and attempt to call each action\n */\n processQueue = () => {\n if (this.queue.length > 0) {\n const indexOfActionsEmitted: number[] = [];\n this.queue.forEach((queuedAction, index) => {\n const evaluate = queuedAction();\n\n if (typeof evaluate === 'function') {\n evaluate();\n indexOfActionsEmitted.push(index);\n }\n });\n\n // clean up queue\n this.queue = this.queue.filter((_, index) => {\n if (indexOfActionsEmitted.indexOf(index) > -1) {\n return false;\n }\n return true;\n });\n\n if (this.queueAttempt) {\n clearInterval(this.queueAttempt);\n }\n }\n\n if (this.queueAttemptCalls > this.callCount) {\n clearInterval(this.queueAttempt);\n this.queueAttemptCalls = 0;\n }\n\n this.queueAttemptCalls = this.queueAttemptCalls + 1;\n };\n}\n"],"names":["uniqueClassArray","classNames","classArray","c","append","className1","className2","handleFunctionArgument","expression","classes","className","appendClassNames","args","argument","Logger","createBatch","delay","createFallback","timeout","queue","fn","resolve","reject","acc","createBatch$1","camilize","obj","camilizedObject","prop","p","camilizedProp","i","createParams","_a","phrase","category","guideCategory","contactCategory","take","connectionKey","accordion","id","uriName","sorting","tag","tagId","tagTitle","other","__objRest","params","k","processData","data","val","findCategoryById","categories","it","res","found","findCategoryById$1","formatUrl","url","replacements","alphanumericExpression","trailingDashExpression","parsed","formatUrl$1","childParentStructure","items","structure","parent","item","categoryTrail","ids","addAncestors","parentId","getCategoryTrailAsObjects","trail","categoryId","buildCategoryTrail","routeName","categoryIds","container","dataType","dataClient","buildTrail","objectTrail","result","dataURItoBlob","dataURI","byteString","mimestring","content","dataURItoBlob$1","debugLog","print","msgOrObj","_Logger","key","deepClone","out","value","deepClone$1","findAndActivateStoredWidgets","implementation","implementationStorage","hash","activeStickyWidget","el","formatDate","date","includeTime","d","month","day","year","hours","minutes","getCookie","cookieName","documentCookie","start","end","s","char","htmlParentContains","child","node","hasChild","kebabCase","string","Queue","lockWarningTime","lockErrorTime","task","done","next","errorTimeout","warningTimeout","taskPromise","reason","locks","lock","isObject","mergeDeep","target","sources","clonedTarget","clonedSources","mergeDeepRecursive","source","mergeDeep$1","watchForLoadingComplete","widgetDOMElement","isLoading","handleComplete","dispatched","mutations","observer","mutation","notifyDataLoaded","viewOutletContainer","components","waitingFor","complete","componentElements","element","dataName","name","notifyDataLoaded$1","removeNullAndUndefinedValues","object","removeNullAndUndefinedValues$1","setCookie","days","expires","shallowCompare","a","b","equal","bKey","s4","uuid","WaitFor","options","action","indexOfActionsEmitted","queuedAction","index","evaluate","_"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../src/append-class-names.ts","../src/batch.ts","../src/camilize.ts","../src/create-params.ts","../src/find-category-by-id.ts","../src/format-url.ts","../src/category-trail.ts","../src/data-uri-to-blob.ts","../src/debug.ts","../src/deep-clone.ts","../src/find-and-activate-stored-widgets.ts","../src/format-date.ts","../src/get-cookie.ts","../src/hash.ts","../src/html-parent-contains.ts","../src/kebab-case.ts","../src/lock.ts","../src/merge-deep.ts","../src/notify-data-loaded.ts","../src/remove-null-and-undefined-values.ts","../src/set-cookie.ts","../src/shallow-compare.ts","../src/uuid.ts","../src/wait-for.ts"],"sourcesContent":["import { Logger } from '.';\n\ntype ArgumentHandler = string | [boolean, string | string[]] | undefined;\n\nexport function uniqueClassArray(classNames: string[]) {\n const classArray: string[] = [];\n classNames.forEach((c) => {\n if (classArray.indexOf(c) === -1) {\n classArray.push(c);\n }\n });\n return classArray;\n}\n\nexport function append(className1 = '', className2 = '') {\n const classNames = className1.split(' ').concat(className2.split(' '));\n return uniqueClassArray(classNames).join(' ').trim();\n}\n\nexport function handleFunctionArgument(expression: boolean, classes: string | string[]) {\n if (Boolean(expression)) {\n if (typeof classes === 'string') {\n return classes;\n }\n if (Array.isArray(classes)) {\n let className = '';\n classes.forEach((c) => (className = append(className, c)));\n return className;\n }\n }\n}\n\nexport default function appendClassNames(...args: ArgumentHandler[]): string {\n let className: string = '';\n if (args.length) {\n args.forEach((argument: ArgumentHandler) => {\n if (typeof argument === 'string') {\n className = append(className, argument as string);\n } else if (Array.isArray(argument)) {\n className = append(className, handleFunctionArgument(...argument));\n } else if (typeof argument !== 'undefined' && argument !== null) {\n if (process.env.NODE_ENV !== 'production') {\n Logger.warn(\n 'appendClassNames: arguments either have' +\n 'to be a string or [boolean, ...string[]]. Passed args:',\n ...args\n );\n }\n }\n });\n }\n return className;\n}\n","export type BatchFunction<T> = (acc: T) => T;\nexport type Batch<T> = (fn: BatchFunction<T>) => Promise<T>;\n\nconst createBatch = <T>(delay: number, createFallback: () => T): Batch<T> => {\n let timeout: ReturnType<typeof setTimeout>;\n let queue: [BatchFunction<T>, (value: T | PromiseLike<T>) => void, (reason?: any) => void][] =\n [];\n\n return (fn: BatchFunction<T>): Promise<T> => {\n clearTimeout(timeout);\n return new Promise<T>((resolve, reject) => {\n queue.push([fn, resolve, reject]);\n timeout = setTimeout(() => {\n let acc = createFallback();\n queue.forEach(([fn, resolve, reject]) => {\n acc = fn(acc);\n });\n queue = [];\n resolve(acc);\n }, delay);\n });\n };\n};\n\nexport default createBatch;\n","export default function camilize(obj: any): any {\n const camilizedObject: any = {};\n if (typeof obj === 'number' || typeof obj === 'string') {\n return obj;\n }\n for (const prop in obj) {\n if (obj.hasOwnProperty(prop)) {\n const p = obj[prop];\n const camilizedProp = prop.substring(0, 1).toLowerCase() + prop.substring(1);\n if (Object.prototype.toString.call(p) === '[object Array]') {\n camilizedObject[camilizedProp] = [];\n for (let i = 0, c = p.length; i < c; i++) {\n // tslint:disable-line no-increment-decrement\n camilizedObject[camilizedProp].push(camilize(p[i]));\n }\n } else if (p !== null && typeof p === 'object') {\n camilizedObject[camilizedProp] = camilize(p);\n } else {\n camilizedObject[camilizedProp] = p;\n }\n }\n }\n return camilizedObject;\n}\n","export type Input = {\n phrase?: string;\n category?: ParamValue;\n guideCategory?: ParamValue;\n contactCategory?: ParamValue;\n take?: number;\n connectionKey?: string;\n id?: string;\n uriName?: string;\n sorting?: string;\n tag?: string | string[];\n tagId?: string | number;\n tagTitle?: string;\n} & { [key: string]: ParamValue };\n\nexport type ParamValue = string | number | any;\n\nexport type Params = { [key: string]: ParamValue };\n\nexport default function createParams(args: Input = {}): Params {\n const {\n phrase = '',\n category,\n guideCategory,\n contactCategory,\n take,\n connectionKey,\n accordion,\n id,\n uriName,\n sorting,\n tag,\n tagId,\n tagTitle,\n ...other\n } = args;\n const params: Params = {};\n\n Object.keys(other).forEach((k) => {\n if (typeof args[k] === 'string') {\n params[k] = args[k];\n }\n });\n\n if (typeof phrase === 'string' && phrase.length) {\n params.phrase = phrase;\n }\n\n if (phrase === null) {\n params.phrase = phrase;\n }\n\n if (typeof guideCategory === 'string' && guideCategory !== '0') {\n params.guideCategory = guideCategory;\n }\n if (typeof guideCategory === 'number' && guideCategory !== 0) {\n params.guideCategory = guideCategory;\n }\n if (typeof guideCategory === 'object' && guideCategory !== null) {\n if (typeof guideCategory.id === 'string' && guideCategory.id !== '0') {\n params.guideCategory = guideCategory.id;\n }\n if (typeof guideCategory.id === 'number' && guideCategory.id !== 0) {\n params.guideCategory = guideCategory.id;\n }\n }\n\n if (typeof contactCategory === 'string' && contactCategory !== '0') {\n params.contactCategory = contactCategory;\n }\n if (typeof contactCategory === 'number' && contactCategory !== 0) {\n params.contactCategory = contactCategory;\n }\n if (typeof contactCategory === 'object' && contactCategory !== null) {\n if (typeof contactCategory.id === 'string' && contactCategory.id !== '0') {\n params.contactCategory = contactCategory.id;\n }\n if (typeof contactCategory.id === 'number' && contactCategory.id !== 0) {\n params.contactCategory = contactCategory.id;\n }\n }\n\n if (typeof category === 'string' && category !== '0') {\n params.category = category;\n }\n if (typeof category === 'number' && category !== 0) {\n params.category = category;\n }\n if (typeof category === 'object' && category !== null) {\n if (typeof category.id === 'string' && category.id !== '0') {\n params.category = category.id;\n }\n if (typeof category.id === 'number' && category.id !== 0) {\n params.category = category.id;\n }\n }\n\n if (id) {\n params.id = id;\n }\n\n if (\n uriName &&\n (!!+params.category ||\n !!+params.guideCategory ||\n !!+params.guide ||\n !!+params.contactCategory ||\n !!+params.contactMethod)\n ) {\n params.uriName = uriName;\n }\n\n if (connectionKey) {\n params.connectionKey = connectionKey;\n }\n\n if (take) {\n params.take = take;\n }\n\n if (sorting) {\n params.sorting = sorting;\n }\n\n if (typeof accordion === 'string' && accordion.length > 0) {\n params.accordion = accordion;\n }\n\n if (typeof tag === 'string' && tag !== '0') {\n params.tag = tag;\n }\n if (typeof tag === 'number' && tag !== 0) {\n params.tag = tag;\n }\n if (Array.isArray(tag) && tag.length) {\n params.tag = tag;\n }\n\n if (typeof tagId === 'string' || typeof tagId === 'number') {\n params.tagId = tagId;\n }\n if (typeof tagTitle === 'string') {\n params.tagTitle = tagTitle;\n }\n\n if (typeof params.tag === 'string') {\n params.tag = params.tag.split(',');\n }\n\n return params;\n}\n","/**\n * Recursively find items\n * @param data Data to look in\n */\nfunction* processData(data: any[]): any {\n if (!data) {\n return;\n }\n\n // tslint:disable-next-line:no-increment-decrement\n for (let i = 0; i < data.length; i++) {\n const val = data[i];\n yield val;\n\n if (val.items) {\n yield* processData(val.items);\n }\n }\n}\n\n/**\n * Find a category by it's ID\n * @param id Id of category to find\n */\nconst findCategoryById = (id: string, categories: any) => {\n const it = processData(categories);\n let res = it.next();\n\n let found = null;\n\n while (!res.done) {\n if (res.value.id === id) {\n found = res.value;\n }\n\n res = it.next();\n }\n\n return found;\n};\n\nexport default findCategoryById;\n","const formatUrl = (url: string): string => {\n if (!url) {\n return '';\n }\n\n const replacements = [\n { from: /[äæǽ]+/gi, to: 'ae' },\n { from: /[öœ]+/gi, to: 'oe' },\n { from: /[ü]+/gi, to: 'ue' },\n { from: /[Ä]+/gi, to: 'Ae' },\n { from: /[Ü]+/gi, to: 'Ue' },\n { from: /[Ö]+/gi, to: 'Oe' },\n { from: /[ÀÁÂÃÄÅǺĀĂĄǍΑΆẢẠẦẪẨẬẰẮẴẲẶА]+/gi, to: 'A' },\n { from: /[àáâãåǻāăąǎªαάảạầấẫẩậằắẵẳặа]+/gi, to: 'a' },\n { from: /[Б]+/gi, to: 'B' },\n { from: /[б]+/gi, to: 'b' },\n { from: /[ÇĆĈĊČ]+/gi, to: 'C' },\n { from: /[çćĉċč]+/gi, to: 'c' },\n { from: /[Д]+/gi, to: 'D' },\n { from: /[д]+/gi, to: 'd' },\n { from: /[ÐĎĐΔ]+/gi, to: 'Dj' },\n { from: /[ðďđδ]+/gi, to: 'dj' },\n { from: /[ÈÉÊËĒĔĖĘĚΕΈẼẺẸỀẾỄỂỆЕЭ]+/gi, to: 'E' },\n { from: /[èéêëēĕėęěέεẽẻẹềếễểệеэ]+/gi, to: 'e' },\n { from: /[Ф]+/gi, to: 'F' },\n { from: /[ф]+/gi, to: 'f' },\n { from: /[ĜĞĠĢΓГҐ]+/gi, to: 'G' },\n { from: /[ĝğġģγгґ]+/gi, to: 'g' },\n { from: /[ĤĦ]+/gi, to: 'H' },\n { from: /[ĥħ]+/gi, to: 'h' },\n { from: /[ÌÍÎÏĨĪĬǏĮİΗΉΊΙΪỈỊИЫ]+/gi, to: 'I' },\n { from: /[ìíîïĩīĭǐįıηήίιϊỉịиыї]+/gi, to: 'i' },\n { from: /[Ĵ]+/gi, to: 'J' },\n { from: /[ĵ]+/gi, to: 'j' },\n { from: /[ĶΚК]+/gi, to: 'K' },\n { from: /[ķκк]+/gi, to: 'k' },\n { from: /[ĹĻĽĿŁΛЛ]+/gi, to: 'L' },\n { from: /[ĺļľŀłλл]+/gi, to: 'l' },\n { from: /[М]+/gi, to: 'M' },\n { from: /[м]+/gi, to: 'm' },\n { from: /[ÑŃŅŇΝН]+/gi, to: 'N' },\n { from: /[ñńņňʼnνн]+/gi, to: 'n' },\n { from: /[ÒÓÔÕŌŎǑŐƠØǾΟΌΩΏỎỌỒỐỖỔỘỜỚỠỞỢО]+/gi, to: 'O' },\n { from: /[òóôõōŏǒőơøǿºοόωώỏọồốỗổộờớỡởợо]+/gi, to: 'o' },\n { from: /[П]+/gi, to: 'P' },\n { from: /[п]+/gi, to: 'p' },\n { from: /[ŔŖŘΡР]+/gi, to: 'R' },\n { from: /[ŕŗřρр]+/gi, to: 'r' },\n { from: /[ŚŜŞȘŠΣС]+/gi, to: 'S' },\n { from: /[śŝşșšſσςс]+/gi, to: 's' },\n { from: /[ȚŢŤŦτТ]+/gi, to: 'T' },\n { from: /[țţťŧт]+/gi, to: 't' },\n { from: /[ÙÚÛŨŪŬŮŰŲƯǓǕǗǙǛŨỦỤỪỨỮỬỰУ]+/gi, to: 'U' },\n { from: /[ùúûũūŭůűųưǔǖǘǚǜυύϋủụừứữửựу]+/gi, to: 'u' },\n { from: /[ÝŸŶΥΎΫỲỸỶỴЙ]+/gi, to: 'Y' },\n { from: /[ýÿŷỳỹỷỵй]+/gi, to: 'y' },\n { from: /[В]+/gi, to: 'V' },\n { from: /[в]+/gi, to: 'v' },\n { from: /[Ŵ]+/gi, to: 'W' },\n { from: /[ŵ]+/gi, to: 'w' },\n { from: /[ŹŻŽΖЗ]+/gi, to: 'Z' },\n { from: /[źżžζз]+/gi, to: 'z' },\n { from: /[ÆǼ]+/gi, to: 'AE' },\n { from: /[ß]+/gi, to: 'ss' },\n { from: /[IJ]+/gi, to: 'IJ' },\n { from: /[ij]+/gi, to: 'ij' },\n { from: /[Œ]+/gi, to: 'OE' },\n { from: /[ƒ]+/gi, to: 'f' },\n { from: /[ξ]+/gi, to: 'ks' },\n { from: /[π]+/gi, to: 'p' },\n { from: /[β]+/gi, to: 'v' },\n { from: /[μ]+/gi, to: 'm' },\n { from: /[ψ]+/gi, to: 'ps' },\n { from: /[Ё]+/gi, to: 'Yo' },\n { from: /[ё]+/gi, to: 'yo' },\n { from: /[Є]+/gi, to: 'Ye' },\n { from: /[є]+/gi, to: 'ye' },\n { from: /[Ї]+/gi, to: 'Yi' },\n { from: /[Ж]+/gi, to: 'Zh' },\n { from: /[ж]+/gi, to: 'zh' },\n { from: /[Х]+/gi, to: 'Kh' },\n { from: /[х]+/gi, to: 'kh' },\n { from: /[Ц]+/gi, to: 'Ts' },\n { from: /[ц]+/gi, to: 'ts' },\n { from: /[Ч]+/gi, to: 'Ch' },\n { from: /[ч]+/gi, to: 'ch' },\n { from: /[Ш]+/gi, to: 'Sh' },\n { from: /[ш]+/gi, to: 'sh' },\n { from: /[Щ]+/gi, to: 'Shch' },\n { from: /[щ]+/gi, to: 'shch' },\n { from: /[ЪъЬь]+/gi, to: '' },\n { from: /[Ю]+/gi, to: 'Yu' },\n { from: /[ю]+/gi, to: 'yu' },\n { from: /[Я]+/gi, to: 'Ya' },\n { from: /[я]+/gi, to: 'ya' },\n ];\n\n const alphanumericExpression = /[^a-zA-Z0-9]+/g;\n const trailingDashExpression = /[-]$/;\n\n let parsed = url;\n\n for (const i in replacements) {\n if (replacements.hasOwnProperty(i) && replacements[i].from.test(url)) {\n parsed = parsed.replace(replacements[i].from, replacements[i].to);\n }\n }\n\n parsed = parsed.replace(alphanumericExpression, '-');\n parsed = parsed.replace(trailingDashExpression, '');\n parsed = parsed.toLowerCase();\n\n return parsed || 'humany';\n};\n\nexport default formatUrl;\n","import { Container } from '@webprovisions/platform';\nimport createParams from './create-params';\nimport { default as findCategoryById } from './find-category-by-id';\nimport formatUrl from './format-url';\n\ntype Item = { id: string; items?: Item[]; title: string; symbol?: any };\n\ntype ChildParentStructure = {\n [key: number]: string;\n};\n\nfunction childParentStructure(\n items: Item[],\n structure: ChildParentStructure = {},\n parent?: string\n) {\n items.forEach((item: Item) => {\n if (parent) {\n structure[+item.id] = parent;\n }\n if (item.items) {\n childParentStructure(item.items, structure, item.id);\n }\n });\n return structure;\n}\n\nexport function categoryTrail(\n id: string,\n items: Item[],\n ids: string[] = [id],\n structure: ChildParentStructure = childParentStructure(items)\n): string[] {\n const addAncestors = (id: string) => {\n const parentId = structure[+id];\n if (parentId) {\n ids.unshift(parentId);\n addAncestors(parentId);\n }\n };\n\n const parentId = structure[+id];\n if (parentId) {\n ids.unshift(parentId);\n addAncestors(parentId);\n }\n\n return ids;\n}\n\nexport const getCategoryTrailAsObjects = (\n trail: string[],\n categories: Item[]\n): Map<string, Item> => {\n if (typeof trail === 'undefined' || typeof categories === 'undefined') {\n return new Map();\n }\n\n return new Map(\n trail.map((categoryId: any): [string, any] => {\n const category = findCategoryById(categoryId, categories);\n\n return [categoryId, category];\n })\n );\n};\n\nexport const buildCategoryTrail = (\n routeName: string,\n categoryIds: string | string[],\n container: Container,\n dataType: 'guide-categories' | 'contact-method-categories' = 'guide-categories'\n): Promise<any[]> => {\n return container.getAsync('dataClient').then((dataClient) => {\n return dataClient\n .fetch(dataType, { expandCategories: 'descendants' })\n .then(({ categories }: any) => {\n const buildTrail = (id: string) => {\n const trail: string[] = categoryTrail(id, categories);\n const objectTrail = getCategoryTrailAsObjects(trail, categories);\n\n const result: any[] = [];\n\n trail.forEach((categoryId) => {\n const category = objectTrail.get(categoryId);\n if (category) {\n result.push({\n routeName,\n title: category.title,\n symbol: category.symbol,\n id: category.id,\n routeParams:\n dataType === 'contact-method-categories'\n ? createParams({\n contactCategory: category.id,\n uriName: formatUrl(category.title),\n })\n : createParams({\n guideCategory: category.id,\n uriName: formatUrl(category.title),\n }),\n });\n }\n });\n\n return result;\n };\n\n if (Array.isArray(categoryIds)) {\n return categoryIds.reduce<any>((acc, id) => {\n const result = buildTrail(id);\n\n if (result.length > 0) {\n acc.push(result);\n }\n\n return acc;\n }, []);\n }\n\n return buildTrail(categoryIds);\n });\n });\n};\n","const dataURItoBlob = (dataURI: string) => {\n let byteString;\n let mimestring;\n\n if (dataURI.split(',')[0].indexOf('base64') !== -1) {\n byteString = atob(dataURI.split(',')[1]);\n } else {\n byteString = decodeURI(dataURI.split(',')[1]);\n }\n\n mimestring = dataURI.split(',')[0].split(':')[1].split(';')[0];\n\n const content = [];\n for (let i = 0; i < byteString.length; i++) {\n // tslint:disable-line no-increment-decrement\n content[i] = byteString.charCodeAt(i);\n }\n\n return new Blob([new Uint8Array(content)], { type: mimestring });\n};\n\nexport default dataURItoBlob;\n","/**\n * Checks if process.env.NODE_ENV === 'production'\n * and passes arguments to console.warn().\n */\nexport function debugLog(...args: any[]) {\n return process.env.NODE_ENV !== 'production' && console && console.warn(...args);\n}\n\ntype Print = (message?: any, ...optionalParams: any[]) => void;\n\nconst print = (print: Print, msgOrObj?: any, ...args: any[]) => {\n if (typeof msgOrObj === 'string') {\n return print(`[humany] ${msgOrObj}`, ...args);\n }\n return print(msgOrObj, ...args);\n};\n\n/**\n * Simple internal log-handler\n */\nexport class Logger {\n private keys: string[] = [];\n\n private lookup(key: string, fn: () => void): void {\n if (this.keys.indexOf(key) === -1) {\n this.keys.push(key);\n fn();\n }\n }\n\n /**\n * Passes args to console.log\n */\n static log = (...args: any[]) => print(console.log, ...args);\n\n /**\n * Passes args to console.warn\n */\n static warn = (...args: any[]) => print(console.warn, ...args);\n\n /**\n * Passes args to console.error\n */\n static error = (...args: any[]) => print(console.error, ...args);\n\n /**\n * Passes args to console.info\n */\n static info = (...args: any[]) => print(console.info, ...args);\n\n /**\n * Checks if key already has been logged.\n * If not, passes following args to console.log\n * and stores key in logged messages.\n */\n public log = (key: string, ...args: any[]): void => this.lookup(key, () => Logger.log(...args));\n\n /**\n * Checks if key already has been logged.\n * If not, passes following args to console.warn\n * and stores key in logged messages.\n */\n public warn = (key: string, ...args: any[]): void =>\n this.lookup(key, () => Logger.warn(...args));\n\n /**\n * Checks if key already has been logged.\n * If not, passes following args to console.error\n * and stores key in logged messages.\n */\n public error = (key: string, ...args: any[]): void =>\n this.lookup(key, () => Logger.error(...args));\n\n /**\n * Checks if key already has been logged.\n * If not, passes following args to console.info\n * and stores key in logged messages.\n */\n public info = (key: string, ...args: any[]): void =>\n this.lookup(key, () => Logger.info(...args));\n}\n","// todo: consolidate with merge in component platform\nconst deepClone = <Type>(data: Type): Type => {\n let out: any = {};\n let value;\n let key;\n\n // If it's not an object return the original data\n if (typeof data !== 'object' || data === null) {\n return data;\n }\n\n // Create array if data is array, otherwise create an object\n out = Array.isArray(data) ? [] : {};\n\n for (key in data) {\n value = (data as { [key: string]: any })[key];\n\n // Copy nested objects and arrays recursively\n out[key] = typeof value === 'object' && value !== null ? deepClone(value) : value;\n }\n\n return out;\n};\n\nexport default deepClone;\n","import { hash } from '.';\n\n/**\n * Looks for stored widgets on the implementation in localStorage\n * and adds a trigger link to the DOM.\n *\n * TODO: A more robust version have been discussed, where the storageService is added to the\n * implementation instead of the widget.\n */\nexport default (implementation: any) => {\n if (!implementation) {\n return null;\n }\n\n const implementationStorage = localStorage.getItem(\n `humany_${hash(implementation.tenant + implementation.name)}`\n );\n\n if (implementationStorage) {\n const { activeStickyWidget } = JSON.parse(implementationStorage);\n if (activeStickyWidget && activeStickyWidget.value) {\n const widget = implementation.widgets.get(activeStickyWidget.value);\n if (widget) {\n const el = document.createElement('a');\n el.setAttribute(\n 'href',\n `//${implementation.bindings[0]}/${activeStickyWidget.value}`\n );\n document.body.appendChild(el);\n }\n }\n }\n};\n","export default (date: any, includeTime: boolean = false) => {\n const d = new Date(date);\n let month = `${d.getMonth() + 1}`;\n let day = `${d.getDate()}`;\n const year = d.getFullYear();\n\n if (month.length < 2) month = `0${month}`;\n if (day.length < 2) day = `0${day}`;\n\n if (includeTime) {\n let hours = `${d.getHours()}`;\n let minutes = `${d.getMinutes()}`;\n\n if (hours.length < 2) hours = `0${hours}`;\n if (minutes.length < 2) minutes = `0${minutes}`;\n\n return `${[year, month, day].join('-')} ${[hours, minutes].join(':')}`;\n }\n\n return [year, month, day].join('-');\n};\n","export default function getCookie(cookieName: string) {\n const documentCookie = document.cookie;\n if (documentCookie.length > 0) {\n let start = documentCookie.indexOf(`${cookieName}=`);\n if (start !== -1) {\n start = start + cookieName.length + 1;\n let end = documentCookie.indexOf(';', start);\n if (end === -1) {\n end = documentCookie.length;\n }\n return unescape(documentCookie.substring(start, end));\n }\n }\n return null;\n}\n","export default function (s: string): string {\n let hash = 0;\n if (s.length === 0) {\n return hash.toString();\n }\n // tslint:disable-next-line:no-increment-decrement\n for (let i = 0; i < s.length; i++) {\n const char = s.charCodeAt(i);\n hash = (hash << 5) - hash + char;\n hash = hash & hash;\n }\n return hash.toString();\n}\n","/**\n * Checks whether or not the passed child is a descendant\n * of the passed parent.\n * Will return true if falsey parent or child.\n */\nexport default (parent: HTMLElement | Window, child: Element | null): boolean => {\n if (!parent || !child) {\n return true;\n }\n\n let node = child.parentNode;\n let hasChild = false;\n while (node !== null) {\n if (node === parent) {\n hasChild = true;\n }\n node = node.parentNode;\n }\n\n return hasChild;\n};\n","export default function kebabCase(string: string) {\n return string\n .replace(/([a-z])([A-Z])/g, '$1-$2')\n .replace(/\\s+/g, '-')\n .toLowerCase();\n}\n","import { Logger } from './debug';\n\ntype Task = () => Promise<any> | any;\n\nclass Queue {\n tasks: {\n task: Task;\n resolve: (data?: any) => any;\n reject: (data?: any) => any;\n done: () => void;\n }[] = [];\n current: Promise<any> = Promise.resolve();\n\n constructor(private lockWarningTime: number, private lockErrorTime: number) {\n this.next = this.next.bind(this);\n }\n\n add(\n task: Task,\n resolve: (data?: any) => any,\n reject: (data?: any) => any,\n done: () => void\n ): void {\n this.tasks.push({ task, resolve, reject, done });\n this.next();\n }\n\n next(): void {\n this.current = this.current.then(() => {\n const next = this.tasks.shift();\n if (next) {\n let errorTimeout: any; // NodeJS.Timeout\n const warningTimeout = setTimeout(() => {\n if (process.env.NODE_ENV !== 'production') {\n // tslint:disable-next-line max-line-length\n Logger.warn(\n `A lock has exceeded ${this.lockWarningTime} ms. Waiting additional ${this.lockErrorTime} ms before rejecting the task.`,\n next\n );\n }\n errorTimeout = setTimeout(() => {\n next.reject('lock timeout exceeded');\n }, this.lockErrorTime);\n }, this.lockWarningTime);\n const taskPromise = Promise.resolve(next.task()).then((result) => {\n clearTimeout(warningTimeout);\n clearTimeout(errorTimeout);\n return result;\n });\n return Promise.resolve(taskPromise)\n .then(this.next)\n .then(() =>\n taskPromise.then((data) => {\n next.done();\n next.resolve(data);\n })\n )\n .catch((reason) => {\n next.done();\n next.reject(reason);\n return this.next();\n });\n }\n return Promise.resolve();\n });\n }\n}\n\nexport type AddTask = (task: Task) => Promise<any>;\n\nconst locks = new WeakMap();\n\n/**\n * Creates a lock for the specified owner that allows only one executing\n * task simultaneously.\n * @param key Lock owner.\n */\nexport default function lock(key: object, lockWarningTime = 5000, lockErrorTime = 1000): AddTask {\n if (!locks.has(key)) {\n locks.set(key, new Queue(lockWarningTime, lockErrorTime));\n }\n return (task: Task): Promise<any> => {\n return new Promise((resolve, reject) => {\n const queue: Queue = locks.get(key);\n queue.add(task, resolve, reject, () => {\n if (!queue.tasks.length) {\n locks.delete(key);\n }\n });\n });\n };\n}\n","import deepClone from './deep-clone';\n\nconst isObject = (item: any): boolean => {\n return !!item && typeof item === 'object' && !Array.isArray(item);\n};\n\n/**\n * @param target Target to merge into\n * @param sources Source to merge into target\n * @returns Clone (new reference) with merged sources\n */\nconst mergeDeep = <Target, Source>(target: Target, ...sources: Source[]): Target & Source => {\n const clonedTarget = deepClone(target);\n const clonedSources = deepClone(sources);\n return mergeDeepRecursive(clonedTarget, ...clonedSources);\n};\n\nconst mergeDeepRecursive = (target: any, ...sources: any[]): any => {\n if (!sources.length) return target;\n const source = sources.shift();\n\n if (isObject(target) && isObject(source)) {\n for (const key in source) {\n if (isObject(source[key])) {\n if (!target[key]) Object.assign(target, { [key]: {} });\n mergeDeepRecursive(target[key], source[key]);\n } else {\n Object.assign(target, { [key]: source[key] });\n }\n }\n }\n return mergeDeepRecursive(target, ...sources);\n};\n\nexport default mergeDeep;\n","import { Container, Widget } from '@webprovisions/platform';\n\n/**\n * Dispatch widget:data-loaded event when all components\n * is considered to be finished loading their initial data\n */\nconst watchForLoadingComplete = (container: Container, widgetDOMElement: HTMLElement) => {\n const isLoading = () => widgetDOMElement.querySelectorAll('[data-loading=true]').length > 0;\n\n const complete = () => {\n let dispatched = false;\n\n return () => {\n if (dispatched) {\n return;\n }\n const widget: Widget = container.get('$widget');\n\n widget.events.dispatch('widget:data-loaded', {\n element: widgetDOMElement,\n });\n dispatched = true;\n };\n };\n\n const handleComplete = complete();\n\n if (!isLoading()) {\n return handleComplete();\n }\n\n const observer = new MutationObserver((mutations, observer) => {\n const check = mutations.find(\n (mutation) =>\n mutation.type === 'attributes' && mutation.attributeName === 'data-loading'\n );\n\n if (check && !isLoading()) {\n observer.disconnect();\n handleComplete();\n }\n });\n\n observer.observe(widgetDOMElement, {\n attributes: true,\n childList: true,\n subtree: true,\n });\n};\n\n/**\n * Wait for all visible components to render\n */\nconst notifyDataLoaded = (viewOutletContainer: Container, widgetDOMElement: HTMLElement) => {\n const widget: Widget = viewOutletContainer.get('$widget');\n\n widget.container.getAsync('components').then((components: any) => {\n components.events.subscribeOnce('components:component-model-initialized', () => {\n // Store the names of all visible components we should wait for\n let waitingFor: string[] = components.nodes.visible.reduce(\n (acc: string[], node: any) => {\n if (\n !node.name ||\n !node.type ||\n node.type === 'view' ||\n node.type === 'root' ||\n node.attributes.layout.size === 'none' ||\n widgetDOMElement.querySelector(`[data-name=\"${node.name}\"]`)\n ) {\n return acc;\n }\n\n acc.push(node.name);\n return acc;\n },\n []\n );\n\n let complete = false;\n const observer = new MutationObserver((mutations, observer) => {\n mutations.forEach((mutation) => {\n if (mutation.addedNodes) {\n const componentElements = Array.from(\n mutation.addedNodes as NodeListOf<HTMLElement>\n ).reduce<string[]>((acc, element) => {\n const dataName =\n element.getAttribute && element.getAttribute('data-name');\n\n if (dataName && waitingFor.indexOf(dataName) > -1) {\n acc.push(dataName);\n }\n return acc;\n }, []);\n\n // Remove added elements from the list of elements we are waiting for\n waitingFor = waitingFor.filter((name: string) => {\n return componentElements.indexOf(name) === -1;\n });\n\n // When the list is empty, we are finished waiting for components to render\n if (!complete && waitingFor.length === 0) {\n complete = true;\n // Creates a new observer that observes data-loading changes\n watchForLoadingComplete(viewOutletContainer, widgetDOMElement);\n observer.disconnect();\n }\n }\n });\n });\n\n observer.observe(widgetDOMElement, {\n attributes: false,\n characterData: false,\n childList: true,\n subtree: true,\n attributeOldValue: false,\n characterDataOldValue: false,\n });\n });\n });\n};\n\nexport default notifyDataLoaded;\n","const removeNullAndUndefinedValues = (object: { [key: string]: any } = {}) => {\n Object.keys(object).forEach((key) => {\n if (object[key] === null || typeof object[key] === 'undefined') {\n delete object[key];\n }\n });\n return object;\n};\n\nexport default removeNullAndUndefinedValues;\n","export default function setCookie(cookieName: string, value: any, days: number) {\n let expires = '';\n if (days) {\n const date = new Date();\n date.setTime(date.getTime() + days * 24 * 60 * 60 * 1000);\n expires = `; expires=${date.toUTCString()}`;\n }\n document.cookie = `${cookieName}=${value}${expires}; path=/`;\n}\n","export default (a: { [key: string]: any }, b: { [key: string]: any }): boolean => {\n let equal = true;\n\n if (Object.keys(a).length !== Object.keys(b).length) {\n return false;\n }\n const missingKey = Object.keys(a).some((key) => {\n const found = Object.keys(b).some((bKey) => {\n return key === bKey;\n });\n\n return !found;\n });\n\n if (missingKey) {\n return false;\n }\n\n Object.keys(a).forEach((key) => {\n if (equal) {\n const c = typeof a[key] === 'undefined' ? '' : a[key];\n const d = typeof b[key] === 'undefined' ? '' : b[key];\n equal = c.toString() === d.toString();\n }\n });\n\n return equal;\n};\n","const s4 = () => {\n return Math.floor((1 + Math.random()) * 0x10000)\n .toString(16)\n .substring(1);\n};\n\nexport default function uuid() {\n // tslint:disable-next-line prefer-template\n return s4() + s4() + '-' + s4() + '-' + s4() + '-' + s4() + '-' + s4() + s4() + s4();\n}\n","type Action = (...args: any[]) => Function | false;\n\nexport type WaitForOptions = {\n callCount?: number;\n};\n\nexport default class WaitFor {\n private queue: Action[] = [];\n private queueAttempt: any;\n private queueAttemptCalls: number = 0;\n private callCount = 5;\n\n constructor(options?: WaitForOptions) {\n if (options && options.callCount) {\n this.callCount = options.callCount;\n }\n }\n\n /**\n * Add action to the queue\n */\n add = (action: Action) => {\n this.queue.push(action);\n\n this.queueAttempt = setInterval(this.processQueue, 1000);\n };\n\n /**\n * Go through queue and attempt to call each action\n */\n processQueue = () => {\n if (this.queue.length > 0) {\n const indexOfActionsEmitted: number[] = [];\n this.queue.forEach((queuedAction, index) => {\n const evaluate = queuedAction();\n\n if (typeof evaluate === 'function') {\n evaluate();\n indexOfActionsEmitted.push(index);\n }\n });\n\n // clean up queue\n this.queue = this.queue.filter((_, index) => {\n if (indexOfActionsEmitted.indexOf(index) > -1) {\n return false;\n }\n return true;\n });\n\n if (this.queueAttempt) {\n clearInterval(this.queueAttempt);\n }\n }\n\n if (this.queueAttemptCalls > this.callCount) {\n clearInterval(this.queueAttempt);\n this.queueAttemptCalls = 0;\n }\n\n this.queueAttemptCalls = this.queueAttemptCalls + 1;\n };\n}\n"],"names":["uniqueClassArray","classNames","classArray","c","append","className1","className2","handleFunctionArgument","expression","classes","className","appendClassNames","args","argument","Logger","createBatch","delay","createFallback","timeout","queue","fn","resolve","reject","acc","createBatch$1","camilize","obj","camilizedObject","prop","p","camilizedProp","i","createParams","_a","phrase","category","guideCategory","contactCategory","take","connectionKey","accordion","id","uriName","sorting","tag","tagId","tagTitle","other","__objRest","params","k","processData","data","val","__yieldStar","findCategoryById","categories","it","res","found","findCategoryById$1","formatUrl","url","replacements","alphanumericExpression","trailingDashExpression","parsed","formatUrl$1","childParentStructure","items","structure","parent","item","categoryTrail","ids","addAncestors","parentId","getCategoryTrailAsObjects","trail","categoryId","buildCategoryTrail","routeName","categoryIds","container","dataType","dataClient","buildTrail","objectTrail","result","dataURItoBlob","dataURI","byteString","mimestring","content","dataURItoBlob$1","debugLog","print","msgOrObj","_Logger","key","deepClone","out","value","deepClone$1","findAndActivateStoredWidgets","implementation","implementationStorage","hash","activeStickyWidget","el","formatDate","date","includeTime","d","month","day","year","hours","minutes","getCookie","cookieName","documentCookie","start","end","s","char","htmlParentContains","child","node","hasChild","kebabCase","string","Queue","lockWarningTime","lockErrorTime","task","done","next","errorTimeout","warningTimeout","taskPromise","reason","locks","lock","isObject","mergeDeep","target","sources","clonedTarget","clonedSources","mergeDeepRecursive","source","mergeDeep$1","watchForLoadingComplete","widgetDOMElement","isLoading","handleComplete","dispatched","mutations","observer","mutation","notifyDataLoaded","viewOutletContainer","components","waitingFor","complete","componentElements","element","dataName","name","notifyDataLoaded$1","removeNullAndUndefinedValues","object","removeNullAndUndefinedValues$1","setCookie","days","expires","shallowCompare","a","b","equal","bKey","s4","uuid","WaitFor","options","action","indexOfActionsEmitted","queuedAction","index","evaluate","_"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@telia-ace/widget-utilities",
3
- "version": "1.0.18-next.0",
3
+ "version": "1.0.18",
4
4
  "description": "Utilities used internally by ACE Widget packages.",
5
5
  "license": "SEE LICENSE IN LICENSE.txt",
6
6
  "author": "Telia Company AB",
@@ -21,10 +21,10 @@
21
21
  },
22
22
  "sideEffects": false,
23
23
  "dependencies": {
24
- "@webprovisions/platform": "^1.1.3"
24
+ "@webprovisions/platform": "^1.1.4"
25
25
  },
26
26
  "devDependencies": {
27
- "@telia-ace/widget-developer-tools": "1.0.24-next.0"
27
+ "@telia-ace/widget-developer-tools": "1.0.24"
28
28
  },
29
29
  "scripts": {
30
30
  "clean": "rimraf ./dist",