@lincros-ui/components 0.1.3 → 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 +19 -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(
|
|
@@ -27594,6 +27117,6 @@ var WebhookMetricsMapper = class {
|
|
|
27594
27117
|
}
|
|
27595
27118
|
};
|
|
27596
27119
|
|
|
27597
|
-
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,
|
|
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 };
|
|
27598
27121
|
//# sourceMappingURL=index.js.map
|
|
27599
27122
|
//# sourceMappingURL=index.js.map
|