teraprox-ui-kit 0.1.1 → 0.1.2
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.d.mts +119 -1
- package/dist/index.d.ts +119 -1
- package/dist/index.js +568 -150
- package/dist/index.mjs +560 -145
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -30,9 +30,12 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
|
|
|
30
30
|
// src/index.ts
|
|
31
31
|
var index_exports = {};
|
|
32
32
|
__export(index_exports, {
|
|
33
|
+
ActionButtons: () => ActionButtons,
|
|
33
34
|
AddButton: () => AddButton_default,
|
|
35
|
+
AutoComplete: () => AutoComplete,
|
|
34
36
|
ConfigObject: () => ConfigObject,
|
|
35
37
|
DeleteButton: () => DeleteButton_default,
|
|
38
|
+
DeleteConfirm: () => DeleteConfirm,
|
|
36
39
|
GenericDisplay: () => GenericDisplay_default,
|
|
37
40
|
GenericForm: () => GenericForm_default,
|
|
38
41
|
GenericSelect: () => GenericSelect_default,
|
|
@@ -66,9 +69,207 @@ var DeleteButton = ({ title, onDeleteClick }) => {
|
|
|
66
69
|
};
|
|
67
70
|
var DeleteButton_default = DeleteButton;
|
|
68
71
|
|
|
69
|
-
// src/
|
|
72
|
+
// src/buttons/ActionButtons.tsx
|
|
73
|
+
var import_react2 = require("react");
|
|
74
|
+
var import_react_bootstrap4 = require("react-bootstrap");
|
|
75
|
+
var import_fi = require("react-icons/fi");
|
|
76
|
+
|
|
77
|
+
// src/forms/DeleteConfirm.tsx
|
|
78
|
+
var import_react = require("react");
|
|
70
79
|
var import_react_bootstrap3 = require("react-bootstrap");
|
|
71
80
|
var import_jsx_runtime3 = require("react/jsx-runtime");
|
|
81
|
+
var DeleteConfirm = ({
|
|
82
|
+
show,
|
|
83
|
+
onHide,
|
|
84
|
+
onConfirm,
|
|
85
|
+
title = "Confirma\xE7\xE3o de Exclus\xE3o",
|
|
86
|
+
dialogText,
|
|
87
|
+
payload,
|
|
88
|
+
needExclusionDetails = false
|
|
89
|
+
}) => {
|
|
90
|
+
const [exclusionDetails, setExclusionDetails] = (0, import_react.useState)("");
|
|
91
|
+
const getDialogContent = () => {
|
|
92
|
+
if (typeof dialogText === "function" && payload) {
|
|
93
|
+
return dialogText(payload);
|
|
94
|
+
}
|
|
95
|
+
return dialogText || "Voc\xEA tem certeza que deseja excluir este item?";
|
|
96
|
+
};
|
|
97
|
+
const isConfirmEnabled = () => {
|
|
98
|
+
if (!needExclusionDetails) return true;
|
|
99
|
+
return exclusionDetails.length >= 8;
|
|
100
|
+
};
|
|
101
|
+
return /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)(import_react_bootstrap3.Modal, { show, onHide: () => onHide(false), centered: true, children: [
|
|
102
|
+
/* @__PURE__ */ (0, import_jsx_runtime3.jsx)(import_react_bootstrap3.Modal.Header, { closeButton: true, children: /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(import_react_bootstrap3.Modal.Title, { children: title }) }),
|
|
103
|
+
/* @__PURE__ */ (0, import_jsx_runtime3.jsx)(import_react_bootstrap3.Modal.Body, { children: /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)("div", { className: "d-flex flex-column gap-3", children: [
|
|
104
|
+
/* @__PURE__ */ (0, import_jsx_runtime3.jsx)("div", { children: /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("strong", { children: getDialogContent() }) }),
|
|
105
|
+
needExclusionDetails && /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)(import_react_bootstrap3.Form.Group, { children: [
|
|
106
|
+
/* @__PURE__ */ (0, import_jsx_runtime3.jsx)(import_react_bootstrap3.Form.Label, { children: "Motivo da Exclus\xE3o (m\xEDn. 8 caracteres)" }),
|
|
107
|
+
/* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
|
|
108
|
+
import_react_bootstrap3.Form.Control,
|
|
109
|
+
{
|
|
110
|
+
as: "textarea",
|
|
111
|
+
rows: 3,
|
|
112
|
+
value: exclusionDetails,
|
|
113
|
+
onChange: (e) => setExclusionDetails(e.target.value),
|
|
114
|
+
placeholder: "Descreva o motivo...",
|
|
115
|
+
autoFocus: true
|
|
116
|
+
}
|
|
117
|
+
)
|
|
118
|
+
] })
|
|
119
|
+
] }) }),
|
|
120
|
+
/* @__PURE__ */ (0, import_jsx_runtime3.jsxs)(import_react_bootstrap3.Modal.Footer, { children: [
|
|
121
|
+
/* @__PURE__ */ (0, import_jsx_runtime3.jsx)(import_react_bootstrap3.Button, { variant: "secondary", onClick: () => onHide(false), children: "Cancelar" }),
|
|
122
|
+
/* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
|
|
123
|
+
import_react_bootstrap3.Button,
|
|
124
|
+
{
|
|
125
|
+
variant: "danger",
|
|
126
|
+
disabled: !isConfirmEnabled(),
|
|
127
|
+
onClick: () => {
|
|
128
|
+
onConfirm(exclusionDetails);
|
|
129
|
+
onHide(false);
|
|
130
|
+
},
|
|
131
|
+
children: "Confirmar Exclus\xE3o"
|
|
132
|
+
}
|
|
133
|
+
)
|
|
134
|
+
] })
|
|
135
|
+
] });
|
|
136
|
+
};
|
|
137
|
+
|
|
138
|
+
// src/buttons/ActionButtons.tsx
|
|
139
|
+
var import_jsx_runtime4 = require("react/jsx-runtime");
|
|
140
|
+
var ActionButtons = ({
|
|
141
|
+
onSave,
|
|
142
|
+
saveLabel = "Salvar",
|
|
143
|
+
saveVariant = "primary",
|
|
144
|
+
disabled = false,
|
|
145
|
+
onDelete,
|
|
146
|
+
deleteLabel = "Excluir",
|
|
147
|
+
deleteConfirmMsg,
|
|
148
|
+
needExclusionDetails = false,
|
|
149
|
+
onBack,
|
|
150
|
+
backLabel = "Voltar",
|
|
151
|
+
onCancelEdit,
|
|
152
|
+
cancelEditLabel = "Cancelar",
|
|
153
|
+
onCopy,
|
|
154
|
+
copyLabel = "Copiar Formul\xE1rio",
|
|
155
|
+
isEditing = false,
|
|
156
|
+
useDelayedDelete = false,
|
|
157
|
+
delayedDeleteTimeout = 3e3,
|
|
158
|
+
PermissionWrapper = ({ children }) => /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(import_jsx_runtime4.Fragment, { children })
|
|
159
|
+
}) => {
|
|
160
|
+
const [showConfirm, setShowConfirm] = (0, import_react2.useState)(false);
|
|
161
|
+
const [isHolding, setIsHolding] = (0, import_react2.useState)(false);
|
|
162
|
+
const [progress, setProgress] = (0, import_react2.useState)(0);
|
|
163
|
+
const timeoutRef = (0, import_react2.useRef)(null);
|
|
164
|
+
const intervalRef = (0, import_react2.useRef)(null);
|
|
165
|
+
const startHold = () => {
|
|
166
|
+
if (disabled || !onDelete) return;
|
|
167
|
+
setIsHolding(true);
|
|
168
|
+
setProgress(0);
|
|
169
|
+
const step = 2;
|
|
170
|
+
const tickTime = delayedDeleteTimeout / (100 / step);
|
|
171
|
+
intervalRef.current = setInterval(() => {
|
|
172
|
+
setProgress((prev) => prev >= 100 ? 100 : prev + step);
|
|
173
|
+
}, tickTime);
|
|
174
|
+
timeoutRef.current = setTimeout(() => {
|
|
175
|
+
stopHold();
|
|
176
|
+
onDelete();
|
|
177
|
+
}, delayedDeleteTimeout);
|
|
178
|
+
};
|
|
179
|
+
const stopHold = () => {
|
|
180
|
+
setIsHolding(false);
|
|
181
|
+
if (timeoutRef.current) clearTimeout(timeoutRef.current);
|
|
182
|
+
if (intervalRef.current) clearInterval(intervalRef.current);
|
|
183
|
+
setProgress(0);
|
|
184
|
+
};
|
|
185
|
+
const renderDeleteButton = () => {
|
|
186
|
+
if (!onDelete || !isEditing) return null;
|
|
187
|
+
if (useDelayedDelete) {
|
|
188
|
+
return /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)("div", { style: { position: "relative", display: "inline-block", margin: 2 }, children: [
|
|
189
|
+
/* @__PURE__ */ (0, import_jsx_runtime4.jsxs)(
|
|
190
|
+
import_react_bootstrap4.Button,
|
|
191
|
+
{
|
|
192
|
+
variant: "outline-danger",
|
|
193
|
+
onMouseDown: startHold,
|
|
194
|
+
onMouseUp: stopHold,
|
|
195
|
+
onMouseLeave: stopHold,
|
|
196
|
+
onTouchStart: startHold,
|
|
197
|
+
onTouchEnd: stopHold,
|
|
198
|
+
disabled,
|
|
199
|
+
style: { minWidth: "120px" },
|
|
200
|
+
children: [
|
|
201
|
+
/* @__PURE__ */ (0, import_jsx_runtime4.jsx)(import_fi.FiTrash2, { className: "me-2" }),
|
|
202
|
+
isHolding ? "Segure..." : deleteLabel
|
|
203
|
+
]
|
|
204
|
+
}
|
|
205
|
+
),
|
|
206
|
+
isHolding && /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
|
|
207
|
+
import_react_bootstrap4.ProgressBar,
|
|
208
|
+
{
|
|
209
|
+
now: progress,
|
|
210
|
+
style: {
|
|
211
|
+
position: "absolute",
|
|
212
|
+
bottom: 0,
|
|
213
|
+
left: 0,
|
|
214
|
+
right: 0,
|
|
215
|
+
height: "4px",
|
|
216
|
+
borderRadius: "0 0 4px 4px"
|
|
217
|
+
},
|
|
218
|
+
variant: "danger"
|
|
219
|
+
}
|
|
220
|
+
)
|
|
221
|
+
] });
|
|
222
|
+
}
|
|
223
|
+
return /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)(
|
|
224
|
+
import_react_bootstrap4.Button,
|
|
225
|
+
{
|
|
226
|
+
variant: "danger",
|
|
227
|
+
onClick: () => setShowConfirm(true),
|
|
228
|
+
disabled,
|
|
229
|
+
style: { margin: 2 },
|
|
230
|
+
children: [
|
|
231
|
+
/* @__PURE__ */ (0, import_jsx_runtime4.jsx)(import_fi.FiTrash2, { className: "me-2" }),
|
|
232
|
+
deleteLabel
|
|
233
|
+
]
|
|
234
|
+
}
|
|
235
|
+
);
|
|
236
|
+
};
|
|
237
|
+
return /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)(import_jsx_runtime4.Fragment, { children: [
|
|
238
|
+
/* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
|
|
239
|
+
DeleteConfirm,
|
|
240
|
+
{
|
|
241
|
+
show: showConfirm,
|
|
242
|
+
onHide: setShowConfirm,
|
|
243
|
+
onConfirm: (details) => onDelete && onDelete(details),
|
|
244
|
+
dialogText: deleteConfirmMsg,
|
|
245
|
+
needExclusionDetails
|
|
246
|
+
}
|
|
247
|
+
),
|
|
248
|
+
/* @__PURE__ */ (0, import_jsx_runtime4.jsxs)(import_react_bootstrap4.Form.Group, { className: "d-flex flex-wrap align-items-center mt-3 gap-1", children: [
|
|
249
|
+
onBack && /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)(import_react_bootstrap4.Button, { variant: "outline-secondary", onClick: onBack, disabled, style: { margin: 2 }, children: [
|
|
250
|
+
/* @__PURE__ */ (0, import_jsx_runtime4.jsx)(import_fi.FiChevronLeft, { className: "me-2" }),
|
|
251
|
+
backLabel
|
|
252
|
+
] }),
|
|
253
|
+
isEditing && onCancelEdit && /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)(import_react_bootstrap4.Button, { variant: "warning", onClick: onCancelEdit, disabled, style: { margin: 2 }, children: [
|
|
254
|
+
/* @__PURE__ */ (0, import_jsx_runtime4.jsx)(import_fi.FiRotateCcw, { className: "me-2" }),
|
|
255
|
+
cancelEditLabel
|
|
256
|
+
] }),
|
|
257
|
+
/* @__PURE__ */ (0, import_jsx_runtime4.jsx)(PermissionWrapper, { children: renderDeleteButton() }),
|
|
258
|
+
onSave && /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)(import_react_bootstrap4.Button, { variant: saveVariant, onClick: onSave, disabled, style: { margin: 2 }, children: [
|
|
259
|
+
/* @__PURE__ */ (0, import_jsx_runtime4.jsx)(import_fi.FiSave, { className: "me-2" }),
|
|
260
|
+
saveLabel
|
|
261
|
+
] }),
|
|
262
|
+
isEditing && onCopy && /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)(import_react_bootstrap4.Button, { variant: "outline-primary", onClick: onCopy, disabled, style: { margin: 2 }, children: [
|
|
263
|
+
/* @__PURE__ */ (0, import_jsx_runtime4.jsx)(import_fi.FiCopy, { className: "me-2" }),
|
|
264
|
+
copyLabel
|
|
265
|
+
] })
|
|
266
|
+
] })
|
|
267
|
+
] });
|
|
268
|
+
};
|
|
269
|
+
|
|
270
|
+
// src/containers/ResponsiveContainer.tsx
|
|
271
|
+
var import_react_bootstrap5 = require("react-bootstrap");
|
|
272
|
+
var import_jsx_runtime5 = require("react/jsx-runtime");
|
|
72
273
|
var ResponsiveContainer = ({
|
|
73
274
|
title,
|
|
74
275
|
show,
|
|
@@ -81,22 +282,22 @@ var ResponsiveContainer = ({
|
|
|
81
282
|
setShow(false);
|
|
82
283
|
if (onClose) onClose();
|
|
83
284
|
};
|
|
84
|
-
return /* @__PURE__ */ (0,
|
|
85
|
-
/* @__PURE__ */ (0,
|
|
86
|
-
/* @__PURE__ */ (0,
|
|
285
|
+
return /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)(import_react_bootstrap5.Modal, { size: "lg", show, onHide: handleClose, scrollable, children: [
|
|
286
|
+
/* @__PURE__ */ (0, import_jsx_runtime5.jsx)(import_react_bootstrap5.Modal.Header, { closeButton: true, onClick: handleClose }),
|
|
287
|
+
/* @__PURE__ */ (0, import_jsx_runtime5.jsx)(import_react_bootstrap5.ModalBody, { children })
|
|
87
288
|
] });
|
|
88
289
|
};
|
|
89
290
|
var ResponsiveContainer_default = ResponsiveContainer;
|
|
90
291
|
|
|
91
292
|
// src/displays/UuidPill.tsx
|
|
92
|
-
var
|
|
93
|
-
var
|
|
94
|
-
var
|
|
293
|
+
var import_react3 = require("react");
|
|
294
|
+
var import_react_bootstrap6 = require("react-bootstrap");
|
|
295
|
+
var import_jsx_runtime6 = require("react/jsx-runtime");
|
|
95
296
|
var UuidPill = ({ uuid, bg = "light", textColor = "dark", short = 8 }) => {
|
|
96
|
-
const [copied, setCopied] = (0,
|
|
97
|
-
const ref = (0,
|
|
98
|
-
const [showTooltip, setShowTooltip] = (0,
|
|
99
|
-
if (!uuid) return /* @__PURE__ */ (0,
|
|
297
|
+
const [copied, setCopied] = (0, import_react3.useState)(false);
|
|
298
|
+
const ref = (0, import_react3.useRef)(null);
|
|
299
|
+
const [showTooltip, setShowTooltip] = (0, import_react3.useState)(false);
|
|
300
|
+
if (!uuid) return /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("span", { className: "text-muted", children: "\u2014" });
|
|
100
301
|
const shortId = String(uuid).substring(0, short);
|
|
101
302
|
const handleCopy = async (e) => {
|
|
102
303
|
e.stopPropagation();
|
|
@@ -113,9 +314,9 @@ var UuidPill = ({ uuid, bg = "light", textColor = "dark", short = 8 }) => {
|
|
|
113
314
|
setCopied(true);
|
|
114
315
|
setTimeout(() => setCopied(false), 1500);
|
|
115
316
|
};
|
|
116
|
-
return /* @__PURE__ */ (0,
|
|
117
|
-
/* @__PURE__ */ (0,
|
|
118
|
-
|
|
317
|
+
return /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)(import_jsx_runtime6.Fragment, { children: [
|
|
318
|
+
/* @__PURE__ */ (0, import_jsx_runtime6.jsxs)(
|
|
319
|
+
import_react_bootstrap6.Badge,
|
|
119
320
|
{
|
|
120
321
|
ref,
|
|
121
322
|
bg,
|
|
@@ -135,19 +336,19 @@ var UuidPill = ({ uuid, bg = "light", textColor = "dark", short = 8 }) => {
|
|
|
135
336
|
]
|
|
136
337
|
}
|
|
137
338
|
),
|
|
138
|
-
/* @__PURE__ */ (0,
|
|
339
|
+
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)(import_react_bootstrap6.Overlay, { target: ref.current, show: showTooltip, placement: "top", children: (props) => /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(import_react_bootstrap6.Tooltip, { ...props, children: copied ? /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("span", { style: { color: "#6f6" }, children: "Copiado!" }) : /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)("span", { style: { fontFamily: "monospace", fontSize: "0.75rem" }, children: [
|
|
139
340
|
uuid,
|
|
140
|
-
/* @__PURE__ */ (0,
|
|
141
|
-
/* @__PURE__ */ (0,
|
|
341
|
+
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)("br", {}),
|
|
342
|
+
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)("small", { className: "text-muted", children: "Clique para copiar" })
|
|
142
343
|
] }) }) })
|
|
143
344
|
] });
|
|
144
345
|
};
|
|
145
346
|
var UuidPill_default = UuidPill;
|
|
146
347
|
|
|
147
348
|
// src/displays/GenericDisplay.tsx
|
|
148
|
-
var
|
|
149
|
-
var
|
|
150
|
-
var
|
|
349
|
+
var import_react4 = __toESM(require("react"));
|
|
350
|
+
var import_react_bootstrap7 = require("react-bootstrap");
|
|
351
|
+
var import_jsx_runtime7 = require("react/jsx-runtime");
|
|
151
352
|
var ConfigObject = class {
|
|
152
353
|
constructor(dotNotation, style, onClick, onBlur, onHideClick, hidden, mapData, additionalComponents) {
|
|
153
354
|
this.dotNotation = dotNotation;
|
|
@@ -197,17 +398,17 @@ var buildData = (obj, propertiesMap, configObjects, opn, innerArray, dispatch, i
|
|
|
197
398
|
const onClick = getOnClick(innerConfigs);
|
|
198
399
|
const extraComponents = getAdditionalComponentes(innerConfigs);
|
|
199
400
|
if (Array.isArray(obj)) {
|
|
200
|
-
return /* @__PURE__ */ (0,
|
|
201
|
-
opn && /* @__PURE__ */ (0,
|
|
401
|
+
return /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)(import_react_bootstrap7.Container, { onClick, style: { ...styles }, children: [
|
|
402
|
+
opn && /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("div", { style: { textAlign: "center" }, children: /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("strong", { children: opn }) }),
|
|
202
403
|
obj.map((o, index) => {
|
|
203
404
|
const mapCopy = [...newPropertiesMap, `[${index}]`];
|
|
204
|
-
return /* @__PURE__ */ (0,
|
|
405
|
+
return /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(import_react_bootstrap7.Row, { style: { padding: 4, ...styles }, children: buildData(o, mapCopy, configObjects, null, true, null, false, editButtonRenderer) }, index);
|
|
205
406
|
})
|
|
206
407
|
] });
|
|
207
408
|
}
|
|
208
409
|
if (typeof obj === "object" && obj != null) {
|
|
209
|
-
return /* @__PURE__ */ (0,
|
|
210
|
-
|
|
410
|
+
return /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)(
|
|
411
|
+
import_react_bootstrap7.Container,
|
|
211
412
|
{
|
|
212
413
|
onClick,
|
|
213
414
|
style: {
|
|
@@ -219,17 +420,17 @@ var buildData = (obj, propertiesMap, configObjects, opn, innerArray, dispatch, i
|
|
|
219
420
|
...styles
|
|
220
421
|
},
|
|
221
422
|
children: [
|
|
222
|
-
opn && /* @__PURE__ */ (0,
|
|
423
|
+
opn && /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("strong", { children: opn }),
|
|
223
424
|
Object.entries(obj).map(
|
|
224
425
|
([key, value]) => buildData(value, newPropertiesMap, configObjects, key, false, null, false, editButtonRenderer)
|
|
225
426
|
),
|
|
226
|
-
extraComponents.length > 0 ? extraComponents.map((comp, i) => /* @__PURE__ */ (0,
|
|
427
|
+
extraComponents.length > 0 ? extraComponents.map((comp, i) => /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(import_react4.default.Fragment, { children: comp() }, i)) : isRoot && editButtonRenderer ? editButtonRenderer(obj, opn) : null
|
|
227
428
|
]
|
|
228
429
|
}
|
|
229
430
|
);
|
|
230
431
|
}
|
|
231
|
-
return /* @__PURE__ */ (0,
|
|
232
|
-
/* @__PURE__ */ (0,
|
|
432
|
+
return /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)(import_react_bootstrap7.Col, { children: [
|
|
433
|
+
/* @__PURE__ */ (0, import_jsx_runtime7.jsxs)("strong", { children: [
|
|
233
434
|
opn,
|
|
234
435
|
": "
|
|
235
436
|
] }),
|
|
@@ -245,7 +446,7 @@ var GenericDisplay = ({
|
|
|
245
446
|
onRefresh,
|
|
246
447
|
editButtonRenderer
|
|
247
448
|
}) => {
|
|
248
|
-
const [innerOptions, setInnerOptions] = (0,
|
|
449
|
+
const [innerOptions, setInnerOptions] = (0, import_react4.useState)();
|
|
249
450
|
const refreshFunc = () => {
|
|
250
451
|
if (loadFunc) {
|
|
251
452
|
loadFunc().then((res) => {
|
|
@@ -259,22 +460,22 @@ var GenericDisplay = ({
|
|
|
259
460
|
setInnerOptions(ops);
|
|
260
461
|
}
|
|
261
462
|
};
|
|
262
|
-
(0,
|
|
463
|
+
(0, import_react4.useEffect)(() => {
|
|
263
464
|
if (onRefresh) {
|
|
264
465
|
onRefresh(refreshFunc);
|
|
265
466
|
} else {
|
|
266
467
|
refreshFunc();
|
|
267
468
|
}
|
|
268
469
|
}, [context]);
|
|
269
|
-
return /* @__PURE__ */ (0,
|
|
470
|
+
return /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(import_jsx_runtime7.Fragment, { children: innerOptions && innerOptions.map((cObj, index) => /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(import_react_bootstrap7.Container, { style: { padding: 4, border: "solid" }, children: buildData(cObj, [], configObjects, rootName || null, false, null, true, editButtonRenderer) }, index)) });
|
|
270
471
|
};
|
|
271
472
|
var GenericDisplay_default = GenericDisplay;
|
|
272
473
|
|
|
273
474
|
// src/forms/MailSender.tsx
|
|
274
|
-
var
|
|
275
|
-
var
|
|
276
|
-
var
|
|
277
|
-
var
|
|
475
|
+
var import_react5 = require("react");
|
|
476
|
+
var import_react_bootstrap8 = require("react-bootstrap");
|
|
477
|
+
var import_fi2 = require("react-icons/fi");
|
|
478
|
+
var import_jsx_runtime8 = require("react/jsx-runtime");
|
|
278
479
|
var MailSender = ({
|
|
279
480
|
htmlContent,
|
|
280
481
|
companyName,
|
|
@@ -283,15 +484,15 @@ var MailSender = ({
|
|
|
283
484
|
hide = false,
|
|
284
485
|
renderTrigger
|
|
285
486
|
}) => {
|
|
286
|
-
const [opened, setOpened] = (0,
|
|
287
|
-
const [addingEmail, setAddingEmail] = (0,
|
|
288
|
-
const [selectedEmails, setSelectedEmails] = (0,
|
|
289
|
-
const [emails, setEmails] = (0,
|
|
290
|
-
const [loading, setLoading] = (0,
|
|
291
|
-
const [postLoading, setPostLoading] = (0,
|
|
292
|
-
const [customEmail, setCustomEmail] = (0,
|
|
293
|
-
const [emailError, setEmailError] = (0,
|
|
294
|
-
const [searchFilter, setSearchFilter] = (0,
|
|
487
|
+
const [opened, setOpened] = (0, import_react5.useState)(false);
|
|
488
|
+
const [addingEmail, setAddingEmail] = (0, import_react5.useState)(false);
|
|
489
|
+
const [selectedEmails, setSelectedEmails] = (0, import_react5.useState)([]);
|
|
490
|
+
const [emails, setEmails] = (0, import_react5.useState)([]);
|
|
491
|
+
const [loading, setLoading] = (0, import_react5.useState)(false);
|
|
492
|
+
const [postLoading, setPostLoading] = (0, import_react5.useState)(false);
|
|
493
|
+
const [customEmail, setCustomEmail] = (0, import_react5.useState)("");
|
|
494
|
+
const [emailError, setEmailError] = (0, import_react5.useState)("");
|
|
495
|
+
const [searchFilter, setSearchFilter] = (0, import_react5.useState)("");
|
|
295
496
|
const handleOpen = async () => {
|
|
296
497
|
setLoading(true);
|
|
297
498
|
try {
|
|
@@ -374,9 +575,9 @@ var MailSender = ({
|
|
|
374
575
|
if (renderTrigger) {
|
|
375
576
|
return renderTrigger({ onClick: handleOpen, loading });
|
|
376
577
|
}
|
|
377
|
-
return /* @__PURE__ */ (0,
|
|
578
|
+
return /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(import_react_bootstrap8.Button, { disabled: loading, className: "w-100", onClick: handleOpen, children: loading ? "Carregando..." : "Enviar por E-mail" });
|
|
378
579
|
}
|
|
379
|
-
return /* @__PURE__ */ (0,
|
|
580
|
+
return /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)(
|
|
380
581
|
"div",
|
|
381
582
|
{
|
|
382
583
|
style: {
|
|
@@ -387,7 +588,7 @@ var MailSender = ({
|
|
|
387
588
|
boxShadow: "0 4px 6px rgba(0, 0, 0, 0.1)"
|
|
388
589
|
},
|
|
389
590
|
children: [
|
|
390
|
-
/* @__PURE__ */ (0,
|
|
591
|
+
/* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
|
|
391
592
|
"div",
|
|
392
593
|
{
|
|
393
594
|
style: {
|
|
@@ -395,20 +596,20 @@ var MailSender = ({
|
|
|
395
596
|
color: "white",
|
|
396
597
|
padding: "25px"
|
|
397
598
|
},
|
|
398
|
-
children: /* @__PURE__ */ (0,
|
|
399
|
-
/* @__PURE__ */ (0,
|
|
400
|
-
/* @__PURE__ */ (0,
|
|
401
|
-
/* @__PURE__ */ (0,
|
|
599
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)("div", { className: "d-flex justify-content-between align-items-center", children: [
|
|
600
|
+
/* @__PURE__ */ (0, import_jsx_runtime8.jsxs)("div", { children: [
|
|
601
|
+
/* @__PURE__ */ (0, import_jsx_runtime8.jsxs)("h4", { className: "mb-1", style: { fontWeight: "600", fontSize: "22px" }, children: [
|
|
602
|
+
/* @__PURE__ */ (0, import_jsx_runtime8.jsx)(import_fi2.FiMail, { className: "me-2", size: 20 }),
|
|
402
603
|
"Enviar Relat\xF3rio por E-mail"
|
|
403
604
|
] }),
|
|
404
|
-
/* @__PURE__ */ (0,
|
|
605
|
+
/* @__PURE__ */ (0, import_jsx_runtime8.jsxs)("small", { style: { opacity: "0.9", fontSize: "14px" }, children: [
|
|
405
606
|
"Selecione os destinat\xE1rios para envio do relat\xF3rio de ",
|
|
406
607
|
companyName
|
|
407
608
|
] })
|
|
408
609
|
] }),
|
|
409
|
-
/* @__PURE__ */ (0,
|
|
410
|
-
/* @__PURE__ */ (0,
|
|
411
|
-
|
|
610
|
+
/* @__PURE__ */ (0, import_jsx_runtime8.jsxs)("div", { className: "d-flex gap-2", children: [
|
|
611
|
+
/* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
|
|
612
|
+
import_react_bootstrap8.Button,
|
|
412
613
|
{
|
|
413
614
|
variant: "light",
|
|
414
615
|
onClick: sendEmail,
|
|
@@ -419,38 +620,38 @@ var MailSender = ({
|
|
|
419
620
|
minWidth: "130px",
|
|
420
621
|
height: "40px"
|
|
421
622
|
},
|
|
422
|
-
children: postLoading ? /* @__PURE__ */ (0,
|
|
423
|
-
/* @__PURE__ */ (0,
|
|
623
|
+
children: postLoading ? /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)(import_jsx_runtime8.Fragment, { children: [
|
|
624
|
+
/* @__PURE__ */ (0, import_jsx_runtime8.jsx)(import_react_bootstrap8.Spinner, { size: "sm", className: "me-2" }),
|
|
424
625
|
"Enviando..."
|
|
425
|
-
] }) : /* @__PURE__ */ (0,
|
|
426
|
-
/* @__PURE__ */ (0,
|
|
626
|
+
] }) : /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)(import_jsx_runtime8.Fragment, { children: [
|
|
627
|
+
/* @__PURE__ */ (0, import_jsx_runtime8.jsx)(import_fi2.FiSend, { className: "me-2", size: 14 }),
|
|
427
628
|
"Enviar E-mail"
|
|
428
629
|
] })
|
|
429
630
|
}
|
|
430
631
|
),
|
|
431
|
-
/* @__PURE__ */ (0,
|
|
432
|
-
|
|
632
|
+
/* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
|
|
633
|
+
import_react_bootstrap8.Button,
|
|
433
634
|
{
|
|
434
635
|
variant: "outline-light",
|
|
435
636
|
onClick: () => setOpened(false),
|
|
436
637
|
disabled: postLoading,
|
|
437
638
|
style: { borderRadius: "8px", width: "40px", height: "40px" },
|
|
438
|
-
children: /* @__PURE__ */ (0,
|
|
639
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(import_fi2.FiX, { size: 16 })
|
|
439
640
|
}
|
|
440
641
|
)
|
|
441
642
|
] })
|
|
442
643
|
] })
|
|
443
644
|
}
|
|
444
645
|
),
|
|
445
|
-
/* @__PURE__ */ (0,
|
|
446
|
-
/* @__PURE__ */ (0,
|
|
447
|
-
/* @__PURE__ */ (0,
|
|
448
|
-
/* @__PURE__ */ (0,
|
|
449
|
-
/* @__PURE__ */ (0,
|
|
450
|
-
/* @__PURE__ */ (0,
|
|
451
|
-
/* @__PURE__ */ (0,
|
|
452
|
-
/* @__PURE__ */ (0,
|
|
453
|
-
|
|
646
|
+
/* @__PURE__ */ (0, import_jsx_runtime8.jsxs)("div", { style: { padding: "25px" }, children: [
|
|
647
|
+
/* @__PURE__ */ (0, import_jsx_runtime8.jsx)(import_react_bootstrap8.Card, { className: "mb-4", style: { border: "none", boxShadow: "0 2px 8px rgba(0,0,0,0.05)" }, children: /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)(import_react_bootstrap8.Card.Body, { style: { padding: "20px" }, children: [
|
|
648
|
+
/* @__PURE__ */ (0, import_jsx_runtime8.jsxs)(import_react_bootstrap8.Row, { className: "align-items-center", children: [
|
|
649
|
+
/* @__PURE__ */ (0, import_jsx_runtime8.jsxs)(import_react_bootstrap8.Col, { md: 6, children: [
|
|
650
|
+
/* @__PURE__ */ (0, import_jsx_runtime8.jsx)("h6", { className: "mb-2", style: { color: "#495057", fontWeight: "600" }, children: "\u{1F527} Filtros e A\xE7\xF5es" }),
|
|
651
|
+
/* @__PURE__ */ (0, import_jsx_runtime8.jsxs)(import_react_bootstrap8.InputGroup, { style: { maxWidth: "300px" }, children: [
|
|
652
|
+
/* @__PURE__ */ (0, import_jsx_runtime8.jsx)(import_react_bootstrap8.InputGroup.Text, { style: { backgroundColor: "#f8f9fa", border: "1px solid #dee2e6" }, children: /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(import_fi2.FiSearch, { size: 14, color: "#6c757d" }) }),
|
|
653
|
+
/* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
|
|
654
|
+
import_react_bootstrap8.Form.Control,
|
|
454
655
|
{
|
|
455
656
|
type: "text",
|
|
456
657
|
placeholder: "Buscar e-mails...",
|
|
@@ -461,25 +662,25 @@ var MailSender = ({
|
|
|
461
662
|
)
|
|
462
663
|
] })
|
|
463
664
|
] }),
|
|
464
|
-
/* @__PURE__ */ (0,
|
|
465
|
-
|
|
665
|
+
/* @__PURE__ */ (0, import_jsx_runtime8.jsx)(import_react_bootstrap8.Col, { md: 6, className: "text-end", children: /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
|
|
666
|
+
import_react_bootstrap8.Button,
|
|
466
667
|
{
|
|
467
668
|
variant: addingEmail ? "outline-secondary" : "outline-primary",
|
|
468
669
|
size: "sm",
|
|
469
670
|
onClick: () => setAddingEmail(!addingEmail),
|
|
470
671
|
disabled: postLoading,
|
|
471
672
|
style: { borderRadius: "8px" },
|
|
472
|
-
children: addingEmail ? /* @__PURE__ */ (0,
|
|
473
|
-
/* @__PURE__ */ (0,
|
|
673
|
+
children: addingEmail ? /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)(import_jsx_runtime8.Fragment, { children: [
|
|
674
|
+
/* @__PURE__ */ (0, import_jsx_runtime8.jsx)(import_fi2.FiX, { className: "me-1", size: 14 }),
|
|
474
675
|
"Cancelar"
|
|
475
|
-
] }) : /* @__PURE__ */ (0,
|
|
476
|
-
/* @__PURE__ */ (0,
|
|
676
|
+
] }) : /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)(import_jsx_runtime8.Fragment, { children: [
|
|
677
|
+
/* @__PURE__ */ (0, import_jsx_runtime8.jsx)(import_fi2.FiPlus, { className: "me-1", size: 14 }),
|
|
477
678
|
"E-mail Personalizado"
|
|
478
679
|
] })
|
|
479
680
|
}
|
|
480
681
|
) })
|
|
481
682
|
] }),
|
|
482
|
-
addingEmail && /* @__PURE__ */ (0,
|
|
683
|
+
addingEmail && /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)(
|
|
483
684
|
"div",
|
|
484
685
|
{
|
|
485
686
|
style: {
|
|
@@ -490,12 +691,12 @@ var MailSender = ({
|
|
|
490
691
|
border: "1px solid #e3f2fd"
|
|
491
692
|
},
|
|
492
693
|
children: [
|
|
493
|
-
/* @__PURE__ */ (0,
|
|
494
|
-
/* @__PURE__ */ (0,
|
|
495
|
-
/* @__PURE__ */ (0,
|
|
496
|
-
/* @__PURE__ */ (0,
|
|
497
|
-
/* @__PURE__ */ (0,
|
|
498
|
-
|
|
694
|
+
/* @__PURE__ */ (0, import_jsx_runtime8.jsx)("h6", { className: "mb-3", style: { color: "#1976d2", fontWeight: "600" }, children: "\u2709\uFE0F Adicionar E-mail Personalizado" }),
|
|
695
|
+
/* @__PURE__ */ (0, import_jsx_runtime8.jsxs)(import_react_bootstrap8.Row, { className: "align-items-end", children: [
|
|
696
|
+
/* @__PURE__ */ (0, import_jsx_runtime8.jsxs)(import_react_bootstrap8.Col, { md: 8, children: [
|
|
697
|
+
/* @__PURE__ */ (0, import_jsx_runtime8.jsx)(import_react_bootstrap8.Form.Label, { style: { fontSize: "13px", color: "#6c757d", fontWeight: "500" }, children: "Endere\xE7o de E-mail" }),
|
|
698
|
+
/* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
|
|
699
|
+
import_react_bootstrap8.Form.Control,
|
|
499
700
|
{
|
|
500
701
|
type: "email",
|
|
501
702
|
placeholder: "exemplo@empresa.com",
|
|
@@ -510,17 +711,17 @@ var MailSender = ({
|
|
|
510
711
|
onKeyPress: (e) => e.key === "Enter" && handleEmailAdd()
|
|
511
712
|
}
|
|
512
713
|
),
|
|
513
|
-
/* @__PURE__ */ (0,
|
|
714
|
+
/* @__PURE__ */ (0, import_jsx_runtime8.jsx)(import_react_bootstrap8.Form.Control.Feedback, { type: "invalid", children: emailError })
|
|
514
715
|
] }),
|
|
515
|
-
/* @__PURE__ */ (0,
|
|
516
|
-
|
|
716
|
+
/* @__PURE__ */ (0, import_jsx_runtime8.jsx)(import_react_bootstrap8.Col, { md: 4, children: /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)(
|
|
717
|
+
import_react_bootstrap8.Button,
|
|
517
718
|
{
|
|
518
719
|
variant: "success",
|
|
519
720
|
onClick: handleEmailAdd,
|
|
520
721
|
disabled: postLoading,
|
|
521
722
|
style: { borderRadius: "8px", width: "100%" },
|
|
522
723
|
children: [
|
|
523
|
-
/* @__PURE__ */ (0,
|
|
724
|
+
/* @__PURE__ */ (0, import_jsx_runtime8.jsx)(import_fi2.FiPlus, { className: "me-1", size: 14 }),
|
|
524
725
|
"Adicionar"
|
|
525
726
|
]
|
|
526
727
|
}
|
|
@@ -530,16 +731,16 @@ var MailSender = ({
|
|
|
530
731
|
}
|
|
531
732
|
)
|
|
532
733
|
] }) }),
|
|
533
|
-
selectedEmails.length > 0 && /* @__PURE__ */ (0,
|
|
534
|
-
/* @__PURE__ */ (0,
|
|
535
|
-
/* @__PURE__ */ (0,
|
|
536
|
-
/* @__PURE__ */ (0,
|
|
734
|
+
selectedEmails.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(import_react_bootstrap8.Card, { className: "mb-4", style: { border: "none", boxShadow: "0 2px 8px rgba(0,0,0,0.05)" }, children: /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)(import_react_bootstrap8.Card.Body, { style: { padding: "20px" }, children: [
|
|
735
|
+
/* @__PURE__ */ (0, import_jsx_runtime8.jsxs)("div", { className: "d-flex justify-content-between align-items-center mb-3", children: [
|
|
736
|
+
/* @__PURE__ */ (0, import_jsx_runtime8.jsx)("h6", { className: "mb-0", style: { color: "#495057", fontWeight: "600" }, children: "\u{1F4CB} Destinat\xE1rios Selecionados" }),
|
|
737
|
+
/* @__PURE__ */ (0, import_jsx_runtime8.jsxs)(import_react_bootstrap8.Badge, { bg: "primary", style: { fontSize: "12px", padding: "6px 12px" }, children: [
|
|
537
738
|
selectedEmails.length,
|
|
538
739
|
" selecionado",
|
|
539
740
|
selectedEmails.length > 1 ? "s" : ""
|
|
540
741
|
] })
|
|
541
742
|
] }),
|
|
542
|
-
/* @__PURE__ */ (0,
|
|
743
|
+
/* @__PURE__ */ (0, import_jsx_runtime8.jsx)("div", { className: "d-flex flex-wrap gap-2", children: selectedEmails.map((email, index) => /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)(
|
|
543
744
|
"div",
|
|
544
745
|
{
|
|
545
746
|
style: {
|
|
@@ -553,10 +754,10 @@ var MailSender = ({
|
|
|
553
754
|
fontWeight: "500"
|
|
554
755
|
},
|
|
555
756
|
children: [
|
|
556
|
-
/* @__PURE__ */ (0,
|
|
557
|
-
/* @__PURE__ */ (0,
|
|
558
|
-
/* @__PURE__ */ (0,
|
|
559
|
-
|
|
757
|
+
/* @__PURE__ */ (0, import_jsx_runtime8.jsx)(import_fi2.FiUser, { size: 12, className: "me-2", color: "#1976d2" }),
|
|
758
|
+
/* @__PURE__ */ (0, import_jsx_runtime8.jsx)("span", { children: email.email || email }),
|
|
759
|
+
/* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
|
|
760
|
+
import_react_bootstrap8.Button,
|
|
560
761
|
{
|
|
561
762
|
variant: "link",
|
|
562
763
|
size: "sm",
|
|
@@ -568,7 +769,7 @@ var MailSender = ({
|
|
|
568
769
|
textDecoration: "none",
|
|
569
770
|
fontSize: "16px"
|
|
570
771
|
},
|
|
571
|
-
children: /* @__PURE__ */ (0,
|
|
772
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(import_fi2.FiX, { size: 14 })
|
|
572
773
|
}
|
|
573
774
|
)
|
|
574
775
|
]
|
|
@@ -576,17 +777,17 @@ var MailSender = ({
|
|
|
576
777
|
index
|
|
577
778
|
)) })
|
|
578
779
|
] }) }),
|
|
579
|
-
/* @__PURE__ */ (0,
|
|
580
|
-
/* @__PURE__ */ (0,
|
|
581
|
-
/* @__PURE__ */ (0,
|
|
780
|
+
/* @__PURE__ */ (0, import_jsx_runtime8.jsx)(import_react_bootstrap8.Card, { style: { border: "none", boxShadow: "0 2px 8px rgba(0,0,0,0.05)" }, children: /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)(import_react_bootstrap8.Card.Body, { style: { padding: "20px" }, children: [
|
|
781
|
+
/* @__PURE__ */ (0, import_jsx_runtime8.jsxs)("h6", { className: "mb-3", style: { color: "#495057", fontWeight: "600" }, children: [
|
|
782
|
+
/* @__PURE__ */ (0, import_jsx_runtime8.jsx)(import_fi2.FiUser, { className: "me-2", size: 16 }),
|
|
582
783
|
"E-mails de ",
|
|
583
784
|
companyName
|
|
584
785
|
] }),
|
|
585
|
-
loading ? /* @__PURE__ */ (0,
|
|
586
|
-
/* @__PURE__ */ (0,
|
|
587
|
-
/* @__PURE__ */ (0,
|
|
588
|
-
] }) : filteredEmails.length === 0 ? /* @__PURE__ */ (0,
|
|
589
|
-
|
|
786
|
+
loading ? /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)("div", { className: "text-center py-4", children: [
|
|
787
|
+
/* @__PURE__ */ (0, import_jsx_runtime8.jsx)(import_react_bootstrap8.Spinner, {}),
|
|
788
|
+
/* @__PURE__ */ (0, import_jsx_runtime8.jsx)("p", { className: "mt-2 text-muted", children: "Carregando e-mails..." })
|
|
789
|
+
] }) : filteredEmails.length === 0 ? /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("div", { className: "text-center py-4", children: /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("p", { className: "text-muted mb-0", children: searchFilter ? "Nenhum e-mail encontrado com esse filtro" : "Nenhum e-mail dispon\xEDvel" }) }) : /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(import_react_bootstrap8.Row, { children: filteredEmails.map((email) => /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(import_react_bootstrap8.Col, { xs: 12, sm: 6, lg: 4, className: "mb-3", children: /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
|
|
790
|
+
import_react_bootstrap8.Card,
|
|
590
791
|
{
|
|
591
792
|
onClick: () => setSelectedEmails([...selectedEmails, email]),
|
|
592
793
|
style: {
|
|
@@ -606,9 +807,9 @@ var MailSender = ({
|
|
|
606
807
|
e.currentTarget.style.boxShadow = "none";
|
|
607
808
|
e.currentTarget.style.borderColor = "#e9ecef";
|
|
608
809
|
},
|
|
609
|
-
children: /* @__PURE__ */ (0,
|
|
610
|
-
/* @__PURE__ */ (0,
|
|
611
|
-
/* @__PURE__ */ (0,
|
|
810
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)(import_react_bootstrap8.Card.Body, { style: { padding: "15px", textAlign: "center" }, children: [
|
|
811
|
+
/* @__PURE__ */ (0, import_jsx_runtime8.jsx)(import_fi2.FiMail, { size: 20, color: "#007bff", className: "mb-2" }),
|
|
812
|
+
/* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
|
|
612
813
|
"div",
|
|
613
814
|
{
|
|
614
815
|
style: {
|
|
@@ -630,13 +831,227 @@ var MailSender = ({
|
|
|
630
831
|
);
|
|
631
832
|
};
|
|
632
833
|
|
|
834
|
+
// src/forms/AutoComplete.tsx
|
|
835
|
+
var import_react6 = require("react");
|
|
836
|
+
var import_react_bootstrap9 = require("react-bootstrap");
|
|
837
|
+
var import_jsx_runtime9 = require("react/jsx-runtime");
|
|
838
|
+
var AutoComplete = ({
|
|
839
|
+
className,
|
|
840
|
+
ops = [],
|
|
841
|
+
sortKey,
|
|
842
|
+
displayKey,
|
|
843
|
+
displayKeys,
|
|
844
|
+
onValueChanged,
|
|
845
|
+
onSelectedClick,
|
|
846
|
+
value,
|
|
847
|
+
actionButton,
|
|
848
|
+
actionButton2,
|
|
849
|
+
placeH,
|
|
850
|
+
title,
|
|
851
|
+
filter,
|
|
852
|
+
filterField,
|
|
853
|
+
loadFunc,
|
|
854
|
+
loadCondition,
|
|
855
|
+
onBlurEvent,
|
|
856
|
+
formatationFunc,
|
|
857
|
+
onEscKeyDown,
|
|
858
|
+
onEnterKeyDown,
|
|
859
|
+
margT,
|
|
860
|
+
margB,
|
|
861
|
+
hideComponent,
|
|
862
|
+
disableComponent = false,
|
|
863
|
+
disableSelect = false,
|
|
864
|
+
autoFocusConfig,
|
|
865
|
+
onLoad,
|
|
866
|
+
cacheKey,
|
|
867
|
+
minChars = 0,
|
|
868
|
+
maxItems,
|
|
869
|
+
showListOnFocus = true,
|
|
870
|
+
lazyLoad = false
|
|
871
|
+
}) => {
|
|
872
|
+
const [liItem, setListItem] = (0, import_react6.useState)([]);
|
|
873
|
+
const [options, setOptions] = (0, import_react6.useState)([]);
|
|
874
|
+
const [input, setInput] = (0, import_react6.useState)("");
|
|
875
|
+
const [hide, setHide] = (0, import_react6.useState)(true);
|
|
876
|
+
const [onLoaded, setOnLoaded] = (0, import_react6.useState)(false);
|
|
877
|
+
const [loading, setLoading] = (0, import_react6.useState)(false);
|
|
878
|
+
const cacheStore = (0, import_react6.useMemo)(() => {
|
|
879
|
+
const win = window;
|
|
880
|
+
if (!win.__AUTO_COMPLETE_CACHE__) {
|
|
881
|
+
win.__AUTO_COMPLETE_CACHE__ = /* @__PURE__ */ new Map();
|
|
882
|
+
}
|
|
883
|
+
return win.__AUTO_COMPLETE_CACHE__;
|
|
884
|
+
}, []);
|
|
885
|
+
const sortOptions = (data, key) => {
|
|
886
|
+
if (!key || !Array.isArray(data)) return data;
|
|
887
|
+
return [...data].sort((a, b) => String(a[key]).localeCompare(String(b[key])));
|
|
888
|
+
};
|
|
889
|
+
(0, import_react6.useEffect)(() => {
|
|
890
|
+
setInput(value || "");
|
|
891
|
+
}, [value]);
|
|
892
|
+
(0, import_react6.useEffect)(() => {
|
|
893
|
+
const sortedOptions = sortOptions(ops, sortKey);
|
|
894
|
+
setListItem(sortedOptions);
|
|
895
|
+
setOptions(sortedOptions);
|
|
896
|
+
}, [ops, sortKey]);
|
|
897
|
+
(0, import_react6.useEffect)(() => {
|
|
898
|
+
const loadData = async () => {
|
|
899
|
+
if (!(loadCondition && loadFunc)) return;
|
|
900
|
+
if (lazyLoad && minChars > 0 && !showListOnFocus && (!value || String(value).length < minChars)) {
|
|
901
|
+
return;
|
|
902
|
+
}
|
|
903
|
+
const key = cacheKey ? `${cacheKey}${filter ? `:${filterField}:${filter}` : ""}` : null;
|
|
904
|
+
if (key && cacheStore.has(key)) {
|
|
905
|
+
const cacheEntry = cacheStore.get(key);
|
|
906
|
+
const data = cacheEntry.promise ? await cacheEntry.promise : cacheEntry.data || cacheEntry;
|
|
907
|
+
setListItem(data);
|
|
908
|
+
setOptions(data);
|
|
909
|
+
triggerOnLoad(data);
|
|
910
|
+
return;
|
|
911
|
+
}
|
|
912
|
+
setLoading(true);
|
|
913
|
+
try {
|
|
914
|
+
const requestPromise = loadFunc().then((res) => {
|
|
915
|
+
let newOps = (res == null ? void 0 : res.content) || res;
|
|
916
|
+
newOps = Array.isArray(newOps) ? newOps.filter((op) => op != null) : [];
|
|
917
|
+
if (filter && filterField) {
|
|
918
|
+
newOps = newOps.filter((op) => op[filterField] === filter);
|
|
919
|
+
}
|
|
920
|
+
return sortOptions(newOps, sortKey);
|
|
921
|
+
});
|
|
922
|
+
if (key) cacheStore.set(key, { promise: requestPromise });
|
|
923
|
+
const sortedOptions = await requestPromise;
|
|
924
|
+
setListItem(sortedOptions);
|
|
925
|
+
setOptions(sortedOptions);
|
|
926
|
+
if (key) cacheStore.set(key, { data: sortedOptions });
|
|
927
|
+
triggerOnLoad(sortedOptions);
|
|
928
|
+
} catch (error) {
|
|
929
|
+
if (key) cacheStore.delete(key);
|
|
930
|
+
setListItem([]);
|
|
931
|
+
} finally {
|
|
932
|
+
setLoading(false);
|
|
933
|
+
}
|
|
934
|
+
};
|
|
935
|
+
loadData();
|
|
936
|
+
}, [loadCondition, filter, filterField, sortKey, cacheKey, lazyLoad, minChars, showListOnFocus]);
|
|
937
|
+
const triggerOnLoad = (data) => {
|
|
938
|
+
if (onLoad && !onLoaded) {
|
|
939
|
+
setOnLoaded(true);
|
|
940
|
+
onLoad(data);
|
|
941
|
+
}
|
|
942
|
+
};
|
|
943
|
+
const keysJoinner = (li) => {
|
|
944
|
+
if (!displayKeys || !Array.isArray(displayKeys)) return "";
|
|
945
|
+
return displayKeys.map((key) => `${li[key]} `).join("").trim();
|
|
946
|
+
};
|
|
947
|
+
const getDisplayText = (item) => {
|
|
948
|
+
if (formatationFunc) return formatationFunc(item);
|
|
949
|
+
if (displayKey) return item[displayKey];
|
|
950
|
+
if (displayKeys) return keysJoinner(item);
|
|
951
|
+
return String(item);
|
|
952
|
+
};
|
|
953
|
+
const onFieldUpdate = (val) => {
|
|
954
|
+
const search = val.toLowerCase();
|
|
955
|
+
const canSearch = search.length >= minChars;
|
|
956
|
+
if (canSearch && Array.isArray(options)) {
|
|
957
|
+
const filtered = options.filter((item) => {
|
|
958
|
+
const text = getDisplayText(item);
|
|
959
|
+
return String(text).toLowerCase().includes(search);
|
|
960
|
+
});
|
|
961
|
+
setListItem(filtered);
|
|
962
|
+
} else {
|
|
963
|
+
setListItem(options || []);
|
|
964
|
+
}
|
|
965
|
+
onValueChanged == null ? void 0 : onValueChanged(val);
|
|
966
|
+
setInput(val);
|
|
967
|
+
setHide(!canSearch && options.length === 0);
|
|
968
|
+
};
|
|
969
|
+
return /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)(
|
|
970
|
+
"div",
|
|
971
|
+
{
|
|
972
|
+
className,
|
|
973
|
+
style: { marginTop: margT != null ? margT : 4, marginBottom: margB != null ? margB : 4, position: "relative" },
|
|
974
|
+
onBlur: (e) => {
|
|
975
|
+
setTimeout(() => {
|
|
976
|
+
onBlurEvent == null ? void 0 : onBlurEvent(e, input);
|
|
977
|
+
setHide(true);
|
|
978
|
+
}, 200);
|
|
979
|
+
},
|
|
980
|
+
onKeyDown: (e) => {
|
|
981
|
+
if (e.key === "Escape") {
|
|
982
|
+
setHide(true);
|
|
983
|
+
onEscKeyDown == null ? void 0 : onEscKeyDown();
|
|
984
|
+
}
|
|
985
|
+
if (e.key === "Enter" && onEnterKeyDown) {
|
|
986
|
+
onEnterKeyDown(input);
|
|
987
|
+
}
|
|
988
|
+
},
|
|
989
|
+
onMouseLeave: () => setHide(true),
|
|
990
|
+
children: [
|
|
991
|
+
!hideComponent && /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)(import_react_bootstrap9.InputGroup, { children: [
|
|
992
|
+
/* @__PURE__ */ (0, import_jsx_runtime9.jsx)(import_react_bootstrap9.FloatingLabel, { controlId: "floatingInput", label: title, style: { zIndex: 0, flex: 1 }, children: /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
|
|
993
|
+
import_react_bootstrap9.Form.Control,
|
|
994
|
+
{
|
|
995
|
+
autoFocus: autoFocusConfig,
|
|
996
|
+
disabled: disableComponent || disableSelect,
|
|
997
|
+
placeholder: placeH,
|
|
998
|
+
autoComplete: "off",
|
|
999
|
+
value: input,
|
|
1000
|
+
onClickCapture: () => {
|
|
1001
|
+
const canOpen = showListOnFocus && input.length >= minChars;
|
|
1002
|
+
setHide(!canOpen);
|
|
1003
|
+
},
|
|
1004
|
+
onChange: (e) => onFieldUpdate(e.currentTarget.value),
|
|
1005
|
+
type: "text"
|
|
1006
|
+
}
|
|
1007
|
+
) }),
|
|
1008
|
+
loading && /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(import_react_bootstrap9.InputGroup.Text, { children: /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(import_react_bootstrap9.Spinner, { animation: "border", size: "sm" }) }),
|
|
1009
|
+
!disableComponent && (actionButton == null ? void 0 : actionButton(() => setInput(""))),
|
|
1010
|
+
!disableComponent && (actionButton2 == null ? void 0 : actionButton2(input))
|
|
1011
|
+
] }),
|
|
1012
|
+
/* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
|
|
1013
|
+
import_react_bootstrap9.ListGroup,
|
|
1014
|
+
{
|
|
1015
|
+
className: "listgroup-autocomplete shadow-sm",
|
|
1016
|
+
hidden: hide || liItem.length === 0,
|
|
1017
|
+
style: {
|
|
1018
|
+
position: "absolute",
|
|
1019
|
+
top: "100%",
|
|
1020
|
+
left: 0,
|
|
1021
|
+
width: "100%",
|
|
1022
|
+
maxHeight: "250px",
|
|
1023
|
+
overflowY: "auto",
|
|
1024
|
+
zIndex: 1050,
|
|
1025
|
+
backgroundColor: "#fff"
|
|
1026
|
+
},
|
|
1027
|
+
children: (maxItems ? liItem.slice(0, maxItems) : liItem).map((li, index) => /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
|
|
1028
|
+
import_react_bootstrap9.ListGroup.Item,
|
|
1029
|
+
{
|
|
1030
|
+
action: true,
|
|
1031
|
+
onClick: () => {
|
|
1032
|
+
const text = getDisplayText(li);
|
|
1033
|
+
setInput(text);
|
|
1034
|
+
onSelectedClick(li, index, liItem);
|
|
1035
|
+
setHide(true);
|
|
1036
|
+
},
|
|
1037
|
+
children: getDisplayText(li)
|
|
1038
|
+
},
|
|
1039
|
+
index
|
|
1040
|
+
))
|
|
1041
|
+
}
|
|
1042
|
+
)
|
|
1043
|
+
]
|
|
1044
|
+
}
|
|
1045
|
+
);
|
|
1046
|
+
};
|
|
1047
|
+
|
|
633
1048
|
// src/forms/GenericForm.tsx
|
|
634
|
-
var
|
|
635
|
-
var
|
|
636
|
-
var
|
|
1049
|
+
var import_react7 = require("react");
|
|
1050
|
+
var import_react_bootstrap10 = require("react-bootstrap");
|
|
1051
|
+
var import_jsx_runtime10 = require("react/jsx-runtime");
|
|
637
1052
|
var GenericForm = ({ fields, onSubmit, renderCustomSelect }) => {
|
|
638
|
-
const [formValues, setFormValues] = (0,
|
|
639
|
-
const [errors, setErrors] = (0,
|
|
1053
|
+
const [formValues, setFormValues] = (0, import_react7.useState)({});
|
|
1054
|
+
const [errors, setErrors] = (0, import_react7.useState)({});
|
|
640
1055
|
const handleChange = (key, value) => {
|
|
641
1056
|
setFormValues({
|
|
642
1057
|
...formValues,
|
|
@@ -665,10 +1080,10 @@ var GenericForm = ({ fields, onSubmit, renderCustomSelect }) => {
|
|
|
665
1080
|
switch (type) {
|
|
666
1081
|
case "text":
|
|
667
1082
|
case "number":
|
|
668
|
-
return /* @__PURE__ */ (0,
|
|
669
|
-
/* @__PURE__ */ (0,
|
|
670
|
-
/* @__PURE__ */ (0,
|
|
671
|
-
|
|
1083
|
+
return /* @__PURE__ */ (0, import_jsx_runtime10.jsxs)(import_react_bootstrap10.Form.Group, { className: "mb-3", children: [
|
|
1084
|
+
/* @__PURE__ */ (0, import_jsx_runtime10.jsx)(import_react_bootstrap10.Form.Label, { children: label }),
|
|
1085
|
+
/* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
|
|
1086
|
+
import_react_bootstrap10.Form.Control,
|
|
672
1087
|
{
|
|
673
1088
|
type,
|
|
674
1089
|
placeholder,
|
|
@@ -677,30 +1092,30 @@ var GenericForm = ({ fields, onSubmit, renderCustomSelect }) => {
|
|
|
677
1092
|
isInvalid: !!errors[key]
|
|
678
1093
|
}
|
|
679
1094
|
),
|
|
680
|
-
/* @__PURE__ */ (0,
|
|
1095
|
+
/* @__PURE__ */ (0, import_jsx_runtime10.jsx)(import_react_bootstrap10.Form.Control.Feedback, { type: "invalid", children: errors[key] })
|
|
681
1096
|
] }, key);
|
|
682
1097
|
case "select": {
|
|
683
1098
|
const orderedOptions = (options || []).filter((opt) => opt && opt.value !== void 0 && opt.label !== void 0).sort((a, b) => a.label.localeCompare(b.label));
|
|
684
|
-
return /* @__PURE__ */ (0,
|
|
685
|
-
/* @__PURE__ */ (0,
|
|
686
|
-
/* @__PURE__ */ (0,
|
|
687
|
-
|
|
1099
|
+
return /* @__PURE__ */ (0, import_jsx_runtime10.jsxs)(import_react_bootstrap10.Form.Group, { className: "mb-3", children: [
|
|
1100
|
+
/* @__PURE__ */ (0, import_jsx_runtime10.jsx)(import_react_bootstrap10.Form.Label, { children: label }),
|
|
1101
|
+
/* @__PURE__ */ (0, import_jsx_runtime10.jsxs)(
|
|
1102
|
+
import_react_bootstrap10.Form.Select,
|
|
688
1103
|
{
|
|
689
1104
|
value,
|
|
690
1105
|
onChange: (e) => handleChange(key, e.target.value),
|
|
691
1106
|
isInvalid: !!errors[key],
|
|
692
1107
|
children: [
|
|
693
|
-
/* @__PURE__ */ (0,
|
|
694
|
-
orderedOptions.map((option) => /* @__PURE__ */ (0,
|
|
1108
|
+
/* @__PURE__ */ (0, import_jsx_runtime10.jsx)("option", { value: "", children: "Selecione..." }),
|
|
1109
|
+
orderedOptions.map((option) => /* @__PURE__ */ (0, import_jsx_runtime10.jsx)("option", { value: option.value, children: option.label }, String(option.value)))
|
|
695
1110
|
]
|
|
696
1111
|
}
|
|
697
1112
|
),
|
|
698
|
-
/* @__PURE__ */ (0,
|
|
1113
|
+
/* @__PURE__ */ (0, import_jsx_runtime10.jsx)(import_react_bootstrap10.Form.Control.Feedback, { type: "invalid", children: errors[key] })
|
|
699
1114
|
] }, key);
|
|
700
1115
|
}
|
|
701
1116
|
case "custom-select":
|
|
702
1117
|
if (renderCustomSelect) {
|
|
703
|
-
return /* @__PURE__ */ (0,
|
|
1118
|
+
return /* @__PURE__ */ (0, import_jsx_runtime10.jsxs)("div", { children: [
|
|
704
1119
|
renderCustomSelect({
|
|
705
1120
|
label,
|
|
706
1121
|
value,
|
|
@@ -708,15 +1123,15 @@ var GenericForm = ({ fields, onSubmit, renderCustomSelect }) => {
|
|
|
708
1123
|
onChange: (v) => handleChange(key, v),
|
|
709
1124
|
placeholder
|
|
710
1125
|
}),
|
|
711
|
-
errors[key] && /* @__PURE__ */ (0,
|
|
1126
|
+
errors[key] && /* @__PURE__ */ (0, import_jsx_runtime10.jsx)("div", { className: "invalid-feedback d-block", children: errors[key] })
|
|
712
1127
|
] }, key);
|
|
713
1128
|
}
|
|
714
1129
|
return null;
|
|
715
1130
|
case "date":
|
|
716
|
-
return /* @__PURE__ */ (0,
|
|
717
|
-
/* @__PURE__ */ (0,
|
|
718
|
-
/* @__PURE__ */ (0,
|
|
719
|
-
|
|
1131
|
+
return /* @__PURE__ */ (0, import_jsx_runtime10.jsxs)(import_react_bootstrap10.Form.Group, { className: "mb-3", children: [
|
|
1132
|
+
/* @__PURE__ */ (0, import_jsx_runtime10.jsx)(import_react_bootstrap10.Form.Label, { children: label }),
|
|
1133
|
+
/* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
|
|
1134
|
+
import_react_bootstrap10.Form.Control,
|
|
720
1135
|
{
|
|
721
1136
|
type: "date",
|
|
722
1137
|
value,
|
|
@@ -724,23 +1139,23 @@ var GenericForm = ({ fields, onSubmit, renderCustomSelect }) => {
|
|
|
724
1139
|
isInvalid: !!errors[key]
|
|
725
1140
|
}
|
|
726
1141
|
),
|
|
727
|
-
/* @__PURE__ */ (0,
|
|
1142
|
+
/* @__PURE__ */ (0, import_jsx_runtime10.jsx)(import_react_bootstrap10.Form.Control.Feedback, { type: "invalid", children: errors[key] })
|
|
728
1143
|
] }, key);
|
|
729
1144
|
default:
|
|
730
1145
|
return null;
|
|
731
1146
|
}
|
|
732
1147
|
};
|
|
733
|
-
return /* @__PURE__ */ (0,
|
|
1148
|
+
return /* @__PURE__ */ (0, import_jsx_runtime10.jsxs)(import_react_bootstrap10.Form, { onSubmit: handleSubmit, children: [
|
|
734
1149
|
fields.map((field) => renderField(field)),
|
|
735
|
-
/* @__PURE__ */ (0,
|
|
1150
|
+
/* @__PURE__ */ (0, import_jsx_runtime10.jsx)("div", { className: "d-grid", children: /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(import_react_bootstrap10.Button, { variant: "primary", type: "submit", children: "Salvar" }) })
|
|
736
1151
|
] });
|
|
737
1152
|
};
|
|
738
1153
|
var GenericForm_default = GenericForm;
|
|
739
1154
|
|
|
740
1155
|
// src/forms/GenericSelect.tsx
|
|
741
|
-
var
|
|
742
|
-
var
|
|
743
|
-
var
|
|
1156
|
+
var import_react8 = require("react");
|
|
1157
|
+
var import_react_bootstrap11 = require("react-bootstrap");
|
|
1158
|
+
var import_jsx_runtime11 = require("react/jsx-runtime");
|
|
744
1159
|
var GenericSelectOps = class {
|
|
745
1160
|
constructor(noLabel, title, onChange, ops, selection, returnType, displayType, filter, filterField, valueType, loadFunc, loadCondition, actionClick, locked) {
|
|
746
1161
|
this.noLabel = noLabel;
|
|
@@ -777,8 +1192,8 @@ var GenericSelect = ({
|
|
|
777
1192
|
isBold,
|
|
778
1193
|
...restProps
|
|
779
1194
|
}) => {
|
|
780
|
-
const [options, setOptions] = (0,
|
|
781
|
-
(0,
|
|
1195
|
+
const [options, setOptions] = (0, import_react8.useState)(ops || []);
|
|
1196
|
+
(0, import_react8.useEffect)(() => {
|
|
782
1197
|
const loadFunction = async () => {
|
|
783
1198
|
if (loadCondition && loadFunc) {
|
|
784
1199
|
loadFunc().then((res) => {
|
|
@@ -803,15 +1218,15 @@ var GenericSelect = ({
|
|
|
803
1218
|
}
|
|
804
1219
|
};
|
|
805
1220
|
const defaultPlaceholder = (restProps == null ? void 0 : restProps.default) || "Seleciona uma Op\xE7\xE3o";
|
|
806
|
-
const selectContent = /* @__PURE__ */ (0,
|
|
807
|
-
|
|
1221
|
+
const selectContent = /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)(
|
|
1222
|
+
import_react_bootstrap11.Form.Control,
|
|
808
1223
|
{
|
|
809
1224
|
disabled: locked,
|
|
810
1225
|
as: "select",
|
|
811
1226
|
value: selection,
|
|
812
1227
|
onChange: (event) => getTrueValue(event.target.selectedIndex),
|
|
813
1228
|
children: [
|
|
814
|
-
/* @__PURE__ */ (0,
|
|
1229
|
+
/* @__PURE__ */ (0, import_jsx_runtime11.jsxs)("option", { value: void 0, children: [
|
|
815
1230
|
"-- ",
|
|
816
1231
|
defaultPlaceholder,
|
|
817
1232
|
" --"
|
|
@@ -820,31 +1235,34 @@ var GenericSelect = ({
|
|
|
820
1235
|
const val = valueType && op[valueType] || op.id || op;
|
|
821
1236
|
let fill = displayType && op[displayType] || op;
|
|
822
1237
|
if (typeof fill == "object") fill = "";
|
|
823
|
-
return /* @__PURE__ */ (0,
|
|
1238
|
+
return /* @__PURE__ */ (0, import_jsx_runtime11.jsx)("option", { value: val, children: fill }, op.id || index);
|
|
824
1239
|
})
|
|
825
1240
|
]
|
|
826
1241
|
}
|
|
827
1242
|
);
|
|
828
1243
|
if (actionClick) {
|
|
829
|
-
return /* @__PURE__ */ (0,
|
|
830
|
-
/* @__PURE__ */ (0,
|
|
831
|
-
/* @__PURE__ */ (0,
|
|
1244
|
+
return /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)(import_jsx_runtime11.Fragment, { children: [
|
|
1245
|
+
/* @__PURE__ */ (0, import_jsx_runtime11.jsx)(import_react_bootstrap11.Form.Label, { style: { fontWeight: isBold ? "bold" : void 0 }, hidden: noLabel, children: title }),
|
|
1246
|
+
/* @__PURE__ */ (0, import_jsx_runtime11.jsxs)(import_react_bootstrap11.InputGroup, { children: [
|
|
832
1247
|
selectContent,
|
|
833
1248
|
actionClick()
|
|
834
1249
|
] })
|
|
835
1250
|
] });
|
|
836
1251
|
}
|
|
837
|
-
return /* @__PURE__ */ (0,
|
|
838
|
-
/* @__PURE__ */ (0,
|
|
1252
|
+
return /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)(import_jsx_runtime11.Fragment, { children: [
|
|
1253
|
+
/* @__PURE__ */ (0, import_jsx_runtime11.jsx)(import_react_bootstrap11.Form.Label, { style: { fontWeight: isBold ? "bold" : void 0 }, hidden: noLabel, children: title }),
|
|
839
1254
|
selectContent
|
|
840
1255
|
] });
|
|
841
1256
|
};
|
|
842
1257
|
var GenericSelect_default = GenericSelect;
|
|
843
1258
|
// Annotate the CommonJS export names for ESM import in node:
|
|
844
1259
|
0 && (module.exports = {
|
|
1260
|
+
ActionButtons,
|
|
845
1261
|
AddButton,
|
|
1262
|
+
AutoComplete,
|
|
846
1263
|
ConfigObject,
|
|
847
1264
|
DeleteButton,
|
|
1265
|
+
DeleteConfirm,
|
|
848
1266
|
GenericDisplay,
|
|
849
1267
|
GenericForm,
|
|
850
1268
|
GenericSelect,
|