@inspirer-dev/crm-dashboard 1.0.50 → 1.0.51

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.
@@ -45,12 +45,17 @@ const StepFlowBuilderInner = forwardRef<HTMLDivElement, StepFlowBuilderProps>(
45
45
  const response = await get(url, { params: { populate: 'entrySegment' } });
46
46
 
47
47
  const data = response?.data as { entrySegment?: { id: number; name: string } } | undefined;
48
+ console.log('[StepFlowBuilder] Fetch response data:', JSON.stringify(data, null, 2));
49
+ console.log('[StepFlowBuilder] entrySegment from API:', data?.entrySegment);
48
50
  if (data?.entrySegment?.id) {
49
51
  const seg = {
50
52
  id: data.entrySegment.id,
51
53
  name: data.entrySegment.name || `Segment #${data.entrySegment.id}`,
52
54
  };
55
+ console.log('[StepFlowBuilder] Setting initialSegment:', seg);
53
56
  setInitialSegment(seg);
57
+ } else {
58
+ console.log('[StepFlowBuilder] No entrySegment.id found in API response');
54
59
  }
55
60
  } catch (err) {
56
61
  console.error('[StepFlowBuilder] Fetch error:', err);
@@ -66,35 +71,51 @@ const StepFlowBuilderInner = forwardRef<HTMLDivElement, StepFlowBuilderProps>(
66
71
  const values = form?.values as Record<string, unknown> | undefined;
67
72
  const entrySegmentValue = values?.entrySegment as ConnectDisconnect | SegmentItem | undefined;
68
73
 
74
+ console.log('[StepFlowBuilder] currentSegment memo - form.values.entrySegment:', entrySegmentValue);
75
+ console.log('[StepFlowBuilder] currentSegment memo - initialSegment:', initialSegment);
76
+ console.log('[StepFlowBuilder] currentSegment memo - typeof entrySegmentValue:', typeof entrySegmentValue);
77
+ if (entrySegmentValue) {
78
+ console.log('[StepFlowBuilder] currentSegment memo - entrySegmentValue keys:', Object.keys(entrySegmentValue));
79
+ }
80
+
69
81
  if (!entrySegmentValue) {
82
+ console.log('[StepFlowBuilder] currentSegment memo - no entrySegmentValue, returning initialSegment');
70
83
  return initialSegment;
71
84
  }
72
85
 
73
86
  // Handle connect/disconnect structure (user changed the segment in UI)
74
87
  if ('connect' in entrySegmentValue || 'disconnect' in entrySegmentValue) {
88
+ console.log('[StepFlowBuilder] currentSegment memo - detected connect/disconnect structure');
75
89
  const { connect = [], disconnect = [] } = entrySegmentValue as ConnectDisconnect;
76
90
 
77
91
  if (connect.length > 0) {
78
92
  const seg = connect[0];
93
+ console.log('[StepFlowBuilder] currentSegment memo - returning from connect:', seg);
79
94
  return { id: seg.id!, name: seg.name || `Segment #${seg.id}` };
80
95
  }
81
96
 
82
97
  if (disconnect.length > 0 && initialSegment) {
83
98
  const disconnectedId = disconnect[0]?.id;
84
99
  if (disconnectedId === initialSegment.id) {
100
+ console.log('[StepFlowBuilder] currentSegment memo - segment disconnected, returning null');
85
101
  return null;
86
102
  }
87
103
  }
88
104
 
105
+ console.log('[StepFlowBuilder] currentSegment memo - connect/disconnect but falling back to initialSegment');
89
106
  return initialSegment;
90
107
  }
91
108
 
92
109
  // Handle direct segment object (loaded from server)
93
110
  const segmentObj = entrySegmentValue as SegmentItem;
111
+ console.log('[StepFlowBuilder] currentSegment memo - treating as direct segment object:', segmentObj);
94
112
  if (segmentObj.id) {
95
- return { id: segmentObj.id, name: segmentObj.name || `Segment #${segmentObj.id}` };
113
+ const result = { id: segmentObj.id, name: segmentObj.name || `Segment #${segmentObj.id}` };
114
+ console.log('[StepFlowBuilder] currentSegment memo - returning direct segment:', result);
115
+ return result;
96
116
  }
97
117
 
118
+ console.log('[StepFlowBuilder] currentSegment memo - no id in segmentObj, returning initialSegment');
98
119
  return initialSegment;
99
120
  }, [form?.values, initialSegment]);
