impact-nova 1.6.2 → 1.6.4

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 (26) hide show
  1. package/dist/components/ui/accordion-nested-list/accordion-nested-list.js +7 -7
  2. package/dist/components/ui/accordion.d.ts +0 -1
  3. package/dist/components/ui/accordion.js +22 -25
  4. package/dist/components/ui/ag-grid-react/index.js +38 -35
  5. package/dist/components/ui/ag-grid-react/process-backend-columndefs.js +10 -10
  6. package/dist/components/ui/ag-grid-react/value-formatters.js +18 -18
  7. package/dist/components/ui/calendar.js +255 -247
  8. package/dist/components/ui/chart/chart.js +103 -94
  9. package/dist/components/ui/data-table/data-table.d.ts +0 -4
  10. package/dist/components/ui/data-table/data-table.js +94 -60
  11. package/dist/components/ui/date-picker/date-picker.js +90 -81
  12. package/dist/components/ui/date-picker/date-range-picker.js +144 -130
  13. package/dist/components/ui/date-picker/week-range-picker.js +157 -143
  14. package/dist/components/ui/filter-strip/filter-summary.js +161 -234
  15. package/dist/components/ui/filter-strip/filter-tag-list.js +97 -124
  16. package/dist/components/ui/horizontal-scroller/horizontal-scroller.js +29 -29
  17. package/dist/components/ui/select/select.js +536 -508
  18. package/dist/components/ui/sheet.js +71 -94
  19. package/dist/components/ui/statistics-card.d.ts +4 -10
  20. package/dist/components/ui/statistics-card.hooks.d.ts +2 -0
  21. package/dist/components/ui/statistics-card.hooks.js +26 -24
  22. package/dist/components/ui/statistics-card.js +103 -102
  23. package/dist/components/ui/types/chart.types.d.ts +1 -0
  24. package/dist/components/ui/types/statistics-card.types.d.ts +1 -1
  25. package/dist/impact-nova.css +1 -1
  26. package/package.json +1 -1
