@feedmepos/mf-report 5.32.2-beta.0 → 5.32.3-beta.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (40) hide show
  1. package/dist/{App-BP79-pGe.js → App-BNQfnOS8.js} +4 -4
  2. package/dist/{DateRangeSelect-BQeTCYj3.js → DateRangeSelect-BS73I-EY.js} +1 -1
  3. package/dist/{Default.vue_vue_type_script_setup_true_lang-BOeoaMo1.js → Default.vue_vue_type_script_setup_true_lang-D0mOTzcw.js} +1 -1
  4. package/dist/DigestListView-C8FI4P9l.js +876 -0
  5. package/dist/DigestReaderView-uYimDn1a.js +526 -0
  6. package/dist/{DynamicWidget.vue_vue_type_script_setup_true_lang-D8QF3uYf.js → DynamicWidget.vue_vue_type_script_setup_true_lang-g0wq9TN7.js} +6 -6
  7. package/dist/{GlobalFilterSelect.vue_vue_type_script_setup_true_lang-qJU3Lajn.js → GlobalFilterSelect.vue_vue_type_script_setup_true_lang-C6Kk1Oc6.js} +4 -4
  8. package/dist/{InsightView-BdFa7Puu.js → InsightView-CYY3JR4R.js} +5 -5
  9. package/dist/{Integration-BYVJWVVm.js → Integration-CV75SnmP.js} +179 -179
  10. package/dist/{Integrations-C2C3ZTZE.js → Integrations-CtE730pa.js} +2 -2
  11. package/dist/{Layout-DA6Ea_fd.js → Layout-DjQ9AR4L.js} +1 -1
  12. package/dist/{LocationSelect.vue_vue_type_script_setup_true_lang-BWIv2bXa.js → LocationSelect.vue_vue_type_script_setup_true_lang-CLZJZtaS.js} +2 -2
  13. package/dist/{MenuTab.vue_vue_type_script_setup_true_lang-qZ20899_.js → MenuTab.vue_vue_type_script_setup_true_lang-BkCwTEZ8.js} +5 -5
  14. package/dist/{NavigationTab.vue_vue_type_script_setup_true_lang-gUs7SED3.js → NavigationTab.vue_vue_type_script_setup_true_lang-BnbjdkWg.js} +5 -5
  15. package/dist/{OverviewView-DxEdvcVU.js → OverviewView-DrLXEnyQ.js} +5 -5
  16. package/dist/{Report-Cwt1I1WF.js → Report-BFeedwld.js} +3 -3
  17. package/dist/ReportCanvasView-uSPSmxoS.js +1035 -0
  18. package/dist/{ReportEditor-DHEZfsbo.js → ReportEditor-DdmeWp-N.js} +7 -7
  19. package/dist/{ReportView-BJsozRvM.js → ReportView-DP-3aapL.js} +6 -6
  20. package/dist/{ReportViewRoute-D8SmSqK6.js → ReportViewRoute-Djtc4rpu.js} +2 -2
  21. package/dist/{Setting-Cz23FN6Y.js → Setting-Co0Fv5PF.js} +3 -3
  22. package/dist/{Template-FymPP-MH.js → Template-Dmfdlx_-.js} +3 -3
  23. package/dist/{TileEditor-B6qWtJyl.js → TileEditor-lbcwAmG7.js} +6 -6
  24. package/dist/{TilePageStack.vue_vue_type_script_setup_true_lang-DrWGT9_C.js → TilePageStack.vue_vue_type_script_setup_true_lang-Bewf5Mwf.js} +2 -2
  25. package/dist/{TransitionFade-D7B83Dif.js → TransitionFade-BvzD7CKL.js} +5 -5
  26. package/dist/{app-D_dN5Wt5.js → app-Bvy-gTq7.js} +14 -14
  27. package/dist/app.js +1 -1
  28. package/dist/{currency-DqVpMeDl.js → currency-CAUD27u3.js} +1 -1
  29. package/dist/{index-C4HXhNGH.js → index-D9j1ly8Z.js} +1 -1
  30. package/dist/{report-BU89xSvp.js → report-B4jAut5H.js} +1 -1
  31. package/dist/report-canvas-libs/components-1.js +57 -15
  32. package/dist/report-canvas-libs-CNx4fuqd.js +40 -0
  33. package/dist/style.css +1 -1
  34. package/dist/{useDigestFont-BEucXChN.js → useDigestFont-6hcS7_aG.js} +1 -1
  35. package/dist/{useReportCanvasPanel-DS-t5Qo6.js → useReportCanvasPanel-C2iiBQZf.js} +356 -393
  36. package/dist/{useRestaurantPermission-DCN49TLJ.js → useRestaurantPermission-D6WmoPR2.js} +1 -1
  37. package/package.json +1 -1
  38. package/dist/DigestListView-BzBiyKDg.js +0 -637
  39. package/dist/DigestReaderView-D7XQFPuA.js +0 -507
  40. package/dist/ReportCanvasView-wHRaYc3f.js +0 -966
@@ -1,6 +1,6 @@
1
1
  import { defineComponent as we, mergeModels as ke, useModel as Te, ref as L, computed as g, resolveComponent as C, createBlock as x, openBlock as c, withCtx as _, createElementVNode as v, createVNode as u, unref as t, normalizeClass as Le, createTextVNode as Ae, toDisplayString as U, createElementBlock as R, Fragment as he, renderSlot as gl, createCommentVNode as D, watch as ve, renderList as Ee, onMounted as bl, onUnmounted as Dl, resolveDynamicComponent as Ol, isRef as yl, normalizeStyle as rl } from "vue";
2
- import { W as Il, g as Ul, _ as Nl, a as Bl, e as De, S as We, d as hl, b as wl, T as Ml, c as Rl } from "./TransitionFade-D7B83Dif.js";
3
- import { C as xe, D as te, b as ze, F as Je, c as Oe, u as il, i as Pe, d as pe, M as _l, r as zl, e as el, n as Pl, f as ql, g as El, h as Ll, j as Gl, k as Wl, m as Al, a as Hl, o as ml, p as ll, q as jl, Q as Qe, l as Jl, t as Ql } from "./report-BU89xSvp.js";
2
+ import { W as Il, g as Ul, _ as Nl, a as Bl, e as De, S as We, d as hl, b as wl, T as Ml, c as Rl } from "./TransitionFade-BvzD7CKL.js";
3
+ import { C as xe, D as te, b as ze, F as Je, c as Oe, u as il, i as Pe, d as pe, M as _l, r as zl, e as el, n as Pl, f as ql, g as El, h as Ll, j as Gl, k as Wl, m as Al, a as Hl, o as ml, p as ll, q as jl, Q as Qe, l as Jl, t as Ql } from "./report-B4jAut5H.js";
4
4
  import { storeToRefs as qe } from "pinia";
5
5
  import { useRouter as sl, useRoute as ul } from "vue-router";
6
6
  import { useBreakpoints as Ke, useSnackbar as Fl, FmButtonColorThemeVariant as Ce } from "@feedmepos/ui-library";
@@ -8,13 +8,13 @@ import { u as dl } from "./message-dialog-UoMWOnil.js";
8
8
  import { u as Kl } from "./global-loader-BuxFfehu.js";
9
9
  import { u as Ge } from "./_plugin-vue_export-helper-C6QDExPN.js";
10
10
  import { r as He } from "./i18n-DbyciK4x.js";
11
- import { _ as tl } from "./TilePageStack.vue_vue_type_script_setup_true_lang-DrWGT9_C.js";
11
+ import { _ as tl } from "./TilePageStack.vue_vue_type_script_setup_true_lang-Bewf5Mwf.js";
12
12
  import { a as ol, _ as al } from "./SelectComponent.vue_vue_type_script_setup_true_lang-DW7Dk7iQ.js";
13
- import { d as Yl, e as Xl, i as Zl } from "./DynamicWidget.vue_vue_type_script_setup_true_lang-D8QF3uYf.js";
14
- import { g as et, d as lt, _ as cl } from "./GlobalFilterSelect.vue_vue_type_script_setup_true_lang-qJU3Lajn.js";
13
+ import { d as Yl, e as Xl, i as Zl } from "./DynamicWidget.vue_vue_type_script_setup_true_lang-g0wq9TN7.js";
14
+ import { g as et, d as lt, _ as cl } from "./GlobalFilterSelect.vue_vue_type_script_setup_true_lang-C6Kk1Oc6.js";
15
15
  import { useCoreStore as tt } from "@feedmepos/mf-common";
