@dashadmin/dash-admin 1.3.16 → 1.3.19
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/AppAsyncWrapper.js +1 -0
- package/dist/AppWrapper.js +1 -0
- package/dist/DASHAdmin.js +1 -0
- package/dist/DASHAdmin.tsx.old +456 -0
- package/dist/RoutingWrapper.js +1 -0
- package/dist/classes/DASHStorageClass.js +1 -0
- package/dist/components/Input/RichTextField.js +1 -0
- package/dist/components/Redirect.js +1 -0
- package/dist/components/avatar/Avatar.js +1 -0
- package/dist/components/avatar/SingleImageUploader.js +1 -0
- package/dist/components/currency/Format.js +1 -0
- package/dist/components/custom/Redirect.js +1 -0
- package/dist/components/error/Error.js +1 -0
- package/dist/components/geocoding/GeocodingField.js +1 -0
- package/dist/components/i18n/BridgedLocalesMenuButton.js +1 -0
- package/dist/components/i18n/LangSwitcher.js +1 -0
- package/dist/components/loader/GlobalLoader.js +1 -0
- package/dist/components/logs/LogFile.js +1 -0
- package/dist/components/logs/LogFileById.js +1 -0
- package/dist/components/logs/LogViewer.js +1 -0
- package/dist/components/menu/AppMenu.js +1 -0
- package/dist/components/menu/CustomMenuItemLink.js +1 -0
- package/dist/components/menu/DarkToggleMode.js +1 -0
- package/dist/components/menu/LanguageToggleMode.js +1 -0
- package/dist/components/misc/CustomImageInput.js +1 -0
- package/dist/components/misc/DASHGlobalErrorHandler.js +1 -0
- package/dist/components/misc/DarkModeSwitcher.js +1 -0
- package/dist/components/misc/LanguageSwitcher.js +1 -0
- package/dist/components/misc/MUIHtmlToolTip.js +1 -0
- package/dist/components/misc/MuiSimpleJsonTable.js +1 -0
- package/dist/components/misc/MultiLevelTable.js +1 -0
- package/dist/components/misc/NoResults.js +1 -0
- package/dist/components/misc/PDFViewer.js +1 -0
- package/dist/components/navigation/Breadcrumbs.js +1 -0
- package/dist/components/navigation/BreadcrumbsManager.js +1 -0
- package/dist/components/navigation/index.js +1 -0
- package/dist/components/panel/Error.js +1 -0
- package/dist/components/permission/AvailablePermissionsContext.js +1 -0
- package/dist/components/permission/PermissionsSelector.js +1 -0
- package/dist/components/permission/PermissionsSelectorList.js +1 -0
- package/dist/components/permission/tsx +0 -0
- package/dist/components/racustombuttons/CustomRAButton.js +1 -0
- package/dist/components/racustombuttons/QuickButton.js +1 -0
- package/dist/components/racustombuttons/QuickEditButton.js +1 -0
- package/dist/components/racustombuttons/QuickIconButton.js +1 -0
- package/dist/components/scrollbar/Scrollbar.js +1 -0
- package/dist/components/selects/MultiSelect.js +1 -0
- package/dist/components/selects/RASearchableSelect.js +1 -0
- package/dist/components/selects/RASearchableSelectChips.js +1 -0
- package/dist/components/selects/SearchableSelect.js +1 -0
- package/dist/components/subscription/BillingCycleSelectInput.js +1 -0
- package/dist/components/subscription/PlanAddonsSettings.js +1 -0
- package/dist/components/subscription/PlanAuditLog.js +1 -0
- package/dist/components/subscription/PlanFeaturesSettings.js +1 -0
- package/dist/components/subscription/PlanLimitsSettings.js +1 -0
- package/dist/components/subscription/PlanMetadataSettings.js +1 -0
- package/dist/components/subscription/PlanPricesSettings.js +1 -0
- package/dist/components/subscription/index.js +1 -0
- package/dist/components/svgelements/SvgLoading.js +1 -0
- package/dist/components/svgelements/SvgLogo.js +1 -0
- package/dist/components/svgelements/SvgLogoMin.js +1 -0
- package/dist/components/svgelements/SvgShipping.js +1 -0
- package/dist/components/tenant/AvailablePermissionsContext.js +0 -0
- package/dist/components/tenant/TenantAttributes.js +1 -0
- package/dist/components/tenant/TenantAttributesContext.js +1 -0
- package/dist/components/tenant/TenantSelector.js +1 -0
- package/dist/components/tenant/TenantSettings.js +1 -0
- package/dist/components/tenant/TenantSettingsContext.js +1 -0
- package/dist/components/tenant/TenantTheme.js +1 -0
- package/dist/components/user/AvatarComponent.js +1 -0
- package/dist/components/user/TenantAvatarComponent.js +1 -0
- package/dist/components/user/UserPreferences.js +1 -0
- package/dist/config/ACTIONS.js +1 -0
- package/dist/config/ConstantsService.js +1 -0
- package/dist/config/DASHAdminSystemConstants.js +1 -0
- package/dist/config/PARSERS.js +1 -0
- package/dist/contexts/DashQueryClientContext.js +1 -0
- package/dist/contexts/DashResourceContext.js +1 -0
- package/dist/contexts/I18nBridgeContext.js +1 -0
- package/dist/contexts/I18nBridgeSetter.js +1 -0
- package/dist/contexts/I18nReduxSync.js +1 -0
- package/dist/contexts/SubscriptionPlanFormatsProvider.js +1 -0
- package/dist/contexts/SystemRequestsCache.js +1 -0
- package/dist/contexts/auth/AuthContext.js +1 -0
- package/dist/contexts/auth/AuthContextLocalStorage.js +1 -0
- package/dist/contexts/auth/DASHAuthenticationService.js +1 -0
- package/dist/contexts/auth/WindowContext.js +1 -0
- package/dist/contexts/auth/index.js +1 -0
- package/dist/contexts/com/FCMContext.js +1 -0
- package/dist/contexts/com/LaravelEchoContext.js +1 -0
- package/dist/contexts/com/LaravelEchoMgr.js +1 -0
- package/dist/contexts/com/components/DefaultNotificationComponent.js +1 -0
- package/dist/contexts/com/components/NotificationAttributesTable.js +1 -0
- package/dist/contexts/com/components/NotificationRenderer.js +1 -0
- package/dist/contexts/com/components/NotificationsWidget.js +1 -0
- package/dist/contexts/com/components/notificationFormats.js +1 -0
- package/dist/contexts/com/useLaravelEcho.js +1 -0
- package/dist/contexts/dictionary/DictionaryContext.js +1 -0
- package/dist/declarations.d.ts +17 -0
- package/dist/default-theme/DASHAppProviders.js +1 -0
- package/dist/default-theme/DashThemeContext.js +1 -0
- package/dist/default-theme/DashThemeContext.tsx.fast +143 -0
- package/dist/default-theme/DashThemeContext.tsx.old +306 -0
- package/dist/default-theme/DashThemeHelperProvider.js +1 -0
- package/dist/default-theme/DomainAppLayout.js +1 -0
- package/dist/default-theme/DomainHeader.js +1 -0
- package/dist/default-theme/DomainTheme.js +1 -0
- package/dist/default-theme/FullLayoutMarkup.js +1 -0
- package/dist/default-theme/StaticLayout.js +1 -0
- package/dist/default-theme/index.js +1 -0
- package/dist/default-theme/menu/AppMaterialMenu.js +1 -0
- package/dist/default-theme/menu/AppMenuComponents/SubmenuPortal.js +1 -0
- package/dist/default-theme/menu/AppMenuComponents/collapsed/CollapsedSidebarItem.js +1 -0
- package/dist/default-theme/menu/AppMenuComponents/collapsed/CollapsedSidebarItems.js +1 -0
- package/dist/default-theme/menu/AppMenuComponents/expanded/CollapsableSidebarMenu.js +1 -0
- package/dist/default-theme/menu/AppMenuComponents/expanded/SidebarItem.js +1 -0
- package/dist/default-theme/menu/AppMenuComponents/getItem.js +1 -0
- package/dist/default-theme/menu/AppMenuComponents/interfaces.js +0 -0
- package/dist/default-theme/menu/AppMenuComponents/submenuConstants.js +1 -0
- package/dist/default-theme/menu/AppSidebarMaterial.js +1 -0
- package/dist/default-theme/menu/SidebarActions.js +1 -0
- package/dist/default-theme/updateDomCssVariables.js +1 -0
- package/dist/helpers/checkRole.js +1 -0
- package/dist/helpers/parseAxiosError.js +2 -0
- package/dist/hooks/audio/useAudio.js +1 -0
- package/dist/hooks/axios.js +1 -0
- package/dist/hooks/data/useDashboardStats.js +1 -0
- package/dist/hooks/data/usePackageByClientsStats.js +1 -0
- package/dist/hooks/data/usePackageByCommunesStats.js +1 -0
- package/dist/hooks/data/usePackageStats.js +1 -0
- package/dist/hooks/data/usePackageWithdrawDetails.js +1 -0
- package/dist/hooks/data/useStats.js +1 -0
- package/dist/hooks/isCurrentPath.js +1 -0
- package/dist/hooks/notifications/WSMessagesManager.js +1 -0
- package/dist/hooks/notifications/WSPusherManager.js +1 -0
- package/dist/hooks/useBreadcrumbs.js +1 -0
- package/dist/hooks/useClickOutside.js +1 -0
- package/dist/hooks/useFormPersistance.js +1 -0
- package/dist/hooks/useGlobalErrorMediator.js +1 -0
- package/dist/hooks/useGlobalLoaderMgr.js +1 -0
- package/dist/hooks/useHash.js +1 -0
- package/dist/hooks/useLocalStorage.js +1 -0
- package/dist/hooks/usePolyglotTranslation.js +1 -0
- package/dist/hooks/usePrevious.js +1 -0
- package/dist/hooks/usePrintSelected.js +1 -0
- package/dist/hooks/useVirtualHash.js +1 -0
- package/dist/hooks/window/useWindowSize.js +1 -0
- package/dist/interfaces/IAppResourceConfig.js +0 -0
- package/dist/interfaces/Log.js +0 -0
- package/dist/interfaces/Tenant.js +0 -0
- package/dist/interfaces/communication/IActions.js +0 -0
- package/dist/interfaces/communication/INotification.js +0 -0
- package/dist/interfaces/communication/IPayload.js +0 -0
- package/dist/interfaces/communication/IRequestAction.js +0 -0
- package/dist/interfaces/communication/IRequestPayload.js +0 -0
- package/dist/interfaces/communication/IResponseAction.js +0 -0
- package/dist/interfaces/misc/IAny.js +0 -0
- package/dist/interfaces/misc/IFlashMessage.js +0 -0
- package/dist/interfaces/navigation/IAppMenu.js +0 -0
- package/dist/interfaces/navigation/ICollapsableSidebarMenu.js +0 -0
- package/dist/interfaces/navigation/IMenuItem.js +0 -0
- package/dist/interfaces/notifications/IModel.js +0 -0
- package/dist/interfaces/notifications/IModelField.js +0 -0
- package/dist/interfaces/notifications/IUserNotification.js +0 -0
- package/dist/interfaces/notifications/IUserNotificationData.js +0 -0
- package/dist/interfaces/notifications/IUserNotificationPayload.js +0 -0
- package/dist/interfaces/user/IGetAuth.js +0 -0
- package/dist/interfaces/user/ITenantSettings.js +0 -0
- package/dist/interfaces/user/IUser.js +0 -0
- package/dist/interfaces/user/IUserSettings.js +0 -0
- package/dist/interfaces.js +1 -0
- package/dist/layout/AppLayout.js +1 -0
- package/dist/layout/ApplicationLayout.js +1 -0
- package/dist/layout/MotionWrapper.js +1 -0
- package/dist/layout/MotionWrapper.original.js +1 -0
- package/dist/layout/ResourceMenu.js +1 -0
- package/dist/layout/ResoureLayout.js +1 -0
- package/dist/layout/TransitionWrapper.js +24 -0
- package/dist/pages/ChangePassword.js +1 -0
- package/dist/pages/DASHLanding.js +1 -0
- package/dist/pages/DASHLightWeightLogin.js +1 -0
- package/dist/pages/DASHSimpleLogin.js +1 -0
- package/dist/pages/Login.js +1 -0
- package/dist/pages/Profile.js +1 -0
- package/dist/pages/RecoverPassword.js +1 -0
- package/dist/pages/SingleImageUploader.js +1 -0
- package/dist/pages/VerifyAccount.js +1 -0
- package/dist/providers/authProvider.js +1 -0
- package/dist/providers/dataProvider.js +1 -0
- package/dist/providers/i18n/en.js +1 -0
- package/dist/providers/i18n/es.js +1 -0
- package/dist/providers/i18n/languages.js +1 -0
- package/dist/providers/i18nProvider.js +1 -0
- package/dist/react-admin-dash/RADashComponent.js +1 -0
- package/dist/react-admin-dash/Resource.js +1 -0
- package/dist/resources/Brand/BrandResource.js +1 -0
- package/dist/resources/DASHResourceLoader.js +1 -0
- package/dist/resources/Log/LogResource.js +1 -0
- package/dist/resources/Tenant/ImpersonateTenantResource.js +1 -0
- package/dist/resources/Trash/TrashTemplate.js +1 -0
- package/dist/resources.js +1 -0
- package/dist/schemas/log.js +1 -0
- package/dist/schemas/notification.js +1 -0
- package/dist/schemas/permissions.js +1 -0
- package/dist/schemas/roles.js +1 -0
- package/dist/schemas/rolesDataGrid.js +1 -0
- package/dist/schemas/subscription/components/SubscriptionActions.js +1 -0
- package/dist/schemas/subscription/components/SubscriptionPaymentHistory.js +1 -0
- package/dist/schemas/subscription/components/SubscriptionPlanFeatures.js +1 -0
- package/dist/schemas/subscription/components/SubscriptionPlanPreview.js +1 -0
- package/dist/schemas/subscription/components/SubscriptionPlanStats.js +1 -0
- package/dist/schemas/subscription/components/SubscriptionStatusIndicator.js +1 -0
- package/dist/schemas/subscription/subscriptionPlanSchema.js +1 -0
- package/dist/schemas/subscription/subscriptionSchema.js +1 -0
- package/dist/schemas/subscriptionPlan.js +1 -0
- package/dist/schemas/tenant.js +1 -0
- package/dist/schemas/tenantUser.js +1 -0
- package/dist/schemas/tenant_superadmin.js +1 -0
- package/dist/schemas/user.js +1 -0
- package/dist/systemResources.js +1 -0
- package/dist/systemResources.old.js +1 -0
- package/dist/templates/ResourceTemplate.js +1 -0
- package/dist/templates/ResourceTemplate.tsx.memoized_experiment +350 -0
- package/dist/templates/ResourceTemplate.tsx.original +396 -0
- package/dist/templates/ResourceTemplateCreate.js +1 -0
- package/dist/templates/ResourceTemplateEdit.js +1 -0
- package/dist/templates/ResourceTemplateFull.js +1 -0
- package/dist/templates/ResourceTemplateList.js +1 -0
- package/dist/templates/ResourceTemplateOld.tsx.bkup +567 -0
- package/dist/templates/ResourceTemplateShow.js +1 -0
- package/dist/templates/TrashTemplate.js +1 -0
- package/dist/tenantResources.js +1 -0
- package/dist/test_portal_bubbles.js +1 -0
- package/dist/theme/AppHeader.js +1 -0
- package/dist/theme/AppLayoutSetting.js +1 -0
- package/dist/theme/AppLogo.js +1 -0
- package/dist/theme/AppSidebar.js +1 -0
- package/dist/theme/AppSidebarContent.js +1 -0
- package/dist/theme/AppSidebarLogo.js +1 -0
- package/dist/theme/components/PageTitle.js +1 -0
- package/dist/utils/cache/CacheInvalidatorContext.js +1 -0
- package/dist/utils/cache/CacheInvalidatorListenerComponent.js +1 -0
- package/dist/utils/cache/useCacheInvalidatorListener.js +1 -0
- package/dist/utils/convertFileToBase64.js +1 -0
- package/dist/utils/convertToFile.js +1 -0
- package/dist/utils/cookies.js +1 -0
- package/dist/utils/dashDefaultQueryClient.js +1 -0
- package/dist/utils/dataUrlToBlob.js +1 -0
- package/dist/utils/deepReplace.js +1 -0
- package/dist/utils/getProfileMenu.js +1 -0
- package/dist/utils/getTenantSettings.js +1 -0
- package/dist/utils/getType.js +1 -0
- package/dist/utils/getUserSettings.js +1 -0
- package/dist/utils/hasCode.js +1 -0
- package/dist/utils/index.js +1 -0
- package/dist/utils/injectTenantStyles.js +1 -0
- package/dist/utils/isComponent.js +1 -0
- package/dist/utils/navEvents.js +1 -0
- package/dist/utils/prototypes.js +1 -0
- package/dist/utils/regexp.js +1 -0
- package/dist/utils/resolveObjectPath.js +1 -0
- package/dist/utils/setNativeValue.js +1 -0
- package/dist/utils/slugify.js +1 -0
- package/dist/utils/validators/emailValidator.js +1 -0
- package/dist/utils/validators/requiredValidator.js +1 -0
- package/dist/utils/validators/rutValidator.js +1 -0
- package/dist/utils/validators.js +1 -0
- package/package.json +13 -2
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import e from"ra-language-spanish";const a={ra:{action:{add:"A\xF1adir",add_filter:"A\xF1adir filtro",back:"Ir atr\xE1s",bulk_actions:"1 item seleccionado |||| %{smart_count} items seleccionados",cancel:"Cancelar",clear_input_value:"Limpiar valor",clone:"Clonar",close:"Cerrar",close_menu:"Cerrar men\xFA",confirm:"Confirmar",create:"Crear",create_item:"Crear %{item}",delete:"Eliminar",edit:"Editar",expand:"Expandir",export:"Exportar",list:"Listar",move_up:"Mover arriba",move_down:"Mover abajo",open_menu:"Abrir men\xFA",refresh:"Refrescar",remove:"Borrar",remove_filter:"Borrar filtro",save:"Guardar",search:"Buscar",select_all:"Seleccionar todo",select_row:"Seleccionar esta fila",show:"Mostrar",sort:"Ordenar",undo:"Deshacer",unselect:"Deseleccionar",update:"Actualizar"},auth:{auth_check_error:"Por favor inicie sesi\xF3n para continuar",logout:"Cerrar Sesi\xF3n",password:"Contrase\xF1a",sign_in:"Acceder",sign_in_error:"La autenticaci\xF3n fall\xF3, por favor, vuelva a intentarlo",user_menu:"Perfil",username:"Usuario"},boolean:{true:"S\xED",false:"No",null:" "},input:{file:{upload_several:"Arrastre algunos archivos para subir o haga clic para seleccionarlos.",upload_single:"Arrastre un archivo para subir o haga clic para seleccionarlo."},image:{upload_several:"Arrastre algunas imag\xE9nes para subir o haga clic para seleccionarlas.",upload_single:"Arrastre alguna imagen para subir o haga clic para seleccionarla."},references:{all_missing:"No se pueden encontrar datos de referencias.",many_missing:"Al menos una de las referencias asociadas parece no estar disponible.",single_missing:"La referencia asociada no parece estar disponible."},password:{toggle_visible:"Ocultar contrase\xF1a",toggle_hidden:"Mostrar contrase\xF1a"}},message:{about:"Acerca de",are_you_sure:"\xBFEst\xE1 seguro?",bulk_delete_content:"\xBFSeguro que quiere eliminar este %{name}? |||| \xBFSeguro que quiere eliminar estos %{smart_count} items?",bulk_delete_title:"Eliminar %{name} |||| Eliminar %{smart_count} %{name} items",bulk_update_content:"\xBFSeguro que quiere actualizar este %{name}? |||| \xBFSeguro que quiere actualizar estos %{smart_count} items?",bulk_update_title:"Actualizar %{name} |||| Actualizar %{smart_count} %{name} items",delete_content:"\xBFSeguro que quiere eliminar este item?",delete_title:"Eliminar %{name} #%{id}",details:"Detalles",error:"Se produjo un error en el cliente y su solicitud no se pudo completar",invalid_form:"El formulario no es v\xE1lido. Por favor verifique si hay errores",loading:"La p\xE1gina se est\xE1 cargando, espere un momento por favor",no:"No",not_found:"O bien escribi\xF3 una URL incorrecta o sigui\xF3 un enlace incorrecto.",yes:"S\xED",unsaved_changes:"Algunos de sus cambios no se guardaron. \xBFEst\xE1 seguro que quiere ignorarlos?"},navigation:{next:"Siguiente",no_more_results:"El n\xFAmero de p\xE1gina %{page} est\xE1 fuera de los l\xEDmites. Pruebe la p\xE1gina anterior.",no_results:"No se han encontrado resultados",page_out_from_begin:"No puede ir antes de la p\xE1gina 1",page_out_from_end:"No puede ir despu\xE9s de la \xFAltima p\xE1gina",page_out_of_boundaries:"N\xFAmero de p\xE1gina %{page} fuera de los l\xEDmites",page_range_info:"%{offsetBegin} - %{offsetEnd} de %{total}",page_rows_per_page:"Filas por p\xE1gina:",prev:"Anterior",skip_nav:"Saltar al contenido"},sort:{sort_by:"Ordenar por %{field} %{order}",asc:"ascendente",desc:"descendente",DESC:"descendente",ASC:"ascendente"},notification:{bad_item:"Elemento incorrecto",canceled:"Acci\xF3n cancelada",created:"Elemento creado",data_provider_error:"Error del proveedor de datos. Consulte la consola para m\xE1s detalles.",deleted:"Elemento borrado |||| %{smart_count} elementos borrados.",http_error:"Error de comunicaci\xF3n con el servidor",item_doesnt_exist:"El elemento no existe",logged_out:"Su sesi\xF3n ha finalizado, vuelva a conectarse.",updated:"Elemento actualizado |||| %{smart_count} elementos actualizados",i18n_error:"No se pudieron cargar las traducciones para el idioma especificado",not_authorized:"No tiene autorizaci\xF3n para acceder a este recurso."},page:{create:"Crear %{name}",dashboard:"Tablero",edit:"%{name} #%{id}",empty:"No existen %{name} todav\xEDa.",error:"Algo sali\xF3 mal",invite:"\xBFQuiere agregar uno?",list:"Lista de %{name}",loading:"Cargando",not_found:"No encontrado",show:"%{name} #%{id}"},validation:{email:"Debe ser un correo electr\xF3nico v\xE1lido",maxLength:"Debe contener %{max} caracteres o menos",maxValue:"Debe ser %{max} o menos",minLength:"Debe contener %{min} caracteres al menos",minValue:"Debe ser al menos %{min}",number:"Debe ser un n\xFAmero",oneOf:"Debe ser uno de: %{options}",regex:"Debe coincidir con un formato espec\xEDfico (regexp): %{pattern}",required:"Requerido"}},simple:{action:{close:"Cerrar",resetViews:"Resetear"},"create-post":"Neuvo Post"},resources:{posts:{name:"Post |||| Posts",fields:{average_note:"Nota promedio",body:"Contenido",comments:"Comentarios",commentable:"Comentable",commentable_short:"Com.",created_at:"Creado el",notifications:"Destinatarios de notificaciones",nb_view:"Num vistas",password:"Contrase\xF1a (si el post est\xE1 protegido)",pictures:"Im\xE1genes relacionadas",published_at:"Publicado el",teaser:"Avance",tags:"Etiquetas",title:"T\xEDtulo",views:"Vistas",authors:"Autores"}},comments:{name:"Comentario |||| Comentarios",fields:{body:"Contenido",created_at:"Creado el",post_id:"Posts",author:{name:"Autor"}}},users:{name:"Usuario |||| Usuarios",fields:{name:"Nombre",role:"Rol"}}},post:{list:{search:"Buscar"},form:{summary:"Resumen",body:"Contenido",miscellaneous:"Otros",comments:"Comentarios"},edit:{title:'Post "%{title}"'},action:{save_and_edit:"Guardar y Editar",save_and_add:"Guardar y A\xF1adir",save_and_show:"Guardar y Mostrar",save_with_average_note:"Guardar con Nota"}},comment:{list:{about:"Acerca de"}},user:{list:{search:"Buscar"},form:{summary:"Resumen",security:"Seguridad"},edit:{title:'Usuario "%{title}"'},action:{save_and_add:"Guardar y A\xF1adir",save_and_show:"Guardar y Mostrar"}},tab:{tabs:"Cuentas",kitchen_tabs:"\xD3rdenes de Cocina",action:{cancel:"Cancelar",confirm:"Confirmar",print:"Imprimir",pay:"Pagar",close:"Cerrar"},status:{created:"Creada",confirmed:"Confirmada",preparing:"Preparando",ready:"Lista",delivered:"Entregada",completed:"Completada",cancelled:"Cancelada"}},kiosk:{total:"Total",clear_cart:"Vaciar Carrito",view_order:"Ver Pedido",add_items_to_start:"Agrega productos para comenzar",prev:"Ant",next:"Sig",page_of:"P\xE1gina %{current} de %{total} \u2022 %{items} productos",products:"Productos",customizable:"Personalizable",no_products_found:"No se encontraron productos en esta categor\xEDa",your_order:"Tu Pedido",cart_empty:"Tu carrito est\xE1 vac\xEDo",browse_menu:"Ver Men\xFA",note:"Nota",order_options:"Opciones del Pedido",delivery_method:"M\xE9todo de Entrega",table_number:"N\xFAmero de Mesa",your_name:"Tu Nombre (Opcional)",special_instructions:"Instrucciones Especiales (Opcional)",cancel_order:"Cancelar Pedido",confirm_order:"Confirmar Pedido",submitting:"Enviando...",select_multiple:"Selecciona varios",required:"*Requerido",cancel:"Cancelar",add_to_order:"Agregar al Pedido",order_confirmed:"\xA1Pedido Confirmado!",thank_you:"Gracias por tu pedido. Por favor espera a que llamen tu n\xFAmero.",your_order_number:"Tu N\xFAmero de Pedido",status:"Estado",start_new_order:"Iniciar Nuevo Pedido",auto_reset_notice:"Esta pantalla se reiniciar\xE1 autom\xE1ticamente en 30 segundos",loading:"Cargando..."},resource:{groups:{system_resources:"Recursos de Sistema",products:"Productos",integrations:"Integraciones",configuration:"Configuraci\xF3n",campaigns:"Campa\xF1as",import_export:"Import/Export",cashier:"Caja"},system:{tenants:{label:"Clientes",menu_list:"Clientes",menu_trash:"Papelera",main_action:"Crear cliente",filter_name:"Nombre"},roles:{label:"Roles",menu_list:"Roles",main_action:"Agregar Rol",filter_name:"Nombre"},users:{label:"Usuarios",menu_list:"Usuarios",menu_trash:"Papelera",main_action:"Crear usuario",filter_search:"Buscar"}},ecommerce:{products:{label:"Productos",menu_list:"Productos",menu_trash:"Papelera",main_action:"Crear Producto",filter_name:"Nombre",filter_description:"Descripci\xF3n",filter_sku:"SKU",filter_categories:"Categor\xEDas",filter_status:"Estado",filter_is_pack:"Es Pack"},categories:{label:"Categor\xEDas",menu_list:"Listado de categor\xEDas",main_action:"Crear categor\xEDa",filter_name:"Nombre"},brands:{label:"Marcas",menu_list:"Listado de Marcas",main_action:"Crear marca"},galleries:{label:"Galer\xEDas",menu_list:"Listado de galer\xEDas",main_action:"Crear galer\xEDa",filter_name:"Nombre"},currencies:{label:"Monedas",menu_list:"Listado de monedas",main_action:"Crear moneda"},pricelists:{label:"Lista de Precio",menu_list:"Lista de Precios",main_action:"Crear lista de precio"},modifiers:{label:"Grupos de Modificadores",menu_list:"Listado de modificadores",main_action:"Crear grupo de modificadores",filter_name:"Nombre",filter_selection_mode:"Modo de selecci\xF3n",filter_is_active:"Activo"},stock_types:{label:"Tipo de Stock",menu_list:"Tipos de Stock",main_action:"Crear Tipo de Stock"},marketplaces:{label:"Marketplaces",menu_list:"Ver Marketplaces",main_action:"Agregar Marketplace"},point_of_sale:{label:"Puntos de Venta",menu_list:"Ver Puntos de Venta",main_action:"Agregar Punto de Venta"},tenant_data:{label:"Datos",menu_list:"Cliente M\xF3dulo Ecommerce"},users:{label:"Usuarios"}},campaigns:{label:"Campa\xF1as",menu_list:"Listado de Campa\xF1as",main_action:"Crear",filter_name:"Nombre"},import:{templates:{label:"Plantillas de importaci\xF3n",menu_list:"Plantillas",main_action:"Crear Plantilla"},instances:{label:"Importar Productos",menu_list:"Importaciones",main_action:"Crear Importaci\xF3n"}},mall:{label:"Centro Comercial",menu_list:"Listado",main_action:"Crear Centro Comercial"},cashcount:{label:"Arqueos de Caja",menu_list:"Arqueos de Caja",main_action:"Nuevo Arqueo",filter_status:"Estado",filter_period_start:"Per\xEDodo Desde",filter_period_end:"Per\xEDodo Hasta"}},mall:{all_stores:"Todas las Tiendas",select_store:"Selecciona una tienda",all:"Todos",request_assistance:"Solicitar Asistencia",assistance_sent:"Solicitud de asistencia enviada",assistance_error:"Error al enviar solicitud de asistencia",select_store_first:"Selecciona una tienda primero",assistance_requested:"Asistencia solicitada",assistance_rate_limit:"Has solicitado asistencia recientemente, espera un momento",search_products:"Buscar productos...",no_products_found:"No se encontraron productos",try_different_store_or_search:"Intenta seleccionar otra tienda o ajustar tu b\xFAsqueda",featured:"Destacado",add:"Agregar",display_mode:"Vista",horizontal_pagination:"Mostrar productos en p\xE1ginas",infinite_scroll:"Mostrar todos los productos en scroll",pages:"P\xE1ginas",scroll:"Scroll",prev:"Ant",next:"Sig",cart_empty:"Tu carrito est\xE1 vac\xEDo",view_cart:"Ver Carrito",item:"producto",items:"productos",stores:"tiendas",your_order:"Tu Pedido",add_products_to_continue:"Agrega productos para continuar",unknown_store:"Tienda Desconocida",clear_cart:"Vaciar Carrito",total:"Total",confirm_order:"Confirmar Pedido",submit_order:"Enviar Pedido",submitting_order:"Enviando...",continue_shopping:"Seguir Comprando",product_added:"Producto agregado al carrito",product_added_with_name:"%{name} agregado al carrito",product_updated:"Producto actualizado",edit_item:"Editar producto",remove_item:"Eliminar producto",update_item:"Actualizar",add_to_cart:"Agregar al Carrito",required:"Requerido",select_up_to:"Selecciona hasta %{count}",special_instructions:"Instrucciones especiales",special_instructions_placeholder:"Ej: sin cebolla, extra salsa, etc.",all_products:"Todos los Productos",has_modifiers:"Personalizable",no_more_products:"No hay m\xE1s productos"}};var o={...e,...a};export{o as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import e from"./en";import s from"./es";const t=e,m=s;export{t as en,m as es};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{resolveBrowserLocale as o}from"react-admin";import a from"ra-i18n-polyglot";import r from"./i18n/en";import l from"./i18n/es";const e={es:l,en:r},m=[{locale:"en",name:"English"},{locale:"es",name:"Espa\xF1ol"}];var c=a(s=>e[s]?e[s]:e.es,o(),m,{allowMissing:!0});export{c as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{useEffect as u}from"react";import{dashStorage as i}from"@dashadmin/dash-utils";function B({location:s,resourceDefinitions:r,reduxState:t,authContext:n,identity:g,identityLoading:h,dialog:m,navigate:p}){u(()=>{const e={timestamp:new Date().toISOString(),location:{pathname:s.pathname,search:s.search,hash:s.hash,state:s.state,key:s.key},reactAdminResources:Object.keys(r||{}),resourceDefinitionsDetails:r,reduxResources:t.resources.map(c=>({model:c.model,label:c.label,roles:c.roles,group:c.group})),authContext:{authenticated:n.authenticated,user:n.user?{id:n.user.id,roles:n.user.roles,tenant_id:n.user.tenant_id}:null},localStorage:{currentAppPath:i.getItem("currentAppPath"),currentMallSlug:i.getItem("currentMallSlug"),currentMallPath:i.getItem("currentMallPath"),tenant_id:i.getItem("tenant_id"),userData:i.getItem("userData")},windowLocation:{href:window.location.href,origin:window.location.origin,pathname:window.location.pathname,search:window.location.search,hash:window.location.hash}};console.group("\u{1F50D} RADashComponent Route Debug"),console.log("\u{1F4CD} Current Location:",e.location),console.log("\u{1F310} Window Location:",e.windowLocation),console.log("\u{1F4E6} React Admin Resources:",e.reactAdminResources),console.log("\u{1F4CB} Resource Definitions:",e.resourceDefinitionsDetails),console.log("\u{1F3EA} Redux Resources:",e.reduxResources),console.log("\u{1F510} Auth Context:",e.authContext),console.log("\u{1F4BE} Local Storage:",e.localStorage);const o=s.pathname,l=t.resources.filter(c=>{const w=c.model;return o.includes(w)||w==="/"&&o==="/"});console.log("\u{1F3AF} Matching Resources for current path:",l);const d=o.split("/").filter(Boolean);console.log("\u{1F4C2} Path Segments:",d);const a=[];t.resources.length===0&&a.push("No resources loaded in Redux state"),Object.keys(r||{}).length===0&&a.push("No React Admin resource definitions found"),l.length===0&&o!=="/"&&a.push(`No resources match current path: ${o}`),!n.authenticated&&t.resources.some(c=>!c.roles?.includes("Public"))&&a.push("User not authenticated but trying to access protected resources"),a.length>0&&console.warn("\u26A0\uFE0F Potential Routing Issues:",a),console.groupEnd(),window.__DASH_DEBUG__={...window.__DASH_DEBUG__,lastRouteDebug:e,routingIssues:a}},[s,r,t,n]),u(()=>{console.group("\u{1F4E6} Resource Definitions Changed"),console.log("Available Resources:",Object.keys(r||{})),console.log("Resource Details:",r),console.groupEnd()},[r]),u(()=>{console.group("\u{1F510} Auth Context Changed"),console.log("Authenticated:",n.authenticated),console.log("User:",n.user),console.log("Identity Loading:",h),console.log("Identity:",g),console.groupEnd()},[n.authenticated,n.user,h,g]),u(()=>{const e=o=>{console.error("\u{1F6A8} Global Axios Error:",o.data),m({variant:"danger",title:o.data?.name||"Error",content:o.data?.message||"Error desconocido",confirmText:"Volver",closeText:"Cerrar",onConfirm:()=>{},onClose:()=>{}})};return window.addEventListener("global-axios-error",e),()=>{window.removeEventListener("global-axios-error",e)}},[m]),u(()=>{const e=o=>{console.error("\u{1F6A8} React Admin Error:",o),(o.message?.includes("404")||o.message?.includes("not found"))&&(console.group("\u{1F50D} Route Not Found Debug"),console.log("Current path:",s.pathname),console.log("Available resources:",Object.keys(r||{})),console.log("Redux resources:",t.resources.map(l=>l.model)),console.log("Suggested fixes:"),console.log("1. Check if resource model matches the URL path"),console.log("2. Verify resource permissions/roles"),console.log("3. Ensure resource is properly registered"),console.groupEnd())};return window.addEventListener("error",e),window.addEventListener("unhandledrejection",o=>{e(o.reason)}),()=>{window.removeEventListener("error",e),window.removeEventListener("unhandledrejection",e)}},[s.pathname,r,t.resources]),u(()=>{window.__DASH_DEBUG__={...window.__DASH_DEBUG__,analyzeCurrentRoute:()=>{console.group("\u{1F50D} Manual Route Analysis"),console.log("Current pathname:",s.pathname),console.log("React Admin resources:",Object.keys(r||{})),console.log("Redux resources:",t.resources);const o=s.pathname.replace(/^\//,"").split("/").filter(Boolean);console.log("Path segments:",o),t.resources.forEach(l=>{const d=l.model.replace(/^\//,""),a=o[0]===d||l.model==="/"&&s.pathname==="/";console.log(`Resource "${l.model}" matches:`,a,{resourceModel:d,firstPathSegment:o[0],roles:l.roles,authenticated:n.authenticated})}),console.groupEnd()},navigateToResource:e=>{console.log(`Navigating to resource: ${e}`),p(`/${e}`)}}},[s,r,t,n,p])}const R=()=>null;var M=R;export{M as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{jsx as t,jsxs as C}from"react/jsx-runtime";import{isValidElement as d}from"react";import{Route as i,Routes as P}from"react-router-dom";import{isValidElementType as f}from"react-is";import{ResourceContextProvider as y,RestoreScrollPosition as E}from"react-admin";const u=e=>{const{create:o,edit:r,list:s,name:l,show:n}=e;return t(y,{value:l,children:C(P,{children:[o?t(i,{path:"create/*",element:a(o)}):null,n?t(i,{path:":id/show/*",element:a(n)}):null,r?t(i,{path:":id/*",element:a(r)}):null,s?t(i,{path:"/*",element:t(E,{storeKey:`${l}.list.scrollPosition`,children:a(s)})}):null]})})},a=e=>d(e)?e:f(e)?t(e,{}):null;u.raName="Resource",u.registerResource=({create:e,edit:o,icon:r,list:s,name:l,options:n,show:c,recordRepresentation:m,hasCreate:p,hasEdit:R,hasShow:h})=>({name:l,options:n,hasList:!!s,hasCreate:!!e||!!p,hasEdit:!!o||!!R,hasShow:!!c||!!h,icon:r,recordRepresentation:m});export{u as Resource};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{Fragment as E,jsx as e,jsxs as s}from"react/jsx-runtime";import{Resource as n,TabbedShowLayout as u}from"react-admin";import{Show as p}from"react-admin";import i from"../../layouts/ApplicationLayout";import{useNotify as f}from"react-admin";import{useRedirect as l}from"react-admin";import{useDialog as h}from"../../components/Dialog/DialogService";import{TopToolbar as b}from"react-admin";import{EditButton as d}from"react-admin";import{CustomRoutes as C}from"react-admin";import S from"../Trash/TrashTemplate";import A from"@dashadmin/dash-auto-admin/AutoCreate";import g from"@dashadmin/dash-auto-admin/AutoEdit";import y from"@dashadmin/dash-auto-admin/DashAutoList";import R from"@dashadmin/dash-auto-admin/AutoReferenceTab";import T from"@dashadmin/dash-auto-admin/AutoTabs";import{AutoTitle as w}from"@dashadmin/dash-auto-admin";const L=o=>{const a=r=>(r.input_brand_mappings=r.input_brand_mappings.map(t=>t.text),r);return s(E,{children:[e(C,{children:S(o)}),e(n,{options:{label:o.label,group:o.group},name:o.model,list:()=>e(i,{resourceConfig:o,children:e(y,{resourceConfig:o})}),edit:()=>e(i,{resourceConfig:o,children:e(g,{beforeSubmit:a,resourceConfig:o})}),create:()=>{const r=f(),t=l(),c=h();return e(i,{resourceConfig:o,children:e(A,{beforeSubmit:a,onError:m=>{r("Error!")},onSubmit:m=>{r("Recurso Creado",{type:"success"}),c({variant:"info",title:"Recurso Creado",description:"Se ha creado el recurso "+o.label,onConfirm:()=>{t("/"+o.model)},onClose:()=>{}})},resourceConfig:o})})},show:()=>{const r=({edit:t})=>e(b,{sx:{mb:2},children:t!==!1&&e(d,{})});return e(i,{resourceConfig:o,children:e(p,{title:e(w,{resourceConfig:o}),children:s(u,{children:[T(o.schema),o.references&&o.references.map(t=>R(t))]})})})},icon:o.icon})]})};var X=L;export{L as BrandResource,X as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
let s=null;const m=()=>{s=null},d=()=>s,c=async t=>{const o=[];return(await Promise.all(t.map(async e=>{try{const r=await import(e.path);return{name:e.name,module:r.default||r}}catch(r){return console.error(`Failed to load resource "${e.name}" from "${e.path}":`,r),null}}))).forEach(e=>{e&&e.module&&(Array.isArray(e.module)?o.push(...e.module):o.push(e.module))}),o},i=async t=>{try{const o=await import(t);return o.default||o}catch(o){return console.error(`Failed to load manifest from "${t}":`,o),[]}},u=(t={})=>{const{manifestPath:o,enableCache:n=!0,customManifest:e}=t;return async()=>{if(n&&s)return s;let r;if(e)r=e;else if(o)r=await i(o);else return console.warn("No manifest path or custom manifest provided to resource loader"),[];const a=await c(r);return n&&(s=a),a}},h=u({manifestPath:"@app/resourceManifest.json"});var p=u;export{m as clearResourceCache,u as createDASHResourceLoader,p as default,d as getCachedResources,h as getDASHResources,i as loadManifest,c as loadResourcesFromManifest};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{Fragment as w,jsx as e,jsxs as s}from"react/jsx-runtime";import{Resource as a,TabbedShowLayout as i}from"react-admin";import{Show as n}from"react-admin";import{TopToolbar as m}from"react-admin";import{EditButton as c}from"react-admin";import{CustomRoutes as p}from"react-admin";import u from"../Trash/TrashTemplate";import{DashAutoList as h,DashAutoReferenceTab as l,DashAutoTabs as f,DashAutoTitle as A}from"@dashadmin/dash-auto-admin";import r from"../../layout/ApplicationLayout";const b=o=>s(w,{children:[e(p,{children:u(o)}),e(a,{options:{label:o.label,group:o.group},name:o.model,list:()=>e(r,{resourceConfig:o,children:e(h,{resourceConfig:o})}),show:()=>e(r,{resourceConfig:o,children:e(n,{title:e(A,{resourceConfig:o}),actions:e(({edit:t})=>e(m,{sx:{mb:2},children:t!==!1&&e(c,{})}),{edit:o.edit}),children:s(i,{children:[f(o),o.references&&o.references.map(t=>l(t))]})})}),icon:o.icon})]});var k=b;export{b as LogResource,k as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{jsx as e,jsxs as a}from"react/jsx-runtime";import{ReferenceField as d,Resource as f,TextField as C}from"react-admin";import{useState as T}from"react";import{SaveButton as g}from"react-admin";import{Toolbar as I}from"react-admin";import{SimpleForm as b}from"react-admin";import{Create as A}from"react-admin";import{ReferenceInput as R}from"react-admin";import{AutocompleteInput as y}from"react-admin";import{setCookie as S,getCookie as i}from"../../utils/cookies";import F from"../../layout/ApplicationLayout";import{Alert as _,Card as v}from"@mui/material";import{Route as h}from"react-router";import{dashStorage as w}from"@dashadmin/dash-utils";const x=n=>{const{children:o,...l}=n,[r,m]=T(null),s=t=>e(I,{...t,children:e(g,{alwaysEnable:!0})}),p=()=>({}),c=t=>{w.setItem("tenant_id",r),S("tenant_id",r,null),window.location.reload()};return e(v,{title:"Impersonar Tenant",children:a(b,{toolbar:e(s,{...l}),validate:p,noValidate:!0,onSubmit:c,children:["Cliente:",e(R,{label:"Tenant",source:"id",reference:"system/tenant",children:e(y,{filterToQuery:t=>({q:t}),optionValue:"id",optionText:"name",onChange:(t,u)=>{m(u.id)}})}),a(_,{severity:"info",children:["Cliente impersonado: ",i("tenant_id")&&e(d,{label:"Tenant",source:"id",reference:"system/tenant",record:{id:i("tenant_id")},children:e(C,{source:"name"})})]})]})})},k=n=>{const o={...n,mainAction:null,create:!1,edit:!1,view:!1};return e(h,{path:o.model+"/impersonate",element:e(f,{options:{label:o.label,group:o.group},name:o.model,list:()=>e(F,{resourceConfig:o,children:e(A,{children:e(x,{})})}),icon:o.icon})})};var X=k;export{x as ImpersonateTenantComponent,k as TenantImpersonateResource,X as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{Fragment as $,jsx as e,jsxs as N}from"react/jsx-runtime";import{Resource as S}from"react-admin";import{Route as w}from"react-router";import{useListContext as I}from"react-admin";import{useState as s}from"react";import{useRefresh as O}from"react-admin";import{useUnselectAll as T}from"react-admin";import{initAxios as x}from"../../hooks/axios";import{Button as u}from"react-admin";import{Confirm as p}from"react-admin";import v from"../../layout/ApplicationLayout";import{DashAutoList as z}from"@dashadmin/dash-auto-admin";import{useDialog as G}from"@dashadmin/dash-dialog";const P=n=>{const d=()=>{const i=x(),l=G(),{selectedIds:m}=I(),c=O(),f=T(o.model),[h,t]=s(!1),[g,r]=s(!1),C=()=>r(!0),R=()=>r(!1),y=()=>{M(),r(!1)},[D,U]=s(!1),[b,a]=s(!1),A=()=>a(!0),B=()=>a(!1),L=()=>{k(),a(!1)},M=async()=>{t(!0);try{await i.post(`${o.model}/updateMany`,{ids:m}),t(!1),c(),f(),l({variant:"info",title:"Restauraci\xF3n Realizada",content:"Se han restaurado los elementos seleccionados",onConfirm:()=>{},onClose:()=>{}})}catch{t(!1)}},k=async()=>{t(!0);try{await i.post(`${o.model}/deleteMany`,{ids:m}),t(!1),c(),f(),l({variant:"info",title:"Eliminaci\xF3n permanente realizada",content:"Se han eliminado permanentemente los elementos seleccionados",onConfirm:()=>{},onClose:()=>{}})}catch{t(!1)}};return N($,{children:[e(u,{label:"Restaurar",onClick:C}),e(p,{isOpen:g,loading:h,title:"Restaurar",content:"\xBFEst\xE1 seguro de restaurar los elementos seleccionados?",onConfirm:y,onClose:R}),e(u,{label:"Eliminar",onClick:A}),e(p,{isOpen:b,loading:D,title:"Eliminar",content:"\xBFEst\xE1 seguro de eliminar permanentemente los elementos seleccionados?",onConfirm:L,onClose:B})]})},o={...n,model:"trash/"+n.model,listDeleteButton:{enabled:!0,props:{label:"Eliminar definitivamente"}},listEditButton:{enabled:!1},listViewButton:{enabled:!1},customListButtons:null,dataGridProps:{bulkActionButtons:e(d,{})}};return e(w,{path:"trash/"+n.model,element:e(S,{options:{label:o.label,group:o.group},name:o.model,list:()=>e(v,{resourceConfig:n,children:e(z,{resourceConfig:o})}),icon:o.icon})})};var de=P;export{de as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{jsx as t}from"react/jsx-runtime";import c from"@mui/icons-material/Settings";import l from"@mui/icons-material/Notifications";import p from"@mui/icons-material/LocationCity";import n from"@mui/icons-material/Person";import d from"@mui/icons-material/Https";import u from"@mui/icons-material/SystemUpdateAlt";import f from"@mui/icons-material/NotificationImportant";import y from"@mui/icons-material/LockClock";import g from"./resources/Log/LogResource";import S from"./schemas/log";import h from"./schemas/permissions";import A from"./schemas/roles";import _ from"./schemas/notification";import N from"./schemas/tenant_superadmin";import{TableContainer as i}from"@mui/material";import r from"@dashadmin/dash-constants/src/DASHAdminSystemConstants";import m from"./templates/ResourceTemplate";import T from"./components/tenant/TenantSettingsContext";const J={"resource.group.admin":t(c,{}),"resource.group.logs":t(l,{}),"resource.group.system":t(p,{}),"resource.group.users":t(n,{}),"resource.group.client":t(n,{})},s=[{roles:[r.system.DASH_SYSTEM_ROLE],component:m,model:"system/permission",label:"resource.permission.name",schema:h,icon:t(d,{}),group:"resource.group.system",menu:[{title:"Permisos",redirect:"/system/permission"}],mainAction:{title:"Crear permiso",redirect:"/system/permission/create"},search:!0,mutationMode:"pessimistic",dataGridProps:{stickyHeader:!0},dataGridWrapper:e=>t(i,{sx:{maxHeight:800},children:e.children})},{roles:[r.system.DASH_SYSTEM_ROLE],component:m,model:"system/role",label:"resource.role.name",icon:t(u,{}),group:"resource.group.system",menu:[{title:"Roles",redirect:"/system/role"}],mainAction:{title:"Agregar Rol",redirect:"/system/role/create"},schema:A,mutationMode:"pessimistic",redirectAfterUpdate:!1,dataGridProps:{stickyHeader:!0},dataGridWrapper:e=>t(i,{sx:{maxHeight:800},children:e.children}),saveButtonAlwaysEnabled:!0}];JSON.parse(r.system.ENABLE_TENANT_IMPERSONATION)&&s.unshift({roles:[r.system.DASH_SYSTEM_ROLE],component:m,trash:!0,model:"system/tenant",label:"resource.tenant.name",contextComponent:({resourceConfig:e,mode:o,children:a})=>{console.log("TenantSettingsFormatsProvider",e,o);debugger;return t(T,{children:a})},schema:N,drawer:!1,edit:!0,icon:t(n,{}),group:"Cliente",menu:[{title:"Cliente",redirect:"/system/tenant"}],mainAction:{title:"Crear cliente",redirect:"/system/tenant/create"},postFormatter:e=>(e.systemMarketplaces&&(e.system_marketplace_ids=e.systemMarketplaces.map(o=>o.id)),e.systemPointOfSales&&(e.system_point_of_sale_ids=e.systemPointOfSales.map(o=>o.id)),e),mutationMode:"pessimistic",dataGridProps:{stickyHeader:!0},dataGridWrapper:e=>t(i,{sx:{maxHeight:800},children:e.children})}),JSON.parse(r.system.ENABLE_LOGS_AND_NOTIFICATIONS)&&s.unshift({roles:[r.system.DASH_SYSTEM_ROLE],component:m,model:"system/notification",label:"resource.notification.name",schema:_,icon:t(f,{}),group:"Logs y Notificaciones",menu:[{title:"Notificaciones",redirect:"/system/notification"}],create:!1,edit:!1,listViewButton:{enabled:!0},listEditButton:{enabled:!1},listDeleteButton:{enabled:!1},formGroupMode:"groups",mutationMode:"pessimistic",search:!0,dataGridProps:{stickyHeader:!0},dataGridWrapper:e=>t(i,{sx:{maxHeight:800},children:e.children})}),JSON.parse(r.system.ENABLE_LOGS_AND_NOTIFICATIONS)&&s.unshift({roles:[r.system.DASH_ADMIN_ROLE],component:g,model:"system/log",label:"resource.log.name",schema:S,icon:t(y,{}),group:"resource.group.logs",menu:[{title:"Logs",redirect:"/system/log"}],create:!1,edit:!1,search:!0});const U=e=>s.find(o=>o.model===e.split("/")[0]);var V=s;export{J as GroupIcons,V as default,U as getResourceConfig};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import t from"../components/logs/LogFile";const e=[{tab:"Log",label:"Tipo",attribute:"type",type:String},{tab:"Log",label:"Fecha",attribute:"date",type:Date},{tab:"Log",label:"Nombre",attribute:"name",type:String},{tab:"Log",label:"Archivo",attribute:"filepath",type:String,inList:!1,custom:!0,component:t}];var r=e;export{r as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import t from"../contexts/com/components/NotificationRenderer";const e=[{label:"Fecha",attribute:"created_at",fieldProps:{showTime:!0,fullWidth:!0},type:Date},,{label:"Tipo",attribute:"type",type:String,inList:!1},{label:"Clase",attribute:"class",type:String,inList:!0},{label:"T\xEDtulo",attribute:"notificationPayload.title",type:String},{label:"Contenido",attribute:"notificationPayload",type:String,custom:!0,inList:!1,component:t}];var r=e;export{r as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var e=(i=>(i.Web="web",i))(e||{}),r=(t=>(t["Level 1"]="1",t["Level 2"]="2",t["Level 3"]="3",t))(r||{});const u=[{attribute:"name",type:String},{attribute:"guard_name",type:e},{attribute:"group",type:String},{attribute:"route_name",type:String},{attribute:"level",type:r}];var m=u;export{m as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import e from"../components/permission/PermissionsSelector";const i=[{label:"Nombre",attribute:"name",type:String},{label:"Nivel",attribute:"level",type:Number,inList:!1},{label:"Redirecci\xF3n",attribute:"redirect",type:String,inList:!1,fieldProps:{placeholder:"/tab/kitchentab"},validate:t=>{if(t&&!t.startsWith("/"))throw Error("La ruta debe comenzar con /")}},{label:"Grupo (web)",attribute:"guard_name",type:String,inList:!1},{label:"Permisos",attribute:"permission_ids",type:String,custom:!0,component:e,inList:!1}];var s=i;export{s as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import e from"../components/permission/PermissionsSelectorList";const i=[{label:"Nombre",attribute:"name",type:String},{label:"Nivel",attribute:"level",type:Number,inList:!1},{label:"Redirecci\xF3n",attribute:"redirect",type:String,inList:!1,fieldProps:{placeholder:"/tab/kitchentab"},validate:t=>{if(t&&!t.startsWith("/"))throw Error("La ruta debe comenzar con /")}},{label:"Grupo (web)",attribute:"guard_name",type:String,inList:!1},{label:"Permisos",attribute:"permission_ids",type:String,custom:!0,component:e,inList:!1}];var o=i;export{o as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{Fragment as W,jsx as a,jsxs as t}from"react/jsx-runtime";import{useState as m}from"react";import{Button as r,ButtonGroup as D,Dialog as A,DialogTitle as x,DialogContent as B,DialogActions as I,Typography as f,Alert as R,Box as S}from"@mui/material";import{Cancel as w,Refresh as E,Upgrade as T}from"@mui/icons-material";import{useRecordContext as k,useDataProvider as F,useNotify as P,useRefresh as G}from"react-admin";const O=({method:c,attribute:l,resourceConfig:u})=>{const e=k(),d=F(),n=P(),p=G(),[o,s]=m(!1),[C,i]=m(!1);if(!e)return null;const y=async()=>{try{s(!0),await d.create("system/subscription/cancel/subscription",{data:{subscription_id:e.id}}),n("Suscripci\xF3n cancelada exitosamente",{type:"success"}),p(),i(!1)}catch{n("Error al cancelar la suscripci\xF3n",{type:"error"})}finally{s(!1)}},g=async()=>{try{s(!0),await d.update("system/subscription",{id:e.id,data:{status:"active"},previousData:{}}),n("Suscripci\xF3n reactivada exitosamente",{type:"success"}),p()}catch{n("Error al reactivar la suscripci\xF3n",{type:"error"})}finally{s(!1)}},b=["active","trial"].includes(e.status),h=e.status==="cancelled";return t(S,{children:[t(D,{variant:"outlined",size:"small",children:[b&&a(r,{startIcon:a(w,{}),color:"error",onClick:()=>i(!0),disabled:o,children:"Cancelar"}),h&&a(r,{startIcon:a(E,{}),color:"success",onClick:g,disabled:o,children:"Reactivar"}),a(r,{startIcon:a(T,{}),color:"primary",disabled:o||e.status==="expired",children:"Cambiar Plan"})]}),t(A,{open:C,onClose:()=>i(!1),maxWidth:"sm",fullWidth:!0,children:[a(x,{children:"Confirmar Cancelaci\xF3n"}),t(B,{children:[a(R,{severity:"warning",sx:{mb:2},children:"Esta acci\xF3n cancelar\xE1 la suscripci\xF3n inmediatamente."}),t(f,{children:["\xBFEst\xE1s seguro de que deseas cancelar la suscripci\xF3n de"," ",a("strong",{children:e.subscription_plan?.name}),"?"]}),a(f,{variant:"body2",color:"textSecondary",sx:{mt:1},children:"El usuario perder\xE1 acceso a las funcionalidades premium al final del per\xEDodo actual."})]}),t(I,{children:[a(r,{onClick:()=>i(!1),disabled:o,children:"Cancelar"}),a(r,{onClick:y,color:"error",variant:"contained",disabled:o,children:"Confirmar Cancelaci\xF3n"})]})]})]})},U=({method:c,attribute:l,resourceConfig:u})=>{switch(c){case"edit":case"create":case"view":case"list":return a(O,{attribute:l,method:c,resourceConfig:u});default:return a(W,{})}};var K=U;export{K as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{Fragment as R,jsx as e,jsxs as l}from"react/jsx-runtime";import{useState as d,useEffect as b}from"react";import{Table as y,TableBody as C,TableCell as a,TableContainer as T,TableHead as f,TableRow as c,Paper as g,Typography as i,CircularProgress as h,Box as P}from"@mui/material";import{useRecordContext as w,useDataProvider as D}from"react-admin";import{priceFormatter as F}from"@dashadmin/dash-utils";const v=()=>{const o=w(),n=D(),[r,m]=d([]),[u,s]=d(!0);b(()=>{o?.id&&p()},[o?.id]);const p=async()=>{try{s(!0);const{data:t}=await n.getList("payments",{filter:{subscription_id:o.id},sort:{field:"created_at",order:"DESC"},pagination:{page:1,perPage:10}});m(t)}catch(t){console.error("Error fetching payments:",t)}finally{s(!1)}};return u?e(P,{display:"flex",justifyContent:"center",p:2,children:e(h,{})}):r.length===0?e(i,{variant:"body2",color:"textSecondary",children:"No hay historial de pagos disponible"}):e(T,{component:g,variant:"outlined",children:l(y,{size:"small",children:[e(f,{children:l(c,{children:[e(a,{children:"Fecha"}),e(a,{children:"Monto"}),e(a,{children:"Estado"}),e(a,{children:"ID Transacci\xF3n"})]})}),e(C,{children:r.map(t=>l(c,{children:[e(a,{children:new Date(t.created_at).toLocaleDateString()}),e(a,{children:F(t.amount,"CLP")}),e(a,{children:e(i,{variant:"body2",color:t.status==="completed"?"success.main":"error.main",children:t.status==="completed"?"Completado":"Fallido"})}),e(a,{children:e(i,{variant:"body2",fontFamily:"monospace",children:t.transaction_id})})]},t.id))})]})})},A=({method:o,attribute:n,resourceConfig:r})=>o==="view"?e(v,{attribute:n,method:o,resourceConfig:r}):e(R,{});var L=A;export{L as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{Fragment as v,jsx as e,jsxs as d}from"react/jsx-runtime";import{useState as f}from"react";import{Box as p,TextField as B,Button as L,Typography as c,IconButton as S,Paper as g,List as A,ListItem as F,ListItemText as I,ListItemSecondaryAction as P}from"@mui/material";import{Add as D,Delete as T}from"@mui/icons-material";import{useRecordContext as y,useInput as R}from"react-admin";const k=({method:a,attribute:r,resourceConfig:n})=>{const u=y(),{field:s}=R({source:"features"}),[o,l]=f(""),[i,h]=f(u?.features||[]),C=()=>{if(o.trim()&&!i.includes(o.trim())){const t=[...i,o.trim()];h(t),s.onChange(t),l("")}},b=t=>{const m=i.filter(x=>x!==t);h(m),s.onChange(m)};return d(p,{children:[e(c,{variant:"h6",gutterBottom:!0,children:"Caracter\xEDsticas del Plan"}),d(p,{display:"flex",gap:1,mb:2,children:[e(B,{fullWidth:!0,size:"small",label:"Nueva caracter\xEDstica",value:o,onChange:t=>l(t.target.value),onKeyPress:t=>{t.key==="Enter"&&(t.preventDefault(),C())},placeholder:"Ej: Acceso ilimitado, Soporte 24/7"}),e(L,{variant:"contained",startIcon:e(D,{}),onClick:C,disabled:!o.trim(),children:"Agregar"})]}),i.length>0?e(g,{variant:"outlined",children:e(A,{dense:!0,children:i.map((t,m)=>d(F,{children:[e(I,{primary:t}),e(P,{children:e(S,{edge:"end",size:"small",onClick:()=>b(t),color:"error",children:e(T,{})})})]},m))})}):e(c,{variant:"body2",color:"textSecondary",style:{fontStyle:"italic"},children:"No hay caracter\xEDsticas definidas para este plan"}),e(p,{mt:2,children:e(c,{variant:"body2",color:"textSecondary",children:"Las caracter\xEDsticas se mostrar\xE1n a los usuarios al seleccionar este plan de suscripci\xF3n."})})]})},w=({method:a,attribute:r,resourceConfig:n})=>{const s=y()?.features||[];return d(p,{children:[e(c,{variant:"h6",gutterBottom:!0,children:"Caracter\xEDsticas del Plan"}),s.length>0?e(g,{variant:"outlined",children:e(A,{dense:!0,children:s.map((o,l)=>e(F,{children:e(I,{primary:o})},l))})}):e(c,{variant:"body2",color:"textSecondary",style:{fontStyle:"italic"},children:"No hay caracter\xEDsticas definidas para este plan"})]})},E=({method:a,attribute:r,resourceConfig:n})=>{const u=y();return d(v,{children:[u?.features?.length||0," caracter\xEDsticas"]})},K=({method:a,attribute:r,resourceConfig:n})=>{switch(a){case"edit":case"create":return e(k,{attribute:r,method:a,resourceConfig:n});case"view":return e(w,{attribute:r,method:a,resourceConfig:n});case"list":return e(E,{attribute:r,method:a,resourceConfig:n});default:return e(v,{})}};var J=K;export{J as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{jsx as r,jsxs as e}from"react/jsx-runtime";import{Card as p,CardContent as l,Typography as o,Box as i,Chip as y,List as d,ListItem as h,ListItemIcon as u,ListItemText as g,Button as C,Divider as s}from"@mui/material";import{Check as b,Star as x}from"@mui/icons-material";import{useRecordContext as f}from"react-admin";import{priceFormatter as v}from"@dashadmin/dash-utils";const I=({method:T,attribute:B,resourceConfig:_})=>{const t=f();if(!t)return null;const n=a=>v(a,"CLP"),c=a=>a==="monthly"?"mes":"a\xF1o";return r(i,{maxWidth:400,children:r(p,{elevation:3,children:e(l,{children:[e(i,{textAlign:"center",mb:2,children:[r(o,{variant:"h5",component:"h2",gutterBottom:!0,children:t.name}),t.has_trial&&r(y,{icon:r(x,{}),label:`${t.trial_days} d\xEDas gratis`,color:"primary",size:"small",sx:{mb:1}}),r(o,{variant:"h3",component:"div",color:"primary",children:n(t.price)}),e(o,{variant:"body2",color:"textSecondary",children:["por ",c(t.billing_cycle)]}),t.billing_cycle==="yearly"&&e(o,{variant:"body2",color:"success.main",children:[n(t.price_per_month)," por mes"]})]}),r(s,{sx:{my:2}}),t.description&&r(o,{variant:"body2",color:"textSecondary",paragraph:!0,children:t.description}),t.features&&t.features.length>0&&e(i,{children:[r(o,{variant:"h6",gutterBottom:!0,children:"Caracter\xEDsticas incluidas:"}),r(d,{dense:!0,children:t.features.map((a,m)=>e(h,{disableGutters:!0,children:[r(u,{sx:{minWidth:32},children:r(b,{color:"success",fontSize:"small"})}),r(g,{primary:a,primaryTypographyProps:{variant:"body2"}})]},m))})]}),r(s,{sx:{my:2}}),r(C,{variant:"contained",fullWidth:!0,size:"large",disabled:!t.is_active,children:t.has_trial?"Comenzar Prueba Gratis":"Suscribirse Ahora"}),!t.is_active&&r(o,{variant:"caption",color:"error",display:"block",textAlign:"center",mt:1,children:"Plan no disponible"})]})})})};var R=I;export{R as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{Fragment as w,jsx as r,jsxs as t}from"react/jsx-runtime";import{useState as g,useEffect as f}from"react";import{Grid as e,Card as s,CardContent as c,Typography as o,Box as a,CircularProgress as T,Chip as b}from"@mui/material";import{TrendingUp as S,People as I,AttachMoney as x,Timeline as P}from"@mui/icons-material";import{useRecordContext as B,useDataProvider as G}from"react-admin";import{priceFormatter as z}from"@dashadmin/dash-utils";const A=({method:l,attribute:m,resourceConfig:y})=>{const n=B(),h=G(),[i,u]=g(null),[C,v]=g(!0);f(()=>{n?.id&&_()},[n?.id]);const _=async()=>{try{v(!0);const{data:d}=await h.getOne("system/subscription-plan/stats",{id:n.id});u(d)}catch(d){console.error("Error fetching plan stats:",d),u({total_subscriptions:n.active_subscriptions_count||0,active_subscriptions:n.active_subscriptions_count||0,trial_subscriptions:0,cancelled_subscriptions:0,total_revenue:0,monthly_revenue:0,conversion_rate:0})}finally{v(!1)}},p=d=>z(d,"CLP");return C?r(a,{display:"flex",justifyContent:"center",p:4,children:r(T,{})}):i?t(a,{children:[r(o,{variant:"h6",gutterBottom:!0,children:"Estad\xEDsticas del Plan"}),t(e,{container:!0,spacing:2,children:[r(e,{component:"div",item:!0,size:{xs:12,sm:6,md:3},children:r(s,{children:t(c,{children:[t(a,{display:"flex",alignItems:"center",mb:1,children:[r(I,{color:"primary",sx:{mr:1}}),r(o,{variant:"h6",color:"primary",children:i.total_subscriptions})]}),r(o,{variant:"body2",color:"textSecondary",children:"Total Suscripciones"})]})})}),r(e,{component:"div",item:!0,size:{xs:12,sm:6,md:3},children:r(s,{children:t(c,{children:[t(a,{display:"flex",alignItems:"center",mb:1,children:[r(S,{color:"success",sx:{mr:1}}),r(o,{variant:"h6",color:"success.main",children:i.active_subscriptions})]}),r(o,{variant:"body2",color:"textSecondary",children:"Suscripciones Activas"})]})})}),r(e,{component:"div",item:!0,size:{xs:12,sm:6,md:3},children:r(s,{children:t(c,{children:[t(a,{display:"flex",alignItems:"center",mb:1,children:[r(P,{color:"info",sx:{mr:1}}),r(o,{variant:"h6",color:"info.main",children:i.trial_subscriptions})]}),r(o,{variant:"body2",color:"textSecondary",children:"En Per\xEDodo de Prueba"})]})})}),r(e,{component:"div",item:!0,size:{xs:12,sm:6,md:3},children:r(s,{children:t(c,{children:[r(a,{display:"flex",alignItems:"center",mb:1,children:r(o,{variant:"h6",color:"error.main",children:i.cancelled_subscriptions})}),r(o,{variant:"body2",color:"textSecondary",children:"Canceladas"})]})})}),r(e,{component:"div",item:!0,size:{xs:12,sm:6},children:r(s,{children:t(c,{children:[t(a,{display:"flex",alignItems:"center",mb:1,children:[r(x,{color:"success",sx:{mr:1}}),r(o,{variant:"h6",color:"success.main",children:p(i.total_revenue)})]}),r(o,{variant:"body2",color:"textSecondary",children:"Ingresos Totales"})]})})}),r(e,{component:"div",item:!0,size:{xs:12,sm:6},children:r(s,{children:t(c,{children:[t(a,{display:"flex",alignItems:"center",mb:1,children:[r(x,{color:"primary",sx:{mr:1}}),r(o,{variant:"h6",color:"primary",children:p(i.monthly_revenue)})]}),r(o,{variant:"body2",color:"textSecondary",children:"Ingresos Mensuales"})]})})}),r(e,{component:"div",item:!0,size:12,children:r(s,{children:r(c,{children:t(a,{display:"flex",alignItems:"center",justifyContent:"space-between",children:[t(a,{children:[r(o,{variant:"h6",children:"Tasa de Conversi\xF3n"}),r(o,{variant:"body2",color:"textSecondary",children:"De prueba a suscripci\xF3n pagada"})]}),r(b,{label:`${i.conversion_rate.toFixed(1)}%`,color:i.conversion_rate>50?"success":i.conversion_rate>25?"warning":"error",size:"medium"})]})})})})]}),t(a,{mt:3,children:[r(o,{variant:"h6",gutterBottom:!0,children:"Informaci\xF3n Adicional"}),t(e,{container:!0,spacing:2,children:[r(e,{component:"div",item:!0,size:{xs:12,sm:6},children:t(o,{variant:"body2",color:"textSecondary",children:[r("strong",{children:"Estado del Plan:"})," ",r(b,{label:n.is_active?"Activo":"Inactivo",color:n.is_active?"success":"error",size:"small"})]})}),r(e,{component:"div",item:!0,size:{xs:12,sm:6},children:t(o,{variant:"body2",color:"textSecondary",children:[r("strong",{children:"Per\xEDodo de Prueba:"})," ",n.has_trial?`${n.trial_days} d\xEDas`:"No disponible"]})}),r(e,{component:"div",item:!0,size:{xs:12,sm:6},children:t(o,{variant:"body2",color:"textSecondary",children:[r("strong",{children:"Ciclo de Facturaci\xF3n:"})," ",n.billing_cycle_label]})}),r(e,{component:"div",item:!0,size:{xs:12,sm:6},children:t(o,{variant:"body2",color:"textSecondary",children:[r("strong",{children:"Precio por Mes:"})," ",p(n.price_per_month)]})})]})]})]}):r(o,{variant:"body2",color:"error",children:"Error al cargar las estad\xEDsticas"})},F=({method:l,attribute:m,resourceConfig:y})=>l==="view"?r(A,{attribute:m,method:l,resourceConfig:y}):r(w,{});var N=F;export{N as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{Fragment as f,jsx as r,jsxs as m}from"react/jsx-runtime";import{Chip as n,Box as c}from"@mui/material";import{useRecordContext as u}from"react-admin";const l=({method:a,attribute:o,resourceConfig:s})=>{const e=u();if(!e)return null;const i=t=>{switch(t){case"active":return"success";case"trial":return"info";case"cancelled":return"warning";case"expired":return"error";default:return"default"}};return m(c,{children:[r(n,{label:(t=>{switch(t){case"active":return"Activa";case"trial":return"Per\xEDodo de Prueba";case"cancelled":return"Cancelada";case"expired":return"Expirada";default:return t}})(e.status),color:i(e.status),size:"small"}),e.is_on_trial&&r(n,{label:`${e.days_until_expiry} d\xEDas restantes`,color:"info",size:"small",variant:"outlined",style:{marginLeft:8}})]})},d=({method:a,attribute:o,resourceConfig:s})=>{switch(a){case"edit":case"create":case"view":case"list":return r(l,{attribute:o,method:a,resourceConfig:s});default:return r(f,{})}};var v=d;export{v as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{SelectInput as t}from"react-admin";import r from"./components/SubscriptionPlanFeatures";import i from"./components/SubscriptionPlanPreview";const a=[{label:"ID",attribute:"id",type:Number,inList:!0},{label:"Nombre",attribute:"name",type:String,inList:!0,validate:e=>{if(!e||e.trim().length===0)throw new Error("El nombre es requerido");if(e.length>255)throw new Error("El nombre no puede exceder 255 caracteres")}},{label:"Slug",attribute:"slug",type:String,inList:!0,validate:e=>{if(!e||e.trim().length===0)throw new Error("El slug es requerido");if(!/^[a-z0-9-_]+$/.test(e))throw new Error("El slug solo puede contener letras min\xFAsculas, n\xFAmeros, guiones y guiones bajos")}},{label:"Descripci\xF3n",attribute:"description",type:String,inList:!1,componentProps:{multiline:!0,rows:3}},{label:"Precio (en centavos)",attribute:"price",type:Number,inList:!0,validate:e=>{if(e==null)throw new Error("El precio es requerido");if(e<0)throw new Error("El precio no puede ser negativo")}},{label:"Precio Formateado",attribute:"formatted_price",type:String,inList:!0,custom:!0},{label:"Ciclo de Facturaci\xF3n",attribute:"billing_cycle",type:String,component:t,componentProps:{choices:[{id:"monthly",name:"Mensual"},{id:"yearly",name:"Anual"}]},inList:!0,validate:e=>{if(!e)throw new Error("El ciclo de facturaci\xF3n es requerido");if(!["monthly","yearly"].includes(e))throw new Error("Ciclo de facturaci\xF3n inv\xE1lido")}},{label:"D\xEDas de Prueba",attribute:"trial_days",type:Number,inList:!0,componentProps:{min:0,max:365},validate:e=>{if(e<0)throw new Error("Los d\xEDas de prueba no pueden ser negativos");if(e>365)throw new Error("Los d\xEDas de prueba no pueden exceder 365 d\xEDas")}},{label:"Activo",attribute:"is_active",type:Boolean,inList:!0},{tab:"Caracter\xEDsticas",label:"Gesti\xF3n de Caracter\xEDsticas",attribute:"features_management",type:String,custom:!0,inList:!1,component:r},{tab:"Vista Previa",label:"Vista Previa del Plan",attribute:"plan_preview",type:String,custom:!0,inList:!1,component:i},{tab:"Informaci\xF3n Calculada",label:"Precio por Mes",attribute:"price_per_month",type:Number,inList:!1,custom:!0},{tab:"Informaci\xF3n Calculada",label:"Tiene Prueba",attribute:"has_trial",type:Boolean,inList:!0,custom:!0},{tab:"Informaci\xF3n Calculada",label:"Etiqueta del Ciclo",attribute:"billing_cycle_label",type:String,inList:!1,custom:!0},{label:"Fecha de Creaci\xF3n",attribute:"created_at",type:String,inList:!0,custom:!0},{label:"Fecha de Actualizaci\xF3n",attribute:"updated_at",type:String,inList:!1,custom:!0}];var m=a;export{m as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{SelectInput as t}from"react-admin";import a from"./components/SubscriptionStatusIndicator";import i from"./components/SubscriptionPaymentHistory";import r from"./components/SubscriptionActions";const n=[{label:"ID",attribute:"id",type:Number,inList:!0},{label:"Usuario",attribute:"user_id",type:"system/user.name",pagination:!1,multiple:!1,component:t,inList:!0},{label:"Plan de Suscripci\xF3n",attribute:"subscription_plan_id",type:"system/subscription-plan.name",pagination:!1,multiple:!1,component:t,inList:!0,validate:e=>{if(!e)throw new Error("El plan de suscripci\xF3n es requerido")}},{label:"Estado",attribute:"status",type:String,component:t,componentProps:{choices:[{id:"active",name:"Activa"},{id:"trial",name:"Per\xEDodo de Prueba"},{id:"cancelled",name:"Cancelada"},{id:"expired",name:"Expirada"}]},inList:!0},{tab:"Estado y Fechas",label:"Indicador de Estado",attribute:"status_indicator",type:String,custom:!0,inList:!1,component:a},{tab:"Estado y Fechas",label:"Fin del Per\xEDodo de Prueba",attribute:"trial_ends_at",type:Date,inList:!1},{tab:"Estado y Fechas",label:"Inicio del Per\xEDodo Actual",attribute:"current_period_start",type:Date,inList:!1},{tab:"Estado y Fechas",label:"Fin del Per\xEDodo Actual",attribute:"current_period_end",type:Date,inList:!0},{tab:"Estado y Fechas",label:"Fecha de Cancelaci\xF3n",attribute:"cancelled_at",type:Date,inList:!1},{tab:"Informaci\xF3n de Pago",label:"ID de Suscripci\xF3n Google",attribute:"google_subscription_id",type:String,inList:!1},{tab:"Informaci\xF3n de Pago",label:"Historial de Pagos",attribute:"payment_history",type:String,custom:!0,inList:!1,component:i},{tab:"Acciones",label:"Acciones de Suscripci\xF3n",attribute:"subscription_actions",type:String,custom:!0,inList:!1,component:r},{tab:"Informaci\xF3n Calculada",label:"Activa",attribute:"is_active",type:Boolean,inList:!0,custom:!0},{tab:"Informaci\xF3n Calculada",label:"En Per\xEDodo de Prueba",attribute:"is_on_trial",type:Boolean,inList:!0,custom:!0},{tab:"Informaci\xF3n Calculada",label:"D\xEDas hasta Expiraci\xF3n",attribute:"days_until_expiry",type:Number,inList:!0,custom:!0},{label:"Fecha de Creaci\xF3n",attribute:"created_at",type:String,inList:!0,custom:!0}];var p=n;export{p as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import i from"../components/subscription/PlanLimitsSettings";import r from"../components/subscription/PlanAddonsSettings";import a from"../components/subscription/PlanPricesSettings";import n from"../components/subscription/PlanFeaturesSettings";import l from"../components/subscription/PlanMetadataSettings";import{AuditLog as u}from"@dashadmin/dash-components";import{SelectInput as t}from"react-admin";const s=[{tab:"Basic Info",attribute:"name",label:"Plan Name",type:String,inList:!0,inEdit:!0,inShow:!0,inCreate:!0,validate:e=>e?void 0:"Required",fieldProps:{helperText:'Display name for the plan (e.g., "Professional", "Enterprise")',fullWidth:!0}},{tab:"Basic Info",attribute:"slug",label:"Slug",type:String,inList:!0,inEdit:!0,inShow:!0,inCreate:!0,validate:e=>e?void 0:"Required",fieldProps:{helperText:'URL-friendly identifier (e.g., "professional", "enterprise")',fullWidth:!0}},{tab:"Basic Info",attribute:"flow_plan_id",label:"Flow Plan ID",type:String,inList:!1,inEdit:!0,inShow:!0,inCreate:!0,fieldProps:{helperText:"External Plan ID in Flow.cl (if different from slug)",fullWidth:!0}},{tab:"Basic Info",attribute:"rebill_plan_id",label:"Rebill Plan ID",type:String,inList:!1,inEdit:!0,inShow:!0,inCreate:!0,fieldProps:{helperText:"External Plan ID in Rebill (if different from slug)",fullWidth:!0}},{tab:"Basic Info",attribute:"allow_downgrade",label:"Downgradable",type:Boolean,inList:!0,inEdit:!0,inShow:!0,inCreate:!0,validate:e=>e?void 0:"Required"},{tab:"Basic Info",attribute:"description",label:"Description",type:String,inList:!1,inEdit:!0,inShow:!0,inCreate:!0,custom:!0,component:"TextInput",componentProps:{multiline:!0,rows:3,fullWidth:!0,helperText:"Brief description of the plan features"}},{tab:"Basic Info",attribute:"is_active",label:"Active",type:Boolean,inList:!0,inEdit:!0,inShow:!0,inCreate:!0,fieldProps:{helperText:"Whether this plan is available for new subscriptions"},fieldOptions:{defaultValue:!0}},{tab:"Basic Info",attribute:"is_default",label:"Default Plan",type:Boolean,inList:!0,inEdit:!0,inShow:!0,inCreate:!0,fieldProps:{helperText:"Default plan for new tenancy account registrations. Only one plan can be default."},fieldOptions:{defaultValue:!1}},{tab:"Basic Info",attribute:"tier",label:"Tier",type:Number,inList:!0,inEdit:!0,inShow:!0,inCreate:!0,fieldProps:{helperText:"Plan tier level: 1=Free, 2=Basic, 3=Pro, 4=Enterprise. Higher = better/more expensive.",fullWidth:!0},fieldOptions:{defaultValue:1}},{tab:"Basic Info",attribute:"subscription_plan_type",label:"Plan Type",type:String,inList:!0,inShow:!0,inEdit:!1,inCreate:!1},{tab:"Basic Info",attribute:"subscription_plan_type",label:"Plan Type",type:String,inList:!1,inShow:!1,inEdit:!0,inCreate:!0,custom:!0,component:t,componentProps:{source:"subscription_plan_type",choices:[{id:"public",name:"Public (visible to customers)"},{id:"internal",name:"Internal (system use only)"}],defaultValue:"public",fullWidth:!0,helperText:"Public plans are visible to customers, internal plans are for system use only"}},{tab:"Pricing",attribute:"billing_cycle",label:"Billing Cycle",type:String,inList:!0,inEdit:!1,inShow:!0,inCreate:!1},{tab:"Pricing",attribute:"billing_cycle",label:"Billing Cycle",type:String,inList:!1,inEdit:!0,inShow:!1,inCreate:!0,validate:e=>e?void 0:"Required",custom:!0,component:t,componentProps:{source:"billing_cycle",choices:[{id:"daily",name:"Daily"},{id:"weekly",name:"Weekly"},{id:"monthly",name:"Monthly"},{id:"yearly",name:"Yearly"}],fullWidth:!0,defaultValue:"monthly",helperText:"Plans are gateway-agnostic. Validation happens when users subscribe."}},{tab:"Pricing",attribute:"trial_days",label:"Trial Days",type:Number,inList:!0,inEdit:!0,inShow:!0,inCreate:!0,fieldProps:{helperText:"Number of free trial days (0 = no trial)",fullWidth:!0},fieldOptions:{defaultValue:0}},{tab:"Pricing",attribute:"has_trial",label:"Has Trial",type:Boolean,inList:!0,inEdit:!1,inShow:!0,inCreate:!1,readOnly:!0},{tab:"Pricing",attribute:"prices",label:"Prices by Currency",type:Object,inList:!0,inEdit:!0,inShow:!0,inCreate:!0,custom:!0,component:a,fieldProps:{helperText:"Set prices for each available currency (in cents)",fullWidth:!0}},{tab:"Pricing",attribute:"price",label:"Default Price (in cents)",type:Number,inList:!1,inEdit:!1,inShow:!0,inCreate:!1,readOnly:!0,fieldProps:{helperText:"Legacy single price field (use Prices by Currency instead)",fullWidth:!0}},{tab:"Pricing",attribute:"formatted_price",label:"Formatted Price",type:String,inList:!1,inEdit:!1,inShow:!0,inCreate:!1,readOnly:!0},{tab:"Limits",attribute:"limits",label:"Plan Limits",type:Object,inList:!1,inEdit:!0,inShow:!0,inCreate:!0,custom:!0,component:i},{tab:"Add-ons",attribute:"addons",label:"Plan Add-ons",type:Object,inList:!1,inEdit:!0,inShow:!0,inCreate:!0,custom:!0,component:r,fieldProps:{helperText:"Enable/disable marketplace and POS integrations for this plan"}},{tab:"Features",attribute:"features",label:"Features",type:Array,inList:!1,inEdit:!0,inShow:!0,inCreate:!0,custom:!0,component:n},{tab:"Metadata",attribute:"metadata",label:"Metadata",type:Object,inList:!1,inEdit:!0,inShow:!0,inCreate:!0,custom:!0,component:l},{tab:"Stats",attribute:"active_subscriptions_count",label:"Active Subscriptions",type:Number,inList:!0,inEdit:!1,inShow:!0,inCreate:!1,readOnly:!0},{tab:"Stats",attribute:"created_at",label:"Created At",type:Date,inList:!1,inEdit:!1,inShow:!0,inCreate:!1,readOnly:!0},{tab:"Stats",attribute:"updated_at",label:"Updated At",type:Date,inList:!1,inEdit:!1,inShow:!0,inCreate:!1,readOnly:!0},{tab:"Audit",attribute:"audit_logs",label:"Audit Logs",type:Array,inList:!1,inEdit:!0,inShow:!0,inCreate:!1,readOnly:!0,custom:!0,component:u,fieldProps:{helperText:"View all changes made to this subscription plan"}}];var P=s;export{P as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import e from"../components/tenant/TenantSettings";const a=[{tab:"Datos",label:"Nombre",attribute:"name",type:String},{tab:"Datos",label:"Rut",attribute:"public_id",type:String,validate:t=>{if(t){if(!t.match(/^(\d{7,8}-[\dkK])$/g))throw new Error("Ingresar rut con guion")}else throw new Error("El campo es requerido")}},{tab:"Datos",label:"Email",attribute:"email",type:String},{tab:"Datos",label:"Descripci\xF3n Corta",attribute:"short_description",type:String,inList:!1,validate:t=>{if(t&&t.length>500)throw new Error("La descripci\xF3n corta no puede exceder 500 caracteres")}},{tab:"Datos",label:"Descripci\xF3n Larga",attribute:"long_description",type:String,inList:!1,fieldProps:{multiline:!0},slotProps:{multiline:!0,fullWidth:!0},validate:t=>{if(t&&t.length>5e3)throw new Error("La descripci\xF3n larga no puede exceder 5000 caracteres")}},{tab:"Configuraci\xF3nes",label:"Configuraci\xF3nes",attribute:"settings",type:String,custom:!0,inList:!1,component:e},{tab:"Datos contacto",label:"Raz\xF3n Social",attribute:"public_name",type:String,inList:!1},{tab:"Datos contacto",label:"Direcci\xF3n",attribute:"address",type:String,inList:!1},{tab:"Datos contacto",label:"Tel\xE9fono",attribute:"phone",type:String,inList:!1},{tab:"Datos contacto",label:"Tel\xE9fono M\xF3vil",attribute:"mobile",type:String,inList:!1},{tab:"Datos contacto",label:"Nombre del contacto",attribute:"contact_name",type:String,inList:!1},{tab:"Datos contacto",label:"Email del contacto",attribute:"contact_email",type:String,inList:!1},{tab:"Datos contacto",label:"Tel\xE9fono del contacto",attribute:"contact_phone",type:String,inList:!1}];var o=a;export{o as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{ImageInput as r}from"react-admin";import{SelectArrayInput as i}from"react-admin";const s=[{label:"Nombre",attribute:"name",type:String,tab:"Datos Usuario"},{label:"Email",attribute:"email",type:String,tab:"Datos Usuario"},{label:"Contrase\xF1a",attribute:"password",type:String,isPassword:!0,fieldProps:{fullWidth:!0},inList:!1,tab:"Contrase\xF1a",validate:t=>{let e;return t&&t.length<6&&t.length>1&&(e="Min 6 caracteres"),e}},{label:"Confirmar Contrase\xF1a",attribute:"password_confirmation",type:String,isPassword:!0,fieldProps:{},inList:!1,tab:"Contrase\xF1a",validate:(t,e)=>{let a;return e?.password!==t&&(a="Contrase\xF1as no coinciden."),a}},{label:"Genear Contrase\xF1a Aleatorea Autom\xE1ticamente",attribute:"generate_password",type:Boolean,inList:!1,tab:"Contrase\xF1a"},{tab:"Datos Usuario",label:"Roles",attribute:"role_ids",type:"system/role.name",pagination:!1,multiple:!0,component:i},{attribute:"active",type:Boolean,inList:!0,label:"Activo",tab:"Datos Usuario",processor:"Boolean"},{attribute:"avatar",listAttribute:"admin/userclient.avatar",type:r,inList:!1,label:"Im\xE1gen",tab:"Datos Usuario",processor:"RawFile"}];var b=s;export{b as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import e from"../components/tenant/TenantSettings";import a from"../components/tenant/TenantTheme";import i from"../components/tenant/TenantAttributes";const n=[{tab:"Gen\xE9ricos",label:"Nombre",attribute:"name",type:String},{tab:"Gen\xE9ricos",label:"Rut",attribute:"public_id",type:String,validate:t=>{if(t){if(!t.match(/^(\d{7,8}-[\dkK])$/g))throw new Error("Ingresar rut con guion")}else throw new Error("El campo es requerido")}},{tab:"Gen\xE9ricos",label:"Email",attribute:"email",type:String},{tab:"Configuraci\xF3n",label:"Configuraci\xF3n",attribute:"settings",type:Object,custom:!0,inList:!1,component:e,inCreate:!1,inShow:!1},{tab:"Theme",label:"Tema",attribute:"attributes",type:Object,custom:!0,inList:!1,component:a,inCreate:!1,inShow:!1},{tab:"Datos contacto",label:"Datos de contacto",attribute:"attributes",type:Object,custom:!0,inList:!1,component:i,inCreate:!1,inShow:!1}];var m=n;export{m as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{SelectInput as t}from"react-admin";import e from"./tenantUser";const a=[...e,{tab:"Datos Usuario",label:"Cliente",attribute:"tenant_id",type:"system/tenant.name",pagination:!1,multiple:!1,component:t,processor:"Null"}];var m=a;export{m as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{jsx as r}from"react/jsx-runtime";import{SelectInput as d,FunctionField as p}from"react-admin";import n from"./templates/ResourceTemplate";import{TenantImpersonateResource as y}from"./resources/Tenant/ImpersonateTenantResource";import g from"./schemas/tenant_superadmin";import S from"./schemas/subscriptionPlan";import{RutValidator as h}from"./utils/validators";import{DASHAppConstants as s}from"@dashadmin/dash-constants";import _ from"./components/avatar/Avatar";import w from"@mui/icons-material/SystemUpdateAlt";import u from"@mui/icons-material/Person";import C from"@mui/icons-material/CardMembership";import{lazy as E}from"react";import A from"@mui/icons-material/Business";import b from"@mui/material/Chip";import f from"./contexts/SystemRequestsCache";import{SubscriptionPlanFormatsProvider as L}from"./contexts/SubscriptionPlanFormatsProvider";import P from"./schemas/rolesDataGrid";import T from"./components/currency/Format";const c=E(()=>import("@mui/material/TableContainer")),o={drawer:!0,drawerOptions:{view:!0,edit:!1,create:!1},listViewButton:{props:{buttonProps:{variant:"text",size:"small"},label:""}},listEditButton:{props:{buttonProps:{variant:"text",size:"small"},label:""}},listDeleteButton:{confirm:!0,props:{buttonProps:{variant:"text",size:"small"},label:""}}},x=[{roles:[s.system.SYSTEM_ROLE],trash:!0,component:n,model:"system/tenancy",group:"Accounts",schema:[{tab:"Account",label:"Public Name",attribute:"public_name",type:String,inList:!0,inEdit:!0,inShow:!0,inCreate:!1},{tab:"Account",label:"Legal Name",attribute:"legal_name",type:String,inList:!1,inEdit:!0,inShow:!0,inCreate:!1},{tab:"Account",label:"Public ID",attribute:"public_id",type:String,inList:!0,inEdit:!0,inShow:!0,inCreate:!1},{tab:"Account",label:"Account Status",attribute:"account_status_label",type:String,custom:!0,inList:!0,inEdit:!1,inShow:!0,inCreate:!1,component:()=>r(p,{label:"Account Status",render:e=>{const t=e?.account_status_label||e?.account_status||"-";return r(b,{label:t,color:{Active:"success",Suspended:"warning",Canceled:"error",Expired:"default","Pending Deletion":"error"}[t]||"default",size:"small"})}})},{tab:"Account",label:"Email",attribute:"email",type:String,inList:!0,inEdit:!0,inShow:!0,inCreate:!1},{tab:"Account",label:"URL",attribute:"url",type:String,inList:!1,inEdit:!0,inShow:!0,inCreate:!1},{tab:"Account",label:"Slug",attribute:"slug",type:String,inList:!0,inEdit:!1,inShow:!0,inCreate:!1},{tab:"Account",label:"Currency",attribute:"settings.currency",type:String,inList:!1,inEdit:!0,inShow:!0,inCreate:!0,fieldProps:{helperText:"Default currency code (e.g., USD, EUR)"}},{tab:"Account",label:"Timezone",attribute:"settings.timezone",type:String,inList:!1,inShow:!0,inEdit:!1,inCreate:!1},{tab:"Account",label:"Timezone",attribute:"settings.timezone",type:String,custom:!0,inList:!1,inShow:!1,inEdit:!0,inCreate:!0,component:d,componentProps:{source:"settings.timezone",choices:[{id:"America/Santiago",name:"America/Santiago"},{id:"UTC",name:"UTC"},{id:"America/New_York",name:"America/New_York"},{id:"Europe/London",name:"Europe/London"}],defaultValue:"UTC"}},{tab:"Subscription",label:"Subscription Status",attribute:"subscription_status",type:String,custom:!0,inList:!0,inEdit:!1,inShow:!0,inCreate:!1,component:()=>r(p,{label:"Subscription Status",render:e=>{const t=e?.subscription_status||"none";return r(b,{label:t,color:{active:"success",canceled:"error",past_due:"warning",trialing:"info",none:"default"}[t]||"default",size:"small"})}})},{tab:"Subscription",label:"Plan",attribute:"subscription_plan_name",type:String,inList:!1,inEdit:!1,inShow:!0,inCreate:!1},{tab:"Subscription",label:"Subscription State",attribute:"subscription_state",type:String,inList:!1,inEdit:!1,inShow:!0,inCreate:!1},{tab:"Subscription",label:"Gateway",attribute:"gateway_type",type:String,inList:!1,inEdit:!1,inShow:!0,inCreate:!1},{tab:"Subscription",label:"Canceled At",attribute:"canceled_at",type:Date,inList:!1,inEdit:!1,inShow:!0,inCreate:!1},{tab:"Subscription",label:"Expires At",attribute:"expires_at",type:Date,inList:!1,inEdit:!1,inShow:!0,inCreate:!1},{tab:"Usage",label:"Tenants",attribute:"tenants_count",type:Number,inList:!0,inEdit:!1,inShow:!0,inCreate:!1},{tab:"Usage",label:"Users",attribute:"users_count",type:Number,inList:!0,inEdit:!1,inShow:!0,inCreate:!1},{tab:"Trial",label:"Trial Ends At",attribute:"trial_ends_at",type:Date,inList:!1,inEdit:!1,inShow:!0,inCreate:!1},{tab:"Trial",label:"Is On Trial",attribute:"is_on_trial",type:Boolean,inList:!0,inEdit:!1,inShow:!0,inCreate:!1},{tab:"Trial",label:"Trial Days Remaining",attribute:"trial_days_remaining",type:Number,inList:!1,inEdit:!1,inShow:!0,inCreate:!1}],label:"Accounts",icon:r(A,{}),create:!1,menu:[{title:"Accounts",redirect:"/system/tenancy"},{title:"\u{1F5D1}",redirect:"/system/tenancy/trash"}],referenceFilters:[{id:"PublicName",label:"Name",source:"public_name",reference:null,optionText:null,alwaysOn:!0},{id:"AccountStatus",label:"Account Status",source:"account_status",reference:[{id:"active",name:"Active"},{id:"canceled",name:"Canceled"},{id:"expired",name:"Expired"},{id:"suspended",name:"Suspended"},{id:"soft_deleted",name:"Pending Deletion"}],optionText:"name",alwaysOn:!0}],mutationMode:"pessimistic",redirectAfterUpdate:!1,...o},{roles:[s.system.SYSTEM_ROLE],component:n,customRoutes:e=>y(e),contextComponent:({resourceConfig:e,mode:t,children:i})=>(console.log("TenantFormatsProvider",e,t),t==="list"?i:r(f,{cacheKey:"tenant_formats_cache",apiUrl:"system/tenant/systemSettingFormats",cacheSeconds:300,children:i})),model:"system/tenant",label:"Laboratories",trash:!0,schema:g,icon:r(u,{}),group:"Accounts",menu:[{title:"resource.system.tenants.menu_list",redirect:"/system/tenant"},{title:"\u{1F5D1}",redirect:"/system/tenant/trash"},{title:"Impersonar",redirect:"/system/tenant/impersonate"}],refreshAfter:!0,toolbarCreateButton:{enabled:!0},referenceFilters:[{id:"Nombre",label:"resource.system.tenants.filter_name",source:"name",reference:null,optionText:null,alwaysOn:!0}],mainAction:{title:"resource.system.tenants.main_action",fn:"redirect",mode:"create",redirect:"create"},search:!1,exporter:!1,postFormatter:e=>(e.systemMarketplaces&&(e.system_marketplace_ids=e.systemMarketplaces.map(t=>t.id)),e),redirectAfterUpdate:!1,mutationMode:"pessimistic",editProps:{queryOptions:{meta:{forceFetch:!0}},undoable:!1,emptyWhileLoading:!0},dataGridProps:{stickyHeader:!0,rowClick:!1},dataGridWrapper:e=>r(c,{sx:{maxHeight:800},children:e.children}),...o,redirectAfterCreate:!0},{roles:[s.system.SYSTEM_ROLE],component:n,model:"system/role-permissions-bulk",label:"resource.system.roles.label",icon:r(w,{}),group:"System",menu:[{title:"resource.system.roles.menu_list",redirect:"/system/role-permissions-bulk"}],contextComponent:({resourceConfig:e,mode:t,children:i})=>(console.log("TenantSettingsFormatsProvider",e,t),t==="list"?i:r(f,{cacheKey:"system_available_permissions_cache",apiUrl:"system/permission/availablePermissions",cacheSeconds:300,children:i})),referenceFilters:[{id:"Nombre",label:"resource.system.roles.filter_name",source:"name",reference:null,optionText:null,alwaysOn:!0}],toolbarCreateButton:{enabled:!0},mainAction:{title:"resource.system.roles.main_action",fn:"redirect",mode:"create",redirect:"create"},view:!1,schema:P,dataGridProps:{stickyHeader:!0},listEditButton:{enabled:!0},listViewButton:{enabled:!1},toolbarDeleteButton:{enabled:!1},toolbarListButton:{enabled:!1},toolbarSaveButton:{enabled:!0},toolbarExportButton:{enabled:!1},toolbarEditButton:{enabled:!1},formGroupMode:"groups",mutationMode:"pessimistic",editProps:{queryOptions:{meta:{forceFetch:!0}},undoable:!1,emptyWhileLoading:!0},saveButtonAlwaysEnabled:!0,refreshAfter:!0,dataGridWrapper:e=>r(c,{sx:{maxHeight:800},children:e.children}),postFormatter:(e,t)=>(delete e.permissions,e),...o},{roles:[s.system.SYSTEM_ROLE],component:n,trash:!0,isFormData:!0,model:"system/user",group:"Accounts",label:"resource.system.users.label",refreshAfter:!0,referenceFilters:[{id:"search",label:"resource.system.users.filter_search",source:"q",reference:null,optionText:"",alwaysOn:!0}],schema:[{tab:"Datos Usuario",attribute:"avatar",listAttribute:"image_path",label:"Im\xE1gen Usuario",type:String,sortable:!0,inEdit:!0,inCreate:!0,inShow:!0,inList:!1,custom:!0,component:_,processor:"File"},{label:"Nombre",attribute:"name",type:String,tab:"Datos Usuario"},{label:"Apellido",attribute:"lastname",type:String,tab:"Datos Usuario"},{tab:"Datos Usuario",attribute:"public_id",label:"Rut",type:String,fieldProps:{required:!0,showDiv:!0},slotProps:{input:{fullWidth:!0,autoComplete:"off"}},sortable:!0,inEdit:!0,inCreate:!0,inShow:!0,inList:!1,validate:e=>{if(!e)throw Error("El campo es requerido");if(!h(e))throw Error("El Rut es inv\xE1lido")}},{label:"Email",attribute:"email",type:String,tab:"Datos Usuario",slotProps:{input:{fullWidth:!0,"data-testid":"email-input"}}},{label:"Contrase\xF1a",attribute:"password",type:String,isPassword:!0,slotProps:{input:{fullWidth:!0,autoComplete:"new-password"}},inList:!1,tab:"Contrase\xF1a",validate:e=>{if(e&&e.length<6&&e.length>1)throw Error("Min 6 caracteres")}},{label:"Confirmar Contrase\xF1a",attribute:"password_confirmation",type:String,isPassword:!0,slotProps:{input:{fullWidth:!0,autoComplete:"new-password"}},inList:!1,tab:"Contrase\xF1a",validate:(e,t)=>{if(t.password!==""&&t.password!==e)throw Error("Contrase\xF1as no coinciden.")}},{label:"Genear Contrase\xF1a Aleatorea Autom\xE1ticamente",attribute:"generate_password",type:Boolean,inList:!1,tab:"Contrase\xF1a"},{tab:"Datos Usuario",label:"Roles",attribute:"roles",listAttribute:"role_ids",type:"system/role.name",multiple:!0,inList:!1,inShow:!1},{tab:"Datos Usuario",label:"Roles",attribute:"roles",listAttribute:"role_ids",type:"system/role.name",multiple:!0,inEdit:!1,inCreate:!1},{tab:"Datos Usuario",label:"Cliente",attribute:"tenant_id",type:"system/tenant.name",pagination:!1,multiple:!1,component:d,fieldProps:{allowEmpty:!0,emptyText:"Sin cliente"},componentProps:{parse:e=>{if(console.log("Parsing tenant_id value:",e),e===""||e===void 0||e==="null")return console.log("Converting to null"),null;if(typeof e=="string"&&!isNaN(Number(e))){const t=Number(e);return console.log("Converting to number:",t),t}return console.log("Returning original value:",e),e},format:e=>(console.log("Formatting tenant_id value:",e),e??"")},processor:"Null"},{attribute:"active",type:Boolean,inList:!0,label:"Activo",tab:"Datos Usuario",processor:"Boolean"}],icon:r(u,{}),redirectAfterUpdate:!1,showDialogAfterSubmit:!0,showNotifyAfterSubmit:!0,menu:[{title:"resource.system.users.menu_list",redirect:"/system/user"},{title:"\u{1F5D1}",redirect:"/system/user/trash"}],mainAction:{title:"resource.system.users.main_action",redirect:"/system/user/create"},mutationMode:"pessimistic",dataGridProps:{stickyHeader:!0},dataGridWrapper:e=>r(c,{sx:{maxHeight:800},children:e.children}),formPostFormatter:(e,t)=>t,...o},{roles:[s.system.SYSTEM_ROLE],component:n,model:"system/subscription-plan",label:"Subscription Plans",group:"System",icon:r(C,{}),trash:!0,contextComponent:({resourceConfig:e,mode:t,children:i})=>(console.log("SubscriptionPlanFormatsProvider",e,t),t==="list"?i:r(L,{cacheSeconds:300,children:i})),schema:S,menu:[{title:"All Plans",redirect:"/system/subscription-plan"}],mainAction:{title:"Create Plan",fn:"redirect",mode:"create",redirect:"create"},referenceFilters:[{id:"name",label:"Plan Name",source:"name",reference:null,optionText:null,alwaysOn:!0},{id:"is_active",label:"Active",source:"is_active",reference:null,optionText:null,alwaysOn:!1}],create:!0,view:!0,refreshAfter:!0,toolbarCreateButton:{enabled:!0},mutationMode:"pessimistic",editProps:{queryOptions:{meta:{forceFetch:!0}},undoable:!1,emptyWhileLoading:!0},dataGridProps:{stickyHeader:!0},dataGridWrapper:e=>r(c,{sx:{maxHeight:800},children:e.children}),listEditButton:{enabled:!0},listViewButton:{enabled:!0},postFormatter:(e,t)=>{if(e.limits&&typeof e.limits=="object"){const i={};Object.entries(e.limits).forEach(([l,a])=>{a===""||a===void 0?i[l]=null:i[l]=a}),e.limits=i}if(e.prices&&typeof e.prices=="object"){const i={};Object.entries(e.prices).forEach(([l,a])=>{if(a!==""&&a!==void 0&&a!==null){const m=parseInt(String(a),10);isNaN(m)||(i[l]=m)}}),e.prices=i}return e.billing_cycle||(e.billing_cycle="monthly"),(e.trial_days===void 0||e.trial_days===null)&&(e.trial_days=0),(e.tier===void 0||e.tier===null)&&(e.tier=1),e},redirectAfterUpdate:!1,redirectAfterCreate:!0,...o},{roles:[s.system.SYSTEM_ROLE],component:n,trash:!0,model:"ecommerce/currency",label:"resource.ecommerce.currencies.label",schema:[{label:"C\xF3digo",attribute:"code",type:String,fieldOptions:{helperText:"E.g: CLP | USD ..."}},{label:"Formato",attribute:"format",type:String,fieldOptions:{helperText:"E.g: 0.00 | 0,0.00 | 0"}},{label:"S\xEDmbolo",attribute:"symbol",type:String},{label:"Enabled",attribute:"is_enabled",type:Boolean},{label:"N\xFAmero formateado",attribute:"formateado",type:Number,custom:!0,inList:!1,component:T}],icon:r(u,{}),group:"System",menu:[{title:"resource.ecommerce.currencies.menu_list",redirect:"/ecommerce/currency"},{title:"\u{1F5D1}",redirect:"/ecommerce/currency/trash"}],mainAction:{title:"resource.ecommerce.currencies.main_action",mode:"create",fn:"virtualhash",redirect:"inline/create"},drawer:!0,drawerOptions:{create:!0,edit:!0,view:!1},mutationMode:"pessimistic",saveButtonAlwaysEnabled:!0,listProps:{storeKey:!1,filterDefaultValues:{show_disabled:!0}},resetSelectedIdsOnLoad:!0},{roles:[s.system.SYSTEM_ROLE],component:n,trash:!0,model:"common/language",label:"resource.common.languages.label",schema:[{label:"Code",attribute:"code",type:String,fieldOptions:{helperText:"ISO 639-1 code (e.g., en, es, pt)"}},{label:"Name",attribute:"name",type:String,fieldOptions:{helperText:"Language name in English"}},{label:"Native Name",attribute:"native_name",type:String,fieldOptions:{helperText:"Language name in native language (e.g., Espa\xF1ol)"}},{label:"Active",attribute:"is_active",type:Boolean},{label:"Translations",attribute:"translations",type:Object,inList:!1,inShow:!0,inEdit:!0,inCreate:!0,fieldOptions:{helperText:"JSON key-value pairs for translations"}}],icon:r(u,{}),group:"System",menu:[{title:"resource.common.languages.menu_list",redirect:"/common/language"},{title:"\u{1F5D1}",redirect:"/common/language/trash"}],mainAction:{title:"resource.common.languages.main_action",mode:"create",fn:"virtualhash",redirect:"inline/create"},drawer:!0,drawerOptions:{create:!0,edit:!0,view:!1},mutationMode:"pessimistic",saveButtonAlwaysEnabled:!0,listProps:{storeKey:!1},resetSelectedIdsOnLoad:!0}];var J=x;export{J as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{jsx as r}from"react/jsx-runtime";import{SelectInput as m}from"react-admin";import o from"./templates/ResourceTemplate";import{TenantImpersonateResource as c}from"./resources/Tenant/ImpersonateTenantResource";import p from"./schemas/tenant_superadmin";import{RutValidator as d}from"./utils/validators";import{DASHAppConstants as a}from"@dashadmin/dash-constants";import f from"./components/avatar/Avatar";import b from"@mui/icons-material/SystemUpdateAlt";import l from"@mui/icons-material/Person";import{lazy as y}from"react";import u from"./contexts/SystemRequestsCache";import h from"./schemas/rolesDataGrid";const i=y(()=>import("@mui/material/TableContainer")),n={drawer:!0,drawerOptions:{view:!0,edit:!1,create:!1},listViewButton:{props:{buttonProps:{variant:"text",size:"small"},label:""}},listEditButton:{props:{buttonProps:{variant:"text",size:"small"},label:""}},listDeleteButton:{confirm:!0,props:{buttonProps:{variant:"text",size:"small"},label:""}}},g=[{roles:[a.system.SYSTEM_ROLE],component:o,customRoutes:e=>c(e),contextComponent:({resourceConfig:e,mode:t,children:s})=>(console.log("TenantFormatsProvider",e,t),t==="list"?s:r(u,{cacheKey:"tenant_formats_cache",apiUrl:"system/tenant/systemSettingFormats",cacheSeconds:300,children:s})),model:"system/tenant",label:"resource.system.tenants.label",schema:p,icon:r(l,{}),group:"resource.groups.system_resources",menu:[{title:"resource.system.tenants.menu_list",redirect:"/system/tenant"},{title:"\u{1F5D1}",redirect:"/system/tenant/trash"},{title:"Impersonar",redirect:"/system/tenant/impersonate"}],refreshAfter:!0,toolbarCreateButton:{enabled:!0},referenceFilters:[{id:"Nombre",label:"resource.system.tenants.filter_name",source:"name",reference:null,optionText:null,alwaysOn:!0}],mainAction:{title:"resource.system.tenants.main_action",fn:"redirect",mode:"create",redirect:"create"},search:!1,exporter:!1,postFormatter:e=>(e.systemMarketplaces&&(e.system_marketplace_ids=e.systemMarketplaces.map(t=>t.id)),e),redirectAfterUpdate:!1,mutationMode:"pessimistic",editProps:{queryOptions:{meta:{forceFetch:!0}},undoable:!1,emptyWhileLoading:!0},dataGridProps:{stickyHeader:!0,rowClick:!1},dataGridWrapper:e=>r(i,{sx:{maxHeight:800},children:e.children}),...n,redirectAfterCreate:!0},{roles:[a.system.SYSTEM_ROLE],component:o,model:"system/role-permissions-bulk",label:"resource.system.roles.label",icon:r(b,{}),group:"resource.groups.system_resources",menu:[{title:"resource.system.roles.menu_list",redirect:"/system/role-permissions-bulk"}],contextComponent:({resourceConfig:e,mode:t,children:s})=>(console.log("TenantSettingsFormatsProvider",e,t),t==="list"?s:r(u,{cacheKey:"system_available_permissions_cache",apiUrl:"system/permission/availablePermissions",cacheSeconds:300,children:s})),referenceFilters:[{id:"Nombre",label:"resource.system.roles.filter_name",source:"name",reference:null,optionText:null,alwaysOn:!0}],toolbarCreateButton:{enabled:!0},mainAction:{title:"resource.system.roles.main_action",fn:"redirect",mode:"create",redirect:"create"},view:!1,schema:h,dataGridProps:{stickyHeader:!0},listEditButton:{enabled:!0},listViewButton:{enabled:!1},toolbarDeleteButton:{enabled:!1},toolbarListButton:{enabled:!1},toolbarSaveButton:{enabled:!0},toolbarExportButton:{enabled:!1},toolbarEditButton:{enabled:!1},formGroupMode:"groups",mutationMode:"pessimistic",editProps:{queryOptions:{meta:{forceFetch:!0}},undoable:!1,emptyWhileLoading:!0},saveButtonAlwaysEnabled:!0,refreshAfter:!0,dataGridWrapper:e=>r(i,{sx:{maxHeight:800},children:e.children}),postFormatter:(e,t)=>(delete e.permissions,e),...n},{roles:[a.system.SYSTEM_ROLE],component:o,trash:!0,isFormData:!0,model:"system/user",group:"resource.groups.system_resources",label:"resource.system.users.label",refreshAfter:!0,referenceFilters:[{id:"search",label:"resource.system.users.filter_search",source:"q",reference:null,optionText:"",alwaysOn:!0}],schema:[{tab:"Datos Usuario",attribute:"avatar",listAttribute:"image_path",label:"Im\xE1gen Usuario",type:String,sortable:!0,inEdit:!0,inCreate:!0,inShow:!0,inList:!1,custom:!0,component:f,processor:"File"},{label:"Nombre",attribute:"name",type:String,tab:"Datos Usuario"},{label:"Apellido",attribute:"lastname",type:String,tab:"Datos Usuario"},{tab:"Datos Usuario",attribute:"public_id",label:"Rut",type:String,fieldProps:{required:!0,showDiv:!0},slotProps:{input:{fullWidth:!0,autoComplete:"off"}},sortable:!0,inEdit:!0,inCreate:!0,inShow:!0,inList:!1,validate:e=>{if(!e)throw Error("El campo es requerido");if(!d(e))throw Error("El Rut es inv\xE1lido")}},{label:"Email",attribute:"email",type:String,tab:"Datos Usuario",slotProps:{input:{fullWidth:!0,"data-testid":"email-input"}}},{label:"Contrase\xF1a",attribute:"password",type:String,isPassword:!0,slotProps:{input:{fullWidth:!0,autoComplete:"new-password"}},inList:!1,tab:"Contrase\xF1a",validate:e=>{if(e&&e.length<6&&e.length>1)throw Error("Min 6 caracteres")}},{label:"Confirmar Contrase\xF1a",attribute:"password_confirmation",type:String,isPassword:!0,slotProps:{input:{fullWidth:!0,autoComplete:"new-password"}},inList:!1,tab:"Contrase\xF1a",validate:(e,t)=>{if(t.password!==""&&t.password!==e)throw Error("Contrase\xF1as no coinciden.")}},{label:"Genear Contrase\xF1a Aleatorea Autom\xE1ticamente",attribute:"generate_password",type:Boolean,inList:!1,tab:"Contrase\xF1a"},{tab:"Datos Usuario",label:"Roles",attribute:"roles",listAttribute:"role_ids",type:"system/role.name",multiple:!0,inList:!1,inShow:!1},{tab:"Datos Usuario",label:"Roles",attribute:"roles",listAttribute:"role_ids",type:"system/role.name",multiple:!0,inEdit:!1,inCreate:!1},{tab:"Datos Usuario",label:"Cliente",attribute:"tenant_id",type:"system/tenant.name",pagination:!1,multiple:!1,component:m,fieldProps:{allowEmpty:!0,emptyText:"Sin cliente"},componentProps:{parse:e=>{if(console.log("Parsing tenant_id value:",e),e===""||e===void 0||e==="null")return console.log("Converting to null"),null;if(typeof e=="string"&&!isNaN(Number(e))){const t=Number(e);return console.log("Converting to number:",t),t}return console.log("Returning original value:",e),e},format:e=>(console.log("Formatting tenant_id value:",e),e??"")},processor:"Null"},{attribute:"active",type:Boolean,inList:!0,label:"Activo",tab:"Datos Usuario",processor:"Boolean"}],icon:r(l,{}),redirectAfterUpdate:!1,showDialogAfterSubmit:!0,showNotifyAfterSubmit:!0,menu:[{title:"resource.system.users.menu_list",redirect:"/system/user"},{title:"\u{1F5D1}",redirect:"/system/user/trash"}],mainAction:{title:"resource.system.users.main_action",redirect:"/system/user/create"},mutationMode:"pessimistic",dataGridProps:{stickyHeader:!0},dataGridWrapper:e=>r(i,{sx:{maxHeight:800},children:e.children}),formPostFormatter:(e,t)=>t,...n}];var L=g;export{L as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{Fragment as I,jsx as t,jsxs as o}from"react/jsx-runtime";import{CustomRoutes as w,NotFound as P}from"react-admin";import{Route as r}from"react-router-dom";import{evalActionPermission as n}from"@dashadmin/dash-auto-admin";import v from"../layout/MotionWrapper";import m from"../components/Redirect";import{ResourceTemplateCreate as D}from"./ResourceTemplateCreate";import{ResourceTemplateEdit as T}from"./ResourceTemplateEdit";import{ResourceTemplateList as A}from"./ResourceTemplateList";import{ResourceTemplateShow as E}from"./ResourceTemplateShow";import{DASHAdminSystemConstants as H}from"@dashadmin/dash-constants";import M from"./TrashTemplate";import{DashResourceProvider as i}from"../contexts/DashResourceContext";import{Resource as _}from"../react-admin-dash/Resource";const y=e=>{const d=e.locale,p=!1,h=n(e,e?.create),R=n(e,e?.edit),c=n(e,e?.view),u=n(e,e?.list),O=n(e,e?.delete),l=H.system.URL_PREFIX,a=e.model,b="*",s=e?.idParamName||"id";return o(I,{children:[o(w,{children:[typeof e.customRoutes=="function"?e.customRoutes(e):null,o(r,{element:t(v,{}),children:[e?.drawer===!0&&e?.drawerOptions?.create!==!1?t(r,{path:l+a+"/create",element:t(i,{resourceConfig:e,children:t(m,{stateHashPattern:l+a+"/inline/create",method:"list",drawerMethod:"create",resourceConfig:e})})}):null,e?.drawer===!0&&e?.drawerOptions?.edit!==!1?t(r,{path:l+a+"/inline",element:t(i,{resourceConfig:e,children:t(m,{stateHashPattern:l+a+"/inline",method:"list",drawerMethod:"edit",resourceConfig:e})})}):null,e?.drawer===!0&&e?.drawerOptions?.view!==!1?t(r,{path:l+a+"/inline/:"+s,element:t(i,{resourceConfig:e,children:t(m,{stateHashPattern:l+a+"/inline/:"+s+"/:method",method:"list",drawerMethod:"edit",resourceConfig:e})})}):null,e?.drawer===!0&&e?.drawerOptions?.edit!==!1?t(r,{path:l+a+"/inline/:"+s+"/edit",element:t(i,{resourceConfig:e,children:t(m,{stateHashPattern:l+a+"/inline/:"+s+"/:method",method:"list",drawerMethod:"edit",resourceConfig:e})})}):null,e?.drawer===!0&&e?.drawerOptions?.view!==!1?t(r,{path:l+a+"/inline/:"+s+"/show",element:t(i,{resourceConfig:e,children:t(m,{stateHashPattern:l+a+"/inline/:"+s+"/:method",method:"list",drawerMethod:"show",resourceConfig:e})})}):null,e?.drawer===!0&&e?.drawerOptions?.create!==!1?t(r,{path:l+a+"/inline/create",element:t(i,{resourceConfig:e,children:t(m,{stateHashPattern:l+a+"/inline/create",method:"list",drawerMethod:"create",resourceConfig:e})})}):null]}),t(r,{path:"*",element:p?o("div",{children:[t("h3",{children:"ResourceTemplate Debug"}),o("p",{children:["Resource: ",e.model]}),o("p",{children:["Current Path: ",window.location.pathname]}),o("p",{children:["Expected: /",e.model]})]}):t(P,{})})]}),e.trash?M(e,d):null,t(_,{options:{label:e.label,group:e.group},name:a,recordRepresentation:e?.recordRepresentation||"name",resourceConfig:e,icon:e?.icon||null,...u&&{list:()=>t(A,{resourceConfig:e,locale:d})},...h&&{create:()=>t(D,{resourceConfig:e,locale:d})},...c&&{show:()=>t(E,{resourceConfig:e,locale:d})},...R&&{edit:()=>t(T,{resourceConfig:e,locale:d})}})]})};var oe=y;export{y as ResourceTemplate,oe as default};
|