@@ -10,8 +10,8 @@ import { useImpactNovaI18n as Z } from "../../../i18n/ImpactNovaI18nContext.js";
10
10
  const ce = ({
11
11
  sections: r,
12
12
  onChange: u,
13
- onSubmit: h,
14
- onCancel: m,
13
+ onSubmit: m,
14
+ onCancel: h,
15
15
  enableApplyDiscard: v = !0,
16
16
  submitButtonLabel: A,
17
17
  cancelButtonLabel: g,
@@ -39,10 +39,10 @@ const ce = ({
39
39
  },
40
40
  [u, f]
41
41
  ), _ = d(() => {
42
- p(), h?.(l);
43
- }, [l, h, p]), q = d(() => {
44
- b(), m?.();
45
- }, [b, m]), z = G(() => a ? c ? c(l) : !0 : !1, [a, c, l]);
42
+ p(), m?.(l);
43
+ }, [l, m, p]), q = d(() => {
44
+ b(), h?.();
45
+ }, [b, h]), z = G(() => a ? c ? c(l) : !0 : !1, [a, c, l]);
46
46
  return /* @__PURE__ */ i(
47
47
  "div",
48
48
  {
@@ -50,7 +50,7 @@ const ce = ({
50
50
  "data-component": "accordion-nested-list",
51
51
  "data-has-changes": a ? "" : void 0,
52
52
  children: [
53
- /* @__PURE__ */ t("div", { className: "flex-1 min-h-0 overflow-hidden", children: /* @__PURE__ */ t(
53
+ /* @__PURE__ */ t("div", { className: "flex-1 min-h-0 overflow-y-auto", children: /* @__PURE__ */ t(
54
54
  H,
55
55
  {
56
56
  type: n ? "multiple" : "single",
@@ -7,7 +7,6 @@ declare const AccordionTrigger: React.ForwardRefExoticComponent<Omit<AccordionPr
7
7
  rightActions?: React.ReactNode;
8
8
  } & React.RefAttributes<HTMLButtonElement>>;
9
9
  declare const AccordionContent: React.ForwardRefExoticComponent<Omit<AccordionPrimitive.AccordionContentProps & React.RefAttributes<HTMLDivElement>, "ref"> & {
10
- /** Classes on the Radix content node (e.g. `overflow-visible` for portaled overlays). */
11
10
  surfaceClassName?: string;
12
11
  } & React.RefAttributes<HTMLDivElement>>;
13
12
  export { Accordion, AccordionItem, AccordionTrigger, AccordionContent };
@@ -1,33 +1,33 @@
1
1
  import { jsx as e, jsxs as i } from "react/jsx-runtime";
2
2
  import * as c from "react";
3
- import * as r from "@radix-ui/react-accordion";
3
+ import * as a from "@radix-ui/react-accordion";
4
4
  import { ChevronRight as f } from "lucide-react";
5
5
  import { cn as n } from "../../lib/utils.js";
6
6
  import { Tooltip as p, TooltipTrigger as g, TooltipContent as h } from "./tooltip.js";
7
- import { useImpactNovaI18n as v } from "../../i18n/ImpactNovaI18nContext.js";
8
- const C = r.Root, x = c.forwardRef(({ className: a, ...t }, o) => /* @__PURE__ */ e(
9
- r.Item,
7
+ import { useImpactNovaI18n as x } from "../../i18n/ImpactNovaI18nContext.js";
8
+ const C = a.Root, v = c.forwardRef(({ className: o, ...t }, r) => /* @__PURE__ */ e(
9
+ a.Item,
10
10
  {
11
- ref: o,
11
+ ref: r,
12
12
  "data-item": t.value,
13
13
  "data-disabled": t.disabled ? "" : void 0,
14
14
  className: n(
15
- "border-b rounded-lg bg-canvas-elevated overflow-hidden border-b-stroke-hairline",
16
- a
15
+ "ia-accordion-item border-b rounded-lg bg-white border-b-[#D9DDE7]",
16
+ o
17
17
  ),
18
18
  ...t
19
19
  }
20
20
  ));
21
- x.displayName = "AccordionItem";
22
- const N = c.forwardRef(({ className: a, children: t, badge: o, rightActions: d, ...s }, l) => {
23
- const { t: m } = v();
24
- return /* @__PURE__ */ e(r.Header, { className: "flex", children: /* @__PURE__ */ i(
25
- r.Trigger,
21
+ v.displayName = "AccordionItem";
22
+ const N = c.forwardRef(({ className: o, children: t, badge: r, rightActions: d, ...s }, l) => {
23
+ const { t: m } = x();
24
+ return /* @__PURE__ */ e(a.Header, { className: "flex", children: /* @__PURE__ */ i(
25
+ a.Trigger,
26
26
  {
27
27
  ref: l,
28
28
  className: n(
29
29
  "flex flex-1 items-center gap-3 px-4 py-2 text-sm font-semibold transition-all text-left [&[data-state=open]>div>svg]:-rotate-90",
30
- a
30
+ o
31
31
  ),
32
32
  ...s,
33
33
  children: [
@@ -38,7 +38,7 @@ const N = c.forwardRef(({ className: a, children: t, badge: o, rightActions: d,
38
38
  /* @__PURE__ */ i("div", { className: "flex flex-1 items-center justify-between", children: [
39
39
  /* @__PURE__ */ i("div", { className: "flex items-center gap-3", children: [
40
40
  t,
41
- o
41
+ r
42
42
  ] }),
43
43
  d
44
44
  ] })
@@ -46,23 +46,20 @@ const N = c.forwardRef(({ className: a, children: t, badge: o, rightActions: d,
46
46
  }
47
47
  ) });
48
48
  });
49
- N.displayName = r.Trigger.displayName;
50
- const u = c.forwardRef(({ className: a, surfaceClassName: t, children: o, ...d }, s) => /* @__PURE__ */ e(
51
- r.Content,
49
+ N.displayName = a.Trigger.displayName;
50
+ const b = c.forwardRef(({ className: o, children: t, surfaceClassName: r, ...d }, s) => /* @__PURE__ */ e(
51
+ a.Content,
52
52
  {
53
53
  ref: s,
54
- className: n(
55
- "overflow-hidden text-sm data-[state=closed]:animate-accordion-up data-[state=open]:animate-accordion-down",
56
- t
57
- ),
54
+ className: n("overflow-hidden text-sm data-[state=closed]:animate-accordion-up data-[state=open]:animate-accordion-down data-[state=open]:overflow-visible", r),
58
55
  ...d,
59
- children: /* @__PURE__ */ e("div", { className: n("px-4 pb-4 pt-1", a), children: o })
56
+ children: /* @__PURE__ */ e("div", { className: n("px-4 pb-4 pt-2", o), children: t })
60
57
  }
61
58
  ));
62
- u.displayName = r.Content.displayName;
59
+ b.displayName = a.Content.displayName;
63
60
  export {
64
61
  C as Accordion,
65
- u as AccordionContent,
66
- x as AccordionItem,
62
+ b as AccordionContent,
63
+ v as AccordionItem,
67
64
  N as AccordionTrigger
68
65
  };
@@ -1,18 +1,18 @@
1
- import { jsxs as P, jsx as m } from "react/jsx-runtime";
2
- import { lazy as E, useRef as J, useState as d, useCallback as h, useMemo as F, Suspense as L } from "react";
3
- import { ModuleRegistry as U, AllCommunityModule as V, ValidationModule as W } from "ag-grid-community";
4
- import { AllEnterpriseModule as _ } from "ag-grid-enterprise";
5
- import { AgGridReact as z } from "ag-grid-react";
6
- import { customAgGridTheme as B } from "./theme.js";
7
- import { CustomHeader as k } from "./headers/custom-header.js";
1
+ import { jsxs as k, jsx as m } from "react/jsx-runtime";
2
+ import { lazy as E, useRef as L, useState as d, useCallback as h, useMemo as F, Suspense as V } from "react";
3
+ import { ModuleRegistry as W, AllCommunityModule as _, ValidationModule as $ } from "ag-grid-community";
4
+ import { AllEnterpriseModule as U } from "ag-grid-enterprise";
5
+ import { AgGridReact as w } from "ag-grid-react";
6
+ import { customAgGridTheme as z } from "./theme.js";
7
+ import { CustomHeader as J } from "./headers/custom-header.js";
8
8
  import { CustomHeaderGroup as q } from "./headers/custom-header-group.js";
9
- import { GridHeaderContext as w } from "./headers/context/grid-header-context.js";
9
+ import { GridHeaderContext as B } from "./headers/context/grid-header-context.js";
10
10
  import { convertToAgGridFilterModel as K, getMultiFilterIndices as Q, convertFromAgGridFilterModel as X } from "./headers/utils/filter-utils.js";
11
11
  import { ColumnSettingsMenu as Y } from "./headers/column-menu/column-settings-menu.js";
12
12
  import { AG_GRID_VALUE_FORMATTERS as Z } from "./value-formatters.js";
13
13
  /* empty css */
14
14
  const ee = E(() => import("./headers/advanced-filter/advanced-filter-dialog.js"));
15
- U.registerModules([V, _, W]);
15
+ W.registerModules([_, U, $]);
16
16
  function ge({
17
17
  children: i,
18
18
  defaultColDef: n,
@@ -22,7 +22,7 @@ function ge({
22
22
  onGridReady: s,
23
23
  ...o
24
24
  }) {
25
- const t = J(null), [u, M] = d(null), [v, A] = d(!1), [G, C] = d(null), [D, b] = d(!1), [S, x] = d(null), [I, y] = d(null), O = h((e) => {
25
+ const t = L(null), [u, M] = d(null), [v, A] = d(!1), [G, C] = d(null), [D, S] = d(!1), [y, b] = d(null), [I, x] = d(null), O = h((e) => {
26
26
  if (!t.current) return;
27
27
  const r = K(e);
28
28
  t.current.setFilterModel(r), t.current.onFilterChanged();
@@ -47,39 +47,40 @@ function ge({
47
47
  O(e);
48
48
  },
49
49
  openMenu: (e, r) => {
50
- x(e), y(r), b(!0);
50
+ b(e), x(r), S(!0);
51
51
  },
52
52
  closeMenu: () => {
53
- b(!1), x(null), y(null);
53
+ S(!1), b(null), x(null);
54
54
  },
55
- activeMenuColumnId: S
56
- }), [O, S]), N = h((e) => {
55
+ activeMenuColumnId: y
56
+ }), [O, y]), R = h((e) => {
57
57
  t.current = e.api, M(e.api), e.api.setGridOption("context", { activeSearchColumnId: null }), s && s(e);
58
- }, [s]), $ = F(() => ({
59
- headerComponent: k,
58
+ }, [s]), N = F(() => ({
59
+ headerComponent: J,
60
60
  ...n,
61
61
  headerComponentParams: {
62
62
  ...n?.headerComponentParams
63
63
  }
64
- }), [n]), R = F(() => ({
64
+ }), [n]), j = F(() => ({
65
65
  headerGroupComponent: q,
66
66
  ...l,
67
67
  headerGroupComponentParams: {
68
68
  ...l?.headerGroupComponentParams
69
69
  }
70
- }), [l]), j = F(() => ({
71
- ...o.components,
70
+ }), [l]), T = F(() => ({
72
71
  ...Z,
73
- // Always available
72
+ // Always available - value formatters
73
+ ...o.components,
74
+ // User components override
74
75
  ...c
75
76
  // Optional custom formatters override defaults
76
- }), [c, o.components]), T = h((e) => {
77
+ }), [c, o.components]), H = h((e) => {
77
78
  if (e.value !== null && e.value !== void 0 && typeof e.value == "object") {
78
- const r = Object.entries(e.value).map(([g, a]) => a && typeof a == "object" && "value" in a ? `${g.toUpperCase()}: ${a.value}` : typeof a != "object" ? `${g}: ${a}` : `${g}: ${JSON.stringify(a)}`).filter(Boolean);
79
- return r.length > 0 ? r.join(" ") : JSON.stringify(e.value, null, 2);
79
+ const r = Object.entries(e.value).map(([g, a]) => a && typeof a == "object" && "value" in a ? a.value : typeof a != "object" && typeof a < "u" ? a : null).filter((g) => g != null);
80
+ return r.length > 0 ? r.join(" ") : "";
80
81
  }
81
82
  return e.value;
82
- }, []), H = h((e) => {
83
+ }, []), P = h((e) => {
83
84
  if (typeof e.value == "string") {
84
85
  const r = e.value.trim();
85
86
  if (r.startsWith("{") || r.startsWith("["))
@@ -91,19 +92,21 @@ function ge({
91
92
  }
92
93
  return e.value;
93
94
  }, []);
94
- return /* @__PURE__ */ P(w.Provider, { value: f, children: [
95
+ return /* @__PURE__ */ k(B.Provider, { value: f, children: [
95
96
  /* @__PURE__ */ m(
96
- z,
97
+ w,
97
98
  {
98
- theme: B,
99
- defaultColDef: $,
99
+ theme: z,
100
+ defaultColDef: N,
100
101
  columnDefs: p,
101
102
  cellSelection: !0,
102
- defaultColGroupDef: R,
103
- onGridReady: N,
104
- components: j,
105
- processCellForClipboard: T,
106
- processCellFromClipboard: H,
103
+ defaultColGroupDef: j,
104
+ onGridReady: R,
105
+ components: T,
106
+ processCellForClipboard: H,
107
+ processCellFromClipboard: P,
108
+ ensureDomOrder: !0,
109
+ suppressGroupRowsSticky: !0,
107
110
  columnTypes: {
108
111
  numericColumn: {
109
112
  cellClass: "ag-right-aligned-cell",
@@ -144,7 +147,7 @@ function ge({
144
147
  re,
145
148
  {
146
149
  isOpen: D,
147
- columnId: S,
150
+ columnId: y,
148
151
  gridApi: u,
149
152
  anchor: I,
150
153
  onClose: f.closeMenu
@@ -163,7 +166,7 @@ function te({
163
166
  const s = l.getColumn(n);
164
167
  if (!s) return null;
165
168
  const o = s.getColDef(), t = o.headerComponentParams, u = Q(o), M = u.text !== -1 || u.number !== -1 || u.date !== -1, v = u.set !== -1, G = o.filter === "agMultiColumnFilter" && (M || v) ? "multi" : o.filter === "agNumberColumnFilter" ? "number" : o.filter === "agDateColumnFilter" ? "date" : o.filter === "agSetColumnFilter" || t?.selectOptions ? "select" : "text", C = X(l.getFilterModel());
166
- return /* @__PURE__ */ m(L, { fallback: null, children: /* @__PURE__ */ m(
169
+ return /* @__PURE__ */ m(V, { fallback: null, children: /* @__PURE__ */ m(
167
170
  ee,
168
171
  {
169
172
  isOpen: i,
@@ -1,5 +1,5 @@
1
- import { AG_GRID_VALUE_FORMATTERS as d } from "./value-formatters.js";
2
- const m = ["percentage", "currency", "currencySymbol", "number"], g = {
1
+ import { AG_GRID_VALUE_FORMATTERS as a } from "./value-formatters.js";
2
+ const d = ["percentage", "currency", "currencySymbol", "number"], g = {
3
3
  percentage: 2,
4
4
  currencySymbol: 2,
5
5
  currency: 2,
@@ -45,7 +45,7 @@ const m = ["percentage", "currency", "currencySymbol", "number"], g = {
45
45
  };
46
46
  const e = { ...t };
47
47
  if (typeof e.valueFormatter == "object" && e.valueFormatter?.type) {
48
- const r = e.valueFormatter, n = d[r.type];
48
+ const r = e.valueFormatter, n = a[r.type];
49
49
  n ? e.valueFormatter = n : console.warn(`[processColDef] Unknown valueFormatter type: "${r.type}"`);
50
50
  }
51
51
  if (t.colorRules && t.colorRules.length > 0) {
@@ -60,17 +60,17 @@ const m = ["percentage", "currency", "currencySymbol", "number"], g = {
60
60
  }
61
61
  if (typeof t.valueFormatter == "object" && t.valueFormatter !== null) {
62
62
  const r = t.valueFormatter, { type: n, decimals: o } = r;
63
- if (n && m.includes(n) && !e.filterValueGetter) {
64
- const a = o ?? g[n] ?? 0, i = Math.pow(10, a), l = t.field;
65
- e.filterValueGetter = (u) => {
66
- const s = u.data?.[l];
63
+ if (n && d.includes(n) && !e.filterValueGetter) {
64
+ const l = o ?? g[n] ?? 0, i = Math.pow(10, l), u = t.field;
65
+ e.filterValueGetter = (m) => {
66
+ const s = m.data?.[u];
67
67
  return s == null || isNaN(Number(s)) ? s : Math.round(Number(s) * i) / i;
68
68
  };
69
69
  }
70
70
  }
71
- return (e.type === "number" || e.type === "numericColumn" || e.type === "currency" || e.type === "percentage") && (e.headerClass = e.headerClass ? `${e.headerClass} ag-right-aligned-header` : "ag-right-aligned-header", e.cellClass = e.cellClass ? `${e.cellClass} ag-right-aligned-cell` : "ag-right-aligned-cell"), e;
72
- }, p = (t) => !t || t.length === 0 ? t : t.filter((e) => e != null).map((e) => c(e));
71
+ return (e.type === "number" || e.type === "numericColumn" || e.type === "currency" || e.type === "percentage") && (e.headerClass = e.headerClass ? `${e.headerClass} ag-right-aligned-header` : "ag-right-aligned-header", e.cellClass = e.cellClass ? `${e.cellClass} ag-right-aligned-cell` : "ag-right-aligned-cell"), !e.valueFormatter && (e.type === "numericColumn" || e.type === "number") && (e.valueFormatter = a.number), e;
72
+ }, h = (t) => !t || t.length === 0 ? t : t.filter((e) => e != null).map((e) => c(e));
73
73
  export {
74
- p as processBackendColumnDefs,
74
+ h as processBackendColumnDefs,
75
75
  c as processColDef
76
76
  };
@@ -4,37 +4,37 @@ const a = (e) => e?.nullDisplay ?? "-", F = (e, n) => {
4
4
  }, y = (e, n) => !n || n === "full_no" ? null : F(e, n), N = (e) => {
5
5
  const n = e.colDef, t = typeof n.valueFormatter == "object" ? n.valueFormatter : n;
6
6
  if (e.value == null) return t.nullDisplay ?? "-";
7
- const o = t.currency || "USD", l = t.locale || "en-US", r = t.formatType, c = Number(e.value);
8
- if (isNaN(c)) return String(e.value);
9
- const s = y(Math.abs(c), r);
7
+ const o = t.currency || "USD", c = t.locale || "en-US", r = e.context?.formatType || t.formatType, l = Number(e.value);
8
+ if (isNaN(l)) return String(e.value);
9
+ const s = y(Math.abs(l), r);
10
10
  if (s) {
11
- const u = c < 0 ? "-" : "", i = new Intl.NumberFormat(l, {
11
+ const u = l < 0 ? "-" : "", i = new Intl.NumberFormat(c, {
12
12
  style: "currency",
13
13
  currency: o
14
14
  }).formatToParts(0).find((D) => D.type === "currency")?.value || o;
15
15
  return `${u}${i}${s}`;
16
16
  }
17
- return new Intl.NumberFormat(l, {
17
+ return new Intl.NumberFormat(c, {
18
18
  style: "currency",
19
19
  currency: o
20
- }).format(c);
20
+ }).format(l);
21
21
  }, d = (e) => {
22
22
  const n = e.colDef, t = typeof n.valueFormatter == "object" ? n.valueFormatter : n;
23
23
  if (e.value == null) return t.nullDisplay ?? "-";
24
- const o = t.symbol || "$", l = t.position || "prefix", r = t.decimals ?? 2, c = t.locale || "en-US", s = t.formatType, u = Number(e.value);
24
+ const o = t.symbol || "$", c = t.position || "prefix", r = t.decimals ?? 2, l = t.locale || "en-US", s = e.context?.formatType || t.formatType, u = Number(e.value);
25
25
  if (isNaN(u)) return String(e.value);
26
26
  const m = y(Math.abs(u), s);
27
27
  let i;
28
- return m ? i = `${u < 0 ? "-" : ""}${m}` : i = new Intl.NumberFormat(c, {
28
+ return m ? i = `${u < 0 ? "-" : ""}${m}` : i = new Intl.NumberFormat(l, {
29
29
  minimumFractionDigits: r,
30
30
  maximumFractionDigits: r
31
- }).format(u), l === "prefix" ? `${o}${i}` : `${i}${o}`;
31
+ }).format(u), c === "prefix" ? `${o}${i}` : `${i}${o}`;
32
32
  }, b = (e) => {
33
33
  if (e.value == null) return a(e.colDef);
34
- const n = e.colDef, t = n.decimals ?? 0, o = n.locale || "en-US", l = n.formatType, r = Number(e.value);
34
+ const n = e.colDef, t = n.decimals ?? 0, o = n.locale || "en-US", c = e.context?.formatType || n.formatType, r = Number(e.value);
35
35
  if (isNaN(r)) return String(e.value);
36
- const c = y(Math.abs(r), l);
37
- return c ? `${r < 0 ? "-" : ""}${c}` : new Intl.NumberFormat(o, {
36
+ const l = y(Math.abs(r), c);
37
+ return l ? `${r < 0 ? "-" : ""}${l}` : new Intl.NumberFormat(o, {
38
38
  minimumFractionDigits: t,
39
39
  maximumFractionDigits: t
40
40
  }).format(r);
@@ -50,7 +50,7 @@ const a = (e) => e?.nullDisplay ?? "-", F = (e, n) => {
50
50
  if (e.value == null) return a(e.colDef);
51
51
  const n = Number(e.value);
52
52
  if (isNaN(n)) return String(e.value);
53
- const t = e.colDef, o = t.decimals ?? 2, l = t.divideBy ?? 100, r = n / l;
53
+ const t = e.colDef, o = t.decimals ?? 2, c = t.divideBy ?? 100, r = n / c;
54
54
  return new Intl.NumberFormat("en-US", {
55
55
  style: "percent",
56
56
  minimumFractionDigits: o,
@@ -58,14 +58,14 @@ const a = (e) => e?.nullDisplay ?? "-", F = (e, n) => {
58
58
  }).format(r);
59
59
  }, g = (e) => {
60
60
  if (!e.value) return a(e.colDef);
61
- const n = e.colDef, t = n.dateStyle || "medium", o = n.locale || "en-US", l = new Date(e.value);
62
- return isNaN(l.getTime()) ? String(e.value) : new Intl.DateTimeFormat(o, {
61
+ const n = e.colDef, t = n.dateStyle || "medium", o = n.locale || "en-US", c = new Date(e.value);
62
+ return isNaN(c.getTime()) ? String(e.value) : new Intl.DateTimeFormat(o, {
63
63
  dateStyle: t
64
- }).format(l);
64
+ }).format(c);
65
65
  }, S = (e) => {
66
66
  if (!e.value) return a(e.colDef);
67
- const n = e.colDef, t = n.dateStyle || "medium", o = n.timeStyle || "short", l = n.locale || "en-US", r = new Date(e.value);
68
- return isNaN(r.getTime()) ? String(e.value) : new Intl.DateTimeFormat(l, {
67
+ const n = e.colDef, t = n.dateStyle || "medium", o = n.timeStyle || "short", c = n.locale || "en-US", r = new Date(e.value);
68
+ return isNaN(r.getTime()) ? String(e.value) : new Intl.DateTimeFormat(c, {
69
69
  dateStyle: t,
70
70
  timeStyle: o
71
71
  }).format(r);