16
- import { u as ot, a as at } from "./app-D_dN5Wt5.js";
17
- import { d as rt } from "./DateRangeSelect-BQeTCYj3.js";
16
+ import { u as ot, a as at } from "./app-Bvy-gTq7.js";
17
+ import { d as rt } from "./DateRangeSelect-BS73I-EY.js";
18
18
  const nt = /* @__PURE__ */ we({
19
19
  __name: "WidgetDialog",
20
20
  props: /* @__PURE__ */ ke({
@@ -1,16 +1,16 @@
1
1
  import { defineComponent as z, computed as n, createBlock as f, openBlock as y, withCtx as w, renderSlot as ne, ref as ie, watch as ue, resolveComponent as V, createVNode as k, createElementVNode as R, unref as l, toDisplayString as ce, normalizeStyle as pe, normalizeClass as me } from "vue";
2
- import { _ as de } from "./MenuTab.vue_vue_type_script_setup_true_lang-qZ20899_.js";
3
- import { _ as ve } from "./TilePageStack.vue_vue_type_script_setup_true_lang-DrWGT9_C.js";
4
- import { u as fe, l as ye } from "./report-BU89xSvp.js";
2
+ import { _ as de } from "./MenuTab.vue_vue_type_script_setup_true_lang-BkCwTEZ8.js";
3
+ import { _ as ve } from "./TilePageStack.vue_vue_type_script_setup_true_lang-Bewf5Mwf.js";
4
+ import { u as fe, l as ye } from "./report-B4jAut5H.js";
5
5
  import { useRouter as ge, useRoute as be } from "vue-router";
6
- import { _ as _e } from "./Default.vue_vue_type_script_setup_true_lang-BOeoaMo1.js";
6
+ import { _ as _e } from "./Default.vue_vue_type_script_setup_true_lang-D0mOTzcw.js";
7
7
  import { storeToRefs as _ } from "pinia";
8
- import { a as we, b as Se, u as xe, g as Ce } from "./NavigationTab.vue_vue_type_script_setup_true_lang-gUs7SED3.js";
8
+ import { a as we, b as Se, u as xe, g as Ce } from "./NavigationTab.vue_vue_type_script_setup_true_lang-BnbjdkWg.js";
9
9
  import { _ as L } from "./SelectComponent.vue_vue_type_script_setup_true_lang-DW7Dk7iQ.js";
10
10
  import { useSnackbar as Te, useBreakpoints as he } from "@feedmepos/ui-library";
11
11
  import { u as ke } from "./global-loader-BuxFfehu.js";
12
12
  import { u as Re } from "./message-dialog-UoMWOnil.js";
13
- import { e as Pe, j as De } from "./app-D_dN5Wt5.js";
13
+ import { e as Pe, j as De } from "./app-Bvy-gTq7.js";
14
14
  import { u as Q, _ as Oe } from "./_plugin-vue_export-helper-C6QDExPN.js";
15
15
  import { r as Ie } from "./i18n-DbyciK4x.js";
16
16
  const Ee = /* @__PURE__ */ z({
@@ -1,10 +1,10 @@
1
1
  import { defineComponent as i, defineAsyncComponent as t, computed as m, createBlock as r, openBlock as n, unref as o } from "vue";
2
2
  import { useRoute as f } from "vue-router";
3
- import { u as _ } from "./report-BU89xSvp.js";
3
+ import { u as _ } from "./report-B4jAut5H.js";
4
4
  const v = /* @__PURE__ */ i({
5
5
  __name: "ReportViewRoute",
6
6
  setup(R) {
7
- const p = t(() => import("./ReportView-BJsozRvM.js")), s = t(() => import("./ReportCanvasView-wHRaYc3f.js")), c = f(), u = _(), a = m(() => {
7
+ const p = t(() => import("./ReportView-DP-3aapL.js")), s = t(() => import("./ReportCanvasView-uSPSmxoS.js")), c = f(), u = _(), a = m(() => {
8
8
  var e;
9
9
  return ((e = u.currentReport) == null ? void 0 : e.reportType) === "canvas";
10
10
  });
@@ -1,8 +1,8 @@
1
1
  import { defineComponent as R, ref as N, useModel as L, resolveComponent as V, createElementBlock as $, openBlock as h, createBlock as U, createElementVNode as t, resolveDynamicComponent as ue, unref as e, withCtx as b, createVNode as n, normalizeClass as B, toDisplayString as a, Fragment as W, renderList as X, createTextVNode as de, withDirectives as Y, vShow as ee, createCommentVNode as pe, computed as q, watch as ce, normalizeStyle as fe } from "vue";
2
- import { _ as _e } from "./Default.vue_vue_type_script_setup_true_lang-BOeoaMo1.js";
3
- import { d as A, C as G, D as ve, w as ge, x as Z, a as ye } from "./app-D_dN5Wt5.js";
2
+ import { _ as _e } from "./Default.vue_vue_type_script_setup_true_lang-D0mOTzcw.js";
3
+ import { d as A, C as G, D as ve, w as ge, x as Z, a as ye } from "./app-Bvy-gTq7.js";
4
4
  import { components as K, useSnackbar as te, useBreakpoints as oe, FmButtonColorThemeVariant as Q } from "@feedmepos/ui-library";
5
- import { e as le, t as E, s as he } from "./GlobalFilterSelect.vue_vue_type_script_setup_true_lang-qJU3Lajn.js";
5
+ import { e as le, t as E, s as he } from "./GlobalFilterSelect.vue_vue_type_script_setup_true_lang-C6Kk1Oc6.js";
6
6
  import { u as xe } from "./message-dialog-UoMWOnil.js";
7
7
  import { u as w } from "./_plugin-vue_export-helper-C6QDExPN.js";
8
8
  import { detectLocale as F } from "@feedmepos/mf-common";
@@ -1,15 +1,15 @@
1
1
  import { defineComponent as ie, computed as u, resolveComponent as v, createElementBlock as A, openBlock as _, renderSlot as Ve, createVNode as n, withCtx as s, createCommentVNode as q, createElementVNode as i, toDisplayString as d, ref as b, h as p, onMounted as Le, createBlock as R, unref as l, normalizeStyle as Se, normalizeClass as C, withDirectives as ae, Fragment as $e, renderList as Ie, withModifiers as re, vShow as ne } from "vue";
2
2
  import { a as Re } from "./SelectComponent.vue_vue_type_script_setup_true_lang-DW7Dk7iQ.js";
3
3
  import { u as me } from "./_plugin-vue_export-helper-C6QDExPN.js";
4
- import { _ as Pe } from "./Default.vue_vue_type_script_setup_true_lang-BOeoaMo1.js";
4
+ import { _ as Pe } from "./Default.vue_vue_type_script_setup_true_lang-D0mOTzcw.js";
5
5
  import { u as ze } from "./global-loader-BuxFfehu.js";
6
6
  import { u as De } from "./message-dialog-UoMWOnil.js";
7
- import { u as Ne } from "./report-BU89xSvp.js";
7
+ import { u as Ne } from "./report-B4jAut5H.js";
8
8
  import { r as se } from "./i18n-DbyciK4x.js";
9
9
  import { useBreakpoints as Be, useSnackbar as Me, components as Ee, FmButtonColorThemeVariant as Ke } from "@feedmepos/ui-library";
10
10
  import { useRouter as Ue, useRoute as je } from "vue-router";
11
11
  import { storeToRefs as He } from "pinia";
12
- import { j as Oe } from "./app-D_dN5Wt5.js";
12
+ import { j as Oe } from "./app-Bvy-gTq7.js";
13
13
  const Ae = { class: "flex flex-col h-full" }, qe = ["src"], Ge = { class: "fm-typo-en-body-lg-600 text-fm-color-typo-primary" }, Je = { class: "fm-typo-en-body-sm-400 text-fm-color-typo-secondary text-center" }, Qe = /* @__PURE__ */ ie({
14
14
  __name: "NoTemplate",
15
15
  props: {
@@ -1,18 +1,18 @@
1
1
  import { defineComponent as de, mergeModels as ve, useModel as ge, computed as x, ref as ae, resolveComponent as A, createElementBlock as W, openBlock as m, createVNode as u, createElementVNode as b, unref as l, withCtx as ee, toDisplayString as Y, Fragment as me, renderList as $e, withModifiers as he, createTextVNode as Xe, watch as ke, createCommentVNode as z, createBlock as I, renderSlot as kl, onBeforeUnmount as rl, resolveDynamicComponent as Fl, normalizeClass as Ve, withDirectives as Fe, vShow as Te, onMounted as Vl, withKeys as vl, vModelText as Wl, normalizeStyle as il, isRef as Xl } from "vue";
2
2
  import { useRoute as Hl, useRouter as ql } from "vue-router";
3
- import { u as ul, f as dl, h as We, F as Ne, d as He, S as sl, a as Gl, W as Jl, T as Yl, c as Kl, b as fl } from "./TransitionFade-D7B83Dif.js";
4
- import { W as J, a as Sl, D as Ye, S as gl, C as Zl, u as _l, P as yl, F as Pe, c as Le, o as Ql, k as et } from "./report-BU89xSvp.js";
3
+ import { u as ul, f as dl, h as We, F as Ne, d as He, S as sl, a as Gl, W as Jl, T as Yl, c as Kl, b as fl } from "./TransitionFade-BvzD7CKL.js";
4
+ import { W as J, a as Sl, D as Ye, S as gl, C as Zl, u as _l, P as yl, F as Pe, c as Le, o as Ql, k as et } from "./report-B4jAut5H.js";
5
5
  import { storeToRefs as Re } from "pinia";
6
6
  import { u as Tl } from "./message-dialog-UoMWOnil.js";
7
7
  import { useSnackbar as lt, useBreakpoints as $l, FmButtonColorThemeVariant as Ue } from "@feedmepos/ui-library";
8
- import { h as tt, g as xe, R as bl, d as ot, e as at, a as nt, L as Ae, b as ol, S as re, c as fe, f as al, j as hl, _ as Dl } from "./DynamicWidget.vue_vue_type_script_setup_true_lang-D8QF3uYf.js";
9
- import { a as qe, _ as it } from "./GlobalFilterSelect.vue_vue_type_script_setup_true_lang-qJU3Lajn.js";
8
+ import { h as tt, g as xe, R as bl, d as ot, e as at, a as nt, L as Ae, b as ol, S as re, c as fe, f as al, j as hl, _ as Dl } from "./DynamicWidget.vue_vue_type_script_setup_true_lang-g0wq9TN7.js";
9
+ import { a as qe, _ as it } from "./GlobalFilterSelect.vue_vue_type_script_setup_true_lang-C6Kk1Oc6.js";
10
10
  import { a as be, _ as Ul } from "./SelectComponent.vue_vue_type_script_setup_true_lang-DW7Dk7iQ.js";
11
11
  import { u as pe, _ as Bl } from "./_plugin-vue_export-helper-C6QDExPN.js";
12
12
  import { r as ue } from "./i18n-DbyciK4x.js";
13
13
  import { a as je } from "./index-CtZE4sab.js";
14
- import { d as Ke } from "./DateRangeSelect-BQeTCYj3.js";
15
- import { a as st, t as wl, i as rt, z as ut } from "./app-D_dN5Wt5.js";
14
+ import { d as Ke } from "./DateRangeSelect-BS73I-EY.js";
15
+ import { a as st, t as wl, i as rt, z as ut } from "./app-Bvy-gTq7.js";
16
16
  const ll = [
17
17
  {
18
18
  type: J.Circular,
@@ -1,7 +1,7 @@
1
1
  import { defineComponent as R, reactive as J, resolveComponent as B, createElementBlock as d, openBlock as n, Fragment as I, renderList as P, createBlock as V, createCommentVNode as y, unref as oe, normalizeStyle as w, normalizeClass as l, withCtx as C, createVNode as u, createElementVNode as $, toDisplayString as T, mergeProps as ne, createSlots as ie, withDirectives as G, vShow as L, ref as de, watch as se } from "vue";
2
2
  import { u as X } from "./_plugin-vue_export-helper-C6QDExPN.js";
3
- import { k as ae, _ as O, l as ce, m as le, n as ue, t as pe, p as me } from "./DynamicWidget.vue_vue_type_script_setup_true_lang-D8QF3uYf.js";
4
- import { i as fe, F as D, W as ye } from "./report-BU89xSvp.js";
3
+ import { k as ae, _ as O, l as ce, m as le, n as ue, t as pe, p as me } from "./DynamicWidget.vue_vue_type_script_setup_true_lang-g0wq9TN7.js";
4
+ import { i as fe, F as D, W as ye } from "./report-B4jAut5H.js";
5
5
  import { useBreakpoints as he } from "@feedmepos/ui-library";
6
6
  import { r as Y } from "./i18n-DbyciK4x.js";
7
7
  const _e = {
@@ -4,15 +4,15 @@ import { useCoreStore as po } from "@feedmepos/mf-common";
4
4
  import { storeToRefs as In } from "pinia";
5
5
  import { useRoute as mo } from "vue-router";
6
6
  import { u as Lt, _ as an } from "./_plugin-vue_export-helper-C6QDExPN.js";
7
- import { W as xe, Q as ho, b as Ge } from "./report-BU89xSvp.js";
7
+ import { W as xe, Q as ho, b as Ge } from "./report-B4jAut5H.js";
8
8
  import { p as go, a as On } from "./index-CtZE4sab.js";
9
- import { d as Sn } from "./DateRangeSelect-BQeTCYj3.js";
10
- import { u as vo, F as bo, v as yo, d as Ut } from "./app-D_dN5Wt5.js";
11
- import { I as rt, b as Cn, c as Rn, g as Eo, a as _o } from "./GlobalFilterSelect.vue_vue_type_script_setup_true_lang-qJU3Lajn.js";
9
+ import { d as Sn } from "./DateRangeSelect-BS73I-EY.js";
10
+ import { u as vo, F as bo, v as yo, d as Ut } from "./app-Bvy-gTq7.js";
11
+ import { I as rt, b as Cn, c as Rn, g as Eo, a as _o } from "./GlobalFilterSelect.vue_vue_type_script_setup_true_lang-C6Kk1Oc6.js";
12
12
  import { a as dn } from "./SelectComponent.vue_vue_type_script_setup_true_lang-DW7Dk7iQ.js";
13
13
  import { r as fn } from "./i18n-DbyciK4x.js";
14
14
  import { useSnackbar as To } from "@feedmepos/ui-library";
15
- import { g as gt } from "./DynamicWidget.vue_vue_type_script_setup_true_lang-D8QF3uYf.js";
15
+ import { g as gt } from "./DynamicWidget.vue_vue_type_script_setup_true_lang-g0wq9TN7.js";
16
16
  const wo = {
17
17
  key: 0,
18
18
  class: "flex gap-24 flex-col h-screen w-screen justify-center items-center"
@@ -17860,7 +17860,7 @@ const Md = [
17860
17860
  path: "/overview",
17861
17861
  alias: ["/"],
17862
17862
  name: "overview",
17863
- component: It(() => import("./OverviewView-DxEdvcVU.js")),
17863
+ component: It(() => import("./OverviewView-DrLXEnyQ.js")),
17864
17864
  meta: {
17865
17865
  validationManifest: zt(
17866
17866
  y.report_accessOverview
@@ -17871,7 +17871,7 @@ const Md = [
17871
17871
  // the digest carries the landing page's permission
17872
17872
  path: "/digest",
17873
17873
  name: "digest",
17874
- component: It(() => import("./DigestListView-BzBiyKDg.js")),
17874
+ component: It(() => import("./DigestListView-C8FI4P9l.js")),
17875
17875
  meta: {
17876
17876
  validationManifest: zt(
17877
17877
  y.report_accessOverview
@@ -17881,7 +17881,7 @@ const Md = [
17881
17881
  {
17882
17882
  path: "/digest/:weekStart(\\d{4}-\\d{2}-\\d{2})",
17883
17883
  name: "digestReader",
17884
- component: It(() => import("./DigestReaderView-D7XQFPuA.js")),
17884
+ component: It(() => import("./DigestReaderView-uYimDn1a.js")),
17885
17885
  meta: {
17886
17886
  validationManifest: zt(
17887
17887
  y.report_accessOverview
@@ -17891,18 +17891,18 @@ const Md = [
17891
17891
  {
17892
17892
  path: "/report",
17893
17893
  name: "reports",
17894
- component: () => import("./Report-Cwt1I1WF.js")
17894
+ component: () => import("./Report-BFeedwld.js")
17895
17895
  },
17896
17896
  {
17897
17897
  path: "/template",
17898
17898
  name: "template",
17899
- component: () => import("./Template-FymPP-MH.js"),
17899
+ component: () => import("./Template-Dmfdlx_-.js"),
17900
17900
  beforeEnter: () => ui().canAccessTemplate() ? !0 : { name: "reports" }
17901
17901
  },
17902
17902
  {
17903
17903
  path: "/insights",
17904
17904
  name: "insights",
17905
- component: It(() => import("./InsightView-BdFa7Puu.js")),
17905
+ component: It(() => import("./InsightView-CYY3JR4R.js")),
17906
17906
  meta: {
17907
17907
  validationManifest: zt(
17908
17908
  y.report_accessInsight
@@ -17912,7 +17912,7 @@ const Md = [
17912
17912
  {
17913
17913
  path: "/report-view",
17914
17914
  name: "reportView",
17915
- component: () => import("./ReportViewRoute-D8SmSqK6.js")
17915
+ component: () => import("./ReportViewRoute-Djtc4rpu.js")
17916
17916
  },
17917
17917
  {
17918
17918
  // canvas reports used to live here; existing links and scheduled emails still carry it
@@ -17922,17 +17922,17 @@ const Md = [
17922
17922
  {
17923
17923
  path: "/report-editor",
17924
17924
  name: "reportEditor",
17925
- component: () => import("./ReportEditor-DHEZfsbo.js")
17925
+ component: () => import("./ReportEditor-DdmeWp-N.js")
17926
17926
  },
17927
17927
  {
17928
17928
  path: "/report-editor/tile-editor",
17929
17929
  name: "tileEditor",
17930
- component: () => import("./TileEditor-B6qWtJyl.js")
17930
+ component: () => import("./TileEditor-lbcwAmG7.js")
17931
17931
  },
17932
17932
  {
17933
17933
  path: "/setting",
17934
17934
  name: "setting",
17935
- component: It(() => import("./Setting-Cz23FN6Y.js")),
17935
+ component: It(() => import("./Setting-Co0Fv5PF.js")),
17936
17936
  meta: {
17937
17937
  validationManifest: zt(
17938
17938
  y.report_accessSetting
@@ -17941,7 +17941,7 @@ const Md = [
17941
17941
  },
17942
17942
  {
17943
17943
  path: "/integration",
17944
- component: It(() => import("./Layout-DA6Ea_fd.js")),
17944
+ component: It(() => import("./Layout-DjQ9AR4L.js")),
17945
17945
  meta: {
17946
17946
  validationManifest: zt(
17947
17947
  y.report_accessIntegration
@@ -17951,12 +17951,12 @@ const Md = [
17951
17951
  {
17952
17952
  name: "integrations",
17953
17953
  path: "",
17954
- component: () => import("./Integrations-C2C3ZTZE.js")
17954
+ component: () => import("./Integrations-CtE730pa.js")
17955
17955
  },
17956
17956
  {
17957
17957
  name: "integration",
17958
17958
  path: "/integration/:id",
17959
- component: () => import("./Integration-BYVJWVVm.js")
17959
+ component: () => import("./Integration-CV75SnmP.js")
17960
17960
  }
17961
17961
  ]
17962
17962
  },
@@ -17975,7 +17975,7 @@ Di({
17975
17975
  history: Ui("/"),
17976
17976
  routes: Md
17977
17977
  });
17978
- const Lu = Vn(() => import("./App-BP79-pGe.js"));
17978
+ const Lu = Vn(() => import("./App-BNQfnOS8.js"));
17979
17979
  export {
17980
17980
  Iu as $,
17981
17981
  Bl as A,
package/dist/app.js CHANGED
@@ -1,5 +1,5 @@
1
1
  import "vue";
2
- import { al as r, ae as m, am as o } from "./app-D_dN5Wt5.js";
2
+ import { al as r, ae as m, am as o } from "./app-Bvy-gTq7.js";
3
3
  export {
4
4
  r as FmApp,
5
5
  m as i18nMessages,
@@ -1,5 +1,5 @@
1
1
  import { unref as o } from "vue";
2
- import { e as u } from "./index-C4HXhNGH.js";
2
+ import { e as u } from "./index-D9j1ly8Z.js";
3
3
  function t(r) {
4
4
  return u.currencyForCountry(o(r));
5
5
  }
@@ -1,4 +1,4 @@
1
- import { ak as br, ah as dr } from "./app-D_dN5Wt5.js";
1
+ import { ak as br, ah as dr } from "./app-Bvy-gTq7.js";
2
2
  function bt(c) {
3
3
  throw new Error('Could not dynamically require "' + c + '". Please configure the dynamicRequireTargets or/and ignoreDynamicRequires option of @rollup/plugin-commonjs appropriately for this require call to work.');
4
4
  }
@@ -1,4 +1,4 @@
1
- import { u as p, F as m, v, y as ye, a as be, b as we, B as Se, j as Ie } from "./app-D_dN5Wt5.js";
1
+ import { u as p, F as m, v, y as ye, a as be, b as we, B as Se, j as Ie } from "./app-Bvy-gTq7.js";
2
2
  import { storeToRefs as l, defineStore as j } from "pinia";
3
3
  import { ref as i, computed as $, watch as Ae } from "vue";
4
4
  import { useSnackbar as W } from "@feedmepos/ui-library";
@@ -1709,6 +1709,22 @@
1709
1709
  function heatShade(t) {
1710
1710
  return rgba(token("--fm-action-primary-bg", "#ff7823"), heatBand(t))
1711
1711
  }
1712
+ // a figure below zero takes a second hue, so a fall never reads as a quiet cell
1713
+ function heatBelow(t) {
1714
+ return rgba(token("--fm-feature-grape-fg", "#512191"), heatBand(t))
1715
+ }
1716
+ /** One hue from zero to the largest figure; two around zero, on one reach, when any figure is below it. */
1717
+ function heatScale(values) {
1718
+ var low = values.reduce(function (min, value) { return Math.min(min, value) }, 0)
1719
+ var high = values.reduce(function (max, value) { return Math.max(max, value) }, 0)
1720
+ if (low >= 0) return { shade: function (value) { return heatShade(high ? value / high : 0) } }
1721
+ var reach = Math.max(-low, high)
1722
+ return { reach: reach, shade: function (value) { return value < 0 ? heatBelow(-value / reach) : heatShade(value / reach) } }
1723
+ }
1724
+ /** A colour scale's shade for t across its range: one hue, or two around its middle when the range spans zero. */
1725
+ function heatInterpolate(signed) {
1726
+ return signed ? function (t) { return t < 0.5 ? heatBelow((0.5 - t) * 2) : heatShade((t - 0.5) * 2) } : heatShade
1727
+ }
1712
1728
  function heatLabel(text, align) {
1713
1729
  var node = el("div", "fmr-heatmap-label", text)
1714
1730
  node.style.fontSize = "12px"
@@ -1726,22 +1742,43 @@
1726
1742
  node.style.background = background
1727
1743
  return node
1728
1744
  }
1729
- function heatLegend() {
1745
+ /** The shades' key; a scale around zero is read by its figures: the reach below, zero, the reach above. */
1746
+ function heatLegend(scale, figure) {
1730
1747
  var row = el("div", "fmr-heatmap-legend")
1731
1748
  row.style.display = "flex"
1749
+ row.style.flexWrap = "wrap"
1732
1750
  row.style.alignItems = "center"
1733
1751
  row.style.gap = "6px"
1734
1752
  row.style.marginTop = "10px"
1735
1753
  row.style.fontSize = "12px"
1736
1754
  row.style.color = "var(--fm-text-muted, #6b6c70)"
1737
- row.appendChild(el("span", null, text("heatmap.quieter", "Quieter")))
1738
- HEAT_BANDS.forEach(function (alpha) { row.appendChild(heatSwatch(rgba(token("--fm-action-primary-bg", "#ff7823"), alpha))) })
1739
- row.appendChild(el("span", null, text("heatmap.busier", "Busier")))
1755
+ var shades = el("span")
1756
+ shades.style.display = "inline-flex"
1757
+ shades.style.alignItems = "center"
1758
+ shades.style.gap = "6px"
1759
+ var above = HEAT_BANDS.map(function (alpha) { return heatSwatch(rgba(token("--fm-action-primary-bg", "#ff7823"), alpha)) })
1760
+ if (scale && scale.reach) {
1761
+ shades.appendChild(el("span", null, "\u2212" + figure(scale.reach)))
1762
+ HEAT_BANDS.slice().reverse().forEach(function (alpha) { shades.appendChild(heatSwatch(rgba(token("--fm-feature-grape-fg", "#512191"), alpha))) })
1763
+ shades.appendChild(el("span", null, "0"))
1764
+ above.forEach(function (swatch) { shades.appendChild(swatch) })
1765
+ shades.appendChild(el("span", null, figure(scale.reach)))
1766
+ } else {
1767
+ shades.appendChild(el("span", null, text("heatmap.quieter", "Quieter")))
1768
+ above.forEach(function (swatch) { shades.appendChild(swatch) })
1769
+ shades.appendChild(el("span", null, text("heatmap.busier", "Busier")))
1770
+ }
1771
+ row.appendChild(shades)
1740
1772
  var gap = el("span")
1741
1773
  gap.style.width = "12px"
1742
1774
  row.appendChild(gap)
1743
- row.appendChild(heatSwatch(NO_DATA))
1744
- row.appendChild(el("span", null, text("heatmap.noData", "No data")))
1775
+ var none = el("span")
1776
+ none.style.display = "inline-flex"
1777
+ none.style.alignItems = "center"
1778
+ none.style.gap = "6px"
1779
+ none.appendChild(heatSwatch(NO_DATA))
1780
+ none.appendChild(el("span", null, text("heatmap.noData", "No data")))
1781
+ row.appendChild(none)
1745
1782
  return row
1746
1783
  }
1747
1784
  /** Short weekday names in the report's locale, Sunday first. */
@@ -1797,12 +1834,10 @@
1797
1834
  /** One cell per day, a week per column and a weekday per row, between the first and last day. */
1798
1835
  function heatCalendar(body, rows, config, format) {
1799
1836
  var byDay = {}
1800
- var max = 0
1801
1837
  rows.forEach(function (row) {
1802
1838
  var key = dayKey(row[config.x])
1803
1839
  if (!key) return
1804
1840
  byDay[key] = (byDay[key] || 0) + num(row[config.value])
1805
- if (byDay[key] > max) max = byDay[key]
1806
1841
  })
1807
1842
  var keys = Object.keys(byDay).sort(function (a, b) { return a.localeCompare(b) })
1808
1843
  if (!keys.length) {
@@ -1810,6 +1845,7 @@
1810
1845
  return
1811
1846
  }
1812
1847
  var dayFigure = heatFigure(format, keys.map(function (key) { return byDay[key] }))
1848
+ var scale = heatScale(keys.map(function (key) { return byDay[key] }))
1813
1849
  var DAY = 86400000
1814
1850
  var first = Date.parse(keys[0] + "T00:00:00Z")
1815
1851
  var last = Date.parse(keys[keys.length - 1] + "T00:00:00Z")
@@ -1867,7 +1903,7 @@
1867
1903
  cell.style.background = NO_DATA
1868
1904
  cell.title = when + text("heatmap.noData", "No data")
1869
1905
  } else {
1870
- cell.style.background = heatShade(max ? byDay[key] / max : 0)
1906
+ cell.style.background = scale.shade(byDay[key])
1871
1907
  cell.title = when + dayFigure(byDay[key])
1872
1908
  }
1873
1909
  grid.appendChild(cell)
@@ -1875,7 +1911,7 @@
1875
1911
  }
1876
1912
  scroll.appendChild(grid)
1877
1913
  body.appendChild(scroll)
1878
- body.appendChild(heatLegend())
1914
+ body.appendChild(heatLegend(scale, dayFigure))
1879
1915
  }
1880
1916
 
1881
1917
  /** A heatmap figure, bare as its cells are small; in a digest, money at the precision of the figures read with it. */
@@ -1922,14 +1958,12 @@
1922
1958
  var xLabel = function (x) { return hours ? String(x) + ":00" : String(x) }
1923
1959
  var cells = {}
1924
1960
  var totals = {}
1925
- var max = 0
1926
1961
  rows.forEach(function (row) {
1927
1962
  var y = weekdays ? ((num(row[config.y]) % 7) + 7) % 7 : String(row[config.y])
1928
1963
  var x = hours ? num(row[config.x]) : String(row[config.x])
1929
1964
  var key = y + "\u0000" + x
1930
1965
  cells[key] = (cells[key] || 0) + num(row[config.value])
1931
1966
  totals[y] = (totals[y] || 0) + num(row[config.value])
1932
- if (cells[key] > max) max = cells[key]
1933
1967
  })
1934
1968
  var grid = el("div", "fmr-heatmap")
1935
1969
  grid.style.display = "grid"
@@ -1945,6 +1979,7 @@
1945
1979
  })
1946
1980
  if (config.rowTotals) grid.appendChild(heatLabel(text("heatmap.total", "Total"), "right"))
1947
1981
  var cellFigure = heatFigure(format, Object.keys(cells).map(function (key) { return cells[key] }))
1982
+ var scale = heatScale(Object.keys(cells).map(function (key) { return cells[key] }))
1948
1983
  var totalFigure = heatFigure(format, Object.keys(totals).map(function (key) { return totals[key] }))
1949
1984
  ys.forEach(function (y) {
1950
1985
  grid.appendChild(heatLabel(yLabel(y), "left"))
@@ -1959,7 +1994,7 @@
1959
1994
  cell.style.background = NO_DATA
1960
1995
  cell.title = where + text("heatmap.noData", "No data")
1961
1996
  } else {
1962
- cell.style.background = heatShade(max ? value / max : 0)
1997
+ cell.style.background = scale.shade(value)
1963
1998
  cell.title = where + cellFigure(value)
1964
1999
  }
1965
2000
  grid.appendChild(cell)
@@ -1967,7 +2002,7 @@
1967
2002
  if (config.rowTotals) grid.appendChild(heatLabel(totalFigure(totals[y] || 0), "right"))
1968
2003
  })
1969
2004
  body.appendChild(grid)
1970
- body.appendChild(heatLegend())
2005
+ body.appendChild(heatLegend(scale, cellFigure))
1971
2006
  }
1972
2007
  FM.onRows(config.query, refresh)
1973
2008
  refresh()
@@ -2503,10 +2538,15 @@
2503
2538
  card.appendChild(foot)
2504
2539
  var byRegion = !!config.region
2505
2540
  var drawn = []
2541
+ var reach = 0
2506
2542
  var paint = mountChart(body, function (data) {
2507
2543
  var opts = chartOpts()
2544
+ var shaded = byRegion ? heatScale(data.datasets[0].data.map(function (point) { return point.value })) : {}
2545
+ reach = shaded.reach || 0
2546
+ // a range around zero puts zero in the middle, where the two hues meet
2547
+ var around = shaded.reach ? { min: -shaded.reach, max: shaded.reach } : {}
2508
2548
  var scales = byRegion
2509
- ? { projection: { axis: "x", projection: "mercator" }, color: { axis: "x", display: false, interpolate: heatShade, missing: token("--fm-bg-canvas", "#f3f3f6") } }
2549
+ ? { projection: { axis: "x", projection: "mercator" }, color: Object.assign({ axis: "x", display: false, interpolate: heatInterpolate(!!shaded.reach), missing: token("--fm-bg-canvas", "#f3f3f6") }, around) }
2510
2550
  : { projection: { axis: "x", projection: "mercator" }, size: { axis: "x", display: false, range: config.value ? [4, 18] : [6, 6] } }
2511
2551
  return {
2512
2552
  type: byRegion ? "choropleth" : "bubbleMap",
@@ -2680,6 +2720,8 @@
2680
2720
  }
2681
2721
  }
2682
2722
  say(source, layer ? text("map.boundaries", "Boundaries: {source}").replace("{source}", layer.attribution) : text("map.noShapes", "No map shapes for this area"))
2723
+ // a colour scale keeps the range it was built on, so new rows with another reach build it anew
2724
+ if (byRegion && (heatScale(dataset.data.map(function (point) { return point.value })).reach || 0) !== reach) paint.rebuild()
2683
2725
  paint({ labels: drawn.map(function (row) { return String(row[byRegion ? config.region : config.label] ?? "") }), datasets: [dataset] }, null)
2684
2726
  listPlaces()
2685
2727
  }
@@ -0,0 +1,40 @@
1
+ function r(e) {
2
+ const s = e.replace(/^\//, "");
3
+ try {
4
+ const n = new URL(import.meta.url);
5
+ if (typeof location < "u" && location.hostname !== n.hostname)
6
+ return new URL(s, n).href;
7
+ } catch {
8
+ }
9
+ return `${"/".replace(/\/$/, "")}/${s}`;
10
+ }
11
+ const a = {
12
+ "chart.js@4": "chart.js-4.js",
13
+ "fm-ui@1": "fm-ui-1.js",
14
+ "components@1": "components-1.js",
15
+ "chartjs-chart-geo@4": "chartjs-chart-geo-4.js",
16
+ "geo-outlines@1": "geo-outlines-1.js",
17
+ "chartjs-chart-sankey@0": "chartjs-chart-sankey-0.js"
18
+ }, i = Object.keys(a), c = /* @__PURE__ */ new Map();
19
+ function l(e) {
20
+ return r(`report-canvas-libs/${a[e]}`);
21
+ }
22
+ async function u(e) {
23
+ const s = i.filter((t) => e.includes(t));
24
+ await Promise.all(
25
+ s.map(async (t) => {
26
+ if (c.has(t)) return;
27
+ const o = await fetch(l(t));
28
+ o.ok && c.set(t, await o.text());
29
+ })
30
+ );
31
+ const n = {};
32
+ for (const t of s) {
33
+ const o = c.get(t);
34
+ o && (n[t] = o);
35
+ }
36
+ return n;
37
+ }
38
+ export {
39
+ u as l
40
+ };
package/dist/style.css CHANGED
@@ -1 +1 @@
1
- [data-v-8a5bb212] .report-date-access-disabled{color:var(--fm-color-typo-disabled, #a8a8a8);opacity:.45}[data-v-8a5bb212] .report-date-access-disabled .fm-calendar__cell__button{cursor:not-allowed;color:var(--fm-color-typo-disabled, #a8a8a8);text-decoration:line-through}.glassmorphism{background:linear-gradient(135deg,#fffffff5,#fffffff5);box-shadow:0 8px 24px #0f172a2e}.chart-legend-text[data-v-706fa016]{color:var(--legend-text-color);font-size:var(--legend-font-size)}.chart-legend-list[data-v-706fa016]{scrollbar-width:none;-ms-overflow-style:none}.chart-legend-list[data-v-706fa016]::-webkit-scrollbar{display:none;width:0;height:0}.circular.circular{flex:1 1 auto;min-height:0;min-width:0;max-height:100%;max-width:100%;overflow:hidden;padding:0;width:calc(100% - var(--legend-panel-width, 0px));height:calc(100% - var(--legend-panel-height, 0px))}.circular.circular .flex-col.gap-8{gap:0!important}.circular.circular .fm-color-typo-primary:empty,.circular.circular .fm-color-typo-secondary:empty{display:none}.circular.circular .grow{height:100%}.sparkline.sparkline{margin:0;padding:0}.sparkline.sparkline .grow{height:50px;flex-grow:1;min-height:0}.sparkline-chart>div:not(.grow){display:none}.sparkline-chart canvas{display:block}.scrollbar-hide-table>div{scrollbar-width:thin}.bar-chart.bar-chart{flex:1 1 auto;min-height:0;min-width:0;max-width:100%;max-height:100%;overflow:hidden;padding:0;width:calc(100% - var(--legend-panel-width, 0px));height:calc(100% - var(--legend-panel-height, 0px))}.bar-chart.bar-chart .grow{height:100%}.bar-chart.bar-chart .flex-col{gap:0}.widget-content{display:flex;flex-direction:column;width:100%;height:100%;min-height:0}.chart-layout{display:flex;flex-direction:column;flex:1 1 auto;width:100%;min-height:0}.chart-layout--side{flex-direction:row;align-items:stretch;gap:0;min-height:0}.line-chart.line-chart{flex:1 1 auto;min-height:0;min-width:0;max-width:100%;max-height:100%;overflow:hidden;margin:0;padding:8px 0 0;width:calc(100% - var(--legend-panel-width, 0px));height:calc(100% - var(--legend-panel-height, 0px))}.line-chart.line-chart .grow{height:100%}.line-chart.line-chart .flex-col{gap:0}.card-container[data-v-818eab25]{overflow-y:auto;overflow-x:hidden}.fm-progress-linear-custom span[data-v-2f6d52e6]{width:auto;height:100%;position:absolute;display:inline-block;top:0;left:0}.fm-progress-linear-custom span.dash-1[data-v-2f6d52e6]{left:-35%;animation:progress-linear-dash-1-2f6d52e6 2.1s cubic-bezier(.65,.815,.735,.395) infinite}.fm-progress-linear-custom span.dash-2[data-v-2f6d52e6]{left:100%;animation:progress-linear-dash-2-2f6d52e6 2.1s cubic-bezier(.165,.84,.44,1) 1.15s infinite}@keyframes progress-linear-dash-1-2f6d52e6{0%{left:-35%;right:100%}60%{left:100%;right:-90%}to{left:100%;right:-90%}}@keyframes progress-linear-dash-2-2f6d52e6{0%{left:-200%;right:100%}60%{left:107%;right:-8%}to{left:107%;right:-8%}}@keyframes shimmer-2f6d52e6{0%{transform:translate(-100%)}to{transform:translate(400%)}}.progress-bar-fill[data-v-2f6d52e6]{position:relative;overflow:hidden}.progress-bar-fill[data-v-2f6d52e6]:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;width:50%;background:linear-gradient(90deg,transparent 0%,rgba(255,255,255,.12) 30%,rgba(255,255,255,.28) 50%,rgba(255,255,255,.12) 70%,transparent 100%);animation:shimmer-2f6d52e6 1.5s infinite linear}.digest-banner[data-v-44314684]{background:#fff6ef;border:1px solid #fde1cc}.digest-banner.subscribed[data-v-44314684]{background:#f3faf5;border-color:#cfe9d7}.digest-done[data-v-44314684]{color:#1f6b37}.digest-vis[data-v-fe5a40c9]{position:relative;display:flex;flex-direction:column;gap:6px;height:176px;box-sizing:border-box;padding:14px 16px 12px;overflow:hidden;background-color:#fff4ea;background-image:radial-gradient(rgba(196,80,10,.13) 1px,transparent 1.3px);background-size:14px 14px;color:#7a3a0e}.digest-vis.hero[data-v-fe5a40c9]{height:auto;min-height:300px;padding:20px 24px 18px;gap:8px}.digest-vis.dark[data-v-fe5a40c9]{background-color:#1f1f22;background-image:radial-gradient(rgba(255,255,255,.07) 1px,transparent 1.4px);background-size:16px 16px;color:#fff}.digest-kind[data-v-fe5a40c9]{display:inline-flex;align-items:center;gap:6px;height:26px;padding:0 10px 0 8px;border-radius:999px;background:#fff;color:#a8440a;font:700 10.5px/26px Inter,ui-sans-serif,system-ui,sans-serif;letter-spacing:.08em;text-transform:uppercase;white-space:nowrap}.dark .digest-kind[data-v-fe5a40c9]{background:#ffffff1f;color:#ffd9bf}.digest-chart[data-v-fe5a40c9]{flex-grow:1;min-height:0;overflow:visible;transition:transform .35s}.digest-vis.hero .digest-chart[data-v-fe5a40c9]{min-height:160px}.grid[data-v-fe5a40c9]{stroke:#c4500a1f}.dark .grid[data-v-fe5a40c9]{stroke:#ffffff14}.area[data-v-fe5a40c9]{fill:#ff782329}.dark .area[data-v-fe5a40c9]{fill:#ff8a3d29}.line[data-v-fe5a40c9]{fill:none;stroke:#e0681a;stroke-width:2.5;stroke-linejoin:round;stroke-linecap:round}.dark .line[data-v-fe5a40c9]{stroke:#ff8a3d;stroke-width:3}.baseline[data-v-fe5a40c9]{fill:none;stroke:#d9a47e;stroke-width:2;stroke-dasharray:5 4}.dark .baseline[data-v-fe5a40c9]{stroke:#fff6}.dot[data-v-fe5a40c9]{fill:#a8440a;stroke:#fff4ea;stroke-width:2.5}.dark .dot[data-v-fe5a40c9]{fill:#ff8a3d;stroke:#1f1f22;stroke-width:3}.bar[data-v-fe5a40c9]{fill:#f6c39c}.bar.faint[data-v-fe5a40c9]{fill:#fbe0cb}.dark .bar[data-v-fe5a40c9]{fill:#ff8a3dd9}.dark .bar.faint[data-v-fe5a40c9]{fill:#ffffff38}.bar.marked[data-v-fe5a40c9]{fill:#a8440a}.dark .bar.marked[data-v-fe5a40c9]{fill:#ff8a3d}.dark .bar.muted[data-v-fe5a40c9]{fill:#ff8a3d73}.bar.total[data-v-fe5a40c9]{fill:#f6c39c}.dark .bar.total[data-v-fe5a40c9]{fill:#ffffff38}.bar.step[data-v-fe5a40c9]{fill:#e0681a}.dark .bar.step[data-v-fe5a40c9]{fill:#ff8a3d}.figure[data-v-fe5a40c9]{font:600 11px Inter,ui-sans-serif,system-ui,sans-serif;fill:currentColor;paint-order:stroke;stroke:#fff4ea;stroke-width:3px;stroke-linejoin:round}.dark .figure[data-v-fe5a40c9]{stroke:#1f1f22}.tick[data-v-fe5a40c9]{font:400 11px Inter,ui-sans-serif,system-ui,sans-serif;fill:#7a3a0eb3}.dark .tick[data-v-fe5a40c9]{fill:#fff9}.tick.marked[data-v-fe5a40c9]{font-weight:700;fill:currentColor}.mark[data-v-fe5a40c9]{font:700 12px Inter,ui-sans-serif,system-ui,sans-serif;fill:currentColor;paint-order:stroke;stroke:#fff4ea;stroke-width:4px;stroke-linejoin:round}.dark .mark[data-v-fe5a40c9]{stroke:#1f1f22}.leader[data-v-fe5a40c9]{stroke:currentColor;stroke-width:1;opacity:.6}.digest-vis.hero .mark[data-v-fe5a40c9]{font-size:13px}.digest-take[data-v-fe5a40c9]{margin:0;font-size:12px;line-height:16px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dark .digest-take[data-v-fe5a40c9]{color:#e5e5ea}.digest-quote-mark[data-v-fe5a40c9]{font-family:FM Digest Display,Inter,sans-serif;font-size:72px;line-height:56px;font-weight:800;color:#c4500a59}.dark .digest-quote-mark[data-v-fe5a40c9]{color:#ff8a3d80}.digest-quote[data-v-fe5a40c9]{margin:6px 0 0;flex-grow:1;font-family:FM Digest Display,Inter,sans-serif;font-size:22px;line-height:27px;font-weight:700;letter-spacing:-.015em;color:#5e2a06;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.dark .digest-quote[data-v-fe5a40c9]{color:#fff}.digest-vis.hero .digest-quote[data-v-fe5a40c9]{font-size:30px;line-height:36px}.digest-card[data-v-3933c9b3]{display:flex;flex-direction:column;overflow:hidden;border:1px solid #e5e5ea;border-radius:16px;background:#fff;color:#1c1c1e;text-decoration:none;transition:transform .2s,box-shadow .2s,border-color .2s}.digest-card[data-v-3933c9b3]:hover,.digest-card[data-v-3933c9b3]:focus-visible{transform:translateY(-3px);box-shadow:0 14px 32px #1c1c1e1a;border-color:#d9d9de}.digest-card[data-v-3933c9b3]:focus-visible{outline:2px solid var(--fm-color-primary);outline-offset:2px}.digest-card[data-v-3933c9b3]:hover .digest-chart{transform:scale(1.04)}.digest-card.hero[data-v-3933c9b3]{flex-direction:row;flex-wrap:wrap;border-radius:20px}.hero .digest-card-vis[data-v-3933c9b3]{flex:1 1 440px}.digest-card-body[data-v-3933c9b3]{display:flex;flex-direction:column;flex-grow:1;gap:8px;padding:16px 18px 18px}.hero .digest-card-body[data-v-3933c9b3]{flex:1 1 440px;min-width:0;gap:14px;padding:26px 28px}.digest-headline[data-v-3933c9b3]{margin:0;font-family:FM Digest Display,Inter,ui-sans-serif,system-ui,sans-serif;font-size:19px;line-height:25px;font-weight:700;letter-spacing:-.015em;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.hero .digest-headline[data-v-3933c9b3]{font-size:30px;line-height:36px}@media (max-width: 600px){.hero .digest-headline[data-v-3933c9b3]{font-size:24px;line-height:30px}.hero .digest-card-body[data-v-3933c9b3]{padding:18px 18px 20px}}.digest-lead[data-v-3933c9b3]{margin:0;font-size:15px;line-height:22px;color:#48484a;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.digest-story[data-v-3933c9b3]{display:flex;gap:10px;font-size:14px;line-height:20px;color:#2c2c2e}.digest-story-number[data-v-3933c9b3]{flex-shrink:0;width:16px;font-family:FM Digest Display,Inter,sans-serif;font-weight:800;font-size:15px;color:#c4500a}.digest-card-foot[data-v-3933c9b3]{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px;margin-top:auto;padding-top:8px}.digest-read[data-v-3933c9b3]{display:inline-flex;align-items:center;height:40px;padding:0 18px;border-radius:999px;background:var(--fm-color-primary);color:#fff;font:600 14px/20px Inter,ui-sans-serif,system-ui,sans-serif}.digest-go[data-v-3933c9b3]{display:inline-flex;flex-shrink:0;align-items:center;justify-content:center;width:34px;height:34px;border:1px solid #d9d9de;border-radius:999px;transition:background .2s,border-color .2s,color .2s}.digest-card:hover .digest-go[data-v-3933c9b3]{background:var(--fm-color-primary);border-color:var(--fm-color-primary);color:#fff}.digest-new[data-v-3933c9b3]{display:inline-flex;align-items:center;height:20px;padding:0 8px;border-radius:999px;background:#ff7823;color:#fff;font:600 11px/20px Inter,ui-sans-serif,system-ui,sans-serif}.digest-grid[data-v-f81c3f4a]{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(300px,100%),1fr));gap:18px}.activity-shimmer[data-v-d9511bdd]{background-image:linear-gradient(90deg,var(--fm-color-neutral-gray-500) 0%,var(--fm-color-neutral-gray-500) 40%,var(--fm-color-neutral-gray-300) 50%,var(--fm-color-neutral-gray-500) 60%,var(--fm-color-neutral-gray-500) 100%);background-size:200% 100%;-webkit-background-clip:text;background-clip:text;color:transparent;animation:activity-shimmer-d9511bdd 2s linear infinite}@keyframes activity-shimmer-d9511bdd{0%{background-position:100% 0}to{background-position:-100% 0}}.details-toggle[data-v-d9511bdd]{transition:background-color .12s ease}.details-toggle[data-v-d9511bdd]:hover{background-color:var(--fm-color-neutral-gray-100)}.details-toggle[data-v-d9511bdd]:focus-visible{outline:2px solid var(--fm-color-primary);outline-offset:-2px}@media (prefers-reduced-motion: reduce){.activity-shimmer[data-v-d9511bdd]{animation:none;background-image:none;color:var(--fm-color-neutral-gray-500)}.details-toggle[data-v-d9511bdd]{transition:none}}.chat-icon-button[data-v-cbe24113],.chat-row[data-v-cbe24113]{transition:background-color .12s ease}.chat-icon-button[data-v-cbe24113]:hover:not(:disabled),.chat-row[data-v-cbe24113]:hover:not(:disabled){background-color:var(--fm-color-neutral-gray-100)}.chat-icon-button[data-v-cbe24113]:focus-visible,.chat-row[data-v-cbe24113]:focus-visible{outline:2px solid var(--fm-color-primary);outline-offset:-2px}.chat-icon-button[data-v-cbe24113]:disabled,.chat-row[data-v-cbe24113]:disabled{cursor:not-allowed;opacity:.5}@media (prefers-reduced-motion: reduce){.chat-icon-button[data-v-cbe24113],.chat-row[data-v-cbe24113]{transition:none}}.digest-kind[data-v-9e0f290b]{display:inline-flex;align-items:center;height:24px;padding:0 9px;border-radius:999px;background:#fff1e6;color:#a8440a;font:700 10px/24px Inter,ui-sans-serif,system-ui,sans-serif;letter-spacing:.08em;text-transform:uppercase}.digest-scrim[data-v-9e0f290b]{background:var(--fm-color-neutral-gray-500);opacity:.4}@media (pointer: coarse){.digest-comment[data-v-9e0f290b]{width:40px;height:40px}}.pos-v8-switch .fm-switch__input--btn{width:40px;height:24px}.pos-v8-switch .fm-switch__input--knob,.pos-v8-switch .fm-switch__input--btn:checked~.fm-switch__input--knob{left:4px;width:16px;height:16px;padding:0}.pos-v8-switch .fm-switch__input--btn:checked~.fm-switch__input--knob{left:18px}.row:hover .show-actions{visibility:visible}.icon-btn{border-radius:100%}.overlay{background:#0006;position:absolute;top:0;left:0;height:100vh;width:100vw}.side-panel{position:fixed;right:0;top:0;height:100%;background:#fff}.fade-enter-active,.fade-leave-active{transition:opacity .2s ease}.fade-enter-from,.fade-leave-to{opacity:0}.slide-enter-active,.slide-leave-active{transition:all .3s ease-out}.slide-enter-from,.slide-leave-to{transform:translate(100%)}.selected-widget[data-v-0535b07b]{background-color:#fff4e6;border-color:#ff7823}.slide-fade-enter-active[data-v-fa67a3a4],.slide-fade-leave-active[data-v-fa67a3a4]{transition:all .3s ease-in-out}.slide-fade-enter-from[data-v-fa67a3a4],.slide-fade-leave-to[data-v-fa67a3a4]{transform:translateY(-50px);opacity:0}.slide-fade-right-enter-active[data-v-a98ca9bc],.slide-fade-right-leave-active[data-v-a98ca9bc]{transition:all .3s ease-in-out}.slide-fade-right-enter-from[data-v-a98ca9bc],.slide-fade-right-leave-to[data-v-a98ca9bc]{position:absolute;transform:translate(-50px);opacity:.4}.slide-fade-left-enter-active[data-v-a98ca9bc]{transition-delay:.3s;transition:all .3s ease-in-out}.slide-fade-left-leave-active[data-v-a98ca9bc]{transition:all .3s ease-in-out}.slide-fade-left-enter-from[data-v-a98ca9bc],.slide-fade-left-leave-to[data-v-a98ca9bc]{position:absolute;transform:translate(-50px);opacity:.1}.legend-color-input[data-v-0e072961]{-moz-appearance:none;appearance:none;-webkit-appearance:none;width:40px;height:24px;border:0;background:transparent;padding:0}.legend-color-input[data-v-0e072961]::-webkit-color-swatch-wrapper{padding:0}.legend-color-input[data-v-0e072961]::-webkit-color-swatch{border:1px solid rgb(var(--fm-color-neutral-gray-200));border-radius:4px}.legend-color-input[data-v-0e072961]::-moz-color-swatch{border:1px solid rgb(var(--fm-color-neutral-gray-200));border-radius:4px}.line-style-icon[data-v-f1c35513]{width:28px;border-top:2px solid currentColor;color:rgb(var(--fm-color-neutral-gray-300));flex-shrink:0}.line-style-icon--solid[data-v-f1c35513]{border-top-style:solid}.line-style-icon--dashed[data-v-f1c35513]{border-top-style:dashed}.line-style-icon--dotted[data-v-f1c35513]{border-top-style:dotted}.fm-top-sheet{height:100%}.integration-card[data-v-60c3aea9]{height:140px;width:140px;padding:0}.integration-card .logo-card[data-v-60c3aea9]{width:100%;padding:24px;background:#fff}.integration-card .title-card[data-v-60c3aea9]{height:36px;color:#fff}@keyframes project-mapping-highlight-5aaec20d{0%{box-shadow:0 0 0 0 transparent;border-color:transparent}20%{box-shadow:0 0 0 2px var(--fm-color-primary);border-color:var(--fm-color-primary)}35%{box-shadow:0 0 0 0 transparent;border-color:transparent}50%{box-shadow:0 0 0 2px var(--fm-color-primary);border-color:var(--fm-color-primary)}65%{box-shadow:0 0 0 0 transparent;border-color:transparent}70%{box-shadow:0 0 0 2px var(--fm-color-primary);border-color:var(--fm-color-primary)}to{box-shadow:0 0 0 0 transparent;border-color:transparent}}.animate-project-mapping-highlight[data-v-5aaec20d]{animation:project-mapping-highlight-5aaec20d 1.4s ease-out;border:1px solid transparent}.ap-project-shared-field[data-v-5aaec20d] .inline-flex>div:last-child{text-decoration:underline}.scrollbar-hide::-webkit-scrollbar{display:none}.scrollbar-hide{-ms-overflow-style:none;scrollbar-width:none}.history-dot[data-v-7df5ac71]{left:-21px}.history-button[data-v-7df5ac71]{transition:background-color .12s ease}.history-button[data-v-7df5ac71]:hover:not(:disabled){background-color:var(--fm-color-neutral-gray-100)}.history-button[data-v-7df5ac71]:focus-visible,.history-details[data-v-7df5ac71]:focus-visible{outline:2px solid var(--fm-color-primary);outline-offset:2px}.history-button[data-v-7df5ac71]:disabled{cursor:not-allowed;opacity:.5}@media (prefers-reduced-motion: reduce){.history-button[data-v-7df5ac71]{transition:none}}.remove-line-clamping[data-v-44470a1c] .line-clamp-1,.remove-line-clamping[data-v-44470a1c] .line-clamp-2{display:block!important;-webkit-line-clamp:unset!important;line-clamp:unset!important;-webkit-box-orient:unset!important;overflow:visible!important;white-space:normal!important}.remove-line-clamping[data-v-44470a1c] .flex.flex-col.flex-grow{min-width:0}.canvas-scrim[data-v-44470a1c]{background:var(--fm-color-neutral-gray-500);opacity:.4}@media (pointer: coarse){.canvas-comment-target[data-v-44470a1c]{width:40px;height:40px}}.remove-line-clamping[data-v-9c5593f0] .line-clamp-1,.remove-line-clamping[data-v-9c5593f0] .line-clamp-2{display:block!important;-webkit-line-clamp:unset!important;line-clamp:unset!important;-webkit-box-orient:unset!important;overflow:visible!important;white-space:normal!important}.remove-line-clamping[data-v-9c5593f0] .flex.flex-col.flex-grow{min-width:0}.remove-line-clamping[data-v-9c5593f0] .cursor-pointer.flex.items-center.justify-center.relative{min-width:0;max-width:100%;overflow:hidden}
1
+ [data-v-8a5bb212] .report-date-access-disabled{color:var(--fm-color-typo-disabled, #a8a8a8);opacity:.45}[data-v-8a5bb212] .report-date-access-disabled .fm-calendar__cell__button{cursor:not-allowed;color:var(--fm-color-typo-disabled, #a8a8a8);text-decoration:line-through}.glassmorphism{background:linear-gradient(135deg,#fffffff5,#fffffff5);box-shadow:0 8px 24px #0f172a2e}.chart-legend-text[data-v-706fa016]{color:var(--legend-text-color);font-size:var(--legend-font-size)}.chart-legend-list[data-v-706fa016]{scrollbar-width:none;-ms-overflow-style:none}.chart-legend-list[data-v-706fa016]::-webkit-scrollbar{display:none;width:0;height:0}.circular.circular{flex:1 1 auto;min-height:0;min-width:0;max-height:100%;max-width:100%;overflow:hidden;padding:0;width:calc(100% - var(--legend-panel-width, 0px));height:calc(100% - var(--legend-panel-height, 0px))}.circular.circular .flex-col.gap-8{gap:0!important}.circular.circular .fm-color-typo-primary:empty,.circular.circular .fm-color-typo-secondary:empty{display:none}.circular.circular .grow{height:100%}.sparkline.sparkline{margin:0;padding:0}.sparkline.sparkline .grow{height:50px;flex-grow:1;min-height:0}.sparkline-chart>div:not(.grow){display:none}.sparkline-chart canvas{display:block}.scrollbar-hide-table>div{scrollbar-width:thin}.bar-chart.bar-chart{flex:1 1 auto;min-height:0;min-width:0;max-width:100%;max-height:100%;overflow:hidden;padding:0;width:calc(100% - var(--legend-panel-width, 0px));height:calc(100% - var(--legend-panel-height, 0px))}.bar-chart.bar-chart .grow{height:100%}.bar-chart.bar-chart .flex-col{gap:0}.widget-content{display:flex;flex-direction:column;width:100%;height:100%;min-height:0}.chart-layout{display:flex;flex-direction:column;flex:1 1 auto;width:100%;min-height:0}.chart-layout--side{flex-direction:row;align-items:stretch;gap:0;min-height:0}.line-chart.line-chart{flex:1 1 auto;min-height:0;min-width:0;max-width:100%;max-height:100%;overflow:hidden;margin:0;padding:8px 0 0;width:calc(100% - var(--legend-panel-width, 0px));height:calc(100% - var(--legend-panel-height, 0px))}.line-chart.line-chart .grow{height:100%}.line-chart.line-chart .flex-col{gap:0}.card-container[data-v-818eab25]{overflow-y:auto;overflow-x:hidden}.fm-progress-linear-custom span[data-v-2f6d52e6]{width:auto;height:100%;position:absolute;display:inline-block;top:0;left:0}.fm-progress-linear-custom span.dash-1[data-v-2f6d52e6]{left:-35%;animation:progress-linear-dash-1-2f6d52e6 2.1s cubic-bezier(.65,.815,.735,.395) infinite}.fm-progress-linear-custom span.dash-2[data-v-2f6d52e6]{left:100%;animation:progress-linear-dash-2-2f6d52e6 2.1s cubic-bezier(.165,.84,.44,1) 1.15s infinite}@keyframes progress-linear-dash-1-2f6d52e6{0%{left:-35%;right:100%}60%{left:100%;right:-90%}to{left:100%;right:-90%}}@keyframes progress-linear-dash-2-2f6d52e6{0%{left:-200%;right:100%}60%{left:107%;right:-8%}to{left:107%;right:-8%}}@keyframes shimmer-2f6d52e6{0%{transform:translate(-100%)}to{transform:translate(400%)}}.progress-bar-fill[data-v-2f6d52e6]{position:relative;overflow:hidden}.progress-bar-fill[data-v-2f6d52e6]:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;width:50%;background:linear-gradient(90deg,transparent 0%,rgba(255,255,255,.12) 30%,rgba(255,255,255,.28) 50%,rgba(255,255,255,.12) 70%,transparent 100%);animation:shimmer-2f6d52e6 1.5s infinite linear}.digest-banner[data-v-44314684]{background:#fff6ef;border:1px solid #fde1cc}.digest-banner.subscribed[data-v-44314684]{background:#f3faf5;border-color:#cfe9d7}.digest-done[data-v-44314684]{color:#1f6b37}.digest-vis[data-v-7453d8bb]{position:relative;display:flex;flex-direction:column;gap:6px;height:176px;box-sizing:border-box;padding:14px 16px 12px;overflow:hidden;background-color:#fff4ea;background-image:radial-gradient(rgba(196,80,10,.13) 1px,transparent 1.3px);background-size:14px 14px;color:#7a3a0e}.digest-vis.hero[data-v-7453d8bb]{height:auto;min-height:300px;padding:20px 24px 18px;gap:8px}.digest-vis.dark[data-v-7453d8bb]{background-color:#1f1f22;background-image:radial-gradient(rgba(255,255,255,.07) 1px,transparent 1.4px);background-size:16px 16px;color:#fff}.digest-kind[data-v-7453d8bb]{display:inline-flex;align-items:center;gap:6px;height:26px;padding:0 10px 0 8px;border-radius:999px;background:#fff;color:#a8440a;font:700 10.5px/26px Inter,ui-sans-serif,system-ui,sans-serif;letter-spacing:.08em;text-transform:uppercase;white-space:nowrap}.dark .digest-kind[data-v-7453d8bb]{background:#ffffff1f;color:#ffd9bf}.digest-chart[data-v-7453d8bb]{flex-grow:1;min-height:0;overflow:visible;transition:transform .35s}.digest-vis.hero .digest-chart[data-v-7453d8bb]{min-height:160px}.grid[data-v-7453d8bb]{stroke:#c4500a1f}.dark .grid[data-v-7453d8bb]{stroke:#ffffff14}.area[data-v-7453d8bb]{fill:#ff782329}.dark .area[data-v-7453d8bb]{fill:#ff8a3d29}.line[data-v-7453d8bb]{fill:none;stroke:#e0681a;stroke-width:2.5;stroke-linejoin:round;stroke-linecap:round}.dark .line[data-v-7453d8bb]{stroke:#ff8a3d;stroke-width:3}.baseline[data-v-7453d8bb]{fill:none;stroke:#d9a47e;stroke-width:2;stroke-dasharray:5 4}.dark .baseline[data-v-7453d8bb]{stroke:#fff6}.dot[data-v-7453d8bb]{fill:#a8440a;stroke:#fff4ea;stroke-width:2.5}.dark .dot[data-v-7453d8bb]{fill:#ff8a3d;stroke:#1f1f22;stroke-width:3}.bar[data-v-7453d8bb]{fill:#f6c39c}.bar.faint[data-v-7453d8bb]{fill:#fbe0cb}.dark .bar[data-v-7453d8bb]{fill:#ff8a3dd9}.dark .bar.faint[data-v-7453d8bb]{fill:#ffffff38}.bar.marked[data-v-7453d8bb]{fill:#a8440a}.dark .bar.marked[data-v-7453d8bb]{fill:#ff8a3d}.dark .bar.muted[data-v-7453d8bb]{fill:#ff8a3d73}.bar.total[data-v-7453d8bb]{fill:#f6c39c}.dark .bar.total[data-v-7453d8bb]{fill:#ffffff38}.bar.step[data-v-7453d8bb]{fill:#e0681a}.dark .bar.step[data-v-7453d8bb]{fill:#ff8a3d}.figure[data-v-7453d8bb]{font:600 11px Inter,ui-sans-serif,system-ui,sans-serif;fill:currentColor;paint-order:stroke;stroke:#fff4ea;stroke-width:3px;stroke-linejoin:round}.dark .figure[data-v-7453d8bb]{stroke:#1f1f22}.tick[data-v-7453d8bb]{font:400 11px Inter,ui-sans-serif,system-ui,sans-serif;fill:#7a3a0eb3}.dark .tick[data-v-7453d8bb]{fill:#fff9}.tick.marked[data-v-7453d8bb]{font-weight:700;fill:currentColor}.mark[data-v-7453d8bb]{font:700 12px Inter,ui-sans-serif,system-ui,sans-serif;fill:currentColor;paint-order:stroke;stroke:#fff4ea;stroke-width:4px;stroke-linejoin:round}.dark .mark[data-v-7453d8bb]{stroke:#1f1f22}.leader[data-v-7453d8bb]{stroke:currentColor;stroke-width:1;opacity:.6}.digest-vis.hero .mark[data-v-7453d8bb]{font-size:13px}.shape.fill.accent[data-v-7453d8bb]{fill:#e0681a}.dark .shape.fill.accent[data-v-7453d8bb]{fill:#ff8a3d}.shape.fill.soft[data-v-7453d8bb]{fill:#f6c39c}.dark .shape.fill.soft[data-v-7453d8bb]{fill:#ffffff38}.shape.fill.below[data-v-7453d8bb]{fill:#6b3fc4}.dark .shape.fill.below[data-v-7453d8bb]{fill:#b394f5}.shape.fill.ground[data-v-7453d8bb]{fill:#c4500a14}.dark .shape.fill.ground[data-v-7453d8bb]{fill:#ffffff0f}.shape.fill.land[data-v-7453d8bb]{fill:#c4500a1a}.dark .shape.fill.land[data-v-7453d8bb]{fill:#ffffff1a}path.shape.fill[data-v-7453d8bb],.shape.dot-mark[data-v-7453d8bb]{stroke:#fff4ea;stroke-width:.8}.dark path.shape.fill[data-v-7453d8bb],.dark .shape.dot-mark[data-v-7453d8bb]{stroke:#1f1f22}.shape.stroke[data-v-7453d8bb]{fill:none;stroke-width:1.5;stroke-linejoin:round}.shape.stroke.accent[data-v-7453d8bb]{stroke:#e0681a}.dark .shape.stroke.accent[data-v-7453d8bb]{stroke:#ff8a3d}.shape.stroke.soft[data-v-7453d8bb]{stroke:#d9a47e}.dark .shape.stroke.soft[data-v-7453d8bb]{stroke:#fff6}.shape.stroke.dashed[data-v-7453d8bb]{stroke-dasharray:4 3}.digest-take[data-v-7453d8bb]{margin:0;font-size:12px;line-height:16px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dark .digest-take[data-v-7453d8bb]{color:#e5e5ea}.digest-quote-mark[data-v-7453d8bb]{font-family:FM Digest Display,Inter,sans-serif;font-size:72px;line-height:56px;font-weight:800;color:#c4500a59}.dark .digest-quote-mark[data-v-7453d8bb]{color:#ff8a3d80}.digest-quote[data-v-7453d8bb]{margin:6px 0 0;flex-grow:1;font-family:FM Digest Display,Inter,sans-serif;font-size:22px;line-height:27px;font-weight:700;letter-spacing:-.015em;color:#5e2a06;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.dark .digest-quote[data-v-7453d8bb]{color:#fff}.digest-vis.hero .digest-quote[data-v-7453d8bb]{font-size:30px;line-height:36px}.digest-card[data-v-3933c9b3]{display:flex;flex-direction:column;overflow:hidden;border:1px solid #e5e5ea;border-radius:16px;background:#fff;color:#1c1c1e;text-decoration:none;transition:transform .2s,box-shadow .2s,border-color .2s}.digest-card[data-v-3933c9b3]:hover,.digest-card[data-v-3933c9b3]:focus-visible{transform:translateY(-3px);box-shadow:0 14px 32px #1c1c1e1a;border-color:#d9d9de}.digest-card[data-v-3933c9b3]:focus-visible{outline:2px solid var(--fm-color-primary);outline-offset:2px}.digest-card[data-v-3933c9b3]:hover .digest-chart{transform:scale(1.04)}.digest-card.hero[data-v-3933c9b3]{flex-direction:row;flex-wrap:wrap;border-radius:20px}.hero .digest-card-vis[data-v-3933c9b3]{flex:1 1 440px}.digest-card-body[data-v-3933c9b3]{display:flex;flex-direction:column;flex-grow:1;gap:8px;padding:16px 18px 18px}.hero .digest-card-body[data-v-3933c9b3]{flex:1 1 440px;min-width:0;gap:14px;padding:26px 28px}.digest-headline[data-v-3933c9b3]{margin:0;font-family:FM Digest Display,Inter,ui-sans-serif,system-ui,sans-serif;font-size:19px;line-height:25px;font-weight:700;letter-spacing:-.015em;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.hero .digest-headline[data-v-3933c9b3]{font-size:30px;line-height:36px}@media (max-width: 600px){.hero .digest-headline[data-v-3933c9b3]{font-size:24px;line-height:30px}.hero .digest-card-body[data-v-3933c9b3]{padding:18px 18px 20px}}.digest-lead[data-v-3933c9b3]{margin:0;font-size:15px;line-height:22px;color:#48484a;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.digest-story[data-v-3933c9b3]{display:flex;gap:10px;font-size:14px;line-height:20px;color:#2c2c2e}.digest-story-number[data-v-3933c9b3]{flex-shrink:0;width:16px;font-family:FM Digest Display,Inter,sans-serif;font-weight:800;font-size:15px;color:#c4500a}.digest-card-foot[data-v-3933c9b3]{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px;margin-top:auto;padding-top:8px}.digest-read[data-v-3933c9b3]{display:inline-flex;align-items:center;height:40px;padding:0 18px;border-radius:999px;background:var(--fm-color-primary);color:#fff;font:600 14px/20px Inter,ui-sans-serif,system-ui,sans-serif}.digest-go[data-v-3933c9b3]{display:inline-flex;flex-shrink:0;align-items:center;justify-content:center;width:34px;height:34px;border:1px solid #d9d9de;border-radius:999px;transition:background .2s,border-color .2s,color .2s}.digest-card:hover .digest-go[data-v-3933c9b3]{background:var(--fm-color-primary);border-color:var(--fm-color-primary);color:#fff}.digest-new[data-v-3933c9b3]{display:inline-flex;align-items:center;height:20px;padding:0 8px;border-radius:999px;background:#ff7823;color:#fff;font:600 11px/20px Inter,ui-sans-serif,system-ui,sans-serif}.digest-grid[data-v-c6c1bc71]{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(300px,100%),1fr));gap:18px}.activity-shimmer[data-v-d9511bdd]{background-image:linear-gradient(90deg,var(--fm-color-neutral-gray-500) 0%,var(--fm-color-neutral-gray-500) 40%,var(--fm-color-neutral-gray-300) 50%,var(--fm-color-neutral-gray-500) 60%,var(--fm-color-neutral-gray-500) 100%);background-size:200% 100%;-webkit-background-clip:text;background-clip:text;color:transparent;animation:activity-shimmer-d9511bdd 2s linear infinite}@keyframes activity-shimmer-d9511bdd{0%{background-position:100% 0}to{background-position:-100% 0}}.details-toggle[data-v-d9511bdd]{transition:background-color .12s ease}.details-toggle[data-v-d9511bdd]:hover{background-color:var(--fm-color-neutral-gray-100)}.details-toggle[data-v-d9511bdd]:focus-visible{outline:2px solid var(--fm-color-primary);outline-offset:-2px}@media (prefers-reduced-motion: reduce){.activity-shimmer[data-v-d9511bdd]{animation:none;background-image:none;color:var(--fm-color-neutral-gray-500)}.details-toggle[data-v-d9511bdd]{transition:none}}.chat-icon-button[data-v-cbe24113],.chat-row[data-v-cbe24113]{transition:background-color .12s ease}.chat-icon-button[data-v-cbe24113]:hover:not(:disabled),.chat-row[data-v-cbe24113]:hover:not(:disabled){background-color:var(--fm-color-neutral-gray-100)}.chat-icon-button[data-v-cbe24113]:focus-visible,.chat-row[data-v-cbe24113]:focus-visible{outline:2px solid var(--fm-color-primary);outline-offset:-2px}.chat-icon-button[data-v-cbe24113]:disabled,.chat-row[data-v-cbe24113]:disabled{cursor:not-allowed;opacity:.5}@media (prefers-reduced-motion: reduce){.chat-icon-button[data-v-cbe24113],.chat-row[data-v-cbe24113]{transition:none}}.digest-kind[data-v-bd126bd6]{display:inline-flex;align-items:center;height:24px;padding:0 9px;border-radius:999px;background:#fff1e6;color:#a8440a;font:700 10px/24px Inter,ui-sans-serif,system-ui,sans-serif;letter-spacing:.08em;text-transform:uppercase}.digest-scrim[data-v-bd126bd6]{background:var(--fm-color-neutral-gray-500);opacity:.4}@media (pointer: coarse){.digest-comment[data-v-bd126bd6]{width:40px;height:40px}}.pos-v8-switch .fm-switch__input--btn{width:40px;height:24px}.pos-v8-switch .fm-switch__input--knob,.pos-v8-switch .fm-switch__input--btn:checked~.fm-switch__input--knob{left:4px;width:16px;height:16px;padding:0}.pos-v8-switch .fm-switch__input--btn:checked~.fm-switch__input--knob{left:18px}.row:hover .show-actions{visibility:visible}.icon-btn{border-radius:100%}.overlay{background:#0006;position:absolute;top:0;left:0;height:100vh;width:100vw}.side-panel{position:fixed;right:0;top:0;height:100%;background:#fff}.fade-enter-active,.fade-leave-active{transition:opacity .2s ease}.fade-enter-from,.fade-leave-to{opacity:0}.slide-enter-active,.slide-leave-active{transition:all .3s ease-out}.slide-enter-from,.slide-leave-to{transform:translate(100%)}.selected-widget[data-v-0535b07b]{background-color:#fff4e6;border-color:#ff7823}.slide-fade-enter-active[data-v-fa67a3a4],.slide-fade-leave-active[data-v-fa67a3a4]{transition:all .3s ease-in-out}.slide-fade-enter-from[data-v-fa67a3a4],.slide-fade-leave-to[data-v-fa67a3a4]{transform:translateY(-50px);opacity:0}.slide-fade-right-enter-active[data-v-a98ca9bc],.slide-fade-right-leave-active[data-v-a98ca9bc]{transition:all .3s ease-in-out}.slide-fade-right-enter-from[data-v-a98ca9bc],.slide-fade-right-leave-to[data-v-a98ca9bc]{position:absolute;transform:translate(-50px);opacity:.4}.slide-fade-left-enter-active[data-v-a98ca9bc]{transition-delay:.3s;transition:all .3s ease-in-out}.slide-fade-left-leave-active[data-v-a98ca9bc]{transition:all .3s ease-in-out}.slide-fade-left-enter-from[data-v-a98ca9bc],.slide-fade-left-leave-to[data-v-a98ca9bc]{position:absolute;transform:translate(-50px);opacity:.1}.legend-color-input[data-v-0e072961]{-moz-appearance:none;appearance:none;-webkit-appearance:none;width:40px;height:24px;border:0;background:transparent;padding:0}.legend-color-input[data-v-0e072961]::-webkit-color-swatch-wrapper{padding:0}.legend-color-input[data-v-0e072961]::-webkit-color-swatch{border:1px solid rgb(var(--fm-color-neutral-gray-200));border-radius:4px}.legend-color-input[data-v-0e072961]::-moz-color-swatch{border:1px solid rgb(var(--fm-color-neutral-gray-200));border-radius:4px}.line-style-icon[data-v-f1c35513]{width:28px;border-top:2px solid currentColor;color:rgb(var(--fm-color-neutral-gray-300));flex-shrink:0}.line-style-icon--solid[data-v-f1c35513]{border-top-style:solid}.line-style-icon--dashed[data-v-f1c35513]{border-top-style:dashed}.line-style-icon--dotted[data-v-f1c35513]{border-top-style:dotted}.fm-top-sheet{height:100%}.integration-card[data-v-60c3aea9]{height:140px;width:140px;padding:0}.integration-card .logo-card[data-v-60c3aea9]{width:100%;padding:24px;background:#fff}.integration-card .title-card[data-v-60c3aea9]{height:36px;color:#fff}@keyframes project-mapping-highlight-c520da8d{0%{box-shadow:0 0 0 0 transparent;border-color:transparent}20%{box-shadow:0 0 0 2px var(--fm-color-primary);border-color:var(--fm-color-primary)}35%{box-shadow:0 0 0 0 transparent;border-color:transparent}50%{box-shadow:0 0 0 2px var(--fm-color-primary);border-color:var(--fm-color-primary)}65%{box-shadow:0 0 0 0 transparent;border-color:transparent}70%{box-shadow:0 0 0 2px var(--fm-color-primary);border-color:var(--fm-color-primary)}to{box-shadow:0 0 0 0 transparent;border-color:transparent}}.animate-project-mapping-highlight[data-v-c520da8d]{animation:project-mapping-highlight-c520da8d 1.4s ease-out;border:1px solid transparent}.ap-project-shared-field[data-v-c520da8d] .inline-flex>div:last-child{text-decoration:underline}.scrollbar-hide::-webkit-scrollbar{display:none}.scrollbar-hide{-ms-overflow-style:none;scrollbar-width:none}.history-dot[data-v-7df5ac71]{left:-21px}.history-button[data-v-7df5ac71]{transition:background-color .12s ease}.history-button[data-v-7df5ac71]:hover:not(:disabled){background-color:var(--fm-color-neutral-gray-100)}.history-button[data-v-7df5ac71]:focus-visible,.history-details[data-v-7df5ac71]:focus-visible{outline:2px solid var(--fm-color-primary);outline-offset:2px}.history-button[data-v-7df5ac71]:disabled{cursor:not-allowed;opacity:.5}@media (prefers-reduced-motion: reduce){.history-button[data-v-7df5ac71]{transition:none}}.remove-line-clamping[data-v-13446d13] .line-clamp-1,.remove-line-clamping[data-v-13446d13] .line-clamp-2{display:block!important;-webkit-line-clamp:unset!important;line-clamp:unset!important;-webkit-box-orient:unset!important;overflow:visible!important;white-space:normal!important}.remove-line-clamping[data-v-13446d13] .flex.flex-col.flex-grow{min-width:0}.remove-line-clamping[data-v-13446d13] .cursor-pointer.flex.items-center.justify-center.relative{min-width:0;max-width:100%;overflow:hidden}.canvas-scrim[data-v-13446d13]{background:var(--fm-color-neutral-gray-500);opacity:.4}@media (pointer: coarse){.canvas-comment-target[data-v-13446d13]{width:40px;height:40px}}.remove-line-clamping[data-v-9c5593f0] .line-clamp-1,.remove-line-clamping[data-v-9c5593f0] .line-clamp-2{display:block!important;-webkit-line-clamp:unset!important;line-clamp:unset!important;-webkit-box-orient:unset!important;overflow:visible!important;white-space:normal!important}.remove-line-clamping[data-v-9c5593f0] .flex.flex-col.flex-grow{min-width:0}.remove-line-clamping[data-v-9c5593f0] .cursor-pointer.flex.items-center.justify-center.relative{min-width:0;max-width:100%;overflow:hidden}
@@ -2,7 +2,7 @@ import { defineComponent as C, computed as S, resolveComponent as Y, createBlock
2
2
  import { storeToRefs as D } from "pinia";
3
3
  import { useI18n as V } from "@feedmepos/mf-common";
4
4
  import { useSnackbar as J } from "@feedmepos/ui-library";
5
- import { f as x } from "./app-D_dN5Wt5.js";
5
+ import { f as x } from "./app-Bvy-gTq7.js";
6
6
  import { _ as g } from "./_plugin-vue_export-helper-C6QDExPN.js";
7
7
  const v = /^(\d{4}-\d{2}-\d{2})(?:[ T]00:00(?::00(?:\.0+)?)?)?$/, E = 24 * 60 * 60 * 1e3, I = (e) => e.toLowerCase().startsWith("en");
8
8
  function d(e) {