ivt
Version:
Ivt Components Library
288 lines (278 loc) • 15.1 kB
JavaScript
import { C as Container, a as ChildContainer } from '../chunks/Container-qhzI-HED.mjs';
import React__default from 'react';
import { c as cn } from '../chunks/utils-BDcRwQMd.mjs';
import { H as Header, G as GenericHeadingMenubar, L as LayoutActions, S as StepNavigator } from '../chunks/StepNavigator-DXnlZUw2.mjs';
import { C as CreateAndUpdateSkeleton, a as ShowSkeleton } from '../chunks/ShowSkeleton-DuVLsprm.mjs';
import { B as Button } from '../chunks/button-CZpmCmNo.mjs';
import { T as TriangleAlert } from '../chunks/triangle-alert-B_tQGpT4.mjs';
import { b as ButtonUpdateForm, B as ButtonDelete, a as ButtonUpdateShow } from '../chunks/ButtonActions-BbAuGm_J.mjs';
import { D as DeleteConfirmationModal } from '../chunks/DeleteConfirmationModal-NPS_J_dT.mjs';
import { L as ListItem } from '../chunks/ListItem-CtUZSq2i.mjs';
import '../chunks/bundle-mjs-CXmmFvYo.mjs';
import '../chunks/menubar-oWKK9_Ik.mjs';
import '@radix-ui/react-collection';
import '../chunks/index-UxWlwQlk.mjs';
import 'react/jsx-runtime';
import '../chunks/index-Dsw02Eup.mjs';
import 'react-dom';
import '@radix-ui/react-slot';
import '../chunks/index-D4jPaBZ2.mjs';
import '../chunks/index-gX0V59dZ.mjs';
import '../chunks/index-C8u7IIcP.mjs';
import '../chunks/index-zIaBOKQ3.mjs';
import '../chunks/createLucideIcon-C11Tr46U.mjs';
import '../chunks/index-4NpeUekv.mjs';
import '../chunks/index-DC-gAYjS.mjs';
import '../chunks/index-z4Hk6sF4.mjs';
import '../chunks/tslib.es6-Q9puKanr.mjs';
import '../chunks/index-B87m6Bfb.mjs';
import '../chunks/index-DAa5gqEY.mjs';
import '../chunks/index-BksCjWh6.mjs';
import '../chunks/index-DfeRLazC.mjs';
import '../chunks/index-DIHpzffL.mjs';
import '../chunks/index-1toTCGyr.mjs';
import '../chunks/check-Ds358kZc.mjs';
import '../chunks/chevron-right-Dq6zFe5E.mjs';
import '../chunks/accordion-BcAmhbBS.mjs';
import '../chunks/index-BWXpaxmG.mjs';
import '../chunks/chevron-down-CDFTds2-.mjs';
import '../chunks/chevron-left-Baq244Ce.mjs';
import '../chunks/skeleton-LDpPNYvq.mjs';
import 'class-variance-authority';
import '../icon/index.mjs';
import '../chunks/trash-2-ab4Di2Bx.mjs';
import '../chunks/dialog-DL1cSseU.mjs';
import '../chunks/index-CaYwp6E6.mjs';
import '../chunks/x-B6hDJA_l.mjs';
import '../chunks/TooltipIndicator-o_ekzuQD.mjs';
import '../chunks/tooltip-njN_ok-r.mjs';
import '../chunks/index-BJrVyyCQ.mjs';
import '../chunks/badge-ZU62MOiS.mjs';
function CrudCreatePage({ metadata, actions, content, menu, isLoading }) {
const submitForm = ()=>{
if (actions.formRef.current) {
actions.formRef.current.requestSubmit();
}
};
let pageContent;
if (isLoading) {
pageContent = /*#__PURE__*/ React__default.createElement(CreateAndUpdateSkeleton, null);
} else {
pageContent = /*#__PURE__*/ React__default.createElement(PageComponent, {
title: content.pageTitle,
description: content.pageDescription,
tabs: content.tabs,
extraInfo: content.extraInfo,
form: content.form,
className: content.pageClassName
}, content.children);
}
const renderActions = /*#__PURE__*/ React__default.createElement(React__default.Fragment, null, actions.actions ?? /*#__PURE__*/ React__default.createElement(Button, {
isAction: true,
type: "submit",
onClick: submitForm,
disabled: actions.isPendingAction
}, actions.actionLabel ?? "Criar"));
return /*#__PURE__*/ React__default.createElement(React__default.Fragment, null, /*#__PURE__*/ React__default.createElement("title", null, metadata.title), /*#__PURE__*/ React__default.createElement(Header, {
title: metadata.headerTitle,
description: metadata.headerDescription
}), menu?.menuItems && menu?.currentPath && menu?.onNavigate ? /*#__PURE__*/ React__default.createElement(GenericHeadingMenubar, {
currentPath: menu.currentPath,
menuItems: menu.menuItems,
onNavigate: menu.onNavigate,
disabled: actions.isPendingAction
}, renderActions) : /*#__PURE__*/ React__default.createElement(LayoutActions, {
className: "flex justify-end item-center flex-wrap mt-0"
}, renderActions), /*#__PURE__*/ React__default.createElement("main", {
className: "w-full"
}, pageContent));
}
function CrudEditPage({ metadata, actions, content, menu, isLoading }) {
const submitForm = ()=>{
if (actions.formRef.current) {
actions.formRef.current.requestSubmit();
}
};
const isNotFound = !actions.entityId;
let pageContent;
if (isLoading) {
pageContent = /*#__PURE__*/ React__default.createElement(CreateAndUpdateSkeleton, null);
} else if (isNotFound) {
pageContent = /*#__PURE__*/ React__default.createElement(ShowNotFound, {
title: content.notFoundTitle ?? "Registro não encontrado",
description: content.notFoundDescription ?? "Não foi possível encontrar o registro solicitado."
});
} else {
pageContent = /*#__PURE__*/ React__default.createElement(PageComponent, {
title: content.pageTitle,
description: content.pageDescription,
tabs: content.tabs,
extraInfo: content.extraInfo,
form: content.form,
className: content.pageClassName
}, content.children);
}
const renderActions = /*#__PURE__*/ React__default.createElement(React__default.Fragment, null, actions.customActions ? actions.customActions : actions.entityId && /*#__PURE__*/ React__default.createElement("div", {
className: "flex items-center gap-2"
}, /*#__PURE__*/ React__default.createElement(ButtonUpdateForm, {
type: "submit",
onClick: submitForm,
disabled: actions.isPendingAction || !actions.entityId
}), actions.onDelete && /*#__PURE__*/ React__default.createElement(DeleteConfirmationModal, {
title: actions.titleModal ?? "Apagar registro?",
description: actions.descriptionModal ?? "Tem certeza que deseja apagar este registro?",
onConfirm: ()=>{
if (actions.onDelete && actions.entityId) {
actions.onDelete(actions.entityId);
}
},
disabled: !actions.entityId || actions.isPendingAction
}, /*#__PURE__*/ React__default.createElement(ButtonDelete, {
disabled: !actions.entityId || actions.isPendingAction
}))));
return /*#__PURE__*/ React__default.createElement(React__default.Fragment, null, /*#__PURE__*/ React__default.createElement("title", null, metadata.title), /*#__PURE__*/ React__default.createElement(Header, {
title: metadata.headerTitle,
description: metadata.headerDescription
}), menu?.menuItems && menu?.currentPath && menu?.onNavigate ? /*#__PURE__*/ React__default.createElement(GenericHeadingMenubar, {
currentPath: menu.currentPath,
menuItems: menu.menuItems,
onNavigate: menu.onNavigate,
disabled: actions.isPendingAction
}, renderActions) : /*#__PURE__*/ React__default.createElement(LayoutActions, {
className: "flex justify-end item-center flex-wrap mt-0"
}, renderActions), /*#__PURE__*/ React__default.createElement("main", {
className: "w-full"
}, pageContent));
}
function CrudListPage({ metadata, actions, content, menu }) {
return /*#__PURE__*/ React__default.createElement(React__default.Fragment, null, /*#__PURE__*/ React__default.createElement("title", null, metadata.pageTitle), /*#__PURE__*/ React__default.createElement(Header, {
title: metadata.headerTitle,
description: metadata.headerDescription ?? ""
}), /*#__PURE__*/ React__default.createElement("main", {
className: "w-full"
}, /*#__PURE__*/ React__default.createElement("div", {
className: "flex w-full flex-wrap items-center justify-between gap-2"
}, menu?.menuItems && menu?.currentPath && menu?.onNavigate ? /*#__PURE__*/ React__default.createElement(React__default.Fragment, null, /*#__PURE__*/ React__default.createElement(GenericHeadingMenubar, {
currentPath: menu.currentPath,
menuItems: menu.menuItems,
onNavigate: menu.onNavigate,
disabled: actions.isLoadingTable
}), /*#__PURE__*/ React__default.createElement("div", {
className: "flex items-center gap-2 px-4"
}, actions.actions)) : /*#__PURE__*/ React__default.createElement(LayoutActions, {
className: "flex w-full justify-end item-center flex-wrap mt-0"
}, actions.actions)), actions.importArea, content.children));
}
function CrudShowPage({ metadata, actions, content, menu, isLoading }) {
let pageContent;
const isNotFound = !actions.entityId;
if (isLoading) {
pageContent = content.skeleton ? content.skeleton : /*#__PURE__*/ React__default.createElement(ShowSkeleton, content.skeletonProps);
} else if (isNotFound) {
pageContent = /*#__PURE__*/ React__default.createElement(ShowNotFound, {
title: content.notFoundTitle,
description: content.notFoundDescription
});
} else {
pageContent = /*#__PURE__*/ React__default.createElement(PageComponent, {
title: content.pageTitle,
description: content.pageDescription,
extraInfo: content.extraInfo
}, content.children);
}
const renderActions = /*#__PURE__*/ React__default.createElement(React__default.Fragment, null, actions.customActions ? actions.customActions : actions.entityId && /*#__PURE__*/ React__default.createElement("div", {
className: "flex items-center gap-2"
}, actions.onEdit && /*#__PURE__*/ React__default.createElement(ButtonUpdateShow, {
onClick: ()=>{
if (actions.onEdit && actions.entityId) {
actions.onEdit(actions.entityId);
}
},
disabled: actions.isPendingAction || !actions.entityId
}), actions.onDelete && /*#__PURE__*/ React__default.createElement(DeleteConfirmationModal, {
title: actions.titleModal ?? "Apagar registro?",
description: actions.descriptionModal ?? "Tem certeza que deseja apagar este registro?",
onConfirm: ()=>{
if (actions.onDelete && actions.entityId) {
actions.onDelete(actions.entityId);
}
},
disabled: !actions.entityId || actions.isPendingAction
}, /*#__PURE__*/ React__default.createElement(ButtonDelete, {
disabled: !actions.entityId || actions.isPendingAction
}))));
return /*#__PURE__*/ React__default.createElement(React__default.Fragment, null, /*#__PURE__*/ React__default.createElement("title", null, metadata.title), /*#__PURE__*/ React__default.createElement(Header, {
title: metadata.headerTitle,
description: metadata.headerDescription
}), menu?.menuItems && menu?.currentPath && menu?.onNavigate ? /*#__PURE__*/ React__default.createElement(GenericHeadingMenubar, {
currentPath: menu.currentPath,
menuItems: menu.menuItems,
onNavigate: menu.onNavigate,
disabled: actions.isPendingAction
}, renderActions) : /*#__PURE__*/ React__default.createElement(LayoutActions, {
className: "flex justify-end item-send flex-wrap mt-0"
}, renderActions), /*#__PURE__*/ React__default.createElement("main", {
className: "w-full"
}, pageContent));
}
const PageComponent = ({ title, description, children, extraInfo, extraDescription, tabs, form, className, classNames })=>{
const content = form ?? children;
const ContentSection = /*#__PURE__*/ React__default.createElement("div", {
className: cn("w-full max-w-150 space-y-8 text-sm", classNames?.contentWrapper)
}, tabs && /*#__PURE__*/ React__default.createElement("div", {
className: cn("space-y-6", classNames?.tabsWrapper)
}, tabs, /*#__PURE__*/ React__default.createElement("div", null, extraInfo)), !tabs && extraInfo && /*#__PURE__*/ React__default.createElement("div", null, extraInfo), content);
const InfoSection = /*#__PURE__*/ React__default.createElement(React__default.Fragment, null, /*#__PURE__*/ React__default.createElement(SectionInfo, {
title: title,
description: description,
extraDescription: extraDescription,
className: classNames?.sectionInfo
}));
return /*#__PURE__*/ React__default.createElement(Container, {
className: cn(className, classNames?.container)
}, /*#__PURE__*/ React__default.createElement(ChildContainer, {
className: classNames?.childContainer
}, InfoSection, ContentSection));
};
const SectionInfo = ({ title = "Informações Básicas", description = "Veja informações sobre o Administrador de Fundo", className, extraDescription })=>{
return /*#__PURE__*/ React__default.createElement("section", {
className: cn("relative space-y-4 w-full lg:w-2/5", className)
}, /*#__PURE__*/ React__default.createElement("h2", {
className: "text-content-high text-2xl font-semibold"
}, title), /*#__PURE__*/ React__default.createElement("p", {
className: "text-content-medium text-base"
}, description, extraDescription));
};
const ShowDetails = ({ items, stepNavigator, className, children, ...props })=>{
return /*#__PURE__*/ React__default.createElement("section", {
className: cn("w-full", className),
...props
}, items && items.length > 0 && /*#__PURE__*/ React__default.createElement("div", {
className: "w-full"
}, items.map((item, index)=>{
const { isVisible, ...listItemProps } = item;
if (isVisible === false) {
return null;
}
return /*#__PURE__*/ React__default.createElement(ListItem, {
key: `${item.value}-${index}`,
...listItemProps
});
})), children, stepNavigator && /*#__PURE__*/ React__default.createElement(StepNavigator, {
...stepNavigator,
className: cn("mt-4", stepNavigator.className)
}));
};
const ShowNotFound = ({ title = "Administrador de Fundos não encontrado.", description = "Não foi possível encontrar o Administrador de Fundos solicitado." })=>{
return /*#__PURE__*/ React__default.createElement(Container, null, /*#__PURE__*/ React__default.createElement(ChildContainer, null, /*#__PURE__*/ React__default.createElement(SectionInfo, {
description: description
}), /*#__PURE__*/ React__default.createElement("section", {
className: "flex w-full max-w-[600px] items-center md:flex-[6]"
}, /*#__PURE__*/ React__default.createElement("div", {
className: "text-content-medium flex flex-wrap items-center gap-2 text-sm sm:text-base"
}, /*#__PURE__*/ React__default.createElement(TriangleAlert, {
className: "text-destructive h-5 w-5"
}), /*#__PURE__*/ React__default.createElement("span", null, title)))));
};
export { ChildContainer, Container, CrudCreatePage, CrudEditPage, CrudListPage, CrudShowPage, LayoutActions, ListItem, PageComponent, SectionInfo, ShowDetails, ShowNotFound };
//# sourceMappingURL=index.mjs.map