@telia-ace/widget-utilities 1.0.10-experimental.1 → 1.0.10-experimental.3

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,89 +1,86 @@
1
- var I = Object.defineProperty;
2
- var x = Object.getOwnPropertySymbols;
3
- var U = Object.prototype.hasOwnProperty, z = Object.prototype.propertyIsEnumerable;
4
- var V = (o, t, e) => t in o ? I(o, t, { enumerable: !0, configurable: !0, writable: !0, value: e }) : o[t] = e;
5
- var T = (o, t) => {
6
- var e = {};
7
- for (var r in o)
8
- U.call(o, r) && t.indexOf(r) < 0 && (e[r] = o[r]);
9
- if (o != null && x)
10
- for (var r of x(o))
11
- t.indexOf(r) < 0 && z.call(o, r) && (e[r] = o[r]);
12
- return e;
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;
13
11
  };
14
- var u = (o, t, e) => (V(o, typeof t != "symbol" ? t + "" : t, e), e);
15
- function W(o) {
12
+ function I(e) {
16
13
  const t = [];
17
- return o.forEach((e) => {
18
- t.indexOf(e) === -1 && t.push(e);
14
+ return e.forEach((o) => {
15
+ t.indexOf(o) === -1 && t.push(o);
19
16
  }), t;
20
17
  }
21
- function w(o = "", t = "") {
22
- const e = o.split(" ").concat(t.split(" "));
23
- return W(e).join(" ").trim();
18
+ function k(e = "", t = "") {
19
+ const o = e.split(" ").concat(t.split(" "));
20
+ return I(o).join(" ").trim();
24
21
  }
25
- function L(o, t) {
26
- if (Boolean(o)) {
22
+ function U(e, t) {
23
+ if (Boolean(e)) {
27
24
  if (typeof t == "string")
28
25
  return t;
29
26
  if (Array.isArray(t)) {
30
- let e = "";
31
- return t.forEach((r) => e = w(e, r)), e;
27
+ let o = "";
28
+ return t.forEach((r) => o = k(o, r)), o;
32
29
  }
33
30
  }
34
31
  }
35
- function ot(...o) {
32
+ function X(...e) {
36
33
  let t = "";
37
- return o.length && o.forEach((e) => {
38
- typeof e == "string" ? t = w(t, e) : Array.isArray(e) ? t = w(t, L(...e)) : typeof e != "undefined" && e !== null && process.env.NODE_ENV !== "production" && p.warn(
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(
39
36
  "appendClassNames: arguments either haveto be a string or [boolean, ...string[]]. Passed args:",
40
- ...o
37
+ ...e
41
38
  );
42
39
  }), t;
43
40
  }
44
- const M = (o, t) => {
45
- let e, r = [];
46
- return (i) => (clearTimeout(e), new Promise((n, a) => {
47
- r.push([i, n, a]), e = setTimeout(() => {
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(() => {
48
45
  let f = t();
49
- r.forEach(([c, g, d]) => {
46
+ r.forEach(([c, l, m]) => {
50
47
  f = c(f);
51
48
  }), r = [], n(f);
52
- }, o);
49
+ }, e);
53
50
  }));
54
- }, rt = M;
55
- function N(o) {
51
+ }, tt = z;
52
+ function T(e) {
56
53
  const t = {};
57
- if (typeof o == "number" || typeof o == "string")
58
- return o;
59
- for (const e in o)
60
- if (o.hasOwnProperty(e)) {
61
- const r = o[e], i = e.substring(0, 1).toLowerCase() + e.substring(1);
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);
62
59
  if (Object.prototype.toString.call(r) === "[object Array]") {
63
60
  t[i] = [];
64
61
  for (let n = 0, a = r.length; n < a; n++)
65
- t[i].push(N(r[n]));
62
+ t[i].push(T(r[n]));
66
63
  } else
67
- r !== null && typeof r == "object" ? t[i] = N(r) : t[i] = r;
64
+ r !== null && typeof r == "object" ? t[i] = T(r) : t[i] = r;
68
65
  }
69
66
  return t;
70
67
  }
71
- function E(o = {}) {
72
- const O = o, {
68
+ function N(e = {}) {
69
+ const $ = e, {
73
70
  phrase: t = "",
74
- category: e,
71
+ category: o,
75
72
  guideCategory: r,
76
73
  contactCategory: i,
77
74
  take: n,
78
75
  connectionKey: a,
79
76
  accordion: f,
80
77
  id: c,
81
- uriName: g,
82
- sorting: d,
83
- tag: m,
84
- tagId: l,
85
- tagTitle: y
86
- } = O, B = T(O, [
78
+ uriName: l,
79
+ sorting: m,
80
+ tag: g,
81
+ tagId: u,
82
+ tagTitle: h
83
+ } = $, P = x($, [
87
84
  "phrase",
88
85
  "category",
89
86
  "guideCategory",
@@ -98,25 +95,25 @@ function E(o = {}) {
98
95
  "tagId",
99
96
  "tagTitle"
100
97
  ]), s = {};
101
- return Object.keys(B).forEach((v) => {
102
- typeof o[v] == "string" && (s[v] = o[v]);
103
- }), 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 e == "string" && e !== "0" && (s.category = e), typeof e == "number" && e !== 0 && (s.category = e), typeof e == "object" && e !== null && (typeof e.id == "string" && e.id !== "0" && (s.category = e.id), typeof e.id == "number" && e.id !== 0 && (s.category = e.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), d && (s.sorting = d), typeof f == "string" && f.length > 0 && (s.accordion = f), typeof m == "string" && m !== "0" && (s.tag = m), typeof m == "number" && m !== 0 && (s.tag = m), (typeof l == "string" || typeof l == "number") && (s.tagId = l), typeof y == "string" && (s.tagTitle = y), 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), l && (!!+s.category || !!+s.guideCategory || !!+s.guide || !!+s.contactCategory || !!+s.contactMethod) && (s.uriName = l), a && (s.connectionKey = a), n && (s.take = n), m && (s.sorting = m), typeof f == "string" && f.length > 0 && (s.accordion = f), typeof g == "string" && g !== "0" && (s.tag = g), typeof g == "number" && g !== 0 && (s.tag = g), (typeof u == "string" || typeof u == "number") && (s.tagId = u), typeof h == "string" && (s.tagTitle = h), s;
104
101
  }
105
- function* S(o) {
106
- if (!!o)
107
- for (let t = 0; t < o.length; t++) {
108
- const e = o[t];
109
- yield e, e.items && (yield* S(e.items));
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));
110
107
  }
111
108
  }
112
- const Y = (o, t) => {
113
- const e = S(t);
114
- let r = e.next(), i = null;
109
+ const V = (e, t) => {
110
+ const o = q(t);
111
+ let r = o.next(), i = null;
115
112
  for (; !r.done; )
116
- r.value.id === o && (i = r.value), r = e.next();
113
+ r.value.id === e && (i = r.value), r = o.next();
117
114
  return i;
118
- }, F = Y, K = (o) => {
119
- if (!o)
115
+ }, W = V, M = (e) => {
116
+ if (!e)
120
117
  return "";
121
118
  const t = [
122
119
  { from: /[äæǽ]+/gi, to: "ae" },
@@ -208,167 +205,164 @@ const Y = (o, t) => {
208
205
  { from: /[ю]+/gi, to: "yu" },
209
206
  { from: /[Я]+/gi, to: "Ya" },
210
207
  { from: /[я]+/gi, to: "ya" }
211
- ], e = /[^a-zA-Z0-9]+/g, r = /[-]$/;
212
- let i = o;
208
+ ], o = /[^a-zA-Z0-9]+/g, r = /[-]$/;
209
+ let i = e;
213
210
  for (const n in t)
214
- t.hasOwnProperty(n) && t[n].from.test(o) && (i = i.replace(t[n].from, t[n].to));
215
- return i = i.replace(e, "-"), i = i.replace(r, ""), i = i.toLowerCase(), i || "humany";
216
- }, j = K;
217
- function D(o, t = {}, e) {
218
- return o.forEach((r) => {
219
- e && (t[+r.id] = e), r.items && D(r.items, t, r.id);
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);
220
217
  }), t;
221
218
  }
222
- function Z(o, t, e = [o], r = D(t)) {
219
+ function Y(e, t, o = [e], r = S(t)) {
223
220
  const i = (a) => {
224
221
  const f = r[+a];
225
- f && (e.unshift(f), i(f));
226
- }, n = r[+o];
227
- return n && (e.unshift(n), i(n)), e;
222
+ f && (o.unshift(f), i(f));
223
+ }, n = r[+e];
224
+ return n && (o.unshift(n), i(n)), o;
228
225
  }
229
- const J = (o, t) => typeof o == "undefined" || typeof t == "undefined" ? /* @__PURE__ */ new Map() : new Map(
230
- o.map((e) => {
231
- const r = F(e, t);
232
- return [e, r];
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];
233
230
  })
234
- ), it = (o, t, e, r = "guide-categories") => e.getAsync("dataClient").then((i) => i.fetch(r, { expandCategories: "descendants" }).then(({ categories: n }) => {
231
+ ), et = (e, t, o, r = "guide-categories") => o.getAsync("dataClient").then((i) => i.fetch(r, { expandCategories: "descendants" }).then(({ categories: n }) => {
235
232
  const a = (f) => {
236
- const c = Z(f, n), g = J(c, n), d = [];
237
- return c.forEach((m) => {
238
- const l = g.get(m);
239
- l && d.push({
240
- routeName: o,
241
- title: l.title,
242
- symbol: l.symbol,
243
- id: l.id,
244
- routeParams: E(r === "contact-method-categories" ? {
245
- contactCategory: l.id,
246
- uriName: j(l.title)
233
+ const c = Y(f, n), l = F(c, n), m = [];
234
+ return c.forEach((g) => {
235
+ const u = l.get(g);
236
+ u && m.push({
237
+ routeName: e,
238
+ title: u.title,
239
+ symbol: u.symbol,
240
+ id: u.id,
241
+ routeParams: N(r === "contact-method-categories" ? {
242
+ contactCategory: u.id,
243
+ uriName: E(u.title)
247
244
  } : {
248
- guideCategory: l.id,
249
- uriName: j(l.title)
245
+ guideCategory: u.id,
246
+ uriName: E(u.title)
250
247
  })
251
248
  });
252
- }), d;
249
+ }), m;
253
250
  };
254
251
  return Array.isArray(t) ? t.reduce((f, c) => {
255
- const g = a(c);
256
- return g.length > 0 && f.push(g), f;
252
+ const l = a(c);
253
+ return l.length > 0 && f.push(l), f;
257
254
  }, []) : a(t);
258
- })), Q = (o) => {
259
- let t, e;
260
- o.split(",")[0].indexOf("base64") !== -1 ? t = atob(o.split(",")[1]) : t = decodeURI(o.split(",")[1]), e = o.split(",")[0].split(":")[1].split(";")[0];
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];
261
258
  const r = [];
262
259
  for (let i = 0; i < t.length; i++)
263
260
  r[i] = t.charCodeAt(i);
264
- return new Blob([new Uint8Array(r)], { type: e });
265
- }, nt = Q;
266
- function st(...o) {
267
- return process.env.NODE_ENV !== "production" && console && console.warn(...o);
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);
268
265
  }
269
- const C = (o, t, ...e) => typeof t == "string" ? o(`[humany] ${t}`, ...e) : o(t, ...e), b = class {
266
+ const C = (e, t, ...o) => typeof t == "string" ? e(`[humany] ${t}`, ...o) : e(t, ...o), y = class {
270
267
  constructor() {
271
- u(this, "keys", []);
272
- u(this, "log", (t, ...e) => this.lookup(t, () => b.log(...e)));
273
- u(this, "warn", (t, ...e) => this.lookup(t, () => b.warn(...e)));
274
- u(this, "error", (t, ...e) => this.lookup(t, () => b.error(...e)));
275
- u(this, "info", (t, ...e) => this.lookup(t, () => b.info(...e)));
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));
276
269
  }
277
- lookup(t, e) {
278
- this.keys.indexOf(t) === -1 && (this.keys.push(t), e());
270
+ lookup(e, t) {
271
+ this.keys.indexOf(e) === -1 && (this.keys.push(e), t());
279
272
  }
280
273
  };
281
- let p = b;
282
- u(p, "log", (...t) => C(console.log, ...t)), u(p, "warn", (...t) => C(console.warn, ...t)), u(p, "error", (...t) => C(console.error, ...t)), u(p, "info", (...t) => C(console.info, ...t));
283
- const P = (o) => {
284
- let t = {}, e, r;
285
- if (typeof o != "object" || o === null)
286
- return o;
287
- t = Array.isArray(o) ? [] : {};
288
- for (r in o)
289
- e = o[r], t[r] = typeof e == "object" && e !== null ? P(e) : e;
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;
290
286
  return t;
291
- }, q = P, ft = (o) => {
292
- if (!o)
287
+ }, j = D, it = (e) => {
288
+ if (!e)
293
289
  return null;
294
290
  const t = localStorage.getItem(
295
- `humany_${R(o.tenant + o.name)}`
291
+ `humany_${_(e.tenant + e.name)}`
296
292
  );
297
293
  if (t) {
298
- const { activeStickyWidget: e } = JSON.parse(t);
299
- if (e && e.value && o.widgets.get(e.value)) {
294
+ const { activeStickyWidget: o } = JSON.parse(t);
295
+ if (o && o.value && e.widgets.get(o.value)) {
300
296
  const i = document.createElement("a");
301
297
  i.setAttribute(
302
298
  "href",
303
- `//${o.bindings[0]}/${e.value}`
299
+ `//${e.bindings[0]}/${o.value}`
304
300
  ), document.body.appendChild(i);
305
301
  }
306
302
  }
307
- }, at = (o, t = !1) => {
308
- const e = new Date(o);
309
- let r = `${e.getMonth() + 1}`, i = `${e.getDate()}`;
310
- const n = e.getFullYear();
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();
311
307
  if (r.length < 2 && (r = `0${r}`), i.length < 2 && (i = `0${i}`), t) {
312
- let a = `${e.getHours()}`, f = `${e.getMinutes()}`;
308
+ let a = `${o.getHours()}`, f = `${o.getMinutes()}`;
313
309
  return a.length < 2 && (a = `0${a}`), f.length < 2 && (f = `0${f}`), `${[n, r, i].join("-")} ${[a, f].join(":")}`;
314
310
  }
315
311
  return [n, r, i].join("-");
316
312
  };
317
- function ct(o) {
313
+ function st(e) {
318
314
  const t = document.cookie;
319
315
  if (t.length > 0) {
320
- let e = t.indexOf(`${o}=`);
321
- if (e !== -1) {
322
- e = e + o.length + 1;
323
- let r = t.indexOf(";", e);
324
- return r === -1 && (r = t.length), unescape(t.substring(e, r));
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));
325
321
  }
326
322
  }
327
323
  return null;
328
324
  }
329
- function R(o) {
325
+ function _(e) {
330
326
  let t = 0;
331
- if (o.length === 0)
327
+ if (e.length === 0)
332
328
  return t.toString();
333
- for (let e = 0; e < o.length; e++) {
334
- const r = o.charCodeAt(e);
329
+ for (let o = 0; o < e.length; o++) {
330
+ const r = e.charCodeAt(o);
335
331
  t = (t << 5) - t + r, t = t & t;
336
332
  }
337
333
  return t.toString();
338
334
  }
339
- const ut = (o, t) => {
340
- if (!o || !t)
335
+ const ft = (e, t) => {
336
+ if (!e || !t)
341
337
  return !0;
342
- let e = t.parentNode, r = !1;
343
- for (; e !== null; )
344
- e === o && (r = !0), e = e.parentNode;
338
+ let o = t.parentNode, r = !1;
339
+ for (; o !== null; )
340
+ o === e && (r = !0), o = o.parentNode;
345
341
  return r;
346
342
  };
347
- function lt(o) {
348
- return o.replace(/([a-z])([A-Z])/g, "$1-$2").replace(/\s+/g, "-").toLowerCase();
343
+ function at(e) {
344
+ return e.replace(/([a-z])([A-Z])/g, "$1-$2").replace(/\s+/g, "-").toLowerCase();
349
345
  }
350
- class H {
351
- constructor(t, e) {
352
- u(this, "tasks", []);
353
- u(this, "current", Promise.resolve());
354
- this.lockWarningTime = t, this.lockErrorTime = e, this.next = this.next.bind(this);
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);
355
349
  }
356
- add(t, e, r, i) {
357
- this.tasks.push({ task: t, resolve: e, reject: r, done: i }), this.next();
350
+ add(t, o, r, i) {
351
+ this.tasks.push({ task: t, resolve: o, reject: r, done: i }), this.next();
358
352
  }
359
353
  next() {
360
354
  this.current = this.current.then(() => {
361
355
  const t = this.tasks.shift();
362
356
  if (t) {
363
- let e;
357
+ let o;
364
358
  const r = setTimeout(() => {
365
359
  process.env.NODE_ENV !== "production" && p.warn(
366
360
  `A lock has exceeded ${this.lockWarningTime} ms. Waiting additional ${this.lockErrorTime} ms before rejecting the task.`,
367
361
  t
368
- ), e = setTimeout(() => {
362
+ ), o = setTimeout(() => {
369
363
  t.reject("lock timeout exceeded");
370
364
  }, this.lockErrorTime);
371
- }, this.lockWarningTime), i = Promise.resolve(t.task()).then((n) => (clearTimeout(r), clearTimeout(e), n));
365
+ }, this.lockWarningTime), i = Promise.resolve(t.task()).then((n) => (clearTimeout(r), clearTimeout(o), n));
372
366
  return Promise.resolve(i).then(this.next).then(
373
367
  () => i.then((n) => {
374
368
  t.done(), t.resolve(n);
@@ -379,65 +373,65 @@ class H {
379
373
  });
380
374
  }
381
375
  }
382
- const A = /* @__PURE__ */ new WeakMap();
383
- function gt(o, t = 5e3, e = 1e3) {
384
- return A.has(o) || A.set(o, new H(t, e)), (r) => new Promise((i, n) => {
385
- const a = A.get(o);
376
+ 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);
386
380
  a.add(r, i, n, () => {
387
- a.tasks.length || A.delete(o);
381
+ a.tasks.length || b.delete(e);
388
382
  });
389
383
  });
390
384
  }
391
- const k = (o) => !!o && typeof o == "object" && !Array.isArray(o), G = (o, ...t) => {
392
- const e = q(o), r = q(t);
393
- return $(e, ...r);
394
- }, $ = (o, ...t) => {
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) => {
395
389
  if (!t.length)
396
- return o;
397
- const e = t.shift();
398
- if (k(o) && k(e))
399
- for (const r in e)
400
- k(e[r]) ? (o[r] || Object.assign(o, { [r]: {} }), $(o[r], e[r])) : Object.assign(o, { [r]: e[r] });
401
- return $(o, ...t);
402
- }, mt = G, _ = (o, t) => {
403
- const e = () => t.querySelectorAll("[data-loading=true]").length > 0, i = (() => {
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 = (() => {
404
398
  let a = !1;
405
399
  return () => {
406
400
  if (a)
407
401
  return;
408
- o.get("$widget").events.dispatch("widget:data-loaded", {
402
+ e.get("$widget").events.dispatch("widget:data-loaded", {
409
403
  element: t
410
404
  }), a = !0;
411
405
  };
412
406
  })();
413
- if (!e())
407
+ if (!o())
414
408
  return i();
415
409
  new MutationObserver((a, f) => {
416
410
  a.find(
417
- (g) => g.type === "attributes" && g.attributeName === "data-loading"
418
- ) && !e() && (f.disconnect(), i());
411
+ (l) => l.type === "attributes" && l.attributeName === "data-loading"
412
+ ) && !o() && (f.disconnect(), i());
419
413
  }).observe(t, {
420
414
  attributes: !0,
421
415
  childList: !0,
422
416
  subtree: !0
423
417
  });
424
- }, X = (o, t) => {
425
- o.get("$widget").container.getAsync("components").then((r) => {
418
+ }, R = (e, t) => {
419
+ e.get("$widget").container.getAsync("components").then((r) => {
426
420
  r.events.subscribeOnce("components:component-model-initialized", () => {
427
421
  let i = r.nodes.visible.reduce(
428
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),
429
423
  []
430
424
  ), n = !1;
431
425
  new MutationObserver((f, c) => {
432
- f.forEach((g) => {
433
- if (g.addedNodes) {
434
- const d = Array.from(
435
- g.addedNodes
436
- ).reduce((m, l) => {
437
- const y = l.getAttribute && l.getAttribute("data-name");
438
- return y && i.indexOf(y) > -1 && m.push(y), m;
426
+ f.forEach((l) => {
427
+ if (l.addedNodes) {
428
+ const m = Array.from(
429
+ l.addedNodes
430
+ ).reduce((g, u) => {
431
+ const h = u.getAttribute && u.getAttribute("data-name");
432
+ return h && i.indexOf(h) > -1 && g.push(h), g;
439
433
  }, []);
440
- i = i.filter((m) => d.indexOf(m) === -1), !n && i.length === 0 && (n = !0, _(o, t), c.disconnect());
434
+ i = i.filter((g) => m.indexOf(g) === -1), !n && i.length === 0 && (n = !0, Q(e, t), c.disconnect());
441
435
  }
442
436
  });
443
437
  }).observe(t, {
@@ -450,78 +444,72 @@ const k = (o) => !!o && typeof o == "object" && !Array.isArray(o), G = (o, ...t)
450
444
  });
451
445
  });
452
446
  });
453
- }, dt = X, tt = (o = {}) => (Object.keys(o).forEach((t) => {
454
- (o[t] === null || typeof o[t] == "undefined") && delete o[t];
455
- }), o), ht = tt;
456
- function pt(o, t, e) {
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) {
457
451
  let r = "";
458
- if (e) {
452
+ if (o) {
459
453
  const i = new Date();
460
- i.setTime(i.getTime() + e * 24 * 60 * 60 * 1e3), r = `; expires=${i.toUTCString()}`;
454
+ i.setTime(i.getTime() + o * 24 * 60 * 60 * 1e3), r = `; expires=${i.toUTCString()}`;
461
455
  }
462
- document.cookie = `${o}=${t}${r}; path=/`;
456
+ document.cookie = `${e}=${t}${r}; path=/`;
463
457
  }
464
- const yt = (o, t) => {
465
- let e = !0;
466
- return Object.keys(o).length !== Object.keys(t).length || Object.keys(o).some((i) => !Object.keys(t).some((a) => i === a)) ? !1 : (Object.keys(o).forEach((i) => {
467
- if (e) {
468
- const n = typeof o[i] == "undefined" ? "" : o[i], a = typeof t[i] == "undefined" ? "" : t[i];
469
- e = n.toString() === a.toString();
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();
470
464
  }
471
- }), e);
472
- }, h = () => Math.floor((1 + Math.random()) * 65536).toString(16).substring(1);
473
- function bt() {
474
- return h() + h() + "-" + h() + "-" + h() + "-" + h() + "-" + h() + h() + h();
465
+ }), o);
466
+ }, d = () => Math.floor((1 + Math.random()) * 65536).toString(16).substring(1);
467
+ function ht() {
468
+ return d() + d() + "-" + d() + "-" + d() + "-" + d() + "-" + d() + d() + d();
475
469
  }
476
- class Ct {
470
+ class pt {
477
471
  constructor(t) {
478
- u(this, "queue", []);
479
- u(this, "queueAttempt");
480
- u(this, "queueAttemptCalls", 0);
481
- u(this, "callCount", 5);
482
- u(this, "add", (t) => {
483
- this.queue.push(t), this.queueAttempt = setInterval(this.processQueue, 1e3);
484
- });
485
- u(this, "processQueue", () => {
472
+ this.queue = [], this.queueAttemptCalls = 0, this.callCount = 5, this.add = (o) => {
473
+ this.queue.push(o), this.queueAttempt = setInterval(this.processQueue, 1e3);
474
+ }, this.processQueue = () => {
486
475
  if (this.queue.length > 0) {
487
- const t = [];
488
- this.queue.forEach((e, r) => {
489
- const i = e();
490
- typeof i == "function" && (i(), t.push(r));
491
- }), this.queue = this.queue.filter((e, r) => !(t.indexOf(r) > -1)), this.queueAttempt && clearInterval(this.queueAttempt);
476
+ const o = [];
477
+ this.queue.forEach((r, i) => {
478
+ 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);
492
481
  }
493
482
  this.queueAttemptCalls > this.callCount && (clearInterval(this.queueAttempt), this.queueAttemptCalls = 0), this.queueAttemptCalls = this.queueAttemptCalls + 1;
494
- });
495
- t && t.callCount && (this.callCount = t.callCount);
483
+ }, t && t.callCount && (this.callCount = t.callCount);
496
484
  }
497
485
  }
498
486
  export {
499
487
  p as Logger,
500
- Ct as WaitFor,
501
- ot as appendClassNames,
502
- it as buildCategoryTrail,
503
- N as camilize,
504
- Z as categoryTrail,
505
- rt as createBatch,
506
- E as createParams,
507
- nt as dataURItoBlob,
508
- st as debugLog,
509
- q as deepClone,
510
- ft as findAndActivateStoredWidgets,
511
- F as findCategoryById,
512
- at as formatDate,
513
- j as formatUrl,
514
- J as getCategoryTrailAsObjects,
515
- ct as getCookie,
516
- R as hash,
517
- ut as htmlParentContains,
518
- lt as kebabCase,
519
- gt as lock,
520
- mt as mergeDeep,
521
- dt as notifyDataLoaded,
522
- ht as removeNullAndUndefinedValues,
523
- pt as setCookie,
524
- yt as shallowCompare,
525
- bt as uuid
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,
504
+ _ 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
526
514
  };
527
515
  //# 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;\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\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 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","__publicField","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;\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\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 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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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@telia-ace/widget-utilities",
3
- "version": "1.0.10-experimental.1",
3
+ "version": "1.0.10-experimental.3",
4
4
  "description": "Utilities used internally by ACE Widget packages.",
5
5
  "license": "SEE LICENSE IN LICENSE.txt",
6
6
  "author": "Telia Company AB",
@@ -24,7 +24,7 @@
24
24
  "@webprovisions/platform": "^1.1.2"
25
25
  },
26
26
  "devDependencies": {
27
- "@telia-ace/widget-developer-tools": "1.0.16-experimental.1"
27
+ "@telia-ace/widget-developer-tools": "1.0.16-experimental.3"
28
28
  },
29
29
  "scripts": {
30
30
  "clean": "rimraf ./dist",