@uxland/primary-shell 5.3.13 → 5.4.1

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.
Files changed (20) hide show
  1. package/dist/index.js +269 -162
  2. package/dist/index.js.map +1 -1
  3. package/dist/index.umd.cjs +86 -63
  4. package/dist/index.umd.cjs.map +1 -1
  5. package/dist/primary/shell/src/internal-plugins/activity-history/activity-history-item/domain/model.d.ts +1 -1
  6. package/package.json +1 -1
  7. package/src/UI/internal-views/upper-nav-views.ts +8 -0
  8. package/src/internal-plugins/activity-history/activity-history-item/domain/model.ts +2 -5
  9. package/src/internal-plugins/activity-history/activity-history-item/domain/specs/diagnostics-filter-spec.test.ts +6 -6
  10. package/src/internal-plugins/activity-history/activity-history-item/domain/specs/search-string-spec.test.ts +15 -0
  11. package/src/internal-plugins/activity-history/activity-history-item/domain/specs/search-string-spec.ts +6 -14
  12. package/src/internal-plugins/activity-history/activity-history-item/domain/validation/diagnostics/has-valid-diagnostics.test.ts +8 -8
  13. package/src/internal-plugins/activity-history/activity-history-item/domain/validation/diagnostics/has-valid-diagnostics.ts +1 -1
  14. package/src/internal-plugins/activity-history/activity-history-item/domain/validation/is-valid-full-history-item.test.ts +7 -7
  15. package/src/internal-plugins/activity-history/activity-history-item/list/UI/main-view/template.ts +1 -1
  16. package/src/internal-plugins/activity-history/activity-history-item/list/UI/timeline/activity-history-timeline.ts +20 -9
  17. package/src/internal-plugins/activity-history/activity-history-item/list/UI/timeline/styles.css +2 -2
  18. package/src/internal-plugins/activity-history/activity-history-item/list/UI/timeline/template.ts +50 -56
  19. package/src/internal-plugins/activity-history/activity-history-item/list/bootstrapper.ts +1 -2
  20. package/src/internal-plugins/activity-history/activity-history-item/list/group-history-items/group-history-items.test.ts +3 -3
package/dist/index.js CHANGED
@@ -1415,9 +1415,9 @@ let c$u = class {
1415
1415
  this.behaviors.some((X) => X === J) || this.registry.push(J);
1416
1416
  }
1417
1417
  };
1418
- const e$V = new s$z();
1419
- e$V.register(c$u);
1420
- const a$s = e$V;
1418
+ const e$X = new s$z();
1419
+ e$X.register(c$u);
1420
+ const a$s = e$X;
1421
1421
  let l$A = class {
1422
1422
  constructor(J) {
1423
1423
  this.host = J;
@@ -1443,13 +1443,13 @@ let l$A = class {
1443
1443
  this.host.removeChild(J), this.host.uxlRegion.viewRemovedFromDom(J.view);
1444
1444
  }
1445
1445
  };
1446
- const e$U = (te, J) => !te.sortHint && !J.sortHint || !J.sortHint ? -1 : te.sortHint ? te.sortHint.localeCompare(J.sortHint) : 1;
1446
+ const e$W = (te, J) => !te.sortHint && !J.sortHint || !J.sortHint ? -1 : te.sortHint ? te.sortHint.localeCompare(J.sortHint) : 1;
1447
1447
  let s$y = class extends l$A {
1448
1448
  async viewAdded(J) {
1449
1449
  await this.host.uxlRegion.activate(J);
1450
1450
  }
1451
1451
  addViewToHost(J) {
1452
- const X = this.host.uxlRegion.currentActiveViews.sort(e$U).indexOf(J.view);
1452
+ const X = this.host.uxlRegion.currentActiveViews.sort(e$W).indexOf(J.view);
1453
1453
  X >= this.host.children.length ? super.addViewToHost(J) : this.host.insertBefore(J, this.host.children[X]);
1454
1454
  }
1455
1455
  };
@@ -1565,7 +1565,7 @@ let y$k = class {
1565
1565
  throw new Error(`region ${this.name} doest not contain this view`);
1566
1566
  }
1567
1567
  };
