@solidxai/core-ui 0.1.5-beta.10 → 0.1.5-beta.12
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/components/auth/GoogleAuthChecking.d.ts.map +1 -1
- package/dist/components/auth/GoogleAuthChecking.js +10 -10
- package/dist/components/auth/GoogleAuthChecking.js.map +1 -1
- package/dist/components/auth/GoogleAuthChecking.tsx +8 -9
- package/dist/components/auth/SolidChangeForcePassword.d.ts.map +1 -1
- package/dist/components/auth/SolidChangeForcePassword.js +9 -10
- package/dist/components/auth/SolidChangeForcePassword.js.map +1 -1
- package/dist/components/auth/SolidChangeForcePassword.tsx +6 -9
- package/dist/components/auth/SolidForgotPassword.d.ts.map +1 -1
- package/dist/components/auth/SolidForgotPassword.js +8 -8
- package/dist/components/auth/SolidForgotPassword.js.map +1 -1
- package/dist/components/auth/SolidForgotPassword.tsx +6 -8
- package/dist/components/auth/SolidInitialLoginOtp.d.ts.map +1 -1
- package/dist/components/auth/SolidInitialLoginOtp.js +57 -57
- package/dist/components/auth/SolidInitialLoginOtp.js.map +1 -1
- package/dist/components/auth/SolidInitialLoginOtp.tsx +10 -11
- package/dist/components/auth/SolidInitiateRegisterOtp.d.ts.map +1 -1
- package/dist/components/auth/SolidInitiateRegisterOtp.js +57 -57
- package/dist/components/auth/SolidInitiateRegisterOtp.js.map +1 -1
- package/dist/components/auth/SolidInitiateRegisterOtp.tsx +10 -11
- package/dist/components/auth/SolidLogin.d.ts.map +1 -1
- package/dist/components/auth/SolidLogin.js +12 -12
- package/dist/components/auth/SolidLogin.js.map +1 -1
- package/dist/components/auth/SolidLogin.tsx +11 -16
- package/dist/components/auth/SolidOTPVerify.d.ts +3 -0
- package/dist/components/auth/SolidOTPVerify.d.ts.map +1 -0
- package/dist/components/auth/SolidOTPVerify.js +67 -0
- package/dist/components/auth/SolidOTPVerify.js.map +1 -0
- package/dist/components/auth/SolidOTPVerify.tsx +133 -0
- package/dist/components/auth/SolidRegister.d.ts.map +1 -1
- package/dist/components/auth/SolidRegister.js +19 -19
- package/dist/components/auth/SolidRegister.js.map +1 -1
- package/dist/components/auth/SolidRegister.tsx +18 -23
- package/dist/components/auth/SolidResetPassword.d.ts.map +1 -1
- package/dist/components/auth/SolidResetPassword.js +15 -15
- package/dist/components/auth/SolidResetPassword.js.map +1 -1
- package/dist/components/auth/SolidResetPassword.tsx +7 -8
- package/dist/components/common/AuthBanner.js.map +1 -1
- package/dist/components/common/GeneralSettings.d.ts.map +1 -1
- package/dist/components/common/GeneralSettings.js +87 -120
- package/dist/components/common/GeneralSettings.js.map +1 -1
- package/dist/components/common/GeneralSettings.tsx +12 -42
- package/dist/components/common/GlobalToast.d.ts +2 -0
- package/dist/components/common/GlobalToast.d.ts.map +1 -0
- package/dist/components/common/GlobalToast.js +25 -0
- package/dist/components/common/GlobalToast.js.map +1 -0
- package/dist/components/common/GlobalToast.tsx +25 -0
- package/dist/components/common/SolidExport.d.ts.map +1 -1
- package/dist/components/common/SolidExport.js +19 -31
- package/dist/components/common/SolidExport.js.map +1 -1
- package/dist/components/common/SolidExport.tsx +7 -19
- package/dist/components/common/SolidFormStepper.d.ts.map +1 -1
- package/dist/components/common/SolidFormStepper.js +41 -41
- package/dist/components/common/SolidFormStepper.js.map +1 -1
- package/dist/components/common/SolidFormStepper.tsx +5 -6
- package/dist/components/core/common/LoadDynamicJsxComponent.d.ts +2 -0
- package/dist/components/core/common/LoadDynamicJsxComponent.d.ts.map +1 -0
- package/dist/components/core/common/LoadDynamicJsxComponent.js +50 -0
- package/dist/components/core/common/LoadDynamicJsxComponent.js.map +1 -0
- package/dist/components/core/common/LoadDynamicJsxComponent.tsx +70 -0
- package/dist/components/core/common/SolidAccountSettings/SolidChangePassword.d.ts.map +1 -1
- package/dist/components/core/common/SolidAccountSettings/SolidChangePassword.js +9 -9
- package/dist/components/core/common/SolidAccountSettings/SolidChangePassword.js.map +1 -1
- package/dist/components/core/common/SolidAccountSettings/SolidChangePassword.tsx +8 -9
- package/dist/components/core/common/SolidAccountSettings/SolidNotifications.d.ts.map +1 -1
- package/dist/components/core/common/SolidAccountSettings/SolidNotifications.js +8 -8
- package/dist/components/core/common/SolidAccountSettings/SolidNotifications.js.map +1 -1
- package/dist/components/core/common/SolidAccountSettings/SolidNotifications.tsx +7 -9
- package/dist/components/core/common/SolidAccountSettings/SolidPersonalInfo.d.ts.map +1 -1
- package/dist/components/core/common/SolidAccountSettings/SolidPersonalInfo.js +11 -11
- package/dist/components/core/common/SolidAccountSettings/SolidPersonalInfo.js.map +1 -1
- package/dist/components/core/common/SolidAccountSettings/SolidPersonalInfo.tsx +10 -11
- package/dist/components/core/common/SolidGenericImport/SolidImportDropzone.d.ts.map +1 -1
- package/dist/components/core/common/SolidGenericImport/SolidImportDropzone.js +9 -9
- package/dist/components/core/common/SolidGenericImport/SolidImportDropzone.js.map +1 -1
- package/dist/components/core/common/SolidGenericImport/SolidImportDropzone.tsx +8 -9
- package/dist/components/core/common/SolidGenericImport/SolidImportTransaction.d.ts.map +1 -1
- package/dist/components/core/common/SolidGenericImport/SolidImportTransaction.js +7 -7
- package/dist/components/core/common/SolidGenericImport/SolidImportTransaction.js.map +1 -1
- package/dist/components/core/common/SolidGenericImport/SolidImportTransaction.tsx +6 -7
- package/dist/components/core/common/SolidGlobalSearchElement.d.ts.map +1 -1
- package/dist/components/core/common/SolidGlobalSearchElement.js +78 -21
- package/dist/components/core/common/SolidGlobalSearchElement.js.map +1 -1
- package/dist/components/core/common/SolidGlobalSearchElement.tsx +65 -10
- package/dist/components/core/extension/solid-core/modelMetadata/list/DeleteModelRowAction.d.ts.map +1 -1
- package/dist/components/core/extension/solid-core/modelMetadata/list/DeleteModelRowAction.js +6 -8
- package/dist/components/core/extension/solid-core/modelMetadata/list/DeleteModelRowAction.js.map +1 -1
- package/dist/components/core/extension/solid-core/modelMetadata/list/DeleteModelRowAction.tsx +5 -9
- package/dist/components/core/extension/solid-core/modelMetadata/list/GenerateModelCodeRowAction.d.ts.map +1 -1
- package/dist/components/core/extension/solid-core/modelMetadata/list/GenerateModelCodeRowAction.js +9 -11
- package/dist/components/core/extension/solid-core/modelMetadata/list/GenerateModelCodeRowAction.js.map +1 -1
- package/dist/components/core/extension/solid-core/modelMetadata/list/GenerateModelCodeRowAction.tsx +5 -10
- package/dist/components/core/extension/solid-core/moduleMetadata/list/DeleteModuleRowAction.d.ts.map +1 -1
- package/dist/components/core/extension/solid-core/moduleMetadata/list/DeleteModuleRowAction.js +5 -6
- package/dist/components/core/extension/solid-core/moduleMetadata/list/DeleteModuleRowAction.js.map +1 -1
- package/dist/components/core/extension/solid-core/moduleMetadata/list/DeleteModuleRowAction.tsx +5 -8
- package/dist/components/core/extension/solid-core/moduleMetadata/list/GenerateModuleCodeRowAction.d.ts.map +1 -1
- package/dist/components/core/extension/solid-core/moduleMetadata/list/GenerateModuleCodeRowAction.js +10 -12
- package/dist/components/core/extension/solid-core/moduleMetadata/list/GenerateModuleCodeRowAction.js.map +1 -1
- package/dist/components/core/extension/solid-core/moduleMetadata/list/GenerateModuleCodeRowAction.tsx +6 -11
- package/dist/components/core/extension/solid-core/roleMetadata/RolePermissionsManyToManyFieldWidget.d.ts.map +1 -1
- package/dist/components/core/extension/solid-core/roleMetadata/RolePermissionsManyToManyFieldWidget.js +11 -6
- package/dist/components/core/extension/solid-core/roleMetadata/RolePermissionsManyToManyFieldWidget.js.map +1 -1
- package/dist/components/core/extension/solid-core/roleMetadata/RolePermissionsManyToManyFieldWidget.tsx +13 -1
- package/dist/components/core/form/SolidFormUserViewLayout.d.ts.map +1 -1
- package/dist/components/core/form/SolidFormUserViewLayout.js +7 -8
- package/dist/components/core/form/SolidFormUserViewLayout.js.map +1 -1
- package/dist/components/core/form/SolidFormUserViewLayout.tsx +5 -7
- package/dist/components/core/form/SolidFormView.d.ts.map +1 -1
- package/dist/components/core/form/SolidFormView.js +12 -21
- package/dist/components/core/form/SolidFormView.js.map +1 -1
- package/dist/components/core/form/SolidFormView.tsx +11 -33
- package/dist/components/core/form/fields/SolidMediaSingleField.d.ts.map +1 -1
- package/dist/components/core/form/fields/SolidMediaSingleField.js +22 -15
- package/dist/components/core/form/fields/SolidMediaSingleField.js.map +1 -1
- package/dist/components/core/form/fields/SolidMediaSingleField.tsx +14 -2
- package/dist/components/core/form/fields/relations/SolidRelationManyToManyField.d.ts.map +1 -1
- package/dist/components/core/form/fields/relations/SolidRelationManyToManyField.js +37 -26
- package/dist/components/core/form/fields/relations/SolidRelationManyToManyField.js.map +1 -1
- package/dist/components/core/form/fields/relations/SolidRelationManyToManyField.tsx +38 -5
- package/dist/components/core/form/fields/relations/SolidRelationManyToOneField.d.ts.map +1 -1
- package/dist/components/core/form/fields/relations/SolidRelationManyToOneField.js +11 -11
- package/dist/components/core/form/fields/relations/SolidRelationManyToOneField.js.map +1 -1
- package/dist/components/core/form/fields/relations/SolidRelationManyToOneField.tsx +9 -11
- package/dist/components/core/kanban/KanbanUserViewLayout.d.ts.map +1 -1
- package/dist/components/core/kanban/KanbanUserViewLayout.js +7 -8
- package/dist/components/core/kanban/KanbanUserViewLayout.js.map +1 -1
- package/dist/components/core/kanban/KanbanUserViewLayout.tsx +4 -6
- package/dist/components/core/kanban/SolidKanbanView.d.ts.map +1 -1
- package/dist/components/core/kanban/SolidKanbanView.js +5 -7
- package/dist/components/core/kanban/SolidKanbanView.js.map +1 -1
- package/dist/components/core/kanban/SolidKanbanView.tsx +4 -9
- package/dist/components/core/list/SolidColumnSelector/SolidListColumnSelector.d.ts.map +1 -1
- package/dist/components/core/list/SolidColumnSelector/SolidListColumnSelector.js +13 -13
- package/dist/components/core/list/SolidColumnSelector/SolidListColumnSelector.js.map +1 -1
- package/dist/components/core/list/SolidColumnSelector/SolidListColumnSelector.tsx +5 -6
- package/dist/components/core/list/SolidListView.d.ts.map +1 -1
- package/dist/components/core/list/SolidListView.js +20 -67
- package/dist/components/core/list/SolidListView.js.map +1 -1
- package/dist/components/core/list/SolidListView.tsx +9 -76
- package/dist/components/core/model/CreateModel.d.ts.map +1 -1
- package/dist/components/core/model/CreateModel.js +15 -25
- package/dist/components/core/model/CreateModel.js.map +1 -1
- package/dist/components/core/model/CreateModel.tsx +12 -32
- package/dist/components/core/model/FieldMetaData.d.ts.map +1 -1
- package/dist/components/core/model/FieldMetaData.js +6 -17
- package/dist/components/core/model/FieldMetaData.js.map +1 -1
- package/dist/components/core/model/FieldMetaData.tsx +5 -26
- package/dist/components/core/model/ModelMetaData.d.ts.map +1 -1
- package/dist/components/core/model/ModelMetaData.js +48 -55
- package/dist/components/core/model/ModelMetaData.js.map +1 -1
- package/dist/components/core/model/ModelMetaData.tsx +4 -22
- package/dist/components/core/module/CreateModule.d.ts.map +1 -1
- package/dist/components/core/module/CreateModule.js +42 -44
- package/dist/components/core/module/CreateModule.js.map +1 -1
- package/dist/components/core/module/CreateModule.tsx +13 -27
- package/dist/components/core/module/ModuleListViewData.d.ts.map +1 -1
- package/dist/components/core/module/ModuleListViewData.js +11 -7
- package/dist/components/core/module/ModuleListViewData.js.map +1 -1
- package/dist/components/core/module/ModuleListViewData.tsx +10 -8
- package/dist/components/core/tree/SolidTreeView.d.ts.map +1 -1
- package/dist/components/core/tree/SolidTreeView.js +32 -69
- package/dist/components/core/tree/SolidTreeView.js.map +1 -1
- package/dist/components/core/tree/SolidTreeView.tsx +8 -47
- package/dist/components/core/users/CreateUser.d.ts.map +1 -1
- package/dist/components/core/users/CreateUser.js +24 -37
- package/dist/components/core/users/CreateUser.js.map +1 -1
- package/dist/components/core/users/CreateUser.tsx +8 -46
- package/dist/components/core/users/UserListView.d.ts.map +1 -1
- package/dist/components/core/users/UserListView.js +9 -16
- package/dist/components/core/users/UserListView.js.map +1 -1
- package/dist/components/core/users/UserListView.tsx +5 -21
- package/dist/components/layout/AdminLayout.d.ts.map +1 -1
- package/dist/components/layout/AdminLayout.js +4 -2
- package/dist/components/layout/AdminLayout.js.map +1 -1
- package/dist/components/layout/AdminLayout.tsx +4 -2
- package/dist/components/layout/AppSidebar.d.ts.map +1 -1
- package/dist/components/layout/AppSidebar.js +1 -2
- package/dist/components/layout/AppSidebar.js.map +1 -1
- package/dist/components/layout/AppSidebar.tsx +0 -2
- package/dist/components/layout/Layout.d.ts.map +1 -1
- package/dist/components/layout/Layout.js +2 -1
- package/dist/components/layout/Layout.js.map +1 -1
- package/dist/components/layout/Layout.tsx +2 -0
- package/dist/components/layout/navbar-one.d.ts.map +1 -1
- package/dist/components/layout/navbar-one.js +1 -2
- package/dist/components/layout/navbar-one.js.map +1 -1
- package/dist/components/layout/navbar-one.tsx +0 -2
- package/dist/components/layout/navbar-two-menu.d.ts.map +1 -1
- package/dist/components/layout/navbar-two-menu.js +50 -24
- package/dist/components/layout/navbar-two-menu.js.map +1 -1
- package/dist/components/layout/navbar-two-menu.tsx +48 -30
- package/dist/index.d.ts +4 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -0
- package/dist/index.js.map +1 -1
- package/dist/index.ts +4 -0
- package/dist/nextAuth/authProviders.d.ts +4 -0
- package/dist/nextAuth/authProviders.d.ts.map +1 -0
- package/dist/nextAuth/authProviders.js +198 -0
- package/dist/nextAuth/authProviders.js.map +1 -0
- package/dist/nextAuth/authProviders.tsx +232 -0
- package/dist/nextAuth/handleLogout.d.ts +2 -0
- package/dist/nextAuth/handleLogout.d.ts.map +1 -0
- package/dist/nextAuth/handleLogout.js +36 -0
- package/dist/nextAuth/handleLogout.js.map +1 -0
- package/dist/nextAuth/handleLogout.tsx +39 -0
- package/dist/nextAuth/refreshAccessToken.d.ts +2 -0
- package/dist/nextAuth/refreshAccessToken.d.ts.map +1 -0
- package/dist/nextAuth/refreshAccessToken.js +24 -0
- package/dist/nextAuth/refreshAccessToken.js.map +1 -0
- package/dist/nextAuth/refreshAccessToken.tsx +28 -0
- package/dist/redux/features/settingsSlice.d.ts +20 -0
- package/dist/redux/features/settingsSlice.d.ts.map +1 -0
- package/dist/redux/features/settingsSlice.js +39 -0
- package/dist/redux/features/settingsSlice.js.map +1 -0
- package/dist/redux/features/settingsSlice.ts +60 -0
- package/dist/redux/features/toastSlice.d.ts +15 -0
- package/dist/redux/features/toastSlice.d.ts.map +1 -0
- package/dist/redux/features/toastSlice.js +20 -0
- package/dist/redux/features/toastSlice.js.map +1 -0
- package/dist/redux/features/toastSlice.ts +35 -0
- package/dist/redux/store/defaultStoreConfig.d.ts +1 -0
- package/dist/redux/store/defaultStoreConfig.d.ts.map +1 -1
- package/dist/redux/store/defaultStoreConfig.js +2 -1
- package/dist/redux/store/defaultStoreConfig.js.map +1 -1
- package/dist/redux/store/defaultStoreConfig.ts +2 -0
- package/package.json +1 -1
- package/dist/components/auth/AuthTabs.d.ts +0 -14
- package/dist/components/auth/AuthTabs.d.ts.map +0 -1
- package/dist/components/auth/AuthTabs.js +0 -19
- package/dist/components/auth/AuthTabs.js.map +0 -1
- package/dist/components/auth/AuthTabs.tsx +0 -38
- package/dist/components/common/SolidErrorStatePage.d.ts +0 -12
- package/dist/components/common/SolidErrorStatePage.d.ts.map +0 -1
- package/dist/components/common/SolidErrorStatePage.js +0 -16
- package/dist/components/common/SolidErrorStatePage.js.map +0 -1
- package/dist/components/common/SolidErrorStatePage.tsx +0 -55
- package/dist/components/core/list/PLAN.md +0 -92
- package/dist/components/core/list/SolidDataTable.d.ts +0 -58
- package/dist/components/core/list/SolidDataTable.d.ts.map +0 -1
- package/dist/components/core/list/SolidDataTable.js +0 -141
- package/dist/components/core/list/SolidDataTable.js.map +0 -1
- package/dist/components/core/list/SolidDataTable.tsx +0 -314
- package/dist/components/core/list/SolidDataTablePagination.d.ts +0 -15
- package/dist/components/core/list/SolidDataTablePagination.d.ts.map +0 -1
- package/dist/components/core/list/SolidDataTablePagination.js +0 -22
- package/dist/components/core/list/SolidDataTablePagination.js.map +0 -1
- package/dist/components/core/list/SolidDataTablePagination.tsx +0 -71
- package/dist/components/layout/AdminTopHeader.d.ts +0 -2
- package/dist/components/layout/AdminTopHeader.d.ts.map +0 -1
- package/dist/components/layout/AdminTopHeader.js +0 -68
- package/dist/components/layout/AdminTopHeader.js.map +0 -1
- package/dist/components/layout/AdminTopHeader.tsx +0 -135
- package/dist/components/shad-cn-ui/SolidAutocomplete.d.ts +0 -24
- package/dist/components/shad-cn-ui/SolidAutocomplete.d.ts.map +0 -1
- package/dist/components/shad-cn-ui/SolidAutocomplete.js +0 -224
- package/dist/components/shad-cn-ui/SolidAutocomplete.js.map +0 -1
- package/dist/components/shad-cn-ui/SolidAutocomplete.tsx +0 -339
- package/dist/components/shad-cn-ui/SolidButton.d.ts +0 -14
- package/dist/components/shad-cn-ui/SolidButton.d.ts.map +0 -1
- package/dist/components/shad-cn-ui/SolidButton.js +0 -36
- package/dist/components/shad-cn-ui/SolidButton.js.map +0 -1
- package/dist/components/shad-cn-ui/SolidButton.tsx +0 -54
- package/dist/components/shad-cn-ui/SolidInput.d.ts +0 -5
- package/dist/components/shad-cn-ui/SolidInput.d.ts.map +0 -1
- package/dist/components/shad-cn-ui/SolidInput.js +0 -35
- package/dist/components/shad-cn-ui/SolidInput.js.map +0 -1
- package/dist/components/shad-cn-ui/SolidInput.tsx +0 -12
- package/dist/components/shad-cn-ui/SolidNumberInput.d.ts +0 -10
- package/dist/components/shad-cn-ui/SolidNumberInput.d.ts.map +0 -1
- package/dist/components/shad-cn-ui/SolidNumberInput.js +0 -33
- package/dist/components/shad-cn-ui/SolidNumberInput.js.map +0 -1
- package/dist/components/shad-cn-ui/SolidNumberInput.tsx +0 -24
- package/dist/components/shad-cn-ui/SolidSelect.d.ts +0 -16
- package/dist/components/shad-cn-ui/SolidSelect.d.ts.map +0 -1
- package/dist/components/shad-cn-ui/SolidSelect.js +0 -26
- package/dist/components/shad-cn-ui/SolidSelect.js.map +0 -1
- package/dist/components/shad-cn-ui/SolidSelect.tsx +0 -65
- package/dist/components/shad-cn-ui/SolidTabs.d.ts +0 -18
- package/dist/components/shad-cn-ui/SolidTabs.d.ts.map +0 -1
- package/dist/components/shad-cn-ui/SolidTabs.js +0 -22
- package/dist/components/shad-cn-ui/SolidTabs.js.map +0 -1
- package/dist/components/shad-cn-ui/SolidTabs.tsx +0 -73
- package/dist/components/shad-cn-ui/index.d.ts +0 -7
- package/dist/components/shad-cn-ui/index.d.ts.map +0 -1
- package/dist/components/shad-cn-ui/index.js +0 -7
- package/dist/components/shad-cn-ui/index.js.map +0 -1
- package/dist/components/shad-cn-ui/index.ts +0 -6
- package/dist/components/solid-ui/SolidButton.d.ts +0 -14
- package/dist/components/solid-ui/SolidButton.d.ts.map +0 -1
- package/dist/components/solid-ui/SolidButton.js +0 -36
- package/dist/components/solid-ui/SolidButton.js.map +0 -1
- package/dist/components/solid-ui/SolidButton.tsx +0 -54
- package/dist/components/solid-ui/SolidTabs.d.ts +0 -18
- package/dist/components/solid-ui/SolidTabs.d.ts.map +0 -1
- package/dist/components/solid-ui/SolidTabs.js +0 -22
- package/dist/components/solid-ui/SolidTabs.js.map +0 -1
- package/dist/components/solid-ui/SolidTabs.tsx +0 -73
- package/dist/components/solid-ui/index.d.ts +0 -3
- package/dist/components/solid-ui/index.d.ts.map +0 -1
- package/dist/components/solid-ui/index.js +0 -3
- package/dist/components/solid-ui/index.js.map +0 -1
- package/dist/components/solid-ui/index.ts +0 -2
- package/dist/resources/images/errors/error-astronaut-404.png +0 -0
- package/dist/resources/shadcn-base.css +0 -3200
|
@@ -6,7 +6,7 @@ import React, {
|
|
|
6
6
|
useRef,
|
|
7
7
|
useState,
|
|
8
8
|
} from "react";
|
|
9
|
-
import {
|
|
9
|
+
import { showToast } from "../../../redux/features/toastSlice";
|
|
10
10
|
import { useDispatch, useSelector } from "react-redux";
|
|
11
11
|
import { showNavbar, toggleNavbar } from "../../../redux/features/navbarSlice";
|
|
12
12
|
import { useGetSolidViewLayoutQuery } from "../../../redux/api/solidViewApi";
|
|
@@ -122,7 +122,6 @@ const DEFAULT_PAGE_SIZE = 25;
|
|
|
122
122
|
// ─── Component ────────────────────────────────────────────────────────────────
|
|
123
123
|
|
|
124
124
|
export const SolidTreeView = forwardRef<SolidTreeViewHandle, SolidTreeViewParams>((params, ref) => {
|
|
125
|
-
const toast = useRef<Toast>(null);
|
|
126
125
|
const dispatch = useDispatch();
|
|
127
126
|
const visibleNavbar = useSelector((state: any) => state.navbarState?.visibleNavbar);
|
|
128
127
|
const searchParams = useSearchParams();
|
|
@@ -915,12 +914,7 @@ export const SolidTreeView = forwardRef<SolidTreeViewHandle, SolidTreeViewParams
|
|
|
915
914
|
|
|
916
915
|
} catch (error: any) {
|
|
917
916
|
setTreeNodes([]);
|
|
918
|
-
|
|
919
|
-
severity: "error",
|
|
920
|
-
summary: "Failed to load tree",
|
|
921
|
-
detail: error?.data?.message || error?.message || "Unable to load grouped data",
|
|
922
|
-
life: 4000,
|
|
923
|
-
});
|
|
917
|
+
dispatch(showToast({ severity: "error", summary: "Failed to load tree", detail: error?.data?.message || error?.message || "Unable to load grouped data", life: 4000 }));
|
|
924
918
|
} finally {
|
|
925
919
|
setTreeLoading(false);
|
|
926
920
|
}
|
|
@@ -1000,12 +994,7 @@ export const SolidTreeView = forwardRef<SolidTreeViewHandle, SolidTreeViewParams
|
|
|
1000
994
|
});
|
|
1001
995
|
}
|
|
1002
996
|
} catch (error: any) {
|
|
1003
|
-
|
|
1004
|
-
severity: "error",
|
|
1005
|
-
summary: "Failed to expand node",
|
|
1006
|
-
detail: error?.data?.message || error?.message || "Unable to load children",
|
|
1007
|
-
life: 4000,
|
|
1008
|
-
});
|
|
997
|
+
dispatch(showToast({ severity: "error", summary: "Failed to expand node", detail: error?.data?.message || error?.message || "Unable to load children", life: 4000 }));
|
|
1009
998
|
setTreeNodes((prev) => updateNodeChildren(prev, nodeKey, []));
|
|
1010
999
|
} finally {
|
|
1011
1000
|
setTreeLoading(false);
|
|
@@ -1131,21 +1120,11 @@ export const SolidTreeView = forwardRef<SolidTreeViewHandle, SolidTreeViewParams
|
|
|
1131
1120
|
deleteManySolidEntities(deleteList)
|
|
1132
1121
|
.unwrap()
|
|
1133
1122
|
.then(() => {
|
|
1134
|
-
|
|
1135
|
-
severity: 'success',
|
|
1136
|
-
summary: 'Deleted',
|
|
1137
|
-
detail: ERROR_MESSAGES.RECORD_DELETE,
|
|
1138
|
-
life: 3000
|
|
1139
|
-
});
|
|
1123
|
+
dispatch(showToast({ severity: 'success', summary: 'Deleted', detail: ERROR_MESSAGES.RECORD_DELETE, life: 3000 }));
|
|
1140
1124
|
setDeleteRecordsDialogVisible(false);
|
|
1141
1125
|
})
|
|
1142
1126
|
.catch((error) => {
|
|
1143
|
-
|
|
1144
|
-
severity: 'error',
|
|
1145
|
-
summary: 'Delete Failed',
|
|
1146
|
-
detail: error?.data?.message,
|
|
1147
|
-
life: 4000
|
|
1148
|
-
});
|
|
1127
|
+
dispatch(showToast({ severity: 'error', summary: 'Delete Failed', detail: error?.data?.message, life: 4000 }));
|
|
1149
1128
|
});
|
|
1150
1129
|
};
|
|
1151
1130
|
|
|
@@ -1455,28 +1434,12 @@ export const SolidTreeView = forwardRef<SolidTreeViewHandle, SolidTreeViewParams
|
|
|
1455
1434
|
|
|
1456
1435
|
if (response?.data?.statusCode === 200) {
|
|
1457
1436
|
setDeleteEntity(false);
|
|
1458
|
-
|
|
1459
|
-
severity: "success",
|
|
1460
|
-
summary: ERROR_MESSAGES.DELETED,
|
|
1461
|
-
detail: ERROR_MESSAGES.ENTITY_DELETE,
|
|
1462
|
-
life: 3000,
|
|
1463
|
-
});
|
|
1437
|
+
dispatch(showToast({ severity: "success", summary: ERROR_MESSAGES.DELETED, detail: ERROR_MESSAGES.ENTITY_DELETE, life: 3000 }));
|
|
1464
1438
|
} else {
|
|
1465
|
-
|
|
1466
|
-
severity: "error",
|
|
1467
|
-
summary: ERROR_MESSAGES.DELETE_FAIELD,
|
|
1468
|
-
detail: response?.error?.data?.error,
|
|
1469
|
-
sticky: true, // stays until user closes
|
|
1470
|
-
});
|
|
1439
|
+
dispatch(showToast({ severity: "error", summary: ERROR_MESSAGES.DELETE_FAIELD, detail: response?.error?.data?.error, sticky: true }));
|
|
1471
1440
|
}
|
|
1472
1441
|
} catch (error: any) {
|
|
1473
|
-
|
|
1474
|
-
severity: "error",
|
|
1475
|
-
summary: ERROR_MESSAGES.DELETE_FAIELD,
|
|
1476
|
-
detail: ERROR_MESSAGES.SOMETHING_WRONG,
|
|
1477
|
-
sticky: true, // stays until user closes
|
|
1478
|
-
|
|
1479
|
-
});
|
|
1442
|
+
dispatch(showToast({ severity: "error", summary: ERROR_MESSAGES.DELETE_FAIELD, detail: ERROR_MESSAGES.SOMETHING_WRONG, sticky: true }));
|
|
1480
1443
|
}
|
|
1481
1444
|
};
|
|
1482
1445
|
|
|
@@ -1593,8 +1556,6 @@ export const SolidTreeView = forwardRef<SolidTreeViewHandle, SolidTreeViewParams
|
|
|
1593
1556
|
|
|
1594
1557
|
return (
|
|
1595
1558
|
<div className="page-parent-wrapper">
|
|
1596
|
-
<Toast ref={toast} />
|
|
1597
|
-
|
|
1598
1559
|
{/* ── Header ── */}
|
|
1599
1560
|
<div className="page-header flex-column lg:flex-row">
|
|
1600
1561
|
<div className="flex justify-content-between w-full">
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CreateUser.d.ts","sourceRoot":"","sources":["../../../../src/components/core/users/CreateUser.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"CreateUser.d.ts","sourceRoot":"","sources":["../../../../src/components/core/users/CreateUser.tsx"],"names":[],"mappings":"AAkCA,QAAA,MAAM,UAAU,qBAAsB,GAAG,4CA+axC,CAAC;AAGF,eAAe,UAAU,CAAC"}
|
|
@@ -60,14 +60,15 @@ import { InputText } from "primereact/inputtext";
|
|
|
60
60
|
import { Message } from "primereact/message";
|
|
61
61
|
import { Panel } from "primereact/panel";
|
|
62
62
|
import { Password } from "primereact/password";
|
|
63
|
-
import { Toast } from "primereact/toast";
|
|
64
63
|
import { classNames } from "primereact/utils";
|
|
65
|
-
import { useEffect,
|
|
64
|
+
import { useEffect, useState } from "react";
|
|
65
|
+
import { useDispatch } from "react-redux";
|
|
66
66
|
import * as Yup from "yup";
|
|
67
|
+
import { showToast } from "../../../redux/features/toastSlice";
|
|
67
68
|
var CreateUser = function (_a) {
|
|
68
69
|
var _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r;
|
|
69
70
|
var data = _a.data, params = _a.params;
|
|
70
|
-
var
|
|
71
|
+
var dispatch = useDispatch();
|
|
71
72
|
var pathname = usePathname();
|
|
72
73
|
var router = useRouter();
|
|
73
74
|
var _s = useState([]), selectedRoles = _s[0], setSelectedRoles = _s[1];
|
|
@@ -154,15 +155,8 @@ var CreateUser = function (_a) {
|
|
|
154
155
|
case 1:
|
|
155
156
|
errors = _a.sent();
|
|
156
157
|
errorMessages = Object.values(errors);
|
|
157
|
-
if (errorMessages.length > 0
|
|
158
|
-
|
|
159
|
-
severity: "error",
|
|
160
|
-
summary: ERROR_MESSAGES.SEND_REPORT,
|
|
161
|
-
// sticky: true,
|
|
162
|
-
life: 3000,
|
|
163
|
-
//@ts-ignore
|
|
164
|
-
content: function (props) { return (_jsx("div", { className: "flex flex-column align-items-left", style: { flex: "1" }, children: errorMessages.map(function (m, index) { return (_jsx("div", { className: "flex align-items-center gap-2", children: _jsx("span", { className: "font-bold text-900", children: m }) }, index)); }) })); },
|
|
165
|
-
});
|
|
158
|
+
if (errorMessages.length > 0) {
|
|
159
|
+
dispatch(showToast({ severity: "error", summary: ERROR_MESSAGES.SEND_REPORT, detail: errorMessages.join(', '), life: 3000 }));
|
|
166
160
|
}
|
|
167
161
|
return [2 /*return*/];
|
|
168
162
|
}
|
|
@@ -173,7 +167,6 @@ var CreateUser = function (_a) {
|
|
|
173
167
|
}
|
|
174
168
|
useEffect(function () {
|
|
175
169
|
var handleError = function (errorToast) {
|
|
176
|
-
var _a;
|
|
177
170
|
var errorMessage = [ERROR_MESSAGES.ERROR_OCCURED];
|
|
178
171
|
if (isFetchBaseQueryErrorWithErrorResponse(errorToast)) {
|
|
179
172
|
errorMessage = errorToast.data.message;
|
|
@@ -181,14 +174,8 @@ var CreateUser = function (_a) {
|
|
|
181
174
|
else {
|
|
182
175
|
errorMessage = [ERROR_MESSAGES.SOMETHING_WRONG];
|
|
183
176
|
}
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
summary: ERROR_MESSAGES.ERROR,
|
|
187
|
-
detail: errorMessage,
|
|
188
|
-
sticky: true,
|
|
189
|
-
//@ts-ignore
|
|
190
|
-
content: function (props) { return (_jsx("div", { className: "flex flex-column align-items-left", style: { flex: "1" }, children: Array.isArray(errorMessage) ? (errorMessage.map(function (message, index) { return (_jsx("div", { className: "flex align-items-center gap-2", children: _jsx("span", { className: "font-bold text-900", children: message.trim() }) }, index)); })) : (_jsx("div", { className: "flex align-items-center gap-2", children: _jsx("span", { className: "font-bold text-900", children: errorMessage === null || errorMessage === void 0 ? void 0 : errorMessage.trim() }) })) })); },
|
|
191
|
-
});
|
|
177
|
+
var detail = Array.isArray(errorMessage) ? errorMessage.join(', ') : errorMessage;
|
|
178
|
+
dispatch(showToast({ severity: 'error', summary: ERROR_MESSAGES.ERROR, detail: detail }));
|
|
192
179
|
};
|
|
193
180
|
// Check and handle errors from each API operation
|
|
194
181
|
if (userCreateError) {
|
|
@@ -242,22 +229,22 @@ var CreateUser = function (_a) {
|
|
|
242
229
|
router.back();
|
|
243
230
|
}
|
|
244
231
|
}, [isSuccess, isDeleteUserSuceess, isUpdateuserSuceess]);
|
|
245
|
-
return (
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
232
|
+
return (_jsx("div", { className: "solid-form-wrapper", children: _jsx("div", { className: "solid-form-section", children: _jsxs("form", { onSubmit: formik.handleSubmit, children: [_jsx("div", { className: "solid-form-header", children: params.id === "new" ? (_jsxs(_Fragment, { children: [_jsxs("div", { className: "flex align-items-center gap-3", children: [_jsx(BackButton, {}), _jsx("div", { className: "form-wrapper-title", children: "Create User" })] }), _jsxs("div", { className: "gap-3 flex", children: [formik.dirty &&
|
|
233
|
+
_jsx(Button, { label: "Save", size: "small", type: "submit" }), _jsx(CancelButton, {})] })] })) : (_jsxs(_Fragment, { children: [_jsxs("div", { className: "flex align-items-center gap-3", children: [_jsx(BackButton, {}), _jsx("div", { className: "form-wrapper-title", children: "Update User" })] }), _jsx("div", { children: _jsxs("div", { className: "gap-3 flex", children: [formik.dirty &&
|
|
234
|
+
_jsx(Button, { label: "Save", size: "small", type: "submit" }), data &&
|
|
235
|
+
_jsx(Button, { outlined: true, label: "Delete", size: "small", severity: "danger", type: "button", onClick: function () { return deleteUser(data.id); } }), _jsx(CancelButton, {})] }) })] })) }), _jsx(SolidFormHeader, {}), _jsx("div", { className: "px-4 py-3 md:p-4 solid-form-content", children: _jsx("div", { className: "grid", children: _jsxs("div", { className: "col-12 lg:col-10 xl:col-8 mx-auto", children: [_jsx(Panel, { header: "Basic Info", className: "solid-column-panel", children: _jsxs("div", { className: "grid formgrid mt-3", children: [_jsxs("div", { className: "field col-12 md:col-6 flex flex-column gap-2", children: [_jsx("label", { htmlFor: "fullName", className: "form-field-label", children: "Full Name" }), _jsx(InputText, { type: "text", id: "fullName", name: "fullName", autoComplete: "off", onChange: formik.handleChange, value: formik.values.fullName, className: classNames("", {
|
|
236
|
+
"p-invalid": formik.touched.fullName && formik.errors.fullName,
|
|
237
|
+
}) }), isFormFieldValid(formik, "fullName") && (_jsx(Message, { severity: "error", text: (_c = (_b = formik === null || formik === void 0 ? void 0 : formik.errors) === null || _b === void 0 ? void 0 : _b.fullName) === null || _c === void 0 ? void 0 : _c.toString() }))] }), _jsxs("div", { className: "field col-12 md:col-6 flex flex-column gap-2 mt-3 md:mt-3", children: [_jsx("label", { htmlFor: "username", className: "form-field-label", children: "Username" }), _jsx(InputText, { type: "text", id: "username", name: "username", autoComplete: "off", disabled: data ? true : false, onChange: formik.handleChange, value: formik.values.username, className: classNames("", {
|
|
238
|
+
"p-invalid": formik.touched.username && formik.errors.username,
|
|
239
|
+
}) }), isFormFieldValid(formik, "username") && (_jsx(Message, { severity: "error", text: (_e = (_d = formik === null || formik === void 0 ? void 0 : formik.errors) === null || _d === void 0 ? void 0 : _d.username) === null || _e === void 0 ? void 0 : _e.toString() }))] }), _jsxs("div", { className: "field col-12 md:col-6 flex flex-column gap-1 mt-4", children: [_jsx("label", { htmlFor: "email", className: "form-field-label", children: "Email" }), _jsx(InputText, { type: "text", id: "email", name: "email", autoComplete: "off", disabled: data ? true : false, onChange: formik.handleChange, value: formik.values.email, className: classNames("", {
|
|
240
|
+
"p-invalid": formik.touched.email && formik.errors.email,
|
|
241
|
+
}) }), isFormFieldValid(formik, "email") && (_jsx(Message, { severity: "error", text: (_g = (_f = formik === null || formik === void 0 ? void 0 : formik.errors) === null || _f === void 0 ? void 0 : _f.email) === null || _g === void 0 ? void 0 : _g.toString() }))] }), _jsxs("div", { className: "field col-12 md:col-6 flex flex-column gap-1 mt-4", children: [_jsx("label", { htmlFor: "mobile", className: "form-field-label", children: "Mobile" }), _jsx(InputText, { type: "text", id: "mobile", name: "mobile", autoComplete: "off", onChange: formik.handleChange, value: formik.values.mobile, className: classNames("", {
|
|
242
|
+
"p-invalid": formik.touched.mobile && formik.errors.mobile,
|
|
243
|
+
}) }), isFormFieldValid(formik, "mobile ") && (_jsx(Message, { severity: "error", text: (_j = (_h = formik === null || formik === void 0 ? void 0 : formik.errors) === null || _h === void 0 ? void 0 : _h.mobile) === null || _j === void 0 ? void 0 : _j.toString() }))] }), params.id === "new" && _jsxs(_Fragment, { children: [_jsxs("div", { className: "field col-12 md:col-6 flex flex-column gap-2 py-4", children: [_jsx("label", { htmlFor: "Password", className: "form-field-label", children: "Password" }), _jsx(Password, { id: "password", name: "password", autoComplete: "off", "aria-autocomplete": "none", value: formik.values.password, onChange: formik.handleChange, onBlur: formik.handleBlur, toggleMask: true, invalid: isFormFieldValid(formik, "password"), inputClassName: "w-full", feedback: false }), isFormFieldValid(formik, "password") && (_jsx(Message, { severity: "error", text: (_l = (_k = formik === null || formik === void 0 ? void 0 : formik.errors) === null || _k === void 0 ? void 0 : _k.password) === null || _l === void 0 ? void 0 : _l.toString() }))] }), _jsxs("div", { className: "field col-12 md:col-6 flex flex-column gap-2 pb-4 md:pb-0 md:my-4", children: [_jsx("label", { htmlFor: "Confirm Password", className: "form-field-label", children: "Confirm Password" }), _jsx(Password, { id: "confirmPassword", name: "confirmPassword", autoComplete: "off", "aria-autocomplete": "none", value: formik.values.confirmPassword, onChange: formik.handleChange, onBlur: formik.handleBlur, toggleMask: true, invalid: isFormFieldValid(formik, "confirmPassword"), inputClassName: "w-full", feedback: false }), isFormFieldValid(formik, "confirmPassword") && (_jsx(Message, { severity: "error", text: (_o = (_m = formik === null || formik === void 0 ? void 0 : formik.errors) === null || _m === void 0 ? void 0 : _m.confirmPassword) === null || _o === void 0 ? void 0 : _o.toString() }))] })] }), params.id !== "new" && (_jsxs("div", { className: "field col-12 md:col-6 flex flex-column gap-1 mt-4", children: [_jsx("label", { htmlFor: "failedLoginAttempts", className: "form-field-label", children: "Failed Login Attempts" }), _jsx(InputText, { type: "number", id: "failedLoginAttempts", name: "failedLoginAttempts", autoComplete: "off", onChange: formik.handleChange, value: formik.values.failedLoginAttempts, className: classNames("", {
|
|
244
|
+
"p-invalid": formik.touched.failedLoginAttempts &&
|
|
245
|
+
formik.errors.failedLoginAttempts,
|
|
246
|
+
}) }), formik.touched.failedLoginAttempts &&
|
|
247
|
+
formik.errors.failedLoginAttempts && (_jsx(Message, { severity: "error", text: (_p = formik.errors.failedLoginAttempts) === null || _p === void 0 ? void 0 : _p.toString() })), _jsx("small", { className: "text-color-secondary", children: "Your account has been locked due to repeated unsuccessful login attempts. Please contact your system admin." })] }))] }) }), _jsx(Panel, { toggleable: true, header: "Roles", className: "solid-column-panel mt-5", children: _jsx("div", { className: "formgrid grid mt-4", children: ((_q = rolesData === null || rolesData === void 0 ? void 0 : rolesData.data) === null || _q === void 0 ? void 0 : _q.records) && ((_r = rolesData === null || rolesData === void 0 ? void 0 : rolesData.data) === null || _r === void 0 ? void 0 : _r.records.map(function (role, i) { return (_jsxs("div", { className: "field col-6 flex gap-2 ".concat(i >= 2 ? 'mt-3' : ''), children: [_jsx(Checkbox, { inputId: role.name, checked: selectedRoles.includes(role.name), onChange: function () { return handleCheckboxChange(role.name); } }), _jsxs("label", { htmlFor: role.name, children: [" ", role.name] })] }, role.name)); })) }) })] }) }) })] }) }) }));
|
|
261
248
|
};
|
|
262
249
|
export default CreateUser;
|
|
263
250
|
//# sourceMappingURL=CreateUser.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CreateUser.js","sourceRoot":"","sources":["../../../../src/components/core/users/CreateUser.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,OAAO,EAAE,UAAU,EAAE,MAAM,uCAAuC,CAAC;AACnE,OAAO,EAAE,YAAY,EAAE,MAAM,yCAAyC,CAAC;AAEvE,OAAO,EAAE,eAAe,EAAE,MAAM,4CAA4C,CAAC;AAE7E,OAAO,EAAE,cAAc,EAAE,MAAM,mCAAmC,CAAC;AACnE,OAAO,EAAE,0BAA0B,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AAC/F,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AAEnE,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AACnC,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AACzD,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AACrD,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAC3C,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAE/C,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAC7C,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACzC,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAC/C,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACzC,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACpD,OAAO,KAAK,GAAG,MAAM,KAAK,CAAC;AAS3B,IAAM,UAAU,GAAG,UAAC,EAAqB;;QAAnB,IAAI,UAAA,EAAE,MAAM,YAAA;IAEhC,IAAM,KAAK,GAAG,MAAM,CAAQ,IAAI,CAAC,CAAC;IAClC,IAAM,QAAQ,GAAG,WAAW,EAAE,CAAC;IAC/B,IAAM,MAAM,GAAG,SAAS,EAAE,CAAC;IACrB,IAAA,KAAoC,QAAQ,CAAW,EAAE,CAAC,EAAzD,aAAa,QAAA,EAAE,gBAAgB,QAA0B,CAAC;IAE3D,IAAA,KAAkF,0BAA0B,EAAE,EAA7G,eAAe,QAAA,EAAE,UAA4D,EAA1D,SAAS,eAAA,EAAS,eAAe,WAAA,EAAE,SAAS,eAAA,EAAQ,IAAI,UAAkC,CAAC;IAC/G,IAAA,KASF,qBAAqB,EAAE,EARzB,UAAU,QAAA,EACV,UAMC,EALY,cAAc,eAAA,EACd,mBAAmB,eAAA,EACrB,iBAAiB,aAAA,EACnB,eAAe,WAAA,EAChB,WAAW,UAEM,CAAC;IAEtB,IAAA,KAMA,qBAAqB,EAAE,EANtB,UAAU,QAAA,EAAE,UAMlB,EALY,aAAa,eAAA,EACb,mBAAmB,eAAA,EACrB,iBAAiB,aAAA,EACnB,eAAe,WAAA,EAChB,WAAW,UACU,CAAC;IAEtB,IAAM,SAAS,GAAK,gBAAgB,CAAC,EAAE,CAAC,KAAzB,CAA0B;IACjD,UAAU;IACV,oBAAoB;IACpB,2DAA2D;IAC3D,uCAAuC;IAEvC,SAAS,CAAC;QACR,IAAI,IAAI,IAAI,IAAI,CAAC,KAAK,EAAE;YACtB,IAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,UAAC,IAAS,IAAK,OAAA,IAAI,CAAC,IAAI,EAAT,CAAS,CAAC,CAAC;YAC3D,gBAAgB,CAAC,SAAS,CAAC,CAAC;SAC7B;IACH,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;IAEX,IAAM,oBAAoB,GAAG,UAAC,QAAgB;QAC5C,IAAI,YAAY,CAAC;QACjB,IAAI,aAAa,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE;YACpC,YAAY,GAAG,aAAa,CAAC,MAAM,CAAC,UAAC,IAAI,IAAK,OAAA,IAAI,KAAK,QAAQ,EAAjB,CAAiB,CAAC,CAAC;SAClE;aAAM;YACL,YAAY,mCAAO,aAAa,UAAE,QAAQ,SAAC,CAAC;SAC7C;QACD,gBAAgB,CAAC,YAAY,CAAC,CAAC;QAC/B,MAAM,CAAC,eAAe,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC,iBAAiB;QACxD,MAAM,CAAC,aAAa,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;IAC9C,CAAC,CAAC;IAEF,IAAM,aAAa,GAAG;QACpB,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE;QACnC,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE;QACnC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE;QAC7B,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE;QAC/B,QAAQ,EAAE,EAAE;QACZ,eAAe,EAAE,EAAE;QACnB,mBAAmB,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC;KACzD,CAAC;IAEF,IAAM,gBAAgB,GAAG,GAAG,CAAC,MAAM,CAAC;QAClC,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QACjC,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE;aACnB,QAAQ,CAAC,sBAAsB,CAAC;QACnC,2EAA2E;QAC3E,6EAA6E;QAC7E,YAAY;QACZ,yBAAyB;QACzB,oFAAoF;QACpF,0BAA0B;QAC1B,YAAY;QACZ,iBAAiB;QACjB,wCAAwC;QACxC,KAAK;QACL,KAAK,EAAE,GAAG;aACP,MAAM,EAAE;aACR,KAAK,CAAC,cAAc,CAAC,aAAa,CAAC,eAAe,CAAC,CAAC;aACpD,QAAQ,CAAC,cAAc,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;QACnD,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,cAAc,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;QAC9E,eAAe,EAAE,GAAG,CAAC,MAAM,EAAE;aAC1B,IAAI,CAAC,UAAU,EAAE;YAChB,EAAE,EAAE,UAAC,GAAQ,IAAK,OAAA,CAAC,CAAC,GAAG,EAAL,CAAK;YACvB,IAAI,EAAE,UAAC,MAAM;gBACX,OAAA,MAAM;qBACH,KAAK,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,EAAE,cAAc,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC;qBACzE,QAAQ,EAAE;YAFb,CAEa;YACf,SAAS,EAAE,UAAC,MAAM,IAAK,OAAA,MAAM,CAAC,WAAW,EAAE,CAAC,QAAQ,EAAE,EAA/B,CAA+B;SACvD,CAAC;QACJ,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,cAAc,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;QACtE,mBAAmB,EAAE,GAAG,CAAC,MAAM,EAAE;aAC9B,SAAS,CAAC,wCAAwC,CAAC;aACnD,QAAQ,EAAE;aACV,SAAS,CAAC,UAAC,KAAK,EAAE,aAAa;YAC9B,OAAA,aAAa,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK;QAAnC,CAAmC,CACpC;KACJ,CAAC,CAAC;IAGH,IAAM,gBAAgB,GAAG,UAAC,MAAW,EAAE,SAAiB;QACtD,OAAO,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IAC/D,CAAC,CAAC;IAGF,IAAM,SAAS,GAAG,UAAO,MAAgB;;;;wBACxB,qBAAM,MAAM,CAAC,YAAY,EAAE,EAAA;;oBAApC,MAAM,GAAG,SAA2B;oBACpC,aAAa,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;oBAE5C,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,IAAI,KAAK,CAAC,OAAO,EAAE;wBAC7C,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;4BACjB,QAAQ,EAAE,OAAO;4BACjB,OAAO,EAAE,cAAc,CAAC,WAAW;4BACnC,gBAAgB;4BAChB,IAAI,EAAE,IAAI;4BACV,YAAY;4BACZ,OAAO,EAAE,UAAC,KAAK,IAAK,OAAA,CAClB,cACE,SAAS,EAAC,mCAAmC,EAC7C,KAAK,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,YAEnB,aAAa,CAAC,GAAG,CAAC,UAAC,CAAM,EAAE,KAAa,IAAK,OAAA,CAC5C,cAAK,SAAS,EAAC,+BAA+B,YAC5C,eAAM,SAAS,EAAC,oBAAoB,YAAE,CAAC,GAAQ,IADG,KAAK,CAEnD,CACP,EAJ6C,CAI7C,CAAC,GACE,CACP,EAXmB,CAWnB;yBACF,CAAC,CAAC;qBACJ;;;;SACF,CAAC;IAEF,SAAS,sCAAsC,CAAC,KAAU;QACxD,OAAO,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,MAAM,IAAI,KAAK,IAAI,SAAS,IAAI,KAAK,CAAC,IAAI,CAAC;IAC1F,CAAC;IAED,SAAS,CAAC;QACR,IAAM,WAAW,GAAG,UAAC,UAAe;;YAClC,IAAI,YAAY,GAAQ,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC;YAEvD,IAAI,sCAAsC,CAAC,UAAU,CAAC,EAAE;gBACtD,YAAY,GAAG,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC;aACxC;iBAAM;gBACL,YAAY,GAAG,CAAC,cAAc,CAAC,eAAe,CAAC,CAAC;aACjD;YAED,MAAA,KAAK,CAAC,OAAO,0CAAE,IAAI,CAAC;gBAClB,QAAQ,EAAE,OAAO;gBACjB,OAAO,EAAE,cAAc,CAAC,KAAK;gBAC7B,MAAM,EAAE,YAAY;gBACpB,MAAM,EAAE,IAAI;gBACZ,YAAY;gBACZ,OAAO,EAAE,UAAC,KAAK,IAAK,OAAA,CAClB,cAAK,SAAS,EAAC,mCAAmC,EAAC,KAAK,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,YACpE,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAC7B,YAAY,CAAC,GAAG,CAAC,UAAC,OAAO,EAAE,KAAK,IAAK,OAAA,CACnC,cAAK,SAAS,EAAC,+BAA+B,YAC5C,eAAM,SAAS,EAAC,oBAAoB,YAAE,OAAO,CAAC,IAAI,EAAE,GAAQ,IADV,KAAK,CAEnD,CACP,EAJoC,CAIpC,CAAC,CACH,CAAC,CAAC,CAAC,CACF,cAAK,SAAS,EAAC,+BAA+B,YAC5C,eAAM,SAAS,EAAC,oBAAoB,YAAE,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,IAAI,EAAE,GAAQ,GAC9D,CACP,GACG,CACP,EAdmB,CAcnB;aACF,CAAC,CAAC;QACL,CAAC,CAAC;QAEF,kDAAkD;QAClD,IAAI,eAAe,EAAE;YACnB,WAAW,CAAC,eAAe,CAAC,CAAA;SAC7B;QACD,IAAI,eAAe,EAAE;YACnB,WAAW,CAAC,eAAe,CAAC,CAAA;SAC7B;IAEH,CAAC,EAAE;QACD,eAAe,EAAE,eAAe;KACjC,CAAC,CAAC;IAGH,IAAM,MAAM,GAAG,SAAS,CAAC;QACvB,aAAa,eAAA;QACb,gBAAgB,kBAAA;QAChB,kBAAkB,EAAE,IAAI;QACxB,QAAQ,EAAE,UAAO,MAAM;;;gBACrB,IAAI,IAAI,EAAE;oBACF,QAAQ,GAAQ;wBACpB,QAAQ,EAAE,MAAM,CAAC,QAAQ;wBACzB,QAAQ,EAAE,MAAM,CAAC,QAAQ;wBACzB,KAAK,EAAE,MAAM,CAAC,KAAK;wBACnB,MAAM,EAAE,MAAM,CAAC,MAAM;wBACrB,KAAK,EAAE,aAAa;wBACpB,mBAAmB,EAAE,MAAM,CAAC,mBAAmB;qBAChD,CAAC;oBACF,IAAI,MAAM,CAAC,QAAQ,EAAE;wBACnB,QAAQ,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;qBACrC;oBACD,UAAU,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;iBAE7C;qBAAM;oBACC,QAAQ,GAAG;wBACf,QAAQ,EAAE,MAAM,CAAC,QAAQ;wBACzB,QAAQ,EAAE,MAAM,CAAC,QAAQ;wBACzB,KAAK,EAAE,MAAM,CAAC,KAAK;wBACnB,MAAM,EAAE,MAAM,CAAC,MAAM;wBACrB,QAAQ,EAAE,MAAM,CAAC,QAAQ;wBACzB,KAAK,EAAE,aAAa;wBACpB,mBAAmB,EAAE,MAAM,CAAC,mBAAmB;qBAChD,CAAC;oBAEF,eAAe,CAAC,QAAQ,CAAC,CAAA;iBAC1B;;;aACF;KACF,CAAC,CAAC;IAEH,SAAS,CAAC;QACR,IAAI,SAAS,IAAI,IAAI,IAAI,mBAAmB,KAAK,IAAI,IAAI,mBAAmB,KAAK,IAAI,EAAE;YACrF,MAAM,CAAC,IAAI,EAAE,CAAC;SACf;IACH,CAAC,EAAE,CAAC,SAAS,EAAE,mBAAmB,EAAE,mBAAmB,CAAC,CAAC,CAAA;IAEzD,OAAO,CACL,eAAK,SAAS,EAAC,oBAAoB,aACjC,KAAC,KAAK,IAAC,GAAG,EAAE,KAAK,GAAI,EACrB,cAAK,SAAS,EAAC,oBAAoB,YACjC,gBAAM,QAAQ,EAAE,MAAM,CAAC,YAAY,aACjC,cAAK,SAAS,EAAC,mBAAmB,YAC/B,MAAM,CAAC,EAAE,KAAK,KAAK,CAAC,CAAC,CAAC,CACrB,8BACE,eAAK,SAAS,EAAC,+BAA+B,aAC5C,KAAC,UAAU,KAAG,EACd,cAAK,SAAS,EAAC,oBAAoB,4BAAkB,IACjD,EACN,eAAK,SAAS,EAAC,YAAY,aACxB,MAAM,CAAC,KAAK;gDACX,KAAC,MAAM,IAAC,KAAK,EAAC,MAAM,EAAC,IAAI,EAAC,OAAO,EAAC,IAAI,EAAC,QAAQ,GAAG,EAEpD,KAAC,YAAY,KAAG,IACZ,IACL,CACJ,CAAC,CAAC,CAAC,CACF,8BACE,eAAK,SAAS,EAAC,+BAA+B,aAC5C,KAAC,UAAU,KAAG,EACd,cAAK,SAAS,EAAC,oBAAoB,4BAAkB,IACjD,EACN,wBACE,eAAK,SAAS,EAAC,YAAY,aACxB,MAAM,CAAC,KAAK;oDACX,KAAC,MAAM,IAAC,KAAK,EAAC,MAAM,EAAC,IAAI,EAAC,OAAO,EAAC,IAAI,EAAC,QAAQ,GAAG,EAEnD,IAAI;oDACH,KAAC,MAAM,IAAC,QAAQ,QAAC,KAAK,EAAC,QAAQ,EAAC,IAAI,EAAC,OAAO,EAAC,QAAQ,EAAC,QAAQ,EAAC,IAAI,EAAC,QAAQ,EAAC,OAAO,EAAE,cAAM,OAAA,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,EAAnB,CAAmB,GAAI,EAErH,KAAC,YAAY,KAAG,IACZ,GACF,IACL,CACJ,GACG,EACN,KAAC,eAAe,KAAG,EAInB,cAAK,SAAS,EAAC,qCAAqC,YAClD,cAAK,SAAS,EAAC,MAAM,YACnB,eAAK,SAAS,EAAC,mCAAmC,aAEhD,KAAC,KAAK,IAAC,MAAM,EAAC,YAAY,EAAC,SAAS,EAAC,oBAAoB,YACvD,eAAK,SAAS,EAAC,oBAAoB,aACjC,eAAK,SAAS,EAAC,8CAA8C,aAC3D,gBAAO,OAAO,EAAC,UAAU,EAAC,SAAS,EAAC,kBAAkB,0BAE9C,EACR,KAAC,SAAS,IACR,IAAI,EAAC,MAAM,EACX,EAAE,EAAC,UAAU,EACb,IAAI,EAAC,UAAU,EACf,YAAY,EAAE,KAAK,EACnB,QAAQ,EAAE,MAAM,CAAC,YAAY,EAC7B,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,QAAQ,EAC7B,SAAS,EAAE,UAAU,CAAC,EAAE,EAAE;oEACxB,WAAW,EAAE,MAAM,CAAC,OAAO,CAAC,QAAQ,IAAI,MAAM,CAAC,MAAM,CAAC,QAAQ;iEAC/D,CAAC,GACF,EACD,gBAAgB,CAAC,MAAM,EAAE,UAAU,CAAC,IAAI,CACvC,KAAC,OAAO,IACN,QAAQ,EAAC,OAAO,EAChB,IAAI,EAAE,MAAA,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,MAAM,0CAAE,QAAQ,0CAAE,QAAQ,EAAE,GAC1C,CACH,IACG,EACN,eAAK,SAAS,EAAC,2DAA2D,aACxE,gBAAO,OAAO,EAAC,UAAU,EAAC,SAAS,EAAC,kBAAkB,yBAE9C,EACR,KAAC,SAAS,IACR,IAAI,EAAC,MAAM,EACX,EAAE,EAAC,UAAU,EACb,IAAI,EAAC,UAAU,EACf,YAAY,EAAE,KAAK,EACnB,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,EAC7B,QAAQ,EAAE,MAAM,CAAC,YAAY,EAC7B,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,QAAQ,EAC7B,SAAS,EAAE,UAAU,CAAC,EAAE,EAAE;oEACxB,WAAW,EAAE,MAAM,CAAC,OAAO,CAAC,QAAQ,IAAI,MAAM,CAAC,MAAM,CAAC,QAAQ;iEAC/D,CAAC,GACF,EACD,gBAAgB,CAAC,MAAM,EAAE,UAAU,CAAC,IAAI,CACvC,KAAC,OAAO,IACN,QAAQ,EAAC,OAAO,EAChB,IAAI,EAAE,MAAA,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,MAAM,0CAAE,QAAQ,0CAAE,QAAQ,EAAE,GAC1C,CACH,IACG,EACN,eAAK,SAAS,EAAC,mDAAmD,aAChE,gBAAO,OAAO,EAAC,OAAO,EAAC,SAAS,EAAC,kBAAkB,sBAE3C,EACR,KAAC,SAAS,IACR,IAAI,EAAC,MAAM,EACX,EAAE,EAAC,OAAO,EACV,IAAI,EAAC,OAAO,EACZ,YAAY,EAAE,KAAK,EACnB,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,EAC7B,QAAQ,EAAE,MAAM,CAAC,YAAY,EAC7B,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,KAAK,EAC1B,SAAS,EAAE,UAAU,CAAC,EAAE,EAAE;oEACxB,WAAW,EAAE,MAAM,CAAC,OAAO,CAAC,KAAK,IAAI,MAAM,CAAC,MAAM,CAAC,KAAK;iEACzD,CAAC,GACF,EACD,gBAAgB,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI,CACpC,KAAC,OAAO,IACN,QAAQ,EAAC,OAAO,EAChB,IAAI,EAAE,MAAA,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,MAAM,0CAAE,KAAK,0CAAE,QAAQ,EAAE,GACvC,CACH,IACG,EACN,eAAK,SAAS,EAAC,mDAAmD,aAChE,gBAAO,OAAO,EAAC,QAAQ,EAAC,SAAS,EAAC,kBAAkB,uBAE5C,EACR,KAAC,SAAS,IACR,IAAI,EAAC,MAAM,EACX,EAAE,EAAC,QAAQ,EACX,IAAI,EAAC,QAAQ,EACb,YAAY,EAAE,KAAK,EACnB,QAAQ,EAAE,MAAM,CAAC,YAAY,EAC7B,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,EAC3B,SAAS,EAAE,UAAU,CAAC,EAAE,EAAE;oEACxB,WAAW,EAAE,MAAM,CAAC,OAAO,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM;iEAC3D,CAAC,GACF,EACD,gBAAgB,CAAC,MAAM,EAAE,SAAS,CAAC,IAAI,CACtC,KAAC,OAAO,IACN,QAAQ,EAAC,OAAO,EAChB,IAAI,EAAE,MAAA,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,MAAM,0CAAE,MAAM,0CAAE,QAAQ,EAAE,GACxC,CACH,IACG,EACL,MAAM,CAAC,EAAE,KAAK,KAAK,IAAI,8BACtB,eAAK,SAAS,EAAC,mDAAmD,aAChE,gBAAO,OAAO,EAAC,UAAU,EAAC,SAAS,EAAC,kBAAkB,yBAE9C,EACR,KAAC,QAAQ,IACP,EAAE,EAAC,UAAU,EACb,IAAI,EAAC,UAAU,EACf,YAAY,EAAC,KAAK,uBACA,MAAM,EACxB,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,QAAQ,EAC7B,QAAQ,EAAE,MAAM,CAAC,YAAY,EAC7B,MAAM,EAAE,MAAM,CAAC,UAAU,EACzB,UAAU,QACV,OAAO,EAAE,gBAAgB,CAAC,MAAM,EAAE,UAAU,CAAC,EAC7C,cAAc,EAAC,QAAQ,EACvB,QAAQ,EAAE,KAAK,GACf,EACD,gBAAgB,CAAC,MAAM,EAAE,UAAU,CAAC,IAAI,CACvC,KAAC,OAAO,IACN,QAAQ,EAAC,OAAO,EAChB,IAAI,EAAE,MAAA,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,MAAM,0CAAE,QAAQ,0CAAE,QAAQ,EAAE,GAC1C,CACH,IACG,EACN,eAAK,SAAS,EAAC,mEAAmE,aAChF,gBAAO,OAAO,EAAC,kBAAkB,EAAC,SAAS,EAAC,kBAAkB,iCAEtD,EACR,KAAC,QAAQ,IACP,EAAE,EAAC,iBAAiB,EACpB,IAAI,EAAC,iBAAiB,EACtB,YAAY,EAAC,KAAK,uBACA,MAAM,EACxB,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,eAAe,EACpC,QAAQ,EAAE,MAAM,CAAC,YAAY,EAC7B,MAAM,EAAE,MAAM,CAAC,UAAU,EACzB,UAAU,QACV,OAAO,EAAE,gBAAgB,CAAC,MAAM,EAAE,iBAAiB,CAAC,EACpD,cAAc,EAAC,QAAQ,EACvB,QAAQ,EAAE,KAAK,GACf,EACD,gBAAgB,CAAC,MAAM,EAAE,iBAAiB,CAAC,IAAI,CAC9C,KAAC,OAAO,IACN,QAAQ,EAAC,OAAO,EAChB,IAAI,EAAE,MAAA,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,MAAM,0CAAE,eAAe,0CAAE,QAAQ,EAAE,GACjD,CACH,IACG,IACL,EACF,MAAM,CAAC,EAAE,KAAK,KAAK,IAAI,CACtB,eAAK,SAAS,EAAC,mDAAmD,aAChE,gBAAO,OAAO,EAAC,qBAAqB,EAAC,SAAS,EAAC,kBAAkB,sCAEzD,EACR,KAAC,SAAS,IACR,IAAI,EAAC,QAAQ,EACb,EAAE,EAAC,qBAAqB,EACxB,IAAI,EAAC,qBAAqB,EAC1B,YAAY,EAAC,KAAK,EAClB,QAAQ,EAAE,MAAM,CAAC,YAAY,EAC7B,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,mBAAmB,EACxC,SAAS,EAAE,UAAU,CAAC,EAAE,EAAE;oEACxB,WAAW,EACT,MAAM,CAAC,OAAO,CAAC,mBAAmB;wEAClC,MAAM,CAAC,MAAM,CAAC,mBAAmB;iEACpC,CAAC,GACF,EACD,MAAM,CAAC,OAAO,CAAC,mBAAmB;gEACjC,MAAM,CAAC,MAAM,CAAC,mBAAmB,IAAI,CACnC,KAAC,OAAO,IACN,QAAQ,EAAC,OAAO,EAChB,IAAI,EAAE,MAAA,MAAM,CAAC,MAAM,CAAC,mBAAmB,0CAAE,QAAQ,EAAE,GACnD,CACH,EACH,gBAAO,SAAS,EAAC,sBAAsB,4HAE/B,IACJ,CACP,IACG,GACA,EAKR,KAAC,KAAK,IAAC,UAAU,QAAC,MAAM,EAAC,OAAO,EAAC,SAAS,EAAC,yBAAyB,YAClE,cAAK,SAAS,EAAC,oBAAoB,YAChC,CAAA,MAAA,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,IAAI,0CAAE,OAAO,MAAI,MAAA,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,IAAI,0CAAE,OAAO,CAAC,GAAG,CAAC,UAAC,IAAS,EAAE,CAAS,IAAK,OAAA,CAClF,eAAqB,SAAS,EAAE,iCAA0B,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAE,aAC9E,KAAC,QAAQ,IACP,OAAO,EAAE,IAAI,CAAC,IAAI,EAClB,OAAO,EAAE,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,EAC1C,QAAQ,EAAE,cAAM,OAAA,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,EAA/B,CAA+B,GAC/C,EACF,iBAAO,OAAO,EAAE,IAAI,CAAC,IAAI,kBAAI,IAAI,CAAC,IAAI,IAAS,KANvC,IAAI,CAAC,IAAI,CAOb,CACP,EATmF,CASnF,CAAC,CAAA,GACE,GACA,IACJ,GACF,GACF,IACD,GACH,IACF,CACP,CAAC;AACJ,CAAC,CAAC;AAGF,eAAe,UAAU,CAAC","sourcesContent":["\nimport { BackButton } from \"../../../components/common/BackButton\";\nimport { CancelButton } from \"../../../components/common/CancelButton\";\nimport { SolidBreadcrumb } from \"../../../components/common/SolidBreadcrumb\";\nimport { SolidFormHeader } from \"../../../components/common/SolidFormHeader\";\nimport { SolidFormStepper } from \"../../../components/common/SolidFormStepper\";\nimport { ERROR_MESSAGES } from \"../../../constants/error-messages\";\nimport { useRegisterPrivateMutation, useUpdateUserMutation } from \"../../../redux/api/authApi\";\nimport { useGetrolesQuery } from \"../../../redux/api/roleApi\";\nimport { useDeleteUserMutation } from \"../../../redux/api/userApi\";\nimport { FetchBaseQueryError } from \"@reduxjs/toolkit/dist/query\";\nimport { useFormik } from \"formik\";\nimport { usePathname } from \"../../../hooks/usePathname\";\nimport { useRouter } from \"../../../hooks/useRouter\";\nimport { Button } from \"primereact/button\";\nimport { Checkbox } from \"primereact/checkbox\";\nimport { Divider } from \"primereact/divider\";\nimport { InputText } from \"primereact/inputtext\";\nimport { Message } from \"primereact/message\";\nimport { Panel } from \"primereact/panel\";\nimport { Password } from \"primereact/password\";\nimport { Toast } from \"primereact/toast\";\nimport { classNames } from \"primereact/utils\";\nimport { useEffect, useRef, useState } from \"react\";\nimport * as Yup from \"yup\";\n\n\ninterface ErrorResponseData {\n message: string;\n statusCode: number;\n error: string;\n}\n\nconst CreateUser = ({ data, params }: any) => {\n\n const toast = useRef<Toast>(null);\n const pathname = usePathname();\n const router = useRouter();\n const [selectedRoles, setSelectedRoles] = useState<string[]>([]);\n\n const [registerPrivate, { isLoading, error: userCreateError, isSuccess, data: user }] = useRegisterPrivateMutation();\n const [\n updateUser,\n {\n isLoading: isuserUpdating,\n isSuccess: isUpdateuserSuceess,\n isError: isuserUpdateError,\n error: userUpdateError,\n data: updateduser,\n },\n ] = useUpdateUserMutation();\n\n const [deleteUser, {\n isLoading: isUserDeleted,\n isSuccess: isDeleteUserSuceess,\n isError: isUserDeleteError,\n error: UserDeleteError,\n data: DeletedUser,\n },] = useDeleteUserMutation();\n\n const { data: rolesData } = useGetrolesQuery(\"\");\n // const [\n // createrolebulk,\n // { isLoading, isSuccess, isError, error, data: roles },\n // ] = useCreateuserrolebulkMutation();\n\n useEffect(() => {\n if (data && data.roles) {\n const userRoles = data.roles.map((role: any) => role.name);\n setSelectedRoles(userRoles);\n }\n }, [data]);\n\n const handleCheckboxChange = (roleName: string) => {\n let updatedRoles;\n if (selectedRoles.includes(roleName)) {\n updatedRoles = selectedRoles.filter((name) => name !== roleName);\n } else {\n updatedRoles = [...selectedRoles, roleName];\n }\n setSelectedRoles(updatedRoles);\n formik.setFieldTouched('roles', true); // fake \"touched\"\n formik.setFieldValue('roles', updatedRoles);\n };\n\n const initialValues = {\n fullName: data ? data.fullName : \"\",\n username: data ? data.username : \"\",\n email: data ? data.email : \"\",\n mobile: data ? data.mobile : \"\",\n password: \"\",\n confirmPassword: \"\",\n failedLoginAttempts: data ? data.failedLoginAttempts : 0,\n };\n\n const validationSchema = Yup.object({\n fullName: Yup.string().required(),\n username: Yup.string()\n .required('Username is required'), // Must be provided\n // .min(3, 'Username must be at least 3 characters long') // Minimum length\n // .max(20, 'Username cannot be longer than 20 characters') // Maximum length\n // .matches(\n // /^[a-zA-Z0-9_.-]*$/,\n // 'Username can only contain letters, numbers, underscores, periods, and hyphens'\n // ) // Allowed characters\n // .matches(\n // /^[a-zA-Z]/,\n // 'Username must start with a letter'\n // ),\n email: Yup\n .string()\n .email(ERROR_MESSAGES.FIELD_INVALID('email address'))\n .required(ERROR_MESSAGES.FIELD_REUQIRED('Email')),\n password: Yup.string().min(6, ERROR_MESSAGES.PASSWORD_CHARACTER(6)).nullable(),\n confirmPassword: Yup.string()\n .when('password', {\n is: (val: any) => !!val, // only validate if password is filled\n then: (schema) =>\n schema\n .oneOf([Yup.ref('password')], ERROR_MESSAGES.FIELD_MUST_MATCH('Password'))\n .nullable(),\n otherwise: (schema) => schema.notRequired().nullable(),\n }),\n mobile: Yup.number().required(ERROR_MESSAGES.FIELD_REUQIRED('Mobile')),\n failedLoginAttempts: Yup.number()\n .typeError(\"Failed Login Attempts must be a number\")\n .nullable()\n .transform((value, originalValue) =>\n originalValue === \"\" ? null : value\n ),\n });\n\n\n const isFormFieldValid = (formik: any, fieldName: string) => {\n return formik.touched[fieldName] && formik.errors[fieldName];\n };\n\n\n const showError = async (submit?: boolean) => {\n const errors = await formik.validateForm();\n const errorMessages = Object.values(errors);\n\n if (errorMessages.length > 0 && toast.current) {\n toast.current.show({\n severity: \"error\",\n summary: ERROR_MESSAGES.SEND_REPORT,\n // sticky: true,\n life: 3000,\n //@ts-ignore\n content: (props) => (\n <div\n className=\"flex flex-column align-items-left\"\n style={{ flex: \"1\" }}\n >\n {errorMessages.map((m: any, index: number) => (\n <div className=\"flex align-items-center gap-2\" key={index}>\n <span className=\"font-bold text-900\">{m}</span>\n </div>\n ))}\n </div>\n ),\n });\n }\n };\n\n function isFetchBaseQueryErrorWithErrorResponse(error: any): error is FetchBaseQueryError & { data: ErrorResponseData } {\n return error && typeof error === 'object' && 'data' in error && 'message' in error.data;\n }\n\n useEffect(() => {\n const handleError = (errorToast: any) => {\n let errorMessage: any = [ERROR_MESSAGES.ERROR_OCCURED];\n\n if (isFetchBaseQueryErrorWithErrorResponse(errorToast)) {\n errorMessage = errorToast.data.message;\n } else {\n errorMessage = [ERROR_MESSAGES.SOMETHING_WRONG];\n }\n\n toast.current?.show({\n severity: 'error',\n summary: ERROR_MESSAGES.ERROR,\n detail: errorMessage,\n sticky: true,\n //@ts-ignore\n content: (props) => (\n <div className=\"flex flex-column align-items-left\" style={{ flex: \"1\" }}>\n {Array.isArray(errorMessage) ? (\n errorMessage.map((message, index) => (\n <div className=\"flex align-items-center gap-2\" key={index}>\n <span className=\"font-bold text-900\">{message.trim()}</span>\n </div>\n ))\n ) : (\n <div className=\"flex align-items-center gap-2\">\n <span className=\"font-bold text-900\">{errorMessage?.trim()}</span>\n </div>\n )}\n </div>\n ),\n });\n };\n\n // Check and handle errors from each API operation\n if (userCreateError) {\n handleError(userCreateError)\n }\n if (userUpdateError) {\n handleError(userUpdateError)\n }\n\n }, [\n userCreateError, userUpdateError\n ]);\n\n\n const formik = useFormik({\n initialValues,\n validationSchema,\n enableReinitialize: true,\n onSubmit: async (values) => {\n if (data) {\n const userData: any = {\n fullName: values.fullName,\n username: values.username,\n email: values.email,\n mobile: values.mobile,\n roles: selectedRoles,\n failedLoginAttempts: values.failedLoginAttempts,\n };\n if (values.password) {\n userData.password = values.password;\n }\n updateUser({ id: data.id, data: userData });\n\n } else {\n const userData = {\n fullName: values.fullName,\n username: values.username,\n email: values.email,\n mobile: values.mobile,\n password: values.password,\n roles: selectedRoles,\n failedLoginAttempts: values.failedLoginAttempts,\n };\n\n registerPrivate(userData)\n }\n },\n });\n\n useEffect(() => {\n if (isSuccess == true || isDeleteUserSuceess === true || isUpdateuserSuceess === true) {\n router.back();\n }\n }, [isSuccess, isDeleteUserSuceess, isUpdateuserSuceess])\n\n return (\n <div className=\"solid-form-wrapper\">\n <Toast ref={toast} />\n <div className=\"solid-form-section\" >\n <form onSubmit={formik.handleSubmit}>\n <div className=\"solid-form-header\">\n {params.id === \"new\" ? (\n <>\n <div className=\"flex align-items-center gap-3\">\n <BackButton />\n <div className=\"form-wrapper-title\">Create User</div>\n </div>\n <div className=\"gap-3 flex\">\n {formik.dirty &&\n <Button label=\"Save\" size=\"small\" type=\"submit\" />\n }\n <CancelButton />\n </div>\n </>\n ) : (\n <>\n <div className=\"flex align-items-center gap-3\">\n <BackButton />\n <div className=\"form-wrapper-title\">Update User</div>\n </div>\n <div>\n <div className=\"gap-3 flex\">\n {formik.dirty &&\n <Button label=\"Save\" size=\"small\" type=\"submit\" />\n }\n {data &&\n <Button outlined label=\"Delete\" size=\"small\" severity=\"danger\" type=\"button\" onClick={() => deleteUser(data.id)} />\n }\n <CancelButton />\n </div>\n </div>\n </>\n )}\n </div>\n <SolidFormHeader />\n {/* <div className=\"solid-form-stepper\">\n <SolidFormStepper />\n </div> */}\n <div className=\"px-4 py-3 md:p-4 solid-form-content\">\n <div className=\"grid\">\n <div className=\"col-12 lg:col-10 xl:col-8 mx-auto\">\n {/* <p className=\"form-wrapper-heading text-base\">Basic Info</p> */}\n <Panel header=\"Basic Info\" className=\"solid-column-panel\">\n <div className=\"grid formgrid mt-3\">\n <div className=\"field col-12 md:col-6 flex flex-column gap-2\">\n <label htmlFor=\"fullName\" className=\"form-field-label\">\n Full Name\n </label>\n <InputText\n type=\"text\"\n id=\"fullName\"\n name=\"fullName\"\n autoComplete={\"off\"}\n onChange={formik.handleChange}\n value={formik.values.fullName}\n className={classNames(\"\", {\n \"p-invalid\": formik.touched.fullName && formik.errors.fullName,\n })}\n />\n {isFormFieldValid(formik, \"fullName\") && (\n <Message\n severity=\"error\"\n text={formik?.errors?.fullName?.toString()}\n />\n )}\n </div>\n <div className=\"field col-12 md:col-6 flex flex-column gap-2 mt-3 md:mt-3\">\n <label htmlFor=\"username\" className=\"form-field-label\">\n Username\n </label>\n <InputText\n type=\"text\"\n id=\"username\"\n name=\"username\"\n autoComplete={\"off\"}\n disabled={data ? true : false}\n onChange={formik.handleChange}\n value={formik.values.username}\n className={classNames(\"\", {\n \"p-invalid\": formik.touched.username && formik.errors.username,\n })}\n />\n {isFormFieldValid(formik, \"username\") && (\n <Message\n severity=\"error\"\n text={formik?.errors?.username?.toString()}\n />\n )}\n </div>\n <div className=\"field col-12 md:col-6 flex flex-column gap-1 mt-4\">\n <label htmlFor=\"email\" className=\"form-field-label\">\n Email\n </label>\n <InputText\n type=\"text\"\n id=\"email\"\n name=\"email\"\n autoComplete={\"off\"}\n disabled={data ? true : false}\n onChange={formik.handleChange}\n value={formik.values.email}\n className={classNames(\"\", {\n \"p-invalid\": formik.touched.email && formik.errors.email,\n })}\n />\n {isFormFieldValid(formik, \"email\") && (\n <Message\n severity=\"error\"\n text={formik?.errors?.email?.toString()}\n />\n )}\n </div>\n <div className=\"field col-12 md:col-6 flex flex-column gap-1 mt-4\">\n <label htmlFor=\"mobile\" className=\"form-field-label\">\n Mobile\n </label>\n <InputText\n type=\"text\"\n id=\"mobile\"\n name=\"mobile\"\n autoComplete={\"off\"}\n onChange={formik.handleChange}\n value={formik.values.mobile}\n className={classNames(\"\", {\n \"p-invalid\": formik.touched.mobile && formik.errors.mobile,\n })}\n />\n {isFormFieldValid(formik, \"mobile \") && (\n <Message\n severity=\"error\"\n text={formik?.errors?.mobile?.toString()}\n />\n )}\n </div>\n {params.id === \"new\" && <>\n <div className=\"field col-12 md:col-6 flex flex-column gap-2 py-4\">\n <label htmlFor=\"Password\" className=\"form-field-label\">\n Password\n </label>\n <Password\n id=\"password\"\n name=\"password\"\n autoComplete=\"off\"\n aria-autocomplete=\"none\"\n value={formik.values.password}\n onChange={formik.handleChange}\n onBlur={formik.handleBlur}\n toggleMask\n invalid={isFormFieldValid(formik, \"password\")}\n inputClassName=\"w-full\"\n feedback={false}\n />\n {isFormFieldValid(formik, \"password\") && (\n <Message\n severity=\"error\"\n text={formik?.errors?.password?.toString()}\n />\n )}\n </div>\n <div className=\"field col-12 md:col-6 flex flex-column gap-2 pb-4 md:pb-0 md:my-4\">\n <label htmlFor=\"Confirm Password\" className=\"form-field-label\">\n Confirm Password\n </label>\n <Password\n id=\"confirmPassword\"\n name=\"confirmPassword\"\n autoComplete=\"off\"\n aria-autocomplete=\"none\"\n value={formik.values.confirmPassword}\n onChange={formik.handleChange}\n onBlur={formik.handleBlur}\n toggleMask\n invalid={isFormFieldValid(formik, \"confirmPassword\")}\n inputClassName=\"w-full\"\n feedback={false}\n />\n {isFormFieldValid(formik, \"confirmPassword\") && (\n <Message\n severity=\"error\"\n text={formik?.errors?.confirmPassword?.toString()}\n />\n )}\n </div>\n </>}\n {params.id !== \"new\" && (\n <div className=\"field col-12 md:col-6 flex flex-column gap-1 mt-4\">\n <label htmlFor=\"failedLoginAttempts\" className=\"form-field-label\">\n Failed Login Attempts\n </label>\n <InputText\n type=\"number\"\n id=\"failedLoginAttempts\"\n name=\"failedLoginAttempts\"\n autoComplete=\"off\"\n onChange={formik.handleChange}\n value={formik.values.failedLoginAttempts}\n className={classNames(\"\", {\n \"p-invalid\":\n formik.touched.failedLoginAttempts &&\n formik.errors.failedLoginAttempts,\n })}\n />\n {formik.touched.failedLoginAttempts &&\n formik.errors.failedLoginAttempts && (\n <Message\n severity=\"error\"\n text={formik.errors.failedLoginAttempts?.toString()}\n />\n )}\n <small className=\"text-color-secondary\">\n Your account has been locked due to repeated unsuccessful login attempts. Please contact your system admin.\n </small>\n </div>\n )}\n </div>\n </Panel>\n\n {/* <Divider /> */}\n {/* <p className=\"form-wrapper-heading text-base\" style={{ fontSize: 16 }}>Roles</p> */}\n\n <Panel toggleable header=\"Roles\" className=\"solid-column-panel mt-5\">\n <div className=\"formgrid grid mt-4\">\n {rolesData?.data?.records && rolesData?.data?.records.map((role: any, i: number) => (\n <div key={role.name} className={`field col-6 flex gap-2 ${i >= 2 ? 'mt-3' : ''}`}>\n <Checkbox\n inputId={role.name}\n checked={selectedRoles.includes(role.name)}\n onChange={() => handleCheckboxChange(role.name)}\n />\n <label htmlFor={role.name}> {role.name}</label>\n </div>\n ))}\n </div>\n </Panel>\n </div>\n </div>\n </div>\n </form>\n </div>\n </div>\n );\n};\n\n\nexport default CreateUser;\n"]}
|
|
1
|
+
{"version":3,"file":"CreateUser.js","sourceRoot":"","sources":["../../../../src/components/core/users/CreateUser.tsx"],"names":[],"mappings":"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","sourcesContent":["\nimport { BackButton } from \"../../../components/common/BackButton\";\nimport { CancelButton } from \"../../../components/common/CancelButton\";\nimport { SolidBreadcrumb } from \"../../../components/common/SolidBreadcrumb\";\nimport { SolidFormHeader } from \"../../../components/common/SolidFormHeader\";\nimport { SolidFormStepper } from \"../../../components/common/SolidFormStepper\";\nimport { ERROR_MESSAGES } from \"../../../constants/error-messages\";\nimport { useRegisterPrivateMutation, useUpdateUserMutation } from \"../../../redux/api/authApi\";\nimport { useGetrolesQuery } from \"../../../redux/api/roleApi\";\nimport { useDeleteUserMutation } from \"../../../redux/api/userApi\";\nimport { FetchBaseQueryError } from \"@reduxjs/toolkit/dist/query\";\nimport { useFormik } from \"formik\";\nimport { usePathname } from \"../../../hooks/usePathname\";\nimport { useRouter } from \"../../../hooks/useRouter\";\nimport { Button } from \"primereact/button\";\nimport { Checkbox } from \"primereact/checkbox\";\nimport { Divider } from \"primereact/divider\";\nimport { InputText } from \"primereact/inputtext\";\nimport { Message } from \"primereact/message\";\nimport { Panel } from \"primereact/panel\";\nimport { Password } from \"primereact/password\";\nimport { classNames } from \"primereact/utils\";\nimport { useEffect, useState } from \"react\";\nimport { useDispatch } from \"react-redux\";\nimport * as Yup from \"yup\";\nimport { showToast } from \"../../../redux/features/toastSlice\";\n\n\ninterface ErrorResponseData {\n message: string;\n statusCode: number;\n error: string;\n}\n\nconst CreateUser = ({ data, params }: any) => {\n\n const dispatch = useDispatch();\n const pathname = usePathname();\n const router = useRouter();\n const [selectedRoles, setSelectedRoles] = useState<string[]>([]);\n\n const [registerPrivate, { isLoading, error: userCreateError, isSuccess, data: user }] = useRegisterPrivateMutation();\n const [\n updateUser,\n {\n isLoading: isuserUpdating,\n isSuccess: isUpdateuserSuceess,\n isError: isuserUpdateError,\n error: userUpdateError,\n data: updateduser,\n },\n ] = useUpdateUserMutation();\n\n const [deleteUser, {\n isLoading: isUserDeleted,\n isSuccess: isDeleteUserSuceess,\n isError: isUserDeleteError,\n error: UserDeleteError,\n data: DeletedUser,\n },] = useDeleteUserMutation();\n\n const { data: rolesData } = useGetrolesQuery(\"\");\n // const [\n // createrolebulk,\n // { isLoading, isSuccess, isError, error, data: roles },\n // ] = useCreateuserrolebulkMutation();\n\n useEffect(() => {\n if (data && data.roles) {\n const userRoles = data.roles.map((role: any) => role.name);\n setSelectedRoles(userRoles);\n }\n }, [data]);\n\n const handleCheckboxChange = (roleName: string) => {\n let updatedRoles;\n if (selectedRoles.includes(roleName)) {\n updatedRoles = selectedRoles.filter((name) => name !== roleName);\n } else {\n updatedRoles = [...selectedRoles, roleName];\n }\n setSelectedRoles(updatedRoles);\n formik.setFieldTouched('roles', true); // fake \"touched\"\n formik.setFieldValue('roles', updatedRoles);\n };\n\n const initialValues = {\n fullName: data ? data.fullName : \"\",\n username: data ? data.username : \"\",\n email: data ? data.email : \"\",\n mobile: data ? data.mobile : \"\",\n password: \"\",\n confirmPassword: \"\",\n failedLoginAttempts: data ? data.failedLoginAttempts : 0,\n };\n\n const validationSchema = Yup.object({\n fullName: Yup.string().required(),\n username: Yup.string()\n .required('Username is required'), // Must be provided\n // .min(3, 'Username must be at least 3 characters long') // Minimum length\n // .max(20, 'Username cannot be longer than 20 characters') // Maximum length\n // .matches(\n // /^[a-zA-Z0-9_.-]*$/,\n // 'Username can only contain letters, numbers, underscores, periods, and hyphens'\n // ) // Allowed characters\n // .matches(\n // /^[a-zA-Z]/,\n // 'Username must start with a letter'\n // ),\n email: Yup\n .string()\n .email(ERROR_MESSAGES.FIELD_INVALID('email address'))\n .required(ERROR_MESSAGES.FIELD_REUQIRED('Email')),\n password: Yup.string().min(6, ERROR_MESSAGES.PASSWORD_CHARACTER(6)).nullable(),\n confirmPassword: Yup.string()\n .when('password', {\n is: (val: any) => !!val, // only validate if password is filled\n then: (schema) =>\n schema\n .oneOf([Yup.ref('password')], ERROR_MESSAGES.FIELD_MUST_MATCH('Password'))\n .nullable(),\n otherwise: (schema) => schema.notRequired().nullable(),\n }),\n mobile: Yup.number().required(ERROR_MESSAGES.FIELD_REUQIRED('Mobile')),\n failedLoginAttempts: Yup.number()\n .typeError(\"Failed Login Attempts must be a number\")\n .nullable()\n .transform((value, originalValue) =>\n originalValue === \"\" ? null : value\n ),\n });\n\n\n const isFormFieldValid = (formik: any, fieldName: string) => {\n return formik.touched[fieldName] && formik.errors[fieldName];\n };\n\n\n const showError = async (submit?: boolean) => {\n const errors = await formik.validateForm();\n const errorMessages = Object.values(errors);\n\n if (errorMessages.length > 0) {\n dispatch(showToast({ severity: \"error\", summary: ERROR_MESSAGES.SEND_REPORT, detail: errorMessages.join(', '), life: 3000 }));\n }\n };\n\n function isFetchBaseQueryErrorWithErrorResponse(error: any): error is FetchBaseQueryError & { data: ErrorResponseData } {\n return error && typeof error === 'object' && 'data' in error && 'message' in error.data;\n }\n\n useEffect(() => {\n const handleError = (errorToast: any) => {\n let errorMessage: any = [ERROR_MESSAGES.ERROR_OCCURED];\n\n if (isFetchBaseQueryErrorWithErrorResponse(errorToast)) {\n errorMessage = errorToast.data.message;\n } else {\n errorMessage = [ERROR_MESSAGES.SOMETHING_WRONG];\n }\n\n const detail = Array.isArray(errorMessage) ? errorMessage.join(', ') : errorMessage;\n dispatch(showToast({ severity: 'error', summary: ERROR_MESSAGES.ERROR, detail }));\n };\n\n // Check and handle errors from each API operation\n if (userCreateError) {\n handleError(userCreateError)\n }\n if (userUpdateError) {\n handleError(userUpdateError)\n }\n\n }, [\n userCreateError, userUpdateError\n ]);\n\n\n const formik = useFormik({\n initialValues,\n validationSchema,\n enableReinitialize: true,\n onSubmit: async (values) => {\n if (data) {\n const userData: any = {\n fullName: values.fullName,\n username: values.username,\n email: values.email,\n mobile: values.mobile,\n roles: selectedRoles,\n failedLoginAttempts: values.failedLoginAttempts,\n };\n if (values.password) {\n userData.password = values.password;\n }\n updateUser({ id: data.id, data: userData });\n\n } else {\n const userData = {\n fullName: values.fullName,\n username: values.username,\n email: values.email,\n mobile: values.mobile,\n password: values.password,\n roles: selectedRoles,\n failedLoginAttempts: values.failedLoginAttempts,\n };\n\n registerPrivate(userData)\n }\n },\n });\n\n useEffect(() => {\n if (isSuccess == true || isDeleteUserSuceess === true || isUpdateuserSuceess === true) {\n router.back();\n }\n }, [isSuccess, isDeleteUserSuceess, isUpdateuserSuceess])\n\n return (\n <div className=\"solid-form-wrapper\">\n <div className=\"solid-form-section\" >\n <form onSubmit={formik.handleSubmit}>\n <div className=\"solid-form-header\">\n {params.id === \"new\" ? (\n <>\n <div className=\"flex align-items-center gap-3\">\n <BackButton />\n <div className=\"form-wrapper-title\">Create User</div>\n </div>\n <div className=\"gap-3 flex\">\n {formik.dirty &&\n <Button label=\"Save\" size=\"small\" type=\"submit\" />\n }\n <CancelButton />\n </div>\n </>\n ) : (\n <>\n <div className=\"flex align-items-center gap-3\">\n <BackButton />\n <div className=\"form-wrapper-title\">Update User</div>\n </div>\n <div>\n <div className=\"gap-3 flex\">\n {formik.dirty &&\n <Button label=\"Save\" size=\"small\" type=\"submit\" />\n }\n {data &&\n <Button outlined label=\"Delete\" size=\"small\" severity=\"danger\" type=\"button\" onClick={() => deleteUser(data.id)} />\n }\n <CancelButton />\n </div>\n </div>\n </>\n )}\n </div>\n <SolidFormHeader />\n {/* <div className=\"solid-form-stepper\">\n <SolidFormStepper />\n </div> */}\n <div className=\"px-4 py-3 md:p-4 solid-form-content\">\n <div className=\"grid\">\n <div className=\"col-12 lg:col-10 xl:col-8 mx-auto\">\n {/* <p className=\"form-wrapper-heading text-base\">Basic Info</p> */}\n <Panel header=\"Basic Info\" className=\"solid-column-panel\">\n <div className=\"grid formgrid mt-3\">\n <div className=\"field col-12 md:col-6 flex flex-column gap-2\">\n <label htmlFor=\"fullName\" className=\"form-field-label\">\n Full Name\n </label>\n <InputText\n type=\"text\"\n id=\"fullName\"\n name=\"fullName\"\n autoComplete={\"off\"}\n onChange={formik.handleChange}\n value={formik.values.fullName}\n className={classNames(\"\", {\n \"p-invalid\": formik.touched.fullName && formik.errors.fullName,\n })}\n />\n {isFormFieldValid(formik, \"fullName\") && (\n <Message\n severity=\"error\"\n text={formik?.errors?.fullName?.toString()}\n />\n )}\n </div>\n <div className=\"field col-12 md:col-6 flex flex-column gap-2 mt-3 md:mt-3\">\n <label htmlFor=\"username\" className=\"form-field-label\">\n Username\n </label>\n <InputText\n type=\"text\"\n id=\"username\"\n name=\"username\"\n autoComplete={\"off\"}\n disabled={data ? true : false}\n onChange={formik.handleChange}\n value={formik.values.username}\n className={classNames(\"\", {\n \"p-invalid\": formik.touched.username && formik.errors.username,\n })}\n />\n {isFormFieldValid(formik, \"username\") && (\n <Message\n severity=\"error\"\n text={formik?.errors?.username?.toString()}\n />\n )}\n </div>\n <div className=\"field col-12 md:col-6 flex flex-column gap-1 mt-4\">\n <label htmlFor=\"email\" className=\"form-field-label\">\n Email\n </label>\n <InputText\n type=\"text\"\n id=\"email\"\n name=\"email\"\n autoComplete={\"off\"}\n disabled={data ? true : false}\n onChange={formik.handleChange}\n value={formik.values.email}\n className={classNames(\"\", {\n \"p-invalid\": formik.touched.email && formik.errors.email,\n })}\n />\n {isFormFieldValid(formik, \"email\") && (\n <Message\n severity=\"error\"\n text={formik?.errors?.email?.toString()}\n />\n )}\n </div>\n <div className=\"field col-12 md:col-6 flex flex-column gap-1 mt-4\">\n <label htmlFor=\"mobile\" className=\"form-field-label\">\n Mobile\n </label>\n <InputText\n type=\"text\"\n id=\"mobile\"\n name=\"mobile\"\n autoComplete={\"off\"}\n onChange={formik.handleChange}\n value={formik.values.mobile}\n className={classNames(\"\", {\n \"p-invalid\": formik.touched.mobile && formik.errors.mobile,\n })}\n />\n {isFormFieldValid(formik, \"mobile \") && (\n <Message\n severity=\"error\"\n text={formik?.errors?.mobile?.toString()}\n />\n )}\n </div>\n {params.id === \"new\" && <>\n <div className=\"field col-12 md:col-6 flex flex-column gap-2 py-4\">\n <label htmlFor=\"Password\" className=\"form-field-label\">\n Password\n </label>\n <Password\n id=\"password\"\n name=\"password\"\n autoComplete=\"off\"\n aria-autocomplete=\"none\"\n value={formik.values.password}\n onChange={formik.handleChange}\n onBlur={formik.handleBlur}\n toggleMask\n invalid={isFormFieldValid(formik, \"password\")}\n inputClassName=\"w-full\"\n feedback={false}\n />\n {isFormFieldValid(formik, \"password\") && (\n <Message\n severity=\"error\"\n text={formik?.errors?.password?.toString()}\n />\n )}\n </div>\n <div className=\"field col-12 md:col-6 flex flex-column gap-2 pb-4 md:pb-0 md:my-4\">\n <label htmlFor=\"Confirm Password\" className=\"form-field-label\">\n Confirm Password\n </label>\n <Password\n id=\"confirmPassword\"\n name=\"confirmPassword\"\n autoComplete=\"off\"\n aria-autocomplete=\"none\"\n value={formik.values.confirmPassword}\n onChange={formik.handleChange}\n onBlur={formik.handleBlur}\n toggleMask\n invalid={isFormFieldValid(formik, \"confirmPassword\")}\n inputClassName=\"w-full\"\n feedback={false}\n />\n {isFormFieldValid(formik, \"confirmPassword\") && (\n <Message\n severity=\"error\"\n text={formik?.errors?.confirmPassword?.toString()}\n />\n )}\n </div>\n </>}\n {params.id !== \"new\" && (\n <div className=\"field col-12 md:col-6 flex flex-column gap-1 mt-4\">\n <label htmlFor=\"failedLoginAttempts\" className=\"form-field-label\">\n Failed Login Attempts\n </label>\n <InputText\n type=\"number\"\n id=\"failedLoginAttempts\"\n name=\"failedLoginAttempts\"\n autoComplete=\"off\"\n onChange={formik.handleChange}\n value={formik.values.failedLoginAttempts}\n className={classNames(\"\", {\n \"p-invalid\":\n formik.touched.failedLoginAttempts &&\n formik.errors.failedLoginAttempts,\n })}\n />\n {formik.touched.failedLoginAttempts &&\n formik.errors.failedLoginAttempts && (\n <Message\n severity=\"error\"\n text={formik.errors.failedLoginAttempts?.toString()}\n />\n )}\n <small className=\"text-color-secondary\">\n Your account has been locked due to repeated unsuccessful login attempts. Please contact your system admin.\n </small>\n </div>\n )}\n </div>\n </Panel>\n\n {/* <Divider /> */}\n {/* <p className=\"form-wrapper-heading text-base\" style={{ fontSize: 16 }}>Roles</p> */}\n\n <Panel toggleable header=\"Roles\" className=\"solid-column-panel mt-5\">\n <div className=\"formgrid grid mt-4\">\n {rolesData?.data?.records && rolesData?.data?.records.map((role: any, i: number) => (\n <div key={role.name} className={`field col-6 flex gap-2 ${i >= 2 ? 'mt-3' : ''}`}>\n <Checkbox\n inputId={role.name}\n checked={selectedRoles.includes(role.name)}\n onChange={() => handleCheckboxChange(role.name)}\n />\n <label htmlFor={role.name}> {role.name}</label>\n </div>\n ))}\n </div>\n </Panel>\n </div>\n </div>\n </div>\n </form>\n </div>\n </div>\n );\n};\n\n\nexport default CreateUser;\n"]}
|
|
@@ -19,10 +19,11 @@ import { InputText } from "primereact/inputtext";
|
|
|
19
19
|
import { Message } from "primereact/message";
|
|
20
20
|
import { Panel } from "primereact/panel";
|
|
21
21
|
import { Password } from "primereact/password";
|
|
22
|
-
import { Toast } from "primereact/toast";
|
|
23
22
|
import { classNames } from "primereact/utils";
|
|
24
|
-
import { useEffect,
|
|
23
|
+
import { useEffect, useState } from "react";
|
|
24
|
+
import { useDispatch } from "react-redux";
|
|
25
25
|
import * as Yup from "yup";
|
|
26
|
+
import { showToast } from "../../../redux/features/toastSlice";
|
|
26
27
|
|
|
27
28
|
|
|
28
29
|
interface ErrorResponseData {
|
|
@@ -33,7 +34,7 @@ interface ErrorResponseData {
|
|
|
33
34
|
|
|
34
35
|
const CreateUser = ({ data, params }: any) => {
|
|
35
36
|
|
|
36
|
-
const
|
|
37
|
+
const dispatch = useDispatch();
|
|
37
38
|
const pathname = usePathname();
|
|
38
39
|
const router = useRouter();
|
|
39
40
|
const [selectedRoles, setSelectedRoles] = useState<string[]>([]);
|
|
@@ -140,26 +141,8 @@ const CreateUser = ({ data, params }: any) => {
|
|
|
140
141
|
const errors = await formik.validateForm();
|
|
141
142
|
const errorMessages = Object.values(errors);
|
|
142
143
|
|
|
143
|
-
if (errorMessages.length > 0
|
|
144
|
-
|
|
145
|
-
severity: "error",
|
|
146
|
-
summary: ERROR_MESSAGES.SEND_REPORT,
|
|
147
|
-
// sticky: true,
|
|
148
|
-
life: 3000,
|
|
149
|
-
//@ts-ignore
|
|
150
|
-
content: (props) => (
|
|
151
|
-
<div
|
|
152
|
-
className="flex flex-column align-items-left"
|
|
153
|
-
style={{ flex: "1" }}
|
|
154
|
-
>
|
|
155
|
-
{errorMessages.map((m: any, index: number) => (
|
|
156
|
-
<div className="flex align-items-center gap-2" key={index}>
|
|
157
|
-
<span className="font-bold text-900">{m}</span>
|
|
158
|
-
</div>
|
|
159
|
-
))}
|
|
160
|
-
</div>
|
|
161
|
-
),
|
|
162
|
-
});
|
|
144
|
+
if (errorMessages.length > 0) {
|
|
145
|
+
dispatch(showToast({ severity: "error", summary: ERROR_MESSAGES.SEND_REPORT, detail: errorMessages.join(', '), life: 3000 }));
|
|
163
146
|
}
|
|
164
147
|
};
|
|
165
148
|
|
|
@@ -177,28 +160,8 @@ const CreateUser = ({ data, params }: any) => {
|
|
|
177
160
|
errorMessage = [ERROR_MESSAGES.SOMETHING_WRONG];
|
|
178
161
|
}
|
|
179
162
|
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
summary: ERROR_MESSAGES.ERROR,
|
|
183
|
-
detail: errorMessage,
|
|
184
|
-
sticky: true,
|
|
185
|
-
//@ts-ignore
|
|
186
|
-
content: (props) => (
|
|
187
|
-
<div className="flex flex-column align-items-left" style={{ flex: "1" }}>
|
|
188
|
-
{Array.isArray(errorMessage) ? (
|
|
189
|
-
errorMessage.map((message, index) => (
|
|
190
|
-
<div className="flex align-items-center gap-2" key={index}>
|
|
191
|
-
<span className="font-bold text-900">{message.trim()}</span>
|
|
192
|
-
</div>
|
|
193
|
-
))
|
|
194
|
-
) : (
|
|
195
|
-
<div className="flex align-items-center gap-2">
|
|
196
|
-
<span className="font-bold text-900">{errorMessage?.trim()}</span>
|
|
197
|
-
</div>
|
|
198
|
-
)}
|
|
199
|
-
</div>
|
|
200
|
-
),
|
|
201
|
-
});
|
|
163
|
+
const detail = Array.isArray(errorMessage) ? errorMessage.join(', ') : errorMessage;
|
|
164
|
+
dispatch(showToast({ severity: 'error', summary: ERROR_MESSAGES.ERROR, detail }));
|
|
202
165
|
};
|
|
203
166
|
|
|
204
167
|
// Check and handle errors from each API operation
|
|
@@ -257,7 +220,6 @@ const CreateUser = ({ data, params }: any) => {
|
|
|
257
220
|
|
|
258
221
|
return (
|
|
259
222
|
<div className="solid-form-wrapper">
|
|
260
|
-
<Toast ref={toast} />
|
|
261
223
|
<div className="solid-form-section" >
|
|
262
224
|
<form onSubmit={formik.handleSubmit}>
|
|
263
225
|
<div className="solid-form-header">
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UserListView.d.ts","sourceRoot":"","sources":["../../../../src/components/core/users/UserListView.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"UserListView.d.ts","sourceRoot":"","sources":["../../../../src/components/core/users/UserListView.tsx"],"names":[],"mappings":"AAoCA,eAAO,MAAM,YAAY,+CAmUxB,CAAC"}
|
|
@@ -41,14 +41,15 @@ import { FilterMatchMode } from "primereact/api";
|
|
|
41
41
|
import { Button } from "primereact/button";
|
|
42
42
|
import { Column } from "primereact/column";
|
|
43
43
|
import { DataTable, } from "primereact/datatable";
|
|
44
|
-
import { useEffect,
|
|
44
|
+
import { useEffect, useState } from "react";
|
|
45
|
+
import { useDispatch } from "react-redux";
|
|
45
46
|
import { CreateButton } from "../../../components/common/CreateButton";
|
|
46
47
|
import { Dialog } from "primereact/dialog";
|
|
47
|
-
import { Toast } from "primereact/toast";
|
|
48
48
|
import qs from "qs";
|
|
49
49
|
import { ERROR_MESSAGES } from '../../../constants/error-messages';
|
|
50
|
+
import { showToast } from '../../../redux/features/toastSlice';
|
|
50
51
|
export var UserListView = function () {
|
|
51
|
-
var
|
|
52
|
+
var dispatch = useDispatch();
|
|
52
53
|
var _a = useState([]), users = _a[0], setUsers = _a[1];
|
|
53
54
|
var _b = useState({
|
|
54
55
|
fullName: { value: null, matchMode: FilterMatchMode.STARTS_WITH },
|
|
@@ -95,25 +96,17 @@ export var UserListView = function () {
|
|
|
95
96
|
setSelectedUsers([]);
|
|
96
97
|
}, [isDeleteUserSuceess]);
|
|
97
98
|
useEffect(function () {
|
|
98
|
-
var _a;
|
|
99
99
|
if (isError || isUserDeleteError) {
|
|
100
100
|
setLoading(false);
|
|
101
|
-
var
|
|
101
|
+
var errorMessage = ERROR_MESSAGES.ERROR_OCCURED;
|
|
102
102
|
var errorToast = isError ? error : UserDeleteError;
|
|
103
103
|
if (isFetchBaseQueryErrorWithErrorResponse(errorToast)) {
|
|
104
|
-
|
|
104
|
+
errorMessage = "".concat(errorToast.data.message);
|
|
105
105
|
}
|
|
106
106
|
else {
|
|
107
|
-
|
|
107
|
+
errorMessage = ERROR_MESSAGES.SOMETHING_WRONG;
|
|
108
108
|
}
|
|
109
|
-
(
|
|
110
|
-
severity: 'error',
|
|
111
|
-
summary: ERROR_MESSAGES.ERROR,
|
|
112
|
-
detail: errorMessage_1,
|
|
113
|
-
life: 3000,
|
|
114
|
-
//@ts-ignore
|
|
115
|
-
content: function (props) { return (_jsx("div", { className: "flex flex-column align-items-left", style: { flex: "1" }, children: _jsx("div", { className: "flex align-items-center gap-2", children: _jsx("span", { className: "font-bold text-900", children: errorMessage_1 }) }) })); },
|
|
116
|
-
});
|
|
109
|
+
dispatch(showToast({ severity: 'error', summary: ERROR_MESSAGES.ERROR, detail: errorMessage, life: 3000 }));
|
|
117
110
|
}
|
|
118
111
|
}, [isError, isUserDeleteError]);
|
|
119
112
|
function isFetchBaseQueryErrorWithErrorResponse(error) {
|
|
@@ -218,6 +211,6 @@ export var UserListView = function () {
|
|
|
218
211
|
setDialogVisible(false);
|
|
219
212
|
setSelectedUsers([]);
|
|
220
213
|
};
|
|
221
|
-
return (_jsxs("div", { className: "", children: [
|
|
214
|
+
return (_jsxs("div", { className: "", children: [_jsxs("div", { className: "flex gap-3 mb-4", children: [_jsx(CreateButton, {}), selectedUsers.length > 0 && _jsx(Button, { type: "button", label: "Delete", size: "small", onClick: function () { return setDialogVisible(true); }, className: "small-button", severity: "danger" })] }), _jsx("style", { children: "\n .p-datatable .p-datatable-loading-overlay {\n background-color: rgba(0, 0, 0, 0.0);\n }\n " }), _jsxs(DataTable, { value: users, lazy: true, tableStyle: { minWidth: "60rem", margin: "auto" }, size: "small", paginator: true, rows: rows, rowsPerPageOptions: [10, 25, 50], dataKey: "id", filters: filters, emptyMessage: "No users found", onFilter: onFilter, filterDisplay: "row", totalRecords: totalRecords, first: first, onPage: onPageChange, onSort: function (e) { return onSort(e); }, sortField: sortField, sortOrder: sortOrder === 1 || sortOrder === -1 ? sortOrder : 0, loading: loading || isLoading, loadingIcon: "pi pi-spinner", selection: selectedUsers, onSelectionChange: onSelectionChange, selectionMode: "multiple", removableSort: true, children: [_jsx(Column, { selectionMode: "multiple", headerStyle: { width: "3em" } }), _jsx(Column, { field: "id", header: "ID", className: "text-sm", sortable: true, headerClassName: "table-header-fs" }), _jsx(Column, { field: "fullName", header: "Full Name", className: "text-sm", sortable: true, filter: true, filterPlaceholder: "Search user by full name", style: { minWidth: "12rem" }, headerClassName: "table-header-fs" }), _jsx(Column, { field: "username", header: "Username", className: "text-sm", sortable: true, filter: true, filterPlaceholder: "Search user by username", style: { minWidth: "12rem" }, headerClassName: "table-header-fs" }), _jsx(Column, { field: "email", header: "Email", className: "text-sm", sortable: true, filter: true, filterPlaceholder: "Search user by email", style: { minWidth: "12rem" }, headerClassName: "table-header-fs" }), _jsx(Column, { body: detailsBodyTemplate })] }), _jsx(Dialog, { visible: isDialogVisible, header: "Confirm Delete", modal: true, className: "solid-confirm-dialog", footer: function () { return (_jsxs("div", { className: "flex justify-content-center", children: [_jsx(Button, { label: "Yes", icon: "pi pi-check", className: 'small-button', severity: "danger", autoFocus: true, onClick: deleteBulk }), _jsx(Button, { label: "No", icon: "pi pi-times", className: 'small-button', onClick: onDeleteClose })] })); }, onHide: function () { return setDialogVisible(false); }, children: _jsx("p", { children: "Are you sure you want to delete the selected Users?" }) })] }));
|
|
222
215
|
};
|
|
223
216
|
//# sourceMappingURL=UserListView.js.map
|