100
121
 
@@ -102,10 +123,12 @@ const StepFlowBuilderInner = forwardRef<HTMLDivElement, StepFlowBuilderProps>(
102
123
  const values = form?.values as Record<string, unknown> | undefined;
103
124
  if (!values) return {};
104
125
 
105
- return {
126
+ const ctx = {
106
127
  triggerConfig: values.triggerConfig as CampaignContext['triggerConfig'],
107
128
  entrySegment: currentSegment,
108
129
  };
130
+ console.log('[StepFlowBuilder] campaignContext:', ctx);
131
+ return ctx;
109
132
  }, [form?.values, currentSegment]);
110
133
 
111
134
  useEffect(() => {
@@ -88,6 +88,7 @@ const EntryConfigInner: React.FC<EntryConfigProps & { theme: FlowThemeColors }>
88
88
  entrySegment,
89
89
  theme,
90
90
  }) => {
91
+ console.log('[EntryConfig] Received entrySegment:', entrySegment);
91
92
  const config = parseTriggerConfig(triggerConfig);
92
93
 
93
94
  const renderTriggerInfo = () => {
@@ -236,6 +237,10 @@ const EntryConfigInner: React.FC<EntryConfigProps & { theme: FlowThemeColors }>
236
237
  const hasSegment = entrySegment && (entrySegment.id || entrySegment.name);
237
238
  const segmentDisplayName = entrySegment?.name || (entrySegment?.id ? `Segment #${entrySegment.id}` : null);
238
239
 
240
+ console.log('[EntryConfig] renderSegmentInfo - entrySegment:', entrySegment);
241
+ console.log('[EntryConfig] renderSegmentInfo - hasSegment:', hasSegment);
242
+ console.log('[EntryConfig] renderSegmentInfo - segmentDisplayName:', segmentDisplayName);
243
+
239
244
  if (!hasSegment || !segmentDisplayName) {
240
245
  return (
241
246
  <div
@@ -119,5 +119,5 @@
119
119
  "crm-dashboard.template.title.description": "For email: subject line. For Telegram: optional internal title (not shown to user). For push: notification title.",
120
120
 
121
121
  "crm-dashboard.template.body.label": "Message Body",
122
- "crm-dashboard.template.body.description": "The actual message text. Supports variables like {{user.name}}, {{user.balance}}. For Telegram: supports Markdown formatting."
122
+ "crm-dashboard.template.body.description": "The message text. Variables: {{userName}}, {{balance}}, {{depositCount}}, {{depositTotal}}, {{amount}}. Markdown: *bold*, _italic_"
123
123
  }
@@ -119,5 +119,5 @@
119
119
  "crm-dashboard.template.title.description": "Для email: тема письма. Для Telegram: внутренний заголовок (не виден пользователю). Для push: заголовок уведомления.",
120
120
 
121
121
  "crm-dashboard.template.body.label": "Текст сообщения",
122
- "crm-dashboard.template.body.description": "Текст сообщения. Поддерживает переменные: {{user.name}}, {{user.balance}}. Для Telegram: поддерживает Markdown-форматирование."
122
+ "crm-dashboard.template.body.description": "Текст сообщения. Переменные: {{userName}}, {{balance}}, {{depositCount}}, {{depositTotal}}, {{amount}}. Markdown: *жирный*, _курсив_"
123
123
  }
@@ -81,6 +81,6 @@ const en = {
81
81
  "crm-dashboard.template.title.label": "Title",
82
82
  "crm-dashboard.template.title.description": "For email: subject line. For Telegram: optional internal title (not shown to user). For push: notification title.",
83
83
  "crm-dashboard.template.body.label": "Message Body",
84
- "crm-dashboard.template.body.description": "The actual message text. Supports variables like {{user.name}}, {{user.balance}}. For Telegram: supports Markdown formatting."
84
+ "crm-dashboard.template.body.description": "The message text. Variables: {{userName}}, {{balance}}, {{depositCount}}, {{depositTotal}}, {{amount}}. Markdown: *bold*, _italic_"
85
85
  };
86
86
  exports.default = en;
@@ -79,7 +79,7 @@ const en = {
79
79
  "crm-dashboard.template.title.label": "Title",
80
80
  "crm-dashboard.template.title.description": "For email: subject line. For Telegram: optional internal title (not shown to user). For push: notification title.",
81
81
  "crm-dashboard.template.body.label": "Message Body",
82
- "crm-dashboard.template.body.description": "The actual message text. Supports variables like {{user.name}}, {{user.balance}}. For Telegram: supports Markdown formatting."
82
+ "crm-dashboard.template.body.description": "The message text. Variables: {{userName}}, {{balance}}, {{depositCount}}, {{depositTotal}}, {{amount}}. Markdown: *bold*, _italic_"
83
83
  };
84
84
  export {
85
85
  en as default
@@ -1921,6 +1921,7 @@ const EntryConfigInner = ({
1921
1921
  entrySegment,
1922
1922
  theme
1923
1923
  }) => {
1924
+ console.log("[EntryConfig] Received entrySegment:", entrySegment);
1924
1925
  const config = parseTriggerConfig(triggerConfig);
1925
1926
  const renderTriggerInfo = () => {
1926
1927
  if (!config) {
@@ -2052,6 +2053,9 @@ const EntryConfigInner = ({
2052
2053
  const renderSegmentInfo = () => {
2053
2054
  const hasSegment = entrySegment && (entrySegment.id || entrySegment.name);
2054
2055
  const segmentDisplayName = entrySegment?.name || (entrySegment?.id ? `Segment #${entrySegment.id}` : null);
2056
+ console.log("[EntryConfig] renderSegmentInfo - entrySegment:", entrySegment);
2057
+ console.log("[EntryConfig] renderSegmentInfo - hasSegment:", hasSegment);
2058
+ console.log("[EntryConfig] renderSegmentInfo - segmentDisplayName:", segmentDisplayName);
2055
2059
  if (!hasSegment || !segmentDisplayName) {
2056
2060
  return /* @__PURE__ */ jsx(
2057
2061
  "div",
@@ -3669,12 +3673,17 @@ const StepFlowBuilderInner = forwardRef(
3669
3673
  const url = `/content-manager/collection-types/${model}/${documentId}`;
3670
3674
  const response = await get(url, { params: { populate: "entrySegment" } });
3671
3675
  const data = response?.data;
3676
+ console.log("[StepFlowBuilder] Fetch response data:", JSON.stringify(data, null, 2));
3677
+ console.log("[StepFlowBuilder] entrySegment from API:", data?.entrySegment);
3672
3678
  if (data?.entrySegment?.id) {
3673
3679
  const seg = {
3674
3680
  id: data.entrySegment.id,
3675
3681
  name: data.entrySegment.name || `Segment #${data.entrySegment.id}`
3676
3682
  };
3683
+ console.log("[StepFlowBuilder] Setting initialSegment:", seg);
3677
3684
  setInitialSegment(seg);
3685
+ } else {
3686
+ console.log("[StepFlowBuilder] No entrySegment.id found in API response");
3678
3687
  }
3679
3688
  } catch (err) {
3680
3689
  console.error("[StepFlowBuilder] Fetch error:", err);
@@ -3687,36 +3696,53 @@ const StepFlowBuilderInner = forwardRef(
3687
3696
  const currentSegment = useMemo(() => {
3688
3697
  const values = form?.values;
3689
3698
  const entrySegmentValue = values?.entrySegment;
3699
+ console.log("[StepFlowBuilder] currentSegment memo - form.values.entrySegment:", entrySegmentValue);
3700
+ console.log("[StepFlowBuilder] currentSegment memo - initialSegment:", initialSegment);
3701
+ console.log("[StepFlowBuilder] currentSegment memo - typeof entrySegmentValue:", typeof entrySegmentValue);
3702
+ if (entrySegmentValue) {
3703
+ console.log("[StepFlowBuilder] currentSegment memo - entrySegmentValue keys:", Object.keys(entrySegmentValue));
3704
+ }
3690
3705
  if (!entrySegmentValue) {
3706
+ console.log("[StepFlowBuilder] currentSegment memo - no entrySegmentValue, returning initialSegment");
3691
3707
  return initialSegment;
3692
3708
  }
3693
3709
  if ("connect" in entrySegmentValue || "disconnect" in entrySegmentValue) {
3710
+ console.log("[StepFlowBuilder] currentSegment memo - detected connect/disconnect structure");
3694
3711
  const { connect = [], disconnect = [] } = entrySegmentValue;
3695
3712
  if (connect.length > 0) {
3696
3713
  const seg = connect[0];
3714
+ console.log("[StepFlowBuilder] currentSegment memo - returning from connect:", seg);
3697
3715
  return { id: seg.id, name: seg.name || `Segment #${seg.id}` };
3698
3716
  }
3699
3717
  if (disconnect.length > 0 && initialSegment) {
3700
3718
  const disconnectedId = disconnect[0]?.id;
3701
3719
  if (disconnectedId === initialSegment.id) {
3720
+ console.log("[StepFlowBuilder] currentSegment memo - segment disconnected, returning null");
3702
3721
  return null;
3703
3722
  }
3704
3723
  }
3724
+ console.log("[StepFlowBuilder] currentSegment memo - connect/disconnect but falling back to initialSegment");
3705
3725
  return initialSegment;
3706
3726
  }
3707
3727
  const segmentObj = entrySegmentValue;
3728
+ console.log("[StepFlowBuilder] currentSegment memo - treating as direct segment object:", segmentObj);
3708
3729
  if (segmentObj.id) {
3709
- return { id: segmentObj.id, name: segmentObj.name || `Segment #${segmentObj.id}` };
3730
+ const result = { id: segmentObj.id, name: segmentObj.name || `Segment #${segmentObj.id}` };
3731
+ console.log("[StepFlowBuilder] currentSegment memo - returning direct segment:", result);
3732
+ return result;
3710
3733
  }
3734
+ console.log("[StepFlowBuilder] currentSegment memo - no id in segmentObj, returning initialSegment");
3711
3735
  return initialSegment;
3712
3736
  }, [form?.values, initialSegment]);
3713
3737
  const campaignContext = useMemo(() => {
3714
3738
  const values = form?.values;
3715
3739
  if (!values) return {};
3716
- return {
3740
+ const ctx = {
3717
3741
  triggerConfig: values.triggerConfig,
3718
3742
  entrySegment: currentSegment
3719
3743
  };
3744
+ console.log("[StepFlowBuilder] campaignContext:", ctx);
3745
+ return ctx;
3720
3746
  }, [form?.values, currentSegment]);
3721
3747
  useEffect(() => {
3722
3748
  const parsed = parseValue(value);
@@ -1926,6 +1926,7 @@ const EntryConfigInner = ({
1926
1926
  entrySegment,
1927
1927
  theme
1928
1928
  }) => {
1929
+ console.log("[EntryConfig] Received entrySegment:", entrySegment);
1929
1930
  const config = parseTriggerConfig(triggerConfig);
1930
1931
  const renderTriggerInfo = () => {
1931
1932
  if (!config) {
@@ -2057,6 +2058,9 @@ const EntryConfigInner = ({
2057
2058
  const renderSegmentInfo = () => {
2058
2059
  const hasSegment = entrySegment && (entrySegment.id || entrySegment.name);
2059
2060
  const segmentDisplayName = entrySegment?.name || (entrySegment?.id ? `Segment #${entrySegment.id}` : null);
2061
+ console.log("[EntryConfig] renderSegmentInfo - entrySegment:", entrySegment);
2062
+ console.log("[EntryConfig] renderSegmentInfo - hasSegment:", hasSegment);
2063
+ console.log("[EntryConfig] renderSegmentInfo - segmentDisplayName:", segmentDisplayName);
2060
2064
  if (!hasSegment || !segmentDisplayName) {
2061
2065
  return /* @__PURE__ */ jsxRuntime.jsx(
2062
2066
  "div",
@@ -3674,12 +3678,17 @@ const StepFlowBuilderInner = React.forwardRef(
3674
3678
  const url = `/content-manager/collection-types/${model}/${documentId}`;
3675
3679
  const response = await get(url, { params: { populate: "entrySegment" } });
3676
3680
  const data = response?.data;
3681
+ console.log("[StepFlowBuilder] Fetch response data:", JSON.stringify(data, null, 2));
3682
+ console.log("[StepFlowBuilder] entrySegment from API:", data?.entrySegment);
3677
3683
  if (data?.entrySegment?.id) {
3678
3684
  const seg = {
3679
3685
  id: data.entrySegment.id,
3680
3686
  name: data.entrySegment.name || `Segment #${data.entrySegment.id}`
3681
3687
  };
3688
+ console.log("[StepFlowBuilder] Setting initialSegment:", seg);
3682
3689
  setInitialSegment(seg);
3690
+ } else {
3691
+ console.log("[StepFlowBuilder] No entrySegment.id found in API response");
3683
3692
  }
3684
3693
  } catch (err) {
3685
3694
  console.error("[StepFlowBuilder] Fetch error:", err);
@@ -3692,36 +3701,53 @@ const StepFlowBuilderInner = React.forwardRef(
3692
3701
  const currentSegment = React.useMemo(() => {
3693
3702
  const values = form?.values;
3694
3703
  const entrySegmentValue = values?.entrySegment;
3704
+ console.log("[StepFlowBuilder] currentSegment memo - form.values.entrySegment:", entrySegmentValue);
3705
+ console.log("[StepFlowBuilder] currentSegment memo - initialSegment:", initialSegment);
3706
+ console.log("[StepFlowBuilder] currentSegment memo - typeof entrySegmentValue:", typeof entrySegmentValue);
3707
+ if (entrySegmentValue) {
3708
+ console.log("[StepFlowBuilder] currentSegment memo - entrySegmentValue keys:", Object.keys(entrySegmentValue));
3709
+ }
3695
3710
  if (!entrySegmentValue) {
3711
+ console.log("[StepFlowBuilder] currentSegment memo - no entrySegmentValue, returning initialSegment");
3696
3712
  return initialSegment;
3697
3713
  }
3698
3714
  if ("connect" in entrySegmentValue || "disconnect" in entrySegmentValue) {
3715
+ console.log("[StepFlowBuilder] currentSegment memo - detected connect/disconnect structure");
3699
3716
  const { connect = [], disconnect = [] } = entrySegmentValue;
3700
3717
  if (connect.length > 0) {
3701
3718
  const seg = connect[0];
3719
+ console.log("[StepFlowBuilder] currentSegment memo - returning from connect:", seg);
3702
3720
  return { id: seg.id, name: seg.name || `Segment #${seg.id}` };
3703
3721
  }
3704
3722
  if (disconnect.length > 0 && initialSegment) {
3705
3723
  const disconnectedId = disconnect[0]?.id;
3706
3724
  if (disconnectedId === initialSegment.id) {
3725
+ console.log("[StepFlowBuilder] currentSegment memo - segment disconnected, returning null");
3707
3726
  return null;
3708
3727
  }
3709
3728
  }
3729
+ console.log("[StepFlowBuilder] currentSegment memo - connect/disconnect but falling back to initialSegment");
3710
3730
  return initialSegment;
3711
3731
  }
3712
3732
  const segmentObj = entrySegmentValue;
3733
+ console.log("[StepFlowBuilder] currentSegment memo - treating as direct segment object:", segmentObj);
3713
3734
  if (segmentObj.id) {
3714
- return { id: segmentObj.id, name: segmentObj.name || `Segment #${segmentObj.id}` };
3735
+ const result = { id: segmentObj.id, name: segmentObj.name || `Segment #${segmentObj.id}` };
3736
+ console.log("[StepFlowBuilder] currentSegment memo - returning direct segment:", result);
3737
+ return result;
3715
3738
  }
3739
+ console.log("[StepFlowBuilder] currentSegment memo - no id in segmentObj, returning initialSegment");
3716
3740
  return initialSegment;
3717
3741
  }, [form?.values, initialSegment]);
3718
3742
  const campaignContext = React.useMemo(() => {
3719
3743
  const values = form?.values;
3720
3744
  if (!values) return {};
3721
- return {
3745
+ const ctx = {
3722
3746
  triggerConfig: values.triggerConfig,
3723
3747
  entrySegment: currentSegment
3724
3748
  };
3749
+ console.log("[StepFlowBuilder] campaignContext:", ctx);
3750
+ return ctx;
3725
3751
  }, [form?.values, currentSegment]);
3726
3752
  React.useEffect(() => {
3727
3753
  const parsed = parseValue(value);
@@ -81,6 +81,6 @@ const ru = {
81
81
  "crm-dashboard.template.title.label": "Заголовок",
82
82
  "crm-dashboard.template.title.description": "Для email: тема письма. Для Telegram: внутренний заголовок (не виден пользователю). Для push: заголовок уведомления.",
83
83
  "crm-dashboard.template.body.label": "Текст сообщения",
84
- "crm-dashboard.template.body.description": "Текст сообщения. Поддерживает переменные: {{user.name}}, {{user.balance}}. Для Telegram: поддерживает Markdown-форматирование."
84
+ "crm-dashboard.template.body.description": "Текст сообщения. Переменные: {{userName}}, {{balance}}, {{depositCount}}, {{depositTotal}}, {{amount}}. Markdown: *жирный*, _курсив_"
85
85
  };
86
86
  exports.default = ru;
@@ -79,7 +79,7 @@ const ru = {
79
79
  "crm-dashboard.template.title.label": "Заголовок",
80
80
  "crm-dashboard.template.title.description": "Для email: тема письма. Для Telegram: внутренний заголовок (не виден пользователю). Для push: заголовок уведомления.",
81
81
  "crm-dashboard.template.body.label": "Текст сообщения",
82
- "crm-dashboard.template.body.description": "Текст сообщения. Поддерживает переменные: {{user.name}}, {{user.balance}}. Для Telegram: поддерживает Markdown-форматирование."
82
+ "crm-dashboard.template.body.description": "Текст сообщения. Переменные: {{userName}}, {{balance}}, {{depositCount}}, {{depositTotal}}, {{amount}}. Markdown: *жирный*, _курсив_"
83
83
  };
84
84
  export {
85
85
  ru as default
@@ -131,7 +131,7 @@ const index = {
131
131
  components: {
132
132
  Input: async () => Promise.resolve().then(() => require(
133
133
  /* webpackChunkName: "crm-step-flow-builder" */
134
- "../_chunks/index-D0bqpjSi.js"
134
+ "../_chunks/index-CwwnTFv3.js"
135
135
  ))
136
136
  },
137
137
  options: {
@@ -168,7 +168,7 @@ const index = {
168
168
  return Promise.all(
169
169
  locales.map(async (locale) => {
170
170
  try {
171
- const { default: data } = await __variableDynamicImportRuntimeHelper(/* @__PURE__ */ Object.assign({ "./translations/en.json": () => Promise.resolve().then(() => require("../_chunks/en-CdGCb6EW.js")), "./translations/ru.json": () => Promise.resolve().then(() => require("../_chunks/ru-0SymptLG.js")) }), `./translations/${locale}.json`, 3);
171
+ const { default: data } = await __variableDynamicImportRuntimeHelper(/* @__PURE__ */ Object.assign({ "./translations/en.json": () => Promise.resolve().then(() => require("../_chunks/en-D2kTkBns.js")), "./translations/ru.json": () => Promise.resolve().then(() => require("../_chunks/ru-BKzplvmu.js")) }), `./translations/${locale}.json`, 3);
172
172
  return { data, locale };
173
173
  } catch {
174
174
  return { data: {}, locale };
@@ -130,7 +130,7 @@ const index = {
130
130
  components: {
131
131
  Input: async () => import(
132
132
  /* webpackChunkName: "crm-step-flow-builder" */
133
- "../_chunks/index-D0NPKIXd.mjs"
133
+ "../_chunks/index-B_HwB9Vy.mjs"
134
134
  )
135
135
  },
136
136
  options: {
@@ -167,7 +167,7 @@ const index = {
167
167
  return Promise.all(
168
168
  locales.map(async (locale) => {
169
169
  try {
170
- const { default: data } = await __variableDynamicImportRuntimeHelper(/* @__PURE__ */ Object.assign({ "./translations/en.json": () => import("../_chunks/en-BIgUnT9A.mjs"), "./translations/ru.json": () => import("../_chunks/ru-Bs6gLZAD.mjs") }), `./translations/${locale}.json`, 3);
170
+ const { default: data } = await __variableDynamicImportRuntimeHelper(/* @__PURE__ */ Object.assign({ "./translations/en.json": () => import("../_chunks/en-DEUgX5uV.mjs"), "./translations/ru.json": () => import("../_chunks/ru-DOt1yfNm.mjs") }), `./translations/${locale}.json`, 3);
171
171
  return { data, locale };
172
172
  } catch {
173
173
  return { data: {}, locale };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@inspirer-dev/crm-dashboard",
3
- "version": "1.0.50",
3
+ "version": "1.0.51",
4
4
  "description": "CRM Dashboard and Tools",
5
5
  "strapi": {
6
6
  "name": "crm-dashboard",