@oondemand/oon-core-front 0.3.34 → 0.3.36
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 +282 -130
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -1833,7 +1833,7 @@ function DynamicForm({ title, eyebrow = "Cadastro", fields, initialValues, submi
|
|
|
1833
1833
|
|
|
1834
1834
|
// src/components/internal/CoreDetailModal.tsx
|
|
1835
1835
|
import { useEffect as useEffect6, useMemo as useMemo7, useState as useState9 } from "react";
|
|
1836
|
-
import { Box as Box8, Flex as Flex7, Heading as Heading3, IconButton, Text as Text10 } from "@chakra-ui/react";
|
|
1836
|
+
import { Box as Box8, Button as Button8, Flex as Flex7, Heading as Heading3, IconButton, Text as Text10 } from "@chakra-ui/react";
|
|
1837
1837
|
import { useQuery as useQuery6, useQueryClient as useQueryClient2 } from "@tanstack/react-query";
|
|
1838
1838
|
|
|
1839
1839
|
// src/components/internal/CoreTabbedDetail.tsx
|
|
@@ -2024,6 +2024,8 @@ function CoreRowAction({ action, row, parent, onOpenDetail, onRefresh, onUpdate
|
|
|
2024
2024
|
const [formInitialValues, setFormInitialValues] = useState6({});
|
|
2025
2025
|
const pipelineAction = action;
|
|
2026
2026
|
const tone = pipelineAction.tone ? ACTION_TONES[pipelineAction.tone] : void 0;
|
|
2027
|
+
const isWorkStatus = pipelineAction.group === "workStatus";
|
|
2028
|
+
const isSelected = isWorkStatus && !!pipelineAction.field && row[pipelineAction.field] === pipelineAction.value;
|
|
2027
2029
|
if (evaluateCondition(action.hiddenWhen, row)) return null;
|
|
2028
2030
|
const disabled = evaluateCondition(action.disabledWhen, row) || loading;
|
|
2029
2031
|
const confirmAction = () => action.confirm ? window.confirm(action.confirm.description ?? action.confirm.title ?? `Executar ${action.label}?`) : true;
|
|
@@ -2082,27 +2084,32 @@ function CoreRowAction({ action, row, parent, onOpenDetail, onRefresh, onUpdate
|
|
|
2082
2084
|
}
|
|
2083
2085
|
};
|
|
2084
2086
|
return /* @__PURE__ */ jsxs8("span", { style: { display: "inline-flex", flexDirection: "column" }, children: [
|
|
2085
|
-
/* @__PURE__ */
|
|
2087
|
+
/* @__PURE__ */ jsxs8(
|
|
2086
2088
|
Button5,
|
|
2087
2089
|
{
|
|
2088
2090
|
type: "button",
|
|
2089
2091
|
size: "xs",
|
|
2090
|
-
minH: "28px",
|
|
2091
|
-
px: "9px",
|
|
2092
|
-
borderRadius: "6px",
|
|
2092
|
+
minH: isWorkStatus ? "32px" : "28px",
|
|
2093
|
+
px: isWorkStatus ? "12px" : "9px",
|
|
2094
|
+
borderRadius: isWorkStatus ? "full" : "6px",
|
|
2093
2095
|
fontSize: "10px",
|
|
2094
2096
|
fontWeight: "700",
|
|
2095
2097
|
variant: tone ? "outline" : void 0,
|
|
2096
|
-
bg: tone?.bg,
|
|
2098
|
+
bg: isWorkStatus && !isSelected ? "white" : tone?.bg,
|
|
2097
2099
|
color: tone?.color,
|
|
2098
|
-
borderColor: tone?.border,
|
|
2099
|
-
|
|
2100
|
+
borderColor: isSelected ? tone?.color : tone?.border,
|
|
2101
|
+
borderWidth: isSelected ? "2px" : "1px",
|
|
2102
|
+
boxShadow: isSelected ? `0 0 0 3px ${tone?.border ?? "#E2E8F0"}` : tone ? "none" : void 0,
|
|
2103
|
+
"aria-pressed": isWorkStatus ? isSelected : void 0,
|
|
2100
2104
|
loading,
|
|
2101
2105
|
disabled,
|
|
2102
2106
|
onClick: run,
|
|
2103
2107
|
_hover: tone ? { bg: tone.hover, borderColor: tone.border } : void 0,
|
|
2104
|
-
_disabled: tone ? { opacity: 0.55, cursor: "not-allowed" } : void 0,
|
|
2105
|
-
children:
|
|
2108
|
+
_disabled: tone ? { opacity: isSelected ? 1 : 0.55, cursor: "not-allowed" } : void 0,
|
|
2109
|
+
children: [
|
|
2110
|
+
isWorkStatus ? /* @__PURE__ */ jsx12("span", { "aria-hidden": "true", style: { width: 8, height: 8, display: "inline-block", marginRight: 7, borderRadius: "999px", background: tone?.color ?? "#64748B", boxShadow: isSelected ? "0 0 0 2px rgba(255,255,255,.9)" : "none" } }) : null,
|
|
2111
|
+
action.label
|
|
2112
|
+
]
|
|
2106
2113
|
}
|
|
2107
2114
|
),
|
|
2108
2115
|
error ? /* @__PURE__ */ jsx12(Text7, { mt: "3px", color: "#B42318", fontSize: "9px", children: messageOf2(error) }) : null,
|
|
@@ -2541,7 +2548,9 @@ function InlineParentForm({
|
|
|
2541
2548
|
groups,
|
|
2542
2549
|
parent,
|
|
2543
2550
|
resource,
|
|
2544
|
-
onSaved
|
|
2551
|
+
onSaved,
|
|
2552
|
+
formId,
|
|
2553
|
+
externalSubmit = false
|
|
2545
2554
|
}) {
|
|
2546
2555
|
const fields = rawFields;
|
|
2547
2556
|
const [values, setValues] = useState8({});
|
|
@@ -2605,6 +2614,7 @@ function InlineParentForm({
|
|
|
2605
2614
|
return /* @__PURE__ */ jsx14(
|
|
2606
2615
|
"form",
|
|
2607
2616
|
{
|
|
2617
|
+
id: formId,
|
|
2608
2618
|
noValidate: true,
|
|
2609
2619
|
onSubmit: async (event) => {
|
|
2610
2620
|
event.preventDefault();
|
|
@@ -2633,7 +2643,7 @@ function InlineParentForm({
|
|
|
2633
2643
|
children: /* @__PURE__ */ jsxs10(Stack3, { gap: "16px", children: [
|
|
2634
2644
|
error ? /* @__PURE__ */ jsx14(Box7, { role: "alert", p: "10px 12px", color: "#B42318", bg: "#FEF3F2", borderWidth: "1px", borderColor: "#FECDCA", borderRadius: "7px", fontSize: "11px", children: messageOf3(error) }) : null,
|
|
2635
2645
|
renderFields(),
|
|
2636
|
-
/* @__PURE__ */ jsx14(Flex6, { justify: "flex-end", children: /* @__PURE__ */ jsx14(Button7, { type: "submit", colorPalette: "brand", loading: saving, children: "Salvar dados principais" }) })
|
|
2646
|
+
!externalSubmit ? /* @__PURE__ */ jsx14(Flex6, { justify: "flex-end", children: /* @__PURE__ */ jsx14(Button7, { type: "submit", colorPalette: "brand", loading: saving, children: "Salvar dados principais" }) }) : null
|
|
2637
2647
|
] })
|
|
2638
2648
|
}
|
|
2639
2649
|
);
|
|
@@ -2648,7 +2658,9 @@ function CoreTabbedDetail({
|
|
|
2648
2658
|
relations,
|
|
2649
2659
|
refreshTokens,
|
|
2650
2660
|
onRefresh,
|
|
2651
|
-
onParentSaved
|
|
2661
|
+
onParentSaved,
|
|
2662
|
+
formId,
|
|
2663
|
+
externalSubmit
|
|
2652
2664
|
}) {
|
|
2653
2665
|
const active = tabs.find((tab) => tab.id === activeTab) ?? tabs[0];
|
|
2654
2666
|
return /* @__PURE__ */ jsxs10(Stack3, { gap: 4, children: [
|
|
@@ -2674,7 +2686,9 @@ function CoreTabbedDetail({
|
|
|
2674
2686
|
groups: active.groups,
|
|
2675
2687
|
parent: parent ?? {},
|
|
2676
2688
|
resource,
|
|
2677
|
-
onSaved: onParentSaved
|
|
2689
|
+
onSaved: onParentSaved,
|
|
2690
|
+
formId,
|
|
2691
|
+
externalSubmit
|
|
2678
2692
|
}
|
|
2679
2693
|
) : (active.type === "relatedGrid" || active.type === "readonlyGrid") && parent ? /* @__PURE__ */ jsx14(
|
|
2680
2694
|
CoreRelatedGrid,
|
|
@@ -2703,7 +2717,8 @@ function CoreDetailModal({
|
|
|
2703
2717
|
initialRecord,
|
|
2704
2718
|
initialTab,
|
|
2705
2719
|
relations,
|
|
2706
|
-
|
|
2720
|
+
topActions,
|
|
2721
|
+
bottomActions,
|
|
2707
2722
|
onClose,
|
|
2708
2723
|
onSaved
|
|
2709
2724
|
}) {
|
|
@@ -2748,14 +2763,16 @@ function CoreDetailModal({
|
|
|
2748
2763
|
};
|
|
2749
2764
|
const width = config.size === "full" ? "98vw" : config.size === "md" ? "760px" : config.size === "lg" ? "980px" : "1180px";
|
|
2750
2765
|
const displayTitle = parent?.[config.titleField ?? ""] ? String(parent[config.titleField ?? ""]) : title;
|
|
2751
|
-
|
|
2766
|
+
const activeIsForm = (config.tabs.find((tab) => tab.id === activeTab) ?? config.tabs[0])?.type === "form";
|
|
2767
|
+
const formId = `oon-detail-form-${model.replace(/[^a-zA-Z0-9_-]/g, "-")}`;
|
|
2768
|
+
return /* @__PURE__ */ jsx15(Flex7, { position: "fixed", inset: 0, zIndex: 1e3, align: "center", justify: "center", p: 4, bg: "rgba(15,23,42,.48)", children: /* @__PURE__ */ jsxs11(Box8, { role: "dialog", "aria-modal": "true", display: "flex", flexDirection: "column", w: `min(${width}, 98vw)`, h: "94vh", maxH: "94vh", overflow: "hidden", bg: "white", borderRadius: "14px", boxShadow: "0 24px 70px rgba(15,23,42,.24)", children: [
|
|
2752
2769
|
/* @__PURE__ */ jsxs11(Flex7, { minH: "72px", px: "20px", py: "10px", align: "center", justify: "space-between", gap: 4, borderBottomWidth: "1px", borderColor: "#E5E9ED", children: [
|
|
2753
2770
|
/* @__PURE__ */ jsxs11(Box8, { minW: "160px", children: [
|
|
2754
2771
|
/* @__PURE__ */ jsx15(Text10, { color: "#0474AF", fontSize: "10px", fontWeight: "700", textTransform: "uppercase", children: "Detalhe" }),
|
|
2755
2772
|
/* @__PURE__ */ jsx15(Heading3, { size: "md", children: recordId ? displayTitle : `Novo ${title}` })
|
|
2756
2773
|
] }),
|
|
2757
2774
|
/* @__PURE__ */ jsxs11(Flex7, { flex: "1", align: "center", justify: "flex-end", gap: "8px", wrap: "wrap", children: [
|
|
2758
|
-
recordId ?
|
|
2775
|
+
recordId ? topActions : null,
|
|
2759
2776
|
/* @__PURE__ */ jsx15(
|
|
2760
2777
|
IconButton,
|
|
2761
2778
|
{
|
|
@@ -2777,7 +2794,7 @@ function CoreDetailModal({
|
|
|
2777
2794
|
)
|
|
2778
2795
|
] })
|
|
2779
2796
|
] }),
|
|
2780
|
-
/* @__PURE__ */ jsx15(Box8, {
|
|
2797
|
+
/* @__PURE__ */ jsx15(Box8, { flex: "1", minH: 0, p: "20px", overflowY: "auto", children: schemaQuery.isLoading || parentQuery.isLoading ? /* @__PURE__ */ jsx15(Text10, { children: "Carregando..." }) : /* @__PURE__ */ jsx15(
|
|
2781
2798
|
CoreTabbedDetail,
|
|
2782
2799
|
{
|
|
2783
2800
|
tabs: config.tabs,
|
|
@@ -2789,13 +2806,35 @@ function CoreDetailModal({
|
|
|
2789
2806
|
relations,
|
|
2790
2807
|
refreshTokens,
|
|
2791
2808
|
onRefresh: refresh,
|
|
2809
|
+
formId,
|
|
2810
|
+
externalSubmit: true,
|
|
2792
2811
|
onParentSaved: (saved) => {
|
|
2793
2812
|
setParent(saved);
|
|
2794
2813
|
onSaved?.(saved);
|
|
2795
2814
|
refresh(["parent"]);
|
|
2796
2815
|
}
|
|
2797
2816
|
}
|
|
2798
|
-
) })
|
|
2817
|
+
) }),
|
|
2818
|
+
/* @__PURE__ */ jsxs11(
|
|
2819
|
+
Flex7,
|
|
2820
|
+
{
|
|
2821
|
+
flex: "0 0 auto",
|
|
2822
|
+
minH: "64px",
|
|
2823
|
+
px: "20px",
|
|
2824
|
+
py: "10px",
|
|
2825
|
+
align: "center",
|
|
2826
|
+
justify: "space-between",
|
|
2827
|
+
gap: "12px",
|
|
2828
|
+
bg: "white",
|
|
2829
|
+
borderTopWidth: "1px",
|
|
2830
|
+
borderColor: "#E5E9ED",
|
|
2831
|
+
boxShadow: "0 -8px 24px rgba(15,23,42,.06)",
|
|
2832
|
+
children: [
|
|
2833
|
+
/* @__PURE__ */ jsx15(Box8, { children: recordId ? bottomActions : null }),
|
|
2834
|
+
/* @__PURE__ */ jsx15(Button8, { type: "submit", form: formId, colorPalette: "brand", disabled: !activeIsForm || schemaQuery.isLoading || parentQuery.isLoading, children: "Salvar" })
|
|
2835
|
+
]
|
|
2836
|
+
}
|
|
2837
|
+
)
|
|
2799
2838
|
] }) });
|
|
2800
2839
|
}
|
|
2801
2840
|
|
|
@@ -2940,8 +2979,8 @@ function CoreDocument({ model, label, endpoint, columns, form }) {
|
|
|
2940
2979
|
}
|
|
2941
2980
|
|
|
2942
2981
|
// src/components/CorePipeline.tsx
|
|
2943
|
-
import { useState as useState11 } from "react";
|
|
2944
|
-
import { Badge as Badge4, Box as Box10, Button as
|
|
2982
|
+
import { useEffect as useEffect7, useRef as useRef2, useState as useState11 } from "react";
|
|
2983
|
+
import { Badge as Badge4, Box as Box10, Button as Button9, Flex as Flex8, Heading as Heading5, Input as Input6, NativeSelect as NativeSelect5, Stack as Stack5, Text as Text12 } from "@chakra-ui/react";
|
|
2945
2984
|
import { useMutation as useMutation3, useQuery as useQuery7, useQueryClient as useQueryClient4 } from "@tanstack/react-query";
|
|
2946
2985
|
|
|
2947
2986
|
// src/pipelineTicket.ts
|
|
@@ -3069,6 +3108,19 @@ function groupPipelineActions(actions) {
|
|
|
3069
3108
|
};
|
|
3070
3109
|
}
|
|
3071
3110
|
|
|
3111
|
+
// src/components/internal/pipelineBoardScroll.ts
|
|
3112
|
+
var EDGE_TOLERANCE = 2;
|
|
3113
|
+
function resolveHorizontalScrollState(metrics) {
|
|
3114
|
+
const maxScrollLeft = Math.max(0, metrics.scrollWidth - metrics.clientWidth);
|
|
3115
|
+
return {
|
|
3116
|
+
canScrollLeft: metrics.scrollLeft > EDGE_TOLERANCE,
|
|
3117
|
+
canScrollRight: metrics.scrollLeft < maxScrollLeft - EDGE_TOLERANCE
|
|
3118
|
+
};
|
|
3119
|
+
}
|
|
3120
|
+
function pipelineBoardScrollStep(clientWidth) {
|
|
3121
|
+
return Math.max(280, Math.round(clientWidth * 0.75));
|
|
3122
|
+
}
|
|
3123
|
+
|
|
3072
3124
|
// src/components/CorePipeline.tsx
|
|
3073
3125
|
import { jsx as jsx18, jsxs as jsxs13 } from "react/jsx-runtime";
|
|
3074
3126
|
function ticketId(row) {
|
|
@@ -3085,6 +3137,17 @@ function mergeFormFields2(metadataFields, overrides) {
|
|
|
3085
3137
|
});
|
|
3086
3138
|
return merged;
|
|
3087
3139
|
}
|
|
3140
|
+
function workStatusColor(value) {
|
|
3141
|
+
const normalized2 = String(value ?? "").normalize("NFD").replace(/[\u0300-\u036f]/g, "").toLowerCase();
|
|
3142
|
+
if (/aguardando.*inicio|nao.*iniciado|waiting/.test(normalized2)) return "#D97706";
|
|
3143
|
+
if (/trabalhando|em.*andamento|working/.test(normalized2)) return "#16A34A";
|
|
3144
|
+
if (/revisar|revisao|review/.test(normalized2)) return "#DC2626";
|
|
3145
|
+
return "#94A3B8";
|
|
3146
|
+
}
|
|
3147
|
+
function PipelineArrowIcon({ direction }) {
|
|
3148
|
+
const path = direction === "left" ? "M12.5 5 7.5 10l5 5" : "m7.5 5 5 5-5 5";
|
|
3149
|
+
return /* @__PURE__ */ jsx18("svg", { viewBox: "0 0 20 20", width: "18", height: "18", "aria-hidden": "true", children: /* @__PURE__ */ jsx18("path", { d: path, fill: "none", stroke: "currentColor", strokeWidth: "1.8", strokeLinecap: "round", strokeLinejoin: "round" }) });
|
|
3150
|
+
}
|
|
3088
3151
|
function PipelineFilterControl({
|
|
3089
3152
|
filter,
|
|
3090
3153
|
value,
|
|
@@ -3160,6 +3223,8 @@ function CorePipeline({
|
|
|
3160
3223
|
const [selectedTicket, setSelectedTicket] = useState11(null);
|
|
3161
3224
|
const [creating, setCreating] = useState11(false);
|
|
3162
3225
|
const [formError, setFormError] = useState11(null);
|
|
3226
|
+
const boardRef = useRef2(null);
|
|
3227
|
+
const [boardScrollState, setBoardScrollState] = useState11({ canScrollLeft: false, canScrollRight: false });
|
|
3163
3228
|
const effectiveFilters = Object.fromEntries(
|
|
3164
3229
|
Object.entries(filterValues).filter(([, value]) => value !== "" && value != null)
|
|
3165
3230
|
);
|
|
@@ -3168,6 +3233,23 @@ function CorePipeline({
|
|
|
3168
3233
|
queryFn: () => resource.list({ pageSize: 200, ...effectiveFilters }),
|
|
3169
3234
|
enabled: !!schema && viewMode === "board"
|
|
3170
3235
|
});
|
|
3236
|
+
useEffect7(() => {
|
|
3237
|
+
if (viewMode !== "board") return void 0;
|
|
3238
|
+
const board = boardRef.current;
|
|
3239
|
+
if (!board) return void 0;
|
|
3240
|
+
const sync = () => setBoardScrollState(resolveHorizontalScrollState(board));
|
|
3241
|
+
sync();
|
|
3242
|
+
board.addEventListener("scroll", sync, { passive: true });
|
|
3243
|
+
window.addEventListener("resize", sync);
|
|
3244
|
+
const resizeObserver = typeof ResizeObserver !== "undefined" ? new ResizeObserver(sync) : void 0;
|
|
3245
|
+
resizeObserver?.observe(board);
|
|
3246
|
+
Array.from(board.children).forEach((child) => resizeObserver?.observe(child));
|
|
3247
|
+
return () => {
|
|
3248
|
+
board.removeEventListener("scroll", sync);
|
|
3249
|
+
window.removeEventListener("resize", sync);
|
|
3250
|
+
resizeObserver?.disconnect();
|
|
3251
|
+
};
|
|
3252
|
+
}, [viewMode, listQuery.data?.results?.length, stages?.length, schema?.fields.length]);
|
|
3171
3253
|
const invalidate = async () => {
|
|
3172
3254
|
await Promise.all([
|
|
3173
3255
|
queryClient.invalidateQueries({ queryKey: ["oon", "pipeline", basePath] }),
|
|
@@ -3224,6 +3306,12 @@ function CorePipeline({
|
|
|
3224
3306
|
...defaultStage ? { [stageField]: defaultStage } : {}
|
|
3225
3307
|
});
|
|
3226
3308
|
};
|
|
3309
|
+
const scrollBoard = (direction) => {
|
|
3310
|
+
const board = boardRef.current;
|
|
3311
|
+
if (!board) return;
|
|
3312
|
+
const step = pipelineBoardScrollStep(board.clientWidth);
|
|
3313
|
+
board.scrollBy({ left: direction === "left" ? -step : step, behavior: "smooth" });
|
|
3314
|
+
};
|
|
3227
3315
|
const renderModalAction = (action, index) => selectedTicket ? /* @__PURE__ */ jsx18(
|
|
3228
3316
|
CoreRowAction,
|
|
3229
3317
|
{
|
|
@@ -3243,38 +3331,10 @@ function CorePipeline({
|
|
|
3243
3331
|
},
|
|
3244
3332
|
action.id ?? `${action.label}-${index}`
|
|
3245
3333
|
) : null;
|
|
3246
|
-
const
|
|
3247
|
-
|
|
3248
|
-
|
|
3249
|
-
|
|
3250
|
-
role: "group",
|
|
3251
|
-
"aria-label": "Aprova\xE7\xE3o do ticket",
|
|
3252
|
-
gap: "4px",
|
|
3253
|
-
align: "center",
|
|
3254
|
-
p: "3px",
|
|
3255
|
-
bg: "#F8FAFC",
|
|
3256
|
-
borderWidth: "1px",
|
|
3257
|
-
borderColor: "#E2E8F0",
|
|
3258
|
-
borderRadius: "9px",
|
|
3259
|
-
children: groupedTicketActions.approval.map(renderModalAction)
|
|
3260
|
-
}
|
|
3261
|
-
) : null,
|
|
3262
|
-
groupedTicketActions.workStatus.length ? /* @__PURE__ */ jsx18(
|
|
3263
|
-
Flex8,
|
|
3264
|
-
{
|
|
3265
|
-
role: "group",
|
|
3266
|
-
"aria-label": "Status de trabalho",
|
|
3267
|
-
gap: "4px",
|
|
3268
|
-
align: "center",
|
|
3269
|
-
p: "3px",
|
|
3270
|
-
bg: "#F8FAFC",
|
|
3271
|
-
borderWidth: "1px",
|
|
3272
|
-
borderColor: "#E2E8F0",
|
|
3273
|
-
borderRadius: "9px",
|
|
3274
|
-
children: groupedTicketActions.workStatus.map(renderModalAction)
|
|
3275
|
-
}
|
|
3276
|
-
) : null,
|
|
3277
|
-
groupedTicketActions.custom.length ? /* @__PURE__ */ jsx18(Flex8, { role: "group", "aria-label": "Outras a\xE7\xF5es", gap: "4px", align: "center", wrap: "wrap", children: groupedTicketActions.custom.map(renderModalAction) }) : null
|
|
3334
|
+
const modalTopActions = selectedTicket && !creating && groupedTicketActions.workStatus.length ? /* @__PURE__ */ jsx18(Flex8, { role: "group", "aria-label": "Status da atividade", gap: "6px", align: "center", wrap: "wrap", children: groupedTicketActions.workStatus.map(renderModalAction) }) : null;
|
|
3335
|
+
const modalBottomActions = selectedTicket && !creating ? /* @__PURE__ */ jsxs13(Flex8, { gap: "8px", align: "center", wrap: "wrap", children: [
|
|
3336
|
+
groupedTicketActions.approval.length ? /* @__PURE__ */ jsx18(Flex8, { role: "group", "aria-label": "Aprova\xE7\xE3o do ticket", gap: "6px", align: "center", wrap: "wrap", children: groupedTicketActions.approval.map(renderModalAction) }) : null,
|
|
3337
|
+
groupedTicketActions.custom.length ? /* @__PURE__ */ jsx18(Flex8, { role: "group", "aria-label": "A\xE7\xF5es do neg\xF3cio", gap: "6px", align: "center", wrap: "wrap", children: groupedTicketActions.custom.map(renderModalAction) }) : null
|
|
3278
3338
|
] }) : null;
|
|
3279
3339
|
return /* @__PURE__ */ jsxs13(Stack5, { gap: 5, children: [
|
|
3280
3340
|
/* @__PURE__ */ jsxs13(Flex8, { align: { base: "stretch", md: "flex-end" }, justify: "space-between", gap: 4, direction: { base: "column", md: "row" }, children: [
|
|
@@ -3284,8 +3344,8 @@ function CorePipeline({
|
|
|
3284
3344
|
/* @__PURE__ */ jsx18(Text12, { mt: 1, fontSize: "13px", color: "gray.500", children: "Acompanhe os tickets por etapa e visualize os principais dados de cada item." })
|
|
3285
3345
|
] }),
|
|
3286
3346
|
/* @__PURE__ */ jsxs13(Flex8, { gap: "8px", align: "center", wrap: "wrap", children: [
|
|
3287
|
-
allowedViewModes.length > 1 ? allowedViewModes.map((mode) => /* @__PURE__ */ jsx18(
|
|
3288
|
-
create?.enabled ? /* @__PURE__ */ jsx18(
|
|
3347
|
+
allowedViewModes.length > 1 ? allowedViewModes.map((mode) => /* @__PURE__ */ jsx18(Button9, { size: "sm", variant: viewMode === mode ? "solid" : "outline", colorPalette: "brand", onClick: () => setViewMode(mode), children: mode === "board" ? "Quadro" : "Lista" }, mode)) : null,
|
|
3348
|
+
create?.enabled ? /* @__PURE__ */ jsx18(Button9, { size: "sm", colorPalette: "brand", onClick: openCreate, children: create.label ?? "Novo ticket" }) : null
|
|
3289
3349
|
] })
|
|
3290
3350
|
] }),
|
|
3291
3351
|
filters.length ? /* @__PURE__ */ jsxs13(Flex8, { p: "12px", gap: "10px", align: "flex-end", wrap: "wrap", bg: "white", borderWidth: "1px", borderColor: "#E5E9ED", borderRadius: "10px", children: [
|
|
@@ -3305,7 +3365,7 @@ function CorePipeline({
|
|
|
3305
3365
|
] }, filter.field);
|
|
3306
3366
|
}),
|
|
3307
3367
|
/* @__PURE__ */ jsx18(
|
|
3308
|
-
|
|
3368
|
+
Button9,
|
|
3309
3369
|
{
|
|
3310
3370
|
size: "sm",
|
|
3311
3371
|
variant: "outline",
|
|
@@ -3327,52 +3387,143 @@ function CorePipeline({
|
|
|
3327
3387
|
setSelectedTicket(row);
|
|
3328
3388
|
}
|
|
3329
3389
|
}
|
|
3330
|
-
) : /* @__PURE__ */
|
|
3331
|
-
|
|
3332
|
-
|
|
3333
|
-
|
|
3334
|
-
|
|
3335
|
-
|
|
3336
|
-
|
|
3337
|
-
|
|
3338
|
-
|
|
3339
|
-
|
|
3340
|
-
|
|
3341
|
-
|
|
3342
|
-
|
|
3343
|
-
|
|
3344
|
-
|
|
3345
|
-
|
|
3346
|
-
|
|
3347
|
-
|
|
3348
|
-
|
|
3349
|
-
|
|
3350
|
-
|
|
3351
|
-
|
|
3352
|
-
|
|
3353
|
-
|
|
3354
|
-
textAlign: "
|
|
3355
|
-
|
|
3356
|
-
|
|
3357
|
-
|
|
3358
|
-
|
|
3359
|
-
|
|
3360
|
-
|
|
3361
|
-
|
|
3362
|
-
|
|
3363
|
-
|
|
3364
|
-
|
|
3365
|
-
|
|
3366
|
-
|
|
3367
|
-
|
|
3368
|
-
|
|
3369
|
-
|
|
3370
|
-
|
|
3371
|
-
|
|
3372
|
-
|
|
3373
|
-
|
|
3374
|
-
|
|
3375
|
-
|
|
3390
|
+
) : /* @__PURE__ */ jsxs13(Box10, { position: "relative", children: [
|
|
3391
|
+
/* @__PURE__ */ jsx18(
|
|
3392
|
+
Flex8,
|
|
3393
|
+
{
|
|
3394
|
+
ref: boardRef,
|
|
3395
|
+
"data-oon-pipeline-board": "true",
|
|
3396
|
+
gap: 4,
|
|
3397
|
+
align: "stretch",
|
|
3398
|
+
overflowX: "auto",
|
|
3399
|
+
overflowY: "auto",
|
|
3400
|
+
h: "clamp(420px, calc(100vh - 250px), 760px)",
|
|
3401
|
+
minH: "420px",
|
|
3402
|
+
pb: "18px",
|
|
3403
|
+
pr: "2px",
|
|
3404
|
+
scrollBehavior: "smooth",
|
|
3405
|
+
scrollbarGutter: "stable both-edges",
|
|
3406
|
+
overscrollBehaviorX: "contain",
|
|
3407
|
+
children: Array.from(byStage.entries()).map(([stageId, items]) => {
|
|
3408
|
+
const stageLabel = resolvedStages.find((stage) => stage.id === stageId)?.label ?? (stageId || "Sem etapa");
|
|
3409
|
+
return /* @__PURE__ */ jsxs13(Box10, { minW: "300px", maxW: "340px", flex: "1 0 300px", bg: "#E8ECEF", borderRadius: "12px", p: 3, borderWidth: "1px", borderColor: "#DDE3E7", children: [
|
|
3410
|
+
/* @__PURE__ */ jsxs13(Flex8, { align: "center", justify: "space-between", mb: 3, px: 1, children: [
|
|
3411
|
+
/* @__PURE__ */ jsx18(Text12, { fontWeight: "700", fontSize: "12px", color: "#33434C", textTransform: "uppercase", letterSpacing: "0.03em", children: stageLabel }),
|
|
3412
|
+
/* @__PURE__ */ jsx18(Badge4, { colorPalette: "brand", variant: "solid", borderRadius: "full", minW: "24px", justifyContent: "center", children: items.length })
|
|
3413
|
+
] }),
|
|
3414
|
+
/* @__PURE__ */ jsx18(Stack5, { gap: 2, children: items.length === 0 ? /* @__PURE__ */ jsx18(Box10, { borderWidth: "1px", borderStyle: "dashed", borderColor: "#C8D0D5", borderRadius: "10px", p: 5, textAlign: "center", children: /* @__PURE__ */ jsx18(Text12, { fontSize: "12px", color: "gray.500", children: "Nenhum ticket nesta etapa." }) }) : items.map((row, index) => {
|
|
3415
|
+
const ticketTitle = formatCell(row[resolvedTitleField], "string");
|
|
3416
|
+
return /* @__PURE__ */ jsxs13(
|
|
3417
|
+
Button9,
|
|
3418
|
+
{
|
|
3419
|
+
type: "button",
|
|
3420
|
+
variant: "plain",
|
|
3421
|
+
display: "block",
|
|
3422
|
+
w: "100%",
|
|
3423
|
+
h: "auto",
|
|
3424
|
+
minH: "auto",
|
|
3425
|
+
p: 3,
|
|
3426
|
+
bg: "white",
|
|
3427
|
+
borderRadius: "10px",
|
|
3428
|
+
borderWidth: "1px",
|
|
3429
|
+
borderColor: "#DDE3E7",
|
|
3430
|
+
boxShadow: "0 3px 10px rgba(7, 38, 46, 0.05)",
|
|
3431
|
+
textAlign: "left",
|
|
3432
|
+
whiteSpace: "normal",
|
|
3433
|
+
"aria-label": `Abrir ticket ${ticketTitle}`,
|
|
3434
|
+
onClick: () => {
|
|
3435
|
+
setFormError(null);
|
|
3436
|
+
setCreating(false);
|
|
3437
|
+
setSelectedTicket(row);
|
|
3438
|
+
},
|
|
3439
|
+
_hover: { borderColor: "brand.300", transform: "translateY(-1px)", boxShadow: "0 7px 18px rgba(7, 38, 46, 0.09)" },
|
|
3440
|
+
children: [
|
|
3441
|
+
/* @__PURE__ */ jsxs13(Flex8, { align: "flex-start", justify: "space-between", gap: "8px", mb: 2, children: [
|
|
3442
|
+
/* @__PURE__ */ jsx18(Text12, { fontSize: "13px", fontWeight: "700", color: "#24323A", lineClamp: 2, children: ticketTitle }),
|
|
3443
|
+
/* @__PURE__ */ jsx18(
|
|
3444
|
+
Box10,
|
|
3445
|
+
{
|
|
3446
|
+
as: "span",
|
|
3447
|
+
title: `Status da atividade: ${String(row[workStatusField] ?? "N\xE3o informado")}`,
|
|
3448
|
+
"aria-label": `Status da atividade: ${String(row[workStatusField] ?? "N\xE3o informado")}`,
|
|
3449
|
+
flex: "0 0 auto",
|
|
3450
|
+
w: "10px",
|
|
3451
|
+
h: "10px",
|
|
3452
|
+
mt: "4px",
|
|
3453
|
+
borderRadius: "full",
|
|
3454
|
+
bg: workStatusColor(row[workStatusField]),
|
|
3455
|
+
boxShadow: "0 0 0 3px white, 0 0 0 4px #E2E8F0"
|
|
3456
|
+
}
|
|
3457
|
+
)
|
|
3458
|
+
] }),
|
|
3459
|
+
/* @__PURE__ */ jsx18(Stack5, { gap: 1, children: detailFields.map((field) => /* @__PURE__ */ jsxs13(Flex8, { gap: 2, align: "baseline", justify: "space-between", children: [
|
|
3460
|
+
/* @__PURE__ */ jsx18(Text12, { fontSize: "10px", color: "gray.500", textTransform: "uppercase", letterSpacing: "0.03em", children: fieldLabel(field) }),
|
|
3461
|
+
/* @__PURE__ */ jsx18(Text12, { fontSize: "11px", color: "#46545C", fontWeight: "500", textAlign: "right", lineClamp: 1, children: formatCell(row[field.name], field.kind) })
|
|
3462
|
+
] }, field.name)) })
|
|
3463
|
+
]
|
|
3464
|
+
},
|
|
3465
|
+
ticketId(row) ?? index
|
|
3466
|
+
);
|
|
3467
|
+
}) })
|
|
3468
|
+
] }, stageId);
|
|
3469
|
+
})
|
|
3470
|
+
}
|
|
3471
|
+
),
|
|
3472
|
+
/* @__PURE__ */ jsx18(
|
|
3473
|
+
Button9,
|
|
3474
|
+
{
|
|
3475
|
+
type: "button",
|
|
3476
|
+
"aria-label": "Deslizar quadro para a esquerda",
|
|
3477
|
+
title: "Deslizar para a esquerda",
|
|
3478
|
+
position: "absolute",
|
|
3479
|
+
left: "8px",
|
|
3480
|
+
top: "50%",
|
|
3481
|
+
transform: "translateY(-50%)",
|
|
3482
|
+
zIndex: 3,
|
|
3483
|
+
minW: "34px",
|
|
3484
|
+
w: "34px",
|
|
3485
|
+
h: "34px",
|
|
3486
|
+
p: 0,
|
|
3487
|
+
borderRadius: "full",
|
|
3488
|
+
variant: "outline",
|
|
3489
|
+
bg: "rgba(255,255,255,.96)",
|
|
3490
|
+
borderColor: "#CBD5E1",
|
|
3491
|
+
boxShadow: "0 5px 16px rgba(15,23,42,.16)",
|
|
3492
|
+
disabled: !boardScrollState.canScrollLeft,
|
|
3493
|
+
onClick: () => scrollBoard("left"),
|
|
3494
|
+
_hover: { bg: "white", borderColor: "brand.400" },
|
|
3495
|
+
_disabled: { opacity: 0.25, cursor: "not-allowed" },
|
|
3496
|
+
children: /* @__PURE__ */ jsx18(PipelineArrowIcon, { direction: "left" })
|
|
3497
|
+
}
|
|
3498
|
+
),
|
|
3499
|
+
/* @__PURE__ */ jsx18(
|
|
3500
|
+
Button9,
|
|
3501
|
+
{
|
|
3502
|
+
type: "button",
|
|
3503
|
+
"aria-label": "Deslizar quadro para a direita",
|
|
3504
|
+
title: "Deslizar para a direita",
|
|
3505
|
+
position: "absolute",
|
|
3506
|
+
right: "8px",
|
|
3507
|
+
top: "50%",
|
|
3508
|
+
transform: "translateY(-50%)",
|
|
3509
|
+
zIndex: 3,
|
|
3510
|
+
minW: "34px",
|
|
3511
|
+
w: "34px",
|
|
3512
|
+
h: "34px",
|
|
3513
|
+
p: 0,
|
|
3514
|
+
borderRadius: "full",
|
|
3515
|
+
variant: "outline",
|
|
3516
|
+
bg: "rgba(255,255,255,.96)",
|
|
3517
|
+
borderColor: "#CBD5E1",
|
|
3518
|
+
boxShadow: "0 5px 16px rgba(15,23,42,.16)",
|
|
3519
|
+
disabled: !boardScrollState.canScrollRight,
|
|
3520
|
+
onClick: () => scrollBoard("right"),
|
|
3521
|
+
_hover: { bg: "white", borderColor: "brand.400" },
|
|
3522
|
+
_disabled: { opacity: 0.25, cursor: "not-allowed" },
|
|
3523
|
+
children: /* @__PURE__ */ jsx18(PipelineArrowIcon, { direction: "right" })
|
|
3524
|
+
}
|
|
3525
|
+
)
|
|
3526
|
+
] }),
|
|
3376
3527
|
selectedTicket && ticketModal && ticketModal.enabled !== false ? /* @__PURE__ */ jsx18(
|
|
3377
3528
|
CoreDetailModal,
|
|
3378
3529
|
{
|
|
@@ -3384,7 +3535,8 @@ function CorePipeline({
|
|
|
3384
3535
|
initialRecord: selectedTicket,
|
|
3385
3536
|
initialTab: creating ? create?.initialTab : void 0,
|
|
3386
3537
|
relations,
|
|
3387
|
-
|
|
3538
|
+
topActions: modalTopActions,
|
|
3539
|
+
bottomActions: modalBottomActions,
|
|
3388
3540
|
onClose: () => {
|
|
3389
3541
|
setSelectedTicket(null);
|
|
3390
3542
|
setCreating(false);
|
|
@@ -3516,7 +3668,7 @@ function MissingRenderer({ renderer, children }) {
|
|
|
3516
3668
|
}
|
|
3517
3669
|
|
|
3518
3670
|
// src/components/ui-v2/CorePrimitives.tsx
|
|
3519
|
-
import { Box as Box13, Button as
|
|
3671
|
+
import { Box as Box13, Button as Button10, Flex as Flex9, Heading as Heading7, Spinner as Spinner3, Text as Text15 } from "@chakra-ui/react";
|
|
3520
3672
|
import { jsx as jsx22, jsxs as jsxs16 } from "react/jsx-runtime";
|
|
3521
3673
|
function CorePage({ children }) {
|
|
3522
3674
|
return /* @__PURE__ */ jsx22(Box13, { children });
|
|
@@ -3557,7 +3709,7 @@ function CoreActions({ children }) {
|
|
|
3557
3709
|
function CoreEmptyState({ title = "Nenhum dado encontrado", actionLabel, onAction }) {
|
|
3558
3710
|
return /* @__PURE__ */ jsxs16(Box13, { textAlign: "center", py: 10, children: [
|
|
3559
3711
|
/* @__PURE__ */ jsx22(Text15, { children: title }),
|
|
3560
|
-
actionLabel ? /* @__PURE__ */ jsx22(
|
|
3712
|
+
actionLabel ? /* @__PURE__ */ jsx22(Button10, { mt: 3, onClick: onAction, children: actionLabel }) : null
|
|
3561
3713
|
] });
|
|
3562
3714
|
}
|
|
3563
3715
|
function CoreLoadingState({ label = "Carregando..." }) {
|
|
@@ -3762,7 +3914,7 @@ import {
|
|
|
3762
3914
|
} from "react-router-dom";
|
|
3763
3915
|
|
|
3764
3916
|
// src/shell/DefaultShell.tsx
|
|
3765
|
-
import { Box as Box16, Button as
|
|
3917
|
+
import { Box as Box16, Button as Button11, Flex as Flex11, Spacer as Spacer2, Text as Text18 } from "@chakra-ui/react";
|
|
3766
3918
|
import { Outlet } from "react-router-dom";
|
|
3767
3919
|
|
|
3768
3920
|
// src/shell/Sidebar.tsx
|
|
@@ -3882,7 +4034,7 @@ function CoreTopbar({ app }) {
|
|
|
3882
4034
|
/* @__PURE__ */ jsx26(Text18, { fontSize: "sm", fontWeight: "600", color: "#24323A", children: user.nome }),
|
|
3883
4035
|
user.email ? /* @__PURE__ */ jsx26(Text18, { fontSize: "xs", color: "gray.500", children: user.email }) : null
|
|
3884
4036
|
] }),
|
|
3885
|
-
/* @__PURE__ */ jsx26(
|
|
4037
|
+
/* @__PURE__ */ jsx26(Button11, { size: "sm", variant: "outline", colorPalette: "brand", borderRadius: "8px", onClick: logout, children: "Sair" })
|
|
3886
4038
|
] }) : null
|
|
3887
4039
|
] });
|
|
3888
4040
|
}
|
|
@@ -3926,7 +4078,7 @@ function AuthenticatedLayout({ app, menu, layout, registry }) {
|
|
|
3926
4078
|
}
|
|
3927
4079
|
|
|
3928
4080
|
// src/security/AccessDeniedPage.tsx
|
|
3929
|
-
import { Box as Box17, Button as
|
|
4081
|
+
import { Box as Box17, Button as Button12, Flex as Flex12, Heading as Heading9, Text as Text19, VStack } from "@chakra-ui/react";
|
|
3930
4082
|
import { useNavigate } from "react-router-dom";
|
|
3931
4083
|
import { jsx as jsx28, jsxs as jsxs20 } from "react/jsx-runtime";
|
|
3932
4084
|
function AccessDeniedPage({ app }) {
|
|
@@ -3985,7 +4137,7 @@ function AccessDeniedPage({ app }) {
|
|
|
3985
4137
|
] })
|
|
3986
4138
|
] }),
|
|
3987
4139
|
/* @__PURE__ */ jsx28(
|
|
3988
|
-
|
|
4140
|
+
Button12,
|
|
3989
4141
|
{
|
|
3990
4142
|
alignSelf: "flex-start",
|
|
3991
4143
|
bg: "#07262E",
|
|
@@ -4042,7 +4194,7 @@ function AppAccessGuard({ children }) {
|
|
|
4042
4194
|
import { useState as useState12 } from "react";
|
|
4043
4195
|
import {
|
|
4044
4196
|
Box as Box18,
|
|
4045
|
-
Button as
|
|
4197
|
+
Button as Button13,
|
|
4046
4198
|
Flex as Flex13,
|
|
4047
4199
|
Heading as Heading10,
|
|
4048
4200
|
Input as Input7,
|
|
@@ -4160,7 +4312,7 @@ function LoginPage({ app }) {
|
|
|
4160
4312
|
}
|
|
4161
4313
|
) : null,
|
|
4162
4314
|
/* @__PURE__ */ jsx30(
|
|
4163
|
-
|
|
4315
|
+
Button13,
|
|
4164
4316
|
{
|
|
4165
4317
|
type: "submit",
|
|
4166
4318
|
bg: "#07262E",
|
|
@@ -4176,8 +4328,8 @@ function LoginPage({ app }) {
|
|
|
4176
4328
|
}
|
|
4177
4329
|
|
|
4178
4330
|
// src/security/ActivationPage.tsx
|
|
4179
|
-
import { useEffect as
|
|
4180
|
-
import { Box as Box19, Button as
|
|
4331
|
+
import { useEffect as useEffect8, useState as useState13 } from "react";
|
|
4332
|
+
import { Box as Box19, Button as Button14, Heading as Heading11, Input as Input8, Text as Text21, VStack as VStack3 } from "@chakra-ui/react";
|
|
4181
4333
|
import { Fragment as Fragment6, jsx as jsx31, jsxs as jsxs22 } from "react/jsx-runtime";
|
|
4182
4334
|
function encodeBasicCredentials2(email, password) {
|
|
4183
4335
|
const bytes = new TextEncoder().encode(`${email}:${password}`);
|
|
@@ -4203,7 +4355,7 @@ function ActivationPage() {
|
|
|
4203
4355
|
const [devResult, setDevResult] = useState13(null);
|
|
4204
4356
|
const [error, setError] = useState13(null);
|
|
4205
4357
|
const [submitting, setSubmitting] = useState13(false);
|
|
4206
|
-
|
|
4358
|
+
useEffect8(() => {
|
|
4207
4359
|
http.get("/ativacao/configuracao").then((response) => {
|
|
4208
4360
|
setConfig(response.data);
|
|
4209
4361
|
setGlobal(response.data.defaults || {});
|
|
@@ -4211,7 +4363,7 @@ function ActivationPage() {
|
|
|
4211
4363
|
() => setError("N\xE3o foi poss\xEDvel carregar a configura\xE7\xE3o de ativa\xE7\xE3o.")
|
|
4212
4364
|
);
|
|
4213
4365
|
}, [http]);
|
|
4214
|
-
|
|
4366
|
+
useEffect8(() => {
|
|
4215
4367
|
if (activation.status === "active") {
|
|
4216
4368
|
window.location.replace("/login");
|
|
4217
4369
|
}
|
|
@@ -4375,7 +4527,7 @@ function ActivationPage() {
|
|
|
4375
4527
|
)
|
|
4376
4528
|
] }),
|
|
4377
4529
|
/* @__PURE__ */ jsx31(
|
|
4378
|
-
|
|
4530
|
+
Button14,
|
|
4379
4531
|
{
|
|
4380
4532
|
colorPalette: "blue",
|
|
4381
4533
|
onClick: activateDevLocal,
|
|
@@ -4385,7 +4537,7 @@ function ActivationPage() {
|
|
|
4385
4537
|
}
|
|
4386
4538
|
),
|
|
4387
4539
|
/* @__PURE__ */ jsx31(
|
|
4388
|
-
|
|
4540
|
+
Button14,
|
|
4389
4541
|
{
|
|
4390
4542
|
variant: "outline",
|
|
4391
4543
|
onClick: () => setShowCodeFlow(true),
|
|
@@ -4466,7 +4618,7 @@ function ActivationPage() {
|
|
|
4466
4618
|
)
|
|
4467
4619
|
] }),
|
|
4468
4620
|
/* @__PURE__ */ jsx31(
|
|
4469
|
-
|
|
4621
|
+
Button14,
|
|
4470
4622
|
{
|
|
4471
4623
|
colorPalette: "blue",
|
|
4472
4624
|
onClick: activateRoot,
|
|
@@ -4519,7 +4671,7 @@ function ActivationPage() {
|
|
|
4519
4671
|
}
|
|
4520
4672
|
),
|
|
4521
4673
|
/* @__PURE__ */ jsx31(
|
|
4522
|
-
|
|
4674
|
+
Button14,
|
|
4523
4675
|
{
|
|
4524
4676
|
onClick: validateCode,
|
|
4525
4677
|
loading: submitting,
|
|
@@ -4528,7 +4680,7 @@ function ActivationPage() {
|
|
|
4528
4680
|
}
|
|
4529
4681
|
),
|
|
4530
4682
|
isDevelopmentMember ? /* @__PURE__ */ jsx31(
|
|
4531
|
-
|
|
4683
|
+
Button14,
|
|
4532
4684
|
{
|
|
4533
4685
|
variant: "outline",
|
|
4534
4686
|
onClick: () => setShowCodeFlow(false),
|
|
@@ -4540,22 +4692,22 @@ function ActivationPage() {
|
|
|
4540
4692
|
step === 2 && /* @__PURE__ */ jsxs22(Fragment6, { children: [
|
|
4541
4693
|
/* @__PURE__ */ jsx31(Heading11, { size: "md", children: "Confirma\xE7\xE3o" }),
|
|
4542
4694
|
/* @__PURE__ */ jsx31("pre", { children: JSON.stringify(preview, null, 2) }),
|
|
4543
|
-
/* @__PURE__ */ jsx31(
|
|
4695
|
+
/* @__PURE__ */ jsx31(Button14, { onClick: () => setStep(3), children: "Continuar" })
|
|
4544
4696
|
] }),
|
|
4545
4697
|
step === 3 && /* @__PURE__ */ jsxs22(Fragment6, { children: [
|
|
4546
4698
|
config.globalFields.map(
|
|
4547
4699
|
(field) => renderField(field, global, setGlobal)
|
|
4548
4700
|
),
|
|
4549
|
-
/* @__PURE__ */ jsx31(
|
|
4701
|
+
/* @__PURE__ */ jsx31(Button14, { onClick: () => setStep(4), children: "Continuar" })
|
|
4550
4702
|
] }),
|
|
4551
4703
|
step === 4 && /* @__PURE__ */ jsxs22(Fragment6, { children: [
|
|
4552
4704
|
config.appFields.length ? config.appFields.map((field) => renderField(field, app, setApp)) : /* @__PURE__ */ jsx31(Text21, { children: "Nenhum par\xE2metro adicional declarado." }),
|
|
4553
|
-
/* @__PURE__ */ jsx31(
|
|
4705
|
+
/* @__PURE__ */ jsx31(Button14, { onClick: () => setStep(5), children: "Revisar" })
|
|
4554
4706
|
] }),
|
|
4555
4707
|
step === 5 && /* @__PURE__ */ jsxs22(Fragment6, { children: [
|
|
4556
4708
|
/* @__PURE__ */ jsx31(Text21, { children: "Ao confirmar, o c\xF3digo ser\xE1 consumido e a inst\xE2ncia ser\xE1 registrada no Ecossistema Oon." }),
|
|
4557
4709
|
/* @__PURE__ */ jsx31(
|
|
4558
|
-
|
|
4710
|
+
Button14,
|
|
4559
4711
|
{
|
|
4560
4712
|
colorPalette: "blue",
|
|
4561
4713
|
onClick: completeMemberActivation,
|
|
@@ -4896,7 +5048,7 @@ function defineOonModule(mod) {
|
|
|
4896
5048
|
}
|
|
4897
5049
|
|
|
4898
5050
|
// src/components/CoreIntegration.tsx
|
|
4899
|
-
import { Badge as Badge5, Box as Box20, Button as
|
|
5051
|
+
import { Badge as Badge5, Box as Box20, Button as Button15, Flex as Flex14, Heading as Heading12, Stack as Stack9, Text as Text22 } from "@chakra-ui/react";
|
|
4900
5052
|
import { useMutation as useMutation4 } from "@tanstack/react-query";
|
|
4901
5053
|
import { jsx as jsx37, jsxs as jsxs23 } from "react/jsx-runtime";
|
|
4902
5054
|
function CoreIntegration({ label = "Integra\xE7\xF5es" }) {
|
|
@@ -4911,7 +5063,7 @@ function CoreIntegration({ label = "Integra\xE7\xF5es" }) {
|
|
|
4911
5063
|
return /* @__PURE__ */ jsxs23(Stack9, { gap: 6, children: [
|
|
4912
5064
|
/* @__PURE__ */ jsxs23(Flex14, { align: "center", justify: "space-between", children: [
|
|
4913
5065
|
/* @__PURE__ */ jsx37(Heading12, { size: "lg", children: label }),
|
|
4914
|
-
/* @__PURE__ */ jsx37(
|
|
5066
|
+
/* @__PURE__ */ jsx37(Button15, { size: "sm", variant: "outline", loading: reprocess.isPending, onClick: () => reprocess.mutate(), children: "Reprocessar ativos" })
|
|
4915
5067
|
] }),
|
|
4916
5068
|
/* @__PURE__ */ jsx37(Stack9, { gap: 3, children: integrations.length === 0 ? /* @__PURE__ */ jsx37(Text22, { color: "gray.400", children: "Nenhuma integra\xE7\xE3o declarada." }) : integrations.map((it, idx) => /* @__PURE__ */ jsx37(
|
|
4917
5069
|
Box20,
|
|
@@ -4932,7 +5084,7 @@ function CoreIntegration({ label = "Integra\xE7\xF5es" }) {
|
|
|
4932
5084
|
}
|
|
4933
5085
|
|
|
4934
5086
|
// src/components/CoreCurrency.tsx
|
|
4935
|
-
import { Button as
|
|
5087
|
+
import { Button as Button16, Flex as Flex15, Heading as Heading13, Stack as Stack10, Text as Text23 } from "@chakra-ui/react";
|
|
4936
5088
|
import { useMutation as useMutation5, useQueryClient as useQueryClient5 } from "@tanstack/react-query";
|
|
4937
5089
|
import { jsx as jsx38, jsxs as jsxs24 } from "react/jsx-runtime";
|
|
4938
5090
|
function CoreCurrency({ model = "Moeda", label = "Multi-moedas", endpoint = "/moedas", columns }) {
|
|
@@ -4945,7 +5097,7 @@ function CoreCurrency({ model = "Moeda", label = "Multi-moedas", endpoint = "/mo
|
|
|
4945
5097
|
return /* @__PURE__ */ jsxs24(Stack10, { gap: 6, children: [
|
|
4946
5098
|
/* @__PURE__ */ jsxs24(Flex15, { align: "center", justify: "space-between", children: [
|
|
4947
5099
|
/* @__PURE__ */ jsx38(Heading13, { size: "lg", children: label }),
|
|
4948
|
-
/* @__PURE__ */ jsx38(
|
|
5100
|
+
/* @__PURE__ */ jsx38(Button16, { size: "sm", colorPalette: "blue", loading: updateRates.isPending, onClick: () => updateRates.mutate(), children: "Atualizar cota\xE7\xF5es" })
|
|
4949
5101
|
] }),
|
|
4950
5102
|
updateRates.isError ? /* @__PURE__ */ jsx38(Text23, { fontSize: "sm", color: "red.600", children: updateRates.error?.message }) : null,
|
|
4951
5103
|
/* @__PURE__ */ jsx38(CoreCollection, { model, label: "", mode: columns ? "full" : "dynamic", endpoint, columns })
|
|
@@ -4954,7 +5106,7 @@ function CoreCurrency({ model = "Moeda", label = "Multi-moedas", endpoint = "/mo
|
|
|
4954
5106
|
|
|
4955
5107
|
// src/components/CoreAssistant.tsx
|
|
4956
5108
|
import { useState as useState14 } from "react";
|
|
4957
|
-
import { Box as Box21, Button as
|
|
5109
|
+
import { Box as Box21, Button as Button17, Flex as Flex16, Heading as Heading14, Input as Input9, Stack as Stack11, Text as Text24 } from "@chakra-ui/react";
|
|
4958
5110
|
import { useMutation as useMutation6 } from "@tanstack/react-query";
|
|
4959
5111
|
import { jsx as jsx39, jsxs as jsxs25 } from "react/jsx-runtime";
|
|
4960
5112
|
function CoreAssistant({ assistantCode, label = "Assistente", entity, endpoint = "/assistant-runs" }) {
|
|
@@ -5017,7 +5169,7 @@ function CoreAssistant({ assistantCode, label = "Assistente", entity, endpoint =
|
|
|
5017
5169
|
}
|
|
5018
5170
|
}
|
|
5019
5171
|
),
|
|
5020
|
-
/* @__PURE__ */ jsx39(
|
|
5172
|
+
/* @__PURE__ */ jsx39(Button17, { size: "sm", colorPalette: "blue", onClick: send, loading: ask.isPending, children: "Enviar" })
|
|
5021
5173
|
] })
|
|
5022
5174
|
] });
|
|
5023
5175
|
}
|