1568
- const e$T = "default", r$M = "dynamic";
1568
+ const e$V = "default", r$M = "dynamic";
1569
1569
  let y$j = class {
1570
1570
  constructor() {
1571
1571
  this.adapterRegistry = /* @__PURE__ */ new Map(), this.adapterRegistry.set(r$M, []);
@@ -1583,10 +1583,10 @@ let y$j = class {
1583
1583
  return this.dynamicFactories.reduce((X, re) => X || re(J), null);
1584
1584
  }
1585
1585
  getAdapterFactory(J) {
1586
- return this.getDynamicFactory(J) || (this.adapterRegistry.has(J.constructor) ? this.adapterRegistry.get(J.constructor) : this.adapterRegistry.has(J.localName) ? this.adapterRegistry.get(J.localName) : this.adapterRegistry.has(J.tagName) ? this.adapterRegistry.get(J.tagName) : this.adapterRegistry.has(e$T) ? this.adapterRegistry.get(e$T) : null);
1586
+ return this.getDynamicFactory(J) || (this.adapterRegistry.has(J.constructor) ? this.adapterRegistry.get(J.constructor) : this.adapterRegistry.has(J.localName) ? this.adapterRegistry.get(J.localName) : this.adapterRegistry.has(J.tagName) ? this.adapterRegistry.get(J.tagName) : this.adapterRegistry.has(e$V) ? this.adapterRegistry.get(e$V) : null);
1587
1587
  }
1588
1588
  registerDefaultAdapterFactory(J) {
1589
- this.adapterRegistry.set(e$T, J);
1589
+ this.adapterRegistry.set(e$V, J);
1590
1590
  }
1591
1591
  };
1592
1592
  const p$h = new y$j(), o$U = "__uxl_regions__", s$x = (te) => (J, X) => {
@@ -1657,7 +1657,7 @@ function d$u(te) {
1657
1657
  * Copyright 2019 Google LLC
1658
1658
  * SPDX-License-Identifier: BSD-3-Clause
1659
1659
  */
1660
- const t$m = window, e$S = t$m.ShadowRoot && (t$m.ShadyCSS === void 0 || t$m.ShadyCSS.nativeShadow) && "adoptedStyleSheets" in Document.prototype && "replace" in CSSStyleSheet.prototype, s$w = Symbol(), n$G = /* @__PURE__ */ new WeakMap();
1660
+ const t$m = window, e$U = t$m.ShadowRoot && (t$m.ShadyCSS === void 0 || t$m.ShadyCSS.nativeShadow) && "adoptedStyleSheets" in Document.prototype && "replace" in CSSStyleSheet.prototype, s$w = Symbol(), n$G = /* @__PURE__ */ new WeakMap();
1661
1661
  let o$T = class {
1662
1662
  constructor(J, X, re) {
1663
1663
  if (this._$cssResult$ = !0, re !== s$w) throw Error("CSSResult is not constructable. Use `unsafeCSS` or `css` instead.");
@@ -1666,7 +1666,7 @@ let o$T = class {
1666
1666
  get styleSheet() {
1667
1667
  let J = this.o;
1668
1668
  const X = this.t;
1669
- if (e$S && J === void 0) {
1669
+ if (e$U && J === void 0) {
1670
1670
  const re = X !== void 0 && X.length === 1;
1671
1671
  re && (J = n$G.get(X)), J === void 0 && ((this.o = J = new CSSStyleSheet()).replaceSync(this.cssText), re && n$G.set(X, J));
1672
1672
  }
@@ -1677,11 +1677,11 @@ let o$T = class {
1677
1677
  }
1678
1678
  };
1679
1679
  const r$K = (te) => new o$T(typeof te == "string" ? te : te + "", void 0, s$w), S$g = (te, J) => {
1680
- e$S ? te.adoptedStyleSheets = J.map((X) => X instanceof CSSStyleSheet ? X : X.styleSheet) : J.forEach((X) => {
1680
+ e$U ? te.adoptedStyleSheets = J.map((X) => X instanceof CSSStyleSheet ? X : X.styleSheet) : J.forEach((X) => {
1681
1681
  const re = document.createElement("style"), ne = t$m.litNonce;
1682
1682
  ne !== void 0 && re.setAttribute("nonce", ne), re.textContent = X.cssText, te.appendChild(re);
1683
1683
  });
1684
- }, c$t = e$S ? (te) => te : (te) => te instanceof CSSStyleSheet ? ((J) => {
1684
+ }, c$t = e$U ? (te) => te : (te) => te instanceof CSSStyleSheet ? ((J) => {
1685
1685
  let X = "";
1686
1686
  for (const re of J.cssRules) X += re.cssText;
1687
1687
  return r$K(X);
@@ -1692,7 +1692,7 @@ const r$K = (te) => new o$T(typeof te == "string" ? te : te + "", void 0, s$w),
1692
1692
  * SPDX-License-Identifier: BSD-3-Clause
1693
1693
  */
1694
1694
  var s$v;
1695
- const e$R = window, r$J = e$R.trustedTypes, h$u = r$J ? r$J.emptyScript : "", o$S = e$R.reactiveElementPolyfillSupport, n$F = { toAttribute(te, J) {
1695
+ const e$T = window, r$J = e$T.trustedTypes, h$u = r$J ? r$J.emptyScript : "", o$S = e$T.reactiveElementPolyfillSupport, n$F = { toAttribute(te, J) {
1696
1696
  switch (J) {
1697
1697
  case Boolean:
1698
1698
  te = te ? h$u : null;
@@ -1895,19 +1895,19 @@ let u$v = class extends HTMLElement {
1895
1895
  firstUpdated(J) {
1896
1896
  }
1897
1897
  };
1898
- u$v[d$t] = !0, u$v.elementProperties = /* @__PURE__ */ new Map(), u$v.elementStyles = [], u$v.shadowRootOptions = { mode: "open" }, o$S == null || o$S({ ReactiveElement: u$v }), ((s$v = e$R.reactiveElementVersions) !== null && s$v !== void 0 ? s$v : e$R.reactiveElementVersions = []).push("1.6.3");
1898
+ u$v[d$t] = !0, u$v.elementProperties = /* @__PURE__ */ new Map(), u$v.elementStyles = [], u$v.shadowRootOptions = { mode: "open" }, o$S == null || o$S({ ReactiveElement: u$v }), ((s$v = e$T.reactiveElementVersions) !== null && s$v !== void 0 ? s$v : e$T.reactiveElementVersions = []).push("1.6.3");
1899
1899
  /**
1900
1900
  * @license
1901
1901
  * Copyright 2017 Google LLC
1902
1902
  * SPDX-License-Identifier: BSD-3-Clause
1903
1903
  */
1904
1904
  var t$l;
1905
- const i$C = window, s$u = i$C.trustedTypes, e$Q = s$u ? s$u.createPolicy("lit-html", { createHTML: (te) => te }) : void 0, o$R = "$lit$", n$E = `lit$${(Math.random() + "").slice(9)}$`, l$y = "?" + n$E, h$t = `<${l$y}>`, r$I = document, u$u = () => r$I.createComment(""), d$s = (te) => te === null || typeof te != "object" && typeof te != "function", c$s = Array.isArray, v$f = (te) => c$s(te) || typeof (te == null ? void 0 : te[Symbol.iterator]) == "function", a$p = `[
1905
+ const i$C = window, s$u = i$C.trustedTypes, e$S = s$u ? s$u.createPolicy("lit-html", { createHTML: (te) => te }) : void 0, o$R = "$lit$", n$E = `lit$${(Math.random() + "").slice(9)}$`, l$y = "?" + n$E, h$t = `<${l$y}>`, r$I = document, u$u = () => r$I.createComment(""), d$s = (te) => te === null || typeof te != "object" && typeof te != "function", c$s = Array.isArray, v$f = (te) => c$s(te) || typeof (te == null ? void 0 : te[Symbol.iterator]) == "function", a$p = `[
1906
1906
  \f\r]`, f$p = /<(?:(!--|\/[^a-zA-Z])|(\/?[a-zA-Z][^>\s]*)|(\/?$))/g, _$k = /-->/g, m$f = />/g, p$f = RegExp(`>|${a$p}(?:([^\\s"'>=/]+)(${a$p}*=${a$p}*(?:[^
1907
1907
  \f\r"'\`<>=]|("|')|))|$)`, "g"), g$l = /'/g, $$a = /"/g, y$i = /^(?:script|style|textarea|title)$/i, T$3 = Symbol.for("lit-noChange"), A$1 = Symbol.for("lit-nothing"), E$5 = /* @__PURE__ */ new WeakMap(), C$9 = r$I.createTreeWalker(r$I, 129, null, !1);
1908
1908
  function P$2(te, J) {
1909
1909
  if (!Array.isArray(te) || !te.hasOwnProperty("raw")) throw Error("invalid template strings array");
1910
- return e$Q !== void 0 ? e$Q.createHTML(J) : J;
1910
+ return e$S !== void 0 ? e$S.createHTML(J) : J;
1911
1911
  }
1912
1912
  const V$4 = (te, J) => {
1913
1913
  const X = te.length - 1, re = [];
@@ -2294,11 +2294,11 @@ const i$B = (te, J) => J.kind === "method" && J.descriptor && !("value" in J.des
2294
2294
  typeof J.initializer == "function" && (this[J.key] = J.initializer.call(this));
2295
2295
  }, finisher(X) {
2296
2296
  X.createProperty(J.key, te);
2297
- } }, e$P = (te, J, X) => {
2297
+ } }, e$R = (te, J, X) => {
2298
2298
  J.constructor.createProperty(X, te);
2299
2299
  };
2300
2300
  function n$C(te) {
2301
- return (J, X) => X !== void 0 ? e$P(te, J, X) : i$B(te, J);
2301
+ return (J, X) => X !== void 0 ? e$R(te, J, X) : i$B(te, J);
2302
2302
  }
2303
2303
  /**
2304
2304
  * @license
@@ -2328,7 +2328,7 @@ function k$6(te) {
2328
2328
  * Copyright 2019 Google LLC
2329
2329
  * SPDX-License-Identifier: BSD-3-Clause
2330
2330
  */
2331
- const t$k = globalThis, e$O = t$k.ShadowRoot && (t$k.ShadyCSS === void 0 || t$k.ShadyCSS.nativeShadow) && "adoptedStyleSheets" in Document.prototype && "replace" in CSSStyleSheet.prototype, s$r = Symbol(), o$P = /* @__PURE__ */ new WeakMap();
2331
+ const t$k = globalThis, e$Q = t$k.ShadowRoot && (t$k.ShadyCSS === void 0 || t$k.ShadyCSS.nativeShadow) && "adoptedStyleSheets" in Document.prototype && "replace" in CSSStyleSheet.prototype, s$r = Symbol(), o$P = /* @__PURE__ */ new WeakMap();
2332
2332
  let n$A = class {
2333
2333
  constructor(J, X, re) {
2334
2334
  if (this._$cssResult$ = !0, re !== s$r) throw Error("CSSResult is not constructable. Use `unsafeCSS` or `css` instead.");
@@ -2337,7 +2337,7 @@ let n$A = class {
2337
2337
  get styleSheet() {
2338
2338
  let J = this.o;
2339
2339
  const X = this.t;
2340
- if (e$O && J === void 0) {
2340
+ if (e$Q && J === void 0) {
2341
2341
  const re = X !== void 0 && X.length === 1;
2342
2342
  re && (J = o$P.get(X)), J === void 0 && ((this.o = J = new CSSStyleSheet()).replaceSync(this.cssText), re && o$P.set(X, J));
2343
2343
  }
@@ -2355,12 +2355,12 @@ const r$H = (te) => new n$A(typeof te == "string" ? te : te + "", void 0, s$r),
2355
2355
  })(ne) + te[oe + 1], te[0]);
2356
2356
  return new n$A(X, te, s$r);
2357
2357
  }, S$e = (te, J) => {
2358
- if (e$O) te.adoptedStyleSheets = J.map((X) => X instanceof CSSStyleSheet ? X : X.styleSheet);
2358
+ if (e$Q) te.adoptedStyleSheets = J.map((X) => X instanceof CSSStyleSheet ? X : X.styleSheet);
2359
2359
  else for (const X of J) {
2360
2360
  const re = document.createElement("style"), ne = t$k.litNonce;
2361
2361
  ne !== void 0 && re.setAttribute("nonce", ne), re.textContent = X.cssText, te.appendChild(re);
2362
2362
  }
2363
- }, c$r = e$O ? (te) => te : (te) => te instanceof CSSStyleSheet ? ((J) => {
2363
+ }, c$r = e$Q ? (te) => te : (te) => te instanceof CSSStyleSheet ? ((J) => {
2364
2364
  let X = "";
2365
2365
  for (const re of J.cssRules) X += re.cssText;
2366
2366
  return r$H(X);
@@ -2370,7 +2370,7 @@ const r$H = (te) => new n$A(typeof te == "string" ? te : te + "", void 0, s$r),
2370
2370
  * Copyright 2017 Google LLC
2371
2371
  * SPDX-License-Identifier: BSD-3-Clause
2372
2372
  */
2373
- const { is: i$z, defineProperty: e$N, getOwnPropertyDescriptor: r$G, getOwnPropertyNames: h$s, getOwnPropertySymbols: o$O, getPrototypeOf: n$z } = Object, a$n = globalThis, c$q = a$n.trustedTypes, l$t = c$q ? c$q.emptyScript : "", p$e = a$n.reactiveElementPolyfillSupport, d$q = (te, J) => te, u$r = { toAttribute(te, J) {
2373
+ const { is: i$z, defineProperty: e$P, getOwnPropertyDescriptor: r$G, getOwnPropertyNames: h$s, getOwnPropertySymbols: o$O, getPrototypeOf: n$z } = Object, a$n = globalThis, c$q = a$n.trustedTypes, l$t = c$q ? c$q.emptyScript : "", p$e = a$n.reactiveElementPolyfillSupport, d$q = (te, J) => te, u$r = { toAttribute(te, J) {
2374
2374
  switch (J) {
2375
2375
  case Boolean:
2376
2376
  te = te ? l$t : null;
@@ -2410,7 +2410,7 @@ let b$s = class extends HTMLElement {
2410
2410
  static createProperty(J, X = y$h) {
2411
2411
  if (X.state && (X.attribute = !1), this._$Ei(), this.elementProperties.set(J, X), !X.noAccessor) {
2412
2412
  const re = Symbol(), ne = this.getPropertyDescriptor(J, re, X);
2413
- ne !== void 0 && e$N(this.prototype, J, ne);
2413
+ ne !== void 0 && e$P(this.prototype, J, ne);
2414
2414
  }
2415
2415
  }
2416
2416
  static getPropertyDescriptor(J, X, re) {
@@ -2918,6 +2918,28 @@ function n$x(te) {
2918
2918
  function r$E(te) {
2919
2919
  return n$x({ ...te, state: !0, attribute: !1 });
2920
2920
  }
2921
+ /**
2922
+ * @license
2923
+ * Copyright 2017 Google LLC
2924
+ * SPDX-License-Identifier: BSD-3-Clause
2925
+ */
2926
+ const e$O = (te, J, X) => (X.configurable = !0, X.enumerable = !0, Reflect.decorate && typeof J != "object" && Object.defineProperty(te, J, X), X);
2927
+ /**
2928
+ * @license
2929
+ * Copyright 2017 Google LLC
2930
+ * SPDX-License-Identifier: BSD-3-Clause
2931
+ */
2932
+ function e$N(te, J) {
2933
+ return (X, re, ne) => {
2934
+ const oe = (de) => {
2935
+ var ce;
2936
+ return ((ce = de.renderRoot) == null ? void 0 : ce.querySelector(te)) ?? null;
2937
+ };
2938
+ return e$O(X, re, { get() {
2939
+ return oe(this);
2940
+ } });
2941
+ };
2942
+ }
2921
2943
  const y$g = (te) => j$2(te, p$h);
2922
2944
  let a$m = class {
2923
2945
  constructor() {
@@ -11483,9 +11505,9 @@ const normalizeStringToNFD = (te) => te == null ? "" : String(te).normalize("NFD
11483
11505
  const X = normalizeStringToNFD(te), re = normalizeStringToNFD(J);
11484
11506
  return X.toString().toLowerCase().indexOf(re) !== -1 || X.toString().indexOf(re) !== -1;
11485
11507
  }, commonFieldsSearchPredicate = (te, J) => {
11486
- var he, ue, pe, fe, ge, me, ve;
11487
- const X = ((he = te.professional) == null ? void 0 : he.name) && propContainsString((ue = te.professional) == null ? void 0 : ue.name, J), re = te.center.description && propContainsString(te.center.description, J), ne = ((pe = te.professional) == null ? void 0 : pe.speciality.description) && propContainsString((fe = te.professional) == null ? void 0 : fe.speciality.description, J), oe = ((ge = te.professional) == null ? void 0 : ge.role.description) && propContainsString((me = te.professional) == null ? void 0 : me.role.description, J), de = te.service.description && propContainsString(te.service.description, J), ce = (ve = te.diagnostics) == null ? void 0 : ve.some(
11488
- (be) => propContainsString(be.id, J) || propContainsString(be.description, J)
11508
+ var he, ue, pe, fe, ge, me, ve, be, _e, we, Se;
11509
+ const X = ((he = te.professional) == null ? void 0 : he.name) && propContainsString((ue = te.professional) == null ? void 0 : ue.name, J), re = ((pe = te.center) == null ? void 0 : pe.description) && propContainsString(te.center.description, J), ne = ((ge = (fe = te.professional) == null ? void 0 : fe.speciality) == null ? void 0 : ge.description) && propContainsString((me = te.professional) == null ? void 0 : me.speciality.description, J), oe = ((be = (ve = te.professional) == null ? void 0 : ve.role) == null ? void 0 : be.description) && propContainsString((_e = te.professional) == null ? void 0 : _e.role.description, J), de = ((we = te.service) == null ? void 0 : we.description) && propContainsString(te.service.description, J), ce = (Se = te.diagnostics) == null ? void 0 : Se.some(
11510
+ (Ce) => propContainsString(Ce.id, J) || propContainsString(Ce.description, J)
11489
11511
  );
11490
11512
  return X || re || ne || oe || de || ce;
11491
11513
  };
@@ -11557,7 +11579,7 @@ const activityHistoryFiltersSelector = (te) => te.activityHistoryFilters.filters
11557
11579
  return !1;
11558
11580
  const X = te.map((ne) => ne.codi).sort(), re = J.map((ne) => ne.codi).sort();
11559
11581
  return X.every((ne, oe) => ne === re[oe]);
11560
- }, hasValidDiagnostic = (te) => te != null && typeof te.codi == "string" && typeof te.cataleg == "string" && typeof te.descripcio == "string", hasValidDiagnostics = (te) => te == null ? !0 : Array.isArray(te) && te.every(hasValidDiagnostic), isSameVisit = (te, J) => {
11582
+ }, hasValidDiagnostic = (te) => te != null && typeof te.codi == "string" && typeof te.cataleg == "string" && typeof te.description == "string", hasValidDiagnostics = (te) => te == null ? !0 : Array.isArray(te) && te.every(hasValidDiagnostic), isSameVisit = (te, J) => {
11561
11583
  var oe, de, ce, he, ue, pe, fe, ge, me, ve, be, _e, we, Se, Ce, ye, Ae, Le;
11562
11584
  const X = ((oe = te.professional) == null ? void 0 : oe.id) === ((de = J.professional) == null ? void 0 : de.id) && ((he = (ce = te.professional) == null ? void 0 : ce.role) == null ? void 0 : he.id) === ((pe = (ue = J.professional) == null ? void 0 : ue.role) == null ? void 0 : pe.id) && ((ge = (fe = te.professional) == null ? void 0 : fe.speciality) == null ? void 0 : ge.id) === ((ve = (me = J.professional) == null ? void 0 : me.speciality) == null ? void 0 : ve.id), re = ((be = te.ep) == null ? void 0 : be.id) === ((_e = J.ep) == null ? void 0 : _e.id) && ((we = te.up) == null ? void 0 : we.id) === ((Se = J.up) == null ? void 0 : Se.id) && ((Ce = te.center) == null ? void 0 : Ce.id) === ((ye = J.center) == null ? void 0 : ye.id) && ((Ae = te.service) == null ? void 0 : Ae.id) === ((Le = J.service) == null ? void 0 : Le.id), ne = new Date(te.date).toDateString() === new Date(J.date).toDateString();
11563
11585
  return X && re && ne;
@@ -11692,7 +11714,7 @@ const activityHistoryCollectionsSelector = (te) => te.activityHistoryCollections
11692
11714
  ), de = groupActivityHistoryItems(oe);
11693
11715
  return sortGroupsByMostRecentDate(de);
11694
11716
  }
11695
- ), styles$g = ":host{min-height:1px;height:100%}.virtualizer{height:100%;padding-inline:16px}.container{min-height:1px;height:100%}.visit:first-child{margin-top:var(--dss-spacing-md)}.visit{width:calc(100% - var(--dss-spacing-md) - var(--dss-spacing-md));display:flex;flex-direction:column;gap:var(--dss-spacing-md);background-color:#fff;border-radius:var(--dss-radius-sm);padding:var(--dss-spacing-sm);margin-bottom:var(--dss-spacing-md)}.visit .visit__header{display:flex;flex-direction:row;align-items:center;gap:16px}.visit .visit__header .title{flex:1;font-size:14px;line-height:24px;display:flex;flex-direction:row;gap:12px;color:var(--color-neutral-800)}.visit .visit__header .title-date{font-weight:700}.visit .visit__header .title-description{font-weight:600;display:flex;flex-direction:row;gap:4px}.visit .visit__header .highlight{background-color:#ff0;font-weight:700}.visit .visit__items{display:flex;flex-direction:column;gap:16px}.visit .visit__items .item[has-divider]{border-bottom:var(--dss-border-width-sm) solid var(--color-neutral-200)}.visit .visit__items .item[has-divider]:last-of-type{border:none}.visit .diagnostics{display:flex;flex-direction:column;gap:16px;border-bottom:var(--dss-border-width-sm) solid var(--color-neutral-200)}.visit .diagnostics:last-of-type{border:none}.visit .diagnostics .diagnostics__header{display:flex;flex-direction:row;align-items:center;gap:16px}.visit .diagnostics .diagnostics__items{display:flex;flex-direction:column}.visit .diagnostics .diagnostics__items .item[has-divider]{border-bottom:var(--dss-border-width-sm) solid var(--color-neutral-200)}.visit .diagnostics .diagnostics__items .item[has-divider]:last-of-type{border:none}.feedback{width:100%;height:100%;display:flex;align-items:center;justify-content:center}";
11717
+ ), styles$g = ":host{min-height:1px;height:100%}.virtualizer{height:100%;padding-inline:16px}.container{min-height:1px;height:100%}.visit:first-child{margin-top:var(--dss-spacing-md)}.visit{width:calc(100% - var(--dss-spacing-md) - var(--dss-spacing-md));display:flex;flex-direction:column;gap:var(--dss-spacing-sm);background-color:#fff;border-radius:var(--dss-radius-sm);padding:var(--dss-spacing-sm);margin-bottom:var(--dss-spacing-md)}.visit .visit__header{display:flex;flex-direction:row;align-items:center;gap:16px}.visit .visit__header .title{flex:1;font-size:14px;line-height:24px;display:flex;flex-direction:row;gap:12px;color:var(--color-neutral-800)}.visit .visit__header .title-date{font-weight:700}.visit .visit__header .title-description{font-weight:600;display:flex;flex-direction:row;gap:4px}.visit .visit__header .highlight{background-color:#ff0;font-weight:700}.visit .visit__items{display:flex;flex-direction:column;gap:16px}.visit .visit__items .item[has-divider]{border-bottom:var(--dss-border-width-sm) solid var(--color-neutral-200)}.visit .visit__items .item[has-divider]:last-of-type{border:none}.visit .diagnostics{display:flex;flex-direction:column;gap:var(--dss-spacing-sm);border-bottom:var(--dss-border-width-sm) solid var(--color-neutral-200)}.visit .diagnostics:last-of-type{border:none}.visit .diagnostics .diagnostics__header{display:flex;flex-direction:row;align-items:center;gap:16px}.visit .diagnostics .diagnostics__items{display:flex;flex-direction:column}.visit .diagnostics .diagnostics__items .item[has-divider]{border-bottom:var(--dss-border-width-sm) solid var(--color-neutral-200)}.visit .diagnostics .diagnostics__items .item[has-divider]:last-of-type{border:none}.feedback{width:100%;height:100%;display:flex;align-items:center;justify-content:center}";
11696
11718
  function toDate(te) {
11697
11719
  const J = Object.prototype.toString.call(te);
11698
11720
  return te instanceof Date || typeof te == "object" && J === "[object Date]" ? new te.constructor(+te) : typeof te == "number" || J === "[object Number]" || typeof te == "string" || J === "[object String]" ? new Date(te) : /* @__PURE__ */ new Date(NaN);
@@ -14466,6 +14488,146 @@ const notFound = "data:image/svg+xml,%3csvg%20width='215'%20height='150'%20viewB
14466
14488
  * SPDX-License-Identifier: BSD-3-Clause
14467
14489
  */
14468
14490
  const to = (te) => te ?? D$1;
14491
+ function shouldShowRole(te) {
14492
+ var J, X;
14493
+ return !((X = (J = te.professional) == null ? void 0 : J.speciality) != null && X.description);
14494
+ }
14495
+ const hasItemDivider = (te, J) => {
14496
+ var re;
14497
+ const X = J.findIndex((ne) => ne.id === te.id);
14498
+ return X === -1 ? !1 : X === J.length - 1 ? !0 : !((re = te.diagnostics) != null && re.length);
14499
+ }, mergeHistoryItemsAndSubgroups = (te) => {
14500
+ const J = te.items.map((re) => ({
14501
+ type: "item",
14502
+ date: new Date(re.date),
14503
+ item: re
14504
+ })), X = te.subGroups.map((re) => ({
14505
+ type: "subGroup",
14506
+ date: re.items.length ? new Date(re.items[0].date) : /* @__PURE__ */ new Date(0),
14507
+ subGroup: re
14508
+ }));
14509
+ return [...J, ...X].sort((re, ne) => ne.date.getTime() - re.date.getTime());
14510
+ }, template$h = (te) => {
14511
+ var J;
14512
+ return te._hasUpdatedOnce ? ke$1`
14513
+ <div class="container">
14514
+ <activity-history-full-data-error></activity-history-full-data-error>
14515
+ <activity-history-partial-data-error></activity-history-partial-data-error>
14516
+
14517
+ ${((J = te.historyGroups) == null ? void 0 : J.length) > 0 ? ke$1`
14518
+ <lit-virtualizer class="virtualizer"
14519
+ ?scroller=${!0}
14520
+ .items=${te.historyGroups}
14521
+ .renderItem=${(X, re) => {
14522
+ var ne, oe, de, ce;
14523
+ return ke$1`
14524
+ <div class="visit zIndex${te.historyGroups.length - re}"
14525
+ data-date=${to(((ne = X == null ? void 0 : X.items[0]) == null ? void 0 : ne.date) || ((de = (oe = X.subGroups[0]) == null ? void 0 : oe.items[0]) == null ? void 0 : de.date))}>
14526
+ ${visitHeaderTemplate(te, X.items[0] || ((ce = X.subGroups[0]) == null ? void 0 : ce.items[0]))}
14527
+ <div class="visit__items">
14528
+ ${Qt(
14529
+ mergeHistoryItemsAndSubgroups(X),
14530
+ (he) => he.type === "item" ? he.item.id : he.subGroup.id,
14531
+ (he) => {
14532
+ if (he.type === "item") {
14533
+ const pe = he.item;
14534
+ return ke$1`
14535
+ <div
14536
+ class="item"
14537
+ ?has-divider=${hasItemDivider(pe, X.items)}
14538
+ >
14539
+ ${pe.component}
14540
+ </div>
14541
+ `;
14542
+ }
14543
+ const ue = he.subGroup;
14544
+ return ke$1`
14545
+ <div class="diagnostics">
14546
+ ${diagnosticHeaderTemplate(ue.items[0])}
14547
+ <div class="diagnostics__items">
14548
+ ${Qt(
14549
+ ue.items,
14550
+ (pe) => pe.id,
14551
+ (pe) => ke$1`
14552
+ <div class="item"
14553
+ ?has-divider=${hasItemDivider(pe, ue.items)}>
14554
+ ${pe.component}
14555
+ </div>
14556
+ `
14557
+ )}
14558
+ </div>
14559
+ </div>
14560
+ `;
14561
+ }
14562
+ )}
14563
+ </div>
14564
+ </div>
14565
+ `;
14566
+ }}
14567
+ ></lit-virtualizer>
14568
+ ` : !te.isAnyCollectionLoadingWithoutAnyLoaded && !te.isSomeCollectionLoadedAndOtherLoading ? ke$1`
14569
+ <dss-user-feedback
14570
+ class="feedback"
14571
+ imagesrc=${notFound}
14572
+ title=${translate("noResults")}>
14573
+ </dss-user-feedback>
14574
+ ` : D$1}
14575
+ </div>
14576
+ ` : ke$1`<div class="container"></div>`;
14577
+ }, visitHeaderTemplate = (te, J) => J ? ke$1`
14578
+ <div class="visit__header">
14579
+ <div class="title">
14580
+ <div class="title-date">
14581
+ <div>${format(new Date(J.date), "dd/MM/yyyy")}</div>
14582
+ </div>
14583
+ <div class="title-description">
14584
+ <div>
14585
+ ${renderProfessionalValues(te, J)}
14586
+ </div>
14587
+ </div>
14588
+ </div>
14589
+ </div>
14590
+ ` : D$1, renderProfessionalValues = (te, J) => {
14591
+ var ne, oe, de, ce, he, ue;
14592
+ if (!J.professional) return D$1;
14593
+ const X = shouldShowRole(J), re = [];
14594
+ return re.push(te.highlighted(J.professional.name)), X && ((oe = (ne = J.professional) == null ? void 0 : ne.role) != null && oe.description) && re.push(te.highlighted(J.professional.role.description)), (de = J.up) != null && de.description && re.push(te.highlighted(J.up.description)), (he = (ce = J.professional) == null ? void 0 : ce.speciality) != null && he.description && re.push(te.highlighted(J.professional.speciality.description)), (ue = J.service) != null && ue.description && re.push(te.highlighted(J.service.description)), re.map((pe, fe) => ke$1`${pe}${fe < re.length - 1 ? " | " : ""}`);
14595
+ }, diagnosticHeaderTemplate = (te) => te && ke$1`
14596
+ <div class="diagnostics__header">
14597
+ ${te.diagnostics.filter(
14598
+ (J) => J.description != null && J.description.trim() !== ""
14599
+ ).map(
14600
+ (J) => {
14601
+ var X;
14602
+ return ke$1`<dss-badge text=${(X = J.description) == null ? void 0 : X.toUpperCase()} state="info" size="sm" outlined></dss-badge>`;
14603
+ }
14604
+ )}
14605
+ </div>
14606
+ `;
14607
+ /**
14608
+ * @license
14609
+ * Copyright 2017 Google LLC
14610
+ * SPDX-License-Identifier: BSD-3-Clause
14611
+ */
14612
+ class le extends i$x {
14613
+ constructor(J) {
14614
+ if (super(J), this.it = D$1, J.type !== t$g.CHILD) throw Error(this.constructor.directiveName + "() can only be used in child bindings");
14615
+ }
14616
+ render(J) {
14617
+ if (J === D$1 || J == null) return this._t = void 0, this.it = J;
14618
+ if (J === R) return J;
14619
+ if (typeof J != "string") throw Error(this.constructor.directiveName + "() called with a non-string value");
14620
+ if (J === this.it) return this._t;
14621
+ this.it = J;
14622
+ const X = [J];
14623
+ return X.raw = X, this._t = { _$litType$: this.constructor.resultType, strings: X, values: [] };
14624
+ }
14625
+ }
14626
+ le.directiveName = "unsafeHTML", le.resultType = 1;
14627
+ const ae = e$K(le), isAnyCollectionBusySelector = (te) => te.activityHistoryCollections.busy.length > 0, isAnyCollectionLoadingWithoutAnyLoaded = (te) => {
14628
+ const J = Object.values(te.activityHistoryCollections.collections);
14629
+ return !(J != null && J.length) && isAnyCollectionBusySelector(te);
14630
+ }, isSomeCollectionLoadedAndOtherLoading = (te) => Object.values(te.activityHistoryCollections.collections) && isAnyCollectionBusySelector(te);
14469
14631
  /**
14470
14632
  * @license
14471
14633
  * Copyright 2017 Google LLC
@@ -15037,142 +15199,73 @@ class VirtualizeDirective extends $t {
15037
15199
  }
15038
15200
  }
15039
15201
  const virtualize = e$K(VirtualizeDirective);
15040
- function shouldShowRole(te) {
15041
- var J, X;
15042
- return !((X = (J = te.professional) == null ? void 0 : J.speciality) != null && X.description);
15202
+ function __decorate(te, J, X, re) {
15203
+ var ne = arguments.length, oe = ne < 3 ? J : re === null ? re = Object.getOwnPropertyDescriptor(J, X) : re, de;
15204
+ if (typeof Reflect == "object" && typeof Reflect.decorate == "function") oe = Reflect.decorate(te, J, X, re);
15205
+ else for (var ce = te.length - 1; ce >= 0; ce--) (de = te[ce]) && (oe = (ne < 3 ? de(oe) : ne > 3 ? de(J, X, oe) : de(J, X)) || oe);
15206
+ return ne > 3 && oe && Object.defineProperty(J, X, oe), oe;
15043
15207
  }
15044
- const hasItemDivider = (te, J) => {
15045
- var re;
15046
- const X = J.findIndex((ne) => ne.id === te.id);
15047
- return X === -1 ? !1 : X === J.length - 1 ? !0 : !((re = te.diagnostics) != null && re.length);
15048
- }, mergeHistoryItemsAndSubgroups = (te) => {
15049
- const J = te.items.map((re) => ({
15050
- type: "item",
15051
- date: new Date(re.date),
15052
- item: re
15053
- })), X = te.subGroups.map((re) => ({
15054
- type: "subGroup",
15055
- date: re.items.length ? new Date(re.items[0].date) : /* @__PURE__ */ new Date(0),
15056
- subGroup: re
15057
- }));
15058
- return [...J, ...X].sort((re, ne) => ne.date.getTime() - re.date.getTime());
15059
- }, template$h = (te) => {
15060
- var J;
15061
- return te._hasUpdatedOnce ? ke$1`
15062
- <div class="container">
15063
- <activity-history-full-data-error></activity-history-full-data-error>
15064
- <activity-history-partial-data-error></activity-history-partial-data-error>
15065
- ${((J = te.historyGroups) == null ? void 0 : J.length) > 0 ? ke$1`
15066
- <div class="virtualizer">
15067
- ${virtualize({
15068
- items: te.historyGroups,
15069
- renderItem: (X, re) => {
15070
- var ne, oe, de, ce;
15071
- return ke$1`
15072
- <div class="visit zIndex${te.historyGroups.length - re}" data-date=${to(((ne = X == null ? void 0 : X.items[0]) == null ? void 0 : ne.date) || ((de = (oe = X.subGroups[0]) == null ? void 0 : oe.items[0]) == null ? void 0 : de.date))}>
15073
- ${visitHeaderTemplate(te, X.items[0] || ((ce = X.subGroups[0]) == null ? void 0 : ce.items[0]))}
15074
- <div class="visit__items">
15075
- ${Qt(
15076
- mergeHistoryItemsAndSubgroups(X),
15077
- (he) => he.type === "item" ? he.item.id : he.subGroup.id,
15078
- (he) => {
15079
- if (he.type === "item") {
15080
- const pe = he.item;
15081
- return ke$1`
15082
- <div
15083
- class="item"
15084
- ?has-divider=${hasItemDivider(pe, X.items)}
15085
- >
15086
- ${pe.component}
15087
- </div>
15088
- `;
15089
- }
15090
- const ue = he.subGroup;
15091
- return ke$1`
15092
- <div class="diagnostics">
15093
- ${diagnosticHeaderTemplate(ue.items[0])}
15094
- <div class="diagnostics__items">
15095
- ${Qt(
15096
- ue.items,
15097
- (pe) => pe.id,
15098
- (pe) => ke$1`
15099
- <div
15100
- class="item"
15101
- ?has-divider=${hasItemDivider(pe, ue.items)}
15102
- >
15103
- ${pe.component}
15104
- </div>
15105
- `
15106
- )}
15107
- </div>
15108
- </div>
15109
- `;
15110
- }
15111
- )}
15112
- </div>
15113
- </div>
15114
- `;
15115
- },
15116
- scroller: !0
15117
- })}
15118
- </div>
15119
- ` : !te.isAnyCollectionLoadingWithoutAnyLoaded && !te.isSomeCollectionLoadedAndOtherLoading ? ke$1`<dss-user-feedback class="feedback" imagesrc=${notFound} title=${translate("noResults")}></dss-user-feedback>` : D$1}
15120
- </div>
15121
- ` : ke$1`<div class="container"></div>`;
15122
- }, visitHeaderTemplate = (te, J) => J ? ke$1`
15123
- <div class="visit__header">
15124
- <div class="title">
15125
- <div class="title-date">
15126
- <div>${format(new Date(J.date), "dd/MM/yyyy")}</div>
15127
- </div>
15128
- <div class="title-description">
15129
- <div>
15130
- ${renderProfessionalValues(te, J)}
15131
- </div>
15132
- </div>
15133
- </div>
15134
- </div>
15135
- ` : D$1, renderProfessionalValues = (te, J) => {
15136
- if (!J.professional) return D$1;
15137
- const X = shouldShowRole(J), re = [];
15138
- return re.push(te.highlighted(J.professional.name)), X && J.professional.role && re.push(te.highlighted(J.professional.role.description)), J.up && re.push(te.highlighted(J.up.description)), J.professional.speciality && re.push(te.highlighted(J.professional.speciality.description)), J.service && re.push(te.highlighted(J.service.description)), re.map((ne, oe) => ke$1`${ne}${oe < re.length - 1 ? " | " : ""}`);
15139
- }, diagnosticHeaderTemplate = (te) => te && ke$1`
15140
- <div class="diagnostics__header">
15141
-
15142
- ${te.diagnostics.filter(
15143
- (J) => J.descripcio != null && J.descripcio.trim() !== ""
15144
- ).map(
15145
- (J) => {
15146
- var X;
15147
- return ke$1`<dss-badge text=${(X = J.descripcio) == null ? void 0 : X.toUpperCase()} state="info" size="sm" outlined></dss-badge>`;
15148
- }
15149
- )}
15150
- </div>
15151
- `;
15208
+ typeof SuppressedError == "function" && SuppressedError;
15152
15209
  /**
15153
15210
  * @license
15154
- * Copyright 2017 Google LLC
15211
+ * Copyright 2021 Google LLC
15155
15212
  * SPDX-License-Identifier: BSD-3-Clause
15156
15213
  */
15157
- class le extends i$x {
15158
- constructor(J) {
15159
- if (super(J), this.it = D$1, J.type !== t$g.CHILD) throw Error(this.constructor.directiveName + "() can only be used in child bindings");
15214
+ class LitVirtualizer extends h$q {
15215
+ constructor() {
15216
+ super(...arguments), this.items = [], this.renderItem = defaultRenderItem, this.keyFunction = defaultKeyFunction, this.layout = {}, this.scroller = !1;
15160
15217
  }
15161
- render(J) {
15162
- if (J === D$1 || J == null) return this._t = void 0, this.it = J;
15163
- if (J === R) return J;
15164
- if (typeof J != "string") throw Error(this.constructor.directiveName + "() called with a non-string value");
15165
- if (J === this.it) return this._t;
15166
- this.it = J;
15167
- const X = [J];
15168
- return X.raw = X, this._t = { _$litType$: this.constructor.resultType, strings: X, values: [] };
15218
+ createRenderRoot() {
15219
+ return this;
15220
+ }
15221
+ render() {
15222
+ const { items: J, renderItem: X, keyFunction: re, layout: ne, scroller: oe } = this;
15223
+ return ke$1`${virtualize({
15224
+ items: J,
15225
+ renderItem: X,
15226
+ keyFunction: re,
15227
+ layout: ne,
15228
+ scroller: oe
15229
+ })}`;
15230
+ }
15231
+ element(J) {
15232
+ var X;
15233
+ return (X = this[virtualizerRef]) == null ? void 0 : X.element(J);
15234
+ }
15235
+ get layoutComplete() {
15236
+ var J;
15237
+ return (J = this[virtualizerRef]) == null ? void 0 : J.layoutComplete;
15238
+ }
15239
+ /**
15240
+ * This scrollToIndex() shim is here to provide backwards compatibility with other 0.x versions of
15241
+ * lit-virtualizer. It is deprecated and will likely be removed in the 1.0.0 release.
15242
+ */
15243
+ scrollToIndex(J, X = "start") {
15244
+ var re;
15245
+ (re = this.element(J)) == null || re.scrollIntoView({ block: X });
15169
15246
  }
15170
15247
  }
15171
- le.directiveName = "unsafeHTML", le.resultType = 1;
15172
- const ae = e$K(le), isAnyCollectionBusySelector = (te) => te.activityHistoryCollections.busy.length > 0, isAnyCollectionLoadingWithoutAnyLoaded = (te) => {
15173
- const J = Object.values(te.activityHistoryCollections.collections);
15174
- return !(J != null && J.length) && isAnyCollectionBusySelector(te);
15175
- }, isSomeCollectionLoadedAndOtherLoading = (te) => Object.values(te.activityHistoryCollections.collections) && isAnyCollectionBusySelector(te);
15248
+ __decorate([
15249
+ n$x({ attribute: !1 })
15250
+ ], LitVirtualizer.prototype, "items", void 0);
15251
+ __decorate([
15252
+ n$x()
15253
+ ], LitVirtualizer.prototype, "renderItem", void 0);
15254
+ __decorate([
15255
+ n$x()
15256
+ ], LitVirtualizer.prototype, "keyFunction", void 0);
15257
+ __decorate([
15258
+ n$x({ attribute: !1 })
15259
+ ], LitVirtualizer.prototype, "layout", void 0);
15260
+ __decorate([
15261
+ n$x({ reflect: !0, type: Boolean })
15262
+ ], LitVirtualizer.prototype, "scroller", void 0);
15263
+ /**
15264
+ * @license
15265
+ * Copyright 2021 Google LLC
15266
+ * SPDX-License-Identifier: BSD-3-Clause
15267
+ */
15268
+ customElements.define("lit-virtualizer", LitVirtualizer);
15176
15269
  var __defProp$o = Object.defineProperty, __getOwnPropDesc$f = Object.getOwnPropertyDescriptor, __decorateClass$o = (te, J, X, re) => {
15177
15270
  for (var ne = re > 1 ? void 0 : re ? __getOwnPropDesc$f(J, X) : J, oe = te.length - 1, de; oe >= 0; oe--)
15178
15271
  (de = te[oe]) && (ne = (re ? de(J, X, ne) : de(ne)) || ne);
@@ -15233,11 +15326,14 @@ let ActivityHistoryTimeline = class extends h$q {
15233
15326
  return te ? ae(this.highlightMatch(te, this.searchString)) : null;
15234
15327
  }
15235
15328
  _scrollIntoDate(te) {
15236
- let J = null, X = Number.POSITIVE_INFINITY;
15237
- this.shadowRoot.querySelectorAll(".visit").forEach((re) => {
15238
- const ne = new Date(re.dataset.date).getTime(), oe = Math.abs(ne - te);
15239
- oe < X && (X = oe, J = re);
15240
- }), J && J.scrollIntoView({ behavior: "smooth", block: "start" });
15329
+ let J = -1, X = Number.POSITIVE_INFINITY;
15330
+ (this.historyGroups ?? []).forEach((re, ne) => {
15331
+ var he, ue, pe, fe, ge, me;
15332
+ const oe = ((ue = (he = re.items) == null ? void 0 : he[0]) == null ? void 0 : ue.date) || ((me = (ge = (fe = (pe = re.subGroups) == null ? void 0 : pe[0]) == null ? void 0 : fe.items) == null ? void 0 : ge[0]) == null ? void 0 : me.date);
15333
+ if (!oe) return;
15334
+ const de = new Date(oe).getTime(), ce = Math.abs(de - te);
15335
+ ce < X && (X = ce, J = ne);
15336
+ }), J !== -1 && this._virtualizer && this._virtualizer[virtualizerRef].element(J).scrollIntoView();
15241
15337
  }
15242
15338
  };
15243
15339
  ActivityHistoryTimeline.styles = i$A`
@@ -15255,6 +15351,9 @@ __decorateClass$o([
15255
15351
  __decorateClass$o([
15256
15352
  connectedProperty(activityHistorySearchStringSelector)
15257
15353
  ], ActivityHistoryTimeline.prototype, "searchString", 2);
15354
+ __decorateClass$o([
15355
+ e$N(".virtualizer")
15356
+ ], ActivityHistoryTimeline.prototype, "_virtualizer", 2);
15258
15357
  ActivityHistoryTimeline = __decorateClass$o([
15259
15358
  t$j("activity-history-timeline")
15260
15359
  ], ActivityHistoryTimeline);
@@ -43870,6 +43969,14 @@ const useSharedUI = () => {
43870
43969
  sortHint: "0010",
43871
43970
  callbackFn: () => shellApi.broker.send(new ExitShell("OBRIR_PI"))
43872
43971
  },
43972
+ {
43973
+ id: "dinamic-monitoring",
43974
+ icon: "poll",
43975
+ label: "Monitoratge dinàmic",
43976
+ type: "item",
43977
+ sortHint: "0030",
43978
+ callbackFn: () => navigateToEcapWithoutClosingWithCip("SIA_DEV")
43979
+ },
43873
43980
  {
43874
43981
  id: "processes",
43875
43982
  icon: "account_tree",