UNPKG

ivt

Version:

Ivt Components Library

288 lines (278 loc) 15.1 kB
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