@universe-platform/ui 0.1.0-beta.51 → 0.1.0-beta.52
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.js +1154 -1105
- package/dist/index.mjs +738 -689
- package/package.json +1 -1
package/dist/index.mjs
CHANGED
|
@@ -178,7 +178,8 @@ var COLUMN_TYPES = [
|
|
|
178
178
|
"SUB_TABLE",
|
|
179
179
|
"PHONE",
|
|
180
180
|
"GOOGLE_CONTACT",
|
|
181
|
-
"FORMULA"
|
|
181
|
+
"FORMULA",
|
|
182
|
+
"SEQUENCE"
|
|
182
183
|
];
|
|
183
184
|
var TEXT_REPRESENTABLE_TYPES = [
|
|
184
185
|
"STRING",
|
|
@@ -205,7 +206,9 @@ var COLUMN_CAPABILITIES = {
|
|
|
205
206
|
SUB_TABLE: { supportsDefault: false, supportsUnique: false, supportsRequired: false },
|
|
206
207
|
PHONE: { supportsDefault: false, supportsUnique: true, supportsRequired: true },
|
|
207
208
|
GOOGLE_CONTACT: { supportsDefault: false, supportsUnique: false, supportsRequired: false },
|
|
208
|
-
FORMULA: { supportsDefault: false, supportsUnique: false, supportsRequired: false }
|
|
209
|
+
FORMULA: { supportsDefault: false, supportsUnique: false, supportsRequired: false },
|
|
210
|
+
// מספר רץ: נוצר אוטומטית בשרת, ולכן אין ברירת מחדל / חובה / ייחודיות ידנית
|
|
211
|
+
SEQUENCE: { supportsDefault: false, supportsUnique: false, supportsRequired: false }
|
|
209
212
|
};
|
|
210
213
|
var COLUMN_TYPE_LABELS = {
|
|
211
214
|
STRING: "\u05D8\u05E7\u05E1\u05D8 (STRING)",
|
|
@@ -220,7 +223,8 @@ var COLUMN_TYPE_LABELS = {
|
|
|
220
223
|
SUB_TABLE: "\u05EA\u05EA-\u05D8\u05D1\u05DC\u05D4 (SUB_TABLE)",
|
|
221
224
|
PHONE: "\u05D8\u05DC\u05E4\u05D5\u05DF (PHONE)",
|
|
222
225
|
GOOGLE_CONTACT: "\u05D0\u05D9\u05E9 \u05E7\u05E9\u05E8 \u05D2\u05D5\u05D2\u05DC (GOOGLE_CONTACT)",
|
|
223
|
-
FORMULA: "\u05E0\u05D5\u05E1\u05D7\u05D4 (FORMULA)"
|
|
226
|
+
FORMULA: "\u05E0\u05D5\u05E1\u05D7\u05D4 (FORMULA)",
|
|
227
|
+
SEQUENCE: "\u05DE\u05E1\u05E4\u05E8 \u05E8\u05E5 (SEQUENCE)"
|
|
224
228
|
};
|
|
225
229
|
var COLUMN_DEFAULT_INPUT_CONFIG = {
|
|
226
230
|
STRING: { inputType: "text", placeholder: "\u05D4\u05E9\u05D0\u05E8 \u05E8\u05D9\u05E7 \u05D0\u05DD \u05D0\u05D9\u05DF" },
|
|
@@ -235,7 +239,8 @@ var COLUMN_DEFAULT_INPUT_CONFIG = {
|
|
|
235
239
|
SUB_TABLE: { inputType: "text" },
|
|
236
240
|
PHONE: { inputType: "tel" },
|
|
237
241
|
GOOGLE_CONTACT: { inputType: "text" },
|
|
238
|
-
FORMULA: { inputType: "text" }
|
|
242
|
+
FORMULA: { inputType: "text" },
|
|
243
|
+
SEQUENCE: { inputType: "text" }
|
|
239
244
|
};
|
|
240
245
|
|
|
241
246
|
// ../shared/src/whatsappValidation.ts
|
|
@@ -3788,8 +3793,18 @@ var FormulaInputRenderer = ({ value, column, context }) => {
|
|
|
3788
3793
|
return /* @__PURE__ */ jsx8(FormulaDisplay, { value: live, column });
|
|
3789
3794
|
};
|
|
3790
3795
|
|
|
3796
|
+
// src/components/TableBlock/fields/SequenceCell.tsx
|
|
3797
|
+
import { jsx as jsx9 } from "react/jsx-runtime";
|
|
3798
|
+
var isAssigned = (value) => typeof value === "number" && Number.isFinite(value);
|
|
3799
|
+
var SequenceInputRenderer = ({ value }) => {
|
|
3800
|
+
if (!isAssigned(value)) {
|
|
3801
|
+
return /* @__PURE__ */ jsx9("span", { className: "px-2 py-1 flex items-center h-full text-slate-400 text-xs italic", children: "\u05D9\u05D5\u05E7\u05E6\u05D4 \u05D1\u05E9\u05DE\u05D9\u05E8\u05D4" });
|
|
3802
|
+
}
|
|
3803
|
+
return /* @__PURE__ */ jsx9(SmartTextCell, { value: String(value), tooltipText: String(value), readOnly: true });
|
|
3804
|
+
};
|
|
3805
|
+
|
|
3791
3806
|
// src/components/TableBlock/fields/fieldRegistry.tsx
|
|
3792
|
-
import { jsx as
|
|
3807
|
+
import { jsx as jsx10, jsxs as jsxs8 } from "react/jsx-runtime";
|
|
3793
3808
|
var CURRENCY_SYMBOLS = {
|
|
3794
3809
|
USD: "$",
|
|
3795
3810
|
EUR: "\u20AC",
|
|
@@ -3802,7 +3817,8 @@ function getCurrencySymbol(code) {
|
|
|
3802
3817
|
}
|
|
3803
3818
|
var FORM_INPUTS = {
|
|
3804
3819
|
FORMULA: FormulaInputRenderer,
|
|
3805
|
-
|
|
3820
|
+
SEQUENCE: SequenceInputRenderer,
|
|
3821
|
+
DATE: ({ value, onChange, column, readOnly }) => /* @__PURE__ */ jsx10(DatePickerCell, { value, onChange, column, readOnly }),
|
|
3806
3822
|
CURRENCY: ({ value, column, onChange, readOnly }) => {
|
|
3807
3823
|
var _a;
|
|
3808
3824
|
const symbol = getCurrencySymbol((_a = column.config) == null ? void 0 : _a.currencySymbol);
|
|
@@ -3811,7 +3827,7 @@ var FORM_INPUTS = {
|
|
|
3811
3827
|
const formattedValue = value !== null && value !== void 0 && !isNaN(num) ? new Intl.NumberFormat("en-US").format(num) : "";
|
|
3812
3828
|
const fullText = formattedValue ? symbol ? `${symbol} ${formattedValue}` : formattedValue : "";
|
|
3813
3829
|
if (readOnly) {
|
|
3814
|
-
return /* @__PURE__ */
|
|
3830
|
+
return /* @__PURE__ */ jsx10(
|
|
3815
3831
|
SmartTextCell,
|
|
3816
3832
|
{
|
|
3817
3833
|
value: fullText,
|
|
@@ -3821,14 +3837,14 @@ var FORM_INPUTS = {
|
|
|
3821
3837
|
);
|
|
3822
3838
|
}
|
|
3823
3839
|
const displayValue = !isFocused && value !== void 0 && value !== null && !isNaN(Number(value)) ? new Intl.NumberFormat("en-US").format(Number(value)) : value !== void 0 && value !== null ? value : "";
|
|
3824
|
-
return /* @__PURE__ */
|
|
3840
|
+
return /* @__PURE__ */ jsx10(
|
|
3825
3841
|
SmartTextCell,
|
|
3826
3842
|
{
|
|
3827
3843
|
value: displayValue,
|
|
3828
3844
|
tooltipText: fullText || String(displayValue),
|
|
3829
3845
|
type: isFocused ? "number" : "text",
|
|
3830
3846
|
step: "any",
|
|
3831
|
-
prefix: symbol ? /* @__PURE__ */
|
|
3847
|
+
prefix: symbol ? /* @__PURE__ */ jsx10("span", { className: "text-slate-400 pl-2 shrink-0 text-sm select-none pointer-events-none", children: symbol }) : void 0,
|
|
3832
3848
|
className: symbol ? "pl-1 pr-2" : "px-2",
|
|
3833
3849
|
onFocus: () => setIsFocused(true),
|
|
3834
3850
|
onBlur: () => setIsFocused(false),
|
|
@@ -3838,9 +3854,9 @@ var FORM_INPUTS = {
|
|
|
3838
3854
|
}
|
|
3839
3855
|
);
|
|
3840
3856
|
},
|
|
3841
|
-
TIME: ({ value, onChange, column, readOnly }) => /* @__PURE__ */
|
|
3842
|
-
LINK: ({ value, onChange, column, readOnly }) => /* @__PURE__ */
|
|
3843
|
-
BOOLEAN: ({ value, onChange, readOnly }) => /* @__PURE__ */
|
|
3857
|
+
TIME: ({ value, onChange, column, readOnly }) => /* @__PURE__ */ jsx10(TimePickerCell, { value, onChange, column, readOnly }),
|
|
3858
|
+
LINK: ({ value, onChange, column, readOnly }) => /* @__PURE__ */ jsx10(LinkPickerCell, { value, onChange, column, readOnly }),
|
|
3859
|
+
BOOLEAN: ({ value, onChange, readOnly }) => /* @__PURE__ */ jsx10("div", { className: "flex items-center justify-center w-full h-full p-2", children: /* @__PURE__ */ jsx10(
|
|
3844
3860
|
"input",
|
|
3845
3861
|
{
|
|
3846
3862
|
type: "checkbox",
|
|
@@ -3850,7 +3866,7 @@ var FORM_INPUTS = {
|
|
|
3850
3866
|
className: `w-4 h-4 rounded border-slate-300 text-brand ${readOnly ? "cursor-not-allowed opacity-70" : "cursor-pointer"}`
|
|
3851
3867
|
}
|
|
3852
3868
|
) }),
|
|
3853
|
-
GOOGLE_DRIVE_FILE: ({ value, onChange, column, rowId, context, readOnly }) => /* @__PURE__ */
|
|
3869
|
+
GOOGLE_DRIVE_FILE: ({ value, onChange, column, rowId, context, readOnly }) => /* @__PURE__ */ jsx10(
|
|
3854
3870
|
DrivePickerCell,
|
|
3855
3871
|
{
|
|
3856
3872
|
value: value || [],
|
|
@@ -3863,7 +3879,7 @@ var FORM_INPUTS = {
|
|
|
3863
3879
|
readOnly
|
|
3864
3880
|
}
|
|
3865
3881
|
),
|
|
3866
|
-
RELATION: ({ value, onChange, column, context, rowId, readOnly }) => /* @__PURE__ */
|
|
3882
|
+
RELATION: ({ value, onChange, column, context, rowId, readOnly }) => /* @__PURE__ */ jsx10(
|
|
3867
3883
|
RelationPickerCell,
|
|
3868
3884
|
{
|
|
3869
3885
|
value,
|
|
@@ -3874,7 +3890,7 @@ var FORM_INPUTS = {
|
|
|
3874
3890
|
readOnly
|
|
3875
3891
|
}
|
|
3876
3892
|
),
|
|
3877
|
-
NUMBER: ({ value, onChange, readOnly }) => /* @__PURE__ */
|
|
3893
|
+
NUMBER: ({ value, onChange, readOnly }) => /* @__PURE__ */ jsx10(
|
|
3878
3894
|
SmartTextCell,
|
|
3879
3895
|
{
|
|
3880
3896
|
value,
|
|
@@ -3887,7 +3903,7 @@ var FORM_INPUTS = {
|
|
|
3887
3903
|
var _a;
|
|
3888
3904
|
const enableWhatsApp = (_a = column == null ? void 0 : column.config) == null ? void 0 : _a.enableWhatsApp;
|
|
3889
3905
|
const formatted = value ? formatPhoneDisplay(String(value)) : "";
|
|
3890
|
-
const whatsAppButton = enableWhatsApp && value ? /* @__PURE__ */
|
|
3906
|
+
const whatsAppButton = enableWhatsApp && value ? /* @__PURE__ */ jsx10(
|
|
3891
3907
|
"button",
|
|
3892
3908
|
{
|
|
3893
3909
|
type: "button",
|
|
@@ -3897,11 +3913,11 @@ var FORM_INPUTS = {
|
|
|
3897
3913
|
e.stopPropagation();
|
|
3898
3914
|
openWhatsAppChat(String(value));
|
|
3899
3915
|
},
|
|
3900
|
-
children: /* @__PURE__ */
|
|
3916
|
+
children: /* @__PURE__ */ jsx10("svg", { className: "w-4 h-4", fill: "currentColor", viewBox: "0 0 24 24", children: /* @__PURE__ */ jsx10("path", { d: "M17.472 14.382c-.297-.149-1.758-.867-2.03-.967-.273-.099-.471-.148-.67.15-.197.297-.767.966-.94 1.164-.173.199-.347.223-.644.075-.297-.15-1.255-.463-2.39-1.475-.883-.788-1.48-1.761-1.653-2.059-.173-.297-.018-.458.13-.606.134-.133.298-.347.446-.52.149-.174.198-.298.298-.497.099-.198.05-.371-.025-.52-.075-.149-.669-1.612-.916-2.207-.242-.579-.487-.5-.669-.51a5.816 5.816 0 00-.571-.01c-.198 0-.52.074-.792.372-.272.297-1.04 1.016-1.04 2.479 0 1.462 1.065 2.875 1.213 3.074.149.198 2.096 3.2 5.077 4.487.709.306 1.262.489 1.694.625.712.227 1.36.195 1.871.118.571-.085 1.758-.719 2.006-1.413.248-.694.248-1.289.173-1.413-.074-.124-.272-.198-.57-.347m-5.421 7.403h-.004a9.87 9.87 0 01-5.031-1.378l-.361-.214-3.741.982.998-3.648-.235-.374a9.86 9.86 0 01-1.51-5.26c.001-5.45 4.436-9.884 9.888-9.884 2.64 0 5.122 1.03 6.988 2.898a9.825 9.825 0 012.893 6.994c-.003 5.45-4.437 9.884-9.885 9.884m8.413-18.297A11.815 11.815 0 0012.05 0C5.495 0 .16 5.335.157 11.892c0 2.096.547 4.142 1.588 5.945L.057 24l6.305-1.654a11.882 11.882 0 005.683 1.448h.005c6.554 0 11.89-5.335 11.893-11.893a11.821 11.821 0 00-3.48-8.413z" }) })
|
|
3901
3917
|
}
|
|
3902
3918
|
) : null;
|
|
3903
3919
|
if (readOnly) {
|
|
3904
|
-
return /* @__PURE__ */
|
|
3920
|
+
return /* @__PURE__ */ jsx10(
|
|
3905
3921
|
SmartTextCell,
|
|
3906
3922
|
{
|
|
3907
3923
|
value: formatted,
|
|
@@ -3912,7 +3928,7 @@ var FORM_INPUTS = {
|
|
|
3912
3928
|
}
|
|
3913
3929
|
);
|
|
3914
3930
|
}
|
|
3915
|
-
return /* @__PURE__ */
|
|
3931
|
+
return /* @__PURE__ */ jsx10(
|
|
3916
3932
|
SmartTextCell,
|
|
3917
3933
|
{
|
|
3918
3934
|
value: value !== void 0 && value !== null ? String(value) : "",
|
|
@@ -4047,23 +4063,23 @@ var FORM_INPUTS = {
|
|
|
4047
4063
|
};
|
|
4048
4064
|
if (value && value.synced && value.url) {
|
|
4049
4065
|
return /* @__PURE__ */ jsxs8("div", { className: "flex items-center gap-1.5 h-8 px-2 group whitespace-nowrap overflow-hidden max-w-full", children: [
|
|
4050
|
-
/* @__PURE__ */
|
|
4051
|
-
!readOnly && /* @__PURE__ */
|
|
4066
|
+
/* @__PURE__ */ jsx10("a", { href: value.url, target: "_blank", rel: "noopener noreferrer", className: "text-blue-600 hover:underline flex-1 truncate text-xs whitespace-nowrap", children: "\u05D0\u05D9\u05E9 \u05E7\u05E9\u05E8 \u05D2\u05D5\u05D2\u05DC" }),
|
|
4067
|
+
!readOnly && /* @__PURE__ */ jsx10(
|
|
4052
4068
|
"button",
|
|
4053
4069
|
{
|
|
4054
4070
|
type: "button",
|
|
4055
4071
|
onClick: handleUnlink,
|
|
4056
4072
|
className: "text-slate-400 hover:text-rose-500 opacity-0 group-hover:opacity-100 transition-opacity p-1 shrink-0",
|
|
4057
4073
|
title: "\u05D1\u05D8\u05DC \u05E1\u05E0\u05DB\u05E8\u05D5\u05DF",
|
|
4058
|
-
children: /* @__PURE__ */
|
|
4074
|
+
children: /* @__PURE__ */ jsx10("svg", { className: "w-3.5 h-3.5", fill: "none", viewBox: "0 0 24 24", stroke: "currentColor", children: /* @__PURE__ */ jsx10("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: "2", d: "M6 18L18 6M6 6l12 12" }) })
|
|
4059
4075
|
}
|
|
4060
4076
|
)
|
|
4061
4077
|
] });
|
|
4062
4078
|
}
|
|
4063
4079
|
if (readOnly) {
|
|
4064
|
-
return /* @__PURE__ */
|
|
4080
|
+
return /* @__PURE__ */ jsx10("span", { className: "px-2 py-1 flex items-center h-full text-slate-300 text-xs italic", children: "\u05DC\u05D0 \u05DE\u05E1\u05D5\u05E0\u05DB\u05E8\u05DF" });
|
|
4065
4081
|
}
|
|
4066
|
-
return /* @__PURE__ */
|
|
4082
|
+
return /* @__PURE__ */ jsx10("div", { className: "flex items-center h-8 px-2 whitespace-nowrap overflow-hidden max-w-full", children: /* @__PURE__ */ jsxs8(
|
|
4067
4083
|
"button",
|
|
4068
4084
|
{
|
|
4069
4085
|
type: "button",
|
|
@@ -4072,15 +4088,15 @@ var FORM_INPUTS = {
|
|
|
4072
4088
|
className: "inline-flex items-center gap-1.5 px-2.5 py-1 bg-blue-50 text-blue-600 hover:bg-blue-100 border border-blue-200 rounded-md text-xs font-medium transition-colors whitespace-nowrap shrink-0 disabled:opacity-50 cursor-pointer max-w-full overflow-hidden",
|
|
4073
4089
|
children: [
|
|
4074
4090
|
isSyncing ? /* @__PURE__ */ jsxs8("svg", { className: "w-3.5 h-3.5 animate-spin shrink-0", viewBox: "0 0 24 24", fill: "none", children: [
|
|
4075
|
-
/* @__PURE__ */
|
|
4076
|
-
/* @__PURE__ */
|
|
4077
|
-
] }) : /* @__PURE__ */
|
|
4078
|
-
/* @__PURE__ */
|
|
4091
|
+
/* @__PURE__ */ jsx10("circle", { className: "opacity-25", cx: "12", cy: "12", r: "10", stroke: "currentColor", strokeWidth: "4" }),
|
|
4092
|
+
/* @__PURE__ */ jsx10("path", { className: "opacity-75", fill: "currentColor", d: "M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z" })
|
|
4093
|
+
] }) : /* @__PURE__ */ jsx10("svg", { className: "w-3.5 h-3.5 shrink-0", fill: "none", viewBox: "0 0 24 24", stroke: "currentColor", children: /* @__PURE__ */ jsx10("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: "2", d: "M12 4v16m8-8H4" }) }),
|
|
4094
|
+
/* @__PURE__ */ jsx10("span", { className: "whitespace-nowrap truncate", children: "\u05E1\u05E0\u05DB\u05E8\u05DF \u05DC\u05D2\u05D5\u05D2\u05DC" })
|
|
4079
4095
|
]
|
|
4080
4096
|
}
|
|
4081
4097
|
) });
|
|
4082
4098
|
},
|
|
4083
|
-
DEFAULT: ({ value, onChange, readOnly }) => /* @__PURE__ */
|
|
4099
|
+
DEFAULT: ({ value, onChange, readOnly }) => /* @__PURE__ */ jsx10(
|
|
4084
4100
|
SmartTextCell,
|
|
4085
4101
|
{
|
|
4086
4102
|
value,
|
|
@@ -4091,14 +4107,14 @@ var FORM_INPUTS = {
|
|
|
4091
4107
|
),
|
|
4092
4108
|
SUB_TABLE: ({ value, column, context }) => {
|
|
4093
4109
|
var _a, _b, _c;
|
|
4094
|
-
if (!Array.isArray(value)) return /* @__PURE__ */
|
|
4110
|
+
if (!Array.isArray(value)) return /* @__PURE__ */ jsx10("span", { className: "px-2 py-1 flex items-center h-full text-slate-300 text-xs italic", children: "\u05E8\u05D9\u05E7" });
|
|
4095
4111
|
const selected = value.filter((e) => e == null ? void 0 : e.isSelected);
|
|
4096
|
-
if (selected.length === 0) return /* @__PURE__ */
|
|
4112
|
+
if (selected.length === 0) return /* @__PURE__ */ jsx10("span", { className: "px-2 py-1 flex items-center h-full text-slate-300 text-xs italic", children: "\u05E8\u05D9\u05E7" });
|
|
4097
4113
|
const displayFields = ((_a = column.config) == null ? void 0 : _a.subTableDisplayFields) || [];
|
|
4098
4114
|
const isWhatsApp = ((_b = column.config) == null ? void 0 : _b.actionType) === "WHATSAPP";
|
|
4099
4115
|
const actionPhoneCol = (_c = column.config) == null ? void 0 : _c.actionPhoneColumn;
|
|
4100
4116
|
const primaryEntry = selected.find((e) => e == null ? void 0 : e.isPrimary) || selected[0];
|
|
4101
|
-
return /* @__PURE__ */
|
|
4117
|
+
return /* @__PURE__ */ jsx10("div", { className: "px-1.5 py-1 flex flex-row flex-wrap items-center gap-1.5 h-full min-h-[inherit] overflow-hidden max-w-full", children: selected.map((entry, idx) => {
|
|
4102
4118
|
var _a2, _b2;
|
|
4103
4119
|
let label = "";
|
|
4104
4120
|
if (entry._resolvedData) {
|
|
@@ -4135,15 +4151,15 @@ var FORM_INPUTS = {
|
|
|
4135
4151
|
if (subStatus === "success") {
|
|
4136
4152
|
btnClass = "bg-emerald-50 hover:bg-emerald-100 text-emerald-800 border-emerald-400";
|
|
4137
4153
|
iconClass = "text-emerald-600";
|
|
4138
|
-
statusIcon = /* @__PURE__ */
|
|
4154
|
+
statusIcon = /* @__PURE__ */ jsx10("span", { className: "text-[10px] select-none shrink-0", title: "\u05E0\u05E9\u05DC\u05D7 \u05D1\u05D4\u05E6\u05DC\u05D7\u05D4", children: "\u2705" });
|
|
4139
4155
|
} else if (subStatus === "failed") {
|
|
4140
4156
|
btnClass = "bg-rose-50 hover:bg-rose-100 text-rose-800 border-rose-300 hover:border-rose-400";
|
|
4141
4157
|
iconClass = "text-rose-600";
|
|
4142
|
-
statusIcon = /* @__PURE__ */
|
|
4158
|
+
statusIcon = /* @__PURE__ */ jsx10("span", { className: "text-[10px] select-none shrink-0", title: subTooltip || "\u05E9\u05DC\u05D9\u05D7\u05D4 \u05E0\u05DB\u05E9\u05DC\u05D4", children: "\u274C" });
|
|
4143
4159
|
} else if (subStatus === "skipped") {
|
|
4144
4160
|
btnClass = "bg-amber-50 hover:bg-amber-100 text-amber-800 border-amber-300 hover:border-amber-400";
|
|
4145
4161
|
iconClass = "text-amber-600";
|
|
4146
|
-
statusIcon = /* @__PURE__ */
|
|
4162
|
+
statusIcon = /* @__PURE__ */ jsx10("span", { className: "text-[10px] select-none shrink-0", title: subTooltip || "\u05DC\u05DC\u05D0 \u05DE\u05E1\u05E4\u05E8 \u05D8\u05DC\u05E4\u05D5\u05DF \u05EA\u05E7\u05D9\u05DF", children: "\u26A0\uFE0F" });
|
|
4147
4163
|
}
|
|
4148
4164
|
return /* @__PURE__ */ jsxs8(
|
|
4149
4165
|
"button",
|
|
@@ -4156,9 +4172,9 @@ var FORM_INPUTS = {
|
|
|
4156
4172
|
className: `inline-flex items-center gap-1 px-1.5 py-0.5 rounded-full text-xs font-medium max-w-full truncate cursor-pointer transition-colors shadow-xs shrink border ${btnClass}`,
|
|
4157
4173
|
title: `${subTooltip ? `[${subTooltip}] ` : ""}\u05E4\u05EA\u05D9\u05D7\u05EA \u05D5\u05D5\u05D0\u05D8\u05E1\u05D0\u05E4 (${phone})${isPrimary ? " - \u05E0\u05E6\u05D9\u05D2 \u05E8\u05D0\u05E9\u05D9" : ""}`,
|
|
4158
4174
|
children: [
|
|
4159
|
-
statusIcon || /* @__PURE__ */
|
|
4160
|
-
/* @__PURE__ */
|
|
4161
|
-
isPrimary && /* @__PURE__ */
|
|
4175
|
+
statusIcon || /* @__PURE__ */ jsx10("svg", { className: `w-3 h-3 ${iconClass} shrink-0`, fill: "currentColor", viewBox: "0 0 24 24", children: /* @__PURE__ */ jsx10("path", { d: "M17.472 14.382c-.297-.149-1.758-.867-2.03-.967-.273-.099-.471-.148-.67.15-.197.297-.767.966-.94 1.164-.173.199-.347.223-.644.075-.297-.15-1.255-.463-2.39-1.475-.883-.788-1.48-1.761-1.653-2.059-.173-.297-.018-.458.13-.606.134-.133.298-.347.446-.52.149-.174.198-.298.298-.497.099-.198.05-.371-.025-.52-.075-.149-.669-1.612-.916-2.207-.242-.579-.487-.5-.669-.51a5.816 5.816 0 00-.571-.01c-.198 0-.52.074-.792.372-.272.297-1.04 1.016-1.04 2.479 0 1.462 1.065 2.875 1.213 3.074.149.198 2.096 3.2 5.077 4.487.709.306 1.262.489 1.694.625.712.227 1.36.195 1.871.118.571-.085 1.758-.719 2.006-1.413.248-.694.248-1.289.173-1.413-.074-.124-.272-.198-.57-.347m-5.421 7.403h-.004a9.87 9.87 0 01-5.031-1.378l-.361-.214-3.741.982.998-3.648-.235-.374a9.86 9.86 0 01-1.51-5.26c.001-5.45 4.436-9.884 9.888-9.884 2.64 0 5.122 1.03 6.988 2.898a9.825 9.825 0 012.893 6.994c-.003 5.45-4.437 9.884-9.885 9.884m8.413-18.297A11.815 11.815 0 0012.05 0C5.495 0 .16 5.335.157 11.892c0 2.096.547 4.142 1.588 5.945L.057 24l6.305-1.654a11.882 11.882 0 005.683 1.448h.005c6.554 0 11.89-5.335 11.893-11.893a11.821 11.821 0 00-3.48-8.413z" }) }),
|
|
4176
|
+
/* @__PURE__ */ jsx10("span", { className: "truncate", children: label }),
|
|
4177
|
+
isPrimary && /* @__PURE__ */ jsx10("span", { className: "text-amber-500 font-bold text-[10px] ml-0.5", title: "\u05E0\u05E6\u05D9\u05D2 \u05E8\u05D0\u05E9\u05D9", children: "\u2605" })
|
|
4162
4178
|
]
|
|
4163
4179
|
},
|
|
4164
4180
|
entry.recordId || idx
|
|
@@ -4169,13 +4185,13 @@ var FORM_INPUTS = {
|
|
|
4169
4185
|
let statusBadge = null;
|
|
4170
4186
|
if (subStatus === "success") {
|
|
4171
4187
|
chipClass = "bg-emerald-50 text-emerald-800 border-emerald-300";
|
|
4172
|
-
statusBadge = /* @__PURE__ */
|
|
4188
|
+
statusBadge = /* @__PURE__ */ jsx10("span", { className: "text-[10px] select-none shrink-0", title: "\u05E0\u05E9\u05DC\u05D7 \u05D1\u05D4\u05E6\u05DC\u05D7\u05D4", children: "\u2705" });
|
|
4173
4189
|
} else if (subStatus === "failed") {
|
|
4174
4190
|
chipClass = "bg-rose-50 text-rose-800 border-rose-300";
|
|
4175
|
-
statusBadge = /* @__PURE__ */
|
|
4191
|
+
statusBadge = /* @__PURE__ */ jsx10("span", { className: "text-[10px] select-none shrink-0", title: subTooltip || "\u05E9\u05DC\u05D9\u05D7\u05D4 \u05E0\u05DB\u05E9\u05DC\u05D4", children: "\u274C" });
|
|
4176
4192
|
} else if (subStatus === "skipped") {
|
|
4177
4193
|
chipClass = "bg-amber-50 text-amber-800 border-amber-300";
|
|
4178
|
-
statusBadge = /* @__PURE__ */
|
|
4194
|
+
statusBadge = /* @__PURE__ */ jsx10("span", { className: "text-[10px] select-none shrink-0", title: subTooltip || "\u05DC\u05DC\u05D0 \u05DE\u05E1\u05E4\u05E8 \u05D8\u05DC\u05E4\u05D5\u05DF \u05EA\u05E7\u05D9\u05DF", children: "\u26A0\uFE0F" });
|
|
4179
4195
|
}
|
|
4180
4196
|
return /* @__PURE__ */ jsxs8(
|
|
4181
4197
|
"span",
|
|
@@ -4184,8 +4200,8 @@ var FORM_INPUTS = {
|
|
|
4184
4200
|
title: `${subTooltip ? `[${subTooltip}] ` : ""}${label}${isPrimary ? " - \u05E0\u05E6\u05D9\u05D2 \u05E8\u05D0\u05E9\u05D9" : ""}`,
|
|
4185
4201
|
children: [
|
|
4186
4202
|
statusBadge,
|
|
4187
|
-
/* @__PURE__ */
|
|
4188
|
-
isPrimary && /* @__PURE__ */
|
|
4203
|
+
/* @__PURE__ */ jsx10("span", { className: "truncate", children: label }),
|
|
4204
|
+
isPrimary && /* @__PURE__ */ jsx10("span", { className: "text-amber-500 font-bold text-[10px]", title: "\u05E0\u05E6\u05D9\u05D2 \u05E8\u05D0\u05E9\u05D9", children: "\u2605" })
|
|
4189
4205
|
]
|
|
4190
4206
|
},
|
|
4191
4207
|
entry.recordId || idx
|
|
@@ -4341,7 +4357,7 @@ function useColumnReorder({
|
|
|
4341
4357
|
|
|
4342
4358
|
// src/components/TableBlock/columnTitleUtils.tsx
|
|
4343
4359
|
import { useState as useState10, useEffect as useEffect8 } from "react";
|
|
4344
|
-
import { jsx as
|
|
4360
|
+
import { jsx as jsx11, jsxs as jsxs9 } from "react/jsx-runtime";
|
|
4345
4361
|
var canvas = null;
|
|
4346
4362
|
function measureTextWidth(text2, font = '600 14px system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif') {
|
|
4347
4363
|
if (typeof document === "undefined") return text2.length * 9;
|
|
@@ -4404,22 +4420,22 @@ function ColumnHeaderTitle({ name, width, isSubTable = false }) {
|
|
|
4404
4420
|
}, []);
|
|
4405
4421
|
const { isSingleWord, line1, line2 } = splitHeaderTitle(name);
|
|
4406
4422
|
if (!isMounted || isSingleWord || !line2) {
|
|
4407
|
-
return /* @__PURE__ */
|
|
4423
|
+
return /* @__PURE__ */ jsx11("span", { className: "whitespace-nowrap select-none overflow-hidden text-right flex-1", title: name, children: name });
|
|
4408
4424
|
}
|
|
4409
4425
|
const font = isSubTable ? '600 12px system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif' : '600 14px system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif';
|
|
4410
4426
|
const chromeWidth = isSubTable ? 24 : 26;
|
|
4411
4427
|
const fullTitleWidth = measureTextWidth(name, font) + chromeWidth;
|
|
4412
4428
|
if (width !== void 0 && width >= fullTitleWidth) {
|
|
4413
|
-
return /* @__PURE__ */
|
|
4429
|
+
return /* @__PURE__ */ jsx11("span", { className: "whitespace-nowrap select-none overflow-hidden text-right flex-1", title: name, children: name });
|
|
4414
4430
|
}
|
|
4415
4431
|
return /* @__PURE__ */ jsxs9("span", { className: "flex flex-col justify-center leading-tight select-none overflow-hidden text-right flex-1", title: name, children: [
|
|
4416
|
-
/* @__PURE__ */
|
|
4417
|
-
/* @__PURE__ */
|
|
4432
|
+
/* @__PURE__ */ jsx11("span", { className: "whitespace-nowrap block", children: line1 }),
|
|
4433
|
+
/* @__PURE__ */ jsx11("span", { className: "whitespace-nowrap block", children: line2 })
|
|
4418
4434
|
] });
|
|
4419
4435
|
}
|
|
4420
4436
|
|
|
4421
4437
|
// src/components/TableBlock/fields/SubTableViewer.tsx
|
|
4422
|
-
import { jsx as
|
|
4438
|
+
import { jsx as jsx12, jsxs as jsxs10 } from "react/jsx-runtime";
|
|
4423
4439
|
function formatConflictCellValue(rawVal, colDef, relationOptionsMap) {
|
|
4424
4440
|
var _a, _b, _c;
|
|
4425
4441
|
if (rawVal === void 0 || rawVal === null || rawVal === "") {
|
|
@@ -4430,11 +4446,11 @@ function formatConflictCellValue(rawVal, colDef, relationOptionsMap) {
|
|
|
4430
4446
|
return rawVal ? "\u05DB\u05DF" : "\u05DC\u05D0";
|
|
4431
4447
|
}
|
|
4432
4448
|
if (colType === "GOOGLE_CONTACT" || typeof rawVal === "object" && rawVal !== null && ("resourceName" in rawVal || "synced" in rawVal)) {
|
|
4433
|
-
return /* @__PURE__ */
|
|
4449
|
+
return /* @__PURE__ */ jsx12("span", { className: "inline-flex items-center px-1.5 py-0.5 rounded text-[11px] font-medium bg-violet-50 text-violet-700 border border-violet-200", children: "\u05D0\u05D9\u05E9 \u05E7\u05E9\u05E8 \u05D2\u05D5\u05D2\u05DC" });
|
|
4434
4450
|
}
|
|
4435
4451
|
if (colType === "GOOGLE_DRIVE_FILE" || typeof rawVal === "object" && rawVal !== null && ("fileId" in rawVal || "fileUrl" in rawVal || "fileName" in rawVal)) {
|
|
4436
4452
|
const fileName = rawVal == null ? void 0 : rawVal.fileName;
|
|
4437
|
-
return /* @__PURE__ */
|
|
4453
|
+
return /* @__PURE__ */ jsx12("span", { className: "inline-flex items-center px-1.5 py-0.5 rounded text-[11px] font-medium bg-rose-50 text-rose-700 border border-rose-200 truncate max-w-[150px]", title: fileName || "\u05E7\u05D5\u05D1\u05E5 \u05DE\u05E6\u05D5\u05E8\u05E3", children: fileName ? String(fileName) : "\u05E7\u05D5\u05D1\u05E5 \u05DE\u05E6\u05D5\u05E8\u05E3" });
|
|
4438
4454
|
}
|
|
4439
4455
|
if (colType === "LINK" || typeof rawVal === "object" && rawVal !== null && ("url" in rawVal || "label" in rawVal)) {
|
|
4440
4456
|
const text2 = (rawVal == null ? void 0 : rawVal.label) || (rawVal == null ? void 0 : rawVal.url);
|
|
@@ -4470,7 +4486,7 @@ function formatConflictCellValue(rawVal, colDef, relationOptionsMap) {
|
|
|
4470
4486
|
return String(relDisplay);
|
|
4471
4487
|
}
|
|
4472
4488
|
}
|
|
4473
|
-
return /* @__PURE__ */
|
|
4489
|
+
return /* @__PURE__ */ jsx12("span", { className: "inline-flex items-center px-1.5 py-0.5 rounded text-[11px] font-medium bg-indigo-50 text-indigo-700 border border-indigo-200", children: "\u05E8\u05E9\u05D5\u05DE\u05D4 \u05DE\u05E7\u05D5\u05E9\u05E8\u05EA" });
|
|
4474
4490
|
}
|
|
4475
4491
|
if (Array.isArray(rawVal)) {
|
|
4476
4492
|
const allPrimitives = rawVal.every((v) => typeof v !== "object");
|
|
@@ -4671,7 +4687,7 @@ function SubTableCell({
|
|
|
4671
4687
|
const subTableMetaId = (targetSchema == null ? void 0 : targetSchema.tableMetaId) || (targetSchema == null ? void 0 : targetSchema.id) || referencedTableId;
|
|
4672
4688
|
const parentTableId = (context == null ? void 0 : context.parentTableId) || (context == null ? void 0 : context.tableId);
|
|
4673
4689
|
const effectiveParentRecordId = parentRowId || ((_c = context == null ? void 0 : context.parentRecord) == null ? void 0 : _c.recordId) || ((_d = context == null ? void 0 : context.parentRecord) == null ? void 0 : _d.id) || (context == null ? void 0 : context.rowId);
|
|
4674
|
-
return /* @__PURE__ */
|
|
4690
|
+
return /* @__PURE__ */ jsx12(
|
|
4675
4691
|
"td",
|
|
4676
4692
|
{
|
|
4677
4693
|
ref: cellRef,
|
|
@@ -4680,7 +4696,7 @@ function SubTableCell({
|
|
|
4680
4696
|
title: validationError || void 0,
|
|
4681
4697
|
style: width ? { width, minWidth: width, maxWidth: width, height: "100%" } : { height: "100%" },
|
|
4682
4698
|
className: `border border-slate-200 p-0 relative h-full min-h-[32px] transition-colors ${colType === "RELATION" ? "overflow-visible" : "overflow-hidden"} ${validationError ? "border-rose-400 ring-1 ring-rose-400 bg-rose-50/20" : ""}`,
|
|
4683
|
-
children: /* @__PURE__ */
|
|
4699
|
+
children: /* @__PURE__ */ jsx12(
|
|
4684
4700
|
InputComponent,
|
|
4685
4701
|
{
|
|
4686
4702
|
value: draftValue,
|
|
@@ -5295,7 +5311,7 @@ function SubTableViewer({ rowId, column, value, onChange, context, readOnly }) {
|
|
|
5295
5311
|
};
|
|
5296
5312
|
return /* @__PURE__ */ jsxs10("div", { className: "p-3 animate-in fade-in slide-in-from-top-2 duration-200", dir: "rtl", children: [
|
|
5297
5313
|
/* @__PURE__ */ jsxs10("div", { className: "flex items-center gap-4 mb-2.5", children: [
|
|
5298
|
-
/* @__PURE__ */
|
|
5314
|
+
/* @__PURE__ */ jsx12("div", { className: "flex items-center gap-2", children: /* @__PURE__ */ jsx12("span", { className: "text-xs font-bold text-slate-600", children: (_e = targetSchema == null ? void 0 : targetSchema.name) != null ? _e : (_d = column.config) == null ? void 0 : _d.referencedTableName }) }),
|
|
5299
5315
|
!isReadOnly && /* @__PURE__ */ jsxs10("div", { className: "flex items-center gap-1.5", children: [
|
|
5300
5316
|
/* @__PURE__ */ jsxs10("div", { className: "relative", ref: searchRef, children: [
|
|
5301
5317
|
/* @__PURE__ */ jsxs10(
|
|
@@ -5305,13 +5321,13 @@ function SubTableViewer({ rowId, column, value, onChange, context, readOnly }) {
|
|
|
5305
5321
|
onClick: () => setIsSearchOpen((prev) => !prev),
|
|
5306
5322
|
className: "h-7 px-2.5 text-[11px] font-semibold bg-blue-50 hover:bg-blue-100 text-blue-700 border border-blue-200 rounded-md transition-colors cursor-pointer flex items-center gap-1",
|
|
5307
5323
|
children: [
|
|
5308
|
-
/* @__PURE__ */
|
|
5324
|
+
/* @__PURE__ */ jsx12("svg", { className: "w-3 h-3", fill: "none", viewBox: "0 0 24 24", stroke: "currentColor", children: /* @__PURE__ */ jsx12("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: "2", d: "M21 21l-6-6m2-5a7 7 0 11-14 0 7 7 0 0114 0z" }) }),
|
|
5309
5325
|
"\u05E7\u05D9\u05E9\u05D5\u05E8 \u05E8\u05E9\u05D5\u05DE\u05D5\u05EA"
|
|
5310
5326
|
]
|
|
5311
5327
|
}
|
|
5312
5328
|
),
|
|
5313
5329
|
isSearchOpen && /* @__PURE__ */ jsxs10("div", { className: "absolute right-0 top-full mt-1 w-72 bg-white border border-slate-200 rounded-lg shadow-xl z-50 p-2", children: [
|
|
5314
|
-
/* @__PURE__ */
|
|
5330
|
+
/* @__PURE__ */ jsx12(
|
|
5315
5331
|
"input",
|
|
5316
5332
|
{
|
|
5317
5333
|
type: "text",
|
|
@@ -5322,7 +5338,7 @@ function SubTableViewer({ rowId, column, value, onChange, context, readOnly }) {
|
|
|
5322
5338
|
autoFocus: true
|
|
5323
5339
|
}
|
|
5324
5340
|
),
|
|
5325
|
-
/* @__PURE__ */
|
|
5341
|
+
/* @__PURE__ */ jsx12("div", { className: "max-h-48 overflow-y-auto", children: isSearching ? /* @__PURE__ */ jsx12("div", { className: "flex items-center justify-center py-4", children: /* @__PURE__ */ jsx12("div", { className: "w-4 h-4 border-2 border-blue-400 border-t-transparent rounded-full animate-spin" }) }) : searchResults.length > 0 ? searchResults.map((r) => /* @__PURE__ */ jsx12(
|
|
5326
5342
|
"button",
|
|
5327
5343
|
{
|
|
5328
5344
|
type: "button",
|
|
@@ -5331,7 +5347,7 @@ function SubTableViewer({ rowId, column, value, onChange, context, readOnly }) {
|
|
|
5331
5347
|
children: getDisplayLabel(r)
|
|
5332
5348
|
},
|
|
5333
5349
|
r.id
|
|
5334
|
-
)) : searchQuery.trim() ? /* @__PURE__ */
|
|
5350
|
+
)) : searchQuery.trim() ? /* @__PURE__ */ jsx12("p", { className: "text-xs text-slate-400 text-center py-3", children: "\u05DC\u05D0 \u05E0\u05DE\u05E6\u05D0\u05D5 \u05EA\u05D5\u05E6\u05D0\u05D5\u05EA" }) : /* @__PURE__ */ jsx12("p", { className: "text-xs text-slate-400 text-center py-3", children: "\u05D4\u05E7\u05DC\u05D3 \u05DC\u05D7\u05D9\u05E4\u05D5\u05E9..." }) })
|
|
5335
5351
|
] })
|
|
5336
5352
|
] }),
|
|
5337
5353
|
/* @__PURE__ */ jsxs10(
|
|
@@ -5354,18 +5370,18 @@ function SubTableViewer({ rowId, column, value, onChange, context, readOnly }) {
|
|
|
5354
5370
|
},
|
|
5355
5371
|
className: "h-7 px-2.5 text-[11px] font-semibold bg-emerald-50 hover:bg-emerald-100 text-emerald-700 border border-emerald-200 rounded-md transition-colors cursor-pointer flex items-center gap-1",
|
|
5356
5372
|
children: [
|
|
5357
|
-
/* @__PURE__ */
|
|
5373
|
+
/* @__PURE__ */ jsx12("svg", { className: "w-3 h-3", fill: "none", viewBox: "0 0 24 24", stroke: "currentColor", children: /* @__PURE__ */ jsx12("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: "2.5", d: "M12 4v16m8-8H4" }) }),
|
|
5358
5374
|
"\u05E8\u05E9\u05D5\u05DE\u05D4 \u05D7\u05D3\u05E9\u05D4"
|
|
5359
5375
|
]
|
|
5360
5376
|
}
|
|
5361
5377
|
)
|
|
5362
5378
|
] })
|
|
5363
5379
|
] }),
|
|
5364
|
-
isLoading ? /* @__PURE__ */
|
|
5365
|
-
/* @__PURE__ */
|
|
5366
|
-
/* @__PURE__ */
|
|
5367
|
-
/* @__PURE__ */
|
|
5368
|
-
/* @__PURE__ */
|
|
5380
|
+
isLoading ? /* @__PURE__ */ jsx12("div", { className: "flex items-center justify-center py-6", children: /* @__PURE__ */ jsx12("div", { className: "w-5 h-5 border-2 border-blue-400 border-t-transparent rounded-full animate-spin" }) }) : entries.length === 0 && !isCreating ? /* @__PURE__ */ jsx12("div", { className: "text-center py-6 text-xs text-slate-400", children: isReadOnly ? "\u05D0\u05D9\u05DF \u05E8\u05E9\u05D5\u05DE\u05D5\u05EA \u05DE\u05E7\u05D5\u05E9\u05E8\u05D5\u05EA \u05DC\u05D4\u05E6\u05D2\u05D4." : "\u05D0\u05D9\u05DF \u05E8\u05E9\u05D5\u05DE\u05D5\u05EA \u05DE\u05E7\u05D5\u05E9\u05E8\u05D5\u05EA. \u05D4\u05E9\u05EA\u05DE\u05E9 \u05D1\u05D7\u05D9\u05E4\u05D5\u05E9 \u05DB\u05D3\u05D9 \u05DC\u05E7\u05E9\u05E8 \u05E8\u05E9\u05D5\u05DE\u05D5\u05EA \u05E7\u05D9\u05D9\u05DE\u05D5\u05EA, \u05D0\u05D5 \u05D4\u05D5\u05E1\u05E3 \u05E8\u05E9\u05D5\u05DE\u05D4 \u05D7\u05D3\u05E9\u05D4." }) : /* @__PURE__ */ jsx12("div", { className: "overflow-x-auto pb-1", children: /* @__PURE__ */ jsxs10("table", { className: "w-full text-xs border-collapse table-auto", children: [
|
|
5381
|
+
/* @__PURE__ */ jsx12("thead", { children: /* @__PURE__ */ jsxs10("tr", { className: "bg-slate-100/80 h-12 min-h-[48px]", children: [
|
|
5382
|
+
/* @__PURE__ */ jsx12("th", { className: "border border-slate-200 px-1 py-1.5 text-center font-semibold text-slate-500 h-12 min-h-[48px] align-middle", style: { width: 68, minWidth: 68, maxWidth: 68 }, children: /* @__PURE__ */ jsxs10("div", { className: "flex items-center justify-center gap-1 text-[11px]", title: "\u05E0\u05D1\u05D7\u05E8 / \u05E0\u05E6\u05D9\u05D2 \u05E8\u05D0\u05E9\u05D9", children: [
|
|
5383
|
+
/* @__PURE__ */ jsx12("span", { children: "\u05E0\u05D1\u05D7\u05E8" }),
|
|
5384
|
+
/* @__PURE__ */ jsx12("span", { className: "text-amber-500 font-bold", title: "\u05E0\u05E6\u05D9\u05D2 \u05E8\u05D0\u05E9\u05D9", children: "\u2605" })
|
|
5369
5385
|
] }) }),
|
|
5370
5386
|
targetColumns.map((col) => {
|
|
5371
5387
|
const dragProps = isReadOnly ? {} : getHeaderDragProps(col.name);
|
|
@@ -5381,7 +5397,7 @@ function SubTableViewer({ rowId, column, value, onChange, context, readOnly }) {
|
|
|
5381
5397
|
}, dragProps), {
|
|
5382
5398
|
className: `relative border border-slate-200 px-3 py-1.5 font-semibold text-slate-600 select-none ${isReadOnly ? "cursor-default" : "cursor-grab active:cursor-grabbing"} transition-colors h-12 min-h-[48px] align-middle ${isDragging ? "opacity-40 bg-slate-200 border-dashed border-2 border-brand" : ""} ${isDragOver ? "bg-blue-50 border-r-4 border-r-brand text-brand font-bold" : isReadOnly ? "" : "hover:bg-slate-200/60"}`,
|
|
5383
5399
|
children: [
|
|
5384
|
-
/* @__PURE__ */
|
|
5400
|
+
/* @__PURE__ */ jsx12(
|
|
5385
5401
|
"div",
|
|
5386
5402
|
{
|
|
5387
5403
|
onMouseDown: (e) => {
|
|
@@ -5394,15 +5410,15 @@ function SubTableViewer({ rowId, column, value, onChange, context, readOnly }) {
|
|
|
5394
5410
|
}
|
|
5395
5411
|
),
|
|
5396
5412
|
/* @__PURE__ */ jsxs10("div", { className: "flex items-center justify-between gap-1.5 group overflow-hidden w-full", title: col.name, children: [
|
|
5397
|
-
/* @__PURE__ */
|
|
5398
|
-
!isReadOnly && /* @__PURE__ */
|
|
5413
|
+
/* @__PURE__ */ jsx12(ColumnHeaderTitle, { name: col.name, width: currentWidth, isSubTable: true }),
|
|
5414
|
+
!isReadOnly && /* @__PURE__ */ jsx12(
|
|
5399
5415
|
"svg",
|
|
5400
5416
|
{
|
|
5401
5417
|
className: "w-3.5 h-3.5 text-slate-400 opacity-40 group-hover:opacity-100 transition-opacity shrink-0 cursor-grab",
|
|
5402
5418
|
fill: "none",
|
|
5403
5419
|
viewBox: "0 0 24 24",
|
|
5404
5420
|
stroke: "currentColor",
|
|
5405
|
-
children: /* @__PURE__ */
|
|
5421
|
+
children: /* @__PURE__ */ jsx12("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: "2", d: "M8 9h.01M8 15h.01M16 9h.01M16 15h.01" })
|
|
5406
5422
|
}
|
|
5407
5423
|
)
|
|
5408
5424
|
] })
|
|
@@ -5411,8 +5427,8 @@ function SubTableViewer({ rowId, column, value, onChange, context, readOnly }) {
|
|
|
5411
5427
|
col.name
|
|
5412
5428
|
);
|
|
5413
5429
|
}),
|
|
5414
|
-
/* @__PURE__ */
|
|
5415
|
-
/* @__PURE__ */
|
|
5430
|
+
/* @__PURE__ */ jsx12("th", { className: "border border-slate-200 px-2 py-1.5 w-14 h-12 min-h-[48px]", style: { width: 56, minWidth: 56, maxWidth: 56 } }),
|
|
5431
|
+
/* @__PURE__ */ jsx12("th", { className: "w-full min-w-[50px] border border-slate-200 pointer-events-none h-12 min-h-[48px]" })
|
|
5416
5432
|
] }) }),
|
|
5417
5433
|
/* @__PURE__ */ jsxs10("tbody", { children: [
|
|
5418
5434
|
entries.map((entry) => {
|
|
@@ -5423,10 +5439,10 @@ function SubTableViewer({ rowId, column, value, onChange, context, readOnly }) {
|
|
|
5423
5439
|
const subStatus = typeof subStatusObj === "string" ? subStatusObj : subStatusObj == null ? void 0 : subStatusObj.status;
|
|
5424
5440
|
const subTooltip = typeof subStatusObj === "object" ? subStatusObj == null ? void 0 : subStatusObj.tooltip : void 0;
|
|
5425
5441
|
return /* @__PURE__ */ jsxs10("tr", { className: "hover:bg-blue-50/30 transition-colors", children: [
|
|
5426
|
-
/* @__PURE__ */
|
|
5442
|
+
/* @__PURE__ */ jsx12("td", { className: "border border-slate-200 px-1 py-1 text-center", style: { width: 68, minWidth: 68, maxWidth: 68 }, children: /* @__PURE__ */ jsxs10("div", { className: "flex items-center justify-center gap-1.5", children: [
|
|
5427
5443
|
subStatus && (() => {
|
|
5428
5444
|
if (subStatus === "success") {
|
|
5429
|
-
return /* @__PURE__ */
|
|
5445
|
+
return /* @__PURE__ */ jsx12(
|
|
5430
5446
|
"span",
|
|
5431
5447
|
{
|
|
5432
5448
|
className: "text-xs select-none cursor-help inline-flex items-center justify-center",
|
|
@@ -5436,7 +5452,7 @@ function SubTableViewer({ rowId, column, value, onChange, context, readOnly }) {
|
|
|
5436
5452
|
);
|
|
5437
5453
|
}
|
|
5438
5454
|
if (subStatus === "failed") {
|
|
5439
|
-
return /* @__PURE__ */
|
|
5455
|
+
return /* @__PURE__ */ jsx12(
|
|
5440
5456
|
"span",
|
|
5441
5457
|
{
|
|
5442
5458
|
className: "text-xs select-none cursor-help inline-flex items-center justify-center",
|
|
@@ -5446,7 +5462,7 @@ function SubTableViewer({ rowId, column, value, onChange, context, readOnly }) {
|
|
|
5446
5462
|
);
|
|
5447
5463
|
}
|
|
5448
5464
|
if (subStatus === "skipped") {
|
|
5449
|
-
return /* @__PURE__ */
|
|
5465
|
+
return /* @__PURE__ */ jsx12(
|
|
5450
5466
|
"span",
|
|
5451
5467
|
{
|
|
5452
5468
|
className: "text-xs select-none cursor-help inline-flex items-center justify-center",
|
|
@@ -5457,7 +5473,7 @@ function SubTableViewer({ rowId, column, value, onChange, context, readOnly }) {
|
|
|
5457
5473
|
}
|
|
5458
5474
|
return null;
|
|
5459
5475
|
})(),
|
|
5460
|
-
/* @__PURE__ */
|
|
5476
|
+
/* @__PURE__ */ jsx12(
|
|
5461
5477
|
"input",
|
|
5462
5478
|
{
|
|
5463
5479
|
type: "checkbox",
|
|
@@ -5468,7 +5484,7 @@ function SubTableViewer({ rowId, column, value, onChange, context, readOnly }) {
|
|
|
5468
5484
|
className: `w-3.5 h-3.5 rounded border-slate-300 text-blue-600 ${isReadOnly ? "cursor-not-allowed opacity-60" : "cursor-pointer"}`
|
|
5469
5485
|
}
|
|
5470
5486
|
),
|
|
5471
|
-
/* @__PURE__ */
|
|
5487
|
+
/* @__PURE__ */ jsx12(
|
|
5472
5488
|
"button",
|
|
5473
5489
|
{
|
|
5474
5490
|
type: "button",
|
|
@@ -5476,7 +5492,7 @@ function SubTableViewer({ rowId, column, value, onChange, context, readOnly }) {
|
|
|
5476
5492
|
onClick: () => handleTogglePrimary(entry.recordId),
|
|
5477
5493
|
title: !entry.isSelected ? "\u05D9\u05E9 \u05DC\u05E1\u05DE\u05DF \u05D0\u05EA \u05D4\u05E8\u05E9\u05D5\u05DE\u05D4 \u05DB\u05D3\u05D9 \u05DC\u05D4\u05D2\u05D3\u05D9\u05E8\u05D4 \u05DB\u05E0\u05E6\u05D9\u05D2 \u05E8\u05D0\u05E9\u05D9" : entry.recordId === effectivePrimaryRecordId ? "\u05E0\u05E6\u05D9\u05D2 \u05E8\u05D0\u05E9\u05D9" : "\u05D4\u05D2\u05D3\u05E8 \u05DB\u05E0\u05E6\u05D9\u05D2 \u05E8\u05D0\u05E9\u05D9",
|
|
5478
5494
|
className: `p-0.5 rounded transition-all inline-flex items-center justify-center ${entry.recordId === effectivePrimaryRecordId ? "text-amber-500 hover:text-amber-600 scale-110" : "text-slate-300 hover:text-amber-400 hover:scale-105"} ${isReadOnly || !entry.isSelected ? "opacity-25 cursor-not-allowed" : "cursor-pointer"}`,
|
|
5479
|
-
children: /* @__PURE__ */
|
|
5495
|
+
children: /* @__PURE__ */ jsx12(
|
|
5480
5496
|
Star,
|
|
5481
5497
|
{
|
|
5482
5498
|
className: `w-3.5 h-3.5 ${entry.recordId === effectivePrimaryRecordId ? "fill-amber-400 text-amber-500" : "text-slate-300"}`
|
|
@@ -5488,17 +5504,17 @@ function SubTableViewer({ rowId, column, value, onChange, context, readOnly }) {
|
|
|
5488
5504
|
targetColumns.map((col) => {
|
|
5489
5505
|
const currentWidth = columnWidths[col.name] || 150;
|
|
5490
5506
|
if (!record) {
|
|
5491
|
-
return /* @__PURE__ */
|
|
5507
|
+
return /* @__PURE__ */ jsx12(
|
|
5492
5508
|
"td",
|
|
5493
5509
|
{
|
|
5494
5510
|
style: { width: currentWidth, minWidth: currentWidth, maxWidth: currentWidth },
|
|
5495
5511
|
className: "border border-slate-200 p-0 relative h-8 overflow-hidden",
|
|
5496
|
-
children: /* @__PURE__ */
|
|
5512
|
+
children: /* @__PURE__ */ jsx12("span", { className: "text-slate-300 italic px-2", children: "\u05D8\u05D5\u05E2\u05DF..." })
|
|
5497
5513
|
},
|
|
5498
5514
|
col.name
|
|
5499
5515
|
);
|
|
5500
5516
|
}
|
|
5501
|
-
return /* @__PURE__ */
|
|
5517
|
+
return /* @__PURE__ */ jsx12(
|
|
5502
5518
|
SubTableCell,
|
|
5503
5519
|
{
|
|
5504
5520
|
record,
|
|
@@ -5518,7 +5534,7 @@ function SubTableViewer({ rowId, column, value, onChange, context, readOnly }) {
|
|
|
5518
5534
|
`${record.id}_${col.name}`
|
|
5519
5535
|
);
|
|
5520
5536
|
}),
|
|
5521
|
-
/* @__PURE__ */
|
|
5537
|
+
/* @__PURE__ */ jsx12("td", { className: "border border-slate-200 px-1 py-1 text-center", style: { width: 56, minWidth: 56, maxWidth: 56 }, children: /* @__PURE__ */ jsx12("div", { className: "flex items-center justify-center gap-1", children: !isReadOnly && /* @__PURE__ */ jsx12(
|
|
5522
5538
|
"button",
|
|
5523
5539
|
{
|
|
5524
5540
|
type: "button",
|
|
@@ -5528,26 +5544,26 @@ function SubTableViewer({ rowId, column, value, onChange, context, readOnly }) {
|
|
|
5528
5544
|
},
|
|
5529
5545
|
className: "text-slate-400 hover:text-rose-500 p-0.5 rounded transition-colors cursor-pointer inline-flex items-center justify-center",
|
|
5530
5546
|
title: "\u05D4\u05E1\u05E8 \u05E7\u05D9\u05E9\u05D5\u05E8",
|
|
5531
|
-
children: /* @__PURE__ */
|
|
5547
|
+
children: /* @__PURE__ */ jsx12("svg", { className: "w-3.5 h-3.5", fill: "none", viewBox: "0 0 24 24", stroke: "currentColor", children: /* @__PURE__ */ jsx12("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: "2", d: "M6 18L18 6M6 6l12 12" }) })
|
|
5532
5548
|
}
|
|
5533
5549
|
) }) }),
|
|
5534
|
-
/* @__PURE__ */
|
|
5550
|
+
/* @__PURE__ */ jsx12("td", { className: "border border-slate-200 bg-white pointer-events-none" })
|
|
5535
5551
|
] }, entry.recordId);
|
|
5536
5552
|
}),
|
|
5537
5553
|
isCreating && !isReadOnly && /* @__PURE__ */ jsxs10("tr", { className: "bg-emerald-50/40", children: [
|
|
5538
|
-
/* @__PURE__ */
|
|
5554
|
+
/* @__PURE__ */ jsx12("td", { className: "border border-emerald-200 px-1 py-1 text-center", style: { width: 68, minWidth: 68, maxWidth: 68 }, children: /* @__PURE__ */ jsx12("span", { className: "text-emerald-500 font-bold text-[10px]", children: "\u05D7\u05D3\u05E9" }) }),
|
|
5539
5555
|
targetColumns.map((col) => {
|
|
5540
5556
|
var _a2, _b2, _c2, _d2, _e2;
|
|
5541
5557
|
const colType = ((_a2 = col.type) == null ? void 0 : _a2.toUpperCase()) || "DEFAULT";
|
|
5542
5558
|
const InputComponent = FORM_INPUTS[colType] || FORM_INPUTS.DEFAULT;
|
|
5543
5559
|
const currentWidth = columnWidths[col.name] || 150;
|
|
5544
5560
|
const effectiveParentId = rowId || ((_b2 = context == null ? void 0 : context.parentRecord) == null ? void 0 : _b2.recordId) || ((_c2 = context == null ? void 0 : context.parentRecord) == null ? void 0 : _c2.id) || (context == null ? void 0 : context.rowId);
|
|
5545
|
-
return /* @__PURE__ */
|
|
5561
|
+
return /* @__PURE__ */ jsx12(
|
|
5546
5562
|
"td",
|
|
5547
5563
|
{
|
|
5548
5564
|
style: { width: currentWidth, minWidth: currentWidth, maxWidth: currentWidth },
|
|
5549
5565
|
className: `border border-emerald-200 p-0 relative h-8 ${colType === "RELATION" ? "overflow-visible" : "overflow-hidden"}`,
|
|
5550
|
-
children: /* @__PURE__ */
|
|
5566
|
+
children: /* @__PURE__ */ jsx12(
|
|
5551
5567
|
InputComponent,
|
|
5552
5568
|
{
|
|
5553
5569
|
value: (_d2 = newRecordData[col.name]) != null ? _d2 : colType === "BOOLEAN" ? false : "",
|
|
@@ -5575,18 +5591,18 @@ function SubTableViewer({ rowId, column, value, onChange, context, readOnly }) {
|
|
|
5575
5591
|
`new_${col.name}`
|
|
5576
5592
|
);
|
|
5577
5593
|
}),
|
|
5578
|
-
/* @__PURE__ */
|
|
5579
|
-
/* @__PURE__ */
|
|
5594
|
+
/* @__PURE__ */ jsx12("td", { className: "border border-emerald-200 px-1 py-1 text-center", style: { width: 56, minWidth: 56, maxWidth: 56 }, children: /* @__PURE__ */ jsxs10("div", { className: "flex items-center justify-center gap-1", children: [
|
|
5595
|
+
/* @__PURE__ */ jsx12(
|
|
5580
5596
|
"button",
|
|
5581
5597
|
{
|
|
5582
5598
|
type: "button",
|
|
5583
5599
|
onClick: handleCreateRecord,
|
|
5584
5600
|
className: "p-1 text-emerald-600 hover:bg-emerald-100 rounded transition-colors",
|
|
5585
5601
|
title: "\u05E9\u05DE\u05D5\u05E8",
|
|
5586
|
-
children: /* @__PURE__ */
|
|
5602
|
+
children: /* @__PURE__ */ jsx12("svg", { className: "w-3.5 h-3.5", fill: "none", viewBox: "0 0 24 24", stroke: "currentColor", children: /* @__PURE__ */ jsx12("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: "2.5", d: "M5 13l4 4L19 7" }) })
|
|
5587
5603
|
}
|
|
5588
5604
|
),
|
|
5589
|
-
/* @__PURE__ */
|
|
5605
|
+
/* @__PURE__ */ jsx12(
|
|
5590
5606
|
"button",
|
|
5591
5607
|
{
|
|
5592
5608
|
type: "button",
|
|
@@ -5595,15 +5611,15 @@ function SubTableViewer({ rowId, column, value, onChange, context, readOnly }) {
|
|
|
5595
5611
|
},
|
|
5596
5612
|
className: "p-1 text-rose-500 hover:bg-rose-100 rounded transition-colors",
|
|
5597
5613
|
title: "\u05D1\u05D9\u05D8\u05D5\u05DC",
|
|
5598
|
-
children: /* @__PURE__ */
|
|
5614
|
+
children: /* @__PURE__ */ jsx12("svg", { className: "w-3.5 h-3.5", fill: "none", viewBox: "0 0 24 24", stroke: "currentColor", children: /* @__PURE__ */ jsx12("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: "2.5", d: "M6 18L18 6M6 6l12 12" }) })
|
|
5599
5615
|
}
|
|
5600
5616
|
)
|
|
5601
5617
|
] }) }),
|
|
5602
|
-
/* @__PURE__ */
|
|
5618
|
+
/* @__PURE__ */ jsx12("td", { className: "border border-emerald-200 bg-emerald-50/40 pointer-events-none" })
|
|
5603
5619
|
] })
|
|
5604
5620
|
] })
|
|
5605
5621
|
] }) }),
|
|
5606
|
-
conflictModalState.isOpen && /* @__PURE__ */
|
|
5622
|
+
conflictModalState.isOpen && /* @__PURE__ */ jsx12(
|
|
5607
5623
|
"div",
|
|
5608
5624
|
{
|
|
5609
5625
|
className: "fixed inset-0 z-50 flex items-center justify-center p-4 bg-slate-900/60 backdrop-blur-sm animate-in fade-in duration-200",
|
|
@@ -5616,17 +5632,17 @@ function SubTableViewer({ rowId, column, value, onChange, context, readOnly }) {
|
|
|
5616
5632
|
onClick: (e) => e.stopPropagation(),
|
|
5617
5633
|
children: [
|
|
5618
5634
|
/* @__PURE__ */ jsxs10("div", { className: "p-5 border-b border-slate-100 flex items-center gap-3", children: [
|
|
5619
|
-
/* @__PURE__ */
|
|
5635
|
+
/* @__PURE__ */ jsx12("div", { className: "w-10 h-10 rounded-full bg-blue-50 border border-blue-200 flex items-center justify-center text-blue-600 flex-shrink-0", children: /* @__PURE__ */ jsx12("svg", { className: "w-5 h-5", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24", children: /* @__PURE__ */ jsx12("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: "2", d: "M13.828 10.172a4 4 0 00-5.656 0l-4 4a4 4 0 105.656 5.656l1.102-1.101m-.758-4.899a4 4 0 005.656 0l4-4a4 4 0 00-5.656-5.656l-1.1 1.1" }) }) }),
|
|
5620
5636
|
/* @__PURE__ */ jsxs10("div", { children: [
|
|
5621
|
-
/* @__PURE__ */
|
|
5622
|
-
/* @__PURE__ */
|
|
5637
|
+
/* @__PURE__ */ jsx12("h3", { className: "text-base font-bold text-slate-800", children: conflictModalState.matchingRecords.length > 1 ? "\u05E8\u05E9\u05D5\u05DE\u05D5\u05EA \u05E7\u05D9\u05D9\u05DE\u05D5\u05EA \u05D1\u05D8\u05D1\u05DC\u05D4" : "\u05E8\u05E9\u05D5\u05DE\u05D4 \u05E7\u05D9\u05D9\u05DE\u05EA \u05D1\u05D8\u05D1\u05DC\u05D4" }),
|
|
5638
|
+
/* @__PURE__ */ jsx12("p", { className: "text-xs text-slate-500", children: "\u05E0\u05DE\u05E6\u05D0\u05D4 \u05E8\u05E9\u05D5\u05DE\u05D4 \u05E7\u05D9\u05D9\u05DE\u05EA \u05E2\u05DD \u05D0\u05D5\u05EA\u05D5 \u05E2\u05E8\u05DA \u05D9\u05D9\u05D7\u05D5\u05D3\u05D9" })
|
|
5623
5639
|
] })
|
|
5624
5640
|
] }),
|
|
5625
5641
|
/* @__PURE__ */ jsxs10("div", { className: "p-5 space-y-3", children: [
|
|
5626
5642
|
/* @__PURE__ */ jsxs10("p", { className: "text-sm text-slate-700 leading-relaxed", children: [
|
|
5627
5643
|
"\u05E7\u05D9\u05D9\u05DE\u05EA \u05DB\u05D1\u05E8 \u05E8\u05E9\u05D5\u05DE\u05D4 \u05E2\u05DD \u05D4\u05E2\u05E8\u05DA \u05E9\u05E0\u05D1\u05D7\u05E8 \u05D1\u05E9\u05D3\u05D4",
|
|
5628
5644
|
" ",
|
|
5629
|
-
/* @__PURE__ */
|
|
5645
|
+
/* @__PURE__ */ jsx12("span", { className: "font-bold text-slate-900 bg-slate-100 px-1.5 py-0.5 rounded border border-slate-200", children: conflictModalState.fieldName }),
|
|
5630
5646
|
". \u05D4\u05D0\u05DD \u05EA\u05E8\u05E6\u05D4 \u05DC\u05E7\u05E9\u05E8 \u05D0\u05D5\u05EA\u05D4 \u05DC\u05EA\u05EA-\u05D4\u05D8\u05D1\u05DC\u05D4 \u05D1\u05DE\u05E7\u05D5\u05DD \u05DC\u05D9\u05E6\u05D5\u05E8 \u05D7\u05D3\u05E9\u05D4?"
|
|
5631
5647
|
] }),
|
|
5632
5648
|
conflictModalState.matchingRecords.length > 1 && /* @__PURE__ */ jsxs10("div", { className: "p-3 bg-blue-50 border border-blue-200 rounded-lg text-xs font-semibold text-blue-800", children: [
|
|
@@ -5634,8 +5650,8 @@ function SubTableViewer({ rowId, column, value, onChange, context, readOnly }) {
|
|
|
5634
5650
|
conflictModalState.matchingRecords.length,
|
|
5635
5651
|
" \u05E8\u05E9\u05D5\u05DE\u05D5\u05EA \u05E7\u05D9\u05D9\u05DE\u05D5\u05EA. \u05D4\u05D0\u05DD \u05DC\u05E7\u05E9\u05E8 \u05D0\u05EA \u05DB\u05D5\u05DC\u05DF?"
|
|
5636
5652
|
] }),
|
|
5637
|
-
conflictModalState.matchingRecords.length > 0 && /* @__PURE__ */
|
|
5638
|
-
/* @__PURE__ */
|
|
5653
|
+
conflictModalState.matchingRecords.length > 0 && /* @__PURE__ */ jsx12("div", { className: "overflow-x-auto border border-slate-200 rounded-lg max-h-48 text-xs bg-white", children: /* @__PURE__ */ jsxs10("table", { className: "w-full text-right border-collapse", children: [
|
|
5654
|
+
/* @__PURE__ */ jsx12("thead", { children: /* @__PURE__ */ jsx12("tr", { className: "bg-slate-100 text-slate-700 font-semibold border-b whitespace-nowrap", children: (targetColumns.length > 0 ? targetColumns.filter((c) => c.name !== "_id" && c.name !== "id") : Object.keys(((_f = conflictModalState.matchingRecords[0]) == null ? void 0 : _f.data) || {}).filter((k) => k !== "_id" && k !== "id").map((name) => ({ name }))).map((col) => /* @__PURE__ */ jsx12(
|
|
5639
5655
|
"th",
|
|
5640
5656
|
{
|
|
5641
5657
|
className: "bg-slate-100 text-slate-700 font-semibold p-2 border-b whitespace-nowrap",
|
|
@@ -5643,14 +5659,14 @@ function SubTableViewer({ rowId, column, value, onChange, context, readOnly }) {
|
|
|
5643
5659
|
},
|
|
5644
5660
|
col.name
|
|
5645
5661
|
)) }) }),
|
|
5646
|
-
/* @__PURE__ */
|
|
5662
|
+
/* @__PURE__ */ jsx12("tbody", { children: conflictModalState.matchingRecords.map((r, idx) => {
|
|
5647
5663
|
const cols = targetColumns.length > 0 ? targetColumns.filter((c) => c.name !== "_id" && c.name !== "id") : Object.keys(r.data || {}).filter((k) => k !== "_id" && k !== "id").map((name) => ({ name }));
|
|
5648
|
-
return /* @__PURE__ */
|
|
5664
|
+
return /* @__PURE__ */ jsx12("tr", { className: "hover:bg-slate-50/80 transition-colors", children: cols.map((col) => {
|
|
5649
5665
|
var _a2;
|
|
5650
5666
|
const rawVal = (_a2 = r.data) == null ? void 0 : _a2[col.name];
|
|
5651
5667
|
const colDef = targetColumns.find((c) => c.name === col.name) || col;
|
|
5652
5668
|
const displayVal = formatConflictCellValue(rawVal, colDef, relationOptions || (context == null ? void 0 : context.relationOptions));
|
|
5653
|
-
return /* @__PURE__ */
|
|
5669
|
+
return /* @__PURE__ */ jsx12(
|
|
5654
5670
|
"td",
|
|
5655
5671
|
{
|
|
5656
5672
|
className: "p-2 border-b border-slate-100 whitespace-nowrap text-slate-800",
|
|
@@ -5663,7 +5679,7 @@ function SubTableViewer({ rowId, column, value, onChange, context, readOnly }) {
|
|
|
5663
5679
|
] }) })
|
|
5664
5680
|
] }),
|
|
5665
5681
|
/* @__PURE__ */ jsxs10("div", { className: "p-4 bg-slate-50 border-t border-slate-100 flex items-center justify-end gap-2.5", children: [
|
|
5666
|
-
/* @__PURE__ */
|
|
5682
|
+
/* @__PURE__ */ jsx12(
|
|
5667
5683
|
"button",
|
|
5668
5684
|
{
|
|
5669
5685
|
type: "button",
|
|
@@ -5679,7 +5695,7 @@ function SubTableViewer({ rowId, column, value, onChange, context, readOnly }) {
|
|
|
5679
5695
|
onClick: handleConfirmLinkConflict,
|
|
5680
5696
|
className: "px-4 py-2 text-sm font-semibold text-white bg-blue-600 hover:bg-blue-700 rounded-lg shadow transition-colors flex items-center gap-1.5 cursor-pointer",
|
|
5681
5697
|
children: [
|
|
5682
|
-
/* @__PURE__ */
|
|
5698
|
+
/* @__PURE__ */ jsx12("svg", { className: "w-4 h-4", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24", children: /* @__PURE__ */ jsx12("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: "2", d: "M13.828 10.172a4 4 0 00-5.656 0l-4 4a4 4 0 105.656 5.656l1.102-1.101m-.758-4.899a4 4 0 005.656 0l4-4a4 4 0 00-5.656-5.656l-1.1 1.1" }) }),
|
|
5683
5699
|
conflictModalState.matchingRecords.length > 1 ? "\u05E7\u05E9\u05E8 \u05D0\u05EA \u05DB\u05D5\u05DC\u05DF" : "\u05E7\u05E9\u05E8 \u05E8\u05E9\u05D5\u05DE\u05D4"
|
|
5684
5700
|
]
|
|
5685
5701
|
}
|
|
@@ -5714,7 +5730,7 @@ function useRelationCopyHandler({ columns, handleCellChange }) {
|
|
|
5714
5730
|
// src/components/TableBlock/RelationFilterPopover.tsx
|
|
5715
5731
|
import { useState as useState12, useEffect as useEffect10, useRef as useRef10, useMemo as useMemo5, useCallback as useCallback11 } from "react";
|
|
5716
5732
|
import { Search as Search2, X as X7, RotateCcw } from "lucide-react";
|
|
5717
|
-
import { jsx as
|
|
5733
|
+
import { jsx as jsx13, jsxs as jsxs11 } from "react/jsx-runtime";
|
|
5718
5734
|
function calculatePopoverCoords(rect) {
|
|
5719
5735
|
if (!rect || typeof window === "undefined") return null;
|
|
5720
5736
|
const popoverWidth = 260;
|
|
@@ -5935,26 +5951,26 @@ function RelationFilterPopover({
|
|
|
5935
5951
|
"(\u05D4\u05DB\u05DC \u05DC\u05DE\u05E2\u05D8 ",
|
|
5936
5952
|
excludedSet.size,
|
|
5937
5953
|
")"
|
|
5938
|
-
] }) : mode === "exclude" && excludedSet.size === 0 ? /* @__PURE__ */
|
|
5954
|
+
] }) : mode === "exclude" && excludedSet.size === 0 ? /* @__PURE__ */ jsx13("span", { className: "text-[10px] text-brand font-semibold", children: "(\u05D4\u05DB\u05DC \u05E0\u05D1\u05D7\u05E8)" }) : selectedCount > 0 ? /* @__PURE__ */ jsxs11("span", { className: "text-[10px] text-brand font-semibold", children: [
|
|
5939
5955
|
"(",
|
|
5940
5956
|
selectedCount,
|
|
5941
5957
|
" \u05E0\u05D1\u05D7\u05E8\u05D5)"
|
|
5942
5958
|
] }) : null
|
|
5943
5959
|
] }),
|
|
5944
|
-
/* @__PURE__ */
|
|
5960
|
+
/* @__PURE__ */ jsx13(
|
|
5945
5961
|
"button",
|
|
5946
5962
|
{
|
|
5947
5963
|
type: "button",
|
|
5948
5964
|
onClick: onClose,
|
|
5949
5965
|
className: "text-slate-400 hover:text-slate-600 p-0.5 rounded hover:bg-slate-100 transition-colors cursor-pointer",
|
|
5950
5966
|
title: "\u05E1\u05D2\u05D5\u05E8",
|
|
5951
|
-
children: /* @__PURE__ */
|
|
5967
|
+
children: /* @__PURE__ */ jsx13(X7, { className: "w-3.5 h-3.5" })
|
|
5952
5968
|
}
|
|
5953
5969
|
)
|
|
5954
5970
|
] }),
|
|
5955
5971
|
/* @__PURE__ */ jsxs11("div", { className: "relative mb-2", children: [
|
|
5956
|
-
/* @__PURE__ */
|
|
5957
|
-
/* @__PURE__ */
|
|
5972
|
+
/* @__PURE__ */ jsx13(Search2, { className: "w-3.5 h-3.5 text-slate-400 absolute right-2.5 top-1/2 -translate-y-1/2 pointer-events-none" }),
|
|
5973
|
+
/* @__PURE__ */ jsx13(
|
|
5958
5974
|
"input",
|
|
5959
5975
|
{
|
|
5960
5976
|
ref: searchInputRef,
|
|
@@ -5965,19 +5981,19 @@ function RelationFilterPopover({
|
|
|
5965
5981
|
className: "h-7 text-xs pr-7 pl-6 w-full rounded-md border border-slate-200 bg-slate-50 focus:bg-white focus:border-brand focus:ring-1 focus:ring-brand text-slate-800 transition-all placeholder:text-slate-400"
|
|
5966
5982
|
}
|
|
5967
5983
|
),
|
|
5968
|
-
searchQuery && /* @__PURE__ */
|
|
5984
|
+
searchQuery && /* @__PURE__ */ jsx13(
|
|
5969
5985
|
"button",
|
|
5970
5986
|
{
|
|
5971
5987
|
type: "button",
|
|
5972
5988
|
onClick: () => setSearchQuery(""),
|
|
5973
5989
|
className: "absolute left-1.5 top-1/2 -translate-y-1/2 p-0.5 text-slate-400 hover:text-slate-600 rounded",
|
|
5974
|
-
children: /* @__PURE__ */
|
|
5990
|
+
children: /* @__PURE__ */ jsx13(X7, { className: "w-3 h-3" })
|
|
5975
5991
|
}
|
|
5976
5992
|
)
|
|
5977
5993
|
] }),
|
|
5978
5994
|
/* @__PURE__ */ jsxs11("div", { className: "flex items-center justify-between px-1.5 py-1 mb-1 rounded hover:bg-slate-50 transition-colors border-b border-slate-100 pb-1.5", children: [
|
|
5979
5995
|
/* @__PURE__ */ jsxs11("label", { className: "flex items-center gap-2 cursor-pointer text-xs font-medium text-slate-700 flex-1", children: [
|
|
5980
|
-
/* @__PURE__ */
|
|
5996
|
+
/* @__PURE__ */ jsx13(
|
|
5981
5997
|
"input",
|
|
5982
5998
|
{
|
|
5983
5999
|
ref: selectAllRef,
|
|
@@ -5987,7 +6003,7 @@ function RelationFilterPopover({
|
|
|
5987
6003
|
className: "w-3.5 h-3.5 rounded border-slate-300 text-brand focus:ring-brand cursor-pointer accent-[#0d9488]"
|
|
5988
6004
|
}
|
|
5989
6005
|
),
|
|
5990
|
-
/* @__PURE__ */
|
|
6006
|
+
/* @__PURE__ */ jsx13("span", { children: "\u05D1\u05D7\u05E8 \u05D4\u05DB\u05DC" })
|
|
5991
6007
|
] }),
|
|
5992
6008
|
(mode === "exclude" || checkedSet.size > 0) && /* @__PURE__ */ jsxs11(
|
|
5993
6009
|
"button",
|
|
@@ -5997,23 +6013,23 @@ function RelationFilterPopover({
|
|
|
5997
6013
|
className: "text-[11px] text-blue-600 hover:text-blue-700 hover:underline flex items-center gap-1 cursor-pointer",
|
|
5998
6014
|
title: "\u05E0\u05E7\u05D4 \u05E1\u05D9\u05E0\u05D5\u05DF \u05D5\u05D4\u05E6\u05D2 \u05D4\u05DB\u05DC",
|
|
5999
6015
|
children: [
|
|
6000
|
-
/* @__PURE__ */
|
|
6001
|
-
/* @__PURE__ */
|
|
6016
|
+
/* @__PURE__ */ jsx13(RotateCcw, { className: "w-2.5 h-2.5" }),
|
|
6017
|
+
/* @__PURE__ */ jsx13("span", { children: "\u05E0\u05E7\u05D4" })
|
|
6002
6018
|
]
|
|
6003
6019
|
}
|
|
6004
6020
|
)
|
|
6005
6021
|
] }),
|
|
6006
|
-
/* @__PURE__ */
|
|
6007
|
-
/* @__PURE__ */
|
|
6008
|
-
/* @__PURE__ */
|
|
6009
|
-
] }) : filteredOptions.length === 0 ? /* @__PURE__ */
|
|
6022
|
+
/* @__PURE__ */ jsx13("div", { className: "max-h-[250px] overflow-y-auto space-y-0.5 custom-scrollbar pr-0.5", children: isLoading ? /* @__PURE__ */ jsxs11("div", { className: "flex items-center justify-center py-6 text-slate-400 text-xs", children: [
|
|
6023
|
+
/* @__PURE__ */ jsx13("div", { className: "w-4 h-4 border-2 border-brand border-t-transparent rounded-full animate-spin ml-2" }),
|
|
6024
|
+
/* @__PURE__ */ jsx13("span", { children: "\u05D8\u05D5\u05E2\u05DF \u05D0\u05E4\u05E9\u05E8\u05D5\u05D9\u05D5\u05EA..." })
|
|
6025
|
+
] }) : filteredOptions.length === 0 ? /* @__PURE__ */ jsx13("div", { className: "py-6 text-center text-xs text-slate-400", children: "\u05DC\u05D0 \u05E0\u05DE\u05E6\u05D0\u05D5 \u05D0\u05E4\u05E9\u05E8\u05D5\u05D9\u05D5\u05EA" }) : filteredOptions.map((opt) => {
|
|
6010
6026
|
const isChecked = isOptionChecked(opt.label);
|
|
6011
6027
|
return /* @__PURE__ */ jsxs11(
|
|
6012
6028
|
"label",
|
|
6013
6029
|
{
|
|
6014
6030
|
className: `flex items-center gap-2 px-2 py-1 rounded cursor-pointer transition-colors text-xs ${isChecked ? "text-slate-800 font-medium bg-slate-50/60" : "text-slate-500 hover:bg-slate-50"}`,
|
|
6015
6031
|
children: [
|
|
6016
|
-
/* @__PURE__ */
|
|
6032
|
+
/* @__PURE__ */ jsx13(
|
|
6017
6033
|
"input",
|
|
6018
6034
|
{
|
|
6019
6035
|
type: "checkbox",
|
|
@@ -6022,7 +6038,7 @@ function RelationFilterPopover({
|
|
|
6022
6038
|
className: "w-3.5 h-3.5 rounded border-slate-300 text-brand focus:ring-brand cursor-pointer accent-[#0d9488]"
|
|
6023
6039
|
}
|
|
6024
6040
|
),
|
|
6025
|
-
/* @__PURE__ */
|
|
6041
|
+
/* @__PURE__ */ jsx13("span", { className: "truncate flex-1", title: opt.label, children: opt.label })
|
|
6026
6042
|
]
|
|
6027
6043
|
},
|
|
6028
6044
|
opt.id
|
|
@@ -6033,7 +6049,7 @@ function RelationFilterPopover({
|
|
|
6033
6049
|
filteredOptions.length,
|
|
6034
6050
|
" \u05EA\u05D5\u05E6\u05D0\u05D5\u05EA"
|
|
6035
6051
|
] }),
|
|
6036
|
-
/* @__PURE__ */
|
|
6052
|
+
/* @__PURE__ */ jsx13(
|
|
6037
6053
|
"button",
|
|
6038
6054
|
{
|
|
6039
6055
|
type: "button",
|
|
@@ -6052,18 +6068,18 @@ function RelationFilterPopover({
|
|
|
6052
6068
|
import { useEffect as useEffect11, useMemo as useMemo6, useRef as useRef11, useState as useState13 } from "react";
|
|
6053
6069
|
|
|
6054
6070
|
// src/components/TableBlock/RelationButtonsView.tsx
|
|
6055
|
-
import { jsx as
|
|
6071
|
+
import { jsx as jsx14, jsxs as jsxs12 } from "react/jsx-runtime";
|
|
6056
6072
|
function RelationButtonsView({ groups, onSelect, disabled, stacked = false }) {
|
|
6057
6073
|
const visible = groups.filter((g) => g.options.length > 0);
|
|
6058
6074
|
if (visible.length === 0) return null;
|
|
6059
|
-
return /* @__PURE__ */
|
|
6075
|
+
return /* @__PURE__ */ jsx14("div", { className: `grid grid-cols-1 gap-2.5 ${stacked ? "" : "md:grid-cols-2"}`, children: visible.map((group) => /* @__PURE__ */ jsxs12(
|
|
6060
6076
|
"div",
|
|
6061
6077
|
{
|
|
6062
6078
|
className: "bg-white border border-slate-200 rounded-xl p-3 flex flex-col gap-2.5 shadow-2xs",
|
|
6063
6079
|
children: [
|
|
6064
6080
|
/* @__PURE__ */ jsxs12("div", { className: "flex items-center justify-between gap-2 pb-2 border-b border-slate-100", children: [
|
|
6065
|
-
/* @__PURE__ */
|
|
6066
|
-
group.activeId ? /* @__PURE__ */
|
|
6081
|
+
/* @__PURE__ */ jsx14("span", { className: "text-xs font-bold text-slate-800 truncate", title: group.title, children: group.title }),
|
|
6082
|
+
group.activeId ? /* @__PURE__ */ jsx14(
|
|
6067
6083
|
"button",
|
|
6068
6084
|
{
|
|
6069
6085
|
type: "button",
|
|
@@ -6073,17 +6089,17 @@ function RelationButtonsView({ groups, onSelect, disabled, stacked = false }) {
|
|
|
6073
6089
|
}
|
|
6074
6090
|
) : null
|
|
6075
6091
|
] }),
|
|
6076
|
-
/* @__PURE__ */
|
|
6092
|
+
/* @__PURE__ */ jsx14("div", { className: "flex flex-wrap items-end gap-x-2 gap-y-2.5", children: group.options.map((opt) => {
|
|
6077
6093
|
const active = group.activeId === opt.id;
|
|
6078
6094
|
return /* @__PURE__ */ jsxs12("div", { className: "flex flex-col items-center gap-0.5", children: [
|
|
6079
|
-
/* @__PURE__ */
|
|
6095
|
+
/* @__PURE__ */ jsx14(
|
|
6080
6096
|
"span",
|
|
6081
6097
|
{
|
|
6082
6098
|
className: `text-[11px] font-bold leading-none ${active ? "text-indigo-700" : "text-slate-500"}`,
|
|
6083
6099
|
children: opt.count
|
|
6084
6100
|
}
|
|
6085
6101
|
),
|
|
6086
|
-
/* @__PURE__ */
|
|
6102
|
+
/* @__PURE__ */ jsx14(
|
|
6087
6103
|
"button",
|
|
6088
6104
|
{
|
|
6089
6105
|
type: "button",
|
|
@@ -6104,7 +6120,7 @@ function RelationButtonsView({ groups, onSelect, disabled, stacked = false }) {
|
|
|
6104
6120
|
}
|
|
6105
6121
|
|
|
6106
6122
|
// src/components/TableBlock/RelationButtonsBar.tsx
|
|
6107
|
-
import { jsx as
|
|
6123
|
+
import { jsx as jsx15 } from "react/jsx-runtime";
|
|
6108
6124
|
function unwrap(res) {
|
|
6109
6125
|
const body = (res == null ? void 0 : res.data) && typeof res.data === "object" && !Array.isArray(res.data) ? res.data : res;
|
|
6110
6126
|
const cols = body == null ? void 0 : body.columns;
|
|
@@ -6150,12 +6166,12 @@ function RelationButtonsBar({
|
|
|
6150
6166
|
[buttonCols, counts, columnFilters]
|
|
6151
6167
|
);
|
|
6152
6168
|
if (buttonCols.length === 0 || groups.every((g) => g.options.length === 0)) return null;
|
|
6153
|
-
return /* @__PURE__ */
|
|
6169
|
+
return /* @__PURE__ */ jsx15(
|
|
6154
6170
|
"div",
|
|
6155
6171
|
{
|
|
6156
6172
|
className: "px-3.5 sm:px-4 py-3 bg-slate-100/70 border-b border-slate-200 shrink-0",
|
|
6157
6173
|
"data-testid": "relation-buttons-bar",
|
|
6158
|
-
children: /* @__PURE__ */
|
|
6174
|
+
children: /* @__PURE__ */ jsx15(
|
|
6159
6175
|
RelationButtonsView,
|
|
6160
6176
|
{
|
|
6161
6177
|
groups,
|
|
@@ -6211,7 +6227,7 @@ function useDefaultColumnFilters({ columns, tableId, executeAction, onResolved }
|
|
|
6211
6227
|
}
|
|
6212
6228
|
|
|
6213
6229
|
// src/components/TableBlock/TableBlockClient.tsx
|
|
6214
|
-
import { jsx as
|
|
6230
|
+
import { jsx as jsx16, jsxs as jsxs13 } from "react/jsx-runtime";
|
|
6215
6231
|
function TableBlockClient({
|
|
6216
6232
|
data: initialRecords,
|
|
6217
6233
|
settings: schema,
|
|
@@ -7053,6 +7069,7 @@ function TableBlockClient({
|
|
|
7053
7069
|
const generateTempId = () => `temp_${Math.random().toString(36).substr(2, 9)}`;
|
|
7054
7070
|
const handleAddRow = () => {
|
|
7055
7071
|
const defaultData = {};
|
|
7072
|
+
const pendingBefore = dirty.added.length;
|
|
7056
7073
|
(localColumns || []).forEach((col) => {
|
|
7057
7074
|
var _a;
|
|
7058
7075
|
const typeUpper = (_a = col.type) == null ? void 0 : _a.toUpperCase();
|
|
@@ -7082,6 +7099,33 @@ function TableBlockClient({
|
|
|
7082
7099
|
const newRow = { id: generateTempId(), data: defaultData };
|
|
7083
7100
|
setData((prev) => [newRow, ...prev]);
|
|
7084
7101
|
setDirty((prev) => __spreadProps(__spreadValues({}, prev), { added: [newRow, ...prev.added] }));
|
|
7102
|
+
void previewSequenceValues(newRow.id, pendingBefore);
|
|
7103
|
+
};
|
|
7104
|
+
const previewSequenceValues = async (rowId, pendingBefore) => {
|
|
7105
|
+
var _a, _b;
|
|
7106
|
+
const seqCols = (localColumns || []).filter((c) => {
|
|
7107
|
+
var _a2;
|
|
7108
|
+
return ((_a2 = c.type) == null ? void 0 : _a2.toUpperCase()) === "SEQUENCE";
|
|
7109
|
+
});
|
|
7110
|
+
const tableId = (schema == null ? void 0 : schema.tableMetaId) || (schema == null ? void 0 : schema.tableId) || (schema == null ? void 0 : schema.id);
|
|
7111
|
+
if (seqCols.length === 0 || !tableId || !executeAction) return;
|
|
7112
|
+
try {
|
|
7113
|
+
const res = await executeAction("GET_NEXT_SEQUENCE", { tableId, tableMetaId: tableId });
|
|
7114
|
+
const next = (_b = res == null ? void 0 : res.values) != null ? _b : (_a = res == null ? void 0 : res.data) == null ? void 0 : _a.values;
|
|
7115
|
+
if (!next) return;
|
|
7116
|
+
const apply = (r) => {
|
|
7117
|
+
if (r.id !== rowId) return r;
|
|
7118
|
+
const patched = __spreadValues({}, r.data);
|
|
7119
|
+
seqCols.forEach((c) => {
|
|
7120
|
+
if (typeof next[c.name] === "number") patched[c.name] = next[c.name] + pendingBefore;
|
|
7121
|
+
});
|
|
7122
|
+
return __spreadProps(__spreadValues({}, r), { data: patched });
|
|
7123
|
+
};
|
|
7124
|
+
setData((prev) => prev.map(apply));
|
|
7125
|
+
setDirty((prev) => __spreadProps(__spreadValues({}, prev), { added: prev.added.map(apply) }));
|
|
7126
|
+
} catch (err) {
|
|
7127
|
+
console.warn("[TableBlock] Failed to preview next sequence value:", err);
|
|
7128
|
+
}
|
|
7085
7129
|
};
|
|
7086
7130
|
const handleDuplicateRow = () => {
|
|
7087
7131
|
if (selectedIds.size !== 1) return;
|
|
@@ -7093,6 +7137,10 @@ function TableBlockClient({
|
|
|
7093
7137
|
);
|
|
7094
7138
|
const fieldsToScrub = /* @__PURE__ */ new Set(["id", "_id", "createdAt", "updatedAt", "created_at", "updated_at"]);
|
|
7095
7139
|
const clonedData = __spreadValues({}, sourceRow.data);
|
|
7140
|
+
(localColumns || []).forEach((c) => {
|
|
7141
|
+
var _a;
|
|
7142
|
+
if (((_a = c.type) == null ? void 0 : _a.toUpperCase()) === "SEQUENCE") clonedData[c.name] = null;
|
|
7143
|
+
});
|
|
7096
7144
|
Object.keys(clonedData).forEach((key) => {
|
|
7097
7145
|
var _a;
|
|
7098
7146
|
if (fieldsToScrub.has(key) || uniqueColNames.has(key)) {
|
|
@@ -7338,11 +7386,12 @@ function TableBlockClient({
|
|
|
7338
7386
|
const tempToRealMap = {};
|
|
7339
7387
|
const realRecordDataMap = {};
|
|
7340
7388
|
if (dirty.added.length > 0) {
|
|
7341
|
-
const
|
|
7389
|
+
const addedInOrder = [...dirty.added].reverse();
|
|
7390
|
+
const payload = addedInOrder.map((row) => formatPayload(row.data));
|
|
7342
7391
|
const res = await executeAction("CREATE_RECORD", { tableId: targetTableId, tableMetaId: targetTableId, records: payload });
|
|
7343
7392
|
const createdList = Array.isArray(res) ? res : (res == null ? void 0 : res.data) && Array.isArray(res.data) ? res.data : res ? [res] : [];
|
|
7344
7393
|
if (createdList && createdList.length > 0) {
|
|
7345
|
-
|
|
7394
|
+
addedInOrder.forEach((addedRow, idx) => {
|
|
7346
7395
|
const created = createdList[idx];
|
|
7347
7396
|
if (created) {
|
|
7348
7397
|
const realId = String(created.id || created._id || "");
|
|
@@ -7617,13 +7666,13 @@ function TableBlockClient({
|
|
|
7617
7666
|
className: `flex flex-col w-full bg-white border border-slate-200 rounded-xl shadow-xs flex-1 min-h-0 overflow-hidden ${className}`,
|
|
7618
7667
|
dir: "rtl",
|
|
7619
7668
|
children: [
|
|
7620
|
-
errorMessage && /* @__PURE__ */
|
|
7621
|
-
/* @__PURE__ */
|
|
7622
|
-
/* @__PURE__ */
|
|
7669
|
+
errorMessage && /* @__PURE__ */ jsx16("div", { className: "p-3 bg-rose-50 border-b border-rose-200 text-rose-700 text-sm flex items-center justify-between shrink-0", children: /* @__PURE__ */ jsxs13("div", { className: "flex items-center gap-2", children: [
|
|
7670
|
+
/* @__PURE__ */ jsx16("svg", { className: "w-4 h-4 text-rose-500 shrink-0", fill: "none", viewBox: "0 0 24 24", stroke: "currentColor", children: /* @__PURE__ */ jsx16("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: "2", d: "M12 8v4m0 4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z" }) }),
|
|
7671
|
+
/* @__PURE__ */ jsx16("span", { children: errorMessage })
|
|
7623
7672
|
] }) }),
|
|
7624
7673
|
/* @__PURE__ */ jsxs13("div", { className: "flex flex-wrap items-center justify-between gap-3 p-3.5 sm:p-4 bg-slate-50 border-b border-slate-200 shrink-0", children: [
|
|
7625
7674
|
/* @__PURE__ */ jsxs13("div", { className: "flex flex-wrap items-center gap-2.5", children: [
|
|
7626
|
-
((schema == null ? void 0 : schema.title) || (schema == null ? void 0 : schema.name)) && /* @__PURE__ */
|
|
7675
|
+
((schema == null ? void 0 : schema.title) || (schema == null ? void 0 : schema.name)) && /* @__PURE__ */ jsx16("div", { className: "font-bold text-slate-800 text-sm sm:text-base border-l border-slate-300 pl-3 ml-1", children: /* @__PURE__ */ jsx16("span", { children: schema.title || schema.name }) }),
|
|
7627
7676
|
(() => {
|
|
7628
7677
|
const tableMetaId = (schema == null ? void 0 : schema.tableMetaId) || (schema == null ? void 0 : schema.tableId) || (schema == null ? void 0 : schema.id);
|
|
7629
7678
|
const isOwner = role === "OWNER";
|
|
@@ -7638,30 +7687,30 @@ function TableBlockClient({
|
|
|
7638
7687
|
className: "inline-flex items-center gap-1.5 px-2.5 py-1.5 rounded-lg text-xs font-medium bg-white hover:bg-slate-100 border border-slate-300 text-slate-700 hover:text-slate-900 transition-colors shadow-2xs shrink-0 cursor-pointer ml-1",
|
|
7639
7688
|
title: "\u05E2\u05E8\u05D5\u05DA \u05DE\u05D5\u05D3\u05DC \u05E0\u05EA\u05D5\u05E0\u05D9\u05DD \u05D1\u05DC\u05D5\u05D7 \u05D4\u05D1\u05E7\u05E8\u05D4",
|
|
7640
7689
|
children: [
|
|
7641
|
-
/* @__PURE__ */
|
|
7642
|
-
/* @__PURE__ */
|
|
7690
|
+
/* @__PURE__ */ jsx16("span", { children: "\u05E2\u05E8\u05D5\u05DA \u05DE\u05D5\u05D3\u05DC \u05E0\u05EA\u05D5\u05E0\u05D9\u05DD" }),
|
|
7691
|
+
/* @__PURE__ */ jsx16(ExternalLink2, { className: "w-3.5 h-3.5 text-slate-500" })
|
|
7643
7692
|
]
|
|
7644
7693
|
}
|
|
7645
7694
|
);
|
|
7646
7695
|
})(),
|
|
7647
|
-
!effectiveReadOnly && effectivePermissions.canCreate && /* @__PURE__ */
|
|
7696
|
+
!effectiveReadOnly && effectivePermissions.canCreate && /* @__PURE__ */ jsx16(
|
|
7648
7697
|
"button",
|
|
7649
7698
|
{
|
|
7650
7699
|
onClick: handleAddRow,
|
|
7651
7700
|
disabled: isInitialLoading || isLoading || isUpdatingActive,
|
|
7652
7701
|
className: `w-9 h-9 text-white rounded-lg shadow-xs flex items-center justify-center transition-all ${isInitialLoading || isLoading || isUpdatingActive ? "bg-emerald-950/80 text-emerald-400/60 pointer-events-none cursor-not-allowed" : "bg-emerald-600 hover:bg-emerald-700 active:bg-emerald-800 cursor-pointer"}`,
|
|
7653
7702
|
title: isInitialLoading ? "\u05D8\u05D5\u05E2\u05DF \u05E0\u05EA\u05D5\u05E0\u05D9\u05DD..." : "\u05D4\u05D5\u05E1\u05E3 \u05E9\u05D5\u05E8\u05D4 \u05D7\u05D3\u05E9\u05D4",
|
|
7654
|
-
children: /* @__PURE__ */
|
|
7703
|
+
children: /* @__PURE__ */ jsx16("svg", { className: "w-4.5 h-4.5", fill: "none", viewBox: "0 0 24 24", stroke: "currentColor", children: /* @__PURE__ */ jsx16("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: "2.5", d: "M12 4v16m8-8H4" }) })
|
|
7655
7704
|
}
|
|
7656
7705
|
),
|
|
7657
|
-
!effectiveReadOnly && effectivePermissions.canCreate && /* @__PURE__ */
|
|
7706
|
+
!effectiveReadOnly && effectivePermissions.canCreate && /* @__PURE__ */ jsx16(
|
|
7658
7707
|
"button",
|
|
7659
7708
|
{
|
|
7660
7709
|
onClick: handleDuplicateRow,
|
|
7661
7710
|
disabled: isInitialLoading || isLoading || isUpdatingActive || selectedIds.size !== 1,
|
|
7662
7711
|
className: "w-9 h-9 bg-blue-50 hover:bg-blue-100 border border-blue-200 text-blue-700 rounded-lg shadow-2xs flex items-center justify-center transition-all disabled:opacity-40 disabled:pointer-events-none cursor-pointer",
|
|
7663
7712
|
title: "\u05E9\u05DB\u05E4\u05DC \u05E9\u05D5\u05E8\u05D4 \u05E0\u05D1\u05D7\u05E8\u05EA",
|
|
7664
|
-
children: /* @__PURE__ */
|
|
7713
|
+
children: /* @__PURE__ */ jsx16(Copy2, { className: "w-4 h-4 text-blue-600 shrink-0" })
|
|
7665
7714
|
}
|
|
7666
7715
|
),
|
|
7667
7716
|
!effectiveReadOnly && effectivePermissions.canDelete && /* @__PURE__ */ jsxs13(
|
|
@@ -7672,8 +7721,8 @@ function TableBlockClient({
|
|
|
7672
7721
|
className: "w-9 h-9 bg-rose-50 hover:bg-rose-100 border border-rose-200 text-rose-700 rounded-lg shadow-2xs flex items-center justify-center relative transition-all disabled:opacity-40 disabled:pointer-events-none cursor-pointer",
|
|
7673
7722
|
title: "\u05DE\u05D7\u05E7 \u05E9\u05D5\u05E8\u05D5\u05EA \u05E0\u05D1\u05D7\u05E8\u05D5\u05EA",
|
|
7674
7723
|
children: [
|
|
7675
|
-
/* @__PURE__ */
|
|
7676
|
-
selectedIds.size > 0 && /* @__PURE__ */
|
|
7724
|
+
/* @__PURE__ */ jsx16("svg", { className: "w-4.5 h-4.5 text-rose-600 shrink-0", fill: "none", viewBox: "0 0 24 24", stroke: "currentColor", children: /* @__PURE__ */ jsx16("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: "2", d: "M19 7l-.867 12.142A2 2 0 0116.138 21H7.862a2 2 0 01-1.995-1.858L5 7m5 4v6m4-6v6m1-10V4a1 1 0 00-1-1h-4a1 1 0 00-1 1v3M4 7h16" }) }),
|
|
7725
|
+
selectedIds.size > 0 && /* @__PURE__ */ jsx16("span", { className: "absolute -top-1.5 -right-1.5 bg-rose-600 text-white min-w-[18px] h-[18px] px-1 rounded-full text-[10px] font-bold flex items-center justify-center shadow-xs", children: selectedIds.size })
|
|
7677
7726
|
]
|
|
7678
7727
|
}
|
|
7679
7728
|
),
|
|
@@ -7685,8 +7734,8 @@ function TableBlockClient({
|
|
|
7685
7734
|
className: `h-9 px-3 border font-semibold rounded-lg shadow-2xs flex items-center gap-1.5 text-xs transition-all disabled:opacity-40 disabled:pointer-events-none cursor-pointer ${showSummary ? "bg-indigo-50 border-indigo-200 text-indigo-700 hover:bg-indigo-100" : "bg-white border-slate-300 text-slate-700 hover:bg-slate-100"}`,
|
|
7686
7735
|
title: "\u05D4\u05E6\u05D2/\u05D4\u05E1\u05EA\u05E8 \u05E9\u05D5\u05E8\u05EA \u05E1\u05D9\u05DB\u05D5\u05DD",
|
|
7687
7736
|
children: [
|
|
7688
|
-
/* @__PURE__ */
|
|
7689
|
-
/* @__PURE__ */
|
|
7737
|
+
/* @__PURE__ */ jsx16("svg", { className: "w-4 h-4 shrink-0", fill: "none", viewBox: "0 0 24 24", stroke: "currentColor", children: /* @__PURE__ */ jsx16("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: "2", d: "M4 6h16M4 10h16M4 14h16M4 18h16" }) }),
|
|
7738
|
+
/* @__PURE__ */ jsx16("span", { className: "hidden sm:inline", children: "\u05E1\u05DB\u05D9\u05DE\u05D4" })
|
|
7690
7739
|
]
|
|
7691
7740
|
}
|
|
7692
7741
|
),
|
|
@@ -7699,15 +7748,15 @@ function TableBlockClient({
|
|
|
7699
7748
|
className: "h-9 px-3 bg-white hover:bg-slate-100 border border-slate-300 text-slate-700 font-semibold rounded-lg shadow-2xs flex items-center gap-1.5 text-xs transition-all disabled:opacity-40 disabled:pointer-events-none cursor-pointer",
|
|
7700
7749
|
title: "\u05D4\u05E6\u05D2/\u05D4\u05E1\u05EA\u05E8 \u05E2\u05DE\u05D5\u05D3\u05D5\u05EA",
|
|
7701
7750
|
children: [
|
|
7702
|
-
/* @__PURE__ */
|
|
7703
|
-
/* @__PURE__ */
|
|
7751
|
+
/* @__PURE__ */ jsx16("svg", { className: "w-4 h-4 text-slate-600 shrink-0", fill: "none", viewBox: "0 0 24 24", stroke: "currentColor", children: /* @__PURE__ */ jsx16("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: "2", d: "M9 17V7m0 10a2 2 0 01-2 2H5a2 2 0 01-2-2V7a2 2 0 012-2h2a2 2 0 012 2m0 10a2 2 0 002 2h2a2 2 0 002-2M9 7a2 2 0 012-2h2a2 2 0 012 2m0 10V7m0 10a2 2 0 002 2h2a2 2 0 002-2V7a2 2 0 00-2-2h-2a2 2 0 00-2 2" }) }),
|
|
7752
|
+
/* @__PURE__ */ jsx16("svg", { className: `w-3.5 h-3.5 text-slate-500 transition-transform ${isColumnsDropdownOpen ? "rotate-180" : ""}`, fill: "none", viewBox: "0 0 24 24", stroke: "currentColor", children: /* @__PURE__ */ jsx16("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: "2", d: "M19 9l-7 7-7-7" }) })
|
|
7704
7753
|
]
|
|
7705
7754
|
}
|
|
7706
7755
|
),
|
|
7707
7756
|
isColumnsDropdownOpen && /* @__PURE__ */ jsxs13("div", { className: "absolute right-0 top-full mt-1.5 w-56 bg-white border border-slate-200 rounded-xl shadow-xl z-50 p-1.5 dir-rtl animate-in fade-in slide-in-from-top-2 duration-150", children: [
|
|
7708
7757
|
/* @__PURE__ */ jsxs13("div", { className: "px-2 py-1.5 text-xs font-bold text-slate-500 border-b border-slate-100 mb-1 flex items-center justify-between", children: [
|
|
7709
7758
|
/* @__PURE__ */ jsxs13("div", { className: "flex items-center gap-1.5", children: [
|
|
7710
|
-
/* @__PURE__ */
|
|
7759
|
+
/* @__PURE__ */ jsx16("span", { children: "\u05D4\u05E6\u05D2\u05EA \u05E2\u05DE\u05D5\u05D3\u05D5\u05EA" }),
|
|
7711
7760
|
/* @__PURE__ */ jsxs13("span", { className: "text-[10px] font-normal text-slate-400", children: [
|
|
7712
7761
|
"(",
|
|
7713
7762
|
customizableColumns.filter((c) => !c.isHidden).length,
|
|
@@ -7716,7 +7765,7 @@ function TableBlockClient({
|
|
|
7716
7765
|
")"
|
|
7717
7766
|
] })
|
|
7718
7767
|
] }),
|
|
7719
|
-
/* @__PURE__ */
|
|
7768
|
+
/* @__PURE__ */ jsx16(
|
|
7720
7769
|
"button",
|
|
7721
7770
|
{
|
|
7722
7771
|
type: "button",
|
|
@@ -7726,7 +7775,7 @@ function TableBlockClient({
|
|
|
7726
7775
|
}
|
|
7727
7776
|
)
|
|
7728
7777
|
] }),
|
|
7729
|
-
/* @__PURE__ */
|
|
7778
|
+
/* @__PURE__ */ jsx16("div", { className: "max-h-60 overflow-y-auto space-y-0.5", children: customizableColumns.map((col) => {
|
|
7730
7779
|
const isRequired = col.isRequired === true || String(col.isRequired) === "true";
|
|
7731
7780
|
const isUnique = col.isUnique === true || String(col.isUnique) === "true";
|
|
7732
7781
|
const isProtected = isRequired || isUnique;
|
|
@@ -7752,7 +7801,7 @@ function TableBlockClient({
|
|
|
7752
7801
|
className: `group flex items-center justify-between px-2.5 py-1.5 rounded-lg text-xs transition-colors select-none ${isProtected ? "opacity-75 bg-slate-50 border border-slate-100/70 cursor-not-allowed" : "hover:bg-slate-100 active:bg-slate-200 cursor-pointer"}`,
|
|
7753
7802
|
children: [
|
|
7754
7803
|
/* @__PURE__ */ jsxs13("div", { className: "flex items-center gap-2 min-w-0", children: [
|
|
7755
|
-
/* @__PURE__ */
|
|
7804
|
+
/* @__PURE__ */ jsx16(
|
|
7756
7805
|
"input",
|
|
7757
7806
|
{
|
|
7758
7807
|
type: "checkbox",
|
|
@@ -7763,7 +7812,7 @@ function TableBlockClient({
|
|
|
7763
7812
|
className: "w-3.5 h-3.5 rounded border-slate-300 text-brand focus:ring-brand/20 cursor-pointer disabled:cursor-not-allowed disabled:opacity-60"
|
|
7764
7813
|
}
|
|
7765
7814
|
),
|
|
7766
|
-
/* @__PURE__ */
|
|
7815
|
+
/* @__PURE__ */ jsx16("span", { className: `font-medium truncate ${isProtected ? "text-slate-500" : "text-slate-700"}`, children: col.name })
|
|
7767
7816
|
] }),
|
|
7768
7817
|
isProtected && /* @__PURE__ */ jsxs13(
|
|
7769
7818
|
"div",
|
|
@@ -7771,8 +7820,8 @@ function TableBlockClient({
|
|
|
7771
7820
|
className: "flex items-center gap-1 px-1.5 py-0.5 rounded text-[10px] font-semibold bg-amber-50 text-amber-800 border border-amber-200/80 cursor-help",
|
|
7772
7821
|
title: protectedExplanation,
|
|
7773
7822
|
children: [
|
|
7774
|
-
/* @__PURE__ */
|
|
7775
|
-
/* @__PURE__ */
|
|
7823
|
+
/* @__PURE__ */ jsx16("svg", { className: "w-3 h-3 text-amber-600 shrink-0", fill: "none", viewBox: "0 0 24 24", stroke: "currentColor", strokeWidth: "2.2", children: /* @__PURE__ */ jsx16("path", { strokeLinecap: "round", strokeLinejoin: "round", d: "M12 15v2m-6 4h12a2 2 0 002-2v-6a2 2 0 00-2-2H6a2 2 0 00-2 2v6a2 2 0 002 2zm10-10V7a4 4 0 00-8 0v4h8z" }) }),
|
|
7824
|
+
/* @__PURE__ */ jsx16("span", { children: badgeLabel })
|
|
7776
7825
|
]
|
|
7777
7826
|
}
|
|
7778
7827
|
)
|
|
@@ -7796,9 +7845,9 @@ function TableBlockClient({
|
|
|
7796
7845
|
title: "\u05D9\u05D9\u05E6\u05D5\u05D0",
|
|
7797
7846
|
"data-testid": "export-csv-button",
|
|
7798
7847
|
children: [
|
|
7799
|
-
isExporting ? /* @__PURE__ */
|
|
7800
|
-
/* @__PURE__ */
|
|
7801
|
-
!isExporting && /* @__PURE__ */
|
|
7848
|
+
isExporting ? /* @__PURE__ */ jsx16(Loader23, { className: "w-4 h-4 shrink-0 animate-spin text-slate-500" }) : /* @__PURE__ */ jsx16(Download, { className: "w-4 h-4 shrink-0" }),
|
|
7849
|
+
/* @__PURE__ */ jsx16("span", { children: isExporting ? "\u05DE\u05D9\u05D9\u05E6\u05D0..." : "\u05D9\u05D9\u05E6\u05D5\u05D0" }),
|
|
7850
|
+
!isExporting && /* @__PURE__ */ jsx16(ChevronDown2, { className: `w-3.5 h-3.5 shrink-0 opacity-70 transition-transform ${isExportMenuOpen ? "rotate-180" : ""}` })
|
|
7802
7851
|
]
|
|
7803
7852
|
}
|
|
7804
7853
|
),
|
|
@@ -7817,10 +7866,10 @@ function TableBlockClient({
|
|
|
7817
7866
|
className: "w-full flex items-start gap-2.5 px-2.5 py-2 rounded-lg text-right hover:bg-slate-100 active:bg-slate-200 transition-colors cursor-pointer",
|
|
7818
7867
|
"data-testid": "export-data-option",
|
|
7819
7868
|
children: [
|
|
7820
|
-
/* @__PURE__ */
|
|
7869
|
+
/* @__PURE__ */ jsx16(ExportButtonIcon, { className: "w-4 h-4 mt-0.5 shrink-0 text-slate-600" }),
|
|
7821
7870
|
/* @__PURE__ */ jsxs13("span", { className: "flex flex-col min-w-0", children: [
|
|
7822
|
-
/* @__PURE__ */
|
|
7823
|
-
/* @__PURE__ */
|
|
7871
|
+
/* @__PURE__ */ jsx16("span", { className: "text-xs font-semibold text-slate-800", children: exportButtonText }),
|
|
7872
|
+
/* @__PURE__ */ jsx16("span", { className: "text-[11px] font-normal text-slate-500 leading-snug", children: exportButtonHint })
|
|
7824
7873
|
] })
|
|
7825
7874
|
]
|
|
7826
7875
|
}
|
|
@@ -7834,10 +7883,10 @@ function TableBlockClient({
|
|
|
7834
7883
|
className: "w-full flex items-start gap-2.5 px-2.5 py-2 rounded-lg text-right hover:bg-slate-100 active:bg-slate-200 transition-colors cursor-pointer",
|
|
7835
7884
|
"data-testid": "export-template-option",
|
|
7836
7885
|
children: [
|
|
7837
|
-
/* @__PURE__ */
|
|
7886
|
+
/* @__PURE__ */ jsx16(FileSpreadsheet, { className: "w-4 h-4 mt-0.5 shrink-0 text-slate-600" }),
|
|
7838
7887
|
/* @__PURE__ */ jsxs13("span", { className: "flex flex-col min-w-0", children: [
|
|
7839
|
-
/* @__PURE__ */
|
|
7840
|
-
/* @__PURE__ */
|
|
7888
|
+
/* @__PURE__ */ jsx16("span", { className: "text-xs font-semibold text-slate-800", children: "\u05D9\u05D9\u05E6\u05D5\u05D0 \u05EA\u05D1\u05E0\u05D9\u05EA \u05E8\u05D9\u05E7\u05D4 \u05DC\u05D9\u05D9\u05D1\u05D5\u05D0" }),
|
|
7889
|
+
/* @__PURE__ */ jsx16("span", { className: "text-[11px] font-normal text-slate-500 leading-snug", children: "\u05DB\u05D5\u05EA\u05E8\u05D5\u05EA \u05D4\u05E2\u05DE\u05D5\u05D3\u05D5\u05EA \u05D1\u05DC\u05D1\u05D3, \u05D1\u05DC\u05D9 \u05E0\u05EA\u05D5\u05E0\u05D9\u05DD, \u05D5\u05D2\u05D9\u05DC\u05D9\u05D5\u05DF \u05E0\u05D5\u05E1\u05E3 \u05E9\u05DE\u05E1\u05D1\u05D9\u05E8 \u05D0\u05EA \u05E1\u05D5\u05D2 \u05D4\u05E0\u05EA\u05D5\u05E0\u05D9\u05DD \u05D1\u05DB\u05DC \u05E2\u05DE\u05D5\u05D3\u05D4" })
|
|
7841
7890
|
] })
|
|
7842
7891
|
]
|
|
7843
7892
|
}
|
|
@@ -7846,9 +7895,9 @@ function TableBlockClient({
|
|
|
7846
7895
|
}
|
|
7847
7896
|
)
|
|
7848
7897
|
] }),
|
|
7849
|
-
/* @__PURE__ */
|
|
7898
|
+
/* @__PURE__ */ jsx16("div", { className: "h-5 w-px bg-slate-300 mx-1 hidden sm:block" }),
|
|
7850
7899
|
/* @__PURE__ */ jsxs13("div", { className: "relative flex-1 sm:w-64 max-w-xs", children: [
|
|
7851
|
-
/* @__PURE__ */
|
|
7900
|
+
/* @__PURE__ */ jsx16(
|
|
7852
7901
|
"input",
|
|
7853
7902
|
{
|
|
7854
7903
|
placeholder: "\u05D7\u05D9\u05E4\u05D5\u05E9 \u05D1\u05E8\u05E9\u05D5\u05DE\u05D5\u05EA...",
|
|
@@ -7858,28 +7907,28 @@ function TableBlockClient({
|
|
|
7858
7907
|
className: "w-full h-9 px-3 pr-9 text-xs border border-slate-300 rounded-lg bg-white shadow-2xs focus:outline-none focus:ring-2 focus:ring-blue-500/20 focus:border-blue-500 text-slate-800 disabled:opacity-50"
|
|
7859
7908
|
}
|
|
7860
7909
|
),
|
|
7861
|
-
searchQuery ? /* @__PURE__ */
|
|
7910
|
+
searchQuery ? /* @__PURE__ */ jsx16(
|
|
7862
7911
|
"button",
|
|
7863
7912
|
{
|
|
7864
7913
|
type: "button",
|
|
7865
7914
|
onClick: () => setSearchQuery(""),
|
|
7866
7915
|
className: "absolute right-2.5 top-2.5 text-slate-400 hover:text-slate-600 transition-colors p-0.5 rounded-full hover:bg-slate-100 cursor-pointer",
|
|
7867
7916
|
title: "Clear search",
|
|
7868
|
-
children: /* @__PURE__ */
|
|
7917
|
+
children: /* @__PURE__ */ jsx16(X8, { className: "w-3.5 h-3.5" })
|
|
7869
7918
|
}
|
|
7870
|
-
) : /* @__PURE__ */
|
|
7919
|
+
) : /* @__PURE__ */ jsx16("svg", { className: "w-4 h-4 text-slate-400 absolute right-2.5 top-2.5", fill: "none", viewBox: "0 0 24 24", stroke: "currentColor", children: /* @__PURE__ */ jsx16("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: "2", d: "M21 21l-6-6m2-5a7 7 0 11-14 0 7 7 0 0114 0z" }) })
|
|
7871
7920
|
] })
|
|
7872
7921
|
] }),
|
|
7873
7922
|
/* @__PURE__ */ jsxs13("div", { className: "flex items-center gap-3", children: [
|
|
7874
7923
|
isUpdatingActive ? /* @__PURE__ */ jsxs13("span", { className: "text-xs text-blue-600 font-semibold flex items-center gap-1.5 bg-blue-50 border border-blue-200 px-3 py-1.5 rounded-lg animate-pulse", children: [
|
|
7875
|
-
/* @__PURE__ */
|
|
7924
|
+
/* @__PURE__ */ jsx16("span", { className: "w-2 h-2 rounded-full bg-blue-500 inline-block" }),
|
|
7876
7925
|
"\u05DE\u05E2\u05D3\u05DB\u05DF..."
|
|
7877
7926
|
] }) : isSaveSuccess ? /* @__PURE__ */ jsxs13("span", { className: "text-xs text-emerald-700 font-semibold flex items-center gap-1.5 bg-emerald-50 border border-emerald-200 px-3 py-1.5 rounded-lg animate-in fade-in duration-200", children: [
|
|
7878
|
-
/* @__PURE__ */
|
|
7927
|
+
/* @__PURE__ */ jsx16("svg", { className: "w-4 h-4 text-emerald-600 shrink-0", fill: "none", viewBox: "0 0 24 24", stroke: "currentColor", children: /* @__PURE__ */ jsx16("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: "2.5", d: "M5 13l4 4L19 7" }) }),
|
|
7879
7928
|
"\u05E2\u05D5\u05D3\u05DB\u05DF \u05D1\u05D4\u05E6\u05DC\u05D7\u05D4"
|
|
7880
7929
|
] }) : !effectiveReadOnly && effectivePermissions.canUpdate && hasChanges ? /* @__PURE__ */ jsxs13("div", { className: "flex items-center gap-1.5 animate-in fade-in", children: [
|
|
7881
|
-
/* @__PURE__ */
|
|
7882
|
-
/* @__PURE__ */
|
|
7930
|
+
/* @__PURE__ */ jsx16("span", { className: "text-xs font-semibold text-amber-700", children: "\u05E9\u05D9\u05E0\u05D5\u05D9\u05D9\u05DD \u05E9\u05DC\u05D0 \u05E0\u05E9\u05DE\u05E8\u05D5" }),
|
|
7931
|
+
/* @__PURE__ */ jsx16(
|
|
7883
7932
|
"button",
|
|
7884
7933
|
{
|
|
7885
7934
|
type: "button",
|
|
@@ -7888,22 +7937,22 @@ function TableBlockClient({
|
|
|
7888
7937
|
className: "p-1 text-amber-700 hover:text-amber-900 hover:bg-amber-100/80 active:bg-amber-200/80 rounded-md transition-colors cursor-pointer disabled:opacity-50 disabled:pointer-events-none",
|
|
7889
7938
|
title: "\u05D1\u05D8\u05DC \u05D0\u05EA \u05DB\u05DC \u05D4\u05E9\u05D9\u05E0\u05D5\u05D9\u05D9\u05DD \u05E9\u05DC\u05D0 \u05E0\u05E9\u05DE\u05E8\u05D5",
|
|
7890
7939
|
"aria-label": "\u05D1\u05D8\u05DC \u05D0\u05EA \u05DB\u05DC \u05D4\u05E9\u05D9\u05E0\u05D5\u05D9\u05D9\u05DD \u05E9\u05DC\u05D0 \u05E0\u05E9\u05DE\u05E8\u05D5",
|
|
7891
|
-
children: /* @__PURE__ */
|
|
7940
|
+
children: /* @__PURE__ */ jsx16(RotateCcw2, { className: "w-3.5 h-3.5" })
|
|
7892
7941
|
}
|
|
7893
7942
|
)
|
|
7894
7943
|
] }) : null,
|
|
7895
|
-
!effectiveReadOnly && effectivePermissions.canUpdate && /* @__PURE__ */
|
|
7944
|
+
!effectiveReadOnly && effectivePermissions.canUpdate && /* @__PURE__ */ jsx16(
|
|
7896
7945
|
"button",
|
|
7897
7946
|
{
|
|
7898
7947
|
onClick: handleSave,
|
|
7899
7948
|
disabled: isUpdatingActive || isLoading || !hasChanges,
|
|
7900
7949
|
className: `h-9 px-4 text-xs font-bold rounded-lg shadow-2xs transition-all flex items-center justify-center cursor-pointer ${hasChanges && !isUpdatingActive && !isLoading ? "bg-brand hover:bg-brand-hover active:bg-[#00897b] text-white shadow-teal-500/20" : "opacity-50 grayscale bg-slate-200 text-slate-400 cursor-not-allowed"}`,
|
|
7901
|
-
children: /* @__PURE__ */
|
|
7950
|
+
children: /* @__PURE__ */ jsx16("span", { children: isUpdatingActive ? "\u05E9\u05D5\u05DE\u05E8..." : "\u05E9\u05DE\u05D9\u05E8\u05EA \u05E9\u05D9\u05E0\u05D5\u05D9\u05D9\u05DD" })
|
|
7902
7951
|
}
|
|
7903
7952
|
)
|
|
7904
7953
|
] })
|
|
7905
7954
|
] }),
|
|
7906
|
-
!hideRelationButtons && /* @__PURE__ */
|
|
7955
|
+
!hideRelationButtons && /* @__PURE__ */ jsx16(
|
|
7907
7956
|
RelationButtonsBar,
|
|
7908
7957
|
{
|
|
7909
7958
|
columns: localColumns,
|
|
@@ -7916,15 +7965,15 @@ function TableBlockClient({
|
|
|
7916
7965
|
}
|
|
7917
7966
|
),
|
|
7918
7967
|
/* @__PURE__ */ jsxs13("div", { className: `overflow-x-auto overflow-y-auto relative max-h-[calc(100vh-240px)] min-h-[260px] flex-1 transition-opacity duration-200 ${isMounted ? "opacity-100" : "opacity-0"}`, children: [
|
|
7919
|
-
isFetching && /* @__PURE__ */
|
|
7968
|
+
isFetching && /* @__PURE__ */ jsx16("div", { className: "absolute top-0 left-0 right-0 h-0.5 bg-blue-500/20 overflow-hidden z-30", children: /* @__PURE__ */ jsx16("div", { className: "w-full h-full bg-brand animate-pulse" }) }),
|
|
7920
7969
|
isLoading && /* @__PURE__ */ jsxs13("div", { className: "absolute inset-0 bg-white/80 backdrop-blur-xs z-20 flex flex-col items-center justify-center gap-2", children: [
|
|
7921
|
-
/* @__PURE__ */
|
|
7922
|
-
/* @__PURE__ */
|
|
7970
|
+
/* @__PURE__ */ jsx16("div", { className: "w-6 h-6 border-2 border-brand border-t-transparent rounded-full animate-spin" }),
|
|
7971
|
+
/* @__PURE__ */ jsx16("span", { className: "text-sm font-medium text-slate-600", children: "\u05D8\u05D5\u05E2\u05DF \u05E0\u05EA\u05D5\u05E0\u05D9\u05DD..." })
|
|
7923
7972
|
] }),
|
|
7924
7973
|
/* @__PURE__ */ jsxs13("table", { className: "w-full text-sm text-right border-collapse table-auto", children: [
|
|
7925
|
-
/* @__PURE__ */
|
|
7926
|
-
/* @__PURE__ */
|
|
7927
|
-
/* @__PURE__ */
|
|
7974
|
+
/* @__PURE__ */ jsx16("thead", { className: "bg-white text-slate-700 sticky top-0 z-10 shadow-xs", children: /* @__PURE__ */ jsxs13("tr", { className: "h-12 min-h-[48px]", children: [
|
|
7975
|
+
/* @__PURE__ */ jsx16("th", { className: "border-b border-l border-slate-200 p-1.5 text-center shrink-0 h-12 min-h-[48px] align-middle bg-white", style: { width: 80, minWidth: 80, maxWidth: 80 }, children: /* @__PURE__ */ jsxs13("div", { className: "flex items-center justify-center gap-1.5", children: [
|
|
7976
|
+
/* @__PURE__ */ jsx16(
|
|
7928
7977
|
"input",
|
|
7929
7978
|
{
|
|
7930
7979
|
type: "checkbox",
|
|
@@ -7937,7 +7986,7 @@ function TableBlockClient({
|
|
|
7937
7986
|
filteredColumns.some((c) => {
|
|
7938
7987
|
var _a;
|
|
7939
7988
|
return ((_a = c.type) == null ? void 0 : _a.toUpperCase()) === "SUB_TABLE";
|
|
7940
|
-
}) && /* @__PURE__ */
|
|
7989
|
+
}) && /* @__PURE__ */ jsx16("div", { className: "w-5 h-5 shrink-0" })
|
|
7941
7990
|
] }) }),
|
|
7942
7991
|
filteredColumns.map((col) => {
|
|
7943
7992
|
var _a, _b;
|
|
@@ -7967,7 +8016,7 @@ function TableBlockClient({
|
|
|
7967
8016
|
}, dragProps), {
|
|
7968
8017
|
className: `group relative border-b border-l border-slate-200 px-2 py-1 font-semibold text-slate-700 select-none transition-colors h-12 min-h-[48px] align-middle bg-white ${isSearching ? "cursor-default bg-blue-50/40" : canReorderColumns ? "cursor-grab active:cursor-grabbing hover:bg-slate-100" : "cursor-default"} ${isDragging ? "opacity-40 bg-slate-200 border-dashed border-2 border-brand" : ""} ${isDragOver ? "bg-blue-50 border-r-4 border-r-brand text-brand font-bold" : ""}`,
|
|
7969
8018
|
children: [
|
|
7970
|
-
/* @__PURE__ */
|
|
8019
|
+
/* @__PURE__ */ jsx16(
|
|
7971
8020
|
"div",
|
|
7972
8021
|
{
|
|
7973
8022
|
onMouseDown: (e) => {
|
|
@@ -7987,7 +8036,7 @@ function TableBlockClient({
|
|
|
7987
8036
|
onClick: (e) => e.stopPropagation(),
|
|
7988
8037
|
onMouseDown: (e) => e.stopPropagation(),
|
|
7989
8038
|
children: [
|
|
7990
|
-
/* @__PURE__ */
|
|
8039
|
+
/* @__PURE__ */ jsx16("div", { className: "relative flex items-center w-full min-w-0", children: /* @__PURE__ */ jsx16(
|
|
7991
8040
|
"input",
|
|
7992
8041
|
{
|
|
7993
8042
|
autoFocus: true,
|
|
@@ -8005,7 +8054,7 @@ function TableBlockClient({
|
|
|
8005
8054
|
className: "h-7 text-xs px-2 w-full rounded border border-blue-400 bg-white text-slate-800 focus:outline-none focus:ring-1 focus:ring-blue-400"
|
|
8006
8055
|
}
|
|
8007
8056
|
) }),
|
|
8008
|
-
/* @__PURE__ */
|
|
8057
|
+
/* @__PURE__ */ jsx16(
|
|
8009
8058
|
"button",
|
|
8010
8059
|
{
|
|
8011
8060
|
type: "button",
|
|
@@ -8020,13 +8069,13 @@ function TableBlockClient({
|
|
|
8020
8069
|
},
|
|
8021
8070
|
className: "p-1 text-slate-400 hover:text-slate-700 hover:bg-slate-200/70 rounded transition-colors cursor-pointer shrink-0",
|
|
8022
8071
|
title: "\u05E0\u05E7\u05D4 \u05D5\u05E1\u05D2\u05D5\u05E8 \u05D7\u05D9\u05E4\u05D5\u05E9",
|
|
8023
|
-
children: /* @__PURE__ */
|
|
8072
|
+
children: /* @__PURE__ */ jsx16(X8, { className: "w-3.5 h-3.5" })
|
|
8024
8073
|
}
|
|
8025
8074
|
)
|
|
8026
8075
|
]
|
|
8027
8076
|
}
|
|
8028
8077
|
) : /* @__PURE__ */ jsxs13("div", { className: "flex flex-col items-center justify-center w-full h-full min-w-0 select-none py-0.5", title: col.name, children: [
|
|
8029
|
-
((_b = col.type) == null ? void 0 : _b.toUpperCase()) !== "SUB_TABLE" && /* @__PURE__ */
|
|
8078
|
+
((_b = col.type) == null ? void 0 : _b.toUpperCase()) !== "SUB_TABLE" && /* @__PURE__ */ jsx16(
|
|
8030
8079
|
"button",
|
|
8031
8080
|
{
|
|
8032
8081
|
ref: (el) => {
|
|
@@ -8054,21 +8103,21 @@ function TableBlockClient({
|
|
|
8054
8103
|
},
|
|
8055
8104
|
className: `p-0.5 rounded transition-colors cursor-pointer mb-0.5 shrink-0 ${hasActiveFilter ? "opacity-100 text-blue-600 bg-blue-100 hover:bg-blue-200" : activeRelationCol === col.name ? "opacity-100 text-blue-600 bg-blue-100" : isRelation2 ? "opacity-100 text-slate-400 hover:text-slate-600 hover:bg-slate-200/60" : "opacity-0 group-hover:opacity-100 text-slate-400 hover:text-slate-600 hover:bg-slate-200/60"}`,
|
|
8056
8105
|
title: filterTooltip,
|
|
8057
|
-
children: /* @__PURE__ */
|
|
8106
|
+
children: /* @__PURE__ */ jsx16(Filter, { className: "w-3 h-3" })
|
|
8058
8107
|
}
|
|
8059
8108
|
),
|
|
8060
|
-
/* @__PURE__ */
|
|
8109
|
+
/* @__PURE__ */ jsx16(ColumnHeaderTitle, { name: col.name, width: currentWidth, isSubTable: false })
|
|
8061
8110
|
] })
|
|
8062
8111
|
]
|
|
8063
8112
|
}),
|
|
8064
8113
|
col.name
|
|
8065
8114
|
);
|
|
8066
8115
|
}),
|
|
8067
|
-
/* @__PURE__ */
|
|
8116
|
+
/* @__PURE__ */ jsx16("th", { className: "w-full min-w-[50px] border-b border-slate-200 pointer-events-none h-12 min-h-[48px] bg-white" })
|
|
8068
8117
|
] }) }),
|
|
8069
|
-
/* @__PURE__ */
|
|
8070
|
-
/* @__PURE__ */
|
|
8071
|
-
/* @__PURE__ */
|
|
8118
|
+
/* @__PURE__ */ jsx16("tbody", { className: `bg-white transition-opacity duration-150 ${isFetching ? "opacity-50 pointer-events-none" : "opacity-100"}`, children: (isStateEmpty || filteredData.length === 0) && !isLoading && !isFetching ? /* @__PURE__ */ jsx16("tr", { children: /* @__PURE__ */ jsx16("td", { colSpan: filteredColumns.length + 2, className: "text-center py-12 text-slate-400", children: /* @__PURE__ */ jsxs13("div", { className: "flex flex-col items-center justify-center gap-2", children: [
|
|
8119
|
+
/* @__PURE__ */ jsx16("svg", { className: "w-8 h-8 text-slate-300", fill: "none", viewBox: "0 0 24 24", stroke: "currentColor", children: /* @__PURE__ */ jsx16("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: "1.5", d: "M20 13V6a2 2 0 00-2-2H6a2 2 0 00-2 2v7m16 0v5a2 2 0 01-2 2H6a2 2 0 01-2-2v-5m16 0h-2.586a1 1 0 00-.707.293l-2.414 2.414a1 1 0 01-.707.293h-3.172a1 1 0 01-.707-.293l-2.414-2.414A1 1 0 006.586 13H4" }) }),
|
|
8120
|
+
/* @__PURE__ */ jsx16("span", { children: "\u05D0\u05D9\u05DF \u05E8\u05E9\u05D5\u05DE\u05D5\u05EA \u05DC\u05D4\u05E6\u05D2\u05D4." })
|
|
8072
8121
|
] }) }) }) : filteredData.map((row) => {
|
|
8073
8122
|
const hasSubTableCols = filteredColumns.some((c) => {
|
|
8074
8123
|
var _a;
|
|
@@ -8081,7 +8130,7 @@ function TableBlockClient({
|
|
|
8081
8130
|
});
|
|
8082
8131
|
const rowKey = String((row == null ? void 0 : row.id) || (row == null ? void 0 : row._id) || "");
|
|
8083
8132
|
const rowStatus = rowStatusMap ? rowStatusMap[rowKey] || rowStatusMap[row == null ? void 0 : row.id] || rowStatusMap[row == null ? void 0 : row._id] : void 0;
|
|
8084
|
-
return /* @__PURE__ */
|
|
8133
|
+
return /* @__PURE__ */ jsx16(
|
|
8085
8134
|
TableRow,
|
|
8086
8135
|
{
|
|
8087
8136
|
row,
|
|
@@ -8117,8 +8166,8 @@ function TableBlockClient({
|
|
|
8117
8166
|
row.id
|
|
8118
8167
|
);
|
|
8119
8168
|
}) }),
|
|
8120
|
-
showSummary && filteredData.length > 0 && /* @__PURE__ */
|
|
8121
|
-
/* @__PURE__ */
|
|
8169
|
+
showSummary && filteredData.length > 0 && /* @__PURE__ */ jsx16("tfoot", { className: "bg-slate-50 border-t-2 border-slate-300 sticky bottom-0 z-10 shadow-[0_-2px_4px_rgba(0,0,0,0.02)]", children: /* @__PURE__ */ jsxs13("tr", { children: [
|
|
8170
|
+
/* @__PURE__ */ jsx16("td", { className: "border-b border-l border-slate-200 p-1.5 text-center font-bold text-slate-600 text-xs", children: '\u05E1\u05D4"\u05DB' }),
|
|
8122
8171
|
filteredColumns.map((col) => {
|
|
8123
8172
|
var _a, _b;
|
|
8124
8173
|
const typeUpper = (_a = col.type) == null ? void 0 : _a.toUpperCase();
|
|
@@ -8132,15 +8181,15 @@ function TableBlockClient({
|
|
|
8132
8181
|
displayVal = symbol ? `${symbol} ${displayVal}` : displayVal;
|
|
8133
8182
|
}
|
|
8134
8183
|
}
|
|
8135
|
-
return /* @__PURE__ */
|
|
8184
|
+
return /* @__PURE__ */ jsx16("td", { className: "border-b border-l border-slate-200 p-2 text-sm font-semibold text-slate-700 bg-slate-50 relative", children: isNumeric && /* @__PURE__ */ jsx16("div", { className: "flex items-center text-right justify-start", children: /* @__PURE__ */ jsx16("span", { className: "truncate", children: displayVal }) }) }, col.name);
|
|
8136
8185
|
}),
|
|
8137
|
-
/* @__PURE__ */
|
|
8186
|
+
/* @__PURE__ */ jsx16("td", { className: "border-b border-slate-200 bg-slate-50 pointer-events-none" })
|
|
8138
8187
|
] }) })
|
|
8139
8188
|
] })
|
|
8140
8189
|
] }),
|
|
8141
8190
|
/* @__PURE__ */ jsxs13("div", { className: "flex flex-col sm:flex-row items-center justify-between gap-3 px-4 py-3 bg-slate-50 border-t border-slate-200 text-xs text-slate-600 rounded-b-xl shrink-0", children: [
|
|
8142
8191
|
/* @__PURE__ */ jsxs13("div", { className: "flex items-center gap-2", children: [
|
|
8143
|
-
/* @__PURE__ */
|
|
8192
|
+
/* @__PURE__ */ jsx16("span", { className: "font-medium text-slate-700", children: "\u05E9\u05D5\u05E8\u05D5\u05EA \u05DC\u05E2\u05DE\u05D5\u05D3:" }),
|
|
8144
8193
|
/* @__PURE__ */ jsxs13(
|
|
8145
8194
|
"select",
|
|
8146
8195
|
{
|
|
@@ -8149,9 +8198,9 @@ function TableBlockClient({
|
|
|
8149
8198
|
disabled: isLoading || isUpdatingActive,
|
|
8150
8199
|
className: "bg-white border border-slate-300 rounded-lg px-2.5 py-1 text-slate-700 font-semibold shadow-2xs cursor-pointer focus:outline-none focus:ring-2 focus:ring-brand disabled:opacity-50",
|
|
8151
8200
|
children: [
|
|
8152
|
-
/* @__PURE__ */
|
|
8153
|
-
/* @__PURE__ */
|
|
8154
|
-
/* @__PURE__ */
|
|
8201
|
+
/* @__PURE__ */ jsx16("option", { value: 20, children: "20" }),
|
|
8202
|
+
/* @__PURE__ */ jsx16("option", { value: 50, children: "50" }),
|
|
8203
|
+
/* @__PURE__ */ jsx16("option", { value: 100, children: "100" })
|
|
8155
8204
|
]
|
|
8156
8205
|
}
|
|
8157
8206
|
)
|
|
@@ -8159,9 +8208,9 @@ function TableBlockClient({
|
|
|
8159
8208
|
/* @__PURE__ */ jsxs13("div", { className: "flex items-center gap-4", children: [
|
|
8160
8209
|
/* @__PURE__ */ jsxs13("span", { className: "font-medium text-slate-600", children: [
|
|
8161
8210
|
"\u05E2\u05DE\u05D5\u05D3 ",
|
|
8162
|
-
/* @__PURE__ */
|
|
8211
|
+
/* @__PURE__ */ jsx16("strong", { className: "text-slate-900", children: page }),
|
|
8163
8212
|
" \u05DE\u05EA\u05D5\u05DA ",
|
|
8164
|
-
/* @__PURE__ */
|
|
8213
|
+
/* @__PURE__ */ jsx16("strong", { className: "text-slate-900", children: totalPages || 1 }),
|
|
8165
8214
|
totalRecords > 0 && /* @__PURE__ */ jsxs13("span", { className: "text-slate-500 font-normal", children: [
|
|
8166
8215
|
" (",
|
|
8167
8216
|
totalRecords,
|
|
@@ -8169,7 +8218,7 @@ function TableBlockClient({
|
|
|
8169
8218
|
] })
|
|
8170
8219
|
] }),
|
|
8171
8220
|
/* @__PURE__ */ jsxs13("div", { className: "flex items-center gap-1.5", children: [
|
|
8172
|
-
/* @__PURE__ */
|
|
8221
|
+
/* @__PURE__ */ jsx16(
|
|
8173
8222
|
"button",
|
|
8174
8223
|
{
|
|
8175
8224
|
onClick: handlePrevPage,
|
|
@@ -8179,7 +8228,7 @@ function TableBlockClient({
|
|
|
8179
8228
|
children: "\u05D4\u05E7\u05D5\u05D3\u05DD"
|
|
8180
8229
|
}
|
|
8181
8230
|
),
|
|
8182
|
-
/* @__PURE__ */
|
|
8231
|
+
/* @__PURE__ */ jsx16(
|
|
8183
8232
|
"button",
|
|
8184
8233
|
{
|
|
8185
8234
|
onClick: handleNextPage,
|
|
@@ -8197,7 +8246,7 @@ function TableBlockClient({
|
|
|
8197
8246
|
if (!activeColDef) return null;
|
|
8198
8247
|
const rawSelected = columnFilters[activeRelationCol];
|
|
8199
8248
|
const currentSelected = typeof rawSelected === "object" && rawSelected !== null ? rawSelected : void 0;
|
|
8200
|
-
return /* @__PURE__ */
|
|
8249
|
+
return /* @__PURE__ */ jsx16(
|
|
8201
8250
|
RelationFilterPopover,
|
|
8202
8251
|
{
|
|
8203
8252
|
isOpen: Boolean(activeRelationCol),
|
|
@@ -8233,7 +8282,7 @@ function ExpandedSubTables({
|
|
|
8233
8282
|
if (subTableColumns.length === 0) return null;
|
|
8234
8283
|
if (subTableColumns.length === 1) {
|
|
8235
8284
|
const stCol = subTableColumns[0];
|
|
8236
|
-
return /* @__PURE__ */
|
|
8285
|
+
return /* @__PURE__ */ jsx16("tr", { children: /* @__PURE__ */ jsx16("td", { colSpan: filteredColumnsLength + 2, className: "p-0 border-b border-slate-200 bg-slate-50/50", children: /* @__PURE__ */ jsx16(
|
|
8237
8286
|
SubTableViewer,
|
|
8238
8287
|
{
|
|
8239
8288
|
rowId,
|
|
@@ -8245,8 +8294,8 @@ function ExpandedSubTables({
|
|
|
8245
8294
|
) }) });
|
|
8246
8295
|
}
|
|
8247
8296
|
const activeCol = subTableColumns.find((c) => c.name === activeTab) || subTableColumns[0];
|
|
8248
|
-
return /* @__PURE__ */
|
|
8249
|
-
/* @__PURE__ */
|
|
8297
|
+
return /* @__PURE__ */ jsx16("tr", { children: /* @__PURE__ */ jsxs13("td", { colSpan: filteredColumnsLength + 2, className: "p-0 border-b border-slate-200 bg-slate-50/50 overflow-hidden", children: [
|
|
8298
|
+
/* @__PURE__ */ jsx16("div", { className: "flex border-b border-slate-200 bg-slate-100/50 px-2 pt-2 gap-1 overflow-hidden", children: subTableColumns.map((col) => /* @__PURE__ */ jsx16(
|
|
8250
8299
|
"button",
|
|
8251
8300
|
{
|
|
8252
8301
|
type: "button",
|
|
@@ -8256,7 +8305,7 @@ function ExpandedSubTables({
|
|
|
8256
8305
|
},
|
|
8257
8306
|
col.name
|
|
8258
8307
|
)) }),
|
|
8259
|
-
/* @__PURE__ */
|
|
8308
|
+
/* @__PURE__ */ jsx16("div", { className: "bg-white", children: /* @__PURE__ */ jsx16(
|
|
8260
8309
|
SubTableViewer,
|
|
8261
8310
|
{
|
|
8262
8311
|
rowId,
|
|
@@ -8304,12 +8353,12 @@ var TableRow = React13.memo(function TableRow2({
|
|
|
8304
8353
|
const lockedCopyTargets = getRelationCopyLockedTargets(schema == null ? void 0 : schema.columns);
|
|
8305
8354
|
return /* @__PURE__ */ jsxs13(React13.Fragment, { children: [
|
|
8306
8355
|
/* @__PURE__ */ jsxs13("tr", { className: `transition-colors group hover:bg-blue-50 ${isSelected ? "bg-blue-50" : ""}`, children: [
|
|
8307
|
-
/* @__PURE__ */
|
|
8356
|
+
/* @__PURE__ */ jsx16("td", { className: "border-b border-l border-slate-200 p-1.5 text-center bg-white group-hover:bg-transparent", style: { width: 80, minWidth: 80, maxWidth: 80 }, children: /* @__PURE__ */ jsxs13("div", { className: "flex items-center justify-center gap-1.5", children: [
|
|
8308
8357
|
rowStatus && (() => {
|
|
8309
8358
|
const status = typeof rowStatus === "string" ? rowStatus : rowStatus.status;
|
|
8310
8359
|
const tooltip = typeof rowStatus === "object" && rowStatus.tooltip ? rowStatus.tooltip : void 0;
|
|
8311
8360
|
if (status === "success") {
|
|
8312
|
-
return /* @__PURE__ */
|
|
8361
|
+
return /* @__PURE__ */ jsx16(
|
|
8313
8362
|
"span",
|
|
8314
8363
|
{
|
|
8315
8364
|
className: "text-xs select-none cursor-help inline-flex items-center justify-center",
|
|
@@ -8319,7 +8368,7 @@ var TableRow = React13.memo(function TableRow2({
|
|
|
8319
8368
|
);
|
|
8320
8369
|
}
|
|
8321
8370
|
if (status === "failed") {
|
|
8322
|
-
return /* @__PURE__ */
|
|
8371
|
+
return /* @__PURE__ */ jsx16(
|
|
8323
8372
|
"span",
|
|
8324
8373
|
{
|
|
8325
8374
|
className: "text-xs select-none cursor-help inline-flex items-center justify-center",
|
|
@@ -8329,7 +8378,7 @@ var TableRow = React13.memo(function TableRow2({
|
|
|
8329
8378
|
);
|
|
8330
8379
|
}
|
|
8331
8380
|
if (status === "skipped") {
|
|
8332
|
-
return /* @__PURE__ */
|
|
8381
|
+
return /* @__PURE__ */ jsx16(
|
|
8333
8382
|
"span",
|
|
8334
8383
|
{
|
|
8335
8384
|
className: "text-xs select-none cursor-help inline-flex items-center justify-center",
|
|
@@ -8339,7 +8388,7 @@ var TableRow = React13.memo(function TableRow2({
|
|
|
8339
8388
|
);
|
|
8340
8389
|
}
|
|
8341
8390
|
if (status === "partial") {
|
|
8342
|
-
return /* @__PURE__ */
|
|
8391
|
+
return /* @__PURE__ */ jsx16(
|
|
8343
8392
|
"span",
|
|
8344
8393
|
{
|
|
8345
8394
|
className: "text-xs select-none cursor-help inline-flex items-center justify-center",
|
|
@@ -8350,7 +8399,7 @@ var TableRow = React13.memo(function TableRow2({
|
|
|
8350
8399
|
}
|
|
8351
8400
|
return null;
|
|
8352
8401
|
})(),
|
|
8353
|
-
/* @__PURE__ */
|
|
8402
|
+
/* @__PURE__ */ jsx16(
|
|
8354
8403
|
"input",
|
|
8355
8404
|
{
|
|
8356
8405
|
type: "checkbox",
|
|
@@ -8360,14 +8409,14 @@ var TableRow = React13.memo(function TableRow2({
|
|
|
8360
8409
|
className: "w-4 h-4 rounded border-slate-300 text-brand"
|
|
8361
8410
|
}
|
|
8362
8411
|
),
|
|
8363
|
-
hasSubTableCols && /* @__PURE__ */
|
|
8412
|
+
hasSubTableCols && /* @__PURE__ */ jsx16(
|
|
8364
8413
|
"button",
|
|
8365
8414
|
{
|
|
8366
8415
|
type: "button",
|
|
8367
8416
|
onClick: () => onToggleExpand(row.id),
|
|
8368
8417
|
className: "w-5 h-5 rounded-full bg-slate-500 hover:bg-slate-600 text-white flex items-center justify-center transition-colors cursor-pointer shrink-0 shadow-sm",
|
|
8369
8418
|
title: isExpanded ? "\u05E1\u05D2\u05D5\u05E8 \u05EA\u05EA-\u05D8\u05D1\u05DC\u05D4" : "\u05E4\u05EA\u05D7 \u05EA\u05EA-\u05D8\u05D1\u05DC\u05D4",
|
|
8370
|
-
children: /* @__PURE__ */
|
|
8419
|
+
children: /* @__PURE__ */ jsx16("svg", { className: `w-3 h-3 transition-transform duration-150 ${isExpanded ? "rotate-90" : "rotate-180"}`, fill: "none", viewBox: "0 0 24 24", stroke: "currentColor", children: /* @__PURE__ */ jsx16("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: "3", d: "M9 5l7 7-7 7" }) })
|
|
8371
8420
|
}
|
|
8372
8421
|
)
|
|
8373
8422
|
] }) }),
|
|
@@ -8385,12 +8434,12 @@ var TableRow = React13.memo(function TableRow2({
|
|
|
8385
8434
|
}
|
|
8386
8435
|
}
|
|
8387
8436
|
if (value === void 0) value = null;
|
|
8388
|
-
return /* @__PURE__ */
|
|
8437
|
+
return /* @__PURE__ */ jsx16(
|
|
8389
8438
|
"td",
|
|
8390
8439
|
{
|
|
8391
8440
|
className: `border-b border-l border-slate-200 p-0 relative h-full ${colType === "RELATION" ? "overflow-visible" : "overflow-hidden"}`,
|
|
8392
8441
|
style: { width: currentWidth, minWidth: currentWidth, maxWidth: currentWidth, height: "100%" },
|
|
8393
|
-
children: /* @__PURE__ */
|
|
8442
|
+
children: /* @__PURE__ */ jsx16(
|
|
8394
8443
|
InputComponent,
|
|
8395
8444
|
{
|
|
8396
8445
|
value,
|
|
@@ -8423,9 +8472,9 @@ var TableRow = React13.memo(function TableRow2({
|
|
|
8423
8472
|
col.name
|
|
8424
8473
|
);
|
|
8425
8474
|
}),
|
|
8426
|
-
/* @__PURE__ */
|
|
8475
|
+
/* @__PURE__ */ jsx16("td", { className: "border-b border-slate-200 bg-white pointer-events-none" })
|
|
8427
8476
|
] }),
|
|
8428
|
-
isExpanded && /* @__PURE__ */
|
|
8477
|
+
isExpanded && /* @__PURE__ */ jsx16(
|
|
8429
8478
|
ExpandedSubTables,
|
|
8430
8479
|
{
|
|
8431
8480
|
rowId: row.id,
|
|
@@ -8452,9 +8501,9 @@ var TableRow = React13.memo(function TableRow2({
|
|
|
8452
8501
|
});
|
|
8453
8502
|
|
|
8454
8503
|
// src/components/TableBlock/TableBlock.tsx
|
|
8455
|
-
import { jsx as
|
|
8504
|
+
import { jsx as jsx17 } from "react/jsx-runtime";
|
|
8456
8505
|
function TableBlock(props) {
|
|
8457
|
-
return /* @__PURE__ */
|
|
8506
|
+
return /* @__PURE__ */ jsx17(TableBlockClient, __spreadValues({}, props));
|
|
8458
8507
|
}
|
|
8459
8508
|
|
|
8460
8509
|
// src/components/PlacementBlock/PlacementBlock.tsx
|
|
@@ -8564,7 +8613,7 @@ function readColumnValue(data, ref) {
|
|
|
8564
8613
|
}
|
|
8565
8614
|
|
|
8566
8615
|
// src/components/PlacementBlock/PlacementSettings.tsx
|
|
8567
|
-
import { Fragment as Fragment3, jsx as
|
|
8616
|
+
import { Fragment as Fragment3, jsx as jsx18, jsxs as jsxs14 } from "react/jsx-runtime";
|
|
8568
8617
|
var DEFAULT_PLACEMENT_STATUS_COLORS = [
|
|
8569
8618
|
{ id: "1", hex: "#10b981", label: "\u05DE\u05EA\u05D0\u05D9\u05DD / \u05D0\u05D5\u05E9\u05E8" },
|
|
8570
8619
|
{ id: "2", hex: "#f59e0b", label: "\u05DE\u05DE\u05EA\u05D9\u05DF \u05DC\u05E8\u05D0\u05D9\u05D5\u05DF" },
|
|
@@ -8577,15 +8626,15 @@ function resolveDefaultStatusId(list, wanted) {
|
|
|
8577
8626
|
return (_b = (_a = list[0]) == null ? void 0 : _a.id) != null ? _b : "";
|
|
8578
8627
|
}
|
|
8579
8628
|
var SummaryRow = ({ label, value, hint }) => /* @__PURE__ */ jsxs14("div", { className: "flex items-start gap-2 text-sm", children: [
|
|
8580
|
-
/* @__PURE__ */
|
|
8629
|
+
/* @__PURE__ */ jsx18("span", { className: value ? "text-emerald-600" : "text-slate-300", children: value ? "\u2713" : "\u25CB" }),
|
|
8581
8630
|
/* @__PURE__ */ jsxs14("span", { className: "text-slate-500 shrink-0", children: [
|
|
8582
8631
|
label,
|
|
8583
8632
|
":"
|
|
8584
8633
|
] }),
|
|
8585
8634
|
value ? /* @__PURE__ */ jsxs14("span", { className: "font-semibold text-slate-800 break-words", children: [
|
|
8586
8635
|
value,
|
|
8587
|
-
hint && /* @__PURE__ */
|
|
8588
|
-
] }) : /* @__PURE__ */
|
|
8636
|
+
hint && /* @__PURE__ */ jsx18("span", { className: "mr-2 text-[11px] font-normal text-indigo-600", children: hint })
|
|
8637
|
+
] }) : /* @__PURE__ */ jsx18("span", { className: "text-slate-400", children: "\u05D8\u05E8\u05DD \u05E0\u05D1\u05D7\u05E8" })
|
|
8589
8638
|
] });
|
|
8590
8639
|
var PlacementStatusEditor = ({ config, onChange }) => {
|
|
8591
8640
|
var _a;
|
|
@@ -8612,10 +8661,10 @@ var PlacementStatusEditor = ({ config, onChange }) => {
|
|
|
8612
8661
|
setStatuses(next);
|
|
8613
8662
|
};
|
|
8614
8663
|
return /* @__PURE__ */ jsxs14("div", { className: "p-4 border border-emerald-200 bg-emerald-50/50 rounded space-y-3", children: [
|
|
8615
|
-
/* @__PURE__ */
|
|
8616
|
-
/* @__PURE__ */
|
|
8617
|
-
/* @__PURE__ */
|
|
8618
|
-
/* @__PURE__ */
|
|
8664
|
+
/* @__PURE__ */ jsx18("h4", { className: "font-semibold text-emerald-900", children: "\u05E9\u05DC\u05D1 3: \u05E1\u05D8\u05D8\u05D5\u05E1\u05D9\u05DD (\u05D4\u05E2\u05D9\u05D2\u05D5\u05DC\u05D9\u05DD \u05D4\u05E6\u05D1\u05E2\u05D5\u05E0\u05D9\u05D9\u05DD)" }),
|
|
8665
|
+
/* @__PURE__ */ jsx18("p", { className: "text-xs text-slate-500", children: "\u05DC\u05D7\u05D9\u05E6\u05D4 \u05E2\u05DC \u05E2\u05D9\u05D2\u05D5\u05DC \u05D1\u05E8\u05DB\u05D9\u05D1 \u05DE\u05D7\u05DC\u05D9\u05E4\u05D4 \u05D1\u05D9\u05DF \u05D4\u05E1\u05D8\u05D8\u05D5\u05E1\u05D9\u05DD \u05DC\u05E4\u05D9 \u05D4\u05E1\u05D3\u05E8 \u05E9\u05DB\u05D0\u05DF. \u05D4\u05D8\u05E7\u05E1\u05D8 \u05DE\u05D5\u05E4\u05D9\u05E2 \u05D1\u05D1\u05D5\u05E2\u05D4 \u05DB\u05E9\u05D4\u05E2\u05DB\u05D1\u05E8 \u05E2\u05D5\u05DE\u05D3 \u05DE\u05E2\u05DC \u05D4\u05E2\u05D9\u05D2\u05D5\u05DC." }),
|
|
8666
|
+
/* @__PURE__ */ jsx18("div", { className: "space-y-2", children: statuses.map((st, i) => /* @__PURE__ */ jsxs14("div", { className: "flex items-center gap-2 bg-white border rounded p-2", children: [
|
|
8667
|
+
/* @__PURE__ */ jsx18(
|
|
8619
8668
|
"input",
|
|
8620
8669
|
{
|
|
8621
8670
|
type: "color",
|
|
@@ -8625,7 +8674,7 @@ var PlacementStatusEditor = ({ config, onChange }) => {
|
|
|
8625
8674
|
"aria-label": "\u05E6\u05D1\u05E2"
|
|
8626
8675
|
}
|
|
8627
8676
|
),
|
|
8628
|
-
/* @__PURE__ */
|
|
8677
|
+
/* @__PURE__ */ jsx18(
|
|
8629
8678
|
"input",
|
|
8630
8679
|
{
|
|
8631
8680
|
type: "text",
|
|
@@ -8636,7 +8685,7 @@ var PlacementStatusEditor = ({ config, onChange }) => {
|
|
|
8636
8685
|
}
|
|
8637
8686
|
),
|
|
8638
8687
|
/* @__PURE__ */ jsxs14("label", { className: "flex items-center gap-1 text-xs text-slate-600 shrink-0 cursor-pointer", title: "\u05D4\u05E1\u05D8\u05D8\u05D5\u05E1 \u05D4\u05D4\u05EA\u05D7\u05DC\u05EA\u05D9, \u05D5\u05D2\u05DD \u05D6\u05D4 \u05E9\u05D0\u05DC\u05D9\u05D5 \u05D7\u05D5\u05D6\u05E8 \u05DE\u05D5\u05E2\u05DE\u05D3 \u05E9\u05DE\u05D5\u05D7\u05D6\u05E8 \u05DC\u05E8\u05E9\u05D9\u05DE\u05EA \u05D4\u05DE\u05E7\u05D5\u05E8", children: [
|
|
8639
|
-
/* @__PURE__ */
|
|
8688
|
+
/* @__PURE__ */ jsx18(
|
|
8640
8689
|
"input",
|
|
8641
8690
|
{
|
|
8642
8691
|
type: "radio",
|
|
@@ -8647,13 +8696,13 @@ var PlacementStatusEditor = ({ config, onChange }) => {
|
|
|
8647
8696
|
),
|
|
8648
8697
|
"\u05D1\u05E8\u05D9\u05E8\u05EA \u05DE\u05D7\u05D3\u05DC"
|
|
8649
8698
|
] }),
|
|
8650
|
-
/* @__PURE__ */
|
|
8651
|
-
/* @__PURE__ */
|
|
8652
|
-
/* @__PURE__ */
|
|
8699
|
+
/* @__PURE__ */ jsx18("button", { type: "button", onClick: () => moveStatus(i, -1), disabled: i === 0, className: "px-2 py-1 border rounded text-xs disabled:opacity-30", "aria-label": "\u05D4\u05D6\u05D6 \u05DC\u05DE\u05E2\u05DC\u05D4", children: "\u25B2" }),
|
|
8700
|
+
/* @__PURE__ */ jsx18("button", { type: "button", onClick: () => moveStatus(i, 1), disabled: i === statuses.length - 1, className: "px-2 py-1 border rounded text-xs disabled:opacity-30", "aria-label": "\u05D4\u05D6\u05D6 \u05DC\u05DE\u05D8\u05D4", children: "\u25BC" }),
|
|
8701
|
+
/* @__PURE__ */ jsx18("button", { type: "button", onClick: () => removeStatus(st.id), disabled: statuses.length <= 1, className: "px-2 py-1 border border-rose-300 text-rose-600 rounded text-xs disabled:opacity-30", "aria-label": "\u05DE\u05D7\u05E7 \u05E1\u05D8\u05D8\u05D5\u05E1", children: "\u2715" })
|
|
8653
8702
|
] }, st.id)) }),
|
|
8654
8703
|
/* @__PURE__ */ jsxs14("div", { className: "flex items-center gap-3", children: [
|
|
8655
|
-
/* @__PURE__ */
|
|
8656
|
-
/* @__PURE__ */
|
|
8704
|
+
/* @__PURE__ */ jsx18("button", { type: "button", onClick: addStatus, className: "px-3 py-1.5 rounded text-sm font-medium bg-emerald-600 text-white hover:bg-emerald-700", children: "+ \u05D4\u05D5\u05E1\u05E3 \u05E1\u05D8\u05D8\u05D5\u05E1" }),
|
|
8705
|
+
/* @__PURE__ */ jsx18("button", { type: "button", onClick: () => setStatuses(DEFAULT_PLACEMENT_STATUS_COLORS, "3"), className: "text-xs text-slate-500 underline", children: "\u05D0\u05E4\u05E1 \u05DC\u05D1\u05E8\u05D9\u05E8\u05EA \u05D4\u05DE\u05D7\u05D3\u05DC" })
|
|
8657
8706
|
] })
|
|
8658
8707
|
] });
|
|
8659
8708
|
};
|
|
@@ -8690,14 +8739,14 @@ var PlacementSettings = ({ config, onChange, tables }) => {
|
|
|
8690
8739
|
};
|
|
8691
8740
|
const selectClass = "w-full border p-2 rounded bg-white text-sm";
|
|
8692
8741
|
return /* @__PURE__ */ jsxs14("div", { className: "p-4 border rounded shadow-sm bg-gray-50 space-y-6", dir: "rtl", children: [
|
|
8693
|
-
/* @__PURE__ */
|
|
8742
|
+
/* @__PURE__ */ jsx18("h3", { className: "text-lg font-bold", children: "\u05D4\u05D2\u05D3\u05E8\u05D5\u05EA \u05E8\u05DB\u05D9\u05D1 \u05E9\u05D9\u05D1\u05D5\u05E5" }),
|
|
8694
8743
|
/* @__PURE__ */ jsxs14("div", { className: "p-4 border border-indigo-200 bg-indigo-50/60 rounded space-y-2", "aria-live": "polite", children: [
|
|
8695
|
-
/* @__PURE__ */
|
|
8744
|
+
/* @__PURE__ */ jsx18("h4", { className: "font-semibold text-indigo-900 text-sm", children: "\u05D4\u05D1\u05D7\u05D9\u05E8\u05D5\u05EA \u05E9\u05E0\u05E2\u05E9\u05D5 \u05E2\u05D3 \u05DB\u05D4" }),
|
|
8696
8745
|
/* @__PURE__ */ jsxs14("div", { className: "grid grid-cols-1 md:grid-cols-2 gap-x-6 gap-y-1.5", children: [
|
|
8697
8746
|
/* @__PURE__ */ jsxs14("div", { className: "space-y-1.5", children: [
|
|
8698
|
-
/* @__PURE__ */
|
|
8699
|
-
/* @__PURE__ */
|
|
8700
|
-
/* @__PURE__ */
|
|
8747
|
+
/* @__PURE__ */ jsx18("div", { className: "text-xs font-bold text-slate-500", children: "\u05DE\u05E7\u05D5\u05E8" }),
|
|
8748
|
+
/* @__PURE__ */ jsx18(SummaryRow, { label: "\u05D8\u05D1\u05DC\u05EA \u05DE\u05E7\u05D5\u05E8", value: sourceTable == null ? void 0 : sourceTable.name }),
|
|
8749
|
+
/* @__PURE__ */ jsx18(
|
|
8701
8750
|
SummaryRow,
|
|
8702
8751
|
{
|
|
8703
8752
|
label: "\u05E2\u05DE\u05D5\u05D3\u05EA \u05DE\u05D9\u05D3\u05E2",
|
|
@@ -8707,9 +8756,9 @@ var PlacementSettings = ({ config, onChange, tables }) => {
|
|
|
8707
8756
|
)
|
|
8708
8757
|
] }),
|
|
8709
8758
|
/* @__PURE__ */ jsxs14("div", { className: "space-y-1.5", children: [
|
|
8710
|
-
/* @__PURE__ */
|
|
8711
|
-
/* @__PURE__ */
|
|
8712
|
-
/* @__PURE__ */
|
|
8759
|
+
/* @__PURE__ */ jsx18("div", { className: "text-xs font-bold text-slate-500", children: "\u05D9\u05E2\u05D3" }),
|
|
8760
|
+
/* @__PURE__ */ jsx18(SummaryRow, { label: "\u05D8\u05D1\u05DC\u05EA \u05D9\u05E2\u05D3", value: targetTable == null ? void 0 : targetTable.name }),
|
|
8761
|
+
/* @__PURE__ */ jsx18(
|
|
8713
8762
|
SummaryRow,
|
|
8714
8763
|
{
|
|
8715
8764
|
label: "\u05E1\u05D9\u05E0\u05D5\u05DF 1",
|
|
@@ -8717,7 +8766,7 @@ var PlacementSettings = ({ config, onChange, tables }) => {
|
|
|
8717
8766
|
hint: relatedHint(config.targetFilterField1Id, targetTextColumns)
|
|
8718
8767
|
}
|
|
8719
8768
|
),
|
|
8720
|
-
/* @__PURE__ */
|
|
8769
|
+
/* @__PURE__ */ jsx18(
|
|
8721
8770
|
SummaryRow,
|
|
8722
8771
|
{
|
|
8723
8772
|
label: "\u05E1\u05D9\u05E0\u05D5\u05DF 2",
|
|
@@ -8725,7 +8774,7 @@ var PlacementSettings = ({ config, onChange, tables }) => {
|
|
|
8725
8774
|
hint: relatedHint(config.targetFilterField2Id, targetTextColumns)
|
|
8726
8775
|
}
|
|
8727
8776
|
),
|
|
8728
|
-
/* @__PURE__ */
|
|
8777
|
+
/* @__PURE__ */ jsx18(
|
|
8729
8778
|
SummaryRow,
|
|
8730
8779
|
{
|
|
8731
8780
|
label: "\u05D1\u05D7\u05D9\u05E8\u05EA \u05E8\u05E9\u05D5\u05DE\u05D4",
|
|
@@ -8733,15 +8782,15 @@ var PlacementSettings = ({ config, onChange, tables }) => {
|
|
|
8733
8782
|
hint: relatedHint(config.targetSelectorFieldId, targetTextColumns)
|
|
8734
8783
|
}
|
|
8735
8784
|
),
|
|
8736
|
-
/* @__PURE__ */
|
|
8785
|
+
/* @__PURE__ */ jsx18(SummaryRow, { label: "\u05E2\u05DE\u05D5\u05D3\u05EA \u05E9\u05D9\u05D1\u05D5\u05E5", value: config.targetAssignmentFieldId })
|
|
8737
8786
|
] })
|
|
8738
8787
|
] })
|
|
8739
8788
|
] }),
|
|
8740
8789
|
/* @__PURE__ */ jsxs14("div", { className: "p-4 border border-slate-200 bg-white rounded space-y-3", children: [
|
|
8741
|
-
/* @__PURE__ */
|
|
8790
|
+
/* @__PURE__ */ jsx18("h4", { className: "font-semibold text-slate-800", children: "\u05E9\u05DC\u05D1 1: \u05D8\u05D1\u05DC\u05EA \u05D4\u05DE\u05E7\u05D5\u05E8" }),
|
|
8742
8791
|
/* @__PURE__ */ jsxs14("div", { className: "grid grid-cols-2 gap-4", children: [
|
|
8743
8792
|
/* @__PURE__ */ jsxs14("div", { children: [
|
|
8744
|
-
/* @__PURE__ */
|
|
8793
|
+
/* @__PURE__ */ jsx18("label", { className: "block text-sm font-medium mb-1", children: "\u05D8\u05D1\u05DC\u05EA \u05DE\u05E7\u05D5\u05E8 (\u05DC\u05DE\u05E9\u05DC: \u05DE\u05D3\u05E8\u05D9\u05DB\u05D9\u05DD):" }),
|
|
8745
8794
|
/* @__PURE__ */ jsxs14(
|
|
8746
8795
|
"select",
|
|
8747
8796
|
{
|
|
@@ -8749,14 +8798,14 @@ var PlacementSettings = ({ config, onChange, tables }) => {
|
|
|
8749
8798
|
value: config.sourceTableId || "",
|
|
8750
8799
|
onChange: (e) => handleSourceTableChange(e.target.value),
|
|
8751
8800
|
children: [
|
|
8752
|
-
/* @__PURE__ */
|
|
8753
|
-
tables == null ? void 0 : tables.map((t) => /* @__PURE__ */
|
|
8801
|
+
/* @__PURE__ */ jsx18("option", { value: "", disabled: true, children: "-- \u05D1\u05D7\u05E8 \u05D8\u05D1\u05DC\u05EA \u05DE\u05E7\u05D5\u05E8 --" }),
|
|
8802
|
+
tables == null ? void 0 : tables.map((t) => /* @__PURE__ */ jsx18("option", { value: t.id, children: t.name }, t.id))
|
|
8754
8803
|
]
|
|
8755
8804
|
}
|
|
8756
8805
|
)
|
|
8757
8806
|
] }),
|
|
8758
8807
|
/* @__PURE__ */ jsxs14("div", { children: [
|
|
8759
|
-
/* @__PURE__ */
|
|
8808
|
+
/* @__PURE__ */ jsx18("label", { className: "block text-sm font-medium mb-1", children: "\u05E2\u05DE\u05D5\u05D3\u05D4 \u05DC\u05E7\u05D7\u05EA \u05DE\u05DE\u05E0\u05D4 \u05DE\u05D9\u05D3\u05E2 (\u05DC\u05DE\u05E9\u05DC: \u05E9\u05DD \u05DE\u05D3\u05E8\u05D9\u05DA):" }),
|
|
8760
8809
|
/* @__PURE__ */ jsxs14(
|
|
8761
8810
|
"select",
|
|
8762
8811
|
{
|
|
@@ -8765,8 +8814,8 @@ var PlacementSettings = ({ config, onChange, tables }) => {
|
|
|
8765
8814
|
value: config.sourceDisplayFieldId || "",
|
|
8766
8815
|
onChange: (e) => onChange(__spreadProps(__spreadValues({}, config), { sourceDisplayFieldId: e.target.value })),
|
|
8767
8816
|
children: [
|
|
8768
|
-
/* @__PURE__ */
|
|
8769
|
-
sourceColumns.map((f) => /* @__PURE__ */
|
|
8817
|
+
/* @__PURE__ */ jsx18("option", { value: "", disabled: true, children: "-- \u05D1\u05D7\u05E8 \u05E2\u05DE\u05D5\u05D3\u05EA \u05DE\u05E7\u05D5\u05E8 --" }),
|
|
8818
|
+
sourceColumns.map((f) => /* @__PURE__ */ jsx18("option", { value: f.id, children: f.name }, f.id))
|
|
8770
8819
|
]
|
|
8771
8820
|
}
|
|
8772
8821
|
)
|
|
@@ -8774,9 +8823,9 @@ var PlacementSettings = ({ config, onChange, tables }) => {
|
|
|
8774
8823
|
] })
|
|
8775
8824
|
] }),
|
|
8776
8825
|
/* @__PURE__ */ jsxs14("div", { className: "p-4 border border-blue-200 bg-blue-50 rounded space-y-3", children: [
|
|
8777
|
-
/* @__PURE__ */
|
|
8826
|
+
/* @__PURE__ */ jsx18("h4", { className: "font-semibold text-blue-900", children: "\u05E9\u05DC\u05D1 2: \u05D8\u05D1\u05DC\u05EA \u05D4\u05D9\u05E2\u05D3" }),
|
|
8778
8827
|
/* @__PURE__ */ jsxs14("div", { children: [
|
|
8779
|
-
/* @__PURE__ */
|
|
8828
|
+
/* @__PURE__ */ jsx18("label", { className: "block text-sm font-medium mb-1", children: "\u05D8\u05D1\u05DC\u05EA \u05D9\u05E2\u05D3:" }),
|
|
8780
8829
|
/* @__PURE__ */ jsxs14(
|
|
8781
8830
|
"select",
|
|
8782
8831
|
{
|
|
@@ -8784,8 +8833,8 @@ var PlacementSettings = ({ config, onChange, tables }) => {
|
|
|
8784
8833
|
value: config.targetTableId || "",
|
|
8785
8834
|
onChange: (e) => handleTargetTableChange(e.target.value),
|
|
8786
8835
|
children: [
|
|
8787
|
-
/* @__PURE__ */
|
|
8788
|
-
tables == null ? void 0 : tables.map((t) => /* @__PURE__ */
|
|
8836
|
+
/* @__PURE__ */ jsx18("option", { value: "", disabled: true, children: "-- \u05D1\u05D7\u05E8 \u05D8\u05D1\u05DC\u05EA \u05D9\u05E2\u05D3 --" }),
|
|
8837
|
+
tables == null ? void 0 : tables.map((t) => /* @__PURE__ */ jsx18("option", { value: t.id, children: t.name }, t.id))
|
|
8789
8838
|
]
|
|
8790
8839
|
}
|
|
8791
8840
|
)
|
|
@@ -8793,7 +8842,7 @@ var PlacementSettings = ({ config, onChange, tables }) => {
|
|
|
8793
8842
|
config.targetTableId && /* @__PURE__ */ jsxs14(Fragment3, { children: [
|
|
8794
8843
|
/* @__PURE__ */ jsxs14("div", { className: "grid grid-cols-3 gap-4", children: [
|
|
8795
8844
|
/* @__PURE__ */ jsxs14("div", { children: [
|
|
8796
|
-
/* @__PURE__ */
|
|
8845
|
+
/* @__PURE__ */ jsx18("label", { className: "block text-sm font-medium mb-1", children: "\u05E2\u05DE\u05D5\u05D3\u05EA \u05E1\u05D9\u05E0\u05D5\u05DF 1:" }),
|
|
8797
8846
|
/* @__PURE__ */ jsxs14(
|
|
8798
8847
|
"select",
|
|
8799
8848
|
{
|
|
@@ -8801,14 +8850,14 @@ var PlacementSettings = ({ config, onChange, tables }) => {
|
|
|
8801
8850
|
value: config.targetFilterField1Id || "",
|
|
8802
8851
|
onChange: (e) => onChange(__spreadProps(__spreadValues({}, config), { targetFilterField1Id: e.target.value })),
|
|
8803
8852
|
children: [
|
|
8804
|
-
/* @__PURE__ */
|
|
8805
|
-
optionsFor(targetTextColumns, "targetFilterField1Id").map((f) => /* @__PURE__ */
|
|
8853
|
+
/* @__PURE__ */ jsx18("option", { value: "", disabled: true, children: "-- \u05D1\u05D7\u05E8 \u05E2\u05DE\u05D5\u05D3\u05D4 --" }),
|
|
8854
|
+
optionsFor(targetTextColumns, "targetFilterField1Id").map((f) => /* @__PURE__ */ jsx18("option", { value: f.id, children: f.name }, f.id))
|
|
8806
8855
|
]
|
|
8807
8856
|
}
|
|
8808
8857
|
)
|
|
8809
8858
|
] }),
|
|
8810
8859
|
/* @__PURE__ */ jsxs14("div", { children: [
|
|
8811
|
-
/* @__PURE__ */
|
|
8860
|
+
/* @__PURE__ */ jsx18("label", { className: "block text-sm font-medium mb-1", children: "\u05E2\u05DE\u05D5\u05D3\u05EA \u05E1\u05D9\u05E0\u05D5\u05DF 2:" }),
|
|
8812
8861
|
/* @__PURE__ */ jsxs14(
|
|
8813
8862
|
"select",
|
|
8814
8863
|
{
|
|
@@ -8816,14 +8865,14 @@ var PlacementSettings = ({ config, onChange, tables }) => {
|
|
|
8816
8865
|
value: config.targetFilterField2Id || "",
|
|
8817
8866
|
onChange: (e) => onChange(__spreadProps(__spreadValues({}, config), { targetFilterField2Id: e.target.value })),
|
|
8818
8867
|
children: [
|
|
8819
|
-
/* @__PURE__ */
|
|
8820
|
-
optionsFor(targetTextColumns, "targetFilterField2Id").map((f) => /* @__PURE__ */
|
|
8868
|
+
/* @__PURE__ */ jsx18("option", { value: "", disabled: true, children: "-- \u05D1\u05D7\u05E8 \u05E2\u05DE\u05D5\u05D3\u05D4 --" }),
|
|
8869
|
+
optionsFor(targetTextColumns, "targetFilterField2Id").map((f) => /* @__PURE__ */ jsx18("option", { value: f.id, children: f.name }, f.id))
|
|
8821
8870
|
]
|
|
8822
8871
|
}
|
|
8823
8872
|
)
|
|
8824
8873
|
] }),
|
|
8825
8874
|
/* @__PURE__ */ jsxs14("div", { children: [
|
|
8826
|
-
/* @__PURE__ */
|
|
8875
|
+
/* @__PURE__ */ jsx18("label", { className: "block text-sm font-medium mb-1", children: "\u05E2\u05DE\u05D5\u05D3\u05EA \u05D1\u05D7\u05D9\u05E8\u05EA \u05D4\u05E8\u05E9\u05D5\u05DE\u05D4:" }),
|
|
8827
8876
|
/* @__PURE__ */ jsxs14(
|
|
8828
8877
|
"select",
|
|
8829
8878
|
{
|
|
@@ -8831,15 +8880,15 @@ var PlacementSettings = ({ config, onChange, tables }) => {
|
|
|
8831
8880
|
value: config.targetSelectorFieldId || "",
|
|
8832
8881
|
onChange: (e) => onChange(__spreadProps(__spreadValues({}, config), { targetSelectorFieldId: e.target.value })),
|
|
8833
8882
|
children: [
|
|
8834
|
-
/* @__PURE__ */
|
|
8835
|
-
optionsFor(targetTextColumns, "targetSelectorFieldId").map((f) => /* @__PURE__ */
|
|
8883
|
+
/* @__PURE__ */ jsx18("option", { value: "", disabled: true, children: "-- \u05D1\u05D7\u05E8 \u05E2\u05DE\u05D5\u05D3\u05D4 --" }),
|
|
8884
|
+
optionsFor(targetTextColumns, "targetSelectorFieldId").map((f) => /* @__PURE__ */ jsx18("option", { value: f.id, children: f.name }, f.id))
|
|
8836
8885
|
]
|
|
8837
8886
|
}
|
|
8838
8887
|
)
|
|
8839
8888
|
] })
|
|
8840
8889
|
] }),
|
|
8841
8890
|
/* @__PURE__ */ jsxs14("div", { children: [
|
|
8842
|
-
/* @__PURE__ */
|
|
8891
|
+
/* @__PURE__ */ jsx18("label", { className: "block text-sm font-medium mb-1", children: "\u05E2\u05DE\u05D5\u05D3\u05D4 \u05D1\u05D8\u05D1\u05DC\u05EA \u05D4\u05D9\u05E2\u05D3 \u05D0\u05DC\u05D9\u05D4 \u05D9\u05D9\u05DB\u05E0\u05E1 \u05D4\u05DE\u05D9\u05D3\u05E2 \u05DE\u05D4\u05DE\u05E7\u05D5\u05E8:" }),
|
|
8843
8892
|
/* @__PURE__ */ jsxs14(
|
|
8844
8893
|
"select",
|
|
8845
8894
|
{
|
|
@@ -8847,21 +8896,21 @@ var PlacementSettings = ({ config, onChange, tables }) => {
|
|
|
8847
8896
|
value: config.targetAssignmentFieldId || "",
|
|
8848
8897
|
onChange: (e) => onChange(__spreadProps(__spreadValues({}, config), { targetAssignmentFieldId: e.target.value })),
|
|
8849
8898
|
children: [
|
|
8850
|
-
/* @__PURE__ */
|
|
8851
|
-
optionsFor(targetColumns, "targetAssignmentFieldId").map((f) => /* @__PURE__ */
|
|
8899
|
+
/* @__PURE__ */ jsx18("option", { value: "", disabled: true, children: "-- \u05D1\u05D7\u05E8 \u05E2\u05DE\u05D5\u05D3\u05EA \u05D9\u05E2\u05D3 --" }),
|
|
8900
|
+
optionsFor(targetColumns, "targetAssignmentFieldId").map((f) => /* @__PURE__ */ jsx18("option", { value: f.id, children: f.name }, f.id))
|
|
8852
8901
|
]
|
|
8853
8902
|
}
|
|
8854
8903
|
)
|
|
8855
8904
|
] })
|
|
8856
8905
|
] })
|
|
8857
8906
|
] }),
|
|
8858
|
-
/* @__PURE__ */
|
|
8907
|
+
/* @__PURE__ */ jsx18(PlacementStatusEditor, { config, onChange })
|
|
8859
8908
|
] });
|
|
8860
8909
|
};
|
|
8861
8910
|
|
|
8862
8911
|
// src/components/PlacementBlock/PlacementRelationButtons.tsx
|
|
8863
8912
|
import { useMemo as useMemo8 } from "react";
|
|
8864
|
-
import { jsx as
|
|
8913
|
+
import { jsx as jsx19, jsxs as jsxs15 } from "react/jsx-runtime";
|
|
8865
8914
|
var GROUP_COLORS = [
|
|
8866
8915
|
{ title: "bg-blue-600 text-white", active: "bg-blue-600 border-blue-600 text-white hover:bg-blue-700", count: "text-blue-700" },
|
|
8867
8916
|
{ title: "bg-violet-600 text-white", active: "bg-violet-600 border-violet-600 text-white hover:bg-violet-700", count: "text-violet-700" },
|
|
@@ -8911,20 +8960,20 @@ var PlacementRelationButtons = ({
|
|
|
8911
8960
|
});
|
|
8912
8961
|
}, [columnNames, rows, filters, relationOptions]);
|
|
8913
8962
|
if (!columnNames || columnNames.length === 0) return null;
|
|
8914
|
-
return /* @__PURE__ */
|
|
8963
|
+
return /* @__PURE__ */ jsx19(
|
|
8915
8964
|
"div",
|
|
8916
8965
|
{
|
|
8917
8966
|
className: `border-t border-slate-100 pt-3 ${className}`,
|
|
8918
8967
|
"data-testid": "placement-relation-buttons",
|
|
8919
|
-
children: groups.every((g) => g.options.length === 0) ? /* @__PURE__ */
|
|
8968
|
+
children: groups.every((g) => g.options.length === 0) ? /* @__PURE__ */ jsx19("div", { className: "py-2 text-xs text-slate-400", children: "\u05D0\u05D9\u05DF \u05E2\u05E8\u05DB\u05D9\u05DD \u05DC\u05D4\u05E6\u05D2\u05D4 \u05D1\u05E2\u05DE\u05D5\u05D3\u05D5\u05EA \u05E9\u05E0\u05D1\u05D7\u05E8\u05D5" }) : (
|
|
8920
8969
|
// כל עמודה במתחם נפרד: בשורה הראשונה הכותרת (תגית צבעונית), ומהשורה שמתחת הכפתורים
|
|
8921
|
-
/* @__PURE__ */
|
|
8970
|
+
/* @__PURE__ */ jsx19("div", { className: "grid grid-cols-1 md:grid-cols-2 gap-2.5", children: groups.map((group, gi) => {
|
|
8922
8971
|
if (group.options.length === 0) return null;
|
|
8923
8972
|
const color = GROUP_COLORS[gi % GROUP_COLORS.length];
|
|
8924
8973
|
return /* @__PURE__ */ jsxs15("div", { className: "bg-white border border-slate-200 rounded-xl p-3 flex flex-col gap-2.5 shadow-2xs", children: [
|
|
8925
8974
|
/* @__PURE__ */ jsxs15("div", { className: "flex items-center justify-between gap-2 pb-2 border-b border-slate-100", children: [
|
|
8926
|
-
/* @__PURE__ */
|
|
8927
|
-
group.activeId && /* @__PURE__ */
|
|
8975
|
+
/* @__PURE__ */ jsx19("span", { className: `px-2.5 py-0.5 rounded-md text-xs font-bold truncate ${color.title}`, title: group.title, children: group.title }),
|
|
8976
|
+
group.activeId && /* @__PURE__ */ jsx19(
|
|
8928
8977
|
"button",
|
|
8929
8978
|
{
|
|
8930
8979
|
type: "button",
|
|
@@ -8934,11 +8983,11 @@ var PlacementRelationButtons = ({
|
|
|
8934
8983
|
}
|
|
8935
8984
|
)
|
|
8936
8985
|
] }),
|
|
8937
|
-
/* @__PURE__ */
|
|
8986
|
+
/* @__PURE__ */ jsx19("div", { className: "flex flex-wrap items-end gap-x-2 gap-y-2.5", children: group.options.map((opt) => {
|
|
8938
8987
|
const active = group.activeId === opt.id;
|
|
8939
8988
|
return /* @__PURE__ */ jsxs15("div", { className: "flex flex-col items-center gap-0.5", children: [
|
|
8940
|
-
/* @__PURE__ */
|
|
8941
|
-
/* @__PURE__ */
|
|
8989
|
+
/* @__PURE__ */ jsx19("span", { className: `text-[11px] font-bold leading-none ${active ? color.count : "text-slate-500"}`, children: opt.count }),
|
|
8990
|
+
/* @__PURE__ */ jsx19(
|
|
8942
8991
|
"button",
|
|
8943
8992
|
{
|
|
8944
8993
|
type: "button",
|
|
@@ -8996,7 +9045,7 @@ function computePlacementDefaultFilters(args) {
|
|
|
8996
9045
|
}
|
|
8997
9046
|
|
|
8998
9047
|
// src/components/PlacementBlock/PlacementBlock.tsx
|
|
8999
|
-
import { jsx as
|
|
9048
|
+
import { jsx as jsx20, jsxs as jsxs16 } from "react/jsx-runtime";
|
|
9000
9049
|
ModuleRegistry.registerModules([AllCommunityModule]);
|
|
9001
9050
|
var FETCH_LIMIT = 1e3;
|
|
9002
9051
|
function normalizeRows(records) {
|
|
@@ -9033,7 +9082,7 @@ var ColorDotRenderer = (props) => {
|
|
|
9033
9082
|
const { statuses, defaultStatusId } = props;
|
|
9034
9083
|
const status = statuses.find((c) => c.id === item.statusId) || statuses.find((c) => c.id === defaultStatusId) || statuses[0];
|
|
9035
9084
|
if (!status) return null;
|
|
9036
|
-
return /* @__PURE__ */
|
|
9085
|
+
return /* @__PURE__ */ jsx20("div", { className: "flex items-center justify-center h-full", children: /* @__PURE__ */ jsx20(
|
|
9037
9086
|
"button",
|
|
9038
9087
|
{
|
|
9039
9088
|
type: "button",
|
|
@@ -9047,7 +9096,7 @@ var ColorDotRenderer = (props) => {
|
|
|
9047
9096
|
};
|
|
9048
9097
|
var CheckCellRenderer = (props) => {
|
|
9049
9098
|
if (!props.data) return null;
|
|
9050
|
-
return /* @__PURE__ */
|
|
9099
|
+
return /* @__PURE__ */ jsx20("div", { className: "flex items-center justify-center h-full", children: /* @__PURE__ */ jsx20(
|
|
9051
9100
|
"input",
|
|
9052
9101
|
{
|
|
9053
9102
|
type: "checkbox",
|
|
@@ -9058,7 +9107,7 @@ var CheckCellRenderer = (props) => {
|
|
|
9058
9107
|
}
|
|
9059
9108
|
) });
|
|
9060
9109
|
};
|
|
9061
|
-
var CheckHeader = (props) => /* @__PURE__ */
|
|
9110
|
+
var CheckHeader = (props) => /* @__PURE__ */ jsx20("div", { className: "flex items-center justify-center w-full", children: /* @__PURE__ */ jsx20(
|
|
9062
9111
|
"input",
|
|
9063
9112
|
{
|
|
9064
9113
|
type: "checkbox",
|
|
@@ -9074,7 +9123,7 @@ var CheckHeader = (props) => /* @__PURE__ */ jsx19("div", { className: "flex ite
|
|
|
9074
9123
|
var RelationFilterHeader = (props) => {
|
|
9075
9124
|
const btnRef = useRef14(null);
|
|
9076
9125
|
return /* @__PURE__ */ jsxs16("div", { className: "flex flex-col items-center justify-center w-full min-w-0 leading-tight select-none", title: props.displayName, children: [
|
|
9077
|
-
/* @__PURE__ */
|
|
9126
|
+
/* @__PURE__ */ jsx20(
|
|
9078
9127
|
"button",
|
|
9079
9128
|
{
|
|
9080
9129
|
ref: btnRef,
|
|
@@ -9090,10 +9139,10 @@ var RelationFilterHeader = (props) => {
|
|
|
9090
9139
|
className: `p-0.5 rounded transition-colors cursor-pointer mb-0.5 shrink-0 ${props.active ? "text-blue-600 bg-blue-100 hover:bg-blue-200" : "text-slate-400 hover:text-slate-600 hover:bg-slate-200/60"}`,
|
|
9091
9140
|
title: props.active ? "\u05E1\u05D9\u05E0\u05D5\u05DF \u05E4\u05E2\u05D9\u05DC - \u05DC\u05D7\u05E5 \u05DC\u05E9\u05D9\u05E0\u05D5\u05D9" : "\u05E1\u05D9\u05E0\u05D5\u05DF \u05DC\u05E4\u05D9 \u05E2\u05DE\u05D5\u05D3\u05D4",
|
|
9092
9141
|
"aria-label": `\u05E1\u05D9\u05E0\u05D5\u05DF \u05DC\u05E4\u05D9 ${props.displayName}`,
|
|
9093
|
-
children: /* @__PURE__ */
|
|
9142
|
+
children: /* @__PURE__ */ jsx20(Filter2, { className: "w-3 h-3" })
|
|
9094
9143
|
}
|
|
9095
9144
|
),
|
|
9096
|
-
/* @__PURE__ */
|
|
9145
|
+
/* @__PURE__ */ jsx20("span", { className: "truncate w-full text-center", children: props.displayName })
|
|
9097
9146
|
] });
|
|
9098
9147
|
};
|
|
9099
9148
|
var PlacementBlock = (props) => {
|
|
@@ -9554,20 +9603,20 @@ var PlacementBlock = (props) => {
|
|
|
9554
9603
|
}, [selectorField, targetColumns, displayValue]);
|
|
9555
9604
|
const previewColumns = useMemo9(() => targetColumns.filter((c) => isUserColumn(c) && c.name !== assignmentField && !["id", "_id", "id_", "statusId"].includes(c.name)), [targetColumns, assignmentField]);
|
|
9556
9605
|
if (!config || !sourceTableId || !targetTableId) {
|
|
9557
|
-
return /* @__PURE__ */
|
|
9606
|
+
return /* @__PURE__ */ jsx20("div", { className: "p-4 text-xs text-slate-500 border border-dashed border-slate-300 rounded-xl", dir: "rtl", children: "\u05E8\u05DB\u05D9\u05D1 \u05D4\u05E9\u05D9\u05D1\u05D5\u05E5 \u05DC\u05D0 \u05D4\u05D5\u05D2\u05D3\u05E8 (\u05D7\u05E1\u05E8\u05D5\u05EA \u05D8\u05D1\u05DC\u05EA \u05DE\u05E7\u05D5\u05E8 / \u05D8\u05D1\u05DC\u05EA \u05D9\u05E2\u05D3)." });
|
|
9558
9607
|
}
|
|
9559
9608
|
const selectClass = "w-full p-2 border border-slate-300 rounded-lg text-xs font-medium text-slate-700 bg-slate-50 outline-none focus:border-brand";
|
|
9560
9609
|
const labelClass = "block text-[11px] font-semibold text-slate-500 mb-1";
|
|
9561
9610
|
return /* @__PURE__ */ jsxs16("div", { className: `w-full flex flex-col gap-4 p-4 bg-slate-50 min-h-[850px] rounded-xl border border-slate-200 ${className}`, dir: "rtl", children: [
|
|
9562
|
-
(loadError || saveError) && /* @__PURE__ */
|
|
9611
|
+
(loadError || saveError) && /* @__PURE__ */ jsx20("div", { className: "p-3 text-xs rounded-lg bg-rose-50 border border-rose-200 text-rose-700", children: loadError || saveError }),
|
|
9563
9612
|
/* @__PURE__ */ jsxs16("div", { className: "flex flex-col lg:flex-row gap-4", children: [
|
|
9564
9613
|
/* @__PURE__ */ jsxs16("div", { className: "w-full lg:w-1/2 bg-teal-50/40 p-4 rounded-xl border border-teal-100 shadow-xs flex flex-col", children: [
|
|
9565
9614
|
/* @__PURE__ */ jsxs16("h4", { className: "font-bold text-teal-900 border-b border-teal-200 pb-2 mb-3 text-base flex items-center gap-2", children: [
|
|
9566
|
-
/* @__PURE__ */
|
|
9615
|
+
/* @__PURE__ */ jsx20("span", { children: "\u{1F4CC}" }),
|
|
9567
9616
|
" \u05E4\u05E8\u05D8\u05D9 \u05D4\u05D9\u05E2\u05D3 \u05DC\u05E9\u05D9\u05D1\u05D5\u05E5"
|
|
9568
9617
|
] }),
|
|
9569
9618
|
activeTarget ? /* @__PURE__ */ jsxs16("div", { className: "grid grid-cols-1 sm:grid-cols-2 gap-x-6 gap-y-3 content-start text-base text-slate-700 flex-1", children: [
|
|
9570
|
-
/* @__PURE__ */
|
|
9619
|
+
/* @__PURE__ */ jsx20("div", { className: "col-span-full font-bold text-slate-900 text-lg mb-1", children: targetLabel(activeTarget) }),
|
|
9571
9620
|
previewColumns.map((col) => ({ col, text: displayValue(col, readColumnValue(activeTarget.data, col.name)) })).filter(({ col, text: text2 }) => {
|
|
9572
9621
|
var _a2;
|
|
9573
9622
|
return text2 && (col.type === "RELATION" || typeof ((_a2 = activeTarget.data) == null ? void 0 : _a2[col.name]) !== "object");
|
|
@@ -9576,23 +9625,23 @@ var PlacementBlock = (props) => {
|
|
|
9576
9625
|
col.label || col.name,
|
|
9577
9626
|
":"
|
|
9578
9627
|
] }),
|
|
9579
|
-
/* @__PURE__ */
|
|
9628
|
+
/* @__PURE__ */ jsx20("span", { className: "break-words", children: text2 })
|
|
9580
9629
|
] }, col.name)),
|
|
9581
9630
|
assignmentField && assignedText && /* @__PURE__ */ jsxs16("div", { className: "flex gap-2 items-start", children: [
|
|
9582
9631
|
/* @__PURE__ */ jsxs16("span", { className: "font-semibold shrink-0", children: [
|
|
9583
9632
|
assignmentLabel,
|
|
9584
9633
|
":"
|
|
9585
9634
|
] }),
|
|
9586
|
-
/* @__PURE__ */
|
|
9635
|
+
/* @__PURE__ */ jsx20("span", { className: "break-words", title: assignedText, children: assignedText })
|
|
9587
9636
|
] }),
|
|
9588
9637
|
/* @__PURE__ */ jsxs16("div", { className: "col-span-full self-end mt-1 pt-1.5 border-t border-teal-200/60 text-teal-800 font-bold text-xs leading-none whitespace-nowrap overflow-hidden text-ellipsis", children: [
|
|
9589
9638
|
"\u05DE\u05E9\u05D5\u05D1\u05E6\u05D9\u05DD \u05DB\u05E8\u05D2\u05E2: ",
|
|
9590
9639
|
assignedIds.length
|
|
9591
9640
|
] })
|
|
9592
|
-
] }) : /* @__PURE__ */
|
|
9641
|
+
] }) : /* @__PURE__ */ jsx20("div", { className: "text-slate-500 text-xs text-center py-6", children: isLoading ? "\u05D8\u05D5\u05E2\u05DF \u05E0\u05EA\u05D5\u05E0\u05D9\u05DD..." : "\u05DC\u05D0 \u05E0\u05D1\u05D7\u05E8\u05D4 \u05E8\u05E9\u05D5\u05DE\u05EA \u05D9\u05E2\u05D3." })
|
|
9593
9642
|
] }),
|
|
9594
|
-
/* @__PURE__ */
|
|
9595
|
-
/* @__PURE__ */
|
|
9643
|
+
/* @__PURE__ */ jsx20("div", { className: "w-full lg:w-1/2 bg-white p-4 rounded-xl border border-slate-200 shadow-xs flex flex-col", children: /* @__PURE__ */ jsxs16("div", { children: [
|
|
9644
|
+
/* @__PURE__ */ jsx20("h4", { className: "font-bold text-slate-800 mb-3 text-sm", children: "\u05E1\u05D9\u05E0\u05D5\u05DF \u05E8\u05E9\u05D5\u05DE\u05D5\u05EA \u05D4\u05D9\u05E2\u05D3" }),
|
|
9596
9645
|
/* @__PURE__ */ jsxs16("div", { className: "flex flex-col sm:flex-row gap-3", children: [
|
|
9597
9646
|
filterColumns.map((col, index) => {
|
|
9598
9647
|
const previousColumns = filterColumns.slice(0, index);
|
|
@@ -9607,7 +9656,7 @@ var PlacementBlock = (props) => {
|
|
|
9607
9656
|
validRowsForThisFilter.map((r) => displayValue(col, readColumnValue(r.data, col.name)))
|
|
9608
9657
|
)).filter(Boolean).sort((a, b) => a.localeCompare(b, "he"));
|
|
9609
9658
|
return /* @__PURE__ */ jsxs16("div", { className: "flex-1 basis-0 min-w-0", children: [
|
|
9610
|
-
/* @__PURE__ */
|
|
9659
|
+
/* @__PURE__ */ jsx20("label", { className: labelClass, children: col.label || columnRefLabel(col.name) }),
|
|
9611
9660
|
/* @__PURE__ */ jsxs16(
|
|
9612
9661
|
"select",
|
|
9613
9662
|
{
|
|
@@ -9624,26 +9673,26 @@ var PlacementBlock = (props) => {
|
|
|
9624
9673
|
});
|
|
9625
9674
|
},
|
|
9626
9675
|
children: [
|
|
9627
|
-
/* @__PURE__ */
|
|
9628
|
-
uniqueValues.map((v) => /* @__PURE__ */
|
|
9676
|
+
/* @__PURE__ */ jsx20("option", { value: "", children: "\u05D4\u05DB\u05DC" }),
|
|
9677
|
+
uniqueValues.map((v) => /* @__PURE__ */ jsx20("option", { value: v, children: v }, v))
|
|
9629
9678
|
]
|
|
9630
9679
|
}
|
|
9631
9680
|
)
|
|
9632
9681
|
] }, col.name);
|
|
9633
9682
|
}),
|
|
9634
9683
|
/* @__PURE__ */ jsxs16("div", { className: "flex-1 basis-0 min-w-0", children: [
|
|
9635
|
-
/* @__PURE__ */
|
|
9684
|
+
/* @__PURE__ */ jsx20("label", { className: labelClass, children: selectorLabel }),
|
|
9636
9685
|
/* @__PURE__ */ jsxs16("select", { className: selectClass, value: selectedTargetId, onChange: (e) => setSelectedTargetId(e.target.value), children: [
|
|
9637
9686
|
/* @__PURE__ */ jsxs16("option", { value: "", children: [
|
|
9638
9687
|
"-- \u05D1\u05D7\u05E8 \u05DE\u05EA\u05D5\u05DA ",
|
|
9639
9688
|
filteredTargetRows.length,
|
|
9640
9689
|
" \u05EA\u05D5\u05E6\u05D0\u05D5\u05EA --"
|
|
9641
9690
|
] }),
|
|
9642
|
-
filteredTargetRows.map((r) => /* @__PURE__ */
|
|
9691
|
+
filteredTargetRows.map((r) => /* @__PURE__ */ jsx20("option", { value: r.id, children: targetLabel(r) }, r.id))
|
|
9643
9692
|
] })
|
|
9644
9693
|
] })
|
|
9645
9694
|
] }),
|
|
9646
|
-
hasRelationButtons && /* @__PURE__ */
|
|
9695
|
+
hasRelationButtons && /* @__PURE__ */ jsx20(
|
|
9647
9696
|
PlacementRelationButtons,
|
|
9648
9697
|
{
|
|
9649
9698
|
className: "mt-4 pb-24",
|
|
@@ -9666,14 +9715,14 @@ var PlacementBlock = (props) => {
|
|
|
9666
9715
|
")"
|
|
9667
9716
|
] }),
|
|
9668
9717
|
/* @__PURE__ */ jsxs16("div", { className: "flex items-center gap-2", children: [
|
|
9669
|
-
/* @__PURE__ */
|
|
9670
|
-
/* @__PURE__ */
|
|
9671
|
-
/* @__PURE__ */
|
|
9718
|
+
/* @__PURE__ */ jsx20("button", { type: "button", onClick: () => shrinkColumns(sourceApi, sourceColDefs), title: "\u05E6\u05DE\u05E6\u05DD \u05E2\u05DE\u05D5\u05D3\u05D5\u05EA \u05DC\u05E4\u05D9 \u05D4\u05EA\u05D5\u05DB\u05DF", className: "px-2 py-0.5 rounded-md text-[11px] font-medium bg-white border border-slate-200 text-slate-600 hover:bg-slate-50 cursor-pointer", children: "\u2192\u2190 \u05E6\u05DE\u05E6\u05DD" }),
|
|
9719
|
+
/* @__PURE__ */ jsx20("button", { type: "button", onClick: () => expandColumns(sourceApi), title: "\u05D4\u05E8\u05D7\u05D1 \u05E2\u05DE\u05D5\u05D3\u05D5\u05EA \u05DC\u05E8\u05D5\u05D7\u05D1 \u05D4\u05D8\u05D1\u05DC\u05D4", className: "px-2 py-0.5 rounded-md text-[11px] font-medium bg-white border border-slate-200 text-slate-600 hover:bg-slate-50 cursor-pointer", children: "\u2190\u2192 \u05D4\u05E8\u05D7\u05D1" }),
|
|
9720
|
+
/* @__PURE__ */ jsx20("span", { className: "text-[11px] font-normal text-slate-500 bg-white px-2 py-0.5 rounded-full shadow-sm border border-slate-200", children: "\u05D2\u05E8\u05D5\u05E8 \u05E9\u05DE\u05D0\u05DC\u05D4 \u05DC\u05E9\u05D9\u05D1\u05D5\u05E5 \u2190" })
|
|
9672
9721
|
] })
|
|
9673
9722
|
] }),
|
|
9674
|
-
/* @__PURE__ */
|
|
9723
|
+
/* @__PURE__ */ jsx20("input", { type: "search", value: sourceSearch, onChange: (e) => setSourceSearch(e.target.value), placeholder: "\u05E1\u05D9\u05E0\u05D5\u05DF...", className: "w-full p-2 border border-slate-300 rounded-lg text-xs bg-white outline-none focus:border-brand" })
|
|
9675
9724
|
] }),
|
|
9676
|
-
/* @__PURE__ */
|
|
9725
|
+
/* @__PURE__ */ jsx20("div", { ref: sourceContainerRef, className: "ag-theme-quartz flex-1 w-full h-full", children: /* @__PURE__ */ jsx20(AgGridReact, { rowData: availableGridData, columnDefs: sourceColDefs, defaultColDef, headerHeight: 56, getRowId, enableRtl: true, rowDragManaged: false, quickFilterText: sourceSearch, onGridReady: (e) => setSourceApi(e.api), loading: isLoading }) })
|
|
9677
9726
|
] }),
|
|
9678
9727
|
/* @__PURE__ */ jsxs16("div", { className: `w-full ${hasRelationButtons ? "lg:flex-1 lg:min-w-0" : "lg:w-1/2"} flex flex-col border border-blue-200 rounded-xl shadow-xs bg-white overflow-hidden ring-1 ring-blue-100`, children: [
|
|
9679
9728
|
/* @__PURE__ */ jsxs16("div", { className: "bg-blue-50/80 p-3 border-b border-blue-100 flex flex-col gap-2", children: [
|
|
@@ -9684,22 +9733,22 @@ var PlacementBlock = (props) => {
|
|
|
9684
9733
|
candidateGridData.length,
|
|
9685
9734
|
")"
|
|
9686
9735
|
] }),
|
|
9687
|
-
/* @__PURE__ */
|
|
9688
|
-
/* @__PURE__ */
|
|
9689
|
-
/* @__PURE__ */
|
|
9736
|
+
/* @__PURE__ */ jsx20("span", { className: "text-[11px] font-normal text-blue-700 bg-white px-2 py-0.5 rounded-full shadow-sm border border-blue-100", children: "\u2192 \u05D2\u05E8\u05D5\u05E8 \u05D9\u05DE\u05D9\u05E0\u05D4 \u05DC\u05D4\u05D7\u05D6\u05E8\u05D4" }),
|
|
9737
|
+
/* @__PURE__ */ jsx20("button", { type: "button", onClick: () => shrinkColumns(assignedApi, candidateColDefs), title: "\u05E6\u05DE\u05E6\u05DD \u05E2\u05DE\u05D5\u05D3\u05D5\u05EA \u05DC\u05E4\u05D9 \u05D4\u05EA\u05D5\u05DB\u05DF", className: "px-2 py-0.5 rounded-md text-[11px] font-medium bg-white border border-blue-100 text-slate-600 hover:bg-blue-50 cursor-pointer", children: "\u2192\u2190 \u05E6\u05DE\u05E6\u05DD" }),
|
|
9738
|
+
/* @__PURE__ */ jsx20("button", { type: "button", onClick: () => expandColumns(assignedApi), title: "\u05D4\u05E8\u05D7\u05D1 \u05E2\u05DE\u05D5\u05D3\u05D5\u05EA \u05DC\u05E8\u05D5\u05D7\u05D1 \u05D4\u05D8\u05D1\u05DC\u05D4", className: "px-2 py-0.5 rounded-md text-[11px] font-medium bg-white border border-blue-100 text-slate-600 hover:bg-blue-50 cursor-pointer", children: "\u2190\u2192 \u05D4\u05E8\u05D7\u05D1" })
|
|
9690
9739
|
] }),
|
|
9691
9740
|
/* @__PURE__ */ jsxs16("div", { className: "flex items-center gap-2", children: [
|
|
9692
|
-
/* @__PURE__ */
|
|
9693
|
-
/* @__PURE__ */
|
|
9694
|
-
/* @__PURE__ */
|
|
9741
|
+
/* @__PURE__ */ jsx20("button", { type: "button", onClick: returnAll, disabled: candidateIds.length === 0, className: "px-3 py-1.5 rounded-lg text-xs font-bold bg-amber-400 hover:bg-amber-500 text-slate-900 disabled:opacity-40 disabled:cursor-not-allowed transition-colors", children: "\u21BA \u05D4\u05D7\u05D6\u05E8 \u05D4\u05DB\u05DC" }),
|
|
9742
|
+
/* @__PURE__ */ jsx20("button", { type: "button", onClick: submitAssignment, disabled: !selectedTargetId || !isDirty || isSaving, className: "px-4 py-1.5 rounded-lg text-xs font-bold bg-blue-600 hover:bg-blue-700 text-white disabled:opacity-40 disabled:cursor-not-allowed transition-colors", children: isSaving ? "\u05E9\u05D5\u05DE\u05E8..." : "\u05E9\u05D1\u05E5" }),
|
|
9743
|
+
/* @__PURE__ */ jsx20("button", { type: "button", onClick: cancelAssignment, disabled: !selectedTargetId || assignedIds.length === 0 || isSaving, className: "px-3 py-1.5 rounded-lg text-xs font-bold bg-white hover:bg-rose-50 text-rose-600 border border-rose-300 disabled:opacity-40 disabled:cursor-not-allowed transition-colors", children: "\u05D1\u05D9\u05D8\u05D5\u05DC \u05E9\u05D9\u05D1\u05D5\u05E5" })
|
|
9695
9744
|
] })
|
|
9696
9745
|
] }),
|
|
9697
|
-
/* @__PURE__ */
|
|
9746
|
+
/* @__PURE__ */ jsx20("input", { type: "search", value: candidateSearch, onChange: (e) => setCandidateSearch(e.target.value), placeholder: "\u05E1\u05D9\u05E0\u05D5\u05DF...", className: "w-full p-2 border border-slate-300 rounded-lg text-xs bg-white outline-none focus:border-brand" })
|
|
9698
9747
|
] }),
|
|
9699
|
-
/* @__PURE__ */
|
|
9748
|
+
/* @__PURE__ */ jsx20("div", { ref: assignedContainerRef, className: "ag-theme-quartz flex-1 w-full h-full", children: /* @__PURE__ */ jsx20(AgGridReact, { rowData: candidateGridData, columnDefs: candidateColDefs, defaultColDef, headerHeight: 56, getRowId, enableRtl: true, rowDragManaged: false, quickFilterText: candidateSearch, onGridReady: (e) => setAssignedApi(e.api), loading: isLoading }) })
|
|
9700
9749
|
] })
|
|
9701
9750
|
] }),
|
|
9702
|
-
filterPopover && popoverColumn && /* @__PURE__ */
|
|
9751
|
+
filterPopover && popoverColumn && /* @__PURE__ */ jsx20(
|
|
9703
9752
|
RelationFilterPopover,
|
|
9704
9753
|
{
|
|
9705
9754
|
isOpen: true,
|
|
@@ -9862,7 +9911,7 @@ function readFileAsBase64(file) {
|
|
|
9862
9911
|
}
|
|
9863
9912
|
|
|
9864
9913
|
// src/components/WhatsAppComponent/CreateTemplateModal.tsx
|
|
9865
|
-
import { Fragment as Fragment4, jsx as
|
|
9914
|
+
import { Fragment as Fragment4, jsx as jsx21, jsxs as jsxs17 } from "react/jsx-runtime";
|
|
9866
9915
|
function CreateTemplateModal({
|
|
9867
9916
|
isOpen,
|
|
9868
9917
|
onClose,
|
|
@@ -10214,7 +10263,7 @@ function CreateTemplateModal({
|
|
|
10214
10263
|
}
|
|
10215
10264
|
};
|
|
10216
10265
|
if (!isOpen) return null;
|
|
10217
|
-
return /* @__PURE__ */
|
|
10266
|
+
return /* @__PURE__ */ jsx21(
|
|
10218
10267
|
"div",
|
|
10219
10268
|
{
|
|
10220
10269
|
className: "fixed inset-0 bg-slate-900/60 backdrop-blur-xs z-50 flex items-center justify-center p-4 overflow-y-auto animate-in fade-in duration-200",
|
|
@@ -10229,41 +10278,41 @@ function CreateTemplateModal({
|
|
|
10229
10278
|
children: [
|
|
10230
10279
|
/* @__PURE__ */ jsxs17("div", { className: "px-6 py-4 border-b border-slate-100 flex items-center justify-between bg-slate-50/70", children: [
|
|
10231
10280
|
/* @__PURE__ */ jsxs17("div", { className: "flex items-center gap-2.5", children: [
|
|
10232
|
-
/* @__PURE__ */
|
|
10281
|
+
/* @__PURE__ */ jsx21("div", { className: "w-8 h-8 rounded-lg bg-emerald-100 text-emerald-700 flex items-center justify-center shrink-0", children: /* @__PURE__ */ jsx21(Plus, { className: "w-4 h-4" }) }),
|
|
10233
10282
|
/* @__PURE__ */ jsxs17("div", { children: [
|
|
10234
|
-
/* @__PURE__ */
|
|
10235
|
-
/* @__PURE__ */
|
|
10283
|
+
/* @__PURE__ */ jsx21("h3", { id: "modal-title", className: "text-sm font-bold text-slate-900", children: "\u05D9\u05E6\u05D9\u05E8\u05EA \u05EA\u05D1\u05E0\u05D9\u05EA \u05D7\u05D3\u05E9\u05D4" }),
|
|
10284
|
+
/* @__PURE__ */ jsx21("p", { className: "text-xs text-slate-500", children: "\u05D4\u05D2\u05D3\u05E8\u05EA \u05EA\u05D5\u05DB\u05DF \u05D4\u05D5\u05D3\u05E2\u05D4 \u05D5\u05DE\u05E9\u05EA\u05E0\u05D9\u05DD \u05DC\u05D0\u05D9\u05E9\u05D5\u05E8 Meta Cloud API" })
|
|
10236
10285
|
] })
|
|
10237
10286
|
] }),
|
|
10238
|
-
/* @__PURE__ */
|
|
10287
|
+
/* @__PURE__ */ jsx21(
|
|
10239
10288
|
"button",
|
|
10240
10289
|
{
|
|
10241
10290
|
type: "button",
|
|
10242
10291
|
onClick: onClose,
|
|
10243
10292
|
className: "p-1.5 text-slate-400 hover:text-slate-700 hover:bg-slate-200/60 rounded-lg transition-colors cursor-pointer",
|
|
10244
10293
|
"aria-label": "\u05E1\u05D2\u05D5\u05E8",
|
|
10245
|
-
children: /* @__PURE__ */
|
|
10294
|
+
children: /* @__PURE__ */ jsx21(X9, { className: "w-5 h-5" })
|
|
10246
10295
|
}
|
|
10247
10296
|
)
|
|
10248
10297
|
] }),
|
|
10249
10298
|
/* @__PURE__ */ jsxs17("form", { onSubmit: handleSubmit, className: "flex flex-col overflow-hidden flex-1", children: [
|
|
10250
10299
|
/* @__PURE__ */ jsxs17("div", { className: "p-6 overflow-y-auto space-y-5 flex-1", children: [
|
|
10251
10300
|
submitError && /* @__PURE__ */ jsxs17("div", { className: "p-3 bg-rose-50 border border-rose-200 rounded-xl text-xs text-rose-800 flex items-center gap-2", children: [
|
|
10252
|
-
/* @__PURE__ */
|
|
10253
|
-
/* @__PURE__ */
|
|
10301
|
+
/* @__PURE__ */ jsx21(AlertCircle2, { className: "w-4 h-4 text-rose-600 shrink-0" }),
|
|
10302
|
+
/* @__PURE__ */ jsx21("span", { children: submitError })
|
|
10254
10303
|
] }),
|
|
10255
10304
|
/* @__PURE__ */ jsxs17("div", { className: "space-y-1.5", children: [
|
|
10256
10305
|
/* @__PURE__ */ jsxs17("div", { className: "flex items-center justify-between", children: [
|
|
10257
10306
|
/* @__PURE__ */ jsxs17("label", { className: "block text-xs font-bold text-slate-800", children: [
|
|
10258
10307
|
"\u05E9\u05DD \u05EA\u05D1\u05E0\u05D9\u05EA \u05D7\u05D3\u05E9\u05D4 ",
|
|
10259
|
-
/* @__PURE__ */
|
|
10308
|
+
/* @__PURE__ */ jsx21("span", { className: "text-rose-500", children: "*" })
|
|
10260
10309
|
] }),
|
|
10261
10310
|
templateName && isNamePatternValid && !isNameDuplicate && /* @__PURE__ */ jsxs17("span", { className: "text-[11px] text-emerald-600 font-semibold flex items-center gap-1", children: [
|
|
10262
|
-
/* @__PURE__ */
|
|
10311
|
+
/* @__PURE__ */ jsx21(CheckCircle22, { className: "w-3.5 h-3.5" }),
|
|
10263
10312
|
" \u05E9\u05DD \u05EA\u05E7\u05D9\u05DF"
|
|
10264
10313
|
] })
|
|
10265
10314
|
] }),
|
|
10266
|
-
/* @__PURE__ */
|
|
10315
|
+
/* @__PURE__ */ jsx21(
|
|
10267
10316
|
"input",
|
|
10268
10317
|
{
|
|
10269
10318
|
type: "text",
|
|
@@ -10275,9 +10324,9 @@ function CreateTemplateModal({
|
|
|
10275
10324
|
required: true
|
|
10276
10325
|
}
|
|
10277
10326
|
),
|
|
10278
|
-
/* @__PURE__ */
|
|
10327
|
+
/* @__PURE__ */ jsx21("p", { className: "text-[10px] text-slate-400 mt-1", children: "\u05D0\u05D5\u05EA\u05D9\u05D5\u05EA \u05E7\u05D8\u05E0\u05D5\u05EA \u05D1\u05D0\u05E0\u05D2\u05DC\u05D9\u05EA, \u05DE\u05E1\u05E4\u05E8\u05D9\u05DD \u05D5\u05E7\u05D5\u05D5\u05D9\u05DD \u05EA\u05D7\u05EA\u05D5\u05E0\u05D9\u05DD \u05D1\u05DC\u05D1\u05D3." }),
|
|
10279
10328
|
!isNameEmpty && isNameDuplicate && /* @__PURE__ */ jsxs17("p", { className: "text-[11px] text-rose-600 font-semibold flex items-center gap-1 mt-1", children: [
|
|
10280
|
-
/* @__PURE__ */
|
|
10329
|
+
/* @__PURE__ */ jsx21(AlertCircle2, { className: "w-3.5 h-3.5 shrink-0" }),
|
|
10281
10330
|
"\u05E9\u05DD \u05D4\u05EA\u05D1\u05E0\u05D9\u05EA \u05DB\u05D1\u05E8 \u05E7\u05D9\u05D9\u05DD \u05D1\u05D7\u05E9\u05D1\u05D5\u05DF \u05E2\u05D1\u05D5\u05E8 \u05E9\u05E4\u05D4 \u05D6\u05D5 (",
|
|
10282
10331
|
language,
|
|
10283
10332
|
"). \u05D0\u05E0\u05D0 \u05D1\u05D7\u05E8 \u05E9\u05DD \u05D9\u05D9\u05D7\u05D5\u05D3\u05D9 \u05D0\u05D5 \u05E9\u05E4\u05D4 \u05D0\u05D7\u05E8\u05EA."
|
|
@@ -10285,26 +10334,26 @@ function CreateTemplateModal({
|
|
|
10285
10334
|
] }),
|
|
10286
10335
|
/* @__PURE__ */ jsxs17("div", { className: "grid grid-cols-2 gap-4", children: [
|
|
10287
10336
|
/* @__PURE__ */ jsxs17("div", { className: "space-y-1.5", children: [
|
|
10288
|
-
/* @__PURE__ */
|
|
10289
|
-
/* @__PURE__ */
|
|
10337
|
+
/* @__PURE__ */ jsx21("label", { className: "block text-xs font-semibold text-slate-700", children: "\u05E9\u05E4\u05D4" }),
|
|
10338
|
+
/* @__PURE__ */ jsx21(
|
|
10290
10339
|
"select",
|
|
10291
10340
|
{
|
|
10292
10341
|
value: language,
|
|
10293
10342
|
onChange: (e) => setLanguage(e.target.value),
|
|
10294
10343
|
className: "w-full px-3 py-2 text-xs bg-slate-50 border border-slate-200 rounded-xl text-slate-800 outline-hidden",
|
|
10295
|
-
children: LANGUAGE_OPTIONS.map((opt) => /* @__PURE__ */
|
|
10344
|
+
children: LANGUAGE_OPTIONS.map((opt) => /* @__PURE__ */ jsx21("option", { value: opt.value, children: opt.label }, opt.value))
|
|
10296
10345
|
}
|
|
10297
10346
|
)
|
|
10298
10347
|
] }),
|
|
10299
10348
|
/* @__PURE__ */ jsxs17("div", { className: "space-y-1.5", children: [
|
|
10300
|
-
/* @__PURE__ */
|
|
10301
|
-
/* @__PURE__ */
|
|
10349
|
+
/* @__PURE__ */ jsx21("label", { className: "block text-xs font-semibold text-slate-700", children: "\u05E7\u05D8\u05D2\u05D5\u05E8\u05D9\u05D4" }),
|
|
10350
|
+
/* @__PURE__ */ jsx21(
|
|
10302
10351
|
"select",
|
|
10303
10352
|
{
|
|
10304
10353
|
value: category,
|
|
10305
10354
|
onChange: (e) => setCategory(e.target.value),
|
|
10306
10355
|
className: "w-full px-3 py-2 text-xs bg-slate-50 border border-slate-200 rounded-xl text-slate-800 outline-hidden",
|
|
10307
|
-
children: CATEGORY_OPTIONS.map((opt) => /* @__PURE__ */
|
|
10356
|
+
children: CATEGORY_OPTIONS.map((opt) => /* @__PURE__ */ jsx21("option", { value: opt.value, children: opt.label }, opt.value))
|
|
10308
10357
|
}
|
|
10309
10358
|
)
|
|
10310
10359
|
] })
|
|
@@ -10312,10 +10361,10 @@ function CreateTemplateModal({
|
|
|
10312
10361
|
/* @__PURE__ */ jsxs17("div", { className: "space-y-2", children: [
|
|
10313
10362
|
/* @__PURE__ */ jsxs17("label", { className: "block text-xs font-bold text-slate-800", children: [
|
|
10314
10363
|
"\u05EA\u05D5\u05DB\u05DF \u05D2\u05D5\u05E3 \u05D4\u05D4\u05D5\u05D3\u05E2\u05D4 ",
|
|
10315
|
-
/* @__PURE__ */
|
|
10364
|
+
/* @__PURE__ */ jsx21("span", { className: "text-rose-500", children: "*" })
|
|
10316
10365
|
] }),
|
|
10317
10366
|
/* @__PURE__ */ jsxs17("div", { className: "border border-slate-200 focus-within:border-emerald-500 focus-within:ring-1 focus-within:ring-emerald-500 rounded-xl overflow-visible bg-white transition-all shadow-xs relative", children: [
|
|
10318
|
-
/* @__PURE__ */
|
|
10367
|
+
/* @__PURE__ */ jsx21(
|
|
10319
10368
|
"textarea",
|
|
10320
10369
|
{
|
|
10321
10370
|
ref: textareaRef,
|
|
@@ -10337,7 +10386,7 @@ function CreateTemplateModal({
|
|
|
10337
10386
|
dir: language === "en_US" ? "ltr" : "rtl",
|
|
10338
10387
|
children: [
|
|
10339
10388
|
/* @__PURE__ */ jsxs17("div", { className: "flex items-center gap-1", children: [
|
|
10340
|
-
/* @__PURE__ */
|
|
10389
|
+
/* @__PURE__ */ jsx21(
|
|
10341
10390
|
"button",
|
|
10342
10391
|
{
|
|
10343
10392
|
type: "button",
|
|
@@ -10345,10 +10394,10 @@ function CreateTemplateModal({
|
|
|
10345
10394
|
onClick: () => handleApplyFormatting("*"),
|
|
10346
10395
|
title: "\u05DE\u05D5\u05D3\u05D2\u05E9 (Bold) *\u05D8\u05E7\u05E1\u05D8*",
|
|
10347
10396
|
className: "w-7 h-7 rounded-lg text-slate-600 hover:text-slate-900 hover:bg-slate-200/70 active:bg-slate-300/80 flex items-center justify-center font-bold text-xs transition-colors cursor-pointer",
|
|
10348
|
-
children: /* @__PURE__ */
|
|
10397
|
+
children: /* @__PURE__ */ jsx21(Bold, { className: "w-3.5 h-3.5" })
|
|
10349
10398
|
}
|
|
10350
10399
|
),
|
|
10351
|
-
/* @__PURE__ */
|
|
10400
|
+
/* @__PURE__ */ jsx21(
|
|
10352
10401
|
"button",
|
|
10353
10402
|
{
|
|
10354
10403
|
type: "button",
|
|
@@ -10356,10 +10405,10 @@ function CreateTemplateModal({
|
|
|
10356
10405
|
onClick: () => handleApplyFormatting("_"),
|
|
10357
10406
|
title: "\u05E0\u05D8\u05D5\u05D9 (Italic) _\u05D8\u05E7\u05E1\u05D8_",
|
|
10358
10407
|
className: "w-7 h-7 rounded-lg text-slate-600 hover:text-slate-900 hover:bg-slate-200/70 active:bg-slate-300/80 flex items-center justify-center italic text-xs transition-colors cursor-pointer",
|
|
10359
|
-
children: /* @__PURE__ */
|
|
10408
|
+
children: /* @__PURE__ */ jsx21(Italic, { className: "w-3.5 h-3.5" })
|
|
10360
10409
|
}
|
|
10361
10410
|
),
|
|
10362
|
-
/* @__PURE__ */
|
|
10411
|
+
/* @__PURE__ */ jsx21(
|
|
10363
10412
|
"button",
|
|
10364
10413
|
{
|
|
10365
10414
|
type: "button",
|
|
@@ -10367,12 +10416,12 @@ function CreateTemplateModal({
|
|
|
10367
10416
|
onClick: () => handleApplyFormatting("~"),
|
|
10368
10417
|
title: "\u05E7\u05D5 \u05D7\u05D5\u05E6\u05D4 (Strikethrough) ~\u05D8\u05E7\u05E1\u05D8~",
|
|
10369
10418
|
className: "w-7 h-7 rounded-lg text-slate-600 hover:text-slate-900 hover:bg-slate-200/70 active:bg-slate-300/80 flex items-center justify-center text-xs transition-colors cursor-pointer",
|
|
10370
|
-
children: /* @__PURE__ */
|
|
10419
|
+
children: /* @__PURE__ */ jsx21(Strikethrough, { className: "w-3.5 h-3.5" })
|
|
10371
10420
|
}
|
|
10372
10421
|
),
|
|
10373
|
-
/* @__PURE__ */
|
|
10422
|
+
/* @__PURE__ */ jsx21("div", { className: "h-4 w-px bg-slate-200 mx-1" }),
|
|
10374
10423
|
/* @__PURE__ */ jsxs17("div", { className: "relative inline-block", ref: emojiPickerRef, children: [
|
|
10375
|
-
/* @__PURE__ */
|
|
10424
|
+
/* @__PURE__ */ jsx21(
|
|
10376
10425
|
"button",
|
|
10377
10426
|
{
|
|
10378
10427
|
type: "button",
|
|
@@ -10380,16 +10429,16 @@ function CreateTemplateModal({
|
|
|
10380
10429
|
onClick: () => setIsEmojiPickerOpen(!isEmojiPickerOpen),
|
|
10381
10430
|
title: "\u05D4\u05D5\u05E1\u05E3 \u05D0\u05D9\u05DE\u05D5\u05D2'\u05D9 (Emoji)",
|
|
10382
10431
|
className: `w-7 h-7 rounded-lg flex items-center justify-center transition-colors cursor-pointer ${isEmojiPickerOpen ? "bg-emerald-100 text-emerald-700" : "text-slate-600 hover:text-slate-900 hover:bg-slate-200/70 active:bg-slate-300/80"}`,
|
|
10383
|
-
children: /* @__PURE__ */
|
|
10432
|
+
children: /* @__PURE__ */ jsx21(Smile, { className: "w-4 h-4" })
|
|
10384
10433
|
}
|
|
10385
10434
|
),
|
|
10386
|
-
isEmojiPickerOpen && /* @__PURE__ */
|
|
10435
|
+
isEmojiPickerOpen && /* @__PURE__ */ jsx21(
|
|
10387
10436
|
"div",
|
|
10388
10437
|
{
|
|
10389
10438
|
className: `absolute bottom-full mb-2 ${language === "en_US" ? "left-0" : "right-0"} z-50 shadow-2xl rounded-2xl overflow-hidden border border-slate-200 animate-in fade-in zoom-in-95 duration-100`,
|
|
10390
10439
|
dir: "ltr",
|
|
10391
10440
|
onMouseDown: (e) => e.stopPropagation(),
|
|
10392
|
-
children: /* @__PURE__ */
|
|
10441
|
+
children: /* @__PURE__ */ jsx21(
|
|
10393
10442
|
EmojiPicker,
|
|
10394
10443
|
{
|
|
10395
10444
|
onEmojiClick: (emojiData) => {
|
|
@@ -10406,7 +10455,7 @@ function CreateTemplateModal({
|
|
|
10406
10455
|
}
|
|
10407
10456
|
)
|
|
10408
10457
|
] }),
|
|
10409
|
-
/* @__PURE__ */
|
|
10458
|
+
/* @__PURE__ */ jsx21("div", { className: "h-4 w-px bg-slate-200 mx-1" }),
|
|
10410
10459
|
/* @__PURE__ */ jsxs17(
|
|
10411
10460
|
"button",
|
|
10412
10461
|
{
|
|
@@ -10417,8 +10466,8 @@ function CreateTemplateModal({
|
|
|
10417
10466
|
"aria-label": language === "en_US" ? "Add variable" : "\u05DE\u05E9\u05EA\u05E0\u05D4",
|
|
10418
10467
|
className: "h-7 px-2 rounded-lg text-slate-600 hover:text-slate-900 hover:bg-slate-200/70 active:bg-slate-300/80 flex items-center gap-1 text-xs font-medium transition-colors cursor-pointer",
|
|
10419
10468
|
children: [
|
|
10420
|
-
/* @__PURE__ */
|
|
10421
|
-
/* @__PURE__ */
|
|
10469
|
+
/* @__PURE__ */ jsx21(Plus, { className: "w-3.5 h-3.5" }),
|
|
10470
|
+
/* @__PURE__ */ jsx21("span", { children: language === "en_US" ? "Add variable" : "\u05DE\u05E9\u05EA\u05E0\u05D4" })
|
|
10422
10471
|
]
|
|
10423
10472
|
}
|
|
10424
10473
|
)
|
|
@@ -10430,15 +10479,15 @@ function CreateTemplateModal({
|
|
|
10430
10479
|
dir: "ltr",
|
|
10431
10480
|
title: "\u05DE\u05D2\u05D1\u05DC\u05EA \u05EA\u05D5\u05D5\u05D9\u05DD (1024 \u05EA\u05D5\u05D5\u05D9\u05DD \u05DC\u05DB\u05DC \u05D4\u05D9\u05D5\u05EA\u05E8)",
|
|
10432
10481
|
children: [
|
|
10433
|
-
/* @__PURE__ */
|
|
10482
|
+
/* @__PURE__ */ jsx21(
|
|
10434
10483
|
"span",
|
|
10435
10484
|
{
|
|
10436
10485
|
className: `font-semibold transition-colors ${bodyText.length >= 1024 ? "text-rose-600" : bodyText.length >= 950 ? "text-amber-600" : "text-slate-500"}`,
|
|
10437
10486
|
children: bodyText.length
|
|
10438
10487
|
}
|
|
10439
10488
|
),
|
|
10440
|
-
/* @__PURE__ */
|
|
10441
|
-
/* @__PURE__ */
|
|
10489
|
+
/* @__PURE__ */ jsx21("span", { className: "text-slate-300", children: "/" }),
|
|
10490
|
+
/* @__PURE__ */ jsx21("span", { className: "text-slate-400", children: "1024" })
|
|
10442
10491
|
]
|
|
10443
10492
|
}
|
|
10444
10493
|
)
|
|
@@ -10446,7 +10495,7 @@ function CreateTemplateModal({
|
|
|
10446
10495
|
}
|
|
10447
10496
|
)
|
|
10448
10497
|
] }),
|
|
10449
|
-
/* @__PURE__ */
|
|
10498
|
+
/* @__PURE__ */ jsx21("div", { className: "flex flex-wrap items-center justify-between text-[11px] text-slate-400 px-1 gap-2", children: /* @__PURE__ */ jsxs17("div", { className: "flex items-center gap-3", children: [
|
|
10450
10499
|
/* @__PURE__ */ jsxs17("span", { children: [
|
|
10451
10500
|
ratioInfo.staticWordsCount,
|
|
10452
10501
|
" \u05DE\u05D9\u05DC\u05D9\u05DD"
|
|
@@ -10458,18 +10507,18 @@ function CreateTemplateModal({
|
|
|
10458
10507
|
] }) }),
|
|
10459
10508
|
uniqueVariables.length > 0 && /* @__PURE__ */ jsxs17("div", { className: "p-4 bg-slate-50 border border-slate-200 rounded-xl space-y-3", children: [
|
|
10460
10509
|
/* @__PURE__ */ jsxs17("div", { className: "flex items-center gap-1.5 text-xs font-bold text-slate-800", children: [
|
|
10461
|
-
/* @__PURE__ */
|
|
10462
|
-
/* @__PURE__ */
|
|
10510
|
+
/* @__PURE__ */ jsx21(Info2, { className: "w-4 h-4 text-emerald-600" }),
|
|
10511
|
+
/* @__PURE__ */ jsx21("span", { children: "\u05E2\u05E8\u05DB\u05D9\u05DD \u05DC\u05D3\u05D5\u05D2\u05DE\u05D4 \u05DC\u05DE\u05E9\u05EA\u05E0\u05D9\u05DD (\u05D7\u05D5\u05D1\u05D4 \u05DC\u05D0\u05D9\u05E9\u05D5\u05E8 Meta)" })
|
|
10463
10512
|
] }),
|
|
10464
|
-
/* @__PURE__ */
|
|
10465
|
-
/* @__PURE__ */
|
|
10513
|
+
/* @__PURE__ */ jsx21("p", { className: "text-[11px] text-slate-500 leading-relaxed", children: "Meta \u05D3\u05D5\u05E8\u05E9\u05EA \u05D3\u05D5\u05D2\u05DE\u05D4 \u05E2\u05D1\u05D5\u05E8 \u05DB\u05DC \u05DE\u05E9\u05EA\u05E0\u05D4 \u05D9\u05D9\u05D7\u05D5\u05D3\u05D9 \u05DB\u05D3\u05D9 \u05DC\u05D5\u05D5\u05D3\u05D0 \u05EA\u05E7\u05D9\u05E0\u05D5\u05EA \u05EA\u05D5\u05DB\u05DF." }),
|
|
10514
|
+
/* @__PURE__ */ jsx21("div", { className: "grid grid-cols-1 sm:grid-cols-2 gap-3 pt-1", children: uniqueVariables.map((idx) => /* @__PURE__ */ jsxs17("div", { className: "space-y-1", children: [
|
|
10466
10515
|
/* @__PURE__ */ jsxs17("label", { className: "block text-[11px] font-semibold text-slate-700 font-mono", children: [
|
|
10467
10516
|
"\u05D3\u05D5\u05D2\u05DE\u05D4 \u05E2\u05D1\u05D5\u05E8 ",
|
|
10468
10517
|
`{{${idx}}}`,
|
|
10469
10518
|
" ",
|
|
10470
|
-
/* @__PURE__ */
|
|
10519
|
+
/* @__PURE__ */ jsx21("span", { className: "text-rose-500", children: "*" })
|
|
10471
10520
|
] }),
|
|
10472
|
-
/* @__PURE__ */
|
|
10521
|
+
/* @__PURE__ */ jsx21(
|
|
10473
10522
|
"input",
|
|
10474
10523
|
{
|
|
10475
10524
|
type: "text",
|
|
@@ -10486,19 +10535,19 @@ function CreateTemplateModal({
|
|
|
10486
10535
|
] }),
|
|
10487
10536
|
bodyText.trim().length > 0 && validationResult.errors.length > 0 && /* @__PURE__ */ jsxs17("div", { className: "p-3.5 bg-amber-50 border border-amber-200 rounded-xl space-y-1.5 text-xs text-amber-900", children: [
|
|
10488
10537
|
/* @__PURE__ */ jsxs17("div", { className: "flex items-center gap-1.5 font-bold", children: [
|
|
10489
|
-
/* @__PURE__ */
|
|
10490
|
-
/* @__PURE__ */
|
|
10538
|
+
/* @__PURE__ */ jsx21(AlertCircle2, { className: "w-4 h-4 text-amber-600 shrink-0" }),
|
|
10539
|
+
/* @__PURE__ */ jsx21("span", { children: "\u05D3\u05E8\u05D9\u05E9\u05D5\u05EA \u05EA\u05E7\u05D9\u05E0\u05D5\u05EA Meta \u05DC\u05D7\u05E1\u05D9\u05DE\u05EA \u05E9\u05D2\u05D9\u05D0\u05D5\u05EA:" })
|
|
10491
10540
|
] }),
|
|
10492
|
-
/* @__PURE__ */
|
|
10541
|
+
/* @__PURE__ */ jsx21("ul", { className: "list-disc list-inside space-y-1 text-[11px] pr-2 leading-relaxed", children: validationResult.errors.map((err, i) => /* @__PURE__ */ jsx21("li", { children: err }, i)) })
|
|
10493
10542
|
] })
|
|
10494
10543
|
] }),
|
|
10495
10544
|
/* @__PURE__ */ jsxs17("div", { className: "p-4 bg-slate-50 border border-slate-200 rounded-xl space-y-3", children: [
|
|
10496
10545
|
/* @__PURE__ */ jsxs17("div", { className: "flex items-center justify-between", children: [
|
|
10497
10546
|
/* @__PURE__ */ jsxs17("div", { className: "flex items-center gap-2", children: [
|
|
10498
|
-
/* @__PURE__ */
|
|
10499
|
-
/* @__PURE__ */
|
|
10547
|
+
/* @__PURE__ */ jsx21(Paperclip, { className: "w-4 h-4 text-slate-600" }),
|
|
10548
|
+
/* @__PURE__ */ jsx21("label", { htmlFor: "modalHeaderFileCheckbox", className: "text-xs font-bold text-slate-800 cursor-pointer", children: "\u05E7\u05D5\u05D1\u05E5 \u05DB\u05D5\u05EA\u05E8\u05EA \u05DE\u05E6\u05D5\u05E8\u05E3 (\u05D0\u05D5\u05E4\u05E6\u05D9\u05D5\u05E0\u05DC\u05D9)" })
|
|
10500
10549
|
] }),
|
|
10501
|
-
/* @__PURE__ */
|
|
10550
|
+
/* @__PURE__ */ jsx21(
|
|
10502
10551
|
"input",
|
|
10503
10552
|
{
|
|
10504
10553
|
type: "checkbox",
|
|
@@ -10516,10 +10565,10 @@ function CreateTemplateModal({
|
|
|
10516
10565
|
] }),
|
|
10517
10566
|
hasFileHeader && /* @__PURE__ */ jsxs17("div", { className: "space-y-3 pt-1", children: [
|
|
10518
10567
|
fileError && /* @__PURE__ */ jsxs17("div", { className: "p-3 bg-rose-50 border border-rose-200 rounded-xl flex items-center gap-2 text-xs text-rose-700 font-semibold animate-in fade-in duration-150", children: [
|
|
10519
|
-
/* @__PURE__ */
|
|
10520
|
-
/* @__PURE__ */
|
|
10568
|
+
/* @__PURE__ */ jsx21(AlertCircle2, { className: "w-4 h-4 text-rose-600 shrink-0" }),
|
|
10569
|
+
/* @__PURE__ */ jsx21("span", { children: fileError })
|
|
10521
10570
|
] }),
|
|
10522
|
-
/* @__PURE__ */
|
|
10571
|
+
/* @__PURE__ */ jsx21(
|
|
10523
10572
|
"input",
|
|
10524
10573
|
{
|
|
10525
10574
|
ref: fileInputRef,
|
|
@@ -10539,33 +10588,33 @@ function CreateTemplateModal({
|
|
|
10539
10588
|
},
|
|
10540
10589
|
className: "w-full p-4 border-2 border-dashed border-slate-300 hover:border-emerald-500 rounded-xl flex flex-col items-center justify-center gap-2 bg-white hover:bg-emerald-50/30 transition-all cursor-pointer",
|
|
10541
10590
|
children: [
|
|
10542
|
-
/* @__PURE__ */
|
|
10591
|
+
/* @__PURE__ */ jsx21("div", { className: "w-9 h-9 rounded-full bg-slate-100 text-slate-500 flex items-center justify-center", children: /* @__PURE__ */ jsx21(Upload2, { className: "w-4 h-4" }) }),
|
|
10543
10592
|
/* @__PURE__ */ jsxs17("div", { className: "text-center", children: [
|
|
10544
|
-
/* @__PURE__ */
|
|
10545
|
-
/* @__PURE__ */
|
|
10593
|
+
/* @__PURE__ */ jsx21("span", { className: "text-xs font-bold text-emerald-700 block", children: "\u05DC\u05D7\u05E5 \u05DC\u05D1\u05D7\u05D9\u05E8\u05EA \u05E7\u05D5\u05D1\u05E5" }),
|
|
10594
|
+
/* @__PURE__ */ jsx21("span", { className: "text-[10px] text-slate-400", children: "PDF, JPG, PNG, MP4 \u05E2\u05D3 5MB" })
|
|
10546
10595
|
] })
|
|
10547
10596
|
]
|
|
10548
10597
|
}
|
|
10549
10598
|
),
|
|
10550
10599
|
selectedFile && /* @__PURE__ */ jsxs17("div", { className: "p-3 bg-white border border-emerald-200 rounded-xl flex items-center justify-between gap-3 shadow-2xs", children: [
|
|
10551
10600
|
/* @__PURE__ */ jsxs17("div", { className: "flex items-center gap-2.5 overflow-hidden", children: [
|
|
10552
|
-
/* @__PURE__ */
|
|
10601
|
+
/* @__PURE__ */ jsx21("div", { className: "w-8 h-8 rounded-lg bg-emerald-50 text-emerald-600 flex items-center justify-center shrink-0", children: selectedFile.type.includes("pdf") || selectedFile.name.toLowerCase().endsWith(".pdf") ? /* @__PURE__ */ jsx21(FileText2, { className: "w-4 h-4" }) : selectedFile.type.includes("video") || selectedFile.name.toLowerCase().match(/\.(mp4|mov|avi|webm)$/) ? /* @__PURE__ */ jsx21(Video, { className: "w-4 h-4" }) : /* @__PURE__ */ jsx21(ImageIcon, { className: "w-4 h-4" }) }),
|
|
10553
10602
|
/* @__PURE__ */ jsxs17("div", { className: "overflow-hidden", children: [
|
|
10554
|
-
/* @__PURE__ */
|
|
10555
|
-
/* @__PURE__ */
|
|
10603
|
+
/* @__PURE__ */ jsx21("p", { className: "text-xs font-bold text-slate-800 truncate", title: selectedFile.name, children: /* @__PURE__ */ jsx21("span", { dir: "ltr", className: "inline-block truncate max-w-full", children: selectedFile.name }) }),
|
|
10604
|
+
/* @__PURE__ */ jsx21("p", { className: "text-[10px] text-slate-400", children: /* @__PURE__ */ jsxs17("span", { dir: "ltr", className: "inline-block", children: [
|
|
10556
10605
|
formatFileSize(selectedFile.size),
|
|
10557
10606
|
selectedFile.type ? ` \u2022 ${selectedFile.type}` : ""
|
|
10558
10607
|
] }) })
|
|
10559
10608
|
] })
|
|
10560
10609
|
] }),
|
|
10561
|
-
/* @__PURE__ */
|
|
10610
|
+
/* @__PURE__ */ jsx21(
|
|
10562
10611
|
"button",
|
|
10563
10612
|
{
|
|
10564
10613
|
type: "button",
|
|
10565
10614
|
onClick: handleRemoveFile,
|
|
10566
10615
|
className: "p-1 text-slate-400 hover:text-rose-600 rounded-md transition-colors cursor-pointer",
|
|
10567
10616
|
title: "\u05D4\u05E1\u05E8 \u05E7\u05D5\u05D1\u05E5",
|
|
10568
|
-
children: /* @__PURE__ */
|
|
10617
|
+
children: /* @__PURE__ */ jsx21(Trash22, { className: "w-4 h-4" })
|
|
10569
10618
|
}
|
|
10570
10619
|
)
|
|
10571
10620
|
] })
|
|
@@ -10574,10 +10623,10 @@ function CreateTemplateModal({
|
|
|
10574
10623
|
/* @__PURE__ */ jsxs17("div", { className: "p-4 bg-slate-50 border border-slate-200 rounded-xl space-y-3.5", children: [
|
|
10575
10624
|
/* @__PURE__ */ jsxs17("div", { className: "flex items-center justify-between", children: [
|
|
10576
10625
|
/* @__PURE__ */ jsxs17("div", { className: "flex items-center gap-2", children: [
|
|
10577
|
-
/* @__PURE__ */
|
|
10626
|
+
/* @__PURE__ */ jsx21(MousePointerClick, { className: "w-4 h-4 text-slate-600" }),
|
|
10578
10627
|
/* @__PURE__ */ jsxs17("div", { children: [
|
|
10579
|
-
/* @__PURE__ */
|
|
10580
|
-
/* @__PURE__ */
|
|
10628
|
+
/* @__PURE__ */ jsx21("span", { className: "text-xs font-bold text-slate-800 block", children: "\u05DB\u05E4\u05EA\u05D5\u05E8\u05D9\u05DD \u05D0\u05D9\u05E0\u05D8\u05E8\u05D0\u05E7\u05D8\u05D9\u05D1\u05D9\u05D9\u05DD (\u05D0\u05D5\u05E4\u05E6\u05D9\u05D5\u05E0\u05DC\u05D9)" }),
|
|
10629
|
+
/* @__PURE__ */ jsx21("span", { className: "text-[10px] text-slate-400 block", children: "\u05D4\u05D5\u05E1\u05E4\u05EA \u05DB\u05E4\u05EA\u05D5\u05E8\u05D9 \u05E7\u05E8\u05D9\u05D0\u05D4 \u05DC\u05E4\u05E2\u05D5\u05DC\u05D4 (CTA) \u05D5\u05EA\u05D2\u05D5\u05D1\u05D4 \u05DE\u05D4\u05D9\u05E8\u05D4 (\u05E2\u05D3 10 \u05DB\u05E4\u05EA\u05D5\u05E8\u05D9\u05DD)" })
|
|
10581
10630
|
] })
|
|
10582
10631
|
] }),
|
|
10583
10632
|
/* @__PURE__ */ jsxs17("div", { className: "flex items-center gap-2", children: [
|
|
@@ -10601,9 +10650,9 @@ function CreateTemplateModal({
|
|
|
10601
10650
|
className: `inline-flex items-center gap-1.5 px-3 py-1.5 text-xs font-semibold rounded-xl border transition-all ${buttons.length >= 10 ? "bg-slate-100 text-slate-400 border-slate-200 cursor-not-allowed opacity-60" : "bg-white text-emerald-700 border-emerald-200 hover:bg-emerald-50/80 active:scale-[0.98] shadow-2xs cursor-pointer"}`,
|
|
10602
10651
|
title: buttons.length >= 10 ? "\u05D4\u05D2\u05E2\u05EA \u05DC\u05DE\u05D2\u05D1\u05DC\u05D4 \u05D4\u05DE\u05E8\u05D1\u05D9\u05EA \u05E9\u05DC 10 \u05DB\u05E4\u05EA\u05D5\u05E8\u05D9\u05DD" : "\u05D4\u05D5\u05E1\u05E3 \u05DB\u05E4\u05EA\u05D5\u05E8 \u05D7\u05D3\u05E9",
|
|
10603
10652
|
children: [
|
|
10604
|
-
/* @__PURE__ */
|
|
10605
|
-
/* @__PURE__ */
|
|
10606
|
-
/* @__PURE__ */
|
|
10653
|
+
/* @__PURE__ */ jsx21(Plus, { className: "w-3.5 h-3.5" }),
|
|
10654
|
+
/* @__PURE__ */ jsx21("span", { children: "\u05D4\u05D5\u05E1\u05E3 \u05DB\u05E4\u05EA\u05D5\u05E8" }),
|
|
10655
|
+
/* @__PURE__ */ jsx21(
|
|
10607
10656
|
ChevronDown3,
|
|
10608
10657
|
{
|
|
10609
10658
|
className: `w-3.5 h-3.5 transition-transform ${isAddButtonOpen ? "rotate-180" : ""}`
|
|
@@ -10620,10 +10669,10 @@ function CreateTemplateModal({
|
|
|
10620
10669
|
onClick: () => handleAddButton("QUICK_REPLY"),
|
|
10621
10670
|
className: "w-full p-2 text-right rounded-lg hover:bg-slate-50 flex items-start gap-2.5 transition-colors cursor-pointer group",
|
|
10622
10671
|
children: [
|
|
10623
|
-
/* @__PURE__ */
|
|
10672
|
+
/* @__PURE__ */ jsx21("div", { className: "w-7 h-7 rounded-md bg-emerald-50 text-emerald-600 flex items-center justify-center shrink-0 mt-0.5 group-hover:bg-emerald-100", children: /* @__PURE__ */ jsx21(MessageSquare, { className: "w-3.5 h-3.5" }) }),
|
|
10624
10673
|
/* @__PURE__ */ jsxs17("div", { children: [
|
|
10625
|
-
/* @__PURE__ */
|
|
10626
|
-
/* @__PURE__ */
|
|
10674
|
+
/* @__PURE__ */ jsx21("p", { className: "text-xs font-semibold text-slate-800", children: "Custom (\u05EA\u05D2\u05D5\u05D1\u05D4 \u05DE\u05D4\u05D9\u05E8\u05D4)" }),
|
|
10675
|
+
/* @__PURE__ */ jsx21("p", { className: "text-[10px] text-slate-400 leading-tight", children: "\u05DE\u05E2\u05E0\u05D4 \u05DE\u05D4\u05D9\u05E8 \u05D1\u05DC\u05D7\u05D9\u05E6\u05D4 \u05D0\u05D7\u05EA" })
|
|
10627
10676
|
] })
|
|
10628
10677
|
]
|
|
10629
10678
|
}
|
|
@@ -10635,10 +10684,10 @@ function CreateTemplateModal({
|
|
|
10635
10684
|
onClick: () => handleAddButton("URL"),
|
|
10636
10685
|
className: "w-full p-2 text-right rounded-lg hover:bg-slate-50 flex items-start gap-2.5 transition-colors cursor-pointer group pt-2",
|
|
10637
10686
|
children: [
|
|
10638
|
-
/* @__PURE__ */
|
|
10687
|
+
/* @__PURE__ */ jsx21("div", { className: "w-7 h-7 rounded-md bg-sky-50 text-sky-600 flex items-center justify-center shrink-0 mt-0.5 group-hover:bg-sky-100", children: /* @__PURE__ */ jsx21(ExternalLink3, { className: "w-3.5 h-3.5" }) }),
|
|
10639
10688
|
/* @__PURE__ */ jsxs17("div", { children: [
|
|
10640
|
-
/* @__PURE__ */
|
|
10641
|
-
/* @__PURE__ */
|
|
10689
|
+
/* @__PURE__ */ jsx21("p", { className: "text-xs font-semibold text-slate-800", children: "Visit website (\u05E7\u05D9\u05E9\u05D5\u05E8 \u05DC\u05D0\u05EA\u05E8)" }),
|
|
10690
|
+
/* @__PURE__ */ jsx21("p", { className: "text-[10px] text-slate-400 leading-tight", children: "\u05E7\u05D9\u05E9\u05D5\u05E8 \u05D0\u05D9\u05E0\u05D8\u05E8\u05E0\u05D8 \u05E1\u05D8\u05D8\u05D9" })
|
|
10642
10691
|
] })
|
|
10643
10692
|
]
|
|
10644
10693
|
}
|
|
@@ -10650,10 +10699,10 @@ function CreateTemplateModal({
|
|
|
10650
10699
|
onClick: () => handleAddButton("PHONE_NUMBER"),
|
|
10651
10700
|
className: "w-full p-2 text-right rounded-lg hover:bg-slate-50 flex items-start gap-2.5 transition-colors cursor-pointer group pt-2",
|
|
10652
10701
|
children: [
|
|
10653
|
-
/* @__PURE__ */
|
|
10702
|
+
/* @__PURE__ */ jsx21("div", { className: "w-7 h-7 rounded-md bg-violet-50 text-violet-600 flex items-center justify-center shrink-0 mt-0.5 group-hover:bg-violet-100", children: /* @__PURE__ */ jsx21(Phone, { className: "w-3.5 h-3.5" }) }),
|
|
10654
10703
|
/* @__PURE__ */ jsxs17("div", { children: [
|
|
10655
|
-
/* @__PURE__ */
|
|
10656
|
-
/* @__PURE__ */
|
|
10704
|
+
/* @__PURE__ */ jsx21("p", { className: "text-xs font-semibold text-slate-800", children: "Call phone number (\u05D7\u05D9\u05D5\u05D2 \u05DC\u05DE\u05E1\u05E4\u05E8)" }),
|
|
10705
|
+
/* @__PURE__ */ jsx21("p", { className: "text-[10px] text-slate-400 leading-tight", children: "\u05D7\u05D9\u05D5\u05D2 \u05D9\u05E9\u05D9\u05E8 \u05DC\u05DE\u05E1\u05E4\u05E8 \u05D8\u05DC\u05E4\u05D5\u05DF" })
|
|
10657
10706
|
] })
|
|
10658
10707
|
]
|
|
10659
10708
|
}
|
|
@@ -10665,10 +10714,10 @@ function CreateTemplateModal({
|
|
|
10665
10714
|
onClick: () => handleAddButton("COPY_CODE"),
|
|
10666
10715
|
className: "w-full p-2 text-right rounded-lg hover:bg-slate-50 flex items-start gap-2.5 transition-colors cursor-pointer group pt-2",
|
|
10667
10716
|
children: [
|
|
10668
|
-
/* @__PURE__ */
|
|
10717
|
+
/* @__PURE__ */ jsx21("div", { className: "w-7 h-7 rounded-md bg-amber-50 text-amber-600 flex items-center justify-center shrink-0 mt-0.5 group-hover:bg-amber-100", children: /* @__PURE__ */ jsx21(Copy3, { className: "w-3.5 h-3.5" }) }),
|
|
10669
10718
|
/* @__PURE__ */ jsxs17("div", { children: [
|
|
10670
|
-
/* @__PURE__ */
|
|
10671
|
-
/* @__PURE__ */
|
|
10719
|
+
/* @__PURE__ */ jsx21("p", { className: "text-xs font-semibold text-slate-800", children: "Copy offer code (\u05D4\u05E2\u05EA\u05E7\u05EA \u05E7\u05D5\u05D3)" }),
|
|
10720
|
+
/* @__PURE__ */ jsx21("p", { className: "text-[10px] text-slate-400 leading-tight", children: "\u05D4\u05E2\u05EA\u05E7\u05EA \u05E7\u05D5\u05D3 \u05E7\u05D5\u05E4\u05D5\u05DF \u05DC\u05DC\u05D5\u05D7" })
|
|
10672
10721
|
] })
|
|
10673
10722
|
]
|
|
10674
10723
|
}
|
|
@@ -10677,8 +10726,8 @@ function CreateTemplateModal({
|
|
|
10677
10726
|
] })
|
|
10678
10727
|
] })
|
|
10679
10728
|
] }),
|
|
10680
|
-
buttons.length === 0 && /* @__PURE__ */
|
|
10681
|
-
buttons.length > 0 && /* @__PURE__ */
|
|
10729
|
+
buttons.length === 0 && /* @__PURE__ */ jsx21("div", { className: "p-3 text-center border border-dashed border-slate-200 rounded-lg text-slate-400 text-xs bg-white/60", children: '\u05DC\u05D0 \u05D4\u05D5\u05D2\u05D3\u05E8\u05D5 \u05DB\u05E4\u05EA\u05D5\u05E8\u05D9\u05DD. \u05DC\u05D7\u05E5 \u05E2\u05DC "+ \u05D4\u05D5\u05E1\u05E3 \u05DB\u05E4\u05EA\u05D5\u05E8" \u05DB\u05D3\u05D9 \u05DC\u05D4\u05D5\u05E1\u05D9\u05E3 \u05DB\u05E4\u05EA\u05D5\u05E8 \u05E8\u05D0\u05E9\u05D5\u05DF \u05DC\u05EA\u05D1\u05E0\u05D9\u05EA.' }),
|
|
10730
|
+
buttons.length > 0 && /* @__PURE__ */ jsx21("div", { className: "space-y-2.5", children: buttons.map((btn, index) => {
|
|
10682
10731
|
const btnNum = index + 1;
|
|
10683
10732
|
return /* @__PURE__ */ jsxs17(
|
|
10684
10733
|
"div",
|
|
@@ -10692,30 +10741,30 @@ function CreateTemplateModal({
|
|
|
10692
10741
|
btnNum
|
|
10693
10742
|
] }),
|
|
10694
10743
|
btn.type === "QUICK_REPLY" && /* @__PURE__ */ jsxs17("span", { className: "inline-flex items-center gap-1 px-2 py-0.5 rounded-lg bg-emerald-50 text-emerald-700 border border-emerald-200 text-[10px] font-semibold", children: [
|
|
10695
|
-
/* @__PURE__ */
|
|
10696
|
-
/* @__PURE__ */
|
|
10744
|
+
/* @__PURE__ */ jsx21(MessageSquare, { className: "w-3 h-3" }),
|
|
10745
|
+
/* @__PURE__ */ jsx21("span", { children: "Custom (\u05EA\u05D2\u05D5\u05D1\u05D4 \u05DE\u05D4\u05D9\u05E8\u05D4)" })
|
|
10697
10746
|
] }),
|
|
10698
10747
|
btn.type === "URL" && /* @__PURE__ */ jsxs17("span", { className: "inline-flex items-center gap-1 px-2 py-0.5 rounded-lg bg-sky-50 text-sky-700 border border-sky-200 text-[10px] font-semibold", children: [
|
|
10699
|
-
/* @__PURE__ */
|
|
10700
|
-
/* @__PURE__ */
|
|
10748
|
+
/* @__PURE__ */ jsx21(ExternalLink3, { className: "w-3 h-3" }),
|
|
10749
|
+
/* @__PURE__ */ jsx21("span", { children: "Visit website (\u05E7\u05D9\u05E9\u05D5\u05E8 \u05DC\u05D0\u05EA\u05E8)" })
|
|
10701
10750
|
] }),
|
|
10702
10751
|
btn.type === "PHONE_NUMBER" && /* @__PURE__ */ jsxs17("span", { className: "inline-flex items-center gap-1 px-2 py-0.5 rounded-lg bg-violet-50 text-violet-700 border border-violet-200 text-[10px] font-semibold", children: [
|
|
10703
|
-
/* @__PURE__ */
|
|
10704
|
-
/* @__PURE__ */
|
|
10752
|
+
/* @__PURE__ */ jsx21(Phone, { className: "w-3 h-3" }),
|
|
10753
|
+
/* @__PURE__ */ jsx21("span", { children: "Call phone number (\u05D7\u05D9\u05D5\u05D2 \u05DC\u05DE\u05E1\u05E4\u05E8)" })
|
|
10705
10754
|
] }),
|
|
10706
10755
|
btn.type === "COPY_CODE" && /* @__PURE__ */ jsxs17("span", { className: "inline-flex items-center gap-1 px-2 py-0.5 rounded-lg bg-amber-50 text-amber-700 border border-amber-200 text-[10px] font-semibold", children: [
|
|
10707
|
-
/* @__PURE__ */
|
|
10708
|
-
/* @__PURE__ */
|
|
10756
|
+
/* @__PURE__ */ jsx21(Copy3, { className: "w-3 h-3" }),
|
|
10757
|
+
/* @__PURE__ */ jsx21("span", { children: "Copy offer code (\u05D4\u05E2\u05EA\u05E7\u05EA \u05E7\u05D5\u05D3)" })
|
|
10709
10758
|
] })
|
|
10710
10759
|
] }),
|
|
10711
|
-
/* @__PURE__ */
|
|
10760
|
+
/* @__PURE__ */ jsx21(
|
|
10712
10761
|
"button",
|
|
10713
10762
|
{
|
|
10714
10763
|
type: "button",
|
|
10715
10764
|
onClick: () => handleRemoveButton(index),
|
|
10716
10765
|
className: "p-1 text-slate-400 hover:text-rose-600 hover:bg-rose-50 rounded-lg transition-colors cursor-pointer",
|
|
10717
10766
|
title: "\u05D4\u05E1\u05E8 \u05DB\u05E4\u05EA\u05D5\u05E8",
|
|
10718
|
-
children: /* @__PURE__ */
|
|
10767
|
+
children: /* @__PURE__ */ jsx21(Trash22, { className: "w-3.5 h-3.5" })
|
|
10719
10768
|
}
|
|
10720
10769
|
)
|
|
10721
10770
|
] }),
|
|
@@ -10723,7 +10772,7 @@ function CreateTemplateModal({
|
|
|
10723
10772
|
/* @__PURE__ */ jsxs17("div", { className: "flex items-center justify-between text-[11px]", children: [
|
|
10724
10773
|
/* @__PURE__ */ jsxs17("label", { className: "font-semibold text-slate-700", children: [
|
|
10725
10774
|
"\u05D8\u05E7\u05E1\u05D8 \u05D4\u05DB\u05E4\u05EA\u05D5\u05E8 ",
|
|
10726
|
-
/* @__PURE__ */
|
|
10775
|
+
/* @__PURE__ */ jsx21("span", { className: "text-rose-500", children: "*" })
|
|
10727
10776
|
] }),
|
|
10728
10777
|
/* @__PURE__ */ jsxs17(
|
|
10729
10778
|
"span",
|
|
@@ -10736,7 +10785,7 @@ function CreateTemplateModal({
|
|
|
10736
10785
|
}
|
|
10737
10786
|
)
|
|
10738
10787
|
] }),
|
|
10739
|
-
/* @__PURE__ */
|
|
10788
|
+
/* @__PURE__ */ jsx21(
|
|
10740
10789
|
"input",
|
|
10741
10790
|
{
|
|
10742
10791
|
type: "text",
|
|
@@ -10753,7 +10802,7 @@ function CreateTemplateModal({
|
|
|
10753
10802
|
/* @__PURE__ */ jsxs17("div", { className: "flex items-center justify-between text-[11px]", children: [
|
|
10754
10803
|
/* @__PURE__ */ jsxs17("label", { className: "font-semibold text-slate-700", children: [
|
|
10755
10804
|
"\u05D8\u05E7\u05E1\u05D8 \u05D4\u05DB\u05E4\u05EA\u05D5\u05E8 ",
|
|
10756
|
-
/* @__PURE__ */
|
|
10805
|
+
/* @__PURE__ */ jsx21("span", { className: "text-rose-500", children: "*" })
|
|
10757
10806
|
] }),
|
|
10758
10807
|
/* @__PURE__ */ jsxs17(
|
|
10759
10808
|
"span",
|
|
@@ -10766,7 +10815,7 @@ function CreateTemplateModal({
|
|
|
10766
10815
|
}
|
|
10767
10816
|
)
|
|
10768
10817
|
] }),
|
|
10769
|
-
/* @__PURE__ */
|
|
10818
|
+
/* @__PURE__ */ jsx21(
|
|
10770
10819
|
"input",
|
|
10771
10820
|
{
|
|
10772
10821
|
type: "text",
|
|
@@ -10782,14 +10831,14 @@ function CreateTemplateModal({
|
|
|
10782
10831
|
/* @__PURE__ */ jsxs17("div", { className: "flex items-center justify-between text-[11px]", children: [
|
|
10783
10832
|
/* @__PURE__ */ jsxs17("label", { className: "font-semibold text-slate-700", children: [
|
|
10784
10833
|
"\u05DB\u05EA\u05D5\u05D1\u05EA URL \u05E1\u05D8\u05D8\u05D9\u05EA ",
|
|
10785
|
-
/* @__PURE__ */
|
|
10834
|
+
/* @__PURE__ */ jsx21("span", { className: "text-rose-500", children: "*" })
|
|
10786
10835
|
] }),
|
|
10787
10836
|
/* @__PURE__ */ jsxs17("span", { className: "font-mono text-[10px] text-slate-400", children: [
|
|
10788
10837
|
(btn.url || "").length,
|
|
10789
10838
|
"/2000"
|
|
10790
10839
|
] })
|
|
10791
10840
|
] }),
|
|
10792
|
-
/* @__PURE__ */
|
|
10841
|
+
/* @__PURE__ */ jsx21(
|
|
10793
10842
|
"input",
|
|
10794
10843
|
{
|
|
10795
10844
|
type: "url",
|
|
@@ -10808,7 +10857,7 @@ function CreateTemplateModal({
|
|
|
10808
10857
|
/* @__PURE__ */ jsxs17("div", { className: "flex items-center justify-between text-[11px]", children: [
|
|
10809
10858
|
/* @__PURE__ */ jsxs17("label", { className: "font-semibold text-slate-700", children: [
|
|
10810
10859
|
"\u05D8\u05E7\u05E1\u05D8 \u05D4\u05DB\u05E4\u05EA\u05D5\u05E8 ",
|
|
10811
|
-
/* @__PURE__ */
|
|
10860
|
+
/* @__PURE__ */ jsx21("span", { className: "text-rose-500", children: "*" })
|
|
10812
10861
|
] }),
|
|
10813
10862
|
/* @__PURE__ */ jsxs17(
|
|
10814
10863
|
"span",
|
|
@@ -10821,7 +10870,7 @@ function CreateTemplateModal({
|
|
|
10821
10870
|
}
|
|
10822
10871
|
)
|
|
10823
10872
|
] }),
|
|
10824
|
-
/* @__PURE__ */
|
|
10873
|
+
/* @__PURE__ */ jsx21(
|
|
10825
10874
|
"input",
|
|
10826
10875
|
{
|
|
10827
10876
|
type: "text",
|
|
@@ -10837,14 +10886,14 @@ function CreateTemplateModal({
|
|
|
10837
10886
|
/* @__PURE__ */ jsxs17("div", { className: "flex items-center justify-between text-[11px]", children: [
|
|
10838
10887
|
/* @__PURE__ */ jsxs17("label", { className: "font-semibold text-slate-700", children: [
|
|
10839
10888
|
"\u05DE\u05E1\u05E4\u05E8 \u05D8\u05DC\u05E4\u05D5\u05DF (\u05E4\u05D5\u05E8\u05DE\u05D8: +[\u05E7\u05D9\u05D3\u05D5\u05DE\u05EA][\u05DE\u05E1\u05E4\u05E8]) ",
|
|
10840
|
-
/* @__PURE__ */
|
|
10889
|
+
/* @__PURE__ */ jsx21("span", { className: "text-rose-500", children: "*" })
|
|
10841
10890
|
] }),
|
|
10842
10891
|
/* @__PURE__ */ jsxs17("span", { className: "font-mono text-[10px] text-slate-400", children: [
|
|
10843
10892
|
(btn.phone_number || "").length,
|
|
10844
10893
|
"/20"
|
|
10845
10894
|
] })
|
|
10846
10895
|
] }),
|
|
10847
|
-
/* @__PURE__ */
|
|
10896
|
+
/* @__PURE__ */ jsx21(
|
|
10848
10897
|
"input",
|
|
10849
10898
|
{
|
|
10850
10899
|
type: "tel",
|
|
@@ -10863,7 +10912,7 @@ function CreateTemplateModal({
|
|
|
10863
10912
|
/* @__PURE__ */ jsxs17("div", { className: "flex items-center justify-between text-[11px]", children: [
|
|
10864
10913
|
/* @__PURE__ */ jsxs17("label", { className: "font-semibold text-slate-700", children: [
|
|
10865
10914
|
"\u05E7\u05D5\u05D3 \u05D4\u05E6\u05E2\u05D4 / \u05E7\u05D5\u05E4\u05D5\u05DF ",
|
|
10866
|
-
/* @__PURE__ */
|
|
10915
|
+
/* @__PURE__ */ jsx21("span", { className: "text-rose-500", children: "*" })
|
|
10867
10916
|
] }),
|
|
10868
10917
|
/* @__PURE__ */ jsxs17(
|
|
10869
10918
|
"span",
|
|
@@ -10876,7 +10925,7 @@ function CreateTemplateModal({
|
|
|
10876
10925
|
}
|
|
10877
10926
|
)
|
|
10878
10927
|
] }),
|
|
10879
|
-
/* @__PURE__ */
|
|
10928
|
+
/* @__PURE__ */ jsx21(
|
|
10880
10929
|
"input",
|
|
10881
10930
|
{
|
|
10882
10931
|
type: "text",
|
|
@@ -10891,13 +10940,13 @@ function CreateTemplateModal({
|
|
|
10891
10940
|
] }),
|
|
10892
10941
|
/* @__PURE__ */ jsxs17("div", { className: "space-y-1", children: [
|
|
10893
10942
|
/* @__PURE__ */ jsxs17("div", { className: "flex items-center justify-between text-[11px]", children: [
|
|
10894
|
-
/* @__PURE__ */
|
|
10943
|
+
/* @__PURE__ */ jsx21("label", { className: "font-semibold text-slate-700", children: "\u05D8\u05E7\u05E1\u05D8 \u05D4\u05DB\u05E4\u05EA\u05D5\u05E8 (\u05D1\u05E8\u05D9\u05E8\u05EA \u05DE\u05D7\u05D3\u05DC: \u05D4\u05E2\u05EA\u05E7 \u05E7\u05D5\u05D3)" }),
|
|
10895
10944
|
/* @__PURE__ */ jsxs17("span", { className: "font-mono text-[10px] text-slate-400", children: [
|
|
10896
10945
|
(btn.text || "").length,
|
|
10897
10946
|
"/25"
|
|
10898
10947
|
] })
|
|
10899
10948
|
] }),
|
|
10900
|
-
/* @__PURE__ */
|
|
10949
|
+
/* @__PURE__ */ jsx21(
|
|
10901
10950
|
"input",
|
|
10902
10951
|
{
|
|
10903
10952
|
type: "text",
|
|
@@ -10918,7 +10967,7 @@ function CreateTemplateModal({
|
|
|
10918
10967
|
] })
|
|
10919
10968
|
] }),
|
|
10920
10969
|
/* @__PURE__ */ jsxs17("div", { className: "px-6 py-4 border-t border-slate-100 flex items-center justify-end gap-3 bg-slate-50/50", children: [
|
|
10921
|
-
/* @__PURE__ */
|
|
10970
|
+
/* @__PURE__ */ jsx21(
|
|
10922
10971
|
"button",
|
|
10923
10972
|
{
|
|
10924
10973
|
type: "button",
|
|
@@ -10928,7 +10977,7 @@ function CreateTemplateModal({
|
|
|
10928
10977
|
children: "\u05D1\u05D9\u05D8\u05D5\u05DC"
|
|
10929
10978
|
}
|
|
10930
10979
|
),
|
|
10931
|
-
/* @__PURE__ */
|
|
10980
|
+
/* @__PURE__ */ jsx21(
|
|
10932
10981
|
"button",
|
|
10933
10982
|
{
|
|
10934
10983
|
type: "submit",
|
|
@@ -10936,11 +10985,11 @@ function CreateTemplateModal({
|
|
|
10936
10985
|
className: `inline-flex items-center gap-2 px-5 py-2 text-xs font-semibold text-white rounded-xl shadow-xs transition-all cursor-pointer active:scale-[0.98] ${canSubmit ? "bg-emerald-600 hover:bg-emerald-700" : "bg-slate-300 text-slate-500 cursor-not-allowed opacity-60"}`,
|
|
10937
10986
|
title: !canSubmit ? fileError || validationResult.errors[0] || "\u05D9\u05E9 \u05DC\u05D4\u05E9\u05DC\u05D9\u05DD \u05D0\u05EA \u05DB\u05DC \u05E9\u05D3\u05D5\u05EA \u05D4\u05D7\u05D5\u05D1\u05D4 \u05D1\u05D0\u05D5\u05E4\u05DF \u05EA\u05E7\u05D9\u05DF" : "\u05E9\u05DC\u05D7 \u05EA\u05D1\u05E0\u05D9\u05EA \u05DC\u05D0\u05D9\u05E9\u05D5\u05E8 Meta",
|
|
10938
10987
|
children: isSubmitting ? /* @__PURE__ */ jsxs17(Fragment4, { children: [
|
|
10939
|
-
/* @__PURE__ */
|
|
10940
|
-
/* @__PURE__ */
|
|
10988
|
+
/* @__PURE__ */ jsx21(Loader24, { className: "w-4 h-4 animate-spin" }),
|
|
10989
|
+
/* @__PURE__ */ jsx21("span", { children: submittingStep || "\u05D9\u05D5\u05E6\u05E8 \u05EA\u05D1\u05E0\u05D9\u05EA..." })
|
|
10941
10990
|
] }) : /* @__PURE__ */ jsxs17(Fragment4, { children: [
|
|
10942
|
-
/* @__PURE__ */
|
|
10943
|
-
/* @__PURE__ */
|
|
10991
|
+
/* @__PURE__ */ jsx21(CheckCircle22, { className: "w-4 h-4" }),
|
|
10992
|
+
/* @__PURE__ */ jsx21("span", { children: "\u05E9\u05DC\u05D7 \u05DC\u05D1\u05D3\u05D9\u05E7\u05D4" })
|
|
10944
10993
|
] })
|
|
10945
10994
|
}
|
|
10946
10995
|
)
|
|
@@ -13648,7 +13697,7 @@ import {
|
|
|
13648
13697
|
CheckCircle2 as CheckCircle23,
|
|
13649
13698
|
AlertCircle as AlertCircle3
|
|
13650
13699
|
} from "lucide-react";
|
|
13651
|
-
import { Fragment as Fragment5, jsx as
|
|
13700
|
+
import { Fragment as Fragment5, jsx as jsx22, jsxs as jsxs18 } from "react/jsx-runtime";
|
|
13652
13701
|
function TemplateSelectionBlock({
|
|
13653
13702
|
selectedTemplate,
|
|
13654
13703
|
selectedTemplateId,
|
|
@@ -13679,8 +13728,8 @@ function TemplateSelectionBlock({
|
|
|
13679
13728
|
/* @__PURE__ */ jsxs18("div", { className: "space-y-1.5 shrink-0", children: [
|
|
13680
13729
|
/* @__PURE__ */ jsxs18("div", { className: "flex items-center justify-between pb-1.5 border-b border-slate-200/70 shrink-0 gap-2", children: [
|
|
13681
13730
|
/* @__PURE__ */ jsxs18("div", { className: "flex items-center gap-1.5 min-w-0", children: [
|
|
13682
|
-
/* @__PURE__ */
|
|
13683
|
-
/* @__PURE__ */
|
|
13731
|
+
/* @__PURE__ */ jsx22(FileText3, { className: "w-4 h-4 text-emerald-600 shrink-0" }),
|
|
13732
|
+
/* @__PURE__ */ jsx22("span", { className: "text-xs font-bold text-slate-800 truncate", children: "\u05EA\u05D1\u05E0\u05D9\u05EA \u05D5\u05EA\u05D5\u05DB\u05DF \u05D4\u05D5\u05D3\u05E2\u05D4" })
|
|
13684
13733
|
] }),
|
|
13685
13734
|
/* @__PURE__ */ jsxs18("div", { className: "flex items-center gap-1.5 shrink-0", children: [
|
|
13686
13735
|
/* @__PURE__ */ jsxs18(
|
|
@@ -13692,8 +13741,8 @@ function TemplateSelectionBlock({
|
|
|
13692
13741
|
className: `h-7 px-2 text-[11px] font-semibold rounded-lg border transition-all flex items-center gap-1 ${selectedTemplate && !isDeleting ? "bg-white text-rose-600 hover:bg-rose-50 border-rose-200 active:scale-[0.98] shadow-2xs cursor-pointer" : "bg-slate-100 text-slate-400 border-slate-200 cursor-not-allowed opacity-60"}`,
|
|
13693
13742
|
title: !selectedTemplate ? "\u05D1\u05D7\u05E8 \u05EA\u05D1\u05E0\u05D9\u05EA \u05DB\u05D3\u05D9 \u05DC\u05DE\u05D7\u05D5\u05E7 \u05D0\u05D5\u05EA\u05D4" : `\u05DE\u05D7\u05E7 \u05D0\u05EA \u05D4\u05EA\u05D1\u05E0\u05D9\u05EA "${selectedTemplate.name}"`,
|
|
13694
13743
|
children: [
|
|
13695
|
-
isDeleting ? /* @__PURE__ */
|
|
13696
|
-
/* @__PURE__ */
|
|
13744
|
+
isDeleting ? /* @__PURE__ */ jsx22(Loader25, { className: "w-3.5 h-3.5 animate-spin text-rose-500" }) : /* @__PURE__ */ jsx22(Trash23, { className: "w-3.5 h-3.5 text-rose-500" }),
|
|
13745
|
+
/* @__PURE__ */ jsx22("span", { children: "\u05DE\u05D7\u05D9\u05E7\u05D4" })
|
|
13697
13746
|
]
|
|
13698
13747
|
}
|
|
13699
13748
|
),
|
|
@@ -13705,8 +13754,8 @@ function TemplateSelectionBlock({
|
|
|
13705
13754
|
className: "h-7 px-2.5 text-[11px] font-semibold text-white bg-emerald-600 hover:bg-emerald-700 active:scale-[0.98] rounded-lg shadow-2xs transition-all flex items-center gap-1 cursor-pointer",
|
|
13706
13755
|
title: "\u05E6\u05D5\u05E8 \u05EA\u05D1\u05E0\u05D9\u05EA \u05D7\u05D3\u05E9\u05D4",
|
|
13707
13756
|
children: [
|
|
13708
|
-
/* @__PURE__ */
|
|
13709
|
-
/* @__PURE__ */
|
|
13757
|
+
/* @__PURE__ */ jsx22(Plus2, { className: "w-3.5 h-3.5" }),
|
|
13758
|
+
/* @__PURE__ */ jsx22("span", { children: "\u05D7\u05D3\u05E9" })
|
|
13710
13759
|
]
|
|
13711
13760
|
}
|
|
13712
13761
|
)
|
|
@@ -13721,13 +13770,13 @@ function TemplateSelectionBlock({
|
|
|
13721
13770
|
className: "w-full h-8.5 px-3 bg-white hover:bg-slate-100/70 border border-slate-200 rounded-xl text-right flex items-center justify-between transition-colors cursor-pointer text-xs",
|
|
13722
13771
|
children: [
|
|
13723
13772
|
selectedTemplate ? /* @__PURE__ */ jsxs18("div", { className: "flex items-center gap-2 overflow-hidden", children: [
|
|
13724
|
-
/* @__PURE__ */
|
|
13773
|
+
/* @__PURE__ */ jsx22(
|
|
13725
13774
|
"span",
|
|
13726
13775
|
{
|
|
13727
13776
|
className: `w-2 h-2 rounded-full shrink-0 ${getStatusConfig(selectedTemplate.status).dotColor}`
|
|
13728
13777
|
}
|
|
13729
13778
|
),
|
|
13730
|
-
/* @__PURE__ */
|
|
13779
|
+
/* @__PURE__ */ jsx22("span", { className: "text-xs font-semibold text-slate-900 truncate", children: selectedTemplate.name }),
|
|
13731
13780
|
/* @__PURE__ */ jsxs18("span", { className: "text-[10px] text-slate-400 shrink-0", children: [
|
|
13732
13781
|
"(",
|
|
13733
13782
|
selectedTemplate.category,
|
|
@@ -13735,10 +13784,10 @@ function TemplateSelectionBlock({
|
|
|
13735
13784
|
selectedTemplate.language,
|
|
13736
13785
|
")"
|
|
13737
13786
|
] })
|
|
13738
|
-
] }) : /* @__PURE__ */
|
|
13787
|
+
] }) : /* @__PURE__ */ jsx22("span", { className: "text-xs text-slate-400", children: "\u05D1\u05D7\u05E8 \u05EA\u05D1\u05E0\u05D9\u05EA \u05E7\u05D9\u05D9\u05DE\u05EA \u05DE\u05D4\u05E8\u05E9\u05D9\u05DE\u05D4..." }),
|
|
13739
13788
|
/* @__PURE__ */ jsxs18("div", { className: "flex items-center gap-1.5 shrink-0 mr-1", children: [
|
|
13740
|
-
isLoadingTemplates && /* @__PURE__ */
|
|
13741
|
-
/* @__PURE__ */
|
|
13789
|
+
isLoadingTemplates && /* @__PURE__ */ jsx22(Loader25, { className: "w-3.5 h-3.5 text-emerald-600 animate-spin" }),
|
|
13790
|
+
/* @__PURE__ */ jsx22(
|
|
13742
13791
|
ChevronDown4,
|
|
13743
13792
|
{
|
|
13744
13793
|
className: `w-3.5 h-3.5 text-slate-400 transition-transform ${isDropdownOpen ? "rotate-180" : ""}`
|
|
@@ -13749,7 +13798,7 @@ function TemplateSelectionBlock({
|
|
|
13749
13798
|
}
|
|
13750
13799
|
),
|
|
13751
13800
|
isDropdownOpen && /* @__PURE__ */ jsxs18(Fragment5, { children: [
|
|
13752
|
-
/* @__PURE__ */
|
|
13801
|
+
/* @__PURE__ */ jsx22(
|
|
13753
13802
|
"div",
|
|
13754
13803
|
{
|
|
13755
13804
|
className: "fixed inset-0 z-40",
|
|
@@ -13757,7 +13806,7 @@ function TemplateSelectionBlock({
|
|
|
13757
13806
|
}
|
|
13758
13807
|
),
|
|
13759
13808
|
/* @__PURE__ */ jsxs18("div", { className: "absolute top-full left-0 right-0 mt-1 bg-white border border-slate-200 rounded-xl shadow-xl z-50 max-h-52 overflow-y-auto divide-y divide-slate-100 animate-in fade-in-50 zoom-in-95 duration-100", children: [
|
|
13760
|
-
templates.length === 0 && !isLoadingTemplates && /* @__PURE__ */
|
|
13809
|
+
templates.length === 0 && !isLoadingTemplates && /* @__PURE__ */ jsx22("div", { className: "p-3 text-center text-xs text-slate-400", children: '\u05DC\u05D0 \u05E0\u05DE\u05E6\u05D0\u05D5 \u05EA\u05D1\u05E0\u05D9\u05D5\u05EA. \u05DC\u05D7\u05E5 \u05E2\u05DC "+ \u05E6\u05D5\u05E8 \u05EA\u05D1\u05E0\u05D9\u05EA \u05D7\u05D3\u05E9\u05D4".' }),
|
|
13761
13810
|
templates.map((tpl) => {
|
|
13762
13811
|
const statusConfig = getStatusConfig(tpl.status);
|
|
13763
13812
|
const isSelected = tpl.id === selectedTemplateId;
|
|
@@ -13776,14 +13825,14 @@ function TemplateSelectionBlock({
|
|
|
13776
13825
|
title: !canSelect ? `\u05E1\u05D8\u05D8\u05D5\u05E1 \u05EA\u05D1\u05E0\u05D9\u05EA: ${tpl.status}. \u05E8\u05E7 \u05EA\u05D1\u05E0\u05D9\u05D5\u05EA \u05D1\u05DE\u05E6\u05D1 \u05DE\u05D0\u05D5\u05E9\u05E8 \u05D0\u05D5 \u05E4\u05E2\u05D9\u05DC \u05E0\u05D9\u05EA\u05E0\u05D5\u05EA \u05DC\u05D1\u05D7\u05D9\u05E8\u05D4.` : void 0,
|
|
13777
13826
|
children: [
|
|
13778
13827
|
/* @__PURE__ */ jsxs18("div", { className: "flex items-center gap-2 overflow-hidden", children: [
|
|
13779
|
-
/* @__PURE__ */
|
|
13828
|
+
/* @__PURE__ */ jsx22(
|
|
13780
13829
|
"span",
|
|
13781
13830
|
{
|
|
13782
13831
|
className: `w-2 h-2 rounded-full shrink-0 ${statusConfig.dotColor}`
|
|
13783
13832
|
}
|
|
13784
13833
|
),
|
|
13785
13834
|
/* @__PURE__ */ jsxs18("div", { className: "overflow-hidden", children: [
|
|
13786
|
-
/* @__PURE__ */
|
|
13835
|
+
/* @__PURE__ */ jsx22(
|
|
13787
13836
|
"p",
|
|
13788
13837
|
{
|
|
13789
13838
|
className: `text-xs font-semibold truncate ${isSelected ? "text-emerald-700" : canSelect ? "text-slate-800" : "text-slate-500"}`,
|
|
@@ -13797,7 +13846,7 @@ function TemplateSelectionBlock({
|
|
|
13797
13846
|
] })
|
|
13798
13847
|
] })
|
|
13799
13848
|
] }),
|
|
13800
|
-
/* @__PURE__ */
|
|
13849
|
+
/* @__PURE__ */ jsx22(
|
|
13801
13850
|
"span",
|
|
13802
13851
|
{
|
|
13803
13852
|
className: `text-[9px] font-semibold px-2 py-0.5 rounded-full border shrink-0 ${statusConfig.badgeBg} ${statusConfig.badgeText}`,
|
|
@@ -13815,16 +13864,16 @@ function TemplateSelectionBlock({
|
|
|
13815
13864
|
] }),
|
|
13816
13865
|
/* @__PURE__ */ jsxs18("div", { className: "flex-1 min-h-0 flex flex-col gap-2", children: [
|
|
13817
13866
|
/* @__PURE__ */ jsxs18("div", { className: "flex items-center justify-between text-[11px] font-semibold text-slate-600 shrink-0", children: [
|
|
13818
|
-
/* @__PURE__ */
|
|
13867
|
+
/* @__PURE__ */ jsx22("span", { children: "\u05EA\u05E6\u05D5\u05D2\u05EA \u05D4\u05D5\u05D3\u05E2\u05D4" }),
|
|
13819
13868
|
selectedTemplate && /* @__PURE__ */ jsxs18("span", { className: "text-[10px] text-slate-400", children: [
|
|
13820
13869
|
"(",
|
|
13821
13870
|
templateBodyText.length,
|
|
13822
13871
|
" \u05EA\u05D5\u05D5\u05D9\u05DD)"
|
|
13823
13872
|
] })
|
|
13824
13873
|
] }),
|
|
13825
|
-
selectedTemplate ? /* @__PURE__ */
|
|
13826
|
-
/* @__PURE__ */
|
|
13827
|
-
/* @__PURE__ */
|
|
13874
|
+
selectedTemplate ? /* @__PURE__ */ jsx22("div", { className: "flex-1 min-h-0 overflow-y-auto bg-white border border-slate-200 rounded-lg p-3 text-sm text-slate-700 leading-relaxed font-sans whitespace-pre-wrap select-all shadow-2xs", children: templateBodyText || "(\u05D2\u05D5\u05E3 \u05D4\u05D4\u05D5\u05D3\u05E2\u05D4 \u05E8\u05D9\u05E7)" }) : /* @__PURE__ */ jsxs18("div", { className: "flex-1 min-h-0 py-3 bg-white border border-dashed border-slate-200 rounded-lg text-center text-sm text-slate-400 flex flex-col items-center justify-center gap-0.5", children: [
|
|
13875
|
+
/* @__PURE__ */ jsx22("span", { children: "\u05DC\u05D0 \u05E0\u05D1\u05D7\u05E8\u05D4 \u05EA\u05D1\u05E0\u05D9\u05EA" }),
|
|
13876
|
+
/* @__PURE__ */ jsx22("span", { className: "text-xs text-slate-400", children: '\u05D1\u05D7\u05E8 \u05EA\u05D1\u05E0\u05D9\u05EA \u05DE\u05D4\u05E8\u05E9\u05D9\u05DE\u05D4 \u05D0\u05D5 \u05DC\u05D7\u05E5 \u05E2\u05DC "+ \u05D7\u05D3\u05E9"' })
|
|
13828
13877
|
] }),
|
|
13829
13878
|
selectedTemplate && (() => {
|
|
13830
13879
|
var _a;
|
|
@@ -13833,7 +13882,7 @@ function TemplateSelectionBlock({
|
|
|
13833
13882
|
);
|
|
13834
13883
|
const tplButtons = (buttonsComp == null ? void 0 : buttonsComp.buttons) || [];
|
|
13835
13884
|
if (!tplButtons || tplButtons.length === 0) return null;
|
|
13836
|
-
return /* @__PURE__ */
|
|
13885
|
+
return /* @__PURE__ */ jsx22("div", { className: "flex flex-wrap gap-1.5 shrink-0 pt-0.5", children: tplButtons.map((btn, idx) => {
|
|
13837
13886
|
const btnType = (btn.type || "").toUpperCase();
|
|
13838
13887
|
const btnText = btn.text || (btnType === "COPY_CODE" ? `\u05D4\u05E2\u05EA\u05E7 \u05E7\u05D5\u05D3: ${btn.example}` : "\u05DB\u05E4\u05EA\u05D5\u05E8");
|
|
13839
13888
|
return /* @__PURE__ */ jsxs18(
|
|
@@ -13841,11 +13890,11 @@ function TemplateSelectionBlock({
|
|
|
13841
13890
|
{
|
|
13842
13891
|
className: "inline-flex items-center gap-1.5 px-2.5 py-1 rounded-lg bg-white border border-slate-200/90 text-slate-700 text-xs font-semibold shadow-2xs select-none",
|
|
13843
13892
|
children: [
|
|
13844
|
-
btnType === "QUICK_REPLY" && /* @__PURE__ */
|
|
13845
|
-
btnType === "URL" && /* @__PURE__ */
|
|
13846
|
-
btnType === "PHONE_NUMBER" && /* @__PURE__ */
|
|
13847
|
-
btnType === "COPY_CODE" && /* @__PURE__ */
|
|
13848
|
-
/* @__PURE__ */
|
|
13893
|
+
btnType === "QUICK_REPLY" && /* @__PURE__ */ jsx22(MessageSquare2, { className: "w-3 h-3 text-emerald-600" }),
|
|
13894
|
+
btnType === "URL" && /* @__PURE__ */ jsx22(ExternalLink4, { className: "w-3 h-3 text-sky-600" }),
|
|
13895
|
+
btnType === "PHONE_NUMBER" && /* @__PURE__ */ jsx22(Phone2, { className: "w-3 h-3 text-violet-600" }),
|
|
13896
|
+
btnType === "COPY_CODE" && /* @__PURE__ */ jsx22(Copy4, { className: "w-3 h-3 text-amber-600" }),
|
|
13897
|
+
/* @__PURE__ */ jsx22("span", { className: "truncate max-w-[180px]", children: btnText })
|
|
13849
13898
|
]
|
|
13850
13899
|
},
|
|
13851
13900
|
idx
|
|
@@ -13861,8 +13910,8 @@ function TemplateSelectionBlock({
|
|
|
13861
13910
|
const hasValidMedia = Boolean(headerMediaUrl && headerMediaUrl.trim() && headerMediaUrl.startsWith("http"));
|
|
13862
13911
|
const uploadButtonLabel = headerFormat === "DOCUMENT" ? "\u05D4\u05E2\u05DC\u05D4 \u05DE\u05E1\u05DE\u05DA" : headerFormat === "IMAGE" ? "\u05D4\u05E2\u05DC\u05D4 \u05EA\u05DE\u05D5\u05E0\u05D4" : "\u05D4\u05E2\u05DC\u05D4 \u05E7\u05D5\u05D1\u05E5";
|
|
13863
13912
|
return /* @__PURE__ */ jsxs18("div", { className: "p-2.5 bg-slate-50 border border-slate-200/90 rounded-xl flex items-center justify-between gap-3 shrink-0 shadow-2xs", children: [
|
|
13864
|
-
/* @__PURE__ */
|
|
13865
|
-
/* @__PURE__ */
|
|
13913
|
+
/* @__PURE__ */ jsx22("div", { className: "flex items-center gap-2.5 overflow-hidden", children: headerFormat === "IMAGE" ? /* @__PURE__ */ jsxs18(Fragment5, { children: [
|
|
13914
|
+
/* @__PURE__ */ jsx22("div", { className: "w-8 h-8 rounded-lg overflow-hidden border border-slate-200 shrink-0 bg-slate-100 flex items-center justify-center", children: hasValidMedia ? /* @__PURE__ */ jsx22(
|
|
13866
13915
|
"img",
|
|
13867
13916
|
{
|
|
13868
13917
|
src: headerMediaUrl,
|
|
@@ -13872,33 +13921,33 @@ function TemplateSelectionBlock({
|
|
|
13872
13921
|
e.currentTarget.style.display = "none";
|
|
13873
13922
|
}
|
|
13874
13923
|
}
|
|
13875
|
-
) : /* @__PURE__ */
|
|
13924
|
+
) : /* @__PURE__ */ jsx22(ImageIcon2, { className: "w-4 h-4 text-amber-600" }) }),
|
|
13876
13925
|
/* @__PURE__ */ jsxs18("div", { className: "overflow-hidden", children: [
|
|
13877
|
-
/* @__PURE__ */
|
|
13878
|
-
/* @__PURE__ */
|
|
13926
|
+
/* @__PURE__ */ jsx22("span", { className: "text-xs font-bold text-slate-800 block truncate", children: "\u05EA\u05DE\u05D5\u05E0\u05EA \u05DB\u05D5\u05EA\u05E8\u05EA" }),
|
|
13927
|
+
/* @__PURE__ */ jsx22("span", { className: "text-[10px] text-slate-400 block truncate", children: hasValidMedia ? "\u05E7\u05D5\u05D1\u05E5 \u05EA\u05DE\u05D5\u05E0\u05D4 \u05DE\u05E7\u05D5\u05E9\u05E8 \u05DC\u05EA\u05D1\u05E0\u05D9\u05EA" : "\u05D8\u05E8\u05DD \u05D4\u05D5\u05E2\u05DC\u05D4 \u05E7\u05D5\u05D1\u05E5 \u05EA\u05DE\u05D5\u05E0\u05D4" })
|
|
13879
13928
|
] })
|
|
13880
13929
|
] }) : headerFormat === "DOCUMENT" ? /* @__PURE__ */ jsxs18(Fragment5, { children: [
|
|
13881
|
-
/* @__PURE__ */
|
|
13930
|
+
/* @__PURE__ */ jsx22("div", { className: `w-8 h-8 rounded-lg flex items-center justify-center shrink-0 border ${hasValidMedia ? "bg-rose-50 text-rose-600 border-rose-100" : "bg-slate-100 text-slate-400 border-slate-200"}`, children: /* @__PURE__ */ jsx22(FileText3, { className: "w-4 h-4" }) }),
|
|
13882
13931
|
/* @__PURE__ */ jsxs18("div", { className: "overflow-hidden", children: [
|
|
13883
|
-
/* @__PURE__ */
|
|
13884
|
-
/* @__PURE__ */
|
|
13932
|
+
/* @__PURE__ */ jsx22("span", { className: "text-xs font-bold text-slate-800 block truncate", children: "\u05DE\u05E1\u05DE\u05DA \u05DB\u05D5\u05EA\u05E8\u05EA (PDF)" }),
|
|
13933
|
+
/* @__PURE__ */ jsx22("span", { className: "text-[10px] text-slate-500 font-mono block truncate", title: hasValidMedia ? docFilename : void 0, children: hasValidMedia ? docFilename : "\u05D8\u05E8\u05DD \u05D4\u05D5\u05E2\u05DC\u05D4 \u05E7\u05D5\u05D1\u05E5 \u05DE\u05E1\u05DE\u05DA" })
|
|
13885
13934
|
] })
|
|
13886
13935
|
] }) : /* @__PURE__ */ jsxs18(Fragment5, { children: [
|
|
13887
|
-
/* @__PURE__ */
|
|
13936
|
+
/* @__PURE__ */ jsx22("div", { className: `w-8 h-8 rounded-lg flex items-center justify-center shrink-0 border ${hasValidMedia ? "bg-indigo-50 text-indigo-600 border-indigo-100" : "bg-slate-100 text-slate-400 border-slate-200"}`, children: /* @__PURE__ */ jsx22(Video2, { className: "w-4 h-4" }) }),
|
|
13888
13937
|
/* @__PURE__ */ jsxs18("div", { className: "overflow-hidden", children: [
|
|
13889
|
-
/* @__PURE__ */
|
|
13890
|
-
/* @__PURE__ */
|
|
13938
|
+
/* @__PURE__ */ jsx22("span", { className: "text-xs font-bold text-slate-800 block truncate", children: "\u05E1\u05E8\u05D8\u05D5\u05DF \u05DB\u05D5\u05EA\u05E8\u05EA" }),
|
|
13939
|
+
/* @__PURE__ */ jsx22("span", { className: "text-[10px] text-slate-400 block truncate", children: hasValidMedia ? "\u05E7\u05D5\u05D1\u05E5 \u05D5\u05D9\u05D3\u05D0\u05D5 \u05DE\u05E7\u05D5\u05E9\u05E8 \u05DC\u05EA\u05D1\u05E0\u05D9\u05EA" : "\u05D8\u05E8\u05DD \u05D4\u05D5\u05E2\u05DC\u05D4 \u05E7\u05D5\u05D1\u05E5 \u05D5\u05D9\u05D3\u05D0\u05D5" })
|
|
13891
13940
|
] })
|
|
13892
13941
|
] }) }),
|
|
13893
13942
|
/* @__PURE__ */ jsxs18("div", { className: "flex items-center gap-2 shrink-0", children: [
|
|
13894
13943
|
hasValidMedia ? /* @__PURE__ */ jsxs18("span", { className: "inline-flex items-center gap-1 text-[10px] font-medium text-emerald-800 px-2 py-0.5 bg-emerald-50 border border-emerald-200 rounded-lg", children: [
|
|
13895
|
-
/* @__PURE__ */
|
|
13944
|
+
/* @__PURE__ */ jsx22(CheckCircle23, { className: "w-3 h-3 text-emerald-600" }),
|
|
13896
13945
|
"\u05E7\u05D5\u05D1\u05E5 \u05DE\u05E6\u05D5\u05E8\u05E3 \u05EA\u05E7\u05D9\u05DF"
|
|
13897
13946
|
] }) : /* @__PURE__ */ jsxs18("span", { className: "inline-flex items-center gap-1 text-[10px] font-semibold text-amber-800 px-2 py-0.5 bg-amber-50 border border-amber-200 rounded-lg", children: [
|
|
13898
|
-
/* @__PURE__ */
|
|
13947
|
+
/* @__PURE__ */ jsx22(AlertCircle3, { className: "w-3 h-3 text-amber-600 shrink-0" }),
|
|
13899
13948
|
"\u05E0\u05D3\u05E8\u05E9 \u05E6\u05D9\u05E8\u05D5\u05E3 \u05E7\u05D5\u05D1\u05E5 \u05DC\u05EA\u05D1\u05E0\u05D9\u05EA \u05D6\u05D5"
|
|
13900
13949
|
] }),
|
|
13901
|
-
hasValidMedia && /* @__PURE__ */
|
|
13950
|
+
hasValidMedia && /* @__PURE__ */ jsx22(
|
|
13902
13951
|
"a",
|
|
13903
13952
|
{
|
|
13904
13953
|
href: headerMediaUrl,
|
|
@@ -13906,10 +13955,10 @@ function TemplateSelectionBlock({
|
|
|
13906
13955
|
rel: "noopener noreferrer",
|
|
13907
13956
|
title: "\u05EA\u05E6\u05D5\u05D2\u05D4 \u05DE\u05E7\u05D3\u05D9\u05DE\u05D4 \u05E9\u05DC \u05D4\u05E7\u05D5\u05D1\u05E5",
|
|
13908
13957
|
className: "p-1 text-slate-400 hover:text-emerald-700 hover:bg-slate-200/60 rounded-md transition-colors",
|
|
13909
|
-
children: /* @__PURE__ */
|
|
13958
|
+
children: /* @__PURE__ */ jsx22(ExternalLink4, { className: "w-3.5 h-3.5" })
|
|
13910
13959
|
}
|
|
13911
13960
|
),
|
|
13912
|
-
/* @__PURE__ */
|
|
13961
|
+
/* @__PURE__ */ jsx22(
|
|
13913
13962
|
"input",
|
|
13914
13963
|
{
|
|
13915
13964
|
ref: fileInputRef,
|
|
@@ -13927,7 +13976,7 @@ function TemplateSelectionBlock({
|
|
|
13927
13976
|
disabled: isUploadingMedia
|
|
13928
13977
|
}
|
|
13929
13978
|
),
|
|
13930
|
-
/* @__PURE__ */
|
|
13979
|
+
/* @__PURE__ */ jsx22(
|
|
13931
13980
|
"button",
|
|
13932
13981
|
{
|
|
13933
13982
|
type: "button",
|
|
@@ -13939,11 +13988,11 @@ function TemplateSelectionBlock({
|
|
|
13939
13988
|
className: `inline-flex items-center gap-1.5 px-2.5 py-1 text-[11px] font-medium rounded-lg transition-colors border shadow-2xs ${isUploadingMedia ? "bg-slate-100 text-slate-400 border-slate-200 cursor-not-allowed" : hasValidMedia ? "bg-white text-slate-700 hover:bg-slate-50 border-slate-200 hover:border-slate-300" : "bg-emerald-600 text-white hover:bg-emerald-700 border-emerald-600"}`,
|
|
13940
13989
|
title: hasValidMedia ? "\u05D4\u05D7\u05DC\u05E3 \u05E7\u05D5\u05D1\u05E5 \u05DE\u05D3\u05D9\u05D4 \u05DC\u05EA\u05D1\u05E0\u05D9\u05EA \u05D6\u05D5" : `${uploadButtonLabel} \u05DC\u05EA\u05D1\u05E0\u05D9\u05EA \u05D6\u05D5`,
|
|
13941
13990
|
children: isUploadingMedia ? /* @__PURE__ */ jsxs18(Fragment5, { children: [
|
|
13942
|
-
/* @__PURE__ */
|
|
13943
|
-
/* @__PURE__ */
|
|
13991
|
+
/* @__PURE__ */ jsx22(Loader25, { className: "w-3.5 h-3.5 animate-spin" }),
|
|
13992
|
+
/* @__PURE__ */ jsx22("span", { children: "\u05DE\u05E2\u05DC\u05D4..." })
|
|
13944
13993
|
] }) : /* @__PURE__ */ jsxs18(Fragment5, { children: [
|
|
13945
|
-
/* @__PURE__ */
|
|
13946
|
-
/* @__PURE__ */
|
|
13994
|
+
/* @__PURE__ */ jsx22(Upload3, { className: "w-3.5 h-3.5" }),
|
|
13995
|
+
/* @__PURE__ */ jsx22("span", { children: hasValidMedia ? "\u05D4\u05D7\u05DC\u05E3 \u05E7\u05D5\u05D1\u05E5" : uploadButtonLabel })
|
|
13947
13996
|
] })
|
|
13948
13997
|
}
|
|
13949
13998
|
)
|
|
@@ -13952,13 +14001,13 @@ function TemplateSelectionBlock({
|
|
|
13952
14001
|
})(),
|
|
13953
14002
|
selectedTemplate && templateVariables.length > 0 && /* @__PURE__ */ jsxs18("div", { className: "shrink-0 flex flex-col gap-1.5 pt-2 border-t border-slate-200/80 pb-0", children: [
|
|
13954
14003
|
/* @__PURE__ */ jsxs18("div", { className: "flex items-center justify-between shrink-0", children: [
|
|
13955
|
-
/* @__PURE__ */
|
|
14004
|
+
/* @__PURE__ */ jsx22("span", { className: "text-[11px] font-bold text-slate-700", children: "\u05DE\u05D9\u05E4\u05D5\u05D9 \u05DE\u05E9\u05EA\u05E0\u05D9\u05DD" }),
|
|
13956
14005
|
/* @__PURE__ */ jsxs18("span", { className: "text-[9px] font-semibold text-emerald-700 bg-emerald-50 px-1.5 py-0.5 rounded border border-emerald-200", children: [
|
|
13957
14006
|
templateVariables.length,
|
|
13958
14007
|
" \u05DE\u05E9\u05EA\u05E0\u05D9\u05DD"
|
|
13959
14008
|
] })
|
|
13960
14009
|
] }),
|
|
13961
|
-
/* @__PURE__ */
|
|
14010
|
+
/* @__PURE__ */ jsx22("div", { className: "max-h-48 overflow-y-auto space-y-1.5 pr-0.5", children: templateVariables.map((varKey) => {
|
|
13962
14011
|
var _a;
|
|
13963
14012
|
const mapping = variableMapping[varKey] || { type: "column", value: "" };
|
|
13964
14013
|
const isStatic = mapping.type === "static";
|
|
@@ -13968,9 +14017,9 @@ function TemplateSelectionBlock({
|
|
|
13968
14017
|
{
|
|
13969
14018
|
className: "flex items-center gap-1.5 p-1 bg-white border border-slate-200 rounded-xl text-xs shrink-0",
|
|
13970
14019
|
children: [
|
|
13971
|
-
/* @__PURE__ */
|
|
14020
|
+
/* @__PURE__ */ jsx22("span", { className: "px-2 py-0.5 bg-emerald-50 text-emerald-800 font-mono font-bold text-[11px] rounded-lg border border-emerald-200/80 shrink-0", children: `{{${varKey}}}` }),
|
|
13972
14021
|
/* @__PURE__ */ jsxs18("div", { className: "inline-flex items-center p-0.5 bg-slate-100 rounded-lg border border-slate-200/80 shrink-0 text-[10px] font-medium", children: [
|
|
13973
|
-
/* @__PURE__ */
|
|
14022
|
+
/* @__PURE__ */ jsx22(
|
|
13974
14023
|
"button",
|
|
13975
14024
|
{
|
|
13976
14025
|
type: "button",
|
|
@@ -13979,7 +14028,7 @@ function TemplateSelectionBlock({
|
|
|
13979
14028
|
children: "\u05E2\u05DE\u05D5\u05D3\u05D4"
|
|
13980
14029
|
}
|
|
13981
14030
|
),
|
|
13982
|
-
/* @__PURE__ */
|
|
14031
|
+
/* @__PURE__ */ jsx22(
|
|
13983
14032
|
"button",
|
|
13984
14033
|
{
|
|
13985
14034
|
type: "button",
|
|
@@ -13989,7 +14038,7 @@ function TemplateSelectionBlock({
|
|
|
13989
14038
|
}
|
|
13990
14039
|
)
|
|
13991
14040
|
] }),
|
|
13992
|
-
isStatic ? /* @__PURE__ */
|
|
14041
|
+
isStatic ? /* @__PURE__ */ jsx22(
|
|
13993
14042
|
"input",
|
|
13994
14043
|
{
|
|
13995
14044
|
type: "text",
|
|
@@ -14006,12 +14055,12 @@ function TemplateSelectionBlock({
|
|
|
14006
14055
|
onChange: (e) => handleVariableValueChange(varKey, e.target.value),
|
|
14007
14056
|
className: "w-full h-7 pr-2.5 pl-6 text-[11px] rounded-lg border border-slate-200 bg-white text-slate-700 focus:border-emerald-500 focus:ring-1 focus:ring-emerald-500/20 cursor-pointer truncate appearance-none",
|
|
14008
14057
|
children: [
|
|
14009
|
-
/* @__PURE__ */
|
|
14010
|
-
textableColumnOptions.map((opt) => /* @__PURE__ */
|
|
14058
|
+
/* @__PURE__ */ jsx22("option", { value: "", children: "\u05D1\u05D7\u05E8 \u05E2\u05DE\u05D5\u05D3\u05D4..." }),
|
|
14059
|
+
textableColumnOptions.map((opt) => /* @__PURE__ */ jsx22("option", { value: opt.id, children: opt.label }, opt.id))
|
|
14011
14060
|
]
|
|
14012
14061
|
}
|
|
14013
14062
|
),
|
|
14014
|
-
/* @__PURE__ */
|
|
14063
|
+
/* @__PURE__ */ jsx22(ChevronDown4, { className: "w-3 h-3 text-slate-400 absolute left-2 top-1/2 -translate-y-1/2 pointer-events-none" })
|
|
14015
14064
|
] })
|
|
14016
14065
|
]
|
|
14017
14066
|
},
|
|
@@ -14031,7 +14080,7 @@ import {
|
|
|
14031
14080
|
CheckSquare,
|
|
14032
14081
|
RefreshCw
|
|
14033
14082
|
} from "lucide-react";
|
|
14034
|
-
import { Fragment as Fragment6, jsx as
|
|
14083
|
+
import { Fragment as Fragment6, jsx as jsx23, jsxs as jsxs19 } from "react/jsx-runtime";
|
|
14035
14084
|
function DynamicFiltersBlock({
|
|
14036
14085
|
filterableColumns,
|
|
14037
14086
|
filters,
|
|
@@ -14050,9 +14099,9 @@ function DynamicFiltersBlock({
|
|
|
14050
14099
|
/* @__PURE__ */ jsxs19("div", { className: "space-y-2", children: [
|
|
14051
14100
|
/* @__PURE__ */ jsxs19("div", { className: "flex items-center justify-between pb-2 border-b border-slate-200/70 shrink-0", children: [
|
|
14052
14101
|
/* @__PURE__ */ jsxs19("div", { className: "flex items-center gap-2", children: [
|
|
14053
|
-
/* @__PURE__ */
|
|
14054
|
-
/* @__PURE__ */
|
|
14055
|
-
activeFiltersCount > 0 && /* @__PURE__ */
|
|
14102
|
+
/* @__PURE__ */ jsx23(Filter3, { className: "w-4 h-4 text-emerald-600" }),
|
|
14103
|
+
/* @__PURE__ */ jsx23("span", { className: "text-xs font-bold text-slate-800", children: "\u05E1\u05D9\u05E0\u05D5\u05DF \u05D3\u05D9\u05E0\u05DE\u05D9" }),
|
|
14104
|
+
activeFiltersCount > 0 && /* @__PURE__ */ jsx23("span", { className: "text-[10px] font-bold px-1.5 py-0.5 rounded-full bg-emerald-100 text-emerald-800 border border-emerald-200", children: activeFiltersCount })
|
|
14056
14105
|
] }),
|
|
14057
14106
|
activeFiltersCount > 0 && /* @__PURE__ */ jsxs19(
|
|
14058
14107
|
"button",
|
|
@@ -14061,16 +14110,16 @@ function DynamicFiltersBlock({
|
|
|
14061
14110
|
onClick: handleClearFilters,
|
|
14062
14111
|
className: "text-[11px] text-rose-600 hover:text-rose-700 font-semibold hover:underline flex items-center gap-1 cursor-pointer",
|
|
14063
14112
|
children: [
|
|
14064
|
-
/* @__PURE__ */
|
|
14065
|
-
/* @__PURE__ */
|
|
14113
|
+
/* @__PURE__ */ jsx23(X10, { className: "w-3 h-3" }),
|
|
14114
|
+
/* @__PURE__ */ jsx23("span", { children: "\u05E0\u05E7\u05D4" })
|
|
14066
14115
|
]
|
|
14067
14116
|
}
|
|
14068
14117
|
)
|
|
14069
14118
|
] }),
|
|
14070
|
-
/* @__PURE__ */
|
|
14071
|
-
/* @__PURE__ */
|
|
14072
|
-
/* @__PURE__ */
|
|
14073
|
-
] }) : /* @__PURE__ */
|
|
14119
|
+
/* @__PURE__ */ jsx23("div", { className: "py-1", children: filterableColumns.length === 0 ? /* @__PURE__ */ jsxs19("div", { className: "flex flex-col items-center justify-center text-center p-4 text-xs text-slate-400 gap-1", children: [
|
|
14120
|
+
/* @__PURE__ */ jsx23("span", { children: "\u05D0\u05D9\u05DF \u05E9\u05D3\u05D5\u05EA \u05DC\u05E1\u05D9\u05E0\u05D5\u05DF \u05D1\u05D8\u05D1\u05DC\u05D4 \u05D6\u05D5" }),
|
|
14121
|
+
/* @__PURE__ */ jsx23("span", { className: "text-[10px] text-slate-400", children: "\u05E9\u05D3\u05D5\u05EA \u05DE\u05E1\u05D5\u05D2 \u05E7\u05E9\u05E8 \u05D5\u05D1\u05D5\u05DC\u05D9\u05D0\u05E0\u05D9 \u05D1\u05DC\u05D1\u05D3" })
|
|
14122
|
+
] }) : /* @__PURE__ */ jsx23("div", { className: "grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-1 gap-2", children: filterableColumns.map((col) => {
|
|
14074
14123
|
var _a, _b, _c;
|
|
14075
14124
|
const colType = (_a = col.type) == null ? void 0 : _a.toUpperCase();
|
|
14076
14125
|
const isBoolean = colType === "BOOLEAN";
|
|
@@ -14080,7 +14129,7 @@ function DynamicFiltersBlock({
|
|
|
14080
14129
|
const options = ((_c = getRelationOptionsForCol ? getRelationOptionsForCol(col.name) : []) == null ? void 0 : _c.length) > 0 ? getRelationOptionsForCol(col.name) : relationOptions[col.name] && relationOptions[col.name].length > 0 ? relationOptions[col.name] : refTableId && relationOptions[refTableId] && relationOptions[refTableId].length > 0 ? relationOptions[refTableId] : col.id && relationOptions[col.id] && relationOptions[col.id].length > 0 ? relationOptions[col.id] : [];
|
|
14081
14130
|
return /* @__PURE__ */ jsxs19("div", { className: "space-y-1", children: [
|
|
14082
14131
|
/* @__PURE__ */ jsxs19("div", { className: "flex items-center justify-between", children: [
|
|
14083
|
-
/* @__PURE__ */
|
|
14132
|
+
/* @__PURE__ */ jsx23(
|
|
14084
14133
|
"label",
|
|
14085
14134
|
{
|
|
14086
14135
|
className: "text-[11px] font-semibold text-slate-700 truncate max-w-[130px]",
|
|
@@ -14088,7 +14137,7 @@ function DynamicFiltersBlock({
|
|
|
14088
14137
|
children: col.name
|
|
14089
14138
|
}
|
|
14090
14139
|
),
|
|
14091
|
-
/* @__PURE__ */
|
|
14140
|
+
/* @__PURE__ */ jsx23("span", { className: "text-[9px] text-slate-400 font-mono", children: isBoolean ? "\u05DB\u05DF/\u05DC\u05D0" : "\u05E7\u05E9\u05E8" })
|
|
14092
14141
|
] }),
|
|
14093
14142
|
/* @__PURE__ */ jsxs19("div", { className: "relative", children: [
|
|
14094
14143
|
/* @__PURE__ */ jsxs19(
|
|
@@ -14098,15 +14147,15 @@ function DynamicFiltersBlock({
|
|
|
14098
14147
|
onChange: (e) => handleFilterChange(col.name, e.target.value),
|
|
14099
14148
|
className: `w-full h-8 px-2 pr-2.5 pl-6 text-[11px] rounded-lg border transition-all appearance-none bg-white cursor-pointer truncate ${isActive ? "border-emerald-500 bg-emerald-50/20 text-emerald-900 font-medium ring-1 ring-emerald-500/20" : "border-slate-200 text-slate-700 hover:border-slate-300 focus:border-emerald-500"}`,
|
|
14100
14149
|
children: [
|
|
14101
|
-
/* @__PURE__ */
|
|
14150
|
+
/* @__PURE__ */ jsx23("option", { value: "", children: "\u05D4\u05DB\u05DC" }),
|
|
14102
14151
|
isBoolean ? /* @__PURE__ */ jsxs19(Fragment6, { children: [
|
|
14103
|
-
/* @__PURE__ */
|
|
14104
|
-
/* @__PURE__ */
|
|
14105
|
-
] }) : options.map((opt) => /* @__PURE__ */
|
|
14152
|
+
/* @__PURE__ */ jsx23("option", { value: "true", children: "\u05DB\u05DF" }),
|
|
14153
|
+
/* @__PURE__ */ jsx23("option", { value: "false", children: "\u05DC\u05D0" })
|
|
14154
|
+
] }) : options.map((opt) => /* @__PURE__ */ jsx23("option", { value: opt.id || opt._id, children: getRelationOptionLabel(opt, col, relationOptions) }, opt.id || opt._id))
|
|
14106
14155
|
]
|
|
14107
14156
|
}
|
|
14108
14157
|
),
|
|
14109
|
-
/* @__PURE__ */
|
|
14158
|
+
/* @__PURE__ */ jsx23(ChevronDown5, { className: "w-3 h-3 text-slate-400 absolute left-2 top-1/2 -translate-y-1/2 pointer-events-none" })
|
|
14110
14159
|
] })
|
|
14111
14160
|
] }, col.name);
|
|
14112
14161
|
}) }) })
|
|
@@ -14117,7 +14166,7 @@ function DynamicFiltersBlock({
|
|
|
14117
14166
|
{
|
|
14118
14167
|
className: `inline-flex items-center gap-1 px-2 py-0.5 rounded-lg text-[11px] font-semibold border transition-all ${selectedRowIds.length > 0 ? "bg-emerald-50 text-emerald-800 border-emerald-200 shadow-2xs" : "bg-white text-slate-600 border-slate-200"}`,
|
|
14119
14168
|
children: [
|
|
14120
|
-
/* @__PURE__ */
|
|
14169
|
+
/* @__PURE__ */ jsx23(
|
|
14121
14170
|
CheckSquare,
|
|
14122
14171
|
{
|
|
14123
14172
|
className: `w-3 h-3 ${selectedRowIds.length > 0 ? "text-emerald-600" : "text-slate-400"}`
|
|
@@ -14130,7 +14179,7 @@ function DynamicFiltersBlock({
|
|
|
14130
14179
|
]
|
|
14131
14180
|
}
|
|
14132
14181
|
),
|
|
14133
|
-
/* @__PURE__ */
|
|
14182
|
+
/* @__PURE__ */ jsx23(
|
|
14134
14183
|
"button",
|
|
14135
14184
|
{
|
|
14136
14185
|
type: "button",
|
|
@@ -14138,7 +14187,7 @@ function DynamicFiltersBlock({
|
|
|
14138
14187
|
disabled: isLoadingTableData,
|
|
14139
14188
|
className: "p-1.5 text-slate-500 hover:text-slate-800 bg-white hover:bg-slate-100 border border-slate-200 rounded-lg transition-colors cursor-pointer disabled:opacity-50 shrink-0",
|
|
14140
14189
|
title: "\u05E8\u05E2\u05E0\u05DF \u05E0\u05EA\u05D5\u05E0\u05D9 \u05D8\u05D1\u05DC\u05D4",
|
|
14141
|
-
children: /* @__PURE__ */
|
|
14190
|
+
children: /* @__PURE__ */ jsx23(
|
|
14142
14191
|
RefreshCw,
|
|
14143
14192
|
{
|
|
14144
14193
|
className: `w-3.5 h-3.5 ${isLoadingTableData ? "animate-spin text-emerald-600" : ""}`
|
|
@@ -14161,7 +14210,7 @@ import {
|
|
|
14161
14210
|
X as X11,
|
|
14162
14211
|
CheckSquare as CheckSquare2
|
|
14163
14212
|
} from "lucide-react";
|
|
14164
|
-
import { Fragment as Fragment7, jsx as
|
|
14213
|
+
import { Fragment as Fragment7, jsx as jsx24, jsxs as jsxs20 } from "react/jsx-runtime";
|
|
14165
14214
|
function SettingsAndActionsBlock({
|
|
14166
14215
|
isScanningPhoneColumns,
|
|
14167
14216
|
targetPhoneOptions,
|
|
@@ -14206,27 +14255,27 @@ function SettingsAndActionsBlock({
|
|
|
14206
14255
|
var _a;
|
|
14207
14256
|
return /* @__PURE__ */ jsxs20("div", { className: "col-span-12 lg:col-span-4 min-h-[26rem] flex flex-col justify-between bg-slate-50/70 border border-slate-200 rounded-2xl p-3.5 gap-2", children: [
|
|
14208
14257
|
/* @__PURE__ */ jsxs20("div", { className: "space-y-2", children: [
|
|
14209
|
-
/* @__PURE__ */
|
|
14210
|
-
/* @__PURE__ */
|
|
14211
|
-
/* @__PURE__ */
|
|
14258
|
+
/* @__PURE__ */ jsx24("div", { className: "flex items-center justify-between pb-2 border-b border-slate-200/70 shrink-0", children: /* @__PURE__ */ jsxs20("div", { className: "flex items-center gap-2", children: [
|
|
14259
|
+
/* @__PURE__ */ jsx24("span", { className: "text-sm", children: "\u2699\uFE0F" }),
|
|
14260
|
+
/* @__PURE__ */ jsx24("span", { className: "text-xs font-bold text-slate-800", children: "\u05D4\u05D2\u05D3\u05E8\u05D5\u05EA \u05D5\u05E4\u05E2\u05D5\u05DC\u05D5\u05EA" })
|
|
14212
14261
|
] }) }),
|
|
14213
14262
|
/* @__PURE__ */ jsxs20("div", { className: "space-y-2.5 py-1", children: [
|
|
14214
14263
|
isScanningPhoneColumns && targetPhoneOptions.length === 0 ? /* @__PURE__ */ jsxs20("div", { className: "p-2.5 bg-slate-100/80 border border-slate-200 rounded-xl text-slate-500 text-xs flex items-center gap-2 shadow-2xs animate-pulse", children: [
|
|
14215
|
-
/* @__PURE__ */
|
|
14216
|
-
/* @__PURE__ */
|
|
14264
|
+
/* @__PURE__ */ jsx24(Loader26, { className: "w-4 h-4 animate-spin text-emerald-600 shrink-0" }),
|
|
14265
|
+
/* @__PURE__ */ jsx24("span", { className: "font-medium text-[11px] text-slate-600", children: "\u05E1\u05D5\u05E8\u05E7 \u05E2\u05DE\u05D5\u05D3\u05D5\u05EA \u05D8\u05DC\u05E4\u05D5\u05DF \u05D1\u05D8\u05D1\u05DC\u05D4 \u05D5\u05D1\u05D8\u05D1\u05DC\u05D0\u05D5\u05EA \u05DE\u05E7\u05D5\u05E9\u05E8\u05D5\u05EA..." })
|
|
14217
14266
|
] }) : targetPhoneOptions.length === 0 ? /* @__PURE__ */ jsxs20("div", { className: "p-2.5 bg-amber-50 border border-amber-200 rounded-xl text-amber-900 text-xs flex items-center gap-2 shadow-2xs", children: [
|
|
14218
|
-
/* @__PURE__ */
|
|
14219
|
-
/* @__PURE__ */
|
|
14267
|
+
/* @__PURE__ */ jsx24(AlertCircle4, { className: "w-4 h-4 text-amber-600 shrink-0" }),
|
|
14268
|
+
/* @__PURE__ */ jsx24("span", { className: "font-semibold text-[11px]", children: "\u05DC\u05D0 \u05E0\u05DE\u05E6\u05D0\u05D4 \u05E2\u05DE\u05D5\u05D3\u05EA \u05D8\u05DC\u05E4\u05D5\u05DF \u05D1\u05D8\u05D1\u05DC\u05D4" })
|
|
14220
14269
|
] }) : targetPhoneOptions.length === 1 && targetPhoneOptions[0].type === "DIRECT" ? /* @__PURE__ */ jsxs20("div", { className: "space-y-1", children: [
|
|
14221
14270
|
/* @__PURE__ */ jsxs20("div", { className: "flex items-center justify-between", children: [
|
|
14222
14271
|
/* @__PURE__ */ jsxs20("label", { className: "text-[11px] font-semibold text-slate-700 flex items-center gap-1", children: [
|
|
14223
|
-
/* @__PURE__ */
|
|
14224
|
-
/* @__PURE__ */
|
|
14272
|
+
/* @__PURE__ */ jsx24(Phone3, { className: "w-3 h-3 text-slate-400" }),
|
|
14273
|
+
/* @__PURE__ */ jsx24("span", { children: "\u05E2\u05DE\u05D5\u05D3\u05EA \u05D8\u05DC\u05E4\u05D5\u05DF \u05D9\u05E2\u05D3" })
|
|
14225
14274
|
] }),
|
|
14226
|
-
/* @__PURE__ */
|
|
14275
|
+
/* @__PURE__ */ jsx24("span", { className: "text-[9px] font-medium text-slate-500 bg-slate-100 px-1.5 py-0.5 rounded border border-slate-200", children: "\u05D6\u05D5\u05D4\u05EA\u05D4 \u05D0\u05D5\u05D8\u05D5\u05DE\u05D8\u05D9\u05EA" })
|
|
14227
14276
|
] }),
|
|
14228
14277
|
/* @__PURE__ */ jsxs20("div", { className: "relative", children: [
|
|
14229
|
-
/* @__PURE__ */
|
|
14278
|
+
/* @__PURE__ */ jsx24(
|
|
14230
14279
|
"input",
|
|
14231
14280
|
{
|
|
14232
14281
|
type: "text",
|
|
@@ -14236,27 +14285,27 @@ function SettingsAndActionsBlock({
|
|
|
14236
14285
|
className: "w-full h-8 px-2.5 pl-7 text-[11px] rounded-lg border border-slate-200 bg-slate-100 text-slate-600 cursor-not-allowed font-medium select-none"
|
|
14237
14286
|
}
|
|
14238
14287
|
),
|
|
14239
|
-
/* @__PURE__ */
|
|
14288
|
+
/* @__PURE__ */ jsx24(Phone3, { className: "w-3.5 h-3.5 text-slate-400 absolute left-2 top-1/2 -translate-y-1/2 pointer-events-none" })
|
|
14240
14289
|
] })
|
|
14241
14290
|
] }) : /* @__PURE__ */ jsxs20("div", { className: "space-y-1", children: [
|
|
14242
14291
|
/* @__PURE__ */ jsxs20("div", { className: "flex items-center justify-between", children: [
|
|
14243
14292
|
/* @__PURE__ */ jsxs20("label", { className: "text-[11px] font-semibold text-slate-700 flex items-center gap-1", children: [
|
|
14244
|
-
/* @__PURE__ */
|
|
14245
|
-
/* @__PURE__ */
|
|
14293
|
+
/* @__PURE__ */ jsx24(Phone3, { className: "w-3 h-3 text-slate-400" }),
|
|
14294
|
+
/* @__PURE__ */ jsx24("span", { children: "\u05E2\u05DE\u05D5\u05D3\u05EA \u05D8\u05DC\u05E4\u05D5\u05DF \u05D9\u05E2\u05D3" })
|
|
14246
14295
|
] }),
|
|
14247
|
-
/* @__PURE__ */
|
|
14296
|
+
/* @__PURE__ */ jsx24("span", { className: "text-[9px] text-slate-400", children: "\u05D7\u05D5\u05D1\u05D4" })
|
|
14248
14297
|
] }),
|
|
14249
14298
|
/* @__PURE__ */ jsxs20("div", { className: "relative", children: [
|
|
14250
|
-
/* @__PURE__ */
|
|
14299
|
+
/* @__PURE__ */ jsx24(
|
|
14251
14300
|
"select",
|
|
14252
14301
|
{
|
|
14253
14302
|
value: phoneColumnId,
|
|
14254
14303
|
onChange: (e) => setPhoneColumnId(e.target.value),
|
|
14255
14304
|
className: "w-full h-8 px-2.5 pr-2.5 pl-6 text-[11px] rounded-lg border border-slate-200 bg-white text-slate-700 appearance-none focus:border-emerald-500 cursor-pointer",
|
|
14256
|
-
children: targetPhoneOptions.map((opt) => /* @__PURE__ */
|
|
14305
|
+
children: targetPhoneOptions.map((opt) => /* @__PURE__ */ jsx24("option", { value: opt.id, children: opt.label }, opt.id))
|
|
14257
14306
|
}
|
|
14258
14307
|
),
|
|
14259
|
-
/* @__PURE__ */
|
|
14308
|
+
/* @__PURE__ */ jsx24(ChevronDown6, { className: "w-3 h-3 text-slate-400 absolute left-2 top-1/2 -translate-y-1/2 pointer-events-none" })
|
|
14260
14309
|
] })
|
|
14261
14310
|
] }),
|
|
14262
14311
|
/* @__PURE__ */ jsxs20("div", { className: "space-y-1", children: [
|
|
@@ -14267,14 +14316,14 @@ function SettingsAndActionsBlock({
|
|
|
14267
14316
|
htmlFor: "whatsapp-auto-select-records",
|
|
14268
14317
|
className: "text-[11px] font-semibold text-slate-700 flex items-center gap-1 cursor-pointer",
|
|
14269
14318
|
children: [
|
|
14270
|
-
/* @__PURE__ */
|
|
14271
|
-
/* @__PURE__ */
|
|
14319
|
+
/* @__PURE__ */ jsx24(CheckSquare2, { className: "w-3 h-3 text-slate-400" }),
|
|
14320
|
+
/* @__PURE__ */ jsx24("span", { children: "\u05D1\u05D7\u05E8 \u05E8\u05E9\u05D5\u05DE\u05D4 (\u05DB\u05DE\u05D5\u05EA \u05E8\u05E9\u05D5\u05DE\u05D5\u05EA \u05DE\u05E8\u05D1\u05D9\u05EA)" })
|
|
14272
14321
|
]
|
|
14273
14322
|
}
|
|
14274
14323
|
),
|
|
14275
14324
|
autoSelectCount !== null && autoSelectCount > 0 && /* @__PURE__ */ jsxs20("div", { className: "flex items-center gap-1.5 animate-in fade-in duration-150", children: [
|
|
14276
14325
|
/* @__PURE__ */ jsxs20("span", { className: "text-[9px] font-semibold text-emerald-700 bg-emerald-50 border border-emerald-200/80 px-1.5 py-0.5 rounded-full flex items-center gap-1", children: [
|
|
14277
|
-
/* @__PURE__ */
|
|
14326
|
+
/* @__PURE__ */ jsx24("span", { className: "w-1.5 h-1.5 rounded-full bg-emerald-500 animate-pulse" }),
|
|
14278
14327
|
/* @__PURE__ */ jsxs20("span", { children: [
|
|
14279
14328
|
"\u05E0\u05D1\u05D7\u05E8\u05D5 ",
|
|
14280
14329
|
selectedRowIdsCount,
|
|
@@ -14290,14 +14339,14 @@ function SettingsAndActionsBlock({
|
|
|
14290
14339
|
title: "\u05E0\u05E7\u05D4 \u05D1\u05D7\u05D9\u05E8\u05D4 \u05D0\u05D5\u05D8\u05D5\u05DE\u05D8\u05D9\u05EA",
|
|
14291
14340
|
"aria-label": "Clear auto select count",
|
|
14292
14341
|
children: [
|
|
14293
|
-
/* @__PURE__ */
|
|
14294
|
-
/* @__PURE__ */
|
|
14342
|
+
/* @__PURE__ */ jsx24(X11, { className: "w-3 h-3" }),
|
|
14343
|
+
/* @__PURE__ */ jsx24("span", { children: "\u05E0\u05E7\u05D4" })
|
|
14295
14344
|
]
|
|
14296
14345
|
}
|
|
14297
14346
|
)
|
|
14298
14347
|
] })
|
|
14299
14348
|
] }),
|
|
14300
|
-
/* @__PURE__ */
|
|
14349
|
+
/* @__PURE__ */ jsx24("div", { className: "relative", children: /* @__PURE__ */ jsx24(
|
|
14301
14350
|
"input",
|
|
14302
14351
|
{
|
|
14303
14352
|
id: "whatsapp-auto-select-records",
|
|
@@ -14327,7 +14376,7 @@ function SettingsAndActionsBlock({
|
|
|
14327
14376
|
] }),
|
|
14328
14377
|
(selectedPhoneOption == null ? void 0 : selectedPhoneOption.type) === "SUBTABLE" && /* @__PURE__ */ jsxs20("div", { className: "p-2.5 bg-emerald-50/60 border border-emerald-200/80 rounded-xl space-y-2 animate-in fade-in duration-150", children: [
|
|
14329
14378
|
/* @__PURE__ */ jsxs20("div", { className: "flex items-center gap-1.5 pb-1 border-b border-emerald-200/60", children: [
|
|
14330
|
-
/* @__PURE__ */
|
|
14379
|
+
/* @__PURE__ */ jsx24(Users, { className: "w-3.5 h-3.5 text-emerald-700" }),
|
|
14331
14380
|
/* @__PURE__ */ jsxs20("span", { className: "text-[10.5px] font-bold text-emerald-900 truncate", children: [
|
|
14332
14381
|
"\u05D4\u05D2\u05D3\u05E8\u05D5\u05EA \u05E9\u05DC\u05D9\u05D7\u05D4 \u05DC\u05EA\u05EA-\u05D8\u05D1\u05DC\u05D4 \u05DE\u05E7\u05D5\u05E9\u05E8\u05EA (",
|
|
14333
14382
|
selectedPhoneOption.parentColumnName,
|
|
@@ -14335,7 +14384,7 @@ function SettingsAndActionsBlock({
|
|
|
14335
14384
|
] })
|
|
14336
14385
|
] }),
|
|
14337
14386
|
/* @__PURE__ */ jsxs20("div", { className: "space-y-1", children: [
|
|
14338
|
-
/* @__PURE__ */
|
|
14387
|
+
/* @__PURE__ */ jsx24("div", { className: "flex items-center justify-between", children: /* @__PURE__ */ jsx24("label", { className: "text-[10px] font-semibold text-slate-700 block", children: "\u05E1\u05E0\u05DF \u05E0\u05E6\u05D9\u05D2\u05D9\u05DD (\u05D1\u05EA\u05EA-\u05D4\u05D8\u05D1\u05DC\u05D4) \u05DC\u05E4\u05D9 \u05E2\u05DE\u05D5\u05D3\u05D4:" }) }),
|
|
14339
14388
|
/* @__PURE__ */ jsxs20("div", { className: "relative", children: [
|
|
14340
14389
|
/* @__PURE__ */ jsxs20(
|
|
14341
14390
|
"select",
|
|
@@ -14347,7 +14396,7 @@ function SettingsAndActionsBlock({
|
|
|
14347
14396
|
},
|
|
14348
14397
|
className: "w-full h-7 px-2 pr-2 pl-5 text-[11px] rounded-lg border border-slate-200 bg-white text-slate-700 appearance-none focus:border-emerald-500 cursor-pointer truncate",
|
|
14349
14398
|
children: [
|
|
14350
|
-
/* @__PURE__ */
|
|
14399
|
+
/* @__PURE__ */ jsx24("option", { value: "", children: "\u05DB\u05DC \u05D4\u05E0\u05E6\u05D9\u05D2\u05D9\u05DD \u05E9\u05E0\u05D1\u05D7\u05E8\u05D5 (\u05DC\u05DC\u05D0 \u05E1\u05D9\u05E0\u05D5\u05DF \u05E0\u05D5\u05E1\u05E3)" }),
|
|
14351
14400
|
subtableFilterableColumns.map((col) => {
|
|
14352
14401
|
var _a2;
|
|
14353
14402
|
return /* @__PURE__ */ jsxs20("option", { value: col.name, children: [
|
|
@@ -14360,13 +14409,13 @@ function SettingsAndActionsBlock({
|
|
|
14360
14409
|
]
|
|
14361
14410
|
}
|
|
14362
14411
|
),
|
|
14363
|
-
/* @__PURE__ */
|
|
14412
|
+
/* @__PURE__ */ jsx24(ChevronDown6, { className: "w-3 h-3 text-slate-400 absolute left-1.5 top-1/2 -translate-y-1/2 pointer-events-none" })
|
|
14364
14413
|
] })
|
|
14365
14414
|
] }),
|
|
14366
14415
|
selectedSubtableFilterCol && /* @__PURE__ */ jsxs20("div", { className: "space-y-1 animate-in fade-in duration-150", children: [
|
|
14367
14416
|
/* @__PURE__ */ jsxs20("div", { className: "flex items-center justify-between", children: [
|
|
14368
|
-
/* @__PURE__ */
|
|
14369
|
-
!subtableFilterValue && /* @__PURE__ */
|
|
14417
|
+
/* @__PURE__ */ jsx24("label", { className: "text-[10px] font-semibold text-slate-700 block", children: "\u05E9\u05D4\u05E2\u05E8\u05DA \u05E9\u05DC\u05D4\u05DD \u05E9\u05D5\u05D5\u05D4 \u05DC:" }),
|
|
14418
|
+
!subtableFilterValue && /* @__PURE__ */ jsx24("span", { className: "text-[9px] text-amber-600 font-medium", children: "\u05D1\u05D7\u05E8 \u05E2\u05E8\u05DA..." })
|
|
14370
14419
|
] }),
|
|
14371
14420
|
/* @__PURE__ */ jsxs20("div", { className: "relative", children: [
|
|
14372
14421
|
/* @__PURE__ */ jsxs20(
|
|
@@ -14376,14 +14425,14 @@ function SettingsAndActionsBlock({
|
|
|
14376
14425
|
onChange: (e) => setSubtableFilterValue(e.target.value),
|
|
14377
14426
|
className: `w-full h-7 px-2 pr-2 pl-5 text-[11px] rounded-lg border appearance-none cursor-pointer truncate transition-colors ${!subtableFilterValue ? "border-amber-400 bg-amber-50/30 text-slate-700 focus:border-amber-500 focus:ring-1 focus:ring-amber-500" : "border-slate-200 bg-white text-slate-700 focus:border-emerald-500"}`,
|
|
14378
14427
|
children: [
|
|
14379
|
-
/* @__PURE__ */
|
|
14428
|
+
/* @__PURE__ */ jsx24("option", { value: "", children: "\u05D1\u05D7\u05E8 \u05E2\u05E8\u05DA \u05DC\u05E1\u05D9\u05E0\u05D5\u05DF..." }),
|
|
14380
14429
|
((_a = selectedSubtableFilterCol.type) == null ? void 0 : _a.toUpperCase()) === "BOOLEAN" ? /* @__PURE__ */ jsxs20(Fragment7, { children: [
|
|
14381
|
-
/* @__PURE__ */
|
|
14382
|
-
/* @__PURE__ */
|
|
14430
|
+
/* @__PURE__ */ jsx24("option", { value: "true", children: "\u05DB\u05DF (true)" }),
|
|
14431
|
+
/* @__PURE__ */ jsx24("option", { value: "false", children: "\u05DC\u05D0 (false)" })
|
|
14383
14432
|
] }) : getRelationOptionsForCol(
|
|
14384
14433
|
selectedSubtableFilterCol.name,
|
|
14385
14434
|
selectedPhoneOption.parentColumnName
|
|
14386
|
-
).map((opt) => /* @__PURE__ */
|
|
14435
|
+
).map((opt) => /* @__PURE__ */ jsx24("option", { value: opt.id, children: getRelationOptionLabel(
|
|
14387
14436
|
opt,
|
|
14388
14437
|
selectedSubtableFilterCol,
|
|
14389
14438
|
relationOptions
|
|
@@ -14391,11 +14440,11 @@ function SettingsAndActionsBlock({
|
|
|
14391
14440
|
]
|
|
14392
14441
|
}
|
|
14393
14442
|
),
|
|
14394
|
-
/* @__PURE__ */
|
|
14443
|
+
/* @__PURE__ */ jsx24(ChevronDown6, { className: "w-3 h-3 text-slate-400 absolute left-1.5 top-1/2 -translate-y-1/2 pointer-events-none" })
|
|
14395
14444
|
] })
|
|
14396
14445
|
] }),
|
|
14397
14446
|
/* @__PURE__ */ jsxs20("div", { className: "space-y-1", children: [
|
|
14398
|
-
/* @__PURE__ */
|
|
14447
|
+
/* @__PURE__ */ jsx24("label", { className: "text-[10px] font-semibold text-slate-700 block", children: "\u05DE\u05D2\u05D1\u05DC\u05EA \u05E9\u05DC\u05D9\u05D7\u05D4 \u05DC\u05DB\u05DC \u05E9\u05D5\u05E8\u05D4 \u05E8\u05D0\u05E9\u05D9\u05EA:" }),
|
|
14399
14448
|
/* @__PURE__ */ jsxs20("div", { className: "relative", children: [
|
|
14400
14449
|
/* @__PURE__ */ jsxs20(
|
|
14401
14450
|
"select",
|
|
@@ -14404,19 +14453,19 @@ function SettingsAndActionsBlock({
|
|
|
14404
14453
|
onChange: (e) => setSubtableSendLimit(e.target.value),
|
|
14405
14454
|
className: "w-full h-7 px-2 pr-2 pl-5 text-[11px] rounded-lg border border-slate-200 bg-white text-slate-700 appearance-none focus:border-emerald-500 cursor-pointer truncate",
|
|
14406
14455
|
children: [
|
|
14407
|
-
/* @__PURE__ */
|
|
14408
|
-
/* @__PURE__ */
|
|
14409
|
-
/* @__PURE__ */
|
|
14456
|
+
/* @__PURE__ */ jsx24("option", { value: "PRIMARY", children: "\u05DC\u05E0\u05E6\u05D9\u05D2 \u05E8\u05D0\u05E9\u05D9 \u05D1\u05DC\u05D1\u05D3" }),
|
|
14457
|
+
/* @__PURE__ */ jsx24("option", { value: "FIRST", children: "\u05E0\u05E6\u05D9\u05D2 \u05D0\u05D7\u05D3 \u05D1\u05DC\u05D1\u05D3" }),
|
|
14458
|
+
/* @__PURE__ */ jsx24("option", { value: "ALL", children: "\u05DB\u05DC \u05D4\u05E0\u05E6\u05D9\u05D2\u05D9\u05DD" })
|
|
14410
14459
|
]
|
|
14411
14460
|
}
|
|
14412
14461
|
),
|
|
14413
|
-
/* @__PURE__ */
|
|
14462
|
+
/* @__PURE__ */ jsx24(ChevronDown6, { className: "w-3 h-3 text-slate-400 absolute left-1.5 top-1/2 -translate-y-1/2 pointer-events-none" })
|
|
14414
14463
|
] })
|
|
14415
14464
|
] })
|
|
14416
14465
|
] }),
|
|
14417
14466
|
/* @__PURE__ */ jsxs20("div", { className: "pt-2 border-t border-slate-200/70 space-y-2", children: [
|
|
14418
14467
|
/* @__PURE__ */ jsxs20("label", { className: "flex items-center gap-2 cursor-pointer select-none", children: [
|
|
14419
|
-
/* @__PURE__ */
|
|
14468
|
+
/* @__PURE__ */ jsx24(
|
|
14420
14469
|
"input",
|
|
14421
14470
|
{
|
|
14422
14471
|
type: "checkbox",
|
|
@@ -14433,13 +14482,13 @@ function SettingsAndActionsBlock({
|
|
|
14433
14482
|
className: "w-3.5 h-3.5 rounded border-slate-300 text-emerald-600 focus:ring-emerald-500 cursor-pointer"
|
|
14434
14483
|
}
|
|
14435
14484
|
),
|
|
14436
|
-
/* @__PURE__ */
|
|
14485
|
+
/* @__PURE__ */ jsx24("span", { className: "text-[11px] font-semibold text-slate-800", children: "\u05E2\u05D3\u05DB\u05DF \u05E0\u05EA\u05D5\u05E0\u05D9\u05DD \u05DC\u05D0\u05D7\u05E8 \u05E9\u05DC\u05D9\u05D7\u05D4 \u05DE\u05D5\u05E6\u05DC\u05D7\u05EA" })
|
|
14437
14486
|
] }),
|
|
14438
|
-
enablePostSendAction && /* @__PURE__ */
|
|
14487
|
+
enablePostSendAction && /* @__PURE__ */ jsx24("div", { className: "p-2 bg-slate-100/70 border border-slate-200/80 rounded-xl space-y-2 animate-in fade-in duration-150", children: postSendActionTargetOptions.length === 0 ? /* @__PURE__ */ jsx24("div", { className: "text-[10px] text-slate-400 text-center py-1", children: "\u05DC\u05D0 \u05E0\u05DE\u05E6\u05D0\u05D5 \u05E2\u05DE\u05D5\u05D3\u05D5\u05EA \u05E7\u05E9\u05E8 \u05D0\u05D5 \u05D1\u05D5\u05DC\u05D9\u05D0\u05E0\u05D9 \u05DC\u05E2\u05D3\u05DB\u05D5\u05DF" }) : /* @__PURE__ */ jsxs20(Fragment7, { children: [
|
|
14439
14488
|
/* @__PURE__ */ jsxs20("div", { className: "space-y-1", children: [
|
|
14440
14489
|
/* @__PURE__ */ jsxs20("div", { className: "flex items-center justify-between", children: [
|
|
14441
|
-
/* @__PURE__ */
|
|
14442
|
-
selectedPostSendOption && /* @__PURE__ */
|
|
14490
|
+
/* @__PURE__ */ jsx24("label", { className: "text-[10px] font-semibold text-slate-600 block", children: "\u05E2\u05DE\u05D5\u05D3\u05EA \u05D9\u05E2\u05D3 \u05DC\u05E2\u05D3\u05DB\u05D5\u05DF" }),
|
|
14491
|
+
selectedPostSendOption && /* @__PURE__ */ jsx24(
|
|
14443
14492
|
"span",
|
|
14444
14493
|
{
|
|
14445
14494
|
className: `text-[9px] font-medium px-1.5 py-0.5 rounded border ${selectedPostSendOption.targetType === "SUBTABLE" ? "bg-emerald-50 text-emerald-700 border-emerald-200" : "bg-slate-100 text-slate-600 border-slate-200"}`,
|
|
@@ -14461,18 +14510,18 @@ function SettingsAndActionsBlock({
|
|
|
14461
14510
|
},
|
|
14462
14511
|
className: "w-full h-7 px-2 pr-2 pl-5 text-[11px] rounded-lg border border-slate-200 bg-white text-slate-700 appearance-none focus:border-emerald-500 cursor-pointer truncate",
|
|
14463
14512
|
children: [
|
|
14464
|
-
/* @__PURE__ */
|
|
14465
|
-
postSendActionTargetOptions.map((opt) => /* @__PURE__ */
|
|
14513
|
+
/* @__PURE__ */ jsx24("option", { value: "", children: "\u05D1\u05D7\u05E8 \u05E2\u05DE\u05D5\u05D3\u05D4..." }),
|
|
14514
|
+
postSendActionTargetOptions.map((opt) => /* @__PURE__ */ jsx24("option", { value: opt.id, children: opt.label }, opt.id))
|
|
14466
14515
|
]
|
|
14467
14516
|
}
|
|
14468
14517
|
),
|
|
14469
|
-
/* @__PURE__ */
|
|
14518
|
+
/* @__PURE__ */ jsx24(ChevronDown6, { className: "w-3 h-3 text-slate-400 absolute left-1.5 top-1/2 -translate-y-1/2 pointer-events-none" })
|
|
14470
14519
|
] })
|
|
14471
14520
|
] }),
|
|
14472
14521
|
selectedPostSendOption && /* @__PURE__ */ jsxs20("div", { className: "space-y-1 animate-in fade-in duration-150", children: [
|
|
14473
14522
|
/* @__PURE__ */ jsxs20("div", { className: "flex items-center justify-between", children: [
|
|
14474
|
-
/* @__PURE__ */
|
|
14475
|
-
!postSendActionValue && /* @__PURE__ */
|
|
14523
|
+
/* @__PURE__ */ jsx24("label", { className: "text-[10px] font-semibold text-slate-600 block", children: "\u05E2\u05E8\u05DA \u05DC\u05E2\u05D3\u05DB\u05D5\u05DF" }),
|
|
14524
|
+
!postSendActionValue && /* @__PURE__ */ jsx24("span", { className: "text-[9px] text-amber-600 font-medium", children: "\u05D7\u05D5\u05D1\u05D4 \u05DC\u05D1\u05D7\u05D5\u05E8 \u05E2\u05E8\u05DA" })
|
|
14476
14525
|
] }),
|
|
14477
14526
|
/* @__PURE__ */ jsxs20("div", { className: "relative", children: [
|
|
14478
14527
|
/* @__PURE__ */ jsxs20(
|
|
@@ -14482,14 +14531,14 @@ function SettingsAndActionsBlock({
|
|
|
14482
14531
|
onChange: (e) => setPostSendActionValue(e.target.value),
|
|
14483
14532
|
className: `w-full h-7 px-2 pr-2 pl-5 text-[11px] rounded-lg border appearance-none cursor-pointer truncate transition-colors ${!postSendActionValue ? "border-amber-400 bg-amber-50/30 text-slate-700 focus:border-amber-500 focus:ring-1 focus:ring-amber-500" : "border-slate-200 bg-white text-slate-700 focus:border-emerald-500"}`,
|
|
14484
14533
|
children: [
|
|
14485
|
-
/* @__PURE__ */
|
|
14534
|
+
/* @__PURE__ */ jsx24("option", { value: "", children: "\u05D1\u05D7\u05E8 \u05E2\u05E8\u05DA..." }),
|
|
14486
14535
|
selectedPostSendOption.type === "BOOLEAN" ? /* @__PURE__ */ jsxs20(Fragment7, { children: [
|
|
14487
|
-
/* @__PURE__ */
|
|
14488
|
-
/* @__PURE__ */
|
|
14536
|
+
/* @__PURE__ */ jsx24("option", { value: "true", children: "\u05DB\u05DF (Yes)" }),
|
|
14537
|
+
/* @__PURE__ */ jsx24("option", { value: "false", children: "\u05DC\u05D0 (No)" })
|
|
14489
14538
|
] }) : getRelationOptionsForCol(
|
|
14490
14539
|
selectedPostSendOption.columnName,
|
|
14491
14540
|
selectedPostSendOption.parentColumnName
|
|
14492
|
-
).map((opt) => /* @__PURE__ */
|
|
14541
|
+
).map((opt) => /* @__PURE__ */ jsx24("option", { value: opt.id, children: getRelationOptionLabel(
|
|
14493
14542
|
opt,
|
|
14494
14543
|
selectedPostSendOption,
|
|
14495
14544
|
relationOptions
|
|
@@ -14497,7 +14546,7 @@ function SettingsAndActionsBlock({
|
|
|
14497
14546
|
]
|
|
14498
14547
|
}
|
|
14499
14548
|
),
|
|
14500
|
-
/* @__PURE__ */
|
|
14549
|
+
/* @__PURE__ */ jsx24(ChevronDown6, { className: "w-3 h-3 text-slate-400 absolute left-1.5 top-1/2 -translate-y-1/2 pointer-events-none" })
|
|
14501
14550
|
] })
|
|
14502
14551
|
] })
|
|
14503
14552
|
] }) })
|
|
@@ -14514,8 +14563,8 @@ function SettingsAndActionsBlock({
|
|
|
14514
14563
|
className: `w-full h-8 px-3 text-xs font-semibold rounded-xl border transition-all flex items-center justify-center gap-1.5 ${isTestDisabled || isSendingBroadcast ? "bg-slate-100 text-slate-400 border-slate-200 cursor-not-allowed opacity-60" : "bg-white hover:bg-slate-50 text-slate-700 border-slate-200 active:scale-[0.98] cursor-pointer shadow-2xs"}`,
|
|
14515
14564
|
title: testButtonTitle,
|
|
14516
14565
|
children: [
|
|
14517
|
-
/* @__PURE__ */
|
|
14518
|
-
/* @__PURE__ */
|
|
14566
|
+
/* @__PURE__ */ jsx24(Phone3, { className: "w-3 h-3" }),
|
|
14567
|
+
/* @__PURE__ */ jsx24("span", { children: "\u05E9\u05DC\u05D7 \u05D8\u05E1\u05D8" })
|
|
14519
14568
|
]
|
|
14520
14569
|
}
|
|
14521
14570
|
),
|
|
@@ -14527,8 +14576,8 @@ function SettingsAndActionsBlock({
|
|
|
14527
14576
|
children: [
|
|
14528
14577
|
/* @__PURE__ */ jsxs20("div", { className: "flex items-center justify-between text-[11px] font-semibold text-slate-700", children: [
|
|
14529
14578
|
/* @__PURE__ */ jsxs20("div", { className: "flex items-center gap-1.5 text-emerald-800 font-bold", children: [
|
|
14530
|
-
/* @__PURE__ */
|
|
14531
|
-
/* @__PURE__ */
|
|
14579
|
+
/* @__PURE__ */ jsx24(Loader26, { className: "w-3.5 h-3.5 animate-spin text-emerald-600 shrink-0" }),
|
|
14580
|
+
/* @__PURE__ */ jsx24("span", { children: "\u05E9\u05D5\u05DC\u05D7 \u05D4\u05D5\u05D3\u05E2\u05D5\u05EA \u05D1\u05EA\u05E4\u05D5\u05E6\u05D4..." })
|
|
14532
14581
|
] }),
|
|
14533
14582
|
/* @__PURE__ */ jsxs20("span", { className: "text-emerald-700 font-bold", children: [
|
|
14534
14583
|
(broadcastProgress == null ? void 0 : broadcastProgress.percent) || 0,
|
|
@@ -14539,7 +14588,7 @@ function SettingsAndActionsBlock({
|
|
|
14539
14588
|
")"
|
|
14540
14589
|
] })
|
|
14541
14590
|
] }),
|
|
14542
|
-
/* @__PURE__ */
|
|
14591
|
+
/* @__PURE__ */ jsx24("div", { className: "w-full h-2.5 bg-slate-100 rounded-full overflow-hidden border border-slate-200", children: /* @__PURE__ */ jsx24(
|
|
14543
14592
|
"div",
|
|
14544
14593
|
{
|
|
14545
14594
|
className: "h-full bg-emerald-500 rounded-full transition-all duration-300 ease-out",
|
|
@@ -14550,15 +14599,15 @@ function SettingsAndActionsBlock({
|
|
|
14550
14599
|
) }),
|
|
14551
14600
|
/* @__PURE__ */ jsxs20("div", { className: "flex items-center justify-around pt-1 text-[11px] font-medium border-t border-slate-100", children: [
|
|
14552
14601
|
/* @__PURE__ */ jsxs20("span", { className: "text-emerald-700 flex items-center gap-1", title: "\u05E0\u05E9\u05DC\u05D7\u05D5 \u05D1\u05D4\u05E6\u05DC\u05D7\u05D4", children: [
|
|
14553
|
-
/* @__PURE__ */
|
|
14554
|
-
/* @__PURE__ */
|
|
14602
|
+
/* @__PURE__ */ jsx24("span", { children: "\u2705" }),
|
|
14603
|
+
/* @__PURE__ */ jsx24("span", { className: "font-bold", children: (broadcastProgress == null ? void 0 : broadcastProgress.successful) || 0 })
|
|
14555
14604
|
] }),
|
|
14556
14605
|
/* @__PURE__ */ jsxs20("span", { className: "text-rose-600 flex items-center gap-1", title: "\u05E9\u05DC\u05D9\u05D7\u05D4 \u05E0\u05DB\u05E9\u05DC\u05D4", children: [
|
|
14557
|
-
/* @__PURE__ */
|
|
14558
|
-
/* @__PURE__ */
|
|
14606
|
+
/* @__PURE__ */ jsx24("span", { children: "\u274C" }),
|
|
14607
|
+
/* @__PURE__ */ jsx24("span", { className: "font-bold", children: (broadcastProgress == null ? void 0 : broadcastProgress.failed) || 0 })
|
|
14559
14608
|
] }),
|
|
14560
14609
|
/* @__PURE__ */ jsxs20("span", { className: "text-amber-700 flex items-center gap-1", title: "\u05E9\u05D5\u05E8\u05D5\u05EA \u05E9\u05D3\u05D5\u05DC\u05D2\u05D5 \u05DC\u05DC\u05D0 \u05DE\u05E1\u05E4\u05E8 \u05D8\u05DC\u05E4\u05D5\u05DF \u05EA\u05E7\u05D9\u05DF", children: [
|
|
14561
|
-
/* @__PURE__ */
|
|
14610
|
+
/* @__PURE__ */ jsx24("span", { children: "\u26A0\uFE0F" }),
|
|
14562
14611
|
/* @__PURE__ */ jsxs20("span", { className: "font-bold", children: [
|
|
14563
14612
|
(broadcastProgress == null ? void 0 : broadcastProgress.skipped) || 0,
|
|
14564
14613
|
" \u05DC\u05DC\u05D0 \u05D8\u05DC\u05E4\u05D5\u05DF"
|
|
@@ -14577,8 +14626,8 @@ function SettingsAndActionsBlock({
|
|
|
14577
14626
|
className: `w-full h-9 px-3 text-xs font-bold rounded-xl shadow-xs transition-all flex items-center justify-center gap-2 ${isSendDisabled ? "bg-emerald-600/40 text-white/70 cursor-not-allowed" : "bg-emerald-600 hover:bg-emerald-700 active:scale-[0.98] text-white cursor-pointer"}`,
|
|
14578
14627
|
title: sendButtonTitle,
|
|
14579
14628
|
children: [
|
|
14580
|
-
/* @__PURE__ */
|
|
14581
|
-
/* @__PURE__ */
|
|
14629
|
+
/* @__PURE__ */ jsx24(Send, { className: "w-3.5 h-3.5" }),
|
|
14630
|
+
/* @__PURE__ */ jsx24("span", { children: finalRecipientCount > 0 ? `\u05E9\u05DC\u05D7 \u05DC-${finalRecipientCount} \u05E0\u05DE\u05E2\u05E0\u05D9\u05DD` : "\u05E9\u05DC\u05D7 \u05D4\u05D5\u05D3\u05E2\u05D5\u05EA" })
|
|
14582
14631
|
]
|
|
14583
14632
|
}
|
|
14584
14633
|
),
|
|
@@ -14595,37 +14644,37 @@ function SettingsAndActionsBlock({
|
|
|
14595
14644
|
children: [
|
|
14596
14645
|
/* @__PURE__ */ jsxs20("div", { className: "flex items-center justify-between", children: [
|
|
14597
14646
|
/* @__PURE__ */ jsxs20("div", { className: "flex items-center gap-1.5 text-[11px] font-bold text-slate-700", children: [
|
|
14598
|
-
/* @__PURE__ */
|
|
14599
|
-
/* @__PURE__ */
|
|
14647
|
+
/* @__PURE__ */ jsx24("span", { className: "text-xs", children: "\u{1F4CA}" }),
|
|
14648
|
+
/* @__PURE__ */ jsx24("span", { children: "\u05E1\u05D9\u05DB\u05D5\u05DD \u05E9\u05D9\u05D3\u05D5\u05E8 \u05D0\u05D7\u05E8\u05D5\u05DF" })
|
|
14600
14649
|
] }),
|
|
14601
|
-
clearBroadcastSummary && /* @__PURE__ */
|
|
14650
|
+
clearBroadcastSummary && /* @__PURE__ */ jsx24(
|
|
14602
14651
|
"button",
|
|
14603
14652
|
{
|
|
14604
14653
|
type: "button",
|
|
14605
14654
|
onClick: clearBroadcastSummary,
|
|
14606
14655
|
className: "text-slate-400 hover:text-slate-600 p-0.5 rounded-md hover:bg-slate-200/60 transition-colors cursor-pointer",
|
|
14607
14656
|
title: "\u05E1\u05D2\u05D5\u05E8 \u05E1\u05D9\u05DB\u05D5\u05DD",
|
|
14608
|
-
children: /* @__PURE__ */
|
|
14657
|
+
children: /* @__PURE__ */ jsx24(X11, { className: "w-3.5 h-3.5" })
|
|
14609
14658
|
}
|
|
14610
14659
|
)
|
|
14611
14660
|
] }),
|
|
14612
14661
|
/* @__PURE__ */ jsxs20("div", { className: "flex flex-wrap items-center gap-1.5 pt-0.5", children: [
|
|
14613
14662
|
/* @__PURE__ */ jsxs20("span", { className: "inline-flex items-center gap-1 px-2 py-0.5 rounded-full text-[10.5px] font-semibold bg-emerald-50 text-emerald-700 border border-emerald-200/80", children: [
|
|
14614
|
-
/* @__PURE__ */
|
|
14663
|
+
/* @__PURE__ */ jsx24("span", { children: "\u2705" }),
|
|
14615
14664
|
/* @__PURE__ */ jsxs20("span", { children: [
|
|
14616
14665
|
broadcastSummary.successful,
|
|
14617
14666
|
" \u05E0\u05E9\u05DC\u05D7\u05D5"
|
|
14618
14667
|
] })
|
|
14619
14668
|
] }),
|
|
14620
14669
|
broadcastSummary.failed > 0 && /* @__PURE__ */ jsxs20("span", { className: "inline-flex items-center gap-1 px-2 py-0.5 rounded-full text-[10.5px] font-semibold bg-rose-50 text-rose-700 border border-rose-200/80", children: [
|
|
14621
|
-
/* @__PURE__ */
|
|
14670
|
+
/* @__PURE__ */ jsx24("span", { children: "\u274C" }),
|
|
14622
14671
|
/* @__PURE__ */ jsxs20("span", { children: [
|
|
14623
14672
|
broadcastSummary.failed,
|
|
14624
14673
|
" \u05E0\u05DB\u05E9\u05DC\u05D5"
|
|
14625
14674
|
] })
|
|
14626
14675
|
] }),
|
|
14627
14676
|
broadcastSummary.skipped > 0 && /* @__PURE__ */ jsxs20("span", { className: "inline-flex items-center gap-1 px-2 py-0.5 rounded-full text-[10.5px] font-semibold bg-amber-50 text-amber-700 border border-amber-200/80", children: [
|
|
14628
|
-
/* @__PURE__ */
|
|
14677
|
+
/* @__PURE__ */ jsx24("span", { children: "\u26A0\uFE0F" }),
|
|
14629
14678
|
/* @__PURE__ */ jsxs20("span", { children: [
|
|
14630
14679
|
broadcastSummary.skipped,
|
|
14631
14680
|
" \u05DC\u05DC\u05D0 \u05D8\u05DC\u05E4\u05D5\u05DF"
|
|
@@ -14724,14 +14773,14 @@ function useInboxState(orgId, actions) {
|
|
|
14724
14773
|
|
|
14725
14774
|
// src/components/WhatsAppComponent/inbox/ConversationList.tsx
|
|
14726
14775
|
import { Search as Search4, User } from "lucide-react";
|
|
14727
|
-
import { jsx as
|
|
14776
|
+
import { jsx as jsx25, jsxs as jsxs21 } from "react/jsx-runtime";
|
|
14728
14777
|
function ConversationList({ conversations, activeId, onSelect }) {
|
|
14729
14778
|
return /* @__PURE__ */ jsxs21("div", { className: "w-80 border-l border-slate-200 bg-white flex flex-col h-full shrink-0", children: [
|
|
14730
14779
|
/* @__PURE__ */ jsxs21("div", { className: "p-4 border-b border-slate-100 bg-slate-50", children: [
|
|
14731
|
-
/* @__PURE__ */
|
|
14780
|
+
/* @__PURE__ */ jsx25("h2", { className: "text-lg font-bold text-slate-800 mb-3", children: "\u05E9\u05D9\u05D7\u05D5\u05EA \u05E0\u05DB\u05E0\u05E1\u05D5\u05EA" }),
|
|
14732
14781
|
/* @__PURE__ */ jsxs21("div", { className: "relative", children: [
|
|
14733
|
-
/* @__PURE__ */
|
|
14734
|
-
/* @__PURE__ */
|
|
14782
|
+
/* @__PURE__ */ jsx25(Search4, { className: "w-4 h-4 absolute right-3 top-1/2 -translate-y-1/2 text-slate-400" }),
|
|
14783
|
+
/* @__PURE__ */ jsx25(
|
|
14735
14784
|
"input",
|
|
14736
14785
|
{
|
|
14737
14786
|
type: "text",
|
|
@@ -14741,11 +14790,11 @@ function ConversationList({ conversations, activeId, onSelect }) {
|
|
|
14741
14790
|
)
|
|
14742
14791
|
] })
|
|
14743
14792
|
] }),
|
|
14744
|
-
/* @__PURE__ */
|
|
14793
|
+
/* @__PURE__ */ jsx25("div", { className: "flex-1 overflow-y-auto", children: (() => {
|
|
14745
14794
|
const sortedConversations = [...conversations].sort(
|
|
14746
14795
|
(a, b) => new Date(b.lastMessageAt).getTime() - new Date(a.lastMessageAt).getTime()
|
|
14747
14796
|
);
|
|
14748
|
-
return sortedConversations.length === 0 ? /* @__PURE__ */
|
|
14797
|
+
return sortedConversations.length === 0 ? /* @__PURE__ */ jsx25("div", { className: "p-6 text-center text-sm text-slate-400", children: "\u05D0\u05D9\u05DF \u05E9\u05D9\u05D7\u05D5\u05EA \u05E4\u05E2\u05D9\u05DC\u05D5\u05EA" }) : sortedConversations.map((conv) => {
|
|
14749
14798
|
var _a, _b;
|
|
14750
14799
|
return /* @__PURE__ */ jsxs21(
|
|
14751
14800
|
"button",
|
|
@@ -14753,15 +14802,15 @@ function ConversationList({ conversations, activeId, onSelect }) {
|
|
|
14753
14802
|
onClick: () => onSelect(conv.id),
|
|
14754
14803
|
className: `w-full text-right p-4 border-b border-slate-100 transition-colors hover:bg-slate-50 flex items-start gap-3 ${activeId === conv.id ? "bg-emerald-50/50 border-r-4 border-r-emerald-500" : "border-r-4 border-r-transparent"}`,
|
|
14755
14804
|
children: [
|
|
14756
|
-
/* @__PURE__ */
|
|
14805
|
+
/* @__PURE__ */ jsx25("div", { className: "w-10 h-10 rounded-full bg-slate-200 flex items-center justify-center shrink-0", children: /* @__PURE__ */ jsx25(User, { className: "w-5 h-5 text-slate-500" }) }),
|
|
14757
14806
|
/* @__PURE__ */ jsxs21("div", { className: "flex-1 overflow-hidden", children: [
|
|
14758
14807
|
/* @__PURE__ */ jsxs21("div", { className: "flex justify-between items-center mb-1", children: [
|
|
14759
|
-
/* @__PURE__ */
|
|
14760
|
-
/* @__PURE__ */
|
|
14808
|
+
/* @__PURE__ */ jsx25("span", { className: "font-semibold text-slate-800 text-sm truncate", children: conv.contactName || conv.contactPhone }),
|
|
14809
|
+
/* @__PURE__ */ jsx25("span", { className: "text-[10px] text-slate-400", children: new Date(conv.lastMessageAt).toLocaleTimeString("he-IL", { hour: "2-digit", minute: "2-digit" }) })
|
|
14761
14810
|
] }),
|
|
14762
14811
|
/* @__PURE__ */ jsxs21("div", { className: "flex justify-between items-center", children: [
|
|
14763
|
-
/* @__PURE__ */
|
|
14764
|
-
conv.unreadCount > 0 && /* @__PURE__ */
|
|
14812
|
+
/* @__PURE__ */ jsx25("p", { className: "text-xs text-slate-500 truncate w-4/5", children: ((_b = (_a = conv.messages) == null ? void 0 : _a[0]) == null ? void 0 : _b.content) || "\u05D0\u05D9\u05DF \u05D4\u05D5\u05D3\u05E2\u05D5\u05EA" }),
|
|
14813
|
+
conv.unreadCount > 0 && /* @__PURE__ */ jsx25("span", { className: "bg-emerald-500 text-white text-[10px] font-bold px-1.5 py-0.5 rounded-full min-w-[20px] text-center", children: conv.unreadCount })
|
|
14765
14814
|
] })
|
|
14766
14815
|
] })
|
|
14767
14816
|
]
|
|
@@ -14776,7 +14825,7 @@ function ConversationList({ conversations, activeId, onSelect }) {
|
|
|
14776
14825
|
// src/components/WhatsAppComponent/inbox/ChatWindow.tsx
|
|
14777
14826
|
import { useState as useState20, useRef as useRef19, useEffect as useEffect18 } from "react";
|
|
14778
14827
|
import { Send as Send2, User as User2, Loader2 as Loader27 } from "lucide-react";
|
|
14779
|
-
import { jsx as
|
|
14828
|
+
import { jsx as jsx26, jsxs as jsxs22 } from "react/jsx-runtime";
|
|
14780
14829
|
function ChatWindow({ activeConversation, messages, isLoading, isSending, onSendMessage }) {
|
|
14781
14830
|
const [inputText, setInputText] = useState20("");
|
|
14782
14831
|
const messagesTopRef = useRef19(null);
|
|
@@ -14795,33 +14844,33 @@ function ChatWindow({ activeConversation, messages, isLoading, isSending, onSend
|
|
|
14795
14844
|
};
|
|
14796
14845
|
if (!activeConversation) {
|
|
14797
14846
|
return /* @__PURE__ */ jsxs22("div", { className: "flex-1 bg-slate-50 flex items-center justify-center flex-col gap-4 text-slate-400", children: [
|
|
14798
|
-
/* @__PURE__ */
|
|
14799
|
-
/* @__PURE__ */
|
|
14847
|
+
/* @__PURE__ */ jsx26("div", { className: "w-16 h-16 rounded-full bg-slate-200 flex items-center justify-center", children: /* @__PURE__ */ jsx26("svg", { className: "w-8 h-8 text-slate-400", fill: "none", viewBox: "0 0 24 24", stroke: "currentColor", children: /* @__PURE__ */ jsx26("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: "1.5", d: "M8 12h.01M12 12h.01M16 12h.01M21 12c0 4.418-4.03 8-9 8a9.863 9.863 0 01-4.255-.949L3 20l1.395-3.72C3.512 15.042 3 13.574 3 12c0-4.418 4.03-8 9-8s9 3.582 9 8z" }) }) }),
|
|
14848
|
+
/* @__PURE__ */ jsx26("p", { children: "\u05D1\u05D7\u05E8 \u05E9\u05D9\u05D7\u05D4 \u05DE\u05D4\u05E8\u05E9\u05D9\u05DE\u05D4 \u05DB\u05D3\u05D9 \u05DC\u05D4\u05EA\u05D7\u05D9\u05DC" })
|
|
14800
14849
|
] });
|
|
14801
14850
|
}
|
|
14802
14851
|
return /* @__PURE__ */ jsxs22("div", { className: "flex-1 flex flex-col bg-[#efeae2] h-full relative", children: [
|
|
14803
14852
|
/* @__PURE__ */ jsxs22("div", { className: "h-16 bg-white border-b border-slate-200 px-6 flex items-center gap-3 shrink-0 z-10 shadow-sm", children: [
|
|
14804
|
-
/* @__PURE__ */
|
|
14853
|
+
/* @__PURE__ */ jsx26("div", { className: "w-10 h-10 rounded-full bg-slate-200 flex items-center justify-center", children: /* @__PURE__ */ jsx26(User2, { className: "w-5 h-5 text-slate-500" }) }),
|
|
14805
14854
|
/* @__PURE__ */ jsxs22("div", { children: [
|
|
14806
|
-
/* @__PURE__ */
|
|
14807
|
-
/* @__PURE__ */
|
|
14855
|
+
/* @__PURE__ */ jsx26("h3", { className: "font-bold text-slate-800", children: activeConversation.contactName || activeConversation.contactPhone }),
|
|
14856
|
+
/* @__PURE__ */ jsx26("p", { className: "text-xs text-slate-500", dir: "ltr", children: activeConversation.contactPhone })
|
|
14808
14857
|
] })
|
|
14809
14858
|
] }),
|
|
14810
14859
|
/* @__PURE__ */ jsxs22("div", { className: "flex-1 overflow-y-auto p-6 space-y-4", children: [
|
|
14811
|
-
/* @__PURE__ */
|
|
14812
|
-
isLoading ? /* @__PURE__ */
|
|
14860
|
+
/* @__PURE__ */ jsx26("div", { ref: messagesTopRef }),
|
|
14861
|
+
isLoading ? /* @__PURE__ */ jsx26("div", { className: "flex justify-center py-10", children: /* @__PURE__ */ jsx26(Loader27, { className: "w-6 h-6 animate-spin text-emerald-600" }) }) : messages.map((msg, idx) => {
|
|
14813
14862
|
const isOutbound = msg.direction === "OUTBOUND";
|
|
14814
|
-
return /* @__PURE__ */
|
|
14815
|
-
/* @__PURE__ */
|
|
14863
|
+
return /* @__PURE__ */ jsx26("div", { className: `flex ${isOutbound ? "justify-start" : "justify-end"}`, children: /* @__PURE__ */ jsxs22("div", { className: `max-w-[70%] rounded-2xl px-4 py-2 shadow-sm relative ${isOutbound ? "bg-[#d9fdd3] text-slate-900 rounded-tr-none" : "bg-white text-slate-900 rounded-tl-none"}`, children: [
|
|
14864
|
+
/* @__PURE__ */ jsx26("p", { className: "text-sm whitespace-pre-wrap", children: msg.content }),
|
|
14816
14865
|
/* @__PURE__ */ jsxs22("div", { className: "text-[11px] text-slate-600 mt-1 text-left flex items-center justify-end gap-1", children: [
|
|
14817
14866
|
new Date(msg.createdAt).toLocaleString("he-IL", { day: "2-digit", month: "2-digit", year: "numeric", hour: "2-digit", minute: "2-digit" }),
|
|
14818
|
-
isOutbound && /* @__PURE__ */
|
|
14867
|
+
isOutbound && /* @__PURE__ */ jsx26("span", { className: msg.status === "READ" || msg.status === "DELIVERED" ? "text-blue-500" : "text-slate-500", children: msg.status === "READ" ? "\u2713\u2713" : msg.status === "DELIVERED" ? "\u2713\u2713" : "\u2713" })
|
|
14819
14868
|
] })
|
|
14820
14869
|
] }) }, msg.id || idx);
|
|
14821
14870
|
})
|
|
14822
14871
|
] }),
|
|
14823
|
-
/* @__PURE__ */
|
|
14824
|
-
/* @__PURE__ */
|
|
14872
|
+
/* @__PURE__ */ jsx26("div", { className: "bg-slate-50 p-4 border-t border-slate-200 shrink-0", children: /* @__PURE__ */ jsxs22("form", { onSubmit: handleSend, className: "flex items-end gap-2 max-w-4xl mx-auto", children: [
|
|
14873
|
+
/* @__PURE__ */ jsx26("div", { className: "flex-1 bg-white border border-slate-300 rounded-2xl overflow-hidden focus-within:border-emerald-500 focus-within:ring-1 focus-within:ring-emerald-500", children: /* @__PURE__ */ jsx26(
|
|
14825
14874
|
"textarea",
|
|
14826
14875
|
{
|
|
14827
14876
|
rows: 1,
|
|
@@ -14837,13 +14886,13 @@ function ChatWindow({ activeConversation, messages, isLoading, isSending, onSend
|
|
|
14837
14886
|
className: "w-full max-h-32 min-h-[44px] p-3 text-sm bg-transparent outline-none resize-none"
|
|
14838
14887
|
}
|
|
14839
14888
|
) }),
|
|
14840
|
-
/* @__PURE__ */
|
|
14889
|
+
/* @__PURE__ */ jsx26(
|
|
14841
14890
|
"button",
|
|
14842
14891
|
{
|
|
14843
14892
|
type: "submit",
|
|
14844
14893
|
disabled: !inputText.trim() || isSending,
|
|
14845
14894
|
className: `w-11 h-11 rounded-full flex items-center justify-center shrink-0 transition-colors ${!inputText.trim() || isSending ? "bg-slate-200 text-slate-400" : "bg-emerald-600 hover:bg-emerald-700 text-white shadow-md"}`,
|
|
14846
|
-
children: isSending ? /* @__PURE__ */
|
|
14895
|
+
children: isSending ? /* @__PURE__ */ jsx26(Loader27, { className: "w-5 h-5 animate-spin" }) : /* @__PURE__ */ jsx26(Send2, { className: "w-5 h-5 -ml-1" })
|
|
14847
14896
|
}
|
|
14848
14897
|
)
|
|
14849
14898
|
] }) })
|
|
@@ -14851,7 +14900,7 @@ function ChatWindow({ activeConversation, messages, isLoading, isSending, onSend
|
|
|
14851
14900
|
}
|
|
14852
14901
|
|
|
14853
14902
|
// src/components/WhatsAppComponent/inbox/WhatsAppInbox.tsx
|
|
14854
|
-
import { jsx as
|
|
14903
|
+
import { jsx as jsx27, jsxs as jsxs23 } from "react/jsx-runtime";
|
|
14855
14904
|
function WhatsAppInbox({
|
|
14856
14905
|
orgId,
|
|
14857
14906
|
getConversationsAction,
|
|
@@ -14873,7 +14922,7 @@ function WhatsAppInbox({
|
|
|
14873
14922
|
});
|
|
14874
14923
|
const activeConversation = conversations.find((c) => c.id === activeConversationId);
|
|
14875
14924
|
return /* @__PURE__ */ jsxs23("div", { className: "flex h-[calc(100vh-140px)] min-h-[600px] w-full border border-slate-200 rounded-2xl overflow-hidden bg-white shadow-xs", dir: "rtl", children: [
|
|
14876
|
-
/* @__PURE__ */
|
|
14925
|
+
/* @__PURE__ */ jsx27(
|
|
14877
14926
|
ConversationList,
|
|
14878
14927
|
{
|
|
14879
14928
|
conversations,
|
|
@@ -14881,7 +14930,7 @@ function WhatsAppInbox({
|
|
|
14881
14930
|
onSelect: handleSelectConversation
|
|
14882
14931
|
}
|
|
14883
14932
|
),
|
|
14884
|
-
/* @__PURE__ */
|
|
14933
|
+
/* @__PURE__ */ jsx27(
|
|
14885
14934
|
ChatWindow,
|
|
14886
14935
|
{
|
|
14887
14936
|
activeConversation,
|
|
@@ -14895,7 +14944,7 @@ function WhatsAppInbox({
|
|
|
14895
14944
|
}
|
|
14896
14945
|
|
|
14897
14946
|
// src/components/WhatsAppComponent/WhatsAppComponent.tsx
|
|
14898
|
-
import { Fragment as Fragment8, jsx as
|
|
14947
|
+
import { Fragment as Fragment8, jsx as jsx28, jsxs as jsxs24 } from "react/jsx-runtime";
|
|
14899
14948
|
function WhatsAppComponent(props) {
|
|
14900
14949
|
var _a;
|
|
14901
14950
|
const { className = "", settings, orgId, componentId, executeAction } = props;
|
|
@@ -14909,7 +14958,7 @@ function WhatsAppComponent(props) {
|
|
|
14909
14958
|
dir: "rtl",
|
|
14910
14959
|
children: [
|
|
14911
14960
|
/* @__PURE__ */ jsxs24("div", { className: "flex border-b border-slate-200 bg-slate-50 px-6 pt-3 gap-4 shrink-0", children: [
|
|
14912
|
-
/* @__PURE__ */
|
|
14961
|
+
/* @__PURE__ */ jsx28(
|
|
14913
14962
|
"button",
|
|
14914
14963
|
{
|
|
14915
14964
|
type: "button",
|
|
@@ -14918,7 +14967,7 @@ function WhatsAppComponent(props) {
|
|
|
14918
14967
|
children: "\u{1F4E4} \u05E9\u05DC\u05D9\u05D7\u05EA \u05D4\u05D5\u05D3\u05E2\u05D5\u05EA \u05D5\u05EA\u05E4\u05D5\u05E6\u05D4"
|
|
14919
14968
|
}
|
|
14920
14969
|
),
|
|
14921
|
-
/* @__PURE__ */
|
|
14970
|
+
/* @__PURE__ */ jsx28(
|
|
14922
14971
|
"button",
|
|
14923
14972
|
{
|
|
14924
14973
|
type: "button",
|
|
@@ -14928,7 +14977,7 @@ function WhatsAppComponent(props) {
|
|
|
14928
14977
|
}
|
|
14929
14978
|
)
|
|
14930
14979
|
] }),
|
|
14931
|
-
activeTab === "inbox" ? /* @__PURE__ */
|
|
14980
|
+
activeTab === "inbox" ? /* @__PURE__ */ jsx28("div", { className: "p-4 flex-1", children: /* @__PURE__ */ jsx28(
|
|
14932
14981
|
WhatsAppInbox,
|
|
14933
14982
|
{
|
|
14934
14983
|
orgId: orgId || props.organizationId || "",
|
|
@@ -14974,16 +15023,16 @@ function WhatsAppComponent(props) {
|
|
|
14974
15023
|
className: `px-6 py-3 border-b text-xs flex items-center justify-between gap-3 ${state.feedback.type === "success" ? "bg-emerald-50 border-emerald-200 text-emerald-800" : "bg-rose-50 border-rose-200 text-rose-800"}`,
|
|
14975
15024
|
children: [
|
|
14976
15025
|
/* @__PURE__ */ jsxs24("div", { className: "flex items-center gap-2", children: [
|
|
14977
|
-
state.feedback.type === "success" ? /* @__PURE__ */
|
|
14978
|
-
/* @__PURE__ */
|
|
15026
|
+
state.feedback.type === "success" ? /* @__PURE__ */ jsx28(CheckCircle24, { className: "w-4 h-4 text-emerald-600 shrink-0" }) : /* @__PURE__ */ jsx28(AlertCircle5, { className: "w-4 h-4 text-rose-600 shrink-0" }),
|
|
15027
|
+
/* @__PURE__ */ jsx28("span", { children: state.feedback.message })
|
|
14979
15028
|
] }),
|
|
14980
|
-
/* @__PURE__ */
|
|
15029
|
+
/* @__PURE__ */ jsx28(
|
|
14981
15030
|
"button",
|
|
14982
15031
|
{
|
|
14983
15032
|
type: "button",
|
|
14984
15033
|
onClick: () => state.setFeedback(null),
|
|
14985
15034
|
className: "text-slate-400 hover:text-slate-700 cursor-pointer",
|
|
14986
|
-
children: /* @__PURE__ */
|
|
15035
|
+
children: /* @__PURE__ */ jsx28(X12, { className: "w-4 h-4" })
|
|
14987
15036
|
}
|
|
14988
15037
|
)
|
|
14989
15038
|
]
|
|
@@ -14991,13 +15040,13 @@ function WhatsAppComponent(props) {
|
|
|
14991
15040
|
),
|
|
14992
15041
|
state.fetchError && !state.isLoadingTemplates && /* @__PURE__ */ jsxs24("div", { className: "px-6 py-3 bg-amber-50 border-b border-amber-200 text-xs text-amber-900 flex items-center justify-between", children: [
|
|
14993
15042
|
/* @__PURE__ */ jsxs24("div", { className: "flex items-center gap-2", children: [
|
|
14994
|
-
/* @__PURE__ */
|
|
15043
|
+
/* @__PURE__ */ jsx28(AlertCircle5, { className: "w-4 h-4 text-amber-600 shrink-0" }),
|
|
14995
15044
|
/* @__PURE__ */ jsxs24("span", { children: [
|
|
14996
15045
|
"\u05E9\u05D2\u05D9\u05D0\u05D4 \u05D1\u05D8\u05E2\u05D9\u05E0\u05EA \u05EA\u05D1\u05E0\u05D9\u05D5\u05EA \u05DE-Meta: ",
|
|
14997
15046
|
state.fetchError
|
|
14998
15047
|
] })
|
|
14999
15048
|
] }),
|
|
15000
|
-
/* @__PURE__ */
|
|
15049
|
+
/* @__PURE__ */ jsx28(
|
|
15001
15050
|
"button",
|
|
15002
15051
|
{
|
|
15003
15052
|
type: "button",
|
|
@@ -15009,7 +15058,7 @@ function WhatsAppComponent(props) {
|
|
|
15009
15058
|
] }),
|
|
15010
15059
|
/* @__PURE__ */ jsxs24("div", { className: "p-4 flex flex-col gap-4", children: [
|
|
15011
15060
|
/* @__PURE__ */ jsxs24("div", { className: "grid grid-cols-1 lg:grid-cols-12 gap-4 shrink-0 items-stretch", children: [
|
|
15012
|
-
/* @__PURE__ */
|
|
15061
|
+
/* @__PURE__ */ jsx28(
|
|
15013
15062
|
TemplateSelectionBlock,
|
|
15014
15063
|
{
|
|
15015
15064
|
selectedTemplate: state.selectedTemplate,
|
|
@@ -15037,7 +15086,7 @@ function WhatsAppComponent(props) {
|
|
|
15037
15086
|
handleFileUpload: state.handleFileUpload
|
|
15038
15087
|
}
|
|
15039
15088
|
),
|
|
15040
|
-
/* @__PURE__ */
|
|
15089
|
+
/* @__PURE__ */ jsx28(
|
|
15041
15090
|
DynamicFiltersBlock,
|
|
15042
15091
|
{
|
|
15043
15092
|
filterableColumns: state.filterableColumns,
|
|
@@ -15054,7 +15103,7 @@ function WhatsAppComponent(props) {
|
|
|
15054
15103
|
isLoadingTableData: state.isLoadingTableData
|
|
15055
15104
|
}
|
|
15056
15105
|
),
|
|
15057
|
-
/* @__PURE__ */
|
|
15106
|
+
/* @__PURE__ */ jsx28(
|
|
15058
15107
|
SettingsAndActionsBlock,
|
|
15059
15108
|
{
|
|
15060
15109
|
isScanningPhoneColumns: state.isScanningPhoneColumns,
|
|
@@ -15100,13 +15149,13 @@ function WhatsAppComponent(props) {
|
|
|
15100
15149
|
}
|
|
15101
15150
|
)
|
|
15102
15151
|
] }),
|
|
15103
|
-
/* @__PURE__ */
|
|
15104
|
-
/* @__PURE__ */
|
|
15105
|
-
/* @__PURE__ */
|
|
15152
|
+
/* @__PURE__ */ jsx28("div", { className: "w-full h-[calc(100vh-420px)] min-h-[320px] overflow-hidden border border-slate-200 rounded-2xl shadow-xs bg-white flex flex-col", children: state.isLoadingTableData && state.rawRecords.length === 0 ? /* @__PURE__ */ jsxs24("div", { className: "flex-1 flex flex-col items-center justify-center p-12 text-center text-xs text-slate-400 gap-2", children: [
|
|
15153
|
+
/* @__PURE__ */ jsx28(Loader28, { className: "w-6 h-6 animate-spin text-emerald-600" }),
|
|
15154
|
+
/* @__PURE__ */ jsx28("span", { children: "\u05D8\u05D5\u05E2\u05DF \u05E8\u05E9\u05D5\u05DE\u05D5\u05EA \u05DE\u05D4\u05D8\u05D1\u05DC\u05D4..." })
|
|
15106
15155
|
] }) : state.tableError ? /* @__PURE__ */ jsxs24("div", { className: "flex-1 flex items-center justify-center p-6 text-center text-xs text-rose-600 bg-rose-50 gap-2", children: [
|
|
15107
|
-
/* @__PURE__ */
|
|
15108
|
-
/* @__PURE__ */
|
|
15109
|
-
] }) : !(settings == null ? void 0 : settings.tableMetaId) ? /* @__PURE__ */
|
|
15156
|
+
/* @__PURE__ */ jsx28(AlertCircle5, { className: "w-4 h-4 text-rose-500 shrink-0" }),
|
|
15157
|
+
/* @__PURE__ */ jsx28("span", { children: state.tableError })
|
|
15158
|
+
] }) : !(settings == null ? void 0 : settings.tableMetaId) ? /* @__PURE__ */ jsx28("div", { className: "flex-1 flex items-center justify-center p-10 text-center text-xs text-slate-400", children: "\u05DC\u05D0 \u05E0\u05D1\u05D7\u05E8\u05D4 \u05D8\u05D1\u05DC\u05EA \u05DE\u05E7\u05D5\u05E8 \u05E2\u05D1\u05D5\u05E8 \u05E8\u05DB\u05D9\u05D1 WhatsApp \u05D6\u05D4" }) : /* @__PURE__ */ jsx28(
|
|
15110
15159
|
TableBlockClient,
|
|
15111
15160
|
{
|
|
15112
15161
|
settings: {
|
|
@@ -15128,7 +15177,7 @@ function WhatsAppComponent(props) {
|
|
|
15128
15177
|
}
|
|
15129
15178
|
) })
|
|
15130
15179
|
] }),
|
|
15131
|
-
/* @__PURE__ */
|
|
15180
|
+
/* @__PURE__ */ jsx28(
|
|
15132
15181
|
CreateTemplateModal,
|
|
15133
15182
|
{
|
|
15134
15183
|
isOpen: state.isModalOpen,
|
|
@@ -15142,7 +15191,7 @@ function WhatsAppComponent(props) {
|
|
|
15142
15191
|
orgId: state.orgId || orgId
|
|
15143
15192
|
}
|
|
15144
15193
|
),
|
|
15145
|
-
state.isTestPromptOpen && /* @__PURE__ */
|
|
15194
|
+
state.isTestPromptOpen && /* @__PURE__ */ jsx28(
|
|
15146
15195
|
"div",
|
|
15147
15196
|
{
|
|
15148
15197
|
className: "fixed inset-0 bg-slate-900/60 backdrop-blur-xs z-50 flex items-center justify-center p-4 overflow-y-auto animate-in fade-in duration-150",
|
|
@@ -15162,13 +15211,13 @@ function WhatsAppComponent(props) {
|
|
|
15162
15211
|
children: [
|
|
15163
15212
|
/* @__PURE__ */ jsxs24("div", { className: "px-5 py-4 border-b border-slate-100 flex items-center justify-between bg-slate-50/70", children: [
|
|
15164
15213
|
/* @__PURE__ */ jsxs24("div", { className: "flex items-center gap-2.5", children: [
|
|
15165
|
-
/* @__PURE__ */
|
|
15214
|
+
/* @__PURE__ */ jsx28("div", { className: "w-8 h-8 rounded-lg bg-emerald-100 text-emerald-700 flex items-center justify-center shrink-0", children: /* @__PURE__ */ jsx28(Phone4, { className: "w-4 h-4" }) }),
|
|
15166
15215
|
/* @__PURE__ */ jsxs24("div", { children: [
|
|
15167
|
-
/* @__PURE__ */
|
|
15168
|
-
/* @__PURE__ */
|
|
15216
|
+
/* @__PURE__ */ jsx28("h3", { id: "test-modal-title", className: "text-sm font-bold text-slate-900", children: "\u05E9\u05DC\u05D9\u05D7\u05EA \u05D4\u05D5\u05D3\u05E2\u05EA \u05D1\u05D3\u05D9\u05E7\u05D4 (\u05D8\u05E1\u05D8)" }),
|
|
15217
|
+
/* @__PURE__ */ jsx28("p", { className: "text-[11px] text-slate-500", children: "\u05D1\u05D3\u05D9\u05E7\u05EA \u05D4\u05EA\u05D1\u05E0\u05D9\u05EA \u05DE\u05D5\u05DC \u05E0\u05DE\u05E2\u05DF \u05D1\u05D5\u05D3\u05D3 \u05DC\u05E4\u05E0\u05D9 \u05E9\u05D9\u05D3\u05D5\u05E8 \u05E8\u05D7\u05D1" })
|
|
15169
15218
|
] })
|
|
15170
15219
|
] }),
|
|
15171
|
-
/* @__PURE__ */
|
|
15220
|
+
/* @__PURE__ */ jsx28(
|
|
15172
15221
|
"button",
|
|
15173
15222
|
{
|
|
15174
15223
|
type: "button",
|
|
@@ -15180,25 +15229,25 @@ function WhatsAppComponent(props) {
|
|
|
15180
15229
|
},
|
|
15181
15230
|
className: `w-8 h-8 rounded-lg flex items-center justify-center transition-colors ${state.isSendingTest ? "text-slate-300 cursor-not-allowed" : "text-slate-400 hover:text-slate-700 hover:bg-slate-200/50 cursor-pointer"}`,
|
|
15182
15231
|
title: "\u05E1\u05D2\u05D5\u05E8",
|
|
15183
|
-
children: /* @__PURE__ */
|
|
15232
|
+
children: /* @__PURE__ */ jsx28(X12, { className: "w-4 h-4" })
|
|
15184
15233
|
}
|
|
15185
15234
|
)
|
|
15186
15235
|
] }),
|
|
15187
15236
|
/* @__PURE__ */ jsxs24("div", { className: "p-5 space-y-4", children: [
|
|
15188
15237
|
/* @__PURE__ */ jsxs24("div", { className: "p-2.5 bg-slate-50 border border-slate-200/80 rounded-xl flex items-center justify-between text-xs", children: [
|
|
15189
|
-
/* @__PURE__ */
|
|
15190
|
-
/* @__PURE__ */
|
|
15238
|
+
/* @__PURE__ */ jsx28("span", { className: "text-slate-500 font-medium", children: "\u05EA\u05D1\u05E0\u05D9\u05EA \u05E0\u05D1\u05D7\u05E8\u05EA:" }),
|
|
15239
|
+
/* @__PURE__ */ jsx28("span", { className: "font-bold text-slate-800 font-mono", children: ((_a = state.selectedTemplate) == null ? void 0 : _a.name) || "\u05DC\u05D0 \u05E0\u05D1\u05D7\u05E8\u05D4 \u05EA\u05D1\u05E0\u05D9\u05EA" })
|
|
15191
15240
|
] }),
|
|
15192
15241
|
state.selectedPhoneOption && /* @__PURE__ */ jsxs24("div", { className: "p-2 bg-emerald-50/50 border border-emerald-200/60 rounded-xl flex items-center justify-between text-[11px]", children: [
|
|
15193
|
-
/* @__PURE__ */
|
|
15194
|
-
/* @__PURE__ */
|
|
15242
|
+
/* @__PURE__ */ jsx28("span", { className: "text-emerald-800 font-medium", children: "\u05E2\u05DE\u05D5\u05D3\u05EA \u05D9\u05E2\u05D3:" }),
|
|
15243
|
+
/* @__PURE__ */ jsx28("span", { className: "font-bold text-emerald-950 font-mono", children: state.selectedPhoneOption.label })
|
|
15195
15244
|
] }),
|
|
15196
15245
|
state.templateHeaderComp && (() => {
|
|
15197
15246
|
const headerFormat = (state.templateHeaderComp.format || "").toUpperCase();
|
|
15198
15247
|
const docFilename = resolveDocumentFilename(state.templateHeaderComp, state.headerMediaUrl);
|
|
15199
15248
|
return /* @__PURE__ */ jsxs24("div", { className: "p-2.5 bg-slate-50 border border-slate-200/80 rounded-xl flex items-center justify-between text-xs", children: [
|
|
15200
|
-
/* @__PURE__ */
|
|
15201
|
-
/* @__PURE__ */
|
|
15249
|
+
/* @__PURE__ */ jsx28("div", { className: "flex items-center gap-2 overflow-hidden", children: headerFormat === "IMAGE" ? /* @__PURE__ */ jsxs24(Fragment8, { children: [
|
|
15250
|
+
/* @__PURE__ */ jsx28("div", { className: "w-7 h-7 rounded-md overflow-hidden border border-slate-200 shrink-0 bg-slate-100 flex items-center justify-center", children: state.headerMediaUrl && state.headerMediaUrl.startsWith("http") ? /* @__PURE__ */ jsx28(
|
|
15202
15251
|
"img",
|
|
15203
15252
|
{
|
|
15204
15253
|
src: state.headerMediaUrl,
|
|
@@ -15208,28 +15257,28 @@ function WhatsAppComponent(props) {
|
|
|
15208
15257
|
e.currentTarget.style.display = "none";
|
|
15209
15258
|
}
|
|
15210
15259
|
}
|
|
15211
|
-
) : /* @__PURE__ */
|
|
15212
|
-
/* @__PURE__ */
|
|
15260
|
+
) : /* @__PURE__ */ jsx28(ImageIcon3, { className: "w-3.5 h-3.5 text-emerald-600" }) }),
|
|
15261
|
+
/* @__PURE__ */ jsx28("span", { className: "font-semibold text-slate-800 truncate", children: "\u05EA\u05DE\u05D5\u05E0\u05EA \u05DB\u05D5\u05EA\u05E8\u05EA" })
|
|
15213
15262
|
] }) : headerFormat === "DOCUMENT" ? /* @__PURE__ */ jsxs24(Fragment8, { children: [
|
|
15214
|
-
/* @__PURE__ */
|
|
15263
|
+
/* @__PURE__ */ jsx28("div", { className: "w-7 h-7 rounded-md bg-rose-50 text-rose-600 border border-rose-100 flex items-center justify-center shrink-0", children: /* @__PURE__ */ jsx28(FileText4, { className: "w-3.5 h-3.5" }) }),
|
|
15215
15264
|
/* @__PURE__ */ jsxs24("div", { className: "overflow-hidden", children: [
|
|
15216
|
-
/* @__PURE__ */
|
|
15217
|
-
/* @__PURE__ */
|
|
15265
|
+
/* @__PURE__ */ jsx28("span", { className: "font-semibold text-slate-800 block truncate", children: "\u05DE\u05E1\u05DE\u05DA \u05DB\u05D5\u05EA\u05E8\u05EA (PDF)" }),
|
|
15266
|
+
/* @__PURE__ */ jsx28("span", { className: "text-[10px] text-slate-500 font-mono block truncate", title: docFilename, children: docFilename })
|
|
15218
15267
|
] })
|
|
15219
15268
|
] }) : /* @__PURE__ */ jsxs24(Fragment8, { children: [
|
|
15220
|
-
/* @__PURE__ */
|
|
15221
|
-
/* @__PURE__ */
|
|
15269
|
+
/* @__PURE__ */ jsx28("div", { className: "w-7 h-7 rounded-md bg-indigo-50 text-indigo-600 border border-indigo-100 flex items-center justify-center shrink-0", children: /* @__PURE__ */ jsx28(Video3, { className: "w-3.5 h-3.5" }) }),
|
|
15270
|
+
/* @__PURE__ */ jsx28("span", { className: "font-semibold text-slate-800 truncate", children: "\u05E1\u05E8\u05D8\u05D5\u05DF \u05DB\u05D5\u05EA\u05E8\u05EA" })
|
|
15222
15271
|
] }) }),
|
|
15223
|
-
state.headerMediaUrl && state.headerMediaUrl.startsWith("http") ? /* @__PURE__ */
|
|
15272
|
+
state.headerMediaUrl && state.headerMediaUrl.startsWith("http") ? /* @__PURE__ */ jsx28("span", { className: "text-[10px] text-emerald-700 bg-emerald-50 border border-emerald-200 px-1.5 py-0.5 rounded font-medium shrink-0", children: "\u05E7\u05D5\u05D1\u05E5 \u05DE\u05E6\u05D5\u05E8\u05E3 \u05EA\u05E7\u05D9\u05DF" }) : /* @__PURE__ */ jsx28("span", { className: "text-[10px] text-amber-700 bg-amber-50 border border-amber-200 px-1.5 py-0.5 rounded font-medium shrink-0", children: "\u05E0\u05D3\u05E8\u05E9 \u05E6\u05D9\u05E8\u05D5\u05E3 \u05E7\u05D5\u05D1\u05E5 \u05DC\u05EA\u05D1\u05E0\u05D9\u05EA \u05D6\u05D5" })
|
|
15224
15273
|
] });
|
|
15225
15274
|
})(),
|
|
15226
15275
|
/* @__PURE__ */ jsxs24("div", { className: "space-y-1.5", children: [
|
|
15227
15276
|
/* @__PURE__ */ jsxs24("label", { className: "text-xs font-semibold text-slate-700 block", children: [
|
|
15228
15277
|
"\u05DE\u05E1\u05E4\u05E8 \u05D8\u05DC\u05E4\u05D5\u05DF \u05DC\u05D8\u05E1\u05D8 ",
|
|
15229
|
-
/* @__PURE__ */
|
|
15278
|
+
/* @__PURE__ */ jsx28("span", { className: "text-rose-500", children: "*" })
|
|
15230
15279
|
] }),
|
|
15231
15280
|
/* @__PURE__ */ jsxs24("div", { className: "relative", children: [
|
|
15232
|
-
/* @__PURE__ */
|
|
15281
|
+
/* @__PURE__ */ jsx28(
|
|
15233
15282
|
"input",
|
|
15234
15283
|
{
|
|
15235
15284
|
type: "tel",
|
|
@@ -15251,17 +15300,17 @@ function WhatsAppComponent(props) {
|
|
|
15251
15300
|
className: "w-full h-10 px-3 pr-3 pl-8 text-sm rounded-xl border border-slate-200 bg-white text-slate-900 placeholder:text-slate-400 focus:outline-hidden focus:border-emerald-500 focus:ring-1 focus:ring-emerald-500 transition-all font-mono disabled:opacity-60 disabled:cursor-not-allowed"
|
|
15252
15301
|
}
|
|
15253
15302
|
),
|
|
15254
|
-
/* @__PURE__ */
|
|
15303
|
+
/* @__PURE__ */ jsx28(Phone4, { className: "w-4 h-4 text-slate-400 absolute left-2.5 top-1/2 -translate-y-1/2 pointer-events-none" })
|
|
15255
15304
|
] }),
|
|
15256
|
-
/* @__PURE__ */
|
|
15305
|
+
/* @__PURE__ */ jsx28("p", { className: "text-[11px] text-slate-500 leading-normal", children: "\u05D4\u05D5\u05D3\u05E2\u05EA \u05D4\u05D1\u05D3\u05D9\u05E7\u05D4 \u05EA\u05D9\u05E9\u05DC\u05D7 \u05D9\u05E9\u05D9\u05E8\u05D5\u05EA \u05DC\u05DE\u05E1\u05E4\u05E8 \u05D6\u05D4 \u05DC\u05E6\u05D5\u05E8\u05DA \u05D5\u05D9\u05D3\u05D5\u05D0 \u05EA\u05E7\u05D9\u05E0\u05D5\u05EA \u05EA\u05D5\u05DB\u05DF \u05D4\u05D4\u05D5\u05D3\u05E2\u05D4 \u05D5\u05D4\u05E2\u05D9\u05E6\u05D5\u05D1." })
|
|
15257
15306
|
] }),
|
|
15258
15307
|
state.testFeedback && /* @__PURE__ */ jsxs24("div", { className: "p-2.5 bg-rose-50 border border-rose-200 rounded-xl text-xs text-rose-700 flex items-center gap-2", children: [
|
|
15259
|
-
/* @__PURE__ */
|
|
15260
|
-
/* @__PURE__ */
|
|
15308
|
+
/* @__PURE__ */ jsx28(AlertCircle5, { className: "w-4 h-4 text-rose-500 shrink-0" }),
|
|
15309
|
+
/* @__PURE__ */ jsx28("span", { children: state.testFeedback })
|
|
15261
15310
|
] })
|
|
15262
15311
|
] }),
|
|
15263
15312
|
/* @__PURE__ */ jsxs24("div", { className: "px-5 py-3.5 bg-slate-50/70 border-t border-slate-100 flex items-center justify-end gap-2", children: [
|
|
15264
|
-
/* @__PURE__ */
|
|
15313
|
+
/* @__PURE__ */ jsx28(
|
|
15265
15314
|
"button",
|
|
15266
15315
|
{
|
|
15267
15316
|
type: "button",
|
|
@@ -15275,7 +15324,7 @@ function WhatsAppComponent(props) {
|
|
|
15275
15324
|
children: "\u05D1\u05D9\u05D8\u05D5\u05DC"
|
|
15276
15325
|
}
|
|
15277
15326
|
),
|
|
15278
|
-
/* @__PURE__ */
|
|
15327
|
+
/* @__PURE__ */ jsx28(
|
|
15279
15328
|
"button",
|
|
15280
15329
|
{
|
|
15281
15330
|
type: "button",
|
|
@@ -15284,11 +15333,11 @@ function WhatsAppComponent(props) {
|
|
|
15284
15333
|
title: state.testButtonTitle,
|
|
15285
15334
|
className: `px-4 py-2 text-xs font-bold rounded-xl transition-all flex items-center gap-1.5 ${!state.testPhoneNumber.trim() || state.isSendingTest || state.isTestDisabled ? "bg-emerald-600/40 text-white/70 cursor-not-allowed" : "bg-emerald-600 hover:bg-emerald-700 active:scale-[0.98] text-white shadow-xs cursor-pointer"}`,
|
|
15286
15335
|
children: state.isSendingTest ? /* @__PURE__ */ jsxs24(Fragment8, { children: [
|
|
15287
|
-
/* @__PURE__ */
|
|
15288
|
-
/* @__PURE__ */
|
|
15336
|
+
/* @__PURE__ */ jsx28(Loader28, { className: "w-3.5 h-3.5 animate-spin" }),
|
|
15337
|
+
/* @__PURE__ */ jsx28("span", { children: "\u05E9\u05D5\u05DC\u05D7..." })
|
|
15289
15338
|
] }) : /* @__PURE__ */ jsxs24(Fragment8, { children: [
|
|
15290
|
-
/* @__PURE__ */
|
|
15291
|
-
/* @__PURE__ */
|
|
15339
|
+
/* @__PURE__ */ jsx28(Send3, { className: "w-3.5 h-3.5" }),
|
|
15340
|
+
/* @__PURE__ */ jsx28("span", { children: "\u05E9\u05DC\u05D7 \u05E2\u05DB\u05E9\u05D9\u05D5" })
|
|
15292
15341
|
] })
|
|
15293
15342
|
}
|
|
15294
15343
|
)
|
|
@@ -15307,7 +15356,7 @@ function WhatsAppComponent(props) {
|
|
|
15307
15356
|
// src/components/FormBlock/FormBlock.tsx
|
|
15308
15357
|
import { useState as useState21, useEffect as useEffect19 } from "react";
|
|
15309
15358
|
import { Loader2 as Loader29, CheckCircle2 as CheckCircle25 } from "lucide-react";
|
|
15310
|
-
import { jsx as
|
|
15359
|
+
import { jsx as jsx29, jsxs as jsxs25 } from "react/jsx-runtime";
|
|
15311
15360
|
function FormBlock({ settings: schema, executeAction, componentId, className = "", onSuccess }) {
|
|
15312
15361
|
const { showError, addToast } = useToast();
|
|
15313
15362
|
const [formData, setFormData] = useState21({});
|
|
@@ -15399,20 +15448,20 @@ function FormBlock({ settings: schema, executeAction, componentId, className = "
|
|
|
15399
15448
|
};
|
|
15400
15449
|
if (isLoadingSchema) {
|
|
15401
15450
|
return /* @__PURE__ */ jsxs25("div", { className: "p-8 flex items-center justify-center gap-2 text-slate-500", children: [
|
|
15402
|
-
/* @__PURE__ */
|
|
15403
|
-
/* @__PURE__ */
|
|
15451
|
+
/* @__PURE__ */ jsx29(Loader29, { className: "w-5 h-5 animate-spin text-brand" }),
|
|
15452
|
+
/* @__PURE__ */ jsx29("span", { className: "text-sm", children: "\u05D8\u05D5\u05E2\u05DF \u05E9\u05D3\u05D5\u05EA \u05D8\u05D5\u05E4\u05E1..." })
|
|
15404
15453
|
] });
|
|
15405
15454
|
}
|
|
15406
15455
|
if (!formColumns || formColumns.length === 0) {
|
|
15407
|
-
return /* @__PURE__ */
|
|
15456
|
+
return /* @__PURE__ */ jsx29("div", { className: "p-4 text-center text-slate-500", children: "\u05DC\u05D0 \u05D4\u05D5\u05D2\u05D3\u05E8\u05D5 \u05E9\u05D3\u05D5\u05EA \u05DC\u05D8\u05D5\u05E4\u05E1 \u05D6\u05D4." });
|
|
15408
15457
|
}
|
|
15409
15458
|
if (isSubmitted) {
|
|
15410
15459
|
const customMessage = (schema == null ? void 0 : schema.successMessage) || "\u05EA\u05D5\u05D3\u05D4 \u05E8\u05D1\u05D4! \u05D4\u05E4\u05E8\u05D8\u05D9\u05DD \u05D4\u05EA\u05E7\u05D1\u05DC\u05D5 \u05D1\u05D4\u05E6\u05DC\u05D7\u05D4.";
|
|
15411
15460
|
return /* @__PURE__ */ jsxs25("div", { id: componentId, className: `bg-white p-8 rounded-xl shadow-xs border border-slate-200 text-center dir-rtl ${className}`, children: [
|
|
15412
|
-
/* @__PURE__ */
|
|
15413
|
-
/* @__PURE__ */
|
|
15414
|
-
/* @__PURE__ */
|
|
15415
|
-
/* @__PURE__ */
|
|
15461
|
+
/* @__PURE__ */ jsx29("div", { className: "w-16 h-16 bg-emerald-50 text-emerald-600 rounded-full flex items-center justify-center mx-auto mb-4 animate-in zoom-in duration-200", children: /* @__PURE__ */ jsx29(CheckCircle25, { className: "w-8 h-8" }) }),
|
|
15462
|
+
/* @__PURE__ */ jsx29("h3", { className: "text-2xl font-bold text-slate-800 mb-2", children: "\u05D4\u05D5\u05D3\u05E2\u05D4 \u05E0\u05E9\u05DC\u05D7\u05D4" }),
|
|
15463
|
+
/* @__PURE__ */ jsx29("p", { className: "text-slate-600 text-base max-w-md mx-auto whitespace-pre-wrap", children: customMessage }),
|
|
15464
|
+
/* @__PURE__ */ jsx29(
|
|
15416
15465
|
"button",
|
|
15417
15466
|
{
|
|
15418
15467
|
type: "button",
|
|
@@ -15424,7 +15473,7 @@ function FormBlock({ settings: schema, executeAction, componentId, className = "
|
|
|
15424
15473
|
] });
|
|
15425
15474
|
}
|
|
15426
15475
|
return /* @__PURE__ */ jsxs25("div", { id: componentId, className: `bg-white p-6 rounded-xl shadow-xs border border-slate-200 dir-rtl ${className}`, children: [
|
|
15427
|
-
(schema == null ? void 0 : schema.title) && /* @__PURE__ */
|
|
15476
|
+
(schema == null ? void 0 : schema.title) && /* @__PURE__ */ jsx29("h2", { className: "text-xl font-bold text-slate-800 mb-6", children: schema.title }),
|
|
15428
15477
|
/* @__PURE__ */ jsxs25("form", { onSubmit: handleSubmit, className: "space-y-4", children: [
|
|
15429
15478
|
formColumns.map((col) => {
|
|
15430
15479
|
var _a, _b;
|
|
@@ -15434,9 +15483,9 @@ function FormBlock({ settings: schema, executeAction, componentId, className = "
|
|
|
15434
15483
|
/* @__PURE__ */ jsxs25("label", { className: "text-sm font-semibold text-slate-700", children: [
|
|
15435
15484
|
col.name,
|
|
15436
15485
|
" ",
|
|
15437
|
-
col.isRequired && /* @__PURE__ */
|
|
15486
|
+
col.isRequired && /* @__PURE__ */ jsx29("span", { className: "text-rose-500", children: "*" })
|
|
15438
15487
|
] }),
|
|
15439
|
-
/* @__PURE__ */
|
|
15488
|
+
/* @__PURE__ */ jsx29("div", { className: "border border-slate-200 rounded-lg min-h-[40px] relative", children: /* @__PURE__ */ jsx29(
|
|
15440
15489
|
InputComponent,
|
|
15441
15490
|
{
|
|
15442
15491
|
column: col,
|
|
@@ -15451,15 +15500,15 @@ function FormBlock({ settings: schema, executeAction, componentId, className = "
|
|
|
15451
15500
|
) })
|
|
15452
15501
|
] }, col.name);
|
|
15453
15502
|
}),
|
|
15454
|
-
/* @__PURE__ */
|
|
15503
|
+
/* @__PURE__ */ jsx29("div", { className: "pt-4 border-t border-slate-100 flex justify-end", children: /* @__PURE__ */ jsxs25(
|
|
15455
15504
|
"button",
|
|
15456
15505
|
{
|
|
15457
15506
|
type: "submit",
|
|
15458
15507
|
disabled: isSubmitting,
|
|
15459
15508
|
className: "flex items-center gap-2 px-6 py.2.5 bg-brand hover:bg-brand-hover text-white font-bold rounded-lg shadow-sm transition-colors disabled:opacity-50 disabled:cursor-not-allowed",
|
|
15460
15509
|
children: [
|
|
15461
|
-
isSubmitting && /* @__PURE__ */
|
|
15462
|
-
/* @__PURE__ */
|
|
15510
|
+
isSubmitting && /* @__PURE__ */ jsx29(Loader29, { className: "w-4 h-4 animate-spin" }),
|
|
15511
|
+
/* @__PURE__ */ jsx29("span", { children: isSubmitting ? "\u05E9\u05D5\u05DE\u05E8..." : "\u05E9\u05DC\u05D9\u05D7\u05D4" })
|
|
15463
15512
|
]
|
|
15464
15513
|
}
|
|
15465
15514
|
) })
|
|
@@ -15469,7 +15518,7 @@ function FormBlock({ settings: schema, executeAction, componentId, className = "
|
|
|
15469
15518
|
|
|
15470
15519
|
// src/themes/ThemeScope.tsx
|
|
15471
15520
|
import * as React22 from "react";
|
|
15472
|
-
import { jsx as
|
|
15521
|
+
import { jsx as jsx30 } from "react/jsx-runtime";
|
|
15473
15522
|
var UNIVERSE_THEME_IDS = ["classic", "clean", "ocean", "warm"];
|
|
15474
15523
|
function resolveUniverseTheme(value) {
|
|
15475
15524
|
return typeof value === "string" && UNIVERSE_THEME_IDS.includes(value) ? value : "classic";
|
|
@@ -15479,7 +15528,7 @@ function withThemeScope(Component) {
|
|
|
15479
15528
|
var _a, _b, _c;
|
|
15480
15529
|
const p = props;
|
|
15481
15530
|
const theme = resolveUniverseTheme((_c = (_a = p.settings) == null ? void 0 : _a.theme) != null ? _c : (_b = p.config) == null ? void 0 : _b.theme);
|
|
15482
|
-
return /* @__PURE__ */
|
|
15531
|
+
return /* @__PURE__ */ jsx30("div", { "data-theme": theme, style: { display: "contents" }, children: React22.createElement(Component, props) });
|
|
15483
15532
|
}
|
|
15484
15533
|
ThemeScoped.displayName = `ThemeScoped(${Component.displayName || Component.name || "Component"})`;
|
|
15485
15534
|
return ThemeScoped;
|