@lincros-ui/components 0.1.2 → 0.1.5
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 +166 -496
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import * as React36 from 'react';
|
|
2
2
|
import React36__default, { memo, useMemo, useCallback, useState, useRef, useEffect, useContext } from 'react';
|
|
3
3
|
import * as AccordionPrimitive from '@radix-ui/react-accordion';
|
|
4
|
-
import { ChevronDown, ArrowLeft, ArrowRight, Check, X, Search, ChevronRight, Circle, Minimize2, Maximize2, Dot, ChevronUp, PanelLeft, Clock, AlertCircle, CheckCircle, Shield, AlertTriangle, Users, RefreshCw, Home, ExternalLink, LogIn, Server, Key, MoreHorizontal, ChevronLeft, Phone, Video, Info, MoreVertical, Paperclip, Smile, Mic, Send, GripVertical,
|
|
4
|
+
import { ChevronDown, ArrowLeft, ArrowRight, Check, X, Search, ChevronRight, Circle, Minimize2, Maximize2, Dot, ChevronUp, PanelLeft, Clock, AlertCircle, CheckCircle, Shield, AlertTriangle, Users, RefreshCw, Home, ExternalLink, LogIn, Server, Key, MoreHorizontal, ChevronLeft, Phone, Video, Info, MoreVertical, Paperclip, Smile, Mic, Send, GripVertical, Loader2, Filter, ChevronsLeft, ChevronsRight, Bold, Italic, List, ListOrdered, Quote, Code, Link2 as Link2$1, Image, Plus, Building2, ChevronsUpDown, TestTube, Globe, Copy, Play, Pause, Square, RotateCcw, Edit, Trash2, History, CircleSlash, CircleDot, ToggleRight, ToggleLeft, MapPin, HelpCircle, Bug, StepForward, CornerDownRight, Settings, Brain, Bot, FileJson, XCircle, PauseCircle, GitBranch, Split, Layers, Gauge, PlayCircle, MessageSquare, Database, Variable, Activity, Lightbulb, CheckCircle2, Upload, Download, Hash, StopCircle, Terminal, FileText, BarChart3, Zap, Eye, DollarSign, Expand, Coins, Wrench, Sparkles, Save, Inbox, TrendingUp, TrendingDown, MessageCircle, Merge, ChevronsDownUp, PanelLeftClose, Unlock, Lock, Network, Timer, Workflow, EyeOff, QrCode, User, GitMerge, Tag, Link as Link$1, Building, Box, Wifi, WifiOff, Type, Mail, File, CheckCheck } from 'lucide-react';
|
|
5
5
|
import { clsx } from 'clsx';
|
|
6
6
|
import { twMerge } from 'tailwind-merge';
|
|
7
7
|
import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
|
|
@@ -41,25 +41,18 @@ import * as SwitchPrimitives from '@radix-ui/react-switch';
|
|
|
41
41
|
import * as TabsPrimitive from '@radix-ui/react-tabs';
|
|
42
42
|
import * as TogglePrimitive from '@radix-ui/react-toggle';
|
|
43
43
|
import * as ToggleGroupPrimitive from '@radix-ui/react-toggle-group';
|
|
44
|
-
import {
|
|
45
|
-
import { CSS } from '@dnd-kit/utilities';
|
|
46
|
-
import { useQueryClient, useQuery, useMutation } from '@tanstack/react-query';
|
|
47
|
-
import { getAllUsersUseCase, grantUserUnidadePermissionUseCase, grantBulkUserUnidadePermissionsUseCase, removeUserUnidadePermissionUseCase, getUserUnidadesUseCase, getUnidadeUsersUseCase, createUserUseCase, updateUserUseCase, deleteUserUseCase, activateUserUseCase, deactivateUserUseCase, getUserByIdUseCase } from '@/application/use-cases';
|
|
48
|
-
import { AuthContext } from '@/presentation/providers/AuthProvider';
|
|
44
|
+
import { useNavigate, useLocation, Navigate, Link } from 'react-router-dom';
|
|
49
45
|
import { TenantContext } from '@/presentation/contexts/TenantContext';
|
|
50
|
-
import { ROUTE_PATHS } from '@/constants/routes';
|
|
51
|
-
import { useLocation, Link, useNavigate, Navigate } from 'react-router-dom';
|
|
52
|
-
import { MenuPermissionLevel, canAccessMenu } from '@/lib/menu-permissions';
|
|
53
46
|
import { tenantService } from '@/services/api/tenant.service';
|
|
54
|
-
import '@/
|
|
55
|
-
import { useSensors, useSensor, PointerSensor, KeyboardSensor, DndContext, closestCenter } from '@dnd-kit/core';
|
|
47
|
+
import { AuthContext } from '@/presentation/providers/AuthProvider';
|
|
56
48
|
import { useSSOContext } from '@/presentation/contexts/SSOContext';
|
|
57
49
|
import { getTenantFromSubdomain } from '@/lib/tenant-utils';
|
|
58
50
|
import { useEditor, EditorContent } from '@tiptap/react';
|
|
59
51
|
import StarterKit from '@tiptap/starter-kit';
|
|
60
52
|
import Image2 from '@tiptap/extension-image';
|
|
61
|
-
import
|
|
53
|
+
import Link2 from '@tiptap/extension-link';
|
|
62
54
|
import DOMPurify from 'dompurify';
|
|
55
|
+
import { useQueryClient, useQuery, useMutation } from '@tanstack/react-query';
|
|
63
56
|
import { toast as toast$1 } from 'sonner';
|
|
64
57
|
import { zodResolver } from '@hookform/resolvers/zod';
|
|
65
58
|
import * as z2 from 'zod';
|
|
@@ -69,6 +62,9 @@ import { UpdateCredentialUseCase } from '@/application/use-cases/credentials/Upd
|
|
|
69
62
|
import { ListCredentialsUseCase } from '@/application/use-cases/credentials/ListCredentialsUseCase';
|
|
70
63
|
import { TestCredentialUseCase } from '@/application/use-cases/credentials/TestCredentialUseCase';
|
|
71
64
|
import { authService } from '@/services/api/auth.service';
|
|
65
|
+
import { useSensors, useSensor, PointerSensor, KeyboardSensor, DndContext, closestCenter } from '@dnd-kit/core';
|
|
66
|
+
import { sortableKeyboardCoordinates, SortableContext, verticalListSortingStrategy, arrayMove, useSortable } from '@dnd-kit/sortable';
|
|
67
|
+
import { CSS } from '@dnd-kit/utilities';
|
|
72
68
|
import { useExecutionStore } from '@/presentation/stores/execution.store';
|
|
73
69
|
import { ExecutionStatus } from '@/domain/entities/flow-execution';
|
|
74
70
|
import { useFlowEditorStore } from '@/presentation/stores/flow-editor.store';
|
|
@@ -118,6 +114,7 @@ import { flowNodesService } from '@/services/api/flow-nodes.service';
|
|
|
118
114
|
import { flowConnectionsService } from '@/services/api/flow-connections.service';
|
|
119
115
|
import { compositeNodeManager } from '@/services/automation/CompositeNodeManager';
|
|
120
116
|
import { sendMessageWhatsAppTemplate } from '@/services/automation/templates/sendMessageWhatsApp';
|
|
117
|
+
import { getAllUsersUseCase, grantUserUnidadePermissionUseCase, grantBulkUserUnidadePermissionsUseCase, removeUserUnidadePermissionUseCase, getUserUnidadesUseCase, getUnidadeUsersUseCase, createUserUseCase, updateUserUseCase, deleteUserUseCase, activateUserUseCase, deactivateUserUseCase, getUserByIdUseCase } from '@/application/use-cases';
|
|
121
118
|
import { perfisUsuarioService } from '@/services/api/perfis-usuario.service';
|
|
122
119
|
import { unidadesNegocioService } from '@/services/api/unidades-negocio.service';
|
|
123
120
|
import { httpWebhookRepository } from '@/infrastructure/repositories/HttpWebhookRepository';
|
|
@@ -4518,13 +4515,6 @@ var toastHelpers = {
|
|
|
4518
4515
|
}
|
|
4519
4516
|
};
|
|
4520
4517
|
Object.assign(toast, toastHelpers);
|
|
4521
|
-
function useAuthContext() {
|
|
4522
|
-
const context = useContext(AuthContext);
|
|
4523
|
-
if (context === void 0) {
|
|
4524
|
-
throw new Error("useAuthContext must be used within an AuthProvider");
|
|
4525
|
-
}
|
|
4526
|
-
return context;
|
|
4527
|
-
}
|
|
4528
4518
|
var useTenant = () => {
|
|
4529
4519
|
const context = useContext(TenantContext);
|
|
4530
4520
|
if (context === void 0) {
|
|
@@ -4532,474 +4522,6 @@ var useTenant = () => {
|
|
|
4532
4522
|
}
|
|
4533
4523
|
return context;
|
|
4534
4524
|
};
|
|
4535
|
-
var STORAGE_KEY = "sidebar-expanded-menus";
|
|
4536
|
-
function useSidebarState() {
|
|
4537
|
-
const location = useLocation();
|
|
4538
|
-
const [expandedMenus, setExpandedMenus] = useState(() => {
|
|
4539
|
-
try {
|
|
4540
|
-
const saved = localStorage.getItem(STORAGE_KEY);
|
|
4541
|
-
return saved ? JSON.parse(saved) : [];
|
|
4542
|
-
} catch {
|
|
4543
|
-
return [];
|
|
4544
|
-
}
|
|
4545
|
-
});
|
|
4546
|
-
useEffect(() => {
|
|
4547
|
-
const userManagementPaths = [
|
|
4548
|
-
ROUTE_PATHS.USER_MANAGEMENT,
|
|
4549
|
-
ROUTE_PATHS.USER_PROFILES,
|
|
4550
|
-
ROUTE_PATHS.PERMISSIONS_MANAGEMENT
|
|
4551
|
-
];
|
|
4552
|
-
const whatsAppPaths = [
|
|
4553
|
-
ROUTE_PATHS.WHATSAPP,
|
|
4554
|
-
ROUTE_PATHS.WHATSAPP_CONFIG,
|
|
4555
|
-
ROUTE_PATHS.WHATSAPP_MONITORING,
|
|
4556
|
-
ROUTE_PATHS.WHATSAPP_MESSAGES,
|
|
4557
|
-
ROUTE_PATHS.WHATSAPP_TEMPLATES
|
|
4558
|
-
];
|
|
4559
|
-
const configurationsPaths = [
|
|
4560
|
-
ROUTE_PATHS.SETTINGS,
|
|
4561
|
-
ROUTE_PATHS.UNIDADES_NEGOCIO,
|
|
4562
|
-
ROUTE_PATHS.TENANT_MANAGEMENT,
|
|
4563
|
-
ROUTE_PATHS.MOTORISTAS,
|
|
4564
|
-
ROUTE_PATHS.CREDENTIALS
|
|
4565
|
-
];
|
|
4566
|
-
const isInUsersPage = userManagementPaths.some(
|
|
4567
|
-
(path) => location.pathname.includes(path)
|
|
4568
|
-
);
|
|
4569
|
-
const isInWhatsAppPage = whatsAppPaths.some(
|
|
4570
|
-
(path) => location.pathname.includes(path)
|
|
4571
|
-
);
|
|
4572
|
-
const isInConfigurationsPage = configurationsPaths.some(
|
|
4573
|
-
(path) => location.pathname.includes(path)
|
|
4574
|
-
) || isInUsersPage || isInWhatsAppPage;
|
|
4575
|
-
setExpandedMenus((prev) => {
|
|
4576
|
-
const newExpanded = [...prev];
|
|
4577
|
-
let changed = false;
|
|
4578
|
-
if (isInUsersPage && !prev.includes("Usu\xE1rios")) {
|
|
4579
|
-
newExpanded.push("Usu\xE1rios");
|
|
4580
|
-
changed = true;
|
|
4581
|
-
}
|
|
4582
|
-
if (isInWhatsAppPage && !prev.includes("WhatsApp")) {
|
|
4583
|
-
newExpanded.push("WhatsApp");
|
|
4584
|
-
changed = true;
|
|
4585
|
-
}
|
|
4586
|
-
if (isInConfigurationsPage && !prev.includes("Configura\xE7\xF5es")) {
|
|
4587
|
-
newExpanded.push("Configura\xE7\xF5es");
|
|
4588
|
-
changed = true;
|
|
4589
|
-
}
|
|
4590
|
-
if (changed) {
|
|
4591
|
-
saveToStorage(newExpanded);
|
|
4592
|
-
return newExpanded;
|
|
4593
|
-
}
|
|
4594
|
-
return prev;
|
|
4595
|
-
});
|
|
4596
|
-
}, [location.pathname]);
|
|
4597
|
-
const saveToStorage = (menus) => {
|
|
4598
|
-
try {
|
|
4599
|
-
localStorage.setItem(STORAGE_KEY, JSON.stringify(menus));
|
|
4600
|
-
} catch (error) {
|
|
4601
|
-
console.warn("Erro ao salvar estado do menu no localStorage:", error);
|
|
4602
|
-
}
|
|
4603
|
-
};
|
|
4604
|
-
const toggleSubmenu = (menuTitle) => {
|
|
4605
|
-
setExpandedMenus((prev) => {
|
|
4606
|
-
const newExpanded = prev.includes(menuTitle) ? prev.filter((title) => title !== menuTitle) : [...prev, menuTitle];
|
|
4607
|
-
saveToStorage(newExpanded);
|
|
4608
|
-
return newExpanded;
|
|
4609
|
-
});
|
|
4610
|
-
};
|
|
4611
|
-
const isMenuExpanded = (menuTitle) => {
|
|
4612
|
-
return expandedMenus.includes(menuTitle);
|
|
4613
|
-
};
|
|
4614
|
-
const isMenuItemActive = (url) => {
|
|
4615
|
-
return location.pathname.includes(url);
|
|
4616
|
-
};
|
|
4617
|
-
const isExactMenuItemActive = (url) => {
|
|
4618
|
-
return location.pathname === url;
|
|
4619
|
-
};
|
|
4620
|
-
return {
|
|
4621
|
-
expandedMenus,
|
|
4622
|
-
toggleSubmenu,
|
|
4623
|
-
isMenuExpanded,
|
|
4624
|
-
isMenuItemActive,
|
|
4625
|
-
isExactMenuItemActive
|
|
4626
|
-
};
|
|
4627
|
-
}
|
|
4628
|
-
function filterMenuItems(items, user) {
|
|
4629
|
-
return items.filter((item) => canAccessMenu(user, item.permission)).map((item) => {
|
|
4630
|
-
if (item.subItems) {
|
|
4631
|
-
const filteredSubItems = filterMenuItems(
|
|
4632
|
-
item.subItems,
|
|
4633
|
-
user
|
|
4634
|
-
);
|
|
4635
|
-
if (filteredSubItems.length === 0) {
|
|
4636
|
-
return null;
|
|
4637
|
-
}
|
|
4638
|
-
return {
|
|
4639
|
-
...item,
|
|
4640
|
-
subItems: filteredSubItems
|
|
4641
|
-
};
|
|
4642
|
-
}
|
|
4643
|
-
return item;
|
|
4644
|
-
}).filter((item) => item !== null);
|
|
4645
|
-
}
|
|
4646
|
-
function RenderSubmenu({
|
|
4647
|
-
items,
|
|
4648
|
-
level,
|
|
4649
|
-
isMenuExpanded,
|
|
4650
|
-
isMenuItemActive,
|
|
4651
|
-
toggleSubmenu
|
|
4652
|
-
}) {
|
|
4653
|
-
const { state } = useSidebar();
|
|
4654
|
-
const isCollapsed = state === "collapsed";
|
|
4655
|
-
if (!items) return null;
|
|
4656
|
-
return /* @__PURE__ */ jsx(CustomSidebarMenuSub, { level, children: items.map((subItem) => {
|
|
4657
|
-
const hasSubItems = subItem.subItems && subItem.subItems.length > 0;
|
|
4658
|
-
const paddingLeft = isCollapsed ? 8 : Math.min(level * 8 + 4, 28);
|
|
4659
|
-
return /* @__PURE__ */ jsx(CustomSidebarMenuSubItem, { children: hasSubItems ? /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
4660
|
-
/* @__PURE__ */ jsxs(Tooltip2, { children: [
|
|
4661
|
-
/* @__PURE__ */ jsx(TooltipTrigger, { asChild: true, children: /* @__PURE__ */ jsxs(
|
|
4662
|
-
CustomSidebarMenuSubButton,
|
|
4663
|
-
{
|
|
4664
|
-
onClick: () => toggleSubmenu(subItem.title),
|
|
4665
|
-
className: "w-full justify-start pr-2",
|
|
4666
|
-
style: { paddingLeft: `${paddingLeft}px` },
|
|
4667
|
-
children: [
|
|
4668
|
-
subItem.icon && /* @__PURE__ */ jsx(subItem.icon, { className: "w-4 h-4 shrink-0 mr-2" }),
|
|
4669
|
-
!isCollapsed && /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
4670
|
-
/* @__PURE__ */ jsx("span", { className: "truncate flex-1", children: subItem.title }),
|
|
4671
|
-
/* @__PURE__ */ jsx(
|
|
4672
|
-
ChevronRight,
|
|
4673
|
-
{
|
|
4674
|
-
className: `w-4 h-4 shrink-0 transition-transform ${isMenuExpanded(subItem.title) ? "rotate-90" : ""}`
|
|
4675
|
-
}
|
|
4676
|
-
)
|
|
4677
|
-
] })
|
|
4678
|
-
]
|
|
4679
|
-
}
|
|
4680
|
-
) }),
|
|
4681
|
-
isCollapsed && /* @__PURE__ */ jsx(TooltipContent, { side: "right", className: "font-medium", children: subItem.title })
|
|
4682
|
-
] }),
|
|
4683
|
-
isMenuExpanded(subItem.title) && /* @__PURE__ */ jsx(
|
|
4684
|
-
RenderSubmenu,
|
|
4685
|
-
{
|
|
4686
|
-
items: subItem.subItems,
|
|
4687
|
-
level: level + 1,
|
|
4688
|
-
isMenuExpanded,
|
|
4689
|
-
isMenuItemActive,
|
|
4690
|
-
toggleSubmenu
|
|
4691
|
-
}
|
|
4692
|
-
)
|
|
4693
|
-
] }) : /* @__PURE__ */ jsxs(Tooltip2, { children: [
|
|
4694
|
-
/* @__PURE__ */ jsx(TooltipTrigger, { asChild: true, children: /* @__PURE__ */ jsx(CustomSidebarMenuSubButton, { asChild: true, children: /* @__PURE__ */ jsxs(
|
|
4695
|
-
Link,
|
|
4696
|
-
{
|
|
4697
|
-
to: subItem.url || "#",
|
|
4698
|
-
className: `justify-start pr-2 ${isMenuItemActive(subItem.url || "") ? "bg-accent text-accent-foreground" : ""}`,
|
|
4699
|
-
style: { paddingLeft: `${paddingLeft}px` },
|
|
4700
|
-
children: [
|
|
4701
|
-
subItem.icon && /* @__PURE__ */ jsx(subItem.icon, { className: "w-4 h-4 shrink-0 mr-2" }),
|
|
4702
|
-
!isCollapsed && /* @__PURE__ */ jsx("span", { className: "truncate flex-1", children: subItem.title })
|
|
4703
|
-
]
|
|
4704
|
-
}
|
|
4705
|
-
) }) }),
|
|
4706
|
-
isCollapsed && /* @__PURE__ */ jsx(TooltipContent, { side: "right", className: "font-medium", children: subItem.title })
|
|
4707
|
-
] }) }, subItem.title);
|
|
4708
|
-
}) });
|
|
4709
|
-
}
|
|
4710
|
-
function ControlTowerSidebar({
|
|
4711
|
-
currentTime
|
|
4712
|
-
}) {
|
|
4713
|
-
const { user, logout, getCurrentTenantId } = useAuthContext();
|
|
4714
|
-
const {
|
|
4715
|
-
toggleSubmenu,
|
|
4716
|
-
isMenuExpanded,
|
|
4717
|
-
isMenuItemActive,
|
|
4718
|
-
isExactMenuItemActive
|
|
4719
|
-
} = useSidebarState();
|
|
4720
|
-
const { state } = useSidebar();
|
|
4721
|
-
const isCollapsed = state === "collapsed";
|
|
4722
|
-
const [internalTime, setInternalTime] = React36__default.useState(/* @__PURE__ */ new Date());
|
|
4723
|
-
const currentTenantId = getCurrentTenantId();
|
|
4724
|
-
console.log(currentTenantId);
|
|
4725
|
-
const isMasterTenant = currentTenantId === "master";
|
|
4726
|
-
const menuItems = [
|
|
4727
|
-
{
|
|
4728
|
-
title: "Dashboard",
|
|
4729
|
-
url: ROUTE_PATHS.DASHBOARD,
|
|
4730
|
-
icon: Monitor,
|
|
4731
|
-
permission: MenuPermissionLevel.ALL
|
|
4732
|
-
},
|
|
4733
|
-
{
|
|
4734
|
-
title: "Monitoramento de Rotas",
|
|
4735
|
-
url: ROUTE_PATHS.ROUTE_MONITORING,
|
|
4736
|
-
icon: Navigation,
|
|
4737
|
-
permission: MenuPermissionLevel.MASTER_TENANT_ONLY
|
|
4738
|
-
},
|
|
4739
|
-
{
|
|
4740
|
-
title: "Monitoramento de Rotas",
|
|
4741
|
-
url: ROUTE_PATHS.ROUTE_MONITORING,
|
|
4742
|
-
icon: Navigation,
|
|
4743
|
-
permission: MenuPermissionLevel.ADMIN_ONLY
|
|
4744
|
-
},
|
|
4745
|
-
{
|
|
4746
|
-
title: "Alertas",
|
|
4747
|
-
url: ROUTE_PATHS.ALERTS,
|
|
4748
|
-
icon: Bell,
|
|
4749
|
-
permission: MenuPermissionLevel.ALL
|
|
4750
|
-
},
|
|
4751
|
-
{
|
|
4752
|
-
title: "Relat\xF3rios",
|
|
4753
|
-
url: ROUTE_PATHS.REPORTS,
|
|
4754
|
-
icon: BarChart3,
|
|
4755
|
-
permission: MenuPermissionLevel.ALL
|
|
4756
|
-
},
|
|
4757
|
-
{
|
|
4758
|
-
title: "Configura\xE7\xF5es",
|
|
4759
|
-
icon: Settings,
|
|
4760
|
-
permission: MenuPermissionLevel.ADMIN_ONLY,
|
|
4761
|
-
subItems: [
|
|
4762
|
-
{
|
|
4763
|
-
title: "Configura\xE7\xF5es Gerais",
|
|
4764
|
-
url: ROUTE_PATHS.SETTINGS,
|
|
4765
|
-
icon: Settings,
|
|
4766
|
-
permission: MenuPermissionLevel.ALL
|
|
4767
|
-
},
|
|
4768
|
-
{
|
|
4769
|
-
title: "Usu\xE1rios",
|
|
4770
|
-
icon: Users,
|
|
4771
|
-
permission: MenuPermissionLevel.MANAGER_OR_ADMIN,
|
|
4772
|
-
subItems: [
|
|
4773
|
-
{
|
|
4774
|
-
title: "Gest\xE3o de Usu\xE1rios",
|
|
4775
|
-
url: ROUTE_PATHS.USER_MANAGEMENT,
|
|
4776
|
-
icon: UserCheck,
|
|
4777
|
-
permission: MenuPermissionLevel.MANAGER_OR_ADMIN
|
|
4778
|
-
},
|
|
4779
|
-
{
|
|
4780
|
-
title: "Perfis de Usu\xE1rio",
|
|
4781
|
-
url: ROUTE_PATHS.USER_PROFILES,
|
|
4782
|
-
icon: UserCog,
|
|
4783
|
-
permission: MenuPermissionLevel.MANAGER_OR_ADMIN
|
|
4784
|
-
},
|
|
4785
|
-
{
|
|
4786
|
-
title: "Permiss\xF5es",
|
|
4787
|
-
url: ROUTE_PATHS.PERMISSIONS_MANAGEMENT,
|
|
4788
|
-
icon: Shield,
|
|
4789
|
-
permission: MenuPermissionLevel.ADMIN_ONLY
|
|
4790
|
-
}
|
|
4791
|
-
]
|
|
4792
|
-
},
|
|
4793
|
-
{
|
|
4794
|
-
title: "Motoristas",
|
|
4795
|
-
url: ROUTE_PATHS.MOTORISTAS,
|
|
4796
|
-
icon: Car,
|
|
4797
|
-
permission: MenuPermissionLevel.MANAGER_OR_ADMIN
|
|
4798
|
-
},
|
|
4799
|
-
{
|
|
4800
|
-
title: "WhatsApp",
|
|
4801
|
-
icon: MessageCircle,
|
|
4802
|
-
permission: MenuPermissionLevel.MANAGER_OR_ADMIN,
|
|
4803
|
-
subItems: [
|
|
4804
|
-
{
|
|
4805
|
-
title: "Configura\xE7\xF5es",
|
|
4806
|
-
url: ROUTE_PATHS.WHATSAPP_CONFIG,
|
|
4807
|
-
icon: Settings,
|
|
4808
|
-
permission: MenuPermissionLevel.MANAGER_OR_ADMIN
|
|
4809
|
-
},
|
|
4810
|
-
{
|
|
4811
|
-
title: "Triggers de Fluxo",
|
|
4812
|
-
url: ROUTE_PATHS.WHATSAPP_TRIGGERS,
|
|
4813
|
-
icon: Workflow,
|
|
4814
|
-
permission: MenuPermissionLevel.MANAGER_OR_ADMIN
|
|
4815
|
-
},
|
|
4816
|
-
{
|
|
4817
|
-
title: "Monitoramento",
|
|
4818
|
-
url: ROUTE_PATHS.WHATSAPP_MONITORING,
|
|
4819
|
-
icon: Monitor,
|
|
4820
|
-
permission: MenuPermissionLevel.MANAGER_OR_ADMIN
|
|
4821
|
-
}
|
|
4822
|
-
]
|
|
4823
|
-
},
|
|
4824
|
-
...isMasterTenant ? [] : [{
|
|
4825
|
-
title: "Unidades de Neg\xF3cio",
|
|
4826
|
-
url: ROUTE_PATHS.UNIDADES_NEGOCIO,
|
|
4827
|
-
icon: Building2,
|
|
4828
|
-
permission: MenuPermissionLevel.MANAGER_OR_ADMIN
|
|
4829
|
-
}],
|
|
4830
|
-
...isMasterTenant ? [
|
|
4831
|
-
{
|
|
4832
|
-
title: "Tenants",
|
|
4833
|
-
url: ROUTE_PATHS.TENANT_MANAGEMENT,
|
|
4834
|
-
icon: Database,
|
|
4835
|
-
permission: MenuPermissionLevel.ADMIN_ONLY
|
|
4836
|
-
}
|
|
4837
|
-
] : []
|
|
4838
|
-
]
|
|
4839
|
-
},
|
|
4840
|
-
{
|
|
4841
|
-
title: "Automa\xE7\xE3o",
|
|
4842
|
-
icon: Bot,
|
|
4843
|
-
permission: MenuPermissionLevel.MANAGER_OR_ADMIN,
|
|
4844
|
-
subItems: [
|
|
4845
|
-
{
|
|
4846
|
-
title: "Fluxos de Automa\xE7\xE3o",
|
|
4847
|
-
url: ROUTE_PATHS.FLOWS,
|
|
4848
|
-
icon: Workflow,
|
|
4849
|
-
permission: MenuPermissionLevel.MANAGER_OR_ADMIN
|
|
4850
|
-
},
|
|
4851
|
-
{
|
|
4852
|
-
title: "Credenciais",
|
|
4853
|
-
url: ROUTE_PATHS.CREDENTIALS,
|
|
4854
|
-
icon: Key,
|
|
4855
|
-
permission: MenuPermissionLevel.MANAGER_OR_ADMIN
|
|
4856
|
-
}
|
|
4857
|
-
]
|
|
4858
|
-
}
|
|
4859
|
-
];
|
|
4860
|
-
React36__default.useEffect(() => {
|
|
4861
|
-
if (!currentTime) {
|
|
4862
|
-
const timer = setInterval(() => {
|
|
4863
|
-
setInternalTime(/* @__PURE__ */ new Date());
|
|
4864
|
-
}, 1e3);
|
|
4865
|
-
return () => clearInterval(timer);
|
|
4866
|
-
}
|
|
4867
|
-
}, [currentTime]);
|
|
4868
|
-
const displayTime = currentTime || internalTime;
|
|
4869
|
-
const filteredMenuItems = filterMenuItems(menuItems, user);
|
|
4870
|
-
return /* @__PURE__ */ jsxs(Sidebar, { className: "border-r border-gray-200", collapsible: "icon", children: [
|
|
4871
|
-
/* @__PURE__ */ jsxs(SidebarHeader, { className: "border-b border-gray-200", children: [
|
|
4872
|
-
/* @__PURE__ */ jsx("div", { className: "flex items-center justify-between px-2 py-2", children: /* @__PURE__ */ jsx(SidebarTrigger, { className: "ml-auto" }) }),
|
|
4873
|
-
!isCollapsed && /* @__PURE__ */ jsxs("div", { className: "flex flex-col items-center gap-1 px-2 py-1", children: [
|
|
4874
|
-
/* @__PURE__ */ jsx(
|
|
4875
|
-
"img",
|
|
4876
|
-
{
|
|
4877
|
-
src: "/lovable-uploads/632ebc32-3ae3-4944-8e70-0e9c2539494a.png",
|
|
4878
|
-
alt: "Lincros Logo",
|
|
4879
|
-
className: "w-20 h-20 object-contain"
|
|
4880
|
-
}
|
|
4881
|
-
),
|
|
4882
|
-
/* @__PURE__ */ jsxs("div", { className: "text-center", children: [
|
|
4883
|
-
/* @__PURE__ */ jsx("h2", { className: "font-bold text-lg text-gray-800", children: "Lincros" }),
|
|
4884
|
-
/* @__PURE__ */ jsx("p", { className: "text-xs text-gray-500", children: "Torre de Controle 4.0" })
|
|
4885
|
-
] })
|
|
4886
|
-
] }),
|
|
4887
|
-
isCollapsed && /* @__PURE__ */ jsx("div", { className: "flex justify-center px-2 py-2", children: /* @__PURE__ */ jsx(
|
|
4888
|
-
"img",
|
|
4889
|
-
{
|
|
4890
|
-
src: "/lovable-uploads/632ebc32-3ae3-4944-8e70-0e9c2539494a.png",
|
|
4891
|
-
alt: "Lincros Logo",
|
|
4892
|
-
className: "w-8 h-8 object-contain"
|
|
4893
|
-
}
|
|
4894
|
-
) })
|
|
4895
|
-
] }),
|
|
4896
|
-
/* @__PURE__ */ jsx(SidebarContent, { children: /* @__PURE__ */ jsxs(SidebarGroup, { children: [
|
|
4897
|
-
!isCollapsed && /* @__PURE__ */ jsx(SidebarGroupLabel, { children: "Menu Principal" }),
|
|
4898
|
-
/* @__PURE__ */ jsx(SidebarGroupContent, { children: /* @__PURE__ */ jsx(SidebarMenu, { children: filteredMenuItems.map((item) => /* @__PURE__ */ jsx(SidebarMenuItem, { children: item.subItems ? /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
4899
|
-
/* @__PURE__ */ jsxs(Tooltip2, { children: [
|
|
4900
|
-
/* @__PURE__ */ jsx(TooltipTrigger, { asChild: true, children: /* @__PURE__ */ jsxs(
|
|
4901
|
-
SidebarMenuButton,
|
|
4902
|
-
{
|
|
4903
|
-
onClick: () => toggleSubmenu(item.title),
|
|
4904
|
-
className: "w-full justify-start pr-2",
|
|
4905
|
-
children: [
|
|
4906
|
-
/* @__PURE__ */ jsx(item.icon, { className: "w-4 h-4 shrink-0" }),
|
|
4907
|
-
!isCollapsed && /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
4908
|
-
/* @__PURE__ */ jsx("span", { className: "truncate flex-1", children: item.title }),
|
|
4909
|
-
/* @__PURE__ */ jsx(
|
|
4910
|
-
ChevronRight,
|
|
4911
|
-
{
|
|
4912
|
-
className: `w-4 h-4 shrink-0 transition-transform ${isMenuExpanded(item.title) ? "rotate-90" : ""}`
|
|
4913
|
-
}
|
|
4914
|
-
)
|
|
4915
|
-
] })
|
|
4916
|
-
]
|
|
4917
|
-
}
|
|
4918
|
-
) }),
|
|
4919
|
-
isCollapsed && /* @__PURE__ */ jsx(TooltipContent, { side: "right", className: "font-medium", children: item.title })
|
|
4920
|
-
] }),
|
|
4921
|
-
isMenuExpanded(item.title) && /* @__PURE__ */ jsx(
|
|
4922
|
-
RenderSubmenu,
|
|
4923
|
-
{
|
|
4924
|
-
items: item.subItems,
|
|
4925
|
-
level: 1,
|
|
4926
|
-
isMenuExpanded,
|
|
4927
|
-
isMenuItemActive,
|
|
4928
|
-
toggleSubmenu
|
|
4929
|
-
}
|
|
4930
|
-
)
|
|
4931
|
-
] }) : /* @__PURE__ */ jsxs(Tooltip2, { children: [
|
|
4932
|
-
/* @__PURE__ */ jsx(TooltipTrigger, { asChild: true, children: /* @__PURE__ */ jsx(SidebarMenuButton, { asChild: true, children: /* @__PURE__ */ jsxs(
|
|
4933
|
-
Link,
|
|
4934
|
-
{
|
|
4935
|
-
to: item.url || "#",
|
|
4936
|
-
className: `justify-start pr-2 ${isExactMenuItemActive(item.url || "") ? "bg-accent text-accent-foreground" : ""}`,
|
|
4937
|
-
children: [
|
|
4938
|
-
/* @__PURE__ */ jsx(item.icon, { className: "w-4 h-4 shrink-0" }),
|
|
4939
|
-
!isCollapsed && /* @__PURE__ */ jsx("span", { className: "truncate flex-1", children: item.title })
|
|
4940
|
-
]
|
|
4941
|
-
}
|
|
4942
|
-
) }) }),
|
|
4943
|
-
isCollapsed && /* @__PURE__ */ jsx(TooltipContent, { side: "right", className: "font-medium", children: item.title })
|
|
4944
|
-
] }) }, item.title)) }) })
|
|
4945
|
-
] }) }),
|
|
4946
|
-
/* @__PURE__ */ jsx(SidebarFooter, { className: "border-t border-gray-200", children: /* @__PURE__ */ jsxs("div", { className: `p-2 space-y-2 ${isCollapsed ? "px-1" : ""}`, children: [
|
|
4947
|
-
user && /* @__PURE__ */ jsx("div", { className: "flex items-center justify-between", children: !isCollapsed ? /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
4948
|
-
/* @__PURE__ */ jsxs("div", { className: "flex flex-col min-w-0 flex-1", children: [
|
|
4949
|
-
/* @__PURE__ */ jsx("span", { className: "text-sm font-medium text-gray-700 truncate", children: user.login }),
|
|
4950
|
-
/* @__PURE__ */ jsx("span", { className: "text-xs text-gray-500 truncate", children: user.email })
|
|
4951
|
-
] }),
|
|
4952
|
-
/* @__PURE__ */ jsx(
|
|
4953
|
-
Button,
|
|
4954
|
-
{
|
|
4955
|
-
variant: "ghost",
|
|
4956
|
-
size: "sm",
|
|
4957
|
-
onClick: () => logout(),
|
|
4958
|
-
className: "h-8 w-8 p-0 shrink-0 ml-2",
|
|
4959
|
-
title: "Logout",
|
|
4960
|
-
children: /* @__PURE__ */ jsx(LogOut, { className: "icon-size" })
|
|
4961
|
-
}
|
|
4962
|
-
)
|
|
4963
|
-
] }) : /* @__PURE__ */ jsxs(Tooltip2, { children: [
|
|
4964
|
-
/* @__PURE__ */ jsx(TooltipTrigger, { asChild: true, children: /* @__PURE__ */ jsx(
|
|
4965
|
-
Button,
|
|
4966
|
-
{
|
|
4967
|
-
variant: "ghost",
|
|
4968
|
-
size: "sm",
|
|
4969
|
-
onClick: () => logout(),
|
|
4970
|
-
className: "h-8 w-8 p-0",
|
|
4971
|
-
children: /* @__PURE__ */ jsx(LogOut, { className: "icon-size" })
|
|
4972
|
-
}
|
|
4973
|
-
) }),
|
|
4974
|
-
/* @__PURE__ */ jsxs(TooltipContent, { side: "right", className: "font-medium", children: [
|
|
4975
|
-
"Logout (",
|
|
4976
|
-
user.login,
|
|
4977
|
-
")"
|
|
4978
|
-
] })
|
|
4979
|
-
] }) }),
|
|
4980
|
-
!isCollapsed && /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
4981
|
-
/* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2", children: [
|
|
4982
|
-
/* @__PURE__ */ jsx("div", { className: "w-2 h-2 bg-green-500 rounded-full animate-pulse" }),
|
|
4983
|
-
/* @__PURE__ */ jsx("span", { className: "text-xs text-gray-600 font-medium", children: "Sistema Online" })
|
|
4984
|
-
] }),
|
|
4985
|
-
/* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2", children: [
|
|
4986
|
-
/* @__PURE__ */ jsx(Clock, { className: "w-3 h-3 text-gray-400" }),
|
|
4987
|
-
/* @__PURE__ */ jsx("p", { className: "text-xs text-gray-500", children: displayTime.toLocaleString("pt-BR") })
|
|
4988
|
-
] })
|
|
4989
|
-
] }),
|
|
4990
|
-
isCollapsed && /* @__PURE__ */ jsxs("div", { className: "flex flex-col items-center gap-2", children: [
|
|
4991
|
-
/* @__PURE__ */ jsxs(Tooltip2, { children: [
|
|
4992
|
-
/* @__PURE__ */ jsx(TooltipTrigger, { asChild: true, children: /* @__PURE__ */ jsx("div", { className: "w-2 h-2 bg-green-500 rounded-full animate-pulse" }) }),
|
|
4993
|
-
/* @__PURE__ */ jsx(TooltipContent, { side: "right", className: "font-medium", children: "Sistema Online" })
|
|
4994
|
-
] }),
|
|
4995
|
-
/* @__PURE__ */ jsxs(Tooltip2, { children: [
|
|
4996
|
-
/* @__PURE__ */ jsx(TooltipTrigger, { asChild: true, children: /* @__PURE__ */ jsx(Clock, { className: "w-4 h-4 text-gray-400" }) }),
|
|
4997
|
-
/* @__PURE__ */ jsx(TooltipContent, { side: "right", className: "font-medium", children: displayTime.toLocaleString("pt-BR") })
|
|
4998
|
-
] })
|
|
4999
|
-
] })
|
|
5000
|
-
] }) })
|
|
5001
|
-
] });
|
|
5002
|
-
}
|
|
5003
4525
|
function EnsureTenant({ children }) {
|
|
5004
4526
|
const { currentTenant, setCurrentTenant } = useTenant();
|
|
5005
4527
|
const navigate = useNavigate();
|
|
@@ -5334,12 +4856,6 @@ function GenericFilterBar({
|
|
|
5334
4856
|
] }) })
|
|
5335
4857
|
] }) });
|
|
5336
4858
|
}
|
|
5337
|
-
function MainLayout({ children }) {
|
|
5338
|
-
return /* @__PURE__ */ jsx(SidebarProvider, { children: /* @__PURE__ */ jsxs("div", { className: "h-screen w-full flex", children: [
|
|
5339
|
-
/* @__PURE__ */ jsx(ControlTowerSidebar, {}),
|
|
5340
|
-
/* @__PURE__ */ jsx("main", { className: "flex-1 overflow-hidden", children: /* @__PURE__ */ jsx("div", { className: "h-full overflow-y-auto", children }) })
|
|
5341
|
-
] }) });
|
|
5342
|
-
}
|
|
5343
4859
|
function PageHeader({ icon: Icon2, title, description, children }) {
|
|
5344
4860
|
const scrollContainerRef = useRef(null);
|
|
5345
4861
|
const headerContainerRef = useRef(null);
|
|
@@ -5588,6 +5104,13 @@ function PaginationControls({
|
|
|
5588
5104
|
] })
|
|
5589
5105
|
] });
|
|
5590
5106
|
}
|
|
5107
|
+
function useAuthContext() {
|
|
5108
|
+
const context = useContext(AuthContext);
|
|
5109
|
+
if (context === void 0) {
|
|
5110
|
+
throw new Error("useAuthContext must be used within an AuthProvider");
|
|
5111
|
+
}
|
|
5112
|
+
return context;
|
|
5113
|
+
}
|
|
5591
5114
|
var useSSO = () => {
|
|
5592
5115
|
return useSSOContext();
|
|
5593
5116
|
};
|
|
@@ -5811,7 +5334,7 @@ function RichTextEditor({ content, onChange, placeholder }) {
|
|
|
5811
5334
|
class: "max-w-full h-auto rounded-lg my-2"
|
|
5812
5335
|
}
|
|
5813
5336
|
}),
|
|
5814
|
-
|
|
5337
|
+
Link2.configure({
|
|
5815
5338
|
openOnClick: false,
|
|
5816
5339
|
HTMLAttributes: {
|
|
5817
5340
|
class: "text-primary underline"
|
|
@@ -5994,7 +5517,7 @@ function RichTextEditor({ content, onChange, placeholder }) {
|
|
|
5994
5517
|
onClick: () => setShowLinkDialog(true),
|
|
5995
5518
|
className: "h-8 px-2",
|
|
5996
5519
|
title: "Adicionar link",
|
|
5997
|
-
children: /* @__PURE__ */ jsx(Link2, { className: "icon-size" })
|
|
5520
|
+
children: /* @__PURE__ */ jsx(Link2$1, { className: "icon-size" })
|
|
5998
5521
|
}
|
|
5999
5522
|
),
|
|
6000
5523
|
/* @__PURE__ */ jsx(
|
|
@@ -27447,6 +26970,153 @@ function useWebhookSubscriptions() {
|
|
|
27447
26970
|
};
|
|
27448
26971
|
}
|
|
27449
26972
|
|
|
27450
|
-
|
|
26973
|
+
// src/types/mcp.types.ts
|
|
26974
|
+
var MCPCategoryToNodeType = {
|
|
26975
|
+
"Communication": "action",
|
|
26976
|
+
"Data": "action",
|
|
26977
|
+
"AI": "ai_agent",
|
|
26978
|
+
"Logic": "condition",
|
|
26979
|
+
"Integration": "action",
|
|
26980
|
+
"Automation": "action",
|
|
26981
|
+
"Trigger": "trigger"
|
|
26982
|
+
};
|
|
26983
|
+
var MCPSubtypeToIcon = {
|
|
26984
|
+
"send_email": "Mail",
|
|
26985
|
+
"send_sms": "MessageSquare",
|
|
26986
|
+
"send_whatsapp": "MessageSquare",
|
|
26987
|
+
"database_query": "Database",
|
|
26988
|
+
"api_request": "Globe",
|
|
26989
|
+
"file_operation": "File",
|
|
26990
|
+
"ai_completion": "Brain",
|
|
26991
|
+
"ai_analysis": "Brain",
|
|
26992
|
+
"conditional": "GitBranch",
|
|
26993
|
+
"loop": "RefreshCw",
|
|
26994
|
+
"webhook": "Globe",
|
|
26995
|
+
"schedule": "Clock",
|
|
26996
|
+
"manual": "Zap"
|
|
26997
|
+
};
|
|
26998
|
+
var WebhookEventMapper = class _WebhookEventMapper {
|
|
26999
|
+
static toDomain(response) {
|
|
27000
|
+
if (!response) {
|
|
27001
|
+
return _WebhookEventMapper.createEmptyEvent();
|
|
27002
|
+
}
|
|
27003
|
+
return {
|
|
27004
|
+
id: response.id || "",
|
|
27005
|
+
eventId: response.event_id || "",
|
|
27006
|
+
type: response.type || WebhookEventType.MESSAGE_RECEIVED,
|
|
27007
|
+
status: response.status || WebhookEventStatus.PENDING,
|
|
27008
|
+
source: response.source || "unknown",
|
|
27009
|
+
payload: response.payload || {},
|
|
27010
|
+
metadata: response.metadata || {},
|
|
27011
|
+
retryCount: response.retry_count || 0,
|
|
27012
|
+
maxRetries: response.max_retries || 3,
|
|
27013
|
+
error: response.error ? {
|
|
27014
|
+
code: response.error.code,
|
|
27015
|
+
message: response.error.message,
|
|
27016
|
+
details: response.error.details,
|
|
27017
|
+
timestamp: new Date(response.error.timestamp)
|
|
27018
|
+
} : void 0,
|
|
27019
|
+
processedAt: response.processed_at ? new Date(response.processed_at) : void 0,
|
|
27020
|
+
createdAt: response.created_at ? new Date(response.created_at) : /* @__PURE__ */ new Date(),
|
|
27021
|
+
updatedAt: response.updated_at ? new Date(response.updated_at) : /* @__PURE__ */ new Date()
|
|
27022
|
+
};
|
|
27023
|
+
}
|
|
27024
|
+
static createEmptyEvent() {
|
|
27025
|
+
return {
|
|
27026
|
+
id: "",
|
|
27027
|
+
eventId: "",
|
|
27028
|
+
type: WebhookEventType.MESSAGE_RECEIVED,
|
|
27029
|
+
status: WebhookEventStatus.PENDING,
|
|
27030
|
+
source: "unknown",
|
|
27031
|
+
payload: {},
|
|
27032
|
+
metadata: {},
|
|
27033
|
+
retryCount: 0,
|
|
27034
|
+
maxRetries: 3,
|
|
27035
|
+
error: void 0,
|
|
27036
|
+
processedAt: void 0,
|
|
27037
|
+
createdAt: /* @__PURE__ */ new Date(),
|
|
27038
|
+
updatedAt: /* @__PURE__ */ new Date()
|
|
27039
|
+
};
|
|
27040
|
+
}
|
|
27041
|
+
static toResponse(event) {
|
|
27042
|
+
return {
|
|
27043
|
+
id: event.id,
|
|
27044
|
+
event_id: event.eventId,
|
|
27045
|
+
type: event.type,
|
|
27046
|
+
status: event.status,
|
|
27047
|
+
source: event.source,
|
|
27048
|
+
payload: event.payload,
|
|
27049
|
+
metadata: event.metadata,
|
|
27050
|
+
retry_count: event.retryCount,
|
|
27051
|
+
max_retries: event.maxRetries,
|
|
27052
|
+
error: event.error ? {
|
|
27053
|
+
code: event.error.code,
|
|
27054
|
+
message: event.error.message,
|
|
27055
|
+
details: event.error.details,
|
|
27056
|
+
timestamp: event.error.timestamp.toISOString()
|
|
27057
|
+
} : void 0,
|
|
27058
|
+
processed_at: event.processedAt?.toISOString(),
|
|
27059
|
+
created_at: event.createdAt.toISOString(),
|
|
27060
|
+
updated_at: event.updatedAt.toISOString()
|
|
27061
|
+
};
|
|
27062
|
+
}
|
|
27063
|
+
};
|
|
27064
|
+
var WebhookSubscriptionMapper = class {
|
|
27065
|
+
static toDomain(response) {
|
|
27066
|
+
return {
|
|
27067
|
+
id: response.id,
|
|
27068
|
+
url: response.url,
|
|
27069
|
+
events: response.events,
|
|
27070
|
+
active: response.active,
|
|
27071
|
+
secret: response.secret,
|
|
27072
|
+
headers: response.headers,
|
|
27073
|
+
retryPolicy: {
|
|
27074
|
+
maxRetries: response.retry_policy.max_retries,
|
|
27075
|
+
retryDelay: response.retry_policy.retry_delay,
|
|
27076
|
+
backoffMultiplier: response.retry_policy.backoff_multiplier,
|
|
27077
|
+
maxRetryDelay: response.retry_policy.max_retry_delay
|
|
27078
|
+
},
|
|
27079
|
+
createdAt: new Date(response.created_at),
|
|
27080
|
+
updatedAt: new Date(response.updated_at)
|
|
27081
|
+
};
|
|
27082
|
+
}
|
|
27083
|
+
static toResponse(subscription) {
|
|
27084
|
+
return {
|
|
27085
|
+
id: subscription.id,
|
|
27086
|
+
url: subscription.url,
|
|
27087
|
+
events: subscription.events,
|
|
27088
|
+
active: subscription.active,
|
|
27089
|
+
secret: subscription.secret,
|
|
27090
|
+
headers: subscription.headers,
|
|
27091
|
+
retry_policy: {
|
|
27092
|
+
max_retries: subscription.retryPolicy.maxRetries,
|
|
27093
|
+
retry_delay: subscription.retryPolicy.retryDelay,
|
|
27094
|
+
backoff_multiplier: subscription.retryPolicy.backoffMultiplier,
|
|
27095
|
+
max_retry_delay: subscription.retryPolicy.maxRetryDelay
|
|
27096
|
+
},
|
|
27097
|
+
created_at: subscription.createdAt.toISOString(),
|
|
27098
|
+
updated_at: subscription.updatedAt.toISOString()
|
|
27099
|
+
};
|
|
27100
|
+
}
|
|
27101
|
+
};
|
|
27102
|
+
var WebhookMetricsMapper = class {
|
|
27103
|
+
static toDomain(response) {
|
|
27104
|
+
return {
|
|
27105
|
+
total: response.total,
|
|
27106
|
+
success: response.success,
|
|
27107
|
+
failed: response.failed,
|
|
27108
|
+
pending: response.pending,
|
|
27109
|
+
processing: response.processing,
|
|
27110
|
+
retrying: response.retrying,
|
|
27111
|
+
averageProcessingTime: response.average_processing_time,
|
|
27112
|
+
successRate: response.success_rate,
|
|
27113
|
+
failureRate: response.failure_rate,
|
|
27114
|
+
byType: response.by_type,
|
|
27115
|
+
byHour: response.by_hour
|
|
27116
|
+
};
|
|
27117
|
+
}
|
|
27118
|
+
};
|
|
27119
|
+
|
|
27120
|
+
export { AIAgentConfigModal, AIAgentNode, Accordion, AccordionContent, AccordionItem, AccordionTrigger, ActionNode, Alert, AlertDescription, AlertDialog, AlertDialogAction, AlertDialogCancel, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogOverlay, AlertDialogPortal, AlertDialogTitle, AlertDialogTrigger, AlertTitle, AspectRatio, Avatar, AvatarFallback, AvatarImage, Badge, BadgeGroup, Breadcrumb, BreadcrumbEllipsis, BreadcrumbItem, BreadcrumbLink, BreadcrumbList, BreadcrumbPage, BreadcrumbSeparator, BreakpointIndicator, BreakpointsPanel, Button, Calendar, Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, CardWithIcon, Carousel, CarouselContent, CarouselItem, CarouselNext, CarouselPrevious, ChartContainer, ChartLegend, ChartLegendContent, ChartStyle, ChartTooltip, ChartTooltipContent, ChatContainer, ChatHeader, ChatInput, ChatLayout, ChatMessages, Checkbox, Collapsible, CollapsibleContent2 as CollapsibleContent, CollapsibleTrigger2 as CollapsibleTrigger, Command, CommandDialog, CommandEmpty, CommandGroup, CommandInput, CommandItem, CommandList, CommandSeparator, CommandShortcut, CompositeNode, CompositeNodeConfigModal, ConditionNode, ConditionalBreakpointModal, ContextMenu, ContextMenuCheckboxItem, ContextMenuContent, ContextMenuGroup, ContextMenuItem, ContextMenuLabel, ContextMenuPortal, ContextMenuRadioGroup, ContextMenuRadioItem, ContextMenuSeparator, ContextMenuShortcut, ContextMenuSub, ContextMenuSubContent, ContextMenuSubTrigger, ContextMenuTrigger, CountBadge, CredentialFormModal, CredentialSelector, CustomEdge, CustomEdgeWithTooltip, CustomSidebarMenuSub, CustomSidebarMenuSubButton, CustomSidebarMenuSubItem, DEFAULT_WEBHOOK_CONFIG, DebugControlPanel, DebugModeToggle, Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogMaximizableContent, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger, Drawer, DrawerClose, DrawerContent, DrawerDescription, DrawerFooter, DrawerHeader, DrawerOverlay, DrawerPortal, DrawerTitle, DrawerTrigger, DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, EdgeLabel, EnsureTenant, EventInspector, ExecutableNode, ExecuteFlowModal, ExecutionDataNode, ExecutionDataNodeForm, ExecutionHistorySidebar, ExecutionProgress, ExpandableText, FlowEditor, FlowExecutionPanel, Form, FormControl, FormDescription, FormField, FormItem, FormLabel, FormMessage, GenericFilterBar, HoverCard, HoverCardContent, HoverCardTrigger, ImportErrorDisplay, ImportFlowFileModal, ImportFlowsModal, Input, InputOTP, InputOTPGroup, InputOTPSeparator, InputOTPSlot, InputWithLabel, JSONSchemaEditor, Label3 as Label, LoopConfigModal, LoopExecutionMonitor, LoopNode, LoopResultsViewer, MCPCategoryToNodeType, MCPSubtypeToIcon, MCPToolNode, Menubar, MenubarCheckboxItem, MenubarContent, MenubarGroup, MenubarItem, MenubarLabel, MenubarMenu, MenubarPortal, MenubarRadioGroup, MenubarRadioItem, MenubarSeparator, MenubarShortcut, MenubarSub, MenubarSubContent, MenubarSubTrigger, MenubarTrigger, MergeNode, MessageBubble, MessageHistory, MessageInput, ModelSelector, MotoristaFilters, MotoristaForm, MotoristaStatusBadge, MotoristaTable, NavigationMenu, NavigationMenuContent, NavigationMenuIndicator, NavigationMenuItem, NavigationMenuLink, NavigationMenuList, NavigationMenuTrigger, NavigationMenuViewport, NodeLibraryPanel, NodeOutputViewer, NodePropertiesModal, NotificationBadge, PageHeader, Pagination, PaginationContent, PaginationControls, PaginationEllipsis, PaginationItem, PaginationLink, PaginationNext, PaginationPrevious, ParameterInput, Popover, PopoverContent, PopoverTrigger, Progress, PromptEditor, PromptTestModal, ProtectedRoute, QRCodeModal, RadioGroup4 as RadioGroup, RadioGroupItem, ResizableHandle, ResizablePanel, ResizablePanelGroup, RichTextEditor, RichTextRenderer, ScrollArea, ScrollBar, Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue, SendMessageModal, Separator5 as Separator, Sheet, SheetClose, SheetContent, SheetDescription, SheetFooter, SheetHeader, SheetOverlay, SheetPortal, SheetTitle, SheetTrigger, Sidebar, SidebarContent, SidebarFooter, SidebarGroup, SidebarGroupAction, SidebarGroupContent, SidebarGroupLabel, SidebarHeader, SidebarInput, SidebarInset, SidebarMenu, SidebarMenuAction, SidebarMenuBadge, SidebarMenuButton, SidebarMenuItem, SidebarMenuSkeleton, SidebarMenuSub, SidebarMenuSubButton, SidebarMenuSubItem, SidebarProvider, SidebarRail, SidebarSeparator, SidebarTrigger, Skeleton, Slider, SplitConfigModal, SplitNode, StandardPageLayout, StatusBadge, Switch, Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableRow, Tabs, TabsContent, TabsList, TabsTrigger, TenantSelectorLazy, Textarea, Toggle, ToggleGroup, ToggleGroupItem, Tooltip2 as Tooltip, TooltipButton, TooltipContent, TooltipProvider, TooltipTrigger, TriggerNode, TypingIndicator, UnidadeNegocioCombobox, UserCombobox, VariablePicker, WEBHOOK_TEST_EVENTS, WebhookConfigModal, WebhookConfigPanel, WebhookEventCard, WebhookEventMapper, WebhookFlowLink, WebhookLogsViewer, WebhookMetricsChart, WebhookMetricsMapper, WebhookSubscriptionMapper, WebhookTestModal, WebhookTimeline, WebhookTokenManager, WhatsAppHealthMonitor, WhatsAppTriggerConfigModal, WhatsAppTriggerMetricsModal, WhatsAppTriggerNode, WhatsAppTriggerTestModal, badgeVariants, beautifyString, buttonVariants, calculateProcessingTime, capitalizeFirst, cn, formatDate, formatDateTime, formatEventType, formatLocalDate, formatLocalDateTime, formatLocalTime, formatStatus, formatTime, getEventTypeVariant, getMetricColor, getNodeBorderStyles, getNodeIconColor, getNodeIconTextColor, getStatusVariant, getTimelineColor, isValidWebhookPayload, navigationMenuTriggerStyle, sanitizeWebhookUrl, toCamelCase, toSnakeCase, toast, toggleVariants, useAuth, useAuthContext, useEmpresasForSelect, useFlowEditor, useFlows, useFormField, useIsMobile, useMCPNodeValidation, useMCPTools, useMotorista, useMotoristaByCpf, useMotoristaMutations, useMotoristas, useMotoristasbyEmpresa, usePaginatedUsers, usePerfilUsuario, usePerfilUsuarioFilters, usePermissions, usePersistedFilters, useSSO, useSearchMotoristas, useSidebar, useTenant, useToast, useUnidadesNegocio, useUserById, useUserFilters, useUserUnidades, useUsers, useWebhookEventDetails, useWebhookEventMetrics, useWebhookEvents, useWebhookSubscriptions, useWhatsApp, useWhatsAppConfigs, useWhatsAppHealthMonitor, useWhatsAppQRCode, useWhatsAppTriggerExecutions, useWhatsAppTriggerMetrics, useWhatsAppTriggers, validateUrl };
|
|
27451
27121
|
//# sourceMappingURL=index.js.map
|
|
27452
27122
|
//# sourceMappingURL=index.js.map
|