@oondemand/oon-core-front 0.3.34 → 0.3.35
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 +118 -82
- 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
|
|
|
@@ -2941,7 +2980,7 @@ function CoreDocument({ model, label, endpoint, columns, form }) {
|
|
|
2941
2980
|
|
|
2942
2981
|
// src/components/CorePipeline.tsx
|
|
2943
2982
|
import { useState as useState11 } from "react";
|
|
2944
|
-
import { Badge as Badge4, Box as Box10, Button as
|
|
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
|
|
@@ -3085,6 +3124,13 @@ function mergeFormFields2(metadataFields, overrides) {
|
|
|
3085
3124
|
});
|
|
3086
3125
|
return merged;
|
|
3087
3126
|
}
|
|
3127
|
+
function workStatusColor(value) {
|
|
3128
|
+
const normalized2 = String(value ?? "").normalize("NFD").replace(/[\u0300-\u036f]/g, "").toLowerCase();
|
|
3129
|
+
if (/aguardando.*inicio|nao.*iniciado|waiting/.test(normalized2)) return "#D97706";
|
|
3130
|
+
if (/trabalhando|em.*andamento|working/.test(normalized2)) return "#16A34A";
|
|
3131
|
+
if (/revisar|revisao|review/.test(normalized2)) return "#DC2626";
|
|
3132
|
+
return "#94A3B8";
|
|
3133
|
+
}
|
|
3088
3134
|
function PipelineFilterControl({
|
|
3089
3135
|
filter,
|
|
3090
3136
|
value,
|
|
@@ -3243,38 +3289,10 @@ function CorePipeline({
|
|
|
3243
3289
|
},
|
|
3244
3290
|
action.id ?? `${action.label}-${index}`
|
|
3245
3291
|
) : 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
|
|
3292
|
+
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;
|
|
3293
|
+
const modalBottomActions = selectedTicket && !creating ? /* @__PURE__ */ jsxs13(Flex8, { gap: "8px", align: "center", wrap: "wrap", children: [
|
|
3294
|
+
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,
|
|
3295
|
+
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
3296
|
] }) : null;
|
|
3279
3297
|
return /* @__PURE__ */ jsxs13(Stack5, { gap: 5, children: [
|
|
3280
3298
|
/* @__PURE__ */ jsxs13(Flex8, { align: { base: "stretch", md: "flex-end" }, justify: "space-between", gap: 4, direction: { base: "column", md: "row" }, children: [
|
|
@@ -3284,8 +3302,8 @@ function CorePipeline({
|
|
|
3284
3302
|
/* @__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
3303
|
] }),
|
|
3286
3304
|
/* @__PURE__ */ jsxs13(Flex8, { gap: "8px", align: "center", wrap: "wrap", children: [
|
|
3287
|
-
allowedViewModes.length > 1 ? allowedViewModes.map((mode) => /* @__PURE__ */ jsx18(
|
|
3288
|
-
create?.enabled ? /* @__PURE__ */ jsx18(
|
|
3305
|
+
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,
|
|
3306
|
+
create?.enabled ? /* @__PURE__ */ jsx18(Button9, { size: "sm", colorPalette: "brand", onClick: openCreate, children: create.label ?? "Novo ticket" }) : null
|
|
3289
3307
|
] })
|
|
3290
3308
|
] }),
|
|
3291
3309
|
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 +3323,7 @@ function CorePipeline({
|
|
|
3305
3323
|
] }, filter.field);
|
|
3306
3324
|
}),
|
|
3307
3325
|
/* @__PURE__ */ jsx18(
|
|
3308
|
-
|
|
3326
|
+
Button9,
|
|
3309
3327
|
{
|
|
3310
3328
|
size: "sm",
|
|
3311
3329
|
variant: "outline",
|
|
@@ -3337,7 +3355,7 @@ function CorePipeline({
|
|
|
3337
3355
|
/* @__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) => {
|
|
3338
3356
|
const ticketTitle = formatCell(row[resolvedTitleField], "string");
|
|
3339
3357
|
return /* @__PURE__ */ jsxs13(
|
|
3340
|
-
|
|
3358
|
+
Button9,
|
|
3341
3359
|
{
|
|
3342
3360
|
type: "button",
|
|
3343
3361
|
variant: "plain",
|
|
@@ -3361,7 +3379,24 @@ function CorePipeline({
|
|
|
3361
3379
|
},
|
|
3362
3380
|
_hover: { borderColor: "brand.300", transform: "translateY(-1px)", boxShadow: "0 7px 18px rgba(7, 38, 46, 0.09)" },
|
|
3363
3381
|
children: [
|
|
3364
|
-
/* @__PURE__ */
|
|
3382
|
+
/* @__PURE__ */ jsxs13(Flex8, { align: "flex-start", justify: "space-between", gap: "8px", mb: 2, children: [
|
|
3383
|
+
/* @__PURE__ */ jsx18(Text12, { fontSize: "13px", fontWeight: "700", color: "#24323A", lineClamp: 2, children: ticketTitle }),
|
|
3384
|
+
/* @__PURE__ */ jsx18(
|
|
3385
|
+
Box10,
|
|
3386
|
+
{
|
|
3387
|
+
as: "span",
|
|
3388
|
+
title: `Status da atividade: ${String(row[workStatusField] ?? "N\xE3o informado")}`,
|
|
3389
|
+
"aria-label": `Status da atividade: ${String(row[workStatusField] ?? "N\xE3o informado")}`,
|
|
3390
|
+
flex: "0 0 auto",
|
|
3391
|
+
w: "10px",
|
|
3392
|
+
h: "10px",
|
|
3393
|
+
mt: "4px",
|
|
3394
|
+
borderRadius: "full",
|
|
3395
|
+
bg: workStatusColor(row[workStatusField]),
|
|
3396
|
+
boxShadow: "0 0 0 3px white, 0 0 0 4px #E2E8F0"
|
|
3397
|
+
}
|
|
3398
|
+
)
|
|
3399
|
+
] }),
|
|
3365
3400
|
/* @__PURE__ */ jsx18(Stack5, { gap: 1, children: detailFields.map((field) => /* @__PURE__ */ jsxs13(Flex8, { gap: 2, align: "baseline", justify: "space-between", children: [
|
|
3366
3401
|
/* @__PURE__ */ jsx18(Text12, { fontSize: "10px", color: "gray.500", textTransform: "uppercase", letterSpacing: "0.03em", children: fieldLabel(field) }),
|
|
3367
3402
|
/* @__PURE__ */ jsx18(Text12, { fontSize: "11px", color: "#46545C", fontWeight: "500", textAlign: "right", lineClamp: 1, children: formatCell(row[field.name], field.kind) })
|
|
@@ -3384,7 +3419,8 @@ function CorePipeline({
|
|
|
3384
3419
|
initialRecord: selectedTicket,
|
|
3385
3420
|
initialTab: creating ? create?.initialTab : void 0,
|
|
3386
3421
|
relations,
|
|
3387
|
-
|
|
3422
|
+
topActions: modalTopActions,
|
|
3423
|
+
bottomActions: modalBottomActions,
|
|
3388
3424
|
onClose: () => {
|
|
3389
3425
|
setSelectedTicket(null);
|
|
3390
3426
|
setCreating(false);
|
|
@@ -3516,7 +3552,7 @@ function MissingRenderer({ renderer, children }) {
|
|
|
3516
3552
|
}
|
|
3517
3553
|
|
|
3518
3554
|
// src/components/ui-v2/CorePrimitives.tsx
|
|
3519
|
-
import { Box as Box13, Button as
|
|
3555
|
+
import { Box as Box13, Button as Button10, Flex as Flex9, Heading as Heading7, Spinner as Spinner3, Text as Text15 } from "@chakra-ui/react";
|
|
3520
3556
|
import { jsx as jsx22, jsxs as jsxs16 } from "react/jsx-runtime";
|
|
3521
3557
|
function CorePage({ children }) {
|
|
3522
3558
|
return /* @__PURE__ */ jsx22(Box13, { children });
|
|
@@ -3557,7 +3593,7 @@ function CoreActions({ children }) {
|
|
|
3557
3593
|
function CoreEmptyState({ title = "Nenhum dado encontrado", actionLabel, onAction }) {
|
|
3558
3594
|
return /* @__PURE__ */ jsxs16(Box13, { textAlign: "center", py: 10, children: [
|
|
3559
3595
|
/* @__PURE__ */ jsx22(Text15, { children: title }),
|
|
3560
|
-
actionLabel ? /* @__PURE__ */ jsx22(
|
|
3596
|
+
actionLabel ? /* @__PURE__ */ jsx22(Button10, { mt: 3, onClick: onAction, children: actionLabel }) : null
|
|
3561
3597
|
] });
|
|
3562
3598
|
}
|
|
3563
3599
|
function CoreLoadingState({ label = "Carregando..." }) {
|
|
@@ -3762,7 +3798,7 @@ import {
|
|
|
3762
3798
|
} from "react-router-dom";
|
|
3763
3799
|
|
|
3764
3800
|
// src/shell/DefaultShell.tsx
|
|
3765
|
-
import { Box as Box16, Button as
|
|
3801
|
+
import { Box as Box16, Button as Button11, Flex as Flex11, Spacer as Spacer2, Text as Text18 } from "@chakra-ui/react";
|
|
3766
3802
|
import { Outlet } from "react-router-dom";
|
|
3767
3803
|
|
|
3768
3804
|
// src/shell/Sidebar.tsx
|
|
@@ -3882,7 +3918,7 @@ function CoreTopbar({ app }) {
|
|
|
3882
3918
|
/* @__PURE__ */ jsx26(Text18, { fontSize: "sm", fontWeight: "600", color: "#24323A", children: user.nome }),
|
|
3883
3919
|
user.email ? /* @__PURE__ */ jsx26(Text18, { fontSize: "xs", color: "gray.500", children: user.email }) : null
|
|
3884
3920
|
] }),
|
|
3885
|
-
/* @__PURE__ */ jsx26(
|
|
3921
|
+
/* @__PURE__ */ jsx26(Button11, { size: "sm", variant: "outline", colorPalette: "brand", borderRadius: "8px", onClick: logout, children: "Sair" })
|
|
3886
3922
|
] }) : null
|
|
3887
3923
|
] });
|
|
3888
3924
|
}
|
|
@@ -3926,7 +3962,7 @@ function AuthenticatedLayout({ app, menu, layout, registry }) {
|
|
|
3926
3962
|
}
|
|
3927
3963
|
|
|
3928
3964
|
// src/security/AccessDeniedPage.tsx
|
|
3929
|
-
import { Box as Box17, Button as
|
|
3965
|
+
import { Box as Box17, Button as Button12, Flex as Flex12, Heading as Heading9, Text as Text19, VStack } from "@chakra-ui/react";
|
|
3930
3966
|
import { useNavigate } from "react-router-dom";
|
|
3931
3967
|
import { jsx as jsx28, jsxs as jsxs20 } from "react/jsx-runtime";
|
|
3932
3968
|
function AccessDeniedPage({ app }) {
|
|
@@ -3985,7 +4021,7 @@ function AccessDeniedPage({ app }) {
|
|
|
3985
4021
|
] })
|
|
3986
4022
|
] }),
|
|
3987
4023
|
/* @__PURE__ */ jsx28(
|
|
3988
|
-
|
|
4024
|
+
Button12,
|
|
3989
4025
|
{
|
|
3990
4026
|
alignSelf: "flex-start",
|
|
3991
4027
|
bg: "#07262E",
|
|
@@ -4042,7 +4078,7 @@ function AppAccessGuard({ children }) {
|
|
|
4042
4078
|
import { useState as useState12 } from "react";
|
|
4043
4079
|
import {
|
|
4044
4080
|
Box as Box18,
|
|
4045
|
-
Button as
|
|
4081
|
+
Button as Button13,
|
|
4046
4082
|
Flex as Flex13,
|
|
4047
4083
|
Heading as Heading10,
|
|
4048
4084
|
Input as Input7,
|
|
@@ -4160,7 +4196,7 @@ function LoginPage({ app }) {
|
|
|
4160
4196
|
}
|
|
4161
4197
|
) : null,
|
|
4162
4198
|
/* @__PURE__ */ jsx30(
|
|
4163
|
-
|
|
4199
|
+
Button13,
|
|
4164
4200
|
{
|
|
4165
4201
|
type: "submit",
|
|
4166
4202
|
bg: "#07262E",
|
|
@@ -4177,7 +4213,7 @@ function LoginPage({ app }) {
|
|
|
4177
4213
|
|
|
4178
4214
|
// src/security/ActivationPage.tsx
|
|
4179
4215
|
import { useEffect as useEffect7, useState as useState13 } from "react";
|
|
4180
|
-
import { Box as Box19, Button as
|
|
4216
|
+
import { Box as Box19, Button as Button14, Heading as Heading11, Input as Input8, Text as Text21, VStack as VStack3 } from "@chakra-ui/react";
|
|
4181
4217
|
import { Fragment as Fragment6, jsx as jsx31, jsxs as jsxs22 } from "react/jsx-runtime";
|
|
4182
4218
|
function encodeBasicCredentials2(email, password) {
|
|
4183
4219
|
const bytes = new TextEncoder().encode(`${email}:${password}`);
|
|
@@ -4375,7 +4411,7 @@ function ActivationPage() {
|
|
|
4375
4411
|
)
|
|
4376
4412
|
] }),
|
|
4377
4413
|
/* @__PURE__ */ jsx31(
|
|
4378
|
-
|
|
4414
|
+
Button14,
|
|
4379
4415
|
{
|
|
4380
4416
|
colorPalette: "blue",
|
|
4381
4417
|
onClick: activateDevLocal,
|
|
@@ -4385,7 +4421,7 @@ function ActivationPage() {
|
|
|
4385
4421
|
}
|
|
4386
4422
|
),
|
|
4387
4423
|
/* @__PURE__ */ jsx31(
|
|
4388
|
-
|
|
4424
|
+
Button14,
|
|
4389
4425
|
{
|
|
4390
4426
|
variant: "outline",
|
|
4391
4427
|
onClick: () => setShowCodeFlow(true),
|
|
@@ -4466,7 +4502,7 @@ function ActivationPage() {
|
|
|
4466
4502
|
)
|
|
4467
4503
|
] }),
|
|
4468
4504
|
/* @__PURE__ */ jsx31(
|
|
4469
|
-
|
|
4505
|
+
Button14,
|
|
4470
4506
|
{
|
|
4471
4507
|
colorPalette: "blue",
|
|
4472
4508
|
onClick: activateRoot,
|
|
@@ -4519,7 +4555,7 @@ function ActivationPage() {
|
|
|
4519
4555
|
}
|
|
4520
4556
|
),
|
|
4521
4557
|
/* @__PURE__ */ jsx31(
|
|
4522
|
-
|
|
4558
|
+
Button14,
|
|
4523
4559
|
{
|
|
4524
4560
|
onClick: validateCode,
|
|
4525
4561
|
loading: submitting,
|
|
@@ -4528,7 +4564,7 @@ function ActivationPage() {
|
|
|
4528
4564
|
}
|
|
4529
4565
|
),
|
|
4530
4566
|
isDevelopmentMember ? /* @__PURE__ */ jsx31(
|
|
4531
|
-
|
|
4567
|
+
Button14,
|
|
4532
4568
|
{
|
|
4533
4569
|
variant: "outline",
|
|
4534
4570
|
onClick: () => setShowCodeFlow(false),
|
|
@@ -4540,22 +4576,22 @@ function ActivationPage() {
|
|
|
4540
4576
|
step === 2 && /* @__PURE__ */ jsxs22(Fragment6, { children: [
|
|
4541
4577
|
/* @__PURE__ */ jsx31(Heading11, { size: "md", children: "Confirma\xE7\xE3o" }),
|
|
4542
4578
|
/* @__PURE__ */ jsx31("pre", { children: JSON.stringify(preview, null, 2) }),
|
|
4543
|
-
/* @__PURE__ */ jsx31(
|
|
4579
|
+
/* @__PURE__ */ jsx31(Button14, { onClick: () => setStep(3), children: "Continuar" })
|
|
4544
4580
|
] }),
|
|
4545
4581
|
step === 3 && /* @__PURE__ */ jsxs22(Fragment6, { children: [
|
|
4546
4582
|
config.globalFields.map(
|
|
4547
4583
|
(field) => renderField(field, global, setGlobal)
|
|
4548
4584
|
),
|
|
4549
|
-
/* @__PURE__ */ jsx31(
|
|
4585
|
+
/* @__PURE__ */ jsx31(Button14, { onClick: () => setStep(4), children: "Continuar" })
|
|
4550
4586
|
] }),
|
|
4551
4587
|
step === 4 && /* @__PURE__ */ jsxs22(Fragment6, { children: [
|
|
4552
4588
|
config.appFields.length ? config.appFields.map((field) => renderField(field, app, setApp)) : /* @__PURE__ */ jsx31(Text21, { children: "Nenhum par\xE2metro adicional declarado." }),
|
|
4553
|
-
/* @__PURE__ */ jsx31(
|
|
4589
|
+
/* @__PURE__ */ jsx31(Button14, { onClick: () => setStep(5), children: "Revisar" })
|
|
4554
4590
|
] }),
|
|
4555
4591
|
step === 5 && /* @__PURE__ */ jsxs22(Fragment6, { children: [
|
|
4556
4592
|
/* @__PURE__ */ jsx31(Text21, { children: "Ao confirmar, o c\xF3digo ser\xE1 consumido e a inst\xE2ncia ser\xE1 registrada no Ecossistema Oon." }),
|
|
4557
4593
|
/* @__PURE__ */ jsx31(
|
|
4558
|
-
|
|
4594
|
+
Button14,
|
|
4559
4595
|
{
|
|
4560
4596
|
colorPalette: "blue",
|
|
4561
4597
|
onClick: completeMemberActivation,
|
|
@@ -4896,7 +4932,7 @@ function defineOonModule(mod) {
|
|
|
4896
4932
|
}
|
|
4897
4933
|
|
|
4898
4934
|
// src/components/CoreIntegration.tsx
|
|
4899
|
-
import { Badge as Badge5, Box as Box20, Button as
|
|
4935
|
+
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
4936
|
import { useMutation as useMutation4 } from "@tanstack/react-query";
|
|
4901
4937
|
import { jsx as jsx37, jsxs as jsxs23 } from "react/jsx-runtime";
|
|
4902
4938
|
function CoreIntegration({ label = "Integra\xE7\xF5es" }) {
|
|
@@ -4911,7 +4947,7 @@ function CoreIntegration({ label = "Integra\xE7\xF5es" }) {
|
|
|
4911
4947
|
return /* @__PURE__ */ jsxs23(Stack9, { gap: 6, children: [
|
|
4912
4948
|
/* @__PURE__ */ jsxs23(Flex14, { align: "center", justify: "space-between", children: [
|
|
4913
4949
|
/* @__PURE__ */ jsx37(Heading12, { size: "lg", children: label }),
|
|
4914
|
-
/* @__PURE__ */ jsx37(
|
|
4950
|
+
/* @__PURE__ */ jsx37(Button15, { size: "sm", variant: "outline", loading: reprocess.isPending, onClick: () => reprocess.mutate(), children: "Reprocessar ativos" })
|
|
4915
4951
|
] }),
|
|
4916
4952
|
/* @__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
4953
|
Box20,
|
|
@@ -4932,7 +4968,7 @@ function CoreIntegration({ label = "Integra\xE7\xF5es" }) {
|
|
|
4932
4968
|
}
|
|
4933
4969
|
|
|
4934
4970
|
// src/components/CoreCurrency.tsx
|
|
4935
|
-
import { Button as
|
|
4971
|
+
import { Button as Button16, Flex as Flex15, Heading as Heading13, Stack as Stack10, Text as Text23 } from "@chakra-ui/react";
|
|
4936
4972
|
import { useMutation as useMutation5, useQueryClient as useQueryClient5 } from "@tanstack/react-query";
|
|
4937
4973
|
import { jsx as jsx38, jsxs as jsxs24 } from "react/jsx-runtime";
|
|
4938
4974
|
function CoreCurrency({ model = "Moeda", label = "Multi-moedas", endpoint = "/moedas", columns }) {
|
|
@@ -4945,7 +4981,7 @@ function CoreCurrency({ model = "Moeda", label = "Multi-moedas", endpoint = "/mo
|
|
|
4945
4981
|
return /* @__PURE__ */ jsxs24(Stack10, { gap: 6, children: [
|
|
4946
4982
|
/* @__PURE__ */ jsxs24(Flex15, { align: "center", justify: "space-between", children: [
|
|
4947
4983
|
/* @__PURE__ */ jsx38(Heading13, { size: "lg", children: label }),
|
|
4948
|
-
/* @__PURE__ */ jsx38(
|
|
4984
|
+
/* @__PURE__ */ jsx38(Button16, { size: "sm", colorPalette: "blue", loading: updateRates.isPending, onClick: () => updateRates.mutate(), children: "Atualizar cota\xE7\xF5es" })
|
|
4949
4985
|
] }),
|
|
4950
4986
|
updateRates.isError ? /* @__PURE__ */ jsx38(Text23, { fontSize: "sm", color: "red.600", children: updateRates.error?.message }) : null,
|
|
4951
4987
|
/* @__PURE__ */ jsx38(CoreCollection, { model, label: "", mode: columns ? "full" : "dynamic", endpoint, columns })
|
|
@@ -4954,7 +4990,7 @@ function CoreCurrency({ model = "Moeda", label = "Multi-moedas", endpoint = "/mo
|
|
|
4954
4990
|
|
|
4955
4991
|
// src/components/CoreAssistant.tsx
|
|
4956
4992
|
import { useState as useState14 } from "react";
|
|
4957
|
-
import { Box as Box21, Button as
|
|
4993
|
+
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
4994
|
import { useMutation as useMutation6 } from "@tanstack/react-query";
|
|
4959
4995
|
import { jsx as jsx39, jsxs as jsxs25 } from "react/jsx-runtime";
|
|
4960
4996
|
function CoreAssistant({ assistantCode, label = "Assistente", entity, endpoint = "/assistant-runs" }) {
|
|
@@ -5017,7 +5053,7 @@ function CoreAssistant({ assistantCode, label = "Assistente", entity, endpoint =
|
|
|
5017
5053
|
}
|
|
5018
5054
|
}
|
|
5019
5055
|
),
|
|
5020
|
-
/* @__PURE__ */ jsx39(
|
|
5056
|
+
/* @__PURE__ */ jsx39(Button17, { size: "sm", colorPalette: "blue", onClick: send, loading: ask.isPending, children: "Enviar" })
|
|
5021
5057
|
] })
|
|
5022
5058
|
] });
|
|
5023
5059
|
}
|